TPM 密钥真实性和验证

TPM 密钥真实性和验证

如何验证存储在 TPM 中的密钥的真实性?如何验证使用命令“mokutil --'xx'”(在 Ubuntu 中)查看的 PK、KEK、db 和 dbx 密钥是用于安全启动的密钥和存储在 TPM 中的密钥?

答案1

您询问的是两个完全不同的功能:

  • 安全启动密钥存储为 EFI 变量。它们受以下固件保护:一些方式(这样,如果没有完整的私有 PK,就不可能更改 KEK,如果没有 KEK,就不可能更改数据库)——但它们不一定受到 TPM 的保护。实现可能使用 TPM 提供的 NVRAM,也可能使用其他防篡改 NVRAM,或者可能比较懒惰,使用通用 EFI 变量 NVRAM。

  • TPM 存储通用密钥。它可以将数据密封到当前系统状态,包括各种 EFI 变量的哈希值。例如,更改 KEK 或数据库会改变写入 TPM PCR 的哈希值,从而使所有 PCR 锁定的数据不再可访问。(更改启动顺序等也是如此。)但是,TPM 是一个独立芯片(或固件功能),其功能不依赖于安全启动。

  • 这两个功能相互作用,但并不相互依赖。事实上,许多具有安全启动功能的系统甚至没有 TPM。同样,许多具有 TPM 的系统没有安全启动功能,许多系统甚至根本没有 UEFI。(只有 TPM 2.0 需要 UEFI;TPM 1.2 不需要。)

相关内容