Открыть сервис

LibreSSL

LibreSSL — это свободная кроссплатформенная реализация протоколов SSL (Secure Sockets Layer) и TLS (Transport Layer Security), а также криптографической библиотеки, созданная как форк библиотеки OpenSSL. Разработка ведётся проектом OpenBSD с целью повышения безопасности, упрощения кодовой базы и устранения устаревших и потенциально опасных функций.

История

Проект LibreSSL был анонсирован 11 апреля 2014 года командой разработчиков операционной системы OpenBSD под руководством Тео де Раадта. Основной причиной создания форка стало обнаружение в OpenSSL критической уязвимости Heartbleed (CVE-2014-0160), которая позволяла злоумышленнику читать произвольные участки памяти сервера. Эта уязвимость затронула значительную часть интернет-инфраструктуры, так как OpenSSL была наиболее широко используемой реализацией SSL/TLS.

Разработчики OpenBSD, известные своим строгим подходом к безопасности кода, решили не ждать исправлений от основного проекта, а создать собственную, более безопасную альтернативу. Первая стабильная версия LibreSSL 2.0.0 была выпущена 11 июля 2014 года. С тех пор проект развивается параллельно с OpenSSL, но с иными приоритетами: упор делается на чистоту кода, минимализм и аудит безопасности.

Отличия от OpenSSL

LibreSSL сохраняет совместимость с API OpenSSL на уровне, достаточном для работы большинства программ, но при этом вносит ряд существенных изменений:

Очистка кодовой базы

Из исходного кода OpenSSL было удалено около 90 000 строк устаревшего, неиспользуемого или потенциально опасного кода. В частности, были исключены:

  • Поддержка устаревших протоколов и алгоритмов (SSLv2, SSLv3, RC4, MD2, MD5 в некоторых контекстах).
  • Множество платформозависимых обёрток и устаревших архитектурных оптимизаций.
  • Некоторые криптографические примитивы, признанные небезопасными (например, алгоритм шифрования SEED).

Улучшение безопасности

  • Замена malloc: LibreSSL использует собственную реализацию аллокатора памяти (calloc, reallocarray, freezero), которая обнуляет память при освобождении, снижая риск утечки конфиденциальных данных.
  • Аудит кода: Каждая функция библиотеки проходит тщательный аудит на предмет уязвимостей, таких как переполнение буфера, использование после освобождения и гонки данных.
  • Упрощение API: Удалены сложные и редко используемые функции, которые часто становились источником ошибок при неправильном использовании.

Поддержка платформ

LibreSSL изначально разрабатывалась для OpenBSD, но впоследствии была портирована на другие Unix-подобные системы (Linux, FreeBSD, macOS) и Windows. Однако основная разработка и тестирование ведутся именно в среде OpenBSD.

Архитектура и компоненты

Библиотека состоит из нескольких ключевых модулей:

  • libcrypto: Реализует криптографические алгоритмы (AES, ChaCha20, RSA, ECDSA, хеш-функции SHA-256/384/512, BLAKE2 и др.) и вспомогательные функции (генерация случайных чисел, управление памятью).
  • libssl: Реализует протоколы SSL и TLS (включая TLS 1.3).
  • libtls: Высокоуровневый интерфейс для разработчиков, упрощающий создание защищённых соединений. Этот компонент отсутствует в OpenSSL и был разработан специально для LibreSSL.

Версии и выпуски

Проект придерживается семантического версионирования. Последние стабильные версии на начало 2025 года — 3.9.x и 4.0.x. Версия 4.0 примечательна тем, что окончательно удалила поддержку TLS 1.0 и 1.1, а также некоторые устаревшие криптографические механизмы. Выпуски выходят регулярно, примерно раз в 6–12 месяцев.

Использование

LibreSSL является стандартной библиотекой SSL/TLS в операционной системе OpenBSD. Также она используется в некоторых дистрибутивах Linux (например, в Alpine Linux, Void Linux) и в проектах, ориентированных на безопасность (например, в почтовом сервере OpenSMTPD). Однако большинство крупных дистрибутивов (Debian, Ubuntu, Red Hat Enterprise Linux) продолжают использовать OpenSSL из-за более широкой совместимости с коммерческим и корпоративным программным обеспечением.

Критика

Основные претензии к LibreSSL связаны с совместимостью. Хотя проект стремится сохранять обратную совместимость с OpenSSL API, некоторые редко используемые функции были удалены, что может вызвать проблемы при попытке собрать устаревшее или специфическое программное обеспечение. Кроме того, из-за меньшей распространённости, сообщество разработчиков и тестировщиков LibreSSL значительно меньше, чем у OpenSSL, что потенциально замедляет обнаружение и исправление ошибок.

Значение для индустрии

Создание LibreSSL оказало значительное влияние на экосистему SSL/TLS. Оно подтолкнуло разработчиков OpenSSL к более активной работе над безопасностью и чистотой кода. В частности, после появления LibreSSL проект OpenSSL выпустил версию 1.1.0, в которой были проведены масштабные рефакторинг и удаление устаревших компонентов. LibreSSL также продемонстрировал, что возможно создать безопасную и функциональную реализацию криптографических протоколов, не жертвуя производительностью.

Интересные факты

  • Название «LibreSSL» происходит от испанского и французского слова «libre» (свободный), подчёркивая как свободную лицензию, так и освобождение от устаревшего кода.
  • Проект OpenBSD, разрабатывающий LibreSSL, известен своим девизом «No more than one remote hole in the default install, in more than 10 years» (Не более одной удалённой уязвимости в установке по умолчанию за более чем 10 лет).
  • Исходный код LibreSSL доступен на официальном сайте проекта и в репозиториях OpenBSD. Лицензия — BSD (свободная).

Источники

  • Официальный сайт проекта LibreSSL (libressl.org)
  • Репозиторий исходного кода OpenBSD
  • Документация OpenBSD по LibreSSL
  • Публикации разработчиков OpenBSD о создании форка (2014 год)
  • Сравнительный анализ OpenSSL и LibreSSL в технической литературе

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →