可信平台模块/1.2
< 可信平台模块
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 设备驱动程序的唯一入口。tcsd
是 trousersAUR 软件包的一部分,该软件包由 IBM 创建和发布,可以通过 /etc/tcsd.conf
进行配置。
要启动 tcsd 并查看输出,请运行
# tcsd -f
一旦 tcsd
运行,您可能还需要安装 tpm-toolsAUR,它提供了许多用于管理 TPM 的命令行工具。
其他一些感兴趣的工具
- tpmmanager — tpm-tools 的 Qt 前端
- opencryptoki — Linux 的 PKCS#11 实现。它包括驱动程序和库,以启用 IBM 加密硬件以及用于测试的软件令牌。
基础知识
首先获取基本版本信息
$ 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