Llegamos a ustedes gracias a:



Reportajes y análisis

Cifrado basado en el hardware: Las rutas tomadas por IBM, Intel y AMD

[17/09/2020] Tenemos el cifrado para datos en movimiento y para los datos en reposo. Pero es difícil mantener cifrado un tipo de datos -los que están en uso. Para que una aplicación haga algo con los datos, como comprobar que un documento no tenga faltas de ortografía, por ejemplo, debe ser capaz de verlos.

Las soluciones basadas en software incluyen la conservación de los tokens y los formatos, la posibilidad de realizar búsquedas, el cifrado homomórfico (que permite operaciones matemáticas) y el cifrado multipartito. Estas son lentas, engorrosas y no funcionan para todos los casos de uso.

Lo que funciona son las protecciones basadas en hardware. Los smartphones ya las utilizan -enclaves seguros que permiten el procesamiento de datos de identidad y de pago de una manera que no es visible para el resto del dispositivo.

En los servidores empresariales esto se llama computación confidencial y se utilizan dos tipos. El más conocido es el SGX de Intel, un enclave seguro dentro de los chips de Intel que protege las aplicaciones y los datos mientras se usan. Estos enclaves son relativamente pequeños, y las aplicaciones deben ser rediseñadas o reescritas para aprovecharlos. Sin embargo, al mantenerlo pequeño, también se minimiza el riesgo potencial debido a una lógica de aplicación defectuosa.

El otro enfoque es utilizado por IBM en los chips S390 en los mainframes de su sistema Z y en los servidores LinuxOne, y por AMD en sus chips EPYC. Aquí, el enclave protegido es bastante más grande y puede contener no solo una aplicación, sino toda la máquina virtual en la que está. Eso significa que las aplicaciones no tienen que ser rediseñadas o reescritas para trabajar dentro del enclave.

Los proveedores de nubes están subiendo a bordo. Mientras que Amazon no ha salido con una solución basada en hardware todavía, Microsoft ha optado por ir con Intel SGX, y Google Cloud con AMD EPYC.

IBM S390: Elegido para las más altas exigencias de seguridad

La computación confidencial es relativamente nueva y los primeros en adoptarla tienden a ser las empresas de servicios financieros y otras con altos requisitos de seguridad. Tomemos, por ejemplo, Hex Trust, una empresa con sede en Hong Kong que ofrece custodia de grado bancario para activos digitales como las criptomonedas. "Necesitamos la misma infraestructura que tenemos hoy en día en los mercados financieros en los criptográficos, comenta Rafal Czerniawski, director técnico de Hex Trust. Czerniawski trabajó anteriormente en la industria de servicios financieros.

El espacio de la criptomoneda ha sido acosado por una ola de violaciones y pérdidas de alto perfil y vergonzosas en los últimos años. "Si las grandes instituciones van a adoptarlo, necesitaremos la misma infraestructura, especialmente en custodia", indica Czerniawski. "Pero se oyen historias todo el tiempo sobre gente que pierde sus llaves o desaparece con ellas, o finge su propia muerte".

No basta con averiguar cómo guardar de forma segura unas cuantas claves criptográficas, sostiene Czerniawski. En la empresa, en grandes entornos institucionales, los clientes pueden tener cientos o miles de activos y diferentes blockchains. Incluso si una aplicación de gestión de claves fuera reescrita para encajar dentro de un enclave Intel SGX, eso no le da la capacidad de infraestructura para gestionar las claves. "¿Cómo se escala eso?", añade. "¿Cómo tener muchos servicios funcionando simultáneamente usando las mismas claves? Si mi máquina se cae, ¿cómo puedo reanudar el procesamiento en otro servidor? Necesitamos ejecutar el procesamiento de transacciones a escala".

También hay capas de autenticación criptográfica y políticas de seguridad aplicadas criptográficamente, como la lista blanca de direcciones a las que se pueden enviar las transacciones. "Ejecutar todo eso dentro del enclave seguro nos da mucha flexibilidad", señala Czerniawski.

IBM se trata de operar a escala, indica Czerniawski. Además, la tecnología está disponible tanto en las instalaciones como en la nube. "Probablemente, nuestros clientes quieran empezar de a pocos, con una prueba de concepto en la nube de IBM", añade, "y, a medida que su negocio crezca y la exposición al riesgo aumente, puedan hacer la transición a una solución local. Eso les da mucha flexibilidad".

El enclave seguro de IBM Z puede llegar a tener un tamaño de hasta 16 terabytes. "No tiene que elegir qué parte de la carga de trabajo quiere proteger", anota Rebecca Gott, distinguida ingeniera de IBM Z y LinuxOne, y la persona que lidera el desarrollo de blockchain y Z como un servicio a través de la nube de IBM. "Puede proteger todo a la vez. No se requiere ningún cambio de código, añade.

