OK, sosterrò che questa affermazione non è abbastanza giusta. L'affermazione è corretta se assumiamo che non vengano inviate opzioni TCP. In teoria, un utente malintenzionato che può intercettare i pacchetti può iniettare un pacchetto correttamente predisposto nel server e confondere la connessione.
In pratica praticamente tutte le connessioni TCP oggi sono sintonizzate e usano ridimensionamento della finestra . Definiscono una dimensione della finestra per ricevere i dati più velocemente e non è necessario riconoscere ogni pacchetto.
Ora, questo dipende dall'implementazione ma tutti i dati in una finestra devono essere conservati in un buffer invece di essere passati all'applicazione perché potrebbe accadere che l'intera finestra non riesca a riconoscere correttamente.
Se un utente malintenzionato M intercetta la connessione invia solo un singolo pacchetto al server S con meno dati rispetto alla dimensione della finestra (molto probabilmente poiché Windows è spesso una manciata di megabyte), i dati del pacchetto terminano nel buffer con la sua posizione definita dal numero di sequenza.
Il client A ora invia un pacchetto al server S continuando la connessione, è probabile che il contenuto del pacchetto venga scaricato alla cieca nel buffer che contiene la finestra. E l'attaccante non riesce a confondere la connessione.
Quanto sopra non è strettamente vero neanche. Un ACK può essere inviato in qualsiasi momento durante la raccolta dei pacchetti per la finestra , non solo quando viene raggiunta la dimensione della finestra. In termini pratici, questo (molto probabilmente) significa che:
- L'attaccante M può riuscire a inviare un singolo pacchetto per interferire con una connessione lenta (molto tempo per il server S per inviare ACK).
- L'attaccante M avrà problemi ad interferire con una connessione a ritmo veloce in cui il server S decide di attendere il completamento della finestra invece di inviare ACK.
In una connessione a ritmo veloce, l'attaccante M dovrà riempire la finestra con i suoi dati prima che i dati del cliente arrivino. Questo è ancora possibile se l'autore dell'attacco M è più vicino al server S del client A .
Riferimenti