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模拟环境搭建成功。

四、参考

posted @ 2020-02-18 21:39  Yogile  阅读(1805)  评论(0编辑  收藏  举报