Ubuntu 安装 TPM-2.0 TSS 软件栈
本文更新于2018-08-11
手动编译 TPM2.0-TSS
sudo apt-get install -y git-coregit clone --branch=1.x --depth=1 https://github.com/tpm2-software/tpm2-tss.git
pushd tpm2-tss
wget http://ftpmirror.gnu.org/autoconf-archive/autoconf-archive-2017.09.28.tar.xz
tar xJf autoconf-archive-2017.09.28.tar.xz
cp autoconf-archive-2017.09.28/m4/ax_code_coverage.m4 m4/nproc=4
./bootstrap && ./configure && make -j$(nproc)
make install DESTDIR=$HOME/my-tpm2-tss-installation-dir
popd
Ubuntu 17.04 PC机 或 Ubuntu Snap 嵌入式开发板下如何借助 snapcraft 编译安装 TPM2.0-TSS
sudo apt-get install -y git-core snapcraftgit clone --depth=1 https://git.launchpad.net/~snappy-hwe-team/snappy-hwe-snaps/+git/tpm2cd tpm2
snapcraftsnap try
ls ~/tpm2/prime/sbin
如何编译 TPM Simulator (532版本)
# 以ibmtpm532版本为例(本方法仅x86能编译通过)
wget https://downloads.sourceforge.net/project/ibmswtpm2/ibmtpm532.tar
sha256sum ibmtpm532.tar | grep -q ^abc0b420257917ccb42a9750588565d5e84a2b4e99a6f9f46c3dad1f9912864f
mkdir ibmtpm532
tar axf ibmtpm532.tar -C ibmtpm532
make "CC=gcc -Wno-tautological-compare" -C ibmtpm532/src
后台运行编译好的 TPM Simulator
ibmtpm532/src/tpm_server &
树莓派自带openssl.h版本不允许src/CpriHash.c创建EVP_MD_CTX实例
# ibmtpm974存在另一个bug, 当本机为32位树莓派开发板时无法编译报错openssl宏定义为64位
wget https://downloads.sourceforge.net/project/ibmswtpm2/ibmtpm974.tar.gz
sha256sum ibmtpm974.tar.gz | grep -q ^8e45d86129a0adb95fee4cee51f4b1e5b2d81ed3e55af875df53f98f39eb7ad7
mkdir ibmtpm974
tar axf ibmtpm974.tar.gz -C ibmtpm974
make -C ibmtpm974/src
Ubuntu 17.04 x86_64 环境下编译 TPM2-TSS 1.x 分支共生成以下文件
- TSS 动态连接库libsapi(必须安装), 主要包括3个so文件: libsapi.so libtcti-device.so libtcti-socket.so
合计约160KB
usr/lib/
└──x86_64-linux-gnu├── [ 16B] libsapi.so.0 -> libsapi.so.0.0.0├── [119KB] libsapi.so.0.0.0├── [ 23B] libtcti-device.so.0 -> libtcti-device.so.0.0.0├── [ 15KB] libtcti-device.so.0.0.0├── [ 23B] libtcti-socket.so.0 -> libtcti-socket.so.0.0.0└── [ 19KB] libtcti-socket.so.0.0.0
- TSS 开发包libsapi-dev(包括头文件和静态库, 只需开发者安装在交叉编译环境下)
usr/include/
├──sapi
│ ├── [ 54KB] implementation.h
│ ├── [ 60KB] sys_api_part3.h
│ ├── [1.9KB] tpm20.h
│ ├── [3.9KB] tpmb.h
│ ├── [ 12KB] tss2_common.h
│ ├── [4.5KB] tss2_sys.h
│ ├── [6.6KB] tss2_tcti.h
│ └── [136KB] tss2_tpm2_types.h
├──tcti
│ ├── [1.8KB] common.h
│ ├── [1.9KB] tcti_device.h
│ ├── [2.9KB] tcti_socket.h
│ └── [1.5KB] tcti-tabrmd.h
└──tss2└── [2.8KB] tabrmd.h
开发者辅助工具包(用于调试 TPM 模块, 可选择是否安装到目标机): tpm2-tools
其中每个独立的工具均可在命令行下执行, 每个可执行文件大小约为 30KB, 合计约 1MB.
组合起来使用是很强大的组合使用tpm2-tools中的四条命令测试RSA公钥加密
usr/sbin
├── [ 34K] tpm2_activatecredential
├── [ 30K] tpm2_akparse
├── [ 34K] tpm2_certify
├── [ 35K] tpm2_create
├── [ 34K] tpm2_createprimary
├── [ 30K] tpm2_encryptdecrypt
├── [ 30K] tpm2_evictcontrol
├── [ 43K] tpm2_getmanufec
├── [ 39K] tpm2_getpubak
├── [ 34K] tpm2_getpubek
├── [ 30K] tpm2_getrandom
├── [ 30K] tpm2_hash
├── [ 30K] tpm2_hmac
├── [ 34K] tpm2_listpcrs
├── [ 30K] tpm2_listpersistent
├── [ 30K] tpm2_load
├── [ 30K] tpm2_loadexternal
├── [ 30K] tpm2_makecredential
├── [ 34K] tpm2_nvdefine
├── [ 30K] tpm2_nvlist
├── [ 30K] tpm2_nvread
├── [ 30K] tpm2_nvreadlock
├── [ 30K] tpm2_nvrelease
├── [ 30K] tpm2_nvwrite
├── [ 34K] tpm2_quote
├── [ 29K] tpm2_rc_decode
├── [ 30K] tpm2_readpublic
├── [ 30K] tpm2_rsadecrypt
├── [ 30K] tpm2_rsaencrypt
├── [ 34K] tpm2_sign
├── [ 34K] tpm2_takeownership
├── [ 30K] tpm2_unseal
└── [ 35K] tpm2_verifysignature
软件仿真器IBM Software TPM2.0 Simulator
英特尔 TPM2.0-TSS 源码包提供了几个脚本, 快速下载并编译 IBM 开源的仿真器 tpm_server
make simulator
make simulator-start
TPM2.0 的资源管理器守护进程
resourcemgr 是老版本的资源管理器, 虽然接口简陋但作为开发工具还是够用了. 英特尔官方已经不再维护这个工具的源代码.
tabrmd 是新版本的资源管理器, 但想要正确的从源码编译她并不容易, Ubuntu和Debian目前(2017年)都还没有deb格式的安装包可用. 我只能从源码编译她. 暂时不将她作为我们的首选工具.
TPM 资源管理器守护进程 tpm2-abrmd (运行在目标开发板上, 可选安装), 包括可执行文件、内部动态库、配置文件以及man手册:
合计约占用 1.3MB 硬盘空间
usr
├──sbin
│ └── [620KB] tpm2-abrmd
├──lib
│ ├── [ 23B] libtcti-tabrmd.so -> libtcti-tabrmd.so.0.0.0
│ ├── [ 23B] libtcti-tabrmd.so.0 -> libtcti-tabrmd.so.0.0.0
│ ├── [680KB] libtcti-tabrmd.so.0.0.0
│ ├──systemd/system
│ │ └── [ 347B] tpm2-abrmd.service
│ └──udev/rules.d
│ └── [ 111B] tpm-udev.rules
├──etc/dbus-1/system.d
│ └──[ 546B] tpm2-abrmd.conf
└──share└──man├──man3│ └── [3.7KB] tss2_tcti_tabrmd_init.3├──man7│ └── [ 932B] tcti-tabrmd.7└──man8└── [2.9KB] tpm2-abrmd.8
另外, 有下列基础软件包(动态库so文件)需要安装到目标机, 资源管理器tabrmd在目标机运行时依赖他们的存在:
gobject-2.0(libgobject-2.0.so或libgobject-2.0.a)
glib-2.0(libglib-2.0.so或libglib-2.0.a)
gio-unix-2.0(libgio-2.0.so或libgio-2.0.a)
上述静态库以及头文件位于 libglib2.0-dev 开发包
最后, 下列开发包需要开发者安装到Ubuntu交叉编译环境
/usr/bin/gdbus-codegen
位于 libdbus-1-dev 开发包
sudo apt-get install libglib2.0-dev
sudo apt-get install libdbus-1-dev
或fedora下
yum install glib2-devel glib2-static
yum install dbus-devel
英飞凌 TPM2.0 评估板
这个国内无能力生产, 欧洲限制对华出口. 必须求助海外代购绕道才能夹带回国内.
树莓派 3 Model B 开发板
很便宜, 树莓派裸板只需要¥300元不到. 国内到处可以买
Secure96 是一款支持 TPM2.0 规范的安全扩展板,可作为服务器、物联设备、工控等领域的硬件加密卡,有效保障系统和数据传输的安全性,能够满足不同行业开发者的个性化需求。http://www.hihope.org/product/Secure96
下一篇:
- 《树莓派Linux内核编译选项如何开启TPM 2.0》http://www.jianshu.com/p/174844b99716
Ubuntu 安装 TPM-2.0 TSS 软件栈相关推荐
- Ubuntu安装MySQL 8.0 - APT(结尾附视频)
写在前面:博主是一只经过实战开发历练后投身培训事业的"小山猪",昵称取自动画片<狮子王>中的"彭彭",总是以乐观.积极的心态对待周边的事物.本人的技 ...
- Linux/ubuntu 安装 redis 4.0报错解决:redis-server.service: Can't open PID file /var/run/redis/redis-server.
此文首发于我的个人博客:Linux/ubuntu 安装 redis 4.0报错解决:redis-server.service: Can't open PID file /var/run/redis/r ...
- ubuntu安装微信,QQ等软件
ubuntu安装微信,QQ等软件 1.添加仓库 2.安装微信只需要运行下面的命令 3. 安装QQ 其他一些软件 1.添加仓库 首次使用时,你需要运行如下一条命令将移植仓库添加到系统中. wget -O ...
- acrobat linux 下载地址,在ubuntu安装Adobe Acrobat7.0
在ubuntu安装Adobe Acrobat7.0 发布时间:2007-03-17 01:11:11来源:红联作者:Gpoyinsnbo 首先,安装Adobe Reader吧.在"sudo ...
- 通过TSS软件栈使用TPM——获取并改变TPM寄存器-学习笔记1
实验使用TPM_Emulator代替TPM硬件,原理是一样的.(学习网站:http://blog.csdn.net/buaa_shang/article/details/26157253) 1.登录系 ...
- centos/Ubuntu安装python3.7.0安装mysql5.7/5.6
Python3.7 1. 下载安装所需要的包,不然安装时或者以后使用python时报错 yum install -y libffi-devel zlib-devel bzip2-devel opens ...
- Ubuntu安装MySQL及一些其他软件出现问题
今天尝试在Ubuntu上安装MySQL,但出现了以下问题: 正在读取软件包列表... 完成 正在分析软件包的依赖关系树 正在读取状态信息... 完成 将会同时安装下列软件:apport libsqli ...
- Ubuntu 安装 Tomcat 7.0.40
来源:http://www.cnblogs.com/rayz/archive/2013/05/20/3089302.html 因为源上的版本问题,所以没有使用源上的自动安装包,老规矩,Tomcat 7 ...
- ubuntu安装Kubernetes1.20.0
一.概述 由于业务需求,需要安装版本比较高的k8s,比如:1.20.0 二.环境介绍 操作系统:ubuntu-18.04.6-server-amd64 配置:2核3g ip地址:192.168.1.1 ...
最新文章
- GoF23种设计模式之行为型模式之解释器模式
- python数据库模糊查询_python中数据库like模糊查询方式
- [NPUCTF2020]Baby Obfuscation [HDCTF2019]MFC
- 计算机设备间使用面积,【IBE】综合布线设计中的常用计算公式
- Python实训day12pm【答辩要求、定时器】
- linux指向域同步时间,linux在局域网下设置时间同步
- 主叫号码未显示怎么设置_微信未授权抖音,应该怎么设置?
- 安装容器编排工具 Docker Compose
- java栈编程题_Java实现栈和队列面试题
- iPad Air PSD设计模板
- 计算机知识竞赛的策划案,计算机趣味知识竞赛活动策划书
- fn1-call-call-fn2-面试题
- 青年与计算机比赛,我市首届青少年电脑机器人竞赛精彩上演
- linpack测试软件,【分享】linpack ——intel的pc算力测试软件
- OAS正式开放注册,元宇宙链游掘金时代震撼来袭
- C++读取netcdf文件
- 安装某考试软件提示MDAC没有安装或者出错
- 关于Linux和Windows一个对比
- HDU6287 口算训练(唯一分解定理+二分)
- 推荐一个超好用的免费屏幕录制软件
热门文章
- 日期格式转换,正则匹配后转换;指定时间增加天数加转格式;js时间转换格式
- 暗影之枪显示连接服务器失败,暗影之枪传奇进不去怎么办?游戏更新进不去问题详解[多图]...
- java 累进计费率计算_税点点分享第198期:案例解答个人所得税的计算公式
- 快速生成CSS样式语法(HTML、CSS)
- AWT_方位布局(Java)
- Angular自定义管道(过滤器)方法
- ReactNative 使用SectionList时出现一个黄色警告VirtualizedList:missing keys for items解决方法
- git之配置在Terminal显示git分支
- Ubuntu 14.04/16.04 (使用apt-get进行安装) 安装Docker
- vbS访问mysql语句_关于VBS连接MySQL与连接Excel