Vous êtes sur la page 1sur 88

Ceci est la version HTML du fichier http://www.univ-tebessa.dz/fichiers/master/master_1894.pdf.

Lorsque Google explore le Web, il crée


automatiquement une version HTML des documents récupérés.
Astuce : Pour trouver rapidement votre terme de recherche sur cette page, appuyez sur Ctrl+F ou sur ⌘+F (Mac), puis utilisez la barre de recherche.

Page 1

République Tunisienne Cycle de Formation d’Ingénieurs


Ministère de l’Enseignement Supérieur
dans la discipline
Génie informatique
Université de Sfax
Ecole Nationale d’Ingénieurs de Sfax Projet de fin d’études
Département d’Informatique
et de Mathématiques Appliquées
N° d’ordre: 2004-GI42

MEMOIRE
présenté à

l’Ecole Nationale d’Ingénieurs de Sfax


(Département d’Informatique et de Mathématiques Appliquées)

en vue de l’obtention

du Diplôme National d’Ingénieur en Génie Informatique

par

Omar Cheikhrouhou

Sécurité des réseaux ad hoc


soutenu le 4 juillet 2005, devant la commission d'examen :

M. Mohamed JMAIEL Président

M. Bachar ZOUARI Membre

M. Maher BEN JEMAA Membre

Mme. Yousra BEN JEMAA Membre


Page 2

Sécurité des réseaux ad hoc

: ‫ﺔ ﺻ ﻼ ﺧ ﻟا‬
‫ﻋﻮرﺷﻣﻟا اذھ ﻲﻓﺔﻣﻼﺳ ﺔﺳارد ﯽﻟإتﺎﮐﺑﺷ ﻛﻮﮬﺪأ ﮭﻟ وذتﺎﻣﺟﮭﻟا دﯾدﻌﺗﺑ ﺎﻧﻣﻗ ﺿﺮﻐﻟا ا‬ ‫ﺎﻧ ﻗ ر طﺗ‬
‫ةدوﺟوﻣﻟا ﻟﻮﻟﺣﻟا ﺔﺳاردﺑ ﺎﻧﻣﻗ و ﺔﻟﻣﺗﺣﻣﻟاﺔﻧﯾﺎﻌﻣو بﯾرﺟﺗﻟ ﺔﯾﺿارﺗﻓا ﺔﮐﺑﺷ‬. ‫ﻊﺿوﺑ ﺎﻧﻣﻗ ﺎﻣﮐ‬
. ‫تﺎﻣﺟﮭﻟا و ﻟﻮﻟﺣﻟاةرﺎﺗﺧﻣﻟا‬

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.

.‫ﮐﺑﺷﺔﺔﯾﺿارﺗﻓا‬,‫تﺎﮐﺑﺷ ﺔﯾﺎﻣﺣ ﻛﻮﮬﺪأ‬


,‫تﺎﮐﺑﺷﻟا ﺔﯾﺎﻣﺣ‬
,‫ﺔﮐﺑﺷ ﻛﻮﮬﺪأ‬: ‫ﺢﯾﺗﺎﻔﻣﻟا‬

Mots clés : réseaux Ad Hoc, sécurité des réseaux, sécurité du routage,


simulation.

Key-words: Ad Hoc networks, networks security, secure routing,


simulation.
Page 3

Sécurité des réseaux ad hoc Cheikhrouhou Omar

Mes remerciements les plus chaleureux s’adressent principalement àMme Maryline

Maknavicius, Maître de conférences à l’INT (Institut National des Télécommunications),


pour m’avoir fait confiance et m’avoir accueilli au sein de son équipe. Je la remercie pour
m’avoir guidé avec enthousiasme et dynamisme, pour ses remarques pertinentes et sa
sympathie.

Je voudrais également remercier Monsieur Maher Ben Jemâa pour l’occupation


qu’il accorde aux étudiants pour leur fournir les moyens favorables et pour son aide tout au
long de ma carrière scientifique. Je le remercie aussi pour sa meilleure collaboration, son
soutien et ses encouragements.
Je voudrais remercier Mme Yousra Ben Jemâa pour sa disponibilité et ses
remarques judicieuses qu’elle m’a prodigués au début de mon stage.

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.

J’exprime également mes vifs remerciements à Mr Mohamed Jmaiel, Maître de


conférences à l’ENIS, pour l’honneur qu’il m’a fait en présidant mon jury de mémoire de
fin d’études, et à Mr Bachar Zouari pour avoir accepté d’être rapporteur de ce projet.

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

Sécurité des réseaux ad hoc Cheikhrouhou Omar

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

Sécurité des réseaux ad hoc Cheikhrouhou Omar


Chapitre
1 4 : Les
Introduction attaques dans les protocoles de routage ......................................................
................................................................................................................... 26 26
2 Les protocoles de routage dans les réseaux ad hoc ....................................................... 26
3 Les attaques possibles dans les protocoles de routage .................................................. 28
3.1 Attaques par suppression de paquets..................................................................... 28
3.2 Attaques par modification des informations de routage........................................ 28
3.3 Attaques par usurpation d’identité (Spoofing) ...................................................... 30
3.4 Attaques par fabrication de messages.................................................................... 31
3.5 Attaques du trou de ver (Wormhole attacks)......................................................... 32
3.5.1 Wormhole par encapsulation......................................................................... 32
3.5.2 Wormhole par un réseau externe................................................................... 33
3.5.3 Wormhole par transmission à forte puissance............................................... 34
4 Conclusion.....................................................................................................................34
Chapitre 5 : Conception d’une stratégie de sécurité.............................................................. 35
1 Introduction ................................................................................................................... 35
2 Solution pour l’authentification..................................................................................... 35
2.1 Service d’authentification distribué....................................................................... 35
Description de protocole................................................................................................ 36
2.2 Etablissement d’une clef secrète commune (Accord de clef) ............................... 37
2.2.1 Protocole général ........................................................................................... 38
2.2.2 Protocole de Diffie-Hellman authentifié par mot de passe ........................... 40
3 Protocoles de routage sécurisé....................................................................................... 42
3.1 Propriétés désirées d’un protocole de routage sécurisé......................................... 42
3.2 Le protocole SAR .................................................................................................. 42
3.3 Le protocole ARAN .............................................................................................. 43
3.3.1 Etape 1 ........................................................................................................... 43
3.3.2 Etape 2 ........................................................................................................... 45
3.4 Le protocole Ariadne............................................................................................. 46
3.4.1 Le protocole TESLA ..................................................................................... 46
3.4.2 Mécanisme de découverte de route avec TESLA.......................................... 48
4 Mécanismes complémentaires pour atténuer le comportement des nœuds malicieux .. 50
4.1 Watchdog............................................................................................................... 50
4.2 Pathrater................................................................................................................. 51
5 Conclusion.....................................................................................................................51
Chapitre 6 : Mise en place d’une plateforme virtuelle de Simulation................................... 54
1 Introduction ................................................................................................................... 54
2 Présentation de l’environnement ................................................................................... 54
3 Qu'est ce que User Mode Linux ? ................................................................................. 55
4 Installation de la machine UML.................................................................................... 55
4.1 Etapes d'installation du noyau UML ..................................................................... 56
4.2 Amélioration de performance................................................................................ 56
5 Mise en réseau ............................................................................................................... 57
6 Tests............................................................................................................................... 58
7 Paramétrage du simulateur ............................................................................................ 59
8 Simulation ..................................................................................................................... 60
9 Conclusion.....................................................................................................................62
Conclusion et perspective...................................................................................................... 63
Références ............................................................................................................................. 65

IV

Page 6

Sécurité des réseaux ad hoc Cheikhrouhou Omar

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

Sécurité des réseaux ad hoc Cheikhrouhou Omar

Liste des figures


Figure 1. Exemple d’application des réseaux ad hoc.............................................................. 5
Figure 2. Communication dans un réseau radio maillé.......................................................... 6
Figure 3. Principes de base de la cryptologie......................................................................... 8
Figure 4. Le mode CBC......................................................................................................... 10
Figure 5. Principe du chiffre de Feistel................................................................................. 11
Figure 6. Principes de DES................................................................................................... 14
Figure 7. Itération de l'AES................................................................................................... 15
Figure 8. Fonction de hachage avec chiffrement symétrique................................................ 17
Figure 9. Fonction de hachage avec chiffrement à clef publique.......................................... 17
Figure 10. Fonction de hachage sans chiffrement................................................................. 18
Figure 11. Redirection du trafic ............................................................................................ 29
Figure 12. Présence d’un nœud malicieux dans une route.................................................... 30
Figure 13. Création de boucles de routage par spoofing...................................................... 30
Figure 14. Wormhole par encapsulation............................................................................... 33
Figure 15. Wormhole par un réseau externe......................................................................... 33
Figure 16. Mécanisme d’authentification d’un nœud............................................................ 36
Figure 17. Accord de clef entre deux noeuds ........................................................................ 39
Figure 18. Protocole de Diffie-Hellman authentifié.............................................................. 40
Figure 19. Génération des clefs TESLA ................................................................................ 48
Figure 20. Mécanisme de découverte de route dans Ariadne ............................................... 49
Figure 21. Collision ambiguë au niveau du watchdog.......................................................... 51
Figure 22. Collision au niveau du récepteur......................................................................... 51
Figure 23. Architecture logicielle du simulateur [49]........................................................... 55
Figure 24. Ping entre deux machines UML........................................................................... 57
Figure 25. Variation de la distance maximale en fonction de l’atténuation......................... 59
Figure 26. Variation de la distance maximale en fonction de la puissance de bruit............ 60
Figure 27. Effet des nœuds malicieux sur % paquet perdu ................................................... 61
Figure 28. Effet des nœuds malicieux sur le nombre moyen de sauts................................... 62
Figure 29. Mécanisme de recherche de route par AODV..................................................... 79
Figure 30. Format d'un paquet RREQ dans AODV .............................................................. 80
Figure 31. Retour de la réponse à une demande de route dans AODV................................. 80
Figure 32. Mécanisme de découverte de route dans DSR..................................................... 82
Figure 33. Le noeud en amont de rupture envoie un message RERR.................................... 83

VI

Page 8

Sécurité des réseaux ad hoc Cheikhrouhou Omar

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

Sécurité des réseaux ad hoc Cheikhrouhou Omar

Chapitre 1 : Les réseaux sans fil

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.

2 Les différents types de réseaux sans fil


Comme pour les réseaux filaires, on classe généralement les réseaux sans fil selon leur
domaine de couverture : les réseaux personnels WPAN (Wireless Personal Area Networks),

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

2.1 Réseaux personnels sans fil


Les WPAN sont des réseaux sans fil de faible portée (quelques dizaines de mètres) à
usage personnel. Ils sont déjà présents sous différents noms :

➢ Bluetooth : nom commercial de la norme IEEE 802.15.1,Bluetooth est


aujourd'hui présent dans de nombreux dispositifs. Malgré un débit de 1 Mb/s et une portée

d’environ 30 mètres, Bluetooth offre de nombreuses possibilités grâce à la faible


consommation de ses équipements. On trouve des composants Bluetooth dans beaucoup
d'ordinateurs portables mais aussi dans de nombreux périphériques (appareils photos,
téléphones portables, assistants personnels, ...).

➢ 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

Sécurité des réseaux ad hoc Cheikhrouhou Omar

place dans les périphériques informatiques mais également en domotique (éclairage,


système de sécurité, ...).

➢ Les liaisons infrarouges : elles sont majoritairement utilisées pour des

communications courte distance, cependant leur sensibilité aux perturbations empêche le


développement de cette technologie dans les réseaux sans fil ayant une portée supérieure à
une dizaine de mètres. Néanmoins, la portée d'interception peut-être très supérieure.

2.2 Réseaux locaux sans fil (norme IEEE 802.11)


La norme IEEE 802.11 (ISO/IEC 8802-11) est un standard qui décrit les

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

Sécurité des réseaux ad hoc Cheikhrouhou Omar

2.4 Réseaux étendus sans fil


Le réseau étendu sans fil est également connu sous le nom de réseau cellulaire mobile.
Il s'agit des réseaux sans fil les plus répandus puisque tous les téléphones mobiles sont
connectés à un réseau étendu sans fil. Les principales technologies sont les suivantes :

