我花了几天时间试图弄清楚如何在 Linux 中使用 TPM2.0 安全地解密远程位置的硬盘驱动器。我不是安全专家,这是我与 TPM2.0 的第一次战斗。我学到了很多,但我仍然有疑问。有人可以帮我解决这些问题:
- 目前 TrustedGRUB2 不支持 TPM2.0,只支持 TPM1.2。我找不到其他支持 TPM2.0 的项目。有吗?
- TPM2.0 可以停止启动过程吗?
我试图解决的问题是:
- 我有一个未加密的加密
/
分区/boot
- 计算机将在其他人的场所,因此应该不可能窃取硬盘驱动器并读取数据
- 引导过程应该是无人值守的——机器不应该解密驱动器并在发生变化时自行引导——BIOS 配置、
initram
文件(/boot
未加密,因此可以摆弄initram
)
我想到了这个解决方案:
- LUKS 键将是 PCR0 的值
- PCR0 值应该改变,如果有人要更改 BIOS 中的某些内容,例如重置它(如果有人会窃取整个 PC,而不仅仅是磁盘),启用 USB 引导。
- 用于解密磁盘的 PCR0 值应该与运行在其上的操作系统一样安全——在不更改 BIOS 的情况下读取这个未更改的 PCR0 的唯一方法是访问操作系统,对吗?
我认为我已经达到了可以就这个问题提出合理问题的水平,但我自己无法进一步评估其中的含义或漏洞。