Chaves para fins especiais - AWS Key Management Service

Chaves para fins especiais

O AWS Key Management Service (AWS KMS) oferece suporte vários tipos diferentes de chaves para diferentes usos.

Ao criar uma AWS KMS key, você recebe por padrão uma chave do KMS de criptografia simétrica. No AWS KMS, uma chave do KMS de criptografia simétrica representa uma chave de criptografia AES-GCM de 256 bits que é usada para criptografia e descriptografia, exceto nas regiões da China, em que ela representa uma chave simétrica de 128 bits que usa a criptografia SM4. O material de chave simétrica nunca sai descriptografado do AWS KMS. A menos que sua tarefa exija explicitamente criptografia assimétrica ou chaves de Hash-based message authentication code (HMAC – Código de autenticação de mensagem por hash), as chaves do KMS de criptografia simétrica, que nunca saem descriptografadas do AWS KMS, são uma boa opção. Além disso, os serviços da AWS que são integrados ao AWS KMS usam exclusivamente chaves do KMS de criptografia simétrica para criptografar seus dados. Esses serviços não fornecem suporte para criptografia com chaves do KMS assimétricas.

É possível usar uma chave do KMS de criptografia simétrica no AWS KMS para criptografar, descriptografar e recriptografar dados, gerar chaves de dados e pares de chaves de dados, além de gerar strings de bytes aleatórios. Você pode importar seu próprio material de chave para uma chave do KMS de criptografia simétrica e criar chaves do KMS de criptografia simétrica em armazenamentos personalizados de chaves. Para acessar uma tabela comparativa das operações que você pode executar em chaves do KMS simétricas e assimétricas, consulte Referência de tipos de chaves.

O AWS KMS também é compatível com os seguintes tipos de chaves do KMS de finalidade especial:

Escolha de um tipo de chave do KMS

O AWS KMS é compatível com vários tipos de chaves do KMS: chaves de criptografia simétrica, chaves de HMAC simétrica, chaves de criptografia assimétrica e chaves de assinatura assimétrica.

As chaves do KMS diferem porque contêm diferentes materiais criptográficos de chave.

  • Chave do KMS de criptografia simétrica: representa uma única chave de criptografia AES-GCM de 256 bits, exceto nas regiões da China, em que ela representa uma chave de criptografia SM4 de 128 bits. O material de chave simétrica nunca sai descriptografado do AWS KMS. Para usar a chave do KMS de criptografia simétrica, é necessário chamar o AWS KMS.

    As chaves de criptografia simétrica, que são as chaves padrão do KMS, são ideais para a maioria dos usos. Se você precisar de uma chave do KMS para proteger seus dados em um AWS service (Serviço da AWS), use uma chave de criptografia simétrica, a menos que receba instruções para usar outro tipo de chave.

  • Chave do KMS assimétrica: representa uma chave pública e um par de chaves privadas matematicamente relacionados que podem ser usados para criptografar e descriptografar ou para assinar e verificar, mas não ambos. A chave privada nunca deixa o AWS KMS descriptografado. É possível usar a chave pública no AWS KMS chamando as operações de API do AWS KMS ou baixando a chave pública e usando-a fora do AWS KMS.

  • Chave do KMS de HMAC (simétrica): representa uma chave simétrica de comprimento variável que é usada para gerar e verificar códigos de autenticação de mensagem por hash. O material de chave em uma chave do KMS de HMAC nunca sai descriptografado do AWS KMS. Para usar sua chave do KMS de HMAC, é necessário chamar o AWS KMS.

 

O tipo de chave do KMS criada depende em grande parte de como você planeja usar a chave do KMS e dos requisitos de segurança e de autorização. Ao criar sua chave do KMS, lembre-se de que a configuração criptográfica da chave do KMS, incluindo sua especificação de chave e uso de chave, é estabelecida ao criar a chave do KMS e não pode ser alterada.

Use as orientações a seguir para determinar o tipo de chave do KMS necessário com base no seu caso de uso.

Criptografar e descriptografar dados

Use uma chave do KMS simétrica para a maioria dos casos de uso que exigem criptografia e descriptografia dos dados. O algoritmo de criptografia simétrica usado pelo AWS KMS é rápido, eficiente e garante a confidencialidade e a autenticidade dos dados. Ele oferece suporte à criptografia autenticada com dados adicionais autenticados (ADD), definidos como um contexto de criptografia. Esse tipo de chave do KMS exige que o remetente e o destinatário dos dados criptografados tenham credenciais válidas da AWS para chamar o AWS KMS.

Se o seu caso de uso exige criptografia fora do AWS por usuários que não podem chamar o AWS KMS, as chaves do KMS assimétricas são uma boa escolha. Você pode distribuir a parte pública da chave do KMS assimétrica para permitir que esses usuários criptografem dados. Além disso, as aplicações que precisam descriptografar esses dados podem usar a chave privada da chave do KMS assimétrica no AWS KMS.

