最近有一个搭建vTPM环境的需求,在网上搜寻了很多相关的资料,但网上的资料所提供步骤比较繁琐。经过多次试验,我成功地在arch linux上运行了tpm2 simulator,遂将步骤记录下来,方便为今后的进一步实验作参考。
实验环境
Linux发行版 - arch linux
内核版本 - 5.19.5(当前最新)
安装相关软件
得利于强大的pacman,我们不需要编译任何东西就能在arch linux上运行起tpm simulator!
sudo pacman -S ibm-sw-tpm2 tpm2-abrmd tpm2-tools tpm2-tss
ibm-sw-tpm2是一个tpm模拟包,对应的二进制文件为tpm_server。一个代替方案是swtpm。
abrmd是系统守护进程,它实际上由TPM Access Broker (TAB) 和Resource Manager组成。TAB负责同步控制,防止多个进程同时访问一个共享的TPM;同时TAB也能够防止进程访问不属于他们的TPM资源(如TPM会话、对象、hash和event序列等)。而Resource Manager的任务只要是对TPM有限的资源进行管理,就像操作系统的虚拟内存管理器一样。当执行某条指令时,RM将TPM内不需要的资源换出,换入命令所需的资源。
tpm2-tss提供了与tpm交互的api。
tpm2-tools则是一些利用tpm的工具(猜测应该是基于tpm2-tss实现的)。
运行tpm simulator
sudo tpm_server &
sudo -u tss tpm2-abrmd --tcti="libtss2-tcti-mssim.so.0:host=127.0.0.1,port=2321" &
第一条命令默认在127.0.0.1:2321上启动tpm服务;第二条命令以tss用户身份开启abrmd服务,管理127.0.0.1:2321上的tpm服务。
测试
tpm2_pcrread #打印PCR
tpm2_getrandom --hex 4 #生成4个16进制表示的随机字节
标签:TPM,simulator,tpm,tpm2,linux,tss
From: https://www.cnblogs.com/yuxiayizhengwan/p/16643544.html