我读到TPM对所有关键组件进行测量,并在启动时将其哈希写入其PCR寄存器。
TPM是否也在运行时或这些组件运行期间进行测量?
TPM本身根本不进行任何测量。也不是在启动时。这是一个启用信任的代码可以以防篡改的方式存储测量值的地方。
在引导过程中,测量由固件(BIOS、UEFI)进行,并存储在TPM中。可以在固件完成后对系统进行配置,并进行额外的测量。就像一个受信任的引导加载程序。
如果你有兴趣将信任链进一步扩展到每一个执行的代码,那么像IBM的Integrity Measurement Architecture这样的项目是值得一看的。然而,我认为这些测量毫无意义。你用这些做什么?很少有任何情况下,你可以真正验证某个测量链是可信的。
您也可以编写自己的软件,在任何给定的时间存储测量值,或者使用jTSS、TrouSerS或IBM的libtpm工具等工具。