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 que o AWS KMS retorna?

Com o AWS Encryption SDK, você define um provedor de chaves mestras (Java ou Python) ou um token de autenticação (C, C#/.NET e JavaScript) que determine quais chaves de encapsulamento usar 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, consulte Pacotes de algoritmos compatíveis no AWS Encryption SDK.

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

O AWS Encryption SDK protege as chaves de dados que criptografam seus dados criptografando-as sob uma ou mais chaves de encapsulamento. Ao fornecer uma estrutura para criptografar chaves de dados com mais de uma chave de encapsulamento, o AWS Encryption SDK ajuda a tornar seus dados criptografados portáteis.

Por exemplo, criptografe dados com uma entrada de AWS KMS key no AWS KMS e uma chave do seu HSM on-premises. É possível usar qualquer uma das duas chaves de encapsulamento para descriptografar os dados, caso alguma não esteja disponível ou o chamador não tenha permissão para usar as duas 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 do AWS Encryption SDK exigem um AWS SDK, mas o AWS Encryption SDK não requer uma Conta da AWS e não depende de nenhum serviço da AWS. Você só necessitará de uma Conta da AWS se optar por usar uma AWS KMS keys para proteger seus dados.

Desenvolvido em repositórios de código aberto

O SDK de criptografia de banco de dados do AWS Encryption SDK é desenvolvido em repositórios de código aberto no GitHub. É possível usar esses repositórios para visualizar o código, ler e enviar problemas e encontrar informações específicas para sua implementação de linguagem.

Compatibilidade com bibliotecas e serviços de criptografia

O AWS Encryption SDK é compatível com várias linguagens de programação. 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 mais 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.

DynamoDB Encryption Client e criptografia do lado do cliente do Amazon S3

O AWS Encryption SDK não pode descriptografar dados criptografados pelo DynamoDB Encryption Client ou pela criptografia do lado do cliente do Amazon S3. Essas bibliotecas não podem descriptografar a mensagem criptografada retornada pelo AWS Encryption SDK. 

AWS Key Management Service (AWS KMS)

O AWS Encryption SDK pode usar AWS KMS keys e chaves de dados para proteger seus dados, incluindo chaves do KMS multirregionais. Por exemplo, você pode configurar o AWS Encryption SDK para criptografar os dados sob uma ou mais AWS KMS keys em sua Conta da AWS. No entanto, você deve usar o AWS Encryption SDK para descriptografar esses dados.

O AWS Encryption SDK não pode descriptografar o texto cifrado retornado pelas operações Encrypt ou ReEncrypt do AWS KMS. Da mesma forma, a operação Decrypt do AWS KMS não pode descriptografar a mensagem criptografada que o AWS Encryption SDK retorna.

O AWS Encryption SDK oferece suporte somente para chaves de criptografia simétricas do KMS. Não é possível usar uma chave assimétrica do KMS para criptografia ou assinatura no AWS 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, consulte Como escolher uma ferramenta ou serviço de criptografia em Serviços e ferramentas de criptografia da AWS.

Suporte e manutenção

O AWS Encryption SDK usa a mesma política de manutenção que o SDK da AWS e as ferramentas usam, incluindo suas fases de versionamento e ciclo de vida. Como prática recomendada, você deve usar a versão mais recente do AWS Encryption SDK para sua linguagem de programação e atualizá-la à medida que novas versões forem lançadas. Quando uma versão exige alterações significativas, como a atualização de versões do AWS Encryption SDK anteriores à 1.7.x para as versões 2.0.x e posteriores, fornecemos instruções detalhadas para ajudar você.

Cada implementação de linguagem de programação do AWS Encryption SDK é desenvolvida em um repositório separado de código aberto do GitHub. É provável que o ciclo de vida e a fase do suporte de cada versão variem entre os repositórios. Por exemplo, uma determinada versão do AWS Encryption SDK pode estar na fase de disponibilidade geral (suporte completo) em determinada linguagem de programação, mas estar na fase de fim do suporte 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 já não sejam compatíveis.

Para encontrar a fase do ciclo de vida das versões do AWS Encryption SDK para sua linguagem de programação, consulte o arquivo SUPPORT_POLICY.rst em cada repositório doAWS Encryption SDK.

Para obter mais informações, consulte Versões do AWS Encryption SDK e a Política de manutenção de SDKs e ferramentas da AWS no Guia de referência de SDKs e ferramentas da AWS.

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 problema público no GitHub.

  • Para fornecer comentários sobre o AWS Encryption SDK, registre um problema no repositório do GitHub para a linguagem de programação que você está usando.

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