2009-07-02 22 views
21

Ho un'applicazione locale (che non ho scritto e non posso modificare) che parla con un servizio Web remoto. Utilizza HTTPS e mi piacerebbe vedere cosa c'è nel traffico.Catturare il traffico HTTPS in chiaro?

C'è un modo che io possa fare questo? Preferirei un sistema Windows, ma sono felice di configurare un proxy su Linux se questo rende le cose più facili.

Quello che sto considerando:

  1. Riorientare il sito web hacking mio file hosts (o la creazione di DNS alternativo).
  2. Installazione di un server HTTPS su quel sito, con un certificato autofirmato (ma attendibile).
  3. Apparentemente, WireShark può vedere cosa c'è in HTTPS se lo si alimenta con la chiave privata. Non ho mai provato questo.
  4. In qualche modo, questa delega il traffico al server reale (vale a dire si tratta di una vera e man-in-the-middle "attacco").

fa questo sensato suono? WireShark può davvero vedere cosa c'è nel traffico HTTPS? Qualcuno può indicarmi un proxy adatto (e la configurazione per lo stesso)?

risposta

11

Vuol Fiddler fare quello che vuoi? :

Che cos'è Fiddler?

Fiddler è un proxy di debug del Web che registra tutto il traffico HTTP (S) tra il computer e Internet. Fiddler consente di ispezionare tutti i HTTP (S) traffico, impostare punti di interruzione, e "violino" con i dati in entrata o in uscita. Fiddler include un potente sottosistema di scripting basato sugli eventi e può essere esteso utilizzando qualsiasi linguaggio .NET .

Fiddler è freeware e può eseguire il debug il traffico da qualsiasi applicazione, tra cui Internet Explorer, Mozilla Firefox, Opera, e di piú.

+1

Sì, può fungere da proxy man-in-the-middle per le richieste HTTPS: si noti che serve un certificato non firmato, quindi se l'app richiede certificati attendibili, è necessario disabilitare questo requisito , o fidati del certificato - che Fiddler non consiglia: http://www.fiddler2.com/Fiddler/help/httpsdecryption.asp –

+0

Ho visto il traffico HTTPS da Internet Explorer e Chrome; ora per scoprire se funzionerà per l'app in questione ... –

+0

... eccetto che l'app in questione funziona solo con diritti di amministratore, e Fiddler non sembra voler installare il suo certificato HTTPS sotto il mio account amministratore (Corro LUA la maggior parte del tempo). –

0
  1. Per utilizzare https proxy per monitorare, dipende dal tipo di stretta di mano. Se l'applicazione locale non controlla il certificato del server con la firma di CA che non è possibile falsificare, e il server non controlla il certificato dell'applicazione locale (o se ne hai uno da configurare su https proxy), puoi impostare un proxy https per monitorare il traffico https. Altrimenti, penso che sia impossibile monitorare il traffico con il proxy https.

  2. Un altro modo per provare è aggiungere una sonda di strumentazione alle routine del programma client in cui invia e riceve messaggi dalla sua libreria https. Ha bisogno di un lavoro di ingegneria inversa, ma dovrebbe funzionare per te in tutte le situazioni.

0

Raccomanderei WireShark, è lo strumento migliore da seguire su diversi tipi di traffico. Sebbene, non sono sicuro di cosa puoi vedere con SSL attivato. Forse, se lo fornisci con un certificato?

+2

Un certificato non è sufficiente. Altrimenti dovremmo decodificare tutto il traffico SSL. Hai bisogno di una chiave privata per decifrare il traffico ... come indicato dall'OP ... – reiniero

7

Wireshark può sicuramente visualizzare flussi crittografati TLS/SSL come testo in chiaro. Tuttavia, avrai sicuramente bisogno della chiave privata del server per farlo. La chiave privata deve essere aggiunta a Wireshark come opzione SSL sotto le preferenze. Si noti che questo funziona solo se è possibile seguire lo stream SSL dall'inizio. Non funzionerà se viene riutilizzata una connessione SSL.

Per Internet Explorer questo (riutilizzo della sessione SSL) può essere evitato azzerando lo stato SSL utilizzando la finestra di dialogo Opzioni Internet. Altri ambienti potrebbero richiedere il riavvio di un browser o anche il riavvio di un sistema (per evitare il riutilizzo della sessione SSL).

L'altro vincolo chiave è che è necessario utilizzare un codice RSA. Wireshark non può decodificare il flusso TLS/SSL che usa DFH (Diffie-Hellman).

Supponendo che sia possibile soddisfare i vincoli di cui sopra, il comando di scelta rapida "Segui flusso SSL" funziona piuttosto bene.

+0

Passi specifici (o un collegamento a un post) per l'impostazione sarebbe fantastico. –

2

Si consiglia inoltre di considerare Charles. Dalla descrizione del prodotto, al momento di questa risposta:

Charles è un monitor proxy HTTP/HTTP/Reverse Proxy che consente a uno sviluppatore di visualizzare tutto il traffico HTTP e SSL/HTTPS tra la loro macchina e Internet. Ciò include richieste, risposte e intestazioni HTTP (che contengono i cookie e le informazioni di memorizzazione nella cache).

Problemi correlati