asterinas/trustflow-capsule-manager

TEEApps和capsule-manager之间的远程认证

Closed this issue · 4 comments

image
左侧是capsule-manager提供的grpc服务,右侧是TEEApps调用的部分。TEEApps生成ResultDataKey给到capsule-manager保存,这个过程不应该是TEEApps远程认证capsule-manager吗?看代码里面的Log怎么是TEEApps在生成attestation_report啊?

创建ResultDataKey的步骤中会有权限的继承关系,所以不是任何应用都可以向capsule manager注册结果密钥,只有具备源数据访问权限的teeapps才能注册计算结果的数据密钥。因此这边是capsule manager认证teeapps的attestation_report

创建ResultDataKey的步骤中会有权限的继承关系,所以不是任何应用都可以向capsule manager注册结果密钥,只有具备源数据访问权限的teeapps才能注册计算结果的数据密钥。因此这边是capsule manager认证teeapps的attestation_report

如果不对capsule manager进行认证,那没有办法保证ResultDataKey保存在了可信的capsule manager中,不会有问题吗

创建ResultDataKey的步骤中会有权限的继承关系,所以不是任何应用都可以向capsule manager注册结果密钥,只有具备源数据访问权限的teeapps才能注册计算结果的数据密钥。因此这边是capsule manager认证teeapps的attestation_report

如果不对capsule manager进行认证,那没有办法保证ResultDataKey保存在了可信的capsule manager中,不会有问题吗

这里做双向ra认证当然是更为安全的做法,您可以在这个步骤中添加。同时您可能需要额外添加一个配置文件用于配置capsule manager的平台和预期的度量值等信息。

我们只做了单向的认证,一方面是从便利性考虑,另一方面,前面步骤中teeapps已经从capsule manager获取到了它的证书和用于解密文件的数据密钥。 这个数据密钥在解密的时候已经证明是加密文件对应的数据密钥,否则解密会报错。
因此这个capsule manager我们认为它是持有源数据的数据密钥的,并且我们向他注册结果密钥时请求也用它的证书加密了。

Stale issue message. Please comment to remove stale tag. Otherwise this issue will be closed soon.