【问题标题】:Is it possible to program Intel's Trusted Platform Module是否可以对英特尔的可信平台模块进行编程
【发布时间】:2011-12-07 09:17:49
【问题描述】:

我想知道是否可以对大多数英特尔芯片中存在的 TPM (http://en.wikipedia.org/wiki/Trusted_Platform_Module) 进行编程,以便:

- decide what to store in the persistent memory
- decide which cryptographic algorithms to implement.

显然,一旦它开始工作,它就不应该是可重新编程的(你知道这个说法是否正确吗?)。

【问题讨论】:

    标签: cryptography hardware intel tpm


    【解决方案1】:

    TPM 的行为由 Trusted Computing Group 发布的specifications 定义。 TPM 必须完全按照指定的方式运行,因此您无法更改正确实施的 TPM 的功能。 TPM 制造商在发货后更新其产品的能力有限。例如,英飞凌为其设备提供固件更新。

    不过,英特尔 TPM 可能会有所不同。一些芯片组包含模拟/软件 TPM,而不是实际的硬件 TPM。这些 TPM 可以通过 BIOS 更新进行更新。但在这种情况下,更新必须由英特尔提供。最近的主板(如 DQ67SW)具有独立的硬件 TPM,不是由英特尔制造的。

    所以第二个问题的答案是:不,您无法编程/定义 TPM 使用的加密算法


    关于您的第一个问题:是的,您可以在一定程度上定义要在持久存储中存储的内容。该内存区域称为非易失性存储NV。您必须先使用 TPM_NV_DefineSpace 命令定义一些空间。之后,您可以使用 TPM_NV_ReadValueTPM_NV_WriteValue 对该位置进行读写操作。定义在 NV 中保留给定数量的内存,并设置此位置的安全属性。这些命令是低级 TPM 命令,强烈建议使用可信软件堆栈 (TSS) 来连接 TPM。您可以将jTSSjTpmToolsTrouSerS 一起使用。

    关于 NV 的一些注意事项:

    • NV 中的空间非常有限,但具体数量取决于供应商(通常小于 5kb)。 PC 平台的最小数量为 2048 字节。
    • TPM 是一种被动设备,如果没有向它发出命令,它就无法执行任何操作。如果您想在 TPM 中存储某些内容,则必须有一些活动部件(BIOS、软件、芯片组、CPU)来发出这些命令。
    • 即使是大多数加密密钥也不存储在 TPM 中。有一个密钥层次结构,只有根密钥(Storage Root Key - SRK)存储在 TPM 中。所有其他密钥都以加密方式存储在外部。

    【讨论】:

      【解决方案2】:

      TPM 不是可编程的。它有一组固定的支持算法。代码存储在 ROM 中(如果不是,则存储在 EEPROM 中,该 EEPROM 位于防篡改封装内,您无法覆盖它)。

      TPM 定义了各种管理角色。当你第一次使用它时,你会设置管理密码(或者你的软件会为你做这件事,在这种情况下你应该小心地备份这些密码)。如果您在收到 TPM 时不确定 TPM 的状态,可以将其重置为“出厂默认设置”(清除所有现有密钥和凭据);这称为清除 TPM,通常在 BIOS 中完成。

      您可以在credential profiles 中找到 TPM 存储和使用的各种凭据的概述。除了作为正常生命周期一部分的密钥之外,您还可以导入自己的密钥并使用 TPM 的 RNG 创建不可导出的密钥。

      有一个标准的TPM protection profile。我不知道英特尔的 TPM 是否已经针对它进行了评估。图 1 是 TPM 生命周期图,显示了何时可以生成密钥。

      实际上,您可能会通过TrouSerS(一个完全开源的 TPM API)与 TPM 进行交互,或者通过 Windows 上的 Bitlocker 以有限的方式进行交互。

      【讨论】:

        【解决方案3】:

        是的,您可以将 TPM 芯片用于此类操作,等等。

        TrouSerS 堆栈是可靠使用 TPM 芯片所必需的可信计算软件堆栈的开源实现。

        【讨论】:

        • @sarnlod:你知道一旦编程它就不能重新编程了吗?为了确保它不会被恶意软件侵犯。
        • TrouSerS 常见问题解答中有一个关于“获得 TPM 的所有权”的非常好的条目,它应该比我更好地解释您的选择。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-03-09
        • 1970-01-01
        • 2011-12-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-06-29
        相关资源
        最近更新 更多