➢ GSM (Global System for Mobile Communication ou en français Groupe Spécial


Mobile)

➢ GPRS (General Packet Radio Service)

➢ UMTS (Universal Mobile Telecommunication System)

3 Classification des réseaux Wi-Fi


Les réseaux mobiles de type 802.11 peuvent être classés en deux classes : les réseaux
avec infrastructure et les réseaux sans infrastructure.

3.1 Les réseaux sans infrastructure

Dans le mode de fonctionnement sans infrastructure appelé aussi mode Ad-hoc, un


groupe de terminaux s’associe pour former un IBSS (Independent Basic Set Service), dont
le rôle consiste à permettre aux stations de communiquer sans l’aide d’une quelconque
infrastructure. Chaque station peut établir une communication avec n’importe quelle autre
station dans l’IBSS sans être obligée de passer par un point d’accès.

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 Les réseaux ad hoc

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

Sécurité des réseaux ad hoc Cheikhrouhou Omar

3.1.1.2 Domaines d'application


Historiquement, le premier domaine d'application des réseaux ad hoc fut le domaine
militaire. Dans les années 1970, le DARPA (Defence Advanced Research Projects Agency)
propose le protocole Packet Radio Network [6]. Ce protocole permet de déployer un
mécanisme de communication entre les différents groupes d'unités par l'intermédiaire de
véhicules qui communiquent ensemble par liaison radio. L'intérêt des militaires pour une
telle technologie s'explique par le caractère particulièrement adapté des réseaux ad hoc aux
situations hostiles. En effet, comme le réseau est auto organisé et qu'il ne nécessite pas
d'infrastructure, il peut être déployé rapidement, sans difficulté et offrir une bonne tolérance
aux pannes [9]. D'où l'utilisation possible également dans le cadre de sinistres, comme les
tremblements de terre ou les incendies, pour permettre aux équipes de sauvetage de
communiquer alors que les infrastructures de communication classiques sont détruites ou
pour permettre aux survivants d'établir un réseau aidant à leur localisation [7] (figure 1).

Figure 1. Exemple d’application des réseaux ad hoc


Il est évident que dans un contexte plus commercial, les réseaux ad hoc peuvent également
servir à former des réseaux locaux. En effet, la mise en place du réseau est plus simple car il
n’y a pas de câbles à tirer dans le bâtiment, d'où une économie intéressante pour une
entreprise.

3.2 Les réseaux avec infrastructure


Le mode infrastructure est défini pour fournir aux différentes stations des services
spécifiques sur une zone de couverture déterminée par la taille du réseau. Les réseaux

Page 13

Sécurité des réseaux ad hoc Cheikhrouhou Omar

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

Les réseaux Mesh


Pour déployer à moindre coût un réseau sans fil à l'échelle d'une ville, on peut utiliser
un réseau radio maillé, aussi appelé « mesh network ». Il consiste en un ensemble de
stations de base qui utilisent une liaison radio pour communiquer et qui couvrent la zone
visée. Ainsi, les stations de base agissent comme des relais radio pour les communications
des mobiles. Dans un réseau radio maillé, chaque mobile est rattaché à la station de base la
plus proche, avec laquelle il communique exclusivement.
Figure 2. Communication dans un réseau radio maillé

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

Sécurité des réseaux ad hoc Cheikhrouhou Omar

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.

Dans le chapitre suivant, nous allons présenter quelques concepts cryptographiques.


Leur lecture aidera à la compréhension des solutions de sécurité décrites dans le chapitre 5.
7

Page 15

Sécurité des réseaux ad hoc Cheikhrouhou Omar

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

clair, donne un texte chiffré ou cryptogramme. Inversement, le déchiffrement est l'action


qui permet de reconstruire le texte en clair à partir du texte chiffré (figure 3).

Un algorithme cryptographique est une fonction mathématique utilisée pour le


chiffrement et le déchiffrement [10].

Décryptage

Figure 3. Principes de base de la cryptologie


8

Page 16

Sécurité des réseaux ad hoc Cheikhrouhou Omar

La cryptanalyse, à l'inverse, est l'étude des procédés cryptographiques dans le but de


trouver des faiblesses et, en particulier, de pouvoir décrypter des textes chiffrés. Le

décryptage est l'action consistant à retrouver le texte en clair sans connaître la clef de
déchiffrement.

La cryptologie est une science mathématique qui comporte deux branches : la

cryptographie et la cryptanalyse.

Il existe deux grandes familles d'algorithmes cryptographiques à base de clefs : les


algorithmes à clef secrète ou algorithmes symétriques, et les algorithmes à clef publique
ou algorithmes asymétriques.

3 Chiffrement symétrique ou à clef secrète


Dans la cryptographie conventionnelle, les clefs de chiffrement et de déchiffrement

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 symétriques sont de deux types :

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

3.1 Algorithmes de chiffrement par blocs


Les algorithmes de chiffrement par blocs peuvent être utilisés suivant différents modes,
dont les deux principaux sont le mode ECB (Electronic CodeBook) et le mode CBC (Cipher

Block Chaining).

3.1.1 Le mode ECB (Electronic CodeBook)


Le mode ECB consiste à chiffrer un bloc de texte en clair en un bloc de texte chiffré
indépendamment des blocs précédents. L'avantage de ce mode est qu'il permet le
chiffrement en parallèle des différents blocs composant un message. L'inconvénient de ce

mode est qu'un même bloc de texte en clair sera toujours chiffré en un même bloc de texte

9
Page 17

Sécurité des réseaux ad hoc Cheikhrouhou Omar

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.

3.1.2 Le mode CBC (Cipher Block Chaining)


La solution aux problèmes posés par le mode ECB est d'utiliser une technique dite de
chaînage, dans laquelle chaque bloc du cryptogramme dépend non seulement du bloc de
texte en clair correspondant, mais aussi du bloc précédent.

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.

Figure 4. Le mode CBC

Le masquage de la structure du texte en clair par le chaînage est le principal avantage du


mode CBC. Un attaquant ne peut plus manipuler le cryptogramme, excepté en retirant des
blocs au début ou à la fin.

10

Page 18
Sécurité des réseaux ad hoc Cheikhrouhou Omar

On pourrait craindre que le chaînage de blocs entraîne une propagation d’erreur


importante. De fait, une erreur d'un bit sur le texte en clair affectera tous les blocs chiffrés
suivants. Par contre, si un bit du texte chiffré est modifié au cours du transfert, seul le bloc
de texte en clair correspondant et un bit du bloc de texte en clair suivant seront
endommagés : le mode CBC est dit auto-réparateur.

3.1.3 Chiffrement par blocs avec itération


Un algorithme de chiffrement par blocs avec itération est un algorithme qui chiffre les
blocs par un processus comportant plusieurs itérations. Dans chaque itération, la même
transformation est appliquée au bloc, en utilisant une sous-clef dérivée de la clef de
chiffrement. En général, un nombre d’itérations plus élevé garantit une meilleure sécurité,
au détriment des performances.

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

Figure 5. Principe du chiffre de Feistel

Un avantage de ce type d'algorithmes est que chiffrement et déchiffrement sont


structurellement identiques.
11

Page 19

Sécurité des réseaux ad hoc Cheikhrouhou Omar

3.2 Algorithmes de chiffrement en continu


Les algorithmes de chiffrement de flux (stream ciphers) peuvent être définis comme
étant des algorithmes de chiffrement par blocs, où le bloc a une dimension unitaire (1 bit, 1
octet, etc.) ou relativement petite. Leurs avantages principaux viennent du fait que la
transformation (méthode de chiffrement) peut être changée à chaque symbole du texte clair
et du fait qu'ils soient extrêmement rapides. De plus, ils sont utiles dans un environnement
où les erreurs sont fréquentes car ils ont l'avantage de ne pas propager les erreurs.

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

4 Chiffrement asymétrique ou a clef publique


Le concept de cryptographie à clef publique fut inventé par Whitfield Diffie et Martin
Hellman en 1976, afin de résoudre le problème de distribution des clefs posé par la
cryptographie à clef secrète. De nombreux algorithmes permettant de réaliser un
cryptosystème à clef publique ont été proposés depuis. Ils sont le plus souventbasés sur des

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.

Avec les algorithmes asymétriques, les clefs de chiffrement et de déchiffrement sont

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

Sécurité des réseaux ad hoc Cheikhrouhou Omar

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.

L’inconvénient de la cryptographie à clef publique est la lenteur de ces algorithmes par


rapport à ceux à clef secrète par exemple DES est mille fois plus rapide que RSA.

5 Algorithmes cryptographiques à clef secrète


La méthode la plus employée pour concevoir un procédé de chiffrement est de chercher
à réaliser une transformation suffisamment compliquée et irrégulière pour que son analyse
soit difficile. Cette méthode empirique ne fournit aucune garantie quant à la résistance de
l'algorithme résultant.

La sécurité du chiffrement conventionnel dépend du secret de la clef, non du secret de


l’algorithme. C’est à dire qu’on suppose qu’il est impossible de déchiffrer un message sur la
base du texte chiffré et la connaissance de l’algorithme de chiffrement/déchiffrement. En
d’autres termes, il n’est pas nécessaire de maintenir l‘algorithme secret mais seulement la
clef.

5.1 DES (Data Encryption Standard)


Le DES est un algorithme de chiffrement par blocs qui agit sur desblocs de 64 bits.
C’est un chiffre de Feistel à 16 rondes. La longueur de la clef est de 56 bits.
Généralement, celle-ci est représentée sous la forme d'un nombre de 64 bits, mais un bit par
octet est utilisé pour le contrôle de parité. Les sous-clefs utilisées par chaque ronde ont une
longueur de 48 bits. L'algorithme comprend trois phases de transformation :

➢ Permutation initiale : qui consiste à permuter le bloc de 64 bits en entrée.

13

Page 21

Sécurité des réseaux ad hoc Cheikhrouhou Omar

➢ Itérations de calcul : seize itérations de calcul effectuées sous le contrôle de 16 sous-


clefs dérivées à partir de la clef initiale.

➢ Permutation finale : inverse de la permutation initiale, appliquée sur le résultat de


l'étape précédente.

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)

R n = Ln-1 ⊕ F(Rn-1, Kn ) (2)

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

Figure 6. Principes de DES

14

Page 22

Sécurité des réseaux ad hoc Cheikhrouhou Omar

5.2 AES (Advanced Encryption Standard)


En octobre 2000, un nouveau standard de chiffrement à clef secrète fut élu parmi 15
candidats par le NIST (National Institute of Standards and Technology) afin de remplacer le
vieillissant DES dont la taille des clefs devenait trop petite. L'algorithme choisi pour devenir
l'AES est le Rijndael, du nom condensé de ses concepteurs, Rijmen et Daemen.
Celui-ci est un système de chiffrement par blocs. Les messages sont chiffrés par blocs de
128 bits.

Texte en clair
de 128 bits
⊕ F F ... F
Texte chiffré
de 128 bits
K0 K1 K2 K10

Figure 7. Itération de l'AES

Le principe de fonctionnement de l'AES est décrit dans la

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.

6 Algorithmes cryptographiques à clef publique


Parmi les algorithmes cryptographiques les plus utilisés on peut citer RSA. Ce dernier
est inventé par Rivest, Shamir et Adleman en 1978 et il repose sur la difficulté de factoriser

des grands nombres.

15

Page 23

Sécurité des réseaux ad hoc Cheikhrouhou Omar

Voici comment se fait la génération des paires de clefs :

1. On commence par choisir deux grands nombres premiers,p et q, et on calcule

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.

3. La clef privée d est obtenue grâce à l'algorithme d’Euclide : ed = 1 mod (p-1)(q-1).

Soit m le message en clair et c le cryptogramme. La fonction de chiffrement est, de façon


simplifiée, c = m e mod n (si m est plus grand que n, il est séparé en morceaux de valeur
inférieure à n et chaque morceau est chiffré séparément suivant cette formule). Du fait de la
relation entre e et d, la fonction de déchiffrement correspondante estm = c d mod n. La

signature se fait de manière similaire, en inversant e et d, c’est-à-dire en chiffrant avec une


