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

最佳答案

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

  • TPM Main Part 2 TPM Structures
  • TCG PC Client Specific TPM Interface Specification (TIS)

  • 现在回答你的问题:
  • "如何将正在运行的应用程序扩展到 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 InterfaceSpecification (TIS) 中描述了位置:
  • 位置 4:可信硬件组件。 D-CRTM 使用它来建立
    动态 RTM。
  • 位置 3:辅助组件。使用 this 是可选的,如果使用,它是
    依赖于实现。
  • Locality 2:动态启动的操作系统(Dynamic OS)“运行时”环境。
  • 位置 1:供动态操作系统使用的环境。
  • 位置 0:静态 RTM、其信任链及其环境。
  • 关于tpm - 如何将正在运行的应用程序扩展到 PCR 中?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19613658/

    10-12 20:36