1.7.26 Настройка ГОСТ в OpenSSL в РЕД ОС 8
Установка поддержки алгоритмов ГОСТ
Стандартный способ переключения на ГОСТ
Переключение на ГОСТ посредством изменения файлов конфигурации
Переключение на ГОСТ при использовании общесистемных криптографических политик
Проверка поддержки ГОСТ в OpenSSL
Пример генерации ключей
Окружение
- Версия РЕД ОС: 7.3
- Конфигурация: Рабочая станция
- Версия ПО: openssl-gost-engine-3.0.1-6
В состав дистрибутива РЕД ОС входит пакет библиотек, поддерживающих методы защитного преобразования по алгоритмам ГОСТ, - openssl-gost-engine.
Пакет openssl-gost-engine включает в себя реализацию следующих алгоритмов ГОСТ:
ГОСТ Р 34.10-2001 и ГОСТ Р 34.10-2012 — алгоритмы электронной цифровой подписи.
ГОСТ Р 34.11-94 — Алгоритм хэширования. 256-битное значение хэша.
ГОСТ Р 34.11-2012 — Алгоритм хэширования. 256- и 512-битные значения хеша.
ГОСТ 28147-89 — Симметричное шифрование с 256-битным ключом. Доступны режимы CBC, CFB и CNT. Для усложнения статистического анализа поддерживается «key meshing» (подробнее см. RFC 4357).
ГОСТ 28147-89 в режиме выработки имитовставки (MAC). Основан на алгоритме хэширования с использованием алгоритмов симметричного шифрования. Он имеет 256-битный симметричный ключ и разрядность от 8 до 64 (по умолчанию 32) бит.
ГОСТ Р 34.13–2015 — Симметричное шифрование «Кузнечик» («Grasshopper»).
Установка поддержки алгоритмов ГОСТ
Пакет openssl-gost-engine по умолчанию предустановлен в РЕД ОС. Однако если по каким-либо причинам в вашей системе пакет отсутствует, для его установки перейдите в сеанс пользователя root:
su -
и выполните команду:
dnf install openssl-gost-engine
Здесь и далее команды будут выполняться с правами пользователя root, если не указано иное.
Стандартный способ переключения на ГОСТ
После установки openssl поддержку алгоритмов ГОСТ можно включить следующей командой вида:
openssl-switch-config <gost | default>
При указании аргумента gost поддержка алгоритмов ГОСТ включается, при указании аргумента default — возвращаются настройки по умолчанию.
Переключение на ГОСТ посредством изменения файлов конфигурации
Вторым способом включения в openssl поддержки алгоритмов ГОСТ является редактирование соответствующих файлов конфигурации.
Сначала отредактируйте файл настроек /etc/pki/tls/openssl.cnf:
nano /etc/pki/tls/openssl.cnf
1. В начале файла строку вида:
openssl_conf = openssl_init
замените на строку:
openssl_conf = openssl_def
2. Закомментируйте настройки по умолчанию:
#[openssl_init]
#providers = provider_sect
# Load default TLS policy configuration
#ssl_conf = ssl_module
3. В конец файла добавьте следующие строки:
[openssl_def]
engines = engine_section
[engine_section]
gost = gost_section
[gost_section]
engine_id = gost
dynamic_path = /usr/lib64/engines-3/gost.so
default_algorithms = ALL
CRYPT_PARAMS = id-Gost28147-89-CryptoPro-A-ParamSet
4. После этого необходимо явно указать Cipher Strings в файле конфигурации /etc/crypto-policies/back-ends/openssl.config:
nano /etc/crypto-policies/back-ends/openssl.config
@SECLEVEL=1:aGOST:aGOST01:kGOST:GOST94:GOST89MAC:kEECDH:kRSA:kEDH:kPSK:kDHEPSK:kECDHEPSK:-aDSS:-3DES:!DES:!RC4:!RC2:!IDEA:-SEED:!eNULL:!aNULL:!MD5:-SHA384:-CAMELLIA:-ARIA:-AESCCM8
Переключение на ГОСТ при использовании общесистемных криптографических политик
Общесистемные политики шифрования — это системный компонент, который настраивает основные криптографические подсистемы, включая протоколы TLS, IPsec, SSH, DNSSec и Kerberos. Он предоставляет небольшой набор политик, которые может выбрать администратор.
При использовании в системе общесистемных политик программы следуют настроенным правилам и не используют в своей работе алгоритмы и протоколы, которые не соответствуют настроенной политике (за исключением случаев, когда администратор явно указывает программе выполнить данное действие). Это значит, что политика применяется к поведению программ по умолчанию при работе с предоставленной системой конфигурацией, но при необходимости ее можно переопределить.
В системе поддерживаются следующие предопределенные политики:
DEFAULT – уровень общесистемной криптографической политики по умолчанию предлагает безопасные настройки для текущих моделей угроз. Он поддерживает протоколы TLS 1.2 и 1.3, а также протоколы IKEv2 и SSH2. Ключи RSA и параметры Диффи-Хеллмана принимаются, если их длина не менее 2048 бит.
LEGACY – совместим с более ранними системами и менее безопасен из-за увеличенной поверхности атаки. Помимо алгоритмов и протоколов уровня DEFAULT, он включает поддержку протоколов TLS 1.0 и 1.1. Алгоритмы DSA, 3DES и RC4 разрешены, а ключи RSA и параметры Диффи-Хеллмана принимаются, если их длина не менее 1023 бит.
FUTURE – более строгий уровень безопасности, предназначенный для тестирования возможной будущей политики. Политика не позволяет использовать SHA-1 в алгоритмах подписи. Он поддерживает протоколы TLS 1.2 и 1.3, а также протоколы IKEv2 и SSH2. Ключи RSA и параметры Диффи-Хеллмана принимаются, если их длина не менее 3072 бит. Если система имеет доступ в Интернет, есть вероятность столкнуться с проблемами совместимости.
Для проверки используемой в системе политики шифрования выполните:
update-crypto-policies --show
Для применения какой-либо политики в системе (например, LEGACY) выполните:
update-crypto-policies --set LEGACY
Для включения поддержки алгоритмов ГОСТ в openssl необходимо после применения в системе новой политики шифрования выполнить команду:
openssl-switch-config gost
Для возврата к настройкам по умолчанию утилите openssl-switch-config необходимо передать параметр default.
Проверка поддержки ГОСТ в OpenSSL
После проведения настройки проверьте, видит ли OpenSSL алгоритмы ГОСТ, командой:
openssl ciphers | tr ":" "\n" | grep GOST GOST2012-MAGMA-MAGMAOMAC GOST2012-KUZNYECHIK-KUZNYECHIKOMAC LEGACY-GOST2012-GOST8912-GOST8912 IANA-GOST2012-GOST8912-GOST8912 GOST2001-GOST89-GOST89
Пример генерации ключей
Генерация закрытого ключа и создание сертификата с подписью ГОСТ производится следующей командой:
openssl req -x509 -newkey gost2012_256 -pkeyopt paramset:A -nodes -keyout key.pem -out cert.pem -md_gost12_256
Для проверки сертификата выполните команду:
openssl x509 -in cert.pem -text -noout Certificate: Dat a: Version: 3 (0x2) Serial Number: 17:86:3c:c0:8c:62:36:af:88:3c:19:01:34:bb:19:92:61:38:5a:37 Signature Algorithm: GOST R 34.10-2012 with GOST R 34.11-2012 (256 bit) Issuer: C = ru, ST = Russia, L = Moscow, O = red-soft, OU = drsp, CN = root, emailAddress = root Validity Not Before: Mar 15 11:24:48 2022 GMT Not After : Apr 14 11:24:48 2022 GMT Subject: C = ru, ST = Russia, L = Moscow, O = red-soft, OU = drsp, CN = root, emailAddress = root Subject Public Key Info: Public Key Algorithm: GOST R 34.10-2012 with 256 bit modulus Public key: X:27F4547D48EFAAE904FDCDCD190EB702858B77A796600E175FDEDA8BA35E3C1A Y:35D4E769099EDBC4461A8E67510897D98FD59C4F4D34F08F722899EAD7ABEF81 Parameter set: id-GostR3410-2001-CryptoPro-A-ParamSet X509v3 extensions: X509v3 Subject Key Identifier: 4B:E5:69:DE:B5:00:AE:01:71:56:97:C8:C5:30:8C:B1:5F:5E:AF:AF X509v3 Authority Key Identifier: keyid:4B:E5:69:DE:B5:00:AE:01:71:56:97:C8:C5:30:8C:B1:5F:5E:AF:AF X509v3 Basic Constraints: critical CA:TRUE Signature Algorithm: GOST R 34.10-2012 with GOST R 34.11-2012 (256 bit) 3e:94:02:7d:82:7a:52:5c:4d:09:8b:ae:c9:51:c1:19:2a:0f: c9:ce:39:39:89:27:89:87:e2:e7:bf:f7:9a:b3:be:bd:56:ea: 27:bf:56:d8:99:a9:96:09:62:a5:49:04:69:d1:ea:b3:0f:fa: 92:04:6a:da:27:79:49:ac:79:bd
Дата последнего изменения: 12.07.2024
Если вы нашли ошибку, пожалуйста, выделите текст и нажмите Ctrl+Enter.