TPM模拟器和TPM2-TSS安装
目录
- TPM、TSS以及TPM模拟器简介与安装
- TPM简介
- TSS简介
- TPM模拟器安装环境
- TPM模拟器安装
- intel tpm软件包介绍、安装和配置
- intel tpm 介绍
- 各个包功能
- Inter tpm软件安装
- Tpm2-tss安装
- tpm2_abrmd安装
- tpm2_tools安装
TPM、TSS以及TPM模拟器简介与安装
TPM简介
TPM(Trusted Platform Module,可信平台模块)是可信计算平台的信任根,是整个平台可信的基点,也是可信计算的关键技术之一。可信平台模块(TPM)是最早实现产业化的可信计算产品,其中2.0为最新版本。
TPM由CPU、储存器、I/O、密码运算器、随机数产生器和嵌入式操作系统等部件组成。同时TPM继承了肯计算平台所需要的大部分安全功能,为平台的可信提供重要支撑。
TSS简介
- TSS(TCG Software Stack,TCG软件栈)又称为可信软件栈,他是可信计算平台上TPM的支撑软件。TSS的主要作用是为操作系统和应用软件提供使用TPM的接口。TSS的结构可分为内核层、系统服务层和用户程序层。
TPM模拟器安装环境
本实验使用TPM模拟器搭建的实验环境进行实验,模拟器为IBM推出的TPM2.0模拟器。软件栈采用Intel推出的TSS相关组件。
环境搭建:
- Ubuntu 18.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模拟器安装
- 安装配置所需依赖:
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
- 从官网下载TPM模拟器程序ibmtpm1332.tar.gz
wget https://jaist.dl.sourceforge.net/project/ibmswtpm2/ibmtpm1332.tar.gz
- 创建安装目录并将源码解压到对应目录:
mkdir ibmtpm1332
cd ibmtpm1332/
tar zxvf ../ibmtpm1332.tar.gz
- 进入解压后的目录,然后执行安装命令:
cd src/
sudo make
- 将tpm服务器添加到Linux系统执行目录下:
sudo cp tpm_server /usr/local/bin/
- 在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
- 测试TPM配置情况,启动TPM服务:
systemctl daemon-reload
systemctl start tpm-server.service
service tpm-server status
注 q 退出TPM服务查看状态
此时TPM 模拟器已经成功配置,并启动服务。
intel tpm软件包介绍、安装和配置
intel tpm 介绍
- 为了方便使用TPM,开发者开发了许多TPM应用软件来实现对TPM更好地使用。
各个包功能
- Tpm-tss该存储库托管实现可信赖计算组(TCG)TPM2软件堆栈(TSS)的源代码。此堆栈由上至下包含以下几层:
- TSS 2.0功能API规范 以及TSS 2.0 JSON数据类型和策略语言规范中描述的功能API(FAPI) 此API设计为非常高级的API,旨在使使用TPM的编程尽可能简单。API函数通过单个库libtss2-fapi公开。
- 如《TSS 2.0增强系统API(ESAPI)规范》中所述的增强系统API(ESAPI)。该API是TPM2规范的第3部分中记录的TPM2命令的一对一映射。此外,每个命令都有异步版本。除SAPI之外,ESAPI还执行对TPM对象的元数据的跟踪以及基于会话的授权和加密值的自动计算。同步和异步API都通过一个库libtss2-esys公开。
- 如系统级API和TPM命令传输接口规范中所述的系统API(SAPI)。该API是TPM2规范的第3部分中记录的TPM2命令的一对一映射。此外,每个命令都有异步版本。这些异步变量对于集成到事件驱动的编程环境中可能很有用。同步和异步API都通过一个库libtss2-sys公开。
- 如TCG TSS 2.0 Marshaling / Unmarshaling API Specification中所述的封送/拆组(MU)。该API为TPM库规范定义的所有数据类型提供了一组封送和解封功能。通过称为libtss2-mu的库公开了Marshaling / Unmarshaling API。
- 在同一规范中描述的TPM命令传输接口(TCTI)。该API提供了一个标准接口来发送/接收TPM命令/响应缓冲区。预计将实现任何实现TCTI API的库,作为抽象各种平台特定IPC机制的一种方式。当前,此存储库提供了四个TCTI实现:libtss2-tcti-device,libtss2-tcti-tbs(对于Windows),libtss2-tcti-swtpm和libtss2-tcti-mssim。前者应用于通过Linux内核驱动程序直接访问TPM。后者实现了Microsoft软件TPM2仿真器公开的协议。
- 该TCG TSS 2.0概述和常用结构规格形成了在这个项目中的所有实现的基础。注意:我们通过将TPM2_NUM_PCR_BANKS的值从3增加到16,以确保与TPM2实现的兼容性(实现了比典型数量更多的PCR库)而偏离了该规范草案。TPM2_NUM_PCR_BANKS的较大值预计将包含在该规范的将来版本中。
tpm2-abrmd是一个守护进程。它应该在操作系统启动过程中启动。使用TPM,守护程序和客户端之间的通信是通过DBus和Unix管道的组合完成的。DBus用于发现,会话管理以及“取消”,“ setLocality”和“ getPollHandles” API调用(大多数尚未实现)。管道用于分别在客户端和服务器之间发送和接收TPM命令和响应。
守护程序在dbus上拥有com.intel.tss2.Tabrmd名称。可以将其配置为连接到系统或会话总线。配置名称选择将是一个方便的功能,但这是将来的工作。Tpm2-tools为tpm调用其进行可信计算的命令行工具。
Inter tpm软件安装
- Tpm软件需按照 tpm2-tss、tpm2-abrmd、tpm2-tools顺序进行安装。
- 三个软件在github上网址 https://github.com/tpm2-software
Tpm2-tss安装
- 添加tss用户
由于tss套件必须在用户为tss和root下面使用,因此在系统用户中添加tss用户。
sudo useradd --system --user-group tss
2. 从官网下载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
- 解压tpm-tss源码:
tar zxvf tpm2-tss-2.1.0.tar.gz
进入软件目录并进行配置查询。
为了测试各种TCTI、SAPI和ESAPI api等接口,通过定制配置构建来测试单个和整体接口情况,并利用check来构建出目标。
cd tpm2-tss-2.1.0/
./configure --enable-unit --enable-integration
sudo make check
- 执行安装并配置动态链接
sudo make install
sudo ldconfig
注
tpm2-tss 2.1.0 官网(下载)地址
tpm2-tss 2.1.0 安装指导文件地址
tpm2_abrmd安装
- 从官网下载tpm2_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
在配置过程中,添加–with-dbuspolicydir=/etc/dbus-1/system.d选项,这样可以将tpm2-abrmd声明到系统总线上,允许tss账户声明该策略。
同时将tpm2-abrmd添加进系统引导:–with-systemdsystemunitdir=/lib/systemd/system
- 执行安装make
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
修改tpm2-abrmd.service服务配置:
在启动服务时加载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””
--tcti="libtss2-tcti-mssim.so.0:host=127.0.0.1,port=2321
服务配置文件位置:/lib/systemd/system
- 测试服务:
systemctl daemon-reload
systemctl start tpm2-abrmd.service
service tpm2-abrmd status
注
tpm2-abrmd 2.0.2 官方(下载)地址
tpm2-abrmd 2.0.2 官方安装文件地址
tpm2_tools安装
- tpm2_tools为用户提供了使用TPM资源的几个命令,如:
tpm2_create : 创建key
tpm2_sign : startup TPM, 相于初始化TPM
tpm2_listpcrs: 打印出TPM中所有的pcrs值
tpm2_send_command: 可以发送字节流命令
tpm2_hash : hash
等等
从官方下载tpm2_tools,由于版本需要与tp2-tss以及tpm2-abrmd,下载版本为tpm2-tools 3.x
关于版本的选择参考网址
git clone -b 3.X https://github.com/tpm2-software/tpm2-tools.git
注 克隆分支下载
- 进入目录中:
cd tpm2-tools/
- 执行bootstarp、config和make
./bootstrap
./configure
make
- 测试tpm2-tools工具连接abrmd服务是否正常
./tools/tpm2_getrandom 4
- 执行安装
sudo make install
- 打印pcr情况,查看输出是否正常
tpm2_pcrlist
TPM模拟器和TPM2-TSS安装相关推荐
- TPM零知识学习七 —— tpm模拟器安装
本文参考以下链接: TPM模拟器和TPM2-TSS安装_jianming21的博客-CSDN博客_tpm2-tss 可信平台模块TPM(Trusted Platform Module)介绍及tpm-t ...
- ARM模拟器-skyeye(天目)的安装和使用!
ARM模拟器-skyeye(天目)的安装和使用 SkyEye是一个可以运行嵌入式操作系统的硬件仿真工具,这样就可以在没有硬件条件下来进行嵌入式系统的开发. 以下操作均在Fedora Core 1.0里 ...
- 计算机无法安装MUMU模拟器,如何解决重装MuMu模拟器时无法更换安装目录
MuMu模拟器是由网易开发的一款安卓模拟器,这款模拟器基于windows系统运行,通过电脑运行这款模拟器之后,用户就可以像在电脑上使用手机一样,用模拟器就能打开需要在手机上启动的apk文件.重装MuM ...
- 删除Symbian模拟器(功能表-安装)里面测试程序的方法
转自:http://www.devdiv.net/action-blogdetail-uid-11451-id-284 删除Symbian模拟器(功能表->安装)里面测试程序的方法: For S ...
- 小程序源码:微信零钱模拟器-多玩法安装简单
这是一款模拟器小程序 特点就是只要你插上充电器然后里面的数值就会自动往上涨 也就是相当于是零钱充值的一个模拟器 小编个人感觉还是挺好玩的 安装方法: 使用微信开发者工具打开源码 然后上传提交审核就可以 ...
- 小程序源码:人生重开模拟器-多玩法安装简单
这是一款人生重开模拟器微信小程序源码 让你的人生开启不一样的变化 不知道各位玩家有没有被最近超火的一款名为<人生重开模拟器>小游戏刷屏呢?想必不少玩家玩过了各种各样的模拟器,有的可以模拟医 ...
- 思科服务器连接无线打印机,介绍思科模拟器网络打印机怎样操作安装
今天来聊聊一篇关于思科模拟器网络打印机怎样操作安装的文章,现在就为大家来简单介绍下思科模拟器网络打印机怎样操作安装,希望对各位小伙伴们有所帮助. 方法/步骤 1.打开Cisco Packet Trac ...
- Genymotion安卓模拟器和VirtualBox虚拟机安装、配置、测试(win7_64bit)
Genymotion安卓模拟器和VirtualBox虚拟机安装.配置.测试(win7_64bit) 目录 1.概述 2.本文用到的工具 3.VirtualBox虚拟机安装 4.Genymotion安卓 ...
- 可信计算系列之一——ATMEL的TPM芯片AT97SC3204T及TSS栈
最近有项目需要,需要开发移动终端的安全.首先想到的是可信计算,可信计算在PC机比较流行,但是目前对可信计算的褒贬不一,这里不作评论.本文的目的是记录一下我的开发过程. 我使用的芯片是ATMEL公司的A ...
最新文章
- 【自动驾驶】25.激光雷达 标定 相机
- win7 dos窗口输入命令必须加后缀问题,例如 java必须输java.exe
- 苹果7手机严重卡顿_苹果手机仅配备4GB运存都不会卡顿,安卓系统为何要更多内存?...
- Paxos共识算法详解
- 7-35 情人节 (15 分)
- adb shell 查找并删除文件
- 深度学习之GAN对抗神经网络
- VMware Converter Standalone结合TrueImage 迁移HyperV虚机
- Java实现SQL格式化
- 苹果怎么应用分身_苹果ios/安卓微信双开技巧
- banner设圆角_Banner设计技巧!
- 最长公共子串——python
- 阿里云服务器地域的选择
- Word默认打开方式不对,图标空白的修复方法
- 两边同时取对数求复合函数_大学高等数学:第二章第四讲几类复合函数求导法,真该学习下...
- 【2022-12-10 修订】如何将 BD(蓝光光盘)备份到硬盘 · 播放 BD 和 UHD BD
- Oracle基础包之DBMS_RLS(八)
- 基于java的坦克大战游戏-计算机毕业设计
- 对抗网易相册不能贴图(解决)
- 使用 gomonkey Mock 函数及方法时遇到 panic: permission denied 的问题及解决方法