Al fine di testare la sicurezza del protocollo abbiamo sviluppato alcuni programmi
che ci hanno permesso di forgiare pacchetti ICMP per diffondere false informazioni di
raggiungibilità e abbiamo verificato come sia facilmente possibile dirottare il traffico di una
sottorete per compiere attacchi di tipo DoS o “man-in-the-middle” senza dover usare tecniche
di ARP Poisoning.
Diventa quindi fondamentale per la validazione di ogni messaggio di “controllo” presente
sulla rete l’uso di IPSec, l’estensione di IPv4 che offre funzionalità di autenticazione e
confidenzialità dei messaggi, implementata nativamente in IPv6 e in questo ambiente
disponibile pienamente nelle sue funzionalità.
Abbiamo inoltre analizzato la struttura dell’header IPv6 e delle sue estensioni
(extension header) e in particolar modo su quella denominata Routing Header (RH) che
svolge in IPv6 le funzionalità di Source Routing presenti in IPv4. Abbiamo riscontrato come
questo header unito ad un’ambiguità nella specifica del protocollo introduca un problema di
sicurezza. Tramite questa estensione il mittente specifica i nodi che il pacchetto deve
attraversare nel suo percorso verso la destinazione. La specifica definisce “nodo” un qualsiasi
apparato che implementi lo stack IPv6, quindi non solo i router, e prescrive che tutti i nodi
debbano poter processare un Routing Header. Poiché la struttura del RH porta ad una
variazione del indirizzo destinazione durante l’instradamento dei pacchetti, è possibile
utilizzarlo per eludere la presenza di Access Control List (ACL) che “nascondano” un host, se
un suo “vicino” è visibile. Allo stesso modo è possibile evitare i firewall e tutti i dispositivi di
controllo che basino le loro regole solo sugli indirizzi sorgente e destinazione (senza
controllare la presenza di eventuali RH).
Questa possibilità è stata verificata configurando opportunamente una ACL sul router che
gestisce il traffico tra le sedi di via Colombo e via Comelico e quindi utilizzando i nostri
programmi per la generazione di pacchetti IPv6 contenenti il RH.
1. Da IPv4 a IPv6
La rete Internet nasce nel 1969 per iniziativa del Ministero della Difesa degli Stati
Uniti, con lo scopo di creare un’interconnessione tra calcolatori in modo tale che,
anche in caso d’attacco nucleare, questi fossero sempre in grado di comunicare tra
loro. Si forma così la rete ARPAnet basata sul protocollo di trasmissione IP (Internet
Protocol). ARPAnet fu inizialmente molto utilizzata sia in ambiente militare sia in
quello universitario.
A causa dell’eccessivo carico di informazioni fu successivamente divisa in due
sottoreti:
• ARPAnet (per la ricerca sperimentale)
• MILnet (per scopi militari)
Non essendo più una rete utilizzata solo per scopi militari, ARPAnet (trasformatasi
in Internet) divenne accessibile anche da altre persone, interessate ad essa per scopi
scientifici, di lavoro o semplicemente per hobby. L’espansione su scala planetaria
della Internet negli ultimi anni ha provocato cambiamenti significativi nel modo di
comunicare e di condurre gli affari. L’attuale versione del protocollo IP, la numero
quattro (IPv4), è stata standardizzata nel 1981 nel documento Request for Comments
[RFC791].
Il protocollo IP gestisce il disaccoppiamento delle applicazioni dalle reti di
trasmissione, in altre parole permette agli utenti di usare le proprie applicazioni
preferite indipendentemente dalla tecnologia di rete sottostante (figura 1.1).
Figura 1.1 Schema semplificato dei livelli di rete
Le Applicazioni:
WWW, E-mail, FTP, Telnet….
IP – Internet Protocol
Le Reti Fisiche:
Ethernet ,ATM, FDDI, Frame
Relay…
Inoltre IP consente di utilizzare tecnologie diverse in parti diverse della rete: ad
esempio, reti locali (Ethernet, Token Ring, FDDI) all’interno degli edifici e servizi
pubblici a commutazione di trama (frame relay) o di cella (ATM) e canali diretti
numerici (CDN) per la parte geografica della rete stessa. IPv4 raggiunge questo
risultato fornendo un servizio che ha due caratteristiche principali:
• Indirizzamento “universale”: ogni interfaccia di rete IPv4 ha un indirizzo
univoco a livello mondiale o privato (se viene utilizzato il Network Address
Translation-NAT) su 32 bit;
• Best effort: IPv4 fa il massimo sforzo per consegnare il pacchetto, ma non
garantisce nulla al livello superiore né in termini di percentuale di pacchetti
consegnati, né in termini di tempo impiegato ad effettuare la consegna. IPv4 in
sostanza non ha in sè il concetto di qualità del servizio (QoS: Quality of Service).
Queste due caratteristiche, che sono sinora state dei punti di forza per IPv4,
rischiano di diventare i suoi principali limiti e spingono all’introduzione di una nuova
versione del protocollo, nota come IPv6.
1.1 Un nuovo schema di indirizzamento
Gli indirizzi IPv4 sono su 32 bit, cioè sono disponibili in totale circa 4 miliardi di
indirizzi e, non esistendo 4 miliardi di calcolatori al mondo, non è immediato capire il
perchè gli indirizzi stiano per esaurirsi. La causa va ricercata nella struttura degli
indirizzi IPv4 e nella modalità di assegnazione che risultano in moltissimi indirizzi
inutilizzati.
Infatti gli indirizzi IPv4 non vengono assegnati singolarmente (cosa questa ovviamente
impossibile per ragioni organizzative), ma a "reti". Le reti possono appartenere a 3
classi diverse:
• Classe A: 128 reti disponibili, ciascuna contenente circa 16 milioni di indirizzi;
• Classe B: circa 16.000 reti disponibili, ciascuna contenente circa 65.000
indirizzi;
• Classe C: circa 2 milioni di reti disponibili, ciascuna contenente 254 indirizzi.
A Gennaio 1996 risultavano assegnate 92 reti di classe A, 5655 reti di classe B e
87.924 reti di classe C. Questi dati evidenziano che la criticità principale è sulle reti di
classe B, che per la loro dimensione intermedia sono le più idonee ad essere assegnate
ad una organizzazione. Infatti le reti di classe A sono troppo grandi e comunque ne
rimangono da assegnare solo 36, mentre quelle di classe C sono troppo piccole. La
figura 1.2 mostra una tabella contenente i dati sulla crescita degli host di Internet.
% di crescita
Numero
di host
semestrale annuale
Gennaio 1996 * 12.881.000 57,1 120,3
Luglio 1996 * 16.729.000 30,5 104,0
Gennaio 1997 * 21.819.000 30,4 52,0
Luglio 1997 * 26.053.000 19,4 55,7
Gennaio 1998 29.670.000 13,9 36,0
Luglio 1998 36.739.000 23,8 41,0
Gennaio 1999 43.230.000 17,7 45,7
Luglio 1999 56.218.000 30,0 53,0
Gennaio 2000 72.398.000 28,8 67,5
Luglio 2000 93.047.800 28,5 65,5
Gennaio 2001 109.574.400 17,8 51,4
Luglio 2001 125.888.200 14,9 35,3
Gennaio 2002 147.344.700 17,0 34,5
Luglio 2002 162.128.500 10,0 28,8
Figura 1.2 Crescita degli host Internet [Fonte: http://www.gandalf.it/dati/dati1.htm]
Il problema dell’esaurimento degli indirizzi IPv4 venne compreso già nel 1991. In
tale anno inizia a verificarsi una crescita nelle domande di assegnazione degli indirizzi
più veloce di ogni previsione. Ci si trova nel momento storico in cui Internet, grazie
alla diffusione di servizi quali la posta elettronica e il web, sta divenendo l’unica rete
per tutti. E quando si dice tutti vuole veramente dire tutti: aziende private e pubbliche,
amministrazioni governative e no, università e centri di ricerca e anche e soprattutto
privati cittadini. Questo è reso possibile dalla nascita degli ISP (Internet Service
Provider) che forniscono a modici costi servizi di interconnessione ad Internet tramite
la normale rete telefonica utilizzando prima i modem e in seguito gli accessi ISDN.
Una ulteriore svolta è l’introduzione dei "cable modem" per fornire Internet a velocità
elevata (maggiore di 1 Mb/s) a tutti gli utenti domestici che ricevono la televisione via
cavo, questo per quanto riguarda prevalentemente i cittadini statunitensi, mentre in
Europa è l’introduzione dell’ADSL a produrre lo stesso effetto.
Le previsioni del 1991 erano che gli indirizzi di classe B si sarebbero esauriti entro
il 1994. A fronte di questa previsione drammatica e per fornire un tempo ragionevole
per lo sviluppo e la migrazione ad IPv6, IETF (Internet Engineering Task Force), il
comitato che prende le decisioni tecniche su IP e su Internet, decise di assegnare non
solo reti di classe B, ma anche blocchi di reti contigue di classe C. Ad esempio, una
organizzazione che abbia 100 calcolatori con una previsione di crescita a 500
calcolatori può vedersi assegnare, invece di una rete di classe B, un blocco di 4 reti di
classe C per un totale di circa 1000 indirizzi.
Questa nuova e più intelligente filosofia di assegnazione degli indirizzi sposta in
avanti la data in cui gli indirizzi saranno esauriti: ci sono previsioni, molto incerte, che
identificano una data tra il 2005 e il 2015.
Purtroppo questo nuovo schema di indirizzamento ha generato immediatamente
problemi sui router costretti a mantenere l’informazione di instradamento per ogni
rete.
Infatti se si assegna una rete di classe B ad una organizzazione i router dovranno
avere una sola regola di instradamento, ma se si assegnano 16 reti di classe C i router
dovranno avere 16 regole di instradamento diverse, usando 16 volte tanta memoria a
livello delle tabelle di instradamento. Per ovviare a questo inconveniente, nel 1992
viene introdotto il CIDR (Classless InterDomain Routing), cioè viene in sostanza
eliminato il concetto di classe delle reti a livello di tabelle di instradamento.
Infine viene consigliato che tutte le Intranet usino al loro interno gli stessi indirizzi
e a tal fine viene pubblicato il documento [RFC1597], poi rivisto dal [RFC1918], che
assegna una rete di classe A (la 10.0.0.0) e alcune reti di classe B e C per le Intranet.
Per quanto riguarda l’introduzione del NAT, questo ha permesso l’uso di indirizzi
privati per gli host presenti nelle Intranet, che si affacciano verso Internet
appoggiandosi ad un gateway, che è l’unico host dotato di un indirizzo “pubblico”.
Questa tecnica se da un lato riduce drasticamente l’utilizzo di indirizzi, dall’altro
introduce una serie di problematiche basate sul fatto che molte applicazioni usano una
porta predefinita per comunicare creando problemi di gestione e congestione se su
quella porta si concentrano comunicazioni di più host.
Dovrebbe essere a questo punto chiaro che la nuova versione di IP deve prevedere
uno schema di indirizzamento che abbia le seguenti caratteristiche:
• Un maggior numero di bit in modo che lo spazio di indirizzamento non sia
ulteriormente soggetto ad esaurimento;
• Uno spazio di indirizzamento non organizzato in classi, ma che utilizzi a livello
dei router tecniche di tipo CIDR;
• Uno schema di assegnazione degli indirizzi mirato a minimizzare le dimensioni
delle tabelle di instradamento sui router e ad aumentare l’efficienza del CIDR;
• Indirizzi globali per Internet, e locali per le Intranet.
1.2 Best Effort
IPv4 è un protocollo non orientato alla connessione, cioè trasmette ogni pacchetto
indipendentemente da tutti gli altri, specificando nell’header (intestazione) del
pacchetto gli indirizzi IPv4 completi del mittente e del destinatario. Un pacchetto non
viene marcato come appartenente ad un flusso o ad una connessione, né viene
numerato in alcun modo. Questo implica che non è possibile correggere errori a questo
livello, neanche capire se un pacchetto è stato consegnato oppure no e tanto meno qual
è stato il tempo di consegna. Un servizio di questo tipo viene detto "Best Effort"
(migliore sforzo) in quanto ogni nodo IPv4 esegue il suo "migliore sforzo" per
consegnare il pacchetto integro e nel minor tempo, ma non è in grado di garantire che
la consegna avverrà.
I protocolli senza connessione di tipo best effort sono molto facili da realizzare e
hanno un overhead (sovraccarico) limitato e costante. Questo ha permesso ad IPv4 di
imporsi e divenire rapidamente quasi l’unico protocollo a livello 3 del modello di
riferimento ISO/OSI. Tuttavia la disponibilità da un lato di nuove reti ad alta velocità
quali ATM, in grado di garantire la QoS. e la necessità dall’altro di sviluppare nuove
applicazioni multimediali che richiedono di avere una QoS garantita, hanno fatto
discutere se la scelta "Best Effort" sia ancora da considerarsi la migliore per IPv6.
Lo IETF ha già identificato da tempo essere un limite di IP la carenza del concetto
di QoS e ha sviluppato un protocollo addizionale detto Resource reSerVation Protocol
[RFC2205] per allocare risorse di rete sui router e renderli quindi idonei a garantire la
QoS ad applicazioni che si basano su IPv4, ma che richiedono esplicitamente di avere
una data QoS tramite RSVP. IPv6, pur mantenendosi fedele agli stessi principi
ispiratori di IPv4, ha cercato di introdurre al suo interno migliori meccanismi di
integrazione verso i concetti di QoS e con RSVP.