Vous êtes sur la page 1sur 25

Livrable AMORES

AMORES L3 – État de l’art des protocoles de routage


respectant la vie privée

Date : 31 octobre 2012


Auteurs : Simon Boche, Christophe Bidan, Gilles Guette, Nicolas Prigent
Titre : AMORES L3 – État de l’art des protocoles de routage
respectant la vie privée
Rapport No. / Version : 3/ 1
Statut : Final

LAAS-CNRS Supélec - Rennes


7 avenue du Colonel Roche Avenue de la Boulaie, BP 81127,
31077 Toulouse cedex 4, France 35511 Cesson-Sévigné, France
http://www.laas.fr/ http://www.supelec.fr/

IRISA MobiGIS Tisséo


CNRS, INRIA, Université de Rennes 1, Rue de l’Autan 7, esplanade Compans-Caffarelli
263, Avenue du Général Leclerc, Bat12 31330 Grenade, France 31902 Toulouse CEDEX 9
35042 Rennes Cedex, France http://www.mobigis.fr/ http://www.tisseo.fr/
http://www.irisa.fr/
Résumé : Un protocole de routage ad hoc permet à un ensemble de nœuds mobiles de
communiquer en utilisant si besoin certains nœuds du réseau comme intermé-
diaires. Pour ce faire, les nœuds organisent le routage de manière distribuée
à l’aide d’un protocole de routage ad hoc. De par leur fonctionnement même,
les protocoles de routage ad hoc classiques révèlent de nombreuses informa-
tions sur les utilisateurs des appareils mobiles (localisation absolue ou relative,
relations avec les autres utilisateurs, etc.) et portent donc atteinte à leur vie
privée.
Dans ce document, nous présentons l’état de l’art des protocoles de rou-
tage respectueux de la vie privée. Nous commençons par définir les propriétés
nécessaires à un protocole de routage ad hoc pour que celui-ci respecte la vie
privée. Nous proposons ensuite plusieurs modèles d’attaquants et définissons
les attaques que chacun peut réaliser. Nous faisons enfin une analyse des cinq
protocoles de routage ad hoc respectueux de la vie privée les plus significatifs.

Rédacteurs :
Contributeur Organisme Rôle
Simon Boche CIDre UR1 Contributeur
Christophe Bidan CIDre Supélec Contributeur
Gilles Guette CIDre UR1 Contributeur
Nicolas Prigent CIDre Supélec Contributeur
AMORES L3 – État de l’art des protocoles de routage
respectant la vie privée Confidentiel CPP

1 Introduction
Ce document constitue le premier livrable de la tâche 3 du projet ANR AMORES (Architecture
pour les systèmes résilients MObiles et ubiquitaiRES). Il comprend un état de l’art des protocoles
de routage respectueux de la vie privée.
Le projet AMORES est construit autour de trois applications ayant trait à la mobilité : co-
voiturage dynamique, calcul d’itinéraires multimodaux en temps réel et réseau social mobile. Pour
ces trois applications, l’objectif principal du projet est de définir les geo-primitives de communi-
cation au niveau intergiciel permettant de fournir les services géo-localisés requis, et cela tout en
assurant le respect de la vie privée, en particulier au niveau de la localisation.
Les géo-primitives requièrent des composants de base, tels que le routage, des primitives crypto-
graphiques ou encore la géo-localisation (extérieure ou intérieure). La problématique du respect
de la vie privée se pose également au niveau de ces composants de base et en particulier des traces
numériques qui peuvent être générées par leur utilisation.
Dans ce document, nous précisons dans un premier temps la terminologie et les définitions
utilisées pour qualifier les notions fondamentales liées au respect de la vie privée puis nous explici-
tons les propriétés retenues pour caractériser le respect de la vie privée. Nous analysons ensuite les
concepts généraux utilisés dans les protocoles de routage pour protéger le respect de la vie privée
puis nous explicitons les modèles d’attaquants considérés dans ce document. Enfin, nous terminons
par une analyse de différents protocoles de routage respectueux de la vie privée existant.

2 Terminologie et définitions
Le respect de la vie privée est un sujet très vaste. Dans [PHDK05], Pfitzmann et al. définissent
un certain nombre de notions liées au respect de la vie privée dans le contexte des réseaux de
communication.

Définition 1
Émetteur : nœud à l’origine d’un message.

Définition 2
Receveur : nœud étant destination d’un message.

Définition 3
Communication : échange de message entre un émetteur et un receveur.

Le modèle est formalisé de la façon suivante : des émetteurs envoient des messages à travers un
réseau de communication à des receveurs. Les émetteurs et les receveurs sont des sujets du réseau
de communication. Dans ce contexte, un attaquant cherche à répondre la question suivante : qui
(émetteur) communique avec qui (récepteur) ?

Ainsi, une méthode pour protéger la vie privée consiste à assurer l’anonymat des sujets. La no-
tion d’anonymisation n’est pas seulement lié à l’identité, mais aussi à toute information permettant
d’identifier de manière unique le sujet.

Définition 4
Anonymat (Pfitzmann) : un nœud est anonyme si il n’est pas identifiable dans un ensemble de
nœuds, appelé ensemble d’anonymat. On parle aussi de k-anonymité (le nœud se trouvant alors
dans un ensemble d’anonymat composé de k éléments).

À partir de cette définition, il est possible de quantifier l’anonymat. Plus l’ensemble d’anonymat
est grand, plus le sujet est anonyme. La taille de l’ensemble d’anonymat est maximale si elle
concerne l’ensemble des nœuds réalisant une même action (envoyer ou recevoir). De plus, l’ensemble
d’anonymat n’est pas fixe dans le temps, mais change en fonction de l’activité des nœuds.
Dans notre contexte, cette définition se décline pour les émetteurs et les receveurs :

1/23
AMORES L3 – État de l’art des protocoles de routage
Confidentiel CPP respectant la vie privée

Définition 5
Anonymat de l’émetteur : l’émetteur d’un message est anonyme si cet émetteur n’est pas identi-
fiable dans l’ensemble d’anonymat des émetteurs.

Définition 6
Anonymat du récepteur : le récepteur d’un message est anonyme si ce récepteur n’est pas identifiable
dans l’ensemble d’anonymat des récepteurs.

Dans un de réseau de communication ad hoc, un message est relayé par des nœuds intermé-
diaires. Le respect de la vie privée concerne donc également ces nœuds.

Définition 7
Anonymat d’un nœud intermédiaire : un nœud intermédiaire est anonyme s’il n’est pas identifiable
dans l’ensemble des nœuds intermédiaires.

L’anonymat n’est pas suffisante pour assurer la vie privée des nœuds du réseau. Une autre notion
indispensable est la notion d’inassociabilité.

Propriété 1
Inassociabilité (unlinkability). L’inassociabilité de deux ou plus items d’intérêts (nœuds, messages,
actions. . . ) d’un point de vue d’un observateur signifie qu’il ne peut pas distinguer si ces items
sont liés entre eux.

Un item d’intérêt possible peut être par exemple la position (absolue et relative) d’un nœud.
Cette notion de position est primordiale pour assurer le respect de la vie privée : la position d’une
personne peut permettre par exemple de déterminer ces lieux préférées ou bien même, si la position
relie la personne à un cabinet médical, une idée de son état de santé.
Néanmoins, assurer le secret de la position (c’est à dire, l’impossibilité à partir d’une identité
de connaitre sa position) n’est pas suffisant. En effet, le secret de la position empêche la création
d’un lien entre l’identité et la position, mais pas entre la position et l’identité. Or, en se basant
sur les travaux de Gambs et al. [GKdPC10], il est possible à partir de l’historique des points
géolocalisés de retrouver des points d’intérêts d’une personne. Ainsi, le couple lieu de domicile -
lieu de travail est un quasi identifiant (c’est-à-dire que l’ensemble d’anonymat d’une personne est
très faible).
Gambs et al. utilise la position absolue de nœud. La position absolue utilise un système de
coordonnées (le plus souvent longitude et lattitude) pour repérer la position sur la planète. Néan-
moins, la position relative (déterminée à partir d’un point de référence, la distance par rapport à
ce point et une direction) permet elle aussi d’identifier une personne. En effet, il est possible de
transposer une position relative en une position absolue si le point de référence dispose d’une po-
sition absolue. Au delà de cette conversion, la position relative permet de décrire des liens sociaux
entre les personnes.
Il est donc nécessaire d’empêcher la création d’un lien bijectif entre l’identité d’un nœud et sa
position.

Propriété 2
Inassociabilité nœud - position. Il ne doit pas être possible de relier un nœud à sa position et
inversement.

