Versões doAWS 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 doAWS Encryption SDK

OAWS Encryption SDKuso de implementações de linguagemversionamento semânticopara facilitar a identificação da magnitude das mudanças em cada versão. Uma mudança no número da versão principal, como 1.x.xpara 2.x.x, indica uma mudança radical que provavelmente exigirá mudanças no código e uma implantação planejada. Uma alteração em uma versão secundária, comox11..xparax42..x, é sempre compatível com versões anteriores, mas pode incluir elementos obsoletos.

Sempre que possível, use a versão mais recente doAWS Encryption SDKna linguagem de programação escolhida. Opolítica de manutenção e suportepara cada versão difere entre as implementações da linguagem de programação. Para obter detalhes sobre as versões com suporte na linguagem de programação de sua preferência, consulte oSUPPORT_POLICY.rstarquivo em seuGitHubrepositório.

Quando as atualizações incluem novos recursos 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, versões 1.7.xe 1.8.xsão projetadas para serem versões de transição que ajudam você a fazer o upgrade de versões anteriores à 1.7.xpara as versões 2.0.xe mais tarde. Para obter detalhes, consulte Migração de seuAWS Encryption SDK.

Para obter uma descrição detalhada das mudanças para cada versão da sua linguagem de programação, consulte o Changelog de cada repositório.

nota

Oxem um número de versão representa qualquer patch da versão principal e secundária. Por exemplo, a versão 1.7.xrepresenta 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 emAWSEncryption CLI versões 1.7.xe 2.0.x. No entanto,AWSCLI de criptografia versão 1.8.xsubstitui a versão 1.7.xeAWSEncriptação de CLI 2.1.xsubstitui 2.0.x. Para obter detalhes, consulte o relevanteconsultoria de segurançanaaws-encryption-sdk-clirepositório em GitHub.

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

Versões anteriores a 1.7.x

nota

Tudo 1.x.xversões doAWS Encryption SDKestão noend-of-supportestágio. Atualize para a versão mais recente disponível doAWS Encryption SDKpara sua linguagem de programação assim que possível. Para fazer o upgrade de umAWS Encryption SDKversão anterior a 1.7.x, você deve primeiro fazer o upgrade para 1.7.x. Para obter detalhes, consulte Migração de seuAWS Encryption SDK.

Versões doAWS Encryption SDKantes de 1,7.xfornecem recursos de segurança importantes, incluindo criptografia com o algoritmo Advanced Encryption Standard no modo Galois/Counter (AES-GCM), baseado em HMAC extract-and-expand função de derivação de chaves (HKDF), assinatura e chave de criptografia de 256 bits. No entanto, essas versões não suportampráticas recomendadasque recomendamos, incluindocompromisso chave.

Versão 1.7.x

nota

Tudo 1.x.xversões doAWS Encryption SDKestão noend-of-supportestágio.

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

Versão 1.7.xé totalmente compatível com versões anteriores; não introduz nenhuma alteração significativa nem altera o comportamento doAWS Encryption SDK. Também é compatível com versões anteriores; permite que você atualize seu código para que seja compatível com a versão 2.0.x. Ele inclui novos recursos, mas não os habilita totalmente. E isso exige valores de configuração que impeçam que você adote imediatamente todos os novos recursos até que esteja pronto.

Versão 1.7.xinclui as seguintes alterações:

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

Versão 1.7.xintroduz novos construtores noAWS Encryption SDK for JavaeAWS Encryption SDK for Pythonque criam explicitamenteAWS KMSprovedores de chave mestra em qualquer umrestritaoudetecçãomodo. Esta versão adiciona alterações semelhantes aoAWS Encryption SDKinterface de linha de comando (CLI). Para obter detalhes, consulte AtualizandoAWS KMSprovedores de chaves mestras.

  • Emmodo estrito,AWS KMSos provedores de chaves mestras exigem uma lista de chaves de empacotamento e criptografam e decodificam somente com as chaves de empacotamento que você especificar. Este é umAWS Encryption SDKmelhor prática que garante que você esteja usando as chaves de empacotamento que pretende usar.

  • Emmodo de descoberta,AWS KMSos provedores de chaves mestras não aceitam nenhuma chave de empacotamento. Você não pode usá-los para criptografar. Ao descriptografar, eles podem usar qualquer chave de empacotamento para descriptografar uma chave de dados criptografada. No entanto, você pode limitar as chaves de empacotamento usadas para descriptografia àquelas em particularContas da AWS. A filtragem de contas é opcional, mas é umaprática recomendadaque recomendamos.

