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 года. Релиз OpenSSL 3.4.0 опубликован шесть месяцев назад.
Релиз OpenSSL 3.5.0 отнесён к выпускам с длительным сроком поддержки (LTS), обновления для которого будут выпускаться в течение 5 лет (до апреля 2030 года). Поддержка прошлых веток OpenSSL 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+) — алгоритм формирования цифровых подписей, применяющий методы криптографии на основе хеш‑функций. SLH‑DSA отстаёт от ML‑DSA по размеру подписей и скорости работы, но базируется на совершенно иных математических принципах, т. е. останется эффективен в случае компрометации алгоритмов на основе теории решёток.
реализована полная поддержка протокола QUIC (RFC 9000), который теперь доступен не только для клиентских, но и для серверных приложений. QUIC представляет собой надстройку над протоколом UDP, поддерживающую мультиплексирование нескольких соединений и обеспечивающую методы шифрования, эквивалентные TLS. Протокол QUIC применяется в HTTP/3 и был создан в качестве альтернативы связке TCP+TLS, решающей проблемы с большим временем установки и согласования соединений в TCP, а также устраняющей задержки при потере пакетов в процессе передачи данных;
добавлена возможность использования сторонних стеков с реализацией протокола QUIC, включая стеки поддерживающие режим 0-RTT (0 Round Trip Time), позволяющий сразу приступить к передаче данных после отправки пакета установки соединения;
добавлена поддержка непрозрачных (opaque) объектов симметричных ключей (EVP_SKEY), скрывающих детали реализации ключа;
добавлен параметр «no‑tls‑deprecated‑ec» для отключения поддержки TLS‑групп, объявленных устаревшими в RFC-8422;
добавлен параметр «enable‑fips‑jitter», включающий в провайдере FIPS использование источника энтропии на основе джиттера (jitter), реализованного при помощи библиотеки jitterentropy. Формирование энтропии на основе джиттера производится путём измерения различий во времени повторного исполнения определённого набора инструкций на CPU, зависящего от множества внутренних факторов и непредсказуемого без физического контроля над CPU;
в CMP (Certificate Management Protocol) добавлена поддержка централизованной генерации ключей (открытый и закрытый ключ для клиента генерируются на стороне сервера);
добавлена поддержка предоставления нескольких наборов ключей (keyshares) для одного TLS‑соединения;
добавлен API для конвейерной обработки (pipelining), позволяющей одновременно обрабатывать несколько блоков данных при использовании некоторых шифров, таких как AES‑GCM, поддерживающих параллельные вычисления;
в приложениях req, cms и smime алгоритм шифрования по умолчанию изменён с des‑ede3-cbc на aes-256-cbc;
в список шифров по умолчанию для TLS включены и выбраны в качестве приоритетных гибридные группы KEM (Key Encapsulation Mechanism), стойкие к подбору на квантовом компьютере;
в набор ключей (keyshares), используемых по умолчанию в TLS, добавлены алгоритмы X25 519MLKEM768 и X25 519;
объявлены устаревшими функции BIO_meth_get_*().
В новой версии OpenSSL значительно увеличился объём документации и размер кода тестовых наборов. Библиотеке OpenSSL широко используется для реализации протоколов Transport Layer Security (TLS) и Secure Sockets Layer (SSL), которые поддерживают зашифрованные сетевые соединения. Альтернативные проекты — BoringSSL (форк OpenSSL от Google) и LibreSSL (форк OpenSSL от команды OpenBSD).
Источник: habr.com