Actualmente estoy leyendo sobre el SGX de Intel, especialmente la parte de certificación remota. Tengo una pregunta sobre este tema.
Consideremos el siguiente protocolo:
Enclave A y B hacen atestación remota. Cada uno de ellos genera un par de claves asimétricas (sk_X, pk_X). Ellos intercambian las citas:
A -> B: QUOTE{pk_A}
B -> A: QUOTE{pk_B}
Consideremos que hay un atacante MitM, que intercepta las citas y las reenvía. ¿Es posible que el atacante lea las claves públicas o están cifradas de alguna manera? No pude encontrar la información adecuada en la documentación.
Encontré el siguiente documento: intel-sgx -desarrollador-guía
Una cita incluye los siguientes datos:
- Medición del código y los datos en el enclave.
- Un hash de la clave pública en el certificado ISV presentado en el momento de inicialización del enclave.
- La ID del producto y el Número de versión de seguridad (SVN) del enclave.
- Atributos del enclave, por ejemplo, si el enclave se está ejecutando en modo de depuración.
- Datos de usuario incluidos por el enclave en la parte de datos de la estructura del informe. Permite establecer un canal seguro vinculado al proceso de certificación remota, por lo que un servidor remoto puede proporcionar secretos a la entidad que se ha certificado
- Un bloque de firma sobre los datos anteriores, que está firmado por la clave de grupo EPID de Intel
Parece que todos podrían leer los datos. Para evitar un ataque MitM, los enclaves deben verificar el hash de la clave pública del ISV (proveedor de software independiente) y tal vez la ID del producto.