Frescura para los enclaves SGX

6

Los futuros procesadores Intel admitirán SGX (Software Guard Extensions), que permite ejecutar software crítico para la seguridad en su procesador de forma aislada del resto de código. El hardware proporciona un aislamiento seguro, por lo que otros códigos no pueden manipular el código crítico de seguridad que se ejecuta en el enclave SGX. Incluso el kernel del sistema operativo no es confiable y no puede manipular el código en el enclave SGX. El enclave en sí no tiene estado, pero hay una manera de guardar datos en el almacenamiento externo de forma segura: el hardware admite el almacenamiento sellado, donde los datos se cifran y se envían por MAC antes de escribirlos en el disco.

¿Hay alguna garantía de actualización de datos sellados? En otras palabras, me preocupa un ataque de reversión, donde un sistema operativo malintencionado intenta revertir el estado del enclave a un punto anterior en el tiempo: por ejemplo, compruebe el estado guardado, ejecute el enclave durante un tiempo y luego restaure. Regreso al punto de control. ¿Puede el código SGX defenderse contra tales ataques de retroceso? Si es así, ¿cómo?

    
pregunta D.W. 30.07.2015 - 21:09
fuente

2 respuestas

4

No, no directamente.

Como ha observado, SGX garantiza la frescura e integridad del estado transitorio en la memoria, pero no proporciona ningún mecanismo (como un contador monotónico) para garantizar la frescura del estado persistente. Por lo tanto, si solo desea confiar en SGX en la CPU local, no puede protegerse contra los ataques de retroceso del estado. La solución general a este problema es la comunicación con otra parte confiable que puede proporcionarle el mecanismo básico para garantizar la frescura. Eso podría ser una máquina / servicio confiable en el otro lado de una red, o podría ser algún otro hardware confiable como un TPM. En cualquier caso, debido a que se comunicará a través de un canal que no es de confianza, debe protegerlo (es decir, criptográfico). Si su carga de trabajo es una actualización pesada, también se encontrará con la disyuntiva entre mantener las escrituras mientras espera la comunicación con la parte de confianza en lugar de permitir una ventana para los ataques de retroceso.

    
respondido por el ab. 28.08.2015 - 06:43
fuente
1

SGX proporciona contadores monotónicos para evitar ataques de retroceso, pero no están disponibles en todas las máquinas. Intel aplica un límite de frecuencia a las operaciones de escritura para evitar que la memoria se agote, después de lo cual los contadores se vuelven inutilizables. Esto se indica en la documentación oficial .

  

Crear un contador monotónico (MC) implica escribir en el no volátil   Memoria disponible en la plataforma. Las operaciones de escritura repetidas podrían   causar que la memoria se desgaste durante el ciclo de vida normal de la   plataforma. Intel® SGX evita esto al limitar la velocidad a la que MC   Se pueden realizar operaciones. Si excede el límite, la operación MC   puede devolver SGX_ERROR_BUSY durante varios minutos.

Hay otros problemas según este documento ,

  • los contadores monotónicos son lentos,
  • se desgasta después de poco más de 1M de escrituras en sus pruebas (5 computadoras portátiles, una no es compatible con MC),
  • y tal vez peor, los contadores desaparecen si se retira la batería del BIOS o se reinstala el PSW. No se reinician, es como si nunca se hubieran creado para empezar.
respondido por el Daniel 03.11.2017 - 12:14
fuente

Lea otras preguntas en las etiquetas