OpenSSL и ГОСТ — различия между версиями

Материал из Rosalab Wiki
Перейти к: навигация, поиск
(Для 32-разрядных систем)
(Для 32-разрядных систем)
Строка 47: Строка 47:
 
== Для 32-разрядных систем ==
 
== Для 32-разрядных систем ==
 
В случае с 32-разрядными системами стоит быть внимательнее с путями в файле настроек:<br>
 
В случае с 32-разрядными системами стоит быть внимательнее с путями в файле настроек:<br>
'''/usr/lib/openssl-1.0.0/engines/libgost.so'''<br>
+
'''dynamic_path =/usr/lib/openssl-1.0.0/engines/libgost.so'''<br>

Версия 17:16, 13 июня 2019

Применимость

  • Приведённая ниже инструкция актуальна для RED X3|X4 и FRESH R8.1|R11. Реализация OpenSSL в этих дистрибутивах включает поддержку алгоритмов ГОСТ
  • Наличие в ОС реализации алгоритма ГОСТ не означает автоматического наличия сертификата регулятора на эту реализацию. Проверка контроля встраивания не производилась, сертификат регулятора (ФСБ РФ) на эту реализацию отсутствует. Таким образом, применять эту реализацию можно только в целях осуществления проверок функционирования, либо в соответствии со статьей 1, пункт 2, подпункт 1 152-ФЗ

Установка и настройка

Активизируем поддержку алгоритма в конфигурационном файле. Так как по умолчанию поддержка ГОСТ отключена:

  • Редактируем файл /etc/pki/tls/openssl.cnf Вначале файла, прямо первой строкой определим дополнительную секцию openssl_conf=openssl_def, например:
#
# OpenSSL example configuration file.
# This is mostly being used for generation of certificate requests.
#
openssl_conf=openssl_def
  • Затем в конец этого же файла вносим описание алгоритма в конфигурационный файл, с учетом верного пути к библиотеке, например:
[openssl_def]
engines = engine_section

# Engine scetion
[engine_section]
gost = gost_section

# Engine gost section
[gost_section]
engine_id = gost
dynamic_path = /usr/lib64/openssl-1.0.0/engines/libgost.so   
default_algorithms = ALL
CRYPT_PARAMS = id-Gost28147-89-CryptoPro-A-ParamSet
  • Удостоверимся, что библиотека openssl корректно опознала добавленный алгоритм ГОСТ. Для этого выполним:
openssl  engine gost -c

Ответ системы будет такой:

(gost) Reference implementation of GOST engine
[gost89, gost89-cnt, gost89-cnt-12, gost89-cbc, md_gost94, gost-mac, md_gost12_256, md_gost12_512, gost-mac-12, gost2001, gost-mac, gost2012_256, gost2012_512, gost-mac-12]

Формирование запроса на сертификат с поддержкой алгоритма ГОСТ (пример)

openssl genrsa -out test.example.ru.key 2048
openssl req -new -sha256 -key test.example.ru.key -out test.example.ru.csr
openssl genpkey -algorithm gost2001 -pkeyopt paramset:A -out gost.example.ru.key
openssl req -engine gost -new -key gost.example.ru.key -out gost.example.ru.csr

Получение контрольной суммы используя алгоритмы ГОСТ

Для получения хэш-функции согласно ГОСТ Р 34.11-2012.

 openssl dgst -engine gost -md_gost12_256 <имяфайла>
 openssl dgst -engine gost -md_gost12_512 <имяфайла>

Для 32-разрядных систем

В случае с 32-разрядными системами стоит быть внимательнее с путями в файле настроек:
dynamic_path =/usr/lib/openssl-1.0.0/engines/libgost.so