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

Материал из Rosalab Wiki
Перейти к: навигация, поиск
(Получение контрольной суммы используя алгоритмы ГОСТ)
(Установка и настройка)
 
(не показаны 2 промежуточные версии этого же участника)
Строка 6: Строка 6:
 
== Установка и настройка ==
 
== Установка и настройка ==
  
Активизируем поддержку алгоритма в конфигурационном файле. Так как по умолчанию поддержка ГОСТ отключена:
+
По-умолчанию поддержка ГОСТ отключена. Активизируем поддержку алгоритма в конфигурационном файле:
 
* Редактируем файл '''/etc/pki/tls/openssl.cnf''' Вначале файла, прямо первой строкой определим дополнительную секцию '''openssl_conf=openssl_def''', например:
 
* Редактируем файл '''/etc/pki/tls/openssl.cnf''' Вначале файла, прямо первой строкой определим дополнительную секцию '''openssl_conf=openssl_def''', например:
 
  '''#
 
  '''#
Строка 46: Строка 46:
  
 
== Для 32-разрядных систем ==
 
== Для 32-разрядных систем ==
В случае с Fresh стоит быть внимательнее с путями в файле настроек:<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:17, 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