O que é o 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á.

O que é o AWS Encryption SDK?

O AWS Encryption SDK é uma biblioteca de criptografia do lado do cliente projetada para facilitar a criptografia e a descriptografia de dados para todos usando os padrões e as melhores práticas do setor. Ele permite que você se concentre na funcionalidade principal do aplicativo, em vez de sobre como melhor criptografar e descriptografar os dados. O AWS Encryption SDK é fornecido gratuitamente sob a licença do Apache 2.0.

O AWS Encryption SDK responde a perguntas como as seguintes para você:

  • Qual algoritmo de criptografia devo usar?

  • Como, ou em qual modo, devo usar esse algoritmo?

  • Como faço para gerar a chave de criptografia?

  • Como faço para proteger a chave de criptografia e onde devo armazená-la?

  • Como posso tornar meus dados criptografados portáteis?

  • Como faço para garantir que o destinatário pretendido possa ler meus dados criptografados?

  • Como posso garantir que meus dados criptografados não sejam modificados entre o momento em que são gravados e o momento em que são lidos?

  • Como faço para usar as chaves de dados queAWS KMSO retorna?

Com aAWS Encryption SDK, você define umProvedor de chaves mestras do(Java e Python) ou umToken de autenticação do(C, C#/.NET e JavaScript) O determina quais chaves de empacotamento usadas para proteger seus dados. Você criptografa e descriptografa os dados usando os métodos diretos fornecidos pelo AWS Encryption SDK. O AWS Encryption SDK cuida do resto.

Sem o AWS Encryption SDK, você pode despender mais esforço na criação de uma solução de criptografia do que na funcionalidade principal do aplicativo. O AWS Encryption SDK responde a essas perguntas, fornecendo as funcionalidades a seguir.

Uma implementação padrão que segue as melhores práticas de criptografia

Por padrão, o AWS Encryption SDK gera uma chave de dados exclusiva para cada objeto de dados que criptografa. Isso segue a melhor prática de criptografia de usar chaves de dados exclusivas para cada operação de criptografia.

O AWS Encryption SDK criptografa os dados usando um algoritmo de chave simétrica seguro e autenticado. Para obter mais informações, consultePacotes de algoritmos compatíveis no AWS Encryption SDK

Uma estrutura para proteção de chaves de dados com chaves de embalagem

OAWS Encryption SDKO protege as chaves de dados que criptografam seus dados criptografando-as sob uma ou mais chaves de empacotamento. Ao fornecer uma estrutura para criptografar chaves de dados com mais de uma chave de embalagem, oAWS Encryption SDKajuda a tornar seus dados criptografados portáteis.

Por exemplo, criptografar dados em umAWS KMS keyemAWS KMSe uma chave do HSM local. Você pode usar qualquer uma das chaves de empacotamento para descriptografar os dados, caso uma esteja indisponível ou o chamador não tenha permissão para usar ambas as chaves.

Uma mensagem formatada que armazena chaves de dados criptografadas com os dados criptografados

O AWS Encryption SDK armazena os dados criptografados e a chave de dados criptografada juntos em uma mensagem criptografada que usa um formato de dados definido. Isso significa que você não precisa controlar ou proteger as chaves de dados que criptografam seus dados pois o AWS Encryption SDK faz isso para você.

Algumas implementações de linguagem doAWS Encryption SDKRequer umAWSSDK, mas oAWS Encryption SDKNão requer umConta da AWSe não depende de nenhumAWSServiço do. Você precisa de umConta da AWSsomente se você optar por usarAWS KMS keysPara proteger seus dados.

Desenvolvido em repositórios de código aberto

OAWS Encryption SDKé desenvolvido em repositórios de código aberto em GitHub. Você pode usar esses repositórios para visualizar o código, ler e enviar problemas e encontrar informações específicas para a implementação do idioma.

Compatibilidade com bibliotecas e serviços de criptografia

OAWS Encryption SDKO é compatível com váriosLinguagens de programação do. As implementações de linguagem são interoperáveis É possível criptografar com uma implementação de linguagem e descriptografar com outra. A interoperabilidade pode estar sujeita às restrições de linguagem. Em caso afirmativo, essas restrições estarão descritas no tópico sobre a implementação de linguagem. Além disso, ao criptografar e descriptografar, é necessário usar tokens de autenticação compatíveis ou chaves mestras e provedores de chaves mestras. Para obter detalhes, consulte Compatibilidade dos tokens de autenticação.

No entanto, o AWS Encryption SDK não pode interoperar com outras bibliotecas. Como cada biblioteca retorna dados criptografados em um formato diferente, você não pode criptografar com uma biblioteca e descriptografar com outra.

Cliente de criptografia do DynamoDB e criptografia do lado do cliente do Amazon S3

OAWS Encryption SDKNão é possível descriptografar dados criptografados peloCliente de criptografia do DynamoDBouCriptografia do lado do cliente do Amazon S3. Essas bibliotecas não podem descriptografar oMensagem criptografadaaAWS Encryption SDKO retorna. 

AWS Key Management Service (AWS KMS)

OAWS Encryption SDKPode usarAWS KMS keyseChaves de dadospara proteger seus dados, incluindo chaves KMS de várias regiões. Por exemplo, você pode configurar oAWS Encryption SDKpara criptografar seus dados em um ou maisAWS KMS keysem seuConta da AWS. No entanto, você deve usar o AWS Encryption SDK para descriptografar esses dados.

OAWS Encryption SDKnão pode descriptografar o texto cifrado que oAWS KMS EncryptouReEncryptretorno de operações. Da mesma forma, oAWS KMS Decryptoperação não pode descriptografar oMensagem criptografadaaAWS Encryption SDKO retorna.

OAWS Encryption SDKsó é compatível comChaves KMS de criptografia simétrica. Não é possível usar umChave do KMS assimétricaPara criptografia ou assinatura noAWS Encryption SDK. O AWS Encryption SDK gera suas próprias chaves de assinatura ECDSA para pacotes de algoritmos que assinam mensagens.

Para obter ajuda para decidir qual biblioteca ou serviço usar, consulteComo escolher uma ferramenta ou serviço de criptografiaemAWSServiços e ferramentas criptográficas.

Support e manutenção

OAWS Encryption SDKUsar o mesmoPolítica de manutençãoque oAWSSDK e ferramentas usam, incluindo suas fases de controle de versão e ciclo de vida. Como umprática recomendada, recomendamos que você use a versão mais recente disponível doAWS Encryption SDKPara a linguagem de programação e atualize à medida que novas versões são lançadas. Quando uma versão requer alterações significativas, como a atualização deAWS Encryption SDKversões anteriores a 1.7.xPara as versões 2.0.xe mais tarde, fornecemosInstruções detalhadaspara ajudá-lo.

Cada implementação de linguagem de programação doAWS Encryption SDKé desenvolvido em um código aberto separado GitHub repository. O ciclo de vida e a fase de suporte de cada versão provavelmente variará entre os repositórios. Por exemplo, uma determinada versão doAWS Encryption SDKpode estar na fase de disponibilidade geral (suporte total) em uma linguagem de programação, mas o end-of-supportfase em uma linguagem de programação diferente. Recomendamos que você use uma versão totalmente compatível sempre que possível e evite versões que não são mais suportadas.

Para encontrar a fase do ciclo de vida doAWS Encryption SDKConsulte a versão da sua linguagem de programaçãoSUPPORT_POLICY.rstarquivo em cadaAWS Encryption SDKrepository.

Para obter mais informações, consulteVersões doAWS Encryption SDKeAWSPolítica de manutenção de SDKs e ferramentasnoAWSGuia de referência de SDKs e ferramentas da.

Saiba mais

Se estiver procurando mais informações sobre o AWS Encryption SDK e a criptografia do lado do cliente, tente essas fontes.

Para obter informações sobre as implementações do AWS Encryption SDK em diferentes linguagens de programação.

Enviar comentários

Os seus comentários são bem-vindos. Se você tiver uma pergunta ou comentário, ou um problema a relatar, use os seguintes recursos.

  • Se você descobrir uma potencial vulnerabilidade de segurança no AWS Encryption SDK, notifique a segurança da AWS. Não crie um público GitHub Problema do.

  • Como fornecer feedback sobre aAWS Encryption SDK, registre um problema no GitHub repository para a linguagem de programação que você está usando.

  • Para fornecer comentários sobre esta documentação, use aFeedbacklinks nesta página. Você também pode registrar um problema ou contribuir paraaws-encryption-sdk-docs, o repositório de código aberto para esta documentação sobre GitHub.