提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言:实验任务

本实验使用TPM模拟器搭建的实验环境进行实验,模拟器为IBM推出的TPM2.0模拟器。
软件栈采用Intel推出的TSS相关组件,同时可能还要安装Openssl相关库。
参照资料或根据自己电脑系统的需求,下载相应版本的软件,在安装好的虚拟机上搭建可信计算模拟环境,为后续实验打好基础。

一、实验环境准备

Linux版本:Ubuntu 16.04.7 LTS (虚拟机)
内核版本:4.4.0-210-generic
查看方法如下:
①root用户登录
在这里插入图片描述
②在终端的命令行界面输入cat /etc/issue,点击回车,即可看到ubuntu版本号。
同样地,输入cat /proc/version,即可看到Linux内核版本。
执行效果如图:
在这里插入图片描述

二、TPM模拟器安装

1.简介

①TPM(Trusted Platform Module):
TPM代表可信平台模块。它是一个SOC(System on Chip)芯片,加上嵌入式操作系统后构成一个以安全保密功能为特色的嵌入式计算系统。
TPM常以计算机主板上的芯片或作为处理器的一部分的形式出现,具有多种用途,包括设备身份验证、加密、识别和完整性验证。操作系统可以使用它来更好地保护设备免受高级威胁。TPM由CPU、储存器、I/O、密码运算器、随机数产生器和嵌入式操作系统等部件组成。
TPM芯片是一种安全的加密处理器,专为加密操作而设计。它被设计为防篡改,并包含一个可用于平台设备身份验证的唯一密钥。TPM可以在引导过程中检查系统的完整性,以确保系统没有被篡改。
②TSS(TCG Software Stack):
可信软件栈,是可信计算平台上TPM的支撑软件。
TSS的主要作用是为操作系统和应用软件提供使用TPM的接口,TSS的结构可分为内核层、系统服务层和用户程序层。

2.TPM模拟器安装配置

①安装配置依赖
在终端的命令行界面输入:

sudo apt install lcov pandoc autoconf-archive liburiparser-dev libdbus-1-dev libglib2.0-dev dbus-x11 libssl-dev \

点击回车,输入:

autoconf automake libtool pkg-config gcc  libcurl4-gnutls-dev libgcrypt20-dev libcmocka-dev uthash-dev

执行效果如图:
在这里插入图片描述
之后一直选择Y(yes),就可以完成所需依赖的安装配置。

②下载软件(TPM模拟器程序ibmtpm1332.tar.gz)
在终端的命令行界面输入:

wget https://jaist.dl.sourceforge.net/project/ibmswtpm2/ibmtpm1332.tar.gz

执行效果如图:
在这里插入图片描述
③解压程序文件:
在终端的命令行界面输入以下代码创建目录ibmtpm1332:

mkdir ibmtpm1332

回车后输入以下代码进入ibmtpm1332:

cd ibmtpm1332/

回车后输入以下代码解压文件:

tar zxvf  ../ibmtpm1332.tar.gz

执行效果如图:
在这里插入图片描述

④安装程序
输入以下命令进入解压后的目录:

cd src/

回车后输入以下命令安装文件:

sudo make

执行效果如图:
在这里插入图片描述
⑤配置环境
输入以下代码将tpm服务器添加到Linux系统执行目录下:

sudo cp tpm_server /usr/local/bin/

输入以下代码打开vim编辑器在ubuntu中配置TPM服务(创建tpm.server.service文件和配置服务):

sudo vim /lib/systemd/system/tpm-server.service

输入内容如图:
在这里插入图片描述
在文件中添加以下内容:

[Unit]
Description=TPM2.0 Simulator Server Daemon
Before=tpm2-abrmd.service
[Service]
ExecStart=/usr/local/bin/tpm_server
Restart=always
Environment=PATH=/usr/bin:/usr/local/bin
[Install]
WantedBy=multi-user.target

输入内容如图:
在这里插入图片描述
输入内容后,按下“Esc”键,此时左下角的“插入”会消失,然后按Shift+zz 就可以保存修改内容并退出。

⑥验证配置
输入以下命令测试TPM配置情况,启动TPM服务:

systemctl daemon-reload
systemctl start tpm-server.service
service tpm-server status

测试效果如图:
在这里插入图片描述
按q退出,进入下一步。

三、intel tpm软件包安装和配置

Tpm软件需按照 tpm2-tss、tpm2-abrmd、tpm2-tools顺序进行安装。

1.Tpm2-tss安装

①输入以下命令在系统用户中添加tss用户:

sudo useradd --system --user-group tss

