Versões do AWS Encryption SDK - 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á.

Versões do AWS Encryption SDK

As implementações da AWS Encryption SDK linguagem usam versionamento semântico para facilitar a identificação da magnitude das mudanças em cada versão. Uma alteração no número da versão principal, como de 1.x. x para 2.x.x, indica uma alteração significativa que provavelmente exigirá alterações no código e uma implantação planejada. Alterações significativas em uma nova versão podem não afetar todos os casos de uso. Consulte as notas de lançamento para ver se você foi afetado. Uma alteração em uma versão secundária, como de x.1.x para x.2.x, é sempre compatível com versões anteriores, mas pode incluir elementos descontinuados.

Sempre que possível, use a versão mais recente do AWS Encryption SDK na linguagem de programação escolhida. A política de manutenção e suporte para cada versão é diferente para cada implementação de linguagem de programação. Para obter detalhes sobre as versões suportadas em sua linguagem de programação preferida, consulte o SUPPORT_POLICY.rst arquivo em seu GitHubrepositório.

Quando as atualizações incluem novos atributos que exigem configuração especial para evitar erros de criptografia ou descriptografia, fornecemos uma versão intermediária e instruções detalhadas para usá-la. Por exemplo, as versões 1.7.x e 1.8.x foram projetadas para serem versões transitórias que ajudam você a atualizar de versões anteriores à 1.7.x para as versões 2.0.x e posteriores. Para obter detalhes, consulte Como migrar seu AWS Encryption SDK.

nota

O x em um número de versão representa qualquer patch da versão principal e secundária. Por exemplo, a versão 1.7.x representa todas as versões que começam com 1.7, incluindo 1.7.1 e 1.7.9.

Novos recursos de segurança foram lançados originalmente nas versões 1.7 do AWS Encryption CLI. x e 2.0. x. No entanto, a versão AWS 1.8 do Encryption CLI. x substitui a versão 1.7. x e CLI de AWS criptografia 2.1. x substitui 2.0. x. Para obter detalhes, consulte a consultoria de segurança relevante no aws-encryption-sdk-clirepositório em GitHub.

As tabelas a seguir fornecem uma visão geral das principais diferenças entre as versões suportadas do AWS Encryption SDK para cada linguagem de programação.

C

Para obter uma descrição detalhada de todas as alterações, consulte o CHANGELOG.md no repositório em. aws-encryption-sdk-c GitHub

Versão principal Detalhes Fase do ciclo de vida da versão principal do SDK
1.x 1,0 Versão inicial. Fase de fim do suporte
1,7 Atualizações do AWS Encryption SDK que ajudam os usuários de versões anteriores a atualizar para as versões 2.0. x e mais tarde. Para obter mais informações, consulte a versão 1.7. x.
2.x 2,0 Atualizações do AWS Encryption SDK. Para obter mais informações, consulte a versão 2.0. x. Disponibilidade geral (GA)
2.2 Melhorias no processo de decodificação de mensagens.
2.3 Adiciona suporte para chaves AWS KMS multirregionais.

C# /.NET

Para obter uma descrição detalhada de todas as alterações, consulte o CHANGELOG.md no repositório em. aws-encryption-sdk-net GitHub

Versão principal Detalhes Fase do ciclo de vida da versão principal do SDK
3.x 3.0 Versão inicial.

Disponibilidade geral (GA)

A versão 3.x do AWS Encryption SDK para.NET entrará no modo de manutenção em 13 de maio de 2024.

4.x 4,0 Adiciona suporte ao AWS KMS chaveiro hierárquico, ao contexto de criptografia necessário (CMM) e aos chaveiros RSA assimétricos. AWS KMS Disponibilidade geral (GA)

Interface de linha de comando (CLI)

Para obter uma descrição detalhada de todas as alterações, consulte Versões da CLI de criptografia da AWS e o Changelog.rst no repositório em. aws-encryption-sdk-cli GitHub

