Indietro

ⓘ IPsec




                                     

ⓘ IPsec

In telecomunicazioni e informatica IPsec, abbreviazione di IP Security, è uno standard per reti a pacchetto che si prefigge di ottenere connessioni sicure su reti IP. Tale sicurezza viene raggiunta attraverso laggiunta di funzionalità di autenticazione, cifratura e controllo di integrità dei pacchetti IP. La capacità di fornire protezione o sicurezza viene dunque fornita a livello di rete, fatto che rende questo protocollo trasparente al livello delle applicazioni che quindi non devono essere modificate.

                                     

1.1. Panoramica dello standard Scopo del progetto

IPsec è stato progettato per rendere sicure sia comunicazioni portal-to-portal sia comunicazioni end-to-end. Nella prima configurazione il traffico viene reso sicuro a diversi computer in alcuni casi ad unintera LAN; nella seconda solo i peer che stabiliscono la connessione scambiano pacchetti protetti. Tuttavia luso predominante di IPsec è la creazione di VPN virtual private network; per conseguire tale scopo possono essere utilizzati entrambi i metodi prima esposti.

                                     

1.2. Panoramica dello standard Introduzione

IPsec è una collezione di protocolli formata da:

  • Protocolli che forniscono la cifratura del flusso di dati.
  • Protocolli che implementano lo scambio delle chiavi per realizzare il flusso crittografato.

Attualmente esiste un solo protocollo per lo scambio delle chiavi, il protocollo IKE. IPsec è parte integrante di IPv6, mentre è opzionale in IPv4. Di conseguenza, ci si aspetta che sarà maggiormente utilizzato quando IPv6 acquisterà popolarità. Il protocollo è definito negli RFC 2401-2412. Dal 2004 sono in corso studi per laggiornamento dei protocolli.

Per quanto riguarda il secondo aspetto, esistono due protocolli: Authentication Header AH e Encapsulating Security Payload ESP.

AH fornisce autenticazione e integrità del messaggio, ma non offre la confidenzialità ed è il protocollo IP 51. ESP fornisce invece autenticazione, confidenzialità e controllo di integrità del messaggio ed è il protocollo IP 50. Per questi motivi ESP è molto più usato di AH.

                                     

1.3. Panoramica dello standard Dettagli tecnici

IPsec supporta due modalità di funzionamento:

  • connessione host-to-host;
  • si aggiunge solo lheader IPsec; gli indirizzi mittente e destinatario degli end-point sono rilevabili.
  • Transport mode
  • usato dagli end-point, non dai gateway;
  • in caso di cifratura, viene cifrato solo il payload dei datagrammi IP, non lheader;
  • ogni host che vuole comunicare deve avere tutto il software necessario ad implementare IPsec;
  • computazionalmente leggero;
  • utilizza un doppio incapsulamento, ponendo come payload della comunicazione tra indirizzi gateway quanto si ottiene cifrando lunione di indirizzi mittente e destinatario degli end-point col payload effettivo; adottando il protocollo Encapsulating Security Payload, gli indirizzi mittente e destinatario degli end-point non sono quindi più rilevabili restano invece rilevabili adottando AH.
  • utilizzato per realizzare le VPN;
  • connessione gateway-to-gateway;
  • in caso di cifratura, viene cifrato tutto il pacchetto IP originale;
  • solo i gateway devono avere il software IPsec;
  • computazionalmente oneroso;
  • Tunnel mode
  • si hanno punti di centralizzazione, quindi single point of failure;

Le due modalità sono supportate sia da AH che da ESP.

IPsec può essere utilizzato anche per connessioni tra gateway e host.



                                     

1.4. Panoramica dello standard Security Association e Security Policy

Il concetto di Security Association in breve SA è alla base del funzionamento di IPsec. Una SA è un "contratto" fra le due entità coinvolte nella comunicazione; in essa vengono stabiliti i meccanismi di protezione le chiavi da utilizzare durante il successivo trasferimento dei dati. Nellambito di IPsec, stabilire le security association è compito del protocollo IKE, sebbene sia possibile anche impostarle manualmente; ovviamente la procedura manuale è sconsigliata in quanto può introdurre errori che indeboliscono il tunnel.