La forma en que funciona la tecnología es que cada enclave seguro tiene su propio conjunto de claves de cifrado que se utilizan para cifrar las comunicaciones dentro o fuera de este. El cliente de la empresa envía la aplicación, empaquetada dentro de una máquina virtual, junto con sus datos cifrados y las claves utilizadas para desbloquearla al enclave, a través de un canal seguro de cifrado.

La aplicación hace su trabajo dentro del enclave, a salvo de las miradas indiscretas de cualquier otra persona, incluidos los propios administradores de sistemas del proveedor de la nube. "Esa es una parte clave de nuestra propuesta de valor", anota Gott. "Nadie con credenciales de sistema, como los administradores de infraestructura, de hipervisor y de la nube, puede ver los datos o el software del usuario".

El envío de una máquina virtual completa crea una exposición adicional, e IBM se encarga de que cada enclave pase por un proceso de arranque seguro para asegurarse de que la imagen inicial no sea manipulada y que las claves de cifrado del enclave se establezcan en el momento de la fabricación de cada máquina. "El material de la clave de raíz nunca sale del módulo de seguridad del hardware", anota Gott. "La arquitectura subyacente tiene la mayor certificación de seguridad federal disponible para un procesador comercial. Esto significa que, si hay alguna manipulación física del dispositivo y es detectada, el material de la raíz se reducirá a cero en 100 nanosegundos".

Luego, para asegurar que la máquina virtual y la aplicación no se vean comprometidas, hay un proceso para que los clientes de la empresa carguen su código en un repositorio privado de GitHub donde puede ser verificado y firmado, señala Gott. "Así podrá estar seguro de que no haya ninguna manipulación en ningún lugar del pipeline. Conoce la procedencia del código y tiene todo un registro de auditoría y protecciones a lo largo de todo el proceso".

La computación confidencial basada en hardware de IBM Z es la que lleva más tiempo en el mercado, indica Charles King, analista principal de Pund-IT. Esta fue introducida por primera vez en el 2016, y ofrece un nivel de rendimiento más alto que la competencia. Al igual que otras tecnologías de mainframe Z, los enclaves seguros "están claramente diseñados para satisfacer las necesidades de seguridad más rigurosas de los clientes de las grandes empresas del sector", anota.

AMD apunta a la computación segura en la nube

Al igual que el enfoque de IBM, AMD también cifra todo el espacio de la memoria principal de una máquina virtual. Este apunta al mercado público de la nube con sus chips EPYC, señala King.

Esto la hace atractiva para las empresas nativas de la nube como la francesa iExec, que proporciona la infraestructura para permitir a las empresas ejecutar aplicaciones de blockchain basadas en la nube. "Alquilamos espacio de la nube de Google, lo reempaquetamos como blockchain y off-blockchain, y lo alquilamos a las empresas", señala Lei Zhang, jefe de seguridad de la iExec.

Google Cloud fue el primer proveedor público de nube que ofreció computación confidencial basada en AMD EPYC como una beta pública a mediados de julio. Por ejemplo, uno de los clientes de iExec es un hospital que quiere compartir sus datos médicos con empresas de investigación. "Los datos médicos son altamente sensibles, por lo que tenemos que garantizar la privacidad y la propiedad de los datos", comenta Zhang. Otro cliente está usando la plataforma para el renderizado de películas en 3D y "obviamente, no quiere que se filtre una escena", dice.

El enclave seguro de AMD EPYC es lo suficientemente grande como para que todo el proceso de renderizado se pueda ejecutar dentro de él. Las redes de blockchain son una forma confiable de manejar datos y algunos otros casos de uso, señala Zhang. "Los contratos inteligentes y algo de lógica de negocios se ejecutan directamente en el blockchain, pero hay un problema con la escalabilidad".

Ahí es donde entran los enclaves seguros. "No puede ejecutar algoritmos sofisticados como la IA directamente en redes de blockchain", comente Zhang. "Es costoso y poco eficiente. Por eso queremos descargar tales aplicaciones a las redes de off-blockchain, pero para eso debemos garantizar un nivel de confianza similar".

La computación confidencial permite a la compañía hacer justamente eso, indica Zhang. "Ni siquiera los administradores del servicio de Google Cloud pueden penetrar en esta máquina virtual segura para inspeccionar mis datos". Intel SGX no habría sido capaz de ejecutar una máquina virtual completa, señala. "Fue desarrollado para preservar las cargas de trabajo altamente sensibles pero pequeñas, los microservicios. La tecnología AMD está diseñada para servicios de infraestructura en la nube".

Al igual que con la plataforma de IBM Z, las aplicaciones se pueden ejecutar tal cual, añade Zhang. "No es necesario modificar el código fuente. Si desarrolla aplicaciones SGX basadas en el SDK de Intel, tendrá que hacer muchas modificaciones en el código de la aplicación. Es extremadamente doloroso".

