OpenSSL 3.4 представляет новые API и обновления FIPS
OpenSSL 3.4 содержит новые криптографические функции, включая наборы шифров целостности для TLS 1.3, оптимизацию ECC и обновления поставщиков FIPS.
OpenSSL выпустила версию 3.4, в которой внесены некоторые важные изменения и в некоторых случаях она потенциально несовместима с OpenSSL 3.3.
Среди основных изменений функции «TS_VERIFY_CTX_set_*» устарели в пользу новых замен «TS_VERIFY_CTX_set0_*», которые обещают улучшенную семантику.
Пользователи Windows также увидят измененный дизайн использования каталогов OPENSSLDIR, ENGINESDIR и MODULESDIR — теперь эти местоположения можно определять во время выполнения с использованием ключей реестра, в отличие от предыдущей конфигурации времени сборки.
Другие изменения включают обновления алгоритмов SHAKE-128 и SHAKE-256. Теперь для них требуется явная установка длины вывода, что делает их непригодными для использования с помощью «EVP_DigestFinal/_ex()» без установки параметра «xoflen». Между тем, реализации обмена ключами X25519 и X448 у поставщика FIPS в настоящее время не одобрены и помечены свойством «fips=no».
Процесс устаревания продолжается: такие функции, как «SSL_SESSION_get_time()», «SSL_SESSION_set_time()» и «SSL_CTX_flush_sessions()», заменяются на их соответствующие варианты «_ex», которые разработаны с учетом безопасности Y2038 для платформ, поддерживающих типы времени, безопасные для Y2038.
Также внесено изменение в способ обработки повторного согласования в приветственных сообщениях клиента TLS — для соединений с минимальной версией TLS выше 1,0 вместо пустого SCSV для повторного согласования будет использоваться пустое расширение повторного согласования.
OpenSSL 3.4 также представляет несколько новых функций. В частности, добавлена поддержка алгоритмов составной подписи с прямым получением, таких как RSA-SHA2-256, с соответствующими новыми функциями API. В этом выпуске также расширены индикаторы FIPS у поставщика FIPS, что позволяет подготовиться к будущим требованиям проверки FIPS 140-3.
Для PKCS#12 была добавлена поддержка RFC 9579 (PBMAC1), а выпуск включает дополнительный источник случайных начальных значений в форме RNG JITTER, активируемый через статически связанную библиотеку джиттерэнтропии. Кроме того, новые параметры «-not_before» и «-not_after» предоставляют явные способы установки дат начала и окончания для сертификатов, созданных с помощью команд req и x509.
Что касается TLS 1.3, OpenSSL теперь поддерживает наборы шифров только целостности TLS_SHA256_SHA256 и TLS_SHA384_SHA384. Также имеется поддержка запросов CRL в CMP, дополнительные расширения X.509v3, связанные с сертификатами атрибутов, и первоначальная поддержка сертификатов атрибутов согласно RFC 5755.
Наконец, примечательным дополнением для оптимизации производительности является возможность настройки инициализации группы ECC с использованием заранее вычисленных значений, которые теперь используются в реализации P-256 для снижения загрузки ЦП.
Журнал изменений выпуска содержит подробный список всех изменений в OpenSSL 3.4.