如何重置TPM 2.0的SRK?
How do reset SRK of TPM 2.0?
我想重置SRK。
它也可以看作是 TPM 的出厂重置。
我尝试了 tpm2_clear 但它不起作用。
机器:VMWare Workstation
# tpm2_getcap properties-variable
TPM2_PT_PERSISTENT:
ownerAuthSet: 0
endorsementAuthSet: 0
lockoutAuthSet: 1
reserved1: 0
disableClear: 0
inLockout: 0
tpmGeneratedEPS: 1
reserved2: 0
TPM2_PT_STARTUP_CLEAR:
phEnable: 0
shEnable: 1
ehEnable: 1
phEnableNV: 1
reserved1: 0
orderly: 0
# tpm2_clear -c p
WARNING:esys:src/tss2-esys/api/Esys_Clear.c:282:Esys_Clear_Finish() Received TPM Error
ERROR:esys:src/tss2-esys/api/Esys_Clear.c:97:Esys_Clear() Esys Finish ErrorCode (0x00000185)
ERROR: Esys_Clear(0x185) - tpm:handle(1):hierarchy is not enabled or is not correct for the use
ERROR: Unable to run tpm2_clear
在 VMWare 中,即使在冷启动后也不会设置 phEnable。
机器:HP EliteBook 850 G5
~# tpm2_getcap properties-variable
TPM2_PT_PERSISTENT:
ownerAuthSet: 0
endorsementAuthSet: 0
lockoutAuthSet: 1
reserved1: 0
disableClear: 0
inLockout: 0
tpmGeneratedEPS: 0
reserved2: 0
TPM2_PT_STARTUP_CLEAR:
phEnable: 1
shEnable: 0
ehEnable: 1
phEnableNV: 1
reserved1: 0
orderly: 1
# tpm2_clear -c p
WARNING:esys:src/tss2-esys/api/Esys_Clear.c:282:Esys_Clear_Finish() Received TPM Error
ERROR:esys:src/tss2-esys/api/Esys_Clear.c:97:Esys_Clear() Esys Finish ErrorCode (0x000009a2)
ERROR: Esys_Clear(0x9A2) - tpm:session(1):authorization failure without DA implications
ERROR: Unable to run tpm2_clear
# tpm2_clear -c o
ERROR: Unexpected handle - TPM2_RH_OWNER
ERROR: Unknown or unsupported handle, got: "o"
ERROR: Cannot make sense of object context "o"
ERROR: Invalid lockout authorization
ERROR: Unable to run tpm2_clear
有什么办法重置SRK吗?
您的方向是正确的,tpm2_clear
清除所有者层次结构,即 SRK 及其所有子密钥。
根据 command specification (sec. 24.6),tpm2_clear
可能会失败的原因有多种。
1。平台层次结构已禁用
这个错误非常微妙,因为它没有在 TPM2_Clear
的命令描述中明确提及。默认情况下,TPM2_Clear
在平台层次结构上运行。但是,可以通过命令 TPM2_HierarchyControl
:
禁用平台层次结构(phEnable
位清除)
tpm2_hierarchycontrol -C p phEnable clear
以后对平台层次结构的任何使用都应生成 return 代码 TPM2_RC_HANDLE = 0x0000010B
。但是,没有重新启用平台层次结构的 TPM 命令。 Architecture specification (Sec 13.3):
When phEnable is CLEAR, a _TPM_Init is required to SET it.
您似乎需要重置 TPM(切换硬件重置信号或关闭电源)以重新启用平台层次结构。
如果这不能解决您的问题,请参阅下一个潜在问题。
2。 TPM2_Clear
命令被禁用
这可能不是你的问题,因为它会产生另一个错误(return 代码 TPM_RC_DISABLED = 0x0000120
)。
可以禁用 TPM2_Clear
命令(设置 disableClear
位)。这是通过命令 TPM2_ClearControl
完成的。要启用清除,请调用 tpm2_clearcontrol -Cp c
。像tpm2_clear
,tpm2_clearcontrol
需要平台授权。
我想重置SRK。 它也可以看作是 TPM 的出厂重置。
我尝试了 tpm2_clear 但它不起作用。
机器:VMWare Workstation
# tpm2_getcap properties-variable
TPM2_PT_PERSISTENT:
ownerAuthSet: 0
endorsementAuthSet: 0
lockoutAuthSet: 1
reserved1: 0
disableClear: 0
inLockout: 0
tpmGeneratedEPS: 1
reserved2: 0
TPM2_PT_STARTUP_CLEAR:
phEnable: 0
shEnable: 1
ehEnable: 1
phEnableNV: 1
reserved1: 0
orderly: 0
# tpm2_clear -c p
WARNING:esys:src/tss2-esys/api/Esys_Clear.c:282:Esys_Clear_Finish() Received TPM Error
ERROR:esys:src/tss2-esys/api/Esys_Clear.c:97:Esys_Clear() Esys Finish ErrorCode (0x00000185)
ERROR: Esys_Clear(0x185) - tpm:handle(1):hierarchy is not enabled or is not correct for the use
ERROR: Unable to run tpm2_clear
在 VMWare 中,即使在冷启动后也不会设置 phEnable。
机器:HP EliteBook 850 G5
~# tpm2_getcap properties-variable
TPM2_PT_PERSISTENT:
ownerAuthSet: 0
endorsementAuthSet: 0
lockoutAuthSet: 1
reserved1: 0
disableClear: 0
inLockout: 0
tpmGeneratedEPS: 0
reserved2: 0
TPM2_PT_STARTUP_CLEAR:
phEnable: 1
shEnable: 0
ehEnable: 1
phEnableNV: 1
reserved1: 0
orderly: 1
# tpm2_clear -c p
WARNING:esys:src/tss2-esys/api/Esys_Clear.c:282:Esys_Clear_Finish() Received TPM Error
ERROR:esys:src/tss2-esys/api/Esys_Clear.c:97:Esys_Clear() Esys Finish ErrorCode (0x000009a2)
ERROR: Esys_Clear(0x9A2) - tpm:session(1):authorization failure without DA implications
ERROR: Unable to run tpm2_clear
# tpm2_clear -c o
ERROR: Unexpected handle - TPM2_RH_OWNER
ERROR: Unknown or unsupported handle, got: "o"
ERROR: Cannot make sense of object context "o"
ERROR: Invalid lockout authorization
ERROR: Unable to run tpm2_clear
有什么办法重置SRK吗?
您的方向是正确的,tpm2_clear
清除所有者层次结构,即 SRK 及其所有子密钥。
根据 command specification (sec. 24.6),tpm2_clear
可能会失败的原因有多种。
1。平台层次结构已禁用
这个错误非常微妙,因为它没有在 TPM2_Clear
的命令描述中明确提及。默认情况下,TPM2_Clear
在平台层次结构上运行。但是,可以通过命令 TPM2_HierarchyControl
:
phEnable
位清除)
tpm2_hierarchycontrol -C p phEnable clear
以后对平台层次结构的任何使用都应生成 return 代码 TPM2_RC_HANDLE = 0x0000010B
。但是,没有重新启用平台层次结构的 TPM 命令。 Architecture specification (Sec 13.3):
When phEnable is CLEAR, a _TPM_Init is required to SET it.
您似乎需要重置 TPM(切换硬件重置信号或关闭电源)以重新启用平台层次结构。
如果这不能解决您的问题,请参阅下一个潜在问题。
2。 TPM2_Clear
命令被禁用
这可能不是你的问题,因为它会产生另一个错误(return 代码 TPM_RC_DISABLED = 0x0000120
)。
可以禁用 TPM2_Clear
命令(设置 disableClear
位)。这是通过命令 TPM2_ClearControl
完成的。要启用清除,请调用 tpm2_clearcontrol -Cp c
。像tpm2_clear
,tpm2_clearcontrol
需要平台授权。