Intel SGX远程证明中的MRENCLAVE值如何工作?

时间:2019-12-07 18:58:12

标签: intel tee sgx

我想知道MRENCLAVE值在intel SGX远程证明中如何工作。我发现

  

“ MRENCLAVE可以唯一标识任何特定的安全区,因此使用安全区标识将仅对该安全区的实例限制对密封数据的访问。注意:安全区的不同内部版本/版本将产生不同的MRENCLAVE值。” (https://software.intel.com/en-us/blogs/2016/05/04/introduction-to-intel-sgx-sealing

据我了解,MRENCLAVE用于客户端检查从服务提供商接收到的MRENCLAVE与客户端生成的预期MRENCLAVE是否相同。如果没有,那么我们如何检查服务提供商是否在远程证明中执行了预期的代码和数据?

我的意思是,爱丽丝拥有安全区代码及其MRENCLACE(代码和数据的快照),然后请求鲍勃执行它。那么,爱丽丝如何检查鲍勃是否使用鲍勃发送的报价执行确切的预期代码?我以为MRENCLAVE可以做到

1 个答案:

答案 0 :(得分:1)

您可以实施远程证明,以证明飞地内部已进行了某种计算。

证明报告包含MRSIGNER字段和report_data字段,可以用任意数据填充。如前所述,第一个可用于验证安全区源代码。第二个可以用来证明飞地内部存在私钥。在安全区域内生成密钥对后,可以将公共密钥放在report_data字段中,并使用私有密钥对计算结果进行签名。

您会在How to implement FileUpload in embedded Jetty?

中看到完整的说明