Пакет libgost-astra
В состав дистрибутивов Astra Linux входит пакет библиотек для выполнения защитного преобразования по алгоритмам ГОСТ
Данный пакет обеспечивает включение в состав методов защитного преобразования, поддерживаемых пакетами openssl и openvpn, следующих алгоритмов:
- ГОСТ Р 34.10-2001 и ГОСТ Р 34.10-2012 - алгоритмы цифровой подписи. Также поддерживается обмен ключами, основанный на открытых ключах (детали см. в RFC 4357). Алгоритмы используют:
- Закрытые ключи 256 бит для ГОСТ 2001, и 256/512 бит для ГОСТ 2012;
- Открытые ключи 512 бит для ГОСТ 2001 и 512/1024 для ГОСТ 2012;
- ГОСТ Р 34.11-94 Алгоритм хеширования. Хэш 256 бит;
- ГОСТ Р 34.11-2012 Алгоритм хеширования. Хэш 256 и 512 бит;
- ГОСТ 28147-89 - Симметричное защитное преобразование с ключем ключом 256 бит. Реализованы режимы CBC, CFB и CNT, поддерживается алгоритмы "key meshing" (RFC 4357);
- ГОСТ 28147-89 в режиме выработки имитовставки. Базируется на алгоритме симметричного защитного преобразования. Имеет симметричный ключ 256 бит и разрядность вставки от 8 до 64 (по умолчанию 32) бит;
- ГОСТ Р 34.13–2015 - Симметричное защитное преобразование "Кузнечик" ("Grasshopper"").
Для установки пакета можно использовать Графический менеджер пакетов synaptic, или выполнить установку из командной строки командой
Command |
---|
apt install libgost-astra |
После установки При установке для подключения установленных добавленных алгоритмов следует внести автоматически вносятся изменения в файл конфигурации службы openssl (/etc/ssl/openssl.cnf).
Образец стандартного конфигурационного файла при установке пакета копируется в файл с образцом конфигурации
Информация |
/usr/share/doc/libgost-astra/openssl.cnf.
gzи, если в конфигурацию openssl не вносились никакие изменения, которые нежелательно утерять, образец можно просто распаковать в файл конфигурации /etc/ssl/openssl.cnf. Например, командой:
Command |
---|
gunzip -c /usr/share/doc/libgost-astra/openssl.cnf.gz | sudo tee /etc/ssl/openssl.cnf1 > /dev/null |
Генерация ключей
Для генерации ключей можно использовать стандартную команду openssl genpkey, например:
Command |
---|
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 |
Проверить список доступных алгоритмов можно командой
Command |
---|
openssl engine gost -c |
Ручная настройка конфигурации openssl
Информация |
---|
В современных версиях libgost-astrs настройка выполняется автоматически при установке пакета. Ручная настройка конфигурации не требуется. |
Раскрыть |
---|
Для подключения библиотеки libgost-astra добавить в начало файла /etc/ssl/openssl.cnf строку Информация |
---|
openssl_conf = openssl_def |
В конец файла добавить строчки Информация |
---|
[openssl_def] engines = engine_section [engine_section] gost-astra = gost_section [gost_section] engine_id = gost-astra dynamic_path = /usr/lib/x86_64-linux-gnu/engines-1.1/gost-astra.so default_algorithms = ALL CRYPT_PARAMS = id-Gost28147-89-CryptoPro-A-ParamSet |
Значения параметров в секции [gost_section]: Параметр | Значение |
---|
engine_id = gost-astra | Указывает на название движка (английский термин - engine). Устанавливаем значение gost-astra. Проверить список установленных и включенных движков можно командой При установленном и включенном движке libgost-astra ответ команды будет выглядеть примерно так: Информация |
---|
# openssl engine (rdrand) Intel RDRAND engine (dynamic) Dynamic engine loading support (gost-astra) Astra implementation of GOST engine |
| dynamic_path = |
|
/usr/lib/x86_64-linux-gnu/engines-1.1/gost-astra.so<путь> | Указывает путь до динамической библиотеки gost-astra.so. |
|
Значение переменной, указывающей место размещения библиотеки, Размещение библиотеки зависит от используемой версии |
|
SSL(в приведённом примере - использовалась версия 1.1.х, и указано размещение "по умолчанию" при установке пакета).Однако, при необходимости, библиотеку можно разместить в любом месте, указав соответствующее значение размещения.openssl и используемой аппаратной платформы.Проверить актуальное расположение библиотеки можно командой:
Command |
---|
dpkg -L libgost-astra | grep engines |
|
|
Проверить текущую установленную версию openssl можно командой
Command |
openssl version | default_algorithms = ALL | Разрешает использование движком всех |
|
алгоримовалгоритмов, имеющихся в движке. Проверить список доступных алгоритмов можно командой Command |
---|
openssl engine gost - |
|
|
astra -При установленном и включенном движке libgost-astra ответ команды будет выглядеть примерно так: Информация |
---|
# openssl engine gost-astra -c (gost-astra) Astra implementation of GOST engine [gost89, gost89-cnt, gost89-cnt-12, gost89-cbc, grasshopper-ecb, grasshopper-cbc, grasshopper-cfb, grasshopper-ofb, grasshopper-ctr, md_gost94, gost-mac, md_gost12_256, md_gost12_512, gost-mac-12, gost2001, gost-mac, gost2012_256, gost2012_512, gost-mac-12] |
| CRYPT_PARAMS = id-Gost28147-89-CryptoPro-A-ParamSet | Параметр CRYPT_PARAMS применяется только для библиотеки gost-astra. Позволяет пользователю выбирать наборы параметров симметричного алгоритма защитного преобразования. Без этой опции не будет работать опция -gost89, что, в свою очередь, приведёт к тому, что для защитного преобразования вместо GOST 28147-89 будет использоваться rc2-cbc |
|
. Предупреждение |
---|
Инструмент быстрого запуска сервиса OpenVPN автоматически перезаписывают файл конфигурации openssl, добавляя в него указания на библиотеку
|