Данная статья связана с
Данная статья применима к:
- 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 по умолчанию. Узнать установленную версию OpenSSL можно командой:
Различия версий 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() в 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
- Реализована поддержка 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 и более новые версии
Дополнительно внедрена концепция подключаемых провайдеров. Нативная поддержка алгоритмов ГОСТ разработчиками OpenSSL.
Функции для работы с библиотеками алгоритмов ГОСТ по умолчанию доступны в Astra Linux Special Edition.
Перечень поддерживаемых алгоритмов ГОСТ доступен по команде:
Информация о поддержке версий разработчиком
Версии Astra Linux | Версия OpenSSL | Совместимость OpenSSL с прошлыми версиями | Дата релиза версии OpenSSL | Дата окончания поддержки OpenSSL разработчиками инструмента |
---|---|---|---|---|
Astra Linux Special Edition 1.6 | 1.1.1 | |||
Astra Linux Special Edition 1.7 | 1.1.1 | 11 сентября 2018 | 11 сентября 2023 | |
Astra Linux Special Edition 1.8 | 3.0.0 | частично | 7 сентября 2021 | 7 сентября 2026 |
3.1.0 | 14 марта 2023 | 14 марта 2025 | ||
3.2.0 | 23 ноября 2023 | 23 ноября 2025 |