Suítes de algoritmos compatíveis na criptografia AWS de banco de dados SDK - 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 na criptografia AWS de banco de dados SDK

Nossa biblioteca de criptografia do lado do cliente foi renomeada para Database Encryption. AWS SDK 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 criptográficos usam a implementação do algoritmo para gerar o texto cifrado.

A criptografia AWS de banco de dados SDK usa um conjunto de algoritmos para criptografar e assinar os campos em seu banco de dados. Todos os pacotes de algoritmos compatíveis usam o algoritmo Advanced Encryption Standard (AES) com Galois/Counter Mode (GCM), conhecido como AES -GCM, para criptografar dados brutos. A criptografia AWS de banco de dados SDK suporta chaves de criptografia de 256 bits. O tamanho da tag de autenticação é sempre 16 bytes.

AWS Suítes de SDK algoritmos de criptografia de banco
Algoritmo Algoritmo de criptografia Tamanho da chave de dados (em bits) Algoritmo de derivação de chave Algoritmo de assinatura simétrica Algoritmo de assinatura assimétrica Compromisso com a chave
Padrão AES-GCM 256 HKDFcom SHA -512 HMAC- SHA -384 ECDSAcom P-384 e -384 SHA HKDFcom SHA -512
AES- GCM sem assinaturas ECDSA digitais AES-GCM 256 HKDFcom SHA -512 HMAC- SHA -384 Nenhum HKDFcom SHA -512
Algoritmo de criptografia

O nome e o modo do algoritmo de criptografia utilizado. Os conjuntos de algoritmos na criptografia AWS de banco de dados SDK usam o algoritmo Advanced Encryption Standard (AES) com Galois/Counter Mode (). GCM

Tamanho da chave de dados

O tamanho da chave de dados em bits. A criptografia AWS de banco de dados SDK suporta chaves de dados de 256 bits. A chave de dados é usada como entrada para uma função de derivação de extract-and-expand chave HMAC baseada (HKDF). A saída do HKDF é usada como chave de criptografia de dados no algoritmo de criptografia.

Algoritmo de derivação de chave

A função de derivação de extract-and-expand chave HMAC baseada (HKDF) usada para derivar a chave de criptografia de dados. A criptografia AWS de banco de dados SDK usa o HKDF definido em RFC5869.

  • A função hash usada é -512 SHA

  • Para a etapa de extração:

    • Nenhum sal é usado. De acordo com oRFC, o sal é definido como uma sequência de zeros.

    • O material de chaveamento de entrada é a chave de dados do chaveiro.

  • Para a etapa de expansão:

    • A chave pseudoaleatória de entrada é a saída da etapa de extração.

    • O rótulo da chave são os bytes UTF codificados em -8 da DERIVEKEY string na ordem de bytes big endian.

    • As informações da entrada são uma concatenação do ID do algoritmo seguido pelo rótulo de chave (nessa ordem).

    • O comprimento do material de chaveamento de saída é o Tamanho da chave de dados. Essa saída é usada como a chave de criptografia de dados no algoritmo de criptografia.

Algoritmo de assinatura simétrica

O algoritmo Hash Based Message Authentication Code (HMAC) usado para gerar uma assinatura simétrica. Todos os pacotes de algoritmos compatíveis incluem HMAC verificação.

A criptografia AWS de banco de dados SDK serializa a descrição do material e todos os campos marcados com ENCRYPT_AND_SIGNSIGN_ONLY, ouSIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT. Em seguida, ele usa um algoritmo HMAC de função hash criptográfica (SHA-384) para assinar a canonização.

A HMAC assinatura simétrica é armazenada em um novo campo (aws_dbe_foot) que a criptografia AWS de banco de dados SDK adiciona ao registro.

Algoritmo de assinatura assimétrica

O algoritmo de assinatura usado para gerar uma assinatura digital assimétrica.

A criptografia AWS de banco de dados SDK serializa a descrição do material e todos os campos marcados com ENCRYPT_AND_SIGNSIGN_ONLY, ouSIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT. Em seguida, ele usa o Algoritmo de Assinatura Digital de Curva Elíptica (ECDSA) com as seguintes especificações para assinar a canonização:

A assinatura assimétrica é armazenada com a ECDSA assinatura simétrica no HMAC campo. aws_dbe_foot

ECDSAas assinaturas digitais são incluídas por padrão, mas não são obrigatórias.

Confirmação de chave

