violino

Num post anterior aqui no blog, comentei sobre um projeto em que estava trabalhando e precisava interceptar requests sendo feitos por aplicativos Android e iOS. A abordagem que mostrei utiliza o Fiddler e funciona para requests HTTP, sem criptografia, mas num cenário mais real é bem provável que você precise interceptar requests HTTPS, que são criptografados. Se você tentar fazer isso, provavelmente vai ver um resultado parecido com a imagem abaixo no seu Fiddler.

mensagem do Fiddler para HTTPS

O Fiddler não consegue espionar seus requests porque é justamente esse o papel da criptografia no protocolo HTTPS: proteger a comunicação entre duas pontas de possíveis curiosos tentando realizar ataques. E agora? Não é possível espionar os requests HTTPS com o Fiddler? É sim, só exige um pouco mais de trabalho. Para conseguir decifrar as mensagens trafegadas por HTTPS é preciso fazer a comunicação passar pelo Fiddler antes de seguir para o servidor. Isso é, basicamente, fazer um ataque Man in the Middle.

Configurando o Fiddler para decifrar HTTPS

Comece fazendo os passos descritos no primeiro post, porque eles são necessários neste caso também.

Na imagem acima o Fiddler já te avisa que você precisa decifrar as mensagens HTTPS caso queira enxergar alguma coisa. Então é preciso configurar ele para isso.

No Fiddler, vá em Tools > Telerik Fiddler Options. Selecione a aba HTTPS e marque o checkbox “Decrypt HTTPS traffic”.

fiddler decrypt HTTPS

Ainda no Fiddler, escolha a aba Connections e marque o checkbox “Allow remote computers to connect”.

Habilitando conexões remotas no Fiddler

Reinicie o Fiddler antes de seguir para a configuração no aparelho.

Configurando o dispositivo

Feita a configuração inicial do primeiro post, só é preciso dizer para o seu aparelho confiar no certificado que o Fiddler usará para inspecionar a aplicação. Para fazer isso o certificado precisa ser instalado no dispositivo onde o Proxy está configurado.

Com o Fiddler aberto, acesse o endereço http://ipv4.fiddler:8888 de qualquer browser no seu aparelho e baixe o certificado “FiddlerRoot Certificate”, disponível como link no final da página aberta.

certificado Fiddler

Caso não consiga abrir a página, acesse o endereço de IP da máquina onde o Fiddler está rodando diretamente (por exemplo: 192.168.1.120:8888). Certifique-se também que a porta configurada nas conexões do Fiddler é a mesma que você está acessando. Para ter certeza de que o endereço está correto, coloque o mouse sobre o ícone de conexão no canto superior direito do Fiddler:

fiddler connection info

Instalando o certificado no Android

A instalação do certificado em si pode variar de aparelho para aparelho, mas normalmente ao abrir o arquivo baixado, o Android já deve pedir um nome para o certificado. Coloque “FiddlerRoot” e prossiga.

instalação no Android

Por motivos de segurança, agora o Android te obrigará a definir um bloqueio de segurança para seu aparelho, caso ainda não tenha. Escolha o que preferir.

Você deve receber uma notificação indicando que o certificado foi instalado na parte inferior da tela.

Caso queira garantir que o certificado está instalado, vá em Settings > Security, role até “Credential Storage”, clique em “Trusted credentials” e selecione a aba de “User”. O certificado deve aparecer lá.

Android certificados de usuário

Instalando o certificado no iOS

No iPhone a instalação é bem simples, abra o certificado do FiddlerRoot pelo Safari e escolha Instalar.

iphone instalação de perfil

Após instalado você verá o status mudando para “Verificado”.

Inspecionando os requests HTTPS

Depois de tudo configurado, dispare as chamadas que queira interceptar, o Fiddler terá capturado todas as chamadas do seu aparelho, selecione uma delas e você verá uma opção para decodificar o request.

fiddler decodificar request

Clique na mensagem e agora você verá todo o conteúdo, sem criptografia.

fiddler request https

Conclusão

Agora é possível inspecionar até os requests HTTPs com o Fiddler, isso deixa claro porque acessar redes públicas é tão inseguro, você nunca sabe quem está espionando. Lembre-se de desinstalar o certificado e retirar o Proxy de IP da sua conexão para manter a segurança do seu aparelho.

Foto usada no post: Salzburg Violin, por Jorge Royan

Mahmoud Ali

Desenvolvedor de Software na Lambda3, Microsoft MVP, amante de um bom café ☕️ e uma boa cerveja 🍺.