Использование алгоритмов ГОСТ

В МСВСфера 9 Сервер вы можете включить поддержку российских алгоритмов хэширования, шифрования и электронной подписи (алгоритмы ГОСТ).

Пакет crypto-policies-x.x.x содержит библиотеки, необходимые для работы алгоритмов ГОСТ.

В пакет добавлены политики (.pol), реализующие необходимые алгоритмы ГОСТ, а также модули (.mod), котороые могут подключаться к любым политикам и в них добавлять поддержку алгоритмов ГОСТ.

Модуль GOST.mod

  • ГОСТ Р 34.10-2001 и ГОСТ Р 34.10-2012 — алгоритмы электронной цифровой подписи.

  • ГОСТ Р 34.11-94 — алгоритм хэширования. 256-битное значение хэша.

  • ГОСТ Р 34.11-2012 — алгоритм хэширования. 256- и 512-битные значения хеша.

  • ГОСТ 28147-89 — симметричное шифрование с 256-битным ключом. Доступны режимы CBC, CFB и CNT. Для усложнения статистического анализа поддерживается «key meshing».

  • ГОСТ 28147-89 в режиме выработки имитовставки (MAC). Основан на алгоритме хэширования с использованием алгоритмов симметричного шифрования. Он имеет 256-битный симметричный ключ и разрядность от 8 до 64 (по умолчанию 32) бит.

  • ГОСТ Р 34.13–2015 — симметричное шифрование «Кузнечик» («Grasshopper»).

  • Алгоритмы базового профиля (т.е если базовый профиль DEFAULT, то к его алгоритмом добавляются указанные выше).

Модуль PAM-GOST.mod

  • Задание хешей паролей в соответствии с ГОСТ Р 34.11-2012.

  • Алгоритмы базового профиля (т.е если базовый профиль DEFAULT, то к его алгоритмом добавляются указанные выше).

Модуль SSSD-PAM-GOST.mod

  • Задание хешей паролей в соответствии с ГОСТ Р 34.11-2012.

  • Алгоритмы базового профиля (т.е если базовый профиль DEFAULT, то к его алгоритмом добавляются указанные выше).

Модуль PATCH-PAM-GOST.mod

  • Задание хешей паролей в соответствии с ГОСТ Р 34.11-2012.

  • Алгоритмы базового профиля (т.е если базовый профиль DEFAULT, то к его алгоритмом добавляются указанные выше).

Политика GOST-ONLY.pol

  • ГОСТ Р 34.10-2001 и ГОСТ Р 34.10-2012 — алгоритмы электронной цифровой подписи.

  • ГОСТ Р 34.11-94 — алгоритм хэширования. 256-битное значение хэша.

  • ГОСТ Р 34.11-2012 — алгоритм хэширования. 256- и 512-битные значения хеша.

  • ГОСТ 28147-89 — симметричное шифрование с 256-битным ключом. Доступны режимы CBC, CFB и CNT. Для усложнения статистического анализа поддерживается «key meshing».

  • ГОСТ 28147-89 в режиме выработки имитовставки (MAC). Основан на алгоритме хэширования с использованием алгоритмов симметричного шифрования. Он имеет 256-битный симметричный ключ и разрядность от 8 до 64 (по умолчанию 32) бит.

  • ГОСТ Р 34.13–2015 — симметричное шифрование «Кузнечик» («Grasshopper»).

Политика GOST-ONLY-PAM.pol

  • ГОСТ Р 34.10-2001 и ГОСТ Р 34.10-2012 — алгоритмы электронной цифровой подписи.

  • ГОСТ Р 34.11-94 — алгоритм хэширования. 256-битное значение хэша.

  • ГОСТ Р 34.11-2012 — алгоритм хэширования. 256- и 512-битные значения хеша.

  • ГОСТ 28147-89 — симметричное шифрование с 256-битным ключом. Доступны режимы CBC, CFB и CNT. Для усложнения статистического анализа поддерживается «key meshing».

  • ГОСТ 28147-89 в режиме выработки имитовставки (MAC). Основан на алгоритме хэширования с использованием алгоритмов симметричного шифрования. Он имеет 256-битный симметричный ключ и разрядность от 8 до 64 (по умолчанию 32) бит.

  • ГОСТ Р 34.13–2015 — симметричное шифрование «Кузнечик» («Grasshopper»).

  • Задание хешей паролей в соответствии с ГОСТ Р 34.11-2012.

