20.2. 什么是 UEFI 安全引导

使用 统一可扩展固件接口 (UEFI)安全引导技术,您可以防止未由可信密钥签名的内核空间代码的执行。系统引导装载程序使用加密密钥进行签名。公钥的数据库(其包含在固件中)授权签名密钥。然后,您可以在下一个阶段引导装载程序和内核中验证签名。

UEFI 安全引导建立了一个从固件到签名驱动程序和内核模块的信任链,如下所示:

  • UEFI 私钥签名,公钥验证 shim 第一阶段引导装载程序。证书颁发机构 (CA)反过来签署公钥。CA 存储在固件数据库中。
  • shim 文件包含红帽公钥 Red Hat Secure Boot (CA 密钥 1) 来验证 GRUB 引导装载程序和内核。
  • 内核又包含用于验证驱动程序和模块的公钥。

安全引导是 UEFI 规范的引导路径验证组件。规范定义:

  • 用于非易失性存储中加密保护的 UEFI 变量的编程接口。
  • 在 UEFI 变量中存储可信的 X.509 根证书。
  • UEFI 应用程序的验证,如引导装载程序和驱动程序。
  • 撤销已知错误的证书和应用程序哈希的流程。

UEFI 安全引导版主检测未经授权的更改,但不会

  • 防止安装或删除第二阶段引导装载程序。
  • 需要此类更改的明确的用户确认。
  • 停止引导路径操作。在引导过程中会验证签名,而不是在安装或更新引导装载程序时。

如果引导装载程序或内核不是由系统可信密钥签名的,则安全引导会阻止它们启动。