Suítes de algoritmos compatíveis no SDK AWS de criptografia de banco de dados - AWS Criptografia de banco SDK

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Suítes de algoritmos compatíveis no SDK AWS de criptografia de banco de dados

Nossa biblioteca de criptografia do lado do cliente foi renomeada para SDK de criptografia de AWS banco de dados. Este guia do desenvolvedor ainda fornece informações sobre o DynamoDB Encryption Client.

Um pacote de algoritmos é uma coleção de algoritmos criptográficos e de valores relacionados. Os sistemas de criptografia usam a implementação do algoritmo para gerar a mensagem de texto cifrado.

O SDK AWS de criptografia de banco de dados usa um conjunto de algoritmos para criptografar e assinar os campos em seu banco de dados. O SDK de criptografia de banco de dados da AWS é compatível com dois conjuntos de algoritmos. Todos os conjuntos compatíveis usam o Advanced Encryption Standard (AES) como o algoritmo principal e o combinam com outros algoritmos e valores.

O pacote de algoritmos AWS Database Encryption SDK usa o algoritmo Advanced Encryption Standard (AES) no Galois/Counter Mode (GCM), conhecido como AES-GCM, para criptografar dados brutos. O SDK AWS de criptografia de banco de dados oferece suporte a chaves de criptografia de 256 bits. O tamanho da tag de autenticação é sempre 16 bytes.

Por padrão, o SDK AWS de criptografia de banco de dados usa um conjunto de algoritmos com AES-GCM com uma função de derivação de chave (HKDF) baseada em HMAC, comprometimento de extract-and-expand chave, assinatura simétrica e assimétrica e uma chave de criptografia de 256 bits.

O SDK AWS de criptografia de banco de dados usa um conjunto de algoritmos que deriva uma chave de dados AES-GCM fornecendo uma chave de criptografia de dados de 256 bits para a função de derivação de chave (HKDF) baseada em HMAC. extract-and-expand Ele também deriva uma chave MAC para a chave de dados. O SDK AWS de criptografia de banco de dados usa essa chave de dados para derivar uma chave de criptografia de dados exclusiva para criptografar cada campo. Em seguida, o SDK AWS de criptografia de banco de dados usa a chave MAC para calcular um Código de Autenticação de Mensagens Baseado em Hash (HMAC) para cada cópia criptografada da chave de dados e adiciona uma assinatura do Algoritmo de Assinatura Digital de Curva Elíptica (ECDSA) ao registro. Esse conjunto de algoritmos também deriva de um comprometimento de chave: um HMAC que vincula a chave de dados ao registro. O valor de comprometimento da chave é um HMAC calculado a partir da descrição do material e da chave de comprometimento, que é derivada por meio do HKDF usando um procedimento semelhante à derivação da chave de criptografia de dados. Em seguida, ele armazena o comprometimento de chaves na descrição do material.

Algoritmo de criptografia Tamanho da chave de criptografia de dados (em bits) Algoritmo de assinatura simétrica Algoritmo de assinatura assimétrica Compromisso com a chave
AES-GCM 256 HMAC-SHA-384 ECDSA sobre P384 HKDF com SHA-512

Esse conjunto de algoritmos serializa a descrição do material e todos os campos marcados e nas ações criptográficas e ENCRYPT_AND_SIGNSIGN_ONLY, SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT em seguida, usa o HMAC com um algoritmo de função hash criptográfica (SHA-512) para assinar a canonização. Em seguida, ele calcula uma assinatura digital ECDSA. As assinaturas HMACs e ECDSA são armazenadas em um novo campo (aws_dbe_foot) que o AWS Database Encryption SDK adiciona ao registro. As assinaturas digitais são especialmente úteis quando a política de autorização permite que um conjunto de usuários criptografe os dados e outro conjunto de usuários descriptografe os dados.

O comprometimento principal garante que cada texto cifrado seja decifrado em apenas um texto simples. Eles fazem isso validando a chave de dados usada como entrada para o algoritmo de criptografia. Ao criptografar, esses conjuntos de algoritmos derivam um HMAC de comprometimento fundamental. Antes de decifrar, eles validam que a chave de dados produz o mesmo HMAC de comprometimento de chave. Caso contrário, a chamada decrypt falhará.

AES-GCM sem assinaturas digitais

Embora o conjunto de algoritmos padrão provavelmente seja adequado para a maioria dos aplicativos, é possível escolher um conjunto alternativo de algoritmos. Por exemplo, alguns modelos de confiança seriam satisfeitos com um conjunto de algoritmos sem assinaturas digitais. Use esse conjunto quando os usuários que criptografam dados e os que os descriptografam são igualmente confiáveis.

Todos os pacotes de algoritmos do AWS Database Encryption SDK oferecem suporte à assinatura simétrica HMAC-SHA-384. A única diferença é que o conjunto de algoritmos AES-GCM sem assinaturas digitais não possui a assinatura ECDSA, que fornece uma camada adicional de autenticidade e não repúdio.

Por exemplo, se você tiver várias chaves de empacotamento no token de autenticação, wrappingKeyA, wrappingKeyB e wrappingKeyC, e você descriptografar um registro usando wrappingKeyA, a assinatura simétrica HMAC-SHA-384 verificará se o registro foi criptografado por um usuário com acesso a wrappingKeyA. Se você usou os algoritmos padrão, os HMACs fornecem a mesma verificação de wrappingKeyA, além disso, usam a assinatura ECDSA para garantir que o registro foi criptografado por um usuário com permissões de criptografia para wrappingKeyA.

Para selecionar o conjunto de algoritmos AES-GCM sem assinaturas digitais, especifique-o na configuração de criptografia.