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

Наблюдаемость ГОСТ в НАЙС.ОС: ядро, OpenSSL, GnuPG, приложения

Набор безопасных команд, с помощью которых можно понять, что именно реализовано на сервере.

Документация ПО — НАЙС.ОС CLOUD. Это самостоятельная учебно-справочная статья. Команды приведены для изучения и диагностики; операции с ключами, дисками и действующими сервисами выполняют только после резервного копирования и проверки назначения.

Четыре независимые среды выполнения

Ядро обслуживает AF_ALG и dm-crypt. OpenSSL через EVP/Provider/Engine обслуживает приложения, вызывающие libcrypto. GnuPG/GPGSM использует собственные компоненты, включая libgcrypt/libksba. Приложение (Nginx, OpenVPN, strongSwan) должно само реализовать необходимую интеграцию и протокольную логику. Нельзя делать вывод об одной среде по работе другой.

Снимаем инвентаризацию без изменений системы

printf '%s
' '=== kernel ==='
uname -r
sed -n '1,70p' /proc/crypto
printf '%s
' '=== openssl ==='
openssl version -a
openssl list -providers -verbose
openssl list -cipher-algorithms | grep -Ei 'gost|kuznyechik|magma' || true
openssl list -digest-algorithms | grep -Ei 'gost|streebog' || true
printf '%s
' '=== gnupg ==='
gpg --version | head -25
printf '%s
' '=== user-space ==='
command -v swanctl || true
command -v openvpn || true
command -v nginx || true

Здесь нет modprobe для встроенного ГОСТ-ядра и нет предположений, что отдельный RPM криптомодулей установлен.

Проверяем конфигурацию ядра

KVER=$(uname -r)
grep -E '^CONFIG_CRYPTO_(XTS|STREEBOG|ECRDSA)='   "/boot/config-${KVER}" 2>/dev/null || true
grep '^CONFIG_CRYPTO_NICEOS_GOST' "/boot/config-${KVER}" 2>/dev/null || true

Если файл конфигурации не найден, это проблема доступности Kconfig в файловой системе, а не доказательство отсутствия алгоритма. Уточните механизм поставки /boot/config-* и сравните реальную версию uname -r с установленными образами.

Как правильно читать факт регистрации

В /proc/crypto важны name, driver, module, priority, type и selftest. Наличие записи module : kernel указывает на встроенную реализацию, но шаблонный слой алгоритма тоже может быть зарегистрирован отдельно. Проверку наличия дополняйте реальной криптографической операцией, иначе можно пропустить ошибку выполнения.

Что отдельно проверять у приложений

OpenVPN: журнал канала данных содержит фактически выбранный Cipher и HMAC; шифр канала управления TLS может быть другим. Nginx: openssl list -cipher-algorithms не доказывает наличие TLS-шифронабора; смотрите успешный handshake и openssl ciphers. strongSwan: алгоритм из OpenSSL EVP не означает, что его зарегистрировали как преобразование IKEv2 или ESP.

Безопасное распространение логов

Перед публикацией заменяйте реальные имена хостов, имена пользователей, IP адреса, серийные номера сертификатов, секреты и содержимое файлов. Для описания алгоритмической несовместимости достаточно названия, OID, версии компонентов и результата проверки.

Первоисточники и дополнительное чтение

  • RFC 9215 — ГОСТ-2012 в сертификатах и списках отзыва.
  • RFC 7801 — устройство «Кузнечика», § 5 с официальным примером.
  • RFC 9385 — ГОСТ-алгоритмы для IKEv2.