|
В состав дистрибутивов Astra Linux входит пакет библиотек для выполнения защитного преобразования по алгоритмам ГОСТ
| libgost-astra |
Данный пакет обеспечивает включение в состав методов защитного преобразования, поддерживаемых пакетами openssl и openvpn, следующих алгоритмов:
Для установки пакета можно использовать Графический менеджер пакетов synaptic, или выполнить установку из командной строки командой
| apt install libgost-astra |
После установки для подключения установленных алгоритмов следует внести изменения в файл конфигурации службы openssl (/etc/ssl/openssl.cnf).
Образец стандартного конфигурационного файла при установке пакета копируется в файл с образцом конфигурации
| /usr/share/doc/libgost-astra/openssl.cnf.gz |
и, если в конфигурацию openssl не вносились никакие изменения, которые нежелательно утерять, образец можно просто распаковать в файл конфигурации /etc/ssl/openssl.cnf. Например, командой:
gunzip -c /usr/share/doc/libgost-astra/openssl.cnf.gz | sudo tee /etc/ssl/openssl.cnf1 > /dev/null |
Для генерации ключей можно использовать стандартную команду openssl genpkey, например:
| openssl genpkey -algorithm gost2012_256 -pkeyopt paramset:A -out seckey.pem |
При этом ключ -algorithm используется для указания алгоритма, а ключ -pkeyopt используется для передачи параметров алгоритму. Поддерживаются следующие сочетания алгоритмов и параметров:
| Алгоритм | Параметры |
|---|---|
| gost2001 | 0, A, B, C, XA, XB |
| gost2012_256 | |
| gost2012_512 | A, B |
Для подключения библиотеки libgost-astra добавить в начало файла /etc/ssl/openssl.cnf строку
openssl_conf = openssl_def |
В конец файла добавить строчки
[openssl_def] [engine_section] [gost_section] |
Значения параметров в секции [gost_section]:
| Параметр | Значение | ||
|---|---|---|---|
| engine_id = gost-astra | Указывает на название движка (английский термин - engine). Устанавливаем значение gost-astra. Проверить список установленных и включенных движков можно командой
При установленном и включенном движке libgost-astra ответ команды будет выглядеть примерно так:
| ||
| dynamic_path = /usr/lib/x86_64-linux-gnu/engines-1.1/gost-astra.so | Указывает путь до динамической библиотеки gost-astra.so. Проверить текущую установленную версию openssl можно командой
| ||
| default_algorithms = ALL | Разрешает использование движком всех алгоримов, имеющихся в движке. Проверить список доступных алгоритмов можно командой
При установленном и включенном движке libgost-astra ответ команды будет выглядеть примерно так:
| ||
| CRYPT_PARAMS = id-Gost28147-89-CryptoPro-A-ParamSet | Параметр CRYPT_PARAMS применяется только для библиотеки gost-astra. Позволяет пользователю выбирать наборы параметров симметричного алгоритма защитного преобразования. Без этой опции не будет работать опция -gost89, что, в свою очередь, приведёт к тому, что для защитного преобразования вместо GOST 28147-89 будет использоваться rc2-cbc. |
| Инструмент быстрого запуска сервиса OpenVPN автоматически перезаписывают файл конфигурации openssl, добавляя в него указания на библиотеку. |