Confundido con VMware Encryption?


Si te confunden los términos o métodos usados con relación a vSphere Encryption, no estás solo; basta hablar de los acrónimos y es suficiente para enredarse un poco. Aquí intentare resumir cómo funciona la arquitectura y el proceso de cifrado o encripción en cuanto a VMware, como yo lo entiendo*.


Como en todo lo que publico, debo advertir que nada de lo que lees aquí es oficial ni proviene de mi empleador; yo puedo estar equivocado, aunque no es esa mi intención. Prefiero siempre dejar eso claro.

Para comenzar con el tema de cifrado o encripción, vamos a aclarar algunas de las siglas o acrónimos usados:

·
  KMS: Key Management Service Server. Servidor designado/conectado al vCenter, el cual generara claves de cifrado. KMS será de una compañía terciaria como HyTrust (HyTrust KeyControl), Dell (CloudLink), IBM (IBM Security Key Lifecycle Manager), entre otros. El siguiente link contine un listado:

· KEK: Key Encryption Key. Esta es la clave de cifrado (encryption key) generada por el KMS registrado al vCenter Server. La KEK reside en cada host ESXi – copiada a todos los nodos del clúster.

· DEK: Data Encryption Key. Estas claves de cifrado son generadas por los hosts ESXi y posteriormente encriptadas usando la KEK.



Como funciona el proceso de encriptación en VMware?

Cuando se inicia una tarea para encriptar una maquina virtual, el vCenter hace una solicitud por una nueva clave de cifrado al KMS registrado; dicha clave es la KEK y será usada para esta tarea. La KEK creada en este proceso tiene un ID, este ID es mantenido por vCenter y la clave en sí, es copiada a todos los nodos del clúster. vCenter no se queda con la clave, sino con el ID de la clave.
  
Posteriormente, el nodo ESXi donde se inició la tarea, en este caso, cifrar/encriptar una maquina virtual, forjará la clave de cifrado DEK que será usada para encriptar la VM y sus discos, si opcionalmente estos son encriptados. Recordemos que en vSphere, se puede elegir entre encriptar la VM solamente, lo cual encriptara el archivo VMX exclusivamente, y no los discos; ó encriptar la VM y uno o varios de los discos de la VM.

Una vez las claves de encriptación DEK son generadas por un ESXi, estas son guardadas directamente en la memoria del nodo (no en disco) y serán adicionalmente encriptadas usando las claves KEK que vinieron a través de vCenter desde el KMS. A continuación, el nodo ESXi encriptara la VM o sus discos utilizando la clave interna (DEK) encriptada.


Esto parece un trabalenguas, verdad?  KEK, DEK, KMS, encriptar una clave de encriptación, encriptar con una clave ya encriptada... QUE?!?!?  Válgame Dios!!!


A pesar de que fue un solo host que genero la clave para encriptar la VM, cualquier otro host en el clúster, puede correr la VM y des-encriptarla ya que como lo aclaramos antes, la clave KEK es copiada a todos los nodos y esto permitira que cualquiera de ellos pueda manipular y decifrar la maquina encriptada.


La acción de encriptar la clave DEK con la clave KEK dará una nueva clave como resultado, y con esta es que el archivo VMX o los VMDKs de los discos seran encriptados y el resultado guardado en dichos archivos (VMX o VMDK).



Algunos datos para tener presentes:

- Cifrado/encripción en vSphere es manejado a través de reglas de almacenamiento (Storage Policies).
-  No hay dependencia en cuanto a que sistema operativo tienen tus VMs, el tipo de almacenamiento de datos donde residen (NFS, vSAN, iSCSI, FC) o version de Virtual Hardware.
- Los clientes dentro de las VMs no tienen ningún acceso a las claves de cifrado. 
- vMotion de una VM encriptada es totalmente respaldado. ESXi 6.5 minimo.
- El cifrado ocurre a nivel del Hypervisor antes de que cualquier I/O llegue a disco.
- Una VM encriptada puede tener sus discos encriptados o no; todos o solo algunos, por ejemplo. Pero una VM no encriptada, no puede tener ninguno de sus discos encriptados.
- Para encriptar una VM, esta debe estar apagada y su poliza de almacenamiento cambiada. Cuando opcionalmente se quieren encriptar sus discos, tambien se cambia o aplica la poliza de almacenamiento y en el fondo el proceso es que un nuevo vmdk encriptado es creado y los contenidos son copiados del disco original; vSphere se encarga de este proceso.
- Importante: “Encrypted vMotion” no es lo mismo que “Encrypted VM”; tienen en común que para una maquina que fue encriptada, sus vMotions serán encriptadas por defecto.
- En una VM no encriptada, las opciones de vMotion encriptado son:

         - Disabled: Apagado
        - Required: Requerido, mandatorio. En este caso ambos nodos, el de origen y destino, deben corren ESXi 6.5 mínimo.
       - Opportunistic: Las vMotions son encriptadas siempre y cuando los nodos de origen y destino lo respalden (6.5 mínimo); sino, vMotion occure regularmente sin encripción.

Ay,ay,ay!!! Leyendo lo anterior, confieso que pude haber expandido cada termino mas y/o tratar de ser mas claro; admito que quizás redundé en varias ocasiones y usé “cifrado(a)” a veces y “encriptado(a)” en otras; todo lo escribí como mejor me sonada en mi cabeza en el momento, dependiendo de la frase – si soy honesto, ambas me suenan extraño ... jaja!


La meta como quiera es que alguien encuentre este corto resumen de ayuda para entender los términos y procesos de vSphere Encryption en general, o que de estar equivocado, me puedan aclarar en que punto.


Saludos!!


1 comment: