使用 TPM 进行测量的每个哈希的文件路径

Posted

技术标签:

【中文标题】使用 TPM 进行测量的每个哈希的文件路径【英文标题】:file path of each hash in measurements with TPM 【发布时间】:2021-06-05 15:16:33 【问题描述】:

我在安装在 vmware 工作站中的 ubuntu 中启用了 TPM。然后我使用以下命令安装 tpm2-tools:

sudo apt-get install tpm2-tools

然后我使用以下命令解析 /sys/kernel/security/tpm0/binary_bios_measurement 中的 TPM 事件日志:

tpm2_eventlog /sys/kernel/security/tpm0/binary_bios_measurement

您可以在以下链接中下载输出: https://s16.picofile.com/file/8427251934/output.txt.html 您还可以在以下链接中下载 TPM 事件日志: https://s16.picofile.com/file/8427252018/binary_bios_measurements.html

我想知道 TPM 为其计算哈希的每个事件属于哪个文件或程序,还想查看该文件或程序的路径。我该怎么办? TPM 事件日志中是否有此信息,但我安装的 tpm2-tools 不解析它?或者 TPM 事件日志中根本不存在此信息?如何获得这些信息?

【问题讨论】:

请将事件日志以文本而非图像的形式发布。您可以通过对事件字符串进行十六进制解码来提取更多信息。但是,如果您不以文本形式提供事件日志,我们将很难为您提供帮助。 @f9c69e9781fa194211448473495534 谢谢。我编辑了它并添加了链接 【参考方案1】:

Event: 字段保存每个事件的编码。编码的细节取决于具体的事件类型,所以不能给出一般性的答案。

您最初的示例显示了两个事件:

  - EventNum: 35
    PCRIndex: 9
    EventType: EV_IPL
    DigestCount: 4
    Digests:
      - AlgorithmId: sha1
        Digest: "66b726c6d64bc109d3948a9528f502ea94938ef4"
      - AlgorithmId: sha256
        Digest: "46f888c52f36baf9b62d60bc8d06426a314aad5a0ff86a4362a91c2512a1df9c"
      - AlgorithmId: sha384
        Digest: "800824fd124df10eeafd6bba36c596c33afbb527e3006b58c19fadced47b03c8ae92f89ef3caef2346b3bd545cfdd8de"
      - AlgorithmId: sha512
        Digest: "4fdd3b4cb38c5c69865033bca010d6b914ddfb74dcc5886b258fe4fa8759a1160ec4b924a1c7a7128b0f6899e6f3b0e33373a1ee7532e533e9b6b1629e52533f"
    EventSize: 45
    Event: "286864302c67707432292f626f6f742f677275622f7838365f36342d6566692f7465726d696e616c2e6c737400"
  - EventNum: 36
    PCRIndex: 8
    EventType: EV_IPL
    DigestCount: 4
    Digests:
      - AlgorithmId: sha1
        Digest: "93e6364afcf0ebde4538949f95b6ab6cc1401f5a"
      - AlgorithmId: sha256
        Digest: "0f693a3995fdec16ad5a0d5f0b1301d3c889d81a8fa071f2fc55dd671c96b977"
      - AlgorithmId: sha384
        Digest: "d982b730da7904c32a897ec4b6b65eccc26cb600408b08ea11fbaa61f39a9ebdcca03b704779f8778f335808636e82fc"
      - AlgorithmId: sha512
        Digest: "cfb1bc50ad58448d462f2f3f84751c07ca973ee57e78acef38a5ea3eaccba51108e589936b9f04174a01ddf7a3a5e1b10b5c584cdac75130aa64d3e81818584f"
    EventSize: 51
    Event: "677275625f636d643a20636f6e66696766696c6520286864302c67707432292f626f6f742f677275622f677275622e63666700"

EV_IPL 类型的事件由 GRUB 引导加载程序 (reference) 生成。

您可以使用例如十六进制解码事件字符串xxd (reference):

$ echo 286864302c67707432292f626f6f742f677275622f7838365f36342d6566692f7465726d696e616c2e6c737400 | xxd -revert -plain
(hd0,gpt2)/boot/grub/x86_64-efi/terminal.lst
$ echo 677275625f636d643a20636f6e66696766696c6520286864302c67707432292f626f6f742f677275622f677275622e63666700 | xxd -revert -plain
grub_cmd: configfile (hd0,gpt2)/boot/grub/grub.cfg

【讨论】:

天哪。你太棒了。这是真的。谢谢你

以上是关于使用 TPM 进行测量的每个哈希的文件路径的主要内容,如果未能解决你的问题,请参考以下文章

使用点分路径键字符串访问 Ruby 哈希

使用点分路径键字符串访问 Ruby 哈希

SED在同一行中找到多个路径并将其替换为不同的路径

使用 Earcut 对 OpenType.js 中的路径数据进行三角测量

用于路径缓存的快速、无冲突哈希算法?

如何启用 TPM 测量启动并在 Windows 10 中查看 pcr 值? [关闭]