Assinar mensagens e verificar assinaturas

Para assinar mensagens e verificar assinaturas, é necessário usar uma chave do KMS assimétrica. É possível usar uma chave do KMS com uma especificação de chave que representa um par de chaves RSA, um par de chaves de curva elíptica (ECC) ou um par de chaves SM2 (somente nas regiões da China). A especificação de chave escolhida é determinada pelo algoritmo de assinatura que você deseja usar. Em alguns casos, os usuários que verificarão assinaturas estão fora da AWS e não podem chamar a operação Verify. Nesse caso, escolha uma especificação de chave associada a um algoritmo de assinatura a que esses usuários podem oferecer suporte nas aplicações locais.

Executar criptografia de chave pública

Para executar a criptografia da chave pública, é necessário usar uma chave do KMS assimétrica com uma especificação de chave RSA ou uma especificação de chave SM2 (somente nas regiões da China). Para criptografar dados no AWS KMS com a chave pública de um par de chaves do KMS, use a operação Encrypt (Criptografar). Também é possível fazer download da chave pública e compartilhá-la com as partes que precisam criptografar dados fora do AWS KMS.

Ao baixar a chave pública de uma chave do KMS assimétrica, é possível usá-la fora do AWS KMS. No entanto, ela não está mais sujeita aos controles de segurança que protegem a chave do KMS no AWS KMS. Por exemplo, não é possível usar concessões ou políticas de chaves do AWS KMS para controlar o uso da chave pública. Também não é possível controlar se a chave é usada somente para criptografia e descriptografia usando os algoritmos de criptografia compatíveis com o AWS KMS. Para obter mais detalhes, consulte Considerações especiais sobre o download de chaves públicas.

Para descriptografar dados que foram criptografados com a chave pública fora do AWS KMS, chame a operação Decrypt. Ocorrerá falha na operação do Decrypt se os dados tiverem sido criptografados em uma chave pública de uma chave do KMS com um uso de chave de SIGN_VERIFY. Também ocorrerá falha se eles tiverem sido criptografados usando um algoritmo não compatível com o AWS KMS para a especificação de chave selecionada. Para obter mais informações sobre especificações de chaves e algoritmos com suporte, consulte Especificações de chaves assimétricas.

Para evitar esses erros, qualquer pessoa que esteja usando uma chave pública fora do AWS KMS deve armazenar a configuração da chave. O console do AWS KMS e a resposta GetPublicKey fornecem as informações a serem incluídas ao compartilhar a chave pública.

Gerar e verificar códigos de HMAC

Para gerar e verificar códigos de autenticação de mensagem por hash, use uma chave do KMS de HMAC. Ao criar uma chave de HMAC no AWS KMS, o AWS KMS cria e protege o material de chave, garantindo que você use os algoritmos de Message authentication code (MAC – Código de autenticação de mensagem) corretos para sua chave. Também é possível usar os códigos de HMAC como números pseudo-aleatórios e para assinatura simétrica e tokenização em determinados cenários.

As chaves do KMS de HMAC são chaves simétricas. Ao criar uma chave do KMS de HMAC no console do AWS KMS, escolha o tipo de chave Symmetric.

nota

Chaves do KMS de HMAC não são compatíveis com todas as Regiões da AWS. Para acessar uma lista das regiões compatíveis com as chaves do KMS de HMAC, consulte Regiões de HMAC.

Usar com serviços da AWS

Para criar uma chave do KMS para uso com um serviço da AWS integrado ao AWS KMS, consulte a documentação do serviço. Os serviços da AWS que criptografam seus dados exigem uma chave do KMS de criptografia simétrica.

Além dessas considerações, as chaves do KMS com diferentes especificações de chave têm preços e cotas de solicitações diferentes. Para obter mais informações sobre a definição de preço do AWS KMS, consulte Definição de preço do AWS Key Management Service. Para obter mais informações sobre cotas de solicitações, consulte Cotas de solicitações.

Selecionar o uso de chave

O uso de chave de uma chave do KMS determina se a chave do KMS será usada para criptografia e descriptografia ou para assinatura e verificação ou para geração e verificação de etiquetas de HMAC. Cada chave do KMS pode ter apenas um uso. O uso de uma chave do KMS para mais de um tipo de operação torna o produto de todas as operações mais vulnerável a ataques.

Conforme apresentado na tabela a seguir, as chaves do KMS de criptografia simétrica só podem ser usadas para criptografia e descriptografia. As chaves do KMS de HMAC só podem ser usadas para gerar e verificar códigos de HMAC. As chaves do KMS de curva elíptica (ECC) podem ser usadas somente para assinatura e verificação. Você só precisa decidir sobre um uso de chave para chaves do KMS RSA.

Uso de chave válido para tipos de chaves do KMS
Tipo de chave do KMS Criptografar e descriptografar

