3

How to extend the running application into PCR? and Which PCR can be used for it?

4

1 回答 1

9

我假设您的意思是 PC 平台上的 TPM 版本 1.2,因此您会感兴趣以下规范文档:

现在回答你的问题:

  1. “如何将正在运行的应用程序扩展到 PCR 中?”

    您需要一些软件来识别“正在运行的应用程序”(= measure)并向 TPM 发出TPM_Extend命令。通常这是通过 TSS 完成的,但您也可以使用自己编写的程序来完成,TPM_Extend命令并不那么复杂。

    在大多数情况下,识别意味着计算 SHA-1 哈希,但 TPM 并不关心。您提供的数据的描述是:

    The 160 bit value representing the event to be recorded.
    
  2. “可以用哪种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 客户端特定 TPM 接口规范 (TIS)中描述了这些位置:

    • 位置 4:受信任的硬件组件。D-CRTM 使用它来建立动态 RTM。

    • 位置 3:辅助组件。使用它是可选的,如果使用,它取决于实现。

    • 位置 2:动态启动的操作系统(Dynamic OS)“运行时”环境。

    • 位置 1:动态操作系统使用的环境。

    • 位置 0:静态 RTM、它的信任链和它的环境。

于 2013-10-27T13:23:38.250 回答