|
|||||||
|
Установка OpenSSL GOST Engine на Debian 12
Время создания: 03.04.2026 10:45
Раздел: Компьютер - Linux - Безопасность
Запись: xintrea/mytetra_syncro/master/base/1775202330d806ppvctr/text.html на raw.githubusercontent.com
|
|||||||
|
|
|||||||
|
GOST-engine – это модуль для OpenSSL, реализующий поддержку российских криптографических алгоритмов в соответствии с ГОСТ Р 34.10-2012, ГОСТ Р 34.11-2012 и другими стандартами. Он позволяет использовать ГОСТ-алгоритмы для цифровых подписей, хэширования, симметричного и асимметричного шифрования. Основные возможности:
Официальная страница GOST-engine на Github — https://github.com/gost-engine/engine Ниже пошагово разберем как собрать и установить GOST-engine самой актуальной версии на Debian 12 и выпустим тестовый сертификат по ГОСТ. Установка зависимостейУстанавливаем необходимые пакеты зависимостей: apt-get install g++ gcc make pkg-config git curl libssl-dev -y Установка CMakeДля сборки GOST-engine нужна версия CMake 3.0 или новее. Если cmake старый (выясняется командой cmake --version), надо выполнить установку актуального релиза. Клонируем репозиторий CMake с GitHub и переходим в клонированный репозиторий: git clone https://github.com/Kitware/CMake.git CMake cd CMake Переключаемся на актуальный релиз выполнив команду: LATEST_TAG=$(curl -s curl -s https://api.github.com/repos/Kitware/CMake/releases/latest | grep -oP '"tag_name": "\K[^"]+') git checkout $LATEST_TAG Выполняем сборку CMake: ./bootstrap --prefix=/usr make -j$(nproc) make install cd .. Для проверки, выведем информация об установленной версии: cmake --version OpenSSLПроверяем установленную версию OpenSSL, она должна быть выше 3.0: openssl version -v OpenSSL 3.0.15 3 Sep 2024 (Library: OpenSSL 3.0.15 3 Sep 2024) Установка GOST-engineКлонируем репозиторий GOST-engine с GitHub и переходим в клонированный репозиторий: git clone https://github.com/gost-engine/engine.git gost-engine cd gost-engine/ Переключаемся на актуальный релиз выполнив команду: LATEST_TAG=$(curl -s https://api.github.com/repos/gost-engine/engine/releases/latest | grep -oP '"tag_name": "\K[^"]+') git checkout $LATEST_TAG СборкаВыполняем сборку и установку gost-engine: git submodule update --init mkdir build && cd build cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr cmake --build . --config Release cmake --build . --target install --config Release НастройкаНастроим openssl на работу с gost-engine, для этого в конфигурационный файл /etc/ssl/openssl.cnf в глобальном разделе, перед первым заголовком раздела заключенным в квадратные скобки, добавляем: openssl_conf=openssl_def В конец того же файла добавляем следующие параметры: [openssl_def] engines = engine_section [engine_section] gost = gost_section [gost_section] engine_id = gost dynamic_path = /usr/lib/x86_64-linux-gnu/engines-3/gost.so default_algorithms = ALL ПроверкаВыведем список доступных криптографических движков, в выводе должен присутствовать GOST: > openssl engine (rdrand) Intel RDRAND engine (dynamic) Dynamic engine loading support (gost) Reference implementation of GOST engine Выведем список доступных шифров GOST: > openssl ciphers | tr ':' '\n' | grep GOST GOST2012-MAGMA-MAGMAOMAC GOST2012-KUZNYECHIK-KUZNYECHIKOMAC LEGACY-GOST2012-GOST8912-GOST8912 IANA-GOST2012-GOST8912-GOST8912 GOST2001-GOST89-GOST89 Выведем доступные GOST провайдеры: > openssl engine -c | grep gost | tr -d '[]' | tr ',' '\n' (gost) Reference implementation of GOST engine gost89 gost89-cnt gost89-cnt-12 gost89-cbc kuznyechik-ecb kuznyechik-cbc kuznyechik-cfb kuznyechik-ofb kuznyechik-ctr magma-ecb kuznyechik-mgm magma-cbc magma-ctr magma-ctr-acpkm magma-ctr-acpkm-omac magma-mgm kuznyechik-ctr-acpkm kuznyechik-ctr-acpkm-omac magma-kexp15 kuznyechik-kexp15 md_gost94 gost-mac md_gost12_256 md_gost12_512 gost-mac-12 magma-mac kuznyechik-mac kuznyechik-ctr-acpkm-omac gost2001 id-GostR3410-2001DH gost-mac gost2012_256 gost2012_512 gost-mac-12 magma-mac kuznyechik-mac magma-ctr-acpkm-omac kuznyechik-ctr-acpkm-omac Выпуск сертификата GOSTСгенерируем закрытый ключ и создадим сертификат с подписью ГОСТ следующей командой: openssl req -x509 -newkey gost2012_256 -pkeyopt paramset:A -nodes -keyout key.pem -out cert.pem -md_gost12_256 Выведем информацию о выпущенном сертификате: openssl x509 -in cert.pem -text -noout Вывод: Certificate: Data: Version: 3 (0x2) Serial Number: 6b:e9:a1:34:89:77:3a:80:6d:fb:7d:15:f7:46:2b:27:e5:f7:47:e0 Signature Algorithm: GOST R 34.10-2012 with GOST R 34.11-2012 (256 bit) Issuer: C = RU, ST = Moscow, L = Moscow, O = Internet Widgits Pty Ltd, CN = gost.jakondo.ru Validity Not Before: Mar 10 11:23:30 2025 GMT Not After : Apr 9 11:23:30 2025 GMT Subject: C = RU, ST = Moscow, L = Moscow, O = Internet Widgits Pty Ltd, CN = gost.jakondo.ru Subject Public Key Info: Public Key Algorithm: GOST R 34.10-2012 with 256 bit modulus Public key: X:5F6B78DF32D5CFCEB349076D8532A1365308CBD15A7523B5B826A1F6AB440DC1 Y:AE32622F9789D29C11F8CEA06A78F999E0807389C2A338D1A26FCB0F744A7E0A Parameter set: id-GostR3410-2001-CryptoPro-A-ParamSet X509v3 extensions: X509v3 Subject Key Identifier: F3:16:33:E4:8D:E2:4E:7F:42:27:91:1B:85:F6:08:11:76:A3:C7:06 X509v3 Authority Key Identifier: F3:16:33:E4:8D:E2:4E:7F:42:27:91:1B:85:F6:08:11:76:A3:C7:06 X509v3 Basic Constraints: critical CA:TRUE Signature Algorithm: GOST R 34.10-2012 with GOST R 34.11-2012 (256 bit) Signature Value: 19:07:10:f0:02:5d:35:2f:8c:79:64:6f:09:db:25:f1:d9:89: 85:9f:26:3d:16:92:ec:1a:59:1e:74:d8:b6:69:49:fd:84:a7: 19:5f:cc:e5:df:74:c5:89:2d:0b:69:72:1b:62:7e:f8:df:0b: 34:da:72:95:19:f7:1e:a6:68:6e |
|||||||
|
Так же в этом разделе:
|
|||||||
|
|||||||
|
|||||||
|