View a markdown version of this page

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 controle de versão 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, revise 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 GitHub repositó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 Migrando 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 1.8 do AWS Encryption CLI. x substitui a versão 1.7. x e AWS Encryption CLI 2.1. x substitui 2.0. x. Para obter detalhes, consulte o comunicado de segurança relevante no repositório https://github.com/aws/aws-encryption-sdk-cli/ aws-encryption-sdk-cli 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 repositório https://github.com/aws/aws-encryption-sdk-c/ aws-encryption-sdk-c CHANGELOG.md em. GitHub

Versão principal Detalhes Fase do ciclo de vida da versão principal do SDK
1.x 1,0 Versão inicial. End-of-Support fase
1,7 Atualizações do AWS Encryption SDK que ajudam os usuários de versões anteriores a fazer o upgrade para a versão 2.0. x e mais tarde. Para obter mais informações, consulte a versão 1.7. x.
2.x 2,0 Atualizações para AWS Encryption SDK o. 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 CHANGELOG.md no aws-encryption-sdk-net repositório em GitHub.

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

End-of-Support

A versão 3.x do AWS Encryption SDK for.NET entrou no fim do suporte; atualize para 4.x.

4.x 4,0 Adiciona suporte para o chaveiro AWS KMS hierárquico, o CMM de contexto de criptografia necessário e chaveiros RSA assimétricos. AWS KMS Disponibilidade geral (GA)
5.x 5,0 Atualizações para a versão 2. x da Biblioteca de Provedores de Materiais (MPL). Descarta o suporte ao AWS SDK para .NET v3 e exige o AWS SDK para .NET v4. 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 AWS de criptografia e acesse o CHANGELOG.rst repositório https://github.com/aws/aws-encryption-sdk-cli/ aws-encryption-sdk-cli ativado. GitHub

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

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

A versão 2.1.0 do AWS Encryption CLI é 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. End-of-Support fase
4.x 4,0 A CLI AWS de criptografia não oferece mais suporte ao Python 2 ou ao Python 3.4. A partir da versão principal 4. x da CLI de AWS criptografia, somente 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 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 Python 3.7 ou posterior é suportado.

Java

Para obter uma descrição detalhada de todas as alterações, consulte o repositório https://github.com/aws/aws-encryption-sdk-java/ aws-encryption-sdk-java CHANGELOG.rst em. GitHub

Versão principal Detalhes Fase do ciclo de vida da versão principal do SDK
1.x 1,0 Versão inicial. End-of-Support fase
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

Desaprova AwsCrypto.encryptString() 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 fazer o upgrade para a versão 2.0. x e mais tarde. Para obter mais informações, consulte a versão 1.7. x.
2.x 2,0 Atualizações para AWS Encryption SDK o. 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 de Provedores de Materiais (MPL).

Adiciona suporte para chaveiros RSA simétricos e assimétricos, chaveiros AWS KMS ECDH, AWS KMS chaveiros AWS KMS hierárquicos, chaveiros Raw AES, chaveiros Raw RSA, chaveiros Raw ECDH e o CMM de contexto de criptografia necessário. Multi-keyrings

Disponibilidade geral (GA)

Go

Para obter uma descrição detalhada de todas as alterações, consulte o diretório Go do repositório https://github.com/aws/aws-encryption-sdk/tree/mainline aws-encryption-sdk CHANGELOG.md em. GitHub

Versão principal Detalhes Fase do ciclo de vida da versão principal do SDK
0,1. x 0.1.0 Versão inicial. Disponibilidade geral (GA)

JavaScript

Para obter uma descrição detalhada de todas as alterações, consulte o repositório https://github.com/aws/aws-encryption-sdk-javascript/tree/master/modules aws-encryption-sdk-javascript CHANGELOG.md em. GitHub

Versão principal Detalhes Fase do ciclo de vida da versão principal do SDK
1.x 1,0 Versão inicial. End-of-Support fase
1,7 Atualizações do AWS Encryption SDK que ajudam os usuários de versões anteriores a fazer o upgrade para a versão 2.0. x e mais tarde. Para obter mais informações, consulte a versão 1.7. x.
2.x 2,0 Atualizações para AWS Encryption SDK o. Para obter mais informações, consulte a versão 2.0. x. End-of-Support fase
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 não suportar mais 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 dos 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 repositório https://github.com/aws/aws-encryption-sdk-python/ aws-encryption-sdk-python CHANGELOG.rst em. GitHub

