我已经设置了双靴子,所以我有Windows 10和Ubuntu。
按下此页面上的步骤,我可以在Windows 10注册表中检索我TPM的锁定密码和所有者密码。结果看起来像这样:
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTPMWMIAdmin
OwnerAuthStatus REG_DWORD 0x1
LastAuthLevel REG_DWORD 0x4
OwnerAuthFull REG_SZ iTcW8t1B+tIKmP/uxXPL94QF2Jw=
LockoutHash REG_SZ Ki1RiIu8d+eqeDoEFYcAqIoi1n4=
SRKPub REG_BINARY A3FEFDE6DBAA425D24717422C46C7E9C85C433CB
StorageOwnerAuth REG_SZ
TPMCleared REG_DWORD 0x0
ownerauthfull和lockouthash均为基本64编码,因此我可以使用此链接进行解码(它提供893716F2DD41FAD20A98FFEEC573CBF78405D89C在Hexa中在Hexa中在Hexa中以获取所有者密码。
在Ubuntu上启动后,我尝试使用这些密码与TPM进行交互。我正在使用TPM2工具与Ubuntu下的TPM互动。当Linux控制TPM并设置这些密码时,TPM2-Tools的运作良好。但是在这里,我试图让Windows可以控制TPM,并且仍然能够在Ubuntu下与它进行通信。例如,当我运行以下命令时(Ubuntu控制TPM时起作用(。
美元属性: 价值:filextpm |固定寄生虫| sentiviveataorigin | userwithauth |限制|解密 原始:0x30072$ tpm2_create -g sha256 -g rsa -u key.pub -r key.priv -c primary.ctx算法: 价值:SHA256 原始:0xb属性: 值:fixedtpm |固定parrent | sensitiveDataorigin | userwithauth |解密|标志 原始:0x60072类型: 值:RSA 原始:0x1 $ tpm2_load -c primary.ctx -u key.pub -r key.priv -n键负载成功。LoadedHandle:0x80000100美元PersistentHandle:0x81010003错误:TSS2_SYS_EVICTCONTROL(0x9A2(-TPM:Session(1(:授权失败而无影响
i获得
错误:tss2_sys_evictcontrol(0x9a2(-tpm:session(1(:授权失败没有da Ingemations。
有人知道为什么我会遇到此错误/为什么此密码不起作用?我在哪里可以获得正确的密码?好吧,任何有关如何解决此问题的指针都将受到赞赏!thx!
我想我得到了答案,实际上,Windows会制作一个密码的sha1 hash,然后将其转换为base64,然后将其存储在注册表中,如果GPEDIT的配置如此:https://msdn.microsoft.com/en-us/library/windows/desktop/aa376421(v = vs.85(.aspx
b3nj1的答案不正确。使用tpm2_evictcontrol
的--auth o
选项,表示您正在选择TPM的所有者控制域(请注意,在发布问题时在2018年2月是正确的,--auth
现在意味着现在其他内容(,这需要所有者授权。OwnerAuthFull
和LockoutHash
确实是B3NJ1答案中所述生成的,但是OwnerAuthFull
存储了TPM的 lockout 授权,而LockoutHash
的目的是未知的。
OwnerAuthFull
的基本64二十码值为锁定授权值。可以使用tpm2-tools的tpm2_changeauth
进行验证 - 基本64码头的值使人们能够成功更改锁定授权。您可以使用以下powershell命令将基本64解码为十六进制字符串:
([System.BitConverter]::ToString([System.Convert]::FromBase64String('stringToConvert'))).Replace('-','')
那么Windows的所有者授权值是多少?根据此页面:https://lealen.microsoft.com/en-us/windows/security/information-protection/tpm/trusted-platform-module-module-module-services-services-group-policy-settings,b3nj1是StorageOwnerAuth
。从问题中引用的结果,它只是一个空字符串,这意味着所有者授权值只是0字节缓冲区。这是默认值。同样,您可以使用tpm2_changeauth
进行验证。
请注意,该链接声称TPM 2.0的锁定授权存储在LockoutAuth
中。这是不正确的。正如上面B3NJ1的结果(以及我的计算机(中可以看到的那样,有StorageOwnerAuth
,因此必须是TPM 2.0,但没有LockoutAuth
。相反,有LockoutHash
,但文章没有提及此值。尝试将tpm2_changeauth
与LockoutHash
一起修改任何所有者,认可和锁定授权失败,因此目前尚不清楚此值是什么。
对于Wang与B3NJ1答案的评论中的链接,这是不正确的。可以使用tpm2_changeauth
来验证Windows中的所有者和认可授权值既是空字符串,lockout授权存储在OwnerAuthFull
中。这意味着Windows控制的授权值没有未知和/或丢弃。
我已经在GitHub上的文档提出了这些问题,如果有任何发展,将更新。