繁体   English   中英

为什么我们在 DH 安全 session 建立中需要发起者或响应者的飞地身份?

[英]Why we need the enclave identity of initiator or responder in DH secure session establishment?

我正在使用 sgx_dh API 开发一个 sgx 应用程序。 工作流程可以总结如下(这里的两个角色分别是dh_initiator,简称dh_i,以及dh_responder,即dh_r。):

step0:在dh_i和dh_r端启动session;

step1:dh_r生成包含g_a的msg1并将msg1发送给dh_i;

step2:dh_i处理msg1,生成包含g_b的msg2,并将msg2发送给dh_r;

step3:dh_r处理msg2并生成msg3,包括对共享密钥的确认,然后将msg3发送给dh_i;

step4:dh_i 处理 msg3。 DH 密钥交换完成。

在step3中,dh_r将output一个sgx_dh_session_enclave_identity_t type的变量,以便dh_i在step4中输出一个相同类型的变量。 根据 SGX Developer Reference,这两个变量用于 dh session 建立。

但我无法弄清楚它们将在哪里使用,因为它们是在密钥交换和飞地身份验证完成时生成的。

任何建议或提示表示赞赏,如果在这里有任何误解,请纠正我。 非常感谢~

提供这两个变量是为了明确您应该验证的值,以确保您与正确的 enclave 进行通信(您可以检查它们在 LocalAttestation 示例中的使用方式: https://github.com/intel/linux-sgx/blob /62b116c502b09b125db9acc965694d3ecff8e698/SampleCode/LocalAttestation/EnclaveInitiator/EnclaveMessageExchange.cpp#L133-L144 )。

它们不会在这里传递给 sdk 提供的 dh 交换协议的其他功能,您应该“手动”处理它们并定义自己的接受策略,然后再依赖建立的安全通道。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM