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.
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.
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:
- 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).
- 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:
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.
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.
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�:
- Pre-shared Key utilizzando una chiave condivisa che viene preventivamente negoziata dai peers
- 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.
- 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.
- 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)
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).
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
Rachel McAdams Kristin Cavallari Brittany Murphy Britney Spears Amanda Swisten