Criptografia do lado do cliente - AWS Key Management Service

Criptografia do lado do cliente

O AWS Encryption SDK inclui uma operação de API para executar criptografia de envelope usando uma chave KMS. Para obter recomendações completas e detalhes de uso, consulte a documentação relacionada. Os aplicativos do cliente podem usar o AWS Encryption SDK para executar criptografia de envelope usando o AWS KMS.

// Instantiate the SDK final AwsCrypto crypto = new AwsCrypto(); // Set up the KmsMasterKeyProvider backed by the default credentials final KmsMasterKeyProvider prov = new KmsMasterKeyProvider(keyId); // Do the encryption final byte[] ciphertext = crypto.encryptData(prov, message);

A aplicação do cliente pode executar as etapas a seguir:

  1. Uma solicitação é feita sob uma chave KMS para uma nova chave de dados. Uma chave de dados criptografada e uma versão em texto simples da chave de dados são retornados.

  2. No AWS Encryption SDK, a chave de dados de texto simples é usada para criptografar a mensagem. Então, a chave de dados de texto simples é excluída da memória.

  3. A chave de dados e mensagem criptografadas são combinadas em uma única matriz de bytes de texto cifrado.


        Criptografia de envelope do AWS Encryption SDK.

A mensagem criptografada com envelope pode ser descriptografada usando a funcionalidade de descriptografia para obter a mensagem criptografada originalmente.

final AwsCrypto crypto = new AwsCrypto(); final KmsMasterKeyProvider prov = new KmsMasterKeyProvider(keyId); // Decrypt the data final CryptoResult<byte[], KmsMasterKey> res = crypto.decryptData(prov, ciphertext); // We need to check the KMS key to ensure that the // assumed key was used if (!res.getMasterKeyIds().get(0).equals(keyId)) { throw new IllegalStateException("Wrong key id!"); } byte[] plaintext = res.getResult();
  1. O AWS Encryption SDK analisa a mensagem criptografada com envelope para obter a chave de dados criptografada e fazer uma solicitação para o AWS KMS descriptografar a chave de dados.

  2. O AWS Encryption SDK recebe a chave de dados de texto simples do AWS KMS.

  3. A chave de dados é, então, usada para descriptografar a mensagem, com retorno do texto simples inicial.


        Descriptografia de envelope do AWS Encryption SDK.