Una peculiarità delle SA è che individuano una comunicazione unidirezionale; quindi durante la creazione della connessione le entità coinvolte creano e gestiscono una SA per ognuno dei versi della comunicazione, quindi 2 SA individuano un canale full-duplex. Al fine di semplificare la gestione delle SA, viene utilizzato un apposito database detto SAD S ecurity A ssociation D atabase, dove viene tenuta traccia delle SA attive. In particolare una SA è costituita dai seguenti parametri:

  • Il protocollo che verrà utilizzato per il tunnel AH o ESP;
  • Gli indirizzi IP dei peer coinvolti nella comunicazione;
  • le tecniche di cifratura utilizzate le relative chiavi;
  • Un intero a 32 bit chiamato SPI, acronimo per S ecurity P arameter I ndex.

Dallesame dei parametri di una SA si deducono quindi tutte le informazioni necessarie per stabilire le modalità in cui il traffico debba essere protetto; il passo successivo è definire quale traffico debba essere protetto: di questo si occupa la Security Policy in breve SP. Una SP è una regola che stabilisce che tipo di traffico deve essere instradato nel tunnel e quindi essere coperto da IPsec; in modo analogo alle SA, le SP sono contenute in un SPD S ecurity P olicy D atabase. La security policy contiene:

  • Un identificativo della SA da utilizzare per processare i dati.
  • Il protocollo e la relativa porta da instradare nel tunnel. Questa opzione dipende dallimplementazione del protocollo e non è sempre contemplata; nel caso non sia disponibile, tutto il traffico prodotto viene veicolato nel tunnel.
  • Indirizzo sorgente e indirizzo destinazione del pacchetto. Tale informazione è già contenuta nella SA e quindi può sembrare ridondante. In realtà questa informazione ha senso quando viene utilizzato il Tunnel mode.

Una volta stabilita la security association e la security policy, può cominciare la comunicazione che sfrutterà il protocollo AH o il protocollo ESP cui verrà passato il parametro SPI, che permetterà di risalire alle tecniche crittografiche da utilizzare per la trasmissione.

                                     

2.1. Protocolli di IPsec Descrizione

IKE è un acronimo per I nternet k ey e xchange ed è il protocollo usato per stabilire una security association nella suite di protocolli IPsec. Questo protocollo è definito in RFC 4306. È un protocollo di livello applicazione e utilizza il protocollo UDP come protocollo di trasporto; la porta su cui viene stabilita la connessione è 500.

Lobiettivo di IKE è stabilire uno shared session secret, ossia una chiave condivisa corrispondente alla sessione da instaurare e a tal fine utilizza lalgoritmo di Diffie-Hellman; dallo shared secret vengono successivamente derivate le chiavi crittografiche che verranno utilizzate per la successiva comunicazione. Al fine di autenticare le entità coinvolte nella comunicazione possono essere utilizzate tecniche a chiave simmetrica o, alternativamente, a chiave asimmetrica; in questultimo caso si fa ricorso a infrastrutture a chiave pubblica PKI e alluso di certificati digitali.

                                     

2.2. Protocolli di IPsec Descrizione

Authentication Header abbreviato AH, è un protocollo che fa parte della suite IPsec. Il suo compito è quello di fornire un controllo di integrità pacchetto per pacchetto, verifica dellautenticità del mittente e protezione contro i replay attack. AH non garantisce in alcun modo la confidenzialità del messaggio.

Lautenticità è garantita tramite funzioni di hash a chiave simmetrica, ossia tramite il meccanismo delle pre-shared keys. Per poter comunicare, due entità devono condividere la medesima chiave; tale chiave viene combinata con il messaggio originale e quindi viene calcolato il checksum tramite una funzione di hash crittograficoMD5 o SHA. Il messaggio e il checksum vengono, infine, inviati al peer remoto. Il peer remoto riceve il messaggio; dato che questo è in chiaro, lo può leggere, combinare con la chiave di cui è a conoscenza e calcolare il checksum. Se il checksum corrisponde a quello inviato, il messaggio è autentico e viene accettato altrimenti viene scartato in quanto è stato modificato in un modo non consentito dallo standard.

