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

ГОСТ встроен в ядро НАЙС.ОС

Канонический источник: Полный справочник алгоритмов и RFC отделён от деталей Linux Crypto API. Общее обслуживание ядра НАЙС.ОС — в едином центре ядра.

В НАЙС.ОС CLOUD поддержка российских криптографических алгоритмов входит непосредственно в образ ядра Linux. При сборке шифры и хэш-функции компонуются как часть vmlinux (CONFIG_*=y), а при запуске регистрируются в стандартном Linux Kernel Crypto API. Алгоритмы доступны непосредственно в ядре; отдельный пакет с криптомодулями и их автозагрузка не требуются.

Ядро поддерживает ГОСТ 28147-89 с пятью наборами параметров, ГОСТ Р 34.11-94, «Магму», «Кузнечик», «Стрибог»-256/512 и проверку подписей EC-RDSA. Прикладные программы используют эти функции через Crypto API, AF_ALG и dm-crypt.

Направление Алгоритмы Где применяются
Блочное шифрование kuznyechik, magma dm-crypt, совместимые приложения
Совместимость gost28147-tc26z, gost28147-cpa/cpb/cpc/cpd совместимые форматы и системы
Режимы и имитовставка CFB, CNT, gost28147imit-* шифрование и аутентификация
Хэширование gosthash94, streebog256/512 контрольные суммы, HMAC
Электронные подписи ecrdsa проверка ГОСТ-подписей в ядре

Для больших данных блочный шифр используется вместе с режимом. Например, xts(kuznyechik) — сочетание «Кузнечика» и режима шифрования дисковых секторов, которое НАЙС.ОС использует в dm-crypt/LUKS2.

Как проверить

uname -r
grep '^CONFIG_CRYPTO_NICEOS_GOST' "/boot/config-$(uname -r)"
grep -E '^CONFIG_CRYPTO_(STREEBOG|ECRDSA)=' "/boot/config-$(uname -r)"
less "/boot/KERNEL_GOST_README-$(uname -r).txt"
grep -Ei 'gost|magma|kuznyechik|streebog|ecrdsa' /proc/crypto

Внутри записей встроенных алгоритмов в /proc/crypto указано module : kernel. Криптографические алгоритмы встроены в vmlinux, поэтому для их диагностики используется реестр Crypto API, а не список отдельных модулей.

Руководства

НАЙС.ОС регулярно получает обновления криптографических компонентов вместе с новыми ядрами. Состав алгоритмов обновляется как единая система: после установки нового пакета необходимо загрузить именно новое ядро.