Gerando chaves de dados - AWS Key Management Service

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á.

Gerando chaves de dados

Usuários autorizados podem usar a GenerateDataKey API (e outras relacionadas APIs) para solicitar um tipo específico de chave de dados ou uma chave aleatória de tamanho arbitrário. Este tópico oferece uma visão simplificada dessa operação de API. Para obter detalhes, consulte GenerateDataKey APIs a Referência AWS Key Management Service da API.

Veja, a seguir, a sintaxe de solicitação do GenerateDataKey.

{ “EncryptionContext”: {“string” : “string”}, “GrantTokens”: [“string”], “KeyId”: “string”, “NumberOfBytes”: “number” }

A solicitação aceita os dados a seguir no formato JSON.

KeyId

Identificador de chave da chave usada para criptografar a chave de dados. O valor deve identificar uma chave do KMS de criptografia simétrica.

Esse parâmetro é obrigatório.

NumberOfBytes

Um inteiro que contém o número de bytes a serem gerados. Esse parâmetro é obrigatório.

O autor da chamada deve fornecer KeySpec ou NumberOfBytes, mas não ambos.

EncryptionContext

(Opcional) Nome: par de valores que contém dados adicionais para autenticar durante os processos de criptografia e descriptografia que usam a chave.

GrantTokens

(Opcional) Uma lista de tokens de concessão que representam concessões que fornecem permissões para geração ou uso de uma chave. Para obter mais informações sobre concessões e tokens de concessão, consulte Autenticação e controle de acesso para o AWS KMS no Guia do desenvolvedor do AWS Key Management Service .

Depois de autenticar o comando, AWS KMS, adquire o EKT ativo atual associado à chave KMS. Ele passa o EKT junto com sua solicitação fornecida e qualquer contexto de criptografia para um HSM por meio de uma sessão protegida entre o AWS KMS host e um HSM no domínio.

O HSM faz o seguinte:

  1. Gera o material secreto solicitado e mantém esse material na memória volátil.

  2. Descriptografa o EKT fazendo a correspondência do ID de chave da chave KMS definida na solicitação para obter o HBK = Descriptografia(DKi, EKT) ativo.

  3. Gera um nonce N aleatório.

  4. Gera uma chave de criptografia derivada do AES-GCM de 256 bits K de HBK e N.

  5. Criptografa o material secreto texto cifrado = Criptografia(K, contexto, segredo).

GenerateDataKeyretorna o material secreto em texto simples e o texto cifrado para você pelo canal seguro entre o AWS KMS host e o HSM. AWS KMS em seguida, envia para você pela sessão TLS. AWS KMS não retém o texto simples ou o texto cifrado. Sem a posse do texto cifrado, do contexto de criptografia e da autorização para usar a chave KMS, o segredo subjacente não pode ser retornado.

Veja, a seguir, a sintaxe de resposta.

{ "CiphertextBlob": "blob", "KeyId": "string", "Plaintext": "blob" }

O gerenciamento de chaves de dados é deixado para você como o desenvolvedor do aplicativo. Para obter as melhores práticas de criptografia do lado do cliente com chaves de AWS KMS dados (mas não com pares de chaves de dados), você pode usar o. AWS Encryption SDK

Chaves de dados podem ser alternadas em qualquer frequência. Além disso, a chave de dados em si pode ser recriptografada para uma chave KMS diferente ou uma chave KMS alternada usando a operação da API do ReEncrypt. Para obter detalhes, consulte ReEncrypta Referência AWS Key Management Service da API.