SGXfail
SGXfail copied to clipboard
关于remoate attestation的疑问
远程认证
之后, challenger可以判定enclave是否可信, 下一步就建立可信通道传输隐私数据.
https://github.com/dingelish/SGXfail/blob/master/06.md 这里提到的:
在远程认证过程中,发送的report中可以包含用来创建可信通道的公钥数据。为了实现这个目的,在步骤三中enclave可能想首先去认证服务器,来保证它是从一个可信的实体受到的秘密。例如,一个好的根证书可以嵌入到enclave的代码或初始化数据中,允许enclave去验证服务器。一旦远程服务器被验证,enclave会生成一个短暂的公私钥并将它的公钥塞入report的用户数据部分。 当enclave完成远程认证的步骤七,服务器可以生成一个加密的公钥E,并将它用enclave的公钥P进行加密,将结果P(E)通过通道发送给应用。通道本身不需要安全保护,因为发送的秘密是加密的。 一旦P(E)被enclave的应用接收,它可以传递到enclave中。在enclave中,它将解密P(E),因为它持有私钥,所以目前无论远程服务器还是enclave都持有加密密钥E。
实际上这个步骤就是使用非对称算法加密对称秘钥,协商完成之后两边各持有同样的秘钥,用于加解密隐私数据
. 那么,sgx这里提到的安全通道和ssl链接的关系是什么? 为什么不通过公钥基础设施在远程验证成功之后建立ssl连接, 也可以达到同样的目的,而且不需要主动传递公钥证书啥的,直接使用ssl client和ssl server握手即可.