第 21 章 为安全引导签名内核和模块
您可以使用签名的内核和签名的内核模块来加强系统的安全性。在启用了安全引导机制的基于 UEFI 的构建系统中,您可以自我签名一个私有构建的内核或内核模块。另外,您可以将公钥导入到要部署内核或内核模块的目标系统中。
如果启用了安全引导机制,则必须使用私钥签名以下所有组件,并使用对应的公钥进行身份验证:
- UEFI 操作系统引导装载程序
- Red Hat Enterprise Linux 内核
- 所有内核模块
如果这些组件中的任何一个都没有签名和验证,则系统将无法完成引导过程。
Red Hat Enterprise Linux 9 包括:
- 签名的引导装载程序
- 签名的内核
- 签名的内核模块
此外,签名的第一阶段引导装载程序和签名的内核包括嵌入的红帽公钥。这些签名的可执行二进制文件和嵌入式密钥可让 Red Hat Enterprise Linux 9 安装、引导和使用 Microsoft UEFI 安全引导认证机构密钥运行。这些密钥由支持 UEFI 安全引导的系统上的 UEFI 固件提供。
- 不是所有基于 UEFI 的系统都包括对安全引导的支持。
- 构建系统(构建和签署内核模块)不需要启用 UEFI 安全引导,甚至不需要是基于 UEFI 的系统。
21.1. 先决条件
要能够为外部构建的内核模块签名,请从以下软件包安装工具:
# dnf install pesign openssl kernel-devel mokutil keyutils
表 21.1. 所需工具 工具 由软件包提供 用于 目的 efikeygen
pesign
构建系统
生成公共和专用 X.509 密钥对
openssl
openssl
构建系统
导出未加密的私钥
sign-file
kernel-devel
构建系统
用来使用私钥为内核模块签名的可执行文件
mokutil
mokutil
目标系统
用于手动注册公钥的可选工具
keyctl
keyutils
目标系统
用于在系统密钥环中显示公钥的可选工具