使用Tbsip_Submit_Command播放我的TPM芯片我可以看到Windows会分析我发送给它的帧。
为了简单起见我正在使用shutdown命令。
例如,我尝试在参数中发送TPM_CC_Shutdown和TPM_SU_CLEAR。所以框架是> 80 01 00 00 00 0C 00 00 01 45 00 00
使其更加详细和解释:
80 01 is TPM_ST_NO_SESSIONS 00 00 00 0C size of the frame 00 00 01 45 TPM_CC_Shutdown 00 00 is TPM_SU_CLEAR
Windows回应我=> 80 01 00 00 00 0A 80 28 04 00
再次使其更加细致:
80 01 is TPM_ST_NO_SESSIONS 00 00 00 0A size of the command 80 28 04 00 error code 0x80280400 => TPM_E_COMMAND_BLOCKED
我发现错误代码here。 因此,明显的Windows会让我失望并放弃我的命令。我可以理解它不希望TPM被断电,但是我得到了一个命令的相同结果,我想创建一个主键并将其保存在芯片内。
所以我有一个芯片,但如果我想直接使用它我不能,我被迫使用Cryptography API:Next Generation但在我的情况下我不能。
任何人都有什么可以帮助我吗? 可能是我可以直接与编码驱动程序的芯片进行通信并绕过Windows层(如果有人知道如何做到这一点)? 或者可以在注册表中配置一个值,让Windows让我用我的TPM芯片做我想做的事情?
答案 0 :(得分:0)
正如所解释的here命令被阻止或取消,具体取决于您的配置。可以解锁命令,但我无法使其工作。
答案 1 :(得分:0)
根据书#34; A Practical Guide to TPM 2.0" 在第10章键(第126页)上,它说:
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强大的包含和可选命令列表。