IPSec

Nel Giugno del 1994 la Internet Architecture Board (IAB) ha espresso, attraverso un documento (RFC 1636), la necessità di una migliore sicurezza in Internet, in particolare ha espresso la necessità di colmare le lacune del protocollo TCP/IP. Prendendo spunto da tale documento, sono state studiate e sviluppate delle tecnologie per rendere la comunicazione tra varie aziende sicura su un canale non sicuro quale Internet. Queste tecnologie sono meglio conosciute come Virtual Private Network o più semplicemente VPN.

L’IP Security Protocol, conosciuto come IPSec, è oggi la tecnologia più diffusa per lo scambio sicuro di dati tra aziende, o più comunemente fra due computer. IPSec è stato definito dall’Internet Engineering Task Force già dall’Agosto 1995 attraverso l’RFC 1825: sono passati otto anni da allora e IPSec è cresciuto notevolmente, affermandosi nel mercato come lo standard per la VPN, e fornendo al TCP/IP le funzionalità di autenticazione, integrità e crittografia di cui era sprovvisto. Uno dei fattori che ne hanno determinato la sua affermazione è che IPSec può essere inoltrato attraverso qualsiasi rete che supporta il protocollo IP, senza dover cambiare nessun nodo di rete, senza cambiare le applicazioni e senza cambiare in maniera sostanziale il sistema operativo dei nodi.

IPSec può operare in due modalità: tunnel mode e transport mode. La prima incapsula un intero datagramma IP al suo interno, rendendola ideale per l’uso con le VPN o per trasportare IP privati all’interno di IP pubblici, ad esempio per collegare una sede remota. La seconda invece incapsula solamente il protocollo TCP o UDP, rendendo sicura la sola comunicazione applicativa tra due nodi della rete Internet, ad esempio la comunicazione tra un web server e un database server.

Molti firewall e router hanno la funzionalità di IPSec Tunnel Mode per stabilire delle VPN, siano esse sedi remote, extranet o più semplicemente degli utenti interni collegati attraverso Internet. Come abbiamo sottolineato in precedenza, data la mancanza di un sistema sicuro di autenticazione e crittografia, le Wireless LAN sono da considerare untrusted, pertanto non differenti dalla rete Internet. In un ambiente quale quello aziendale, dove la sicurezza dei dati è molto importante, le Wireless LAN trovano un naturale complemento nella tecnologia IPSec. È da considerare che, se si dispone di una VPN per l’accesso tramite Internet, l’utente finale si troverà a suo agio attraverso l’uso di strumenti che già conosce. È consigliabile in questo scenario collegare gli Access Points a una rete demilitarizzata (DMZ) che sia riconducibile ad un firewall o ad un router di accesso, ad esempio quello collegato alla rete Internet.

IPSec e lo scambio delle chiavi

La struttura di IPsec e’ piuttosto complessa in quanto IPsec non e’ un singolo protocollo, ma piuttosto un’architettura di sicurezza a livello IP composta da vari protocolli e da altri elementi. I protocolli principali che costituiscono IPsec sono tre:

  • AH (Authentication Header) che fornisce servizi di autenticazione e integrità.
  • ESP (Encapsulating Security Payload) che fornisce servizi di riservatezza, autenticazione e integrità.
  • IKE (Internet Key Exchange) che gestisce lo scambio delle chiavi.

