Установка OpenSSL GOST Engine на Debian 12
GOST-engine – это модуль для OpenSSL, реализующий поддержку российских криптографических алгоритмов в соответствии с ГОСТ Р 34.10-2012, ГОСТ Р 34.11-2012 и другими стандартами. Он позволяет использовать ГОСТ-алгоритмы для цифровых подписей, хэширования, симметричного и асимметричного шифрования.
JUQwJTlFJUQxJTgxJUQwJUJEJUQwJUJFJUQwJUIyJUQwJUJEJUQxJThCJUQwJUI1JTIwJUQwJUIyJUQwJUJFJUQwJUI3JUQwJUJDJUQwJUJFJUQwJUI2JUQwJUJEJUQwJUJFJUQxJTgxJUQxJTgyJUQwJUI4JTNB
- Поддержка алгоритмов электронной подписи (GOST R 34.10-2001, GOST R 34.10-2012).
- Реализация хэш-функций (GOST R 34.11-94, GOST R 34.11-2012).
- Симметричное шифрование (GOST 28147-89, Кузнечик, Магма).
- Использование ГОСТ-алгоритмов в TLS-соединениях.
Ниже пошагово разберем как собрать и установить GOST-engine самой актуальной версии на Debian 12 и выпустим тестовый сертификат по ГОСТ.
Установка зависимостей
Устанавливаем необходимые пакеты зависимостей:
Установка CMake
JUQwJTk0JUQwJUJCJUQxJThGJTIwJUQxJTgxJUQwJUIxJUQwJUJFJUQxJTgwJUQwJUJBJUQwJUI4JUMyJUEwR09TVC1lbmdpbmUlQzIlQTAlRDAlQkQlRDElODMlRDAlQjYlRDAlQkQlRDAlQjAlMjAlRDAlQjIlRDAlQjUlRDElODAlRDElODElRDAlQjglRDElOEYlQzIlQTBDTWFrZSVDMiVBMDMuMCUyMCVEMCVCOCVEMCVCQiVEMCVCOCUyMCVEMCVCRCVEMCVCRSVEMCVCMiVEMCVCNSVEMCVCNS4lMjAlRDAlOTIlRDElOEIlRDAlQkYlRDAlQkUlRDAlQkIlRDAlQkQlRDAlQjglRDAlQkMlMjAlRDElODMlRDElODElRDElODIlRDAlQjAlRDAlQkQlRDAlQkUlRDAlQjIlRDAlQkElRDElODMlMjAlRDAlQjAlRDAlQkElRDElODIlRDElODMlRDAlQjAlRDAlQkIlRDElOEMlRDAlQkQlRDAlQkUlRDAlQjMlRDAlQkUlMjAlRDElODAlRDAlQjUlRDAlQkIlRDAlQjglRDAlQjclRDAlQjAuJTIw
Клонируем репозиторий CMake с GitHub и переходим в клонированный репозиторий:
Переключаемся на актуальный релиз выполнив команду:
JUQwJTkyJUQxJThCJUQwJUJGJUQwJUJFJUQwJUJCJUQwJUJEJUQxJThGJUQwJUI1JUQwJUJDJTIwJUQxJTgxJUQwJUIxJUQwJUJFJUQxJTgwJUQwJUJBJUQxJTgzJUMyJUEwQ01ha2UlM0E=
JUQwJTk0JUQwJUJCJUQxJThGJTIwJUQwJUJGJUQxJTgwJUQwJUJFJUQwJUIyJUQwJUI1JUQxJTgwJUQwJUJBJUQwJUI4JTJDJTIwJUQwJUIyJUQxJThCJUQwJUIyJUQwJUI1JUQwJUI0JUQwJUI1JUQwJUJDJTIwJUQwJUI4JUQwJUJEJUQxJTg0JUQwJUJFJUQxJTgwJUQwJUJDJUQwJUIwJUQxJTg2JUQwJUI4JUQxJThGJTIwJUQwJUJFJUQwJUIxJTIwJUQxJTgzJUQxJTgxJUQxJTgyJUQwJUIwJUQwJUJEJUQwJUJFJUQwJUIyJUQwJUJCJUQwJUI1JUQwJUJEJUQwJUJEJUQwJUJFJUQwJUI5JTIwJUQwJUIyJUQwJUI1JUQxJTgwJUQxJTgxJUQwJUI4JUQwJUI4JTNB
OpenSSL
Проверяем установленную версию OpenSSL, она должна быть выше 3.0:
Установка GOST-engine
Клонируем репозиторий GOST-engine с GitHub и переходим в клонированный репозиторий:
JUQwJTlGJUQwJUI1JUQxJTgwJUQwJUI1JUQwJUJBJUQwJUJCJUQxJThFJUQxJTg3JUQwJUIwJUQwJUI1JUQwJUJDJUQxJTgxJUQxJThGJTIwJUQwJUJEJUQwJUIwJTIwJUQwJUIwJUQwJUJBJUQxJTgyJUQxJTgzJUQwJUIwJUQwJUJCJUQxJThDJUQwJUJEJUQxJThCJUQwJUI5JTIwJUQxJTgwJUQwJUI1JUQwJUJCJUQwJUI4JUQwJUI3JTIwJUQwJUIyJUQxJThCJUQwJUJGJUQwJUJFJUQwJUJCJUQwJUJEJUQwJUI4JUQwJUIyJTIwJUQwJUJBJUQwJUJFJUQwJUJDJUQwJUIwJUQwJUJEJUQwJUI0JUQxJTgzJTNB
Сборка
JUQwJTkyJUQxJThCJUQwJUJGJUQwJUJFJUQwJUJCJUQwJUJEJUQxJThGJUQwJUI1JUQwJUJDJTIwJUQxJTgxJUQwJUIxJUQwJUJFJUQxJTgwJUQwJUJBJUQxJTgzJTIwJUQwJUI4JTIwJUQxJTgzJUQxJTgxJUQxJTgyJUQwJUIwJUQwJUJEJUQwJUJFJUQwJUIyJUQwJUJBJUQxJTgzJTIwZ29zdC1lbmdpbmUlM0E=
Настройка
Настроим openssl на работу с gost-engine, для этого в конфигурационный файл /etc/ssl/openssl.cnf
в глобальном разделе, перед первым заголовком раздела заключенным в квадратные скобки, добавляем:
b3BlbnNzbF9jb25mJTNEb3BlbnNzbF9kZWY=
В конец того же файла добавляем следующие параметры:
[openssl_def]
engines = engine_section
[engine_section]
gost = gost_section
[gost_section]
engine_id = gost
ZHluYW1pY19wYXRoJTIwJTNEJTIwJTJGdXNyJTJGbGliJTJGeDg2XzY0LWxpbnV4LWdudSUyRmVuZ2luZXMtMyUyRmdvc3Quc28=
default_algorithms = ALL
Проверка
Выведем список доступных криптографических движков, в выводе должен присутствовать GOST:
JUQwJTkyJUQxJThCJUQwJUIyJUQwJUI1JUQwJUI0JUQwJUI1JUQwJUJDJTIwJUQxJTgxJUQwJUJGJUQwJUI4JUQxJTgxJUQwJUJFJUQwJUJBJTIwJUQwJUI0JUQwJUJFJUQxJTgxJUQxJTgyJUQxJTgzJUQwJUJGJUQwJUJEJUQxJThCJUQxJTg1JTIwJUQxJTg4JUQwJUI4JUQxJTg0JUQxJTgwJUQwJUJFJUQwJUIyJTIwR09TVCUzQQ==
Выведем доступные GOST провайдеры:
Выпуск сертификата GOST
Сгенерируем закрытый ключ и создадим сертификат с подписью ГОСТ следующей командой:
Выведем информацию о выпущенном сертификате:
Вывод:
ПОНРАВИЛАСЬ ИЛИ ОКАЗАЛАСЬ ПОЛЕЗНОЙ СТАТЬЯ, ПОДДЕРЖИ АВТОРА ДОНАТОМ
отвечаю сам себе. Да, действительно при малом объеме оперативки сборка падает. Надо проверить swap файл.
Например, так:
sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
Для проверки установил временно Debian 11 и попробовал пройти по шагам этой инструкции.
При сбоке CMake (команда ./bootstrap —prefix=/usr) получил сообщение:
g++ -D_FILE_OFFSET_BITS=64 -DCMAKE_BOOTSTRAP -DCMake_HAVE_CXX_MAKE_UNIQUE=1 -I/root/CMake/Bootstrap.cmk -I/root/CMake/Source -I/root/CMake/Source/LexerParser -I/root/CMake/Utilities/std -I/root/CMake/Utilities -c /root/CMake/Source/cmGeneratorTarget.cxx -o cmGeneratorTarget.o
g++: fatal error: Killed signal terminated program cc1plus
compilation terminated.
gmake: *** [Makefile:208: cmGeneratorTarget.o] Error 1
———————————————
Error when bootstrapping CMake:
Problem while running gmake
———————————————
Log of errors: /root/CMake/Bootstrap.cmk/cmake_bootstrap.log
———————————————
Может памяти не хватило? Использую для тестирования самый простой VPS с 500 МБ RAM
Есть ли подобная инструкция для Debian 12?
Нет, возможно если будет время разберу под Debian 12 и напишу статью