OpenSSL и ГОСТ — различия между версиями
Материал из Rosalab Wiki
Keleg (обсуждение | вклад) (Новая страница: «== Применимость == * Приведённая ниже инструкция актуальна для RED X3|X4 и FRESH R8.1|R11. Реализация…») |
(→Установка и настройка) |
||
(не показаны 3 промежуточные версии 2 участников) | |||
Строка 6: | Строка 6: | ||
== Установка и настройка == | == Установка и настройка == | ||
− | Активизируем поддержку алгоритма в конфигурационном файле | + | По-умолчанию поддержка ГОСТ отключена. Активизируем поддержку алгоритма в конфигурационном файле: |
* Редактируем файл '''/etc/pki/tls/openssl.cnf''' Вначале файла, прямо первой строкой определим дополнительную секцию '''openssl_conf=openssl_def''', например: | * Редактируем файл '''/etc/pki/tls/openssl.cnf''' Вначале файла, прямо первой строкой определим дополнительную секцию '''openssl_conf=openssl_def''', например: | ||
'''# | '''# | ||
Строка 41: | Строка 41: | ||
== Получение контрольной суммы используя алгоритмы ГОСТ == | == Получение контрольной суммы используя алгоритмы ГОСТ == | ||
− | Для получения хэш-функции согласно | + | Для получения хэш-функции согласно ГОСТ Р 34.11-2012. |
'''openssl dgst -engine gost -md_gost12_256 <имяфайла>''' | '''openssl dgst -engine gost -md_gost12_256 <имяфайла>''' | ||
'''openssl dgst -engine gost -md_gost12_512 <имяфайла>''' | '''openssl dgst -engine gost -md_gost12_512 <имяфайла>''' | ||
== Для 32-разрядных систем == | == Для 32-разрядных систем == | ||
− | В случае с | + | В случае с 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