Diciamo che sto cercando di invertire le comunicazioni di ingegneria tra un'app Android e un server Web che utilizza HTTPS.
All'inizio, ho provato a fare MITM usando webmitm e un falso certificato. Ma l'app non è stata avviata perché il falso cert utilizzato da webmitm non è considerato attendibile dall'app. (Supponiamo che l'app abbia il proprio modo di decidere quale certezza si fida e non posso importare il falso certificato su Android come certificato attendibile)
Quindi vengo ad un altro approccio. Ho notato che sia l'app che il server Web supportano cifre deboli (ad esempio TLS_RSA_EXPORT_WITH_RC4_40_MD5). Quindi sto pensando, invece di usare un falso cert come bridge, c'è uno strumento mitm che modifica solo il pacchetto Client Hello per applicare cifrari deboli e inoltra il cert originale del server senza decrittografia o crittografando qualcosa nel mezzo.
In un'altra parola, quando l'app invia "Hello Webserver, supporto le seguenti suite di crittografia: XXX YYY ZZZ. Scegli un supporto", lo strumento mitm intercetta questo pacchetto e lo modifica in "Hello Webserver, I only supportare TLS_RSA_EXPORT_WITH_RC4_40_MD5 "e inoltrarlo al server web. Dato che entrambi sostengono questa suite di crittografia, la useranno per il resto della comunicazione. E lo strumento mitm inoltra tutto tra loro e registra tutti i pacchetti. E poi provo a decodificare i pacchetti registrati offline.
Qualche idea?