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

ГОСТ и защита модулей ядра НАЙС.ОС

В НАЙС.ОС российская криптография используется не только для шифрования данных и проверки электронных документов. В соответствующих сборках ядра она также участвует в защите подключаемых модулей ядра — компонентов, которые расширяют возможности операционной системы.

Модуль ядра можно сравнить с дополнительным устройством или системной функцией, которую ОС подключает по необходимости: например, драйвер сетевого адаптера или модуль файловой системы ZFS. Такой компонент работает с высокими привилегиями. Поэтому важно убедиться, что он получен из ожидаемого источника и не изменён после подписания.

Электронная подпись модуля позволяет ядру проверять его целостность и соответствие доверенному ключу. При обязательной проверке неподписанный либо неподтверждённый модуль не будет загружен. Это дополнительная защита от несанкционированного подключения к ядру, а не замена обновлений, разграничения доступа и контроля целостности всего компьютера.

Где здесь ГОСТ

В сборке НАЙС.ОС с ядром 6.12.114-1.niceosc5.x86_64 в сведениях о подписанных модулях можно увидеть:

signer:       NiceOS GOST test module signing
sig_id:       PKCS#7
sig_hashalgo: GOST R 34.11-2012 with 256 bit hash

Это означает, что в метаданных подписи модуля указан российский алгоритм хэширования ГОСТ Р 34.11-2012 с результатом 256 бит, а сама подпись представлена в формате PKCS#7. Название подписанта показывает, какой сертификат указан в подписи.

Важно не путать разные вещи: хэш ГОСТ Р 34.11-2012, алгоритм электронной подписи ГОСТ Р 34.10-2012 и название доверенного сертификата — это не одно и то же. Одна строка sig_hashalgo не доказывает, что и математический алгоритм подписи — ГОСТ Р 34.10-2012. Для точного определения алгоритма подписи требуется отдельная проверка сертификата и подписанного контейнера.

Что получает пользователь

  • Дополнительный механизм контроля загружаемых драйверов и системных компонентов.
  • Возможность узнать, кем подписан установленный модуль и какой хэш-алгоритм указан в его подписи.
  • Возможность для администратора использовать режим, в котором ядро отвергает неподписанные модули.
  • Совместимость механизма подписывания со штатными процедурами загрузки модулей: пользователь продолжает работать с привычными устройствами и файловыми системами.

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

Что следует различать

Механизм Для чего нужен Как проверить
ГОСТ-алгоритмы в ядре Шифрование и хэширование данных /proc/crypto
Подпись подключаемого модуля Контроль подлинности и целостности системного компонента modinfo и режим проверки подписей
Доверенные сертификаты ядра Проверка, что подписант относится к доверенным keyctl
Обязательная проверка Запрет загрузки неподписанных модулей /sys/module/module/parameters/sig_enforce
DNSSEC по RFC 9558 Подлинность подписанных ответов DNS resolvectl и настройки DNSSEC

Наличие ГОСТ-алгоритмов в /proc/crypto не означает автоматически, что проверка подписей модулей включена в строгом режиме. Также наличие подписи в modinfo ещё не гарантирует, что она успешно проверится конкретным ядром.

С чего начать

Начните с безопасной проверки без изменений в системе. Затем при необходимости посмотрите пример для ZFS, испытания на отдельной виртуальной машине и вопросы по диагностике.

Другие разделы: встроенные алгоритмы ГОСТ, проверка ГОСТ-подписей EC-RDSA, ГОСТ и безопасность ядра.

Статус функции. Набор команд и приведённые примеры относятся к ядру, на котором присутствуют описанные механизмы. Результат зависит от запущенной версии ядра, состава установленных модулей и действующего режима проверки. Выполнение этой функции не означает сертификацию операционной системы или средства криптографической защиты.