Au dela de l’inassociabilité nœud - position, nous pouvons distinguer dans les réseaux adhoc,
plusieurs types d’inassociabilité :

Propriété 3
nassociabilité émetteur - message. Il ne doit pas être possible de relier un message à son émetteur.
AMORES L3 – État de l’art des protocoles de routage
respectant la vie privée

Propriété 4
Inassociabilité récepteur - message. Il ne doit pas être possible de relier un message à son recepteur.

Propriété 5
Inassociabilité message - message. Il ne doit pas être possible de relier deux messages provenant
d’un même émetteur et à destination du même recepteur.

3 Concepts généraux utilisés dans les protocoles de routage


respectueux de la vie privée
Pour respecter certaines des propriétés de respect de la vie privée, les protocoles de routage
actuels utilisent différents concepts : la trappe cryptographique, les MIX-Net, le routage en oignon
ou le routage multi-chemin.

3.1 Trappe cryptographique


Pour qu’un réseau puisse fonctionner, les messages échangés doivent contenir un moyen d’iden-
tifier le destinataire d’un message. Cela permet aux nœuds du réseau de ne prendre en compte
que les messages les concernant. Dans un réseau classique (filaire et ad hoc non respectueux de
la vie privée), l’identité du destinataire (au sens réseau du terme) est le plus souvent utilisé. Mal-
heureusement, en utilisant l’identité dans les messages, l’inassociabilité destinataire - message et
l’anonymat du destinataire ne sont pas assurés.
Pour respecter ces deux propriétés, seul le destinataire doit pouvoir faire le lien entre le message
et son destinataire. Certains réseaux ad hoc respectueux de la vie privée utilisent des trappes
cryptographiques en remplacement de l’identité du destinataire dans les messages.
La trappe cryptographique est une méthode permettant de s’assurer que seul le destinataire du
message va pouvoir ouvrir la trappe. Plus formellement, une trappe est une fonction à sens unique
que seul le destinataire, en possédant une information supplémentaire, peut inverser, assurant ainsi
l’inassociabilité destinataire - message.
Une implémentation possible d’une trappe peut se réaliser en utilisant le chiffrement asymé-
trique. Dans un chiffrement asymétrique, un utilisateur dispose d’une clé publique et d’une clé
privée. Le nœud expéditeur utilise la clé publique du nœud destinataire pour chiffrer un en-tête
qui va servir d’adresse de destination. Seul le destinataire, en utilisant sa clé privée, peut déchiffrer
l’en-tête. Pour assurer l’inassociabilité message - message, il est indispensable que le contenu de la
trappe varie à chaque chiffrement (en utilisant par exemple le numéro de séquence du message ou
bien un timestamp). Sans cette contrainte, il est en effet possible de déterminer tous les messages
à destination d’un nœud (sans forcement connaitre son identité).
D’autres implémentations d’une trappe cryptographique sont possibles : chiffrement symé-
trique, fonction de hachage. . . À notre connaissance, cette notion de trappe cryptographique n’est
utilisée que dans le contexte d’un réseau ad hoc.

3.2 MIX-Net
Dans un réseau classique, un routeur connait l’expéditeur et le destinataire du message. Pour
protéger l’identité de ces nœuds ainsi que le contenu du message d’un nœud intermédiaire mal-
veillant, il est possible d’utiliser le mécanisme de MIX-Net [Cha81].
Le principe est le suivant : chaque nœud intermédiaire possède une clé de chiffrement (clé
publique ou clé symétrique). Le nœud source va utiliser la clé de chiffrement du dernier nœud
intermédiaire pour chiffrer son message. Le résultat est chiffré avec la clé de l’avant dernier nœud
intermédiaire. Le processus est répété jusqu’à utiliser la clé de chiffrement du premier nœud inter-
médiaire (voir figure 1). Le résultat de cette processus est souvent appelé oignon cryptographique.
Le nœud source peut ensuite envoyer le message au premier nœud intermédiaire. Celui-ci est
le seul capable de déchiffrer le message. Le premier nœud intermédiaire peut ensuite envoyer le
AMORES L3 – État de l’art des protocoles de routage
respectant la vie privée

Figure 1 – Représentation de l’encapsulation d’un message - CC BY SA, Harrison Neal

message au deuxième nœud. Celui-ci ne peut pas savoir de qui vient originellement le message et
il ne connait que le prochain saut du message.
Ainsi, seul le premier nœud intermédiaire connait l’expéditeur du message. Réciproquement,
seul le dernier nœud intermédiaire connait le destinataire du message. Un nœud routeur va aussi,
pour rendre plus difficile l’analyse du traffic, temporiser avant la transmission d’un message ou
bien réordonner la file d’attente.

3.3 Routage en oignon


Le routage en oignon [GRS96] est une évolution du principe du MIX-Net. Les différences
concernent la façon dont le nœud destinataire peut répondre et sur la temporisation et le réordon-
nancement inexistant dans le routage en oignon.
Le routage en oignon est déjà utilisé quotidiennement, par exemple à travers l’utilisation du
réseau TOR [DMS04] (permettant d’assurer un certain anonymat sur Internet). Dans celui-ci, trois
nœuds intermédiaires sont utilisés.

3.4 Routage multi-chemin


Dans un contexte de mobilité, une route allant d’un nœud A à un nœud B peut être éphémère.
La mise à jour de la table de routage est donc nécessaire afin d’assurer le transport des données.
Une technique permettant de limiter cette mise à jour consiste à créer dès le départ plusieurs
routes entre A et B.
Dans [LLZ06], plusieurs techniques de multi-chemin sont présentées. Ainsi, il existe deux types
de multi-chemin, les chemins totalement disjoints et les chemins partiellement disjoints. Dans des
chemins totalement disjoints (voir figure 2b), aucune arrête n’est commune entre les différents
chemins. Ces chemins totalement disjoints permettent, par construction, de ne pas avoir de boucle
de routage tout en assurant la création de plusieurs routes (si le réseau le permet). De l’autre coté,
les chemins partiellement disjoints (voir figure 2a) peuvent avoir des arrêtes communes. Cette
propriété permet la construction de plus de chemins. Malheureusement, ce type de multi-chemin
ne possède plus la propriété d’absence de boucle de routage.
AMORES L3 – État de l’art des protocoles de routage
respectant la vie privée

(a) multi chemin partiellement disjoint

(b) multi chemin totalement disjoint

Figure 2 – Représentation des différents types de multi chemin

Certains protocoles, comme AODV-BR [LG00], utilisent le multi-chemin pour proposer d’autres
routes si la route principale ne fonctionne plus. D’autres, comme SPREAD [LLZ06], proposent
d’utiliser en parallèle toutes les routes, permettant ainsi de mixer la communication sur les diffé-
rentes routes.

4 Modèles d’attaquants
Le routage respectueux de la vie privée dans les réseaux ad hoc est un sujet déjà abordé dans la
littérature. Mais avant de pouvoir analyser les différentes solutions, nous devons définir un modèle
d’attaquant unique afin de pouvoir comparer les solutions existantes.
La sécurité d’une solution est analysée par rapport à un type d’attaquant donné. On parle
d’attaquant plus fort qu’un autre lorsque ses capacités sont plus importantes. Il existe différents
critères discriminant les attaquants sur un réseau ad hoc respectueux de la vie privée.

4.1 L’activité de l’attaquant


Un attaquant dispose de plusieurs méthodes pour attaquer un réseau. Il peut par exemple
écouter les messages échangés, les intercepter ou bien envoyer de faux messages sur le réseau. Cela
nous permet de distinguer deux types d’attaquant : les actifs et les passifs.
Un attaquant passif ne fait qu’écouter les messages, au contraire de l’attaquant actif qui,
lui, peut envoyer des messages (pouvant potentiellement perturber le fonctionnement du protocole
de routage).

4.2 La zone de couverture de l’attaquant


Un attaquant peut avoir une vision plus ou moins grande du réseau. Ainsi, nous distinguons
deux types d’attaquants : les attaquants globaux et les attaquants locaux. Un attaquant
global est un attaquant ayant une vision totale de ce qui se passe sur le réseau ad hoc. Un
attaquant local, au contraire, va avoir une vision partielle du réseau (de la taille de sa zone de
transmission et de réception).
L’attaquant collusif est situé entre l’attaquant local et l’attaquant global. Cet attaquant a
à sa disposition plusieurs appareils collaborant entre eux lui offrant une vision partielle du réseau
mais plus grande que celle qu’il aurait eue seul.
AMORES L3 – État de l’art des protocoles de routage
respectant la vie privée

