目录

  • 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相关组件。

  • 环境搭建:

  1. Ubuntu 18.04.4 LTS
  2. IBM TPM Emulator 2.0
  3. Intel tpm2-tss 2.1.0
  4. Intel tpm2-abrmd 2.0.2
  5. Intel tpm2-tools
  6. Openssl lib

TPM模拟器安装

  1. 安装配置所需依赖:
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
  1. 从官网下载TPM模拟器程序ibmtpm1332.tar.gz
wget https://jaist.dl.sourceforge.net/project/ibmswtpm2/ibmtpm1332.tar.gz
  1. 创建安装目录并将源码解压到对应目录:
mkdir ibmtpm1332
cd ibmtpm1332/
tar zxvf  ../ibmtpm1332.tar.gz
  1. 进入解压后的目录,然后执行安装命令:
cd src/
sudo make
  1. 将tpm服务器添加到Linux系统执行目录下:
sudo cp tpm_server /usr/local/bin/
  1. 在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
  1. 测试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)的源代码。此堆栈由上至下包含以下几层:
  1. TSS 2.0功能API规范 以及TSS 2.0 JSON数据类型和策略语言规范中描述的功能API(FAPI) 此API设计为非常高级的API,旨在使使用TPM的编程尽可能简单。API函数通过单个库libtss2-fapi公开。
  2. 如《TSS 2.0增强系统API(ESAPI)规范》中所述的增强系统API(ESAPI)。该API是TPM2规范的第3部分中记录的TPM2命令的一对一映射。此外,每个命令都有异步版本。除SAPI之外,ESAPI还执行对TPM对象的元数据的跟踪以及基于会话的授权和加密值的自动计算。同步和异步API都通过一个库libtss2-esys公开。
  3. 如系统级API和TPM命令传输接口规范中所述的系统API(SAPI)。该API是TPM2规范的第3部分中记录的TPM2命令的一对一映射。此外,每个命令都有异步版本。这些异步变量对于集成到事件驱动的编程环境中可能很有用。同步和异步API都通过一个库libtss2-sys公开。
  4. 如TCG TSS 2.0 Marshaling / Unmarshaling API Specification中所述的封送/拆组(MU)。该API为TPM库规范定义的所有数据类型提供了一组封送和解封功能。通过称为libtss2-mu的库公开了Marshaling / Unmarshaling API。
  5. 在同一规范中描述的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仿真器公开的协议。
  6. 该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安装

  1. 添加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
  1. 解压tpm-tss源码:
tar zxvf tpm2-tss-2.1.0.tar.gz
  1. 进入软件目录并进行配置查询。

    为了测试各种TCTI、SAPI和ESAPI api等接口,通过定制配置构建来测试单个和整体接口情况,并利用check来构建出目标。

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

  1. 执行安装并配置动态链接
sudo make install
sudo ldconfig


tpm2-tss 2.1.0 官网(下载)地址
tpm2-tss 2.1.0 安装指导文件地址

tpm2_abrmd安装

  1. 从官网下载tpm2_abrmd安装包
wget https://github.com/tpm2-software/tpm2-abrmd/releases/download/2.0.2/tpm2-abrmd-2.0.2.tar.gz
  1. 解压文件并进入目录
tar zxvf tpm2-abrmd-2.0.2.tar.gz
cd tpm2-abrmd-2.0.2/
sudo ldconfig
  1. 设置安装配置
./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

  1. 执行安装make
sudo make install
  1. 添加tpm2-abrmd进入系统服务
sudo cp /usr/local/share/dbus-1/system-services/com.intel.tss2.Tabrmd.service /usr/share/dbus-1/system-services/
  1. 重启DBUS
sudo pkill -HUP dbus-daemon
  1. 修改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

  1. 测试服务:
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
    等等
  1. 从官方下载tpm2_tools,由于版本需要与tp2-tss以及tpm2-abrmd,下载版本为tpm2-tools 3.x

    关于版本的选择参考网址

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

注 克隆分支下载

  1. 进入目录中:
cd tpm2-tools/
  1. 执行bootstarp、config和make
./bootstrap
./configure
make
  1. 测试tpm2-tools工具连接abrmd服务是否正常
./tools/tpm2_getrandom 4

  1. 执行安装
sudo make install
  1. 打印pcr情况,查看输出是否正常
tpm2_pcrlist

