OpenSSL и ГОСТ
Материал из Rosalab Wiki
Содержание
Применимость
- Приведённая ниже инструкция актуальна для 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