Состоялся релиз библиотеки OpenSSL 3.5.0 с реализацией протоколов SSL/TLS и различных алгоритмов шифрования. OpenSSL 3.5 отнесён к выпускам с длительным сроком поддержки (LTS), обновления для которых выпускаются в течение 5 лет (до апреля 2030 года). Поддержка прошлых веток OpenSSL 3.3, 3.2 и 3.0 LTS продлится до апреля 2026 года, ноября 2025 года и сентября 2026 года соответственно. Код проекта распространяется под лицензией Apache 2.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, добавлены алгоритмы X25519MLKEM768 и X25519.
- Объявлены устаревшими функции BIO_meth_get_*().
Источник: https://www.opennet.ru/opennews/art.shtml?num=63039