1 Architettura e concetti generali

Come discusso in [30], negli ultimi anni a causa di diversi fattori quali la diffusione di indirizzi IP dinamici, l'uso di indirizzi privati e del NAT, si è persa la trasparenza end-to-end delle connessioni, e questo crea problemi tra l'altro ad IPsec.

Attualmente in Internet esistono due spazi di nomi: gli indirizzi IP e i nomi di dominio. I secondi sono collocati a livello applicazione e vengono perlopiù utilizzati prima di effettuare una connessione per ottenere il corrispondente indirizzo IP (per cui sono riferimenti indiretti agli indirizzi IP), dopo di che non ne rimane traccia nella comunicazione. Inoltre con i nomi di dominio non si può avere anonimato e la dinamicità è limitata per via dei tempi di aggiornamento del DNS. Gli indirizzi IP hanno invece una caratteristica che, se in passato è stata un punto di forza, oggi si rivela un elemento di debolezza: essi ``confondono'' due informazioni essenzialmente diverse, ovvero l'identità di un interfaccia di rete e il percorso da seguire per raggiungerla, mettendo cioè insieme le informazioni relative all'identità con quelle relative all'instradamento. A ciò si aggiunge il fatto, ricordato poco fa, che oggi l'informazione di identità associata agli indirizzi IP è resa ``debole'' dal largo uso di indirizzi dinamici (o di indirizzi privati mascherati tramite NAT), il che ha delle conseguenze negative anche in virtù del fatto che i livelli dello stack di rete superiori al terzo (che non hanno nulla a che fare con il routing) utilizzano tali indirizzi.

Con HIP si propone di inserire un nuovo spazio di nomi in Internet, chiamato Host Identity (HI), che permetterebbe di disaccoppiare il routing (ovvero il livello 3, dove si continuerebbe ad usare gli indirizzi IP) dai livelli superiori (dal trasporto all'applicazione, dove si userebbe la host identity). Questo nuovo spazio di nomi avrebbe caratteristiche crittografiche (trattandosi essenzialmente di chiavi pubbliche) e quindi potrebbe essere utilizzato per autenticare gli host con IPsec47. Uno stesso host può avere più HI, alcune pubbliche (ovvero registrate nel DNS48) e altre anonime; può inoltre ``autocertificare'' la propria identità oppure utilizzare un meccanismo per garantirla, quale DNSSEC, PGP, o i certificati X.509. Dato che la HI può avere formato e lunghezza variabili, è previsto l'uso di un Host Identity Tag (HIT) di 128 bit, costituito essenzialmente da un hash della HI49 e anch'esso immagazzinato nel DNS (se pubblico). La HI non deve mai essere espressamente utilizzata dai protocolli di rete: viene esclusivamente immagazzinata (eventualmente) in server DNS o LDAP e passata durante l'handshake di HIP, mentre tutti i protocolli utilizzano esclusivamente lo HIT, come rappresentazione della HI50.

La host identity potrebbe essere utilizzata con IKE come chiave pubblica, prendendo gli HIT anziché gli indirizzi IP come identità: in questo modo IKE potrebbe attraversare il NAT, e si potrebbe dunque utilizzare IPsec (con ESP in modalità trasporto) in presenza di NAT. Questo è possibile, e va tenuto presente perché comunque IKE mette a disposizione molte più opzioni, tuttavia ciò che si propone è un nuovo protocollo, che utilizzando la HI permetterebbe di sostituire IKE in un ambito end-to-end (ma non gateway-to-gateway) fornendo una procedura di handshake più leggera e veloce per instaurare security association IPsec ESP.

L'handshake del protocollo HIP è lungo solo quattro pacchetti (contro i nove di un handshake IKE con main mode e quick mode), e nel progettarlo si sono tenuti in considerazione i possibili attacchi di denial of service, cercando di ``rovesciare'' l'onere computazionale sull'iniziatore. Questo avviene permettendo al ricevitore di riutilizzare un pacchetto precostituito come risposta al primo messaggio, e dandogli la possibilità di formulare una specie di ``indovinello'', di difficoltà variabile, che l'iniziatore dovrà risolvere (quest'idea è esposta in [31]). È anche prevista una modalità ``opportunistic'' per HIP, con lo svantaggio di un rischio maggiore per il denial of service (anche se appare molto minore rispetto a quello evidenziato per la ``opportunistic encryption'' esaminata in precedenza).

Il protocollo HIP è pensato inoltre con attenzione alle problematiche relative alla mobilità, che con il disaccoppiamento dei livelli rete e trasporto possono essere affrontate più facilmente: la mobilità dell'iniziatore (o di uno qualsiasi dei due interlocutori a connessione stabilita) non presenta problemi particolari, e il disaccopiamento permette di mantenere le connessioni (TCP ed ESP) anche dopo un cambiamento di indirizzo, mentre per gestire quella del ricevitore si fa uso di un ``rendezvous server'' (si veda [27] per i dettagli). Infine, HIP non presenta problemi in presenza di NAT, ed è possibile fare masquerading utilizzando HIT e SPI anziché i numeri di porta, per cui si può utilizzare il masquerading anche con IPsec.

Ricapitolando, HIP comporta l'inserimento di un nuovo livello nello stack TCP/IP, posto tra i livelli rete e trasporto, come mostrato in figura 5.1. Con riferimento all'uso con IPsec end-to-end51, i vantaggi di HIP si possono così riassumere:

Ancora una volta, è comunque importante notare che, essendo molto più semplice di IKE, HIP non ha tutte le caratteristiche di questo, e dunque non lo può sostituire in ogni caso di utilizzo. In particolare, come già detto, non può essere utilizzato in ambito gateway-to-gateway. L'introduzione della host identity, ovvero il livello aggiuntivo tra IP e TCP, può comunque portare dei benefici anche ad IKE, ad esempio per quanto riguarda l'attraversamento del NAT.

Figura 5.1: Posizione di HIP nello stack TCP/IP.
\includegraphics{immagini/hip_livelli.eps}



Footnotes

... IPsec47
In [27] si dice che la host identity potrebbe essere in teoria anche qualcosa di diverso da una chiave pubblica, tuttavia soluzioni di questo tipo sono espressamente sconsigliate e non sono prese in considerazione dai draft, per cui in questa sede verranno ignorate.
... DNS48
In un record KEY.
... HI49
È previsto anche un formato gerarchico dello HIT che, sempre all'interno dei 128 bit, comprende un campo Host Assigning Authority, a sua volta suddiviso in due livelli. Tale formato è raccomandato per le identità pubbliche.
... HI50
È prevista anche un'altra rappresentazione della HI, detta Local Scope Identity (LSI). Si tratta di un numero casuale di 32 bit che, come indicato dal nome stesso, ha un significato esclusivamente locale e non globale come lo HIT. La LSI ricopre sostanzialmente un ruolo simile a quello del SPI, con la differenza che ha un ``tempo di vita'' più lungo rispetto a quest'ultimo.
... end-to-end51
L'introduzione di HIP può portare benefici in altri campi, che però qui non verranno trattati.
©2001 Davide Cerri