21.2. 什么是 UEFI 安全引导
使用 统一可扩展固件接口 (UEFI)安全引导技术,您可以防止未由可信密钥签名的内核空间代码的执行。系统引导装载程序使用加密密钥进行签名。公钥的数据库(其包含在固件中)授权签名密钥。然后,您可以在下一个阶段引导装载程序和内核中验证签名。
UEFI 安全引导建立了一个从固件到签名驱动程序和内核模块的信任链,如下所示:
-
UEFI 私钥签名,公钥验证
shim
第一阶段引导装载程序。证书颁发机构 (CA)反过来签署公钥。CA 存储在固件数据库中。 -
shim
文件包含红帽公钥 Red Hat Secure Boot (CA 密钥 1) 来验证 GRUB 引导装载程序和内核。 - 内核又包含用于验证驱动程序和模块的公钥。
安全引导是 UEFI 规范的引导路径验证组件。规范定义:
- 用于非易失性存储中加密保护的 UEFI 变量的编程接口。
- 在 UEFI 变量中存储可信的 X.509 根证书。
- UEFI 应用程序的验证,如引导装载程序和驱动程序。
- 撤销已知错误的证书和应用程序哈希的流程。
UEFI 安全引导版主检测未经授权的更改,但不会 :
- 防止安装或删除第二阶段引导装载程序。
- 需要此类更改的明确的用户确认。
- 停止引导路径操作。在引导过程中会验证签名,而不是在安装或更新引导装载程序时。
如果引导装载程序或内核不是由系统可信密钥签名的,则安全引导会阻止它们启动。