Referência - 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á.

Referência

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

Os tópicos a seguir fornecem detalhes técnicos da criptografia AWS de banco de dadosSDK.

Formato de descrição do material

A descrição do material serve como cabeçalho para um registro criptografado. Quando você criptografa e assina campos com a criptografia de AWS banco de dadosSDK, o criptografador registra a descrição do material à medida que reúne os materiais criptográficos e armazena a descrição do material em um novo campo (aws_dbe_head) que o criptografador adiciona ao seu registro. A descrição do material é uma estrutura de dados formatada portátil que contém a chave de dados criptografada e informações sobre como o registro foi criptografado e assinado. A tabela a seguir descreve os valores que formam a descrição do material. Os bytes são anexados na ordem mostrada.

Versão

A versão desse formato de campo aws_dbe_head.

Assinaturas habilitadas

Codifica se as assinaturas ECDSA digitais estão habilitadas para esse registro.

Valor de bytes Significado
0x01 ECDSAassinaturas digitais ativadas (padrão)
0x00 ECDSAassinaturas digitais desativadas
ID do registro

Um valor de 256 bits gerado aleatoriamente que identifica a mensagem. O ID do registro:

  • Identifica de forma exclusiva o registro criptografado.

  • Vincula a descrição do material ao registro criptografado.

Criptografar legenda

Uma descrição serializada de quais campos autenticados foram criptografados. O Encrypt Legend é usada para determinar quais campos o método de descriptografia deve tentar descriptografar.

Valor de bytes Significado
0x65 ENCRYPT_AND_SIGN
0x73 SIGN_ONLY

O Encrypt Legend é serializado da seguinte forma:

  1. Lexicograficamente pela sequência de bytes que representa seu caminho canônico.

  2. Para cada campo, em ordem, anexe um dos valores de byte especificados acima para indicar se esse campo deve ser criptografado.

Tamanho do contexto de criptografia

O tamanho do conteúdo criptografado. É um valor de 2 bytes interpretado como um inteiro não assinado de 16 bits. O comprimento máximo é de 65.535 bytes.

Contexto de criptografia

Um contexto de criptografia é um conjunto de pares de chave-valor que contêm dados autenticados adicionais arbitrários e não secretos.

Quando as assinaturas ECDSA digitais estão habilitadas, o contexto de criptografia contém o par de valores-chave. {"aws-crypto-footer-ecdsa-key": Qtxt} Qtxtrepresenta o ponto da curva elíptica Q comprimido de acordo com SEC1 versão 2.0 e depois codificado em base64.

Contagem de chaves de dados criptografados

O número de chaves de dados criptografadas. É um valor de 1 byte interpretado como um número inteiro não assinado de 8 bits que especifica o número de chaves de dados criptografadas. O número máximo de chaves de dados criptografadas em cada registro é 255.

Chaves de dados criptografadas

Uma sequência de chaves de dados criptografadas. O tamanho da sequência é determinado pelo número de chaves de dados criptografadas e pelo tamanho de cada uma delas. A sequência contém pelo menos uma chave de dados criptografada.

A tabela a seguir descreve os campos que formam cada chave de dados criptografada. Os bytes são anexados na ordem mostrada.

Estrutura da chave de dados criptografada
Campo Tamanho em bytes
Key Provider ID Length 2
Key Provider ID Variável. Igual ao valor especificado nos 2 bytes anteriores (tamanho do ID do provedor de chave).
Key Provider Information Length 2
Key Provider Information Variável. Igual ao valor especificado nos 2 bytes anteriores (tamanho das informações do provedor de chave).
Encrypted Data Key Length 2
Encrypted Data Key Variável. Igual ao valor especificado nos 2 bytes anteriores (tamanho da chave de dados criptografada).
Tamanho do ID do provedor de chaves

O tamanho do identificador do provedor de chave. É um valor de 2 bytes interpretado como um número inteiro não assinado de 16 bits que especifica o número de bytes que contém o ID do provedor de chave.

ID do provedor de chave

O identificador do provedor de chave. É usado para indicar o provedor da chave de dados criptografada e deve ser extensível.

Tamanho das informações do principal provedor

O tamanho das informações do provedor de chave. É um valor de 2 bytes interpretado como um número inteiro não assinado de 16 bits que especifica o número de bytes que contém as informações do provedor de chave.

Informações sobre os principais fornecedores

As informações do provedor de chave. São determinadas pelo provedor de chaves.

Quando você está usando um AWS KMS chaveiro, esse valor contém o Amazon Resource Name (ARN) do AWS KMS key.

Comprimento da chave de dados criptografados

O tamanho da chave de dados criptografada. É um valor de 2 bytes interpretado como um número inteiro não assinado de 16 bits que especifica o número de bytes que contém a chave de dados criptografada.

Chave de dados criptografada

A chave de dados criptografada. É a chave de criptografia dos dados criptografada pelo provedor de chaves.

Compromisso recorde

Um hash distinto de código de autenticação de mensagens baseado em hash (HMAC) de 256 bits calculado sobre todos os bytes anteriores da descrição do material usando a chave de confirmação.

AWS KMS Detalhes técnicos do chaveiro hierárquico

O token de autenticação hierárquico do AWS KMS usa uma chave de dados exclusiva para criptografar cada campo e criptografa cada chave de dados com uma chave de empacotamento exclusiva derivada de uma chave de ramificação ativa. Ele usa uma derivação de chave no modo contador com uma função pseudoaleatória com HMAC SHA -256 para derivar a chave de encapsulamento de 32 bytes com as seguintes entradas.

  • Um sal aleatório de 16 bytes

  • A chave de ramificação ativa

  • O valor codificado em UTF -8 para o identificador do provedor de chaves "” aws-kms-hierarchy

O chaveiro hierárquico usa a chave de empacotamento derivada para criptografar uma cópia da chave de dados em texto simples usando AES - GCM -256 com uma tag de autenticação de 16 bytes e as seguintes entradas.

  • A chave de empacotamento derivada é usada como a chave AES GCM cifrada -

  • A chave de dados é usada como a GCM mensagem AES -

  • Um vetor de inicialização aleatória de 12 bytes (IV) é usado como - IV AES GCM

  • Dados autenticados adicionais (AAD) contendo os seguintes valores serializados.

    Valor Tamanho em bytes Interpretada como
    "aws-kms-hierarchy" 17 UTF-8 codificado
    O identificador de chave de ramificação Variável UTF-8 codificado
    A versão da chave de ramificação 16 UTF-8 codificado
    Contexto de criptografia Variável UTF-8 pares de valores-chave codificados