内核模块与内核内部机制深度解析
内核模块签名与安全
在加载内核模块时,可对其进行有效签名检查,签名会直接附加到模块末尾。更多信息可参考 <file:Documentation/admin-guide/module-signing.rst> 。开启此选项后,OpenSSL 开发包会成为内核构建的依赖项,以便签名工具使用其加密库。若要使用 CONFIG_SECURITY_LOCKDOWN_LSM 或其他 LSM 实施的锁定功能,就应启用该选项,否则无论锁定策略如何,未签名的模块都可加载。
需要特别注意的是,启用此选项后,必须确保模块在签名后不会被剥离,这包括一些打包工具(如 rpmbuild)进行的调试信息剥离,以及为减小模块大小而将其包含在 initramfs 中。我们的 “更好的” Makefile 会认真对待此警告,若任何 CONFIG_MODULE_SIG* 内核配置开启,就不会剥离(调试)符号。
模块签名有两种模式:
- 宽松模式(默认) :当 CONFIG_MODULE_SIG_FORCE 关闭时,允许加载未签名(或密钥不可用)的模块。不过,内核会被标记为 “受污染”(为其和相关模块设置 E 位)。在典型的现代 Linux 发行版中,此宽松设置通常为默认。
- 严格模式 :当 CONFIG_MODULE_SIG_FORCE 开启(设置为 y,或内核命令行包含 module.sig_enforce=1 </
超级会员免费看
订阅专栏 解锁全文

34

被折叠的 条评论
为什么被折叠?



