ssl: l'attaccante può generare la propria chiave simmetrica se ClientHello e ServerHello vengono intercettati?

3

Dopo aver letto questa spiegazione impressionante di come funziona SSL , ora ho una confusione.

La risposta afferma che i primi messaggi di SSL sono ClientHello e ServerHello (in risposta a ClientHello). Entrambe le quali non sono criptate, correggimi se sbaglio. Inoltre, il client non inizia l'invio crittografato finché non viene emesso ChangeCipherSpec .

Quindi ClientHello e ServerHello contengono "client random" e "server random" e anche l'ID di sessione. Ora AFAIK i dati vengono crittografati utilizzando una chiave di crittografia simmetrica, ovvero il client e il server hanno entrambi una copia della stessa chiave e la crittografia / decrittografia viene eseguita tramite quella singola chiave per quella sessione SSL.

E non è che la chiave supponga di essere calcolata usando "client random" e "server random" ?

Quindi se ClientHello e ServerHello sono entrambi in chiaro, l'autore dell'attacco non può semplicemente utilizzare lo stesso algoritmo del client e generare la propria chiave simmetrica e conversare con il server impersonare il cliente?

Come è possibile? Cosa mi manca qui?

UPDATE: Le fasi di ServerKeyExchange e ClientKeyExchange si verificano anche prima di ChangeCipherSpec , quindi anche supposte non crittografate.

    
posta ng.newbie 26.05.2017 - 15:44
fonte

2 risposte

2

Quindi molti dei miglioramenti di TLS dipendono dal messaggio Finished : non appena ChangeCipherSpec , un messaggio Finished viene inviato crittografato con i nuovi parametri negoziati. Sia il server che il client devono immediatamente decrittografare questo messaggio, che contiene hash dell'handshake fino ad ora. Se c'è una discrepanza, ad esempio da un attacco man-in-the-middle, verrà rilevata qui.

Se non lo hai , puoi ottenere attacchi simili a quelli che ti stai chiedendo. Vedi la mia risposta su qui per maggiori dettagli.

    
risposta data 26.05.2017 - 18:28
fonte
1

Ti manca la parte più bella. Diffie Hellman Key Exchange: link

Questa parte è il bit che consente di generare le chiavi a ciascuna estremità scambiando i dettagli in chiaro. Anche se un utente malintenzionato intercetta comunicazioni chiare, non è in grado di ricreare l'output. Molto intelligente poiché l'algoritmo è noto a tutti e sapendo che non offre alcun vantaggio all'attaccante.

Vale anche la pena notare che se un uomo nel mezzo dell'attaccante intercetta e modifica attivamente qualsiasi cosa all'interno del protocollo mentre non è crittografato quando il protocollo conduce la fase di autenticazione del messaggio, noterebbe che è stato manomesso e fallito.

    
risposta data 26.05.2017 - 15:50
fonte

Leggi altre domande sui tag