IPsec
...

IPsec è una raccolta di protocolli che forniscono: confidenzialità, autenticazione del mittente e prevenzione di replay-attack.
Questi protocolli possono essere utilizzati per implementare delle reti private virtuali (VPN).

AH (Authentication Header)
...

Il protocollo AH fornisce autenticazione, ma non fornisce confidenzialità. A volte alcuni pacchetti non hanno bisogno di passare attraverso il processo costoso della cifratura, in tali casi entra in gioco AH.
AH fornisce tale servizio calcolando il MAC su alcune parti del datagramma IP, creando un ICV (Integrity Check Value).
Vi sono alcuni campi del datagramma IP che cambiano da un hop all'altro come TTL o Checksum, AH non autentica tali campi, li pone a 0 prima di effettuare il calcolo dell'ICV.
AH potrebbe essere seguito da ESP.

L'header AH
...

L'header AH, a seconda della modalità con cui è usato cambia la sua locazione.
Nell'header sono compresi una serie di campi, tra cui:

  • next header (il tipo di pacchetto che sta autenticando AH)
  • SPI (per l'associazione di sicurezza)
  • sequence number per impedire attacchi di duplicazione
  • ICV che contiene il risultato del processo di autenticazione

Tunnel mode
...

Quando un'entità abilitata IPsec ESP riceve un datagramma IP vanilla da spedire utilizzando il protocollo ESP, deve procedere con la conversione in un datagramma IPsec ESP.
La conversione attraversa i seguenti passi:

  1. alla fine del datagramma IP vanilla viene aggiunto un trailer ESP (contenente i campi padding, lunghezza del padding e next header)
  2. il datagramma IP vanilla e il trailer ESP vengono cifrati
  3. viene generato un header ESP (contenente i campi SPI e numero di sequenza) che viene aggiunto all'inizio del datagramma
  4. il risultato viene autenticato con MAC che viene aggiunto alla fine del pacchetto
  5. viene generato un nuovo header IP con le informazioni per l'instradamento del pacchetto
    Con questa modalità vengono cifrati: il datagramma originale e il trailer.
    Mentre vengono autenticati: l'header ESP, il datagramma e il trailer.

ESP (Encapsulating Secuirty Payload)
...

ESP effettua la cifratura e/o l'autenticazione dell'intero datagramma IP vanilla, o di una parte (in base alla modalità utilizzata)

Transport mode
...

In modalità transport il procedimento è simile a quello illustrato per la modalità tunnel.
La differenza risiede nel fatto che in questa modalità viene cifrato il payload del datagramma IP vanilla.
L'header ESP è posto tra il segmento a livello di trasporto e l'header IP.
Il trailer ESP viene posto alla fine del datagramma IP, così come le informazioni relative all'autenticazione.
In questo caso vengono cifrati il segmento a livello di trasporto e il trailer ESP, mentre viene autenticato l'header ESP, il segmento e il trailer.

La differenza
...

La differenza è che in modalità transport viene messa in sicurezza la connessione tra due host fissati.

Numeri di sequenza e prevenzione attacchi di duplicazione
...

Sia ESP che AH fanno uso dei numeri di sequenza per prevenire attacchi di duplicazione.
I numeri di sequenza vengono utilizzati per implementare una finestra anti-duplicazione, nota come anti-replay window.
L'anti-replay window consente al ricevente IPsec di non ricevere pacchetti duplicati.
La finestra del ricevente IPsec ha una certa dimensione.
I pacchetti ricevuti dal destinatario IPsec possono avere:

  • un numero di sequenza compreso tra gli estremi della finestra e in questo caso questo esso può corrispondere col numero di sequenza di un pacchetto ricevuto (il pacchetto viene rifiutato) o non ricevuto (il pacchetto viene contrassegnato come ricevuto);
  • un numero di sequenza inferiore rispetto al limite inferiore della finestra: in questo caso i pacchetti vengono rifiutati;
  • un numero di sequenza maggiore rispetto al limite superiore della finestra: in questo caso la dimensione della finestra si estende sino al numero di sequenza del pacchetto appena ricevuto.
    Vengono utilizzati i bit 0 e 1 per contrassegnare i pacchetti come ricevuti o non ricevuti.

Associazioni di sicurezza
...

Sia ESP che AH utilizzano le associazioni di sicurezza (SA, Secuirty Association). Un'associazione di sicurezza è connessione logica unidirezionale tra gli host comunicanti. Se deve avvenire una comunicazione bidirezionale, occorrono due SA.
Una SA mantiene alcune informazioni di stato riguardo la connessione, tra cui:

  • SPI (Secuirty Parameter Index) un ID che identifica la SA;
  • le interfacce sorgenti e destinazione della SA;
  • il tipo di cifratura da usare;
  • la chiave di cifratura;
  • il tipo di controllo di integrità (per l'autenticazione);
  • la chiave di autenticazione;
    I dispositivi IPsec hanno poi un database (nel kernel del SO) in cui salvano gli ID delle SA, per ricordarsi quale SA è associata a quale coppia di host e gli algoritmi e chiavi specifiche per tale SA. Tale database si chiama: SAD, Security Association Database.

Procedimento
...

  1. Viene creato un header AH, la cui locazione cambia in base alla modalità usata;
  2. viene inizializzato/incrementato il numero di sequenza e salvato nell'header AH;
  3. vengono riempiti tutti i campi dell'header AH a eccezione di ICV;
  4. i campi mutabili dell'header IP vengono azzerati, l'ICV viene calcolato su tutto il datagramma IP;
  5. i campi mutabili del datagramma IP vengono riempiti;

Tunnel mode
...

In modalità tunnel l'header dell'intero datagramma originale viene autenticato e viene creato un nuovo hedaer IP che viene piazzato davanti a al pacchetto (anch'esso autenticato).

Transport mode
...

In modalità trasporto viene autenticata la comunicazione tra due host fissati.
L'header AH è posto tra il segmento a livello di trasporto e l'header IP.