Se un utente malintenzionato riproduce i vecchi messaggi di handshake, l'inganno diventa evidente con il messaggio Finished
dall'attaccante, perché il messaggio precedentemente registrato è stato crittografato e MACed con chiavi distinte e il suo contenuto non corrisponde a:
-
La derivazione dal master secret (risultante dal meccanismo di scambio di chiavi, ad esempio RSA) in crittografia simmetrica e chiavi MAC coinvolge client_random
e server_random
dai due messaggi "ciao"; l'utente malintenzionato ha ripetuto uno di questi valori (ad esempio client_random
se l'utente malintenzionato riproduce i messaggi client ) ma l'altro è dal peer ed è diverso da ciò che è stato registrato.
-
Il contenuto dei messaggi Finished
è un hash calcolato su tutti i precedenti messaggi di handshake, inclusi i due messaggi "ciao", quindi, di nuovo, uno dei "randoms" è cambiato e l'hash ha vinto 't match.
Nota: se il server richiede l'autenticazione del client basata su certificato e l'utente malintenzionato sta riproducendo la parte client dello scambio, quindi il replay verrà rilevato in precedenza, al messaggio CertificateVerify
: il il messaggio di handshake registrato è una firma (del vero client) calcolata su un hash di tutti i precedenti messaggi di handshake, compresi, ancora, i due "randoms". Tuttavia, il server SSL che richiede i certificati client è relativamente raro.
Un utente malintenzionato che inizia ma non termina mai le strette di mano esegue un attacco Denial-of-Service : rende il server allocare risorse e passare i cicli della CPU per niente. In genere, l'utente malintenzionato invia un ClientHello
che richiede il supporto solo delle suite di crittografia "DHE"; quindi, il server deve rispondere con una sequenza di messaggi, incluso un messaggio ServerKeyExchange
che implica necessariamente una firma appena calcolata. Il costo della CPU per l'autore dell'attacco è minimo (solo lo sforzo di aprire una connessione TCP e inviare alcuni byte) mentre il server deve eseguire qualche crittografia.
Poiché questo tipo di DoS richiede una connessione TCP effettiva, viene rivelato l'indirizzo IP dell'utente malintenzionato; inoltre, le firme non sono così costose: un PC può fare migliaia di firme al secondo. Pertanto, i DoS basati su SSL vengono generalmente eseguiti da botnet.