Possibilità di sniffare il traffico HTTPS sui dispositivi senza installare un certificato

23

Il mio obiettivo è quello di sniffare il traffico HTTPS di alcuni dispositivi digitali (AppleTV, console di gioco, ecc.) e decodificare i pacchetti HTTPS nella mia rete locale.

Non riesco a capire un modo utilizzando alcuni strumenti proxy di debug HTTPS come Charles o Fiddler, perché devono avere un certificato installato sul dispositivo. Non ho accesso al file system sul dispositivo, non riesco a copiare il certificato. Ma posso impostare il proxy del dispositivo in modo che indichi il mio laptop o l'hotspot del mio portatile.

    
posta Yifei 04.03.2015 - 17:12
fonte

6 risposte

40

L'intero punto di SSL è la sua resistenza alle intercettazioni di attacchi man-in-the-middle come quello che stai proponendo. Se non riesci a rendere il dispositivo client attendibile il tuo certificato autofirmato, allora le tue uniche opzioni sono:

  • Intercettare una richiesta HTTP iniziale e non lasciare mai che la comunicazione essere aggiornato a HTTPS (ma questo non funzionerà se il se il cliente va in modo esplicito a un% URL% co_de)
  • fingere di essere il server con il proprio certificato auto-firmato, e la speranza che il sistema effettua la richiesta accetta ingenuamente un certificato auto-firmato (che è il processo decisionale equivalente a un utente che ignora gli avvertimenti severi del suo navigatore web circa un possibile attacco MITM in corso)
  • Verifica la suscettibilità agli attacchi passati noti su SSL (Heartbleed, BEAST, ecc.). Si noti che questa opzione è più probabile che sia illegale, dal momento che può richiedere un attacco sul server (che non si possiede), piuttosto che un attacco sul client (che non eventualmente fare proprio)

