我想知道是否可以对TPM进行编程( http://en.wikipedia.org/wiki/大部分Intel芯片中都存在Trusted_Platform_Module ),以这种方式: 通用标签

很明显,它一旦开始工作就不能重新编程(您知道此语句是否正确吗?)。

有帮助吗?

解决方案

TPM的行为由可信计算组发布的规范定义。 TPM必须严格按照指定的方式运行,因此您不能更改正确实现的TPM的功能。 TPM的制造商在运输后更新产品的能力有限。例如,英飞凌为其设备提供固件更新。

但是,英特尔TPM可能有所不同。一些芯片组包括仿真/软件TPM,而不是实际的硬件TPM。可以使用BIOS更新来更新那些TPM。但是在这种情况下,更新也必须由英特尔提供。诸如DQ67SW之类的最新主板具有非英特尔制造的独立硬件TPM。

因此,第二个问题的答案是:不,您不能编程/定义TPM使用的密码算法


关于第一个问题:是的,您可以在永久性存储中定义要存储的内容。此内存区域称为非易失性存储 NV 。您必须先使用 TPM_NV_DefineSpace 命令定义一些空间。之后,您可以使用 TPM_NV_ReadValue TPM_NV_WriteValue 从该位置读取/写入该位置。定义会在NV中保留给定的内存量,并且还会设置此位置的安全性属性。这些命令是低级TPM命令,强烈建议使用受信任的软件堆栈(TSS)来连接TPM。您可以将 jTSS jTpmTools TrouSerS

关于NV的一些说明:

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

其他提示

TPM不能被编程。它具有一组固定的受支持算法。该代码存储在ROM中(如果不是,则存储在EEPROM中,而EEPROM则在防篡改包中,并且不会被覆盖)。

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

您可以在凭证配置文件中找到TPM存储和使用的各种凭证的概述。一个>。除了属于正常生命周期的密钥外,您还可以导入自己的密钥,并使用TPM的RNG创建不可导出的密钥。

有一个标准的 TPM保护配置文件。我不知道英特尔的TPM是否经过评估。图1是TPM生命周期的示意图,显示了何时可以生成密钥。

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

是的,您可以将TPM芯片用于此类操作,甚至更多。

TrouSerS 堆栈是使用TPM芯片可靠。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top