可信平台模块/1.2

来自 ArchWiki

TPM 1.2 使用 IBM 的 "TrouSerS" TSS (TCG 软件堆栈),它被打包为 trousersAUR (tcsd) 和 tpm-toolsAUR (用户空间)。所有软件都通过 tcsd 守护进程访问 TPM。

驱动程序

TPM 驱动程序在现代内核中原生支持,但可能需要加载

# modprobe tpm

根据您的芯片组,您可能还需要加载以下驱动程序之一

# modprobe -a tpm_{atmel,infineon,nsc,tis,crb}

用法

TPM 1.2 由 tcsd 管理,这是一个用户空间守护进程,用于管理可信计算资源,并且(根据 TSS 规范)应该是 TPM 设备驱动程序的唯一入口。tcsdtrousersAUR 软件包的一部分,该软件包由 IBM 创建和发布,可以通过 /etc/tcsd.conf 进行配置。

要启动 tcsd 并查看输出,请运行

# tcsd -f

或者直接 启动启用 tcsd.service

一旦 tcsd 运行,您可能还需要安装 tpm-toolsAUR,它提供了许多用于管理 TPM 的命令行工具。

其他一些感兴趣的工具

  • tpmmanager — tpm-tools 的 Qt 前端
https://github.com/Rohde-Schwarz/TPMManager || tpmmanagerAUR
  • opencryptoki — Linux 的 PKCS#11 实现。它包括驱动程序和库,以启用 IBM 加密硬件以及用于测试的软件令牌。
https://sourceforge.net/projects/opencryptoki || opencryptokiAUR

基础知识

首先获取基本版本信息

$ tpm_version

并运行自检

$ tpm_selftest -l info
TPM Test Results: 00000000 ...
tpm_selftest succeeded

保护 SSH 密钥

有几种使用 TPM 保护密钥的方法,但这里我们展示一个基于 simple-tpm-pk11-gitAUR 的简单方法。

首先,创建一个新目录并生成密钥

$ mkdir ~/.simple-tpm-pk11
$ stpm-keygen -o ~/.simple-tpm-pk11/my.key

将配置指向密钥

~/.simple-tpm-pk11/config
key my.key

现在配置 SSH 以使用正确的 PKCS11 提供程序

~/.ssh/config
Host *
    PKCS11Provider /usr/lib/libsimple-tpm-pk11.so

现在可以使用 PKCS11 提供程序生成密钥

$ ssh-keygen -D /usr/lib/libsimple-tpm-pk11.so
注意: 此方法目前不允许生成和使用多个密钥。

故障排除

tcsd.service 启动失败

安装 trousersAUR 后,由于权限问题,tcsd.service 服务可能无法正确启动。[1] 可以通过重启或触发 udev 规则来修复此问题,该规则包含在 trousersAUR 软件包中

# udevadm control --reload-rules
# udevadm trigger

参见