Le migliori opzioni per l'ispezione SSL pur mantenendo il segreto perfetto

0

Stiamo cercando di monitorare le connessioni HTTPS in entrata per problemi di prestazioni e errori. Richieste HTTP siamo in grado di raccogliere queste informazioni bene, ma non abbiamo un modo per farlo mantenendo PFS via HTTPS. Il nostro strumento di decrittografia HTTPS non supporta affatto i codici DH,

Che cosa sta facendo la gente per questo?

    
posta user3408592 17.04.2017 - 22:18
fonte

3 risposte

1

Quindi vuoi fare qualche analisi sul traffico HTTPS in entrata. Un modo comune è utilizzare proxy inversi (comunemente Apache o nginx) davanti ai server attuali, installare i certificati server sui proxy inversi e in realtà eseguire la decrittazione SSL / TLS sui proxy. Dà:

client <-> Internet <-> [ router <-> { reverse proxies <-> actual servers } ]
                        |            |
                   corporate      security
                    network         zone
                     limit         limit

In questo scenario, i proxy inversi devono essere nella stessa zona di sicurezza come server, il che significa che solo gli amministratori dovrebbero essere in grado di spiarli e il traffico tra i proxy e i server. In questo modo il traffico tra i proxy e il server può essere tranquillamente criptato (ma dovrebbe trasportare certificati client facoltativi). Poiché i proxy inversi sono in genere più semplici dei server delle applicazioni, è più semplice aggiungere filtri e analisi del traffico.

    
risposta data 25.07.2017 - 09:50
fonte
0

Questa è una domanda davvero interessante perché quando crypto utilizza Perfect Forward Secrecy , come TLS 1.2 con DH è in gioco, quindi gli strumenti che cercano di eseguire man-in-the-middle per ispezionare il traffico si rompono.

Ispezione del traffico facendo scrivere al browser le chiavi su un registro

Ci sono alcune cose che puoi fare. Si dovrebbe guardare qualcosa chiamato SSLKEYLOGFILE. Il tutorial completo è trattato in modo davvero approfondito qui,   decifrare il traffico del browser TLS con wireshark nel modo più semplice , ma in sostanza, puoi esportare una variabile d'ambiente chiamata SSLKEYLOGFILE e indirizzarla a un file. La prossima volta che Firefox o Chrome si avvieranno, controlleranno questa variabile e, se esiste, inizieranno a scrivere tutte le chiavi CLIENT_RANDOM e le chiavi DSA sul file mentre l'utente naviga.

Wireshark può quindi utilizzare SSLKEYLOGFILE e utilizzarlo per decrittografare i pacchetti TLS e ispezionare il traffico.

La registrazione delle chiavi TLS è sul client

Noterai che tutta questa scrittura di chiavi TLS / SSL avviene sul lato client. Potresti avere tutti i tuoi clienti a scrivere le loro chiavi su una condivisione di file, raccogliere il loro traffico e ispezionarlo. Questo non sarebbe in tempo reale, e non funzionerebbe per ogni programma, ma risolve il tuo problema di non essere in grado di ispezionare il traffico che usa
DH .

    
risposta data 18.04.2017 - 15:16
fonte
0

Quindi vuoi curiosare con PFS:

Quindi ci sono diversi modi per farlo. Ma alcune delle cose che stai chiedendo ti richiedono più del quadro per discernere. Vedremo quello che stai proponendo: break-and-inspect.

Interrompi e controlla

Break-and-inspect richiede che siamo in grado di aprire il TLS e che i codici EC (DH) sono progettati per essere resistenti al MITM. C'è stato un bel post un po 'indietro che ha superato le limitazioni ( Decodifica di TLS in Wireshark quando si utilizzano le cipherità DHE_RSA .) Tl; dr, sono necessarie le chiavi pre-master dell'applicazione e un modo per consumarle.

Un altro modo per rompere e ispezionare è spostare il punto di terminazione TLS su un dispositivo che puoi usare come strumento (un proxy apache / nginx di qualche tipo). Se hai un altro dispositivo che trasmette richieste a tuo nome, puoi controllare che traffico attraverso l'applicazione del proxy.

Chiedi al server

Infine, il modo in cui tenterei di farlo è: guarderei al server web stesso. Quasi tutte le informazioni che hai menzionato (4XX, registri URI, timeout sessione tcp ecc.) Possono essere ricavate dai log del server web.

Madness

Se dovessimo svolgere questa attività senza interruzioni e ispezioni, o accedere ai log del server web e non avessi tempo, potrei provare e ( link ) implementare un pratico attacco alla bicicletta poiché ho accesso al testo non criptato per cose come 404 pagine, ecc. Non saresti in grado di ottenere informazioni significative sugli errori, solo confidenza che ci sono stati errori, ecc. Qualsiasi tipo di ispezione di rete catturerà i disconnessi di livello TCP / IP, ecc., ma sarai comunque limitato a ciò che puoi effettivamente vedere.

    
risposta data 19.04.2017 - 16:28
fonte

Leggi altre domande sui tag