我知道SGX有可用的SSL库。但是,如何在不让主机知道的情况下在SGX与客户端之间建立秘密呢?琐碎的方法失败,例如:
具有内置在SGX中的公钥-私钥对,然后客户端将会话密钥发送到SGX。会话密钥由SGX的公共密钥加密。
这不起作用,因为主机可以直接从已编译的SGX enclave可执行文件获取私钥。
在SGX中运行https服务器无法解决问题,这还因为SGX与客户端之间没有身份验证或预共享的秘密。
您正在寻找的称为“(远程)证明”。此过程用于验证编译的安全区域是否未被篡改,并且(远程)节点确实是您期望的那个节点。
作为证明步骤的一部分,您可以与飞地安全地交换信息(也许是会话密钥)。