①安装配置依赖
在终端的命令行界面输入:
sudo apt install lcov pandoc autoconf-archive liburiparser-dev libdbus-1-dev libglib2.0-dev dbus-x11 libssl-dev
点击回车,输入:
sudo apt install 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
③解压程序文件
在终端的命令行界面输入以下代码创建目录ibmtpm并进入:
mkdir ibmtpm && cd ibmtpm
输入以下命令解压文件:
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”键,此时左下角的“Insert”会消失,然后输入“:”,再输入“wq”,就可以保存修改内容并退出。
⑥验证配置
输入以下命令验证TPM配置情况,启动TPM服务:
systemctl daemon-reload
systemctl start tpm-server.service
service tpm-server status
按q退出,进入下一步
①输入以下命令在系统用户中添加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
①输入如下命令从官网下载tmp2_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进入编辑模式,左下角出现“insert”字样,在ExecStart=/usr/local/sbin/tpm2-abrmd之后添加如下代码:
--tcti="libtss2-tcti-mssim.so.0:host=127.0.0.1,port=2321"
输入内容完成后,按下“Esc”键,此时左下角的“insert”会消失,然后输入“:wq”即可保存退出。
⑦测试:
(注意此步测试必须保证tpm server的服务处于开启状态,可以重做“TPM模拟器安装配置”的第⑥步以开启tpm server的服务)
输入命令:
systemctl daemon-reload
systemctl start tpm2-abrmd.service
service tpm2-abrmd status
按q退出
①执行以下命令下载软件包:
git clone -b 3.X https://github.com/tpm2-software/tpm2-tools.git
②进入以下目录:
cd tpm2-tools
回车,并执行以下命令创建环境:
./bootstrap
③执行以下命令检查环境:
./configure
我这里报错显示yaml未安装,使用pip install pyyaml安装之后仍然报错语法错误,网上没有搜索到解决方法,和老师请教后猜测是python版本问题,重装了3.9的python。
(参考博客:Ubuntu升级Python版本)
之后yaml仍然出错,在CSDN上找到了3.11版本的yaml安装。
(参考博客:pyyaml 3.11版本的安装)
④此时,输入以下命令测试tpm2-tools工具连接abrmd服务是否正常:
(注意此步测试需要保证tpm-server和tpm-abrmd服务都处于开启状态,如果未开启则使用前文方式开启)
./tools/tpm2_getrandom 4
我这里一开始报错了
网上到处都只有这一步操作,但是没有报错解决方法,前面各个步骤都检查了也没有找到原因,最后只在一个博客中看到有提到这里无法打开/dev/tpm0,解决方法:下载tpm-tools
sudo apt-get install tpm-tools
再次操作,成功了!
⑤输入以下命令进行安装:
make
make install
⑥输入以下命令打印pcr情况,查看输出是否正常:
tpm2_pcrlist
①用vim命令创建一个data.txt数据文件,在data.txt数据文件中写入任意内容,用于实验:
vim data.txt
此处我的数据内容为:
Did you finish your task for today?
②cat(concatenate)命令用于连接文件并打印到标准输出设备上,此处显示文件内容:
cat data.txt
③用以下命令生成data.txt数据文件的度量值:
tpm2_hash -H e -g sha1 -o hash.bin -t ticket.bin data.txt
④修改数据文件内容:
vim data.txt
数据修改为:
I haven’t finished yet. I’m going now.
⑤显示修改后文件内容:
cat data.txt
⑥生成修改后的data.txt数据文件的度量值:
tpm2_hash -H e -g sha1 -o hash.bin -t ticket.bin data.txt
⑦对比可得,两次的文件度量不同,试验成功
做实验太痛苦了,总是会报一些莫名其妙的错,有时候又莫名其妙不知道怎么的就好了qaq
最后TPM2试用还有几个功能不知道为啥我的运行不了,实验太多了实在没有精力去折腾了,就这样吧……