¿Se puede implementar un ataque man-in-the-middle (MITM), donde un tercer enclave intercepta mensajes y se hace pasar por uno de los enclaves, durante la autenticación local entre dos enclaves?
Un ataque man-in-the-middle no es posible porque un tercer enclave no puede interceptar los mensajes entre el enclave de origen y el enclave de destino.
En la autenticación local, los dos enclaves no se comunican directamente entre sí. En cambio, los enclaves se comunican utilizando canales cifrados a través de la aplicación no confiable como intermediario.
Lea la sección Autenticación local en la Guía de referencia para desarrolladores del SDK de Intel® Software Guard Extensions (Intel® SGX) para Windows* para obtener todos los detalles. La subsección Protected Channel Establishment (Establecimiento de canal protegido ) establece:
La aplicación inicia una sesión entre el enclave de origen y el enclave de destino realizando un ECALL en el enclave de origen, pasando el ID de enclave del enclave de destino. Al recibir el ID de enclave del enclave de destino, el enclave de origen realiza un OCALL en el código no confiable del núcleo que, a continuación, realiza un ECALL en el enclave de destino para intercambiar los mensajes necesarios para establecer una sesión mediante el protocolo ECDH Key Exchange*.
La referencia de desarrollador Intel SGX para Linux se encuentra en la carpeta Documentation de la versión más reciente del SDK de Intel® Software Guard Extensions para Linux*.