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
若出現Module tpmd_dev not found,則先運作指令:tpm_startup.c:43: Info: TPM_Startup(1) tpmd.c:416: Debug: waiting for connections...
若出現failed: address already in use,則運作以下指令:depmod -a
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模拟器
- 《可信計算基礎》實驗指導書