TCP 3-Way Handshake: cos'è, come funziona e quali attacchi previene
✋ TCP 3-Way Handshake: cos’è, come funziona e quali attacchi previene
Quando due dispositivi vogliono comunicare su Internet usando il protocollo TCP, non iniziano a parlare subito. Prima si stringono “digitalmente” la mano per creare una connessione affidabile.
Questo processo si chiama 3-Way Handshake, ovvero “stretta di mano a tre passi”. In questo post lo vediamo in modo semplice, con esempi pratici e anche un pizzico di sicurezza informatica.
🧠 Cos’è il TCP?
Il Transmission Control Protocol (TCP) è un protocollo che garantisce una comunicazione affidabile tra due dispositivi: si occupa di far arrivare i dati senza errori, nell’ordine corretto e senza duplicazioni.
🤝 I tre passi del 3-Way Handshake
1. SYN – Il saluto iniziale
Il client invia un pacchetto SYN per iniziare la comunicazione.
“Ehi, ci sei? Vorrei parlare con te!”
2. SYN-ACK – La conferma del server
Il server risponde con un pacchetto SYN-ACK.
“Sì, ci sono! Anch’io voglio parlare. Tu sei ancora lì?”
3. ACK – L’ok finale del client
Il client invia un pacchetto ACK di conferma.
“Ricevuto tutto, iniziamo!”
✅ Connessione stabilita! Ora si possono scambiare dati in sicurezza.
🍕 Esempio pratico: ordiniamo la pizza!
- Tu: “Hai fame?” → SYN
- Amico: “Sì! E tu?” → SYN-ACK
- Tu: “Anch’io! Ordiniamo.” → ACK
🎉 La connessione TCP è come il consenso reciproco prima di ordinare una pizza.
👻 E se qualcosa va storto?
Se il client invia SYN, ma non riceve risposta? Riprova.
Se il server invia SYN-ACK, ma non riceve ACK? Aspetta per un po’… poi chiude la connessione (evita di restare bloccato come un messaggio su WhatsApp lasciato su “solo una spunta”).
🔐 Perché è importante il 3-Way Handshake?
- Garantisce che entrambi i lati siano pronti a comunicare.
- Evita connessioni incomplete o false.
- Serve come base per la sicurezza e l’affidabilità del TCP.
💣 Attacchi evitati dal 3-Way Handshake
🔹 1. IP Spoofing (con SYN Spoofing)
Un attaccante può falsificare l’indirizzo IP e inviare pacchetti SYN al server.
- Il server risponde con SYN-ACK all’indirizzo falsificato, non all’attaccante.
- Senza ACK, la connessione non si completa.
➡️ Questo riduce il rischio di connessioni fasulle.
🔹 2. SYN Flood Attack (DoS)
L’attaccante invia migliaia di SYN senza mai completare il 3° passo.
- Il server riserva risorse per ogni richiesta in attesa di ACK.
- Le risorse si saturano e i client legittimi restano fuori.
➡️ Tecniche come i SYN cookies aiutano a mitigare questi attacchi.
🧪 Verifica cosa hai imparato (interattivo)
1. Qual è lo scopo principale del 3-Way Handshake?
2. Cosa invia per primo il client?
3. Cosa succede se il server non riceve l’ACK finale?
4. Cosa rappresenta il pacchetto SYN-ACK?
5. In quale protocollo troviamo il 3-Way Handshake?