Google перешел c OpenSSL на BoringSSL
21 октября 2015 года
Разработчики BoringSSL, форка OpenSSL от компании Google, опубликовали обзор состояния проекта. В последнее время на BoringSSL уже переведены все программные продукты Google, как внутренние сервисы, так и такие проекты как Chrome/Chromium и Android. BoringSSL используется как единый TLS-стек для всех продуктов Google, что позволило значительно упростить сопровождение кодовой базы.
При этом использование BoringSSL в сторонних проектах может предоставлять трудности, так как код достаточно сильно почищен, а разработчики не ставят перед собой цель полной совместимости с OpenSSL и ABI может меняться в зависимости от потребностей компании. В отличие от LibreSSL, создание BoringSSL не заключалось в копировании имеющихся исходных текстов OpenSSL для их последующей переработки и чистки. Вместо этого BoringSSL развивался путём создания пустого проекта и поэтапного переноса кода из OpenSSL, функции за функцией с проведением их аудита, документирования и переработки.
В итоге, размер BoringSSL составляет около 200 тысяч строк кода, в то время как кодовая база OpenSSL оценивается в 468 тысяч строк. Подобное уменьшение размера заметно сказывается на потреблении памяти, например, при пересборке проектов с BoringSSL их размер уменьшается на 300 Кб по сравнению минимальной конфигурацией OpenSSL.
В BoringSSL прекращена поддержка Blowfish, Camellia, CMS, функций сжатия, движков, IDEA, JPAKE, Kerberos, MD2, MDC2, OCSP, PKCS#7, RC5, RIPE-MD, SEED, SRP, Whirlpool. Переработаны такие механизмы, как система блокировок, поддержка многопоточности, обработка ошибок, добавлены механизмы динамического изменения размеров буферов и контроля за выходом за границы выделенных областей памяти. Вместо собственной реализации генератора псевдослучайных чисел в BoringSSL задействован штатный системный urandom. Из планов на ближайшее будущее отмечается продолжение чистки кода, реализация поддержки ChaCha20-Poly1305, Curve25519 и Ed25519, увеличение охвата функций тестовым набором.
Источники[править]
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии[править]
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.