`/sys/kernel/security/tpm0/binary_bios_measurements` 如何以及何时公开?

`/sys/kernel/security/tpm0/binary_bios_measurements` 如何以及何时公开?

目前,我尝试了解测量启动是如何工作的以及哪些组件在 tpm2 的哪个 pcr 中记录哪些内容。

我有一个启用了 uefi 安全启动的测试设置,并在 kvm 虚拟机中连接了 tpm2。我用 tpm 支持等编译了自己的内核,tpm2_pcrread给出了合理的输出。现在我想查看 tpm 事件的内部。但没有/sys/kernel/security/tpm0,因此没有binary_bios_measurement。如果我从 ubuntu 23.10 iso 实时启动,则该文件存在并且可以由 tpm2_eventlog 读取。所以我从 ubuntu 获取内核并用它启动系统,但在这里也没有 /sys/kernel/security/tpm0.不,我的猜测是,我错过了公开此内容的内核模块。或者 ubuntu 中的 systemd 创建此路径。我没有找到任何关于此的文档。我不知道如何找出创建此路径/文件的位置和人员。有人知道如何曝光吗 binary_bios_measurement?附言。在我自己的 Linux 上,我使用 OpenRc 而不是 systemd。

答案1

securityfs安装了虚拟文件系统吗?

如果grep ^securityfs /proc/mounts没有输出任何内容,则表明您没有安装它。手动安装:

sudo mount -t securityfs none /sys/kernel/security

如果您希望始终安装它,请将此行添加到您的/etc/fstab文件中:

none  /sys/kernel/security  securityfs  defaults  0 0

答案2

经过几个小时的尝试和错误以及阅读内核代码后,我意外地找到了解决方案,但并不是真正的原因。

我使用的是 GRUB 2.06。当我尝试 Ubuntu 附带的 GRUB 版本(2.12)时,目录突然tpm0出现了。所以我也使用这个版本自己编译了 GRUB,并且缺少的目录存在。

我有点惊讶,因为我读到 GRUB 从 2.06 开始就支持测量启动。即使不是,引导加载程序与内核公开此路径有什么关系?

更新

现在我更惊讶了。我用 签署了我的 GRUBsbsign并将我的 PK、KEK、db 安装在efivars.突然目录又不见了。如果我清除 BIOS 中的按键,该目录会再次出现......神秘。

相关内容