Спустя три года разработки состоялся релиз OpenSSL 3.0.0, в котором реализованы протоколы SSL/TLS и различные алгоритмы шифрования. В проект вошло более 7 тыс. изменений по сравнению со старой версией.
Значимые нововведения
Обновление библиотеки с OpenSSL 1.1.1 до версии 3.0.0 нарушает обратную совместимость на уровне API и ABI, однако авторы проекта уверяют, что переход не скажется на работе большей части приложений, которым для перевода достаточно пересборки.
Такое резкое изменение номера версии произошло из-за начала использования традиционной нумерации «Major.Minor.Patch». Сейчас первая цифра в названии библиотеки будет меняться только в том случае, если обновление затрагивает совместимость на уровне API/ABI, а вторая будет указывать на расширение функционала без нарушения совместимости. Третье число отмечает выход корректирующих патчей. Выбор версии 3.0.0 сразу после 1.1.1 связан с тем, что разработчики библиотеки хотят избежать пересечения с FIPS-модулем к OpenSSL с нумерацией 2.x.
Также новая версия привнесла значительное изменение условий лицензирования. До выхода обновления использовалась лицензия Apache 1.0, которая обязывала разработчиков добавлять уведомление о включении в состав проекта OpenSSL. Такой подход не позволял применять библиотеку в продуктах с лицензией GPL. Для решения этой проблемы в версии 3.0.0 используется условия Apache 2.0.
Больше возможностей
OpenSSL 3.0.0 получила более 7,5 тыс. изменений, над выпуском которых трудились 350 разработчиков. В новой версии добавлены следующие новшества:
- В состав библиотеки включен модуль FIPS, который реализует криптографические алгоритмы, соответствующие стандарту безопасности FIPS 140-2. Дополнение просто в использовании – подключение по сложности примерно равно настройке конфигурационного файла.
- В библиотеке libcrypto вместо концепции движков начнет применяться концепция подключаемых провайдеров. С их помощью стало возможным создавать собственные реализации для алгоритмов шифрования, формирования ключей, вычисления MAC, создания и проверки цифровых подписей.
- Появилась поддержка протокола управления сертификатами CMP, который позволяет запрашивать сертификаты у сервера удостоверяющего центра. С утилитой openssl-cmp появляется возможность передавать запросы через HTTP/HTTPS.
- Также для протоколов HTTP и HTTPS реализован полноценный клиент, который поддерживает методы GET и POST, перенаправление запросов, работу через прокси, кодирование ASN.1 и обработку таймаутов.
Старая версия OpenSSL 1.1.1 будет получать обновления до сентября 2023 года.