IPsec — protocollo, modalità operative e negoziazione

📋 Obiettivi di apprendimento
Descrivere l’architettura di IPsec e distinguere le due modalità operative Transport Mode e Tunnel Mode
Distinguere AH ed ESP spiegando cosa protegge ciascuno e perché ESP è lo standard attuale
Spiegare il concetto di Security Association e descrivere le due fasi di negoziazione IKE
Configurare una VPN Site-to-Site IPsec su router Cisco IOS con ISAKMP policy, transform set e crypto map
🎬
Video
IPsec — come funziona il protocollo di sicurezza IP
Guarda →
🎬
Video
IPsec — come funziona il protocollo di sicurezza IP
Guarda →
📄
Slides
IPsec — AH, ESP, SA, IKE e configurazione IOS
🔬
Lab
VPN Site-to-Site IPsec in Packet Tracer
GitHub →
🔬
Lab
VPN Remote Access in Packet Tracer
GitHub →
🖧
Lab
VPN Site-to-Site IPsec in Packet Tracer
PKT →
🖧
Lab
VPN Remote Access in Packet Tracer
PKT →

IPsec — sicurezza al livello Network

Nella lezione precedente abbiamo visto come una VPN crei un tunnel crittografico su Internet. Ora analizziamo il protocollo che realizza concretamente questo tunnel nella maggior parte delle implementazioni aziendali: IPsec (IP Security).

IPsec è un insieme di protocolli definito dall’IETF (RFC 4301 e successivi) che opera al livello 3 del modello ISO/OSI — il livello Network. Questo è un punto fondamentale: agendo direttamente sui pacchetti IP, IPsec protegge automaticamente tutti i protocolli superiori senza che questi debbano essere modificati. TCP, UDP, HTTP, FTP, DNS — tutto ciò che viaggia sopra IP viene protetto senza richiedere modifiche alle applicazioni.

Riservatezza

Cifratura del contenuto dei pacchetti

Integrità

Verifica che il pacchetto non sia stato alterato

Autenticazione

Verifica dell’identità dei peer comunicanti

Anti-replay

Protezione contro la ritrasmissione di pacchetti catturati

Le due modalità operative di IPsec

IPsec può funzionare in due modalità diverse che determinano quale parte del pacchetto viene protetta e come viene incapsulato:

Transport Mode

IPsec protegge solo il payload (contenuto) del pacchetto IP, lasciando invariato l’header originale con gli indirizzi IP reali dei due endpoint.

Pacchetto originale:
[IP Header][TCP][Dati]
→ dopo Transport Mode:
[IP Header][AH/ESP Header][TCP][Dati cifrati]
Uso tipico

Comunicazione sicura diretta tra due host specifici (es. due server che si parlano direttamente). Gli IP reali restano visibili.

Tunnel Mode ✅ Più usato

IPsec incapsula l’intero pacchetto IP originale (header + payload) all’interno di un nuovo pacchetto IP. Il nuovo header contiene gli IP dei gateway VPN, nascondendo completamente la struttura della rete interna.

Pacchetto originale:
[IP Interno][TCP][Dati]
→ dopo Tunnel Mode:
[Nuovo IP esterno][ESP Header][IP int.][TCP][Dati — tutto cifrato]
Uso tipico

VPN Site-to-Site e Remote Access. Gli IP interni della LAN privata sono completamente nascosti a chi monitora il traffico.

📌 Perché il Tunnel Mode è preferito nelle VPN aziendali

In una VPN Site-to-Site, i due gateway VPN (router di frontiera) incapsulano tutto il traffico delle loro LAN. Un attaccante che intercetta i pacchetti vede solo gli IP pubblici dei due gateway — non sa quali PC, server o subnet esistono nelle reti private. Il Tunnel Mode offre quindi sia cifratura che oscuramento della topologia interna.

I protocolli di IPsec: AH e ESP

IPsec non è un singolo protocollo ma un framework che include due meccanismi di protezione:

AH — Authentication Header
Protocollo IP numero 51

Fornisce autenticazione e integrità del pacchetto ma non fornisce cifratura. Il contenuto resta leggibile, ma qualsiasi modifica — anche di un solo bit — viene rilevata.

Autenticazione dell’origine
Integrità dei dati
Protezione anti-replay
Nessuna cifratura — dati leggibili
Oggi poco usato: senza cifratura non garantisce riservatezza. Incompatibile con NAT (modifica gli IP, invalidando l’hash di autenticazione).
ESP — Encapsulating Security Payload ✅
Protocollo IP numero 50

È il protocollo principale di IPsec. Fornisce cifratura, integrità e autenticazione — tutto ciò che serve per una comunicazione sicura completa.

Cifratura del payload (AES, 3DES)
Autenticazione dell’origine
Integrità dei dati (SHA-256, SHA-512)
Protezione anti-replay
La quasi totalità delle implementazioni moderne usa ESP in Tunnel Mode — sia per VPN Site-to-Site che Remote Access.

Security Association (SA) — l’accordo crittografico

Prima che due dispositivi possano comunicare con IPsec, devono concordare i parametri della comunicazione sicura. Questo accordo si chiama Security Association (SA).

