我正在使用 sgx_dh API 开发一个 sgx 应用程序。工作流程可以总结如下(这里的两个角色分别是dh_initiator,简称dh_i,以及dh_responder,即dh_r。):
step0:在dh_i和dh_r端发起会话;
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 会输出一个sgx_dh_session_enclave_identity_t type
变量,这样step4 的dh_i 就会输出一个同类型的变量。根据 SGX Developer Reference,这两个变量用于 dh 会话建立。
但我无法弄清楚它们将在哪里使用,因为它们是在密钥交换和飞地身份验证完成时生成的。
任何建议或提示表示赞赏,如果在这里有任何误解,请纠正我。非常感谢~