En este tema, se proporciona información sobre la rotación de claves para claves asimétricas. Si quieres información sobre la rotación de claves asimétricas, consulta los temas Rotación de claves y Rota claves.
Cloud Key Management Service no admite la rotación automática de claves asimétricas. Los motivos y las consideraciones importantes sobre la rotación manual de las claves asimétricas se describen a continuación.
Información sobre las claves asimétricas
Las claves asimétricas admiten las firmas digitales y la encriptación. Una clave asimétrica se compone de un par con una clave privada y una clave pública. Las firmas se producen con la clave privada y se pueden verificar con la clave pública. De manera similar, los datos encriptados con la clave pública se pueden desencriptar con la clave privada. La clave privada no se puede derivar fácilmente a partir de la clave pública, de manera que esta última de puede distribuir ampliamente y usar para la verificación de firmas o la encriptación. La clave privada permanece accesible solo para su titular.
Consideraciones para la rotación
El impacto de la rotación de claves difiere entre las claves simétricas y asimétricas.
Rotación de una clave simétrica
El proceso de rotación automática o manual de una clave simétrica consiste en lo siguiente:
- Crear una versión de clave nueva
- Actualizar una versión de clave nueva para que sea la primaria
- Comenzar a usar la versión de clave nueva. Puedes usarlo en las llamadas al método
CryptoKey.encrypt
. Cuando se realiza una llamada posterior al métodoCryptoKey.decrypt
, incluso si la nueva versión de clave ya no es principal, Cloud KMS sabe qué versión de clave usar para la desencriptación.
Cuando se usa una clave simétrica para la encriptación o desencriptación, el usuario especifica una clave, no una versión de clave. No es necesario que el usuario modifique el uso de la clave simétrica, ya que Cloud KMS maneja su uso para la encriptación y desencriptación en nombre del usuario cuando se rota una clave simétrica.
Debido a que el usuario no necesita modificar el uso de la clave cuando se rota una clave simétrica, Cloud KMS admite la rotación automática de este tipo de clave.
Rotación de una clave asimétrica
El impacto de la rotación de una clave asimétrica es diferente entre una que se usa para firmas y una que se usa para la encriptación. En ambos casos, el impacto de uso es lo suficientemente significativo como para que Cloud KMS no admita la rotación automática de claves asimétricas. El impacto en el uso es significativo porque debes tomar medidas adicionales para comenzar a usar la clave asimétrica rotada, como se describe en las secciones a continuación.
Rotación de una clave asimétrica para firmas
El proceso de rotación de una clave asimétrica que se usa para firmas consiste en lo siguiente:
Crear una versión de clave nueva
Distribuir la porción de la clave pública de la versión de clave nueva. Puedes recuperar la clave pública con el método
CryptoKeyVersions.getPublicKey
.Incorporar la porción de la clave pública de la versión de clave nueva a las aplicaciones que se usan para validar firmas
Comenzar a usar la versión de clave nueva. Puedes usarlo en las llamadas al método
CryptoKeyVersions.asymmetricSign
para crear una firma. Las aplicaciones que incorporan la clave pública que muestraCryptoKeyVersions.getPublicKey
pueden verificar la firma.
Rotación de una clave asimétrica para encriptación
El proceso de rotación de una clave asimétrica que se usa para la encriptación consiste en lo siguiente:
Crear una versión de clave nueva
Distribuir la porción de la clave pública de la versión de clave nueva. Puedes recuperar la clave pública con el método
CryptoKeyVersions.getPublicKey
.Incorporar la porción de la clave pública de la versión de clave nueva a las aplicaciones que se usan en la encriptación
Incorporar la porción de la clave pública de la versión de clave nueva a las aplicaciones que se usan en la desencriptación. Usas el método
CryptoKeyVersions.asymmetricDecrypt
para la desencriptación.Comienza a usar la nueva versión de clave para encriptación y desencriptación, mediante llamadas a
CryptoKeyVersions.getPublicKey
yCryptoKeyVersions.asymmetricDecrypt
.