Kali 上安装可信计算TPM2.0软件包

目录

0.Kali系统下载安装(7z格式)(已经安装此系统的可以跳过)

1. 安装TPM2.0软件包

1.0 提前需要安装依赖包:

1.1 下载及安装TPM 模拟器

 1.2 安装TPM2 工具相关软件包

1.2.1 安装 tpm2_tss

1.2.2 安装abrmd

1.2.3.安装tpm2_tools

2 TPM2命令

例:tpm2_create密封数据

2.1. 为了创建一个对象,我们必须首先创建一个主秘钥作为它的父密钥。

2.2.将数据密封到 TPM

2.3.解封数据




题注:我多次在Ubuntu上安装TPM2.0软件包,由于Ubuntu系统版本问题,以及包依赖问题,于是选择在Kali 这个linux系统上安装(kali系统,面向专业的渗透测试和安全审计)。

当然,同样的步骤也可以在Ubuntu上操作,因为TPM2.0软件包在linux上安装过程是一样的。

Ubuntu上安装可参考下面: 安装过程:ubuntu16.04上TPM2.0软件包及TPM模拟器实验 - 在路上 ……

如果需要安装tss和tools版本是2.x的可以在Ubuntu 16.04,但之后的版本不建议使用Ubuntu 16.04,很多依赖需要手动下载,

查看openssl是否1.1.1版本,否则升级,参考Ubuntu18.04安装Openssl-1.1.1 - 爱码网,建议使用Ubuntu 18.04 自带openssl 1.1.1。

0.Kali系统下载安装(7z格式)(已经安装此系统的可以跳过)

下载链接:https://kali.download/virtual-images/kali-2022.2/kali-linux-2022.2-vmware-amd64.7z

下载完成之后,将带7z的压缩包解压就好了,如下图:

安装(我使用的是VMware):

打开VMware,选择文件,打开,找到刚刚解压后的文件

 kali系统和其他系统不同,自带kali账户,密码也是kali。登录kali账户后,可以自行更改root密码(不建议),然后可以用root密码登录。但是一般情况下kali账户足够使用,并且自带预先生成的SSH主机密钥。

1. 安装TPM2.0软件包

 所有的TPM2.0软件包都Linux TPM2 & TSS2 Software · GitHub中,

有需求可以自己查看。

1.0 提前需要安装依赖包:

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

安装OpenSSL

kali系统本身没有OpenSSL库,虽然可以通过命令查找到OpenSSL版本,但是并没有库函数,需要手动安装。

进入OpenSSL官网/source/index.html

找到安装包下载安装,如图 :

安装OpenSSL,然后测试

tar -zxvf openssl-1.1.1q.tar.gz
cd openssl-1.1.1q/
./config
make
make install
ldconfig

 若在后续安装过程中依然有缺乏的依赖(kali一般不会,Ubuntu系统可能存在),可以参考如下命令对应安装:

sudo apt-get install lcov pandoc autoconf-archive
sudo apt-get install liburiparser-dev
sudo apt-get install libdbus-1-dev libglib2.0-dev dbus-x11
sudo apt-get install -y automake
sudo apt install autoconf -y
sudo apt install libtool -y
sudo apt-get install libjson-c-dev -y
sudo apt-get install libcurl3 -y
sudo apt-get install libcurl4 libcurl4-openssl-dev -y
sudo apt-get install -y doxygen
## How Install gio-unix-2.0
sudo apt-get install libglib2.0-dev

1.1 下载及安装TPM 模拟器

IBMTPM模拟器项目页面:IBM's Software TPM 2.0 - Browse Files at SourceForge.net

我也是一直用的是1682版本,也可以用最新的。下载

wget http://jaist.dl.sourceforge.net/project/ibmswtpm2/ibmtpm1682.tar.gz

 安装TPM模拟器

mkdir ibmtpm1682
cd ibmtpm1682/
tar zxvf  ../ibmtpm1682.tar.gz
cd src/
make
cp tpm_server /usr/local/bin/

 增加tpm-server.service,执行下面命令:

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

重启daemon,启动tpm-server:

systemctl daemon-reload
systemctl start tpm-server.service

确认tpm模拟器启动正常,执行

systemctl status tpm-server.service

 1.2 安装TPM2 工具相关软件包

