Livrable AMORES. AMORES L3 État de l art des protocoles de routage respectant la vie privée

Documents pareils
TD n o 8 - Domain Name System (DNS)

Les réseaux ad hoc : problèmes de sécurité et solutions potentielles

Sauvegarde collaborative entre pairs Ludovic Courtès LAAS-CNRS

Les Réseaux sans fils : IEEE F. Nolot

Gestion des Clés. Pr Belkhir Abdelkader. 10/04/2013 Pr BELKHIR Abdelkader

Master e-secure. VoIP. RTP et RTCP

DHCP et NAT. Cyril Rabat Master 2 ASR - Info Architecture des réseaux d entreprise

Routage AODV. Languignon - Mathe - Palancher - Pierdet - Robache. 20 décembre Une implémentation de la RFC3561

Algorithmique répartie

Sécurité des réseaux IPSec

Cours 14. Crypto. 2004, Marc-André Léger

Devoir Surveillé de Sécurité des Réseaux

IPv6. Lab 1: Installation IPv6. Objectif: Installation sous Windows XP

Le service IPv4 multicast pour les sites RAP

DIGITAL NETWORK. Le Idle Host Scan

Le protocole SSH (Secure Shell)

Protocole de configuration dynamique des hôtes pour IPv6 (DHCPv6)

2. MAQUETTAGE DES SOLUTIONS CONSTRUCTIVES. 2.2 Architecture fonctionnelle d un système communicant.

Skype (v2.5) Protocol Data Structures (French) Author : Ouanilo MEDEGAN

Routeur Chiffrant Navista Version Et le protocole de chiffrement du Réseau Privé Virtuel Navista Tunneling System - NTS Version 3.1.

CRYPTOGRAPHIE. Chiffrement par flot. E. Bresson. SGDN/DCSSI Laboratoire de cryptographie

Certificats (électroniques) : Pourquoi? Comment? CA CNRS-Test et CNRS

Réseaux grande distance

Charte d installation des réseaux sans-fils à l INSA de Lyon

Le Multicast. A Guyancourt le

Multicast & IGMP Snooping

L identité numérique. Risques, protection

TP 2 Réseaux. Adresses IP, routage et sous-réseaux

La sécurité dans un réseau Wi-Fi

Cryptographie et fonctions à sens unique

Gestion et Surveillance de Réseau

Dynamic Host Configuration Protocol

Introduction. Adresses

Cryptologie. Algorithmes à clé publique. Jean-Marc Robert. Génie logiciel et des TI

Cours n 12. Technologies WAN 2nd partie

Gilles GUETTE IRISA Campus de Beaulieu, Rennes Cedex, France

Rappels réseaux TCP/IP

Chapitre 1 Le routage statique

Sécurité des réseaux Les attaques

M1 Informatique, Réseaux Cours 9 : Réseaux pour le multimédia

UFR de Mathématiques et Informatique Année 2009/2010. Réseaux Locaux TP 04 : ICMP, ARP, IP

ÉPREUVE COMMUNE DE TIPE Partie D

Cisco Certified Network Associate

Plan. Programmation Internet Cours 3. Organismes de standardisation

I.1. Chiffrement I.1.1 Chiffrement symétrique I.1.2 Chiffrement asymétrique I.2 La signature numérique I.2.1 Les fonctions de hachage I.2.

Fax sur IP. Panorama

TAGREROUT Seyf Allah TMRIM

AEROHIVE NETWORKS PRIVATE PRESHARED KEY. Le meilleur compromis entre sécurité et souplesse d utilisation pour l accès aux réseaux Wi-Fi OCTOBRE 2009

Windows Internet Name Service (WINS)

Les Protocoles de sécurité dans les réseaux WiFi. Ihsane MOUTAIB & Lamia ELOFIR FM05

Sommaire Introduction Les bases de la cryptographie Introduction aux concepts d infrastructure à clés publiques Conclusions Références

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

Sécurisez votre serveur Web Internet Information Services de Microsoft (MS IIS) avec un certificat numérique de thawte thawte thawte thawte thawte

Livre blanc. Sécuriser les échanges

Ebauche Rapport finale

Fonctionnement et mise en place d un reverse proxy sécurisé avec Apache. Dimitri ségard 8 mai 2011

SYSTEME DE GESTION DES ENERGIES EWTS EMBEDDED WIRELESS TELEMETRY SYSTEM

Le protocole sécurisé SSL

Réseaux IUP2 / 2005 IPv6

Protocoles cryptographiques

Petite introduction aux protocoles cryptographiques. Master d informatique M2

REALISATION d'un. ORDONNANCEUR à ECHEANCES

Gestion des clés cryptographiques

Cryptographie. Master de cryptographie Architectures PKI. 23 mars Université Rennes 1

Windows Server 2008 Sécurité ADMINISTRATION ET CONFIGURATION DE LA SECURITE OLIVIER D.

IPSEC : PRÉSENTATION TECHNIQUE

Compte-rendu du TP n o 2

Programme des Obligations d épargne du Canada. Guide d utilisation du serveur FTPS. Version 2.4

Réseaux - Cours 3. BOOTP et DHCP : Amorçage et configuration automatique. Cyril Pain-Barre. IUT Informatique Aix-en-Provence

Rappel: Le routage dans Internet. Contraintes. Environnement et contraintes. La décision dans IP du routage: - Table de routage:

ETUDE DES MODELES DE CONFIANCE

Configuration automatique

Cisco Discovery - DRSEnt Module 7

La sécurité dans les grilles

Systèmes et algorithmes répartis

Cryptographie. Cours 3/8 - Chiffrement asymétrique

L3 informatique Réseaux : Configuration d une interface réseau

Administration des ressources informatiques

Gestion des Clés Publiques (PKI)

Communications collectives et ordonnancement en régime permanent pour plates-formes hétérogènes

Master d'informatique 1ère année. Réseaux et protocoles. Architecture : les bases

RAPPORT DE STAGE DE MASTER INFORMATIQUE DE L UNIVERSITE PIERRE ET MARIE CURIE Sécurité des infrastructures critiques.

DIFF AVANCÉE. Samy.

Protocoles d authentification

Sécuriser le routage sur Internet

Aristote Groupe PIN. Utilisations pratiques de la cryptographie. Frédéric Pailler (CNES) 13 janvier 2009

SSL ET IPSEC. Licence Pro ATC Amel Guetat

Environnement pour le calcul pair à pair

WiFI Sécurité et nouvelles normes

Architecture TCP/IP. Protocole d application. client x. serveur y. Protocole TCP TCP. TCP routeur. Protocole IP IP. Protocole IP IP.

Sécurité des réseaux Firewalls

Probabilités sur un univers fini

VOIP. QoS SIP TOPOLOGIE DU RÉSEAU

Signature électronique. Romain Kolb 31/10/2008

module Introduction aux réseaux DHCP et codage Polytech / 5

La couche réseau Le protocole X.25

FICHE PRODUIT COREYE CACHE Architecture technique En bref Plateforme Clients Web Coreye Cache applicative Références Principe de fonctionnement

Programmation parallèle et distribuée

Outline. Comment rester anonyme? Comment cacher son adresse. Motivations. Emmanuel Benoist. Chargé de cours Université de Lausanne.

Transcription:

Livrable AMORES AMORES L3 État de l art des protocoles de routage Date : 31 octobre 2012 Auteurs : Simon Boche, Christophe Bidan, Gilles Guette, Nicolas Prigent Titre : AMORES L3 État de l art des protocoles de routage Rapport No. / Version : 3/ 1 Statut : Final LAAS-CNRS 7 avenue du Colonel Roche 31077 Toulouse cedex 4, France http://www.laas.fr/ Supélec - Rennes Avenue de la Boulaie, BP 81127, 35511 Cesson-Sévigné, France http://www.supelec.fr/ IRISA CNRS, INRIA, Université de Rennes 1, 263, Avenue du Général Leclerc, Bat12 35042 Rennes Cedex, France http://www.irisa.fr/ MobiGIS Rue de l Autan 31330 Grenade, France http://www.mobigis.fr/ Tisséo 7, esplanade Compans-Caffarelli 31902 Toulouse CEDEX 9 http://www.tisseo.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 informations 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 routage 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

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é : covoiturage 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 communication 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 cryptographiques 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 explicitons 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 notion 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

Confidentiel CPP AMORES L3 État de l art des protocoles de routage Définition 5 Anonymat de l émetteur : l émetteur d un message est anonyme si cet émetteur n est pas identifiable 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éanmoins, 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 position 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.

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 identifier 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é. Malheureusement, 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 malveillant, 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 intermé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

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éordonnancement 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.

(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.

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 forcè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 cryptographique (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 KS i et une clé publique KP i. 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 K i.

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, tr dest, onion 0 = {N 0 } 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. tr dest est la trappe que seul le nœud destinataire peut ouvrir. Elle est construite de la façon suivante : tr dest = {n, N tr } KPn N tr 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. onion 0 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 N 0 ) et chiffre le tout avec une clé de session K 0 connue seulement du nœud. Le nœud 0 étant le premier, il n y a pas d oignon déjà existant. N 0 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, tr dest, onion i 1 = {N i 1, {N..., {N 0 } 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 : onion i = {N i, onion i 1 } Ki Le nœud i peut ensuite diffuser le message RREQ suivant : < RREQ, Seqnum, tr dest, onion i > Il enregistre enfin le nombre aléatoire N i 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, P n, pr dest = N tr, onion n 1 > P n est le pseudonyme global unique du nœud n, le nœud destinataire. pr dest la preuve de l ouverture de la trappe, autrement dit le nombre aléatoire N tr généré précédemment par le nœud source.

le champ onion n 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 : prev_hop(p i ) next_hop(p i+1 ) alea 1 alea 2...... Cache numéro de séquence : Seqnum 1... Cache nombre aléatoire : N i key_current_hop alea 3 K i...... 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, P i+1, pr dest, onion i > Il déchiffre dans un premier temps le champ onion i avec sa clé personnelle K i puis compare le résultat à la valeur N i, 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 P i+1 par son pseudonyme P i et enregistre dans sa table de routage les informations nécessaires (voir figure 3). Il remplace ensuite le champ onion i par le champ onion i 1, obtenu lors du déchiffrement d onion i. Il transmet ensuite le message ainsi modifié : < RREP, P i, pr dest, onion i 1 > Le nœud source 0 reçoit le message RREP suivant : < RREP, P 1, pr dest, onion 0 > Tout comme un nœud intermédiaire, le nœud source déchiffre onion 0 et vérifie si le résultat fourni est égal à N 0. Il vérifie ensuite l ouverture de la trappe à l aide de pr dest. 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 P 1 reçu lors de la phase de découverte de route puis

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 P 1 par le pseudonyme P 2. 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 pseudonymes 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 utilisation d une trappe permettant de protéger l identité du destinataire.

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é. K i,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. U i représente la structure de données générée par le nœud i et KP i 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, K s, U 0 } K0,n, {seq} Ks, KP 0, U 0 > 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 K s et le TTL sécurisé U 0 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 (K 0,n ). K s 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. KP 0 est une clé publique générée par le nœud source. U 0 est un nombre aléatoire généré par le nœud source avec size(u 0 ) = (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, K s, U 0 } K0,n, {seq} Ks, KP i 1, U i 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, KP i 1, {seq} Ks dans la table de routage. Il génère ensuite une clé publique temporaire KP i et génère U i de la façon suivante : U i = (U i 1 N i ) >> p N i est un nombre aléatoire choisi par le nœud i et de taille p.

U i 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 U i 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, K s, U 0 } K0,n, {seq} Ks, KP i, U i > Le destinataire reçoit le message suivant : < RREQ, seq, {n, K s, U 0 } K0,n, {seq} Ks, KP n 1, U n 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 U n 1 et U 0 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, {N n } KPn 1, {seq, K s } Nn > N n 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 K s reçus dans le message RREQ. KP n 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, {N i+1 } KPi, {seq, K s } Ni+1 > Il déchiffre dans un premier temps le premier champ du message en utilisant sa clé secrète KS i. Si le déchiffrement réussit, N i+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 K s. 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 N i et envoie le message suivant : < RREP, {N i } KPi 1, {seq, K s } Ni > Il enregistre ensuite dans sa table de routage (voir figure 4) les informations suivantes : seq, KP i 1, N i, N i+1. Le nœud source recevant un message RREP effectue les mêmes opérations qu un nœud intermédiaire recevant un message RREP (nonobstant la diffusion d un nouveau message RREP ).

Table de routage du nœud i : seq key_prev_hop {seq} Ks prev_hop(n i ) next_hop(n i+1 ) 1 KP i 1 {1} alea3 alea 1 alea 2............... 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 AG 0 =< Nounce 0, H(N 1, Nounce 0 ) > Nounce 0 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 AG 2 et diffuse le message. De proche en proche, le message est diffusé jusqu au nœud n. N i é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 respecté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

é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 cryptographique 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 KP i associée à la clé privée KS i 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, KP temp, {n, K s, size(padding)} KPn, padding, {0, KP 0, KP temp, KS temp, N 0, {msg 0 } 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, MEDIUM et HIGH. KP temp et KS temp sont respectivement une clé publique et une clé privée temporaire. {n, K s, size(padding)} KPn est la trappe cryptographique, avec n l identité du nœud destinataire, K s 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é (msg 0 correspondant au message RREQ émit par le nœud 0). Le nœud intermédiaire i reçoit le message RREQ suivant : < RREQ, trust, KP temp, {n, K s, size(padding)} KPn, padding, {0, KP 0, KP temp, KS temp, N 0, {msg} KS0 } Ks, {1, K 1, N 1, {msg 1 } KS1 } KPtemp,... {i 1, K i 1, N i 1, {msg i 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 KP temp 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

génère une clé K i et un nombre aléatoire N i. Il construit ensuite une nouveau champ contenant les informations de routage, puis diffuse le message nouvellement créé : < RREQ, trust, KP temp, {n, K s, size(padding)} KPn, padding, {0, KP 0, KP temp, KS temp, N 0, {msg} KS0 } Ks, {1, K 1, N 1, {msg 1 } KS1 } KPtemp,... {i 1, K i 1, N i 1, {msg i 1 } KSi 1 } KPtemp, {i, K i, N i, {msg i } KSi } KPtemp > Enfin, il enregistre dans sa table de routage (voir figure 5) N i, i 1, et K i. Le nœud destinataire n reçoit le message suivant : < RREQ, trust, KP temp, {n, K s, size(padding)} KPn, padding, {0, KP 0, KP temp, KS temp, N 0, {msg} KS0 } Ks, {1, K 1, N 1, {msg 1 } KS1 } KPtemp,... {n 1, K n 1, N n 1, {msg n 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 KS temp, 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, {... {{{{N 1, K 1,..., N n 1, K n 1, K n, size(padding), padding} K0, N 0, N 1 } K1, N 1, N 1 }, N 2, N 1 } K2...} Kn 1, N n 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, {... {{{{N 1, K 1,..., N n 1, K n 1, K n, size(padding), padding} K0, N 0, N 1 } K1, N 1, N 1 }, N 2, N 1 } K2...} Ki, N i > En utilisant la table de routage et le nombre aléatoire N i, 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é K i lui permettant de déchiffrer une couche de l oignon. Il diffuse ensuite le résultat de ce déchiffrement : < RREP, {... {{{{N 1, K 1,..., N n 1, K n 1, K n, size(padding), padding} K0, N 0, N 1 } K1, N 1, N 1 }, N 2, N 1 } K2...} Ki 1, N i 1 >

Table de routage du nœud i : N i prev_hop key_current_hop alea 1 i 1 K i......... Figure 5 Table de routage du protocole SDAR Le nœud source reçoit : < RREP, {N 1, K 1,..., N n 1, K n 1, K n, size(padding), padding} K0, N 0, N 1 > Il déchiffre à l aide de la clé K 0. 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.

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 KP i. De plus, le nœud source 0 et le nœud destinataire n partagent une clé symétrique K 0,n et un pseudonyme secret P seudo 0,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 seudo 0,n, ttl 0, KP n, trapdoor dest, {N 0, K 0 } P Kn > ttl 0 est le TTL aléatoire. KP n (et KS n ) 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. trapdoor dest correspond à la trappe cryptographique. Elle est construite de la façon suivante : trapdoor dest = {n, K, KS n } K0,n, {P seudo 0,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. N 0 est un nombre aléatoire généré par le nœud source K 0 est une clé symétrique temporaire générée par la source. N 0 et K 0 sont chiffrés avec la clé publique KP n 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 seudo 0,n, ttl i 1, KP n, trapdoor dest, {{{N 0, K 0 } P Kn, N 1, K 1 } P Kn... N i 1, K i 1 } P Kn > Il vérifie tout d abord si P seudo 0,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é K 0,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 ttl i et en mettant à jour le champ contenant la route en y ajoutant N i et K i : < RREQ, P seudo 0,n, ttl i, KP n, trapdoor dest, {{{{N 0, K 0 } P Kn, N 1, K 1 } P Kn... N i 1, K i 1 } P Kn, N i, K i } P Kn > Enfin, il enregistre les informations suivantes dans sa table de routage (voir figure 6) P seudo 0,n, N i, K i et {P seudo 0,n } K.

Le nœud destinataire reçoit le message suivant : < RREQ, P seudo 0,n, ttl, KP n, trapdoor dest, {{{N 0, K 0 } P Kn, N 1, K 1 } P Kn... N n 1, K n 1 } P Kn > Le destinataire effectue les mêmes vérifications que les nœuds intermédiaires. Il diffuse ensuite : < RREQ, P seudo 0,n, ttl, KP n, trapdoor dest, 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 seudo 0,n, ttl n, {N n 1, H(K n 2 ), K,... {N 0, K} K0 } Kn 1 } H(K n 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 seudo 0,n, ttl i+1, {N i, H(K i 1 ), K,... {N 0, K} K0 } Ki } En utilisant P seudo 0,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 seudo 0,n, ttl i, 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 à N i. Il vérifie ensuite que le message provient bien du nœud destinataire en déchiffrant à l aide de K la valeur {P seudo 0,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 seudo 0,n, ttl i, {N i 1, H(K i 2 ), K,... {N 0, 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 seudo 0,n, ttl 1, {N 0, 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.

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 : pseudo 0,n N i key_current_hop {pseudo 0,n } K 1 alea 1 K i {1} K............ Table de routage du nœud i : key_prev_hop key_next_hop id_prev_hop id_next_hop K i 1 K i+1 {c} Ki 1 {c } 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 : pseudonymisation 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 à