📌 Definizione di Security Association

Una SA è un accordo logico unidirezionale tra due entità che definisce tutti i parametri necessari per proteggere il traffico in una direzione: algoritmo di cifratura, algoritmo di hash, chiavi crittografiche, durata della sessione, modalità operativa (Transport o Tunnel), numeri di sequenza per anti-replay.

Punti chiave sulle SA

Una SA è unidirezionale: per comunicare nelle due direzioni servono due SA (una per A→B e una per B→A)

Le SA sono identificate da un SPI (Security Parameter Index) — un numero che il destinatario usa per trovare i parametri corretti nel database

Le SA sono memorizzate nel SAD (Security Association Database) su ciascun dispositivo

Le SA hanno una durata limitata (lifetime in secondi o in byte trasmessi) — scaduta, vengono rinegoziati nuovi parametri automaticamente

IKE — Internet Key Exchange

Negoziare manualmente le SA su ogni coppia di dispositivi sarebbe impraticabile. Il protocollo IKE (Internet Key Exchange) automatizza questo processo. IKE è l’implementazione standard del framework ISAKMP (Internet Security Association and Key Management Protocol) — in pratica, ISAKMP definisce il framework concettuale e IKE è il protocollo concreto che lo realizza.

📌 ISAKMP vs IKE — chiarimento

ISAKMP è il framework che definisce come devono essere strutturati i messaggi di negoziazione. IKE è il protocollo che usa ISAKMP per lo scambio concreto delle chiavi. Nella configurazione Cisco IOS il comando è crypto isakmp ma si sta configurando IKE. Oggi la versione più diffusa è IKEv2 (RFC 7296), più semplice e sicura di IKEv1.

IKE Fase 1 — il canale di gestione sicuro

Nella Fase 1, i due peer stabiliscono un canale sicuro e autenticato attraverso cui potranno poi negoziare i parametri del tunnel vero e proprio. Questo canale si chiama IKE SA (o ISAKMP SA).

Cosa viene negoziato nella Fase 1
Algoritmo di cifratura
AES-256, AES-128, 3DES
Algoritmo di hash/integrità
SHA-256, SHA-512, SHA-1 (deprecato)
Metodo di autenticazione
Pre-shared key (PSK) o certificato digitale
Gruppo Diffie-Hellman
Gruppo 2, 5, 14 (2048 bit), 19, 20 — determina la robustezza dello scambio delle chiavi
📌 Diffie-Hellman — perché è fondamentale

Il protocollo Diffie-Hellman (DH) permette a due parti di concordare una chiave segreta condivisa comunicando su un canale non sicuro — senza mai trasmettere la chiave stessa. Entrambe le parti scambiano parametri pubblici e combinando il proprio valore privato con quello pubblico del peer ottengono la stessa chiave condivisa. Un intercettatore che vede lo scambio non può ricavare la chiave. Il “gruppo DH” determina la dimensione dei parametri e quindi la robustezza: i gruppi 14 e superiori (2048+ bit) sono gli standard attuali.

IKE Fase 2 — negoziazione del tunnel dati

Una volta stabilito il canale sicuro della Fase 1, la Fase 2 negozia i parametri del tunnel IPsec vero e proprio — le SA che proteggeranno i dati effettivi degli utenti. Queste si chiamano IPsec SA.

Cosa viene negoziato nella Fase 2
Protocollo IPsec
ESP (quasi sempre) o AH
Transform set
Combinazione di algoritmi di cifratura e hash per ESP
Traffico interessato
ACL “crypto” che definisce quale traffico deve essere protetto
Perfect Forward Secrecy (PFS)
Se attivato, genera nuove chiavi DH indipendenti per ogni Fase 2
📌 Perfect Forward Secrecy (PFS)

Con PFS disattivato, le chiavi della Fase 2 sono derivate dalla chiave della Fase 1. Se un attaccante riuscisse a compromettere la chiave della Fase 1 in futuro, potrebbe decifrare tutto il traffico passato. Con PFS attivo, ogni Fase 2 genera una nuova coppia DH completamente indipendente. Anche compromettendo una chiave, le altre sessioni restano sicure. È il concetto di “Forward Secrecy” già visto in TLS.

Schema riepilogativo del processo IKE

Router Sede A
Router Sede B
propone algoritmi, DH, autenticazione
FASE 1 — IKE SA
canale di controllo sicuro
accetta e risponde
propone ESP, transform set, traffico
FASE 2 — IPsec SA
tunnel dati cifrato
accetta e risponde
dati LAN cifrati + incapsulati
TRAFFICO DATI
ESP Tunnel Mode
decifra e consegna alla LAN

Configurazione IPsec su Cisco IOS

La configurazione di una VPN Site-to-Site IPsec su Cisco IOS segue sempre la stessa sequenza di quattro passi. Ogni passo corrisponde a un elemento della negoziazione IKE che abbiamo studiato.

Scenario: collegare Sede A (10.1.1.0/24) a Sede B (10.2.2.0/24) — router con IP pubblici 1.1.1.1 e 2.2.2.2
PASSO 1 — ISAKMP Policy (Fase 1)
! Definisce i parametri per la Fase 1 (canale di controllo sicuro)
Router(config)# crypto isakmp policy 10
! Il numero 10 è la priorità — più basso = più prioritario