Notons aussi que la position de l’attaquant a elle même de l’importance. Ainsi, pour une
communication donnée un attaquant se trouvant sur la route entre deux nœuds ciblés aura accès
à plus d’informations et sera donc plus fort qu’un attaquant en dehors de cette route.

La combinaison de ces différents critères permet de définir un attaquant. Par exemple, nous
pouvons considérer un attaquant global et passif : cet attaquant a une vision globale du réseau et
ne fait qu’écouter les messages émis, sans en émettre lui même.
Dans la suite de ce document nous nous intéressons à deux types d’attaquants : l’attaquant
global passif et l’attaquant collusif actif.

5 Protocoles respectueux de la vie privée


Il existe deux types de protocoles de réseau adhoc : les protocoles proactifs et les protocoles
réactifs.
Un protocole proactif maintient en permanence toutes les informations nécessaires pour assurer
le service de routage. À chaque instant, chaque nœud essaie d’avoir une route vers tous les autres
nœuds. Un nœud peut ainsi directement envoyer un message lorsqu’il le souhaite.
Dans un protocole réactif, l’information nécessaire pour le service de routage n’est pas for-
cèment disponible. Un nœud souhaitant communiquer doit alors initier une découverte de route
pour pouvoir ensuite envoyer un message.

Nous analysons dans cette partie cinq protocoles de routage. Chaque analyse se découpe de
la façon suivante : l’introduction explique les concepts généraux utilisés dans le protocole. Le
déroulement du protocole est ensuite étudié. Puis les propriétés de respect de la vie privée sont
ensuite détaillées. Enfin, nous terminons par évaluer les performances du protocole d’un point de
vue réseau.

Tous les protocoles étudiés sont des protocoles réactifs. De manière générale, tous les protocoles
font les hypothèses suivantes :
– Les liens entre les nœuds sont symétriques. Si un nœud A peut envoyer un message à un
nœud B, alors le nœud B peut envoyer un message au nœud A. L’ensemble des nœuds du
réseau forme ainsi un graphe non-orienté.
– Tous les protocoles étudiés utilisent de la cryptographie. Les nœuds doivent donc disposer
des ressources nécessaires pour utiliser des fonctions cryptographiques.
– Les ressources d’un attaquant ne sont pas illimitées (en temps et en mémoire). Notamment,
il ne peut casser les algorithmes de chiffrement en testant toutes les clés possibles.

5.1 ANODR
ANODR (ANonymous On Demand Routing) [KH03] utilise le concept de la trappe crypto-
graphique (trapdoor ) et du routage en oignon pour assurer les propriétés de respect de la vie
privée.
Chaque nœud i possède une clé secrète KSi et une clé publique KPi .
Dans ANODR, l’oignon cryptographique va être construit au fur et à mesure de la propagation
d’un message de découverte de route. Il va ensuite être utilisé par la destination pour contacter la
source.
L’ensemble des nœuds sur la route est numéroté de 0 à n, avec 0 le nœud source et n le
nœud destinataire. Les auteurs supposent que chaque nœud i du réseau ad hoc possède une clé
symétrique que lui seul connait, notée Ki .
AMORES L3 – État de l’art des protocoles de routage
respectant la vie privée

5.1.1 Déroulement du protocole


ANODR étant un protocole réactif, son déroulement se fait en trois étapes : la demande de
route, la réponse de route et enfin le transfert de données.

Demande de route

Lorsque le nœud source souhaite découvrir un chemin pour une destination donnée, il envoie
un message de la forme :

< RREQ, Seqnum, trdest , onion0 = {N0 }K0 >


– Seqnum correspond à un numéro de séquence global unique. Il permet d’identifier de manière
unique une demande de route et ainsi de ne pas répondre à une demande de route déjà vue.
– trdest est la trappe que seul le nœud destinataire peut ouvrir. Elle est construite de la façon
suivante :

trdest = {n, Ntr }KPn


– Ntr est un nombre aléatoire généré par le nœud source. n est l’identité du nœud destinataire,
lui permettant ainsi de vérifier l’ouverture (le déchiffrement) correcte de la trappe. Ces deux
informations sont ensuite chiffrées avec la clé publique du nœud destinataire.
– onion0 correspond à l’oignon envoyé par le nœud 0. Le principe est le suivant : chaque nœud
prend l’oignon du nœud précédent, ajoute un numéro aléatoire (ici N0 ) et chiffre le tout
avec une clé de session K0 connue seulement du nœud. Le nœud 0 étant le premier, il n’y
a pas d’oignon déjà existant. N0 va permettre, lors du retour de l’oignon, de vérifier le bon
déchiffrement de l’oignon.

Le nœud intermédiaire i reçoit du nœud i − 1 le message de type RREQ suivant

< RREQ, Seqnum, trdest , onioni−1 = {Ni−1 , {N... , {N0 }K0 }K... }Ki−1 >
Avant tout traitement, le nœud vérifie s’il a déjà traité le message en utilisant Seqnum et en
le comparant avec les numéros de séquences déjà rencontrés. Ceux-ci sont stockés dans un cache.
S’il a déjà traité le message, il le supprime. Sinon, il enregistre Seqnum dans le cache et teste
ensuite l’ouverture de la trappe. Si l’ouverture échoue, le nœud i diffuse le message en modifiant
tout d’abord l’oignon :

onioni = {Ni , onioni−1 }Ki


Le nœud i peut ensuite diffuser le message RREQ suivant :

< RREQ, Seqnum, trdest , onioni >

Il enregistre enfin le nombre aléatoire Ni dans une table.

Réponse

Lorsque le nœud destinataire n reçoit le message RREQ, il transmet un message RREP de la


forme :

< RREP, Pn , prdest = Ntr , onionn−1 >


– Pn est le pseudonyme global unique du nœud n, le nœud destinataire.
– prdest la preuve de l’ouverture de la trappe, autrement dit le nombre aléatoire Ntr généré
précédemment par le nœud source.
AMORES L3 – État de l’art des protocoles de routage
respectant la vie privée

– le champ onionn−1 du paquet RREQ émis par le nœud n − 1 contient la route utilisée par le
message RREQ pour arriver à destination. Cette route va être utilisée en sens inverse pour
joindre le nœud source.

Table de routage : Cache numéro de séquence :

prev_hop(Pi ) next_hop(Pi+1 ) Seqnum

alea1 alea2 1
... ... ...

Cache nombre aléatoire :

Ni key_current_hop

alea3 Ki
... ...

Figure 3 – Informations stockées et utilisées par le nœud i

Un nœud intermédiaire i reçoit un message RREP de la forme :

< RREP, Pi+1 , prdest , onioni >


Il déchiffre dans un premier temps le champ onioni avec sa clé personnelle Ki puis compare le
résultat à la valeur Ni , stockée dans sa table.
Si le résultat est correct, cela signifie que le nœud i se trouve bien sur la route entre le nœud
n et le nœud 0. Il remplace alors le pseudonyme Pi+1 par son pseudonyme Pi et enregistre dans
sa table de routage les informations nécessaires (voir figure 3).
Il remplace ensuite le champ onioni par le champ onioni−1 , obtenu lors du déchiffrement
d’onioni . Il transmet ensuite le message ainsi modifié :

< RREP, Pi , prdest , onioni−1 >

Le nœud source 0 reçoit le message RREP suivant :

< RREP, P1 , prdest , onion0 >


Tout comme un nœud intermédiaire, le nœud source déchiffre onion0 et vérifie si le résultat
fourni est égal à N0 .
Il vérifie ensuite l’ouverture de la trappe à l’aide de prdest . Cette vérification permet au nœud
source de s’assurer que la route créée est bien à destination du nœud n. En effet, seul le nœud
destination peut déchiffrer la trappe et apporter la preuve de l’ouverture au nœud source.

Transfert de données

Lorsque le nœud source souhaite envoyer un message au nœud destinataire, il lui suffit de
mettre en en-tête du message le pseudonyme P1 reçu lors de la phase de découverte de route puis
AMORES L3 – État de l’art des protocoles de routage
respectant la vie privée

d’envoyer le message. À l’aide de sa table de routage, le nœud 1 peut déterminer que le message
est pour lui et à quel nœud il doit transmettre le message. Il remplace alors le pseudonyme P1 par
le pseudonyme P2 . Les nœuds intermédiaires procèdent aux mêmes opérations, permettant ainsi
d’envoyer de proche en proche un message de la source vers la destination.

5.1.2 Propriétés de respect de la vie privée


