Como funciona o 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á.

Como funciona o 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.

O SDK AWS de criptografia de banco de dados fornece bibliotecas de criptografia do lado do cliente projetadas especificamente para proteger os dados que você armazena nos bancos de dados. As bibliotecas incluem implementações seguras que você pode estender ou usar inalteradas. Para obter mais informações sobre como definir e usar componentes personalizados, consulte o GitHub repositório da implementação do seu banco de dados.

Os fluxos de trabalho desta seção explicam como o SDK de criptografia AWS de banco de dados criptografa, assina, descriptografa e verifica os dados em seu banco de dados. Esses fluxos de trabalho descrevem o processo básico usando elementos abstratos e os atributos padrão. Para obter detalhes sobre como o SDK AWS de criptografia de banco de dados funciona com sua implementação de banco de dados, consulte o tópico O que é criptografado para seu banco de dados.

O SDK AWS de criptografia de banco de dados usa criptografia de envelope para proteger seus dados. Cada mensagem é criptografada em uma chave de dados exclusiva. A chave de dados é usada para derivar uma chave de criptografia de dados exclusiva para cada campo marcado ENCRYPT_AND_SIGN em suas ações criptográficas. Em seguida, uma cópia da chave de dados é criptografada pelas chaves de empacotamento que você especificar. Para descriptografar o registro criptografado, o SDK de criptografia de AWS banco de dados usa as chaves de encapsulamento que você especifica para descriptografar pelo menos uma chave de dados criptografada. Em seguida, ele pode descriptografar o texto cifrado e retornar uma entrada de texto simples.

Para obter mais informações sobre os termos usados no SDK AWS de criptografia de banco de dados, consulteAWS SDKconceitos de criptografia de banco de dados.

Criptografar e assinar

Em essência, o SDK AWS de criptografia de banco de dados é um criptografador de registros que criptografa, assina, verifica e descriptografa os registros em seu banco de dados. Ele obtém informações sobre os registros e instruções sobre quais campos devem ser criptografados e assinados. Ele obtém os materiais de criptografia e as instruções sobre como usá-los de um gerenciador de material de criptografia configurado com a chave de empacotamento que você especifica.

O passo a passo a seguir descreve como o SDK de criptografia AWS de banco de dados criptografa e assina suas entradas de dados.

  1. O gerenciador de materiais criptográficos fornece ao SDK AWS de criptografia de banco de dados chaves exclusivas de criptografia de dados: uma chave de dados em texto simples, uma cópia da chave de dados criptografada pela chave de encapsulamento especificada e uma chave MAC.

    nota

    É possível criptografar a chave de dados em várias chaves de empacotamento. Cada uma das chaves de empacotamento criptografa uma cópia da chave de dados. O SDK AWS de criptografia de banco de dados armazena todas as chaves de dados criptografadas na descrição do material. O SDK de criptografia de banco de dados da AWS adiciona um novo campo (aws_dbe_head) ao registro que armazena a descrição do material.

    Uma chave MAC é derivada para cada cópia criptografada da chave de dados. As chaves MAC não são armazenadas na descrição do material. Em vez disso, o método de descriptografia usa as chaves de empacotamento para derivar as chaves MAC novamente.

  2. O método de criptografia criptografa cada campo marcado como ENCRYPT_AND_SIGN nas ações criptográficas que você especificou.

  3. O método de criptografia deriva commitKey da chave de dados e a usa para gerar um valor de comprometimento da chave e, em seguida, descarta a chave de dados.

  4. Saiba mais sobre a descrição do material para o registro. A descrição do material contém as chaves de dados criptografadas e outras informações sobre o registro criptografado. Para obter uma lista completa das informações incluídas na descrição do material, consulte Formato de descrição do material.

  5. O método de criptografia usa as chaves MAC retornadas na Etapa 1 para calcular os valores do Código de Autenticação de Mensagens Baseadas em Hash (HMAC) sobre a canonização da descrição do material, do contexto de criptografia e de cada campo marcado ENCRYPT_AND_SIGN ou SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT nas ações SIGN_ONLY criptográficas. Os valores HMAC são armazenados em um novo campo (aws_dbe_foot) que o método de criptografia adiciona ao registro.

  6. O método de criptografia calcula uma assinatura ECDSA com base na canonização da descrição do material, do contexto de criptografia e de cada campo marcado ENCRYPT_AND_SIGNSIGN_ONLY, ou SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT armazena as assinaturas ECDSA no campo. aws_dbe_foot

    nota

    As assinaturas ECDSA são habilitadas por padrão, mas não são obrigatórias.

  7. O método de criptografia armazena o registro criptografado e assinado em seu banco de dados

Descriptografar e verificar

  1. O gerenciador de materiais criptográficos (CMM) fornece o método de decodificação com os materiais de decodificação armazenados na descrição do material, incluindo a chave de dados em texto simples e a chave MAC correspondente.

    1. O CMM descriptografa a chave de dados criptografados com as chaves de empacotamento no token de autenticação especificado e gera a chave de dados de texto simples.

  2. O método de decodificação compara e verifica o valor do comprometimento chave na descrição do material.

  3. O método de decodificação verifica as assinaturas no campo de assinatura.

    Ele identifica quais campos estão marcados ENCRYPT_AND_SIGN ou a SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT partir da lista de campos não autenticados permitidos que você definiu. SIGN_ONLY O método de descriptografia usa a chave MAC retornada na Etapa 1 para recalcular e comparar os valores HMAC dos campos marcados com, ou. ENCRYPT_AND_SIGN SIGN_ONLY SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT Em seguida, ele verifica as assinaturas ECDSA usando a chave pública armazenada no contexto de criptografia.

  4. O método de descriptografia usa a chave de dados de texto simples para descriptografar cada valor marcado com ENCRYPT_AND_SIGN. Em seguida, o SDK AWS de criptografia de banco de dados descarta a chave de dados em texto simples.

  5. O método de descriptografia retorna os registros de texto não criptografado.