Tokens de autenticação - AWS Encryption 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á.

Tokens de autenticação

As implementações de linguagem de programação suportadas usam chaveiros para realizar a criptografia de envelopes. Tokens de autenticação geram, criptografam e descriptografam chaves de dados. Os tokens de autenticação determinam a origem das chaves de dados exclusivas que protegem cada mensagem, bem como as chaves de encapsulamento que criptografam essa chave de dados. Você especifica um token de autenticação ao criptografar e especifica o mesmo ou outro token de autenticação ao descriptografar. Você pode usar os tokens de autenticação fornecidos pelo SDK ou elaborar seus próprios tokens de autenticação personalizados compatíveis.

É possível usar cada token individualmente ou combiná-los em um multitoken de autenticação. Embora a maioria dos tokens de autenticação possa gerar, criptografar e descriptografar chaves de dados, você pode criar um que execute apenas uma operação, por exemplo, um token que gere apenas chaves de dados, e usá-lo em combinação com outros.

Recomendamos que você use um chaveiro que proteja suas chaves de agrupamento e execute operações criptográficas dentro de um limite seguro, como o AWS KMS chaveiro, que usa AWS KMS keys that never leave () sem criptografia. AWS Key Management ServiceAWS KMS Você também pode escrever um chaveiro que use chaves de agrupamento armazenadas em seus módulos de segurança de hardware (HSMs) ou protegidas por outros serviços de chave mestra. Para obter detalhes, consulte o tópico Interface do token de autenticação na Especificação do AWS Encryption SDK .

Os chaveiros desempenham o papel de chaves mestras e provedores de chaves mestras usados em outras implementações de linguagens de programação. Se você usar diferentes implementações de linguagem do AWS Encryption SDK para criptografar e descriptografar seus dados, certifique-se de usar tokens de autenticação e provedores de chaves mestras compatíveis. Para obter detalhes, consulte Compatibilidade dos tokens de autenticação.

Este tópico explica como usar o recurso de chaveiro do AWS Encryption SDK e como escolher um chaveiro.

Como os tokens de autenticação funcionam

Quando você criptografa dados, AWS Encryption SDK ele solicita materiais de criptografia ao chaveiro. O token de autenticação retorna uma chave dados de texto simples e uma cópia da chave de dados que é criptografada por cada uma das chaves de encapsulamento no token de autenticação. O AWS Encryption SDK usa a chave de texto simples para criptografar os dados e, em seguida, destrói a chave de dados de texto sem formatação. Em seguida, AWS Encryption SDK retorna uma mensagem criptografada que inclui as chaves de dados criptografadas e os dados criptografados.

Criptografar com um token de autenticação com várias chaves de encapsulamento.

Ao descriptografar dados, você pode usar o mesmo token de autenticação usado para criptografar os dados ou um token diferente. Para descriptografar os dados, um token de autenticação de descriptografia deve incluir (ou ter acesso a) pelo menos uma chave de encapsulamento no token de autenticação de criptografia.

Ele AWS Encryption SDK passa as chaves de dados criptografadas da mensagem criptografada para o chaveiro e solicita que o chaveiro decifre qualquer uma delas. O token de autenticação usa suas chaves de empacotamento para descriptografar uma das chaves de dados criptografadas e retorna uma chave de dados de texto simples. O AWS Encryption SDK usa a chave de dados de texto simples para descriptografar os dados. Se nenhuma das chaves de empacotamento no token de autenticação puder descriptografar qualquer uma das chaves de dados criptografadas, a operação de descriptografia falhará.

Descriptografar com um token de autenticação.

Você pode usar um único token de autenticação ou também combinar tokens de autenticação do mesmo ou outro tipo em um multitoken de autenticação. Quando você criptografa dados, o multitoken de autenticação retorna uma cópia da chave de dados criptografada por todas as chaves de empacotamento em todos os tokens de autenticação que compreendem o multitoken de autenticação. É possível descriptografar os dados usando um token de autenticação com qualquer uma das chaves de encapsulamento no multitoken de autenticação.

Compatibilidade dos tokens de autenticação

Embora as diferentes implementações de linguagem do AWS Encryption SDK tenham algumas diferenças arquitetônicas, elas são totalmente compatíveis, sujeitas às restrições de linguagem. Você pode criptografar seus dados usando uma implementação de linguagem e descriptografá-los em qualquer outra implementação de linguagem. No entanto, é necessário usar as mesmas chaves de encapsulamento, ou correspondentes, para criptografar e descriptografar suas chaves de dados. Para obter informações sobre restrições de linguagem, consulte o tópico sobre a implementação de cada linguagem, como Compatibilidade do AWS Encryption SDK para JavaScript no AWS Encryption SDK para JavaScript tópico.