A função de derivação de extract-and-expand chave HMAC baseada (HKDF) usada para derivar a chave de confirmação.

  • A função hash usada é -512 SHA

  • Para a etapa de extração:

    • Nenhum sal é usado. De acordo com oRFC, o sal é definido como uma sequência de zeros.

    • O material de chaveamento de entrada é a chave de dados do chaveiro.

  • Para a etapa de expansão:

    • A chave pseudoaleatória de entrada é a saída da etapa de extração.

    • As informações de entrada são os bytes UTF codificados em -8 da COMMITKEY string na ordem de bytes big endian.

    • O comprimento do material de chaveamento de saída é de 256 bits. Essa saída é usada como chave de confirmação.

A chave de confirmação calcula o comprometimento do registro, um hash distinto de Código de Autenticação de Mensagens Baseado em Hash (HMAC) de 256 bits, sobre a descrição do material. Para obter uma explicação técnica sobre como adicionar comprometimento de chave a um conjunto de algoritmos, consulte Key Committing AEADs in Cryptology ePrint Archive.

Por padrão, a criptografia AWS de banco de dados SDK usa um conjunto de algoritmos com AES -GCM, uma função de derivação de extract-and-expand chave HMAC baseada (HKDF), HMAC verificação, assinaturas ECDSA digitais, compromisso de chave e uma chave de criptografia de 256 bits.

O conjunto de algoritmos padrão inclui HMAC verificação (assinaturas simétricas) e assinaturas ECDSAdigitais (assinaturas assimétricas). Essas assinaturas são armazenadas em um novo campo (aws_dbe_foot) que a criptografia AWS de banco de dados SDK adiciona ao registro. ECDSAas assinaturas digitais são particularmente úteis quando a política de autorização permite que um conjunto de usuários criptografe dados e um conjunto diferente de usuários decodifique os dados.

O conjunto de algoritmos padrão também deriva de um compromisso chave — um HMAC hash que vincula a chave de dados ao registro. O valor do compromisso principal é HMAC calculado a partir da descrição do material e da chave de confirmação. Em seguida, ele armazena o comprometimento de chaves na descrição do material. 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, o conjunto de algoritmos obtém um compromisso fundamental. HMAC Antes de decifrar, eles validam que a chave de dados produz o mesmo compromisso com a chave. HMAC Caso contrário, a chamada de descriptografia falhará.

AES- GCM sem assinaturas ECDSA digitais

Embora o conjunto de algoritmos padrão provavelmente seja adequado para a maioria dos aplicativos, você pode escolher um conjunto alternativo de algoritmos. Por exemplo, alguns modelos de confiança seriam satisfeitos com um conjunto de algoritmos sem assinaturas ECDSA digitais. Use esse pacote somente quando os usuários que criptografam dados e os usuários que descriptografam dados forem igualmente confiáveis.

Todos os pacotes de SDK algoritmos de criptografia de AWS banco de dados incluem HMAC verificação (assinaturas simétricas). A única diferença é que o AES conjunto de GCM algoritmos sem assinatura ECDSA digital carece da assinatura assimétrica que fornece uma camada adicional de autenticidade e não repúdio.

Por exemplo, se você tiver várias chaves de agrupamento em seu chaveiro,,wrappingKeyA, e wrappingKeyBwrappingKeyC, e você descriptografar um registro usandowrappingKeyA, a assinatura HMAC simétrica verifica se o registro foi criptografado por um usuário com acesso a. wrappingKeyA Se você usou o conjunto de algoritmos padrão, eles HMACs fornecem a mesma verificação ewrappingKeyA, além disso, usam a assinatura ECDSA digital para garantir que o registro foi criptografado por um usuário com permissões de criptografia parawrappingKeyA.

Para selecionar o conjunto de GCM algoritmos AES - sem assinaturas digitais, inclua o seguinte trecho em sua configuração de criptografia.

Java

O trecho a seguir especifica o conjunto de GCM algoritmos AES - sem ECDSA assinaturas digitais. Para obter mais informações, consulte Configuração de criptografia no AWS Database Encryption SDK for DynamoDB.

.algorithmSuiteId( DBEAlgorithmSuiteId.ALG_AES_256_GCM_HKDF_SHA512_COMMIT_KEY_SYMSIG_HMAC_SHA384)
C# / .NET

O trecho a seguir especifica o conjunto de GCM algoritmos AES - sem ECDSA assinaturas digitais. Para obter mais informações, consulte Configuração de criptografia no AWS Database Encryption SDK for DynamoDB.

AlgorithmSuiteId = DBEAlgorithmSuiteId.ALG_AES_256_GCM_HKDF_SHA512_COMMIT_KEY_SYMSIG_HMAC_SHA384