5.2. 了解云上 RHEL 的安全引导


安全引导是统一可扩展固件接口(UEFI)的一个功能。它确保在引导时只有可信和数字签名的程序和组件(如引导装载程序和内核)运行。安全引导根据硬件中存储的可信密钥来检查数字签名。如果检测到任何被篡改的组件或被不信任的实体签名的组件,它将中止引导过程。此操作防止恶意软件破坏操作系统。

通过确保只有受信任的实体参与引导链,安全引导在配置机密虚拟机(CVM)中起着至关重要的作用。它通过定义的接口验证对特定设备路径的访问,强制使用最新的配置,并永久覆盖以前的配置。当 Red Hat Enterprise Linux (RHEL)内核在启用了安全引导的情况下引导时,它会进入 lockdown 模式,只允许加载被可信厂商签名的内核模块。因此,安全引导增强了操作系统引导序列的安全。

5.2.1. 安全引导的组件

安全引导机制包括固件、签名数据库、加密密钥、引导装载程序、硬件模块和操作系统。以下是 UEFI 可信变量的组件:

  • 密钥交换密钥数据库(KEK):公钥交换,来在 RHEL 操作系统和虚拟机固件之间建立信任。您还可以使用这些密钥更新允许的签名数据库(db)和禁止的签名数据库(dbx)。
  • 平台密钥数据库(PK):一个自签名的单密钥数据库,来在虚拟机固件和云平台之间建立信任。PK 还更新 KEK 数据库。
  • 允许的签名数据库(db):维护证书列表或二进制哈希的数据库,以检查二进制文件是否可以在系统上引导。另外,来自 db 的所有证书都会被导入到 RHEL 内核的 .platform keyring 中。使用此功能,您可以在 lockdown 模式下添加和加载签名的第三方内核模块。
  • 禁止的签名数据库(dbx):维护一个不允许在系统中引导的证书列表或二进制哈希的数据库。
注意

针对 dbx 数据库的二进制文件检查和安全引导高级目标(SBAT)机制。使用 SBAT,您可以通过将签名二进制文件的证书保持为有效来撤销特定二进制文件的旧版本。

5.2.2. 云上 RHEL 的安全引导阶段

当 RHEL 实例在 Unified Kernel Image (UKI)模式下引导并启用了安全引导时,RHEL 实例会按照以下顺序与云服务基础设施进行交互:

  1. 初始化 :当 RHEL 实例引导时,云托管固件最初会引导并实施安全引导机制。
  2. 变量存储初始化 :固件会从变量存储初始化 UEFI 变量,这是一个专用的存储区域,用于固件需要管理引导过程和运行时操作的信息。当 RHEL 实例首次启动时,存储会从与虚拟机镜像关联的默认值初始化。
  3. 引导装载程序 :引导时,固件会加载第一阶段引导装载程序。对于 x86 UEFI 环境中的 RHEL 实例,第一阶段引导装载程序是 shim。shim 引导装载程序验证并加载引导过程的下一阶段,并作为 UEFI 和 GRUB 之间的桥梁。

    1. RHEL 中的 shim x86 二进制文件目前由 Microsoft 公司 UEFI CA 2011 Microsoft 证书签名,因此 RHEL 实例可以在启用了安全引导模式的不同硬件和虚拟平台上引导,其中允许的签名数据库(db)有默认的 Microsoft 证书。
    2. shim 二进制文件使用 Red Hat Secure Boot CA 以及可选的 Machine Owner Key (MOK)扩展了可信证书的列表。
  4. UKI: shim 二进制文件加载 RHEL UKI ( kernel-uki-virt 软件包)。x86_64 架构上相应的证书 Red Hat Secure Boot Signing 504 签署 UKI。您可以在 redhat-sb-certs 软件包中找到此证书。Red Hat Secure Boot CA 为这个证书签名,因此检查成功。
  5. UKI 附加组件 :当您使用 UKI cmdline 扩展时,RHEL 内核会主动针对 dbMOK 检查其签名,以及与 shim 一起提供的证书。此过程确保操作系统厂商 RHEL 或用户已签署了扩展。

当 RHEL 内核在安全引导模式下引导时,它会进入 lockdown 模式。进入 lockdown 后,RHEL 内核将 db 密钥添加到 .platform keyring 中,并将 MOK 密钥添加到 .machine keyring 中。在内核构建过程中,构建系统使用临时密钥,后者由私钥和公钥组成。构建系统签署标准的 RHEL 内核模块,如 kernel-modules-corekernel-moduleskernel-modules-extra。完成每个内核构建后,私钥不再适用于为第三方模块签名。您可以将 dbMOK 中的证书用于此目的。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat