红帽企业 Linux (RHEL) 的新主要版本在机密计算领域带来许多重要改进。本文将介绍 RHEL 10 和 RHEL 9.6 中现有的最重要功能。
- 全面支持红帽统一内核镜像(UKI),包括 FIPS 和 kdump 支持
- 英特尔信任域扩展(TDX)客户机
- Trustee 认证客户端
全面支持红帽统一内核镜像(UKI)
首次引入是在 RHEL9.2 中作为技术预览,RHEL 的统一内核镜像 (UKI) 是一个 UEFI 可移植可执行 (PE) 二进制文件,其中包含 Linux 内核、initramfs 和内核命令行。将所有这些部分包含在一个二进制文件中,可以将安全启动保护扩展到整个操作系统启动过程。在操作系统从不受信任的存储(如公共云上的机密虚拟机 (CVM))启动的各种情况下,这一点非常重要。
RHEL UKI 已发布 在 kernel-uki-virt 软件包中,目前仅支持 x86_64 架构。未来,我们计划添加支持 UEFI 固件的其他架构,特别是 ARM64 (Aarch 64)。Aarch 64。
RHEL UKI 适用于虚拟机和云实例。满足以下前提条件时,可以使用它:
- UEFI 固件用于启动(不支持传统 BIOS 启动)
- 存储为 NVMe、Virtio 或 VMBus
- 驱动器使用 GPT 进行标准分区。分区方案必须符合 systemd-gpt-auto-generator。还支持 LUKS 加密卷
- 根卷使用 XFS 或 Ext4 文件系统
UKI 基于 systemd-stub ,并作为 PE 二进制文件,可以直接从 UEFI 固件启动。红帽建议在启动 UKI 时使用 shim 启动加载器。这允许使用 shim 提供的其他安全机制,如计算机所有者密钥 (MOK) 和安全启动高级目标 (SBAT)。为了简化管理 UEFI 变量, uki-direct 软件包( python3-virt-firmware)包含一个方便的 kernel-bootcfg 工具。此软件包也可用于实施 A/B 启动,其中新安装的 UKI 会尝试一次,如果成功启动,则成为默认值。
随着 RHEL 10 和 RHEL 9.6 的发布,红帽 UKI 技术得到了全面支持。请注意,RHEL UKI 也可以使用 addons 机制进行扩展。
RHEL UKI 支持 FIPS 模式
在某些情况下,使用 RHEL UKI 时,可能需要修改原本静态的内核命令行。特别是,将 RHEL 切换到 FIPS 模式需要在 fips=1 内核命令行上添加参数。为了简化常见用例,RHEL UKI 附带了一组预构建和签名的内核命令行扩展,这些扩展包含在 kernel-uki-virt-addons 软件包中。借助此软件包,在内核命令行上启用 FIPS 就像将插件复制到 EFI 系统分区一样简单:
# rpm -q kernel-uki-virt kernel-uki-virt-addons
kernel-uki-virt-5.14.0-569.el9.x86_64
kernel-uki-virt-addons-5.14.0-569.el9.x86_64
# cp \
/lib/modules/5.14.0-569.el9.x86_64/vmlinuz-virt.efi.extra.d/fips-enable-virt.rhel.x86_64.addon.efi \
/boot/efi/EFI/Linux/`cat /etc/machine-id`-5.14.0-569.el9.x86_64.efi.extra.d/
# reboot
重启后,您可以验证 fips=1 出现在内核命令行中:
# cat /proc/cmdline
console=tty0 console=ttyS0 fips=1
请注意,在 RHEL 9 中,您还必须使用 fips-mode-setup 将系统范围的加密策略切换到 FIPS 模式。使用 RHEL UKI 时,可以通过 --no-bootcfg 开关:
# fips-mode-setup --no-bootcfgRHEL UKI 支持 kdump 启用
与 FIPS 类似,启用 kdump 需要预留内存。这通过在内核命令行上指定 crashkernel= 参数来实现。为方便起见, kernel-uki-virt-addons 包含适用于大多数常见用例的签名插件:
# ls -1 /lib/modules/`uname -r`/vmlinuz-virt.efi.extra.d/ \
| grep crashkernel
crashkernel-1536M-virt.rhel.x86_64.addon.efi
crashkernel-192M-virt.rhel.x86_64.addon.efi
crashkernel-1G-virt.rhel.x86_64.addon.efi
crashkernel-256M-virt.rhel.x86_64.addon.efi
crashkernel-2G-virt.rhel.x86_64.addon.efi
crashkernel-512M-virt.rhel.x86_64.addon.efi
crashkernel-default-virt.rhel.x86_64.addon.efi 要启用所需的插件,请将其复制到 /boot/efi/EFI/Linux/`cat /etc/machine-id`-`uname -r`.efi.extra.d/ 目录。
现已全面支持英特尔信任域扩展 (TDX)
英特尔信任域扩展 (TDX) 是英特尔的一项机密计算技术,可提供硬件隔离的虚拟机(称为“受信域”或 TD)。英特尔 TDX 提供机密性、真实性和完整性保证。
RHEL 9.2 版本中引入了对在 TDX 受信任域内运行 RHEL 的支持,作为技术预览。RHEL 10 和 RHEL 9.6 版本完全支持这种用例。特别是,RHEL 可用于 Google Cloud 的 C3 计算机系列, Google Cloud 以及微软 Azure DCesv5 和 ECesv5 系列(目前处于公开预览版阶段)。
RHEL 中的 Trustee 客户端
远程认证是机密计算的重要组成部分,因为它会先证明环境的可信度,然后才能将机密数据放入其中。在上一篇文章中,我们描述了 IETF 远程认证程序架构 (RATS) 模型 和 Trustee 项目,以及如何将它们应用到机密容器。RHEL 9.6 和 10 简化了 Trustee 的使用,Trustee 客户端作为 trustee-guest-components 软件包提供。请注意,该客户端作为技术预览提供,可用于开发和测试目的。
摘要
当机密性和安全性是绝对优先事项时,您可以在最先进的硬件技术(如 AMD 的 SEV-SNP 和英特尔的 TDX)上运行 RHEL,并确信 RHEL 附带的软件(如红帽 UKI)是稳定的。红帽专注于机密计算技术的易用性,确保在虚拟化和云环境中运行 RHEL 的所有客户都可以使用这些技术。