8. Considerazioni sulla sicurezza
Le considerazioni sulla sicurezza per UDP e SCTP sono fornite negli RFC di riferimento.
8.1. Controllo della frequenza di sondaggio
Per evitare un carico eccessivo, l'intervallo tra i singoli pacchetti di sondaggio DEVE essere almeno un RTT e l'intervallo tra i cicli di sondaggio è determinato dal PMTU_RAISE_TIMER.
8.2. Protezione della conferma dei pacchetti di sondaggio
Il mittente PL deve garantire che il metodo utilizzato per confermare la ricezione dei pacchetti di sondaggio sia in grado di proteggere dagli attaccanti fuori percorso che iniettano pacchetti nel percorso. Questa protezione è fornita nei protocolli definiti dall'IETF (ad esempio, TCP, SCTP) utilizzando un numero di sequenza inizializzato in modo casuale. La sezione 5.1 di [BCP145] fornisce una descrizione di un modo per farlo quando si utilizza UDP.
8.3. Validazione dei messaggi PTB
Ci sono casi in cui i messaggi Packet Too Big (PTB) non vengono consegnati a causa di policy, configurazione o progettazione dell'apparecchiatura (vedere Sezione 1.1). Questo metodo, pertanto, non si basa sulla ricezione di messaggi PTB ma è in grado di utilizzarli quando vengono ricevuti da un mittente.
Protezione dagli attacchi tramite messaggi PTB
I messaggi PTB potrebbero essere utilizzati per indurre un nodo a ridurre in modo inappropriato il PLPMTU. Un nodo che supporta DPLPMTUD DEVE validare in modo appropriato il payload dei messaggi PTB per garantire che questi siano ricevuti in risposta a datagrammi effettivamente inviati dallo strato PL (ovvero, corrispondono a una condizione di errore riscontrata per un datagramma effettivamente inviato, vedere Sezione 4.6.1).
Mitigazione degli attacchi on-path
Un attaccante on-path in grado di creare messaggi PTB potrebbe falsificare messaggi PTB che includono un pacchetto IP citato valido. Un tale attacco potrebbe essere utilizzato per ridurre il PLPMTU. Un dispositivo on-path potrebbe similmente forzare una riduzione del PLPMTU implementando una policy per scartare pacchetti più grandi di una dimensione configurata.
Metodi di mitigazione:
-
Protezione di base: Garantire che un mittente PL non riduca mai il PLPMTU al di sotto della dimensione di base solo in risposta alla ricezione di un messaggio PTB. Questo si ottiene entrando prima nello stato BASE quando viene ricevuto un tale messaggio.
-
Validazione tramite sondaggio: Progettato per non richiedere l'elaborazione dei messaggi PTB; un mittente PL può sospendere l'elaborazione dei messaggi PTB (ad esempio, in una modalità di robustezza dopo aver rilevato che il sondaggio successivo conferma effettivamente che una dimensione maggiore di PTB_SIZE è supportata dal percorso).
8.4. Protezione dal Denial of Service
Limitazione del sovraccarico di elaborazione
L'analisi del pacchetto citato all'interno di un messaggio PTB può introdurre un'elaborazione aggiuntiva per pacchetto presso il mittente PL. Questa elaborazione DOVREBBE essere limitata per evitare un attacco denial-of-service quando sono presenti intestazioni arbitrarie. La limitazione del tasso di elaborazione potrebbe impedire al PL di ricevere messaggi PTB; tuttavia, il metodo DPLPMTUD è robusto a tale perdita.
Elaborazione dei messaggi ICMP
L'elaborazione riuscita di un messaggio ICMP può attivare un sondaggio quando la dimensione PTB segnalata è valida, ma questo non aggiorna direttamente il PLPMTU per un percorso. Questo impedisce ai messaggi che tentano di creare un buco nero per i dati indicando una dimensione maggiore di quella supportata dal percorso.
8.5. Instabilità delle informazioni sul percorso
Le informazioni su un percorso possono essere instabili. Questo potrebbe essere il risultato di un inoltro attraverso più percorsi con PMTU effettivi diversi o di un singolo percorso che presenta un PMTU variabile.
Mitigazione: La progettazione di un'implementazione DPLPMTUD DOVREBBE considerare come mitigare gli effetti delle informazioni sul percorso variabili. Una possibile mitigazione consiste nel fornire robustezza (vedere Sezione 5.4) nel metodo per evitare oscillazioni nel MPS.
8.6. Sicurezza dei dati di riempimento
Il metodo DPLPMTUD può introdurre dati di riempimento per gonfiare la lunghezza del datagramma alla dimensione totale richiesta per un pacchetto di sondaggio. La dimensione totale di un pacchetto di sondaggio include tutte le intestazioni e il riempimento aggiunti ai dati di payload inviati (ad esempio, inclusi campi relativi alla sicurezza come tag AEAD e riempimento del livello record TLS). Il valore dei dati di riempimento non influisce sull'algoritmo di ricerca DPLPMTUD e quindi deve essere impostato in modo coerente con la policy del PL.
Requisiti di protezione crittografica
Se il PL è in grado di utilizzare un meccanismo crittografico di riservatezza o integrità dei dati, il progetto dovrebbe evitare di aggiungere qualsiasi cosa ai pacchetti di sondaggio DPLPMTUD (ad esempio, riempimento) che non sia anche protetta da questi meccanismi crittografici.
8.7. Riepilogo delle best practice di sicurezza
- Validare tutti i messaggi PTB: Validare l'origine e il contenuto dei messaggi PTB prima dell'uso
- Limitare il tasso di elaborazione: Prevenire l'esaurimento delle risorse dall'elaborazione dei messaggi PTB
- Proteggere la conferma del sondaggio: Utilizzare identificatori difficili da indovinare
- Crittografare i dati di riempimento: Garantire che tutti i dati nei pacchetti di sondaggio siano protetti dalla crittografia
- Monitorare la stabilità del percorso: Rilevare e rispondere a cambiamenti insoliti nelle informazioni sul percorso
- Implementare la limitazione del tasso: Controllare la frequenza di invio dei pacchetti di sondaggio
Queste considerazioni sulla sicurezza garantiscono che DPLPMTUD possa operare in modo sicuro e affidabile, anche in presenza di attaccanti malintenzionati.