¡Las tecnologías de mejora de la privacidad y la informática confidencial son dos de mis temas favoritos para hablar! Tanto es así que estoy escribiendo esta publicación de blog en una soleada tarde de sábado. Pero espera, ¿te escucho susurrar? «¿Qué es la computación confidencial? ¿Cómo me afecta?» Esas son dos muy buenas preguntas.
Antes de entrar en detalles, supongamos que es el CISO de Palabs, una empresa líder en genómica que se especializa en secuenciación de ADN para ciudadanos curiosos dispuestos a verter saliva en pequeños recipientes y enviarlos al océano para su análisis. A cambio, su empresa les proporciona un informe de probabilidad basado en datos y respaldado por la ciencia que detalla de dónde probablemente vinieron sus antepasados (lo siento, abuela, ¡usted no es de Italia! Es posible que desee tomarse las cosas con calma con toda la pasta en este momento ).
¡Palabs nos permite ver con orgullo la conexión entre todos nosotros, al estilo de la ciencia de datos, escupir a la vez! Sin embargo, como CISO, ha estado perdiendo el sueño por la integridad y la confidencialidad del código y los datos del cliente para todas las cargas de trabajo de Palabs implementadas en la nube pública.
Usted comprende cuán confidenciales son los datos de sus clientes. Es personalmente identificable. Sería devastador si terminara en las manos equivocadas. No es solo la privacidad de sus clientes individuales la que está en riesgo, sino también la de sus hijos, padres, abuelos, hermanos, primos, tíos… Podría seguir y seguir, pero entiende la idea. Cualquier incumplimiento puede dañar la marca que su empresa ha invertido en construir a lo largo de los años. Por no hablar de la buena cotización de sus acciones, que ha ido aumentando constantemente en los últimos años.
seguridad en tiempo de ejecución (interna)
Para mitigar estos riesgos, decide realizar un seguimiento del recorrido de los datos de la carga de trabajo de la nube pública y protegerlos en todas las etapas:
- En tránsito: para enviar datos a la nube pública a través de una red insegura, solo puede usar protocolos seguros como TLS.
- En reposo: para almacenar datos de forma segura en el almacenamiento en la nube pública en reposo y en reposo, siempre los cifra con claves generadas y gestionadas por su empresa, además protegidos por un módulo de seguridad de hardware en la nube.
¿Seguro sobre la marcha? Controlar. Seguro para descansar? Controlar. Hasta aquí todo bien. Sin embargo, cuando es necesario calcular los datos, que es para secuenciar el ADN, su proveedor de nube pública debe descifrarlos primero y luego moverlos en texto claro desde el almacenamiento secundario del servidor a la memoria RAM intermedia del sistema. El cálculo de los datos es inevitable. Después de todo, esa es la razón por la que su empresa usa la nube: para aprovechar su elasticidad y los recursos informáticos masivos necesarios para la secuenciación del ADN.
Por desgracia, una vez en la memoria del sistema, su código y sus datos pueden verse comprometidos por software de nivel de sistema vulnerable o malicioso (SO, hipervisor, BIOS), posiblemente incluso al tener acceso físico o de administrador a la plataforma del proveedor Compromiso de permisos por parte de operadores de nube maliciosos.
Pero, ¿por qué la seguridad de una aplicación a nivel de usuario depende de la seguridad de su software de sistema subyacente? La razón radica en la jerarquía de los dispositivos básicos: el software del sistema privilegiado tiene acceso sin restricciones a todos los recursos de una aplicación de nivel de usuario sin privilegios porque controla su ejecución, memoria y acceso al hardware subyacente. De hecho, es una característica, no un error.
La falta de garantías de seguridad sobre la integridad y confidencialidad del código y los datos en tiempo de ejecución puede mantenerlo despierto por la noche como CISO. Entonces, ¿qué hacer ahora? Excepto por la meditación y la melatonina.
Bueno, ¡comencemos admitiendo que la seguridad en tiempo de ejecución es complicada! En el caso de Palabs, desea que la nube pueda analizar el ADN de su cliente sin necesidad de saber nada sobre el contenido de ese ADN en particular. Desea que el software del sistema privilegiado de la nube administre el ciclo de vida de la carga de trabajo sin comprometer sus garantías de seguridad. ¿Cómo puedo calcular los datos sin realmente mirar los datos? ¿Cómo puede esperar que un hipervisor vulnerable no comprometa la seguridad de las aplicaciones a nivel de usuario que ejecuta? Es un misterio fascinante, ¿no? ¡De hecho, es! Tanto es así que tiene nombre propio: Privacy Enhancement Technology, PET.
PET se puede definir como un conjunto de tecnologías que nos ayudan a resolver el conflicto entre la privacidad y la usabilidad de los datos. Hacen esto permitiéndonos calcular datos y obtener valor de ellos, al mismo tiempo que protegen su privacidad. Esto es diferente a las primitivas de cifrado tradicionales como AES (Advanced Encryption Standard), que solo nos permite mantener la confidencialidad de los datos, pero no puede realizar ningún tipo de operación sobre el texto cifrado. PET se puede implementar a través de métodos criptográficos como privacidad diferencial, cifrado homomórfico, computación segura de múltiples partes y pruebas de conocimiento cero, así como enfoques sistemáticos como Trusted Execution Environment (también conocido como Confidential Computing CC).
En este caso, el Consorcio de Informática Confidencial definición CC es un conjunto de tecnologías que nos permiten «proteger los datos en uso mediante la realización de cálculos en un entorno de ejecución confiable basado en hardware. Estos entornos seguros y aislados evitan el acceso no autorizado a aplicaciones y datos mientras están en uso. o modificaciones para mejorar la seguridad de organizaciones que gestionan datos confidenciales y regulados”.
¡Esta es la razón por la cual la computación confidencial es tan emocionante! Es aquí donde se aborda este desafío de la inseguridad del tiempo de ejecución. En lugar de tratar de hacer que todo el software del sistema sea seguro, la computación confidencial adoptó un enfoque simple y práctico para PET que solo funciona hoy.
Reconoce que el software del sistema es malicioso hoy o tiene el potencial de volverse malicioso en algún momento en el futuro. Como tal, considera que el entorno de ejecución que arranca no es de confianza y recomienda ejecutar sus cargas de trabajo sensibles a la seguridad en un entorno de ejecución de confianza (TEE) aislado donde las garantías de seguridad se pueden verificar de forma remota.
Para poder razonar sobre TEE y computación confidencial, necesitamos entender dos primitivos principales: 1) aislamiento y 2) atestación remota. Exploraremos cómo se diseñaron e implementaron en la segunda parte de esta serie de miniblogs. Manténganse al tanto.