Il modello TCP/IP — stack protocollare e flusso dei pacchetti

// obiettivi di apprendimento
Descrivere i 4 livelli del modello TCP/IP e la loro funzione nella comunicazione in rete
Spiegare il processo di incapsulamento e decapsulamento dei dati attraverso lo stack
Mappare i principali protocolli (HTTP, DNS, TCP, UDP, IP, Ethernet) al livello corretto
Identificare a quale livello dello stack agiscono i principali vettori di attacco
🎬
Video
Lezione completa su YouTube
Guarda →
📄
Cheatsheet
cheatsheet-modelli-osi-tcpip.md
GitHub →
⚗️
Lab
lab-cy-l1-m1-wireshark-basics.md
GitHub →
🔗
Risorse
Link ufficiali e RFC
Vedi →

Perché i modelli a strati esistono

La comunicazione in rete è un problema straordinariamente complesso: un messaggio deve trasformarsi da bytes nel tuo browser in segnali elettrici su un cavo, attraversare router in mezzo mondo, e riapparire come HTML nel browser di qualcun altro. Per gestire questa complessità, i progettisti di rete hanno inventato i modelli a strati.

L’idea è semplice: ogni strato si occupa di un solo problema e offre servizi allo strato sopra tramite un’interfaccia ben definita. Questo significa che puoi cambiare la tecnologia di un livello (es. sostituire Ethernet con Wi-Fi) senza toccare gli altri.

// i due modelli principali
ISO/OSI — 7 livelli (teorico)
Application → Presentation → Session → Transport → Network → Data Link → Physical

Modello di riferimento didattico, nato nel 1984. Più granulare ma raramente implementato nella pratica.

TCP/IP — 4 livelli (pratico)
Application → Transport → Internet → Network Access

Il modello reale di Internet. Nato negli anni ’70, usato da ogni dispositivo connesso al mondo oggi.

I 4 livelli TCP/IP — dalla prospettiva della sicurezza

Ogni livello è sia un’astrazione utile che una potenziale superficie d’attacco. Conoscere come funziona ogni strato ti permette di capire dove un attacco colpisce e come difendersi.

4 — Application
HTTP · HTTPS · DNS · FTP · SMTP · SSH · TLS
PDU: Messaggio / Dato
3 — Transport
TCP · UDP
PDU: Segmento (TCP) / Datagramma (UDP)
2 — Internet (Network)
IPv4 · IPv6 · ICMP · ARP
PDU: Pacchetto IP
1 — Network Access (Link)
Ethernet · Wi-Fi 802.11 · Fibra ottica · DSL
PDU: Frame

Livello 4 — Application

È il livello con cui interagiscono le applicazioni utente. Definisce cosa comunicare e in quale formato. Qui vivono i protocolli che conosci ogni giorno: quando digiti un URL nel browser stai usando HTTP/HTTPS (livello applicazione). Questo è il livello più visibile per l’utente ed è anche dove avvengono molti attacchi:

  • SQL Injection — l’attacco sfrutta un’applicazione web mal programmata
  • Phishing — email e siti falsi operano a livello applicazione (HTTP, SMTP)
  • Cross-Site Scripting (XSS) — iniezione di codice nel browser tramite HTTP

Livello 3 — Transport

Si occupa della comunicazione end-to-end tra processi sugli host. TCP garantisce affidabilità, ordine e controllo di flusso. UDP è veloce e senza garanzie. Le porte logiche (0–65535) permettono a più applicazioni di usare la rete contemporaneamente sullo stesso host.

  • SYN flood — attacco DoS che inonda il server di richieste TCP SYN senza completare l’handshake
  • Port scanning — scoperta di servizi attivi tramite probe TCP/UDP sulle porte
  • Session hijacking — furto di una sessione TCP tramite predizione o intercettazione dei numeri di sequenza

Livello 2 — Internet (Network)

Gestisce l’indirizzamento logico (indirizzi IP) e il routing dei pacchetti attraverso reti diverse. IP è un protocollo best-effort: non garantisce consegna, ordine o protezione dal falsificazione. Questa apertura è la fonte di diversi attacchi storici:

  • IP spoofing — falsificare l’indirizzo sorgente IP per nascondere l’identità o ingannare il destinatario
  • ICMP flood (Ping flood) — DDoS tramite pacchetti ICMP Echo Request massivi
  • Routing attacks (BGP hijacking) — alterazione delle tabelle di routing per dirottare il traffico

Livello 1 — Network Access (Link)

Il livello più basso: si occupa della trasmissione fisica dei bit su un mezzo (cavo, Wi-Fi, fibra). Usa indirizzi MAC per identificare i dispositivi sulla stessa rete locale. Qui non esiste crittografia nativa né autenticazione forte per default:

  • ARP spoofing — risponde a richieste ARP con il proprio MAC per intercettare traffico destinato ad altri (MitM)
  • MAC flooding — riempie la tabella CAM degli switch per costringerli in modalità broadcast (sniffing)
  • Evil Twin (Wi-Fi) — AP malevolo con lo stesso SSID di uno legittimo per intercettare connessioni

L’incapsulamento — come un dato attraversa lo stack

Quando la tua applicazione invia dati, ogni livello aggiunge una propria intestazione (header) che contiene le informazioni necessarie per quel livello. Questo processo si chiama incapsulamento. Il ricevente fa l’operazione inversa: decapsulamento.