clef privée et en déchiffrant avec la clef publique correspondante :s = m d mod n et m = s e

mod n.

Pour un cryptanalyste, retrouver la clef privée à partir de la clef publique nécessite de


connaître (p-1)(q-1) = pq-p-q+1 = n+1-p-q, donc de connaître p et q. Pour cela, il doit
factoriser le grand nombre n. Donc n doit être suffisamment grand pour que cela ne soit pas
possible dans un temps raisonnable par rapport au niveau de sécurité requis. Actuellement,
la longueur du module n varie généralement de 512 à 2048 bits suivant les utilisations.
Compte tenu de l'augmentation des puissances de calcul des ordinateurs et des avancées
mathématiques en matière de factorisation des grands nombres, la longueur minimale des
clefs doit augmenter au cours du temps.

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

Sécurité des réseaux ad hoc Cheikhrouhou Omar

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.

Figure 8. Fonction de hachage avec chiffrement symétrique

L’authentification peut être assurée en utilisant le chiffrement symétrique (

figure 8) et dans ce cas on parle de MAC (Message Authentification Code). Le résumé de


message peut aussi être chiffré en utilisant le chiffrement à clef publique et le résultat de

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.

Figure 9. Fonction de hachage avec chiffrement à clef publique

17

Page 25

Sécurité des réseaux ad hoc Cheikhrouhou Omar

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.

Figure 10. Fonction de hachage sans chiffrement

Les algorithmes de hachage les plus utilisés actuellement sont :


➢ MD5 (MD signifiant Message Digest) créant une empreinte digitale de 128 bits.
➢ SHA (Secure Hash Algorithm, pouvant être traduit par Algorithme de hachage
sécurisé) créant des empreintes d'une longueur de 160 bits.

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

Sécurité des réseaux ad hoc Cheikhrouhou Omar

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.

Voici le déroulement de l'algorithme :

➢ Alice et Bob se mettent d'accord sur un grand entiern tel que (n-1)/2 soit premier et

sur un entier g primitif par rapport à n ( ∀ b ∈ ,],1,1[


n− ∃a telque , g a = b(mod n ) ). Ces

deux entiers sont publics.

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

➢ Alice envoie A à Bob ; Bob envoie B à Alice.

➢ Alice calcule KAB = B a


mod n ; Bob calcule KBA = A
b
mod n. KAB = KBA = g
ab
mod n
est le secret partagé par Alice et Bob.

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 :

A=75 mod 71=51

B=712 mod 71=4


Après qu’ils ont échangé les clefs publiques, ils peuvent calculer la clef secrète commune :

K=Ba mod 71 =45 mod 71 =30

K=Ab mod 71= 5112 mod 71 =30

De 51 et 4 un attaquant ne peut pas facilement calculer 30.

En revanche, Diffie–Hellman est vulnérable à l'attaque active dite attaque de l’intercepteur.

Une façon de contourner le problème de l'attaque de l'intercepteur sur Diffie–Hellman est


d'authentifier les valeurs publiques utilisées pour la génération du secret partagé. On parle
alors de Diffie–Hellman authentifié. L'authentification peut se faire à deux niveaux :
19

Page 27

Sécurité des réseaux ad hoc Cheikhrouhou Omar

➢ En utilisant des valeurs publiques authentifiées, à l'aide de certificats par exemple.


Cette méthode est notamment à la base du protocole SKIP.

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

La cryptographie à base de clefs peut être classée en deux catégories : la cryptographie


symétrique qui présente l’avantage d’être rapide et qui est généralement utilisée pour le
chiffrement de données et la cryptographie asymétrique qui est plutôt préconisée pour
l’authentification basée par exemple sur la signature numérique.
20

Page 28

Sécurité des réseaux ad hoc Cheikhrouhou Omar

Chapitre 3 : Sécurité des réseaux ad hoc

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.

2 Les caractéristiques des réseaux ad hoc


Les réseaux mobiles ad hoc sont caractérisés par :

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

➢ L'absence d'infrastructure : Les réseaux ad hoc se distinguent des autres réseaux


mobiles par la propriété d'absence d'infrastructure préexistante et de tout genre
d'administration centralisée. Les hôtes mobiles sont responsables d'établir et de maintenir la
connectivité du réseau d'une manière continue.

21

Page 29

Sécurité des réseaux ad hoc Cheikhrouhou Omar

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.

3.1 Fonctions et données à protéger


Pour cerner le problème de la sécurité, il faut tout d’abord déterminer les ressources

sensibles qu’on doit protéger.

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

3.2 Services de sécurité


Les réseaux ad hoc doivent satisfaire les services de sécurité suivants :

• Contrôle d’accès : empêcher les nœuds étrangers d’accéder au réseau. Le contrôle

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

Sécurité des réseaux ad hoc Cheikhrouhou Omar

• Authentification : s'assurer de l'identité des entités en cours de communication.

Avec l’authentification, le destinataire sera sûr que le message provient de la source


prétendue.

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

• Intégrité : assurer que la modification des données transmises sera détectée. On

utilise souvent les fonctions de hachage pour assurer l'intégrité.

• Non-répudiation : empêcher un noeud de nier l'envoi ou bien la réception d'un

message.

• Fraîcheur : garantir que les données présentes échangées sur le réseau sont viables.

Ce service permet de lutter contre la réinjection d’anciens messages interceptés par un


attaquant [8].

• Disponibilité : assurer la présence des services du réseau même en présence

d'attaques de déni de service. Ces attaques peuvent se présenter au niveau de différentes


couches d'un réseau ad hoc. La disponibilité donne aussi une assurance sur la réactivité et le
temps de réponse du réseau [1,8].

3.3 Vulnérabilité des réseaux ad hoc

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

Sécurité des réseaux ad hoc Cheikhrouhou Omar

De même, la capacité limitée des nœuds en puissance de calcul et énergie consommée


empêche l’utilisation des mécanismes cryptographiques résistants comme la cryptographie à
clef publique.

3.4 Les attaques dans les réseaux ad hoc


Une première classification des attaques consiste à distinguer les attaques passives des
attaques actives.

Les attaques passives se limitent à l’écoute et l’analyse du trafic échangé. Ce type


d’attaques est plus facile à réaliser (il suffit de posséder le récepteur adéquat) et il est
difficile à détecter puisque l’intrus n’apporte aucune modification sur les informations
échangées. L’intention de l’intrus peut être la connaissance des informations confidentielles
des utilisateurs ou bien la connaissance des nœuds importants dans le réseau, en analysant

les informations de routage, pour se préparer à une attaque active.


Dans les attaques actives, un intrus tente de supprimer ou modifier les messages transmis
sur le réseau. Il peut aussi injecter son propre trafic ou rejouer d’anciens messages pour
perturber le fonctionnement du réseau ou provoquer un déni de service.

Parmi les attaques actives les plus connues, on peut citer [8, 12, 13] :

➢ Relais sélectif de paquets (Selective forwarding) : Un noeud décide de ne pas


transmettre les données de certains noeuds. La raison peut être aussi bien d’ordre
énergétique, que liée à une attaque.
➢ Attaque du trou noir : Un noeud falsifie les informations de routage pour forcer le
passage des données par lui-même. Sa seule mission est ensuite de ne rien transférer, créant
ainsi une sorte de puits ou « trou noir » dans le réseau.
➢ Attaque du trou de ver : Cette variante du trou noir consiste à réinjecter les paquets
absorbés en un autre point (souvent distant) du réseau. Pour des distances plus longues que
la couverture normale d’une transmission sans fil d’un hop, un attaquant peut s’arranger
pour faire arriver ses paquets plus rapidement que par une route multi-hops. Il suffit pour lui
d’utiliser un réseau externe câblé ou un transfert sans fil directionnel à forte puissance.
➢ Attaque de l’identité multiple : Cette attaque porte le nom anglais de Sybil attack
[3, 12,13]. Un noeud se fait passer pour plusieurs nœuds potentiellement distants, créant des
incohérences dans les tables de routage des noeuds voisins.

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

Sécurité des réseaux ad hoc Cheikhrouhou Omar

Chapitre 4 : Les attaques dans les protocoles de


routage

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

2 Les protocoles de routage dans les réseaux ad hoc


Suivant la manière de création et de maintenance de routes lors de l'acheminement des
données, les protocoles de routage peuvent être classés en trois catégories [22] :

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

Sécurité des réseaux ad hoc Cheikhrouhou Omar

instantanément la route vers une destination quelconque au prix de l’envoi périodique de


trames de topologie. Les protocoles proactifs fonctionnent vis-à-vis de la couche réseau
comme des protocoles de routage classiques.

Parmi les protocoles de routage proactifs, on peut citer :

➢ OLSR (Optimised Link State Routing)


➢ FSR (Fisheye State Routing)

➢ DSDV (Destination Sequenced Distance Vector)

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

d’une requête de recherche réactive, un nœud peut indiquer immédiatement si la destination


est dans le voisinage ou non, et par conséquent savoir s’il faut aiguiller la requête vers les
autres zones sans déranger le reste de sa zone. Ce type de protocole s’adapte bien aux
grands réseaux, cependant, il cumule aussi les inconvénients des protocoles réactifs et
proactifs : messages de contrôle périodiques, plus le coût de découverte d’une nouvelle
route.
Parmi les protocoles de routage hybrides, on peut citer :
➢ ZRP (Zone Routing Protocol)
➢ CBRP (Cluster Based Routing Protocol)

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

Sécurité des réseaux ad hoc Cheikhrouhou Omar

3 Les attaques possibles dans les protocoles de routage

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.

On peut aussi classer ces attaques en deux catégories :

• 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).

• Les attaques actives dans lesquelles l’intrus tente de perturber le fonctionnement du

réseau en supprimant, en modifiant, en fabriquant des paquets ou en rejouant d’anciens


paquets.

3.1 Attaques par suppression de paquets

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

l’attaquant supprime les paquets de données et transmet ceux de contrôle.

3.2 Attaques par modification des informations de routage

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.

Selon le champ modifié, on peut classer les attaques comme suit :

• Redirection par modification du numéro de séquence : Certains protocoles de

routage comme AODV protègent la mise à jour de leurs caches contre les anciennes

28

Page 36

Sécurité des réseaux ad hoc Cheikhrouhou Omar

informations de routage grâce à un numéro de séquence associé à la destination qui indique


la fraîcheur de la route. Un nœud malicieux peut donc modifier la valeur du champ numéro
de séquence pour faire détourner le trafic vers lui. Ensuite, il peut intercepter, supprimer ou
modifier ce trafic.

SA B C D X

M
Figure 11. Redirection du trafic

La figure 11 illustre un exemple de redirection de trafic : supposons que le nœud malicieux


M reçoit le RREQ initialisé par la source S qui cherche une route vers X. M envoie en mode
« unicast » alors à B un RREP contenant un numéro de séquence supérieur à la valeur réelle.
B va alors rejeter tous les autres RREP puisque ces derniers ont un numéro de séquence plus
petit que celui déjà reçu de M. De cette façon, le nœud malicieux M a réussi à diriger tout le
trafic destiné à X vers lui.

• Redirection par modification du nombre de sauts (hop count) : Les protocoles

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.

• Déni de service par modification des informations de routage par la source

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

La figure 12 illustre un exemple de déni de service. Supposons que la source S veut


communiquer avec le nœud X. S transmet alors ses paquets vers X en indiquant dans

l’entête la liste des différents sauts : S→A→B→M→C→D→X. En recevant le paquet, le


nœud malicieux M peut modifier la route en supprimant par exemple D. Quand C reçoit le

29

Page 37

Sécurité des réseaux ad hoc Cheikhrouhou Omar

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

Figure 12. Présence d’un nœud malicieux dans une route

3.3 Attaques par usurpation d’identité (Spoofing)


Un nœud malicieux change son adresse IP ou son adresse MAC afin de se faire passer
pour un autre nœud légitime du réseau. L’intrus ensuite peut lancer ses attaques avec
l’identité de ce nœud.

AD
AD
M
BCE…X
BCE…X
A)
M B)

AD

BCE…X
M C)

Figure 13. Création de boucles de routage par spoofing

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

