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


文章目录

  • 前言:实验任务
  • 一、实验环境准备
  • 二、TPM模拟器安装
  • 1.简介
  • 2.TPM模拟器安装配置
  • 三、intel tpm软件包安装和配置
  • 1.Tpm2-tss安装
  • 2.tpm2_abrmd安装
  • 3.tpm2_tools安装
  • 总结



前言:实验任务

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

一、实验环境准备

Linux版本:Ubuntu 16.04.7 LTS (虚拟机)

内核版本:4.4.0-210-generic

查看方法如下:

①root用户登录

todesk链接虚拟机CPU 虚拟机tpm2.0_tpm2.0


②在终端的命令行界面输入cat /etc/issue,点击回车,即可看到ubuntu版本号。

同样地,输入cat /proc/version,即可看到Linux内核版本。

执行效果如图:

todesk链接虚拟机CPU 虚拟机tpm2.0_todesk链接虚拟机CPU_02

二、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

执行效果如图:

todesk链接虚拟机CPU 虚拟机tpm2.0_tpm2.0_03


之后一直选择Y(yes),就可以完成所需依赖的安装配置。

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

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

执行效果如图:

todesk链接虚拟机CPU 虚拟机tpm2.0_tpm2.0_04


③解压程序文件:

在终端的命令行界面输入以下代码创建目录ibmtpm1332:

mkdir ibmtpm1332

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

cd ibmtpm1332/

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

tar zxvf  ../ibmtpm1332.tar.gz

执行效果如图:

todesk链接虚拟机CPU 虚拟机tpm2.0_安装配置_05

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

cd src/

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

sudo make

执行效果如图:

todesk链接虚拟机CPU 虚拟机tpm2.0_todesk链接虚拟机CPU_06


⑤配置环境

输入以下代码将tpm服务器添加到Linux系统执行目录下:

sudo cp tpm_server /usr/local/bin/

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

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

输入内容如图:

todesk链接虚拟机CPU 虚拟机tpm2.0_tpm2.0_07


在文件中添加以下内容:

[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

输入内容如图:

todesk链接虚拟机CPU 虚拟机tpm2.0_tpm2.0_08


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

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

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

测试效果如图:

todesk链接虚拟机CPU 虚拟机tpm2.0_todesk链接虚拟机CPU_09


按q退出,进入下一步。

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

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

1.Tpm2-tss安装

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

sudo useradd --system --user-group tss

创建成功:

todesk链接虚拟机CPU 虚拟机tpm2.0_todesk链接虚拟机CPU_10


②输入以下命令从官网下载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

下载完成:

todesk链接虚拟机CPU 虚拟机tpm2.0_tpm2.0_11


③输入以下命令对下载的安装包进行解压:

tar zxvf tpm2-tss-2.1.0.tar.gz

解压完成:

todesk链接虚拟机CPU 虚拟机tpm2.0_命令行界面_12


④输入以下命令进入下载的软件目录:

cd tpm2-tss-2.1.0/

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

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

回车后,输入:

sudo make check

todesk链接虚拟机CPU 虚拟机tpm2.0_todesk链接虚拟机CPU_13


结果如图所示:

todesk链接虚拟机CPU 虚拟机tpm2.0_命令行界面_14


todesk链接虚拟机CPU 虚拟机tpm2.0_安装配置_15

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

sudo make install

todesk链接虚拟机CPU 虚拟机tpm2.0_命令行界面_16

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

sudo ldconfig

todesk链接虚拟机CPU 虚拟机tpm2.0_tpm2.0_17

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

todesk链接虚拟机CPU 虚拟机tpm2.0_命令行界面_18


②输入如下命令解压文件:

tar zxvf tpm2-abrmd-2.0.2.tar.gz

todesk链接虚拟机CPU 虚拟机tpm2.0_安装配置_19


进入文件目录:

cd tpm2-abrmd-2.0.2/
sudo ldconfig

todesk链接虚拟机CPU 虚拟机tpm2.0_安装配置_20


③输入如下命令设置安装配置:

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

todesk链接虚拟机CPU 虚拟机tpm2.0_命令行界面_21


④输入如下命令执行安装:

sudo make install

todesk链接虚拟机CPU 虚拟机tpm2.0_可信计算_22


⑤输入如下命令添加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

todesk链接虚拟机CPU 虚拟机tpm2.0_可信计算_23


⑥修改配置文件:

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

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

todesk链接虚拟机CPU 虚拟机tpm2.0_安装配置_24

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

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

如下图所示:

todesk链接虚拟机CPU 虚拟机tpm2.0_tpm2.0_25

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

systemctl daemon-reload

回车,输入命令:

systemctl start tpm2-abrmd.service

回车,输入命令:

service tpm2-abrmd status

完成结果如图所示:

todesk链接虚拟机CPU 虚拟机tpm2.0_安装配置_26

3.tpm2_tools安装

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

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

todesk链接虚拟机CPU 虚拟机tpm2.0_安装配置_27


②进入以下目录:

cd tpm2-tools/

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

./bootstrap

todesk链接虚拟机CPU 虚拟机tpm2.0_可信计算_28


③ 回车,执行以下命令检查环境:

./configure

todesk链接虚拟机CPU 虚拟机tpm2.0_todesk链接虚拟机CPU_29


此步需要注意是否所有checking都为yes,如果出现报错需要根据报错内容重装。

比如我在最后就报如下错误:缺少yaml模块,所以需要用python3的pip下载yaml库,具体不再详述,命令如下:

pip install pyyaml

#(注意不是yaml而是pyyaml)

todesk链接虚拟机CPU 虚拟机tpm2.0_todesk链接虚拟机CPU_30


④checking通过后进行下一步,命令如下:

make

todesk链接虚拟机CPU 虚拟机tpm2.0_可信计算_31


⑤此时,输入以下命令测试tpm2-tools工具连接abrmd服务是否正常:

注意此步测试需要保证tpm-server和tpm-abrmd服务都处于开启状态,如果未开启请用前文方式开启。

./tools/tpm2_getrandom 4

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

todesk链接虚拟机CPU 虚拟机tpm2.0_tpm2.0_32


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

sudo make install

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

tpm2_pcrlist

出现以下结果说明配置成功!

todesk链接虚拟机CPU 虚拟机tpm2.0_可信计算_33

总结

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