Разработчики LibreSSL развивают новый API ressl
30 сентября 2014 года
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 проверка имени хоста выполняется по умолчанию.
Источники
править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.