【发布时间】:2013-11-05 23:27:44
【问题描述】:
如何将正在运行的应用程序扩展为 PCR?以及可以使用哪种PCR?
【问题讨论】:
标签: tpm trusted-computing
如何将正在运行的应用程序扩展为 PCR?以及可以使用哪种PCR?
【问题讨论】:
标签: tpm trusted-computing
我假设您的意思是 PC 平台上的 TPM 版本 1.2,因此您对以下规范文档感兴趣:
现在回答你的问题:
“如何将正在运行的应用程序扩展成PCR?”
您需要一些软件来识别“正在运行的应用程序”(=测量)
并向 TPM 发出TPM_Extend 命令。通常这是通过 TSS 完成的,但是
您也可以使用自己编写的程序来做到这一点,TPM_Extend 命令不是那样的
复杂。
识别意味着在大多数情况下计算 SHA-1 哈希,但 TPM 并不关心。这 您提供的数据的描述是:
The 160 bit value representing the event to be recorded.
“可以使用哪种PCR?”
这取决于您的实际环境。对 PCR 的访问由地区控制。 下表显示了哪些 PCR 可以在哪些地方进行扩展:
PCR Alias (description) Extendable in localities
-----------------------------------------------------------------
0-15 Static RTM 4,3,2,1,0
16 Debug 4,3,2,1,0
17 Locality 4 4,3,2
18 Locality 3 4,3,2
19 Locality 2 3,2
20 Locality 1 3,2,1
21 Dynamic OS controlled 2
22 Dynamic OS controlled 2
23 Application Specific 4,3,2,1,0
您所在的位置取决于您的环境。如果您在 Linux 用户空间中, 例如,您的位置为 0。
如果您正在设计一个可信架构,您还必须考虑如何将 PCR 可以重置(在哪些地方)。
地点在TCG PC Client Specific TPM Interface Specification (TIS)中描述:
位置 4:受信任的硬件组件。 D-CRTM 使用它来建立 动态 RTM。
位置 3:辅助组件。使用它是可选的,如果使用,它是 依赖于实现。
区域 2:动态启动操作系统(Dynamic OS)“运行时”环境。
区域 1:动态操作系统使用的环境。
位置 0:静态 RTM、其信任链及其环境。
【讨论】: