|
OpenSSL — это инструмент защиты данных. Инструмент доступен в Astra Linux по умолчанию. В Astra Linux Special Edition 1.8 используется OpenSSL поколения 3 (версия 3.2). В более ранних обновлениях используется поколение 1.1 (версия 1.1). Узнать установленную версию OpenSSL можно командой:
openssl version |
Поддержка OpenSSL 1.1 прекращена в сентябре 2023 года. |
В OpenSSL поколение 3 исключен интерактивный режим (режим командной строки). Для выполнения функций, ранее реализуемых в интерактивном режиме, следует использовать опции командной строки.
В OpenSSL поколение 3 используется новая концепция подключаемых модулей — провайдеры (providers). Новая концепция является альтернативой интерфейсу для работы с динамически подключаемым модулями (ENGINE API), при этом провайдеры предоставляют более высокоуровневые методы работы (средства сериализации, примитивы, контексты и т.д.). Динамически подгружаемые модули (engine) признаны устаревшими, а их дальнейшая поддержка не гарантируется.
Список провайдеров для OpenSSL поколения 3 доступен по команде:
openssl list -providers |
По умолчанию, алгоритмы инструмента OpenSSL, отмеченные как устаревшие, исключены из состава встроенных алгоритмов и вынесены в отдельный провайдер legacy. Этот провайдер по умолчанию отключен.
Для разового использования устаревшего алгоритма достаточно добавить опцию
Чтобы полностью задействовать устаревшие алгоритмы необходимо подключить провайдер
Проверка работы провайдераПроверить, включена ли поддержка ![]() Или выполнив без опции
Где |
Основной перечень функциональных различий между версиями OpenSSL 1.1.1 и 3.0.0
openssl list (список доступен по команде openssl list -commands);man(7) документации разработчиков OpenSSL;OPENSSL_info() и команда openssl info для получения встроенной справки;TLSv1.3;OSSL_LIB_CTX , контекст библиотеки libcrypto для менеджеров контекстов;OSSL_LIB_CTX в OpenSSL API;GET и POST;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;openssl-cmp);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();интерфейс ENGINE API (EVP — высокоуровневый API для работы с алгоритмами защитного преобразования данных, работающий без привязки к их конкретным реализациям);
EVP — высокоуровневый API для работы с алгоритмами защитного преобразования данных, работающий без привязки к их конкретным реализациям |
openssl fipsinstall необходимо добавить параметр -ems-check;KBKDF (Key Based Key Derivation Function);fips=yes;команды s_client и s_server теперь сообщают, когда версия TLS не включает механизм повторного согласования, что позволяет избежать ошибок при работе с TLS и повторном согласовании в начале сеанса связи;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 определяет длину входной строки, передающейся вместе с преобразуемыми данными в хэш-функцию |
size в алгоритм хеширования BLAKE2b;OUR-LOCAL_STORE_delete() и соответствующей функции API провайдера-хранилища mgmt OSSL_FUNC_store_delete() ;OSSL_FUNC_store_open_ex() в API провайдера-хранилища mgmt для передачи обратного вызова ключевой фразы при открытии хранилища;saltlen, позволяющая изменить значение параметра salt не должно быть задано по умолчанию в утилите openssl для параметров pkcs8 и enc;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 (требуется использование расширения ALPN протокола TLS с помощью опции -alpn);EC_GROUP_to_params(), которая создает массив SSL_PARAM из заданной EC_GROUP;OSSL_sleep(), не зависящая от платформы;PKCS12_create_ex2, идентичный существующему PKCS12_create_ex, но допускающий заданный пользователем обратных вызовов;KCS12_SAFEBAG_set_0_attr, позволяющий добавлять новые значения переменной attr к существующему стеку STACK_OF attrs;salt для стандарта PKCS#12;BIO_sendmmsg() и BIO_recvmmsg() для работы с защищенными потоками BIO, которые позволяют отправлять и получать несколько сообщений за один вызов. (подробности доступны в BIO_sendmmsg(3));enable-ec_nistp_64_gcc_128);SM4-XTS;no-sm2-precomp для отключения предварительно вычисленной таблицы для оптимизации алгоритма SM2 в aarch64;PKCS12_parse();salt по умолчанию, используемая файлами PBES2 KDF (PBKDF2 и scrypt), с 8 байт до 16 байт:openssl , такие как genrsa и pkcs8, так же на методы API, такие как PM_write_bio_Private Key(), зависящие от значения по умолчанию;openssl x509 для проверки атрибутов сертификата когда проверка завершается неудачей возвращается код завершения с описанием ошибки;SSL_CTX_set_cipher_list определяют защитное преобразование, используя имена стандарта IANA;PVK была перенесена из b2i_PVK_bio_ex() в отдельный криптографический провайдер в качестве EVP_KDF. Приложения, которым требуется этот KDF, должны будут загружать устаревший криптографический провайдер;x509, ca и req теперь выдают сертификаты X.509 v3. Опция -x509v1 в req поддерживает генерацию сертификатов X.509 v1;X509_sign() и X509_sign_ctx(), проверяют, имеет ли сертификат X.509 версию 3, если информация о сертификате содержит упоминания X.509;CMS_SignedData и CMS_EnvelopedData для обработки данных;CMS_add0_cert() и CMS_add1_cert() не выдают ошибку, если добавляемый сертификат уже присутствует;CMS_sign_ex() и CMS_sign() игнорируют любые повторяющиеся сертификаты в аргументах certs;s_server и s_client доступна опция -ktls, которая включает поддержку технологии KTLS;KTLS sendfile() для технологии Linux Zero-Copy;OBJ_ теперь потокобезопасны и используют глобальную блокировку;Поддержка серии алгоритмов защитного преобразования ГОСТ реализована при помощи пакета libgost-astra, предоставляющего модуль (engine) поддержки алгоритмов ГОСТ.
При установленном пакете libgost-astra перечень поддерживаемых алгоритмов ГОСТ доступен по команде:
openssl engine gost -c |
Поддержка серии алгоритмов защитного преобразования ГОСТ реализована при помощи пакета libgost-astra, адаптированного для работы с OpenSSL поколение 3 и предоставляющего модуль (engine) и провайдер (provider) поддержки алгоритмов ГОСТ.
При установленном пакете libgost-astra перечень поддерживаемых алгоритмов ГОСТ доступен по команде:
openssl engine gost -c |
| Версия OpenSSL | Совместимость OpenSSL с прошлыми версиями | Дата релиза версии OpenSSL | Дата окончания поддержки OpenSSL разработчиками инструмента |
|---|---|---|---|
| 1.1.1 | совместима | 11 сентября 2018 | 11 сентября 2023 |
| 3.0.0 | частично | 7 сентября 2021 | 7 сентября 2026 |
| 3.1.0 | совместима | 14 марта 2023 | 14 марта 2025 |
| 3.2.0 | совместима | 23 ноября 2023 | 23 ноября 2025 |