Os construtores que criam versões anteriores doAWS KMSos provedores de chave mestras estão obsoletos na versão 1.7.xe removido na versão 2.0.x. Esses construtores instanciam provedores de chaves mestras que criptografam usando as chaves de empacotamento que você especificar. No entanto, eles decodificam as chaves de dados criptografadas usando a chave de empacotamento que as criptografou, sem considerar as chaves de empacotamento especificadas. Os usuários podem, sem querer, descriptografar mensagens com chaves de empacotamento que não pretendem usar, incluindoAWS KMS keysem outrosContas da AWSe regiões.

Não há alterações nos construtores doAWS KMSchaves mestras. Ao criptografar e descriptografar,AWS KMSas chaves mestras usam somente oAWS KMS keyque você especifica.

AWS KMSatualizações do chaveiro (opcional)

Versão 1.7.xadiciona um novo filtro aoAWS Encryption SDK for CeAWS Encryption SDK para JavaScriptimplementações que limitamAWS KMSchaveiros de descobertapara particularContas da AWS. Esse novo filtro de conta é opcional, mas é umprática recomendadaque recomendamos. Para obter detalhes, consulte AtualizandoAWS KMSchaveiros.

Não há alterações nos construtores doAWS KMSchaveiros. PadrãoAWS KMSos chaveiros se comportam como fornecedores de chaves mestras no modo estrito.AWS KMSchaveiros de descoberta são criados explicitamente no modo de descoberta.

Passando um ID de chave paraAWS KMSDecrypt

A partir da versão 1.7.x, ao descriptografar chaves de dados criptografadas, oAWS Encryption SDKsempre especifica umAWS KMS keyem suas chamadas para oAWS KMS Decryptoperação. OAWS Encryption SDKobtém o valor da ID da chave para oAWS KMS keydos metadados em cada chave de dados criptografada. Esse recurso não requer alterações no código.

Especificando o ID da chave doAWS KMS keynão é necessário descriptografar texto cifrado que foi criptografado com uma chave KMS de criptografia simétrica, mas é umAWS KMSprática recomendada. Assim como especificar chaves de empacotamento em seu provedor de chaves, essa prática garante queAWS KMSsó decodifica usando a chave de empacotamento que você pretende usar.

Descriptografe o texto cifrado com o compromisso principal

Versão 1.7.xpode descriptografar texto cifrado que foi criptografado com ou semcompromisso chave. No entanto, ele não pode criptografar texto cifrado com comprometimento chave. Essa propriedade permite que você implante totalmente aplicativos que podem descriptografar texto cifrado criptografado com comprometimento de chave antes que eles encontrem qualquer texto cifrado desse tipo. Como essa versão descriptografa mensagens criptografadas sem comprometimento da chave, você não precisa criptografar novamente nenhum texto cifrado.

Para implementar esse comportamento, versão 1.7.xinclui um novopolítica de compromissodefinição de configuração que determina se oAWS Encryption SDKpode criptografar ou descriptografar com um compromisso 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 evita que oAWS Encryption SDKda criptografia com qualquer um dos novos conjuntos de algoritmos que incluem comprometimento de chaves. Ele permite que oAWS Encryption SDKpara 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 de forma explícita impede que sua política de compromisso mude automaticamente pararequire-encrypt-require-decryptao fazer o upgrade para a versão 2.1.x. Em vez disso, você podemigre sua política de compromissoem etapas.

Suítes de algoritmos com comprometimento fundamental

Versão 1.7.xinclui dois novospacotes de algoritmosque apoiam o compromisso fundamental. Um inclui assinar; o outro não. Como os pacotes de algoritmos suportados anteriormente, esses dois novos conjuntos de algoritmos incluem criptografia com AES-GCM, uma chave de criptografia de 256 bits e uma baseada em HMAC extract-and-expand função de derivação de chave (HKDF).

No entanto, o conjunto de algoritmos padrão usado para criptografia não muda. Esses conjuntos de algoritmos foram adicionados à versão 1.7.xpara preparar seu aplicativo para usá-los nas versões 2.0.xe mais tarde.

Mudanças na implementação do CMM

Versão 1.7.xintroduz mudanças na interface padrão do gerenciador de materiais criptográficos (CMM) para apoiar o comprometimento principal. Essa alteração afeta você somente se você tiver escrito uma CMM personalizada. Para obter detalhes, consulte a documentação da API ou GitHub repositório para olinguagem de programação.

Versão 1.8.x

nota

Tudo 1.x.xversões doAWS Encryption SDKestão noend-of-supportestágio.

