The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Разработчики LibreSSL развивают новый API ressl

30.09.2014 12:17

Ted Unangst опубликовал интересную статью, в которой рассказал о причинах создания проекта LibreSSL, привёл ретроспективу первого месяца разработки и поделился информацией о последних достижениях и планах на будущее.

Из особенностей разработки LibreSSL отмечается большая работа по развитию переносимой версии, которая разрабатывается одновременно с вариантом для OpenBSD и выпущена раньше нативной редакции для OpenBSD, которая будет представлена 1 ноября в составе OpenBSD 5.6. При этом код LibreSSL завязан на генераторе псевдослучайных чисел arc4random, реализация которого для FreeBSD и NetBSD оставляет желать лучшего и находится в заброшенном виде.

Из планов и текущих задач отмечается работа по созданию API ressl, который позиционируется в качестве замены API OpenSSL. Главными задачами при проектировании нового API является обеспечение непротиворечивости и простоты. По словам разработчика, новый API разрабатывается с оглядкой на то, что требуется пользователю, а не на то что позволяет сделать протокол TLS. Например, пользователю необходимо установить защищённое соединение с сервером, обеспечить работу защищённого сервера и организовать отправку и приём данных через установленное соединение. API будет абстрагирован от внутренностей и будет скрывать низкоуровневые манипуляции с сертификатами X.509 или ASN.1, и по сути близок к описанию защищённого транспорта поверх SSH-туннелей, предоставляя средства для установки защищённых соединений без лишних усложнений.

Абстрагирование программного интерфейса позволит подготовить варианты API ressl, реализованные поверх OpenSSL и других реализаций. Ранее предпринимаемые попытки создания замены OpenSSL как правило ограничивались созданием прокладок, воспроизводящих API OpenSSL. В задачи же LibreSSL входит создание нового универсального API, достаточно абстрактного для подготовки реализаций поверх различных библиотек, не ограничивающихся API OpenSSL.

