Red Hat Training

A Red Hat training course is available for RHEL 8

3.4. 使用 X.509 密钥验证内核模块的要求

在 RHEL 8 中,当加载内核模块时,内核会根据内核系统密钥环中的公共 X.509 密钥检查模块的签名(.builtin_trusted_keys)以及内核平台密钥环(.platform)。.platform 密钥环包含来自第三方平台提供商和自定义公钥的密钥。内核系统 .blacklist 密钥环中的密钥不包括在验证中。

您需要满足某些条件,才能在启用了 UEFI 安全引导功能的系统上载入内核模块:

  • 如果启用了 UEFI 安全引导,或者指定了 module.sig_enforce 内核参数:

    • 您只能加载那些签名是通过系统密钥环 (.builtin_trusted_keys) 和平台密钥环 (.platform) 验证的已签名内核模块。
    • 公钥不能在系统中被撤销的密钥环 (.blacklist)。
  • 如果禁用了 UEFI 安全引导且未指定 module.sig_enforce 内核参数:

    • 您可以加载未签名的内核模块和签名的内核模块,而无需公钥。
  • 如果系统不基于 UEFI,或者禁用 UEFI 安全引导:

    • 只有内核中嵌入的密钥才会加载到 .builtin_trusted_keys.platform
    • 您无法在不重新构建内核的情况下添加这组密钥。

表 3.2. 加载内核模块的验证要求

模块已签名找到公钥,且签名有效UEFI 安全引导状态sig_enforce模块载入内核污点

未签名

-

未启用

未启用

成功

未启用

Enabled

Fails

-

Enabled

-

Fails

-

已签名

未启用

未启用

成功

未启用

Enabled

Fails

-

Enabled

-

Fails

-

已签名

未启用

未启用

成功

未启用

Enabled

成功

Enabled

-

成功