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?

Com oAWS Encryption SDK, você define umProvedor de chaves mestras do(Java ou Python) ou um token de autenticação (C ou JavaScript) que determine quais chaves mestras 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 mais informações, consulte Pacotes de algoritmos compatíveis no AWS Encryption SDK.

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

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

Por exemplo, você pode criptografar dados sob várias chaves mestres de cliente (CMKs) do AWS Key Management Service (AWS KMS), cada uma em uma região diferente da AWS. Em seguida, você pode copiar os dados criptografados em qualquer uma das regiões e usar a CMK na região para descriptografá-los. Você também pode criptografar dados em uma CMK no AWS KMS e em uma chave mestra em um HSM local, permitindo que você descriptografe os dados posteriormente mesmo que uma das opções não esteja disponível.

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ê precisa de umAWSsomente se você optar por usarAWS Key Management Service(AWS KMS) para proteger seus dados.

Compatibilidade com bibliotecas e serviços de criptografia

OAWS Encryption SDKO é compatível com váriasLinguagens 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 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.

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. E essas bibliotecas não podem descriptografar oMensagem criptografadaoAWS Encryption SDKO retorna.

AWS Key Management Service (AWS KMS)

OAWS Encryption SDKO pode usar oAWS KMS chaves mestras do cliente(CMKs) eChaves de dadosPara proteger seus dados. Por exemplo, você pode configurar oAWS Encryption SDKpara criptografar seus dados sob um ou mais CMKs em seuAWSconta. No entanto, você deve usar o AWS Encryption SDK para descriptografar esses dados.

OAWS Encryption SDKnão é possível descriptografar o texto cifrado que oAWS KMS EncryptouReEncryptRetorno de operações. Da mesma forma, oAWS KMS Decryptnão é possível descriptografar oMensagem criptografadaoAWS Encryption SDKO retorna.

OAWS Encryption SDKO só oferece suporteCMKs simétricas. Não é possível usar umaCMK assimétricaspara 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.

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 o link 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.