Quando SSL rileva un attacco di riproduzione?

3

Supponiamo che un utente malintenzionato registri tutti i messaggi di un handshake SSL (RSA a senso unico) e avvii un attacco di riproduzione. Quando (dopo quale messaggio) il server può rilevare l'attacco?

Ora supponiamo che l'attaccante cambi strategia e mandi le prime tre fasi (fino allo scambio di chiavi di sessione), ma invia questa sequenza molte volte. Perché un hacker farebbe questo e quale sarebbe l'impatto sul server?

    
posta AlphaSnake 05.06.2014 - 11:32
fonte

1 risposta

2

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.

    
risposta data 05.06.2014 - 12:55
fonte

Leggi altre domande sui tag