创建成功:
在这里插入图片描述
②输入以下命令从官网下载tpm-tss-2.1.0.tar.gz:

wget https://github.com/tpm2-software/tpm2-tss/releases/download/2.1.0/tpm2-tss-2.1.0.tar.gz

下载完成:
在这里插入图片描述
③输入以下命令对下载的安装包进行解压:

tar zxvf tpm2-tss-2.1.0.tar.gz

解压完成:
在这里插入图片描述
④输入以下命令进入下载的软件目录:

cd tpm2-tss-2.1.0/

回车后,输入以下命令定制配置构建来测试单个和整体接口情况:

./configure --enable-unit --enable-integration

回车后,输入:

sudo make check

在这里插入图片描述
结果如图所示:
在这里插入图片描述
在这里插入图片描述

⑤输入以下命令执行安装:

sudo make install

在这里插入图片描述

回车后,输入以下命令配置动态链接:

sudo ldconfig

在这里插入图片描述

2.tpm2_abrmd安装

①输入如下命令从官网下载tpm2_abrmd安装包:

wget https://github.com/tpm2-software/tpm2-abrmd/releases/download/2.0.2/tpm2-abrmd-2.0.2.tar.gz

在这里插入图片描述
②输入如下命令解压文件:

tar zxvf tpm2-abrmd-2.0.2.tar.gz

在这里插入图片描述
进入文件目录:

cd tpm2-abrmd-2.0.2/
sudo ldconfig

在这里插入图片描述
③输入如下命令设置安装配置:

./configure --with-dbuspolicydir=/etc/dbus-1/system.d --with-systemdsystemunitdir=/lib/systemd/system

在这里插入图片描述
④输入如下命令执行安装:

sudo make install

在这里插入图片描述
⑤输入如下命令添加tpm2-abrmd进入系统服务:

sudo cp /usr/local/share/dbus-1/system-services/com.intel.tss2.Tabrmd.service /usr/share/dbus-1/system-services/

重启DBUS:

sudo pkill -HUP dbus-daemon

在这里插入图片描述
⑥修改配置文件:

输入以下代码用vim编辑器打开配置文件:

sudo vim /lib/systemd/system/tpm2-abrmd.service

在这里插入图片描述

打开后按 i 进入编辑模式,左下角出现插入字样,将
“ExecStart=/usr/local/sbin/tpm2-abrmd”后添加如下代码:

--tcti="libtss2-tcti-mssim.so.0:host=127.0.0.1,port=2321"

如下图所示:
在这里插入图片描述

输入内容完成后,按下“Esc”键,此时左下角的“插入”会消失,然后按Shift+zz 就可以保存修改内容并退出。
⑦测试:
(注意此步测试必须保证tpm server的服务处于开启状态,可以重做 “ 2.TPM模拟器安装配置 ” 的第⑥步以开启tpm server 的服务
输入命令:

systemctl daemon-reload

回车,输入命令:

systemctl start tpm2-abrmd.service

回车,输入命令:

service tpm2-abrmd status

完成结果如图所示:
在这里插入图片描述

3.tpm2_tools安装

①执行以下命令下载软件包:

git clone -b 3.X https://github.com/tpm2-software/tpm2-tools.git

在这里插入图片描述
②进入以下目录:

cd tpm2-tools/

回车,并执行以下命令创建环境:

./bootstrap

在这里插入图片描述
③ 回车,执行以下命令检查环境:

./configure

在这里插入图片描述
此步需要注意是否所有checking都为yes,如果出现报错需要根据报错内容重装。
比如我在最后就报如下错误:缺少yaml模块,所以需要用python3的pip下载yaml库,具体不再详述,命令如下:

pip install pyyaml 

#(注意不是yaml而是pyyaml)
在这里插入图片描述
④checking通过后进行下一步,命令如下:

make

在这里插入图片描述
⑤此时,输入以下命令测试tpm2-tools工具连接abrmd服务是否正常:
注意此步测试需要保证tpm-server和tpm-abrmd服务都处于开启状态,如果未开启请用前文方式开启。

./tools/tpm2_getrandom 4

如果出现以下结果说明成功:

在这里插入图片描述
⑥ 输入以下命令执行安装:

sudo make install

⑦输入以下命令打印pcr情况,查看输出是否正常:

tpm2_pcrlist

出现以下结果说明配置成功!
在这里插入图片描述

总结

环境配了两天遇到好多报错,但是好在已经解决,如果大家有什么问题也欢迎找我交流哦~如果我能帮上忙就再好不过啦!嘻嘻

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