是否可以使用 UEFI 安全启动将统一内核映像启动为 Xen Dom0?

Is it possible to boot an unified kernel image as Xen Dom0 with UEFI Secure Boot?

我正在尝试设置 Xen 主机,在启动 Dom0 Linux 内核之前的每一步都经过安全启动验证。

如果没有 Xen,这可以通过在单个 EFI 二进制文件中签署包含内核、initrd 和内核命令行参数的统一内核映像来实现。

仅签署 Xen EFI 二进制文件是无用的,因为可以在不影响安全启动的情况下修改内核、initrd 和 Xen 配置文件。

当通过 Shim 启动时,Xen 使用 Shim 协议验证 Dom0 内核和 initrd,但是包含内核命令行参数的 Xen 配置文件未被验证,因此攻击者仍然可以修改这些参数。

tklengyel/xen-uefi 修补Xen 源代码以将Xen 配置文件测量到PCR 寄存器中。如果 Xen 引导的签名内核二进制文件包含 initrd 和内核命令行参数,并且 Xen 配置文件中指定的所有其他参数都被忽略,则没有必要这样做。

有什么办法可以实现吗?

从 4.15 开始,主线 Xen 树不支持它,尽管有初步补丁支持构建“统一 Xen”:https://github.com/osresearch/xen/tree/secureboot

这借鉴了 systemd-boot 的技术来创建单个统一的 Xen 可执行文件,其中包含 xen.cfgbzImageinitrd.img 和一个可选的 XSM 文件,每个文件都有自己的名为PE部分。然后可以使用 sbsign 对该可执行文件进行签名,并由 UEFI 安全启动使用平台密钥或密钥数据库进行验证。可以为这个统一的 Xen 创建一个 UEFI 引导管理器条目,这样就不需要 grub

它已经在启用了 OVMF 安全启动的 qemu 和 Thinkpad 硬件中进行了测试。在准备提交给 xen-devel.

之前,需要进一步清理