是否可以向远程方证明我在系统中运行的应用程序与我声称正在使用 DRTM 或 SRTM 运行的应用程序相同?如果是,那么如何?
理论上:是的。该概念称为远程证明。
基本思想是:首先,您在平台上构建了一个健全的信任链,例如:
BIOS ==> Boot loader ==> OS ==> Applications
所得测量结果存储在PCR中。
现在,您可以让 TPM 对这组 PCR 进行签名,称为 quote
。
您可以将此报价单提交给远程实体。问题从这里开始:
如何证明报价是由硬件 TPM 而不是模拟器签名的?
可能的解决方案:预共享密钥或某种 CA。
如何确定 PCR 值表示受信任的系统状态?
这并不容易。如果您有 SRTM,您必须考虑系统如何加载组件。例如,在 BIOS 阶段,顺序是选项ROM已加载?
在这里,DRTM来救援,但它使事情变得稍微容易一些。使用DRTM您可以忘记所有DRTM之前的东西。如果您有一个小型的受信任环境,比如说闪烁,那么你将拥有一组可管理的受信任配置。如果你有一个功能齐全的操作系统,那就很难了。
首先,您必须找到一个可以测量一切的操作系统。IBM 的 IMA for the Linux内核就是一个例子。
然后,加载组件顺序的最微小差异将导致不同的PCR值。此外,考虑所有状态组合可能有不同的已安装软件包。
可能的解决方案是限制表示有效配置。例如,您可以测量整个操作系统映像,而不是每个二元的。一个例子是几年前发布的acTvSM平台。
结论:没有简单的现成解决方案,但您可以设计一个符合您需求的系统。