Para oAWSCLI de criptografia, versão 1.8.xé a versão de transição entre versões anteriores à 1.7.xe versões 2.1.xe mais tarde. Para oAWSCLI de criptografia, versão 1.8.xé totalmente compatível com versões anteriores; não introduz nenhuma alteração significativa nem altera o comportamento doAWS Encryption SDK. Também é compatível com versões anteriores; permite que você atualize seu código para que seja compatível com a versão 2.0.x. Ele inclui novos recursos, mas não os habilita totalmente. Ela exige valores de configuração que impeçam que você adote imediatamente todos os novos recursos até que esteja pronto.

Para obter mais informações sobre a versão 1.8.xdoAWSCLI de criptografia, consulteVersão 1.7.x.

Versão 1.9.x

nota

Tudo 1.x.xversões doAWS Encryption SDKestão noend-of-supportestágio.

Versão 1.9.xsuporta as melhorias de segurança de assinatura digital encontradas na versão 2.2.x. Se você atualmente usa assinaturas digitais com seus aplicativos e usaAWS Encryption SDKversões anteriores à versão 2.0.x, você deve atualizar para a versão 1.9.xpara aproveitar as melhorias.

Versão 1.9.xtambém oferece suporte à limitação do número de chaves de dados criptografadas em mensagens que você descriptografa de fontes não confiáveis. Esse recurso de melhores práticas permite detectar um provedor de chave mestra ou um chaveiro mal configurado ao criptografar mensagens ou um texto cifrado potencialmente malicioso ao descriptografar mensagens.

Como a versão 1.7.x, versão 1.9.xé retrocompatível com versões anteriores à 1.7.xe versões posteriores compatíveis com as versões 2.0.xe mais tarde. Ele inclui os novos recursos presentes nas versões 2.0.xe mais tarde, mas implementa padrões seguros. Se você estiver usando a versão 1.9.x, você pode atualizar com segurança para a versão 2.2.x. Para obter detalhes sobre como migrar sua configuração de política de compromisso, consulteDefinindo sua política de compromisso.

Versão 2.0.x

Versão 2.0.xoferece suporte aos novos recursos de segurança oferecidos noAWS Encryption SDK, incluindo chaves de empacotamento especificadas e comprometimento da chave. Para suportar esses recursos, a versão 2.0.xinclui mudanças significativas em versões anteriores doAWS Encryption SDK. Você pode se preparar para essas mudanças implantando a versão 1.7.x. Versão 2.0.xinclui todos os novos recursos introduzidos na versão 1.7.xcom as seguintes adições e alterações.

nota

Versão 2.x.xdoAWS Encryption SDK for Pythone oAWSA CLI de criptografia está naend-of-supportestágio.

Para obter informações sobresuporte e manutençãodissoAWS Encryption SDKversão em sua linguagem de programação preferida, veja oSUPPORT_POLICY.rstarquivo em seuGitHubrepositório.

AWS KMSprovedores de chave mestra

O originalAWS KMSconstrutores de provedores de chaves mestras que estavam obsoletos na versão 1.7.xforam removidos na versão 2.0.x. Você deve construir explicitamenteAWS KMSfornecedores de chave mestras nomodo estrito ou modo de descoberta.

Criptografe e descriptografe texto cifrado com compromisso fundamental

Versão 2.0.xpode criptografar e descriptografar texto cifrado com ou semcompromisso chave. Seu comportamento é determinado pela definição da política de compromisso. Por padrão, ele sempre criptografa com o comprometimento da chave e só decodifica o texto cifrado criptografado com o comprometimento da chave. A menos que você altere a política de compromisso, oAWS Encryption SDKnão descriptografará textos cifrados criptografados por nenhuma versão anterior doAWS Encryption SDK, incluindo a versão 1.7.x.

Importante

Por padrão, a versão 2.0.xnão descriptografará nenhum texto cifrado que tenha sido criptografado sem o comprometimento da chave. Se seu aplicativo encontrar um texto cifrado criptografado sem comprometimento de chave, defina um valor de política de compromisso comAllowDecrypt.

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

  • ForbidEncryptAllowDecrypt— OAWS Encryption SDKnão pode criptografar com um compromisso fundamental. Ele pode descriptografar textos cifrados criptografados com ou sem comprometimento de chave.

  • RequireEncryptAllowDecrypt— OAWS Encryption SDKdeve criptografar com um compromisso fundamental. Ele pode descriptografar textos cifrados criptografados com ou sem comprometimento de chave.

  • RequireEncryptRequireDecrypt(padrão) — OAWS Encryption SDKdeve criptografar com um compromisso fundamental. Ele apenas decifra textos cifrados com comprometimento fundamental.

