-
criptografia simétrica: são sistemas que utilizam a mesma chave para encriptar e desencriptar uma informação. A criptografia AES é simétrica.
-
criptografia assimétrica (ou criptografia de chave publica): é qualquer sistema que use um par de chaves, uma publica para encriptar e uma privada para desencriptar. A criptografia RSA é um sistema de criptografia assimétrico.
-
o RSA é um algoritmo mais lento se comparado com outros lento e por isso é utilizado para encriptar chaves assimétricas, alem disso ele nao consegue encriptar uma grande quantidade de dados.
- Ao clicar no botão "enviar" é gerada uma nova chave aleatória para a cripografia AES.
- A chave AES é salva em um objeto que armazena as chaves dos requests, para que seja possivel decriptar o response.
- Cada chave AES tem um ID que é utilizado para recupera-lá no response, e depois para deleta-lá.
- A mensagem é encriptada com o AES utilizando a chave aleatoria gerada (AESKey).
- A chave aleatória gerada (AESKey) é encriptada utilizando a chave RSA publica.
- O texto encriptado por AES e chave encriptada por RSA são enviados para a API junto do ID da chave AES.
- Quando o request for via GET, o texto também é encriptado com encodeURI, para evitar problemas com os caracteres "/" e "+".
- Na API a chave privada RSA decripta a chave AES que foi gerada no FRONT.
- Com a chave AES decriptada, a API decripta o os dados do FRONT.
- A API monta o retorno e encripta utilizando a chave AES e envia a resposta junto do ID da chave AES.
- O FRONT decripta a resposta utilizando a chave AES, utilizando o ID que a API retornou para poder identificar qual chave deve ser utilizada.
- O FRONT deleta a chave AES utilizada no request/response baseado no ID.
- Segue o fluxo normal da aplicação.