Versão principal Detalhes Fase do ciclo de vida da versão principal do SDK
1.x 1,0 Versão inicial. End-of-Support fase
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 fazer o upgrade para a versão 2.0. x e mais tarde. Para obter mais informações, consulte a versão 1.7. x.
2.x 2,0 Atualizações para AWS Encryption SDK o. Para obter mais informações, consulte a versão 2.0. x. End-of-Support fase
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)
4.x 4,0

Integra-o AWS Encryption SDK for Python com a Biblioteca de Provedores de Materiais (MPL).

Disponibilidade geral (GA)

Rust

Para obter uma descrição detalhada de todas as alterações, consulte o diretório Rust do repositório https://github.com/aws/aws-encryption-sdk/tree/mainline aws-encryption-sdk CHANGELOG.md em. GitHub

Versão principal Detalhes Fase do ciclo de vida da versão principal do SDK
1.x 1,0 Versão inicial. 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. x versões do AWS Encryption SDK estão na fase de fim do suporte. 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 Migrando seu AWS Encryption SDK.

Versões AWS Encryption SDK anteriores à 1.7. x fornece recursos de segurança importantes, incluindo criptografia com o algoritmo Advanced Encryption Standard in Galois/Counter Mode (AES-GCM), uma função de derivação de chave HMAC-based de extração e expansão (HKDF), assinatura e uma 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. x versões do AWS Encryption SDK estão na fase de fim do suporte.

Versão 1.7. x foi projetado para ajudar os usuários de versões anteriores do a fazer o upgrade AWS Encryption SDK para a versão 2.0. x e mais tarde. Se você não conhece o 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 de descoberta. Esta versão adiciona alterações semelhantes à interface de AWS Encryption SDK linha de comando (CLI). Para obter detalhes, consulte Atualizando provedores de chaves AWS KMS mestras.

  • 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 foram descontinuados 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 descriptografar mensagens sem querer com chaves de embrulho que não pretendem usar, inclusive AWS KMS keys em outras regiões. 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 Atualizando AWS KMS chaveiros.

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

Começando na versão 1.7. x, ao descriptografar chaves de dados criptografadas, AWS Encryption SDK sempre especifica um AWS KMS key em suas chamadas para a AWS KMS operação Decrypt. 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 em uma chave KMS de criptografia simétrica, mas é uma prática recomendada. AWS KMS Assim como especificar chaves de encapsulamento em seu provedor de chaves, essa prática garante que AWS KMS só decodifique usando a chave de encapsulamento 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 é AWS Encryption SDK possível criptografar ou descriptografar com comprometimento 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 que você decifre AWS Encryption SDK o texto cifrado com e sem o comprometimento da 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 conjuntos de algoritmos suportados anteriormente, esses dois novos conjuntos de algoritmos incluem criptografia com AES-GCM, uma chave de criptografia de 256 bits e uma função de derivação de chave HMAC-based de extração e expansão (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 ou o GitHub repositório da API para sua linguagem AWS Encryption SDK linguagens de programação de programação.

Versão 2.0.x

Versão 2.0. O 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 na fase de fim do suporte.

Para obter informações sobre suporte e manutenção desta AWS Encryption SDK versão em sua linguagem de programação preferida, consulte o SUPPORT_POLICY.rst arquivo em seu GitHub repositó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 comprometimento 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.2.x

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 na fase de fim do suporte.

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

Assinaturas digitais

Para melhorar o tratamento de assinaturas digitais durante a descriptografia, ele AWS Encryption SDK inclui os seguintes recursos:

  • Non-streaming modo — retorna texto simples somente após o processamento de todas as entradas, incluindo a verificação da assinatura digital, se presente. 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.

  • Unsigned-only modo de decodificação — esse recurso decodifica somente 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.3.x

Adiciona suporte para chaves AWS KMS multirregionais. Para obter detalhes, consulte Usando várias regiões AWS KMS keys.

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 na fase de fim do suporte.

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