Se você estiver migrando de uma versão anterior doAWS Encryption SDKpara 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.1.x

nota

Versão 2.x.xdoAWS Encryption SDK for Pythone oAWSA CLI de criptografia está naend-of-supportestágio.

Para obter informações sobresuporte e manutençãodissoAWS Encryption SDKversão em sua linguagem de programação preferida, veja oSUPPORT_POLICY.rstarquivo em seuGitHubrepositório.

Para oAWSEncryption CLI, versão 2.1.xé a versão que inclui chaves de empacotamento especificadas e comprometimento de chaves. Isso é equivalente à versão 2.0.xem outras linguagens de programação.

Para obter mais informações sobre a versão 2.1.xdoAWSCLI de criptografia, consulteVersão 2.0.x.

Versão 2.2.x

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

nota

Versão 2.x.xdoAWS Encryption SDK for Pythone oAWSA CLI de criptografia está naend-of-supportestágio.

Para obter informações sobresuporte e manutençãodissoAWS Encryption SDKversão em sua linguagem de programação preferida, veja oSUPPORT_POLICY.rstarquivo em seuGitHubrepositório.

Assinaturas digitais

Para melhorar o manuseio deAssinaturas digitaisao descriptografar, oAWS Encryption SDKO inclui os seguintes recursos:

  • Modo sem streaming— retorna texto sem formatação somente após o processamento de todas as entradas, incluindo a verificação da assinatura digital, se presente. Esse recurso impede que você use texto sem formatação antes de verificar a assinatura digital. Use esse recurso sempre que você descriptografar dados criptografados com assinaturas digitais (o conjunto de algoritmos padrão). Por exemplo, porque oAWSA CLI de criptografia sempre processa dados no modo de streaming, use o--bufferparâmetro ao descriptografar texto cifrado com assinaturas digitais.

  • Modo de decodificação somente sem assinatura— esse recurso só decodifica texto cifrado não assinado. Se a descriptografia encontrar uma assinatura digital no texto cifrado, a operação falhará. Use esse recurso para evitar o processamento não intencional de texto sem formatação de mensagens assinadas antes de verificar a assinatura.

Limitando as chaves de dados criptografadas

É possívellimitar o número de chaves de dados criptografadasem uma mensagem criptografada. Esse recurso pode ajudá-lo a detectar um provedor de chave mestra ou um chaveiro mal configurado ao criptografar ou 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. Ele evita chamadas desnecessárias, caras e potencialmente exaustivas para sua infraestrutura principal.

Versão 2.3.x

Adiciona suporte paraAWS KMSChaves de várias regiões. Para obter detalhes, consulte Usar várias regiõesAWS KMS keys.

nota

OAWSA CLI de criptografia oferece suporte a chaves de várias regiões a partir deversão 3.0.x.

Versão 2.x.xdoAWS Encryption SDK for Pythone oAWSA CLI de criptografia está naend-of-supportestágio.

Para obter informações sobresuporte e manutençãodissoAWS Encryption SDKversão em sua linguagem de programação preferida, veja oSUPPORT_POLICY.rstarquivo em seuGitHubrepositório.

Versão 2.4.x

nota

Versão 2.x.xdoAWS Encryption SDK for Pythone oAWSA CLI de criptografia está naend-of-supportestágio.

OAWS Encryption SDK for Javaa versão 2.4.0 adiciona suporte aoAWS SDK for Java 2.x. A partir da versão 2.4.0, oAWS Encryption SDK for JavaaguentaAWS SDK for Javaversão 1.xe versão 2.x. Uso doAWS SDK for JavaO é opcional. OAWS Encryption SDK for Javarequer oAWS SDK for Javasomente se você estiver usandoAWS Key Management Service(AWS KMS) como seu provedor de chave mestra.

Para obter detalhes, consulte Pré-requisitos.

Versão 3.0.x

nota

Versão 3.x.xdoAWSA CLI de criptografia está emend-of-supportestágio.

Para obter informações sobresuporte e manutençãodissoAWS Encryption SDKversão em sua linguagem de programação preferida, veja oSUPPORT_POLICY.rstarquivo em seuGitHubrepositório.

AWSEncryption CLI versão 3.0.xadiciona suporte paraAWS KMSChaves de várias regiões. Para obter detalhes, consulte noAWS Key Management ServiceGuia do desenvolvedor do. (OutrosAWS Encryption SDKas linguagens de programação suportam chaves de várias regiões a partirversão 2.3.x.)

Apresentou oAWS Encryption SDKfor .NET.