Académique Documents
Professionnel Documents
Culture Documents
Page 1
MEMOIRE
présenté à
en vue de l’obtention
par
Omar Cheikhrouhou
: ﺔ ﺻ ﻼ ﺧ ﻟا
ﻋﻮرﺷﻣﻟا اذھ ﻲﻓﺔﻣﻼﺳ ﺔﺳارد ﯽﻟإتﺎﮐﺑﺷ ﻛﻮﮬﺪأ ﮭﻟ وذتﺎﻣﺟﮭﻟا دﯾدﻌﺗﺑ ﺎﻧﻣﻗ ﺿﺮﻐﻟا ا ﺎﻧ ﻗ ر طﺗ
ةدوﺟوﻣﻟا ﻟﻮﻟﺣﻟا ﺔﺳاردﺑ ﺎﻧﻣﻗ و ﺔﻟﻣﺗﺣﻣﻟاﺔﻧﯾﺎﻌﻣو بﯾرﺟﺗﻟ ﺔﯾﺿارﺗﻓا ﺔﮐﺑﺷ. ﻊﺿوﺑ ﺎﻧﻣﻗ ﺎﻣﮐ
. تﺎﻣﺟﮭﻟا و ﻟﻮﻟﺣﻟاةرﺎﺗﺧﻣﻟا
Résumé :
Dans ce projet de fin d’études, nous nous sommes focalisés sur l’étude de la sécurité des
réseaux ad hoc. Une analyse de la sécurité nous a permis d'énumérer les menaces et les
attaques potentielles. Nous avons aussi étudié les solutions existantes pour augmenter la
sécurité. Enfin, nous avons mis en place une plateforme virtuelle de simulation pour
montrer l’impact des nœuds malicieux sur les performances du réseau.
Abstract:
In this project, we are interested in the survey of the security of Ad Hoc networks. An
analysis of the security permitted us to enumerate threats and the potential attacks. We
studied also the existing solutions to increase ad hoc security. Finally, we made a virtual
platform in order to simulate the impact of malicious node and the selected solutions.
Mes vifs remerciements pour les membres du projet EcoMESH pour les discussions
au cours des visio-conférences et en particulier Mme Virginie Galtier pour son aide durant
la phase d’implémentation et Bachar Wehbi pour sa bonne humeur.
Enfin, j’ajouterai un remerciement spécial pour mon père, ma mère, mes sœurs et
mon frère Belhassen ainsi que les membres de la famille pour leur aide et leur patience.
Omar
II
Page 4
Sommaire
Introduction ............................................................................................................................. 1
Chapitre 1 : Les réseaux sans fil.............................................................................................. 2
1 Introduction ..................................................................................................................... 2
2 Les différents types de réseaux sans fil ........................................................................... 2
2.1 Réseaux personnels sans fil ..................................................................................... 2
2.2 Réseaux locaux sans fil (norme IEEE 802.11)........................................................ 3
2.3 Réseaux métropolitains sans fil (norme IEEE 802.16) ........................................... 3
2.4 Réseaux étendus sans fil.......................................................................................... 4
3 Classification des réseaux Wi-Fi ..................................................................................... 4
3.1 Les réseaux sans infrastructure................................................................................ 4
3.1.1 Les réseaux ad hoc........................................................................................... 4
3.2 Les réseaux avec infrastructure ............................................................................... 5
Les réseaux Mesh ............................................................................................................ 6
4 Conclusion.......................................................................................................................7
Chapitre 2 : La cryptographie.................................................................................................. 8
1 Introduction ..................................................................................................................... 8
2 Terminologie ................................................................................................................... 8
3 Chiffrement symétrique ou à clef secrète........................................................................ 9
3.1 Algorithmes de chiffrement par blocs ..................................................................... 9
3.1.1 Le mode ECB (Electronic CodeBook) ............................................................ 9
3.1.2 Le mode CBC (Cipher Block Chaining) ....................................................... 10
3.1.3 Chiffrement par blocs avec itération ............................................................. 11
3.2 Algorithmes de chiffrement en continu................................................................. 12
4 Chiffrement asymétrique ou a clef publique ................................................................. 12
5 Algorithmes cryptographiques à clef secrète ................................................................ 13
5.1 DES (Data Encryption Standard) .......................................................................... 13
5.2 AES (Advanced Encryption Standard).................................................................. 15
6 Algorithmes cryptographiques à clef publique.............................................................. 15
7 Fonctions de hachage .................................................................................................... 16
8 Echange de clef.............................................................................................................. 18
9 Conclusion.....................................................................................................................20
Chapitre 3 : Sécurité des réseaux ad hoc ............................................................................... 21
1 Introduction ................................................................................................................... 21
2 Les caractéristiques des réseaux ad hoc ........................................................................ 21
3 Analyse de sécurité........................................................................................................ 22
3.1 Fonctions et données à protéger ............................................................................ 22
3.2 Services de sécurité ............................................................................................... 22
3.3 Vulnérabilité des réseaux ad hoc........................................................................... 23
3.4 Les attaques dans les réseaux ad hoc..................................................................... 24
4 Conclusion.....................................................................................................................25
III
Page 5
IV
Page 6
Glossaire ................................................................................................................................ 70
Annexe A : Rappels mathématiques...................................................................................... 77
1 Arithmétique sur les entiers........................................................................................... 77
2 Logarithme discret......................................................................................................... 78
3 Totient d’Euler............................................................................................................... 78
Annexe B : Protocole AODV ................................................................................................ 79
1 Découverte de route....................................................................................................... 79
2 Maintenance des routes ................................................................................................. 81
Annexe C : Protocole DSR.................................................................................................... 82
1 Découverte de route....................................................................................................... 82
2 Maintenance des routes ................................................................................................. 83
Annexe D : Configuration du noyau UML............................................................................ 84
Annexe E : Installation de AODV-UU.................................................................................. 87
Page 7
VI
Page 8
Introduction
Les technologies sans fil occupent aujourd’hui une place prépondérante dans notre
vie professionnelle et personnelle et nous permettent de cumuler, de traiter et de distribuer
de l’information d’une manière ubiquitaire.
Les réseaux Mesh présentent une technologie émergente qui permet de déployer à
moindre coût un réseau sans fil. Afin d’étendre la zone de couverture d’un réseau Mesh, le
projet EcoMESH (site web : http://ecoMesh.objectis.net) vise à se servir des ressources
d’utilisateurs. Ces utilisateurs vont collaborer pour le relayage du trafic d’un utilisateur plus
éloigné et donc lui permettre d’accéder au réseau. Cette collaboration va créer un réseau de
type ad hoc.
Les caractéristiques des réseaux ad hoc, comme l’absence d’infrastructure et
l’utilisation d’un canal radio rendent la sécurité un véritable défi technologique auquel nous
sommes confrontés.
Ce projet de fin d’études entre dans ce contexte et il s’intéresse à l’étude de la
sécurité des réseaux ad hoc pour l’extension des réseaux Mesh.
Ce rapport est organisé comme suit : dans le premier chapitre, nous présentons les
différents types de réseaux sans fil ainsi qu’une classification de ces réseaux. Comme on ne
peut pas parler de la sécurité sans parler de la cryptographie, le deuxième chapitre donne un
aperçu sur les techniques cryptographiques utilisées pour assurer les services de sécurité.
Une analyse de sécurité dans laquelle nous avons énuméré les attaques et les menaces
possibles sera décrite dans le chapitre trois. Le quatrième chapitre s’intéresse aux attaques
liées aux protocoles du routage. Une description des solutions proposées pour augmenter le
niveau de sécurité des réseaux ad hoc fait l’objectif du cinquième chapitre. Enfin, le dernier
chapitre présente notre plateforme virtuelle de simulation ainsi que ses différentes étapes
d’installation et de configuration sous le système d’exploitation Linux. Les résultats de
simulation sont aussi décrits dans ce chapitre.
Page 9
1 Introduction
En raison de leur facilité de déploiement et de leur coût relativement faible, les réseaux
sans fil sont de plus en plus utilisés. Ce chapitre donne un aperçu sur les différents types des
réseaux sans fil. Il définit aussi les réseaux ad hoc qui seront étudiés tout au long de ce
rapport.
les réseaux locaux WLAN (Wireless Local Area Networks), les réseaux métropolitains
WMAN (Wireless Metropolitan Area Networks) et les réseaux nationaux WWAN (Wireless
Wide Area Networks).
➢ ZigBee : avec un débit plus faible que Bluetooth, la norme IEEE 802.15.4
(ZigBee) pourrait être très utilisée dans les années à venir. Les équipementsZigBee moins
consommateurs et moins onéreux que les équipements Bluetooth devraient trouver leur
Page 10
caractéristiques des réseaux sans fil et est équivalente à la norme IEEE 802.3 E
( thernet)
pour les réseaux filaires.
En fait, la norme IEEE 802.11 est la norme initiale à partir de laquelle un certain nombre de
normes dérivées ont été créées afin de répondre à des objectifs d'interopérabilité ou de
sécurité [11]. Les normes dérivées les plus connues aujourd'hui sont les normes IEEE
802.11a, IEEE 802.11b, IEEE 802.11g, IEEE 802.11i, et prochainement IEEE 802.11n.
2.3 Réseaux métropolitains sans fil (norme IEEE 802.16)
La B.L.R. (Boucle Locale Radio) fait partie des réseaux sans fil de typeWMAN. La BLR
est une technologie sans fil capable de relier les opérateurs de télécommunication à leurs
clients grâce aux ondes radio sur des distances de plusieurs kilomètres. Les réseaux sans fil
de type WMAN sont en train de se développer. Ce phénomène risque de s'amplifier dans les
années à venir. La norme IEEE 802.16, est plus connue sous son nom commercial WiMax.
Techniquement, le WiMax permet des débits de l'ordre de 70Mbps avec une portée de
l'ordre de 50km. Actuellement, le WiMax peut exploiter les bandes de fréquence 2.4Ghz,
3.5Ghz et 5.8Ghz. Aujourd'hui, en France, la bande de fréquence 2.4Ghz est libre, la bande
de fréquence 5.8Ghz est interdite en utilisation extérieure et la bande des 3.5Ghz est
licenciée à un unique opérateur.
Page 11
Les réseaux ad hoc font partie des réseaux fonctionnant en mode sans infrastructure. De
tels réseaux ont pour particularité de s’auto créer, s’auto organiser et s’auto administrer : il
s’agit de réseaux autonomes et très dynamiques.
3.1.1.1 Définition
Un réseau mobile ad hoc, appelé généralement MANET (Mobile ad hoc NETwork),
consiste en une grande population, relativement dense, d'unités mobiles qui se déplacent
dans un territoire quelconque et dont le seul moyen de communication est l'utilisation des
interfaces sans fil, sans l'aide d'une infrastructure préexistante ou administration centralisée.
Page 12
Page 13
d’infrastructure sont établis en utilisant des points d’accès, ou AP (Access Point), qui jouent
le rôle de station de base pour une cellule de base, appelée BSS (Basic Set Service).
Un point d'accès sur un réseau sans fil équivaut à un concentrateur (hub) sur un réseau
filaire. Chaque terminal sans fil reçoit donc tout le trafic circulant sur le réseau.
Lorsque le réseau est composé de plusieurs BSS, chacun d’eux est relié à un système de
distribution, ou DS (Distribution System), par l’intermédiaire de leur point d’accès (AP)
respectif. Un groupe de BSS interconnectés par un système de distribution forme un ESS
(Extented Set Service). Le système de distribution est responsable du transfert des paquets
entre différents BSS d’un même ESS.
Les points d'accès peuvent être reliés entre eux par des liaisons radio ou filaires et un
terminal peut alors passer d'un point d'accès à un autre en restant sur le même réseau.
Dans le cas où les points d’accès sont des routeurs radio (reliés par des liaisons radio),
le réseau est appelé un réseau maillé (mesh network).
Pour que deux mobiles puissent communiquer, il suffit que les stations de base auxquelles
ils sont rattachés puissent communiquer. Dans la figure 2, lorsque le mobile A souhaite
6
Page 14
communiquer avec le mobile B, la station de base SB1 transmet via son interface radio le
message à la station SB2, qui à son tour retransmet le message à la station SB3, qui
finalement émet son message au destinataire, le mobile B. Enfin, il suffit que l'une des
stations de base soit reliée à un réseau filaire pour permettre à l’ensemble des nœuds du
réseau l'accès à ce réseau filaire - voire à Internet via ce dernier.
4 Conclusion
Les réseaux mobiles offrent une grande flexibilité de déploiement et sont de plus en
plus utilisés. Ils peuvent être classés selon leur domaine de couverture. Nous distinguons
aussi deux modes de fonctionnement : le mode avec infrastructure et celui sans
infrastructure. Dans ce qui suit, nous nous intéressons à ce dernier mode. Les réseaux
fonctionnant avec ce mode sont appelés réseaux ad hoc.
Page 15
Chapitre 2 : La cryptographie
1 Introduction
Ce chapitre présente quelques concepts cryptographiques utilisés pour sécuriser les
communications réseaux. Il décrit, dans une première partie, les différents algorithmes de
chiffrement rencontrés dans un environnement informatique moderne. Ensuite, il présente
les fonctions de hachage utilisées pour assurer l’authentification. La dernière partie présente
un exemple d’algorithmes d’échange de clefs.
2 Terminologie
La cryptographie est l'étude des méthodes permettant de transmettre des données de
manière confidentielle. Afin de protéger un message, on lui applique une transformation qui
le rend incompréhensible ; c’est ce qu'on appelle lechiffrement, qui, à partir d'un texte en
Décryptage
Page 16
décryptage est l'action consistant à retrouver le texte en clair sans connaître la clef de
déchiffrement.
cryptographie et la cryptanalyse.
sont identiques : c’est la clef secrète, connue des tiers communicants et d’eux seuls, et qui
doit être gardée secrète. Le procédé de chiffrement est dit symétrique.
➢ les algorithmes de chiffrement en continu, qui agissent sur chaque bit du texte en
clair.
➢ les algorithmes de chiffrement par blocs, qui opèrent sur le texte en clair par
groupes de bits appelés blocs.
Block Chaining).
mode est qu'un même bloc de texte en clair sera toujours chiffré en un même bloc de texte
9
Page 17
chiffré. Or, dans le chiffrement sur un réseau par exemple, les données à chiffrer ont des
structures régulières facilement repérables par un cryptanalyste, qui pourra donc obtenir
beaucoup d'informations. D'autre part, un attaquant actif pourra facilement manipuler les
messages chiffrés en retirant, répétant ou interchangeant des blocs. Un autre inconvénient,
qui s'applique au chiffrement par blocs en général, est l'amplification d’erreur : si un bit du
texte chiffré est modifié pendant le transfert, tout le bloc de texte en clair correspondant sera
faux.
En mode de "chiffrement avec chaînage de blocs" (Cipher Block Chaining), chaque bloc de
texte en clair est combiné par ou exclusif avec le bloc chiffré précédent avant d'être chiffré.
Le premier bloc du texte en clair est, quant à lui, combiné avec un bloc appelé vecteur
d'initialisation (figure 4). L'utilisation d'un vecteur d'initialisation différent pour chaque
message permet de s'assurer que deux messages identiques (ou dont les premiers blocs sont
identiques) donneront des cryptogrammes totalement différents.
10
Page 18
Sécurité des réseaux ad hoc Cheikhrouhou Omar
Un cas particulier d'algorithmes de chiffrement par blocs avec itération est la famille des
chiffres de Feistel. Dans un chiffre de Feistel, un bloc de texte en clair est découpé en deux ;
la transformation de ronde est appliquée à une des deux moitiés, et le résultat est combiné
avec l'autre moitié par ou exclusif. Les deux moitiés sont alors inversées pour l'application
de la ronde suivante (figure 5).
Page 19
Ils sont aussi utilisés lorsque l'information ne peut être traitée qu'avec de petites quantités
de symboles à la fois, comme par exemple si l'équipement n'a pas de mémoire physique ou
une mémoire tampon très limitée [10].
problèmes mathématiques difficiles à résoudre, donc leur sécurité est conditionnée par
ces problèmes, sur lesquels on a maintenant une vaste expertise. Mais, si quelqu'un trouve
un jour le moyen de simplifier la résolution d'un de ces problèmes, l'algorithme
correspondant s'écroulera.
distinctes et ne peuvent se déduire l'une de l'autre. On peut donc rendre l'une des deux
publique tandis que l'autre reste privée. C’est pourquoi on parle de chiffrement à clef
publique. Si la clef publique sert au chiffrement, tout le monde peut chiffrer un message,
que seul le propriétaire de la clef privée pourra déchiffrer. On assure ainsi la confidentialité.
Certains algorithmes permettent d'utiliser la clef privée pour chiffrer. Dans ce cas, tout
utilisateur pourra déchiffrer, mais seul le propriétaire de la clef privée peut chiffrer. Cela
permet donc d’authentifier l’origine d’un message.
La cryptographie à clef publique possède ici un avantage majeur sur la cryptographie à clef
secrète. En effet, si n utilisateurs souhaitent communiquer par le biais d'un cryptosystème à
12
Page 20
clef secrète, chacun d’eux doit disposer d'une clef différente par personne du groupe. Il faut
donc pouvoir gérer en tout n(n-1)/2 clefs. Sachant que n peut être de l'ordre de plusieurs
milliers, il faut gérer des fichiers de plusieurs millions de clefs. De plus, ajouter un
utilisateur au groupe n’est pas une mince affaire, puisqu'il faut alors engendrer n clefs pour
que le nouvel utilisateur puisse communiquer avec les autres membres du groupe, puis
distribuer les nouvelles clefs à tout le groupe. En revanche, dans le cas d'uncryptosystème
asymétrique, on stocke les n clefs publiques des utilisateurs dans un annuaire. Pour rajouter
un utilisateur, il suffit qu'il mette sa clef publique dans l'annuaire.
13
Page 21
A chaque itération, le bloc de données est divisé en deux parties (les 32 bits les plus à
gauche et les 32 bits les plus à droite), puis combiné avec une sous-clef de 48 bits
conformément à l'équation suivante :
Ln = Rn-1 (1)
Avec Ln les 32 bits les plus à gauche à la nième itération, Rn les 32 bits les plus à droite à la
n ième itération et F fonction de chiffrement (figure 6).
14
Page 22
Texte en clair
de 128 bits
⊕ F F ... F
Texte chiffré
de 128 bits
K0 K1 K2 K10
figure 7. En premier lieu, on ajoute bit à bit le message avec la clef secrèteK0. Puis, comme
pour tous les algorithmes de chiffrement par blocs, on itère une fonction F, paramétrée par
des sous-clefs qui sont obtenues de la clef maître par un algorithme de cadencement de
clefs.
Dans le cas d'AES, on itère 10 fois la fonctionF.
La fonction F, itérée lors du chiffrement, prend en entrée des blocs de 128 bits répartis sur
16 octets. Tout d'abord, on applique à chaque octet la même permutationS. Ensuite on
applique aux 16 octets une seconde permutation P. Au résultat obtenu, on ajoute alors bit à
bit la sous-clef de 128 bits obtenue par l'algorithme de cadencement de clef.
15
Page 23
n = pq. n est rendu public ; p et q doivent rester secrets et sont donc détruits une fois
les clefs générées.
2. On choisit ensuite aléatoirement une clef publique e telle que e et (p-1)(q-1) soient
premiers entre eux.
mod n.
7 Fonctions de hachage
Pour assurer l’authentification et l’intégrité des données, on utilise les fonctions de
hachage. Une fonction de hachage produit à partir d’un texte de taille variable une sortie de
16
Page 24
taille fixe. Cette sortie est souvent appelée résumé ou empreinte. Une fonction de hachage
doit être sans collision, c'est-à-dire qu’il n’y a pas deux messages ayant la même empreinte.
Cela signifie que la moindre modification du message entraîne la modification de son
empreinte, ce qui assure l’intégrité. De plus une fonction de hachage est à sens unique car il
est facile de calculer l’empreinte mais il est impossible de retrouver le message à partir de
son empreinte.
cette opération est appelé signature numérique (figure 9). En effet seul le propriétaire de la
clef privée peut générer la signature et tout le monde peut la vérifier en utilisant la clef
publique.
17
Page 25
La
figure 10 présente une technique qui utilise une fonction de hachage avec aucun chiffrement
pour l’authentification de message. Cette technique suppose que les parties en
communication, soient A et B, partagent une valeur secrète SAB. Lorsque A veut envoyer un
message à B, il applique la fonction de hachage sur la concaténation de la valeur secrète et
du message : le résultat MD=H(SAB||M) sera envoyé avec le message. Puisque B possède
SAB il peut recalculer H (SAB || M) et vérifie MD.
8 Echange de clef
Le but des protocoles d’échange de clef est d’établir une clef secrète commune entre les
parties communicantes. Cette clef peut ensuite être utilisée pour le chiffrement des données.
Parmi les protocoles d’échange de clefs on peut citer celui inventé par Diffie et Hellman, ce
protocole permet à deux entités de générer un secret partagé sans avoir aucune information
préalable l'une sur l'autre. Il est basé sur la cryptologie à clef publique (dont il est d'ailleurs à
l'origine), car il fait intervenir des valeurs publiques et des valeurs privées. Sa sécurité
18
Page 26
dépend de la difficulté de calculer des logarithmes discrets sur un corps fini. Le secret
généré à l'aide de cet algorithme peut ensuite être utilisé pour dériver une ou plusieurs clefs.
➢ Alice et Bob se mettent d'accord sur un grand entiern tel que (n-1)/2 soit premier et
➢ Alice choisit de manière aléatoire un grand nombre entiera, qu'elle garde secret, et
calcule sa valeur publique, A = g a
mod n.
b
Bob fait de même et génère b et B = g mod n.
a b
Une personne qui écoute la communication connaît g, n, A=g mod n et B=g mod n, ce qui
ab
ne lui permet pas de calculer g mod n : il lui faudrait pour cela calculer le logarithme deA
ou B pour retrouver a ou b.
Voici un exemple, dans lequel l’échange de clefs est basé sur l’utilisation du nombre
premier n=71 et une racine première de 71, dans ce cas g=7. Alice et Bob choisissent des
clefs privées a=5 et b=12. Chacun calcule sa clef publique :
Page 27
➢ En authentifiant les valeurs publiques après les avoir échangées, en les signant par
exemple. Cette méthode est utilisée entre autres par le protocole Photuris.
L'inconvénient, dans les deux cas, est que l'on perd un gros avantage de Diffie–Hellman, qui
est la possibilité de générer un secret partagé sans aucune information préalable sur
l'interlocuteur.
9 Conclusion
Ce chapitre présente la cryptographie de façon succincte, mais il permet néanmoins de
donner une vision globale sur les mécanismes cryptographiques utilisées pour assurer la
sécurité des réseaux.
Page 28
1 Introduction
La sécurité des réseaux ad hoc présente un défi. En effet ces derniers possèdent des
caractéristiques qui les rendent plus vulnérables aux attaques. Dans ce chapitre, nous
énumérons ces caractéristiques et les vulnérabilités induites ainsi que les attaques possibles.
➢ Une topologie dynamique : Les unités mobiles du réseau, se déplacent d'une façon
libre et arbitraire. Par conséquent, la topologie du réseau peut changer, à des instants
imprévisibles, d'une manière rapide et aléatoire. Les liens de la topologie peuvent être unis
ou bidirectionnels.
➢ Une bande passante limitée : Une des caractéristiques primordiales des réseaux
basés sur la communication sans fil est l'utilisation d'un médium de communication partagé.
Ce partage fait que la bande passante réservée à un hôte soit modeste.
➢ Des contraintes d'énergie : Les hôtes mobiles sont alimentés par des sources
d'énergie autonomes comme les batteries ou les autres sources consommables. Le paramètre
d'énergie doit être pris en considération dans tout contrôle fait par le système.
➢ Une sécurité physique limitée : Les réseaux mobiles ad hoc sont plus touchés par
le paramètre de sécurité, que les réseaux filaires classiques. Cela se justifie par les
contraintes et limitations physiques qui font que le contrôle des données transférées doit être
minimisé.
21
Page 29
3 Analyse de sécurité
L’analyse de sécurité consiste à déterminer les valeurs à protéger, les risques potentiels
sur ces valeurs ainsi que les capacités réelles des attaquants. Il faut envisager toutes les
attaques possibles, mais on doit considérer que la capacité des attaquants est limitée pour
aboutir à des solutions réalisables.
Comme les réseaux fixes, un réseau ad hoc doit garantir la validité et l’intégrité des
informations transmises.
Chaque nœud d’un réseau ad hoc se comporte comme un routeur. Ainsi, il participe dans la
découverte des routes et échange des informations de routage avec les autres nœuds du
réseau. Supposons qu’un nœud malicieux réussit à introduire des informations de routage
invalides alors tout le réseau tombe en panne (les nœuds n’arrivent pas à communiquer). Le
routage est donc une fonction sensible qu’il faut protéger pour garantir la disponibilité du
réseau.
Les informations relatives au routage comme les nœuds accessibles et les métriques
associées aux routes, les informations relatives aux mécanismes de configuration et les
informations personnelles des utilisateurs sont considérées comme des données sensibles
qu’il faut protéger [12].
d’accès donne aux nœuds légitimes un moyen de détecter les messages provenant de sources
externes au réseau [8].
22
Page 30
• Confidentialité : assurer que l'information ne peut pas être interprétée par des tiers
non autorisés. Les informations de routage doivent aussi, dans certains cas, rester secrètes.
message.
• Fraîcheur : garantir que les données présentes échangées sur le réseau sont viables.
Les réseaux ad hoc présentent quelques faiblesses. Certaines faiblesses sont liées à la
technologie sans fil, d’autres aux caractéristiques de ces réseaux.
La première vulnérabilité de ces réseaux est liée à la technologie sans fil sous-jacente. En
effet l’utilisation d’un canal radio favorise l’écoute et la perturbation des messages échangés
par tout noeud possédant le récepteur adéquat même s’il se trouve dans un lieu public, à
l’extérieur du bâtiment où se déroulent les échanges.
Les nœuds sont aussi des points de vulnérabilité du réseau. En effet, un attaquant peut
compromettre un terminal laissé sans surveillance.
L’absence d’infrastructure fixe est une autre faiblesse des réseaux ad hoc car elle rend
impossible l’utilisation d’une entité centrale pour la gestion des accès aux ressources du
réseau.
23
Page 31
Parmi les attaques actives les plus connues, on peut citer [8, 12, 13] :
24
Page 32
Sécurité des réseaux ad hoc Cheikhrouhou Omar
➢ Attaque par chantage : Elle est connue sous le nom anglais de Blackmail attack
[3,14]. Un nœud malicieux fait annoncer qu’un autre nœud légitime est malicieux pour
éliminer ce dernier du réseau. Si le nœud malicieux arrive à attaquer un nombre important
de nœuds, il pourra perturber le fonctionnement du réseau.
➢ Attaque de l’inondation de HELLO : De nombreux protocoles de routage utilisent
des paquets « HELLO » pour découvrir les noeuds voisins et ainsi établir une topologie du
réseau. La plus simple attaque pour un intrus consiste à envoyer un flot de tels messages
pour inonder le réseau et empêcher d’autres messages d’être échangés. De plus, s’il parvient
à émettre à une portée suffisante, des noeuds distants vont ajouter l’intrus comme noeud
voisin dans leurs routes et fausser ainsi complètement le routage de l’information dans le
réseau.
➢ Brouillage radio : Il consiste à perturber le canal radio en envoyant des
informations inutiles sur la bande de fréquences utilisées. Ce brouillage peut être
temporaire, intermittent ou permanent.
De même, son champ d’action doit être pris en compte ; son effet est-il limité à quelques
noeuds ou est-il suffisamment puissant pour bloquer le réseau tout entier ?
➢ Privation de mise en veille : Elle a pour but de consommer toutes les ressources de
la victime en l’obligeant à effectuer des calculs ou à recevoir ou transmettre des données
inutilement.
4 Conclusion
Dans ce chapitre, nous avons présenté les vulnérabilités des réseaux ad hoc et les
attaques potentielles. La plupart de ces attaques ciblent la fonction principale d’un réseau ad
hoc à savoir le routage. Dans le chapitre suivant, nous allons détailler ce type d’attaques.
25
Page 33
1 Introduction
Afin de maintenir la communication, les nœuds d’un réseau ad hoc coopèrent pour la
découverte et la maintenance des routes. Les informations de routage échangées entre les
nœuds peuvent être une cible pour les attaques. En fait, il y a deux sources de risques pour
les protocoles de routage : la première provient des attaques extérieures par l'insertion
d’informations de routage falsifiées et le rejeu des anciennes informations de routage. La
deuxième, la plus sévère, provient des noeuds erronés appartenant au réseau qui peuvent
réclamer des informations de routage falsifiées pour engendrer des boucles de routage ou
détourner les données vers un nœud particulier [1, 3].
Protocoles réactifs : Ces protocoles ne cherchent à calculer une route qu’à la demande
d’une application. Un paquet de requête est envoyé en diffusion dans le réseau à la
recherche d’une route vers la destination. Le trafic de contrôle des protocoles réactifs est
réduit. Cependant, du fait que l’on ne dispose pas immédiatement de la route vers la
destination, le délai nécessaire à l’acheminement des paquets vers la destination augmente
pour l’application. Par ailleurs, une modification des couches IP est nécessaire du fait que
ces dernières ne permettent généralement pas de conserver des paquets en mémoire avant
que la route vers cette dernière soit créée.
Parmi les protocoles de routage réactifs, on peut citer :
➢ AODV (ad hoc On demand Distance Vector)
➢ DSR (Dynamic Source Routing)
Protocoles proactifs : Au contraire des précédents, ces protocoles entretiennent toutes les
routes du réseau par l’échange de trames périodiques de contrôle. Il est possible de fournir
26
Page 34
Protocoles hybrides : Ces protocoles combinent les idées des protocoles proactifs et
réactifs pour tirer profit des avantages de chacun d’eux. Afin de garder la connaissance
locale de la topologie jusqu’à un nombre prédéfini, a priori petit, de sauts il utilise un
échange périodique de trames de contrôle, autrement dit il utilise la technique proactive. Les
routes vers des noeuds plus lointains sont obtenues par schéma réactif, c’est-à-dire par
l’utilisation de paquets de requête en diffusion. Avec ce découpage, le réseau est partagé en
plusieurs zones et la recherche de routes en mode réactif peut être améliorée. A la réception
La plupart des solutions proposées pour sécuriser le routage sont basées sur les protocoles
réactifs. Ce choix se justifie par le fait que les protocoles de routage réactifs fonctionnent
mieux que les protocoles proactifs car ils minimisent le trafic de contrôle [37, 38].
Dans ce qui suit, nous nous intéressons aux protocoles réactifs. Plusieurs attaques sont liées
aux protocoles de routage. Afin que le lecteur puisse comprendre ces attaques, il est
nécessaire de comprendre le fonctionnement global des protocoles de routage (voir annexe
B et C).
27
Page 35
Dans ce paragraphe, nous énumérons les attaques possibles qui ciblent les protocoles de
routage. Ce type d’attaque peut perturber le fonctionnement du réseau.
• Les attaques passives dans lesquelles l’intrus intercepte et analyse le trafic pour
déterminer les relations entre les nœuds et éventuellement déterminer les nœuds importants
dans le fonctionnement du réseau. Ces informations peuvent être une préparation pour
lancer une attaque active. Par exemple une attaque par déni de service ciblant les nœuds
importants peut faire tomber le réseau (mettre en disfonctionnement).
Dans ce type d’attaque, l’intrus supprime tous ou certains paquets. On peut trouver
deux types :
• Trou noir (Black holes) : L’attaquant supprime tous les paquets (contrôle et
donnée).
• Trou gris (Gray holes) : C’est un cas particulier du trou noir dans lequel
En absence de contrôle d’intégrité sur les messages transmis, un noeud malicieux peut
rediriger le trafic vers lui ou causer un déni de service, simplement par la modification de
certains champs des paquets de contrôle utilisés par les protocoles de routage.
routage comme AODV protègent la mise à jour de leurs caches contre les anciennes
28
Page 36
SA B C D X
M
Figure 11. Redirection du trafic
de routage à vecteur de distance comme AODV utilisent un champ appelé hop count qui
indique la longueur de la route. Pour établir une communication avec un autre nœud, la
source choisit la route ayant la plus petite valeur de hop count. Ainsi, un nœud malicieux
peut détourner le trafic vers lui en annonçant à la source une route ayant un hop count plus
petit.
(source routing) : Le protocole DSR indique explicitement les différents nœuds de la route
dans l’entête du paquet de données. Un nœud malicieux peut provoquer des boucles de
routage ou lancer un déni de service en changeant la liste des nœuds indiqués dans le
paquet.
29
Page 37
paquet modifié, il essaie de le transmettre au prochain saut indiqué dans l’entête soit X.
Mais puisque C et X ne sont pas voisins, le paquet ne va pas arriver à X. Après un certain
nombre de tentatives, C va signaler la rupture du lien en envoyant un paquet RERR (Route
ERRor) vers la source S. Comme M est le premier saut vers la source, alors il va continuer
son attaque en deni de service en supprimant le paquet RERR.
SABMCDX
Chemin indiqué par S
Chemin modifié par M
AD
AD
M
BCE…X
BCE…X
A)
M B)
AD
BCE…X
M C)
L’usurpation d’identité peut conduire à des boucles de routage. Dans la figure 13.A,
chacun des nœuds {A, B, C, D} possède une route vers la destination X. Pour former une
boucle de routage, le nœud malicieux M change son adresse MAC pour qu’elle corresponde
à celle de A, puis il annonce à B une route vers X avec une métrique meilleure (un nombre
30
Page 38
de sauts plus petit ou un numéro de séquence plus récent) que celle de la route à travers C. B
met à jour alors sa table de routage en sauvegardant la nouvelle route vers X à travers A
(figure 13.B). L’intrus répète le même processus avec le nœud C en usurpant l’identité du
nœud B. C enregistre alors la nouvelle route vers X à travers B (figure 13.C). De cette façon
une boucle est formée et aucun paquet de l’un des quatre nœuds {A, B, C, D} ne peut
arriver à X.
maintiennent leurs routes par l’envoi d’un message RERR dans le cas où un nœud n’est plus
dans la zone de couverture de la route ou s’il quitte le réseau. Les nœuds recevant un
message RERR vont supprimer cette route de leurs tables de routage. Un nœud malicieux
peut injecter des messages RERRs contre un nœud légitime. Ce dernier sera donc exclu de
toutes les routes. Ainsi, le nœud malicieux provoquera un déni de service contre le nœud
légitime.
• Empoisonner les tables de routage : Dans le protocole DSR, un nœud peut écouter
les routes échangées par les autres nœuds et par conséquent mettre à jour sa table de
routage. Un nœud malicieux peut donc exploiter cette vulnérabilité pour empoisonner les
tables de routage. En effet, pour lancer une attaque par déni de service contre une
destination le nœud malicieux peut simplement diffuser des paquets contenant des routes
vers cette destination à travers lui. En écoutant ces paquets, les nœuds vont ajouter cette
route dans leurs tables de routage.
• Déborder les tables de routage : Dans la phase de découverte de route des
protocoles AODV et DSR, chaque nœud recevant un paquet RREQ met à jour son
information de routage relative à l’initiateur de la route et il établit un pointeur de retour
vers lui dans sa table de routage. Un nœud malicieux peut donc submerger les tables de
routage des autres nœuds par l’initialisation d’une découverte de route vers des nœuds
inexistants. Le but de l'attaquant est de créer assez de routes pour empêcher de nouvelles
routes d'être créées puisque les tables de routage sont déjà pleines.
31
Page 39
Dans le cas d’un protocole réactif comme AODV et DSR, cette attaque peut être lancée par
la transmission du message RREQ directement vers la destination. Les voisins de la
destination vont recevoir le message RREQ venant de l’attaquant en premier lieu et ils vont
donc rejeter tous les autres messages RREQs. De cette façon, l’attaquant empêche la
découverte d’une autre route que celle passant par lui. L’attaquant devient donc un point
central dans le réseau du fait qu’il contrôle toutes les routes.
Dans le cas d’un protocole proactif comme DSDV, la découverte des voisins se fait par
l’envoi des messages HELLO. L’attaquant peut envoyer à travers le tunnel des messages
HELLO de A vers B et de B vers A pour faire croire à ces deux nœuds qu’ils sont voisins
alors qu’en réalité ils ne le sont pas. De cette façon, l’attaquant réussit à perturber le
mécanisme de découverte de route puisqu’il y a de mauvaise perception de voisins.
Selon la manière de réaliser le tunnel (wormhole) nous distinguons différents modes
d’attaque du trou de ver [47].
Considérons la figure 14 dans laquelle la source S veut découvrir le chemin le plus court
vers le nœud D. S diffuse alors un paquet RREQ. En recevant le paquet RREQ le nœud
malicieux M2, première extrémité du tunnel, l’encapsule dans un nouveau paquet destiné à
M1 et l’envoie à travers le tunnel. Le nœud M1, deuxième extrémité du tunnel, décapsule le
paquet reçu, extrait le paquet RREQ et diffuse ce dernier à ses voisins en particulier D.
Simultanément le paquet RREQ va traverser A-B-C pour atteindre D. Le destinataire D
reçoit donc deux paquets RREQ. Le premier venant de M1 avec un hop count égal à trois
32
Page 40
comme s’il avait traversé uniquement M2 et M1 alors qu’en réalité il a traversé sept sauts
{S-M2-E-F-G-H-M1-D}. Le deuxième venant de C avec un hop count égal à quatre. D
choisit alors le chemin le plus court soit celui à travers M1. De cette façon l’intrus peut
contrôler tout le trafic.
tunnel
F G
H
E
encapsulation M2
M1
S décapsulation
source A
B D
C
destination
tunnel
M2
M1
S
A D
source B
destination
Considérons le scénario décrit par la figure 15. Le nœud malicieux M2 capture le paquet
RREQ diffusé par S puis l’envoie à l’autre extrémité du tunnel M1. En recevant le paquet
33
Page 41
RREQ, le nœud D envoie à S un paquet RREP à travers M1. Puisque le chemin {S-M2-M1-
D} est de latence plus faible que celui de {S-A-B-D}, la source reçoit le paquet RREP
venant de M2 en premier lieu et elle va donc choisir ce chemin.
4 Conclusion
Dans ce chapitre, nous avons présenté les attaques ciblant les protocoles de routage et
nous avons montré comment ces attaques peuvent perturber le fonctionnement du réseau et
dégrader ces performances. Il est donc nécessaire de concevoir des solutions pour lutter
contre ces attaques. De telles solutions ne doivent pas être trop lourdes et ne doivent pas
augmenter la charge du réseau. Dans le prochain chapitre, nous allons présenter des
solutions proposées dans la littérature qui visent à lutter contre ces types d’attaques.
34
Page 42
1 Introduction
Plusieurs solutions ont été proposées pour sécuriser les réseaux ad hoc. Ces solutions
diffèrent selon le besoin en sécurité et les moyens possibles (autorité de certification, centre
de distribution de clefs, algorithmes cryptographiques, …). Actuellement, les principaux
axes de recherche portent sur l’authentification, la génération de clefs et la sécurité des
protocoles de routage.
L’absence d’infrastructure dans les réseaux ad hoc empêche l’utilisation d’une autorité
de certification (CA) pour l’authentification des nœuds.
Ce problème peut être résolu par la distribution du rôle d’une CA aux nœuds du réseau.
On utilise alors les mécanismes de cryptographie à seuil “threshold cryptography” pour
partager le secret entre les membres du réseau. Pour être authentifié, un nouveau nœud doit
collecter au moins k portions du secret.
Une solution basée sur la méthode RSA est proposée dans [16, 17]. Dans un cryptosystème
RSA traditionnel, l’autorité de certification utilise une paire de clefs (SK, PK), avec SK la
clef privée (secret) utilisée pour signer les certificats et PK la clef publique connue par les
nœuds du réseau pour vérifier la validité de la signature d’un certificat.
Par l’utilisation de la cryptographie à seuil, la clef SK est partagée entre les nœuds du
réseau. Tout ensemble de k (threshold) nœuds peuvent jouer le rôle d’une autorité de
certification. Par contre, aucun nœud ne peut connaître la clef secrète SK.
Chaque nœud possède aussi une paire de clefs RSA (ski, pki) et un certificat certi qui
contient l’identité du nœud soit vi, sa clef publique pki et la durée de validité du certificat.
Soit certi=<vi, pki, T>. Un certificat est considéré valide s’il est signé par la clef SK.
35
Page 43
Un nœud qui veut obtenir un certificat valide diffuse une requête à ses voisins comme
illustré à la figure 16. En recevant la requête, chaque nœud vérifie si ce nœud est malicieux
(on suppose qu’un nœud possède les moyens de détecter les nœuds malicieux). Dans le cas
contraire, il lui répond par un certificat partiel. La combinaison des k certificats partiels
forme un certificat valide.
Reply
Pv 2
Cert
Reply
Pv 1
under Cert
attack
fail
Reply request
Pv 5
Cert
Reply
moving Pv 3
away Cert
Reply
Pv 4
Cert
Cette solution a pour avantage de mieux résister aux attaques qui visent de révéler la clef
secrète car un attaquant doit compromettre k nœuds pour pouvoir révéler cette clef. Mais
l’inconvénient de cette solution est qu’elle est plus vulnérable à un déni de service ; un
nœud doit pouvoir contacter au moins k utilisateurs pour obtenir un certificat.
Description de protocole
Le protocole est basé sur une approche polynomiale de cryptographie à seuil comme
celle proposée par Shamir [18]. Nous ne traitons pas les techniques de cryptographie à seuil
(threshold cryptography) dans ce document mais le lecteur intéressé est invité à lire [18, 19,
20, 21,48].
Lors du démarrage du réseau, un distributeur connaissant la clef privée {d, n} d’un système
36
Page 44
Puis il transmet, d’une manière secrète, les parts P vi aux différents noeuds. Les parts sont
obtenues en évaluant lepolynôme f(x) aux différents points vi : Pvi=f (vi) mod n.
Ces nœuds jouent ainsi le rôle d’un service d’authentification et servent pour la signature de
certificats de nouveaux nœuds. Chaque nœud participe dans la signature de certificat en
PVi
générant un certificat partiel Cert =vi (Cert) mod n. (3)
k
vr
∏
)0(l
Cert' =vi (Cert vi
) vi
mod n . Avec l vi )0( = mod n (4)
=
r ,1 ir
≠ vv − r i
k ∑ lP ).0(.
⎛ ⎛ ⎞ ⎞
vx−
k
xf( ) =∑
⎜ ⎜ )()⎟⎟ vf ⎟ mod
⎜ ∏ ( (6)
h
⎜ ⎟ n
vv −
l
⎝⎝ l =1 lh≠ l h
⎠ ⎠
⎛ ⎛ ⎞ ⎞
vx−
k
xf( ) =∑
⎜ ⎜ ) ⎟⎟Pvl ⎟ mod (7)
⎜ ∏ ( h
⎜ ⎟ n
⎝
⎝ l =1 lh
≠ vv −
l h
⎠ ⎠
⎛ k ⎛ ⎞ ⎞ k
⎜ ⎜ vh ⎟ mod = ∑
Donc d= (f ) = ∑
0 ⎜ ∏ ⎜ ( ) ⎟⎟Pvl ⎟ n lPvi )0( mod n. (8)
vvh −
vi
⎝l = 1 ⎝ lh≠
l ⎠ ⎠ i=1
confiance entre eux mais ils n’ont aucun moyen pour s’authentifier. Ce type de scénario est
vulnérable à toute attaque. Un attaquant de l’extérieur de la salle peut non seulement
surveiller la communication mais peut également modifier les messages ou insérer des
messages en usurpant l’identité d’un participant à l’intérieur de la salle.
Une solution pour assurer l’authentification entre les différents membres du réseau et lutter
contre les attaques extérieures est d’établir une clef secrète commune connue seulement par
37
Page 45
les personnes présentes dans la salle. Cette clef peut ensuite être utilisée pour chiffrer la
communication.
La mise en place de cette clef peut se faire de manière distribuée, mais la difficulté de ce
mode de fonctionnement est de trouver un support sécurisé pour distribuer la clef. Une
façon simple pour distribuer la clef est de l’inscrire sur un morceau de papier qui fait le tour
de la salle. Une autre façon est de faire circuler la clef entre les différents membres du
réseau par voie orale. Mais dans ces cas la clef sera généralement petite et facile à utiliser,
ce qui la rend vulnérable aux attaques par dictionnaire. Il est donc nécessaire d’envisager un
protocole permettant de dériver une clef de session forte à partir du mot de passe initial,
appelée aussi mot de passe faible. Un tel protocole doit vérifier les propriétés suivantes [2,
43] :
• Secret (secrecy) : seules les personnes connaissant le mot de passe initial peuvent
clef de session et aux attaques actives qui tentent d’usurper l’identité d’un participant.
(1) A envoie à B la quantité EA chiffrée par le mot de passe P. Il envoie aussi un label ‘A’
pour s’identifier.
(2) B déchiffre le message reçu, extrait la quantité EA puis génère un nombre aléatoire R et
une quantité secrète SB. Le tout sera chiffré par EA puis P. Cela authentifie B au niveau de A
puisque B ne peut extraire la quantité EA que s’il connaît le mot de passe (P).
38
Page 46
A B
A, P(EA)
R(S A)
Page 47
Mn envoie à chaque nœud Mi l’ensemble des quantités secrètes chiffrées par Ri.
(4) Mi → Mn : Mi, K(Si, H(S1, S2,…, Sn)).
Chaque nœud Mi confirme sa connaissance de la clef K en envoyant sa quantité secrète Si et
un hachage de toutes les quantités secrètes, l’ensemble chiffré par la clef K.
L’utilisation d’une paire de clefs asymétriques permet d’assurer la propriété Perfect
entier premier N et un générateur g du groupe cyclique fini d’ordre N (ce groupe est
constitué de l’ensemble {1,2,… ,N-1} et tous les calculs dans ce groupe se font modulo N).
Chacune des parties choisit un nombre secret utilisé comme exposant.
A B
A, P(gSA)
P(gSB), K(CB)
K(C A, CB)
K(C A)
(1) A calcule gSA , le chiffre avec le mot de passe P puis l’envoie à B. Il envoie aussi un
label ‘A’ pour s’identifier.
40
Page 48
(2)Connaissant le mot de passe, B extrait gSA puis calcule gSB et la clef de session
K=(gSA)SB=gSASB. B envoie ensuite à A gSB chiffré par le mot de passe et un challenge
aléatoire CB chiffré par la clef de session K.
(3)A extrait gSB puis calcule la clef de session K = (gSB) SA = gSASB . A peut maintenant
déchiffrer la deuxième partie du message et donc extraire CB. A ensuite choisit son propre
challenge CA puis envoie à B (CA, CB) chiffré par la clef K.
(4) B déchiffre le message reçu en utilisant la même clef de chiffrement K puis vérifie que
le challenge CB reçu correspond bien à celui envoyé. Cela permet d’authentifier A au niveau
de B : puisque A ne peut déchiffrer le message reçu dans l’étape (2) que si elle connaît le
mot de passe (P).
Pour que A s’assure maintenant de l’identité de B, ce dernier renvoie à A le challenge CA
chiffré par la clef de session K.
En recevant le message envoyé par B dans l’étape (4), A extrait le challenge CA et le
compare avec celui déjà envoyé à B. Si les deux quantités sont identiques alors A est
convaincue que B connaît la clef K.
On suppose maintenant qu’on a n participants M1, M2,…, Mn qui veulent partager un secret
commun. Chaque participant choisit un exposant secret Si et la clef résultante sera
g K=
S1S2....Sn 1Sn-
. Le déroulement du protocole est comme suit [40]:
41
Page 49
La dernière étape du protocole (étape 5) sert pour confirmer au niveau de chaque nœud que
les autres participants sont d’accord sur la même clef que la sienne.
L’initiateur de la route inclut dans le message RREQ une métrique de sécurité indiquant le
niveau de confiance minimal que doit posséder le nœud pour participer à la découverte de la
route.
Cette idée peut être réalisée par le partage d’une clef secrète entre les nœuds possédant le
niveau de confiance adéquat. Les messages RREQ seront ensuite chiffrés par cette clef.
42
Page 50
ARAN est composé de deux étapes. La première est simple et ne demande pas beaucoup de
calculs. La deuxième est optionnelle, elle augmente le niveau de sécurité mais elle introduit
des coûts supplémentaires.
Avant d’examiner en détail les étapes du protocole nous définissons les notations suivantes :
KA+ : clef publique du nœud A.
KA- : clef privée du noeud A.
[d] KA+ : chiffrement des données d par la clef KA+.
[d] KA- : signature des données d par le noeud A.
CertA : certificat du noeud A.
3.3.1 Etape 1
ARAN utilise un serveur de certification soit T. Avant de joindre le réseau chaque
nœud demande un certificat de ce serveur. Le certificat contient l’adresse IP et la clef
publique du nœud, un “ timestamp” t indiquant la date de création du certificat et la date
43
Page 51
d’expiration du certificat. Toutes ces variables sont concaténées puis signées par la clef
privée du serveur.
IP ,K ,,Ket ]
[
−
+
A A T
Dans le cas d’un nœud A et d’un serveur T, on aura : CertA =
Ensuite la source (A) diffuse un paquet de découverte de route RDP (Route Discovery
Packet ) contenant un identifiant du type de paquet, l’adresse IP de destination (IPD), le
certificat de A, un nonce NA et la date courante. Tous ces champs seront concaténés puis
signés par la clef privée de A.
A diffuse : id D A A A
A chaque fois que le nœud A effectue un RDP il incrémente la valeur de nonce. Cette valeur
est associée avec l’adresse IP de la source pour identifier un RDP.
En recevant le paquet RDP, un nœud intermédiaire enregistre le nœud précédent à partir
duquel il a reçu le paquet. Ensuite il fait suivre le paquet en signant son contenu.
Soit B le nœud suivant de A.
B diffuse : [
[ RDP id
, IP D
, Cert A
,N A
, Kt]
A
−
]K B
− , Cert B
A la réception d’un RDP, un nœud va vérifier s’il a déjà traité ce paquet. Dans ce cas, il va
le supprimer. Dans le cas contraire, il va valider la signature du nœud précédent par le
certificat (Cert B) puis il va la remplacer par sa signature.
Soit C le nœud voisin de B :
C va diffuser : [
[ RDP id
, IP D
, Cert A
, N A
, Kt]
A
−
]K C
− , Cert C
Quand le premier paquet RDP associé à un couple (NA, IPA) arrive au destinataire, ce
dernier va répondre en envoyant en « unicast » un paquet REP (REPly) sur le chemin
inverse.
Soit D la destination et C le nœud prédécesseur de D (le nœud à partir duquel D a reçu le
paquet RDP).
D envoie à C : id A D A D
En recevant le paquet REP, C vérifie la signature de D puis cherche une entrée pour (NA,
IPA) pour déterminer le prochain nœud vers A, dans notre cas c’est B. C signe le paquet
REP reçu de D par sa clef privée puis le fait transmettre à B.
C envoie à B : [
[ REP id
, IP A
, Cert D
,N A
, Kt]
D
−
]K C
− , Cert C
44
Page 52
B envoie : [
[ REP id
, IP A
, Cert D
,N A
, Kt]
D
−
]K B
− , Cert B
Quand la source reçoit le paquet REP, elle vérifie la signature de D et la valeur du nonce
(NA). De cette façon, on garantit l’authentification des nœuds donc on se prémunit des
attaques par usurpation de l’identité. On garantit aussi l’intégrité, ce qui empêche des
attaques par modification des informations de routage.
3.3.2 Etape 2
Cette étape est optionnelle. Elle a pour but de trouver le chemin le plus court. Elle
dépend de l’étape précédente car elle utilise le certificat de destination (CertD).
SPC,IPD,Cert D,
[[[[IP D
, Cert A
, KtN
A
, ]
A
−
]K ]K D
+
B
− , Cert B
]K +
D
.
Quand la destination (D) reçoit le paquet elle commence par vérifier la validité des
signatures. A partir des certificats la destination peut déduire la longueur de la route. Ensuite
elle répond en envoyant un paquet RSP (Recorded Shortest Path) indiquant la route la plus
courte.
]
D envoie à A : [ RSP,,IPA Cert D ,,N A route K D
−
45
Page 53
La signature numérique permet de résoudre ce problème mais elle reste une solution non
préférée dans les réseaux ad hoc car ces derniers présentent des ressources limitées
(puissance de calcul, énergie). Or la cryptographie asymétrique (dont la signature faite
46
Page 54
partie) demande plus de puissance de calcul et elle est plus lente que la cryptographie
symétrique.
Perrig et al. [32, 33, 34] proposent TESLA (Timed Efficient Stream Loss-tolerant
La clef secrète utilisée pour générer le MAC est issue d’une chaîne de clefs. Au début
l’émetteur choisit un nombre aléatoire Kn. Ensuite les autres éléments de la chaîne sont
calculés récursivement de la manière suivante : Ki =F (Ki+1) où F est une fonction de
hachage non réversible. L’émetteur va utiliser ces clefs dans l’ordre inverse de leur
génération c’est à dire dans l’ordre K0, K1, …, Kn. A la réception d’un nouveau paquet le
destinataire vérifie la relation Ki-1 =F (Ki) où Ki est la clef dernièrement reçue et Ki-1 la clef
précédente. Cette condition permet de vérifier que la clef Ki fait bien partie de la chaîne de
clefs de l’émetteur, ce qui assure la propriété d’authentification de la source. Le récepteur
peut calculer toute clef intermédiaire Ki à partir de la dernière clef reçue Kn à partir de la
i)-(n
relation )(K F Kn , ce qui lui permet de vérifier des paquets dont les clefs sont
i=
perdues. Il est à noter la nécessité d’authentifier la première clef (K0) en utilisant par
exemple le procédé de signature numérique.
47
Page 55
En recevant le paquet Pi le récepteur vérifie que la clef Ki n’est pas encore divulguée. Si
c’est le cas, le paquet sera rejeté. Ensuite il vérifie que la clef Ki-d appartient bien à la chaîne
des clefs de l’émetteur en vérifiant pour une ancienne clef Kv (v<i-d)
v)-d-(i
que F K (K ) . Si le test échoue le paquet sera rejeté. Dans le cas contraire, le
v=
d-i
récepteur mémorise le paquet. Avec la clef Ki-d le récepteur peut vérifier l’intégrité du
(KFd-i K=d-i
' '
paquet Pi-d. Il calcule d’abord ) puis MAC (Mi-d, K’i-d). Ensuite il compare le
MAC calculé avec celui mémorisé. En cas d’égalité, l’intégrité est vérifiée.
Le paquet route request utilisé dans Ariadne contient huit champs : un identificateur de la
requête (REQUEST), l’adresse de la source (S), l’adresse de la destination (D), un
48
Page 56
une liste de nœuds et une liste de MACs initialement vides (figure 20).
Quand un nœud intermédiaire A reçoit un paquet route request n’a pas déjà été traité, alors il
vérifie la validité de son time interval. Si la clef utilisée dans cet intervalle de temps est déjà
révélée alors le paquet est rejeté. Dans le cas contraire, A ajoute son adresse dans la liste des
nœuds et remplace le hachage par (A, H ancien_hachage) puis ajoute un MAC calculé à
partir de tout le request et d’une clef KAi avec i l’indice de l’intervalle de temps.
Quand le destinataire reçoit le paquet il vérifie la validité de la clef et que le hachage est
η n H η n − 1 H [..., H ,[η 1 MAC K ( REQUEST ,,,,
égal à H ,[,[ tiidDS )]...]] . Avec i η le nœud à la
SD
position i.
49
Page 57
Si le paquet route request est considéré valide alors le destinataire renvoie un route reply à
l’initiateur de la route à travers le chemin inverse de celui indiqué dans route request
(obtenu en inversant la séquence de sauts indiquée dans le champ liste de nœuds )
Avant de faire suivre le paquet route reply, chaque nœud intermédiaire ajoute sa clef
TESLA avec laquelle il a calculé le MAC dans le paquet route request. Cette clef sera
utilisée par l’initiateur de la route pour authentifier ce nœud intermédiaire.
On suppose ici que les nœuds peuvent écouter les transmissions de leurs voisins. Ce mode
de fonctionnement est appelé le mode promiscuous.
4.1 Watchdog
Le watchdog permet de vérifier si le nœud suivant a réellement fait suivre le paquet, en
écoutant tous les paquets qu’il émet. Un temporisateur est associé à chaque paquet. Si le
temporisateur expire avant que le nœud suivant transmette le paquet alors ce dernier est
considéré comme un noeud malicieux.
Le watchdog présente certaines faiblesses. En effet il ne permet pas de détecter les nœuds
malicieux dans les cas suivants :
➢ Collision : en présence de collision le watchdog ne peut pas distinguer si cette
collision est due à la transmission du paquet par le nœud suivant (ce qui doit être le cas) où à
la transmission d’autres nœuds voisins. Considérons le scénario décrit par la figure 21. Une
P2 P1 P1
S A B C D
50
Page 58
P1 P1 P2
S A B C D
4.2 Pathrater
Ce mécanisme permet de choisir la route la plus sécurisée en se basant sur la
connaissance du niveau de confiance de chaque nœud.
Le pathrater associe une métrique à chaque route qui est la moyenne des niveaux de
confiance des nœuds constituant cette route.
Ce mécanisme ne peut être implémenté que dans des protocoles de routage avec routage par
la source (source routing) comme DSR car il est nécessaire de connaître tous les nœuds
constituant la route.
5 Conclusion
Dans ce chapitre, nous avons présenté des solutions existantes permettant d’augmenter
le niveau de sécurité dans les réseaux ad hoc. Puisque dans un réseau ad hoc il n’y a pas
51
Page 59
Les solutions existantes pour sécuriser le routage ont pour but d’assurer l’authentification et
l’intégrité des messages de routage. Le tableau 1 résume les caractéristiques, ainsi que les
avantages et les faiblesses de chacune de ces solutions.
Nous avons choisi de simuler le protocole ARAN et de voir son effet sur les performances
du réseau. Dans ce qui suit nous allons présenter notre plateforme de simulation ainsi que
les différentes étapes d’installation et de configuration.
52
Page 60
53
Page 61
1 Introduction
Lorsqu’un nouveau protocole est développé, il est nécessaire de le tester. Il existe
généralement trois moyens pour tester un protocole : les modèles mathématiques, la
simulation ou les plateformes réelles. Les modèles mathématiques présentent l’inconvénient
d’être complexes. Les plateformes réelles nécessitent des matériels qui peuvent être onéreux
ou non disponibles. La simulation est donc la solution la plus convenable et qui est
largement utilisée.
Dans ce chapitre, nous présentons notre environnement de simulation ainsi que les
différentes étapes d’installation et de configuration.
2 Présentation de l’environnement
Les principaux composants de notre simulateur sont un noyau UML (User Mode Linux)
et un pilote de carte réseau sans fil (hostap driver). La figure 23 décrit les interactions entre
les différents composants du simulateur. Le pilote hostap est intégré dans le noyau UML et
le netbus permet la connexion entre ce pilote et la carte réseau virtuelle. Le simulateur
intègre aussi un environnement graphique qui permet de visualiser les nœuds et un
54
Page 62
✓ Si une machine virtuelle tombe en panne, le système hôte n'est pas affecté.
✓ Un utilisateur sera root sur une machine virtuelle, mais pas sur le système hôte.
✓ Il permet de tester différents paramètres noyaux sans se soucier des conséquences.
✓ Il permet aussi d'avoir une plateforme réelle mais totalement software pour le test
des applications.
55
Page 63
Pour améliorer les performances, nous avons installé le SKAS (Separate Kernel Address
Separator). Ce dernier permet de minimiser le temps d’exécution et de réduire le nombre de
processus liés à la machine UML (nous remarquons que le nombre de processus est réduit à
quatre au lieu d’une douzaine). Pour cela, il faut appliquer au noyau de l’hôte le patch skas
approprié et configurer le noyau UML pour qu’il supporte le mode skas.
56
Page 64
5 Mise en réseau
Pour faire participer une machine UML à un réseau wifi, nous devons ajouter certains
modules. Le hostap driver qui est un pilote de carte réseau sans fil sur Linux et le netbus
(uml-netbus-0.1.tgz) qui permet la connexion entre le driverhostap et la carte réseau
virtuelle.
Page 65
6 Tests
Nous présentons ici quelques tests pour vérifier le bon fonctionnement du réseau.
$ ping 192.168.100.11
PING 192.168.100.11 (192.168.100.11) 56(84) bytes of data.
64 bytes from 192.168.100.11: icmp_seq=0 ttl=64 time=86.5 ms
64 bytes from 192.168.100.11: icmp_seq=1 ttl=64 time=44.3 ms
64 bytes from 192.168.100.11: icmp_seq=2 ttl=64 time=51.0 ms
64 bytes from 192.168.100.11: icmp_seq=3 ttl=64 time=39.7 ms
Les deux machines doivent être assez proches pour pouvoir communiquer (lorsque nous
éloignons trop les machines, nous constatons une suspension de transfert de paquet)
On va maintenant ajouter un nouveau noeud pour qu'il serve de relais entre A et B.
Pour que la nouvelle machine (machine C) joue le rôle de relais entre les deux nœuds, il faut
démarrer le protocole AODV.
Pour l'installation de AODV, nous avons compilé le module à partir de l'hôte mais il faut
modifier le fichier makefile pour qu'il corresponde à notre machine UML. Toutes les
modifications sont décrites en annexe E.
Maintenant il ne reste que de lancer AODV dans la machine virtuelle en spécifiant
l’interface qui va être utilisé.
$./aodvd -d -i wlan0
Ensuite il faut activer le forward ip
$echo 1 > /proc/sys/net/ipv4/ip_forward
La machine C (d’adresse 192.168.100.12) sert de relais entre A et B. Cela peut être testé par
la commande ping.
58
Page 66
$ ping -R 192.168.100.11
PING 192.168.100.11 (192.168.100.11): 56 data bytes
nf_hook: Verdict = QUEUE.
64 bytes from 192.168.100.11: icmp_seq=0 ttl=63 time=527.4 ms
RR: 192.168.100.10
192.168.100.12
192.168.100.11
192.168.100.11
192.168.100.12
192.168.100.10
64 bytes from 192.168.100.11: icmp_seq=2 ttl=63 time=123.9 ms (same route)
64 bytes from 192.168.100.11: icmp_seq=3 ttl=63 time=123.2 ms (same route)
64 bytes from 192.168.100.11: icmp_seq=4 ttl=63 time=124.1 ms (same route)
...
--- 192.168.100.11 ping statistics ---
9 packets transmitted, 8 packets received, 11% packet loss
round-trip min/avg/max = 116.4/172.5/527.4 ms
7 Paramétrage du simulateur
Au cours du projet EcoMESH, des études sur une plateforme réelle ont montré que la
distance maximale entre deux nœuds en communication est de 250 m.
Dans cette section, nous présentons les valeurs qu’il faut donner aux paramètres du
simulateur pour qu’il corresponde à la réalité. La figure 25 présente la variation de la
distance maximale entre deux nœuds en communication en fonction de l’atténuation avec un
bruit constant de (-140 db) qui est la valeur par défaut.
2500
) 2000
x(m 1500
a
1000
istM
D
500
0
0 0,2 0,4 0,5 0,6 0,8 0,9 1
atténuation
Page 67
Cette courbe montre qu’avec une atténuation de 0,6 on aura une distance maximale
d’environ 250 m (valeur réelle).
Nous pouvons aussi faire varier le paramètre « puissance de bruit » en gardant une
atténuation fixe (la valeur par défaut est 0,5). La courbe de la figure 26 montre qu’il faut
donner la valeur (-120 db) à la puissance de bruit pour aboutir à la valeur réelle de la
distance maximale.
400
) 300
x(m
a 200
istM
D 100
0
-100 -120 -140 -160 -180
puissance de bruit(db)
8 Simulation
Le but d’une telle simulation et de montrer l’effet des nœuds malicieux sur les
performances d’un réseau ad hoc. Nous avons simulé ici un type particulier d’attaque à
savoir l’attaque par suppression de paquets. Les nœuds malicieux ici présentent un
comportement égoïstes ; ils profitent du réseau sans participer (il veulent économiser leurs
ressources). L’émission du nœud malicieux consiste donc à supprimer tous les paquets qui
ne lui sont pas destinés.
Nous avons effectué notre simulation avec les paramètres déjà trouvés dans la section
précédente (atténuation=0,6 et puissance de bruit=-140 db) donc chaque nœud a une rayon
de couverture de 250 m. Notre configuration est constituée de 10 nœuds répartis sur une
zone de 2000m x 2000m. La simulation consiste à faire varier le pourcentage des nœuds
60
Page 68
malicieux et mesurer à chaque fois les performances du réseau (pourcentage des paquets
perdus et nombre de sauts moyen). Dans un cas réel, le pourcentage des nœuds malicieux ne
peut pas dépasser 40% c’est pourquoi nous avons limité notre simulation à cette valeur.
70
60
rdus
50
pe40
ts
30
que
a 20
p
% 10
0
0 10 20 30 40
%noeuds malicieux
Le nombre moyen de sauts est aussi proportionnel au pourcentage des nœuds malicieux
(figure 28), cela se justifie par le fait qu’un nœud est obligé de choisir une route avec un
nombre de sauts plus grand que la route optimale lorsque cette dernière contient un nœud
malicieux. Nous avons remarqué au cours de simulation que parfois le nombre de sauts se
double (passe de 3 à 6 par exemple).
61
Page 69
5
uts
a4
s
3
n de
e
y2
o
m
1
nbre
0
0 10 20 30 40
%noeuds malicieux
Figure 28. Effet des nœuds malicieux sur le nombre moyen de sauts
9 Conclusion
Dans ce chapitre, nous avons présenté notre environnement de simulation ainsi que les
différentes étapes d’installation et de configuration. Nous avons aussi paramétré le
simulateur pour qu’il donne des résultats plus proches de la réalité.
Cette plateforme va servir pour la simulation des protocoles proposés au cours du projet
EcoMESH.
Les résultats de simulation montrent l’impact d’une attaque ciblant les protocoles de
routage sur les performances du réseau. Ces résultats déterminent le coût maximal qu’une
solution sécurisée ne doit pas dépasser.
62
Page 70
Conclusion et perspective
Les réseaux Mesh semblent avoir un bon avenir dans les prochaines années puisqu’ils
permettent la présence de l’information de manière ubiquitaire. Une façon pour étendre la
zone de couverture des réseaux Mesh consiste à se servir des réseaux ad hoc. Mais ces
derniers présentent des caractéristiques qui les rendent plus sensibles aux attaques.
Dans ce rapport, nous avons fait une analyse de sécurité dans laquelle nous avons
énuméré les différentes attaques et risques liés à la sécurité des réseaux ad hoc. Ces derniers
sont plus vulnérables aux attaques à cause de leurs caractéristiques (utilisation d’un canal
radio pour la transmission de données, absence d’infrastructure).
La littérature, qui s’étoffe très rapidement dans ce domaine, offre des solutions pour le
problème d’authentification des nœuds dont la plupart est basée sur la cryptographie à seuil
et le partage de secret, mais ces solutions sont généralement difficiles à implémenter. Des
algorithmes d’échange de clefs qui s’adaptent aux caractéristiques des réseaux ad hoc sont
aussi proposés.
Afin de tester les performances des protocoles proposés, nous avons préparé une
plateforme de simulation. Cette plateforme est basée sur les machines virtuelles de User
Mode Linux (UML). Le but d’une telle plateforme est de minimiser l’écart entre les
résultats de simulation et les résultats réels.
Notre travail est encore à ses débuts, actuellement nous sommes en train d’installer
le protocole ARAN sur notre plateforme de simulation.
63
Page 71
64
Page 72
Références
[1] L. Zhou and Z. J.Haas: “Securing ad hoc Networks”,IEEE Network,
Novembre/Décembre 1999, pp.24-30.
[3] Z. Liu, A. W.Joy, R. A.Thompson: “A Dynamic Trust Model for Mobile ad hoc
Networks”, Proceedings of the 10th IEEE International Workshop on Future Trends of
14th IEEE 2003 International Symposium on personal, Indoor and Mobile Radio
Communication Proceedings, 2003, pp.1069-1073.
[6] R. E. Kahn: “The organization of computer resources into a packet radio network”,IEEE
[7] G. Zussman and A. Segall: “Energy efficient routing in ad hoc disaster recovery
networks”, Proceedings of IEEE INFOCOM, San Francisco, USA, 2003.
[8] X. Perséguers: “La sécurité dans les réseaux de capteurs sans fil”, Mém. Master, Ecole
Polytechnique Fédérale de Lausanne (EPFL) et Centre Suisse d’Electronique et de
Microtechnique (CSEM), February 2005.
[9] M. Hauspie: “Contributions à l'étude des gestionnaires de services distribués dans les
réseaux ad hoc”, Thèse, Université des Sciences et Technologies de Lille, January 2005.
[10] Alfred J. Menezes, Paul C. van Oorschot and Scott A. Vanstone:Handbook of applied
[11] http://www.certa.ssi.gouv.fr/
65
Page 73
Sécurité des réseaux ad hoc Cheikhrouhou Omar
[12] V. Gayraud, L. Nuaymi, F. Dupont, S. Gombault, and B. Tharon: “La Sécurité dans les
Réseaux Sans Fil ad hoc”, Actes du symposium SSTIC03, 2003.
[13] S. Gupte, M. Singhal: “Secure routing in mobile wireless ad hoc networks”,ad hoc
[14] C. Karlof, D. Wagner: “Secure routing in wireless sensor networks: attacks and
countermeasures”, ad hoc Networks 1, 2003, pp. 293–315.
[15] Y.-C. Hu, A. Perrig, D.B. Johnson: “Packet leashes: a defense against wormhole
attacks in wireless networks”, IEEE Infocom, 2003, pp.1976-1986.
[16] H. Luo, P. Zerfos, J. Kong, S. Lu, and L. Zhang: “Self-securing ad hoc Wireless
Networks”, Seventh IEEE Symposium on Computers and Communications (ISCC’02), 2002.
[17] J. Kong, P. Zerfos, H. Luo, S. Lu and L. Zhang: “Providing robust and ubiquitous
security support for MANET”, IEEE ICNP 2001, 2001.
[20] V. Shoup: “Practical threshold signatures”, IBM Zurich Research Lab, February 2000.
[21] Y. Desmedt, Y. Frankel: “Threshold cryptosystems”, In Advances in cryptology-
2nd IEEE Wksp. Mobile Comp. Sys. and Apps., February 1999, pp. 90–100.
[24] C. E. Perkins, E. M. Royer, and I.D. Chakeres: “ad hoc on Demand Distance Vector
(AODV) Routing”, http://moment.cs.ucsb.edu/pub/draft-perkins-manet-aodvbis-00.txt,
MANET Internet Draft, 19 October 2003.
[25] C. E. Perkins, E. M. Royer, and S. R. Das: “ad hoc on Demand Distance Vector
(AODV) Routing”, http://moment.cs.ucsb.edu/pub/rfc3561.txt, RFC 3561, July 2003.
66
Page 74
[27] D. Johnson and D. Maltz : “Dynamic Source Routing in ad hoc Wireless Networks”, T.
Imielinski and H. Korth, Eds. Mobile Computing, Ch. 5, Kluwer, 1996.
[28] J.Broch, D. Johnson, and D. Maltz: “The Dynamic Source Routing Protocol for Mobile
ad hoc Networks”, http://www.ietf.org/internet-drafts/draft-ietfmanet-dsr-03.txt, IETF
Internet draft, October 1999.
[29] S. Yi, P. Naldurg, and R. Kravets: “A security-aware ad hoc routing protocol for
wireless networks”, in: The 6th World Multi-Conference on Systemics, Cybernetics and
[31] S. Marti, T.J. Giuli, K. Lai, M. Baker: “Mitigating routing misbehavior in mobile ad
hoc networks”, Proceedings of the 6th Annual ACM/IEEE International Conference on
[32] A. Perrig, R. Canetti, J.D. Tygar and D. Song: “Efficient Authentication and Signing
Multicasts Streams over Lossy Channels”, IEEE Symposium on Security and Privacy,
September 2002.
[33] A. Perrig, R. Canetti, J. D. Tygar, and D. Song: "The tesla broadcast authentication
protocol", RSA CryptoBytes, vol. 5, 2002.
[34] B. Briscoe, A. Perrig, R. Canetti, J. D. Tygar, and D. Song: “TESLA: Multicast Source
Authentication Transform Introduction”, Internet Draft, Internet Engineering Task Force,
MSEC Working Group, December 2004.
[35] Y. C. Hu, A. Perrig and D. B. Johnson: “Ariadne: A secure on-demand routing protocol
for ad hoc networks”, Proceedings of The 8th ACM International Conference on Mobile
Page 75
[43] G. Ateniese, M. Steiner, G. Tsudik: “Authenticated group key agreement and friends”,
the Proceedings of Network and Distributed System Security Symposium (NDSS), 2004.
Communications and Networking Conference, 2005 IEEE, Volume 2, 13-17 March 2005,
pp.1193 - 1199 .
68
Page 76
[48] B. Lehane and L. Doyle: “Shared RSA Key Generation In A Mobile ad hoc Network”,
IEEE, 2003.
[49] V. Guffens, G. Bastin and O. Bonaventure: “An emulation infrastructure for multi-hop
wireless communication networks”, http://www.auto.ucl.ac.be/~guffens/uml-
wifi/download/uml_simulator.pdf, Internal report, 2004.
69
Page 77
Glossaire
Analyse du trafic
Observation des caractéristiques extérieures du trafic transitant sur un réseau afin de tenter
d'en tirer des informations : fréquence des transmissions, identités des tiers communiquants,
quantités de données transférées. Associées à des informations de nature différente (date de
rendez-vous, actualité,...), ces éléments peuvent permettre aux adversaires de faire des
déductions intéressantes.
Authenticité
Terme qui désigne le service de sécurité qui consiste à assurer à la fois l'intégrité et
l'authentification de l'origine des données.
Authentification
On distingue deux types d'authentification :
Authentification d'un tiers : C’est l'action qui consiste à prouver son identité.
Ce service est généralement rendu par l'utilisation d'un "échange d'authentification" qui
implique un certain dialogue entre les tiers communiquants.
Authentification de l'origine des données : Elle sert à prouver que les données reçues ont
bien été émises par l'émetteur déclaré.
Certificat
Document électronique qui renferme la clef publique d'une entité, ainsi qu'un certain
nombre d'informations la concernant, comme son identité. Ce document est signé par une
autorité de certification ayant vérifié les informations qu'il contient.
Chiffrement, chiffrer
Application d'un algorithme cryptographique à un ensemble de données appelées texte en
clair afin d'obtenir un texte chiffré.
70
Page 78
Clef de session
Clef ayant une durée de vie très limitée, généralement à une session.
Les clefs de session sont généralement des clefs secrètes, utilisées pour chiffrer les données
transmises, et que les tiers communiquants génèrent en début de communication.
Confidentialité
Service de sécurité qui consiste à s'assurer que seules les personnes autorisées peuvent
prendre connaissance d'un ensemble de données.
Le mécanisme qui permet d'obtenir ce service est généralement le chiffrement des données
concernées à l'aide d'un algorithme cryptographique.
On parle aussi de confidentialité du trafic lorsqu'on désire empêcher l'analyse du trafic en
cachant les adresses source et destination, la taille des paquets, la fréquence des échanges,...
Contrôle d'accès
Service de sécurité permettant de déterminer, après avoir authentifié un utilisateur, quels
sont ses privilèges et de les appliquer. Ce service a pour but d'empêcher l'utilisation d'une
ressource (réseau, machine, données,...) sans autorisation appropriée.
Cryptage, crypter
Termes dérivés de l'anglais « to encrypt » et souvent employés incorrectement à la place de
chiffrement et chiffrer. En toute rigueur, ces termes n'existent pas dans la langue française.
71
Page 79
Cryptogramme
Aussi appelé texte chiffré. Données obtenues par application d'un algorithme de
chiffrement. Le contenu sémantique de ces données n'est pas compréhensible.
Cryptographie
Étude du chiffrement et du déchiffrement, ainsi que des procédés permettant d'assurer
l'intégrité, l'authentification,...
"Discipline incluant les principes, moyens et méthodes de transformation des données, dans
le but de cacher leur contenu, d'empêcher que leur modification passe inaperçue et/ou
d'empêcher leur utilisation non autorisée." [ISO 7498-2]
Cryptologie
Étude scientifique de la cryptographie et de la cryptanalyse.
Déchiffrement
Action inverse du chiffrement, lorsque celui-ci est réversible : à l'aide d'un algorithme
cryptographique et d'une clef, on reconstruit le texte en clair à partir du texte chiffré.
Décryptement, décryptage
Action qui consiste à "casser" le chiffrement d'un texte de façon à retrouver le texte en clair
sans connaître la clef qui permet son déchiffrement normal.
Déni de service
"Impossibilité d'accès à des ressources pour des utilisateurs autorisés ou introduction d'un
retard pour le traitement d'opérations critiques." [ISO 7498-2]
72
Page 80
Disponibilité
Service de sécurité qui assure une protection contre les attaques visant à dégrader ou rendre
impossible l'accès à un service.
Empreinte (digest)
Aussi appelé condensé.
Chaîne de taille fixe obtenue par application d'une fonction de hachage à un ensemble de
données.
Fonction de hachage
Aussi appelée fonction de condensation.
Fonction qui convertit une chaîne de longueur quelconque en une chaîne de taille inférieure
et généralement fixe ; cette chaîne est appelée empreinte (digest en anglais) ou condensé de
la chaîne initiale.
Intégrité
Service de sécurité qui consiste à s'assurer que seules les personnes autorisées pourront
modifier un ensemble de données. Dans le cadre de communications, ce service consiste à
permettre la détection de l'altération des données durant le transfert.
73
Page 81
Liaison
Ensemble de matériels (câbles, modems, concentrateurs, routeurs,...) qui relient
physiquement deux équipements terminaux.
Message
Dans le monde des réseaux, un message est une suite de données binaires formant un tout
logique pour les tiers communiquants.
Lorsqu'un message est trop long pour être transmis d'un seul bloc, il est segmenté et chaque
segment est envoyé séparément dans un paquet distinct.
Non-rejouabilité
Garantie qu'un adversaire ayant intercepté des messages au cours d'une communication ne
pourra pas les faire passer pour des messages valides en les injectant soit dans une autre
communication, soit plus tard dans la même communication.
Répudiation
"Le fait, pour une des entités impliquées dans la communication, de nier avoir participé aux
échanges, totalement ou en partie." [ISO 7498-2]
74
Page 82
Signature numérique
"Données ajoutées à une unité de données, ou transformation cryptographique d'une unité de
données, permettant à un destinataire de prouver la source et l'intégrité de l'unité de données
et protégeant contre la contrefaçon (par le destinataire, par exemple)." [ISO 7498-2].
Une signature numérique fournit donc les services d'authentification de l'origine des
données, d'intégrité des données et de non-répudiation. Ce dernier point la différencie des
codes d'authentification de message, et a pour conséquence que la plupart des algorithmes
de signature utilisent la cryptographie à clef publique.
D'autre part, la signature peut prendre deux formes :
"transformation chiffrée" : un algorithme cryptographique modifie directement le message
Somme de contrôle
Condensé d'un ensemble de données, calculé par l'expéditeur avant l'envoi des données et
recalculé par le destinataire à la réception pour vérifier l'intégrité des données transmises.
Texte chiffré
Aussi appelé cryptogramme.
Données obtenues par application d'un algorithme de chiffrement. Le contenu sémantique
de ces données n'est pas compréhensible.
Texte en clair
Données intelligibles, dont la sémantique est compréhensible.
Tierce partie (ou tiers) de confiance (Trusted Third Party)
Tiers jouant un rôle dans la sécurisation des échanges entre deux partenaires en participant à
la mise en œuvre de mécanismes de sécurité. On parle aussi de notarisation.
75
Page 83
Tunneling
Technique consistant à créer un "tunnel" entre deux points du réseau en appliquant une
transformation aux paquets à une extrémité (généralement, une encapsulation dans un
protocole approprié) et en les reconstituant à l'autre extrémité.
Page 84
Définition 2. Un entier positif est premier s’il n’admet pas d’autres diviseurs que 1 et lui-
même.
Remarque : on ne connaît pas de méthode pour déterminer le n-ième nombre premier sans
avoir calculé ceux qui le précèdent.
Théorème 2. Tout nombre entier naturel s’écrit comme un produit de nombres premiers ;
cette décomposition en facteurs premiers est unique (si l’on range les facteurs par ordre
croissant).
Théorème 3. Les diviseurs communs à deux entiers naturels sont les diviseurs de leur
PGCD.
Page 85
while b ≠ 0 do
r ←a mod b ; a ← b ; b ← r.
end while
return(a).
2 Logarithme discret
Définition 4. Soit (G, .) un groupe noté multiplicativement, a et b deux éléments de G. Un
logarithme discret de b dans la base a est un élément x appartient à N tel que ax = b.
La détermination du logarithme discret est un problème difficile (si l’ordre de G est grand,
bien sûr) : cette difficulté est à la base de certaines techniques cryptographiques.
3 Totient d’Euler
Parmi les bases mathématiques qui fondent RSA on trouve la fonction de totient
d'Euler, Ø(n). Cette fonction donne le nombre d'entiers positifs plus petits ou égaux àn
aucun diviseur commun excepté 1. Pour un nombre premierp, le résultat sera Ø(p)= p -1
Par exemple, il existe 10 entiers positifs relativement premiers au nombre premier 11.
Supposons maintenant que p et q sont deux nombres premiers. Définissons n comme étant
Prenons par exemple les deux nombres premiers 11 et 13. n=11 x 13 =143. Le totient
78
Page 86
1 Découverte de route
Lorsqu’un noeud désire communiquer avec une destination, il cherche d’abord à savoir
s’il possède une route pour cette destination. Si tel est le cas, le protocole n’a pas
d’algorithme particulier à mettre en oeuvre. Dans le cas contraire, le noeud source diffuse
une demande de route RREQ (Route REQuest) comme illustré dans la figure 29.
RREQ
RREQ
RREQ
RREQ
RREQ RREQ
Source Destination
RREQ
RREQ RREQ
79
Page 87
Sécurité des réseaux ad hoc Cheikhrouhou Omar
jusqu’au nœud courant (figure 30). Un paquet RREQ est identifié de manière unique par
l’adresse de la source et l’ID de broadcast.
0 1 2 3
01234567890123456789012345678901
Type |J|R|G|D|U| Reserved | Hop Count
RREQ ID
Destination IP Address
Destination Sequence Number
Originator IP Address
Originator Sequence Number
Les noeuds qui reçoivent ces paquets pour la première fois les diffusent à leur tour, après
avoir incrémenté la valeur de hop count, jusqu’à atteindre la destination ou au moins un
noeud qui possède une information de routage récente vers la destination recherchée. Les
paquets RREQ déjà traités sont supprimés. Les noeuds situés sur le parcours de la requête
de route conservent dans leur cache l’adresse du noeud qui leur a relayé la requête.
L’adresse de ce noeud fournit l’adresse du saut suivant pour la route vers la source initiale.
On a simplement inversé le chemin du paquet de requête. Cette information est utilisée lors
du retour de la réponse de demande de route pour permettre d’aiguiller cette réponse jusqu’à
la source initiale (on suppose ici que les liens sont bidirectionnels).
Erreur ! Des objets ne peuvent pas être créés à partir des codes de champs de mise en
forme.
Quand le paquet RREQ atteint la destination ou un nœud ayant une route valide pour cette
destination un paquet RREP (Route REPly) est généré et envoyé en « unicast » vers
l’initiateur de la route par le meilleur chemin (
figure 31). Avant de faire suivre le paquet RREP, chaque nœud intermédiaire met à jour sa
table de routage.
Après avoir reçu le premier paquet RREP, la source peut commencer à émettre des paquets
de données vers la destination. Si, ultérieurement, la source reçoit un RREP contenant un
80
Page 88
numéro de séquence supérieur ou le même mais avec un nombre de sauts plus petit, elle
mettra à jour son information de routage vers cette destination et commencera à utiliser la
meilleure route. C’est pour cela qu’on dit que AODV utilise unalgorithme à vecteur de
distance dans lequel la mise à jour des routes est protégée par un numéro de séquence
associé à la destination.
d’erreur de route. Cette dernière relance une nouvelle procédure de recherche de route.
81
Page 89
1 Découverte de route
Si un destinataire est dans le cache du noeud source, la route connue est utilisée. Sinon,
une procédure de découverte de route est déclenchée. Les paquets de découverte de route
contiennent les adresses source et destination ainsi qu’un identifiant permettant aux noeuds
intermédiaires de savoir s’ils ont déjà traité les paquets. Le chemin vers la destination est
créé dans le paquet de recherche de route. Chaque noeud qui reçoit ce paquet ajoute à la
route préexistante dans ce paquet sa propre adresse (figure 32). Lorsqu’un des paquets de
recherche de route atteint sa destination ou un noeud qui possède une route valide vers la
destination, ce noeud répond à la source initiale.
Comme, a priori, ce noeud ne possède pas de route vers la source initiale (dans le cas où les
liens ne sont pas bidirectionnels), une nouvelle recherche de route doit être entreprise. Pour
éviter un bouclage infini des recherches de route, la route construite est ajoutée à la nouvelle
82
Page 90
recherche de route, de sorte que le noeud source connaisse une route valide pour sa réponse.
Si l’on fait l’hypothèse que les liens rapportés par la recherche de route initiale sont
symétriques, on peut utiliser cette route pour créer une réponse. DSR possède le même
mécanisme qu’AODV pour limiter le nombre de sauts pendant la recherche de route.
Lors de la réception du paquet d’erreur par l'hôte source, le nœud concerné par l'erreur est
supprimé du chemin sauvegardé, et tous les chemins qui contiennent ce nœud sont tronqués
à ce point là. Par la suite, une nouvelle opération de découverte de routes vers la destination
est initiée par l'émetteur.
83
Page 91
84
Page 92
85
Page 93
#
# Multi-device support (RAID and LVM)
#
# CONFIG_MD is not set
#
# Memory Technology Devices (MTD)
#
CONFIG_MTD=y
# CONFIG_MTD_DEBUG is not set
86
Page 94
I$(KERNEL_DIR)/arch/um/include -I$(KERNEL_DIR)/arch/um//kernel/tt/include -
I$(KERNEL_DIR)/arch/um/kernel/skas/include
Modifier la cible install
install: default
install -s -m 755 aodvd /root/UML/aodv_uu/aodvd
@if [ ! -d /root/UML/aodv_uu/modules/$(KERNEL)/aodv ]; then \
mkdir -p /root/UML/aodv_uu/modules/$(KERNEL)/aodv; \
fi
87