Il protocollo AH è progettato per proteggere lintero pacchetto IP inviato; tuttavia bisogna considerare che alcuni campi dellheader IP, come il TTL, variano durante la trasmissione; queste modifiche devono essere necessariamente consentite, per cui prima di calcolare il checksum, i campi cui è permesso variare vengono posti a 0.



                                     

2.3. Protocolli di IPsec Formato del pacchetto

Di seguito viene illustrata la struttura del pacchetto AH ogni casella rappresenta 1 byte.

Header successivo Indica che tipo di protocollo verrà dopo. Dimensione Payload 8 bit La lunghezza dellAH in word 1 word = 32 bit meno 2. Per esempio, 96 sono i bit di default del campo Authentication Data, più altri 96 bit per i campi di lunghezza fissa di AH fanno 6 word 96+96 = 192 bit, diviso per 32 = 6. Sottraendo 2 risulta quindi 4 il valore contenuto della dimensione del payload standard. RISERVATO Spazio lasciato per sviluppi futuri. Tutti i bit di questo campo vengono impostati a 0. Security Parameter Index Questo campo identifica i parametri di sicurezza in combinazione con lindirizzo IP. In genere è un numero pseudo-casuale che identifica la security association cui fa parte questo pacchetto. Numero di successione Una successione di numeri monotonicamente crescenti. Per impedire i replay attack, il numero di successione quando raggiunge il valore massimo 2^{32}-1 non deve ritornare a 0, ma una nuova SA deve essere creata. Dati per lautenticazione Contiene lIntegrity Check Value ICV e rappresenta lHMAC calcolato dal mittente del messaggio. LHMAC viene calcolato utilizzando i campi dellheader IP con il TTL originario, i campi dellheader AH tranne i dati dellautenticazione viene considerato a 0 e infine tutti i dati degli header di livello superiore, compresi quelli applicativi, che non vengono modificati durante il trasporto.
                                     

2.4. Protocolli di IPsec Transport mode e Tunnel mode

AH supporta nativamente sia il transport mode che il tunnel mode. In transport mode vengono protetti solo i protocolli di livello superiore a quello di rete ; in tunnel mode il pacchetto IP originale viene incapsulato in un nuovo pacchetto IP, dopo essere stato elaborato da AH. Ne spieghiamo il funzionamento con lausilio di alcuni disegni. Il metro di confronto è senza dubbio il pacchetto IP originale; in presenza di un collegamento basato su IPsec il pacchetto viene, ovviamente, alterato.

Pacchetto IP originale

A seconda della modalità di funzionamento di IPsec tunnel mode o transport mode, il pacchetto originale viene alterato in modo diverso.

AH in transport mode

AH in tunnel mode

La linea azzurra indica le zone del pacchetto che sono autenticate. Dal punto di vista della protezione, in entrambi i casi, i pacchetti vengono protetti completamente. Notiamo che nellheader IP, alcuni campi variano durante il transito nella rete, ad esempio il TTL. Questi campi vengono posti a 0 prima di calcolare la funzione di hash, necessaria per la protezione del pacchetto. Da quanto appena detto si evince subito che il protocollo AH è incompatibile con le varie tecniche di NAT; difatti se vengono alterati i campi indirizzo nellheader IP in entrambe le modalità, in ricezione la checksum fallisce subito.

                                     

2.5. Protocolli di IPsec Descrizione

Encapsulating Security Payload, denotato con lacronimo ESP, è un protocollo che fa parte della suite IPsec. Il suo obiettivo è fornire autenticità, confidenzialità e controllo di integrità alla comunicazione. Contrariamente a quanto fa AH, lheader IP non viene coperto dai controlli. Al pari di AH, però, supporta sia il tunnel mode che il transport mode.

                                     

2.6. Protocolli di IPsec Formato del pacchetto

Di seguito viene riportato il formato del pacchetto ESP ogni casella rappresenta 1 byte.