La protection de l’identité de la source est une propriété du protocole, de part l’utilisation d’un
pseudonyme temporaire.
L’identité de la destination est protégée par l’utilisation de la trappe cryptographique.
L’identité des nœuds intermédiaires n’est pas révelée. En effet, le protocole utilise des pseudo-
nymes générés à la volée par les nœuds intermédiaires.
L’inassociabilité source - position n’est pas respectée. L’attaque consiste à utiliser la taille du
champ onion. Celui-ci grossit au fur et à mesure de la demande de route et diminue lors de la
réponse. Cette différence de taille permet de déterminer pour un attaquant collusif actif ou pour
un attaquant global passif la position relative d’un nœud.
L’inassociabilité destination - position n’est pas assurée (en utilisant la taille du champ oignon
comme indicateur). De plus, Le protocole est sensible à une attaque par rejeux : un attaquant
collusif actif intercepte une trappe, rejoue celle-ci un nombre suffisant de fois pour déterminer la
position du nœud destination.
L’inassociabilité nœuds intermédiaires - position n’est pas respectée. En effet, en utilisant
toujours l’observation de la taille du champ onion, un attaquant peut retrouver la position d’un
nœud intermédiaire et lier cette information à un pseudonyme.
L’inassociabilité source - message n’est pas une propriété du protocole. En utilisant une attaque
temporelle, il est possible de déterminer pour un attaquant global passif la source du message.
L’attaque temporelle consiste à relier un message entrant dans un nœud et le message en sortant
quelques millisecondes plus tard. De proche en proche, il est ainsi possible de déterminer l’ensemble
des participants d’une route.
L’inassociabilité destination - message n’est pas respectée, le protocole étant sensible à une
attaque temporelle.
L’inassociabilité message - message n’est pas assurée. Chaque nœud sur une route utilise un
pseudonyme différent mais celui-ci est valable pour l’ensemble des messages échangés pour cette
route. Ainsi, en regardant lors de la phase de transmission de données les pseudonymes utilisés en
en-tête, il est possible de relier les messages allant d’une même source à une même destination.

5.1.3 Performances
ANODR utilise de façon intensive le chiffrement et le déchiffrement, et cela pour tous les nœuds
du réseau lors d’un message RREQ et pour tous les nœuds participant à la route pour un message
RREP . Cela implique un temps de latence incompressible sur chaque nœud du réseau. De plus,
les messages ne sont pas de taille fixe. Ainsi, le champ onion grandit au fur et à mesure de la
traversée du réseau. Cela nécessite donc un temps de transmission plus important et donc une
consommation d’énergie elle aussi plus importante.

Notons qu’un autre protocole, le protocole AnonDSR [SKY05], très proche d’ANODR, tente
de corriger le problème de temps de latence et plus largement de performances en utilisant un
système d’index permettant d’éviter de tester l’ensemble des clés possédées par un nœud.

5.2 ASR
Comme ANODR, Le protocole ASR (Anonymous Secure Routing) [ZWK+ 04] repose sur l’uti-
lisation d’une trappe permettant de protéger l’identité du destinataire.
AMORES L3 – État de l’art des protocoles de routage
respectant la vie privée

L’originalité du protocole est de proposer une structure de données permettant de remplacer un


champ TTL (Time To Live) tout en empêchant les nœuds intermédiaires de déterminer la position
relative du nœud source. Traditionnellement, un TTL permet de détecter des boucles de routage
et de contrôler la distance parcourue par le message. Le TTL est aisé à mettre en œuvre : un
compteur est initialisé par l’expéditeur du message. Chaque nœud traitant le message décrémente
de un le compteur. Si le compteur arrive à zéro, le message est détruit. Malheureusement, le TTL
permet de connaitre le nombre de sauts (et donc la position relative) entre le nœud recevant le
message et le nœud source.
Les auteurs proposent d’utiliser un TTL sécurisé : seul le nœud destinataire peut connaitre le
nombre de sauts entre lui et la source. Chaque nœud intermédiaire va décaler de façon circulaire
le champ TTL de p bits (les p derniers bits devenant les p premiers bits). En connaissant le champ
original, il est possible de déterminer le nombre de sauts entre la source et la destination.
Une autre particularité du protocole est d’utiliser une fonction à sens unique rapide. Cette
fonction (notée H(key, data), key étant une clé et data les données) permet de tester rapidement
si un nœud doit router un message. Après la phase de découverte de route, les nœuds voisins ont
établi deux à deux une clé partagée.

5.2.1 Déroulement du protocole


Les auteurs supposent que les nœuds partagent deux à deux une clé. Ki,j est la clé partagée
par le nœud i et le nœud j.
L’ensemble des nœuds sur la route est numéroté de 0 à n, 0 étant le nœud source et n le nœud
destinataire. Ui représente la structure de données générée par le nœud i et KPi une clé publique
générée par le nœud i.

Demande de route

Le nœud 0 envoie un paquet de demande de route RREQ de la forme :

< RREQ, seq, {n, Ks , U0 }K0,n , {seq}Ks , KP0 , U0 >


– seq correspond au numéro de séquence correspondant à la requête. Cela permet aux nœuds
du réseau de vérifier rapidement s’ils ont déjà traité cette requête.
– l’identité du destinataire n, la clé de session Ks et le TTL sécurisé U0 représentent la trappe.
Celle-ci est chiffrée à l’aide de la clé partagée entre le nœud 0 et le nœud n (K0,n ).
– Ks est une clé de session choisie par le nœud source. Cette clé de session chiffre seq, évitant
ainsi l’injection de fausses requêtes dans le réseau.
– KP0 est une clé publique générée par le nœud source.
– U0 est un nombre aléatoire généré par le nœud source avec
size(U0 ) = (nombre_de_saut_maximum + 1) ∗ p, p étant un paramètre de l’algorithme.

Un nœud intermédiaire i reçoit le message RREQ organisé de la manière suivante :

< RREQ, seq, {n, Ks , U0 }K0,n , {seq}Ks , KPi−1 , Ui−1 >


Le nœud i vérifie dans un premier temps s’il a déjà traité le message. S’il n’a pas déjà traité
le message, le nœud vérifie s’il est le destinataire du message en ouvrant la trappe en testant
l’ensemble des clés partagées qu’il possède avec les autres nœuds du réseau. S’il n’est pas le
destinataire du message, il enregistre seq, KPi−1 , {seq}Ks dans la table de routage. Il génère
ensuite une clé publique temporaire KPi et génère Ui de la façon suivante :

Ui = (Ui−1 ⊕ Ni ) >> p
– Ni est un nombre aléatoire choisi par le nœud i et de taille p.
AMORES L3 – État de l’art des protocoles de routage
respectant la vie privée

– Ui−1 correspond au TTL reçu du nœud i − 1.


L’opération ⊕ représente un XOR (ou exclusif). L’opération XOR va donc modifier les p
derniers bits de Ui−1 . Puis le nœud effectue un décalage à droite circulaire de p bits (les p derniers
bits devenant les p premiers bits).
Enfin, il envoie le message suivant :

< RREQ, seq, {n, Ks , U0 }K0,n , {seq}Ks , KPi , Ui >

Le destinataire reçoit le message suivant :

< RREQ, seq, {n, Ks , U0 }K0,n , {seq}Ks , KPn−1 , Un−1 >

Il effectue dans un premier temps les mêmes vérifications qu’un nœud intermédiaire.
Une fois ces vérifications faites, il compare Un−1 et U0 en recherchant une suite de k ∗ p bits en
commun (avec k ∈ N) afin de déterminer si le nombre de saut est inférieur à la valeur maximale.
Si le nombre de saut est supérieur à la valeur maximale, alors le message est suprimé.

Réponse

Le nœud destinataire n, une fois qu’il a reçu un message de demande de route, envoie le message
suivant :

< RREP, {Nn }KPn−1 , {seq, Ks }Nn >


– Nn est une clé de chiffrement symétrique générée par le nœud destinataire n et utilisée pour
chiffrer le numéro de séquence seq et la clé de session Ks reçus dans le message RREQ.
– KPn−1 correspond à la clé publique générée par le nœud n − 1 présente dans le message
RREQ reçu par le destinataire.

Un nœud intermédiaire i reçoit le message de type RREP suivant :

< RREP, {Ni+1 }KPi , {seq, Ks }Ni+1 >

Il déchiffre dans un premier temps le premier champ du message en utilisant sa clé secrète KSi .
Si le déchiffrement réussit, Ni+1 est utilisé pour déchiffrer le deuxième champ. Il vérifie ensuite si
le message RREP vient bien du destinataire du message. Pour cela, le nœud chiffre seq avec la
clé de session Ks . Il compare ensuite ce résultat au champ {seq}Ks du message RREQ ayant pour
numéro de séquence seq (ces informations sont disponibles dans le cache du nœud). Si c’est bien
le destinataire qui envoie ce message RREP , le nœud i génère à son tour une clé aléatoire Ni et
envoie le message suivant :