Из особенностей ressl API отмечается такая возможность, как верификация имени хоста. TLS-соединение выглядит малополезным, если оно устанавливается с хостом, достоверность которого не гарантируется. При установке TLS-соединения осуществляется проверка сертификатов и связанной с ним цепочки доверия. Затем следует убедиться, что имя хоста, к которому осуществляется соединение, соответствует имени, указанному в сертификате. OpenSSL не выполняет данное сопоставление, перенося его на плечи разработчиков приложения, которые часто игнорируют данную проверку или забывают её добавить. Выполнение проверки требует от разработчика знакомства с такими элементами, как CommonNames и SubjectAltNames, а также умение правильно организовать сопоставление масок. В итоге, в разных приложениях периодически всплывают уязвимости, связанные с неверной обработкой масок и нулевых байтов. В ressl API проверка имени хоста выполняется по умолчанию.

  1. Главная ссылка к новости (http://undeadly.org/cgi?action...)
  2. OpenNews: Первый выпуск LibreSSL, форка OpenSSL от проекта OpenBSD
  3. OpenNews: Компания Google представила BoringSSL, форк OpenSSL
  4. OpenNews: Обновление LibreSSL 2.0.3
  5. OpenNews: Уязвимость, устранённая в LibreSSL 2.0.2, подтолкнула к добавлению вызова getrandom в ядро Linux
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/40710-libressl
Ключевые слова: libressl
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (27) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, бедный буратино (ok), 12:24, 30/09/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    ну, теперь по мотивам eurobsdcon'14 можно будет много новостей сделать :)
     
  • 1.2, rshadow (ok), 12:56, 30/09/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • –7 +/
    Зачем они тратят не свои деньги? OpenSSL и так под БСД подобной лицензией. Его не нужно переписывать.
     
     
  • 2.3, Chusik (?), 13:26, 30/09/2014 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Он кривой как черт, поэтому и переписывают
     
     
  • 3.20, Пингвино (ok), 01:50, 01/10/2014 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Да, кривой, но существуенную часть багов уже пофиксили. А эти упыри решили выкинуть все и написать заново дырявый велосипед, на поиск багов в котором уйдут тысячи человеко-часов.
     
     
  • 4.23, Stellarwind (?), 14:55, 01/10/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Они объясняли почему уже - выкидывают подозрительный код, через месяц в нем находят баг. Дальше выкидывают другой странный кусок и по приколу пишут в коммите что в нем дырка (хотя сами нашли ее в другом месте) - через месяц эта шутка становится правдой, там тоже находят уязвимость.. Потом они ressl пилят как новый более простой api, это не будет частью libressl
     
  • 2.5, Аноним (-), 14:09, 30/09/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    NIH синдром.
     
  • 2.8, Нанобот (ok), 15:02, 30/09/2014 [^] [^^] [^^^] [ответить]  
  • +2 +/
    насколько я понял из новости, основная цель - сделать библиотеку проще в использовании, а не "придумать ещё одну позу для фапа на лицензию"
     
  • 2.11, Grammar_Nazi (?), 15:31, 30/09/2014 [^] [^^] [^^^] [ответить]  
  • +4 +/
    БСД-подобной
     
  • 2.14, Xasd (ok), 16:51, 30/09/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > БСД подобной лицензией

    настолько "подобной" (в ковычках -- сарказм) что даже нельзя выпустить скомпилированную версию свободного софта с этой библиотекой.

    даже лишь по одной только причине кривой лицензии -- можно было бы похоронить OpenSSL.

    (и да -- если ты где-то видел свободный скомпилированный софт с библиотекой OpenSSL -- то это не ещё значит что этот софт не нарушает закон... да он есть, встречается, но он незаконен)

     
  • 2.16, Аноним (-), 17:22, 30/09/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Дьявол кроется в деталях: openssl не совместима с GPL.
     
     
  • 3.17, клоун (?), 18:35, 30/09/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    И как это влияет на функциональность?

    OpenSSL не требует принудительно открывать исходный код после изменений, и не запрещает это делать.

    Т.е. весь сыр-бор из-за того, что кто-то поюзает твои изменения, но не даст тебе поюзать свои?

    "И посмотрели они и поняли, что всё здесь было прекрасно, кроме одного: авторами были не они..."

     
     
  • 4.19, Xasd (ok), 19:18, 30/09/2014 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > И как это влияет на функциональность?

    лицензия OpenSSL заставляет делать в программах дополнительную (лишнюю) функциональность:

    а именно -- по условиям лицензмм, программа должна в своём GUI рекламировать OpenSSL.

    даже если программа использует LibReSSL -- то всё равно лицензия заставляет рекламировать именно OpenSSL , а не LibReSSL .. и мне кажется это слегка может ввести в забдуждение пользователя такой программы.

    получается -- для того чтобы избежать введения пользователя в заблуждение, но при этом ОДНОВРЕМЕННО и не нарушить лецензию: нужно сначало отобразить строчку с рекламой (как это требует лицензия), а затем вывести дополнительную строчку, разъясняющую текущую ситуацию какая она есть на самом деле (а не то что написано в рекламе).

    мне кажется это должно называться: лицензионный маразм :-) ...

     
     
  • 5.22, клоун (?), 12:12, 01/10/2014 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Т.е. весь "маразм" и "сложность", из-за которых потребовалось с нуля переписывать программу, заключаются в том, чтобы вывести две строки текста?
     
     
  • 6.25, Xasd (ok), 22:03, 01/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > Т.е. весь "маразм" и "сложность", из-за которых потребовалось с нуля переписывать программу, заключаются в том, чтобы вывести две строки текста?

    эти две строчки -- которые необходимо выводить в GUI, и которые в итоге мешают быть программе Свободной -- ты учитываешь только для одной программы.

    а теперь представь какое огромное количество программ может тоже хотеть шифровать SSL. суммарное количество рекламных строчек -- в итоге будет во множество раз больше чем две (пропорционально количеству програм) :-)

    ради такого -- можно было бы и переписать библиотеку с нуля. да..

    и эта реклама надо сказать -- работает! OpenSSL -- очень популярно (быть может именно благодаря рекламе!).. хотя авторы программ, которые вставляют эту рекламу в свои программы -- думаю не очень рады тому факту что они позволили себя запачкать в этой большой афере :-)

     
     
  • 7.26, клоун (?), 16:29, 02/10/2014 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Главное от вас улизнуло...

    GPL - вирусная лицензия. Это означает, что код можно перевести под GPL, но из-под GPL ничего вывести нельзя. С GPL совместимы лицензии, которые разрешают изменять лицензию на GPL и несовместимы те, которые запрещают.

    Афера - это когда вы можете положить деньги в банк, но не можете их забрать.

    Если вы можете положить деньги в банк и забрать их, а банк не может использовать ваше имя в своей рекламе без вашего письменного согласия, то это не афера, а деловое партнёрство.

     
     
  • 8.27, Xasd (ok), 01:52, 04/10/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    ты что такой странный НЕ надо менять лицензию чужого встраиваемого компонента ... текст свёрнут, показать
     

  • 1.4, Аноним (-), 13:39, 30/09/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    heartbeat у них будет?
     
     
  • 2.9, Аноним (-), 15:07, 30/09/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > heartbeat у них будет?

    И не только

     
  • 2.10, Аноним (-), 15:24, 30/09/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Выпилили первым делом.
     

  • 1.6, Аноним (-), 14:30, 30/09/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    А мы как дураки сидим вместе с Адамом Лэнгли и пилим высокороизводительные слои BoringSSL.
     
     
  • 2.7, Аноним (-), 14:46, 30/09/2014 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Так сидите и пилите дальше. Кому вы нужны нафиг...
     
  • 2.13, annualslayer (ok), 16:32, 30/09/2014 [^] [^^] [^^^] [ответить]  
  • +2 +/
    так и пилите. время всё расставит по своим местам
     

  • 1.12, Аноним (-), 16:28, 30/09/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    >  Главными задачами при проектировании новго API является обеспечение непротиворечивости и простоты. (...) API будет абстрагирован от внутренностей и будет скрывать низкоуровневые манипуляции с сертификатами X.509 или ASN.1, и по сути близок к описанию защищённого транспорта поверх SSH-туннелей, предоставляя средства для установки защищённых соединений без лишних усложнений.

    Сомневаюсь, что "усовершенствования", направленные на облегчение жизни несведущим в вопросе разработчикам, есть гут.

     
     
  • 2.15, cmp (ok), 17:17, 30/09/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Ага, гром не грянет - мужик не перекрестится, и грянул гром и ломанулись мужики писать альтернативы, получается до этого самого момента все устраивало, но вот случилось и забросив все дела начали выкаблучиваться у кого велосипед будет стильней и моднее. Щас поналепят, потом программер голову сломает как в этом зоопарке написать прогу работающую с несколькими реализациями ssl, и дыр в ней будет ровно столько же, так в чем же профит, а профит попиарится, чтобы в резюмешке написать - специалист по информационной безопасности, или не важно, лишь бы было и свое. Позорище. Дед еще не умер, а за дачу уже грызня, клумбы повыдирать, да гаражик на две машины справить, а проверку имени хоста мы автоматом сделаем, а то вдруг дитятко поранится.
     
     
  • 3.18, клоун (?), 18:38, 30/09/2014 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Даже больше: подходит внучек к бабушке на детской площадке и спрашивает: "Бабушка, когда же ты наконец умрёшь? Мы твою квартиру сдавать будем и мне велосипед купят. Умирай побыстрее, пожалуйста."
     
  • 2.21, Аноним (-), 03:19, 01/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    А вы писали что-то с использованием libssl, или просто сомневаетесь?

    Я вот писал. API совершенно нечеловеческое. Неконсистентное, плохо документированное, с кучей подводных камней.

     
  • 2.28, Аноним (-), 21:08, 04/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    >>  Главными задачами при проектировании новго API является обеспечение непротиворечивости и простоты. (...) API будет абстрагирован от внутренностей и будет скрывать низкоуровневые манипуляции с сертификатами X.509 или ASN.1, и по сути близок к описанию защищённого транспорта поверх SSH-туннелей, предоставляя средства для установки защищённых соединений без лишних усложнений.
    > Сомневаюсь, что "усовершенствования", направленные на облегчение жизни несведущим в вопросе
    > разработчикам, есть гут.

    "Несведущий" - это который не изучил в деталях все 100500 опций OpenSSL, отличия их работы от документации и между версиями OpenSSL? Ну тогда да, не сведущие они. Как и 100% оставшихся разработчиков в мире.

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру