O que é o SDK de criptografia da AWS? - SDK de criptografia da AWS

Se fornecermos uma tradução da versão em inglês do guia, a versão em inglês prevalecerá caso haja qualquer conflito entre as versões. A tradução é fornecida com o uso de tradução por máquina.

O que é o SDK de criptografia da AWS?

O SDK de criptografia da AWS é 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 SDK de criptografia da AWS é fornecido gratuitamente sob a licença do Apache 2.0.

O SDK de criptografia da AWS 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 o SDK de criptografia da AWS, você define um provedor de chaves mestras (Java ou Python) ou um token de autenticação (C ou JavaScript) que determina quais chaves mestras você usa para proteger seus dados. Você criptografa e descriptografa os dados usando os métodos diretos fornecidos pelo SDK de criptografia da AWS. O SDK de criptografia da AWS cuida do resto.

Sem o SDK de criptografia da AWS, você pode despender mais esforço na criação de uma solução de criptografia do que na funcionalidade principal do aplicativo. O SDK de criptografia da AWS 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 SDK de criptografia da AWS 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 SDK de criptografia da AWS 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 SDK de criptografia da AWS.

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

O SDK de criptografia da AWS 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 SDK de criptografia da AWS ajuda a tornar os dados criptografados portáteis.

Por exemplo, você pode criptografar dados sob várias chaves mestras do cliente (CMKs) do AWS Key Management Service (AWS KMS), cada uma em uma região diferente da AWS. Você pode copiar os dados criptografados em qualquer uma das regiões e usar a CMK naquela 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 no 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 SDK de criptografia da AWS 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 SDK de criptografia da AWS faz isso para você.

Algumas implementações de linguagem do SDK de criptografia da AWS exigem um AWS SDK, mas o SDK de criptografia da AWS não requer uma conta da AWS e não depende de nenhum serviço da AWS. Você só precisará de uma conta da AWS se optar por usar as chaves mestras do cliente do AWS Key Management Service (AWS KMS) para proteger seus dados.

Compatibilidade com bibliotecas e serviços de criptografia

O SDK de criptografia da AWS é 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 SDK de criptografia da AWS 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.

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

O SDK de criptografia da AWS não pode descriptografar dados criptografados pelo Cliente de criptografia do DynamoDB ou pela Criptografia do lado do cliente do Amazon S3. E essas bibliotecas não podem descriptografar a mensagem criptografada retornada pelo SDK de criptografia da AWS. 

AWS Key Management Service (AWS KMS)

O SDK de criptografia da AWS pode usar AWS KMS chaves mestras do cliente (CMKs) e teclas de dados para proteger os seus dados. Por exemplo, você pode configurar o SDK de criptografia da AWS para criptografar os dados sob uma ou mais CMKs em sua conta da AWS. No entanto, você deve usar o SDK de criptografia da AWS para descriptografar esses dados.

O SDK de criptografia da AWS não pode descriptografar o texto cifrado que as operações encrypt ou ReEncrypt do AWS KMS retornam. Da mesma forma, a operação Decrypt do AWS KMS não pode descriptografar a mensagem criptografada retornada pelo SDK de criptografia da AWS.

O SDK de criptografia da AWS só é compatível com CMKs simétricas. Não é possível usar uma CMK assimétrica para criptografia ou assinatura no SDK de criptografia da AWS. O SDK de criptografia da AWS 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.

Saiba mais

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

Para obter informações sobre as implementações do SDK de criptografia da AWS 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 SDK de criptografia da AWS, notifique a segurança da AWS. Não crie um problema público no GitHub.

  • Para fornecer comentários sobre o SDK de criptografia da AWS, 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.