AH ed ESP non si preoccupano dello scambio delle chiavi e presumono che i due interlocutori si siano già accordati creando tra loro una Security Association (SA), ovvero una configurazione che specifica quali meccanismi di sicurezza utilizzare e con quali chiavi. Il compito di negoziare e gestire le Security Association secondo delle politiche definite localmente e` affidato a IKE.

La SA è un concetto fondamentale nell’ambito di IPSec in quanto specifica quali meccanismi di sicurezza, quali algoritmi e quali chiavi vengono utilizzati per proteggere il traffico TCP/IP. Tutte le Security Association attive sono contenute in un database detto Security Association Database (SAD), mentre esiste un altro database detto Security Policy Database (SPD) che contiene le politiche di sicurezza. Tramite esse il sistema decide se un pacchetto IP debba essere scartato, lasciato passare in chiaro oppure elaborato tramite IPsec, basandosi su parametri come l’indirizzo IP sorgente o destinazione, la porta sorgente o destinazione, il protocollo di trasporto.

Inizialmente le SA venivano generate e scambiate manualmente, ma la loro gestione è impraticabile su contesti più ampi, quali ad esempio quello di VPN gateway. Si è reso necessario pertanto l’uso di un meccanismo automatico per le gestioni delle chiavi… il protocollo IKE (Internet Key Exchange) è nato per questo scopo. IKE e` un protocollo ibrido, che integra ISAKMP (Internet Security Association and Key Management Protocol) e Oakley. Questi ultimi definiscono metodi differenti per stabilire una scambio di chiavi tra sistemi. Oakley definisce modi per costruire un percorso di relazioni sicure, mentre ISAKMP definisce le stesse fasi in modo gerarchico. Entrambi si riconducono in due fasi distinte di IKE: nella prima i due nodi creano una security association per IKE stesso (detta ISAKMP SA13), ovvero un canale sicuro da utilizzare per i messaggi di IKE, nella seconda fase utilizzano la ISAKMP SA per negoziare security association per altri protocolli. Esistono quattro metodologie più usate per l’autenticazione e lo scambio di chiavi attraverso IKE, ovvero:

  • Shared Secret, dove entrambi i sistemi conoscono una password comune
  • Public/Private Key, ovvero tramite chiavi asimmetriche pubbliche e private, ad esempio il PGP
  • Digital Certificates, simile a Public/Private Key ma con chiavi aderenti allo standard X.509, ovvero esiste una verifica dell’utente o del sistema remoto tramite una Certification Authority (CA)
  • XAUTH, ovvero un estensione proprietaria di autenticazione. Alcuni vendor, quali Cisco e CheckPoint, includono questa funzionalità per autenticare un utente attraverso Username e Password. Si noti che questo è differente dallo Shared Secret che invece è legato ad una macchina e non ad un utente.

È consigliabile usare XAUTH e i Certificati Digitali per autenticare un utente, mentre uno Shared Secret o Certificato Digitale è più adatto per autenticare due sistemi

Considerazioni sulla protezione del client

Differentemente dal protocollo PPPoE, dove il client non aveva un IP address direttamente collegato alla scheda di rete, il protocollo IPSec viaggia su una rete IP esistente, per cui il client ha un IP address collegato alla scheda di rete Wireless. Come è stato menzionato nel primo capitolo, anche il client può essere il destinatario di un attacco da parte di un intruso, sia per “carpire” informazioni preziose che per essere usato come “ponte” per entrare nella rete privata. Per prevenire questo tipo di attacchi è consigliabile installare sui client un Personal Firewall e un Antivirus, ormai disponibili da diversi vendor e per diversi sistemi operativi. Come per un firewall tradizionale, il Personal Firewall è in grado di monitorare il traffico IP in ingresso sul client, proteggendolo da eventuali attacchi quali i tentativi di accesso a backdoors (Back Orifice, Netbus, ecc…).

Un’altro passo per la protezione dei client basati su Windows è quello di limitare l’uso del registry per evitare la lettura remota. Dal programma regedt32 è possibile posizionarsi sulle chiavi di registro di interesse e, con il tasto destro sulla cartella interessata si possono selezionare le autorizzazioni da concedere. Un’altra tecnica è quella di posizionare il file di registro di sistema in una partizione NTFS e limitare l’accesso alla directory tramite l’autorizzazione della directory dei files.

VPN Gateway e Wireless LAN

Come descritto in precedenza, è bene confinare gli Access Point in una rete separata non di fiducia (untrusted), e collegare questa rete alla rete Intranet attraverso un VPN gateway. La funzionalità di VPN server è presente in molti firewall e router, pertanto la realizzazione di questa topologia risulta semplificata qualora si disponga di tali apparecchiature. In particolare la rete wireless trova la sua naturale collocazione in una DMZ del firewall perimetrale di accesso a Internet, in quanto la pericolosità delle wireless LAN può essere paragonata alla stessa Internet. È possibile realizzare differenti tipologie di configurazioni e con diversi prodotti/programmi che supportano lo standard IPSec. A titolo di esempio nei prossimi paragrafi verrano presentati alcuni esempi di configurazione di VPN gateway, quali CheckPoint FW-1 e Cisco IOS, attraverso la metodologia di scambio di chiavi con certificati digitali X.509.

IPSec e Kerberos

Anche IPSec può avvantaggiarsi di Kerberos durante la fase di negoziazione della chiave attraverso ISAKMP: la chiave Kerberos viene utilizzata nello stesso modo di una Pre-Shared Key (o chiave condivisa) o di un certificato digitale. Attualmente l’implementazione più diffusa è quella di Microsoft, ma anche il progetto Kame (http://www.kame.net/) ha implementato nel suo daemon ISAKMP Racoon uno scambio attraverso GSSAPI. Racoon è attualmente usato dai sistemi BSD (NetBSD, FreeBSD, OpenBSD, ecc.) da MacOS X e da Linux a partire dal kernel 2.6.