Los centros de datos son ordenadores del tipo servidor que a diario manejan grandes cantidades de información confidencialidad que de filtrarse a terceros con intenciones maliciosas pueden ocasionar un desastre de proporcionales bíblicas. Es por ello que se suelen implementar tecnologías como Infinity Guard de AMD para sus CPU EPYC.
Los llamados centros de datos o datacenters no se suelen encontrar en los hogares, sino en empresas que manejan una gran cantidad de datos y los necesitan para su trabajo diario. Así pues en tu banco existe uno, posiblemente en el hospital de al lado de tu casa e incluso en las grandes empresas de cada sector.
Por lo que proteger los datos no solo es importante, sino también el funcionamiento remoto, ya que muchos de ellos dan acceso a varios usuarios a su contenido y rendimiento. Esto lo hacen en máquinas virtuales que se ejecutan remotamente en el servidor, lo que ayuda a tener seguros los datos en el mismo. Aunque no olvidemos que esto significa que a nivel de servidor se tienen que implementar una serie de medidas de seguridad.
Hacerlo a nivel de software resulta mucho menos eficiente que hacerlo en cuanto a hardware, y es aquí donde entramos en la solución de AMD para sus CPU EPYC, el llamado Infinity Guard que realmente se basa en el uso de ciertas tecnologías de hardware. Veamos, por tanto, en que se basa y cómo funciona.
¿Qué es AMD Infinity Guard?
Para empezar hemos de aclarar que no se trata de ninguna pieza de software relacionada con alguna función exclusiva del procesador. Tampoco se trata de una pieza de hardware en concreto que reciba tal nombre. Más bien Infinity Guard se basa en una serie de modificaciones en elementos ya existentes de la CPU con tal de ampliar la seguridad y la integridad de los datos en el servidor.
Las CPU AMD EPYC se basan en dos elementos dentro del procesador, el primero es AMD Secure Processor que se encuentra dentro del Northbridge o SDF del procesador. Esta microcontrolador es la pieza de hardware con el nivel de privilegio más alto de todos los componentes de la unidad a la hora de acceder tanto a la RAM como a los periféricos y se encarga entre otras cosas de entregar funcionalidades de encriptación de datos, generación de claves y manejo de las mismas.
El segundo elemento es un sistema de encriptación de datos en formato AES-128 que se encuentra en el controlador de memoria o IMC, el cual se encarga de encriptar y desencriptar los datos cuando se le provee de la clave necesaria. Existen hasta 8 códecs de encriptación y desencriptación en total, uno por cada canal de memoria que utiliza el procesador. Este cambio no es pequeño, ya que de realizarse directamente desde la CPU no solamente sería menos seguro, sino que además requeriría de la potencia de varios núcleos, no olvidemos que hablamos de decenas de gigabytes encriptados por segundo en cuanto a ancho de banda.
Estos cambios son exclusivos de la gama de procesadores para servidor y centros de datos de AMD y no los podemos encontrar ni en sus procesadores Ryzen para portátiles y escritorio y tampoco en los Threadripper para estaciones de trabajo.
¿Cómo funciona?
El AMD Secure Processor de las CPU EPYC ejecuta una serie de medidas de seguridad con tal de garantizar la seguridad de los datos y no entregarle el control del datacenter a una máquina virtual que se esté ejecutando con intenciones maliciosas. En combinación con el controlador de memoria y la encriptación AES-128 ejecuta siempre las siguientes medidas de forma transparente tanto al sistema operativo como a las aplicaciones.
- Cuando el sistema es iniciado internamente genera una clave de uso privado, la cual se genera en el Secure Processor y se transmite al controlador de memoria para que encripte toda la información del sistema. Esto se realiza sin participación alguna del sistema operativo y de modo totalmente transparente al mismo.
- Cada máquina virtual que se ejecuta en el servidor no solo se ejecuta de manera aislada, sino que tiene su propia clave. Así pues, los datos que cada una de ellas maneja solo pueden ser aquellos encriptados con su clave. Esto evita que tengan acceso al espacio de memoria del hipervisor, lo que sería contraproducente para la seguridad.
- Cuando se cierra una máquina virtual en un servidor con CPU EPYC de AMD lo que hace es encriptar la información los registros de la CPU y desde el Secure Processor ejecuta un chequeo del estado de estos para comprobar que no se haya hecho una operación ilegal.
Además, el controlador de memoria lleva un registro de todas las direcciones físicas a las que han accedido las diferentes máquinas virtuales en el servidor. Lo cual le da fortaleza contra los llamados ataques del tipo Return-Oriented Programming. Los cuales son extremadamente comunes en entornos donde el acceso a la RAM está estrechamente protegido y vigilado.
Transparente al sistema operativo
El Infinity Guard de los AMD EPYC al funcionar de manera totalmente transparente y realizar todas su funciones a nivel de hardware no requiere que sea el sistema operativo haga ninguna tarea, es más, el Secure Processor y el controlador de memoria integrado trabajan codo con codo para que el procesador central ni tan siquiera tenga que intervenir en los diferentes procesos de Infinity Guard.
Por lo que independientemente de si el servidor utiliza GNU/Linux, Windows o incluso algún sabor de los Unix BSD como sistema operativo el Infinity Guard siempre estará funcionando. De la misma manera, tampoco es necesario usar las aplicaciones para beneficiarse del mismo. Eso sí, es necesario activarlo en la BIOS del servidor para que funcione, ya que no viene activo de serie.
En conclusión, se trata de una serie de medidas de seguridad a nivel de hardware que AMD implementa en sus CPU AMD EPYC y que han sido diseñadas para la mayor seguridad posible en un centro de datos. Lo cual es un punto que no tiene importancia para un usuario de PC convencional, pero si a nivel empresarial y estatal donde se manejan datos totalmente sensibles.