Este tópico fornece informações sobre a rotação de chaves para chaves assimétricas. Para informações sobre a rotação de chaves simétricas, consulte os tópicos Rotação de chaves e Como fazer rotação de chaves.
O Cloud Key Management Service não é compatível com rotação automática de chaves assimétricas. As razões e considerações importantes sobre a rotação manual de chaves assimétricas são descritas abaixo.
Sobre chaves assimétricas
As chaves assimétricas são compatíveis com assinaturas digitais e criptografia. Uma chave assimétrica consiste em uma chave privada e um par de chaves públicas. As assinaturas são produzidas com a chave privada e podem ser verificadas com a chave pública. Da mesma forma, os dados criptografados com a chave pública podem ser descriptografados somente com a chave privada. A chave privada não pode ser facilmente derivada da chave pública. Portanto, a chave pública pode ser amplamente distribuída e usada para a verificação de assinaturas ou criptografias. A chave privada permanece acessível apenas ao detentor da chave privada.
Considerações de rotação
O impacto da rotação de chaves difere entre chaves simétricas e assimétricas.
Rotação de uma chave simétrica
O processo de rotação automática ou manual de uma chave simétrica consiste nos itens a seguir:
- Criação de uma versão nova da chave.
- Atualização da versão nova da chave como primária.
- Comece a usar a versão nova da chave. Você pode usá-la em chamadas para o método
CryptoKey.encrypt
. Quando uma chamada subsequente é feita para o métodoCryptoKey.decrypt
, mesmo se a nova versão da chave não for mais principal, o Cloud KMS saberá qual versão de chave precisa ser usada para a descriptografia.
Quando uma chave simétrica é usada para criptografia ou descriptografia, o usuário especifica uma chave, não uma versão de chave. O usuário não precisa modificar o uso da chave simétrica. O Cloud KMS lida com o uso de criptografia e descriptografia em nome do usuário quando ocorre uma rotação de chave simétrica.
Como o usuário não precisa modificar o uso da chave quando ocorre uma rotação de chave simétrica, o Cloud KMS é compatível com a rotação automática de chaves simétricas.
Rotação de uma chave assimétrica
O impacto da rotação de uma chave assimétrica difere entre uma usada para assinaturas e uma usada para criptografia. Em ambos os casos, o impacto no uso é significativo o suficiente para que o Cloud KMS não seja compatível com a rotação automática de chaves assimétricas. O impacto no uso é significativo porque você precisa seguir etapas adicionais para começar a usar a chave assimétrica rotacionada, conforme descrito nas seções a seguir.
Rotação de uma chave assimétrica para assinaturas
O processo de rotação de uma chave assimétrica usada para assinaturas consiste nos itens a seguir:
Criação de uma versão nova da chave.
Distribuição da parte da chave pública da versão nova da chave. Você pode recuperar a chave pública usando o método
CryptoKeyVersions.getPublicKey
.Incorporação da parte da chave pública da versão nova da chave em aplicativos usados para a validação da assinatura.
Comece a usar a versão nova da chave. Você pode usá-lo em chamadas para o método
CryptoKeyVersions.asymmetricSign
para criar uma assinatura. Os aplicativos que incorporam a chave pública retornada porCryptoKeyVersions.getPublicKey
podem verificar a assinatura.
Rotação de uma chave assimétrica para criptografia
O processo de rotação de uma chave assimétrica usada para criptografia consiste nos itens a seguir:
Criação de uma versão nova da chave.
Distribuição da parte da chave pública da versão nova da chave. Você pode recuperar a chave pública usando o método
CryptoKeyVersions.getPublicKey
.Incorporação da parte da chave pública da versão nova da chave em aplicativos usados para criptografia.
Incorporação da parte da chave privada da versão nova da chave em aplicativos usados para descriptografia. Use o método
CryptoKeyVersions.asymmetricDecrypt
para descriptografar.Comece a usar a nova versão da chave para criptografia e descriptografia por meio de chamadas para
CryptoKeyVersions.getPublicKey
eCryptoKeyVersions.asymmetricDecrypt
.