Windows Server 2008 e 2008 R2 - Introduzione a IPsec parte 1

Ciao a tutti! Oggi parleremo di Internet Protocol Security (IPsec) – una delle tecnologie più utili a livello di sicurezza e protezione dei dati, che però non sempre viene utilizzata al massimo delle sue possibilità. In questo post ci limiteremo ad una trattazione teorica, mentre la settimana prossima andremo a vedere nel dettaglio come utilizzarla in Windows.

Figure 4.2: IPSec stack layering

IPsec è un framework di protocolli che permette alle comunicazioni che viaggiano su IP di poter essere rese sicure e affidabili tramite l’utilizzo di meccanismi di crittografia sui pacchetti di rete stessi. Poichè IPsec è integrato al livello Network dello stack, può essere applicato in modo trasparente a quasi tutti i protocolli della suite TCP/IP, senza la necessità di dover configurare ciascuno di essi in maniera differente. Grazie all’integrazione con Windows Firewall e Active Directory, i settings di IPsec possono essere distribuiti con facilità all’interno dell’intera foresta.

Two IPSec Peers Using AD-based IPSec Policy

La Security Association (SA) è la base di IPsec. Una SA non è altro che un “contratto” tra due macchine che si connettono; con una SA sono determinati i protocolli IPsec che verranno utilizzati, le chiavi di cifratura e la durata di tali chiavi. Ogni macchina poi costruisce un SADB (SA database) che mantiene tutte queste informazioni relative alle varie connessioni. Ogni SA ha un timeout e alla sua scadenza va ricreata.

Quando due macchine (peers) utilizzano IPSec per comunicare, vengono utilizzati due diversi tipi di Security Associations:

  1. Main Mode le due macchine procedono ad una mutua autenticazione (stabilendo quindi un secure channel - una relazione di fiducia e garanzia di identità del proprio peer).
  2. Quick Mode i peer negoziano i dettagli della sessione, cioè in che modo verranno autenticati e/o criptati i pacchetti.

Lo scambio di pacchetti per la negoziazione Main Mode e Quick Mode avviene tipicamente tramite l’utilizzo del protocollo IKE. La procedura avviene in 6 passi per la Main e in 4 per la Quick Mode:

image

Tralasciamo al lettore interessato l’approfondimento sugli specifici pacchetti scambiati dai due peers in questa fase. Quello che è interessante sottolineare è che una volta stabilita una SA, alla prossima occorrenza i peers potranno semplicemente specificare una nuova Quick Mode mantenendo la Main Mode già attiva (qualora, ovviamente, non sia già scaduta).

Tra i parametri negoziati, vi è l’algoritmo di encryption (DES o 3DES), l’algoritmo di integrity/authentication (MD5 o SHA1) e il protocollo IPsec vero e proprio. A questo riguardo, esistono tre differenti metodi di sicurezza implementabili tramite differenti protocolli:

  • AH - authentication header L’autenticazione (packet signing) garantisce che il pacchetto non venga modificato durante il trasporto. AH calcola una firma digitale (MD5 o SHA1) dell’intero pacchetto IP (compreso di header) e la aggiunge in chiaro al pacchetto stesso. Il ricevitore verificherà la sua versione di tale firma e la comparerà con quella presente nel pacchetto ricevuto. Se corrispondono, saremo sicuri che il pacchetto non è stato modificato – prevenendo così attacchi del tipo man-in-the-middle.

    image

    Da una cattura del traffico di rete, possiamo vedere che l’header AH è stato aggiunto a garanzia dell’autenticità ma comunque siamo in grado di leggere il contenuto del pacchetto (in questo caso un comando SMB over TCP)

  • ESP – Encapsulated Security Payload L’encryption garantisce confidenzialità ed evita che i pacchetti possano venire intercettati e letti da malintenzionati di terze parti (eavesdropping). In questo caso, tutto il payload del pacchetto di rete, oltre agli eventuali header TCP/UDP vengono criptati - ma non ovviamente l’header IP che è necessario per il routing e deve quindi poter esser letto in chiaro dai routers intermedi. Anche per questo motivo, non è necessario che gli apparati di rete che si trovano nel mezzo di una connessione IPsec debbano essere IPsec-compatibili.

    image

    Se cercheremo di intercettare i pacchetti di rete, utilizzando ESP non sarà in alcun modo possibile visualizzarne il contenuto (se non l’header IP)

  • AH + ESP i due protocolli, per una connessione sicura e autenticata, possono essere utilizzati anche congiuntamente

