tpm模拟器与新版tpm2-tss\abrmd\tools安装

文章目录

  • 相关背景
    • 环境:
    • 官方文档链接
    • 下载安装包
      • 下载ibmtpm模拟器
      • 下载tpm2-tss\abrmd\tools
    • 相关知识
  • 安装
    • 添加依赖
      • 添加tpm2-tss所需依赖,如下图所示。
      • 添加tpm2-abrmd所需依赖
      • 添加tpm2-tools所需依赖
    • TPM模拟器安装
    • tpm2-tss安装
    • tpm2-abmrd安装
    • tpm2-tools安装

相关背景

环境:

  1. 时间:2020.08.16
  2. 操作系统:Ubuntu 18.04.4 LTS
  3. ibmtpm:1637

官方文档链接

  1. tpm2-software
  2. tpm2-tss
    2.1 tpm2-tss安装指导文件
  3. tpm2-abrmd
    3.1 tpm2-abrmd安装指导文件
  4. tpm2-tools
    4.1. tpm2-tools安装指导文件
  • 其中模拟器\tss\abrmd\tools的安装也可以参考tpm2-tools安装指导文件最底下的教程,如。
    tpm模拟器与新版tpm2-tss\abrmd\tools安装_第1张图片tpm模拟器与新版tpm2-tss\abrmd\tools安装_第2张图片

下载安装包

  • 本文下载tpm2-tss、tpm2-abrmd、tpm2-tools通过克隆代码仓方法,而非下载Linux发行版打包好的tpm2。

下载ibmtpm模拟器

  • 下载地址:https://sourceforge.net/projects/ibmswtpm2/files/latest/download
  • 可能需要科学上网进行下载

下载tpm2-tss\abrmd\tools

  • 通过git clone直接下载速度慢,需要通过国内码云进行下载。
  • 通过码云加速下载教程链接
  • tpm2-tss克隆链接 https://github.com/tpm2-software/tpm2-tss.git
  • tpm2-abrmd克隆链接 https://github.com/tpm2-software/tpm2-abrmd.git
  • tpm2-tools克隆链接 https://github.com/tpm2-software/tpm2-tools.git

相关知识

  • ./configure 选项的参数选择介绍

安装

添加依赖

添加tpm2-tss所需依赖,如下图所示。

tpm模拟器与新版tpm2-tss\abrmd\tools安装_第3张图片

sudo apt -y update
sudo apt -y install autoconf-archive libcmocka0 libcmocka-dev procps iproute2 build-essential git pkg-config gcc libtool automake libssl-dev uthash-dev autoconf doxygen libjson-c-dev libini-config-dev libcurl-dev

添加tpm2-abrmd所需依赖

  • 在tpm2-tss添加的依赖基础上,添加glib and gio 2.0库。
sudo apt -y install libglib2.0-dev

添加tpm2-tools所需依赖

sudo apt-get install autoconf automake libtool pkg-config gcc libssl-dev libcurl4-gnutls-dev uuid-dev python-yaml

TPM模拟器安装

  • 模拟器下载完成后,将文件ibmtpm1637.tar解压并进入文件夹中
cd ibmtpm1637/src/
sudo make -j5# 执行安装命令,完成后会生成文件tpm_server
sudo cp tpm_server /usr/local/bin/   # 将tpm服务器添加到linux系统执行目录下
sudo vim /lib/systemd/system/tpm-server.service # 在ubuntu中配置TPM服务(创建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服务
systemctl daemon-reload
systemctl start tpm-server.service
service tpm-server status
  • 输出如下图显示

tpm模拟器与新版tpm2-tss\abrmd\tools安装_第4张图片

tpm2-tss安装

  1. 添加tss用户

    由于tss套件必须在用户为tss和root下面使用,因此在系统用户中添加tss用户。

sudo useradd --system --user-group tss
  1. 进入软件目录并进行配置查询。

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

cd tpm2-tss
./bootstrap
./configure --prefix=/usr
# 或 多个测试选项
# ./configure --prefix=/usr --enable-unit --enable-integration 
# sudo make check
sudo make install
sudo ldconfig

注 进行单元测试和集体测试需要而外添加依赖项,包括lcov、cmocka等如图
tpm模拟器与新版tpm2-tss\abrmd\tools安装_第5张图片

tpm2-abmrd安装

cd tpm2-abrmd/

./bootstrap

./configure ./configure --with-dbuspolicydir=/etc/dbus-1/system.d --with-udevrulesdir=/usr/lib/udev/rules.d --with-systemdsystemunitdir=/usr/lib/systemd/system --libdir=/usr/lib64 --prefix=/usr # 设置安装配置
  • 在设置安装配置中
  1. –with-dbuspolicydir=/etc/dbus-1/system.d选项,这样可以将tpm2-abrmd声明到系统总线上,允许tss账户声明该策略。
  2. –with-systemdsystemunitdir=/lib/systemd/system:将tpm2-abrmd添加进系统引导
sudo make install # 执行安装
sudo ldconfig

sudo cp /usr/local/share/dbus-1/system-services/com.intel.tss2.Tabrmd.service /usr/share/dbus-1/system-services/ # 添加tpm2-abrmd进入系统服务

sudo pkill -HUP dbus-daemon # 重启DBUS
  • 修改位于/lib/systemd/system/tpm2-abrmd.service
  • 一删除一添加,如图
  • 删除:注释ConditionPathExistsGlob=/dev/tpm*,因使用tpm模拟器,而非真tpm硬件。
  • 添加:在ExecStart=/usr/local/sbin/tpm2-abrmd 后添加 –tcti=“libtss2-tcti-mssim.so.0:host=127.0.0.1,port=2321”
sudo vim /lib/systemd/system/tpm2-abrmd.service

tpm模拟器与新版tpm2-tss\abrmd\tools安装_第6张图片

  • 开启服务
systemctl daemon-reload
systemctl start tpm2-abrmd.service
service tpm2-abrmd status

tpm模拟器与新版tpm2-tss\abrmd\tools安装_第7张图片

tpm2-tools安装

cd tpm2-tools/
./bootstrap
./configure --prefix=/usr
make -j5
sudo make install

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

  • 测试tpm2-tools工具连接abmrd服务是否正常
tpm2_getrandom --hex 4 # 产生4位随机数,--hex表示以十六进制输出,避免输出乱码	
  • 打印
tpm2_pcrread sha1
  • tpm2-tools命令变化参考链接

你可能感兴趣的:(可信计算)