Ubuntu 18.04 LTS 構建TPM_emulator模擬器
一、 安裝准備
1. 環境
主機:Windows 10 1909 18363.657
虛擬機平台:VMware Workstation Pro 15.0
虛擬機:Ubuntu 18.04 LTS
- Linux 系統下,內核 2.6.12 版本及以上提供了對 TPM 芯片的支持,如果不能滿足請下載滿足要求的版本:中科大鏡像站Ubuntu。
2. 依賴
sudo su
apt-get install g++
apt-get install m4
#安裝openssl-devel
apt-get install openssl
apt-get install libssl-dev
apt-get install tpm-tools
2. 下載
軟件包 | 官網 | 百度雲 |
---|---|---|
gmp-6.2.0.tar.xz | http://gmplib.org | 百度雲鏈接三樣打包(點擊) 驗證碼:2svg |
tpm-emulator-master.zip | https://github.com/gscsnm/tpm-emulator | 同上 |
trousers-0.3.14.tar.gz | https://sourceforge.net/projects/trousers/files/trousers/ | 同上 |
- 由於有些軟件包打包壓縮前沒有文件夾包裹,解壓后會解壓到軟件包所在文件夾。所以下載完之后,應該創建三個文件夾分別存入並解壓,或指定解壓路徑。
二、 軟件安裝
0. 由於軟件依賴性,請按步驟依次安裝
1. cmake
sudo -s
apt-get install cmake
2. tpm-tools
sudo apt-get install tpm-tools #應安裝過
3. gmp
sudo su
tar xvJf gmp-6.2.0.tar.xz
cd gmp-6.2.0
./configure
make
make check
make install
4.tpm-emulator
-
[1] 安裝tpm-emulator
unzip tpm-emulator-master.zip cd tpm-emulator-master mkdir build cd build export ARCH=x86 cmake ../ make install
-
[2] 初始化tpm-emulator
tpmd deactivated killall tpmd tpmd clear
-
[3] 啟動tpm-emulator
modprobe tpmd_dev tpmd -f -d clear
若成功,則顯示:
tpm_startup.c:43: Info: TPM_Startup(1) tpmd.c:416: Debug: waiting for connections...
若出現Module tpmd_dev not found,則先運行命令:
depmod -a
若出現failed: address already in use,則運行以下命令:
rm /var/run/tpm/tpmd_socket:0
5. trousers
-
0.3.14版本(本文使用)
tar zxvf trousers-0.3.14.tar.gz #由於無文件夾包裹,直接在軟件包目錄進行 ./configure make make install
-
0.3.8版本 才需要修改Makefile.am和Makefile.in文件 , 會遇到Werror、ld鏈接庫等報錯問題 。推薦本文使用的 0.3.14版本。
三、 啟動與檢驗
1. 啟動順序:tpm-emulator -> tcsd
-
[0] 2個終端
-
[1] 一個終端啟動tpm-emulator:
tpmd -f -d
-
[2] 另一個終端啟動tcsd:
tcsd -e -f
-
成功:
#tpm-emulator終端循環顯示 tpmd.c:456: Debug: waiting for commands... #tcsd終端顯示 TCSD TDDL ioctl: (25) Inappropriate ioctl for device TCSD TDDL Falling back to Read/Write device support. TCSD trousers 0.3.14: TCSD up and running.
-
失敗:
#tcsd終端顯示 TCSD TDDL ioctl: (25) Inappropriate ioctl for device TCSD TDDL Falling back to Read/Write device support. TCSD TCS ERROR: TCS GetCapability failed with result = 0x1c #在tpm-emulator終端輸入 tpmd -f -d clear
2. 檢驗
在tpm與tcsd啟動前提下輸入:
cd /usr/sbin
./tpm_version #查看版本號
./tpm_getpubek #查看ek公鑰
./tpm_takeownership #獲取owner
如果成功顯示相關信息,證明TPM模擬環境搭建成功。
四、參考
- Ubuntu 16.04 64bit 構建TPM_emulator模擬器
- 《可信計算基礎》實驗指導書