可信平台模块/1.2 - Arch Linux 中文维基

跳转到内容

# 可信平台模块/1.2

来自 Arch Linux 中文维基
< 可信平台模块
翻译状态：

- 本文（或部分内容）译自 Trusted Platform Module/1.2，最近一次同步于 2026-05-03，若英文版本有所更改，则您可以帮助同步与翻译更改的内容。
- 您可以在 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 设备驱动程序的唯一门户。`tcsd`是trousersAUR软件包的一部分 (由 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

## 另见

- Protecting systems with the TPM
- Embedded Security Subsystem on Thinkwiki
- TPM Fundamentals (PDF)
- Using a TPM

分类：​

- 安全
- 硬件

可信平台模块/1.2
添加话题