Se hai molte migliaia di miliardi di dollari a tua disposizione, potresti avere alcune altre opzioni:

  • Compromettere con successo un'autorità di certificazione affidabile a livello mondiale e utilizzare la chiave di firma segreta per produrre certificati falsi per la propria coppia di chiavi
  • Acquistare o scoprire una vulnerabilità di sicurezza zero-day in un client Web, server Web o (preferibilmente) libreria SSL / TLS utilizzata dal client o dal server
  • Scopri una debolezza paralizzante in alcune primitive crittografiche sottostanti utilizzate da SSL (ad esempio, un'interruzione completa di AES potrebbe essere utile)
  • Spendi trilioni di dollari sull'hardware del computer per eseguire attacchi a forza bruta sulle comunicazioni crittografate intercettate

Se si ha accesso fisico illimitato al dispositivo, quasi certamente un attacco alla propria certificati attendibili del dispositivo sarebbe più facile che un attacco a SSL (anche se può anche essere tutt'altro che facile).

    
risposta data 04.03.2015 - 18:06
fonte
11

Any suggestions? Is is doable?

Devi possedere un certificato fidato dal dispositivo per intercettare il traffico. In che modo ciò può essere ottenuto dipende da quanto è corretta e aperta la convalida del certificato sul dispositivo.

  • Il dispositivo potrebbe presentare una convalida buggata o inesistente dei certificati. Questo è in genere
    • Nessuna convalida, in tal caso è possibile utilizzare qualsiasi certificato.
    • Convalida solo la catena di fiducia, ma non il nome all'interno del certificato. In questo caso è possibile utilizzare qualsiasi certificato firmato da un'autorità di certificazione attendibile del dispositivo.
  • Il dispositivo ha un corretto controllo dei certificati ma consente l'installazione di ancoraggi sicuri personalizzati. In questo caso puoi creare i tuoi certificati e importarli come affidabili.
  • Il dispositivo ha un corretto controllo dei certificati ma è chiuso contro l'aggiunta di nuovi ancoraggi di trust. Questo è dannoso per te, a meno che tu non riceva una delle CA di fiducia per firmare un nuovo certificato che è accettabile dal dispositivo. Probabilmente nessun CA lo farà.

Se ciò non aiuta potrebbero esserci altri bug. Guarda i problemi SSL degli ultimi anni e vedi se potresti utilizzare uno di questi bug. Inoltre, potresti provare a utilizzare bug non SSL per hackerare il dispositivo e modificare il comportamento del software.

    
risposta data 04.03.2015 - 17:54
fonte
3

No, la natura stessa di HTTPS è che il certificato è necessario per decrittografarlo. Potresti annusare il traffico, ma sarebbe crittografato e inutile per te.

    
risposta data 04.03.2015 - 17:45
fonte
3

No. Questo è il punto di SSL, per prevenire questo tipo di snooping non autorizzato. Per autorizzare il proxy è necessario comunicare al dispositivo di considerare attendibile il certificato proxy e comunicare ai client del dispositivo di considerare attendibile il certificato o utilizzare la chiave privata del dispositivo, a cui sembra che non si abbia accesso. Per maggiori informazioni:

link

    
risposta data 04.03.2015 - 17:51
fonte
3

Dai un'occhiata alla vulnerabilità di FREAK tls. dovresti essere in grado di iniettare dati nella negoziazione SSL per ingannare il dispositivo in un codice di esportazione RSA, e da lì la decrittazione del traffico da parte di un uomo nel mezzo è significativamente più facile (anche possibile).

Charles è scritto in java, non dovrebbe essere troppo difficile da modificare per sfruttarlo automaticamente.

    
risposta data 05.03.2015 - 00:27
fonte
1

Tutto dipende dal traffico a cui sei interessato. Se vuoi decifrare il traffico tra il tuo client e il dispositivo, allora è possibile con un proxy. In effetti, è molto simile a come funziona Superfish. Vedi Lenovo sta infrangendo la sicurezza HTTPS sui suoi laptop recenti per una descrizione di come funziona superfish.

D'altra parte, se vuoi decodificare le informazioni che il tuo dispositivo sta inviando / ricevendo da altri punti, come ad esempio ciò che Apple TV potrebbe inviare / ricevere da Apple, è molto più difficile. Sospetto che questo sia probabilmente il traffico a cui sei più interessato.

Sebbene si applichi lo stesso principio, essenzialmente un attacco MiTM (Man in The Middle), è necessario in qualche modo ottenere che il dispositivo si fidi di un certificato che possiedi o che comprometta la chiave privata del certificato che il dispositivo utilizza. Questo potrebbe essere più facile di quanto dovrebbe essere o molto difficile, a seconda di quanto accurato sia stato il fornitore nell'assicurare un'adeguata sicurezza e gestione delle chiavi SSL. Ad esempio, recentemente è stato segnalato che un noto produttore di router e modem consumer utilizzava la stessa chiave di certificazione su molti dei loro dispositivi, il che significava che una volta estratta la chiave da un dispositivo, si poteva accedere a tutti i dispositivi che utilizzavano quella chiave. Se il produttore del dispositivo ha implementato una protezione di sicurezza scadente, allora probabilmente c'è un buco da sfruttare. Tuttavia, trovarlo non è necessariamente banale. Richiede alcune abilità di hacking e solo il giusto tipo di mente deviante per trovare la debolezza. Alcune persone sono naturali in questo, altri non così tanto.

Quello che dovresti fare è portare il tuo dispositivo a fidarsi di un certificato che possiedi e quindi configurare un proxy con il tuo certificato che funzionerà come un uomo nel mezzo. La configurazione del proxy è banale se si tratta della rete, ovvero di una rete domestica, ma ottenere il dispositivo in modo che si fidi di un certificato che hai creato è molto più difficile e presenta alcuni rischi, ad esempio potresti danneggiare l'archivio certificati sul tuo dispositivo e praticamente trasformarlo in un mattone ed è quasi certamente illegale.

    
risposta data 05.03.2015 - 23:30
fonte

Leggi altre domande sui tag