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