Router(config-isakmp)# encryption aes 256
! Algoritmo di cifratura per il canale IKE

Router(config-isakmp)# hash sha256
! Algoritmo di hash per l'integrità

Router(config-isakmp)# authentication pre-share
! Metodo di autenticazione: pre-shared key (chiave segreta condivisa)
! L'alternativa è "rsa-sig" con certificati digitali

Router(config-isakmp)# group 14
! Gruppo Diffie-Hellman 14 = 2048 bit — standard attuale

Router(config-isakmp)# lifetime 86400
! Durata della SA in secondi (86400 = 24 ore)
Router(config-isakmp)# exit

! Configura la chiave pre-condivisa per il peer 2.2.2.2
Router(config)# crypto isakmp key ChiaveSegreta!2024 address 2.2.2.2
! La stessa chiave deve essere configurata specularmente sull'altro router
PASSO 2 — Transform Set (Fase 2)
! Definisce gli algoritmi per proteggere i dati effettivi degli utenti
Router(config)# crypto ipsec transform-set TS-AES-SHA esp-aes 256 esp-sha256-hmac
! "TS-AES-SHA" è il nome del transform set (sceglilo tu)
! esp-aes 256   → cifratura ESP con AES-256
! esp-sha256-hmac → integrità con HMAC-SHA256

Router(cfg-crypto-trans)# mode tunnel
! Tunnel Mode: incapsula l'intero pacchetto originale
Router(cfg-crypto-trans)# exit
PASSO 3 — Crypto ACL (traffico interessato)
! Definisce quale traffico deve essere cifrato (interessato dal tunnel)
! Questa ACL non filtra il traffico — lo SELEZIONA per la cifratura
Router(config)# ip access-list extended ACL-VPN-SEDE-A
Router(config-ext-nacl)# permit ip 10.1.1.0 0.0.0.255 10.2.2.0 0.0.0.255
! Tutto il traffico da Sede A (10.1.1.0/24) verso Sede B (10.2.2.0/24)
! verrà incapsulato e cifrato nel tunnel IPsec
Router(config-ext-nacl)# exit
PASSO 4 — Crypto Map (collega tutto) + applicazione
! La crypto map lega insieme ISAKMP policy, transform set e ACL
Router(config)# crypto map VPN-MAP 10 ipsec-isakmp
! "VPN-MAP" è il nome della map, "10" è il numero di sequenza

Router(config-crypto-map)# set peer 2.2.2.2
! IP pubblico del router dell'altra sede

Router(config-crypto-map)# set transform-set TS-AES-SHA
! Usa il transform set definito al Passo 2

Router(config-crypto-map)# match address ACL-VPN-SEDE-A
! Usa la crypto ACL definita al Passo 3

Router(config-crypto-map)# set security-association lifetime seconds 3600
! Durata della IPsec SA (Fase 2): 1 ora — più breve della Fase 1
Router(config-crypto-map)# exit

! Applica la crypto map sull'interfaccia WAN (verso Internet)
Router(config)# interface GigabitEthernet0/1
! L'interfaccia con l'IP pubblico 1.1.1.1
Router(config-if)# crypto map VPN-MAP
Router(config-if)# exit

Router(config)# end
Router# write memory

Verifica del tunnel IPsec

Comandi show per la verifica del tunnel
show crypto isakmp sa Mostra le SA della Fase 1 — stato QM_IDLE indica tunnel attivo
show crypto ipsec sa Mostra le SA della Fase 2 con contatori dei pacchetti cifrati/decifrati
show crypto map Mostra la configurazione della crypto map con tutti i parametri
debug crypto isakmp Log in tempo reale della negoziazione IKE — utile per debug
📌 Come si attiva il tunnel — il primo traffico interessante

Il tunnel IPsec si attiva on-demand: viene creato solo quando il primo pacchetto che corrisponde alla crypto ACL tenta di attraversare l’interfaccia WAN. Prima di quel momento, le SA non esistono. Per forzare la negoziazione manualmente: ping [IP-destinazione] source [interfaccia-LAN]. I contatori di show crypto ipsec sa aumentano ad ogni pacchetto cifrato.

📌 Riepilogo — Punti chiave
  • IPsec opera al livello Network e protegge automaticamente tutti i protocolli superiori senza modifiche alle applicazioni
  • Transport Mode: protegge solo il payload, gli IP reali restano visibili; Tunnel Mode: incapsula tutto il pacchetto originale, nasconde la struttura della rete interna
  • AH: autenticazione e integrità, nessuna cifratura (poco usato, incompatibile con NAT); ESP: cifratura + integrità + autenticazione (standard attuale)
  • IKE Fase 1: stabilisce il canale di controllo sicuro (IKE SA); Fase 2: negozia il tunnel dati effettivo (IPsec SA)
  • La configurazione Cisco IOS segue quattro passi: ISAKMP policy → Transform set → Crypto ACL → Crypto map applicata all’interfaccia WAN

Lascia un commento