Title: Una rete Multi-hop Ad-Hoc anonima e sicura
1Una rete Multi-hop Ad-Hoc anonima e sicura
- Roberto Rossi
- Email
- robertross_at_libero.it
- Sito ufficiale http//www.myjavaserver.com/gwren
/home.jsp?pagecustomxmlNameants - SourceForge
- https//sourceforge.net/projects/antsp2p
2Modelli per il P2P
- Central Server (Napster)
- Server centrale per eseguire ricerce e trovare
peers con risorse di interesse - Distributed resource locator system (OpenNap)
- Stabilisce poche connessioni dirette tra nodi per
eseguire ricerche sulla rete e usa connessioni
punto punto con le sorgenti per recuperare le
risorse - Distributed resource locator retrieval system
(Ants, JXTA) - Stabilisce poche connessioni dirette tra nodi e
usa routing per raggiungere tutti i punti della
rete
3Il problema della trasparenza
- Classic P2P - OpenNap
- Distributed P2P - Ants
gateway
Internet
B
LAN
A
LAN
gateway
Internet
B
LAN
A
LAN
4Il problema della trasparenza
- Classic P2P - OpenNap
- Distributed P2P - Ants
gateway
Internet
B
LAN
A
LAN
gateway
Internet
B
LAN
A
LAN
5Un modello MANET like
- Lesempio mostrato ci fa intuire quanto le
problematiche affrontate nella progettazione
della rete siano vicine a quelle che devono
essere considerate in reti multi-hop ad-hoc - Dispositivi mobili con portata limitata di
trasmissione - Nel case study mostrato i 2 pc hanno di fatto una
portata limitata dovuta al fatto di essere
dietro a gateway - Necessità di instradamento attraverso nodi
intermedi - Abbiamo di fatto nodi che fungono sia da client
sia da router - Forte dinamicità nella struttura della rete
- Frequenti modifiche intervengono con larrivo e
la disconnessione di nodi - Necessità di localizzazione delle risorse e
mantenimento di vie di comunicazione verso queste
ultime - Ricerca di risorse e localizzazione di percorsi
per stabilire una comunicazione.
6La rete Ants
- Costruita al top di TCP/IP
- Comunicazione tra i nodi della rete realizzata
stabilendo poche connessioni iniziali dalle quali
raggiungere lintera rete - Connessioni criptate su Socket TCP
- Indirizzi ID che identificano i nodi della rete
- generati con bassa probabilità di collissione
- Necessarie opportune politiche di routing
7Il sistema di routing - obiettivi
- estrema capacità di adattamento a cambiamenti
nella topologia della rete in particolare
apparzione di nuovi nodi e connessioni o in caso
di disconnessioni - efficienza e dinamicità
- routing effettuato sulla base di informazioni
strettamente locali importante sia dal punto di
vista delloverhead (praticamente nullo visto che
non serve scambio di informazioni tra i nodi),
sia per mantenere anonimato relativamente allID - principio di minima intrusione nellattuazione
del protocollo - possibilità di qualificare la qualità di un
percorso di routing - supporto al routing multi-path
- fault tolerance
8Il sistema di routing - scelte
- Ad Hoc On-Demand Distance-Vector Protocol (AODV)
- politica on demand
- non servono scambi periodici di informazioni tra
i nodi - ARA Ant colony Based Routing Algorithm for
MANET - swarm intelligence
- risoluzione di problemi NP-Hard (routing
ottimale) attraverso la cooperazione - assume laspetto di un sistema ad agenti dove
ogni agente mostra il comportamento di una
singola formica
9Il sistema di routing - AODV
- Due fasi nel protocollo
- route discovery
- un nodo intenzionato a comunicare con un altro
nodo cerca dapprima una strada nella sua tabella
di routing, se la trova la comunicazione inizia
immediatamente, altrimenti viene iniziata la
route discovery phase - route maintenance
- movimenti della sorgente, a seguito dei quali la
sorgente effettua un nuovo route discovery
process - movimenti di qualche nodo intermedio o della
destinazione, che si risolvono nellinvio di un
route error message alla sorgente
10Il sistema di routing - ARA
- Il routing adattativo
- Multi path
- Adattamento a cambiamenti topologici
- Ricerca del percorso migliore
- Fasi
- Route Discovery
- Route Maintenance
- Route Failure Handling
11Il sistema di routing - proprietà
- Proprietà
- Operazioni inerenti al routing distribuite su
ogni nodo della rete. Ogni nodo opera in maniera
indipendente dagli altri e ha una memoria
autonoma - È loop-free a causa dellutilizzo degli
identificativi univoci - I percorsi vengono stabiliti on-demand, quindi si
evita loveread inutile che si avrebbe con il
routing tradizionale che stabilisce percorsi
anche se non vengono usati - Le parti della rete non attive non vengono
sollecitate inutilmente - Altre proprietà importanti ai nostri fini
- Località ogni nodo non ha cognizione di dove si
trovi un altro nodo (i.e. distanza effettiva) sa
solo che per raggiungerlo deve instradare il
messaggio in una certa direzione e che alcune
direzioni sono meglio di altre. Queste
informazioni sono locali e non vengono scambiate
tra i nodi. - Multi-path ogni nodo può conservare informazioni
riguardanti diversi percorsi possibili (i.e.
direzioni verso cui instradare un messaggio) per
raggiungere una certa destinazione, può inoltre
stabilire qualè attulamente il migliore fra tali
percorsi.
12La rete Ants
- Sviluppata integrando i protocolli mostrati
- Poche ed essenziali funzionalità ad ogni livello
su cui costruire i servizi dei livelli superiori - Livelli
- Link/Rete (ID)
- Trasporto/Sessione (Canali sicuri tra end-point)
- Applicazione (Servizi di alto livello)
- Idealmente il livello fisico, che manca nella
lista, è costituito dai servizi internet su cui
ci appoggiamo (TCP/IP). In pratica ci troviamo di
fronte ad una rete sulla rete.
13La rete Ants Link/Rete
- Ogni nodo caratterizzato da
- un proprio indirizzo ID
- Funzionalità di un nodo
- Fare connessioni con altri nodi (a livello
TCP/IP) - Inviare messaggi in broadcast sulla rete (tramite
flooding) - Inviare messaggi ad altri nodi
- Instradare messaggi di altri nodi (routing)
14La rete Ants Messaggi
- I messaggi sono strutturati e ad ogni livello è
possibile accedere solo alla parte del messaggio
relativa a quel livello - Analogo allo stack TCP/IP
- Il sistema di routing analizza solo le
informazioni di routing - Body protetto
- Header in chiaro
- Cosa succede in caso
- di duplicazione di un ID?
xskaljkljxalsjxkasjxlaksjxlaksxlajxkslajxlaskxjlas
jxlkakxjsljaksxljasxjlajsxlaskjxlajsxlkasjxlaskjxl
asxjlasjsl
Corpo del messaggio criptato e accessibile solo a
livello di trasporto
ID type Sorgente Destinazione Ttl ritrasmissioni
Header del messaggio porta le informazioni per
il routing a livello di Rete
15La rete Ants routing
- A livello di link la politica applicata
garantisce - Isolamento dellinformazione ID
- Efficienza nel protocollo
- Fasi
- Route Discovery
- la fase di RouteDiscovery è integrata nei
messaggi di broadcast, che vengono utilizzati per
trovare risorse sulla rete. - Route Maintenance
- come per gli altri due protocolli tale fase è
integrata nel trasferimento dati. - Non è prevista una fase di Route Failure
- Semantica At Least Once best effort (NMAX
ritrasmissioni)
16La rete Ants routing
- I messaggi usati nel protocollo di routing a
livello di Rete sono di tre tipi - Unicast
- Broadcast (net flooding)
- Acknowledge
- Timeout sulla sorgente (secondi)
- Timeout sul messaggio (max hop)
- Particolare politica per effettuare il net
flooding
17La rete Ants routing
- Route Discovery
- Contestuale allesecuzione di query (net
flooding) - Lacknowledge con i risultati della query traccia
la via allindietro fino alla sorgente (backward
ant)
18La rete Ants routing
- Route Maintenance
- Lista dei vicini con punteggi di efficienza
(generica) nellinstradamento di messaggi. - Lista dei messaggi consegnati (tupla sorgente,
destinazione, hop from, hop to) - Lista dei messaggi in transito
- Lista dei propri messaggi
- Lista dei messaggi falliti
- La posizione di una tupla nella lista dei
messaggi consegnati indica da quanto tempo la via
non è usata, dunque posizioni alte indicano vie
poco usate (inefficienti o interrotte), oltre un
certo limite le tuple sono scartate.
19La rete Ants routing
- Ogni volta che un messaggio arriva al router
- Se il messaggio è unicast si valuta se si
possiedono informazioni per instradarlo verso la
sua destinazione, se le si hanno lo si instrada,
altrimenti lo si instrada verso il vicino
valutato più efficiente nella relativa lista dei
vicini - Se il messaggio è di tipo Ack ed è relativo ad
uno dei messaggi nella lista dei messaggi
transitati allora si trasferisce la tupla nella
lista dei consegnati e si aggiorna leffficienza
del vicino a cui il messaggio era stato
instradato - I messaggi di broadcast, sebbene prevedano ack,
non causano aggiornamenti di efficienza dei
vicini
20La rete Ants politiche di efficienza
- Il Router presente in ogni nodo, oltre a fare
tali valutazioni sui messaggi che riceve e a
provvedere allinstradamento realizza due
politiche per garantire efficienza nella rete - Leaky Bucket
- messaggi rimasti nella coda di attesa per un
tempo gt timeout - messaggi che arrivano quando già NMAX messaggi
stanno venendo processati
21La rete Ants politiche di efficienza
- Routing sulla base della priorità del messaggio
- I messaggi oltre alla tipologia determinata dal
campo type sono divisi in classi. Ogni classe ha
una sua priorità di instradamento stabilita sulla
base della dimensione media (politica Max-min
share). - Messaggi semplici (vuoti) e Messaggi di Controllo
sui Servizi - Messaggi di Richieste di Servizio
- Messaggi di Dati
- La politica di priorità tra i messaggi di una
stessa classe è - la stessa che Java applica a Thread con medesima
priorità - bloccati su un lock (tipicamente
nondeterminismo).
dimensione crescente
22La rete Ants trasporto/sessione
- A tale livello vengono usati i servizi messi a
disposizione da quello sottostante per cercare
risorse sulla rete e realizzare connessioni
sicure tra gli end-point (Scambio DH AES) con
le quali effettuare comunicazioni sulla rete. - Messaggio di query (broadcast)
Corpo del messaggio risorsa disponibile inviata
nella risposta (hash MD5 e info aggiuntive)
Corpo del messaggio vuoto
Trasporto/Sessione
Link/Rete
asdhajsjhjkshdakjsj
ID type 2 Sorgente Destinazione TTL
ID type 1 Sorgente Destinazione TTL
Chiave pubblica RSA Stringa di query
Chiave pubblica RSA Stringa di query
Header del messaggio di query porta le
informazioni per il routing a livello di Rete
Header del messaggio di acknowledge per una query
porta le informazioni per il routing a livello
di Rete e per la query
23La rete Ants trasporto/sessione
- Tracciata la strada allindietro grazie
allacknowledge inviato (procedimento analogo a
quanto visto nell ARA e nell AODV) si ha a
disposizione un percorso per inviare messaggi
bidirezionali tra due nodi. - supporto a politica multi-path
Send message
Receive message
Send acknowledge
Receive acknowledge
24La rete Ants trasporto/sessione
- Per attuare la comunicazione vera e propria viene
attuato il protocollo seguente per la richiesta
di una connessione sicura ogni messaggio
richiede larrivo alla sorgente dellacknowledge,
come visto sopra, per essere considerato
delivered, nel caso in cui si perda
lacknowledge, si procede alla ritrasmissione, di
qui la ha politica At Least Once
acknowledge
secure connection request
message
received secure connection request
retransmission timeout
key computation
lost acknowledge
secure connection request Retransmission same
msg ID
received secure connection request ignored,
already processed
send secure connection response
received secure connection response found
pending request
secure channel created
25La rete Ants trasporto/sessione
- Il protocollo mostrato è facilmente estendibile
ed è possibile introdurre unidentificazione
sicura nella creazione del canale ad esempio
utilizzando certificati X.509. - Una volta stabilita una connessione sicura si ha
a disposizione un canale per la comunicazione con
laltro end-point. - scambio di messaggi
- definizione di nuovi tipo di messaggio
- Si hanno a disposizione tutti gli strumenti per
implementare politiche consistenti ed affidabili
di comunicazione - è possibile sapere se un messaggio arriva con
successo (scompare dalla lista dei propri
messaggi) o fallisce (compare nella lista dei
messaggi falliti no route found oppure timeout).
- Come già spiegato la politica di invio è At Least
Once, quindi a livello di Trasporto/Sessione
bisognerà gestire la possibilità che un messaggio
venga recapitato più volte ed eliminare i
duplicati.
26La rete Ants trasporto/sessione
- Servizi esistenti sviluppati sullinfrastruttura
di rete con protocolli a scambio di messaggi - Invio di una query/Invio di una risposta ad una
query - Pulling di una risorsa file o di parte di essa
numero definito di byte ad un certo offset
presente sullaltro end-point - Pulling della dimensione di una risorsa file
presente sullaltro end-point - Estensioni facilmente sviluppabili
sullinfrastruttura di rete con protocolli a
scambio di messaggi - Invio di messaggi di testo tra nodi della rete
- route discovery tramite query in broadcast per
stabilire se un nodo è on-line oppure no
27La rete Ants applicazione
- Motore per recuperare risorse da sorgenti
multiple - generazione di piani di download non sequenziali
basati su LFSR - Condivisione di risorse parziali durante il
recupero - supplisce insieme ai piani di download non
sequenziale alla mancanza di sistemi di code per
le richieste - Ricerca automatica di sorgenti per la risorsa che
deve essere recuperata - query automatizzate a intervalli di tempo
regolari - Supporto a query strutturate testuali
28Estensioni future
- Sviluppare estensioni a livello di Sessione
- identificazione sicura tra nodi tramite
certificati X.509 - Supportare nuovi protocolli sopra il livello di
sessione - lHTTP sulla connessione sicura che viene
stabilita a livello di Sessione - Aggiungere funzionalità a livello applicativo
- supporto a messaggi di testo tra end-point
connessi.