UEFI 安全启动,如何(或将)检查 PCIE 设备(固件)?

UEFI secure boot, how (or will) the PCIE device (firmware) are checked?

最近我正在搜索有关 PCIe 设备是否参与 uefi 安全启动的信息,如果是,它是如何完成的。

从uefi规范来看,主要的启动顺序大致如下图: Platform init --> load EFI image (may also load EFI drivers/applications)-->load EFI OS loader --> boot ends

意思是如果PCIe设备涉及secure boot,应该出现在EFI驱动加载阶段,比如驱动的(设备的固件?)checksum/hash可以计算和检查。

然而,搜索 PCIE uefi 安全启动几乎没有信息。

到目前为止,我找到了两个来源。 首先,HPE post (https://techlibrary.hpe.com/docs/iss/proliant_uefi/UEFI_TM_030617/s_configure_secure_boot.html) 将安全启动解释为

Secure Boot validates the software identity of the following components in the boot process:

  1. UEFI drivers loaded from PCIe cards

  2. UEFI drivers loaded from mass storage devices

  3. Pre-boot UEFI shell applications

  4. OS UEFI boot loaders

这似乎符合我的假设。 但我的问题是,(如果我错了请纠正我),PCIe设备在供电时自动启动,那么如果在检查之前启动恶意PCIe uefi,上述HPE方式如何保证不会造成伤害?

第二张来自NVIDIA A100显卡(https://www.nvidia.com/content/dam/en-zz/Solutions/Data-Center/a100/pdf/PB-10577-001_v02.pdf)。

基本上,nvidia 在 GPU 卡中有专用的硬件信任根,因此 PCIe 安全启动(甚至测量启动)与平台分开执行 (motherboard/cpu/os...) uefi安全启动流程。

我的问题是,

  1. PCIe(或其uefi固件)会参与经典的uefi安全启动吗?
  2. PCIe uefi 驱动程序和 PCIe uefi 固件有什么区别?
  3. HPE 或 nvidia 的安全启动概念 correct/most 哪一种方式更接近?

好吧,在谷歌搜索和与专业人士交谈之后,我将尝试回答我自己的问题。

Will PCIe (or its uefi firmware) involved in the classic uefi secure boot?

不,不包括 pcie 设备。

What's the difference between the PCIe uefi driver and PCIe uefi firmware?

它们是两个不同的东西。 PCIE 设备固件,更复杂,因为它们包含更多 EFI/BIOS + 一个 mini/tiny os。不过pcie uefi driver,据我理解,是给host/mobo efi使用的设备,想象一下efi是一个小os.

Which way is the correct/most close to the secure boot concept, HPE's or NVidia's?

英伟达的。因为您需要在 pcie 设备上 TPM/HSM 到 measure/check 设备 efi。