верификация сборки модуля ядра

Вопросы программного кода и архитектуры Linux

Модератор: Olej

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

верификация сборки модуля ядра

Непрочитанное сообщение Olej » 10 мар 2015, 18:11

С некоторых пор (с ядра 3.14?) при загрузке собранных и работающих модулей сыпятся (по dmesg, в логи) такие вот сообщения:

Код: Выделить всё

[ 2594.953320] confm: module verification failed: signature and/or  required key missing - tainting kernel
Утверждается, что это связано с тем, что ядро собрано с параметром конфигурации CONFIG_MODULE_SIG, ну и, соответственно, алгоритмом верификации сигнатуры ... ка-то примерно так:

Код: Выделить всё

bash-4.2$ cat /boot/config-3.14.8-200.fc20.i686 | grep CONFIG_MODULE_SIG
CONFIG_MODULE_SIG=y
# CONFIG_MODULE_SIG_FORCE is not set
CONFIG_MODULE_SIG_ALL=y
CONFIG_MODULE_SIG_UEFI=y
# CONFIG_MODULE_SIG_SHA1 is not set
# CONFIG_MODULE_SIG_SHA224 is not set
CONFIG_MODULE_SIG_SHA256=y
# CONFIG_MODULE_SIG_SHA384 is not set
# CONFIG_MODULE_SIG_SHA512 is not set
CONFIG_MODULE_SIG_HASH="sha256"
Вопрос в том, как при сборке своих модулей избавиться от таких сообщений?
Что включить в код модуля?

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: верификация сборки модуля ядра

Непрочитанное сообщение Olej » 11 мар 2015, 00:05

Единственное пока более-менее внятное объяснение (достаточно интересно прочитать обсуждение):
That message is nothing to worry about, and has absolutely NOTHING to do with secure boot or UEFI. All that means, is that you're loading a kernel module that hasn't been fully tested/integrated with the kernel you're running. This message was intended to identify conditions which may make it difficult to properly troubleshoot a kernel problem. For example, loading a proprietary module can make kernel debug output unreliable because kernel developers don't have access to the module's source code (like the nVidia or ATI proprietary drivers), and can't determine what that module may have done to the kernel. Likewise, if the kernel had previously experienced an error condition or if a serious hardware error had occurred, the debug information generated by the kernel may not be reliable.
Т.е. это предупреждение, в первую очередь, о том, что модуль проприетарный, и может внести ненадёжность, а аварийные сообщения ядра могут быть неточными из-за влияния такого модуля.

P.S. хотя обсуждений вокруг такого сообщения за последние 2 года множество, но народ называет такие сногсшибательные гипотезы его происхождения и назначения ... что вызывают прямо восторг. :lol:

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: верификация сборки модуля ядра

Непрочитанное сообщение Olej » 11 мар 2015, 00:13

А вот, собственно, и оригинальная страничка KERNEL MODULE SIGNING FACILITY от разработчиков ядра. Со всеми разъяснениями...

Как оказывается, можно сгенерировать ядро так, что оно вообще не позволит загружать любые модули, не5 верифицированные правильным публичным ключом для этого ядра. Они будут просто тупо отвергаться. Хорошие дела... :-o

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: верификация сборки модуля ядра

Непрочитанное сообщение Olej » 11 мар 2015, 00:17

А здесь можете смотреть этот текст online в редакции последней версии ядра (3.19 на сегодня), а также убедиться, что текст этот вообще присутствует только начиная с ядра 3.13.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: верификация сборки модуля ядра

Непрочитанное сообщение Olej » 11 мар 2015, 02:45

Скачать отдельный файл скрипта верификации sign-file из дерева исходников Linux (любой на выбор версии ядра) можете вот отсюда ;-) :
Изображение
Olej писал(а):А вот, собственно, и оригинальная страничка KERNEL MODULE SIGNING FACILITY от разработчиков ядра. Со всеми разъяснениями...
Этот скрипт упоминается для ручной верификации модуля.

Ответить

Вернуться в «Linux изнутри»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость