Como funciona o SSDK de criptografia de banco de dados da AWS - AWS SDK de criptografia de banco de dados

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 SSDK de criptografia de banco de dados da AWS

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

O SDK de criptografia de banco de dados da AWS 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 a definição e o uso de componentes personalizados, consulte o repositório do GitHub para a implementação do seu banco de dados.

Os fluxos de trabalho desta seção explicam como o SDK de criptografia de banco de dados da AWS 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 de criptografia de banco de dados da AWS funciona com sua implementação de banco de dados, consulte o tópico O que é criptografado para seu banco de dados.

O SDK de criptografia de banco de dados da AWS usa a criptografia envelopada 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 banco de dados da AWS usa as chaves de empacotamento 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 de criptografia de banco de dados da AWS, consulte AWS Conceitos do SDK de criptografia de banco de dados.

Criptografar e assinar

Em sua essência, o SDK de criptografia de banco de dados da AWS é um registro de criptografia que criptografa, autentica, 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 de banco de dados da AWS criptografa e assina suas entradas de dados.

  1. O gerenciador de materiais criptográficos fornece ao SDK de criptografia de banco de dados da AWS chaves exclusivas de criptografia de dados: uma chave de dados em texto simples, uma cópia da chave de dados criptografada pela chave de empacotamento 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 de criptografia de banco de dados da AWS 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 por 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_ONLY nas ações 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_SIGN ou SIGN_ONLY e 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 e SIGN_ONLY a partir da lista de campos não autenticados permitidos que você definiu. O método de descriptografia usa a chave MAC retornada na Etapa 1 para recalcular e comparar os valores HMAC dos campos marcados com ENCRYPT_AND_SIGN ou SIGN_ONLY. 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 de criptografia de banco de dados da AWS descarta a chave de dados de texto simples.

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