¿La tecnología SGX de Intel (o similar) es la próxima gran novedad en computación segura?

tl; dr – Sí.


Nota:

  • Las abreviaturas de la tecnología Intel tienen el prefijo i.
  • Intel SGX se limita a los procesadores Intel de sexta generación (nombre en clave de arquitectura Skylake o posterior) debido a implementaciones de hardware.
  • LWN tiene una comparación bien escrita entre el enfoque de Intel y AMD para el cifrado de memoria [1]

Prefacio

Hay muchos detalles que estoy dejando de lado, pero espero que esta respuesta sea suficiente. Esta respuesta es una mirada de alto nivel a Intel Software Guard Extensions (iSGX) y no intenta explicar los detalles de implementación. Si desea obtener más información sobre iSGX, le recomiendo que vea el seminario de Frank Mckeen en la Universidad de Stanford [2] y, por supuesto, los documentos técnicos de Intel [3] (hay varios documentos de Intel que no figuran en la lista). Espero que la respuesta responda su pregunta lo suficiente.


Intel Instruction Set Extensions (que incluye iSGX e iMPX) es un avance significativo en lo que respecta a la computación segura y es una tecnología muy prometedora. iSGX sirve como un medio para que los desarrolladores ejecuten código y accedan a datos dentro de un contenedor seguro (llamado Enclave) en una máquina no confiable.

iSGX crea una región de memoria protegida encriptada dentro de DRAM para almacenar código / datos y aprovecha los cachés para realizar cálculos dentro de la CPU. Todo el código de enclave se ejecuta en el Anillo 3. Las principales vulnerabilidades de seguridad de iSGX son ataques de canal lateral (particularmente ataques de tiempo) que son introducidos por proveedores o desarrolladores de software independientes. iSGX es vulnerable a la falta de recursos debido a su aislamiento dentro de la CPU.

iSGX limita la Trusted Computing Base (TCB) solo a la CPU … y al motor de seguridad y administración (iME / iSME). iSGX consta de dos elementos principales: microcódigo y el Motor de cifrado de memoria (iMEE) que reside dentro del Controlador de memoria (MC) (que no debe confundirse con la Unidad de administración de memoria [MMU] que también reside en el núcleo). Al iMEE se le asigna una parte de la DRAM a la que tiene acceso exclusivo y administra todas las llamadas externas desde y hacia esa región y subregiones. Aprovecha el motor de seguridad y administración (iME / iSME [4]) a través del cargador de aplicaciones dinámicas (DAL) para aprovechar los componentes de la infraestructura (particularmente Intel Enhanced Privacy ID y criptografía).


Debido a la naturaleza dividida de la estructura de iSGX, la capacidad de enviar actualizaciones (microcódigo) a los procesadores “en el campo”, iSGX se muestra más prometedor en comparación con TrustZone, TPM + TXT, XOM, Aegis, Bastion y Sanctum / Phantom. Por supuesto, la comparación entre estas tecnologías debe tomarse con un grano de sal ya que cada una de ellas se implementa de manera diferente y comparar un sistema a prueba de manipulaciones físicamente endurecido con uno que no dependa del hardware es aparentemente injusto.

En SGX2 (que se lanzará más adelante este año), la asignación dinámica de memoria está disponible debido a la investigación conjunta entre Intel y Microsoft [5]. Sin embargo, esto introducirá algunas vulnerabilidades adicionales, pero los desarrolladores pueden mitigarlas si toman las precauciones necesarias.


Dado que iSGX tiene acceso a iME, puede aprovechar varias otras tecnologías de Intel, como Protected Audio Video Path (PAVP) (hay varios documentos que mencionan brevemente esta tecnología). Sin embargo, el acceso al público a estas funciones es muy poco probable ya que toda la investigación relacionada con estas tecnologías se realiza conjuntamente con Intel, con los asesores de Intel o por el propio Intel. Dicho esto, las interfaces controladas para estas tecnologías eventualmente deberían surgir en el mercado para que los desarrolladores las incorporen.


Me preocupa que iSGX desencadene un efecto cobra en el que el iME / iSME se ve comprometido ( una vez más …) o el iMEE se ve comprometido.

* La siguiente declaración excluye las tecnologías iSGX y es solo un comentario sobre el TCB.
Se está realizando una investigación muy interesante a este nivel (iME) y, aunque fascinante, es aterradora. Si se ve comprometido, la mayoría del malware que está en el campo no está avanzado (más profundo que el nivel del núcleo) y no deberíamos tener que preocuparnos por ver muchas implementaciones que lo hacen en la naturaleza (si es que podemos detectarlas).

Notas al pie

[1] Dos enfoques para el cifrado de memoria x86

[2] Seminario de Stanford – Frank Mckeen de Intel

[3] Biblioteca de recursos Intel® SGX

[4] Tecnología de seguridad integrada de plataforma revelada

[5] http://research.microsoft.com/pu…

Yo creo que si. La protección de datos en el cable está a cargo de tecnologías como IPSec VPN, DTLS, SSL. La protección de datos en reposo está a cargo de las tecnologías DMCrypt o LUKS-Disk-Encryption. La protección de datos en DDR mientras los programas la utilizan es algo que no se ha hecho hasta ahora. Se requiere protección de datos en DDR, especialmente en el mundo de la computación en la nube, donde los inquilinos no desean que sus proveedores de la nube analicen los datos que utilizan sus máquinas virtuales. La tecnología Intel SGx ayuda a proteger la pieza crítica de código de software y los datos de la exposición a los administradores del sistema de los nodos del servidor, protegiendo así los datos de los administradores del sistema comprometidos. Sin embargo, la tecnología Intel SGx no está disponible actualmente en los procesadores de servidor. Además, el uso de Intel SGx no es gratis. Requiere una cirugía significativa para sus aplicaciones a fin de garantizar que el rendimiento de su aplicación no se degrade. Si su aplicación está en el kernel de Linux o si su aplicación se extiende tanto a los procesos de espacio de usuario como al kernel, Intel SGx no es para usted. Intel SGx, según tengo entendido, solo puede funcionar en procesos de espacio de usuario y tampoco funciona realmente si su aplicación se extiende a través de múltiples procesos de espacio de usuario.