< RREP, {Ni }KPi−1 , {seq, Ks }Ni >

Il enregistre ensuite dans sa table de routage (voir figure 4) les informations suivantes : seq,
KPi−1 , Ni , Ni+1 .

Le nœud source recevant un message RREP effectue les mêmes opérations qu’un nœud inter-
médiaire recevant un message RREP (nonobstant la diffusion d’un nouveau message RREP ).
AMORES L3 – État de l’art des protocoles de routage
respectant la vie privée

Table de routage du nœud i :

seq key_prev_hop {seq}Ks prev_hop(Ni ) next_hop(Ni+1 )

1 KPi−1 {1}alea3 alea1 alea2


... ... ... ... ...

Figure 4 – Table de routage du protocole ASR

Transfert de données

Lorsque le nœud source souhaite transmettre un message au nœud n, il préfixe le message par
le champ T AG, composé de la façon suivante :

T AG0 =< N ounce0 , H(N1 , N ounce0 ) >


– N ounce0 est un nombre aléatoire choisi par le nœud source.
– H est une fonction de hashage commune au différents nœuds du réseau.
Lorsque le nœud 1 reçoit le message et pour déterminer si le message lui est destiné, il vérifie
le champ T AG. Le nœud regarde ensuite dans sa table de routage, génère T AG2 et diffuse le
message. De proche en proche, le message est diffusé jusqu’au nœud n.
Ni étant un secret partagé entre le nœud i et le nœud i − 1, il peut être utilisé pour chiffrer la
charge utile du message.

5.2.2 Propriétés de respect de la vie privée


L’identité de la source, l’identité des nœuds intermédiaires et l’identité de la destination sont
protégées de par l’utilisation de clés publiques générées à la volée (servant donc de pseudonymes
temporaires).
L’inassociabilité source - position n’est pas assurée par le protocole. Un attaquant collusif actif
peut déterminer la position du nœud source en comparant deux TTL sécurisés.
L’inassociabilité nœuds intermédaires - position et l’inassociabilité destination - position ne
sont pas non plus assurées. Un attaquant global passif peut recueillir l’ensemble des TTL sécurisés
échangés pour une demande de route et en les comparant, reconstruire la topologie du réseau.
L’inassociabilité source - message et l’inassociabilité destination - message ne sont pas respec-
tées. En effet, le protocole est sensible à une attaque temporelle sur les messages.
L’inassociabilité message - message n’est pas assurée. Par construction du protocole, deux
messages portant le même T AG proviennent de la même source et va vers la même destination.

5.2.3 Performances
ASR utilise le chiffrement asymétrique pour la trappe et pour les messages de type RREP .
Cela sous-entend une tentative de déchiffrement par l’ensemble des nœuds. Or, le déchiffrement
asymétrique est lent et provoque une latence lors de la découverte de route.
L’utilisation du champ T AG utilisant la fonction à sens unique rapide permet néanmoins
d’accélérer la transmission des données par rapport à la phase de découverte de route en diminuant
le temps nécessaire au nœud pour déterminer si un message doit être routé ou pas.

5.3 SDAR
SDAR (Secure Distributed Anonymous Routing) [BEKXK04] utilise un routage en oignon, une
trappe cryptographique et un système de réputation. Un système de réputation consiste à noter
les différents participants sur leur comportement. Dans le protocole SDAR, le système de notation
AMORES L3 – État de l’art des protocoles de routage
respectant la vie privée

évalue le respect du protocole par les nœuds du réseau. Trois niveaux de confiance sont créés :
confiance faible, confiance moyenne et confiance forte. Un nœud peut décider, lors de l’envoi de la
découverte de route, du niveau de confiance voulue pour la communication.

5.3.1 Déroulement du protocole


L’originalité du protocole porte sur l’utilisation du routage en oignon. En effet, l’oignon cryp-
tographique n’est pas construit au fur et à mesure mais par le destinataire.
Le protocole fonctionne sur le principe de cellule (c’est-à-dire les nœuds voisins). Les nœuds
annoncent leurs présences en envoyant des messages HELLO. Un message envoyé par i contient la
clé publique KPi associée à la clé privée KSi du nœud i faisant parti d’une cellule. Dans celle-ci,
un nœud central génère les clés correspondant aux différents niveaux de confiance. Il s’occupe
ensuite de la diffusion de ces clés suivant le niveau de confiance de chaque nœud.
Les auteurs supposent l’existence d’une autorité de certification (CA) à l’extérieur du réseau
ad hoc. De plus, chaque nœud du réseau peut être identifié par son adresse IP sur le réseau ad
hoc.
Dans la suite, nous considérons que les échanges se réalisent entre des nœuds de même confiance.
Nous ne faisons donc pas apparaitre le chiffrement de la cellule dans les messages.

Découverte de route

Le nœud source 0 envoie un message de type RREQ :

< RREQ, trust, KPtemp , {n, Ks , size(padding)}KPn , padding,


{0, KP0 , KPtemp , KStemp , N0 , {msg0 }KS0 }Ks >

– trust correspond au niveau de confiance que veut le nœud source pour cette communication.
Ce champ peut prendre les valeurs suivantes : LOW , M EDIU M et HIGH.
– KPtemp et KStemp sont respectivement une clé publique et une clé privée temporaire.
– {n, Ks , size(padding)}KPn est la trappe cryptographique, avec n l’identité du nœud desti-
nataire, Ks une clé symétrique de session et size(padding) la taille du padding ajouté par
le nœud source.
– padding correspond à des bits aléatoires. Il permet de masquer aux autres nœuds le nombre
de nœuds ayant déjà traité le message.
– Le dernier champ du message permet de communiquer au destinataire les informations né-
cessaires pour la construction d’un oignon permettant ensuite de router correctement les
messages. Ce dernier champ contient une signature du message envoyé par le nœud concerné
(msg0 correspondant au message RREQ émit par le nœud 0).

Le nœud intermédiaire i reçoit le message RREQ suivant :

< RREQ, trust, KPtemp , {n, Ks , size(padding)}KPn , padding,


{0, KP0 , KPtemp , KStemp , N0 , {msg}KS0 }Ks ,
{1, K1 , N1 , {msg1 }KS1 }KPtemp ,
...
{i − 1, Ki−1 , Ni−1 , {msgi−1 }KSi−1 }KPtemp >

Le nœud intermédiaire vérifie dans un premier temps s’il a déjà traité le message en utilisant
KPtemp comme numéro de séquence unique. Si le message n’a pas déjà été traité, i vérifie s’il
est le destinataire du message en tentant de déchiffrer la trappe. S’il n’est pas le destinataire, il
AMORES L3 – État de l’art des protocoles de routage
respectant la vie privée

génère une clé Ki et un nombre aléatoire Ni . Il construit ensuite une nouveau champ contenant
les informations de routage, puis diffuse le message nouvellement créé :

< RREQ, trust, KPtemp , {n, Ks , size(padding)}KPn , padding,


{0, KP0 , KPtemp , KStemp , N0 , {msg}KS0 }Ks ,
{1, K1 , N1 , {msg1 }KS1 }KPtemp ,
...
{i − 1, Ki−1 , Ni−1 , {msgi−1 }KSi−1 }KPtemp ,
{i, Ki , Ni , {msgi }KSi }KPtemp >
Enfin, il enregistre dans sa table de routage (voir figure 5) Ni , i − 1, et Ki .

Le nœud destinataire n reçoit le message suivant :

< RREQ, trust, KPtemp , {n, Ks , size(padding)}KPn , padding,


{0, KP0 , KPtemp , KStemp , N0 , {msg}KS0 }Ks ,
{1, K1 , N1 , {msg1 }KS1 }KPtemp ,
...
{n − 1, Kn−1 , Nn−1 , {msgn−1 }KSn−1 }KPtemp >
Comme un nœud intermédiaire, le nœud destinataire vérifie s’il a déjà traité la requête et s’il
est le destinataire du message. En déchiffrant la trappe, il accède à la clé de session lui permettant
d’accéder ensuite à la clé secrète KStemp , lui permettant de déchiffrer les informations de routage.

Réponse

Pour la réponse, la destination construit un oignon contenant le chemin de retour (c’est-à-dire


les informations de routage présentes dans le message RREQ dans le sens inverse) et envoie un
message de type RREP (pour simplifier l’explication du protocole dans ce document, les hash des
messages permettant d’assurer l’intégrité n’apparaissent pas) :

