可信平台模块/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 加密硬體的驅動程序和庫,以及用於測試軟體的令牌 (Token)。
基礎操作
首先,獲取基礎版本信息:
$ 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