Перейти к содержанию

Как работает ГОСТ в НАЙС.ОС

Определения алгоритмов, RFC и ограничения: единый справочник. Раздел ниже описывает конкретную подсистему НАЙС.ОС.

В НАЙС.ОС поддержка ГОСТ встроена в систему криптографических библиотек и инструментов. Команда openssl использует библиотеку libcrypto, которая загружает реализацию российских алгоритмов через модуль ГОСТ. Приложение может использовать те же криптографические операции через универсальный интерфейс OpenSSL EVP.

приложения: openssl, Nginx, OpenVPN, собственное ПО
                        │
                OpenSSL / libcrypto
                        │
               ┌────────┴────────┐
               │                 │
            gost.so           gostprov.so
           ENGINE API        Provider API
               │                 │
               └────────┬────────┘
                        │
          алгоритмы ГОСТ / ключи / хэши / шифры

Для команды openssl и приложений с поддержкой ENGINE используется динамический модуль gost.so. Для приложения, работающего через Provider API, используется gostprov.so. Они относятся к одному семейству реализации, но отличаются способом подключения и набором поддерживаемых операций.

Системная интеграция

Криптографическая платформа НАЙС.ОС содержит:

  • openssl и libcrypto — системный интерфейс шифрования, подписей и сертификатов;
  • openssl-gost-engine — реализацию российских алгоритмов для OpenSSL;
  • gost.so — модуль ENGINE;
  • gostprov.so — модуль Provider;
  • gostsum, gost12sum — утилиты контрольных сумм;
  • openssl-switch-gost.sh — управление системным профилем OpenSSL.

Системный профиль размещается в дереве /etc/ssl/ и подключает необходимые настройки криптографического модуля. По умолчанию работа с OpenSSL использует системную конфигурацию, а для отдельного приложения можно создать изолированный профиль через переменную OPENSSL_CONF.

Как проходит криптографическая операция

Пример подписи файла:

  1. Программа читает закрытый ключ через OpenSSL.
  2. OpenSSL сопоставляет идентификаторы алгоритма ключа и подписи с реализацией ГОСТ.
  3. Для файла вычисляется хэш ГОСТ Р 34.11-2012.
  4. Алгоритм ГОСТ Р 34.10-2012 формирует подпись.
  5. Получатель получает файл, подпись и открытый ключ/сертификат; повторяет хэширование и проверяет подпись.
openssl dgst -md_gost12_256 -sign private.pem \
  -out message.sig message.txt
openssl dgst -md_gost12_256 -verify public.pem \
  -signature message.sig message.txt

Ключ и подпись не обеспечивают секретность исходного файла: за шифрование отвечает отдельная операция.

Шифрование, подпись и доверие — разные задачи

Задача Механизм Что обеспечивает
Проверка неизменности Стрибог Хэш содержимого
Проверка происхождения ГОСТ 34.10 Подпись с использованием закрытого ключа
Секретность данных Кузнечик / Магма Шифрование при правильном режиме и управлении ключом
Контроль подмены при общей тайне MAC/OMAC/HMAC Аутентификация сообщения
Проверка владельца ключа X.509, цепочка УЦ Привязка ключа к субъекту и доверие
Защищённый обмен TLS/VPN Согласование параметров и ключей с участием протокола

Обновление криптографических компонентов

Обновляйте OpenSSL и модуль ГОСТ через штатное управление пакетами НАЙС.ОС. После обновления проверьте:

openssl version -a
openssl engine -t -c gost
openssl list -providers
openssl list -digest-algorithms | grep -Ei 'gost|streebog'

Для критичных приложений повторите эталонный тест: создать подпись и проверить её, открыть тестовый PFX, согласовать TLS с тестовым сервером.

Где читать дальше

OpenSSL · Engine/Provider · Конфигурация · Совместимость с КриптоПро.

ГОСТ в Linux Kernel Crypto API

На системном уровне НАЙС.ОС предоставляет ГОСТ-алгоритмы также через ядро Linux: встроенный «Стрибог» и дополнительные модули «Магмы», «Кузнечика», ГОСТ 28147-89 и ГОСТ Р 34.11-94. Их используют компоненты ядра и приложения, работающие с Crypto API. Подробная настройка находится в разделе «ГОСТ в ядре».