OpenSSL 3.5.0: Внедрение квантовой криптографии и поддержка QUIC в новом релизе

8 апреля 2025 года состоялся релиз открытого проекта OpenSSL 3.5.0, подробности которого можно найти по ссылке. Эта криптографическая библиотека поддерживает новые шифровальные алгоритмы и технологии управления ключами, может функционировать с протоколами SSL/TLS на уровне ядра клиента Linux, содержит обновлённый модуль FIPS и интегрирована с протоколом управления сертификатами CMP. В новом выпуске добавлена поддержка QUIC для серверного уровня (RFC 9000), а также новый параметр конфигурации (no-tls-deprecated-ec), отключающий устаревшие TLS-группы, отмеченные в RFC 8422.

Исходный код разрабатывается на C и Perl и распространяется под лицензией Apache 2.0. Релиз OpenSSL 3.0.0 произошел в сентябре 2021 года, а версия 3.4.0 вышла полгода назад.

Версия OpenSSL 3.5.0 относится к выпускам с длительной поддержкой (LTS), обновления которой будут предоставляться на протяжении 5 лет (до апреля 2030 года). Поддержка более ранних версий 3.3, 3.2 и 3.0 LTS будет активна до апреля 2026 года, ноября 2025 года и сентября 2026 года соответственно.

Согласно данным OpenNET, среди основных изменений и дополнений в OpenSSL 3.5.0 можно отметить:

– Поддержка новых криптоалгоритмов, устойчевых к атакам квантовых компьютеров:
ML‑KEM (CRYSTALS‑Kyber) — алгоритм для обмена ключами через решения задач теории решёток, который сохраняет одинаковое время выполнения на традиционных и квантовых компьютерах.
ML‑DSA (CRYSTALS‑Dilithium) — разработан для формирования цифровых подписей, опираясь на теорию решёток.
SLH‑DSA (Sphincs+) — также алгоритм для цифровых подписей, использующий криптографию на основе хеш-функций, оставаясь эффективным даже при компрометации алгоритмов теории решёток.

– Полная интеграция протокола QUIC (RFC 9000), который теперь доступен не только для клиентских, но и серверных приложений, поддерживающий мультиплексирование соединений и эквивалентное TLS шифрование. Этот протокол используется в HTTP/3 и был создан как альтернативный вариант к TCP+TLS, решая проблемы задержек.

– Возможность использования сторонних стеков с реализацией протокола QUIC, включая те, что поддерживают режим 0-RTT (0 Round Trip Time) для немедленной передачи данных после отправки пакета.

– Поддержка непрозрачных (opaque) объектов симметричных ключей (EVP_SKEY), скрывающих детали ключевой реализации.

– Введен параметр “no-tls-deprecated-ec” для отключения устаревших TLS-групп.

– Новый параметр “enable-fips-jitter” включает в FIPS-провайдер источники энтропии на основе джиттера с использованием библиотеки jitterentropy, обеспечивая непредсказуемость на основе исполнений нескольких инструкций на CPU.

– В CMP (Certificate Management Protocol) введена централизованная генерация ключей.

– Поддержка нескольких наборов ключей (keyshares) для одного TLS-соединения.

– Новый API для конвейерной обработки (pipelining), позволяющий обрабатывать несколько блоков данных одновременно при некоторых шифрах.

– В приложениях req, cms и smime изменён алгоритм шифрования по умолчанию с des-ede3-cbc на aes-256-cbc.

– В список шифров для TLS добавлены и выбраны приоритетными гибридные группы KEM (Key Encapsulation Mechanism), устойчивые к атакам квантовых компьютеров.

– В набор keyshares для TLS добавлены алгоритмы X25 519MLKEM768 и X25.

– Функции BIO_meth_get_*() признаны устаревшими.

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