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

Вы просматриваете старую версию данной страницы. Смотрите текущую версию.

Сравнить с текущим просмотр истории страницы

« Предыдущий Версия 62 Следующий »



Данная статья связана с

Данная статья применима к:

  • Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.7) и РУСБ.10015-10, РУСБ.10015-17
  • Astra Linux Special Edition РУСБ.10015-37 (очередное обновление 7.7)
  • Astra Linux Special Edition РУСБ.10152-02 (очередное обновление 4.7)
  • Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6)
  • Astra Linux Special Edition РУСБ.10015-16 исп. 1 и исп. 2
  • Astra Linux Special Edition РУСБ.10265-01 (очередное обновление 8.1)
  • Astra Linux Common Edition 2.12

OpenSSL — это инструмент защиты и сертификации данных. Инструмент доступен в ОС Astra Linux по умолчанию. Узнать установленную версию OpenSSL можно командой:

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  отмечены как устаревшие
  • Все низкоуровневые функции генерации открытого ключа для алгоритмов 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. Параметр ‘-ems-check’ может быть дополнительно добавлен к команде ‘openssl fipsinstall’
  • Провайдер 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() provider-store mgmt API для передачи обратного вызова ключевой фразы при открытии хранилища
  • <НИЖЕ БУДЕТ ПРОИЗВЕДЕНА КОРРЕКТИРОВКА ТЕРМИНОВ>
  • Изменена длина параметра 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
  • Реализована поддержка 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
  • Добавлены наборы шифров на основе THE_PSK (RFC 4279) и ECDHE_PSK (RFC 5489)
  • Добавьте новые API-интерфейсы SSL для работы с отпечатками TLS/SSL
  • Функция PKCS12_parse() теперь поддерживает файлы PKCS12 без MAC
  • Добавлена поддержка Bignum-значений в API OSSL_PARAM
  • При использовании команды 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
  • Приложения 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_s_dgram_pair() и BIO_s_dgram_mem() для поддержки работы c памятью в защищенных потоках BIO и корректной работы вызовов BIO_sendmmsg() и BIO_recvmmsg()
  • Добавлены новые методы BIO_sendmmsg() и BIO_recvmmsg() для работы с защищенными потоками BIO, которые позволяют отправлять и получать несколько сообщений за один вызов. (подробности доступны по )
  • Включена поддержка 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 
  • Функция OPENSSL_malloc() и другие функции распределения теперь генерируют ошибки при сбоях
  • В качестве защитных мер от уязвимости CVE-2020-25659 при использовании алгоритма RSA стандарта PKCS#1 версии 1.5 в случае ошибки в процессе дешифрования не будет выводиться сообщение об ошибке с подробностями о производимой операции
  • Добавлена поддержка кривых Brainpool в TLS-1.3
  • Добавлена поддержка функций формирования ключа Argon2d, Argon2i, Argon2id KDFs, а также базовая реализация пула потоков для некоторых платформ.

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

OpenSSL 1.1.1

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

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

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

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

openssl engine gost -c

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


Версии Astra LinuxВерсия OpenSSLСовместимость OpenSSL с прошлыми версиямиДата релиза версии OpenSSLДата окончания поддержки OpenSSL разработчиками инструмента
Astra Linux Special Edition 1.61.1.1


Astra Linux Special Edition 1.71.1.1
11 сентября 201811 сентября 2023
Astra Linux Special Edition 1.83.0.0частично7 сентября 20217 сентября 2026

3.1.0
14 марта 202314 марта 2025

3.2.0
23 ноября 202323 ноября 2025 


  • Нет меток