TPM模拟器和TPM2-TSS安装相关推荐

  1. TPM零知识学习七 —— tpm模拟器安装

    本文参考以下链接: TPM模拟器和TPM2-TSS安装_jianming21的博客-CSDN博客_tpm2-tss 可信平台模块TPM(Trusted Platform Module)介绍及tpm-t ...

  2. ARM模拟器-skyeye(天目)的安装和使用!

    ARM模拟器-skyeye(天目)的安装和使用 SkyEye是一个可以运行嵌入式操作系统的硬件仿真工具,这样就可以在没有硬件条件下来进行嵌入式系统的开发. 以下操作均在Fedora Core 1.0里 ...

  3. 计算机无法安装MUMU模拟器,如何解决重装MuMu模拟器时无法更换安装目录

    MuMu模拟器是由网易开发的一款安卓模拟器,这款模拟器基于windows系统运行,通过电脑运行这款模拟器之后,用户就可以像在电脑上使用手机一样,用模拟器就能打开需要在手机上启动的apk文件.重装MuM ...

  4. 删除Symbian模拟器(功能表-安装)里面测试程序的方法

    转自:http://www.devdiv.net/action-blogdetail-uid-11451-id-284 删除Symbian模拟器(功能表->安装)里面测试程序的方法: For S ...

  5. 小程序源码:微信零钱模拟器-多玩法安装简单

    这是一款模拟器小程序 特点就是只要你插上充电器然后里面的数值就会自动往上涨 也就是相当于是零钱充值的一个模拟器 小编个人感觉还是挺好玩的 安装方法: 使用微信开发者工具打开源码 然后上传提交审核就可以 ...

  6. 小程序源码:人生重开模拟器-多玩法安装简单

    这是一款人生重开模拟器微信小程序源码 让你的人生开启不一样的变化 不知道各位玩家有没有被最近超火的一款名为<人生重开模拟器>小游戏刷屏呢?想必不少玩家玩过了各种各样的模拟器,有的可以模拟医 ...

  7. 思科服务器连接无线打印机,介绍思科模拟器网络打印机怎样操作安装

    今天来聊聊一篇关于思科模拟器网络打印机怎样操作安装的文章,现在就为大家来简单介绍下思科模拟器网络打印机怎样操作安装,希望对各位小伙伴们有所帮助. 方法/步骤 1.打开Cisco Packet Trac ...

  8. Genymotion安卓模拟器和VirtualBox虚拟机安装、配置、测试(win7_64bit)

    Genymotion安卓模拟器和VirtualBox虚拟机安装.配置.测试(win7_64bit) 目录 1.概述 2.本文用到的工具 3.VirtualBox虚拟机安装 4.Genymotion安卓 ...

  9. 可信计算系列之一——ATMEL的TPM芯片AT97SC3204T及TSS栈

    最近有项目需要,需要开发移动终端的安全.首先想到的是可信计算,可信计算在PC机比较流行,但是目前对可信计算的褒贬不一,这里不作评论.本文的目的是记录一下我的开发过程. 我使用的芯片是ATMEL公司的A ...

最新文章

  1. 【自动驾驶】25.激光雷达 标定 相机
  2. win7 dos窗口输入命令必须加后缀问题,例如 java必须输java.exe
  3. 苹果7手机严重卡顿_苹果手机仅配备4GB运存都不会卡顿,安卓系统为何要更多内存?...
  4. Paxos共识算法详解
  5. 7-35 情人节 (15 分)
  6. adb shell 查找并删除文件
  7. 深度学习之GAN对抗神经网络
  8. VMware Converter Standalone结合TrueImage 迁移HyperV虚机
  9. Java实现SQL格式化
  10. 苹果怎么应用分身_苹果ios/安卓微信双开技巧
  11. banner设圆角_Banner设计技巧!
  12. 最长公共子串——python
  13. 阿里云服务器地域的选择
  14. Word默认打开方式不对,图标空白的修复方法
  15. 两边同时取对数求复合函数_大学高等数学:第二章第四讲几类复合函数求导法,真该学习下...
  16. 【2022-12-10 修订】如何将 BD(蓝光光盘)备份到硬盘 · 播放 BD 和 UHD BD
  17. Oracle基础包之DBMS_RLS(八)
  18. 基于java的坦克大战游戏-计算机毕业设计
  19. 对抗网易相册不能贴图(解决)
  20. 使用 gomonkey Mock 函数及方法时遇到 panic: permission denied 的问题及解决方法

热门文章

  1. PHP工资管理系统、考勤管理系统、薪资管理系统
  2. 过期牛奶也有好用途(屯些牛奶,等过期后用)
  3. ubuntu16.04安装fcl库出现的问题
  4. 8*8全彩点阵的使用
  5. HyperGBM的三种Early Stopping方式
  6. 常用近红外光谱预处理方法简介
  7. 关于ajax的介绍,ajax介绍
  8. 新年伊始勿忘给保险做个“年检”
  9. [JZOJ3809]设备塔
  10. 【物联网】11个物联网消息传递的神话