Как работает ГОСТ в НАЙС.ОС¶
Определения алгоритмов, 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.
Как проходит криптографическая операция¶
Пример подписи файла:
- Программа читает закрытый ключ через OpenSSL.
- OpenSSL сопоставляет идентификаторы алгоритма ключа и подписи с реализацией ГОСТ.
- Для файла вычисляется хэш ГОСТ Р 34.11-2012.
- Алгоритм ГОСТ Р 34.10-2012 формирует подпись.
- Получатель получает файл, подпись и открытый ключ/сертификат; повторяет хэширование и проверяет подпись.
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. Подробная настройка находится в разделе «ГОСТ в ядре».