La seguridad de los datos, es una pieza básica para cualquier negocio. Desde el punto de vista de los clientes, porque les aporta confianza en la compañía, sabiendo que sus datos personales no andan por ahí accesibles a todo el mundo, y desde el punto de vista de las organizaciones, porque los datos son el pilar desde donde construir estrategias, planes, mediciones,… Por todo esto, disponer de una buena seguridad alrededor de los datos, se ha convertido en una necesidad en el sector empresarial.
Hemos aterrizado el tema del artículo de hoy, cómo securizar los datos en uso dentro de tus aplicaciones en la nube de Microsoft mediante Azure Confidential Compute. Para ello hablaremos de Trusted Execution Environment (TEEs) y Enclaves. Así podremos responder a la pregunta: ¿cómo proteger tu código y datos mientras están siendo procesados en memoria?
Pues bien, mediante TEEs creamos un entorno que nos habilita la posibilidad de trabajar en la memoria del servidor encapsulando los datos y el código confidencial para evitar así que personas no deseadas puedan acceder a dichos recursos. Es decir, es como si creara una Caja Negra.

¿Qué son los Enclaves? Son pequeñas regiones privadas de memoria, cuyo contenido está protegido y no puede ser leído y grabado por procesos externo a él. Por otro lado, el Enclave es desencriptado al vuelo dentro de la CPU y sólo los datos y código ejecutados dentro del Enclave lo pueden utilizar.

Pero, ¿cómo se implementa este tipo de soluciones? Esta nueva capacidad es fruto de la colaboración entre Intel y Microsoft y se habilita utilizando máquinas virtuales con la tecnología Software Guard Extensions (SGE)
Y como caso de uso, ¿dónde aplicarlo? A mí, se me ocurren uno muy interesante. En el caso de que estés usando Always Encrypted en Azure SQL., al tener encriptado el contenido de las columnas, no se pueden realizar queries complicadas. Especialmente, si el tipo de encriptado es Randomized.
Mediante esta tecnología se permite la ejecución de ese tipo de query, ya que permite la computación como texto plano. Es decir, es invisible para la propia Azure SQL, puesto que todo el proceso se realiza dentro de un Enclave. Esta nueva capacidad está disponible a partir de Azure SQL Server 2019 que usen software-backend enclaves (VSM), en el caso de Azure SQL Database aún está por llegar y se basan en hardware-backend enclaves (SGX).
Y ahora, ¿cómo lo pongo en funcionamiento? Desde el portal de Azure debes crear un nuevo recurso buscando por Confidential Computing y seguir los pasos habituales.
IMPORTANTE: Revisar bien las Regiones Azure en las que está disponible y tener presente que OPEN Enclave SDK ya está disponible tanto para Linux como para Windows, así podréis elegir el SO del servidor que mejor se adapte a vuestras necesidades.

Fuentes
- Reza Salehi. “Microsoft Azure Developer: Securing Data”. Julio, 2020.
- https://azure.microsoft.com/en-us/solutions/confidential-compute/
- https://openenclave.io/sdk/