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 Wrapped CMP não depende de nenhum AWS serviço. 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 Wrapped CMP é um dos vários fornecedores de materiais criptográficos (CMPs) compatíveis com o DynamoDB Encryption Client. Para obter informações sobre o outro CMPs, consulteProvedor 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 for uma chave RSA, a chave será criptografada usando RSA OAEP 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.