Дерево страниц

Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.


Информация
titleДанная статья применима к:
  • Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.7), РУСБ.10015-10
  • Astra Linux Special Edition РУСБ.10015-17
  • Astra Linux Special Edition РУСБ.10015-37 (очередное обновление 7.7)
  • Astra Linux Special Edition РУСБ.10015-03 (очередное обновление 7.6)
  • Astra Linux Special Edition РУСБ.10152-02 (очередное обновление 4.7)
  • Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6)
  • Astra Linux Special Edition РУСБ.10015-16 исп. 1
  • Astra Linux Special Edition РУСБ.10015-16 исп. 2
  • Astra Linux Special Edition РУСБ.10265-01 (очередное обновление 8.1)
  • Astra Linux Common Edition 2.12


Введение

OpenSSL — это инструмент защиты и сертификации данных. Инструмент доступен в ОС Astra Linux по умолчанию. В Astra Linux Special Edition 1.8 используется OpenSSL поколения 3 (версия 3.2). В более ранних обновлениях используется поколение 1.1 (версия 1.1). Узнать установленную версию OpenSSL можно командой:

Command

openssl version

Различия версий OpenSSL 1.1.1 и 3.0.0


Информация

Поддержка OpenSSL 1.1 .1 прекращена в сентябре 2023 года. Между версиями отсутствует прямая совместимость. Нумерация 2.х применяется только к FIPS-модулю в составе OpenSSL, поэтому после 1.1.1 идет версия 3.0.0

