Utilizando o interceptor Encrypt

Este artigo tem como objetivo de explicar o funcionamento deste interceptor junto com as melhores práticas de uso.

O interceptor Encrypt tem a funcionalidade de criptografar o conteúdo do request, assim a informação trafega com confidencialidade e integridade.

Imagine um cenário em que o body enviado são dados sigilosos e antes do envio precisamos de alguma maneira cifrar os dados. Para isto utilizamos o encrypt onde os dados são cifrados com a chave AES e somente o Gateway tem a chave cadastrada para decifrar estes dados (fazemos isto cadastrando a chave AES, assim permitindo o acesso). O conteúdo enviado no body foi criptografado junto com a chave AES, sendo assim o Gateway primeiramente verifica se a chave (header e chave AES) informada é válida e após a confirmação encaminha o request normalmente.

Isto é utilizado para o usuário cifrar os seus dados enviados no request e somente ele (usuário) e o Gateway que obtém sua chave, tem a permissão de decifrar esses dados.

Em nosso help temos uma explicação sobre a configuração deste interceptor Encrypt, sendo assim vamos focar no passo-a-passo para realizar o fluxo completo.

  1. O primeiro passo é obter a chave pública do Gateway
    1. Para isso realize um GET em /security/keys

                        curl -X GET https://environmentURL/security/keys

  1. Com a chave pública recebida do Gateway, você precisa realizar a cifra de sua chave AES, para isso, é necessário que você execute um script de sua preferência. (Colocamos alguns scripts de exemplo em anexo de como gerar esta chave, nele é necessário informar a chave pública do Gateway, assim o retorno será a chave AES gerada.)
  2. Após isso realize um post com a chave AES gerada no passo anterior com o seu ID (lembre-se de guardar o ID enviado no request).

                curl -X POST http://envonrimentURL/security/keys -d '{ "id": "id_chave", "key": "chave_criptografada"}'​

 

Para simular um uso deste Encrypt, criamos uma API de teste com o seguinte fluxo abaixo:

obs: O interceptor de Encrypt terá que ser o primeiro colocado em seu fluxo.

 

Assim para realizar o request nesta operação precisamos enviar o header-name (configurado no interceptor Encrypt), com o valor do id_chave (cadastrado no post anterior), assim o fluxo acontecerá normalmente com os dados sendo criptografados antes do envio e sendo decifrados no momento da execução do interceptor.

 

Segue abaixo um exemplo do curl utilizado:

curl -X POST https://environmentURL/api/card -H 'Content-Type: application/json' -H 'client_id: be986808-e47e-3dcd-b104-fd57e7a6f511' -H 'key-id: chave-exemplo' -d BI/z/L3WOvHv1WICfYaD5fR02rMNUStugdTc8CNraUmNeGKxB/ZBLnhOJ5k=
Tem mais dúvidas? Envie uma solicitação

Comentários

Powered by Zendesk