L’autenticazione, inoltre, può avvenire secondo tre differenti modalità:

  1. Pre-shared Key utilizzando una chiave condivisa che viene preventivamente negoziata dai peers
  2. Certificati Digitali i peers procedono a scambiarsi certificati garantiti da una comune Certification Authority. La forza dell’utilizzo di questo metodo non sta nel certificato in sè, ma nella CA che lo firma. Per questo motivo sono implementabili, a seconda delle esigenze, delle policy IPsec multilivello che sfruttano la granularità dell’infrastruttura PKI.
  3. Kerberos qualora i due peers siano nella stessa foresta Active Directory, possono fare uso di un ticket Kerberos v5.

è bene specificare che ogni computer può avere una unica policy IPsec assegnata in ogni momento. La policy non è altro che un insieme di regole, ognuna delle quali ha una lista di filtri e di relative azioni da intraprendere. Semplicemente, questi filtri specificano le caratteristiche del traffico che la regola dovrà processare: IP sorgente e destinatario, tipo di porta (TCP/UDP) e relativo numero di porta sorgente e destinatario, protocollo. Ogni volta che verrà individuato traffico di rete relativo ad uno di questi filtri, verrà intrapresa l’azione corrispondente: permettere o bloccare il traffico, oppure negoziare l’opportuno paio di Security Associations IPsec. Questo tipo di negoziazioni includono i diversi parametri di encryption e autenticazione che abbiamo precedentemente descritto, oltre alla IPsec mode. Esistono infatti due differenti modalità di funzionamento IPsec:

  • Transport mode è la modalità più comune: due peer si autenticano (fase 1) e stabiliscono cifratura del traffico (fase 2). tutto il traffico tra i due peer verrà protetto in accordo con le policy specificate. La modalità di trasporto non crea nuovi pacchetti di rete, ma si limita a renderli “sicuri” cioè appendendo gli opportuni header AH e ESP prima del payload criptato.

Figure 4.7: Packet format with AH and ESP

  • Tunnel mode la modalità di tunnelling viene invece utilizzata in quei casi in cui la nostra connessione avviene tra due siti “sicuri” ma deve attraversare una regione della rete non sicura (ad esempio una enterprise che deve connettere un ufficio a New York e uno a Washington)

    Establishing L2TP/IPSec VPN Tunnel Between Sites

    Il traffico IPsec quindi, prima di uscire sul router locale che lo indirizzerà verso la rete esterna, passerà presso un IPsec gateway la cui funzione è creare un nuovo pacchetto che encapsuli il pacchetto originale (il tutto opportunamente criptato).

Figure 4.9: IPSec tunneled Mode packet format

 

Da come lo abbiamo descritto, potenzialmente tutto il traffico è criptabile con IPsec. Tuttavia, seppure sia tecnicamente possibile, è fortemente sconsigliato farlo in alcune situazioni particolari. Ad esempio, non dovrebbe mai essere criptato il traffico tra i membri del dominio ed il Domain Controller, sia per un puro motivo di aumento della latenza di rete (che può causare il fallimento dell’autenticazione verso il DC), sia per le performance della CPU del Domain Controller stesso, che dovrebbe mantenere SA verso tutti i client e i server della foresta. Inoltre, sarebbero generati problemi di performance anche se si tentasse di criptare con IPsec traffico real-time o peer-to-peer. Infine, IPsec non può criptare il traffico broadcast e multicast.

Links utili:

Grazie per l’attenzione e alla prossima puntata!

Stefano Gagliardi
Support Engineer
Microsoft Enterprise Platform Support