Chaves de HMAC no AWS KMS - AWS Key Management Service

Chaves de HMAC no AWS KMS

As chaves do KMS de código de autenticação de mensagem por hash (HMAC) são chaves simétricas que você usa para gerar e verificar HMACs no AWS KMS. O material exclusivo de chave associado a cada chave do KMS de HMAC fornece a chave secreta exigida pelos algoritmos de HMAC. Você pode usar uma chave do KMS de HMAC com as operações GenerateMac e VerifyMac para verificar a integridade e a autenticidade dos dados no AWS KMS.

Os algoritmos de HMAC combinam uma função de hash criptográfica e uma chave secreta compartilhada. Eles pegam uma mensagem e uma chave secreta, como o material da chave em uma chave do KMS de HMAC, e retornam um código ou etiqueta exclusiva e de tamanho fixo. Se até mesmo um caractere da mensagem mudar, ou se a chave secreta não for idêntica, a etiqueta resultante será totalmente diferente. Ao exigir uma chave secreta, o HMAC também fornece autenticidade; é impossível gerar uma etiqueta idêntica de HMAC sem a chave secreta. Algumas vezes, os HMACs são chamados de assinaturas simétricas, pois eles funcionam como assinaturas digitais, mas usam somente uma chave para assinatura e verificação.

Normalmente os HMACs são usados para determinar a autenticidade de uma mensagem, como um JSON Web Token (JWT), informações tokenizadas de cartão de crédito ou uma senha enviada. Eles também podem ser usados como Key Derivation Functions (KDFs – Funções de derivação de chave) seguras, especialmente em aplicações que exigem chaves determinísticas.

As chaves do KMS de HMAC fornecem uma vantagem sobre os HMACs de software de aplicação, pois o material da chave é inteiramente gerado e usado no AWS KMS, estando sujeito aos controles de acesso que você definiu na chave. As chaves do KMS de HMAC e os algoritmos de HMAC que o AWS KMS usa estão em conformidade com os padrões do setor definidos no RFC 2104. As chaves do KMS de HMAC são geradas em módulos de segurança de hardware do AWS KMS certificados sob o Programa de validação de módulos criptográficos FIPS 140-2 (exceto nas regiões China [Pequim] e China [Ningxia]) e nunca saem descriptografadas do AWS KMS. Para usar uma chave do KMS de HMAC, é necessário chamar o AWS KMS.

dica

As práticas recomendadas sugerem que você limite o tempo durante o qual qualquer mecanismo de assinatura, inclusive um HMAC, permanece vigente. Isso dissuade um ataque no qual o protagonista usa uma mensagem assinada para estabelecer a validade repetidamente ou muito depois que a mensagem é substituída. As etiquetas de HMAC não incluem um carimbo de data/hora, mas você pode incluir um carimbo de data/hora no token ou na mensagem para ajudar você a detectar quando está na hora de atualizar o HMAC.

Você pode criar, gerenciar e usar as chaves do KMS de HMAC em sua conta da AWS. Isso inclui ativação e desativação de chaves, configuração e alteração de aliases e etiquetas, além da programação de exclusão de chaves do KMS de HMAC. Você também pode controlar o acesso a chaves do KMS de HMAC usando políticas de chave, políticas do IAM e concessões. Você pode auditar todas as operações que usam ou gerenciam chaves do KMS de HMAC na AWS em logs do AWS CloudTrail. Você também pode criar chaves do KMS de várias regiões para HMAC que se comportam como cópias da mesma chave do KMS de HMAC em várias Regiões da AWS.

As chaves do KMS de HMAC só são compatíveis com as operações criptográficas GenerateMac e VerifyMac. Você não pode usar chaves do KMS de HMAC para criptografar dados ou assinar mensagens, nem usar nenhum outro tipo de chave do KMS em operações de HMAC. Ao usar a operação GenerateMac, você fornece uma mensagem de até 4.096 bytes, uma chave do KMS de HMAC e o algoritmo de Message authentication code (MAC – Código de autenticação de mensagem) compatível com a especificação de chave de HMAC, e GenerateMac calcula a etiqueta de HMAC. Para verificar uma etiqueta de HMAC, você deve fornecer a etiqueta de HMAC e a mesma mensagem, a chave do KMS de HMAC e o algoritmo de MAC que GenerateMac usou para calcular a etiqueta original de HMAC. A operação VerifyMac calcula a etiqueta de HMAC e verifica se ela é idêntica à etiqueta de HMAC fornecida. Se as etiquetas de HMAC recebidas e calculadas não forem idênticas, a verificação falhará.

As chaves do KMS de HMAC não são compatíveis com alternância automática de chaves nem material de chave importado, e você não pode criar uma chave do KMS de HMAC em um armazenamento personalizado de chaves.

Se você estiver criando uma chave do KMS para criptografar dados em um serviço da AWS, use uma chave de criptografia simétrica. Não é possível usar uma chave do KMS de HMAC.

Regiões

Chaves do KMS HMAC têm suporte em todas as Regiões da AWS que compatíveis com o AWS KMS, com exceção das seguintes:

  • África (Cidade do Cabo) (af-south-1)

  • China (Pequim) (cn-north-1)

  • China (Ningxia) (cn-northwest-1)

  • Europa (Frankfurt) (eu-central-1)

  • AWS GovCloud (Oeste dos EUA) (us-gov-wast-1)

Saiba mais

Especificações de chave para chaves do KMS de HMAC

O AWS KMS é compatível com chaves de HMAC simétricas de comprimentos variados. A especificação de chave que você escolhe depende de seus requisitos regulatórios, de segurança ou de negócios. O tamanho da chave determina o algoritmo de MAC usado nas operações GenerateMAC e VerifyMac. Em geral, chaves mais longas são mais seguras. Use a chave mais longa que seja viável para o seu caso de uso.

Especificação de chave de HMAC Algoritmo de MAC
HMAC_224 HMAC_SHA_224
HMAC_256 HMAC_SHA_256
HMAC_384 HMAC_SHA_384
HMAC_512 HMAC_SHA_512