TPM及TSS协议栈的安装使用
TPM及TSS协议栈的安装
标签: 可信计算。
目录
安装环境介绍
TPM及TSS安装
交互过程
- 编写代码测试TPM是否可用
- 编写代码测试TSS是否可用
- [对编译指令的一点说明](#10)
测试代码
环境
ubuntu 16.04
ubuntu 14.04
ubuntu 12.04
都可以,本人使用的是Ubuntu16.04
TPM 及TSS安装
- 直接上干货吧
- 下面是仿真环境软件包依赖关系图
- 安装环境应该是由下至上按部就班的安装。
软件包下载百度网盘 提取码1tug
安装步骤
安装libgmp
- step one:使用
sudo apt-get install m4
安装m4 - 在百度网盘上下载
gmp6.1.2
- (1)./configure
- (2)make
- (3)make check
- (4)sudo make install
安装TPM_emulator
- 进入之前百度网盘下载的
tpm-emulator-master
文件夹下
- (1)mkdir build
- (2)cd build
- (3)cmake ../
- (4)sudo make
- (5)sudo make install
//需要权限复制文件 - 初始化TPM
- (1)tpmd deactivated
- (2)killall tpmd
- (3)tpmd clear
- 启动TPM
- (1)depmod -a
- (2)modprobe tpmd_dev
- (3)tpmd -f -d
安装TSS协议栈
- 养成好习惯,安装使用别人的东西之前,先看README文档,可以减少很多麻烦
安装依赖:
Packages needed to build:
automake > 1.4
autoconf > 1.4
pkgconfig
libtool
gtk2-devel
openssl-devel >= 0.9.7
pthreads library (glibc-devel)
- 使用````sudo apt-get install 软件包名````挨个安装这些依赖的安装包
- 使用````sudo apt-get install libssl-dev````安装openssl_dev
进入之前下载的
trousers0.3.14
- (1)
./configure
- (2)
make
- (3)
sudo make install
- (1)
启动TSS 使用
sudo tcsd -e -f
启动tss
安装tpm-tools
- 使用指令
sudo apt-get install tpm-tools
这里需要等几分钟。
-如果出现fail可能是tcsd没有跑起来,最简单的解决办法就是重启,然后重新启动TPM TSS,重新使用指令sudo apt-get install tpm-tools
- 查看是否安装成功
在/usr/sbin目录下有3个关于tpm的命令运行如下
cd /usr/sbin
./tpm_version #查看版本号
./tpm_getpubek #查看ek公钥
./tpm_takeownership #获取owner
TPM交互
- 安装完
TPM
以及TSS
还有tpm tools
后。 Step one:
启动TPM:- 使用指令
sudo depmod -a
//分析可载入模块的相依性 - 使用指令
sudo modprobe tpmd_dev
//加载模块 - 使用指令
sudo tpmd -f -d
//启动模块
- 使用指令
- 启动成功后的信息记录如下
aaronhoo@aaronhoo:~/tpm/tpm-emulator-master$ sudo tpmd -f -d
tpmd.c:523: Info: starting TPM Emulator daemon (1.2.0.7-475)
tpmd.c:102: Info: parsing options
tpmd.c:109: Debug: debug mode enabled
tpmd.c:228: Info: installing signal handlers
tpmd.c:387: Info: staring main loop
tpmd.c:302: Info: initializing socket /var/run/tpm/tpmd_socket:0
tpmd.c:401: Debug: initializing TPM emulator
tpm_emulator_extern.c:101: Info: _tpm_extern_init()
tpm_emulator_extern.c:104: Debug: openening random device /dev/urandom
tpm_cmd_handler.c:4113: Debug: tpm_emulator_init(2, 0x00000000)
tpm_startup.c:29: Info: TPM_Init()
tpm_testing.c:243: Info: TPM_SelfTestFull()
tpm_testing.c:39: Debug: tpm_test_prng()
tpm_testing.c:69: Debug: Monobit: 9948
tpm_testing.c:70: Debug: Poker: 11.3
tpm_testing.c:71: Debug: run_1: 2487, 2525
tpm_testing.c:72: Debug: run_2: 1280, 1299
tpm_testing.c:73: Debug: run_3: 672, 617
tpm_testing.c:74: Debug: run_4: 302, 295
tpm_testing.c:75: Debug: run_5: 139, 145
tpm_testing.c:76: Debug: run_6+: 156, 155
tpm_testing.c:77: Debug: run_34: 0
tpm_testing.c:111: Debug: tpm_test_sha1()
tpm_testing.c:157: Debug: tpm_test_hmac()
tpm_testing.c:184: Debug: tpm_test_rsa_EK()
tpm_testing.c:186: Debug: tpm_rsa_generate_key()
tpm_testing.c:191: Debug: testing endorsement key
tpm_testing.c:197: Debug: tpm_rsa_sign(RSA_SSA_PKCS1_SHA1)
tpm_testing.c:200: Debug: tpm_rsa_verify(RSA_SSA_PKCS1_SHA1)
tpm_testing.c:203: Debug: tpm_rsa_sign(RSA_SSA_PKCS1_DER)
tpm_testing.c:206: Debug: tpm_rsa_verify(RSA_SSA_PKCS1_DER)
tpm_testing.c:210: Debug: tpm_rsa_encrypt(RSA_ES_PKCSV15)
tpm_testing.c:214: Debug: tpm_rsa_decrypt(RSA_ES_PKCSV15)
tpm_testing.c:218: Debug: verify plain text
tpm_testing.c:221: Debug: tpm_rsa_encrypt(RSA_ES_OAEP_SHA1)
tpm_testing.c:225: Debug: tpm_rsa_decrypt(RSA_ES_OAEP_SHA1)
tpm_testing.c:229: Debug: verify plain text
tpm_testing.c:261: Info: Self-Test succeeded
tpm_startup.c:43: Info: TPM_Startup(2)
tpmd.c:412: Debug: waiting for connections...
编写一个测试程序,测试TPM是否正常使用
- 启动TPM后新开一个终端,输入指令
sudo tcsd -e -f
启动tss - 启动成功后如下图:
- 新开一个端口,设置授权,授权方式由编写的代码中的参数决定
tpm_takeownership setup an owner on the system's TPM (via the TPM_TakeOwnership API). This operation requires the TPM to be enabled and can be restricted by tpm_setownable. The command will prompt for owner and SRK passwords and confirmations of these if executed without either of the -well-known options, otherwise, a secret of all zeros is set for the requested password. After the second confirmation, be patient as the command may take awhile.
-h, --help
Display command usage info.
-v, --version
Display command version info.
-l, --log [none|error|info|debug]
Set logging level.
-u, --unicode
Use TSS UNICODE encoding for passwords to comply with applications using TSS popup boxes
-y, --owner-well-known
Set a secret of all zeros (20 bytes of zeros) as the owner's secret.
-z, --srk-well-known
Set a secret of all zeros (20 bytes of zeros) as the SRK secret.
启动成功后,编写一个测试程序,测试TSS是否正常使用
- 使用
gcc
指令进行编译,-l
去链接需要使用到的库,生成可执行文件。- 例如:我有一个
test.c
文件需要编译。可以使用gcc test.c -o exp -ltspi
- 大概的意思就是链接
tspi
编译test.c
生成 一个可执行文件exp
- 例如:我有一个
- 注意不同的代码,需要链接的库可能不一样所以
-l
后面跟的库名根据代码而定。
关于测试代码:
- TPM的测试代码老师会给
- TSS 测试代码看这里
[安装中遇见的问题参考我的这一篇博客](http://www.cnblogs.com/hpl20155329/p/8586362.html)
[TPM交互看这篇博客](http://www.cnblogs.com/hpl20155329/p/9013003.html)
还有就是参考老师的实验指导书。
初学可信 若有错误之处 ,请大佬们指出。
TPM及TSS协议栈的安装使用的更多相关文章
- linux tpm 测试完整记录,亲测有效。
没有tpm芯片,采用模拟器的方式来测试. 实验环境:内核版本 3.10.0-327 软件包准备: 内网,没有仓库,自己网上下载: 1. cmake-3.9.6-Linux-x86_64.tar.gz ...
- 【TPM】tpm搭建基础指南
pm君第一次通过各种摸索,成功搭建了tpm模拟环境,本篇博客记录了如何去搭建tpm模拟环境,希望能给大家一些帮助. 参考资料(推荐看) ubuntu下安装TPM模拟器 --成功步骤:参考至第2节-安装 ...
- vTPM环境部署(ubuntu)
注:1.系统:ubuntu16.04LTS2.ISO镜像:/home/huanghaoxiang/ubuntu-server.iso3.IMG路径:/home/TPM-Machine4.Login: ...
- [蓝牙] 2、蓝牙BLE协议及架构浅析&&基于广播超时待机说广播事件
第一章 BLE基本概念了解 一.蓝牙4.0和BLE区别 蓝牙4.0是一种应用非常广泛.基于2.4G射频的低功耗无线通讯技术.蓝牙低功耗(Bluetooth Low Energy ),人们又常称之为 ...
- tmux resurrect 配置
概述 tmux 用了很长时间了, 快捷键定制了不少, 唯一的遗憾是没法保存 session, 每次关机重开之后, 恢复不到之前的 tmux session. 虽然也能忍受, 但是每天都手动打开之前的 ...
- cc2650-cc2640蓝牙开发准备手记
1.安装 ti关键库,首先BLE 协议栈,安装那种协议栈,首先你要用哪种库(源代码,官方例子基于哪种用哪个就会好,不然会出现不兼容), 2.然后安装flash_programmer2(有1,.2个版 ...
- 【蓝牙】蓝牙,调试 hcitool与gatttool实例
Bluez协议栈在安装完以后,会提供两个命令行调试工具,hcitool与gattool,我们可以根据提供的工具来轻松的调试我们的蓝牙设备,调试BLE设备时,需要获取root权限. 蓝牙设备的开启与关闭 ...
- NS3网络仿真(7): Wifi节点
快乐虾 http://blog.csdn.net/lights_joy/ 欢迎转载,但请保留作者信息 在上一节中.我们仿真了一个总线型网络,这一节尝试将上一节中的n0变成一个无线的AP.再连上几个节点 ...
- 安装Windows11操作系统(不需要绕过TPM检测脚本等) - 初学者系列 - 学习者系列文章
Windows11操作系统是去年微软公司的最新力作.对于该操作系统的安装,网上有很多的教程了.这次主要写的是不需要绕过TPM检测操作安装Windows11操作系统. 1. 制作启动U盘: ...
随机推荐
- 排错-Ad Hoc Distributed Queries组件被禁用的解决办法
Ad Hoc Distributed Queries组件被禁用的解决办法 by:授客 QQ:1033553122 SQL Server 阻止了对组件 'Ad Hoc Distributed Queri ...
- css字体更小 css比12px更小的方法
<span style="margin-top: 0;-webkit-transform-origin-x: 0;-webkit-transform: scale(0.90);&quo ...
- 安卓测试【一】android sdk环境变量配置
移动应用自动化测试的配置,先于官网下载Android SDK,然后配置环境变量. 配置android sdk环境变量 1. 新建ANDROID_HOME环境变量,变量值为SDK解压的路径 2. 追加 ...
- [Android] 布局优化技巧
看了一些关于优化布局的资料,了解了很多平时不怎么注意的问题,于是把资料整理了一下,一部分内容是翻译来的,一部分是自己理解加上的.每部分内容都有demo,有些资料里的demo比较好的,我就直接拿来用了: ...
- Httprunner学习
一.简介 HttpRunner 是一款面向 HTTP(S) 协议的通用测试框架,只需编写维护一份YAML/JSON脚本,即可实现自动化测试.性能测试.线上监控.持续集成等多种测试需求. 核心特性: 继 ...
- 解决JBoss只能通过localhost访问不能通过IP的问题
前序 现在EJB是真的有点落伍了么,网上找点资料都挺难的样子,而且都是很久的了..好吧,最近对EJB有点兴趣学习一下,结果下载到服务器启动后,居然不能直接通过服务器IP访问,也是醉了,默认只能通过本地 ...
- HTTP的cookie
HTTP cookies,通常又称作"cookies",已经存在了很长时间,但是仍旧没有被予以充分的理解.首要的问题是存在了诸多误区,认为cookies是后门程序或病毒,或压根不知 ...
- No module named 'MySQLdb' Python3 + Django 2.0.3 + mysql 无法连接
问题概览: 学习Django连接mysql数据库的时候遇到了问题 首先安装mysql(Python 3不支持MySQL-python): pip install pymysql 进入编辑 settin ...
- c语言:复合文字
复合文字的意义,相当于是在C语言中,为数组类型定义了一种类似于8之于int,'w'之于char一样的常量类型,所以从C99之后,可以在一些地方使用复合文字来代替数组使用. 复合文字的声明 (]){,, ...
- arrayfun用法(转)
http://blog.sina.com.cn/s/blog_7cf4f4460101bnhh.html 利用arrayfun函数可以避免无谓的循环,从而大大提高代码的简介性.1.A=ARRAYFUN ...