tpm2-tools相关实验

文章目录

  • 系统背景
  • 实验一:利用hash 函数生产文件度量值
  • 实验二 利用tpm实现对文件的加解密
  • 实验三:利用TPM实现对文件进行签名,实现对文件完整性认证。

系统背景

  1. 操作系统:Ubuntu 18.04.4 LTS
  2. tpm模拟器:ibmtpm 1332
  3. tpm协议栈中:tpm2-tss 2.1.0
  4. tpm守护进程:tpm2-abrmd 2.0.2
  5. tpm2 tools 3.x

注:旧版的tpm2-tools命令与tpm2-tools4.0以上命令有所不同,其中变换参考链接 https://build.opensuse.org/package/view_file/openSUSE:Factory/tpm2.0-tools/tpm2.0-tools.changes?expand=0

实验一:利用hash 函数生产文件度量值

  1. 利用tpm2-tools命令,对数据文件生成hash值并修改文件进行对比。
tpm2_hash -H e -g sha1 -o hash.bin -t ticket.bin data.txt
  1. 利用命令tpm2_hash对data.txt进行度量,其中利用sha1哈希算法,生成哈希文件为hash.bin。之后,将data.txt文件进行修改,重新测试,结果显示hash值不同。

  2. 实验步骤图和结果图
    tpm2-tools相关实验_第1张图片
    文件修改前后 hash值不同;

实验二 利用tpm实现对文件的加解密

  • 为了能够在不可信的存储上安全存储数据,利用tpm可信根,生成加密秘钥来对数据进行加密。利用模拟器实现整个加解密过程。

  • 操作过程:

  1. 利用takeownership实现对TPM所有权访问认证设置。利用TPM拥有权来实现证明现有身份验证机密的知识来对所有权进行身份验证。其中-o 为作为所有者密码,-e为认可密码,-l为锁定密码。
tpm2_takeownership -o 1 -e 2 -l 3
  1. 创建主键对象,以使用创建的对象生成秘钥。利用-K后参数11作为对象密码,其秘钥为RSA秘钥且哈希函数为SHA256。并将对象保存在文件po.ctx。其中-p后为认可密码。
tpm2_createprimary -H e -K 11 -g 0x000b -G 0x0001 -C po.ctx -P 2
  1. 在主键背景下,创建一个RSA秘钥,产生公钥和私钥。-p为主键的对象密码,-K为子类密码,这里设置为11。公钥保存在key.pub中,私有秘钥存为key.priv。
tpm2_create -c po.ctx -P 11 -K 111 -g 0x000b -G 0x0001 -u key.pub -r key.priv
  1. 利用tp2_load命令使用认证秘钥加载创建的RSA秘钥,生成秘钥加载的对应信息obj.ctx。
tpm2_load -c po.ctx -P 11 -u key.pub -r key.priv -n key.name -C obj.ctx
  1. 利用tpm2_rsaencrypt加密函数利用创建的秘钥对文件进行加密,生成加密文件data.encrypt
tpm2_rsaencrypt -c obj.ctx -o data.encrypt test.txt
  1. 最后利用tpm2_rsadecrypt解密函数对加密的输出进行解密,生成解密后的文件data.decrypt。
tpm2_rsadecrypt -c obj.ctx -I data.encrypt -P 111 -o data.decrypt
  1. 实验步骤和截图

    创建主键对象
    生成RSA秘钥并显示RSA秘钥信息
    加载RSA秘钥

利用RSA秘钥对文件进行加解密

实验三:利用TPM实现对文件进行签名,实现对文件完整性认证。

  1. 利用takeownership实现对TPM所有权访问认证设置。
tpm2_takeownership -o 1 -e 1 -l 1
  1. 创建主键对象。
tpm2_createpriimay -H e -K 11 -g 0x000b -G 0x000a -C po.ctx -P 1
  1. 生成RSA秘钥。
tpm2_create -c po.ctx -P 11 -K 111 -g 0x000b -G 0x0001 -u key.pub -r key.priv
  1. 利用tp2_load命令使用认证秘钥加载创建的RSA秘钥,生成秘钥加载的对应信息obj.ctx。
tpm2_load -c po.ctx -P 11 -u key.pub -r key.priv -n key.name -C obj.ctx
  1. 生成消息文件。
echo “my message”>message.dat
  1. 使用tpm2_sign利用加载的RSA秘钥对消息文件进行签名。生成签名文件sig.rssa。
tpm2_sign  -c obj.ctx -P 111 -g 0x000b -s sig.rssa -m message.dat
  1. 使用tmp2_verfysignature函数对文件和签名信息的一致性进行确认。
tpm2_verfysignature -c obj.ctx -g 0x000b -m message.dat -s sig.rssa -t tk.sig
  1. 实验步骤和过程

在这里插入图片描述

tpm2-tools相关实验_第2张图片

你可能感兴趣的:(可信计算,tpm2-tools)