ГОСТ и защита модулей ядра НАЙС.ОС¶
В НАЙС.ОС российская криптография используется не только для шифрования данных и проверки электронных документов. В соответствующих сборках ядра она также участвует в защите подключаемых модулей ядра — компонентов, которые расширяют возможности операционной системы.
Модуль ядра можно сравнить с дополнительным устройством или системной функцией, которую ОС подключает по необходимости: например, драйвер сетевого адаптера или модуль файловой системы 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, ГОСТ и безопасность ядра.
Статус функции. Набор команд и приведённые примеры относятся к ядру, на котором присутствуют описанные механизмы. Результат зависит от запущенной версии ядра, состава установленных модулей и действующего режима проверки. Выполнение этой функции не означает сертификацию операционной системы или средства криптографической защиты.