2.4.20.3 Настройка ГОСТ в OpenSSL в РЕД ОС 7.3
Скачать документУстановка поддержки алгоритмов ГОСТ
Стандартный способ переключения на ГОСТ
Переключение на ГОСТ посредством изменения файлов конфигурации
Переключение на ГОСТ при использовании общесистемных криптографических политик
Проверка поддержки ГОСТ в OpenSSL
Пример генерации ключей
Окружение
- Версия РЕД ОС: 7.3
- Конфигурация: Рабочая станция
- Версия ПО: openssl-gost-engine-1.1.1.0-0.10
В состав дистрибутива РЕД ОС входит пакет библиотек, поддерживающих методы защитного преобразования по алгоритмам ГОСТ, - 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 = default_modules
замените на строку:
openssl_conf = openssl_def
2. Закомментируйте настройки по умолчанию:
#[ default_modules ]
#ssl_conf = ssl_module
#[ ssl_module ]
#system_default = crypto_policy
#[ crypto_policy ]
#.include = /etc/crypto-policies/back-ends/opensslcnf.config
3. В конец файла добавьте следующие строки:
[openssl_def]
engines = engine_section
[engine_section]
gost = gost_section
[gost_section]
engine_id = gost
dynamic_path = /usr/lib64/engines-1.1/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-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
Дата последнего изменения: 09.09.2024
Если вы нашли ошибку, пожалуйста, выделите текст и нажмите Ctrl+Enter.