1.2.1 安装 tpm2_tss

添加TSS用户

useradd --system --user-group tss

git 安装 

 git 安装 abrmd包 https://github.com/tpm2-software/tpm2-tss

 下载

git clone https://github.com/tpm2-software/tpm2-tss.git

安装 

cd tpm2-tss/
./bootstrap
./configure --enable-unit --enable-integration
make check
make install
ldconfig
cd ..

1.2.2 安装abrmd

git 安装 abrmd包 https://github.com/tpm2-software/tpm2-abrmd

git clone https://github.com/tpm2-software/tpm2-abrmd.git

安装 

cd tpm2-abrmd
ldconfig
./bootstrap
./configure --with-dbuspolicydir=/etc/dbus-1/system.d --with-systemdsystemunitdir=/lib/systemd/system
make -j5
make install
cp /usr/local/share/dbus-1/system-services/com.intel.tss2.Tabrmd.service /usr/share/dbus-1/system-services/

注 make 与 make -j5区别是make -j5并行编译,速度快些。  

重启 DBUS

pkill -HUP dbus-daemon

修改system tpm2-abrmd.service服务配置

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

将“ExecStart=/usr/local/sbin/tpm2-abrmd”修改为“ExecStart=/usr/local/sbin/tpm2-abrmd --tcti="libtss2-tcti-mssim.so.0:host=127.0.0.1,port=2321"” 

 

 注意:黄色内容要注释掉。因为是在tpm模拟器环境,没有真实的tpm设备。

如果主板上有TPM,则可以不用模拟器。root权限启动abrmd。
启动前先执行

sudo ldconfig
然后启动
sudo tpm2-abrmd --allow-root  &

重启daemon,启动tpm2-abrmd服务

systemctl daemon-reload
systemctl start tpm2-abrmd.service
systemctl status tpm2-abrmd.service

启动成功如图: 

1.2.3.安装tpm2_tools

git 安装 abrmd包 https://github.com/tpm2-software/tpm2-tools

下载 

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

安装 

cd tpm2-tools/
./bootstrap
./configure
make -j5

测试tpm2-tools工具是否正常
 

./tools/tpm2_getrandom --hex 8
./tools/tpm2_pcrread

如果都没问题的话

make install

tpm2-tools的使用教程在man目录下

本次搭建可信计算实验环境主要是用tpm模拟器搭建可信计算实验环境,在实验过程中理解了各种tpm软件的作用,对tpm和tss架构有了更加深刻的认识。

**tpm2-abrmd**:是一个守护进程,它应该在操作系统启动过程中启动。使用TPM,守护程序和客户端之间的通信是通过DBus和Unix管道的组合完成的。

**tpm2-tss**:是一个符合TCG标准的软件栈,包含如下几层:特征API(FAPI),增强系统API(ESAPI),系统API(SAPI),TPM命令传输接口(TCTI),TPM访问代理(TAB),资源管理器(RM),和设备驱动。

 **tpm2-tools**:通过调用其命令进行TPM模拟器可信计算的命令行工具。

2 TPM2命令

例:tpm2_create密封数据

具体TPM命令流程如下:

2.1. 为了创建一个对象,我们必须首先创建一个主秘钥作为它的父密钥。

tpm2_createprimary -c primary.ctx

2.2.将数据密封到 TPM

在密钥对象之外,TPM 允许将少量用户指定的数据密封到 TPM。

echo "my sealed data" > seal.dat

tpm2_create -C primary.ctx -i seal.dat -u sealobj.pub -r sealobj.priv -c seal.ctx

此处按理说应该先通过tpm2_load命令加载对象,但是使用了 -c 选项

-c--key-context=FILE: 包含密钥上下文的输出文件,可选。

关键上下文类似于 tpm2_load (1) 生成的上下文文件但是是通过tpm2_createloaded (1) 命令生成的。此选项可用于避免正常的tpm2_create (1) 和tpm2_load (1) 命令序列,并以原子方式在一个命令中完成所有操作。 

2.3.解封数据

tpm2_unseal -c seal.ctx

 其他命令的操作可看后续文章

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

大大大飞啊

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

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

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

打赏作者

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

抵扣说明:

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

余额充值