OpenSSL 3.0.0 включает в себя множество изменений и улучшений по сравнению с предыдущей версией 1.1.1. Вот несколько различий между ними:

  • Добавлено множество новых опций для openssl list 
  • Добавлено руководство по переходу к новой версии в man(7) 
  • Добавлены функция OPENSSL_info()  и команда openssl info  для получения встроенной справки
  • Реализована поддержка подключаемых групп протокола TLSv1.3. 
  • Добавлена поддержка Kernel TLS (KTLS) - обработки данных для протокола TLS на уровне ядра
  • Лицензия Apache обновлена до v2.0.
  • Все варианты EVP-шифров CAST5, BF, IDEA, SEED, RC2, RC4, RC5 и DES отмечены как устаревшие
  • Хэш-функции EVP MD2, MD4, MDC2, WHIRLPOOL и RIPEMD-160 отмечены как устаревшие
  • Добавлены удобные функции для генерации асимметричных пар ключей
  • Типы и функции OCSP_REQ_CTX, EC_KEY  и EC_KEY_METHOD, RSA  и RSA_METHOD, DSA  и DSA_METHOD, DH  и DH_METHOD, ERR_load  отмечены как устаревшие
  • Удален интерфейс RAND_DRBG API 
  • Добавлены провайдеры (providers), новая концепция для модульности OpenSSL, которая заменит ENGINE API и движки (ENGINE) для работы криптографических алгоритмов.
  • ENGINE API отмечен как устаревший
  • Добавлен OSSL_LIB_CTX , контекст библиотеки libcrypto для менеджеров контекстов
  • В OpenSSL API добавлены новые функции для поддержки структур OSSL_LIB_CTX 
  • Из утилиты openssl  удален интерактивный режим
  • Алгоритмы X25519, X448, Ed25519, Ed448, SHAKE128 и SHAKE256 включены в состав FIPS-провайдеров
  • Сертификаты X509, подписанные с использованием SHA1, больше не разрешены при уровне безопасности 1 или выше. Уровень безопасности по умолчанию для TLS равен 1. Сертификаты, подписанные с использованием SHA1 по умолчанию больше не проходят проверку подлинности серверов или клиентов.
  • Инструменты отладки enable-crypto-debug  и enable-crypto-debug-backtrace  были отключены, теперь применяется очистка адресов и обнаружение утечек
  • Появилась поддержка протокола управления сертификатами CMP, который позволяет запрашивать сертификаты у сервера удостоверяющего центра. Утилита openssl-cmp  для работы с сертификатами позволяет передавать запросы через HTTP/HTTPS.
  • Добавлен полноценный HTTP/HTTPS-клиент, поддерживающий методы GET и POST, произвольные типы содержимого запросов и ответов, поддерживающий TLS, соединения через HTTP-прокси, соединения и обмен данными через пользовательский BIOs (разрешающий неявные соединения) и обработку таймаутов.
  • Добавлен инструмент util/check-format.pl для проверки соблюдения правил безопасности при разработке приложений.
  • Добавлены методы OSSL_ENCODER  и OSSL_DECODER  для операций по защите данных и работающие через API
  • Добавлена структура OSSL_PARAM_BLD , облегчающая работу с API OSSL_PARAM 
  • Добавлены макросы ERR_raise() и ERR_raise_data()  для работы с ошибками
  • Функции ERR_put_error(), ERR_get_error_line(), ERR_get_error_line_data(), ERR_peek_error_line_data(), ERR_peek_last_error_line_data() and ERR_func_error_string()  отмечены как устаревшие
  • Добавлена функция OSSL_PROVIDER_available()  для проверки доступности провайдера
  • Добавлена команда openssl mac, который использует API EVP_MAC.
  • Добавлена команда openssl kdf, которая использует API EVP_KDF.
  • Добавлена поддержка инструментов для трассировки и вывода данных отладки
  • Добавлен интерфейс хэш-функций EVP_MAC . Поддерживаются следующие функции BLAKE2, CMAC, GMAC, HMAC, KMAC, POLY1305 и SIPHASH 
  • Добавлен интерфейс формирования ключей EVP_KDF . Поддерживаются следующие функции формирования ключа : HKDF, KBKDF, KRB5 KDF, PBKDF2, PKCS12 KDF, SCRYPT, SSH KDF, SSKDF, TLS1 PRF, X9.42 KDF и X9.63 KDF .
  • Все низкоуровневые хэш-функции алгоритмов MD2, MD4, MD5, MDC2, RIPEMD 160, SHA1, SHA224, SHA256, SHA384, SHA512 и Whirlpool  отмечены как устаревшие
  • Все низкоуровневые функции шифрования для алгоритмов AES, Blowfish, Camellia, CAST, DES, IDEA, RC2, RC4, RC5 и SEED  отмечены как устаревшие
  • Основные различия поколений OpenSSL 1.1 и OpenSSL 3

    Исключение интерактивного режима

    В OpenSSL поколение 3 исключен интерактивный режим (режим командной строки). Для выполнения функций, ранее реализуемых в интерактивном режиме, следует использовать опции командной строки.

    Новая концепция модульности

    В OpenSSL поколение 3 используется новая концепция подключаемых модулей провайдеры (providers). Новая концепция является альтернативой интерфейсу для работы с динамически подключаемым модулями (ENGINE API), при этом провайдеры предоставляют более высокоуровневые методы работы (средства сериализации, примитивы, контексты и т.д.). Динамически подгружаемые модули (engine) признаны устаревшими, а их дальнейшая поддержка не гарантируется.

    Список провайдеров для OpenSSL поколения 3 доступен по команде:

    Command

    openssl list -providers

    Поддержка устаревших встроенных алгоритмов

    По умолчанию, алгоритмы инструмента OpenSSL, отмеченные как устаревшие, исключены из состава встроенных алгоритмов и вынесены в отдельный провайдер legacy. Этот провайдер по умолчанию отключен.

    Раскрыть
    titleКак задействовать устаревшие алгоритмы для обеспечения совместимости

    Для разового использования устаревшего алгоритма достаточно добавить опцию -provider legacy к команде, например так:

    Command
    Titleecho -n "hello" | openssl md4 -provider legacy

      MD4(stdin)= 866437cb7a794bce2b727acc0362ee27



    Предупреждение

    Использование устаревших алгоритмов защитного преобразования данных небезопасно!

    Чтобы полностью задействовать устаревшие алгоритмы необходимо подключить провайдер legacy, для чего нужно отредактировать конфигурационный файл /etc/ssl/openssl.cfg следующим образом:

    1. Добавить в секцию [openssl_init] строку providers = provider_section, если она не была добавлена ранее:

      Блок кода
      [openssl_init]
      providers = provider_section # добавить или раскоментировать
      engines = engine_section


    2. Перейти в конец файла /etc/ssl/openssl.cfg.
    3. Добавить секцию [provider_section], если она не была добавлена ранее:

      Блок кода
      [provider_section] # По умолчанию есть, gostprov - провайдер ГОСТ
      default = default_section # добавить или раскоментировать
      gostprov = gostprov_section 


      Информация

      Провайдер ГОСТ gostprov включается при установке пакета libgost-astra и выключается при его удалении


    4. Раскоментировать секцию  [default_sect]  и параметр activate = 1 в секции [default_sect], если ранее он не был раскоментирован или добавить их:

      Блок кода
      [default_sect] # добавить или раскоментировать
      activate = 1 # добавить или раскоментировать


    5. Добавить в секцию [provider_section] строку с указанием секции провайдера legacy = legacy_section. Итоговый вид секции провайдеров в конце файла /etc/ssl/openssl.cfg :

      Блок кода
      [provider_section]
      default = default_section
      gostprov = gostprov_section
      legacy = legacy_section # добавить
      [legacy_section] # добавить
      activate=1 # добавить
      [gostprov_section]
      activate=1
      [default_section] # добавить или раскоментировать 
      activate=1 # добавить или раскоментировать



    Проверка работы провайдера

    Проверить, включена ли поддержка legacy можно посмотрев список провайдеров :

    Image Added

    Или выполнив без опции -provider legacy команду :

    Command
    Titleecho -n "hello" | openssl md4

      MD4(stdin)= 866437cb7a794bce2b727acc0362ee27

    Где md4 — любая из хэш-функций, отмеченная как устаревшая.

    Основной перечень функциональных различий между версиями OpenSSL 1.1.1 и 3.0.0

    • Добавлены:
      • новые опции для openssl list (список доступен по команде openssl list -commands);
      • руководство по переходу к новой версии в раздел man(7) документации разработчиков OpenSSL;
      • функция OPENSSL_info() и команда openssl info  для получения встроенной справки;
      • поддержка подключаемых групп протокола TLSv1.3;
      • поддержка Kernel TLS (KTLS) - обработки данных для протокола TLS на уровне ядра;
      • функции для генерации асимметричных пар ключей;
      • OSSL_LIB_CTX , контекст библиотеки libcrypto для менеджеров контекстов;
      • новые функции для поддержки структур OSSL_LIB_CTX в OpenSSL API;
      • алгоритмы X25519, X448, Ed25519, Ed448, SHAKE128 и SHAKE256 включены в состав FIPS-провайдеров;
      • полноценный HTTP/HTTPS-клиент, поддерживающий:
        • методы GET и POST;
        • произвольные типы содержимого запросов и ответов
        • TLS;
        • соединения через HTTP-прокси;
        • соединения и обмен данными через пользовательский BIOs (разрешающий неявные соединения) и обработку таймаутов.
      • инструмент util/check-format.pl для проверки соблюдения правил безопасности при разработке приложений;
      • методы OSSL_ENCODER  и OSSL_DECODER  для операций по защите данных и работающие через API;
      • структура OSSL_PARAM_BLD , облегчающая работу с API OSSL_PARAM;
      • макросы ERR_raise() и ERR_raise_data() для работы с ошибками;
      • функция OSSL_PROVIDER_available() для проверки доступности провайдера;
      • команда openssl mac, использующая API EVP_MAC;
      • команда openssl kdf, которая использует API EVP_KDF;
      • поддержка инструментов для трассировки и вывода данных отладки;
      • интерфейс хэш-функций EVP_MAC . Поддерживаются следующие функции: BLAKE2, CMAC, GMAC, HMAC, KMAC, POLY1305 и SIPHASH;
      • интерфейс формирования ключей EVP_KDF . Поддерживаются следующие функции формирования ключа: HKDF, KBKDF, KRB5 KDF, PBKDF2, PKCS12 KDF, SCRYPT, SSH KDF, SSKDF, TLS1 PRF, X9.42 KDF и X9.63 KDF;
      • поддержка протокола управления сертификатами CMP, позволяющая запрашивать сертификаты у удостоверяющего центра через HTTP/HTTPS (инструмент openssl-cmp);
    • Для TLS по умолчанию установлен уровень безопасности 1, при этом  запрещено использование сертификатов X509, подписанных с использованием SHA1 (такие сертификаты не проходят проверку подлинности);
    • Включены инструменты отладки enable-crypto-debug  и enable-crypto-debug-backtrace, применяется очистка адресов и обнаружение утечек;
    • Удалены:
      • интерактивный режим утилиты openssl;
      • интерфейс RAND_DRBG API;
    • Отмечены как устаревшие:
      • Типы и функции:
        • OCSP_REQ_CTX;
        • EC_KEY  и EC_KEY_METHOD;
        • RSA  и RSA_METHOD, DSA  и DSA_METHOD;
        • DH  и DH_METHOD, ERR_load;
        • ERR_put_error();
        • ERR_get_error_line();
        • ERR_get_error_line_data();
        • ERR_peek_error_line_data();
        • ERR_peek_last_error_line_data() и ERR_func_error_string();
        • все низкоуровневые хэш-функции алгоритмов MD2, MD4, MD5, MDC2, RIPEMD 160, SHA1, SHA224, SHA256, SHA384, SHA512 и Whirlpool;
        • все низкоуровневые функции защитного преобразования для алгоритмов AES, Blowfish, Camellia, CAST, DES, IDEA, RC2, RC4, RC5 и SEED;
        • хэш-функции EVP: MD2, MD4, MDC2, WHIRLPOOL и RIPEMD-160;
        • все низкоуровневые функции генерации открытого ключа для алгоритмов DH, DSA, ECDH, ECDSA и RSA . Протоколы SSL 3, TLS 1.0, TLS 1.1 и DTLS 1.0 работают только на уровне безопасности 0, за исключением случаев, когда используется обмен ключами RSA без SHA1;
      • интерфейс ENGINE API (EVP — высокоуровневый API для работы с алгоритмами защитного преобразования данных, работающий без привязки к их конкретным реализациям);

        Информация

        EVP — высокоуровневый API для работы с алгоритмами защитного преобразования данных, работающий без привязки к их конкретным реализациям


      • все варианты EVP-защитного преобразования алгоритмов CAST5, BF, IDEA, SEED, RC2, RC4, RC5 и DES.
    • Лицензия Apache обновлена до v2.0;

    Различия версий 3.0.0 и 3.1.0

    • Добавлены:
      • параметр конфигурации провайдера FIPS для принудительной проверки EMS во время выполнения KDF TLS1_PRF. Для проверки к команде openssl fipsinstall необходимо добавить параметр -ems-check;
      • поддержка алгоритма KMAC (KECCAK Message Authentication Code) в функцию KBKDF (Key Based Key Derivation Function);
    • провайдер FIPS включает в себя алгоритмы 3DES в режиме ECB, CBC и Adds для обеспечения обратной совместимости с прошлыми версиями OpenSSL. Использование алгоритмов в операциях указывается опцией fips=yes;
    • поддержка провайдерами инструкции RNDR и регистров RNDRRS для ARM-архитектуры (aarch64) при генерации случайных чисел;
    • команды s_client и s_server теперь сообщают, когда версия TLS не включает механизм повторного согласования, что позволяет избежать ошибок при работе с TLS и повторном согласовании в начале сеанса связи;
    • поддержка AES-GCM с помощью инструкций AVX 512 vAES и vPCLMULQDQ;
    • параллельное двухпроцессорное 1536/2048-разрядное модульное возведение в степень для процессоров с поддержкой AVX512_IFMA;
    • начиная с версии OpenSSL 3.1 отмечены как устаревшие начиная и могут быть отключены путем определения макроса OPENSSL_NO_DEPRECATED_3_1 следующие функции:
      • OPENSSL_LH_stats;
      • OPENSSL_LH_node_stats;
      • OPENSSL_LH_node_usage_stats;
      • OPENSSL_LH_stats_bio;
      • OPENSSL_LH_node_stats_bio;
      • OPENSSL_LH_node_usage_stats_bio;
    • Макрос DEFINE_LHASH_OF заменен на DEFINE_LHASH_OF_EX;
    • Для подписей PKCS#1 RSASSA-PSS длина значения параметра salt может изменяться до максимальной, чтобы соответствовать FIPS 186-4. Чтобы использовать максимальную длину нужно присвоить значение OSSL_PKEY_RSA_PSS_SALT_LEN_AUTO_DIGEST_MAX для параметра rsa_pss_saltlen

      Информация

      Параметр salt определяет длину входной строки, передающейся вместе с преобразуемыми данными в хэш-функцию


    Различия версий 3.1.0 и 3.2.0

    • Добавлены:
    Все низкоуровневые функции генерации открытого ключа для алгоритмов DH, DSA, ECDH, ECDSA и RSA  отмечены как устаревшие. Протоколы SSL 3, TLS 1.0, TLS 1.1 и DTLS 1.0 работают только на уровне безопасности 0, за исключением случаев, когда используется обмен ключами RSA без SHA1.

    Различия версий 3.0.0 и 3.1.0

    • Добавлен параметр конфигурации провайдера FIPS для принудительной проверки EMS во время выполнения KDF TLS1_PRF. Для проверки к команде openssl fipsinstall необходимо добавить параметр -ems-check
    • Провайдер FIPS включает в себя алгоритмы 3DES в режиме ECB, CBC и Adds для обеспечения обратной совместимости с прошлыми версиями OpenSSL. Использование алгоритмов в операциях указывается опцией fips=yes
    • Добавлена поддержка алгоритма KMAC (KECCAK Message Authentication Code) в функцию KBKDF (Key Based Key Derivation Function)
    • Поддержка провайдерами инструкции RNDR и регистров RNDRRS для ARM-архитектуры (aarch64) при генерации случайных чисел
    • Приложения s_client и s_server теперь сообщают, когда версия TLS не включает механизм повторного согласования, что позволяет избежать ошибок при работе с TLS и повторном согласовании в начале сеанса связи
    • AES-GCM поддерживается с помощью AVX 512 vAES и vPCLMULQDQ
    • Параллельное двухпроцессорное 1536/2048-разрядное модульное возведение в степень для процессоров с поддержкой AVX512_IFMA
    • Функции OPENSSL_LH_stats, OPENSSL_LH_node_stats, OPENSSL_LH_node_usage_stats, OPENSSL_LH_stats_bio, OPENSSL_LH_node_stats_bio и OPENSSL_LH_node_usage_stats_bio теперь помечены как устаревшие начиная с версии OpenSSL 3.1 и могут быть отключены путем определения макроса OPENSSL_NO_DEPRECATED_3_1.
    • Макрос DEFINE_LHASH_OF заменен на DEFINE_LHASH_OF_EX
    • Для подписей PKCS#1 RSASSA-PSS длина значения параметра salt может изменяться до максимальной, чтобы соответствовать FIPS 186-4. Чтобы использовать максимальную длину нужно присвоить значение OSSL_PKEY_RSA_PSS_SALT_LEN_AUTO_DIGEST_MAX для параметра rsa_pss_saltlen <перепроверить>

    Различия версий 3.1.0 и 3.2.0

    • Алгоритм хэширования BLAKE2b поддерживает настраиваемую длину выходных данных путем установки параметра size .
    • Добавлена функция для удаления объектов из хранилища с помощью OUR-LOCAL_STORE_delete()  и соответствующей функции API провайдера-хранилища mgmt OSSL_FUNC_store_delete() .
    • Добавлена функция OSSL_FUNC_store_open_ex() в API провайдера-хранилища mgmt  для передачи обратного вызова ключевой фразы при открытии хранилища
    • <НИЖЕ БУДЕТ ПРОИЗВЕДЕНА КОРРЕКТИРОВКА ТЕРМИНОВ>
    • Изменена длина параметра salt по умолчанию, используемая файлами PBES2 KDF (PBKDF2 и scrypt), с 8 байт до 16 байт. В стандарте PKCS#5 (RFC 8018) для PBE используется длина записи в 64 байта, а для PBES2 рекомендуется использовать минимум 64
      бита. Для соответствия требованиям FIPS в PBKDF2 требуется длина записи в 128 бит. Это влияет на параметры утилиты openssl , такие как genrsa и pkcs8, так же на методы API, такие как PM_write_bio_Private Key(), которые зависят от значения по умолчанию. В утилите openssl для параметров “pkcs8” и “enc” была добавлена дополнительная опция saltlen, позволяющая изменить значение параметра salt не должно быть задано по умолчанию.
    • Изменено значение параметра конфигурации ess_cert_id_alg по умолчанию, которое используется для вычисления идентификатора сертификата открытого ключа TSA. Алгоритм по умолчанию обновлен до SHA256 вместо SHA1.
    • Оптимизация для алгоритма SM2 в aarch64. Добавлена новая опция настройки no-sm2-precomp для отключения предварительно вычисленной таблицы.
    • Добавлена поддержка на стороне клиента для QUICK
    • Реализация secp384r1 с использованием редукции Solinas для повышения скорости работы эллиптической кривой NIST P-384.Чтобы включить реализацию, необходимо использовать параметр сборки enable-ec_nistp_64_gcc_128.
    • Добавлена поддержка алгоритма SHA256/192
    • Добавлена поддержка безопасного получения обновления сертификата корневого центра сертификации в CMP.
    • Добавлена функция SSL_get 0_group_name() для предоставления доступа к имени группы, используемой для обмена ключами TLS.
    • Добавлены опции no-http для принудительного отключения поддержки HTTP, no-apps и no-docs чтобы отключить создание приложения командной строки openssl и документирования. <УТОЧНИТЬ>
    • Добавлена опция настройки no-necks, который отключает поддержку X25519, X448 и EdDSA.
    • Добавлены функции провайдера OSSL_FUNC_key mgmt_im/export_types_ex(), которые получают контекст провайдера в качестве параметра
    • Новаяфункциявssl_lib под названиемSSL_get_handshake_rtt которая позволяет вычислять время доставки пакетов для TLS
    • Добавлена опция “-quic” в s_client, чтобы разрешить подключение к серверам QUIC. Для QUICK требуется использование расширения ALPN протокола TLS, поэтому это необходимо указать это с помощью опции “-alpn”. Рекомендуется использовать команду “advanced” s_client command с параметром “-adv”.
    • Добавлен “расширенный” командный режим для s_client. Для его использования необходимо указывать параметр “-adv”.После запуска s_client с помощью “-adv” введите “{help}”, чтобы отобразить список доступных команд.
    • Добавлена поддержка необработанного открытого ключа (RFC7250). Аутентификация поддерживается путем сопоставления ключей с локальной политикой (записи TLSA на основе существующих ключей) или DANE (записи TLSA, полученные приложением из DNS). Записи TLSA также будут соответствовать одному и тому же ключу в сертификате сервера, если не предусматривается использование RPK. TLSA-запись позволяет владельцу домена подтвердить подлинность используемого сертификата или цифровой подписи средствами DNSSEC
    • Добавлена функция EC_GROUP_to_params(), которая создает массив SSL_PARAM из заданной EC_GROUP.
    • Реализована поддержка всех пяти экземпляров EdDSA из RFC8032: Ed25519, Ed25519 ctx, Ed25519ph, Ed448 и Ed448ph. Потоковая передача пока не поддерживается для вариантов HashEdDSA (Ed25519ph и Ed448ph).
    • Реализована поддержка процессорных инструкций SM4-XTS
    • Добавлена функция OSSL_sleep(), не зависящая от платформы.
    • Реализована поддержка детерминированных подписей ECDSA (RFC6979).
    • Реализована поддержка алгоритма AES-GCM-SIV (RFC8452).
    • Добавлена поддержка подключаемых (на основе провайдера) алгоритмов подписи TLS. Это позволяет выполнять операции аутентификации по протоколу TLS 1.3 с использованием алгоритмов, по умолчанию не включенных в OpenSSL.
    • Добавлена поддержка подключаемых (на основе провайдера) алгоритмов подписи CMS. Это позволяет CMS подписывать и проверять операции с помощью алгоритмов, которые по умолчанию не включены в OpenSSL.
    • Добавлена поддержка гибридного шифрования с открытым ключом (HPKE).Внешние API определены в файле include/openssl/hpc.h и задокументированы в  doc/man3/OSSL_HPKE_CTX_new.ipod
    • Реализована
      • поддержка настраиваемой длины выходных данных путем установки параметра size в алгоритм хеширования BLAKE2b;
      • возможность удаления объектов из хранилища с помощью метода OUR-LOCAL_STORE_delete()  и соответствующей функции API провайдера-хранилища mgmt OSSL_FUNC_store_delete() ;
      • функция OSSL_FUNC_store_open_ex() в API провайдера-хранилища mgmt для передачи обратного вызова ключевой фразы при открытии хранилища;
      • поддержка на стороне клиента для QUICK;
      • дополнительная опция saltlen, позволяющая изменить значение параметра salt не должно быть задано по умолчанию в утилите openssl для параметров pkcs8 и enc;
      • поддержка алгоритма SHA256/192;
      • поддержка безопасного получения обновления сертификата корневого центра сертификации в CMP;
      • функция SSL_get 0_group_name() для предоставления доступа к имени группы, используемой для обмена ключами TLS;
      • конфигурационные опции no-http для принудительного отключения поддержки HTTP, no-apps и no-docs,чтобы отключить использование приложений командной строки для утилиты openssl и вывод документации;
      • конфигурационная опция  no-necks, которая отключает поддержку кривых X25519, X448 и EdDSA;
      • функции провайдера OSSL_FUNC_key mgmt_im/export_types_ex(), которые получают контекст провайдера в качестве параметра;
      • функцияв библиотеке ssl_libSSL_get_handshake_rtt, позволяющая вычислять время доставки пакетов для протокола TLS;
      • расширенный командный режим для команды s_client (параметр “-adv”);
      • опция -quic в команде s_client разрешающая подключение к серверам QUIC (требуется использование расширения ALPN протокола TLS с помощью опции -alpn);
      • поддержка необработанного открытого ключа (RFC7250);
      • функция EC_GROUP_to_params(), которая создает массив SSL_PARAM из заданной EC_GROUP;
      • добавлена функция OSSL_sleep(), не зависящая от платформы;
      • поддержка подключаемых (на основе провайдера) алгоритмов подписи TLS, что позволяет выполнять операции аутентификации по протоколу TLS 1.3 с использованием алгоритмов, по умолчанию не включенных в OpenSSL;
      • поддержка подключаемых (на основе провайдера) алгоритмов подписи CMS, что позволяет CMS подписывать и проверять операции с помощью алгоритмов, которые по умолчанию не включены в OpenSSL;
      • поддержка гибридного защитного преобразования с открытым ключом (HPKE);
      • поддержка сжатия сертификатов (RFC8879), включая библиотеки для сжатия Brotli и Zstandard;
      • возможность указывать пользовательские атрибуты к файлам стандарта PKCS#12;
      • API метод PKCS12_create_ex2, идентичный существующему PKCS12_create_ex, но допускающий заданный пользователем обратных вызовов;
      • KCS12_SAFEBAG_set_0_attr, позволяющий добавлять новые значения переменной attr к существующему стеку STACK_OF attrs;
      • опция определения длины параметра salt для стандарта PKCS#12;
      • дополнительные профили защиты SRTP из RFC8723 и RFC8269;
      • поддержка механизма TCP Fast Open для (RFC7413), что позволяет передавать данные в пакетах SYN и SYN-ACK;
      • наборы для защитного преобразования на основе DHE_PSK (RFC 4279) и ECDHE_PSK (RFC 5489);
      • новые API-интерфейсы SSL для работы с отпечатками TLS/SSL;
      • поддержка Bignum-значений в API OSSL_PARAM;
      • проверка ключей для X.509 при подписании разрабатываемого кода в соответствии с требованиями добровольной сертификации CA/Browser Forum;
      • новые методы BIO_sendmmsg() и BIO_recvmmsg() для работы с защищенными потоками BIO, которые позволяют отправлять и получать несколько сообщений за один вызов. (подробности доступны в BIO_sendmmsg(3));
      • функции BIO_s_dgram_pair() и BIO_s_dgram_mem() для поддержки работы c памятью в защищенных потоках BIO и корректной работы методов BIO_sendmmsg() и BIO_recvmmsg();
      • поддержка кривых Brainpool в TLS-1.3;
      • поддержка функций формирования ключа по алгоритмам Argon2d, Argon2i, Argon2id KDFs, а также базовая реализация пула потоков для некоторых платформ;
      • возможность использования готовых наборов чисел в процессе защитного преобразования в функциях CMS API и с помощью параметра  -digest для утилиты openssl;
      • реализация эллиптической кривой secp384r1 с использованием редукции для повышения скорости работы некоторых алгоритмов (параметр сборки enable-ec_nistp_64_gcc_128);
      • поддержка всех пяти экземпляров схем цифровой подписи EdDSA из RFC8032: Ed25519, Ed25519 ctx, Ed25519ph, Ed448 и Ed448ph (потоковая передача пока не поддерживается для вариантов HashEdDSA (Ed25519ph и Ed448ph));
      • поддержка процессорных инструкций SM4-XTS;
      • поддержка детерминированных подписей ECDSA (RFC6979);
      • поддержка алгоритма AES-GCM-SIV (RFC8452);
      • поддержка HPKE DHKEM у провайдеров, используемых точкой доступа HPKE (RFC9180)
    • Добавлена поддержка сжатия сертификатов (RFC8879), включая библиотеки для сжатия Brotli и Zstandard
    • Добавлена возможность добавлять пользовательские атрибуты к файлам PKCS12. Добавлен новый API PKCS12_create_ex2, идентичный существующему PKCS12_create_ex, но допускающий заданный пользователем обратных вызовов.Добавлен новый PKCS12_SAFEBAG_set 0_attr, который позволяет добавлять новый attr к существующему STACK_OF attrs.
    • Для PKCS12 добавлена опция определения длины параметра salt
    • Добавлены дополнительные профили защиты SRTP из RFC8723 и RFC8269
    • Добавлена поддержка механизма TCP Fast Open для  (RFC7413), что позволяет передавать данные в пакетах SYN и SYN-ACK
    • Добавлены наборы шифров на основе DHE_PSK (RFC 4279) и ECDHE_PSK (RFC 5489)
    • Добавьте новые API-интерфейсы SSL для работы с отпечатками TLS/SSL
    • Функция PKCS12_parse() теперь поддерживает файлы PKCS12 без MAC
    • Добавлена поддержка Bignum-значений в API OSSL_PARAM
      • ;
      • новая опция настройки no-sm2-precomp для отключения предварительно вычисленной таблицы для оптимизации алгоритма SM2 в aarch64;
      • поддержка файлов PKCS12 без MAC в функции PKCS12_parse();
    • изменена длина параметра salt по умолчанию, используемая файлами PBES2 KDF (PBKDF2 и scrypt), с 8 байт до 16 байт:
      • в стандарте PKCS#5 (RFC 8018):
        • для PBE используется длина записи в 64 байта;
        • для PBES2 рекомендуется использовать минимум 64 бита;
      • для соответствия требованиям FIPS в PBKDF2 требуется длина записи в 128 бит, что влияет на параметры утилиты openssl , такие как genrsa и pkcs8, так же на методы API, такие как PM_write_bio_Private Key(), зависящие от значения по умолчанию;
    • изменено значение параметра конфигурации ess_cert_id_alg по умолчанию, которое используется для вычисления идентификатора сертификата открытого ключа TSA. Алгоритм по умолчанию обновлен до SHA256 вместо SHA1;
    • при При использовании команды openssl x509 для проверки атрибутов сертификата когда проверка завершается неудачей возвращается код завершения с ошибкой, и проверка завершается неудачей <ПРОВЕРИТЬ>описанием ошибки;
    • уровень Уровень безопасности SSL/TLS по умолчанию был изменен с 1 на 2. Ключи RSA, DSA и DH менее 2048 бит, а также ключи ECC менее 224 бит больше не применимы.;
    • Функции функции семейства SSL_CTX_set_cipher_list теперь принимают шифры определяют защитное преобразование, используя их стандартные имена стандарта IANA;
    • Функция функция получения ключа PVK была перенесена из b2i_PVK_bio_ex() в отдельный криптографический провайдер в качестве EVP_KDF. Приложения, которым требуется этот KDF, должны будут загружать устаревший криптографический провайдер.;
    • наборы алгоритмов защитного преобразования Наборы шифров с режимом CCM 8 в TLS были понижены до нулевого уровня безопасности;
    • Имена имена в X.509 теперь по умолчанию отображаются в виде строк UTF-8.
    • Добавлена проверка ключей для X.509 при подписании разрабатываемого кода в соответствии с требованиями добровольной сертификации CA/Browser Forum
    • -8;
    • приложения Приложения x509, ca и req теперь выдают сертификаты X.509 v3. Опция -x509v1 в req поддерживает генерацию сертификатов X.509 v1. Функции X509_sign() и X509_sign_ctx(), проверяют, имеет ли сертификат X.509 версию 3, если информация о сертификате содержит упоминания X.509.
    • API CMS расширен методами CMS_SignedData и CMS_EnvelopedData для обработки данных
    • Функции CMS_add0_cert() и CMS_add1_cert() не выдают ошибку, если добавляемый сертификат уже присутствует. Функции CMS_sign_ex() и CMS_sign() игнорируют любые повторяющиеся сертификаты в аргументах certs.
    • Добавлены новые методы BIO_sendmmsg() и BIO_recvmmsg() для работы с защищенными потоками BIO, которые позволяют отправлять и получать несколько сообщений за один вызов. (подробности доступны в BIO_sendmmsg(3))
    • Добавлены функции BIO_s_dgram_pair() и BIO_s_dgram_mem() для поддержки работы c памятью в защищенных потоках BIO и корректной работы методов BIO_sendmmsg() и BIO_recvmmsg()
    • сертификатов X.509 v1;
    • функции X509_sign() и X509_sign_ctx(), проверяют, имеет ли сертификат X.509 версию 3, если информация о сертификате содержит упоминания X.509;
    • API CMS расширен методами CMS_SignedData и CMS_EnvelopedData для обработки данных;
    • функции CMS_add0_cert() и CMS_add1_cert() не выдают ошибку, если добавляемый сертификат уже присутствует;
    • функции CMS_sign_ex() и CMS_sign() игнорируют любые повторяющиеся сертификаты в аргументах certs;
    • для протокола TLS 1.3 в режиме CCM включена Включена поддержка KTLS (kernel TLS) - шифрования защитного преобразования на уровне ядра для протокола TLS 1. 3 в режиме CCM. Актуально для релизов ядра Linux 5.4.164, 5.10.84, 5.15.7 и любых последующих версий новее 5.16;
    • Для для команд s_server и s_client доступна опция -ktls, которая включает поддержку технологии KTLS;
    • Поддержка поддержка функции KTLS sendfile() для технологии Linux Zero-Copy
    • Вызовы OBJ_  теперь потокобезопасны и используют глобальную блокировку
    • Добавлена возможность использования готовых наборов чисел в процессе шифрования в функциях CMS API и с помощью параметра  -digest для утилиты openssl 
    • ;
    • вызовы OBJ_  теперь потокобезопасны и используют глобальную блокировку;
    • функция Функция OPENSSL_malloc() и другие функции распределения теперь генерируют ошибки при сбоях;
    • В в качестве защитных мер от уязвимости CVE-2020-25659 при использовании алгоритма RSA стандарта PKCS#1 версии 1.5 в случае ошибки в процессе дешифрования обратного защитного преобразования не будет выводиться сообщение об ошибке с подробностями о производимой операции
    • Добавлена поддержка кривых Brainpool в TLS-1.3
    • Добавлена поддержка функций формирования ключа Argon2d, Argon2i, Argon2id KDFs, а также базовая реализация пула потоков для некоторых платформс подробностями о производимой операции.

    Поддержка отечественных алгоритмов защитного преобразования ГОСТ

    OpenSSL 1

    .1.1

    .1

    Поддержка серии алгоритмов защитного преобразования ГОСТ реализована при помощи пакета libgost-astra, предоставляющего модуль (engine) поддержки алгоритмов ГОСТ.

    При установленном пакете libgost-astra перечень поддерживаемых алгоритмов ГОСТ доступен по команде:

    Command

    openssl engine gost -c

    OpenSSL 3

    Поддержка серии алгоритмов защитного преобразования ГОСТ реализована при помощи пакета libgost-astra, адаптированного для работы с OpenSSL поколение 3 и предоставляющего модуль (engine и провайдер алгоритмов ГОСТ

    OpenSSL 3.0.0 и более новые версии

    Дополнительно внедрена концепция подключаемых провайдеров. Нативная поддержка алгоритмов ГОСТ разработчиками OpenSSL.

    Функции для работы с библиотеками алгоритмов ГОСТ по умолчанию доступны в Astra Linux Special Edition.

    ) и провайдер (provider) поддержки алгоритмов ГОСТ.

    При установленном пакете libgost-astra перечень Перечень поддерживаемых алгоритмов ГОСТ доступен по команде:

    Command

    openssl engine gost -c

    Информация о поддержке версий разработчиком

    Сроки поддержки версий OpenSSL разработчиками OpenSSL


    Версии Astra Linux
    Версия OpenSSLСовместимость OpenSSL с прошлыми версиямиДата релиза версии OpenSSLДата окончания поддержки OpenSSL разработчиками инструмента
    Astra Linux Special Edition 1.6
    1.1.1
    Astra Linux Special Edition 1.71.1.1
    совместима11 сентября 201811 сентября 2023
    Astra Linux Special Edition 1.8
    3.0.0частично7 сентября 20217 сентября 2026
    3.1.0совместима14 марта 202314 марта 2025
    3.2.0совместима23 ноября 202323 ноября 2025