【TPM】tpm搭建基础指南

时间:2022-02-04 15:47:12

pm君第一次通过各种摸索,成功搭建了tpm模拟环境,本篇博客记录了如何去搭建tpm模拟环境,希望能给大家一些帮助。

参考资料(推荐看)

准备

1.有一个Ubuntu环境的虚拟机

我用的虚拟机是VMware Workstation,Ubuntu镜像用的是官网上的。

2.搭建tpm所需的安装包

大家可以先下好安装包再进行搭建

搭建步骤

1.安装m4

在终端输入命令sudo apt-get install m4

2.安装CMake

cmake安装包

(1)解压:tar -zxf cmake-XXX.tar.gz

(2)安装:

cd cmake-XXX
./bootstrap
make
sudo make install
  • 参考其中的Readme.txt文件

3.安装GNU MPlibrary

GNU MPlibrary安装包

(1)解压:tar -jxf gmp-XXX.tar.bz2

(2)安装:

./configure
make
make check
sudo make install
  • 参考其中的INSTALL文件

4.安装TPM_emulator

Tpm_emulator安装包

(1)解压:unzip master.zip

(2)安装:

cd tpm-emulator-master/
mkdir build;
cd build
cmake ../
make
sudo make install

【试验】初始化、启动TPM_emulator

(1)初始化tpm:

tpmd deactivated
killall tpmd
tpmd clear

**(2)启动tpm: **

sudo depmod -a
sudo modprobe tpmd_dev
sudo tpmd -f -d
  • 如果成功,会不断打印:Debug: waiting for connections…

5.安装TSS协议栈

5.1 安装trouser

trouser安装包

(1)解压:

mkdir  trousers
cd trousers
tar -xzvf trousers-XXX.tar.gz

(2)安装依赖(参考安装包里的README):

Packages needed to build:
automake > 1.4
autoconf > 1.4
pkgconfig
libtool
gtk2-devel
openssl-devel >= 0.9.7
pthreads library (glibc-devel)

这些都是建议安装的,我参考的是【Ubuntu 16.10 / 树莓派3 安装TPM_emulator】,使用的命令是:apt-get install -y automake1.9 autoconf2.64 pkgconf pkg-config libtool gtk2-engines openssl

(3)编译安装前的修改:

  • 我们需要把它的tddl库改成tpm_emulator提供的库,
  • tpm_emulator提供的库的路径为:/usr/local/lib/libtddl.so
  • 大家可以看一下自己的libtddl.so是不是在这里
  • 我们需要修改以下两个文件:

./src/tcsd/Makefile.am文件

第四行:

tcsd_LDADD=${top_builddir}/src/tcs/libtcs.a ${top_builddir}/src/tcs/libtddl.so -lpthread @CRYPTOLIB@

修改为:

tcsd_LDADD=${top_builddir}/src/tcs/libtcs.a /usr/local/lib/libtddl.so -lpthread @CRYPTOLIB@

./src/tcsd/Makefile.in文件

第55,56行:

tcsd_DEPENDENCIES = ${top_builddir}/src/tcs/libtcs.a \
${top_builddir}/src/tddl/libtddl.a

修改为:

tcsd_DEPENDENCIES = ${top_builddir}/src/tcs/libtcs.a \
/usr/local/lib/libtddl.so
  • 注:该版本文件夹中没有bootstrap,因此省略sh bootstrap.sh步骤

(4)编译安装:

./configure
make
sudo make install

5.2 安装tpm_tools

sudo apt-get install tpm-tools

【试验】启动tcsd

(1)先开一个终端,启动TPM_emulator(上文有):

sudo depmod -a
sudo modprobe tpmd_dev
sudo tpmd -f -d

(2)再开一个终端,启动tcsd:

sudo tcsd -e -f

  • 别关,接着试验一下tpm_tools是否安装成功

【试验】tpm_tools是否安装成功

在上一个试验的基础上,再开一个终端,输入如下命令测试运行:

在/usr/sbin目录下有3个关于tpm的命令运行如下
cd /usr/sbin
./tpm_version #查看版本号
./tpm_getpubek #查看ek公钥
./tpm_takeownership #获取owner

如果以上试验都成功了,那么恭喜你,TPM模拟环境已经完全构建成功了~

如果大家想体验一下使用该环境,可以参考【Ubuntu 16.10 / 树莓派3 安装TPM_emulator】的第6节:与TPM_emulator交互 来进行尝试