0

使用Tbsip_Submit_Command玩我的 TPM 芯片,我可以看到 Windows 分析了我发送给它的帧。

为了简单起见,我使用了 shutdown 命令。

例如,我尝试在参数中发送带有 TPM_SU_CLEAR 的 TPM_CC_Shutdown。所以帧是=> 80 01 00 00 00 0C 00 00 01 45 00 00

为了使其更详细和解释:

80 01 是 TPM_ST_NO_SESSIONS
00 00 00 0C 帧大小
00 00 01 45 TPM_CC_Shutdown
00 00 是 TPM_SU_CLEAR

Windows 回复我 => 80 01 00 00 00 0A 80 28 04 00
再次使其更详细:

80 01 是 TPM_ST_NO_SESSIONS
00 00 00 0命令的大小
80 28 04 00 错误代码 0x80280400 => TPM_E_COMMAND_BLOCKED

我在这里找到了那个错误代码。如此明显的 Windows 打断了我并放弃了我的命令。我可以理解它不希望关闭 TPM 电源,但是对于要创建主键并将其保存在芯片内的命令,我得到了相同的结果。

所以我有一个芯片,但如果我想直接使用它我不能,我不得不使用 Cryptography API: Next Generation 但在我的情况下我不能。

有人有什么可以帮助我的吗?也许我可以直接与编码驱动程序的芯片通信并绕过 Windows 层(如果有人知道如何做到这一点)?或者是否可以在注册表中配置一个值,让 Windows 让我用我的 TPM 芯片做我想做的事?

4

2 回答 2

0

正如这里所解释的,命令是否被阻止取决于您的配置。可以解锁命令,但我无法让它工作。

于 2018-02-22T10:53:18.250 回答
0

根据第 10 章密钥(第 126 页)的“ TPM 2.0 实用指南”一书,它说:

TPM 库规范包括可用于通用加密(如 AES)的对称加密密钥。由于潜在的出口限制,不确定 TPM 供应商是否会包含这些功能。这些命令在 PC 客户端平台规范中是可选的。从历史上看,TPM 供应商没有实现可选的 TPM 功能。

您可以使用TPM2_GetCapability带有参数的命令TPM_CAP_COMMANDS来检索已实施命令的列表。如果您要使用的命令未列出,则 TPM 供应商可能未实施该命令。

请参阅https://docs.microsoft.com/en-us/windows-hardware/test/hlk/testref/tpm-v20-command-and-signal-profile从 Windows 的角度查看包含可选命令的列表.

于 2018-03-14T18:47:02.873 回答