无需 root 权限即可访问可信平台模块 (TPM)

无需 root 权限即可访问可信平台模块 (TPM)

我正在研究可信平台模块 (TPM) 芯片(TPM12 和 TPM20)。目前,我正在对 TPM 进行一些操作,例如,获取 TPM 所有权、清除 TPM、在 TPM 内生成密钥等。但对于所有这些操作,我需要 Linux 笔记本电脑中的 sudo 权限。

那么,我可以以普通用户身份执行上述所有操作而无需 root 权限吗?如果可以,如何在没有 root 权限的情况下访问 TPM?

答案1

这个答案适用于 TPM2(TPM1.2 的原理应该类似)。首先:您的 TPM 可以通过以下字符设备访问。

  • /dev/tpm0:直接访问 TPM 驱动程序
  • /dev/tpmrm0:通过内核的TPM资源管理器访问TPM驱动程序(推荐)

当然,您可以暂时更改这些文件的读/写权限。但是,您真正想要做的是创建一条udev规则。这基本上是一个文件/etc/udev/rules.d/。作为参考,请查看TSS 提供的 udev 规则

# tpm devices can only be accessed by the tss user but the tss
# group members can access tpmrm devices
KERNEL=="tpm[0-9]*", MODE="0660", OWNER="tss"
KERNEL=="tpmrm[0-9]*", MODE="0660", OWNER="tss", GROUP="tss"

如您所见,有一条针对用户的规则tss。此用户专用于用户空间资源管理器。如果您使用此资源管理器,您将不再需要自己访问文件,而是由用户空间资源管理器为您执行此操作。因此,您不再需要 root 权限。用户空间资源管理器将作为服务运行(或以用户身份手动启动tss)。

相关内容