可信计算实验:TPM模拟器的安装与环境配置

一、TPM模拟器安装配置

①安装配置依赖

在终端的命令行界面输入:

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退出,进入下一步

二、TPM软件包安装和配置

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安装

①输入如下命令从官网下载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退出

3.tpm2_tools安装 

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

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

三、TPM2试用

1.hash函数产生文件度量值

①用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试用还有几个功能不知道为啥我的运行不了,实验太多了实在没有精力去折腾了,就这样吧……

  • 4
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
TPM2-tools是一套用于管理和操作基于TPM 2.0(Trusted Platform Module)的软件工具。它们包括一系列命令行工具,用于执行与TPM相关的任务,例如生成密钥、创建和加载证书、测量和验证软件等。引用中提到,可以使用"tpm2_"开头的命令来执行这些任务。在引用中,通过运行命令"/usr/local/sbin/tpm2-abrmd"启动了TPM2-abrmd守护进程,该守护进程允许与TPM进行通信并提供TPM2-tools所需的功能。在引用中提到了一些实验环境的信息,包括使用的Linux版本、内核版本、tpm模拟器tpm协议栈版本。这些信息可以作为参考来使用TPM2-tools进行开发和测试。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [TPM零知识学习六 —— tpm2-tools源码安装](https://blog.csdn.net/phmatthaus/article/details/128133582)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [【可信计算tpm2-tools的命令及使用](https://blog.csdn.net/weixin_46447549/article/details/123788198)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Eran_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值