Versão principal Detalhes Fase do ciclo de vida da versão principal do SDK
1.x 1,0 Versão inicial. Fase de fim do suporte
1,7 Atualizações do AWS Encryption SDK que ajudam os usuários de versões anteriores a atualizar para as versões 2.0. x e mais tarde. Para obter mais informações, consulte a versão 1.7. x.
2.x 2,0 Atualizações do AWS Encryption SDK. Para obter mais informações, consulte a versão 2.0. x. Fase de fim do suporte
2.1

Remove o --discovery parâmetro e o substitui pelo discovery atributo do --wrapping-keys parâmetro.

A versão 2.1.0 da CLI de AWS criptografia é equivalente à versão 2.0 em outras linguagens de programação.

2.2 Melhorias no processo de decodificação de mensagens.
3.x 3.0 Adiciona suporte para chaves AWS KMS multirregionais. Fase de fim do suporte
4.x 4,0 A CLI de AWS criptografia não é mais compatível com Python 2 ou Python 3.4. A partir da versão principal 4. x da CLI de AWS criptografia, somente o Python 3.5 ou posterior é suportado. Disponibilidade geral (GA)
4.1 A CLI AWS de criptografia não oferece mais suporte ao Python 3.5. A partir da versão 4.1. x da CLI de AWS criptografia, somente o Python 3.6 ou posterior é suportado.
4.2 A CLI AWS de criptografia não oferece mais suporte ao Python 3.6. A partir da versão 4.2. x da CLI de AWS criptografia, somente o Python 3.7 ou posterior é suportado.

Java

Para obter uma descrição detalhada de todas as alterações, consulte o Changelog.rst no repositório em. aws-encryption-sdk-java GitHub

Versão principal Detalhes Fase do ciclo de vida da versão principal do SDK
1.x 1,0 Versão inicial. Fase de fim do suporte
1.3 Adiciona suporte para gerenciador de materiais criptográficos e armazenamento em cache de chaves de dados. Transferido para a geração IV determinística.
1.6.1

Deprecia AwsCrypto.encryptString() e AwsCrypto.decryptString() e os substitui por e. AwsCrypto.encryptData() AwsCrypto.decryptData()

1,7 Atualizações do AWS Encryption SDK que ajudam os usuários de versões anteriores a atualizar para as versões 2.0. x e mais tarde. Para obter mais informações, consulte a versão 1.7. x.
2.x 2,0 Atualizações do AWS Encryption SDK. Para obter mais informações, consulte a versão 2.0. x.

Disponibilidade geral (GA)

A versão 2.x do AWS Encryption SDK for Java entrará no modo de manutenção em 2024.

2.2 Melhorias no processo de decodificação de mensagens.
2.3 Adiciona suporte para chaves AWS KMS multirregionais.
2.4 Adiciona suporte para AWS SDK for Java 2.x.
3.x 3.0

Integra-o AWS Encryption SDK for Java com a biblioteca do fornecedor de materiais.

Adiciona suporte para chaveiros RSA simétricos e assimétricos, AWS KMS chaveiros AWS KMS hierárquicos, chaveiros AES brutos, chaveiros RSA brutos, chaveiros múltiplos e o contexto de criptografia necessário CMM.

Disponibilidade geral (GA)

JavaScript

Para obter uma descrição detalhada de todas as alterações, consulte o CHANGELOG.md no repositório em. aws-encryption-sdk-javascript GitHub

Versão principal Detalhes Fase do ciclo de vida da versão principal do SDK
1.x 1,0 Versão inicial. Fase de fim do suporte
1,7 Atualizações do AWS Encryption SDK que ajudam os usuários de versões anteriores a atualizar para as versões 2.0. x e mais tarde. Para obter mais informações, consulte a versão 1.7. x.
2.x 2,0 Atualizações do AWS Encryption SDK. Para obter mais informações, consulte a versão 2.0. x. Fase de fim do suporte
2.2 Melhorias no processo de decodificação de mensagens.
2.3 Adiciona suporte para chaves AWS KMS multirregionais.
3.x 3.0 Remove a cobertura de CI para o Node 10. Atualiza as dependências para que não sejam mais compatíveis com o Node 8 e o Node 10.

