Вышел OpenSSL 4.1: DTLS 1.3, GREASE и четыре известных бага
Крупный функциональный релиз криптобиблиотеки, на которой держится HTTPS большинства Linux-серверов. Разбираем, что нового и стоит ли торопиться с обновлением.
23 октября 2026 года проект OpenSSL выпустил версию 4.1.0. Это функциональный релиз, а не срочное исправление безопасности: так он описан в заметках к релизу на GitHub. Главное новшество — поддержка DTLS 1.3 по RFC 9147. О выходе версии написали Phoronix и Help Net Security.
OpenSSL стоит под nginx, Apache, Postfix и почти любым сервисом, который отдаёт трафик по TLS. Поэтому каждый релиз ветки рано или поздно доезжает до ваших серверов — через пакеты дистрибутива или через собственную сборку в образе контейнера.
Владельцам сайтов здесь полезно задать подрядчику простой вопрос: кто обновляет TLS-стек на сервере после сдачи проекта. Если вы заказываете создание сайта, пропишите в договоре поддержки, кто следит за выпусками OpenSSL и обновлениями пакетов. Иначе сервер годами живёт на версии, о которой никто не помнит.
Что нового в OpenSSL 4.1
- DTLS 1.3. TLS-подобная защита для UDP: быстрее рукопожатие, прямая секретность, основа из TLS 1.3. Это нужно VoIP, WebRTC, IoT и туннельным протоколам. Появилась отдельная страница руководства
ossl-guide-dtlsv13(7), а API слушателя SSL теперь работает и с DTLS. - GREASE (RFC 8701). Во время рукопожатия отправляются случайные значения расширений. Так реализации не привязываются к фиксированному набору и не ломаются, когда в протокол добавляют новое.
- KDF для IKEv2. Функция выработки ключей для протокола IKEv2.
- Производительность. AVX-512-оптимизация SHAKE x4 для постквантовой подписи ML-DSA на x86_64, ускоренная расшифровка AES-CBC через AVX-512 и VAES, оптимизированные NTT для ML-KEM и ML-DSA на ppc64le.
- Новая архитектура. Начальная поддержка Elbrus2000.
Что убрали
Из сборки удалены цели Windows on Itanium и Windows CE. Исчезли опции конфигурации no-ecdsa и no-ecdh: по данным Help Net Security, они и раньше фактически не отключали ECDSA и ECDH. Если ваш скрипт сборки передаёт их в Configure, его придётся поправить.
Известные проблемы DTLS 1.3
Вместе с релизом проект перечислил четыре известных бага в коде DTLS 1.3:
SSL_ERROR_WANT_READможет скрывать постоянные ошибки приёма на слушателе.SSL_ERROR_SYSCALLможет возвращаться на ошибках записи, которые можно было повторить, и приложение рискует закрыть соединение раньше времени.- Сервер может оборвать рукопожатие алертом
unexpected_messageпосле потери пакетов с подтверждениями. - После KeyUpdate теряется буфер повторной передачи NewSessionTicket, и потерянные тикеты заново не отправляются.
Обновлять ли сервер прямо сейчас
Для обычного веб-сервера с TLS поверх TCP спешить некуда: стабильные дистрибутивы получат 4.1 не сразу и продолжат выпускать исправления для своей ветки. Узнать, какая версия у вас сейчас и с какой библиотекой собран nginx:
openssl version -a
ldd $(command -v nginx) | grep -E 'ssl|crypto'Если вы собираете OpenSSL сами в образе контейнера, сначала прогоните 4.1 на тестовом стенде. DTLS 1.3 в продакшене лучше не включать, пока перечисленные баги не закрыты. Как выбирать веб-сервер под TLS-нагрузку, мы разбирали в сравнении nginx и Apache.
Совет: следите за выпусками OpenSSL на странице релизов проекта. Функциональные версии можно ставить спокойно, по плану, а патчи безопасности для вашей ветки — сразу.