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

是否可以使用UEFI安全引导将统一内核映像引导为Xen Dom0?,xen,uefi,Xen,Uefi,我正在尝试以一种方式设置Xen主机,即在引导Dom0 Linux内核之前的每一步都是经过安全引导验证的 如果没有Xen,这可以通过在单个EFI二进制文件中对包含内核、initrd和内核命令行参数的统一内核映像进行签名来实现 仅对Xen EFI二进制文件进行签名是无用的,因为内核、initrd和Xen配置文件可以在不影响安全引导的情况下进行修改 通过Shim引导时,Xen使用Shim协议验证Dom0内核和initrd,但未验证包含内核命令行参数的Xen配置文件,因此攻击者仍然可以修改这些参数 修补

我正在尝试以一种方式设置Xen主机,即在引导Dom0 Linux内核之前的每一步都是经过安全引导验证的

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

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

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

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

有什么办法可以做到这一点吗?

从4.15开始,主线Xen树中没有对它的支持,尽管有支持构建“统一Xen”的初步补丁:

这借鉴了
systemd boot
中的技术,使用
Xen.cfg
bzImage
initrd.img
和可选的XSM文件创建单个统一的Xen可执行文件,每个文件都位于各自的命名PE部分中。然后可以使用
sbsign
对该可执行文件进行签名,并通过UEFI安全引导使用平台密钥或密钥数据库进行验证。可以为此统一Xen创建UEFI引导管理器条目,这样就不需要
grub

它已经在qemu中进行了测试,并启用了OVMF安全引导以及Thinkpad硬件。在准备提交给xen-devel之前,需要进一步清理