È possibile decodificare una sessione SSL / TLS senza eseguire un attacco MITM?

6

Non sto parlando della decodifica della connessione mentre sta accadendo lo SSL / TLS (MITM) ma dopo che la connessione è stata chiusa e ho un file pcap dell'intero processo di negoziazione / trasferimento dei dati.

Come posso decodificare i dati che sono stati passati nella connessione? C'è un modo per ottenere la chiave di sessione (senza attendere qualche anno per la fine del processo di calcolo)? I computer quantistici aiutano?

    
posta YSY 07.10.2011 - 14:37
fonte

2 risposte

13

La risposta breve è "no". La risposta più lunga è che SSL è specificamente progettato per renderlo impossibile. Se ciò fosse possibile, SSL sarebbe inutile per il suo scopo primario - per proteggere cose come i numeri delle carte di credito inviati a siti Web sicuri.

La risposta breve (e tecnicamente scorretta) su come SSL fa ciò è la seguente:

  1. Il server presenta un certificato al client.

  2. Il client conferma che il certificato è stato firmato da un'organizzazione fidata dal cliente e che questa organizzazione certifica che il certificato appartiene al server che il cliente desidera raggiungere.

  3. Il client genera una chiave casuale, la crittografa con la chiave pubblica nel certificato e la invia al server.

  4. Il server decrittografa la chiave e utilizza il segreto condiviso che il server e il client devono ora proteggere ulteriormente le comunicazioni. (Lo fa in un modo un po 'complesso però. Di nuovo, questa è una spiegazione semplicistica.)

La decrittografia dei dati richiederebbe almeno il recupero del segreto condiviso generato nel passaggio 3. Ma come faresti? È stato inviato solo tramite il cavo crittografato e non hai la chiave privata del server.

    
risposta data 07.10.2011 - 22:34
fonte
8

Può essere fatto, ma richiede informazioni al di là di quello che hai sul filo. Wireshark ha la capacità di fare questo tipo di sniffing , assumendo che possa vedere l'intera conversazione e che tu abbia anche la chiave privata del certificato SSL del server. Senza la chiave privata non funziona.

Ecco perché è necessario proteggere le tue chiavi private.

Ho usato questa funzionalità nel software di debug. Un'applicazione client / server utilizzava SSL per trasmettere dati e stava accadendo qualcosa di divertente nel livello di rete. Dal momento che ho controllato l'intero ambiente ho avuto la chiave privata per il certificato SSL, quindi ero in grado di usare Wireshark per ottenere la conversazione. Che a sua volta ha indicato un bug che ho segnalato allo sviluppo.

    
risposta data 08.10.2011 - 15:10
fonte

Leggi altre domande sui tag