Manutenção

O suporte para a versão 3.x do AWS Encryption SDK para JavaScript terminará em 17 de janeiro de 2024.

4.x 4,0 Requer a versão 3 AWS Encryption SDK para JavaScript do s kms-client para usar o AWS KMS chaveiro. Disponibilidade geral (GA)

Python

Para obter uma descrição detalhada de todas as alterações, consulte o Changelog.rst no repositório em. aws-encryption-sdk-python GitHub

Versão principal Detalhes Fase do ciclo de vida da versão principal do SDK
1.x 1,0 Versão inicial. Fase de fim do suporte
1.3 Adiciona suporte para gerenciador de materiais criptográficos e armazenamento em cache de chaves de dados. Transferido para a geração IV determinística.
1,7 Atualizações do AWS Encryption SDK que ajudam os usuários de versões anteriores a atualizar para as versões 2.0. x e mais tarde. Para obter mais informações, consulte a versão 1.7. x.
2.x 2,0 Atualizações do AWS Encryption SDK. Para obter mais informações, consulte a versão 2.0. x. Fase de fim do suporte
2.2 Melhorias no processo de decodificação de mensagens.
2.3 Adiciona suporte para chaves AWS KMS multirregionais.
3.x 3.0 O AWS Encryption SDK for Python não oferece mais suporte ao Python 2 ou ao Python 3.4. A partir da versão principal 3. x do AWS Encryption SDK for Python, somente o Python 3.5 ou posterior é suportado. Disponibilidade geral (GA)

Detalhes da versão

A lista a seguir descreve as principais diferenças entre as versões suportadas do AWS Encryption SDK.

Versões anteriores à 1.7.x

nota

Todos os 1. x. As versões x do AWS Encryption SDK estão em end-of-supportfase. Atualize para a versão mais recente disponível do AWS Encryption SDK para sua linguagem de programação assim que possível. Para atualizar de uma AWS Encryption SDK versão anterior à 1.7. x, você deve primeiro atualizar para 1.7. x. Para obter detalhes, consulte Como migrar seu AWS Encryption SDK.

Versões AWS Encryption SDK anteriores à 1.7. x fornecem recursos de segurança importantes, incluindo criptografia com o algoritmo Advanced Encryption Standard no Galois/Counter Mode (AES-GCM), uma função de derivação de chave (HKDF) baseada em HMAC, assinatura e uma extract-and-expand chave de criptografia de 256 bits. No entanto, elas não são compatíveis com as práticas recomendadas por nós, incluindo confirmação de chave.

Versão 1.7.x

nota

Todos os 1. x. As versões x do AWS Encryption SDK estão em end-of-supportfase.

Versão 1.7. x foi projetado para ajudar os usuários de versões anteriores do a atualizar AWS Encryption SDK para as versões 2.0. x e mais tarde. Se você é novo no AWS Encryption SDK, pode pular essa versão e começar com a versão mais recente disponível em sua linguagem de programação.

A versão 1.7.x é totalmente compatível com versões anteriores; ela não introduz nenhuma alteração significativa nem altera o comportamento do AWS Encryption SDK. Também é compatível com versões posteriores. Permite que você atualize seu código para que ele seja compatível com a versão 2.0.x.. Ela inclui novos atributos, mas não os habilita completamente. E requer valores de configuração que evitem que você adote imediatamente todos os novos atributos até que esteja pronto para fazer isso.

A versão 1.7.x inclui as seguintes alterações:

AWS KMS atualizações do provedor de chave mestra (obrigatório)

