Per intercettare e decodificare al volo il traffico HTTPS servono una serie di strumenti un pò più border-line per realizzare quello che si chiama attacco Man In The Middle, ovvero il più grosso buco nel sistema che dovrebbe farvi sentire sicuri su internet. Il problema è noto da anni, si è fatto molto per mitigarlo, ma avendo accesso da amministratore al computer della vittima (che in questo caso è me stesso) è ancora possibile decifrare tutto in tempo reale.
Il principio di base è che una comunicazione cifrata dal client A al server B non è comprensibile da nessun altro al di fuori di A e B, ma se inseriamo l’attaccante M e al client A facciamo credere che M sia il server e al server B facciamo credere che M sia il client il canale sicuro si interrompe e M è in grado di leggere in chiaro sia le interrogazioni di A che le risposte di B.
MITMProxy svolge il ruolo di M alla perfezione, ma è un proxy con un certificato crittografico selfsigned, che quindi l’applicazione che dobbiamo analizzare dovrebbe usare di sua spontanea volontà e permettere di ignorare l’evidente problema del certificato selfsigned. Ovviamente non è cosi (oggi, nel 2019, qualche anno fà c’era molta meno attenzione).
Per quest’ultimo problema c’è nella documentazione del progetto la strategia di risoluzione. In buona sostanza bisogna installare nel truststore del computer il certificato finto ponendolo alla stesso livello di affidabilità di una certification authority nota. L’operatività cambia per browser e sistema operativo ma è tutto spiegato sul sito.
Poi per “costringere” l’applicazione ad usare il proxy, ora ritenuto affidabile, bisogna trasformalo in un transparent-proxy, cosa abbastanza facile in sistemi linux, ma non prevista su windows. Si risolve con Proxifier che permette di scegliere quale traffico debba passare attraverso il proxy e quale no.