Provedor encapsulado de materiais - 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á.

Provedor encapsulado de materiais

nota

Nossa biblioteca de criptografia do lado do cliente foi renomeada como SDK de criptografia de banco de dados da AWS. O tópico a seguir fornece informações sobre as versões 1.x—2.x do DynamoDB Encryption Client para Java e versões 1.x—3x do DynamoDB Encryption Client para Python. Para obter mais informações, consulte SDK de criptografia de banco de dados da AWS para obter suporte à versão do DynamoDB.

O provedor empacotado de materiais (CMP empacotado) permite usar chaves encapsuladas e de assinatura a partir de qualquer origem com o DynamoDB Encryption Client. O CMP empacotado não depende de nenhum serviço da AWS. No entanto, você deve gerar e gerenciar suas chaves de empacotamento e assinatura fora do cliente, incluindo o fornecimento das chaves corretas para verificar e descriptografar o item.

O CMP encapsulado gera uma chave exclusiva de criptografia para cada item. Ele encapsula a chave de criptografia do item com a chave de empacotamento que você fornece, e salva a chave de criptografia de item encapsulada no atributo de descrição do material do item. Como fornece as chaves de empacotamento e assinatura, você determina como as chaves de empacotamento e assinatura serão geradas e se elas serão exclusivas de cada item ou reutilizadas.

O CMP encapsulado é uma implementação segura e uma boa opção para aplicativos que podem gerenciar materiais de criptografia.

O CMP empacotado é um dos vários provedores de materiais de criptografia (CMPs) que têm suporte do DynamoDB Encryption Client. Para obter informações sobre outros CMPs, consulte Provedor de materiais de criptografia.

Para ver um código de exemplo, consulte:

Como usar

Para criar um CMP empacotado, especifique uma chave de empacotamento (necessária para a criptografia), uma chave de desempacotamento (necessária para a descriptografia) e uma chave de assinatura. É necessário fornecer chaves ao criptografar e descriptografar itens.

As chaves de empacotamento, desempacotamento e assinatura podem ser chaves simétricas ou pares de chaves assimétricos.

Java
// This example uses asymmetric wrapping and signing key pairs final KeyPair wrappingKeys = ... final KeyPair signingKeys = ... final WrappedMaterialsProvider cmp = new WrappedMaterialsProvider(wrappingKeys.getPublic(), wrappingKeys.getPrivate(), signingKeys);
Python
# This example uses symmetric wrapping and signing keys wrapping_key = ... signing_key = ... wrapped_cmp = WrappedCryptographicMaterialsProvider( wrapping_key=wrapping_key, unwrapping_key=wrapping_key, signing_key=signing_key )

Como funciona

O CMP encapsulado gera uma nova chave de criptografia para cada item. Ele usa as chaves de empacotamento, desempacotamento e assinatura que você fornece, conforme mostrado no diagrama a seguir.

A entrada, o processamento e a saída do provedor empacotado de materiais no DynamoDB Encryption Client

Obter materiais de criptografia

Esta seção descreve em detalhes as entradas, as saídas e o processamento do provedor encapsulado de materiais (CMP encapsulado) quando ele recebe uma solicitação de materiais de criptografia.

Entrada (do aplicativo)

  • Chave de empacotamento: uma chave simétrica do Advanced Encryption Standard (AES) ou uma chave pública RSA. Obrigatória se houver valores de atributo criptografados. Caso contrário, ela é opcional e ignorada.

  • Chave de descriptografia: opcional e ignorada.

  • Chave de assinatura

Entrada (do criptografador de itens)

Saída (para o criptografador de itens):

  • Chave de criptografia do item de texto simples

  • Chave de assinatura (inalterada)

  • Descrição real do material: esses valores são salvos no atributo de descrição do material que o cliente adiciona ao item.

    • amzn-ddb-env-key: chave de criptografia de item encapsulado codificada em Base64

    • amzn-ddb-env-alg: algoritmo de criptografia usado para criptografar o item. O padrão é AES-256-CBC.

    • amzn-ddb-wrap-alg: o algoritmo de empacotamento que o CMP empacotado usou para encapsular a chave de criptografia de item. Se a chave de empacotamento for uma chave do AES, ela será encapsulada com o AES-Keywrap não preenchido, conforme definido na RFC 3394. Se a chave de empacotamento é uma chave de RSA, ela é criptografada com OAEP de RSA com preenchimento MGF1.

Processamento

Quando você criptografa um item, transmite uma chave de empacotamento e outra de assinatura. A chave de descriptografia é opcional e ignorada.

  1. O CMP encapsulado gera uma chave exclusiva de criptografia simétrica para o item de tabela.

  2. Ele usa a chave de empacotamento que você especifica para encapsular a chave de criptografia de item. Depois, ele a remove da memória o mais rápido possível.

  3. Ele retorna a chave de criptografia do item de texto sem formatação, a chave de assinatura que você forneceu e uma descrição real do material que inclui a chave de criptografia do item empacotado e os algoritmos de criptografia e empacotamento.

  4. O criptografador do item usa a chave de criptografia de texto simples para criptografar o item. Ele usa a chave de assinatura que você forneceu para assinar o item. Depois, ele remove as chaves de texto simples da memória o mais rápido possível. Ele copia os campos na descrição real do material, incluindo a chave de criptografia encapsulada (amzn-ddb-env-key), para o atributo de descrição do material do item.

Obter materiais de descriptografia

Esta seção descreve em detalhes as entradas, as saídas e o processamento do provedor encapsulado de materiais (CMP encapsulado) quando ele recebe uma solicitação de materiais de descriptografia.

Entrada (do aplicativo)

  • Chave de criptografia: opcional e ignorada.

  • Chave de descriptografia: a mesma chave simétrica Advanced Encryption Standard (AES) ou a chave privada RSA que corresponde à chave pública RSA usada para criptografia. Obrigatória se houver valores de atributo criptografados. Caso contrário, ela é opcional e ignorada.

  • Chave de assinatura

Entrada (do criptografador de itens)

Saída (para o criptografador de itens)

  • Chave de criptografia do item de texto simples

  • Chave de assinatura (inalterada)

Processamento

Quando você descriptografa um item, transmite uma chave de desempacotamento e outra de assinatura. A chave de empacotamento é opcional e ignorada.

  1. O CMP encapsulado obtém a chave de criptografia de item encapsulado do atributo de descrição do material do item.

  2. Ele usa o algoritmo e a chave de desempacotamento para desencapsular a chave de criptografia de item.

  3. Ele retorna a chave de criptografia de item de texto simples, a chave de assinatura e os algoritmos de criptografia e assinatura para o criptografador do item.

  4. O criptografador do item usa a chave de assinatura para verificar o item. Quando consegue fazer isso, ele usa a chave de criptografia de item para descriptografar o item. Depois, ele remove as chaves de texto simples da memória o mais rápido possível.