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

Posted

技术标签:

【中文标题】如何将正在运行的应用程序扩展到 PCR 中?【英文标题】:How to extend the running application into PCR? 【发布时间】:2013-11-05 23:27:44 【问题描述】:

如何将正在运行的应用程序扩展为 PCR?以及可以使用哪种PCR?

【问题讨论】:

【参考方案1】:

我假设您的意思是 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 Interface Specification (TIS)中描述:

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

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

    区域 2:动态启动操作系统(Dynamic OS)“运行时”环境。

    区域 1:动态操作系统使用的环境。

    位置 0:静态 RTM、其信任链及其环境。

【讨论】:

我不清楚这个 SHA-1 哈希计算:计算应用程序的所有文件的 SHA-1 还是只是二进制文件? 这取决于您想要的系统架构。对于受信任的系统,您必须衡量可能影响系统行为的所有内容。 您能否介绍一下地方,它们是什么?举个例子! 它们是某种特权级别。如果您想真正理解它们,您必须阅读并理解 TCG 的 DRTM 概念。 在这种情况下,我们如何证明我们正在运行被测量的应用程序而不是未被测量的应用程序......在这种情况下,我们必须测量一切......那么一个关键问题将是我们如何证明我们已经测量了所有内容并且没有跳过任何内容......我想这些问题本质上是学术性的!

以上是关于如何将正在运行的应用程序扩展到 PCR 中?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 iOS swift 运行时更新 CAGradientLayer 颜色?

如何复制 PCR 值的扩展,例如沙1苏姆?

我们自己的代码可以扩展哪些PCR?

将文件扩展名与应用程序关联

如何调试我的 Siri (Intents) 扩展?

如何在后台运行黑莓应用程序