Quindi queste sono due cose completamente diverse, la prima è una classificazione dell'uso del protocollo, il secondo è un metodo a volte utilizzato da DDoSsers. Do esempi di entrambi.
Riflessione di autenticazione
L'esempio classico usato per spiegare il concetto di un attacco di riflessione è il MIG nel mezzo .
Come dovrebbe funzionare
Un militare decide di implementare un sistema che consenta loro di dire immediatamente se un velivolo sul proprio radar è un bravo ragazzo o un cattivo (si fa riferimento al sistema Identify Friend from Foe (IFF)).
Il sistema che implementano ha qualcosa di simile;
1: Alice > Bob: n <-- challenge
2: Bob > Alice: E(K, n) <-- response
Dove n
è un nonce casuale unico, K
è una chiave pre-condivisa e E
è una funzione di crittografia / derivazione appropriata.
Poiché solo gli aerei amici conoscono il valore della chiave segreta K
, solo gli aerei amici possono calcolare la risposta corretta a un dato nonce n
. Se Bob non riesce a generare e inviare la risposta corretta entro pochi secondi, Alice lo spara immediatamente.
Altrimenti, Alice sa che Bob deve aver conosciuto il valore di K
per generare la risposta che ha inviato e che Bob deve quindi essere nella stessa squadra.
Questo processo può essere ripetuto all'indietro in modo che Alice e Bob siano reciprocamente autenticati.
Questo sistema così com'è è completamente rotto, ma prima focalizziamoci sull'attacco riflesso che hai chiesto.
The Reflection Attack
Un aereo nemico può sconfiggere il sistema riflettendo la sfida a qualche altro membro della squadra dei buoni ragazzi.
1: Alice > Bob: n
2: Bob > Charlie: n <-- reflection attack
3: Charlie > Bob: E(K, n) <-- bob receives the correct response to Alice's challenge
4: Bob > Alice: E(K, n) <-- and authenticates himself to Alice
Alla quarta interazione, Bob si è autenticato con Alice che gli permette di sorvolare pacificamente. Bob l'ha fatto senza conoscenza di K
, semplicemente inviando la stessa sfida a qualcun altro, da qui il nome riflessione. Bob ha illustrato la sfida a Charlie, che è nella squadra di Alice e quindi conosce il valore di K
e può generare la risposta corretta. Charlie risponde alla sfida di Bob's IFF come normalmente farebbe, dando a Bob la risposta corretta alla sfida originale.
Altri attacchi
Replay : se i valori di n
sono presi da uno spazio abbastanza piccolo, inizieranno a essere ripetuti. Se Bob tiene traccia di ogni coppia n
e response E(K,n)
che sente, alla fine sarà in grado di costruire un dizionario di risposte corrette senza mai aver bisogno di conoscere la chiave segreta K
. Può quindi iniziare a ripetere le risposte precedenti quando riceve una sfida che ha una voce nel suo dizionario.
Forza bruta : probabilmente Mario sarà a conoscenza della funzione di derivazione E
. Se conosce una coppia n
, E(K,n)
, può provare diversi valori di J
fino a E(K,n) == E(J,n)
che implica che J == K
e che abbia forzato brutalmente la chiave segreta K
.
Riflessione DDoS
Un attacco Denial of Service di base è essenzialmente un diluvio del traffico, progettato per esaurire larghezza di banda, memoria o altre risorse sul computer di destinazione.
L'idea è che l'aggressore abbia il controllo di una larghezza di banda significativamente maggiore della vittima, e quindi può facilmente sopraffare la vittima.
1. Attacker > Victim: x
Se x
è di grandezza sufficiente, la vittima non può gestirla (una delle molte risorse viene esaurita) e la vittima non è in linea.
L'attaccante può semplificare la vita utilizzando una tecnica chiamata amplificazione del traffico per che riflette il suo traffico da uno o più computer di terze parti.
Sembra qualcosa di simile;
1. Attacker > ThirdParty: x
2. ThirdParty > Victim: y
L'utente malintenzionato invia un messaggio x
a una terza parte, mentre esegue lo spoofing dell'IP di origine della vittima. Quando la terza parte risponde al messaggio x
, la risposta viene inviata alla vittima.
Se la grandezza della risposta y
è maggiore della grandezza del messaggio x
, allora l'attaccante ha moltiplicato il suo potenziale di DoS.
Uso qui il termine "magnitudine" per indicare che può essere qualsiasi cosa: numero di connessioni, larghezza di banda dati, frequenza dei pacchetti ecc. Il punto è se y
è più difficile da elaborare rispetto a x
, quindi l'utente malintenzionato ha ha aumentato la sua potenza del rapporto di magnitudo di y
in x
.
Se l'attaccante può usare contemporaneamente un gran numero di terze parti, in modo tale che la larghezza di banda dell'attaccante è completamente consumata, allora ha veramente moltiplicato la sua potenza d'attacco.