TPM及TSS协议栈的安装使用

时间:2022-09-03 12:11:31

TPM及TSS协议栈的安装

标签: 可信计算。


目录

安装环境介绍

TPM及TSS安装

交互过程

测试代码

环境

  • ubuntu 16.04 ubuntu 14.04 ubuntu 12.04都可以,本人使用的是Ubuntu16.04

TPM 及TSS安装

  • 直接上干货吧

    - 下面是仿真环境软件包依赖关系图

    - 安装环境应该是由下至上按部就班的安装。

    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
  • 启动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//启动模块

      TPM及TSS协议栈的安装使用
  • 启动成功后的信息记录如下
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及TSS协议栈的安装使用

  • 启动TPM后新开一个终端,输入指令sudo tcsd -e -f 启动tss
  • 启动成功后如下图:



    TPM及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是否正常使用

TPM及TSS协议栈的安装使用

  • 使用gcc指令进行编译,-l去链接需要使用到的库,生成可执行文件。
    • 例如:我有一个test.c文件需要编译。可以使用gcc test.c -o exp -ltspi
    • 大概的意思就是链接tspi编译test.c 生成 一个可执行文件exp
  • 注意不同的代码,需要链接的库可能不一样所以-l后面跟的库名根据代码而定。

关于测试代码:

[安装中遇见的问题参考我的这一篇博客](http://www.cnblogs.com/hpl20155329/p/8586362.html)

[TPM交互看这篇博客](http://www.cnblogs.com/hpl20155329/p/9013003.html)

还有就是参考老师的实验指导书。

初学可信 若有错误之处 ,请大佬们指出。

TPM及TSS协议栈的安装使用的更多相关文章

  1. linux tpm 测试完整记录,亲测有效。

    没有tpm芯片,采用模拟器的方式来测试. 实验环境:内核版本 3.10.0-327 软件包准备: 内网,没有仓库,自己网上下载: 1. cmake-3.9.6-Linux-x86_64.tar.gz ...

  2. 【TPM】tpm搭建基础指南

    pm君第一次通过各种摸索,成功搭建了tpm模拟环境,本篇博客记录了如何去搭建tpm模拟环境,希望能给大家一些帮助. 参考资料(推荐看) ubuntu下安装TPM模拟器 --成功步骤:参考至第2节-安装 ...

  3. vTPM环境部署(ubuntu)

    注:1.系统:ubuntu16.04LTS2.ISO镜像:/home/huanghaoxiang/ubuntu-server.iso3.IMG路径:/home/TPM-Machine4.Login: ...

  4. [蓝牙] 2、蓝牙BLE协议及架构浅析&&基于广播超时待机说广播事件

    第一章 BLE基本概念了解 一.蓝牙4.0和BLE区别   蓝牙4.0是一种应用非常广泛.基于2.4G射频的低功耗无线通讯技术.蓝牙低功耗(Bluetooth Low Energy ),人们又常称之为 ...

  5. tmux resurrect 配置

    概述 tmux 用了很长时间了, 快捷键定制了不少, 唯一的遗憾是没法保存 session, 每次关机重开之后, 恢复不到之前的 tmux session. 虽然也能忍受, 但是每天都手动打开之前的 ...

  6. cc2650-cc2640蓝牙开发准备手记

    1.安装  ti关键库,首先BLE 协议栈,安装那种协议栈,首先你要用哪种库(源代码,官方例子基于哪种用哪个就会好,不然会出现不兼容), 2.然后安装flash_programmer2(有1,.2个版 ...

  7. 【蓝牙】蓝牙,调试 hcitool与gatttool实例

    Bluez协议栈在安装完以后,会提供两个命令行调试工具,hcitool与gattool,我们可以根据提供的工具来轻松的调试我们的蓝牙设备,调试BLE设备时,需要获取root权限. 蓝牙设备的开启与关闭 ...

  8. NS3网络仿真(7): Wifi节点

    快乐虾 http://blog.csdn.net/lights_joy/ 欢迎转载,但请保留作者信息 在上一节中.我们仿真了一个总线型网络,这一节尝试将上一节中的n0变成一个无线的AP.再连上几个节点 ...

  9. Centos7编译安装Xen环境(vtpm)

    编译xen环境(http://www.lvtao.net/server/574.html#comment-1882): yum update yum groupinstall "Develo ...

随机推荐

  1. jsp富文本图片和数据上传

    好记性不如烂笔头,记录一下. 2016的最后一天,以一篇博客结尾迎接新的一年. 此处用的富文本编辑器是wangEditor,一款开源的轻量级的富文本编辑器,这里着重说一下里面的图片上传功能. 服务器端 ...

  2. DAY5 python内置函数+验证码实例

    内置函数 用验证码作为实例 字符串和字节的转换 字符串到字节 字节到字符串

  3. Java是如何读取和写入浏览器Cookies的

    首先我们认识下什么是cookies: cookie实际上是一个存在你硬盘里的数据,但是这些数据很特殊,只能由web应用提交给浏览器帮助存储,并且我们还能读取浏览器存在本地的cookie web应用一般 ...

  4. input上传按钮 文字修改办法

    解决思路是把input 放在文字的上边,弄成透明的,这样在点文字时,实际是点击了input,这样就实现了文件的上传. 具体代码: <style> #uploadImg{ font-size ...

  5. 【OpenStack】OpenStack系列17之OpenStack私有云设计一

    [软件系统] 1.操作系统(Minimal最小化安装): CentOS-6.6-x86_64,CentOS 6最后一个版本,官方建议版本. 相对于6.5版本: 强化对 SCSI 设备的处理,有助应付某 ...

  6. NPOI导出word,以及对table的一些设置

    参考网址:http://www.aiuxian.com/article/p-1970779.html NPOI版本:2.1.3.1 最终效果图: 代码: /// <summary> /// ...

  7. jsconsole

    在移动设备或者其他无法启动 chrome developer tools 的时候可以用以下方法进行console 步骤: 1. 进入 http://jsconsole.com 的console画面,在 ...

  8. cms中if标签的使用

    <#if order.EnFriendly ?? && order.EnFriendly==1> <td class="text-center"& ...

  9. HTML——JAVASCRIPT练习题——图片轮播

    方法一: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3 ...

  10. Java学习笔记——鸵鸟学习记(三)

    8,对象的创建与销毁 a, 构造方法——在构造对象的时候同时传入相关的属性 用于构造对象的方法(当创建对象时调用的方法) 规则:1)方法名与类名相同 2)无返回值 package my; public ...