跳转到内容

可信平台模块/1.2

来自 Arch Linux 中文维基

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 加密硬件的驱动程序和库,以及用于测试软件的令牌 (Token)。
https://sourceforge.net/projects/opencryptoki || opencryptokiAUR

基础操作

首先,获取基础版本信息:

$ tpm_version

接着运行自检 (selftest):

$ 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提供程序 (Provider):

~/.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服务可能无法正常启动。你可以通过重启系统或触发trousersAUR软件包中包含的udev规则来解决此问题:

# udevadm control --reload-rules
# udevadm trigger

另见