Security Parameters Index SPI Al pari di quanto avviene in AH, questo campo, in combinazione con lindirizzo IP, individua la Security Association cui appartiene il pacchetto. Sequence Number Una successione di numeri monotonicamente crescente, che identifica il pacchetto allinterno delle Security Association e previene da replay attack. Payload I dati che devono essere trasferiti Padding È un campo di riempimento. È necessario in quanto alcuni codici di cifratura lavorano su blocchi di lunghezza fissa. Serve a far crescere la dimensione dei dati fino a divenire multiplo del blocco che lalgoritmo in uso riesce a gestire. Pad Length Rappresenta, in ottetti, la dimensione dei dati di padding aggiunti. Next Header Identifica il protocollo dei dati trasferiti Authentication Data Contiene i dati usati per autenticare il pacchetto.

Come si può vedere dalla struttura del pacchetto ma sarà illustrato meglio in seguito, ESP avvolge i dati dei protocolli di livello superiore, contrariamente a quanto fa AH che antepone un header.



                                     

2.7. Protocolli di IPsec Tunnel mode e Transport mode

Essendo un protocollo per il trasferimento dati della suite IPsec, ESP supporta sia il Tunnel mode che il Transport mode. A seconda della modalità tratta i dati in modo differente. Prima di descrivere lincapsulamento dei dati mostriamo il pacchetto IP originale, che transiterebbe sulla rete in assenza di IPsec

Pacchetto IP originale

ESP in Transport mode

ESP in Tunnel mode

Le linee azzurre sottendono la parte di pacchetto che viene sottoposta a controllo di autenticità e integrità; le zone verdi indicano le zone di pacchetto che vengono protette tramite algoritmi crittografici. Per quanto riguarda gli algoritmi di cifratura possono essere utilizzati Data Encryption Standard DES, 3DES, AES e Blowfish. Il controllo di integrità e autenticità viene eseguito tramite HMAC funzioni di hash; lhash viene calcolato tramite una funzione di hash MD5 o SHA1, utilizzando una chiave condivisa; lhash ottenuto viene allegato al messaggio e inviato. In ricezione viene controllata lintegrità del messaggio. Come illustrato negli schemi, lindirizzo IP più esterno non viene coperto dal controllo di integrità. Tale opzioni rende il protocollo ESP adatto ad essere utilizzato in alcuni tipi di NAT, in particolare in quelli statici. Tuttavia esistono soluzioni ad-hoc per il funzionamento congiunto di IPsec e NAT, come il NAT traversal.

                                     

2.8. Protocolli di IPsec Descrizione

NAT traversal o più in breve NAT-T è il nome di un protocollo facente parte della suite IPsec e standardizzato in diversi RFC, di cui quello ufficiale è RFC 3947. Lobiettivo di questo protocollo è fornire la possibilità di stabilire un tunnel IPsec anche quando uno dei due peer coinvolti subisce unoperazione di NAT per raggiungere laltra entità coinvolta nella comunicazione.

                                     

2.9. Protocolli di IPsec Scenario

Il NAT è una tecnica molto utilizzata per il riuso degli indirizzi IP. Tuttavia gli host dietro un router o un firewall che effettua operazioni di NAT non godono di connettività end-to-end. Sebbene esistano diversi tipi di NAT, lobiettivo generale è lalterazione degli header del pacchetto. Questo comportamento è in netto contrasto con IPsec che ha tra i suoi obiettivi il controllo dell integrità del pacchetto. In particolare il NAT è incompatibile con AH sia in tunnel mode che in transport mode, in quanto AH verifica lintegrità di tutto il pacchetto IP. ESP, invece, non copre lheader IP con controlli di sorta né in Tunnel mode né in Transport mode, per cui risulta adatto nel caso in cui il NAT eseguito sia di tipo SNAT; in altre parole, la modifica apportata dal router deve coinvolgere solamente lheader IP e non anche la porta del livello superiore.