El enclave seguro de la nube de Google no es tan grande como el de IBM, hasta 896 gigabytes. Pero, al igual que con IBM, el enclave tiene sus propias claves de cifrado, generadas por una combinación de hardware y software, que permite a los clientes de la empresa enviar sus cargas de trabajo al enclave.

"Los clientes pueden mantenerlo cifrado usando sus propias claves o usar la tecnología HSM [módulo de seguridad de hardware] de la nube para cifrar los datos cuando los traen a la nube", indica Nelly Porter, gerente senior de productos de Google Cloud. "La aplicación no necesita cambiar y esto es muy importante para nosotros".

Google había intentado usar enclaves seguros Intel SGX y buscaba formas de facilitar el proceso a los clientes, pero al final obligar a las empresas a rearmar sus aplicaciones era demasiado engorroso. El código fuente puede no estar disponible, e incluso con el código fuente abierto puede haber dependencias u otras razones por las que la aplicación no puede ser cambiada.

En su lugar, con el enfoque de AMD, solamente hay que cambiar el código del hipervisor para que funcione con el enclave seguro. "Solo hay un puñado de esos", anota Greg Gibby, director senior de marketing de productos de EPYC en Advanced Micro Devices. "Para Linux y para todas las grandes distribuciones eso ya está hecho y el código ha sido actualizado y aceptado por la comunidad, y añade que VMware se ha comprometido a habilitar esta tecnología con su próximo lanzamiento y que AMD está trabajando con otras firmas que tienen sus propios hipervisores.

Permitir que los hipervisores y las máquinas virtuales accedan al enclave amplía la superficie de ataque potencial, dicen los críticos. "El hipervisor tiene acceso", indica Gibby. "Si tuviera un hipervisor malicioso, hay formas de entrar en la máquina virtual".

Eso no significa que la superficie de ataque aumente, dice. "Todo el espacio de memoria está cifrado y utiliza una clave de cifrado a la que el hipervisor no tiene acceso. Así que en realidad reduce la superficie de ataque, no la expande".

Otras soluciones de seguridad en el entorno de producción protegerían contra este tipo de ataque, pero actualmente, la propia plataforma de AMD no protege contra los hipervisores maliciosos. Las protecciones están en la hoja de ruta de EPYC, señala, "pero no queríamos esperar. No queríamos dejar que lo perfecto fuera el enemigo de lo bueno."

Microsoft apuesta por Intel SGX

No todo el mundo está de acuerdo con el enfoque de AMD. Microsoft ha decidido apostar por Intel SGX y sus enclaves más pequeños. Según Mark Russinovich, CTO de Microsoft Azure, los enclaves de Intel SGX solo llegan a 256 kilobytes, una pequeña fracción de lo que AMD EPYC o IBM Z pueden ofrecer.

El beneficio para los clientes es que tienen una protección total contra el acceso lógico y físico -las únicas cosas en sus enclaves son lo que ellos ponen allí. "Un cliente puede instalar software y procesar datos sin depender de nada de Microsoft", señala Russinovich. "Proporciona niveles extremos de protección y seguridad".

Mientras que Intel SGX normalmente funciona en estaciones de trabajo más pequeñas, no en servidores como los de centros de datos con múltiples sockets, Microsoft ha trabajado con Intel para llevar SGX a sus centros de nube con servidores de un solo socket. "No hay duda de que es más fácil si es que puede lanzar una máquina virtual completa, pero eso crea una gran superficie que lo expone a los ataques de canal lateral", anota Russinovich.

Microsoft miró de cerca el enfoque de AMD, "pero decidió pasar debido a algunas de las limitaciones", señala Russinovich. Los clientes tienen que escribir código que sea consciente de que se está ejecutando dentro de Intel SGX, añade, "pero estamos trabajando en tecnologías, SDKs y herramientas para facilitar la entrada de software en esos enclaves".

Microsoft también está trabajando con el Consorcio de Computación Confidencial del que AMD, Google, Intel, Red Hat y Oracle también son miembros, y contribuyó con el Open Enclave SDK, que abstrae las diferencias entre los entornos informáticos de confianza. La base de datos SQL es compatible con Intel SGX, añade, de modo que, si una aplicación utiliza SQL para su trabajo más sensible, entonces el resto de la aplicación no tiene que ser reescrita para aprovechar el enclave.

El analista de Gartner, Steve Riley, confirma que Intel SGX requiere que se reescriba el código y el EPYC de AMD no. Las bases de datos Azure SQL pueden colocar información en enclaves sin ser modificadas, dice, "pero cualquier otra aplicación que se ejecute en instancias de computación ordinarias requerirá modificación".

La infraestructura de Open Enclave de Microsoft no es la única que está tratando de resolver este problema, señala Riley. Google tiene su propio enfoque, llamado Asylo. "Ninguno es un estándar declarado", señala, "y es poco probable que surja uno como estándar de facto".