Quais campos são criptografados e assinados? - 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á.

Quais campos são criptografados e assinados?

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 para DynamoDB é uma biblioteca de criptografia do lado do cliente projetada especialmente para aplicativos do Amazon DynamoDB. O Amazon DynamoDB armazena dados em tabelas, que são uma coleção de itens. Cada item é uma coleção de atributos. Cada atributo tem um nome e um valor. O SDK AWS de criptografia de banco de dados para DynamoDB criptografa os valores dos atributos. Em seguida, ele calcula uma assinatura sobre os atributos. Você pode especificar quais valores de atributo criptografar e quais incluir na assinatura.

A criptografia protege a confidencialidade do valor do atributo. A assinatura fornece a integridade de todos os atributos assinados e a relação entre ele, além de fornecer a autenticação. Ele permite que você detecte alterações não autorizadas no item como um todo, incluindo a adição ou a exclusão de atributos, ou a substituição de um valor criptografado por outro.

Em um item criptografado, alguns dados permanecem em texto simples, incluindo o nome da tabela, todos os nomes de atributos, valores de atributos que você não criptografa e os nomes e valores dos atributos de chave primária (chave de partição e chave de classificação). Não armazene dados confidenciais nesses campos.

Para obter mais informações sobre como o SDK AWS de criptografia de banco de dados para DynamoDB funciona, consulte. Como funciona o SDK AWS de criptografia de banco de dados

Criptografar valores de atributos

O SDK AWS de criptografia de banco de dados para DynamoDB criptografa os valores (mas não o nome ou o tipo do atributo) dos atributos que você especifica. Para determinar quais valores de atributos são criptografados, use as ações de atributos.

Por exemplo, esse item inclui atributos example e test.

'example': 'data', 'test': 'test-value', ...

Se você criptografar o atributo example, mas não o test, os resultados serão semelhantes aos seguintes. O valor do atributo example criptografado são dados binários, em vez de uma string.

'example': Binary(b"'b\x933\x9a+s\xf1\xd6a\xc5\xd5\x1aZ\xed\xd6\xce\xe9X\xf0T\xcb\x9fY\x9f\xf3\xc9C\x83\r\xbb\\"), 'test': 'test-value' ...

Os atributos de chave primária (chave de partição e chave de classificação) de cada item devem permanecer em texto sem formatação porque o DynamoDB os usa para encontrar o item na tabela. Eles devem ser assinados, mas não criptografados.

O SDK AWS de criptografia de banco de dados para DynamoDB identifica os atributos da chave primária para você e garante que seus valores sejam assinados, mas não criptografados. E, se você identificar a chave primária e tentar criptografá-la, o cliente gerará uma exceção.

O cliente armazena a descrição do material em um novo atributo (aws_dbe_head) que ele adiciona ao item. A descrição do material descreve como o item foi criptografado e assinado. O cliente usa essas informações para verificar e descriptografar o item. O campo que armazena a descrição do material não é criptografado.

Assinar o item

Depois de criptografar os valores dos atributos especificados, o SDK AWS de criptografia de banco de dados para DynamoDB calcula códigos de autenticação de mensagens baseados em hash (HMACs) e uma assinatura digital por meio da canonização da descrição do material, do contexto de criptografia e de cada campo marcado ou nas ações do atributo. ENCRYPT_AND_SIGNSIGN_ONLYSIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT As assinaturas ECDSA são habilitadas por padrão, mas não são obrigatórias. O cliente armazena os HMACs e as assinaturas em um novo atributo (aws_dbe_foot) que é adicionado ao item.