可信平臺模塊TPM(Trusted Platform Module)介紹及tpm-tools安裝使用

可信平臺模塊TPM(Trusted Platform Module)是一種植於計算機內部爲計算機提供可信根的芯片。該芯片的規格由可信計算組(Trusted Computing Group)來制定。 中國國內研究的TCM(trusted cryptography module,可信密碼模塊),與之對應。

文獻

google開發的一個tpm開源工具。非常好的文檔和測試用例。可在網頁直接測試。

  • https://google.github.io/tpm-js

微軟相關介紹

  • https://docs.microsoft.com/en-us/windows/security/information-protection/tpm/trusted-platform-module-top-node

相關書籍

Intel TPM2 Software Stack (TSS)等安裝使用

  • tpm2-tss是根據TCG(Trusted Computing Group)組織定義的TPM2.0的一比一實現。
  • tpm2-abrmd是實現了TPM2 access broker (TAB) & Resource Manager (RM)的守護進程
  • tpm2-tools是命令行工具

檢查依賴包:包的依賴關係

tpm2-tools version tpm2-tss version tpm2-abrmd version
master master master
4.2 >=2.4.0 >=2.3.1

安裝TPM工具

具體安裝過程及依賴包的安裝可參考

  • 安裝tss包 https://github.com/tpm2-software/tpm2-tss/blob/master/INSTALL.md
  • 安裝abrmd包 https://github.com/tpm2-software/tpm2-abrmd/blob/master/INSTALL.md
  • 安裝tools包 https://github.com/tpm2-software/tpm2-tools/blob/master/doc/INSTALL.md

注意,如果沒有使用tpm模擬器,文檔提到最好不要單元測試,不然對tpm硬件可能造成無法恢復的損傷。

若依然有缺乏的依賴,可以參考如下命令

sudo apt-get install lcov pandoc autoconf-archive
sudo apt-get install liburiparser-dev
sudo apt-get install libdbus-1-dev libglib2.0-dev dbus-x11
sudo apt-get install -y automake
sudo apt install autoconf -y
sudo apt install libtool -y
sudo apt-get install libjson-c-dev -y
sudo apt-get install libcurl3 -y
sudo apt-get install libcurl4 libcurl4-openssl-dev -y
sudo apt-get install -y doxygen
## How Install gio-unix-2.0
sudo apt-get install libglib2.0-dev

abrmd的安裝和啓動比較麻煩

按照文檔,依然失敗了很多次,要麼dbus報錯,要麼*abrmd.service沒起來,經測試,如下命令可行,下面命令來自參考自TOOLS-INSTALL.md

cd tpm2-abrmd
./bootstrap
./configure --with-dbuspolicydir=/etc/dbus-1/system.d --with-udevrulesdir=/usr/lib/udev/rules.d --with-systemdsystemunitdir=/usr/lib/systemd/system
make -j5
sudo make install

run

如果主板上有TPM,則可以不用模擬器。root權限啓動abrmd。

sudo tpm2-abrmd --allow-root  &

hello world

tpm2_pcrread
sha1:
  0 : 0xAAAB2F9467FB088B67F29B5437200FB631E92CC9
  1 : 0xD633C974C89C0B51CED6660BBBBAA7D4313A06D2
  2 : 0xB2A83B0EBF2F8374299A5B2BDFC31EA955AD7236
  3 : 0xB2A83B0EBF2F8374299A5B2BDFC31EA955AD7236
  4 : 0x3B5569D8B67CC4DF6228B9F5F0D24B0547762096
  5 : 0xC6B78F833B5A77B4CA16C72C5636981A08040CEC
  6 : 0xB2A83B0EBF2F8374299A5B2BDFC31EA955AD7236
  7 : 0x6653ABA680BF45C7130D897EA1D8A18FD32CADE6
  8 : 0x0000000000000000000000000000000000000000
  9 : 0x0000000000000000000000000000000000000000
  10: 0x517927AF9D3726175B51C021F190F089CDD186B4
  11: 0x0000000000000000000000000000000000000000
  12: 0x0000000000000000000000000000000000000000
  13: 0x0000000000000000000000000000000000000000
<snip>

如果使用了tpm模擬器

ibmtpm

$ mkdir ibmtpm && cd ibmtpm
$ wget https://sourceforge.net/projects/ibmswtpm2/files/latest/download -O ibmtpm.tar.gz
$ tar -zxvf ibmtpm.tar.gz
$ cd src
$ make -j5

啓動模擬器

./tpm_server &
TPM command server listening on port 2321
Platform server listening on port 2322

啓動 abrmd

tpm2-abrmd --allow-root --tcti=mssim

測試

tpm2_pcrread
sha1 :
  0  : 0000000000000000000000000000000000000003
  1  : 0000000000000000000000000000000000000000
  2  : 0000000000000000000000000000000000000000
  3  : 0000000000000000000000000000000000000000
  4  : 0000000000000000000000000000000000000000
  5  : 0000000000000000000000000000000000000000
<snip>

tpm2-tools的使用教程在man目錄下,github wiki中的教程可能年久失修了。


參考https://github.com/tpm2-software/tpm2-tools/wiki/Getting-Started#installing

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章