Os chaveiros são compatíveis com as seguintes linguagens de programação:

  • AWS Encryption SDK for C

  • AWS Encryption SDK para JavaScript

  • AWS Encryption SDK para o.NET

  • Versão 3. x do AWS Encryption SDK for Java

  • Versão 4. x do AWS Encryption SDK for Python, quando usado com a dependência opcional da Biblioteca de Provedores de Material Criptográfico (MPL).

  • AWS Encryption SDK para Rust

  • AWS Encryption SDK para Go

Requisitos variados para tokens de autenticação de criptografia

Em implementações de AWS Encryption SDK linguagem diferentes da AWS Encryption SDK for C, todas as chaves agrupadas em um chaveiro de criptografia (ou vários chaveiros) ou provedor de chave mestra devem ser capazes de criptografar a chave de dados. Se alguma chave de encapsulamento falhar na criptografia, o método de criptografia falhará. Como resultado, o chamador deve ter as permissões necessárias para todas as chaves no token de autenticação. Se você usar um token de autenticação para criptografar dados, sozinho ou em um token de autenticação múltiplo, a operação de criptografia falhará.

A exceção é a AWS Encryption SDK for C, em que a operação de criptografia ignora um chaveiro de descoberta padrão, mas falha se você especificar um chaveiro de descoberta de várias regiões, sozinho ou em um chaveiro com várias chaves.

Tokens de autenticação e provedores de chaves mestras compatíveis

A tabela a seguir mostra quais chaves mestras e fornecedores de chaves mestras são compatíveis com os chaveiros fornecidos pela empresa AWS Encryption SDK . Qualquer pequena incompatibilidade devido às restrições de linguagem é explicada no tópico sobre a implementação de linguagem.

Token de autenticação: Provedor de chaves mestras:
AWS KMS chaveiro

KMSMasterChave (Java)

KMSMasterKeyProvider (Java)

KMSMasterChave (Python)

KMSMasterKeyProvider (Python)

nota

O AWS Encryption SDK for Python e AWS Encryption SDK for Java não inclui uma chave mestra ou um provedor de chave mestra que seja equivalente ao chaveiro AWS KMS regional Discovery.

AWS KMS Chaveiro hierárquico

Compatível com as seguintes linguagens e versões de programação:

  • Versão 3. x do AWS Encryption SDK for Java

  • Versão 4. x do AWS Encryption SDK para o.NET

  • Versão 4. x do AWS Encryption SDK for Python, quando usado com a dependência opcional da Biblioteca de Provedores de Material Criptográfico (MPL).

  • Versão 1. x do AWS Encryption SDK para Rust

  • Versão 0.1. x ou posterior do AWS Encryption SDK for Go

AWS KMS Chaveiro ECDH

Compatível com as seguintes linguagens e versões de programação:

  • Versão 3. x do AWS Encryption SDK for Java

  • Versão 4. x do AWS Encryption SDK para o.NET

  • Versão 4. x do AWS Encryption SDK for Python, quando usado com a dependência opcional da Biblioteca de Provedores de Material Criptográfico (MPL).

  • Versão 1. x do AWS Encryption SDK para Rust

  • Versão 0.1. x ou posterior do AWS Encryption SDK for Go

Token de autenticação bruto do AES

Quando são usados com chaves de criptografia simétrica:

JceMasterKey(Java)

RawMasterKey(Python)

Token de autenticação bruto do RSA

Quando são usados com chaves de criptografia assimétrica:

JceMasterKey(Java)

RawMasterKey(Python)

nota

O token de autenticação RSA bruto não oferece suporte a chaves do KMS assimétricas. Se você quiser usar chaves RSA KMS assimétricas, versão 4. x do AWS Encryption SDK for.NET suporta AWS KMS chaveiros que usam criptografia simétrica (SYMMETRIC_DEFAULT) ou RSA assimétrica. AWS KMS keys

Chaveiro ECDH bruto

Compatível com as seguintes linguagens e versões de programação:

  • Versão 3. x do AWS Encryption SDK for Java

  • Versão 4. x do AWS Encryption SDK para o.NET

  • Versão 4. x do AWS Encryption SDK for Python, quando usado com a dependência opcional da Biblioteca de Provedores de Material Criptográfico (MPL).

  • Versão 1. x do AWS Encryption SDK para Rust

  • Versão 0.1. x ou posterior do AWS Encryption SDK for Go