【发布时间】:2012-04-27 03:38:51
【问题描述】:
这与以下帖子有些相关: Perform OR on two hash outputs of sha1sum
我有一组 TPM 测量样本,例如以下:
10 1ca03ef9cca98b0a04e5b01dabe1ff825ff0280a ima 0ea26e75253dc2fda7e4210980537d035e2fb9f8 boot_aggregate
10 7f36b991f8ae94141753bcb2cf78936476d82f1d ima d0eee5a3d35f0a6912b5c6e51d00a360e859a668 /init
10 8bc0209c604fd4d3b54b6089eac786a4e0cb1fbf ima cc57839b8e5c4c58612daaf6fff48abd4bac1bd7 /init
10 d30b96ced261df085c800968fe34abe5fa0e3f4d ima 1712b5017baec2d24c8165dfc1b98168cdf6aa25 ld-linux-x86-64.so.2
根据TPM规范,也就是上面帖子中提到的,PCR扩展操作是:PCR := SHA1(PCR || data),即“将PCR的旧值与数据连接,对连接后的字符串进行hash并将散列存储在 PCR 中”。此外,我发现的规范多篇论文和演示文稿提到数据是要加载的软件的哈希值。
但是,当我执行echo H(PCR)||H(data) | sha1sum 之类的操作时,我没有获得正确的结果值。即,当计算(使用上述哈希):echo 1ca03ef9cca98b0a04e5b01dabe1ff825ff0280a0ea26e75253dc2fda7e4210980537d035e2fb9f8 | sha1sum,结果值不是7f36b991f8ae94141753bcb2cf78936476d82f1d。
我对 TPM_Extend 操作的理解是否正确?如果是这样,为什么生成的哈希值与样本测量文件中的不同?
谢谢! /n
【问题讨论】:
-
除了我的回答,您还需要更多信息吗?
-
好的,既然文件中的值不是PCR10的内容,那么注册表中实际存储的是什么?是根据存储在文件中的测量值计算出的哈希值吗?
-
我不是 100% 确定,因为我在国外,没有合适的系统,但它应该是所有哈希的“链”。所以像 SHA-1(SHA-1(0...0 | 1ca03ef9cca98b0a04e5b01dabe1ff825ff0280a) | 7f36b991f8ae94141753bcb2cf78936476d82f1d) ..... 随意提出一个新问题(因为这是一个不同的问题),我会尝试调查进一步...
标签: linux sha1 trusted tpm trusted-computing