Sécurité des réseaux ad hoc Cheikhrouhou Omar

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.

3.4 Attaques par fabrication de messages


Cette attaque consiste à générer des informations de routage falsifiées. Nous pouvons
distinguer trois types :

• Falsifier le message route error (RERR) : Les protocoles AODV et DSR

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

Sécurité des réseaux ad hoc Cheikhrouhou Omar

3.5 Attaques du trou de ver (Wormhole attacks)


Dans ce type d’attaque, l’intrus capture les paquets d’un point du réseau et les envoie à
travers un tunnel à un autre point distant du réseau qui rediffuse ces paquets à ses voisins
[45, 46]. Le tunnel, appelé aussi wormhole, peut être réalisé de différentes manières par
exemple par encapsulation des paquets, par un réseau filaire à haut débit ou par un réseau
sans fil à forte puissance de transmission. Le but du tunnel est de faire croire aux autres
nœuds du réseau que les deux extrémités du tunnel sont voisines alors qu’en réalité ils sont
distants de plusieurs sauts.

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

3.5.1 Wormhole par encapsulation


Dans ce mode d’attaque, le tunnel est réalisé par encapsulation de sorte que les champs
du paquet encapsulé ne seront pas modifiés au cours de son acheminement.

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

Sécurité des réseaux ad hoc Cheikhrouhou Omar

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

Nœud malicieux Nœud légitime

Figure 14. Wormhole par encapsulation

3.5.2 Wormhole par un réseau externe


Dans ce mode, l’attaquant utilise un réseau externe à haut débit, en fibre optique par
exemple, pour faire parvenir ces paquets les premiers.

tunnel

M2

M1
S
A D
source B
destination

Nœud malicieux Nœud légitime

Figure 15. Wormhole par un réseau externe

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

Sécurité des réseaux ad hoc Cheikhrouhou Omar

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.

3.5.3 Wormhole par transmission à forte puissance


Ce mode d’attaque peut être réalisé par un seul nœud. L’intrus transmet les paquets
RREQs reçus par une forte puissance pour augmenter sa chance d’être un nœud
intermédiaire entre les deux parties en communication.

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

Sécurité des réseaux ad hoc Cheikhrouhou Omar

Chapitre 5 : Conception d’une stratégie de sécurité

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.

2 Solution pour l’authentification

2.1 Service d’authentification distribué

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

Sécurité des réseaux ad hoc Cheikhrouhou Omar

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

Figure 16. Mécanisme d’authentification d’un nœud

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

RSA génère un polynôme aléatoire de degré k − 1 , (


xf)( = xfd+ 1
+ ... + xf −1
k
k −1 )mod
n .

36
Page 44

Sécurité des réseaux ad hoc Cheikhrouhou Omar

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)

En recevant k certificats partiels, le nœud calcule pour chaque certificat la quantité :