// esempio: GET / HTTP/1.1 → browser → server
① Application — crea il messaggio
[ HTTP Header + Body ]
② Transport — aggiunge header TCP (porte, seq number…)
[ TCP Header ] + [ HTTP Header + Body ]
③ Internet — aggiunge header IP (indirizzi sorgente/destinazione)
[ IP Header ] + [ TCP Header ] + [ HTTP Header + Body ]
④ Network Access — aggiunge header Ethernet (MAC) e FCS
[ Eth Header ] + [ IP ] + [ TCP ] + [ HTTP + Body ] + [ FCS ]

Al ricevente il processo è inverso: ogni livello legge e rimuove il proprio header, passando i dati allo strato superiore. La logica è ogni livello parla solo con il suo pari sull’altro host.

Protocolli chiave per livello — tabella di riferimento

LivelloProtocolloPorta/IdentFunzioneRilevanza sicurezza
ApplicationHTTPTCP/80Trasferimento pagine web — testo in chiaroIntercettabile, attacchi injection
ApplicationHTTPSTCP/443HTTP cifrato con TLSProtetto — analizzabile solo ai capi
ApplicationDNSUDP/53Risoluzione nomi → indirizzi IPDNS poisoning, DNS exfiltration
ApplicationSSHTCP/22Shell remota cifrataBrute force porte non standard, MFA
ApplicationSMTPTCP/25Invio emailSpoofing mittente, phishing, spam
TransportTCPConnessione affidabile, ordinataSYN flood, session hijacking
TransportUDPDatagrammi veloci, senza garanzieUDP amplification DDoS
InternetIPv4/IPv6Indirizzamento e routingIP spoofing, ICMP flood
InternetICMPMessaggi di errore e diagnostica (ping)Ping flood, Smurf attack
Net. AccessARPRisoluzione IP → MAC in LANARP spoofing → MitM
Net. AccessEthernetTrasmissione frame su LAN cablataMAC flooding, port security

Una richiesta web vista dallo stack — esempio completo

Proviamo a seguire cosa accade quando digiti https://profgiagnotti.it nel browser. Questo esempio mostra come tutti i livelli cooperino per fare una cosa apparentemente semplice.

// flusso completo — https://profgiagnotti.it
01

[App] Il browser non conosce l’IP di profgiagnotti.it → invia una query DNS (UDP porta 53) al resolver locale per risolvere il nome

02

[Internet] La query DNS è impacchettata in un pacchetto IP con IP sorgente = tuo IP, IP destinazione = IP del resolver DNS

03

[Net.Access] Il pacchetto è incapsulato in un frame Ethernet/Wi-Fi verso il MAC del default gateway (il router)

04

[App] Il resolver risponde con l’IP del server. Il browser avvia un TCP three-way handshake con il server su porta 443

05

[Transport] TCP stabilisce la connessione (SYN → SYN-ACK → ACK). Su questa connessione parte il TLS handshake

06

[App] TLS negozia la cifratura e verifica il certificato del server. Il browser invia la GET / HTTP/1.1 cifrata

07

[App] Il server risponde con 200 OK + HTML. Il browser decifra, analizza, scarica risorse aggiuntive (CSS, JS, immagini) e renderizza la pagina

// prospettiva dell’attaccante

Ogni fase di questo flusso è un potenziale punto di attacco. Un attaccante in rete locale può fare ARP spoofing al passo 3 per intercettare il traffico. Se il sito usa HTTP invece di HTTPS, al passo 6 tutto il contenuto sarebbe leggibile in chiaro. Se il DNS non è validato (DNSSEC), al passo 1 potrebbe ricevere un IP falso. Capire il flusso significa capire dove inserire le difese.

ISO/OSI e TCP/IP — confronto e corrispondenza

ISO/OSI#TCP/IPProtocolli tipici
Application7ApplicationHTTP, HTTPS, DNS, SSH, FTP, SMTP
Presentation6TLS/SSL, MIME, ASCII/Unicode
Session5NetBIOS, RPC, TLS session
Transport4TransportTCP, UDP, QUIC
Network3InternetIPv4, IPv6, ICMP, BGP, OSPF
Data Link2Network AccessEthernet, Wi-Fi 802.11, ARP
Physical1Cavi, fibra ottica, segnali radio
// nota didattica

Nella pratica si usa TCP/IP; ISO/OSI serve come linguaggio comune per descrivere a quale livello opera un protocollo o un attacco. Quando senti dire “attacco di livello 3” o “sicurezza a livello 2”, ci si riferisce alla numerazione OSI. Il modello a 7 livelli è il vocabolario, TCP/IP è l’implementazione reale.

📌 Riepilogo — Punti chiave
  • Il modello TCP/IP ha 4 livelli: Application, Transport, Internet, Network Access — ognuno con responsabilità precise e PDU distinti (Messaggio, Segmento, Pacchetto, Frame)
  • L’incapsulamento aggiunge header a ogni livello; il decapsulamento li rimuove — i livelli comunicano concettualmente “peer-to-peer” con il loro pari sull’host remoto
  • Ogni livello è una potenziale superficie d’attacco: ARP spoofing al livello 1/2, IP spoofing al livello 3, SYN flood al livello 4, SQL injection al livello 7
  • Una semplice richiesta HTTPS coinvolge DNS, TCP, TLS e HTTP in sequenza — capire questo flusso è fondamentale per capire dove e come difendersi
  • ISO/OSI (7 livelli) è il vocabolario universale; TCP/IP (4 livelli) è ciò che Internet usa davvero — conoscere entrambi è essenziale in cybersecurity

Lascia un commento