Dónde se almacenan las claves de cifrado de KMS - Mecanismo de cifrado de sobre y HSM

Explicamos el mecanismo por el cual las claves maestras de KMS se almacenan dentro de HSM certificados FIPS 140-2, el diseño de protección doble de claves de datos con cifrado de sobre y el funcionamiento interno de la rotación de claves.

Las claves KMS no se almacenan en texto plano

Las claves de cifrado (claves KMS, anteriormente CMK) creadas con AWS KMS (Key Management Service) nunca se almacenan en texto plano en disco. El material de clave (los datos reales de la clave de cifrado) de una clave KMS solo existe en texto plano dentro de un HSM (Hardware Security Module) certificado FIPS 140-2 Level 3. Un HSM es un dispositivo de hardware dedicado al procesamiento criptográfico, diseñado para ser resistente a manipulaciones físicas. Incluso si se desmonta el dispositivo, el material de clave se destruye automáticamente. AWS opera clústeres de HSM en múltiples zonas de disponibilidad, y el material de clave se replica de forma cifrada entre HSMs para garantizar la durabilidad.

Cifrado de sobre - Por qué cifrar claves con claves

El núcleo del modelo de cifrado de KMS es el "cifrado de sobre" (Envelope Encryption). En lugar de cifrar los datos directamente con la clave KMS, primero se solicita a KMS la generación de una clave de datos (Data Key), se cifran los datos con esa clave de datos, y luego la propia clave de datos se cifra con la clave KMS y se almacena. ¿Por qué es necesaria esta estructura doble? Hay 2 razones. Primera, el rendimiento. Las claves KMS solo pueden procesar hasta 4 KB de datos por operación de cifrado. Para cifrar archivos grandes de GB, se necesita una clave de datos que pueda realizar cifrado simétrico localmente. Segunda, la seguridad. La clave KMS nunca sale del HSM, por lo que incluso si la clave de datos cifrada se filtra, no puede descifrarse sin acceso a KMS.

Funcionamiento interno de la rotación de claves

Cuando se habilita la rotación automática de claves de KMS, se genera nuevo material de clave cada año (configurable de 90 a 2560 días). Lo importante aquí es que el material de clave antiguo no se elimina después de la rotación. El ARN y el Key ID de la clave KMS no cambian, y los datos cifrados con el material de clave antiguo se descifran automáticamente con el material de clave antiguo. El nuevo material de clave se usa para cifrar nuevos datos. Este diseño permite la rotación de claves sin necesidad de re-cifrar los datos existentes, logrando rotación con cero tiempo de inactividad.

Diferenciación entre KMS y CloudHSM

KMS es un servicio gestionado que opera sobre HSM multi-tenant. Las claves KMS de múltiples clientes se procesan en el mismo clúster de HSM, pero cada clave está criptográficamente aislada y no es posible acceder a las claves de otros clientes. Por otro lado, CloudHSM es un servicio que proporciona HSM single-tenant. Un appliance HSM dedicado se coloca dentro de la VPC y solo el cliente puede acceder a él. CloudHSM es necesario cuando se requiere control directo del HSM por requisitos de cumplimiento (PCI DSS, HIPAA), cuando se necesitan algoritmos criptográficos personalizados, o cuando se requiere rendimiento criptográfico dedicado.

Eliminación de claves de cifrado - La operación más peligrosa e irreversible

La eliminación de una clave KMS es una de las operaciones más peligrosas en AWS. Al eliminar una clave KMS, todos los datos cifrados con esa clave se vuelven permanentemente irrecuperables. Objetos de S3, volúmenes de EBS, snapshots de RDS y todos los datos que dependen de esa clave se pierden efectivamente. AWS mitiga este riesgo estableciendo un período de espera de 7 a 30 días para la eliminación de claves KMS. Al programar la eliminación, la clave se deshabilita inmediatamente (no se puede usar para cifrado/descifrado), pero la eliminación real se ejecuta después del período de espera. Durante este período, puede cancelar la eliminación y restaurar la clave.