k
vr

)0(l
Cert' =vi (Cert vi
) vi
mod n . Avec l vi )0( = mod n (4)
=
r ,1 ir
≠ vv − r i

Et enfin, on obtient le certificat en multipliant les différentes parts :

k ∑ lP ).0(.

Cert = ∏ Cert ' vi mod n = (Cert )


vi vi
i= 1
mod n = ( Cert) d mod n. (5)
=
i 1

En effet d’après la formule de Lagrange on a :

⎛ ⎛ ⎞ ⎞
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

2.2 Etablissement d’une clef secrète commune (Accord de clef)


Considérons un groupe de personnes souhaitant établir une communication sûre entre
eux à l’occasion d’une réunion dans une salle de conférence fermée. Les participants se font

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

Sécurité des réseaux ad hoc Cheikhrouhou Omar

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

lire la clef de session.

• Accord de clef collaboratif : tous les membres du réseau contribuent à la

génération de la clef et sa mise à jour.

• Perfect Forward secrecy : la découverte d’informations secrètes à long terme

utilisées n’aboutit pas à la découverte des anciennes clefs de session.

• Résistance : le protocole doit résister aux attaques passives visant à découvrir la

clef de session et aux attaques actives qui tentent d’usurper l’identité d’un participant.

2.2.1 Protocole général

2.2.1.1 Cas de deux noeuds


On suppose A et B deux nœuds qui partagent un mot de passe P et qui veulent établir
une clef de session [40]. Soit (EA,DA) une paire de clefs asymétriques utilisées par A. Le
déroulement du protocole est comme suit (figure 17) :

(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

Sécurité des réseaux ad hoc Cheikhrouhou Omar


(3) A déchiffre le message reçu de B extrait R puis il envoie sa quantité secrète (SA) à B
chiffrée par le nombre aléatoire R. Cela permet d’authentifier A au niveau de B puisque A
ne peut extraire R que s’il connaît le mot de passe (P).
(4) Enfin, chaque noeud calcule la clef résultante des deux quantités secrètes K
( =f(SA, SB) )
puis envoie un hachage de SA et SB plus la quantité secrète de l’autre partie, l’ensemble
chiffré par la clef K. Cela permet de confirmer que chaque nœud connaît la clef K.

A B

A, P(EA)

P(EA (R, SB))

R(S A)

K(SA, h(SA, SB))

K(SB, h(SA, SB))

Figure 17. Accord de clef entre deux noeuds

2.2.1.2 Cas d’un groupe de participants


Le protocole précédent peut être facilement extensible pour un groupe de participants.
Soit Mi ,i=1 .. n, n utilisateurs qui veulent partager un secret. Chaque participant Mi
contribue à la génération de la clef secrète commune par sa quantité secrète Si. On suppose
aussi que Mn, le leader du groupe, possède une paire de clefs asymétriques (E,D).

Le déroulement du protocole est comme suit :


(1) Mn → Mi : Mn, P(E), i=1 à n.
Mn diffuse aux autres nœuds son identifiant suivi de sa clef publique E chiffrée par le mot de
passe.

(2) Mi → Mn : Mi, P(E(Ri, Si)), i = 1 à n-1.


En recevant le message de Mn, chaque nœud répond en envoyant son identifiant suivi d’un
nombre aléatoire Ri et de sa quantité secrète Si chiffrés par E puis par le mot de passe P.
(3) Mn → Mi : Ri({Sj, j = 1 to n}), i = 1 to n-1.
39

Page 47

Sécurité des réseaux ad hoc Cheikhrouhou Omar

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

Forward secrecy. En effet un attaquant peut compromettre un nœud Mi et donc découvrir le


mot de passe, mais il reste incapable de déchiffrer les anciens messages tant qu’il ne connaît
pas la clef de déchiffrement D. Il est donc préférable de détruire la paire de clefs à la fin du
déroulement du protocole et d’utiliser une nouvelle paire de clefs à chaque exécution du
protocole, mais cela augmente le coût du protocole.

2.2.2 Protocole de Diffie-Hellman authentifié par mot de passe


Dans le cas de deux participants, les deux parties A et B se mettent d’accord sur un

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.

Le déroulement du protocole est illustré par la figure 18.

A B

A, P(gSA)

P(gSB), K(CB)

K(C A, CB)

K(C A)

Figure 18. Protocole de Diffie-Hellman authentifié

(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

Sécurité des réseaux ad hoc Cheikhrouhou Omar

(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]:

(1) Mi --> Mi+1 : g S1S2_ _ _Si , i = 1 à n-2 en séquence.


La première étape se déroule en (n-2) sous étapes : le nœud M1 calcule gS1 et l’envoie au
nœud suivant, soit M2. Ce dernier ajoute son exposant secret et envoie donc à M3 gS1S2 . Le
dernier nœud, le nœud Mn-1, reçoit g S1S2…Sn-2 , ajoute son exposant secret puis (étape 2) il
diffuse la quantité ∏ = g S1S2…Sn-1.

(2) Mn-1 --> Tous : ∏ = g S1S2_ _ _Sn-1 , en diffusion.

(3) Mi --> Mn : P(Ci), i = 1 à n-1, en parallèle, avec Ci = ∏ Si’/Si et Si‘ un facteur de

brouillage choisi par Mi.


(4) Mn --> Mi : (Ci) Sn, i = 1 à n-1, en parallèle.
(5) Mi --> Tous : Mi, K(Mi, h(M1, M2,…, Mn) en diffusion.
L’utilisation de facteur de brouillage dans l’étape 3 permet de se prémunir contre une
attaque par dictionnaire sur le mot de passe. En effet, sans le facteur de brouillage, la
quantité envoyée par Mn-1 dans l’étape 3 sera le chiffrement de la même quantité reçue par
Mn-1 à l’étape 1.

41

Page 49

Sécurité des réseaux ad hoc Cheikhrouhou Omar

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.

3 Protocoles de routage sécurisé

3.1 Propriétés désirées d’un protocole de routage sécurisé


Un protocole de routage sécurisé (SRP, Secure Routing Protocol) [13] doit être capable
d’établir une communication entre deux nœuds même en présence de nœuds malicieux.
Il doit aussi avoir la capacité de détecter les nœuds malicieux et d’avertir les autres nœuds
légitimes du comportement de ces nœuds. Les nœuds légitimes vont donc écarter les

chemins contenant des nœuds malicieux.


Un nœud malicieux peut exploiter cette propriété pour lancer une attaqueblackmail contre
un nœud légitime. Pour lutter contre cette attaque, on doit avoir une hiérarchie de confiance.
Le protocole doit aussi garantir la confidentialité des informations de routage pour
empêcher un nœud malicieux de connaître les nœuds importants du réseau. Sinon ces nœuds
seront des candidats pour une attaque en déni de service.

3.2 Le protocole SAR


L’idée principale du protocole de routage sécurisé SAR (Security Aware Routing) [29]
est de protéger le mécanisme d’établissement de la route contre la participation des nœuds
malicieux. Pour cela, il introduit la notion de hiérarchie de confiance : chaque nœud a un
niveau de confiance qui change progressivement en fonction de son comportement. Si le
nœud participe dans la découverte des chemins alors son niveau de confiance augmente.
Dans le cas où il annonce des informations de routage invalides ou il ne fait pas suivre le
trafic dans le temps prévu, son niveau de confiance diminue. Ce niveau de confiance permet
de restreindre le mécanisme de découverte de la route seulement aux nœuds légitimes.

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

Sécurité des réseaux ad hoc Cheikhrouhou Omar

En recevant un message RREQ, le nœud va essayer de le déchiffrer. Dans le cas où le nœud


ne possède pas la clef, il sera obligé de supprimer le paquet et par la suite de s’exclure de la
route.
Ce protocole garantit un niveau de sécurité minimal mais il peut augmenter la longueur de la
route en excluant certains nœuds. De plus ce protocole n’est pas extensible en particulier si
on a plusieurs niveaux de confiance. En effet, il faut associer à chaque niveau de confiance
une clef. Un nœud doit tester à chaque réception d’un message RREQ toutes les clefs qu’il
possède puisqu’il ne connaît pas le niveau de confiance du message. Si aucune de ces clefs
ne parvient à déchiffrer le message le nœud va le supprimer. Et donc on aura une
consommation inutile de ressources. Une solution pour palier cet inconvénient est d’attacher
un texte en clair au message RREQ indiquant son niveau de confiance. Un nœud va donc
vérifier dès le début s’il possède ou non la clef.
Il faut aussi noter la nécessité d’avoir un mécanisme de gestion et distribution de clefs. A
chaque fois que les membres du réseau changent, des nœuds peuvent quitter et d’autres
peuvent joindre le réseau, les clefs doivent être renouvelées.

3.3 Le protocole ARAN

Le protocole ARAN (Authenticated Routing ad hoc Network) [30] permet de détecter


les nœuds malicieux en introduisant des mécanismes d’authentification et de vérification de
l’intégrité des messages. ARAN garantit aussi la non répudiation.

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

Sécurité des réseaux ad hoc Cheikhrouhou Omar

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.

RDP , IP , Cert , N , Kt]


[

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

REP , IP , Cert ,N , Kt]


[

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

Sécurité des réseaux ad hoc Cheikhrouhou Omar

En recevant le paquet REP, B va valider la signature de C par le certificat de C (CertC) puis


il fait suivre le paquet en remplaçant la signature de C par sa signature.

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

La source commence par diffuser un SPC (Shortest Path Confirmation).

A diffuse : SPC, IPD, Cert D, [[ IP D


, Cert A
,N A
, Kt]
A

]K +

Chaque nœud intermédiaire va ajouter au message son certificat.


Soit B le nœud voisin de A. B diffuse :

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

La source reçoit éventuellement ce paquet, procède à la vérification du nonce (NA) avec


celui qu’elle a envoyé dans le paquet SPC.
La signature du paquet par chaque nœud permet d’empêcher un nœud malicieux de modifier
le chemin car cela va casser l’intégrité des données chiffrées.
ARAN inclut aussi un mécanisme de maintenance de route. Un nœud qui détecte une
rupture de lien génère un message ERR (ERRor) destiné à la source. Les messages ERRs
sont aussi signés. Supposons que le nœud B détecte une rupture dans le chemin entre la

source S et le destinataire D. B envoie à son voisin : [ERR, Cert


A
,IP D,IP B
t]K,N
B
, B
-.

45

Page 53

Sécurité des réseaux ad hoc Cheikhrouhou Omar

La signature des messages ERRs permet de garantir la non-répudiation. De ce fait un nœud


malicieux n’a pas d’intérêt d’envoyer des messages ERRs falsifiés car dans ce cas il va être
exclut du chemin.

3.4 Le protocole Ariadne


Ariadne [35] est un protocole de routage sécurisé basé sur le protocole de routage
réactif DSR. Pour authentifier les messages de routage Ariadne peut utiliser un des
mécanismes suivants : partage de clefs secrètes entre chaque paire de nœuds du réseau,
signature numérique ou partage de clef secrète entre la source et la destination seulement
avec authentification des nœuds intermédiaires par l’utilisation du protocole TESLA [32].
Mais la seule solution implémentée et évaluée de Ariadne et celle utilisant le protocole
TESLA. Cette solution sera détaillée dans la suite de cette section.

L’utilisation d’un hachage à chaque nœud (per-hop hashing) permet d’empêcher un


attaquant de supprimer un nœud de la liste. Chaque nœud remplace l’ancien hachage par un
nouveau dépendant de son adresse. Soit A un nœud intermédiaire alors le nouveau hachage
est (A, H ancien_hachage) où H est une fonction de hachage non réversible.

3.4.1 Le protocole TESLA


Les moyens classiques pour assurer l’intégrité et l’authentification des messages
échangés entre les nœuds d’un réseau sont basés sur l’utilisation de la signature numérique

ou de MACs (Message Authentication Code).


L’utilisation d’un MAC calculé à partir d’une clef secrète partagé entre l’émetteur et le
destinataire permet d’assurer l’authentification dans le cas d’une communication point à
point (un seul récepteur). Cette solution n’est pas applicable dans le cas où on a diffusion de
message. En effet les récepteurs doivent connaître la clef secrète pour vérifier le MAC ce
qui permet à n’importe quel nœud de modifier le message ou d’usurper l’identité de
l’émetteur.

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

Sécurité des réseaux ad hoc Cheikhrouhou Omar

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

Authentication). TESLA permet de vérifier l’intégrité et authentifie la source en attachant au


message un MAC dépendant d’une clef secrète K qui n’est divulguée par l’émetteur
qu’après un délai d. La valeur de d est calculée de manière à être sûr que tous les récepteurs
ont bien reçu le paquet avant la divulgation de la clef, ce qui assure l’intégrité et
l’authenticité du paquet. Un paquet ne sera accepté par le récepteur que si sa clef n’est pas
encore divulguée. Ce délai ne doit donc pas être trop petit car dans ce cas on aura le rejet de
la plupart de paquets. De même la valeur de d ne doit pas être trop grande pour limiter les
latences dans le réseau.

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.

Le déroulement plus détaillé du protocole TESLA est comme suit :


L’émetteur choisit un nombre aléatoire Kn puis procède à la génération d’une chaîne de
clefs. La longueur de la chaîne détermine la durée maximale de transmission avant qu’une
nouvelle chaîne soit générée. L’émetteur définit des intervalles de temps de durée uniforme
puis attribue à chaque intervalle i une clef Ki de la chaîne. Cette clef ne sera révélée qu’après

d intervalles de temps. d s’appelle alors délai de révélation de la clef. L’utilisation de la


même clef Ki pour calculer la clef Ki-1 et pour calculer le MAC peut conduire à une faiblesse
cryptographique (avoir deux informations sur la clef secrète Ki donne plus de chance à un

47

Page 55

Sécurité des réseaux ad hoc Cheikhrouhou Omar

cryptanalyste de la déduire). Pour augmenter la sécurité du protocole on utilise une autre


fonction non réversible F’ pour générer des clefs K’i utilisées pour le calcul des MACs. La
figure suivante illustre ce fonctionnement.

F(K i-1) F(K i) F(K i+1) F(K i+2) F(Ki+3 )


Ki-1 Ki Ki+1 Ki+2

F’(Ki-1) F’(Ki) F’(Ki+1) F’(Ki+2)

K’i-1 K’i K’i+1 K’i+2

Intervalle i-1 Intervalle i Intervalle i+1 Intervalle i+2 Temps

Figure 19. Génération des clefs TESLA

A chaque paquet Pi l’émetteur attache un MAC calculé en fonction du message Mi et de la


clef K’i et il révèle la valeur de la clef Ki-d avec d le délai de révélation de la clef. Le paquet
a le format suivant : Pi= {Mi || Ki-d || MAC (Mi, K’i)}.

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.

3.4.2 Mécanisme de découverte de route avec TESLA


On suppose que chaque paire de nœuds communicants partagent une clef secrète (par
exemple KSD et la clef secrète partagée entre la source S et la destination D) et que chaque
nœud possède une chaîne de clefs TESLA dont une est authentifiée et connue par tous les
autres noeuds.

Le mécanisme de découverte de route est composé de deux étapes. Dans la première, la


source inonde le réseau par la diffusion de route request. Dans la deuxième étape, la
destination répond à la source par l’envoi d’un paquet route reply.

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

Sécurité des réseaux ad hoc Cheikhrouhou Omar

identificateur de broadcast (id), un champ ti (time interval) indiquant l’intervalle de temps


dans lequel le paquet est envoyé, un hachage initialisé à MAC K
( REQUEST ),,,,
tiidDS ,
SD

une liste de nœuds et une liste de MACs initialement vides (figure 20).

Figure 20. Mécanisme de découverte de route dans Ariadne

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

Sécurité des réseaux ad hoc Cheikhrouhou Omar

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.

4 Mécanismes complémentaires pour atténuer le comportement des


nœuds malicieux
Ces mécanismes permettent de détecter et d’éliminer les nœuds malicieux par
l’installation d’un watchdog et un pathrater [31].

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

collision s’est produite au niveau du nœud A au moment de son écoute de la transmission de


B. A ne peut pas distinguer si la collision est causée par l’envoi du nœud B ou par la
transmission du nœud S.

P2 P1 P1
S A B C D

50
Page 58

Sécurité des réseaux ad hoc Cheikhrouhou Omar

Figure 21. Collision ambiguë au niveau du watchdog

➢ Mauvaise réception : Le watchdog au niveau du nœud A (figure 22) peut


déterminer si B a fait suivre le paquet mais ne peut pas déterminer si le nœud C a bien reçu
le paquet. Dans la figure 22 une collision s’est produite au niveau du nœud C au moment de
la réception du paquet. A voit la transmission de B et suppose que le paquet est bien reçu
alors que le nœud B peut ignorer la retransmission du paquet.

P1 P1 P2
S A B C D

Figure 22. Collision au niveau du récepteur

➢ Limiter la puissance de transmission : un nœud peut contrôler sa puissance de


transmission pour que le signal arrive au watchdog mais pas au nœud suivant.

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

Sécurité des réseaux ad hoc Cheikhrouhou Omar

d’entité centralisée la solution d’authentification basée sur la cryptographie à seuil semble


être efficace mais son implémentation est difficile à réaliser.

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.

Tableau 1. Résumé des protocoles de routage sécurisés

Protocole Hypothèse Caractéristiques Avantages faiblesses


SAR - suppose -utilise une hiérarchie -Défendre contre la -Difficultés de la
l’existence de de confiance modification et la génération et la
mécanisme de -Chaque nœud a un fabrication de distribution des
détection des niveau de confiance message clefs
nœuds qui varie selon son -Ne demande pas -Il faut aussi la
malicieux comportement beaucoup de calcul mise à jour des
-Un centre de -Une clef et partager clefs lors de
génération et entre les nœuds ayant changement des
de distribution même niveau de membres du
de clefs confiance. réseau.
-L’initiateur de la -N’est pas
route spécifie dans le extensible
paquet route request lorsque on a
le niveau de plusieurs niveau
confiance (sécurité) de confiance.
requis et seul les - La route trouvée
nœuds ayant ce est souvent n’est
niveau de confiance pas optimale en
(ou plus ) peut terme de nombre
participer au de sauts.
mécanisme de
découverte de route.

Ariadne -chaque pair -basé sur le protocole -Il faut


de nœud DSR. -La cryptographie synchronisation
communiquant - La clef secrète symétrique est plus entre les
partagent une partagée assure efficace différents nœuds
clef secrète l’authentification de du réseau

52

Page 60

Sécurité des réseaux ad hoc Cheikhrouhou Omar


-chaque nœud la source -
possède une -la clef TESLA assure L’authentification
chaîne de clefs l’authentification des de la première
TESLA dont nœuds intermédiaires clef TESLA est
une est et l’intégrité du faite par la
authentifiée et message. signature et donc
connue par les -Assure qu’un chaque nœud doit
autres nœuds. attaquant ne peut pas avoir un
modifier le chemin certificat.
dans le paquet RREQ
par l’utilisation d’un
hachage au niveau de
chaque nœud (per-
hop haching)

ARAN -une autorité -le paquet route -Assure -La cryptographie


de request sera signé par l’authentification, asymétrique
certification la source l’intégrité et la non- demande
qui gère les -chaque nœud répudiation beaucoup de
certificats des intermédiaire vérifie -Le coût ajouté pour calcul.
utilisateurs l’ancienne signature le calcul des
puis la remplace par signatures est
la sienne. recomposé par
-le chemin le plus l’élimination des
rapide (moins nœuds malicieux.
congestionné) sera
choisi même s’il n’est
pas le plus court.

53

Page 61

Sécurité des réseaux ad hoc Cheikhrouhou Omar

Chapitre 6 : Mise en place d’une plateforme


virtuelle de Simulation

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

émulateur de la couche physique [49].

54

Page 62

Sécurité des réseaux ad hoc Cheikhrouhou Omar


Figure 23. Architecture logicielle du simulateur [49]

3 Qu'est ce que User Mode Linux ?

User Mode Linux (UML) est un dispositif permettant de lancer un ou plusieurs


noyau(x) linux dans l'espace utilisateur (comme un simple programme). En clair, il permet
d'avoir plusieurs machines virtuelles sur une seule machine physique hôte exécutant Linux.
Les avantages sont nombreux :

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

4 Installation de la machine UML


Pour installer User Mode Linux il faut un noyau, un patch pour UML et un système de
fichier ceci peut être téléchargé depuis le site de UML :http://user-mode-

55

Page 63

Sécurité des réseaux ad hoc Cheikhrouhou Omar

linux.sourceforge.net/dl-sf.html. Le patch ajoute des fonctionnalités au noyau de sorte


qu’on puisse lancer le noyau UML comme un simple programme utilisateur.

4.1 Etapes d'installation du noyau UML


Créez un répertoire dans lequel vous allez installer le noyau UML :
$ mkdir ~/UML
Décompressez le noyau dans ce répertoire
$ cd ~/UML
$ tar -xvjf linux-2.4.24.tar.bz2
Appliquez ensuite le patch à partir du répertoire contenant le noyau (~/UML/linux-2.4.24/).
Dans la suite, ce répertoire sera appelé UMLPATH.
$ bzcat uml-patch-2.4.24-1.bz2 | patch -p1
Configurez ensuite le noyau. On peut utiliser par exemple la commande suivante.

$ make xconfig ARCH=um


Cette étape est la plus difficile car il faut déterminer les options de configuration
nécessaires. Des erreurs peuvent apparaître lors de la compilation du noyau si des options de
configuration manquent.
$ make dep ARCH=um && make linux ARCH=um
Normalement, vous obtenez un exécutable linux dans UMLPATH. Si des erreurs sont
générées au cours de cette étape alors probablement il vous manque des options de
configuration. Vous pouvez essayer avec notre fichier de configuration fourni en annexe D.

4.2 Amélioration de performance


Avec un noyau Linux traditionnel, nous remarquons que le noyau UML tourne dans le
même espace d’adressage de ces processus. Cette architecture ralentit l’exécution de la
machine UML.

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

Sécurité des réseaux ad hoc Cheikhrouhou Omar

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.

Ensuite, il faut configurer la machine UML.


Lancez une machine virtuelle à partir de /root/UML/linux-2.4.24-wifi.
$./linux umid=A ubd0=cowA,root_fs7
Pour installer la carte sans fil virtuelle dans la machine UML il suffit de charger le module

hostap_uml (il faut que le simulateur soit démarré)


$modprobe hostap_uml.
Normalement, maintenant une image d'ordinateur portable entourée d'un grand rond jaune
doit apparaître dans la fenêtre du simulateur (figure 24).
Configurez la carte sans fil de la machine UML en spécifiant le mode ad-hoc.
$iwconfig wlan0 mode ad-hoc
$ifconfig wlan0 192.168.100.10 up
Ce processus est répété à chaque fois qu'on veut ajouter une machine UML au réseau. On
spécifie à chaque fois une nouvelle adresse IP mais en gardant le même sous réseau
(192.168.100.0).

Figure 24. Ping entre deux machines UML


57

Page 65

Sécurité des réseaux ad hoc Cheikhrouhou Omar

6 Tests
Nous présentons ici quelques tests pour vérifier le bon fonctionnement du réseau.

Nous pouvons à partir de la machine A lancer un ping au machine B (figure 24).

$ 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

--- 192.168.100.11 ping statistics ---


4 packets transmitted, 4 received, 0% packet loss, time 3020ms
rtt min/avg/max/mdev = 39.745/55.417/86.576/18.434 ms, pipe 2

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

Sécurité des réseaux ad hoc Cheikhrouhou Omar

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

Distance maximale en fonction de l'atténuation du


signal

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

DistMax 2000 770 380 300 260 190 170 150

atténuation

Figure 25. Variation de la distance maximale en fonction de l’atténuation


59

Page 67

Sécurité des réseaux ad hoc Cheikhrouhou Omar

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.

Distance Maximale en fonction de la puissance de


bruit

400

) 300
x(m
a 200

istM
D 100

0
-100 -120 -140 -160 -180

DistMax 220 260 300 330 360

puissance de bruit(db)

Figure 26. Variation de la distance maximale en fonction de la puissance de bruit

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

Sécurité des réseaux ad hoc Cheikhrouhou Omar

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.

%Paquets perdus en fonction du % des noeuds


malicieux

70
60
rdus
50
pe40
ts
30
que
a 20
p
% 10
0
0 10 20 30 40

%noeuds malicieux

Figure 27. Effet des nœuds malicieux sur % paquet perdu

La figure 27 montre l’augmentation du pourcentage des paquets perdus avec l’augmentation


du pourcentage des nœuds malicieux. Nous avons constaté que lorsque 40% des nœuds sont
malicieux nous atteignons un pourcentage de perte de plus de 60%.

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

Sécurité des réseaux ad hoc Cheikhrouhou Omar

Nbre moyen de sauts en fonction % des noeuds


malicieux

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

Sécurité des réseaux ad hoc Cheikhrouhou Omar

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.

Comme le routage présente la fonction essentielle dans un réseau, en particulier les


réseaux ad hoc, la sécurité des protocoles de routage a été pleinement étudiée et plusieurs
solutions ont été proposées. La solution qui nous semble la plus réaliste et la plus pratique
est le protocole ARAN. Ce dernier assure l’authentification et l’intégrité des informations de
routage échangées et permet de lutter contre la plupart des attaques ciblant les protocoles de
routage.

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.

Ce stage nous a permis non seulement d’enrichir nos compétences au niveau du


système d’exploitation Linux mais aussi de nous initier à la recherche.

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

Sécurité des réseaux ad hoc Cheikhrouhou Omar

En perspective, nous allons concentrer notre recherche à un cas particulier des


réseaux Mesh à savoir celui d’un opérateur Internet qui veut étendre sa zone de couverture
en se servant de ses abonnées. Dans ce cas, il faut penser aux nouveaux problèmes de
sécurité notamment ceux liés aux mécanismes d’incitation des utilisateurs.

Ce sujet sera poursuivi dans le cadre de mon mémoire de Mastère.

64
Page 72

Sécurité des réseaux ad hoc Cheikhrouhou Omar

Références
[1] L. Zhou and Z. J.Haas: “Securing ad hoc Networks”,IEEE Network,
Novembre/Décembre 1999, pp.24-30.

[2] W. Lang, M. Zhou, K. She: “Key Agreement Protocol in Ad-hoc Networks”,

Proceedings of ICCT2003, pp.296-301.

[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

Distributed Computing Systems (FTDCS’04), 2004.

[4] S. Naghian, J. Tervonen: “Semi Infrastructured Mobile Ad-Hoc Mesh Networking”,The

14th IEEE 2003 International Symposium on personal, Indoor and Mobile Radio
Communication Proceedings, 2003, pp.1069-1073.

[5] J. Dankers, T. Garafalakis, R. Schaffelhofer and T. Wright: “Public Key Infrastructure in


mobile systems”, Electronics & Communication Engineering Journal, October 2002,
pp.180-190.

[6] R. E. Kahn: “The organization of computer resources into a packet radio network”,IEEE

Transactions on Communications, volume COM-25, January 1977, pp. 169-178.

[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

cryptographie, CRC Press, Fifth Printing, August 2001.

[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

Networks 1, 2003, pp.151–174.

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

[18] A. Shamir: “How to share a secret”,Communications of ACM, 1979, pp.612-613.


[19] K. Takaragi, K. Miyazaki, M. Takahashi: “A Threshold Digital Signature Issuing
Scheme without Secret Communication”. Systems Development Laboratory, Hitachi, Ltd.

[20] V. Shoup: “Practical threshold signatures”, IBM Zurich Research Lab, February 2000.
[21] Y. Desmedt, Y. Frankel: “Threshold cryptosystems”, In Advances in cryptology-

Crypto ’89, pp.307-315, 1989.


[22] P. MÜHLETHALER: “Routage dans les réseaux ad hoc”, Techniques de l’Ingénieur.
[23] C. E. Perkins and E. M. Royer: “ad hoc On-demand Distance Vector Routing”,Proc.

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.

[26] I. D. Chakeres, E. M. Royer: “AODV Routing Protocol Implementation Design”,

Proceedings of the 24th International Conference on Distributed Computing Systems


Workshops (ICDCSW’04), 2004.

66

Page 74

Sécurité des réseaux ad hoc Cheikhrouhou Omar

[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

Informatics (SCI 2002), 2002.

[30] K. Sanzgiri, B. Dahill, B.N. Levine, C. Shields, E. M.Belding-Royer: “A secure routing


protocol for ad hoc networks”, Proceedings of 2002 IEEE International Conference on

Network Protocols (ICNP), November 2002.

[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

Mobile Computing and Networking, August 2000.

[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

Computing and Networking, 2002.

[36] C. PERKINS AND P. BHAGWAT: “Routing over multihop wireless network of


mobile computers”, in SIGCOMM:Computer Communications Review, ACM, October
1994, pp. 234-244.

[37] J. Broch, D. A. Maltz, D. B. Johnson, Y. C Hu, and J. G. Jetcheva : “A Performance


Comparison of Multi-Hop Wireless ad hoc Network Routing Protocols”, InProceedings of
67

Page 75

Sécurité des réseaux ad hoc Cheikhrouhou Omar

the Fourth ACM/IEEE International Conference on Mobile Computing and Networking


(MobiCom’98), October 1998, pp. 85–97.

[38] D. A. Maltz, J. Broch, J. Jetcheva, and D. B. Johnson :“The Effects of On-Demand


Behavior in Routing Protocols for Multi-Hop Wireless ad hoc Networks”,IEEE Journal on
Selected Areas in Communications, vol. 17(8), August 1999, pp. 1439–1453.

[39] C. E. Perkins and P. Bhagwat: “Highly dynamic destination-sequenced distance-vector


routing (dsdv) for mobile computers”, Computer Communications Review, October 1994,
pp. 234–244.

[40] N. Asokan, P. Ginzboorg: “Key Agreement in ad hoc Networks”,Computer

Communications, vol. 23(17), 2000, pp. 1627-1637.

[41] M. Hietalahti : “Key establishment in ad-hoc networks”, Proceedings of the Seminar

on Network Security, Telecommunications Software and Multimedia Laboratory, Helsinki


University of Technology, Espoo, Finland, December 2000.

[42] E. R. Anton and O. C. M. B. Duarte: "Group Key Establishment in Wireless ad hoc


Networks", Workshop em Qualidade de Serviço e Mobilidade - WQoSM 2002, Brazil,
November 2002.

[43] G. Ateniese, M. Steiner, G. Tsudik: “Authenticated group key agreement and friends”,

In Proceedmgr of the 51h ACM Conference on Computer and Communicahon Security,San


Francisco, November 1998.

[44] B. Lehane, L. Doyle, D. O’Mahony : “ad hoc Key Management Infrastructure”, In

Proceedings of the IEEE International Conference on Information Technology (ITCC


2005), Las Vegas, Nevada, USA, April 4-6, 2005.
[45] L. Hu and D. Evans: “Using Directional Antennas to Prevent Wormhole Attacks”, in

the Proceedings of Network and Distributed System Security Symposium (NDSS), 2004.

[46] L. Lazos, R. Poovendran, C. Meadows, P. Syverson, , L.W. Chang : “Preventing


wormhole attacks on wireless ad hoc networks: a graph theoretic approach”,Wireless

Communications and Networking Conference, 2005 IEEE, Volume 2, 13-17 March 2005,
pp.1193 - 1199 .

68

Page 76

Sécurité des réseaux ad hoc Cheikhrouhou Omar

[47] I. Khalil, S. Bagchi, N. B. Shroff : “LITEWORP: A Lightweight Countermeasure for


the Wormhole Attack in Multihop Wireless Networks”, in the International Conference on
Dependable Systems and Networks (DSN), Yokohama, Japan, June 28 - July 1, 2005.

[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

Sécurité des réseaux ad hoc Cheikhrouhou Omar

Glossaire

Algorithme cryptographique ou de chiffrement


Procédé ou fonction mathématique utilisée pour le chiffrement et le déchiffrement. Dans la
cryptographie moderne, l'algorithme est souvent public et le secret du chiffre dépend d'un
paramètre appelé clef.

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

Dans ce cas, l'authentification désigne souvent la combinaison de deux services :


authentification et intégrité en mode non connecté.

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

Sécurité des réseaux ad hoc Cheikhrouhou Omar

Le chiffrement est un mécanisme de sécurité permettant d'assurer la confidentialité des


données.

Clef (secrète, publique, privée)


Paramètre d'un algorithme de chiffrement ou de déchiffrement, sur lequel repose le secret.
On distingue deux types de clefs :
les clefs secrètes, utilisées par les algorithmes symétriques, pour lesquels la clef de
chiffrement et de déchiffrement sont identiques.
les couples (clef publique, clef privée), utilisés par les algorithmes asymétriques, pour
lesquels clef de chiffrement et de déchiffrement sont distinctes.

Clef de chiffrement de clefs


Clef utilisée exclusivement pour chiffrer d'autres clefs, afin de les faire parvenir à un
interlocuteur. Une clef de chiffrement de clef a généralement une durée de vie assez longue,
par opposition aux clefs qu'elle sert à chiffrer.

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

Sécurité des réseaux ad hoc Cheikhrouhou Omar

Si le "cryptage" existait, il pourrait être défini comme l'inverse du décryptage, c'est-à-dire


comme l'action consistant à obtenir un texte chiffré à partir d'un texte en clair sans connaître
la clef. Un exemple concret pourrait être de signer un texte choisi en reproduisant un
chiffrement avec la clef privée de la victime. Mais on préfère parler dans ce cas de
contrefaçon.

Cryptanalyse ou analyse cryptographique


Science qui étudie la sécurité des procédés cryptographiques pour tenter de trouver des
faiblesses et pouvoir en particulier effectuer un décryptage avec succès.
"Analyse d'un système cryptographique, et/ou de ses entrées et sorties, pour en déduire des
variables confidentielles et/ou des données sensibles (y compris un texte en clair)." [ISO
7498-2]

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

Sécurité des réseaux ad hoc Cheikhrouhou Omar

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 à sens unique


Une fonction à sens unique est une fonction facile à calculer mais difficile à inverser.
La cryptographie à clef publique repose sur l'utilisation de fonctions à sens unique à brèche
secrète : pour qui connaît le secret (i.e. la clef privée), la fonction devient facile à inverser.

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.

Fonction de hachage à sens unique


Fonction de hachage qui est en plus une fonction à sens unique : il est aisé de calculer
l'empreinte d'une chaîne donnée, mais il est difficile d'engendrer des chaînes qui ont une
empreinte donnée. On demande généralement en plus à une telle fonction d'être sans
collision, c'est-à-dire qu'il soit impossible de trouver deux messages ayant la même
empreinte.

ICV (Integrity Check Value)


"Valeur de vérification d'intégrité". Cette valeur est calculée par l'expéditeur sur l'ensemble
des données à protéger. L'ICV est alors envoyée avec les données protégées. En utilisant le
même algorithme, le destinataire recalcule l'ICV sur les données reçues et la compare à
l'ICV originale. Si elles se correspondent, il en déduit que les données n'ont pas été
modifiées.

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

Sécurité des réseaux ad hoc Cheikhrouhou Omar

On distingue deux types d'intégrité :


L'intégrité en mode non connecté permet de détecter des modifications sur un datagramme
individuel, mais pas sur l'ordre des datagrammes.
L'intégrité en mode connecté permet en plus de détecter la perte de paquets ou leur
réordonnancement.
L'intégrité est très liée à l'authentification de l'origine des données, et les deux services sont
souvent fournis conjointement.

Liaison
Ensemble de matériels (câbles, modems, concentrateurs, routeurs,...) qui relient
physiquement deux équipements terminaux.

MAC (Message Authentication Code)


Code d'authentification de message

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.

Perfect Forward Secrecy (PFS)


Propriété d'un protocole d'échange de clef selon laquelle la découverte, par un attaquant, du
ou des secrets à long terme utilisés ne permet pas de retrouver les clefs de sessions.
Rejeu
Action consistant à envoyer un message intercepté précédemment, en espérant qu'il sera
accepté comme valide par le destinataire.

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

Sécurité des réseaux ad hoc Cheikhrouhou Omar

RFC (Request For Comment)


Littéralement, "Appel à commentaires". C'est en fait un document décrivant un des aspects
d'Internet de façon relativement formelle (généralement, spécification d'un protocole). Ces
documents sont destinés à être diffusés à grande échelle dans la communauté Internet et
servent souvent de référence. On peut les trouver sur la plupart des sites FTP.

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

(par exemple chiffrement du message avec une clef privée).


"données annexées" : des données supplémentaires sont adjointes au message (par exemple
une empreinte, chiffrée avec une clef privée).

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

Sécurité des réseaux ad hoc Cheikhrouhou Omar

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

Vecteur d'initialisation (Initialization Vector, IV)


Bloc de texte de valeur quelconque servant à initialiser un chiffrement avec chaînage de
blocs, et donc à faire en sorte que deux messages identiques donnent des cryptogrammes
distincts.
76

Page 84

Sécurité des réseaux ad hoc Cheikhrouhou Omar

Annexe A : Rappels mathématiques

1 Arithmétique sur les entiers


Définition 1. Soient a et b deux entiers relatifs ; on dit que b divise a et on note b|a s’il
existe un entier c tel que a = b c.

Définition 2. Un entier positif est premier s’il n’admet pas d’autres diviseurs que 1 et lui-
même.

2, 3, 5, 7, 11. . . sont premiers. 1 n’est pas premier.

Théorème 1. Il existe une infinité de nombres premiers.

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

Définition 3. Le PGCD de deux entiers naturels a et b est le plus grand élément de


l’ensemble de leurs diviseurs communs ; on le note a ^ b.

Si a ^ b = 1 a et b sont premiers entre eux.

Le PGCD de deux entiers relatifs est celui de leurs valeurs absolues.

Théorème 3. Les diviseurs communs à deux entiers naturels sont les diviseurs de leur
PGCD.

Théorème 4 (Identité de BACHET-BÉZOUT). Soient a et b deux entiers relatifs. Il existe


deux entiers relatifs u et v tels que : au + bv = a ^ b.

Le PGCD de deux nombres s’obtient aisément à partir de leurs décompositions en facteurs


premiers ; mais cette décomposition peut être très difficile si les nombres sont grands.
Heureusement il existe un algorithme efficace.
77

Page 85

Sécurité des réseaux ad hoc Cheikhrouhou Omar

Algorithme 1 (EUCLIDE). Soient a et b deux entiers naturels avec a ≥ b.

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.

On n’est assuré, en général, ni de l’existence, ni de l’unicité du logarithme discret.

Théorème 5. Soit (G, .) un groupe cyclique et g un générateur de G; quel que soit b


appartenant à G il existe un unique x appartenant à{0, 1, . . . , |G| − 1} tel que xg= b : c’est
le logarithme de b dans la base g.

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

relativement premiers à n. Un nombre est relativement premier à un autre lorsqu'ils n'ont

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

le résultat de la multiplication de p et q . Sans le démontrer, le totient den sera

Ø(n)= Ø(p). Ø(q)=(p-1) . (q-1)

Prenons par exemple les deux nombres premiers 11 et 13. n=11 x 13 =143. Le totient

de n sera Ø(n)=10 x 12 = 120.

78
Page 86

Sécurité des réseaux ad hoc Cheikhrouhou Omar

Annexe B : Protocole AODV


AODV (ad hoc On demand Distance Vector) est un protocole de routage réactif de type
vecteur de distance [23, 24, 25, 26]. Il reprend certains principes de DSDV (Destination
Sequence Distance Vector) [36] mais réduit l’overhead en ne calculant que les routes sur
demande et en limitant la répercussion des modifications topologiques aux seules routes en
cours d’utilisation.

Il est basé sur l’utilisation de deux mécanismes “Découverte de route“ et “ maintenance de


route”.

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

Figure 29. Mécanisme de recherche de route par AODV

Le paquet RREQ contient l'adresse IP de la source, le numéro de séquence courant de la


source, l'ID de broadcast (RREQ ID) qui est incrémenté à chaque envoi d’un nouveau
RREQ, l’adresse IP de destination, le numéro de séquence de la destination le plus récent
connu de la source et un champ hop count indiquant le nombre de sauts de la source

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

Figure 30. Format d'un paquet RREQ dans AODV

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.

Figure 31. Retour de la réponse à une demande de route dans AODV

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

Sécurité des réseaux ad hoc Cheikhrouhou Omar

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.

2 Maintenance des routes


Afin de maintenir des routes cohérentes, AODV incorpore un mécanisme pour signaler
les ruptures de lien. Lorsqu’un noeud repère la rupture d’un lien sur le trajet d’une route
reliant une source S à une destination D, il génère vers S une trame RERR (Route ERRor )

d’erreur de route. Cette dernière relance une nouvelle procédure de recherche de route.

81

Page 89

Sécurité des réseaux ad hoc Cheikhrouhou Omar

Annexe C : Protocole DSR


DSR (Dynamic Source Routing) est un protocole réactif, qui utilise une technique de
routage par la source dans laquelle les noeuds intermédiaires ne doivent pas nécessairement
garder trace de la route. Cela permet de résoudre facilement le problème des boucles.
Chaque paquet contient dans son en-tête la liste complète des adresses des noeuds à
traverser vers la destination. DSR fonctionne de façon similaire à AODV.

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.

Figure 32. Mécanisme de découverte de route dans DSR

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

Sécurité des réseaux ad hoc Cheikhrouhou Omar

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.

2 Maintenance des routes


Afin d'assurer la validité des chemins utilisés, DSR exécute une procédure de
maintenance de routes. Quand un nœud détecte un problème fatal de transmission, à l'aide
de sa couche de liaison, un message RERR est envoyé à l'émetteur original du paquet. Le
message d'erreur contient l'adresse du nœud qui a détecté l'erreur et celle du nœud qui le suit

dans le chemin (figure 33).

Figure 33. Le noeud en amont de rupture envoie un message RERR

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

Sécurité des réseaux ad hoc Cheikhrouhou Omar

Annexe D : Configuration du noyau UML

# # CONFIG_WATCHDOG is not set


# Automatically generated make config: don't edit CONFIG_UML_SOUND=y
# CONFIG_SOUND=y
CONFIG_USERMODE=y CONFIG_HOSTAUDIO=y
# CONFIG_ISA is not set # CONFIG_TTY_LOG is not set
# CONFIG_SBUS is not set
# CONFIG_PCI is not set #
CONFIG_UID16=y # Block Devices
CONFIG_RWSEM_XCHGADD_ALGORITHM=y #
CONFIG_BLK_DEV_UBD=y
# # CONFIG_BLK_DEV_UBD_SYNC is not set
# Code maturity level options
# # CONFIG_COW is not set
CONFIG_EXPERIMENTAL=y CONFIG_COW_COMMON=y
CONFIG_BLK_DEV_LOOP=y
# CONFIG_BLK_DEV_NBD=y
# General Setup CONFIG_BLK_DEV_RAM=y
# CONFIG_BLK_DEV_RAM_SIZE=4096
CONFIG_MODE_SKAS=y CONFIG_BLK_DEV_INITRD=y
CONFIG_MODE_TT=y # CONFIG_MMAPPER is not set
CONFIG_NET=y CONFIG_NETDEVICES=y
CONFIG_SYSVIPC=y
CONFIG_BSD_PROCESS_ACCT=y #
CONFIG_SYSCTL=y # Network Devices
CONFIG_BINFMT_AOUT=y #
CONFIG_BINFMT_ELF=y CONFIG_UML_NET=y
CONFIG_BINFMT_MISC=y CONFIG_UML_NET_ETHERTAP=y
CONFIG_HOSTFS=y CONFIG_UML_NET_TUNTAP=y
CONFIG_HPPFS=y CONFIG_UML_NET_SLIP=y
CONFIG_MCONSOLE=y CONFIG_UML_NET_SLIRP=y
CONFIG_MAGIC_SYSRQ=y CONFIG_UML_NET_DAEMON=y
# CONFIG_HOST_2G_2G is not set CONFIG_UML_NET_MCAST=y
# CONFIG_UML_SMP is not set # CONFIG_UML_NET_PCAP is not set
# CONFIG_SMP is not set CONFIG_UML_NETBUS=y
CONFIG_NEST_LEVEL=0 CONFIG_DUMMY=y
CONFIG_KERNEL_HALF_GIGS=1 # CONFIG_BONDING is not set
# CONFIG_HIGHMEM is not set # CONFIG_EQUALIZER is not set
CONFIG_PROC_MM=y CONFIG_TUN=y
CONFIG_KERNEL_STACK_ORDER=2 CONFIG_PPP=y
CONFIG_UML_REAL_TIME_CLOCK=y # CONFIG_PPP_MULTILINK is not set
# CONFIG_PPP_FILTER is not set
# # CONFIG_PPP_ASYNC is not set
# Loadable module support # CONFIG_PPP_SYNC_TTY is not set
# # CONFIG_PPP_DEFLATE is not set
CONFIG_MODULES=y # CONFIG_PPP_BSDCOMP is not set
# CONFIG_KMOD is not set # CONFIG_PPPOE is not set
CONFIG_SLIP=y
# # CONFIG_SLIP_COMPRESSED is not set
# Character Devices # CONFIG_SLIP_SMART is not set
# # CONFIG_SLIP_MODE_SLIP6 is not set
CONFIG_STDIO_CONSOLE=y
CONFIG_SSL=y #
CONFIG_FD_CHAN=y # Wireless LAN (non-hamradio)
CONFIG_NULL_CHAN=y #
CONFIG_PORT_CHAN=y CONFIG_NET_RADIO=y
CONFIG_PTY_CHAN=y
CONFIG_TTY_CHAN=y #
CONFIG_XTERM_CHAN=y # Networking options
CONFIG_CON_ZERO_CHAN="fd:0,fd:1" #
CONFIG_CON_CHAN="xterm" CONFIG_PACKET=y
CONFIG_SSL_CHAN="pty" CONFIG_PACKET_MMAP=y
CONFIG_UNIX98_PTYS=y # CONFIG_NETLINK_DEV is not set
CONFIG_UNIX98_PTY_COUNT=256 CONFIG_NETFILTER=y

84

Page 92

Sécurité des réseaux ad hoc Cheikhrouhou Omar

# CONFIG_NETFILTER_DEBUG is not set # File systems


CONFIG_FILTER=y #
CONFIG_UNIX=y CONFIG_QUOTA=y
CONFIG_INET=y # CONFIG_QFMT_V2 is not set
# CONFIG_IP_MULTICAST is not set CONFIG_AUTOFS_FS=y
CONFIG_IP_ADVANCED_ROUTER=y CONFIG_AUTOFS4_FS=y
# CONFIG_IP_MULTIPLE_TABLES is not set CONFIG_REISERFS_FS=y
# CONFIG_IP_ROUTE_MULTIPATH is not set # CONFIG_REISERFS_CHECK is not set
# CONFIG_IP_ROUTE_TOS is not set # CONFIG_REISERFS_PROC_INFO is not set
# CONFIG_IP_ROUTE_VERBOSE is not set # CONFIG_ADFS_FS is not set
# CONFIG_IP_PNP is not set # CONFIG_AFFS_FS is not set
# CONFIG_NET_IPIP is not set # CONFIG_HFS_FS is not set
# CONFIG_NET_IPGRE is not set # CONFIG_HFSPLUS_FS is not set
# CONFIG_ARPD is not set # CONFIG_BEFS_FS is not set
# CONFIG_INET_ECN is not set # CONFIG_BFS_FS is not set
# CONFIG_SYN_COOKIES is not set # CONFIG_EXT3_FS is not set
# CONFIG_JBD is not set
# CONFIG_FAT_FS=y
# IP: Netfilter Configuration CONFIG_MSDOS_FS=y
# CONFIG_UMSDOS_FS=y
# CONFIG_IP_NF_CONNTRACK is not set CONFIG_VFAT_FS=y
# CONFIG_IP_NF_QUEUE is not set # CONFIG_EFS_FS is not set
# CONFIG_IP_NF_IPTABLES is not set CONFIG_JFFS_FS=y
# CONFIG_IP_NF_ARPTABLES is not set CONFIG_JFFS_FS_VERBOSE=0
# CONFIG_IP_NF_COMPAT_IPCHAINS is not set CONFIG_JFFS_PROC_FS=y
# CONFIG_IP_NF_COMPAT_IPFWADM is not set CONFIG_JFFS2_FS=y
CONFIG_JFFS2_FS_DEBUG=0
# # CONFIG_CRAMFS is not set
# IP: Virtual Server Configuration # CONFIG_TMPFS is not set
# CONFIG_RAMFS=y
# CONFIG_IP_VS is not set CONFIG_ISO9660_FS=y
# CONFIG_IPV6 is not set # CONFIG_JOLIET is not set
# CONFIG_KHTTPD is not set # CONFIG_ZISOFS is not set
# CONFIG_JFS_FS is not set
# CONFIG_MINIX_FS=y
# SCTP Configuration (EXPERIMENTAL) # CONFIG_VXFS_FS is not set
# # CONFIG_NTFS_FS is not set
CONFIG_IPV6_SCTP__=y # CONFIG_HPFS_FS is not set
# CONFIG_IP_SCTP is not set CONFIG_PROC_FS=y
# CONFIG_ATM is not set CONFIG_DEVFS_FS=y
# CONFIG_VLAN_8021Q is not set CONFIG_DEVFS_MOUNT=y
# CONFIG_DEVFS_DEBUG is not set
# CONFIG_DEVPTS_FS=y
# # CONFIG_QNX4FS_FS is not set
# # CONFIG_ROMFS_FS is not set
# CONFIG_IPX is not set CONFIG_EXT2_FS=y
# CONFIG_ATALK is not set # CONFIG_SYSV_FS is not set
# CONFIG_UDF_FS is not set
# # CONFIG_UFS_FS is not set
# Appletalk devices
# #
# CONFIG_DECNET is not set # Network File Systems
# CONFIG_BRIDGE is not set #
# CONFIG_X25 is not set # CONFIG_CODA_FS is not set
# CONFIG_LAPB is not set # CONFIG_INTERMEZZO_FS is not set
# CONFIG_LLC is not set # CONFIG_NFS_FS is not set
# CONFIG_NET_DIVERT is not set # CONFIG_NFSD is not set
# CONFIG_ECONET is not set # CONFIG_SUNRPC is not set
# CONFIG_WAN_ROUTER is not set # CONFIG_LOCKD is not set
# CONFIG_NET_FASTROUTE is not set # CONFIG_SMB_FS is not set
# CONFIG_NET_HW_FLOWCONTROL is not set # CONFIG_NCP_FS is not set
# CONFIG_ZISOFS_FS is not set
#
# QoS and/or fair queueing #
# # Partition Types
# CONFIG_NET_SCHED is not set #
# CONFIG_PARTITION_ADVANCED is not set
# CONFIG_MSDOS_PARTITION=y
# Network testing # CONFIG_SMB_NLS is not set
# CONFIG_NLS=y
# CONFIG_NET_PKTGEN is not set
#
# # Native Language Support

85

Page 93

Sécurité des réseaux ad hoc Cheikhrouhou Omar

# # CONFIG_MTD_PARTITIONS is not set


CONFIG_NLS_DEFAULT="iso8859-1" # CONFIG_MTD_CONCAT is not set
# CONFIG_NLS_CODEPAGE_437 is not set
# CONFIG_NLS_CODEPAGE_737 is not set #
# CONFIG_NLS_CODEPAGE_775 is not set # User Modules And Translation Layers
# CONFIG_NLS_CODEPAGE_850 is not set #
# CONFIG_NLS_CODEPAGE_852 is not set CONFIG_MTD_CHAR=y
# CONFIG_NLS_CODEPAGE_855 is not set CONFIG_MTD_BLOCK=y
# CONFIG_NLS_CODEPAGE_857 is not set # CONFIG_FTL is not set
# CONFIG_NLS_CODEPAGE_860 is not set # CONFIG_NFTL is not set
# CONFIG_NLS_CODEPAGE_861 is not set
# CONFIG_NLS_CODEPAGE_862 is not set #
# CONFIG_NLS_CODEPAGE_863 is not set # RAM/ROM/Flash chip drivers
# CONFIG_NLS_CODEPAGE_864 is not set #
# CONFIG_NLS_CODEPAGE_865 is not set # CONFIG_MTD_CFI is not set
# CONFIG_NLS_CODEPAGE_866 is not set # CONFIG_MTD_JEDECPROBE is not set
# CONFIG_NLS_CODEPAGE_869 is not set # CONFIG_MTD_GEN_PROBE is not set
# CONFIG_NLS_CODEPAGE_936 is not set # CONFIG_MTD_RAM is not set
# CONFIG_NLS_CODEPAGE_950 is not set # CONFIG_MTD_ROM is not set
# CONFIG_NLS_CODEPAGE_932 is not set # CONFIG_MTD_ABSENT is not set
# CONFIG_NLS_CODEPAGE_949 is not set # CONFIG_MTD_OBSOLETE_CHIPS is not set
# CONFIG_NLS_CODEPAGE_874 is not set
# CONFIG_NLS_ISO8859_8 is not set #
# CONFIG_NLS_CODEPAGE_1250 is not set # Mapping drivers for chip access
# CONFIG_NLS_CODEPAGE_1251 is not set #
# CONFIG_NLS_ISO8859_1 is not set # CONFIG_MTD_PCMCIA is not set
# CONFIG_NLS_ISO8859_2 is not set
# CONFIG_NLS_ISO8859_3 is not set #
# CONFIG_NLS_ISO8859_4 is not set # Self-contained MTD device drivers
# CONFIG_NLS_ISO8859_5 is not set #
# CONFIG_NLS_ISO8859_6 is not set # CONFIG_MTD_SLRAM is not set
# CONFIG_NLS_ISO8859_7 is not set # CONFIG_MTD_MTDRAM is not set
# CONFIG_NLS_ISO8859_9 is not set CONFIG_MTD_BLKMTD=y
# CONFIG_NLS_ISO8859_13 is not set
# CONFIG_NLS_ISO8859_14 is not set #
# CONFIG_NLS_ISO8859_15 is not set # Disk-On-Chip Device Drivers
# CONFIG_NLS_KOI8_R is not set #
# CONFIG_NLS_KOI8_U is not set # CONFIG_MTD_DOC1000 is not set
# CONFIG_NLS_UTF8 is not set # CONFIG_MTD_DOC2000 is not set
# CONFIG_MTD_DOC2001 is not set
# # CONFIG_MTD_DOCPROBE is not set
# SCSI support
# #
CONFIG_SCSI=y # NAND Flash Device Drivers
#
# # CONFIG_MTD_NAND is not set
# SCSI support type (disk, tape, CD-ROM)
# #
# CONFIG_BLK_DEV_SD is not set # Library routines
# CONFIG_CHR_DEV_ST is not set #
# CONFIG_BLK_DEV_SR is not set # CONFIG_CRC32 is not set
# CONFIG_CHR_DEV_SG is not set CONFIG_ZLIB_INFLATE=y
CONFIG_ZLIB_DEFLATE=y
#
# Some SCSI devices (e.g. CD jukebox) support multiple #
LUNs # Kernel hacking
# #
# CONFIG_SCSI_DEBUG_QUEUES is not set # CONFIG_DEBUG_SLAB is not set
# CONFIG_SCSI_MULTI_LUN is not set CONFIG_DEBUGSYM=y
# CONFIG_SCSI_CONSTANTS is not set CONFIG_PT_PROXY=y
# CONFIG_SCSI_LOGGING is not set # CONFIG_GPROF is not set
CONFIG_SCSI_DEBUG=y # CONFIG_GCOV is not set

#
# 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

Sécurité des réseaux ad hoc Cheikhrouhou Omar

Annexe E : Installation de AODV-UU


D’abord modifiez les paramètres du makefile dans aodv-uu.
Changer KERNEL_DIR pour qu'il pointe sur le noyau UML:
KERNEL_DIR=/root/UML/linux-2.4.24-wifi
Changer les options de la compilation en ajoutant les includes nécessaires
CFLAGS=$(OPTS) $(DEBUG) $(DEFS) $(XDEFS) -I$(KERNELDIR)/include -

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

@echo "Installing kernel module in


/root/UML/aodv_uu/modules/$(KERNEL)/aodv/";
@if [ -f ./kaodv.ko ]; then \
install -m 644 kaodv.ko
/root/UML/aodv_uu/modules/$(KERNEL)/aodv/kaodv.ko; \
else \
install -m 644 kaodv.o
/root/UML/aodv_uu/modules/$(KERNEL)/aodv/kaodv.o; \
fi
Il faut aussi modifier le makefile du répertoire lnx :
$(KOBJS): %.o: %.c Makefile
$(KCC) $(KCFLAGS) -I/root/UML/linux-2.4.24-wifi/arch/um/include/ -
I/root/UML/linux-2.4.24-wifi/arch/um/kernel/tt/include/ -I/root/UML/linux-2.4.24-
wifi/arch/um/kernel/skas/include/ -c -o $@ $<

Ensuite ajoutez les modules obtenus après compilation au système de fichier.


(Copier kaodv.o dans /lib/modules/2.4.24-1um/).

87

Vous aimerez peut-être aussi