可信计算实验(TPM模拟器搭建的实验环境)

可信计算实验环境搭建


参考资料:
tpm工作原理
TPM模拟器和TPM2-TSS安装_jianming21的博客-CSDN博客_tpm2-tss

1、实验任务

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

2、实验流程

环境搭建:

Ubuntu 16.04.4 LTS
IBM TPM Emulator 2.0
Intel tpm2-tss 2.1.0
Intel tpm2-abrmd 2.0.2
Intel tpm2-tools
Openssl lib

TPM(Trusted Platform Module)可信任平台模块

什么是TPM?
TPM实际上是一个含有密码运算部件和存储部件的小型片上的系统,由CPU、存储器、I/O、密码运算器、随机数产生器和嵌入式操作系统等部件组成。
TPM是具有加密功能的安全微控制器,旨在提供涉及加密密钥的基本安全功能。TPM芯片集成在主板上并通过硬件总线与系统的其他部件通信。我们在BIOS的设置建立对系统以及TPM的管理。

TPM的工作原理
TPM作为可信计算平台的核心,实际上是一块安装在主板上,含有密码运算部件和存储部件的系统级芯片。TPM技术最核心的功能在于对CPU处理的数据流进行加密,同时监测系统底层的状态。在此基础上,可以开发出唯一身份识别、系统登录加密、文件夹加密、网络通讯加密等各个环节的安全应用,它能够生成加密的密钥,还有密钥的存储和身份的验证,可以高速进行数据加密和还原,作为保护BIOS和OS不被修改的辅助处理器,通过TSS与TPM的结合来构建跨平台与软硬件系统的可信计算体系结构。即使用户硬盘被盗也不会造成数据泄漏。TPM的序号无法轻易被读出,其读取过程经过加密算法处理,与IC卡一样具有传输加密的安全特性,即TPM芯片就是一颗内嵌于计算机内的智能卡,该芯片的序号代表着该机、该装置、该硬件等信息。TPM上的数字就如同身份证号码,是唯一识别而不重复的一组数字。

实验步骤:

安装tpm模拟器

1、安装配置所需依赖

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

在这里插入图片描述
2、下载tpm模拟器程序ibmtpm1332.tar.gz并进行解压(创建一个安装目录,将文件解压到该目录下)和安装

wget https://jaist.dl.sourceforge.net/project/ibmswtpm2/ibmtpm1332.tar.gz
mkdir natatpm
cd natatpm
tar -zxvf ../ibmtpm1332.tar.gz
cd src/
sudo make

在这里插入图片描述
3、将tpm服务器加到linux系统执行目录下,并在ubuntu中配置tpm服务(创建tpm.server.service文件和配置服务)。
注:如果之前尚未安装vim,可以用以下命令安装vim编辑器:

sudo apt install vim
sudo cp tpm_server /usr/local/bin/
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

在这里插入图片描述
4、测试TPM配置情况,启动TPM服务:

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

在这里插入图片描述

tpm软件安装(tpm2-tss、tpm2-abrmd、tpm2-tools)
1、安装tpm2-tss

1、添加tss用户并从官网下载tpm2-tss-2.1.0.tar.gz,并进行解压

sudo useradd --system --user-group tss
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

在这里插入图片描述
在这里插入图片描述
2、进入软件目录并进行配置查询。
为了测试各种TCTI、SAPI和ESAPI api等接口,通过定制配置构建来测试单个和整体接口情况,并利用check来构建出目标。

cd tpm2-tss-2.1.0/
./configure --enable-unit --enable-integration
sudo make check

在这里插入图片描述
在这里插入图片描述
3、执行安装并配置动态链接

sudo make install
sudo ldconfig

在这里插入图片描述
在这里插入图片描述

2、安装tpm2-abrmd

1、跟安装tpm2-tss类似,首先执行以下命令

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

2、添加tpm2-abrmd进入系统服务

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

3、重启DBUS

sudo pkill -HUP dbus-daemon

4、修改配置文件,文件在/lib/systemd/system目录下(在启动服务时加载tss动态库并将服务启动到本地2321端口。
将“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”)

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

在这里插入图片描述
5、测试服务:

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

在这里插入图片描述

3、安装tpm2_tools

1、从官方下载tpm2_tools(注意此处要用root用户)

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

在这里插入图片描述
2、进入tpm2-tools目录执行以下命令:

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

在这里插入图片描述
3、测试tpm2-tools工具连接abrmd服务是否正常,如果正常,则进行安装

./tools/tpm2_getrandom 4
sudo make install

在这里插入图片描述
4、打印pcr值进行测试

tpm2_pcrlist

在这里插入图片描述

3、总结

本次实验主要是用tpm模拟器搭建可信计算实验环境,在实验过程中理解了各种tpm软件的作用,对tpm有了更加深刻的认识。
tss:是一个符合TCG标准的软件栈,包含如下几层:特征API(FAPI),增强系统API(ESAPI),系统API(SAPI),TPM命令传输接口(TCTI),TPM访问代理(TAB),资源管理器(RM),和设备驱动。
tpm2-abrmd:是一个守护进程。它应该在操作系统启动过程中启动。使用TPM,守护程序和客户端之间的通信是通过DBus和Unix管道的组合完成的。
tpm2-tools:tpm调用其进行可信计算的命令行工具
pcr:平台配置寄存器,是TPM中的动态内存区,被保留用于保持系统的引导序列度量结果的完整性。pcr可与身份密钥一起用于证明系统引导顺序是否正常。

  • 15
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值