ENCRYPT_DECRYPT

Assinar e verificar

SIGN_VERIFY

Gerar e verificar MAC

GENERATE_VERIFY_MAC

Chaves do KMS de criptografia simétrica
Chaves do KMS de HMAC (simétrica)
Chaves do KMS assimétricas com pares de chaves RSA
Chaves do KMS assimétricas com pares de chaves de ECC
Chaves do KMS assimétricas com pares de chaves SM2 (somente nas regiões da China)

No console do AWS KMS, primeiro você escolhe o tipo de chave (simétrica ou assimétrica) e, em seguida, o uso de chave. O tipo de chave escolhido determina quais opções de uso de chave são exibidas. O uso de chave escolhido determina quais especificações de chave são exibidas, se for o caso.

Para escolher um uso de chave no console do AWS KMS:

  • Para chaves do KMS de criptografia simétrica (padrão), escolha Encrypt and decrypt (Criptografar e descriptografar).

  • Para chaves do KMS de HMAC, escolha Generate and verify MAC (Gerar e verificar MAC).

    nota

    Chaves do KMS de HMAC não são compatíveis com todas as Regiões da AWS. Para acessar uma lista das regiões compatíveis com as chaves do KMS de HMAC, consulte Regiões de HMAC.

  • Para chaves do KMS assimétricas com material de chave de Elliptic curve (ECC – Criptografia de curva elíptica), escolha Sign and verify (Assinar e verificar).

  • Para chaves do KMS assimétricas com material de chave RSA, selecione Encrypt and decrypt (Criptografar e descriptografar) ou Sign and verify (Assinar e verificar).

  • Para chaves do KMS assimétricas com material de chave SM2, selecione Encrypt and decrypt (Criptografar e descriptografar) ou Sign and verify (Assinar e verificar). A especificação de chave SM2 está disponível somente nas regiões da China.

Para permitir que as entidades principais criem chaves do KMS somente para um uso específico de chave, use a chave de condição kms:KeyUsage. Também é possível usar a chave de condição kms:KeyUsage para permitir que as entidades principais chamem operações de API para uma chave do KMS baseada em seu uso de chave. Por exemplo, apenas será possível conceder permissão para desabilitar uma chave do KMS se o seu uso de chave for SIGN_VERIFY.

Selecionar a especificação de chave

Ao criar uma chave do KMS assimétrica ou uma chave do KMS de HMAC, selecione sua especificação de chave. A especificação de chave, que é uma propriedade de cada AWS KMS key, representa a configuração criptográfica da sua chave do KMS. Você escolhe a especificação de chave ao criar a chave do KMS e não pode alterá-la. Se você tiver escolhido a especificação de chave errada, exclua a chave do KMS e crie outra.

nota

A especificação de chave para uma chave do KMS era conhecida como “especificação de chave mestra do cliente”. O parâmetro CustomerMasterKeySpec da operação CreateKey está defasado. Em vez disso, use o parâmetro KeySpec. A resposta das operações CreateKey e DescribeKey inclui um membro KeySpece CustomerMasterKeySpec com o mesmo valor.

A especificação de chave determina se a chave do KMS é simétrica ou assimétrica, o tipo de material de chave na chave do KMS e os algoritmos de criptografia, algoritmos de assinatura ou algoritmos de MAC compatíveis com o AWS KMS para a chave do KMS. A especificação de chave escolhida normalmente é determinada pelo caso de uso e pelos requisitos regulatórios.

Para determinar as especificações de chave que as entidades principais na sua conta têm permissão para usar para chaves do KMS, use a chave de condição kms:KeySpec.

O AWS KMS é compatível com as seguintes especificações de chave para chaves do KMS:

nota

Chaves do KMS de HMAC não são compatíveis com todas as Regiões da AWS. Para acessar uma lista das regiões compatíveis com as chaves do KMS de HMAC, consulte Regiões de HMAC.

Especificações da chave de criptografia simétrica (padrão)
  • SYMMETRIC_DEFAULT

Especificações de chave de HMAC
  • HMAC_224

  • HMAC_256

  • HMAC_384

  • HMAC_512

Especificações de chave RSA (criptografia e descriptografia ou assinatura e verificação)
  • RSA_2048

  • RSA_3072

  • RSA_4096

Especificações da chave de curva elíptica
  • Pares de chaves de curva elíptica assimétricas recomendadas pelo NIST (assinatura e verificação)

    • ECC_NIST_P256 (secp256r1)

    • ECC_NIST_P384 (secp384r1)

    • ECC_NIST_P521 (secp521r1)

  • Outros pares de chaves de curva elíptica assimétricas (assinatura e verificação)

    • ECC_SECG_P256K1 (secp256k1), normalmente usado para criptomoedas.

Especificação de chave SM2 (criptografia e descriptografia ou assinatura e verificação)
  • SM2 (somente nas regiões da China)