Versão 1.7. x introduz novos construtores no AWS Encryption SDK for Java e AWS Encryption SDK for Python que criam explicitamente provedores de chaves AWS KMS mestras no modo estrito ou no modo de descoberta. Esta versão adiciona alterações semelhantes à interface de AWS Encryption SDK linha de comando (CLI). Para obter detalhes, consulte Como atualizar provedores de chaves mestras do AWS KMS.

  • No modo estrito, os provedores de chaves mestras do AWS KMS exigem uma lista de chaves de encapsulamento e criptografam e descriptografam somente com as chaves de encapsulamento que você especificar. Essa é uma prática recomendada do AWS Encryption SDK que garante que você use as chaves de encapsulamento que pretende usar.

  • No modo de descoberta, os provedores de chaves mestras do AWS KMS não aceitam nenhuma chave de encapsulamento. Você não pode usá-los para criptografar. Ao descriptografar, eles podem usar qualquer chave de encapsulamento para descriptografar uma chave de dados criptografada. No entanto, você pode limitar as chaves de encapsulamento usadas para descriptografia àquelas presentes em Contas da AWS específicas. Esse filtro de descoberta é opcional, mas é uma prática recomendada que incentivamos.

Os construtores que criam versões anteriores dos provedores de chaves AWS KMS mestras estão obsoletos na versão 1.7. x e removido na versão 2.0. x. Esses construtores instanciam provedores de chave mestra que criptografam usando as chaves de encapsulamento que você especificar. No entanto, eles descriptografam chaves de dados criptografadas usando a chave de encapsulamento que as criptografou, independentemente das chaves de encapsulamento especificadas. Os usuários podem decifrar mensagens sem querer com chaves de agrupamento que não pretendem usar, inclusive em outras regiões. AWS KMS keys Contas da AWS

Não há alterações nos construtores das chaves AWS KMS mestras. Ao criptografar e descriptografar, as chaves AWS KMS mestras usam somente o AWS KMS key que você especificar.

AWS KMS atualizações de chaveiros (opcional)

Versão 1.7. x adiciona um novo filtro às AWS Encryption SDK para JavaScript implementações AWS Encryption SDK for C e que limita os chaveiros de AWS KMS descoberta a determinados. Contas da AWS Esse novo filtro de conta é opcional, mas é uma prática recomendada que apoiamos. Para obter detalhes, consulte Atualizar tokens de autenticação do AWS KMS.

Não há alterações nos construtores dos AWS KMS chaveiros. AWS KMS Os chaveiros padrão se comportam como fornecedores de chaves mestras no modo estrito. AWS KMS os chaveiros de descoberta são criados explicitamente no modo de descoberta.

Passando um ID de chave para AWS KMS Decrypt

A partir da versão 1.7. x, ao descriptografar chaves de dados criptografadas, o AWS Encryption SDK sempre especifica an AWS KMS key em suas chamadas para a operação Decrypt. AWS KMS O AWS Encryption SDK obtém o valor do ID da chave a AWS KMS key partir dos metadados em cada chave de dados criptografada. Esse atributo não requer alterações no código.

Não AWS KMS key é necessário especificar o ID da chave do para descriptografar o texto cifrado que foi criptografado com uma chave KMS de criptografia simétrica, mas é uma prática recomendada.AWS KMS Assim como especificar chaves de agrupamento em seu provedor de chaves, essa prática garante que AWS KMS apenas descriptografe usando a chave de agrupamento que você pretende usar.

Decriptografar texto cifrado com confirmação de chave

A versão 1.7x pode descriptografar texto cifrado criptografado com ou sem confirmação de chave. No entanto, ela não pode criptografar texto cifrado com confirmação de chave. Essa propriedade permite que você implante totalmente aplicações que podem descriptografar texto cifrado criptografado com confirmação de chave antes mesmo de encontrem esse tipo de texto cifrado. Como essa versão descriptografa mensagens que são criptografadas sem confirmação de chave, você não precisa recriptografar nenhum texto cifrado.