< RREP, {. . . {{{{N1 , K1 , . . . , Nn−1 , Kn−1 , Kn , size(padding), padding}K0 ,


N0 , N−1 }K1 , N1 , N−1 }, N2 , N1 }K2 . . .}Kn−1 , Nn−1 >
– N −1 correspond à un nombre aléatoire généré par le nœud n

Un nœud intermédiaire i reçoit :

< RREP, {. . . {{{{N1 , K1 , . . . , Nn−1 , Kn−1 , Kn , size(padding), padding}K0 ,


N0 , N−1 }K1 , N1 , N−1 }, N2 , N1 }K2 . . .}Ki , Ni >
En utilisant la table de routage et le nombre aléatoire Ni , i peut déterminer si le message lui
est destiné. Si c’est le cas, il récupère dans sa table de routage la clé Ki lui permettant de déchiffrer
une couche de l’oignon. Il diffuse ensuite le résultat de ce déchiffrement :

< RREP, {. . . {{{{N1 , K1 , . . . , Nn−1 , Kn−1 , Kn , size(padding), padding}K0 ,


N0 , N−1 }K1 , N1 , N−1 }, N2 , N1 }K2 . . .}Ki−1 , Ni−1 >
AMORES L3 – État de l’art des protocoles de routage
respectant la vie privée

Table de routage du nœud i :

Ni prev_hop key_current_hop

alea1 i−1 Ki
... ... ...

Figure 5 – Table de routage du protocole SDAR

Le nœud source reçoit :

< RREP, {N1 , K1 , . . . , Nn−1 , Kn−1 , Kn , size(padding), padding}K0 , N0 , N−1 >


Il déchiffre à l’aide de la clé K0 . Il obtient ainsi l’identité et les clés de chiffrement de l’ensemble
des nœuds sur la route.

Transmission de données

Pour la transmission de données, le nœud source utilise l’identité des nœuds et les clés pour
construire un routage en oignon. Lorsqu’un nœud intermédiaire reçoit un message, il déchiffre la
couche externe et diffuse le contenu ainsi déchiffré.

5.3.2 Propriétés de respect de la vie privée


L’identité de la source, par construction, est assurée lors des échanges de messages. En effet,
l’idendité est chiffrée durant les échanges et seul le destinataire à connaissance de l’identité du
nœud source.
L’identité des nœuds intermédiaires n’est pas assurée par le protocole, le destinataire et la
source ayant connaissance des identités des nœuds intermédiaires.
L’identité de la destination est protégée par l’utilisation d’une trappe cryptographique.
L’inassociabilité source - position, l’inassociabilité destination - position et l’inassociabilité
nœuds intermédiaires - position ne sont pas des propriétés du protocole. La liste des nœuds pré-
sents dans les messages RREQ et RREP est ordonnée, permettant ainsi à la source de connaitre
la position relative du destinataire, à la destination de connaitre la position relative de la source
et enfin à la source et à la destination de connaitre la position relative de tous les nœuds intermé-
diaires. Une autre technique permettant la découverte de la position des nœuds consiste à observer
la taille changeante des messages RREQ et RREP , le padding ne permettant pas de compenser
le changement de taille (la taille du padding étant une valeur fixée dans la trappe).
L’inassociabilité source - message et l’inassociabilité destination - message ne sont pas assurées.
Le protocole est en effet sensible à une attaque temporelle.
L’inassociabilité message - message est assurée par l’utilisation d’un oignon pour le transfert
de données.

5.3.3 Performances
L’utilisation du chiffrement asymétrique et du chiffrement symétrique impliquent des délais
d’attente importants pour la négociation d’une route. De plus, comme un oignon est utilisé pour les
données, chaque nœud doit déchiffrer sa couche, le message diminuant en taille au fur et à mesure.
La différence de taille entre le message original et le message dans l’oignon cryptographique peut
être importante, impactant ainsi l’utilisation de la bande passante.
AMORES L3 – État de l’art des protocoles de routage
respectant la vie privée

5.4 ARM
Le protocole ARM [SP09] repose sur l’utilisation d’un routage en oignon, de la notion de trappe
et d’une méthode originale pour limiter la diffusion des messages en utilisant un TTL aléatoire.
ARM utilise des valeurs aléatoires suivant une loi de distribution choisie par les auteurs pour
initialiser et mettre à jour le TTL. La loi de distribution est choisie pour permettre à la valeur du
TTL de diminuer.

5.4.1 Description
Dans ARM, chaque nœud possède une identité permanente connue des autres nœuds ainsi
qu’une clé publique KPi . De plus, le nœud source 0 et le nœud destinataire n partagent une
clé symétrique K0,n et un pseudonyme secret P seudo0,n . Chaque nœud du réseau définit avec
ses voisins une clé de broadcast. Dans la suite et par soucis de lisibilité, cette clé de broadcast
n’apparaitra pas dans les échanges de messages. Les auteurs proposent d’utiliser le key management
scheme de Seys et Preneel [SP05].

Découverte de route

Le nœud source envoie un paquet de type RREQ pour initier la découverte de route :

< RREQ, P seudo0,n , ttl0 , KPn , trapdoordest , {N0 , K0 }P Kn >


– ttl0 est le TTL aléatoire.
– KPn (et KSn ) est une clé publique temporaire (respectivement clé privée) générée par le
nœud source pour communiquer avec le nœud destinataire.
– trapdoordest correspond à la trappe cryptographique. Elle est construite de la façon suivante :

trapdoordest = {n, K, KSn }K0,n , {P seudo0,n }K


– n est l’identité permanente du nœud destinataire.
– K est clé de session générée par le nœud source.
– N0 est un nombre aléatoire généré par le nœud source
– K0 est une clé symétrique temporaire générée par la source.
N0 et K0 sont chiffrés avec la clé publique KPn du destinataire. Ces valeurs serviront lors du
transfert de données pour identifier et pour chiffrer les communications entre le nœud source et le
nœud suivant sur la route. Lors de la diffusion du message RREQ, le dernier champs du message
RREQ contiendra la route en construction pour aller du nœud source au nœud destination.

Lorsqu’un nœud intermédiaire i reçoit le message suivant :

< RREQ, P seudo0,n , ttli−1 , KPn , trapdoordest , {{{N0 , K0 }P Kn , N1 , K1 }P Kn . . . Ni−1 , Ki−1 }P Kn >
Il vérifie tout d’abord si P seudo0,n fait partie de sa liste de pseudonyme, indiquant qu’il est
potentiellement le destinataire du message. Si le test est réussi, le nœud tente d’ouvrir la trappe
en utilisant sa clé K0,n . S’il n’est pas le destinataire du message, i regarde s’il n’a pas déjà traité
le message en utilisant ses tables de routage. Enfin, il vérifie la valeur du TTL aléatoire. Si celle-ci
est supérieure à 1, Le nœud va diffuser le message, en modifiant ttli et en mettant à jour le champ
contenant la route en y ajoutant Ni et Ki :

< RREQ, P seudo0,n , ttli , KPn , trapdoordest ,


{{{{N0 , K0 }P Kn , N1 , K1 }P Kn . . . Ni−1 , Ki−1 }P Kn , Ni , Ki }P Kn >
Enfin, il enregistre les informations suivantes dans sa table de routage (voir figure 6) P seudo0,n ,
Ni , Ki et {P seudo0,n }K .
AMORES L3 – État de l’art des protocoles de routage
respectant la vie privée

Le nœud destinataire reçoit le message suivant :

< RREQ, P seudo0,n , ttl, KPn , trapdoordest , {{{N0 , K0 }P Kn , N1 , K1 }P Kn . . . Nn−1 , Kn−1 }P Kn >

Le destinataire effectue les mêmes vérifications que les nœuds intermédiaires. Il diffuse ensuite :

< RREQ, P seudo0,n , ttl, KPn , trapdoordest , random >


random est un nombre aléatoire de taille suffisante pour qu’il soit impossible de distinguer
random du champ normalement émis si le nœud n n’était pas le nœud destinataire.

Réponse

À l’aide de la clé privée présente dans la trappe, le nœud destinataire accède à la liste des
pseudonymes et des clés de chiffrement des nœuds présents sur la route. n génère alors un message
de type RREP , qu’il chiffre avec la clé de broadcast définie avec les nœuds voisins :

< RREP, P seudo0,n , ttln , {Nn−1 , H(Kn−2 ), K, . . . {N0 , K}K0 }Kn−1 }


– H(Kn−2 ) permet au nœud n − 1 de partager un secret commun avec le nœud n − 2.
– H est une fonction de hachage commune à tous les nœuds du réseau.

