Rotação de chaves

Esta página aborda a rotação de chaves no Cloud Key Management Service. A alternância de chaves é o processo de criação de novas chaves de encriptação para substituir as chaves existentes. Ao rodar as chaves de encriptação de forma regular ou após eventos específicos, pode reduzir as potenciais consequências da violação da sua chave. Para ver instruções específicas para rodar uma chave, consulte o artigo Rodar chaves.

Por que motivo devo alternar as chaves?

Para a encriptação simétrica, a rotação periódica e automática de chaves é uma prática de segurança recomendada. Algumas normas da indústria, como a Norma de Segurança de Dados do Setor de Cartões de Pagamento (PCI DSS), exigem a rotação regular das chaves.

O Cloud Key Management Service não suporta a rotação automática de chaves assimétricas. Consulte as Considerações para chaves assimétricas neste documento.

A rotação das chaves oferece várias vantagens:

  • Limitar o número de mensagens encriptadas com a mesma versão da chave ajuda a evitar ataques ativados pela criptoanálise. As recomendações de tempo de vida da chave dependem do algoritmo da chave, bem como do número de mensagens produzidas ou do número total de bytes encriptados com a mesma versão da chave. Por exemplo, o tempo de vida útil recomendado para chaves de encriptação simétricas no modo Galois/Counter (GCM) baseia-se no número de mensagens encriptadas, conforme indicado em https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-38d.pdf.

  • No caso de uma chave ser comprometida, a rotação regular limita o número de mensagens reais vulneráveis a comprometimento.

    Se suspeitar que uma versão da chave foi comprometida, desative-a e revogue o acesso à mesma assim que possível.

  • A alteração regular de chaves garante que o seu sistema é resiliente à alteração manual, quer devido a uma violação de segurança ou à necessidade de migrar a sua aplicação para um algoritmo criptográfico mais forte. Valide os procedimentos de rotação de chaves antes de ocorrer um incidente de segurança real.

Também pode rodar manualmente uma chave, quer porque está comprometida, quer para modificar a sua aplicação para usar um algoritmo diferente.

Com que frequência deve alternar as chaves

Recomendamos que rode as chaves automaticamente de forma regular. Uma programação de rotação define a frequência da rotação e, opcionalmente, a data e a hora em que a primeira rotação ocorre. A programação da rotação pode basear-se na antiguidade da chave ou no número ou volume de mensagens encriptadas com uma versão da chave.

Alguns regulamentos de segurança exigem uma rotação de chaves periódica e automática. A rotação automática das chaves num período definido, como a cada 90 dias, aumenta a segurança com uma complexidade administrativa mínima.

Também deve rodar manualmente uma chave se suspeitar que foi comprometida ou quando as diretrizes de segurança exigirem que migre uma aplicação para um algoritmo de chave mais forte. Pode agendar uma rotação manual para uma data e uma hora futuras. A rotação manual de uma chave não pausa, modifica nem afeta de outra forma um horário de rotação automática existente para a chave.

Não confie na rotação irregular ou manual como um componente principal da segurança da sua aplicação.

Depois de alternar as chaves

A rotação de chaves cria novas versões de chaves ativas, mas não volta a encriptar os dados nem desativa nem elimina as versões de chaves anteriores. As versões anteriores das chaves permanecem ativas e geram custos até serem destruídas. A reencriptação dos dados elimina a sua dependência de versões antigas das chaves, o que lhe permite destruí-las para evitar incorrer em custos adicionais. Para saber como voltar a encriptar os seus dados, consulte o artigo Voltar a encriptar dados.

Tem de certificar-se de que uma versão da chave já não está em utilização antes de destruir a versão da chave.

Considerações para chaves assimétricas

O Cloud KMS não suporta a rotação automática de chaves assimétricas, porque são necessários passos adicionais antes de poder usar a nova versão da chave assimétrica.

  • Para chaves assimétricas usadas para assinatura, tem de distribuir a parte da chave pública da nova versão da chave. Posteriormente, pode especificar a versão da nova chave nas chamadas ao método CryptoKeyVersions.asymmetricSign para criar uma assinatura e atualizar as aplicações para usar a nova versão da chave.

  • Para chaves assimétricas usadas para encriptação, tem de distribuir e incorporar a parte pública da nova versão da chave em aplicações que encriptam dados e conceder acesso à parte privada da nova versão da chave para aplicações que desencriptam dados.

O que se segue?