我有一台带TPM的机器,我正在运行Windows 7。 我有一段代码,我想运行它并获得当时的PCR寄存器值。 我怎么能这样做?
其次,如果我在其他机器上运行相同的代码,我可以获得相同的PCR值吗?如果我不能,那么无论如何都得到它?
-------------- EDITED版本以下----------------------
情景如下, 我有一个用C ++编写的可执行代码(例如一个简单的纸牌游戏)。 我想在我的电脑上运行这个文件。 我想得到PCR值。 Windows平台有24个PCR寄存器,现在哪个寄存器有我运行文件的哈希值(游戏)?
答案 0 :(得分:4)
如果没有详细信息,我可以提供一般性答案。如果您提供更多详细信息,我将对其进行编辑。
阅读PCR
您可以使用低级Windows API。看看这个问题及其答案: Controlling TPM with C#
基本上查看TPM Base Services (TBS)的文档。您需要自己实现read命令。
有一个TrouSerS for Windows的实验端口。
PCR的比较
PC平台上的TPM将具有24个PCR。几乎在所有情况下,所有24个的集合在两台不同的机器上都不一样。通常,您无法更改其值,尤其是不能代表固件测量的“ lower ”值。我想你要找的是远程PC是否处于可信状态的信息。那是圣杯。获取一些关于可信计算的文献,并在网上搜索“可信计算+证明”。