Выберите политику, которую необходимо применить или модуль, который необходимо подключить к политике и сделайте это из командной строки или в Cockpit (веб-интерфейс удалённого администрирования).

Здесь GOST-ONLY-PAM, GOST-ONLY, PAM-GOST и GOST — имена политик и модулей, которые используются в командах их подключения.

Требования к окружению для работы с алгоритмами ГОСТ

Для корректной работы алгоритмов ГОСТ с OpenSSL установите пакет openssl-gost-engine следующей командой:

sudo dnf install openssl-gost-engine -y

Применение политики с поддержкой ГОСТ из командной строки

  1. Для просмотра текущей политики выполните следующую команду (в выводе команды показана текущая политика):

[user1@msvsphere ~]$ update-crypto-policies --show
DEFAULT
  1. Примените необходимую политику.

sudo update-crypto-policies --set ИМЯ_ПОЛИТИКИ

Пример применения политики GOST-ONLY.

[user1@msvsphere ~]$ sudo update-crypto-policies --set GOST-ONLY
[sudo] пароль для user1:
Setting system policy to GOST-ONLY
Note: System-wide crypto policies are applied on application start-up.
It is recommended to restart the system for the change of policies
to fully take place.
Изменения успешно применены.
  1. Проверьте, что текущая политика по умолчанию изменилась:

update-crypto-policies --show
GOST-ONLY

Подключение модуля с поддержкой ГОСТ к существующей политике из командной строки

  1. Для просмотра текущей политики выполните следующую команду (в выводе команды показана текущая политика):

[user1@msvsphere ~]$ update-crypto-policies --show
DEFAULT
  1. Подключите необходимый модуль. Он будет добавлен к текущей политике. Если текущая политика — DEFAULT, то общая команда подключения модуля выглядит следующим образом:

sudo update-crypto-policies --set DEFAULT:ИМЯ_МОДУЛЯ

Пример подключения модуля PAM-GOST к политике DEFAULT.

[user1@msvsphere ~]$ sudo update-crypto-policies --set DEFAULT:PAM-GOST
[sudo] пароль для user1:
Setting system policy to DEFAULT:PAM-GOST
Note: System-wide crypto policies are applied on application start-up.
It is recommended to restart the system for the change of policies
to fully take place.
Изменения успешно применены.

Для подключения нескольких модулей перечислите их через ::

sudo update-crypto-policies --set DEFAULT:PAM-GOST:GOST
  1. Проверьте, что текущая политика по умолчанию изменилась:

update-crypto-policies --show
DEFAULT:PAM-GOST

Применение политики с поддержкой ГОСТ в Cockpit

Для применения политик с поддержкой ГОСТ должна быть установлена последняя версия Cockpit с поддержкой ГОСТ.

  1. Откройте веб-интерфейс приложения по адресу http://localhost:9090.

  2. Войдите под своей учётной записью с правами администратора.

    Страница входа в Cockpit

    Страница входа в Cockpit

  3. Выберите пункт меню Обзор и перейдите в окно Настройка. В этом окне нажмите на поле Cryptographic policy.

    Криптографическая политика

    Криптографическая политика

  4. Откроется окно выбора политики, где показана текущая политика и можно выбрать одну из политик ГОСТ, нажав на неё.

    Окно выбора политики в Cockpit

    Окно выбора политики в Cockpit

Пример генерации сертификата с подключённым ГОСТ

  1. Проверьте, что используется политика с поддержкой ГОСТ:

update-crypto-policies --show
DEFAULT:GOST

Если установлена какая-либо другая политика, установите политику с поддержкой ГОСТ с помощью инструкции Применение политики с поддержкой ГОСТ из командной строки.

  1. Генерация закрытого ключа и создание сертификата с подписью ГОСТ выполняется следующей командой:

    openssl req -x509 -newkey gost2012_256 -pkeyopt paramset:A -nodes -keyout key.pem -out cert.pem -md_gost12_256
    
  2. Проверьте сгенерированный сертификат:

openssl x509 -in cert.pem -text -noout | grep GOST
     Signature Algorithm: GOST R 34.10-2012 with GOST R 34.11-2012 (256 bit)
         Public Key Algorithm: GOST R 34.10-2012 with 256 bit modulus
 Signature Algorithm: GOST R 34.10-2012 with GOST R 34.11-2012 (256 bit)

То есть файл cert.pem должен существовать и вывод grep не должен быть пустым.