Il NAT crea problemi anche con IKE e soprattutto con IKE in main mode. Il main mode usato congiuntamente al metodo delle preshared-keys richiede lautenticazione degli host coinvolti nella comunicazione e tale autenticazione prevede un controllo sugli indirizzi IP; per cui lalterazione dellindirizzo da parte di unapparecchiatura di NAT provoca il fallimento dellautenticazione.

In genere, nei dispositivi preposti alla gestione dei tunnel IPsec e nei client VPN, il NAT-T non è abilitato di default ma deve essere impostato a mano; tuttavia il suo utilizzo rimane opzionale: difatti durante la creazione della security association, i peer determinano se uno dei due subisce operazioni di NAT e solo in questo caso viene usato il NAT-T; questa operazione viene fatta durante la prima fase della negoziazione IKE. In prima battuta, i peer verificano che entrambi siano in grado di supportare in NAT-T; questa verifica è eseguita nella primissima fase del protocollo IKE, per mezzo di un pacchetto con un campo Vendor-ID, che contiene un valore hash noto. Una volta stabilito che entrambi supportano il NAT-T, vengono inviate delle frame "NAT-Discovery" NAT-D, in modo da verificare chi dei due subisca il NAT, o al limite se lo subiscano entrambi. Una volta stabilito chi subisce il NAT, la comunicazione si sposta su una nuova coppia di porte UDP e lentità nat-tata comincia a inviare delle frame keepalive ; queste frame servono a mantenere fisse le porte di comunicazione sul router e ad impedirgli di riassegnarle ad una nuova comunicazione.

Descriviamo come viene incapsulato il pacchetto originale ESP.

ESP in Tunnel mode

ESP in Tunnel mode con incapsulamento UDP per NAT-T

I campi segnati in verde scuro sono quelli relativi al NAT-T; questi campi vengono inseriti subito dopo lheader IP esterno, che non viene alterato, così come non vengono alterati i campi successivi. In ricezione viene fatta loperazione inversa.

                                     

3. Elenco degli RFC relativi ad IPsec

  • RFC 2412: The OAKLEY Key Determination Protocol
  • RFC 2411: IP Security Document Roadmap
  • RFC 2408: Internet Security Association and Key Management Protocol ISAKMP
  • RFC 2402: Authentication Header
  • RFC 2410: The NULL Encryption Algorithm and Its Use With IPsec
  • RFC 4301: Security Architecture for the Internet Protocol
  • RFC 2407: IPsec Domain of Interpretation for ISAKMP IPsec DoI
  • RFC 2409: Internet Key Exchange IKE
  • RFC 3947: Negotiation of NAT-Traversal in the IKE
  • RFC 2406: Encapsulating Security Payload
                                     
  • sistema operativo, con supporto IPV6 nativo. DirectAccess crea un tunnel IPsec dal client al server e usa IPv6 per accedere ai servizi interni o collegarsi
  • suo MAC vengono inviati assieme. Viene usato, ad esempio, nel protocollo IPsec Questo metodo fa parte dello standard ISO IEC 19772: 2009. È inoltre l unico
  • crittografici CDSA CSSM Un altro standard pubblico HAIPE - IS Versione dell IPsec sviluppata dall NSA FNBDT Protocollo flessibile avanzato di sicurezza
  • sono le chiavi private. Forward secrecy è una caratteristica opzionale di IPsec RFC 2412 SSH Off - the - Record Messaging Dalla fine del 2011, Google ha fornito
  • Amazon Elastic Compute Cloud e altre reti attraverso una VPN con protocollo IPSEC Google App Engine supporta funzionalità simili attraverso il suo prodotto
  • nome, senza che vi sia la necessità di specificare il percorso completo IPsec è completamente integrato, consentendo di permettere o negare accesso basandosi
  • consultazione di Logs Accurato. Amministrazione di VPN Illimitate, su protocolli IPsec e OpenVPN, con l utilizzo di certificazioni CA. Integrazione con una vasta
  • protocolli di trasporto TCP o SCTP, e richiede l utilizzo obbligatorio di IPsec I principali motivi che hanno spinto a definire un nuovo protocollo sono

Anche gli utenti hanno cercato:

ipsec esp,

...
...
...