第 18 章 为安全引导签名内核和模块

您可以使用签名的内核和签名的内核模块来加强系统的安全性。在启用了安全引导机制的基于 UEFI 的构建系统中,您可以自我签名一个私有构建的内核或内核模块。另外,您可以将公钥导入到要部署内核或内核模块的目标系统中。

如果启用了安全引导机制,则必须使用私钥签名以下所有组件,并使用对应的公钥进行身份验证:

  • UEFI 操作系统引导装载程序
  • Red Hat Enterprise Linux 内核
  • 所有内核模块

如果这些组件中的任何一个都没有签名和验证,则系统将无法完成引导过程。

Red Hat Enterprise Linux 9 包括:

  • 签名的引导装载程序
  • 签名的内核
  • 签名的内核模块

此外,签名的第一阶段引导装载程序和签名的内核包括嵌入的红帽公钥。这些签名的可执行二进制文件和嵌入的密钥可以使用支持 UEFI 安全引导的系统上由 UEFI 固件提供的 Microsoft UEFI 安全引导认证机构密钥来安装、引导和运行 Red Hat Enterprise Linux 9。

注意
  • 不是所有基于 UEFI 的系统都包括对安全引导的支持。
  • 构建系统(构建和签署内核模块)不需要启用 UEFI 安全引导,甚至不需要是基于 UEFI 的系统。

18.1. 先决条件

  • 要能够为外部构建的内核模块签名,请从以下软件包安装工具:

    # dnf install pesign openssl kernel-devel mokutil keyutils

    表 18.1. 所需工具

    工具由软件包提供用于目的

    efikeygen

    pesign

    构建系统

    生成公共和专用 X.509 密钥对

    openssl

    openssl

    构建系统

    导出未加密的私钥

    sign-file

    kernel-devel

    构建系统

    用来使用私钥为内核模块签名的可执行文件

    mokutil

    mokutil

    目标系统

    用于手动注册公钥的可选工具

    keyctl

    keyutils

    目标系统

    用于在系统密钥环中显示公钥的可选工具