• 【TPM】tpm搭建基础指南


    pm君第一次通过各种摸索,成功搭建了tpm模拟环境,本篇博客记录了如何去搭建tpm模拟环境,希望能给大家一些帮助。

    参考资料(推荐看)

    准备

    1.有一个Ubuntu环境的虚拟机

    我用的虚拟机是VMware Workstation,Ubuntu镜像用的是官网上的。

    2.搭建tpm所需的安装包

    大家可以先下好安装包再进行搭建

    搭建步骤

    1.安装m4

    在终端输入命令sudo apt-get install m4

    2.安装CMake

    cmake安装包

    (1)解压:tar -zxf cmake-XXX.tar.gz

    (2)安装:

    cd cmake-XXX
    ./bootstrap
    make
    sudo make install
    
    • 参考其中的Readme.txt文件

    3.安装GNU MPlibrary

    GNU MPlibrary安装包

    (1)解压:tar -jxf gmp-XXX.tar.bz2

    (2)安装:

    ./configure
    make
    make check
    sudo make install
    
    • 参考其中的INSTALL文件

    4.安装TPM_emulator

    Tpm_emulator安装包

    (1)解压:unzip master.zip

    (2)安装:

    cd tpm-emulator-master/
    mkdir build;
    cd build
    cmake ../
    make
    sudo make install
    
    

    【试验】初始化、启动TPM_emulator

    (1)初始化tpm:

    tpmd deactivated
    killall tpmd
    tpmd clear    
    

    **(2)启动tpm: **

    sudo depmod -a
    sudo modprobe tpmd_dev
    sudo tpmd -f -d
    
    • 如果成功,会不断打印:Debug: waiting for connections…

    5.安装TSS协议栈

    5.1 安装trouser

    trouser安装包

    (1)解压:

    mkdir  trousers
    cd trousers
    tar -xzvf trousers-XXX.tar.gz 
    

    (2)安装依赖(参考安装包里的README):

    Packages needed to build:
      automake > 1.4
      autoconf > 1.4
      pkgconfig
      libtool
      gtk2-devel
      openssl-devel >= 0.9.7
      pthreads library (glibc-devel)
    
    

    这些都是建议安装的,我参考的是【Ubuntu 16.10 / 树莓派3 安装TPM_emulator】,使用的命令是:apt-get install -y automake1.9 autoconf2.64 pkgconf pkg-config libtool gtk2-engines openssl

    (3)编译安装前的修改:

    • 我们需要把它的tddl库改成tpm_emulator提供的库,
    • tpm_emulator提供的库的路径为:/usr/local/lib/libtddl.so
    • 大家可以看一下自己的libtddl.so是不是在这里
    • 我们需要修改以下两个文件:

    ./src/tcsd/Makefile.am文件

    第四行:

    tcsd_LDADD=${top_builddir}/src/tcs/libtcs.a ${top_builddir}/src/tcs/libtddl.so -lpthread @CRYPTOLIB@  
    

    修改为:

    tcsd_LDADD=${top_builddir}/src/tcs/libtcs.a /usr/local/lib/libtddl.so -lpthread @CRYPTOLIB@
    

    ./src/tcsd/Makefile.in文件

    第55,56行:

    tcsd_DEPENDENCIES = ${top_builddir}/src/tcs/libtcs.a 
        ${top_builddir}/src/tddl/libtddl.a
    

    修改为:

    tcsd_DEPENDENCIES = ${top_builddir}/src/tcs/libtcs.a 
        /usr/local/lib/libtddl.so
    
    • 注:该版本文件夹中没有bootstrap,因此省略sh bootstrap.sh步骤

    (4)编译安装:

    ./configure
    make
    sudo make install
    

    5.2 安装tpm_tools

    sudo apt-get install tpm-tools

    【试验】启动tcsd

    (1)先开一个终端,启动TPM_emulator(上文有):

    sudo depmod -a
    sudo modprobe tpmd_dev
    sudo tpmd -f -d
    

    (2)再开一个终端,启动tcsd:
    sudo tcsd -e -f

    • 别关,接着试验一下tpm_tools是否安装成功

    【试验】tpm_tools是否安装成功

    在上一个试验的基础上,再开一个终端,输入如下命令测试运行:

    在/usr/sbin目录下有3个关于tpm的命令运行如下
    cd /usr/sbin
    ./tpm_version      #查看版本号
    ./tpm_getpubek   #查看ek公钥
    ./tpm_takeownership   #获取owner
    

    如果以上试验都成功了,那么恭喜你,TPM模拟环境已经完全构建成功了~

    如果大家想体验一下使用该环境,可以参考【Ubuntu 16.10 / 树莓派3 安装TPM_emulator】的第6节:与TPM_emulator交互 来进行尝试

  • 相关阅读:
    PHP全部手册
    你必须收藏的GitHub技巧
    PV和并发
    api接口
    LeetCode 14. 最长公共前缀
    LeetCode 1037. 有效的回旋镖
    LeetCode 242. 有效的字母异位词
    LeetCode 151. 翻转字符串里的单词
    LeetCode 22. 括号生成
    LeetCode 面试题05. 替换空格
  • 原文地址:https://www.cnblogs.com/protectmonarch/p/8629428.html
Copyright © 2020-2023  润新知