Windows 10 和 Linux 的 TPM 所有者密码和锁定密码



我已经设置了双靴子,所以我有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现在意味着现在其他内容(,这需要所有者授权。OwnerAuthFullLockoutHash确实是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_changeauthLockoutHash一起修改任何所有者,认可和锁定授权失败,因此目前尚不清楚此值是什么。

对于Wang与B3NJ1答案的评论中的链接,这是不正确的。可以使用tpm2_changeauth来验证Windows中的所有者和认可授权值既是空字符串,lockout授权存储在OwnerAuthFull中。这意味着Windows控制的授权值没有未知和/或丢弃。

我已经在GitHub上的文档提出了这些问题,如果有任何发展,将更新。

相关内容

  • 没有找到相关文章

最新更新