Passa al contenuto principale

9. TCP Fast Open

Questa sezione non è normativa.

TCP Fast Open (TFO) [RFC7413] consente di trasportare i dati nel pacchetto SYN, riducendo il costo della riapertura delle connessioni TCP. Risparmia anche fino a un RTT rispetto al TCP standard.

TFO mitiga le vulnerabilità di sicurezza inerenti all'invio di dati nel SYN, specialmente su un sistema come il DNS in cui sono possibili attacchi di amplificazione, mediante l'uso di un cookie fornito dal server. I client TFO richiedono un cookie del server nel pacchetto SYN iniziale all'inizio di una nuova connessione. Il server restituisce un cookie nel suo SYN-ACK. Il client memorizza nella cache il cookie e lo riutilizza quando apre connessioni successive allo stesso server.

Il cookie viene memorizzato dallo stack TCP del client (kernel) e persiste se i processi client o server vengono riavviati. TFO ricade anche su un normale handshake TCP con grazia.

I servizi DNS che sfruttano l'IP anycast [RFC4786] potrebbero dover adottare misure aggiuntive quando abilitano TFO. Da [RFC7413]:

I server dietro i bilanciatori del carico che accettano richieste di connessione allo stesso indirizzo IP del server dovrebbero utilizzare la stessa chiave in modo che generino cookie Fast Open identici per un particolare indirizzo IP del client. Altrimenti, un client potrebbe ottenere cookie diversi tra le connessioni; i suoi tentativi Fast Open ricadrebbero sul normale 3WHS.

Quando DNS-over-TCP è un trasporto per lo scambio privato DNS, come in [DNS-over-TLS], l'implementatore deve essere a conoscenza di TFO e assicurarsi che i dati che richiedono protezione (ad esempio i dati per una query DNS) non vengano accidentalmente trasportati in chiaro. Vedere [DNS-over-TLS] per la discussione.