弄了好久,终于对Tpm的seal 和 Unseal有了一点感觉:
一、 tpm_sealdata
tpm_seal有输入和输出,输入的文件是要保护的信息,输出的文件包括TSS key 、ENC key 和加密后的数据,且输出在一个文件中,-p 是banding的PCR值。
例如 :
dd if=/dev/urandom of=/home/temp_plain_key bs=2 count=32
tpm_sealdata -i /home/temp_plain_key -z -p 4 -p 8 -p 9 -p 12 -p14 -o /home/sealed_key
上述指令同样的条件下,每次输出的结果不同,因为密钥不相同,具体可以查看 sealed_key
二、 tpm_unsealdata
可以利用产生的sealed_key作为unseal的输入进行对操作的度量。
例如:
tpm_unsealdata -z -i /home/sealed_key | cryptsetup luksOpen
/dev/loop0 Secret
三、总之都这两个过程我只是有一点感悟,起码可以用了。 下面两个网址是操作的精华,有兴趣的可以参考:
http://hi.baidu.com/jinhua19840713/blog/item/e8f96b5b868f12c99d82043d.html