Para implementar esse comportamento, versão 1.7. x inclui uma nova configuração de política de compromisso que determina se eles AWS Encryption SDK podem criptografar ou descriptografar com compromisso de chave. Na versão 1.7. x, o único valor válido para a política de compromisso, ForbidEncryptAllowDecrypt, é usado em todas as operações de criptografia e descriptografia. Esse valor impede que o AWS Encryption SDK criptografe com qualquer um dos novos pacotes de algoritmos que incluem confirmação de chave. Ele permite AWS Encryption SDK decifrar texto cifrado com e sem compromisso de chave.

Embora haja apenas um valor de política de compromisso válido na versão 1.7.x, exigimos que você defina esse valor explicitamente ao usar as novas APIs introduzidas nesta versão. Definir o valor explicitamente impede que sua política de compromisso seja alterada automaticamente para require-encrypt-require-decrypt quando você atualizar para a versão 2.1.x. Em vez disso, você pode migrar sua política de compromisso em etapas.

Pacotes de algoritmos com confirmação de chave fundamental

Versão 1.7. x inclui dois novos pacotes de algoritmos compatíveis com o confirmação de chaves. Um inclui assinatura; o outro, não. Como os pacotes de algoritmos suportados anteriormente, esses dois novos pacotes de algoritmos incluem criptografia com AES-GCM, uma chave de criptografia de 256 bits e uma função de derivação de chave baseada em HMAC ( extract-and-expand HKDF).

No entanto, o conjunto de algoritmos padrão usado para criptografia não muda. Esses pacotes de algoritmos foram adicionados à versão 1.7.x para preparar a aplicação para usá-los nas versões 2.0.x e posteriores.

Alterações na implementação do CMM

A versão 1.7.x introduz mudanças na interface Default do gerenciador de materiais criptográficos (CMM) para dar suporte ao o comprometimento chave. Essa alteração lhe afeta somente se você tiver escrito um CMM personalizado. Para obter detalhes, consulte a documentação da API ou o GitHub repositório da sua linguagem de programação.

Versão 2.0x

Versão 2.0. x oferece suporte aos novos recursos de segurança oferecidos no AWS Encryption SDK, incluindo chaves de empacotamento especificadas e comprometimento de chaves. A versão 2.0.x inclui alterações significativas em relação a todas as versões anteriores do AWS Encryption SDK. Você pode se preparar para essas mudanças implantando a versão 1.7.x.. A versão 2.0.x inclui todos os novos atributos introduzidos na versão 1.7.x com as seguintes adições e alterações.

nota

Versão 2. x. x do AWS Encryption SDK for Python, AWS Encryption SDK para JavaScript, e a CLI de AWS criptografia estão em fase. end-of-support

Para obter informações sobre suporte e manutenção dessa AWS Encryption SDK versão em sua linguagem de programação preferida, consulte o SUPPORT_POLICY.rst arquivo em seu GitHubrepositório.

AWS KMS fornecedores de chaves mestras

Os construtores originais do provedor de chave AWS KMS mestra que foram descontinuados na versão 1.7. x são removidos na versão 2.0. x. Você deve criar explicitamente provedores de chaves mestras do AWS KMS no modo estrito ou no modo de descoberta.

Criptografe e descriptografe texto cifrado com confirmação de chave

A versão 2.0.x pode descriptografar texto cifrado criptografado com ou sem confirmação de chave. Seu comportamento é determinado pela definição da política de compromisso. Por padrão, ela sempre criptografa com confirmação de chave e só descriptografa texto cifrado criptografado com confirmação de chave. A menos que você altere a política de compromisso, o AWS Encryption SDK não descriptografa textos cifrados criptografados por nenhuma versão anterior do AWS Encryption SDK, incluindo a versão 1.7.x..

