IPsec

IPsec

IPsec è un’estensione del protocollo IP che fornisce sicurezza a livello IP ed ai livelli superiori. È stato sviluppato prima all’interno dello standard IPv6 ed in seguito inserito in Ipv4.

L’esigenza di IPsec nasce dal fatto che durante le trasmissioni i pacchetti attraversano vari router prima di arrivare a destinazione, e che il protocollo IP in sé non possiede alcun sistema di cifratura o di autenticazione. La conseguenza è che i pacchetti vengono scambiati completamente in chiaro e potrebbero quindi essere intercettati, letti e manipolati, facendo venire meno i tre pilastri della sicurezza informatica, ovvero confidenzialità, autenticità e integrità.

IPsec è quindi un’architettura basata su in insieme di protocolli nati per risolvere queste problematiche.

IPsec usa due differenti protocolli – AH ed ESP – per fornire l’autenticazione, l’integrità e la confidenzialità della comunicazione. Può proteggere l’intero datagramma IP o solamente i protocolli di alto livello. I diversi modelli di funzionamento sono detti tunnel mode e transport mode.

Nel tunnel mode il datagramma IP viene completamente incapsulato in un nuovo datagramma IP che riceve un nuovo header completo, in cui sono nascosti indirizzo di origine, indirizzo di destinazione e payload (dati). Inoltre, viene anche implementato l’header del protocollo di trasferimento utilizzato: il pacchetto viene quindi completamente incapsulato. Il nuovo header IP più esterno definisce gli endpoint crittografati, che tuttavia non sono identici agli endpoint di comunicazione presenti nell’header IP interno vero e proprio. Tali informazioni verranno rese disponibili sono quando in pacchetto viene decifrato negli endpoint crittografati, chiamati gateway di sicurezza, e verrà quindi inoltrato ai destinatari. Di default la trasmissione dati nel tunnel mode avviene in modalità gateway-to-gateway, ma sono possibili anche connessioni host-to-gateway e host-to-host.

In transport mode invece solo il payload del datagramma IP viene trattato da IPsec che inserisce il proprio header tra l’header IP ed i livelli superiori. I dati sono quindi protetti ma non lo sono gli indirizzi di origine e destinazione. Il tunnel mode ha il vantaggio di avere un tempo di elaborazione molto basso rispetto a tunnel mode, ma lo svantaggio è che protegge solo il payload e non l’intero pacchetto. Solitamente questa modalità di comunicazione si utilizza in ambito host-to-host oppure host-to-router.

Sistemi di protezione di IPsec

Per proteggere l’integrità di un datagramma IP il protocollo IPsec utilizza meccanismi di autenticazione basati su codici hash (HMAC). Per ottenere questo HMAC vengono usati algoritmi come MD5 o SHA per calcolare un hash basato su una chiave segreta e sul contenuto di un datagramma IP. L’HMAC viene quindi inserito nell’header IPsec ed il destinatario del pacchetto ne può verificare l’esattezza soltanto avendo accesso alla chiave segreta.

Per proteggere la confidenzialità di un datagramma IP il protocollo IPsec utilizza degli algoritmi di cifratura simmetrici. L’IPsec richiede l’implementazione di NULL (nessuna cifratura) e del DES. Attualmente vengono utilizzati algoritmi più robusti come 3DES, AES ed il Blowfish.

Per proteggersi contro un attacco di tipo denial of service, il protocollo IPsec utilizza un meccanismo di sliding window. Ciascun pacchetto possiede un numero di sequenza e viene accettato solo se tale numero rientra nella finestra o è più recente. I pacchetti più vecchi vengono immediatamente scartati. Questo protegge da attacchi di tipo replay, nei quali pacchetti originali vengono conservati e rispediti in seguito.

Affinché le due parti siano in grado di effettuare l’incapsulamento ed il recupero dei pacchetti IPsec è necessario che vi sia un luogo nel quale conservare le chiavi, gli algoritmi e gli indirizzi IP coinvolti nella comunicazione. Tutti i parametri necessari alla protezione del datagramma IP sono inseriti in una security association (SA). Le security association vengono conservate a turno in un database detto SAD (security association database).

Punti di forza e punti di debolezza

Utilizzato nell’ambito di una VPN, dove si può applicare con maggiore copertura la suite di protocolli IPsec, si ha un vantaggio decisivi rispetto ai sistemi come SSL/TLS. A livello Network, infatti, IPsec può essere utilizzato come standard senza la necessità di dover modificare le applicazioni che fanno uso dei pacchetti scambiati, dato che le funzioni della suite di protocolli sono totalmente trasparenti agli strati superiori. Per le connessioni VPN quindi IPsec resta la soluzione migliore.

Nel caso invece si volesse implementare IPsec per rendere sicuro un accesso remoto, allora sarà necessario apportare delle modifiche ai clienti utilizzati.

Riguardo invece le performance e l’affidabilità, IPsec presenta numerosi vantaggi: in un sistema collegato tramite cluster, in caso di problemi, un gateway può essere sostituito tranquillamente da un altro e allo stesso tempo gli utenti continueranno a ricevere i pacchetti dati. Infine, IPsec rappresenta un’ottima soluzione per la sicurezza nell’ambito di reti aziendali in quanto i suoi elevati standard di sicurezza impediscono la connessione di utenti anonimi.