Le nœud intermédiaire i reçoit un message de la forme :

< RREP, P seudo0,n , ttli+1 , {Ni , H(Ki−1 ), K, . . . {N0 , K}K0 }Ki }


En utilisant P seudo0,n comme un numéro unique, le nœud vérifie s’il a déjà reçu ce message.
Si le test réussit ou s’il n’a pas reçu le message RREQ correspondant à ce message RREP , il
envoie :

< RREP, P seudo0,n , ttli , random >


Ce message permet d’éviter à un attaquant global de pouvoir déterminer la route en observant
la propagation des messages RREP .
Si le message RREP correspond à un message RREQ et si c’est la première fois que le message
RREP est reçu, le nœud déchiffre la première couche de l’oignon en vérifiant que le premier champ
correspond bien à Ni . Il vérifie ensuite que le message provient bien du nœud destinataire en
déchiffrant à l’aide de K la valeur {P seudo0,n }K et en la comparant avec le pseudonyme présent
dans le message. Si les deux valeurs sont égales, alors le nœud destinataire connait bien la clé K
et a donc bien déchiffré la trappe. Enfin, i transmet le message suivant :

< RREP, P seudo0,n , ttli , {Ni−1 , H(Ki−2 ), K, . . . {N0 , K}K0 }Ki−1 }


et stocke dans une autre table de routage les informations nécessaires (voir figure 6).

Le nœud source reçoit le message RREP suivant :

< RREP, P seudo0,n , ttl1 , {N0 , K}K0 >


Il vérifie la bonne ouverture de la trappe en vérifiant K. Enfin, il stocke dans la table de routage
et dans le cache les informations nécessaires pour le routage.
AMORES L3 – État de l’art des protocoles de routage
respectant la vie privée

Transmission de données

La transmission de messages consiste à utiliser les secrets partagés entre deux nœuds successifs
et un compteur comme identifiant de messages. Le contenu du message est chiffré à l’aide des
secrets partagés. tables de routage.

Cache du nœud i :

pseudo0,n Ni key_current_hop {pseudo0,n }K

1 alea1 Ki {1}K
... ... ... ...

Table de routage du nœud i :

key_prev_hop key_next_hop id_prev_hop id_next_hop

Ki−1 Ki+1 {c}Ki−1 {c0 }Ki+1


... ... ... ...

Figure 6 – Table de routage du protocole ARM

5.4.2 Propriétés de respects de la vie privée


L’identité de la source et l’identité des nœuds intermédiaires ne sont pas divulguées car le
protocole utilise des pseudonymes aléatoires temporaires (différents pour chaque nouvelle requête).
L’identité de la destination est protégée par l’utilisation d’une trappe cryptographique.
L’inassociabilité source - position, l’inassociabilité destination - position et l’inassociabilité
nœuds intermédiaires - position ne sont pas assurées. En effet, la destination possède la liste
ordonnée de l’ensemble des nœuds participants. De plus, un attaquant global passif peut déterminer
la zone de départ des messages RREP (bien que ce travail soit plus difficile avec la propagation
de bruits).
L’inassociabilité source - message et l’inassociabilité destination - message ne sont pas des
propriétés du protocole, celui-ci étant sensible aux attaques temporelles.
L’inassociabilité message - message n’est pas assurée, le protocole ne créant qu’une seule route
pour une même source vers une même destination. À noter que le principe de compteur rend plus
difficile ce genre d’attaques.

5.4.3 Performances
ARM utilise le chiffrement au niveau local (diffusion en broadcast) et un chiffrement pour les
informations de routage. Le chiffrement au niveau local implique un déchiffrement / chiffrement
pour chaque nœud. De plus, les auteurs n’ayant pas précisé quels algorithmes étaient utilisés, cela
rend difficile l’évaluation de l’impact du chiffrement sur les performances du protocole.

5.5 MASK
Le protocole MASK [ZLLF06] utilise trois concepts pour protéger la vie privée : pseudony-
misation des liens, MIX-net et multichemin. La notion de MIX-net dans MASK est similaire à
celle proposée par Chaum, avec une nuance : ce n’est pas le nœud source qui choisit la route à
AMORES L3 – État de l’art des protocoles de routage
respectant la vie privée

suivre et qui chiffre le message mais les différents nœuds intermédiaires. Ainsi, il n’y a pas d’oignon
cryptographique dans MASK.
Trois tables sont utilisées par le protocole de routage : Forwarding Route Table (FRT), Reverse
Route Table (RRT) et Target LinkID Table (TLT) (voir figure 7).
L’authentification mutuelle entre deux nœuds prend en compte l’existence de plusieurs réseaux
adhoc déconnectés les uns des autres. Afin d’éviter toute fuite d’information, un nœud ne peut
déterminer de quel groupe est un autre nœud (nonobstant l’appartenance des deux nœuds au
même groupe). Pour réaliser cela, les auteurs utilisent le principe de pairing-based cryptography.

5.5.1 Déroulement du protocole


Si les deux nœuds font partie du même groupe, alors après l’authentification mutuelle, les deux
l
nœuds partagent la même clé. Cette clé partagée permet de dériver une clé de session K1,2 et un
identifiant du lien L1,2 . l représente le numéro de la clé ou le numéro de l’identifiant. Ainsi, Ll1,2
l

représente le leme lien entre le nœud 1 et le nœud 2. En se synchronisant, les nœuds peuvent ainsi
changer régulièrement de clé et d’identifiant.
Les auteurs supposent l’existence d’une autorité de confiance avant la création du MANET.
Cette autorité détermine les paramètres publics nécessaires pour le fonctionnement de MASK.

Découverte de route

Le nœud source 0 envoie un message RREQ :

< RREQ, idRREQ , n, seqdest , P0 >


– idRREQ est l’identifiant unique de la requête.
– n correspond à l’identité réelle de la destination.
– seqdest est un numéro de séquence propre à la destination.
– P0 est un pseudonyme temporaire du nœud source.

Le nœud intermédiaire i reçoit le message RREQ suivant :

< RREQ, idRREQ , n, seqdest , Pi−1 >


Il vérifie dans un premier temps s’il est le nœud destinataire. Si il n’est pas le destinataire mais
qu’il connait une route pour atteindre celui-ci, le nœud envoie un message RREP de la forme :

< Lα
i−1,i , {RREP, n, seqdest + 1}Ki−1,i
α >
– Lαi−1,i est un pseudonyme temporaire entre le nœud i et i − 1.
α
– Ki−1,1 est une clé symétrique temporaire entre le nœud i et i − 1.
– α est un compteur permettant d’incrémenter les pseudonymes et les clés symétriques tem-
poraires.
Lα α
i−1,i et Ki−1,i sont générés à partir de l’authentification mutuelle entre le nœud i et le nœud
i − 1.

Si i ne connait pas de route, il diffuse le message suivant :

< RREQ, idRREQ , n, seqdest , Pi >


Puis enregistre dans sa RRT n, seqdest et Pi−1 .

Le destinataire reçoit :
AMORES L3 – État de l’art des protocoles de routage
respectant la vie privée

< RREQ, idRREQ , n, seqdest , Pn−1 >


Il effectue les mêmes vérifications qu’un nœud intermédiaire. Il va ensuite diffuser le message,
en remplacant le pseudonyme temporaire par un des siens :

< RREQ, idRREQ , n, seqdest , Pn >

Réponse

Le nœud n peut maintenant répondre à la demande de route. En utilisant Pn−1 et l’authenti-


fication mutuelle, il récupère Lβn,n−1 et Kn,n−1
β
. Il envoie ensuite le message RREP suivant :

< Lβn−1,n , {RREP, n, seqdest + 1}K β >


n−1,n

Il enregistre ensuite Lβ+1


n−1,n dans sa TLT, lui permettant dans le futur de déterminer plus
rapidement s’il est destinataire d’un message.

Le nœud intermédiaire i reçoit le message de type RREP suivant :

< Lγi+1,i , {RREP, n, seqdest + 1}Ki+1,i


γ >

