21.4. 使用 X.509 密钥验证内核模块的要求
在 Red Hat Enterprise Linux 9 中,当载入内核模块时,内核会根据内核系统密钥环(.builtin_trusted_keys
)和内核平台密钥环(.platform
)中的公共 X.509 密钥检查模块的签名。.platform
密钥环从第三方平台提供商和自定义公钥提供密钥。内核系统 .blacklist
密钥环中的密钥不包括在验证中。
您需要满足某些条件,才能在启用了 UEFI 安全引导功能的系统上载入内核模块:
如果启用了 UEFI 安全引导,或者指定了
module.sig_enforce
内核参数:-
您只能加载那些签名是通过系统密钥环 (
.builtin_trusted_keys
) 和平台密钥环 (.platform
) 验证的已签名内核模块。 -
公钥不能在系统中被撤销的密钥环 (
.blacklist
)。
-
您只能加载那些签名是通过系统密钥环 (
如果禁用了 UEFI 安全引导且未指定
module.sig_enforce
内核参数:- 您可以加载未签名的内核模块和签名的内核模块,而无需公钥。
如果系统不基于 UEFI,或者禁用 UEFI 安全引导:
-
只有内核中嵌入的密钥才会加载到
.builtin_trusted_keys
和.platform
。 - 您无法在不重新构建内核的情况下添加这组密钥。
-
只有内核中嵌入的密钥才会加载到
模块已签名 | 找到公钥,且签名有效 | UEFI 安全引导状态 | sig_enforce | 模块载入 | 内核污点 |
---|---|---|---|---|---|
未签名 | - | 未启用 | 未启用 | 成功 | 是 |
未启用 | Enabled | Fails | - | ||
Enabled | - | Fails | - | ||
已签名 | 否 | 未启用 | 未启用 | 成功 | 是 |
未启用 | Enabled | Fails | - | ||
Enabled | - | Fails | - | ||
已签名 | 是 | 未启用 | 未启用 | 成功 | 否 |
未启用 | Enabled | 成功 | 否 | ||
Enabled | - | 成功 | 否 |