该方案后面实践得出是错误的, 会报pcr_selection Invalid错误, 最后为每台计算机重装了包解决该问题
lab集群的配置
因为使用的afs分布式文件系统, 所以配置上需要做一些更改。
具体来说:
在试验阶段,因为root权限暂时无法获取,无法将tss安装在每台机器的根目录下。此外,同样是因为缺少root权限,配置文件无法写在每个机器的根目录下。因此,集群内所有的机器共用一个library,这个library装在 共享文件夹下,并在共享文件夹中创建每台机器对应的文件夹用于存放TPM数据。
在有了root权限之后, 通常来说, 每台计算机均应该安装library到根目录下。
而因为fapi需要keystore, 这个是每个机器无法共享的,所以每台机器的配置文件是不一样的。
1.修改配置文件中的fapi system路径
下面的配置文件为自动生成的配置文件:
{
"profile_name": "P_ECCP256SHA256",
"profile_dir": "/afs/project/local/etc/tpm2-tss/fapi-profiles/",
"user_dir": "~/.local/share/tpm2-tss/user/keystore",
"system_dir": "/var/lib/tpm2-tss/system/keystore",
"tcti": "",
"system_pcrs" : [],
"log_dir" : "/var/run/tpm2-tss/eventlog/"
}
其中 /afs/project
为共享目录
profile_dir
保持不变,也可以改变,这里面包含的是加密解密信息, 可能未来每台计算机的加密要求不一样,所以还是每台机器不共享吧
需要变动的是system_dir
与log_dir
这两块是每台机器均不一样的。
我的做法是在相应的文件夹下创建 tpm_machine/1~n/
个文件夹,用于区分不同的机器
以machine2 为例
因此改为
"profile_dir": "/afs/project/local/etc/tpm_machine/2/tpm2-tss/fapi-profiles/",
"system_dir": "/afs/project/local/var/lib/tpm_machine/2/tpm2-tss/system/keystore",
"log_dir" : "/afs/project/local/var/run/tpm_machine/2/tpm2-tss/eventlog/"
2.修改配置文件路径
从第一步可以看出, 每台机器的配置实际上是不一样的, system_dir
和log_dir
要变化,因此每台机器得有自己的与其他机器不同的配置文件
library读取配置文件是依靠一个特殊的环境变量TSS2_FAPICONF
比较好的选择是在共享文件夹的etc
目录下创建 tpm_machine/1~n/
个文件夹
假设 /afs/project
为共享目录
-export TSS2_FAPICONF="/afs/project/local/etc/tpm_machine/2/tpm2-tss/fapi-config.json"
之后,写好配置文件放在环境变量的目录下即可