天天看點

Ubuntu 18.04 LTS 建構TPM_emulator模拟器

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模拟器
  • 《可信計算基礎》實驗指導書