Проект OpenSSL анонсировал OpenSSL 4.1 — обновление криптографической библиотеки с открытым исходным кодом, используемой для защиты сетевых коммуникаций.
Самым значительным дополнением стала поддержка DTLS 1.3, описанного в RFC 9147. Протокол Datagram Transport Layer Security обеспечивает безопасность на уровне TLS для передачи данных в виде дейтаграмм, особенно по протоколу UDP, при котором пакеты могут приходить не по порядку или теряться. Версия 1.3 модернизирует протокол, улучшая его безопасность на основе TLS 1.3.
Кроме того, в OpenSSL 4.1 реализован протокол GREASE, описанный в RFC 8701. Этот механизм помогает предотвратить зависимость реализаций протокола от фиксированного набора распознаваемых значений, что упрощает внедрение новых расширений без проблем с совместимостью.
Еще одно заметное улучшение — криптографическая производительность, особенно для постквантовых алгоритмов. В OpenSSL 4.1 реализованы оптимизированные операции теоретико-числового преобразования для ML-DSA и ML-KEM на системах PPC64LE, а также более быстрые операции ML-DSA на процессорах x86-64.
В этом выпуске также добавлены оптимизированные для AVX-512 операции SHAKE x4 для ML-DSA и оптимизации AVX-512 и VAES для расшифровки AES-CBC на x86-64. Эти изменения повышают производительность на поддерживаемых процессорах.
Что касается API, то в API прослушивателя SSL добавлена поддержка DTLS, а поддержка функции получения ключа IKEv2 расширяет криптографические возможности библиотеки. Также добавлена первоначальная поддержка архитектуры процессора Elbrus2000.
Стоит отметить несколько изменений в совместимости. В OpenSSL 4.1 удалены цели сборки для Windows CE и Windows на Itanium. Параметры конфигурации no-ecdsa и no-ecdh были удалены, поскольку они не отключали соответствующие реализации. Теперь разработчикам следует использовать no-ec для отключения поддержки эллиптических кривых.
Кроме того, утилита tsget перешла с устаревшего модуля WWW::Curl::Easy Perl на Net::Curl::Easy. Всем, кто использует эту утилиту, следует установить новую зависимость перед обновлением.
Однако команда OpenSSL задокументировала четыре известные проблемы в версии 4.1, все они связаны с функциональностью DTLS. К ним относятся проблемы с повторной передачей определенных записей после сообщений DTLS 1.3 KeyUpdate, некорректное отображение ошибок при подключении к прослушивателю DTLS и сбои при рукопожатии в определенных условиях потери пакетов. Исправления запланированы в будущих выпусках.
Подробнее см. в примечаниях к выпуску.
