Passa al contenuto principale

8. Validazione dell'indirizzo

8. Validazione dell'indirizzo

La validazione dell'indirizzo garantisce che un endpoint non possa essere utilizzato per un attacco di amplificazione del traffico. In un tale attacco, un pacchetto viene inviato a un server con informazioni sull'indirizzo sorgente contraffatte che identificano una vittima. Se un server genera più o pacchetti più grandi in risposta a quel pacchetto, l'attaccante può utilizzare il server per inviare più dati verso la vittima di quanto potrebbe inviare da solo.

La difesa primaria contro gli attacchi di amplificazione è verificare che un endpoint sia in grado di ricevere pacchetti all'indirizzo di trasporto che rivendica. Pertanto, dopo aver ricevuto pacchetti da un indirizzo che non è ancora validato, un endpoint DEVE limitare la quantità di dati che invia all'indirizzo non validato a tre volte la quantità di dati ricevuti da quell'indirizzo.

8.1 Validazione dell'indirizzo durante l'instaurazione della connessione

L'instaurazione della connessione fornisce implicitamente la validazione dell'indirizzo per entrambi gli endpoint. In particolare, la ricezione di un pacchetto protetto con chiavi Handshake conferma che il peer ha elaborato con successo un pacchetto Initial. Una volta che un endpoint ha elaborato con successo un pacchetto Handshake dal peer, può considerare l'indirizzo del peer come validato.

8.1.1 Costruzione del token

Un token inviato in un pacchetto Retry o in un frame NEW_TOKEN DEVE essere costruito in modo da permettere al server di identificare come è stato fornito al client.

8.1.2 Validazione dell'indirizzo utilizzando pacchetti Retry

Alla ricezione del pacchetto Initial del client, il server può richiedere la validazione dell'indirizzo inviando un pacchetto Retry (Sezione 17.2.5) contenente un token.

8.1.3 Validazione dell'indirizzo per connessioni future

Un server PUÒ fornire ai client un token di validazione dell'indirizzo durante una connessione che può essere utilizzato su una connessione successiva.

8.1.4 Integrità del token di validazione dell'indirizzo

Un token di validazione dell'indirizzo DEVE essere difficile da indovinare. L'inclusione di un valore casuale sufficientemente grande con almeno 128 bit di entropia nel token sarebbe sufficiente.

8.2 Validazione del percorso

La validazione del percorso viene utilizzata durante la migrazione della connessione (vedere Sezione 9) per verificare la raggiungibilità dopo un cambio di indirizzo. Nella validazione del percorso, gli endpoint testano la raggiungibilità tra un indirizzo locale specifico e un indirizzo peer specifico, dove un indirizzo è la coppia di indirizzo IP e porta.

8.2.1 Avvio della validazione del percorso

Per avviare la validazione del percorso, un endpoint invia un frame PATH_CHALLENGE (Sezione 19.17) contenente un payload imprevedibile sul percorso da validare.

8.2.2 Risposte di validazione del percorso

Alla ricezione di un frame PATH_CHALLENGE, un endpoint DEVE rispondere rinviando i dati contenuti nel frame PATH_CHALLENGE in un frame PATH_RESPONSE (Sezione 19.18).

8.2.3 Validazione del percorso riuscita

La validazione del percorso ha successo quando viene ricevuto un frame PATH_RESPONSE che contiene i dati che sono stati inviati in un frame PATH_CHALLENGE precedente.

8.2.4 Validazione del percorso fallita

La validazione del percorso fallisce quando un frame PATH_RESPONSE non viene ricevuto entro il tempo previsto.