如果启用了 SB 而 Arch 没有启用,Fedora 为什么会忽略 `module.sig_enforce` 内核参数?

如果启用了 SB 而 Arch 没有启用,Fedora 为什么会忽略 `module.sig_enforce` 内核参数?

我最近在配备 RTX3050 的笔记本电脑上安全启动了 Arch 和 Fedora。

众所周知,我必须在 Fedora 上签署我的 Nvidia 模块,以便内核加载它们。然而,我发现 Arch 的情况并非如此。 Arch 会加载 Nvidia 模块,即使它们没有签名——当然,前提是内核和 GRUB 已签名。

经过研究,我发现这个帖子ArchWiki 上提到了module.sig_enforce=1强制签名验证的内核参数。然而,Fedora 文档的此条目,提到当启用 SecureBoot 时,上述内核参数没有任何区别。

表 3 来自随附的 Fedora 文档链接

内核文档CONFIG_MODULE_SIG_FORCE在内核配置中提及选项。因此,我决定看一下 Fedora 和 Arch 的配置。

果然,没有设置该选项。但是,所以不软呢帽

那么为什么模块处理上会出现这种差异呢?

编辑:CONFIG_LOCK_DOWN_IN_EFI_SECURE_BOOT在 Fedora 的 Matrix Room 聊天后,我发现该选项存在于 Fedora 的配置中,但不存在于 Arch 的配置中。但是,我在以下位置找不到与此相关的任何文档docs.kernel.org;仅供参考这里。是否有不同的站点来记录所有内核配置选项?

答案1

正如您所发现的,这是由 强制执行的CONFIG_LOCK_DOWN_IN_EFI_SECURE_BOOT。该设置受支持一个内核补丁尚未被上游合并;你会在 Fedora 和 RHEL 内核中找到它,但在 Arch 中找不到。

由于它尚未合并到上游,因此您不会在上游内核文档或任何其他描述上游内核的站点上找到它。

相关内容