Importante

Por padrão, a versão 2.0.x não descriptografa nenhum texto cifrado que tenha sido criptografado sem a confirmação de chave. Se a aplicação encontrar um texto cifrado criptografado sem confirmação de chave, defina um valor de política de compromisso como AllowDecrypt.

Na versão 2.0.x, a configuração da política de compromisso tem três valores válidos:

  • ForbidEncryptAllowDecrypt: o AWS Encryption SDK não pode criptografar com confirmação de chave. Ele pode descriptografar textos cifrados criptografados com ou sem confirmação de chave.

  • RequireEncryptAllowDecrypt: o AWS Encryption SDK deve criptografar com confirmação de chave. Ele pode descriptografar textos cifrados criptografados com ou sem confirmação de chave.

  • RequireEncryptRequireDecrypt(padrão) — AWS Encryption SDK É necessário criptografar com compromisso de chave. Ele só descriptografa textos cifrados com confirmação de chave.

Se você estiver migrando de uma versão anterior do AWS Encryption SDK para a versão 2.0. x, defina a política de compromisso com um valor que garanta que você possa descriptografar todos os textos cifrados existentes que seu aplicativo possa encontrar. É provável que você ajuste essa configuração com o tempo.

Versão 2.2x

Adiciona suporte para assinaturas digitais e limita as chaves de dados criptografadas.

nota

Versão 2. x. x do AWS Encryption SDK for Python, AWS Encryption SDK para JavaScript, e a CLI de AWS criptografia estão em fase. end-of-support

Para obter informações sobre suporte e manutenção dessa AWS Encryption SDK versão em sua linguagem de programação preferida, consulte o SUPPORT_POLICY.rst arquivo em seu GitHubrepositório.

Assinaturas digitais

Para melhorar o manuseio de assinaturas digitais durante a decodificação, isso AWS Encryption SDK inclui os seguintes recursos:

  • Modo sem streaming: retorna texto simples somente após o processamento de todas as entradas, incluindo a verificação da assinatura digital, se houver uma. Esse atributo impede que você use texto simples antes de verificar a assinatura digital. Use-o sempre que descriptografar dados criptografados com assinaturas digitais (o pacote de algoritmos padrão). Por exemplo, como a CLI de AWS criptografia sempre processa dados no modo de streaming, use o - -buffer parâmetro ao descriptografar texto cifrado com assinaturas digitais.

  • Modo de descriptografia somente não assinada: esse atributo só descriptografa texto cifrado não assinado. Se a descriptografia encontrar uma assinatura digital no texto cifrado, a operação falhará. Use esse atributo para evitar o processamento não intencional de texto simples de mensagens assinadas antes de verificar a assinatura.

Limitar as chaves de dados criptografadas

Você pode limitar o número de chaves de dados criptografadas em uma mensagem criptografada. Esse atributo pode ajudar você a detectar um provedor de chave mestra ou um token de autenticação mal configurado ao criptografar ou a identificar um texto cifrado malicioso ao descriptografar.

Você deve limitar as chaves de dados criptografadas ao descriptografar mensagens de uma fonte não confiável. Isso evita chamadas desnecessárias, caras e potencialmente exaustivas para sua infraestrutura principal.

Versão 2.3x

Adiciona suporte para chaves AWS KMS multirregionais. Para obter detalhes, consulte Usar AWS KMS keys multirregionais.

nota

A CLI AWS de criptografia oferece suporte a chaves multirregionais a partir da versão 3.0. x.

Versão 2. x. x do AWS Encryption SDK for Python, AWS Encryption SDK para JavaScript, e a CLI de AWS criptografia estão em fase. end-of-support

Para obter informações sobre suporte e manutenção dessa AWS Encryption SDK versão em sua linguagem de programação preferida, consulte o SUPPORT_POLICY.rst arquivo em seu GitHubrepositório.