Инфобез
OpenSSL 4.0.0: Безопасность в приоритете над совместимостью
Разработчики OpenSSL представили масштабное обновление, радикально меняющее внутреннее устройство и технологический стек библиотеки.
В версии 4.0.0 авторы пошли на смелый шаг: ради тотальной защиты данных они окончательно отказались от поддержки множества устаревших механизмов, которые годами сохранялись лишь для обратной совместимости.
Глобальная «чистка» устаревших стандартов
Основной упор в новом релизе сделан на актуализацию криптографических стандартов. Из библиотеки полностью вырезаны:
- SSLv3 — признанный небезопасным еще десять лет назад;
- SSLv2 Client Hello;
- Классические «движки» (engines) для подключения внешних модулей.
Кроме того, в TLS по умолчанию отключена поддержка ряда слабых эллиптических кривых. Теперь их использование возможно только при специфической ручной сборке проекта.
Ревизия API и внутренние изменения
Изменения в программном интерфейсе (API) направлены на повышение строгости кода:
-
Типизация: Множество функций для работы с X.509 теперь используют модификатор
const. -
Инкапсуляция: Внутренние структуры (например,
ASN1_STRING) теперь скрыты от прямого доступа извне. -
Управление памятью: Библиотека отошла от использования
atexitдля очистки глобальных данных, внедрив более предсказуемые механизмы.
Усиление защиты и новые стандарты
Безопасность была усилена и на уровне проверок. В частности, ужесточен контроль параметров для PKCS5_PBKDF2_HMAC при работе с FIPS-провайдером, а проверки сертификатов и списков отзыва (CRL) стали более строгими.
Параллельно с удалением старого, OpenSSL 4.0.0 внедряет современные технологии:
- Encrypted Client Hello (ECH): Шифрует метаданные TLS-соединения.
-
Постквантовая криптография: Реализована гибридная группа
curveSM2MLKEM768. -
Международные стандарты: Добавлена поддержка китайских алгоритмов
SM2иSM3. -
Современные функции: Внедрены алгоритмы
cSHAKEи поддержкаFFDHEдля протокола TLS 1.2.
Изменения в инструментарии
Инструментарий командной строки также обновился. Устаревший скрипт c_rehash окончательно заменен встроенной командой openssl rehash. Малоэффективные или некорректно работающие компоненты, такие как BIO_f_reliable, были исключены без замены.
Итог: Переход на OpenSSL 4.0.0 потребует от разработчиков адаптации кода под новый API. Однако это необходимая цена за доступ к защищенной и современной криптографической базе, свободной от «багажа» прошлых десятилетий.