跳至內容

可信平台模块/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

另見