À partir de Lγi+1,i , i détermine la clé à utiliser pour déchiffrer le message. Il peut ainsi regarder
seqdest afin de déterminer s’il faut enregistrer une nouvelle entrée dans la FRT (s’il n’y a pas
d’entrée déjà existante ou de numéro de séquence égal) ou, si une entrée existe déjà (le numéro de
séquence réçu étant plus récent), la mettre à jour. Une entrée dans la FRT se présente de la façon
γ
suivante : n, seqdest , Lα i−1,i et Li,i+1 (respectivement l’identifiant du lien entre le nœud i − 1 et i
et l’identifiant du lien entre le nœud i et i + 1).
Le nœud détermine ensuite l’identifiant de lien et la clé de chiffrement à utiliser pour le prochain
saut. Pour cela, il recherche l’identifiant de la destination et le numéro de séquence dans sa RRT.
Il peut ainsi accèder au pseudonyme Pi−1 du nœud lui ayant envoyé le message. Ce pseudonyme
permet de déterminer, à l’aide de l’authentification mutuelle, l’identifiant du lien (Lα i−1,i ) et la clé
α
(Ki−1,i ) à utiliser. Le nœud intermédiaire peut ensuite envoyer le message suivant :

< Lα
i−1,i , {RREP, n, seqdest + 1}Ki−1,i
α >

Le nœud source reçoit le message suivant

< Lδ1,0 , {RREP, n, seqdest + 1}K1,0


δ >
et réalise le même traitement que lorsqu’un nœud intermédiaire reçoit un message de type
RREP . Mais puisque sa RRT est vide, il enregistre dans sa FRT les informations suivantes : n,
seqdest , null, Lδ1,0 .

Transmission de données

Après la phase de la découverte de route, une ou plusieurs routes totalement disjointes existent
entre le nœud source et le nœud destination. Tous les nœuds intermédiaires disposent grâce à
la FRT de l’identifiant du lien précédent et de l’identifiant du lien suivant. Un nœud peut ainsi
simplement remplacer l’identifiant et diffuser le message. Il est aussi possible d’utiliser la clé liée
à l’identifiant de lien pour chiffrer les données. Un message transportant les données ressemblera
alors à :
AMORES L3 – État de l’art des protocoles de routage
respectant la vie privée

< Li−1,i , {data}Ki−1,i


 >

Reverse Route Table (RRT) du nœud i :

destination seqdest prev_hop

n 1 Pi−1
... ... ...

Forwarding Route Table (FRT) du nœud i :

destination seqdest LinkID_prev_hop LinkID_next_hop

n 1 Li−1,i Li,i+1
... ... ... ...

Target LinkID Table (TLT) du nœud i :

LinkID_last_hop

Figure 7 – Tables de routage du protocole MASK

5.5.2 Propriétés de respect de la vie privée


L’identité de la source et l’identité des nœuds intermédiaires sont assurées par l’utilisation de
pseudonymes temporaires.
L’identité de la destination n’est pas protégée par le protocole. En effet, l’identité de la desti-
nation est envoyée en clair sur le réseau.
L’inassociabilité source - position et l’inassociabilité destination - position ne sont pas des
propriétées du protocole. Un attaquant global passif peut écouter l’ensemble du traffic et déter-
miner la topographie du réseau. Pour une communication donnée, deux points de convergences
apparaissent : le nœud source et le nœud destination.
L’inassociabilité nœuds intermédiaires - position semble protégée. Aucune attaque précédente
ne fonctionne pour déterminer la position d’un nœud intermédiaire.
L’inassociabilité source - message et l’inassociabilité destination - message sont des propriétés
du protocole. En effet, Les attaques temporelles ne sont pas possible, le MIX-Net évitant une
corrélation entre un message arrivant et un message sortant.
L’inassociabilité message - message est assurée par le MIX-Net utilisé dans MASK et par la
création de plusieurs chemins.

5.5.3 Performances
Les auteurs de MASK utilisent RC6 comme algorithme de chiffrement symétrique. Le chiffre-
ment implique un temps de latence pour chaque nœud, temps nécessaire pour le chiffrement /
déchiffrement. Cependant, l’utilisation du chiffrement symétrique permet de limiter le temps de
latence. Une des forces de ce protocole est qu’il est résistant à la forte mobilité des nœuds et à la
congestion réseau. Cela repose sur l’utilisation de plusieurs chemins. Ainsi, pour une destination
AMORES L3 – État de l’art des protocoles de routage
respectant la vie privée

choisie, plusieurs circuits sont possibles. Si un nœud participant au premier circuit devient indis-
ponible, il est possible très rapidement d’utiliser le deuxième circuit. Ce choix aléatoire permet de
diluer le trafic sur une partie du réseau, et non pas sur un seul chemin.

6 Conclusion
L’ensemble des protocoles étudiés vise à protéger la vie privée. La figure 8 propose sous forme
de tableau l’ensemble des propriétés que doivent assurer les nœuds. Malheureusement, aucun des
protocoles ad hoc étudiés ne permet d’assurer un respect de la vie privée à l’ensemble des nœuds
du réseau.

ANODR ASR SDAR ARM MASK


√ √ √ √ √
identité de la source
√ √ √ √
identité de la destination ×
√ √ √ √
identité des nœuds intermédiaires ×
inassociabilité source - position × × × × ×
inassociabilité destination - position × × × × ×

inassociabilité nœuds intermédiaires - position × × × ×

inassociabilité source - message × × × ×

inassociabilité destination - message × × × ×
√ √
inassociabilité message - message × × ×

Figure 8 – Tableau récapitulatif du respect de la vie privée des protocoles analysés

Références
[BEKXK04] A. Boukerche, K. El-Khatib, L. Xu, and L. Korba. A novel solution for achieving
anonymity in wireless ad hoc networks. In Proceedings of the 1st ACM internatio-
nal workshop on Performance evaluation of wireless ad hoc, sensor, and ubiquitous
networks, pages 30–38. ACM, 2004.
[Cha81] D.L. Chaum. Untraceable electronic mail, return addresses, and digital pseudonyms.
Communications of the ACM, 24(2) :84–90, 1981.
[DMS04] R. Dingledine, N. Mathewson, and P. Syverson. Tor : The second-generation onion
router. Technical report, DTIC Document, 2004.
[GKdPC10] Sébastien Gambs, Marc-Olivier Killijian, and Miguel Núñez del Prado Cortez. Show
me how you move and i will tell you who you are. In Proceedings of the 3rd ACM
SIGSPATIAL International Workshop on Security and Privacy in GIS and LBS,
SPRINGL ’10, pages 34–41, New York, NY, USA, 2010. ACM.
[GRS96] D. Goldschlag, M. Reed, and P. Syverson. Hiding routing information. In Information
Hiding, pages 137–150. Springer, 1996.
[KH03] Jiejun Kong and Xiaoyan Hong. Anodr : anonymous on demand routing with untra-
ceable routes for mobile ad-hoc networks. In Proceedings of the 4th ACM international
symposium on Mobile ad hoc networking & computing, MobiHoc ’03, pages 291–302,
New York, NY, USA, 2003. ACM.
[LG00] S.J. Lee and M. Gerla. Aodv-br : Backup routing in ad hoc networks. In Wireless
Communications and Networking Conference, 2000. WCNC. 2000 IEEE, volume 3,
pages 1311–1316. Ieee, 2000.
[LLZ06] W. Lou, W. Liu, and Y. Zhang. Performance optimization using multipath rou-
ting in mobile ad hoc and wireless sensor networks. Combinatorial optimization in
communication networks, pages 117–146, 2006.
AMORES L3 – État de l’art des protocoles de routage
respectant la vie privée

[PHDK05] Andreas Pfitzmann, Marit Hansen, Tu Dresden, and Uld Kiel. Anonymity, unlinkabi-
lity, unobservability, pseudonymity, and identity management a consolidated proposal
for terminology. Technical report, 2005.
[SKY05] Ronggong Song, Larry Korba, and George Yee. Anondsr : Efficient anonymous dy-
namic source routing for mobile ad-hoc networks. In Proceedings of the 2005 ACM
Workshop on Security of Ad Hoc and Sensor Networks (SASN 2005), 2005.
[SP05] S. Seys and B. Preneel. The wandering nodes : Key management for low-power
mobile ad hoc networks. In Distributed Computing Systems Workshops, 2005. 25th
IEEE International Conference on, pages 916–922. IEEE, 2005.
[SP09] S. Seys and B. Preneel. Arm : Anonymous routing protocol for mobile ad hoc net-
works. International Journal of Wireless and Mobile Computing, 3(3) :145–155, 2009.
[ZLLF06] Y. Zhang, W. Liu, W. Lou, and Y. Fang. Mask : Anonymous on-demand rou-
ting in mobile ad hoc networks. Wireless Communications, IEEE Transactions on,
5(9) :2376–2385, 2006.
[ZWK+ 04] B. Zhu, Z. Wan, M.S. Kankanhalli, F. Bao, and R.H. Deng. Anonymous secure
routing in mobile ad-hoc networks. In Local Computer Networks, 2004. 29th Annual
IEEE International Conference on, pages 102–108. IEEE, 2004.