如何将运行的应用程序扩展到PCR?

时间:2013-10-27 01:18:22

标签: tpm trusted-computing

如何将正在运行的应用程序扩展到PCR?哪个PCR可用于它?

1 个答案:

答案 0 :(得分:8)

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

现在回答你的问题:

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

    您需要一些识别“正在运行的应用程序”的软件(= 度量) 并向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 Client Specific TPM Interface Specification (TIS)

    中描述了地区
    • 位置4:可信硬件组件。这被D-CRTM用来建立 动态RTM。

    • 地点3:辅助组件。使用它是可选的,如果使用的话,它是 依赖于实现。

    • 地点2:动态启动操作系统(动态操作系统)“运行时”环境。

    • 地点1:动态操作系统使用的环境。

    • 地点0:静态RTM,其信任链及其环境。