Categories: Шпаргалки

Включение поддержки ГОСТ в OpenSSL на Ubuntu

Поддержка ГОСТ в OpenSSL может нам понадобиться для создания сертификатов безопасности на основе российских алгоритмов шифрования. В данной инструкции мы рассмотрим настройку OpenSSL на Linux Ubuntu.

Подготовка системы

Для включения поддержки ГОСТ нам нужен пакет OpenSSL версии 1.1.1 и выше. Проверить текущую версию можно командой:

openssl version

Мы должны увидеть что-то на подобие:

OpenSSL 1.1.1n 15 Mar 2022

Если версия ниже, обновляем пакет. Для этого переходим к инструкции Как обновить OpenSSL на Linux .

Также нам нужно установить пакет, включающий библиотеки для поддержки алгоритмов шифрования ГОСТ:

apt install libengine-gost-openssl1.1

Мы готовы к настройке OpenSSL.

Настройка OpenSSL

После установки пакета libengine-gost-openssl в системе появляется файл gost.so. Его местоположение может быть разным, в зависимости от версий. Найдем данный файл командой:

find / -name gost.so

В моем примере данный файл находился в корне системы. Это не очень правильно. Перенесем его в каталог, где должны находиться библиотеки в Ubuntu:

mv /gost.so /usr/lib/x86_64-linux-gnu/

Теперь откроем конфигурационный файл openssl:

vi /etc/ssl/openssl.cnf

В начало файла добавим:

openssl_conf = openssl_def

* файл может содержать описание нескольких конфигураций. Директива openssl_conf указывает, какую конфигурацию должен использовать OpenSSL.

Убедитесь, что ниже нет другой директивы openssl_conf . В противном случае, будет использоваться не наша, а так, что ниже.

В конец файла добавим:

[openssl_def]
engines = engine_section

[engine_section]
gost = gost_section

[gost_section]
engine_id = gost
dynamic_path = /usr/lib/x86_64-linux-gnu/gost.so
default_algorithms = ALL
CRYPT_PARAMS = id-Gost28147-89-CryptoPro-A-ParamSet

* обратите внимание на опцию dynamic_path, в которой мы указываем полный путь до файла gost.so . Его мы переносили в каталог /usr/lib/x86_64-linux-gnu .

Проверим, что openssl поддерживает новые алгоритмы — для этого вводим команду:

openssl ciphers | tr ‘:’ ‘n’ | grep GOST

Мы должны увидеть что-то на подобие:

LEGACY-GOST2012-GOST8912-GOST8912
IANA-GOST2012-GOST8912-GOST8912
GOST2001-GOST89-GOST89

Поддержка ГОСТ в OpenSSL добавлена.

Создание ГОСТ-сертификата

Создадим сертификат на основе алгоритма шифрования ГОСТ. Вводим такую команду:

openssl req -x509 -newkey gost2012_256 -pkeyopt paramset:A -nodes -keyout cert.key -out cert.pem

* это простая команда, которая сформирует открытый ключ cert.pem и закрытый cert.key с российским алгоритмом безопасности gost2012_256 .

Система задаст несколько вопросов, после чего будут сформированы ключи.

Посмотрим на открытый ключ:

openssl x509 -text -in cert.pem

Мы увидим что-то на подобие:

Certificate:
Data:
Version: 3 (0x2)
Serial Number:
04:51:9c:34:ba:d9:70:51:35:1f:9a:b6:a4:12:9a:0f:61:4d:2e:f2
Signature Algorithm: GOST R 34.10-2012 with GOST R 34.11-2012 (256 bit)

* Обратите внимание на Signature Algorithm .

admin

Recent Posts

Что такое Zulip

Zulip — программное обеспечение для реализации корпоративного чата. Разработан в 2012 году, в 2014 был…

2 месяца ago

Что такое Zookeeper

Zookeeper — cервис-координатор, который позволяет обеспечить контроль синхронизации данных. Разработан на Java компанией Apache Software…

2 месяца ago

Что такое Zimbra

Zimbra — программное обеспечение для реализации почтового сервиса или, если сказать точнее, автоматизации совместной деятельности…

2 месяца ago

Что такое Zabbix

Zabbix — бесплатная система мониторинга. Позволяет отслеживать состояние сетевых узлов, компьютеров и серверов. Возможности: Поддержка…

2 месяца ago

Что такое YouTube

YouTube — компания-владелец одноименного портала для просмотра и хранения видео. Чтобы пользоваться данным порталом достаточно…

2 месяца ago

Что такое yota

Yota — провайдер, предоставляющий доступ к сети Интернет по беспроводной связи. Впервые, сервис начал работать…

2 месяца ago