Attacco replay SSL quando manca client / server casuali

9

Ehi studiando il protocollo SSL, mi chiedo come può qualcuno essere in grado di fare un attacco di replay se manca il server nonce? Tutto il materiale che trovo dice che i nonces lo impediscono, ma non ci sono esempi che specifichino perché o come

    
posta ddayan 08.05.2011 - 14:37
fonte

1 risposta

10

Se il server utilizza lo stesso nonce (chiamato " server_random " nella specifica SSL / TLS ) e il stesso ID di sessione rispetto a un precedente handshake, quindi un utente malintenzionato può inviare esattamente gli stessi pacchetti di quello che il client ha inviato durante quella sessione precedente e il server accetterà tutto. Almeno se il server utilizza una suite di crittografia a scambio di chiavi RSA (che è il caso più comune).

Questo può essere facilmente visto seguendo come vengono calcolati i vari elementi crittografici. Il messaggio ClientKeyExchange contiene il pre-master-secret, crittografato con la chiave pubblica del server; quel pacchetto può essere riprodotto ed è ancora una versione correttamente crittografata dello stesso pre-master-secret. Le chiavi di crittografia e MAC sono quindi derivate dal pre-master-secret, dal client_random e dal server_random , attraverso il "PRF" SSL / TLS che è deterministico. Quindi, se i rand sono invariati (cioè se il server usa lo stesso server_random di prima e l'utente malintenzionato invia lo stesso messaggio ClientHello rispetto alla sessione precedente) e anche il pre-master-secret rimane invariato, quindi il il server dedurrà le stesse chiavi simmetriche e accetterà quindi i pacchetti crittografati acquisiti come autentici.

L'utente malintenzionato che esegue il replay non otterrebbe ulteriori informazioni su come potrebbero apparire i dati dell'applicazione; l'attacco non è un attacco decrittante . Ma dal punto di vista del server, sembrerebbe una seconda autentica connessione volontaria. Per una connessione SSL utilizzata per una richiesta POST HTTPS per un pagamento con carta di credito, ciò significherebbe un doppio pagamento.

Fortunatamente, per ottenere un server SSL che utilizza sempre lo stesso server casuale e lo stesso ID di sessione, ci vuole incompetenza di grandezza non standard. Non sto dicendo che non accadrà mai; solo che succede raramente. In particolare, la specifica TLS insiste sull'idea che i primi quattro byte di client_random e server_random dovrebbero codificare la data e l'ora correnti, con una precisione di 1 secondo: se onorato, anche con un orologio malamente distorto, questo da solo assicura che un server con un RNG gravemente imperfetto utilizzi ancora un server_random distinto dopo un secondo.

    
risposta data 08.05.2011 - 15:07
fonte

Leggi altre domande sui tag