Réseaux de Capteurs Sans Fils
Réseaux de Capteurs Sans Fils
Réseaux de
Capteurs Sans Fils
Version 1
YACINE CHALLAL
Objectifs 5
Introduction 7
I - Contributeurs et remerciements 9
A. Architectures et Applications.............................................................12
1. Architecture d'un RCSF.......................................................................12
2. Applications des RCSF........................................................................12
3. Anatomie d'un noeud capteur..............................................................13
4. Contraintes de conception des RCSF.....................................................15
A. Modèle en couches..........................................................................27
Yacine CHALLAL
3
A. La tolérance aux pannes dans les RCSF..............................................43
1. Les pannes.......................................................................................43
2. La tolérance aux pannes.....................................................................45
A. Découverte de TinyOS.....................................................................85
1. TinyOS : Concepts et définitions..........................................................85
2. Application Blink................................................................................87
3. Compilation et exécution de Blink........................................................91
4. Exercice............................................................................................91
Bibliographie 105
Yacine CHALLAL
4
Objectifs
Yacine CHALLAL
5
Introduction
Depuis leur création, les réseaux de communication sans fil ont connu un succès sans cesse
croissant au sein des communautés scientifiques et industrielles. Grâce à ses diverses
avantages, cette technologie a pu s'instaurer comme acteur incontournable dans les
architectures réseaux actuelles. Le média hertzien offre en effet des propriétés uniques, qui
peuvent être résumées en trois points : la facilité du déploiement, l'ubiquité de l'information
et le coût réduit d'installation. Au cours de son évolution, le paradigme sans fil a vu naître
diverses architectures dérivées, telles que : les réseaux cellulaires, les réseaux locaux sans
fils et autres. Durant cette dernière décennie, une architecture nouvelle a vu le jour : les
réseaux de capteurs sans fil. Ce type de réseaux résulte d'une fusion de deux pôes de
l'informatique moderne : les systèmes embarqués et les communications sans fil. Un réseau
de capteurs sans fil (RCSF), ou "Wireless Sensor Network" (WSN), est composé d'un
ensemble d'unités de traitements embarquées, appelées "motes", communiquant via des
liens sans fil. Le but général d'un WSN est la collecte d'un ensemble de paramètres de
l'environnement entourant les motes, telles que la température ou la pression de
l'atmosphère, afin de les acheminer vers des points de traitement. Les RCSF sont souvent
considérés comme étant les successeurs des réseaux ad hoc. En effet, les RCSF partagent
avec les MANET (Mobile Ad hoc NETworks) plusieurs propriétés en commun, telles que
l'absence d'infrastructure et les communications sans fil. Mais l'une des différences clés
entre les deux architectures est le domaine d'application. Contrairement aux réseaux
MANET, qui n'ont pas pu connaître un vrai succès, les RCSF ont su attirer un nombre
croissant d'industriels, vu leur réalisme et leur apport concret. En effet, le besoin d'un suivie
continu d'un environnement donné est assez courant dans diverses activités de la société.
Les processus industriels, les applications militaires de tracking, le monitoring d'habitat,
ainsi que l'agriculture de précision ne sont que quelques exemples d'une panoplie vaste et
variée d'applications possibles du suivi continu offert par les RCSF. Grâce à ce potentiel
riche en applications, les RCSF on su se démarquer de leur origine MANET et attirer de
grandes firmes à travers le monde, telles que IBM, Sun, Intel et Philips. Malheureusement,
les RCSF ne sont pas parfaits ! A cause de leur faible coût et leur déploiement dans des
zones parfois hostiles, les motes sont assez fragiles et vulnérables à diverses formes de
défaillances : cassure, faible énergie, ... etc. Ces problèmes rendent les RCSF des systèmes
à fragilité innée, qui doit être considérée comme une propriété normale du réseau.
Yacine CHALLAL
7
Contributeurs et
I -
I
remerciements
Ce support de cours :
est une collection de travaux d'états de l'art réalisés par des étudiants
doctorants et de master : Abdelraouf Ouadjaout, Miloud Bagaa, Noureddine
Lasla, Boushra Maala, Fatima Zohra Benhamida
Reprend des schéma et des contenus rendus publiques par leurs auturs:
Chenyang Lu, Kemal Akkaya and Mohamed Younis, Romit Roy Choudhury,
Martin Haenggi, David Culler, David Gay, Bob Heile, Samuel Nelson
reprend des contenus réalisés par des collègues et co-auteurs d'articles
publiés ensemble :
- Hatem Bettahar (UTC)
- Abdelmadjid Bouabdallah (UTC)
- Abdelmalik Bachir (Imperial College London)
- Lyes Khelladi (CERIST-Algérie)
Yacine CHALLAL
9
Réseaux de
II -
II
capteurs sans fils :
Architectures et
Applications
Architectures et Applications 12
Les récentes avancées dans les domaines des technologies sans-fil et électroniques
ont permis le développement à faible coût de minuscules capteurs consommant peu
d'énergie (solution low-cost et low-power). Ces capteurs ont 3 fonctions :
Capter des données (de type son, vibration, lumière,...)
Calculer des informations à l'aide de ces valeurs collectées
Les communiquer à travers un réseau de capteurs
Un réseau de capteurs est composé d'un nombre souvent très important de nSuds
qui sont, soit posés à un endroit précis, soit dispersés aléatoirement (souvent
déployés par voie aérienne à l'aide d'avions ou hélicoptères). Ce dispersement
aléatoire des capteurs nécessite que le protocole utilisé pour les réseaux de
capteurs possède des algorithmes d'auto organisation. Afin de résister aux
déploiements, ces capteurs doivent être très solides et de plus, ils doivent aussi
pouvoir survivre dans les conditions les plus extrêmes dictées par leur
environnement d'utilisation (feu ou eau par exemple). En plus des contraintes
environnementales, une contrainte très importante est l'économie de batterie. En
effet, un réseau de capteurs ne peut survivre si la perte de nSuds est trop
importante car ceci engendre des pertes de communication dues à une trop grande
distance entre les capteurs. Donc il est très important que les batteries durent le
plus longtemps possible étant donné que dans la plupart des applications ils sont
placés aléatoirement (impossible de retourner changer les batteries). Cette
utilisation liée à l'autonomie des capteurs (1 année maximum pour les technologies
actuelles) fait intervenir un paramètre non négligeable qui est le prix. Aucune
application ne serait rentable si le rapport heures d'utilisation / prix était trop élevé.
Il a donc été nécessaire d'allier technologie et low-cost. Les réseaux de capteurs
peuvent être programmés à un grand nombre de fins, telles que le contrôle
d'intrusions, le calcul de températures, le calcul de changements climatiques, la
surveillance des déplacements d'animaux (avec récepteurs GPS), surveillance de
malades,....
Yacine CHALLAL
11
Réseaux de capteurs sans fils : Architectures et Applications
A. Architectures et Applications
Yacine CHALLAL
12
Réseaux de capteurs sans fils : Architectures et Applications
Yacine CHALLAL
13
Réseaux de capteurs sans fils : Architectures et Applications
Exemple
Les figures suivantes illustrent les composants d'un noeud capteur TelosB de
CrossBow :
TelosB Recto
Yacine CHALLAL
14
Réseaux de capteurs sans fils : Architectures et Applications
TelosB Verso
Yacine CHALLAL
15
Réseaux de capteurs sans fils : Architectures et Applications
être moindre pour que le réseau survive le plus longtemps possible, qu'il
s'adapte aux différents environnements (fortes chaleurs, eau,..), qu'il soit
autonome et très résistant vu qu'il est souvent déployé dans des
environnements hostiles.
Les médias de transmission : Dans un réseau de capteurs, les nSuds sont
reliés par une architecture sans-fil. Pour permettre des opérations sur ces
réseaux dans le monde entier, le média de transmission doit être normé. On
utilise le plus souvent l'infrarouge (qui est license-free, robuste aux
interférences, et peu onéreux), le bluetooth et les communications radio
ZigBee.
La consommation d'énergie : Un capteur, de par sa taille, est limité en
énergie (< 1.2V). Dans la plupart des cas le remplacement de la batterie est
impossible. Ce qui veut dire que la durée de vie d'un capteur dépend
grandement de la durée de vie de la batterie. Dans un réseau de capteurs
(multi-sauts) chaque nSud collecte des données et envoie/transmet des
valeurs. Le dysfonctionnement de quelques nSuds nécessite un changement
de la topologie du réseau et un re-routage des paquets. Toutes ces
opérations sont gourmandes en énergie, c'est pour cette raison que les
recherches actuelles se concentrent principalement sur les moyens de
réduire cette consommation.
Yacine CHALLAL
16
Le système
III -
III
d'exploitation pour
RCSF : TinyOS
Aperçus sur TinyOS 17
nesC : le langage de programmation de TinyOS 19
Yacine CHALLAL
17
Le système d'exploitation pour RCSF : TinyOS
2. La solution TinyOS
Caractéristiques de TinyOS
Concurrence : utilise une architecture orientée événement
Modularité
- Application composée de composants
- OS + Application compilés en un seul exécutable
Communication
- Utilise un modèle event/command
- Ordonnancement FIFO non préemptif
Pas de séparation noyau/utilisateur
Yacine CHALLAL
18
Le système d'exploitation pour RCSF : TinyOS
Yacine CHALLAL
19
Le système d'exploitation pour RCSF : TinyOS
Remarque : Composant
Il existe deux types de composants
1. Module : composant implémenté avec du code
2. Configuration : composants reliés ensemble pour former un autre
composant
2. Interface
Définition : Interface
Une interface définie les interactions entre deux composants.
Yacine CHALLAL
20
Le système d'exploitation pour RCSF : TinyOS
Signaler un event
signal [Link](&msg1, SUCCESS);
3. Modules
Définition
Un module est un composant qui implemente une ou plusieurs interfaces et peut
utiliser une ou plusieurs interfaces
Syntaxe
Yacine CHALLAL
21
Le système d'exploitation pour RCSF : TinyOS
} implementation { ... }
module C2 {
provides interface triangle in;
requires { interface triangle out; interface rectangle
side; }
} implementation { ... }
module C3 {
provides interface triangle;
provides interface rectangle;
} implementation { ... }
4. Configurations
Concept de configuration
Dans nesC, deux composants sont reliés ensemble en les connectant (wiring). Les
interfaces du composant utilisateur sont reliées (wired) aux mêmes interfaces du
composant fournisseur. Il existe 3 possibilités de connexion (wiring statements)
dans nesC:
endpoint1 = endpoint2
endpoint1 -> endpoint2
endpoint1 <- endpoint2 (equivalent: endpoint2 -> endpoint1)
Syntaxe
Les éléments connectés doivent être compatibles : Interface à interface,
"command" à "command", "event" à "event". Il faut toujours connecter un
utilisateur d'une interface à un fournisseur de l'interface.
Yacine CHALLAL
22
Le système d'exploitation pour RCSF : TinyOS
Définition : Tâche
Une tâche est un élément de contrôle indépendant défini par une fonction
retournant void et sans arguments:
task void myTask() { ... }
Yacine CHALLAL
23
Le système d'exploitation pour RCSF : TinyOS
Yacine CHALLAL
24
Le système d'exploitation pour RCSF : TinyOS
Yacine CHALLAL
25
La communication
IV -
IV
dans les RCSF
Modèle en couches 27
ZigBee / IEEE 802.15.4 29
Protocoles de routage dans les RCSF 34
A. Modèle en couches
Le rôle de ce modèle consiste à standardiser la communication entre les
composants du réseau afin que différents constructeurs puissent mettre au point
des produits (logiciels ou matériels) compatibles. Ce modèle comprend 5 couches
qui ont les mêmes fonctions que celles du modèle OSI ainsi que 3 couches pour la
gestion de la puissance d'énergie, la gestion de la mobilité ainsi que la gestion des
tâches (interrogation du réseau de capteurs). Le but d'un système en couches est
de séparer le problème en différentes parties (les couches) selon leur niveau
d'abstraction. Chaque couche du modèle communique avec une couche adjacente
(celle du dessus ou celle du dessous). Chaque couche utilise ainsi les services des
couches inférieures et en fournit à celle de niveau supérieur.
Yacine CHALLAL
27
La communication dans les RCSF
Yacine CHALLAL
28
La communication dans les RCSF
Plans de gestion
Les plans de gestion d'énergie, de mobilité et de tâche contrôlent l'énergie, le
mouvement et la distribution de tâche au sein d'un nSud capteur. Ces plans aident
les nSuds capteurs à coordonner la tâche de captage et minimiser la consommation
d'énergie. Ils sont donc nécessaires pour que les nSuds capteurs puissent collaborer
ensemble, acheminer les données dans un réseau mobile et partager les ressources
entre eux en utilisant efficacement l'énergie disponible. Ainsi, le réseau peut
prolonger sa durée de vie.
Plan de gestion d'énergie : contrôle l'utilisation de la batterie. Par exemple,
après la réception d'un message, le capteur éteint son récepteur afin d'éviter
la duplication des messages déjà reçus. En outre, si le niveau d'énergie
devient bas, le nSud diffuse à ses voisins une alerte les informant qu'il ne
peut pas participer au routage. L'énergie restante est réservée au captage ;
Plan de gestion de mobilité : détecte et enregistre le mouvement du nSud
capteur. Ainsi, un retour arrière vers l'utilisateur est toujours maintenu et le
nSud peut garder trace de ses nSuds voisins. En déterminant leurs voisins,
les nSuds capteurs peuvent balancer l'utilisation de leur énergie et la
réalisation de tâche ;
Plan de gestion de tâche : balance et ordonnance les différentes tâches de
captage de données dans une région spécifique. Il n'est pas nécessaire que
tous les nSuds de cette région effectuent la tâche de captage au même
temps ; certains nSuds exécutent cette tâche plus que d'autres selon leur
niveau de batterie.
Alliance Zigbee
Dans ce contexte, l'alliance ZigBee est née : c'est une association de companies
travaillant ensemble pour développer un standard global et ouvert pour les
communications sans fils avec un coût réduit et une basse consommation de
l'énergie.
Applications types
Home automation : Chauffage, ventilation, air conditionné, sécurité,
éclairage, et contrôle d'objets.
Yacine CHALLAL
29
La communication dans les RCSF
Applications de ZigBee
Remarque : Débit
Ces applications nécessitent généralement un débit de 115.2 kb/s jusqu'à moins de
10 kb/s.
2. Caractéristiques de ZigBee
Carcactéristiques
Les objectifs visés par ZigBee peuvent être résumés dans les points suivants
Usage sans restrictions géographiques
Pénétration à travers les murs et plafonds
Installation automatique/semi-automatique
Possibilité de rajouter/retirer des dispositifs
Coût avantageux
Débit : 10kbps-115.2kbps
Portée radio: 10-75m
Jusqu'à 65k noeuds par réseau
Jusqu'à 100 réseaux co-localisés
Jusqu'à 2 ans de durée de vie de batterie standards Alkaline
Positionnement
La figure suivante illustre le positionnement de ZigBee par rapport à d'autres
standards :
Yacine CHALLAL
30
La communication dans les RCSF
positionnement de ZigBee
Yacine CHALLAL
31
La communication dans les RCSF
Remarque
La super-trame est composée de deux parties (voir figure suivante):
Inactive: toutes les stations dorment
Active: Période active composée de 16 slots. On distingue deux parties dans
les 16 slots
- Contention access period (CAP)
- Contention free period (CFP)
Structure de la super-trame
Deux paramètres déterminent la longueur de la super-trame:
Yacine CHALLAL
32
La communication dans les RCSF
5. L'algorithme CSMA/CA
Chaque noeud doit maintenir trois variables pour chaque tentative de transmission
NB: nombre de fois l'algorithme CSMA/CA fait backoff durant la tentative de
transmission en cours
BE (Backoff Exponent) : détermine le nombre de périodes backoff qu'un
noeud doit attendre avant de tenter d'accéder au canal.
CW (Contention Window) : Longueur de la fenêtre de contention ; le nombre
de slots backoff sans aucune activité de canal avant de commencer la
transmission. CW est Initialisé à 2 et remis à 2 si le canal est détecté
occupé. Une station doit détecter 2 CCA (Clear Channel Activity) avant
d'entrer en contention.
Organigramme de CSMA/CA
Yacine CHALLAL
33
La communication dans les RCSF
Orgaigramme de CSMA/CA
Yacine CHALLAL
34
La communication dans les RCSF
Topologie du réseau
La topologie détermine l'organisation des capteurs dans le réseau. Il existe deux
principales topologies dans les protocoles de routage pour les RCSF.
Topologie plate : dans une topologie plate, tous les noeuds possèdent le
même rôle. Les noeuds sont semblables en termes de ressources.s
Topologie hiérarchique : afin d'augmenter la scalabilité du système, les
topologies hiérarchiques ont été introduites en divisant les noeuds en
plusieurs niveaux de responsabilité. L'une des méthodes les plus employées
est le clustering, où le réseau est partitionné en groupes appelés "clusters".
Un cluster est constitué d'un chef (cluster-head) et de ses membres.
Paradigme de communication
Dans les RCSF, il existe trois paradigmes de communication :
Node centric : ce paradigme est celui employé dans les réseaux
conventionnels, où les communications se basent sur l'identification des
noeuds participants, qui se fait à l'aide d'adresses IP.
Data centric : dans un RCSF, la donnée est plus importante que le noeud lui-
même, ce qui rend son identification inutile. Dans le paradigme data centric,
les communicants sont identifiés par leurs données, et donc tout le système
Yacine CHALLAL
35
La communication dans les RCSF
(routage, interrogation, . . . etc) doit être régit par cette propriété. Ainsi, le
système peut être vu comme une base de données distribuée, où les noeuds
forment des tables virtuelles, alimentées par les données captées.
Position centric : dans cette approche, les positions des noeuds représentent
le moyen principal d'adressage et de routage. Dans certaines applications, il
est plus intéressant d'interroger le système en utilisant les positions des
noeuds, que leurs adresses IP. Dans ce cas, le routage s'effectue grâce à
des techniques géométriques afin d'acheminer l'information d'une zone
géographique vers une autre.
Type d'application
La méthode de captage des données dans un RCSF dépend de l'application et de
l'importance de la donnée. De ce fait, les RCSF peuvent être catégorisés comme
time-driven ou event-driven.
Application time-driven : un réseau time-driven est approprié pour des
applications qui nécessitent un prélèvement périodique des données. Par
exemple, cela est utile dans des applications de monitoring (feu, météo) afin
d'établir des rapports périodiques.
Application event-driven : dans des applications temps réel, les capteurs
doivent réagir immédiatement à des changements soudains des valeurs
captées. Un prélèvement périodique des données est inadapté pour ce type
de scénarios. Pour cela, le protocole doit être réactif et doit donner des
réponses rapides à l'occurrence d'un certain nombre d'évènements.
b) SPIN
Heinzelman et al. ont proposé une famille de protocoles appelée SPIN (Sensor
Protocols for Information via Negotiation), reposant sur un modèle de négociation
afin de propager l'information dans un réseau de capteurs. Le but de SPIN est de
pallier aux problèmes de l'inondation, qui sont :
L'implosion due à la duplication inutile des réceptions d'un même message.
Le chevauchement lié au déploiement dense des capteurs. En utilisant
l'inondation, les capteurs d'une zone émettrons tous la même donnée (ou
presque).
L'ignorance des ressources, car d'inondation ne prend pas en considération
les ressources des noeuds.
Yacine CHALLAL
36
La communication dans les RCSF
Fonctionnement de SPIN
Remarque
Lorsque le noeud s'aperçoit que son énergie est descendu sous un certain seuil, il
change son mode de fonctionnement, et ne répond à aucun message ADV.
c) Directed Diffusion
Aperçu
Directed Diffusion est un protocole de propagation de données, permettant d'utiliser
Yacine CHALLAL
37
La communication dans les RCSF
Définition : Gradient
Un gradient est un vecteur représentant l'intérêt. Il est caractérisé par une direction
et une amplitude : la direction est modélisée par le voisin émetteur de l'intérêt, et
l'amplitude est représentée par le débit de données. En plus, chaque entrée
Yacine CHALLAL
38
La communication dans les RCSF
Renforcement négatif
Dans le cas de panne d'un lien (perte de paquet, débit réduit, etc.) le puits peut
envoyer un renforcement négatif sur le chemin en panne en spécifiant le débit de
Yacine CHALLAL
39
La communication dans les RCSF
Yacine CHALLAL
40
La communication dans les RCSF
local est égal au coût reçu moins le coût du lien de réception. Dans ce cas, le noeud
relaie le paquet en remplaçant la valeur du coût par sa valeur locale :
OnRecvData(cost,from)
If (cost-linkCost(from)=[Link])
broadcastData([Link])
e) Rumour Routing
Aperçus
Les protocoles précédents utilisent une forme d'inondation pour la propagation des
intérêts ou des données. Le protocole Rumour Routing essaie de trouver un
compromis entre l'inondation des intérêts et la propagation des données.
Fondamental
Les auteurs ont utilisé un procédé probabiliste, reposant sur le fait suivant : Des
simulations basées sur la méthode de Monte-Carlo ont montré que la probabilité
que deux lignes se croisent au sein d'une région rectangulaire est 0.69. De plus, si
on utilise 5 lignes passant par un point, la probabilité qu'une autre ligne croise l'une
des cinq lignes est 0.997 !
Par conséquent, si on considère le puits et la source comme deux points, et en
établissant un nombre réduit de mi-chemins depuis la source et le puits, on aura
une forte chance que deux mi-chemins se joignent, créant ainsi un chemin complet
entre la source et la destination, tout en évitant l'inondation. La création de ces mi-
chemins se base sur la notion d'agent. Un agent est un paquet avec une grande
portée (TTL) qui traverse le réseau de noeud en noeud afin d'établir des tables de
relais. Il existe deux types d'agents : d'évènement et de requête.
Agents d'évènements
Chaque noeud maintient une table de relais locale, qui contient, pour chaque
intérêt, le prochain saut vers le puits et vers la source, ainsi qu'une métrique qui
représente le nombre de saut vers chaque extrémité. Lorsqu'un noeud observe un
nouvel évènement, il crée un nouvel agent suivant une certaine probabilité. L'agent
contient la table d'évènements parcourus au sein du chemin ainsi que le nombre de
sauts vers la source de chaque évènement. De plus, l'agent doit transporter avec
lui la liste des noeuds parcourus ainsi que leurs voisin directs. La source choisit un
voisin aléatoire et lui émet l'agent. Lorsqu'un noeud reçoit un agent, il effectue les
opérations suivantes :
Si l'agent contient un nouvel évènement, une nouvelle entrée dans la table
locale est créée.
Le noeud met à jour sa table locale et/ou la table de l'agent pour les entrées
communes, suivant le nombre de sauts optimal : i.e. si l'agent possède une
route plus courte vers un certain évènement, le noeud met à jour sa table,
et vice-versa. Cette méthode permet d'optimiser des routes déjà établies
par d'autres agents.
Si le noeud connaît des évènements non connus par l'agent, il ajoute les
entrées nécessaires dans la table de l'agent.
Le noeud choisit comme prochain saut un de ses voisins n'appartenant pas à
la liste des noeuds de l'agent, et modifie en conséquence sa table locale
pour le prochain saut vers le puits (i.e. le noeud choisi représente le
prochain vers le puits).
Le noeud ajoute à la liste des noeuds parcourus son identificateur, ainsi que
ceux de ses voisins.
Le message est envoyé au noeud choisi.
Yacine CHALLAL
41
La communication dans les RCSF
Agents d'événements
Agents de requêtes
Lorsque le puits désire prélever une donnée du réseau, il consulte sa table locale
pour une route fraîche. Si aucune entrée n'est trouvée, il initialise un agent de
requête. L'agent contient seulement la liste des noeuds visités. Lorsqu'un noeud
reçoit un agent de requête, il vérifie l'existence d'un chemin dans sa table locale. Si
ce n'est pas le cas, il choisit un voisin aléatoire et lui transmet l'agent, tout en
ajoutant son identificateur dans la liste transportée par l'agent.
Yacine CHALLAL
42
L'économie
V -
V
d'énergie et
tolérance aux
pannes dans les
RCSF
La tolérance aux pannes dans les RCSF 43
Approches et solutions tolérantes aux pannes dans les RCSF 47
La limitation d'énergie dans les capteurs sans fil, et les environnements hostiles
dans lesquels ils pourraient être déployés, sont des facteurs qui rendent ce type de
réseaux très vulnérables. Ainsi, la perte de connexions sans fils peut être due à une
extinction d'un capteur suite à un épuisement de sa batterie, ou tout simplement à
une destruction physique accidentelle ou intentionnelle par un ennemi. Par ailleurs,
l'absence de sécurité physique pour ce type de capteurs, et la nature vulnérable des
communications radios sont des caractéristiques qui augmentent les risques de
pannes sur ce type de réseau.
Certains nSuds capteurs peuvent être bloqués ou tomber en panne à cause d'un
manque d'énergie, d'un dégât matériel ou d'une interférence environnementale. La
panne d'un nSud capteur ne doit pas affecter le fonctionnement global de son
réseau. C'est le problème de fiabilité ou de tolérance aux pannes. La tolérance aux
pannes est donc la capacité de maintenir les fonctionnalités du réseau sans
interruption due à une panne d'un nSud capteur.
1. Les pannes
Yacine CHALLAL
43
L'économie d'énergie et tolérance aux pannes dans les RCSF
Remarque
Le but de la tolérance aux pannes est d'éviter la faille totale du système malgré la
présence de fautes dans un sous ensemble de ses composants élémentaires. La
tolérance de panne est d'autant meilleure que le nombre de composants en panne
est grand (avec la garantie du bon fonctionnement du système).
Yacine CHALLAL
44
L'économie d'énergie et tolérance aux pannes dans les RCSF
Détection d'erreur
C'est la première phase dans chaque schéma de tolérance aux pannes, dans
laquelle on reconnaît qu'un événement inattendu s'est produit. Les techniques de
détection de pannes sont généralement classifiées en deux catégories : en ligne et
autonome (offline). La détection offline est souvent réalisée à l'aide de programmes
de diagnostic qui s'exécutent quand le système est inactif. La détection en ligne
vise l'identification de pannes en temps réel et est effectuée simultanément avec
l'activité du système.
Détention de la panne
Cette phase établit des limites des effets de la panne sur une zone particulière afin
d'empêcher la contamination des autres régions. En cas de détection d'intrusion,
par exemple, l'isolation des composants compromis minimise le risque d'attaque
Yacine CHALLAL
45
L'économie d'énergie et tolérance aux pannes dans les RCSF
Recouvrement d'erreur
C'est la phase dans laquelle on effectue des opérations d'élimination des effets de
pannes. Les deux techniques les plus utilisées sont « masquage de panne » et «
répétition »
Masquage de panne : utilise l'information redondante correcte pour éliminer
l'impact de l'information erronée ;
Répétition : après que la panne soit détectée, on effectue un nouvel essai
pour exécuter une partie du programme, dans l'espoir que la panne soit
transitoire.
Traitement de panne
Dans cette phase, la réparation du composant en panne isolé est effectuée. La
procédure de réparation dépend du type de la panne. Les pannes permanentes
exigent une substitution du composant avec un autre composant fonctionnel. Le
système doit contenir un ensemble d'éléments redondants (ou en état standby) qui
servent à remplacer les nSuds en panne.
Yacine CHALLAL
46
L'économie d'énergie et tolérance aux pannes dans les RCSF
le capteur en panne d'un certain type peut être remplacé par la fonctionnalité d'un
capteur de l'autre type. Cependant, pour le cas des personnes B et E, qui ont la
même taille, la voix est le seul critère pour les distinguer ; d'où, le système ne
devrait avoir aucune tolérance aux pannes pour le capteur V3 qui distingue entre B
et E. Si on exclut l'un de B ou E du personnel de la société, alors le système sera
complètement tolérant aux pannes.
La tolérance aux pannes a connu une importance considérable parmi les différents
domaines de recherche dans les réseaux de capteurs sans fil; du à leurs contraintes
d'énergie, d'environnement et de déploiement. Ce dernier étant d'un coût prohibitif,
présente un handicape pour la réorganisation du réseau en cas de panne d'un ou
plusieurs de ses capteurs. D'où, il était impératif d'introduire un mécanisme de
tolérance aux pannes dans tous les protocoles implémentés au niveau des
différentes couches de l'architecture RCSF afin de garantir le bon fonctionnement
du réseau même après la faille de certains de ses composants.
Classification architecturale
Cette classification traite les différents types de gestion des composants, soit au
niveau du capteur individuellement ou bien sur tout le réseau. Nous distinguons
trois catégories principales :
Gestion de la batterie : cette catégorie est considérée comme une
approche préventive, où les protocoles définissent une distribution uniforme
pour la dissipation d'énergie entre les différents nSuds capteurs ; afin de
mieux gérer la consommation d'énergie et augmenter ainsi la durée de vie
Yacine CHALLAL
47
L'économie d'énergie et tolérance aux pannes dans les RCSF
Yacine CHALLAL
48
L'économie d'énergie et tolérance aux pannes dans les RCSF
Fondamental
L'algorithme DIN est modélisé par le problème de coloration de graphe où chaque
nSud doit occuper une couleur (ou canal) différente de celle de chacun de ses
voisins directs ainsi que les voisins de distance 2 (les voisins de ses voisins) afin
d'éviter les interférences au niveau de leur premier voisin commun. La difficulté
dans cet algorithme vient de la nécessité d'accomplir cet objectif pour une
distribution irrégulière (aléatoire) et imprévisible des composants du réseau de
capteurs.
Complément
DIN a été simulé dans un réseau militaire pour détection de mouvement des
véhicules ; il a montré une efficacité dans la sélection de canal de transmission en
minimisant les interférences ainsi que la consommation d'énergie.
Yacine CHALLAL
49
L'économie d'énergie et tolérance aux pannes dans les RCSF
RMAC
Yacine CHALLAL
50
L'économie d'énergie et tolérance aux pannes dans les RCSF
Fondamental : Publish/subscribe
PEQ introduit le paradigme Publish/Subscribe (voir figure suivante) pour
l'interaction entre le collecteur et les nSuds capteurs. En effet, les capteurs
envoient des notifications d'événements au collecteur, qui va souscrire son intérêt
pour certaines de ces informations. Les capteurs concernés publient par la suite
l'information désirée.
Méthode
Les quatre principales phases du protocole sont:
1. Construction de l'arbre de routage : cet arbre permet de définir les
différents chemins multi-sauts possibles pour acheminer les données. Le
collecteur commence le processus en initialisant la variable « saut » à 0 ;
par la suite, chaque nSud capteur prend la valeur du saut actuelle,
l'incrémente puis l'envoie à tous ses voisins. Ainsi la valeur au niveau de
chaque capteur désigne le nombre nécessaire de sauts pour communiquer
avec le collecteur. A la fin de cette phase seulement les meilleurs chemins
sont enregistrés;
2. Transmission de paquets de notification : chaque nSud capteur envoie
selon sa table de routage et l'événement capté, une notification de
l'information qu'il a. Pour cela, il utilise le chemin le plus rapide et le moins
coûteux en terme d'énergie ;
3. Propagation des paquets de souscription : dans cette étape, après une
souscription, par le collecteur, des données à transmettre, chaque nSud
achemine cette dernière jusqu'au nSud capteur concerné ;
Yacine CHALLAL
51
L'économie d'énergie et tolérance aux pannes dans les RCSF
Recouvrement de route
ii - Protocole EAR
Aperçus
Une solution hybride pour la tolérance aux pannes est proposée dans le protocole
EAR. Pour son concept préventif, EAR offre une meilleure conservation d'énergie et
définit plusieurs chemins de routage afin de garantir une fiabilité du transport et
d'augmenter la durée de vie du réseau. En outre, un mécanisme de recouvrement
de pannes est implémenté. Le protocole EAR supporte des réseaux de capteurs à
collecteurs multiples (plusieurs nSuds puits). Chaque nSud capteur génère un
paquet RPT (Report) contenant des informations pour les intérêts et préférences de
l'utilisateur. Les paquets RPT peuvent être envoyés vers n'importe quel collecteur.
Cependant, pour chaque nSud intermédiaire le protocole de routage choisit le
meilleur chemin qui réduit la consommation d'énergie et la latence.
Yacine CHALLAL
52
L'économie d'énergie et tolérance aux pannes dans les RCSF
EAR
Yacine CHALLAL
53
L'économie d'énergie et tolérance aux pannes dans les RCSF
Fondamental
VTRP utilise des rayons de transmissions variés pour la propagation de données ;
i.e. il permet d'augmenter les rayons de transmissions de différentes manières. Soit
k nSuds avec k informations. Le problème posé dans cette étude est donc «
comment acheminer toutes les k informations au collecteur d'une manière fiable et
efficace ».
Yacine CHALLAL
54
L'économie d'énergie et tolérance aux pannes dans les RCSF
Yacine CHALLAL
55
L'économie d'énergie et tolérance aux pannes dans les RCSF
Configuration initiale
Configuration de clusters
Yacine CHALLAL
56
L'économie d'énergie et tolérance aux pannes dans les RCSF
ii - Algorithme K-CDS
Définition : k-CDS
Soit G = (V, E) le graphe qui représente notre réseau de capteurs sans fil ; où V est
l'ensemble des nSuds capteurs, E est l'ensemble des liens sans fil.
Définition 1 : un réseau G est k-connexe s'il n'aura aucune partition quand
l'on omet i nSuds du graphe (i = 1, 2, ..., k-1). Une définition équivalente
est donnée par le théorème de Menger ; telle que G est k-connexe si chaque
deux nSuds sont connectés par k chemins disjoints.
Définition 2 : un sous ensemble V' V est un k-DS (k-dominating Set) de G
si chaque nSud de V qui n'appartient pas à V' a au moins k voisins dans V'.
Le k-DS V' devient k-CDS si le sous graphe G[V'] est k-connexe.
Yacine CHALLAL
57
L'économie d'énergie et tolérance aux pannes dans les RCSF
des voisins de chaque nSud. L'algorithme de k-Grid est donné comme suit :
k-Grid
Approche déterministe
Si cette condition de k-couverture est appliquée sur un réseau G k-connexe, le
backbone virtuel résultant forme un k-CDS pour G. cette approche permet donc,
d'une manière déterministe, de construire un backbone virtuel formant un k-CDS
pour le réseau G en supposant initialement que tous les nSuds appartiennent au
backbone puis en appliquant la condition de k-couverture sur cet ensemble de
nSuds.
Yacine CHALLAL
58
L'économie d'énergie et tolérance aux pannes dans les RCSF
CBKC
Yacine CHALLAL
59
L'économie d'énergie et tolérance aux pannes dans les RCSF
KAT-Mobility
Les résultats de simulation ont montré que KAT mobility peut fournir une meilleure
conservation d'énergie aussi bien qu'une bonne tolérance aux pannes en cas de mal
fonctionnement de certains nSuds.
Yacine CHALLAL
60
L'économie d'énergie et tolérance aux pannes dans les RCSF
T(n)
avec :
P : pourcentage désiré de cluster-heads pendant un round.
r : numéro du round.
G : l'ensemble des noeuds qui n'ont pas été élu cluster-heads pendant les
1/P rounds précédents. Par la suite, chaque noeud qui s'est élu cluster-head
émet un message de notification. Les noeuds membres récoltent les
messages de notification, et décident leur appartenance à un cluster. La
décision est basée sur l'amplitude du signal reçu : le cluster-head ayant le
signal le plus fort est choisi (i.e. le plus proche). En cas d'égalité, un chef
aléatoire est choisi. Chaque membre informe son chef de sa décision. Toutes
les communications précédentes étant faite dans une topologie plate, la
méthode CSMA doit être employée. Par la suite, les communications au sein
d'un cluster peuvent être faites avec la méthode TDMA. Pour cela, chaque
chef établie un schedule TDMA pour ses membres, en indiquant pour chaque
noeud son slot d'émission. Ce schedule est envoyé aux membres.
Yacine CHALLAL
61
L'économie d'énergie et tolérance aux pannes dans les RCSF
pendant leurs propres slots. Cela leur permet d'éteindre leur interface de
communication en dehors de leurs slots réservés, afin d'économiser leur énergie.
Ces informations sont ensuite agrégées, pour être transmises au collecteur (sink).
Cette communication, entre un cluster-head et le collecteur, se fait d'une manière
directe, i.e. : le cluster-head adapte son émetteur radio afin d'atteindre directement
le collecteur.
iii - TEEN (Threshold sensitive Energy Efficient sensor Network
protocol )
Aperçus
En utilisant TDMA, le protocole LEACH est destiné aux applications time-driven.
Dans ce type d'application, la donnée est propagée d'une manière périodique.
Cependant, ce genre de protocole est inadapté pour les applications event-driven,
où un comportement réactif est nécessaire pour le bon fonctionnement du système.
TEEN (Threshold sensitive Energy Efficient sensor Network protocol ) a été
développé pour modeler LEACH afin de répondre aux exigences des applications
event-driven.
Méthode
La majorité du comportement de TEEN est semblable au protocole LEACH.
Cependant, quelques différences existent. Les chefs élus ne transmettent pas un
schedule TDMA, mais émettent un message contenant les informations suivantes :
Attributs : représentent la tâche demandée au capteur.
Hard threshold (HT) : détermine la valeur critique après laquelle les
membres doivent envoyer leur rapports de données.
Soft threshold (ST) : spécifie le changement minimal obligeant le noeud à
envoyer un nouveau rapport.
Donc, lorsqu'un noeud s'aperçoit que la valeur captée a dépassé HT, il doit émettre
un rapport au chef. Il ne réémet un nouveau rapport que si la valeur change
radicalement, i.e. : la différence dépasse ST. Ce mécanisme permet d'implémenter
un comportement réactif, tout en limitant le nombre de messages utilisés.
Remarque
Etant donné la nature réactive de TEEN, l'emploi de TDMA est inadapté. Plusieurs
alternatives peuvent être considérées : CDMA ou bien CSMA.
iv - COUGAR
Dans Cougar, les données produites par le réseau de capteurs sont modélisées
comme une table relationnelle. Dans cette table, chacun des attributs représente
soit des informations sur le nSud capteur ou bien des données produites par ce
nSud. L'approche Cougar fournit une agrégation partielle au niveau des nSuds.
Chaque nSud maintient une liste d'attente contenant les nSuds fils qui doivent lui
envoyer les paquets. Le nSud n'émet le paquet agrégé au prochain saut que s'il a
reçu les paquets de tous les nSuds de la liste d'attente. Cependant, un nSud peut
devenir inaccessible à cause du mouvement ou d'un problème de batterie. Pour
cela, Cougar utilise un Timer afin d'éviter une attente indéfinie.
Yacine CHALLAL
62
La sécurité des
VI -
VI
échanges dans les
RCSF
La sécurité dans les RCSF : taxonomie des menaces et des
solutions 63
La gestion de clés dans les RCSF 65
Sécurité du routage dans les RCSF 71
Sécurité de l'agrégation dans les RCSF 79
Les propriétés des réseaux de capteurs sont à double tranchant. Certes ils
permettent une grande facilité de production et de déploiement, mais rendent le
système global de communication assez « fragile » à un certain nombre de
défaillances.
Afin d'assurer un déploiement à large échelle de cette technologie, il est nécessaire
de pallier ces problèmes de sécurité aux différent niveaux d'une architecture RCSF.
Yacine CHALLAL
63
La sécurité des échanges dans les RCSF
Yacine CHALLAL
64
La sécurité des échanges dans les RCSF
Yacine CHALLAL
65
La sécurité des échanges dans les RCSF
Contraintes de conception
La figure suivante résume les contraintes découlant des propriétés des RCSF, à
prendre en compte dans la conception d'une solution de gestion de clés pour les
RCSF.
Yacine CHALLAL
66
La sécurité des échanges dans les RCSF
Taxonomie
Bien que la cryptographie à clé publique comporte des avantages certains par
rapport à la cryptographie à clé symétrique et malgré les recherches qui visent à
les appliquer aux RCSF, la cryptographie à clé symétrique possède ses propres
qualités qui la rend toujours la plus préférée pour les RCSF. Pour cette raison la
plupart des schémas de gestion de clés proposés pour les RCSF sont basés sur la
cryptographie symétrique. Le problème majeur avec la cryptographie symétrique
est de pouvoir trouver une méthode qui facilite l'établissement des clés entre les
noeuds. La solution commune est d'utiliser une méthode de pré-distribution, dans
laquelle les clés sont chargées dans les noeuds capteurs avant le déploiement. La
figure suivante illustre une taxonomie des solutions de gestion de clés basée sur la
pré-distribution. Dans cette taxonomie, les protocoles sont classés selon la façon
avec laquelle les noeuds voisins partagent des clés communes (probabiliste ou
déterministe), et selon la topologie du réseau (hiérarchique ou plate).
Yacine CHALLAL
67
La sécurité des échanges dans les RCSF
Yacine CHALLAL
68
La sécurité des échanges dans les RCSF
Yacine CHALLAL
69
La sécurité des échanges dans les RCSF
clés. Pour cela, un nœud contrôleur (qui a une grande connectivité et peut être
mobile) annonce un message simple de révocation contenant une liste signée de k
identificateurs des clés (kidi) pour que ces clés soient retirées des trousseaux de clés
des autres noeuds. La liste des identités est signée par une clé de signature K e
générée par le nœud contrôleur et envoyée en unicast à chaque nœud i en la
chiffrant avec la clé Kci (la clé Kci est partagée entre le contrôleur et le ième nœud
pendant la phase de pré- distribution de clés). Quelques liens seront disparus à
cause de la suppression de clés du noeud compromis ce qui nécessite une
reconfiguration de ces liens (par la découverte de clés partagées ou l'établissement
de chemin de clé). La figure suivante illustre cette phase :
Révocation de clés
Yacine CHALLAL
70
La sécurité des échanges dans les RCSF
Schéma q-composite
3. LEAP
Aperçus
LEAP est un protocole déterministe de gestion de clés pour les réseaux de capteurs
sans-fils. Le mécanisme de gestion de clés fourni par LEAP support le traitement
interne "in-network processing" tout en limitant l'impact de sécurité d'un noeud
compromis sur son voisinage immédiat dans le réseau. LEAP support
l'établissement de quatre type de clés pour chaque noeud : cllé individuelle, clé par
paire, clé de groupe et clé globale.
Yacine CHALLAL
71
La sécurité des échanges dans les RCSF
a) Attaques actives
Attaque de "jamming"
Vu la sensibilité du média sans fil au bruit, un noeud peut provoquer un déni de
service en émettant des signaux à une certaine fréquence. Cette attaque peut être
très dangereuse car elle peut être menée par une personne non authentifiée et
étrangère au réseau.
Yacine CHALLAL
72
La sécurité des échanges dans les RCSF
Attaque de "jamming"
Sink hole
Dans une attaque sinkhole, le noeud essaye d'attirer vers lui le plus de chemins
possibles permettant le contrôle sur la plus part des données circulant dans le
réseau. pour ce faire, l'attaquant doit apparaître aux autres comme étant très
attractif, en présentant des routes optimales.
Attaque sinkhole
Attaque Wormhole
Dans une attaque wormhole, un attaquant reçoit des paquets dans un point du
réseau, puis les encapsule vers un autre attaquant pour les réintroduire dans le
réseau. L'encapsulation peut se faire de deux manières: – Multi-sauts:
l'encapsulation multi-sauts permet de cacher les noeuds se trouvant entre les deux
attaquants. Donc, les chemins passant par le noeud malicieux apparaissent plus
courts. Cela facilite la création de sinkholes avec des protocoles qui utilisent le
nombre de sauts comme métrique de choix de chemins. – Communication directe:
les routes passant par les attaquants sont plus rapides, car ils sont à un saut. Donc,
cette technique peut être employée contre les protocoles qui se basent sur la
latence des routes ou ceux qui utilisent la première route découverte.
Yacine CHALLAL
73
La sécurité des échanges dans les RCSF
Attaque Wormhole
Sybil attack
Dans certains algorithmes, la fiabilité du routage est implémentée par l'instauration
d'une redondance de chemins. Un attaquant peut altérer ce genre de systèmes en
"endossant" plusieurs identités, ce qui permet de créer plusieurs routes passant par
le noeud malicieux, qui ne sont en réalité qu'un seul chemin.
Hello flooding
La faible portée de capteurs et la présence d'attaquant de classe laptop ont permis
l'introduction d'une nouvelle attaque : hello flooding. Cette attaque se base sur le
fait que la plus part des liens entre l'attaquant laptop et les capteurs sont
unidirectionnels. Donc, un attaquant peut diffuser l'information d'une route
optimale vers tous les noeuds du réseau en émettant avec un signal puissant, et
tous les noeuds mettrons à jour leurs tables locales. Lorsqu'un noeud veut
communiquer, il ne pourra pas utiliser cette route car le prochain saut, qui est
l'attaquant, est hors portée.
b) Attaques passives
Lack of cooperation ou Selective Forwarding
Tous les protocoles de routage supposent que les noeuds sont "honnêtes" et vont
relayer normalement les paquets qui transitent par eux. Cependant, un attaquant
peut violer cette règle en supprimant la totalité ou une partie de ces paquets. De
plus, si l'attaquant a auparavent utilisé une attaque sinkhole, il devient un routeur
important dans le réseau. Donc, en abandonnant son rôle de routeur, les
performances du systèmes seront gravement dégradées.
Eavesdropping
Comme le média sans fil est un média ouvert, un noeud peut entendre toutes les
communications de ses voisins. Cela peut divulguer d'importantes informations,
comme la localisation d'un noeud important. La combinaison avec une attaque
sinkhole aggrave d'avantage l'impact de cette attaque.
c) Types de solutions
Nous distinguons trois niveaux de solutions aux attaques sur le routage de données
dans les RCSF :
1. La prévention contre les attaques actives: dans cette catégorie on utilise
généralement des mécanismes cryptographiques pour protéger la
Yacine CHALLAL
74
La sécurité des échanges dans les RCSF
Yacine CHALLAL
75
La sécurité des échanges dans les RCSF
Cet arbre permettra d'acheminer les messages de contrôle entre les capteurs et la
SB. Afin d'éviter le spoofing de SB, INSENS emploie un mécanisme de broadcast
authentifié. Pour ce faire, la SB génère une chaîne de hachage à sens unique
(ni)0≤i≤k comme suit :
ni+1=h(ni), 0<i<k où n0 est choisi aléatoirement, et nk est connu par tous les
noeuds, et h est une fonction de hashage à sens unique.
Périodiquement, la SB génère une requête pour re-construire les tables de routage
des capteurs. Le format du message est le suivant :
type|ows|size|path|MACRx
Le champ ows (One-Way Sequence number ) désigne la valeur courante de la
chaîne de hachage (i.e. pour la requête i, ows=ni). Chaque noeud maintient
localement la dernière valeur reçue de ows, désignée par owsfresh. Lorsqu'un noeud
x reçoit une requête, il vérifie sa fraîcheur et son authenticité par la relation
suivante:
Trouver j, tel que j>0 et ows=hj(owsfresh)
Yacine CHALLAL
76
La sécurité des échanges dans les RCSF
Construction de l'arbre
Route feedback
Yacine CHALLAL
77
La sécurité des échanges dans les RCSF
3. SecRoute
Aperçus
Le protocole SecRoute est un protocole de routage hiérarchique sécurisé. Le réseau
est organisé en clusters ayant chacun un chef. Le noeud collecteur est supposé
connaître cette organisation du réseau, et doit maintenir localement une table
contenant une clé secrète de chaque capteur. Cette clé est supposée pré-chargée
dans chaque noeud. De plus, chaque cluster doit posséder une clé permettant de
Yacine CHALLAL
78
La sécurité des échanges dans les RCSF
sécuriser les échanges intra-cluster. Cette clé doit être connue par le cluster-head
et tous les noeuds du groupe. Le protocole SecRoute ne spécifie pas l'algorithme de
construction de clusters, et suppose que les clusters ainsi que leurs clés sont établis
par un autre protocole, comme LEAP.
Remarque : Propriétés
Le protocole possède les propriétés suivantes:
Les paquets de routage ne sont pas volumineux, car ils ne contiennent
qu'une information partielle sur le chemin parcouru.
Le protocole utilise une architecture à deux niveaux, dans laquelle les chefs
agrègent les données des membres puis les transmettent au noeud
collecteur.
Le protocole emploie seulement des méthodes de chiffrement symétrique.
Pour des raisons de sécurité, le protocole remplace les unicasts par des
broadcasts locaux ciblés. En effet, en évitant les unicasts, un message émis
est reçu par tous les voisins. Donc, cela permet de vérifier, lors du relais,
l'intégrité du message émis par le prochain saut.
Chaque capteur stocke une table de routage ayant le format suivant :
Yacine CHALLAL
79
La sécurité des échanges dans les RCSF
de routage en conséquence, puis remplace les champs ID pre et IDthis par IDthis et son
identificateur. Il doit aussi modifier le champ IDnext par l'identificateur connus lors de
la phase de découverte de chemins. Si le noeud ne reçoit pas la réponse émise par
IDnext après un certain temps, il ignore toutes les requêtes émises pendant la
prochaine phase de découverte. Le noeud de relais doit aussi vérifier que la réponse
émise par le prochain saut est valide, en s'assurant qu'elle est bien destinée au
noeud à deux sauts contenu dans le chemin vers la source (i.e. le champ IDpre2 de la
table de routage). Lorsque la source reçoit la première réponse, elle vérifie le MAC
généré par le collecteur et met à jour sa table de routage en ajoutant IDthis et IDpre
comme prochains sauts vers le collecteur.
Yacine CHALLAL
80
La sécurité des échanges dans les RCSF
Yacine CHALLAL
81
La sécurité des échanges dans les RCSF
Yacine CHALLAL
82
La sécurité des échanges dans les RCSF
Yacine CHALLAL
83
La sécurité des échanges dans les RCSF
Transmission de données
Les nœuds A, B, C et D envoient des données à la station de base via l'arbre
d'agrégation construit avec un protocole de routage.
Les nœuds feuilles envoient des données à leur père. Les messages incluent
des MACs calculés avec la clé d'authentification courante:
A==>E : RA | IDA | MAC(KAi,RA)
Chaque clé est utilisée pour authentifier un seul message ce qui empêchera
l'attaque de rejeu.
Les nœuds intermédiaires reçoivent les messages de leurs fils. Le nœud père
ne peut pas encore vérifier le MAC car la clé du fils ne sera révélée que
pendant la phase de vérification. Pour le moment, le père stocke le message
et le MAC. Le nœud intermédiaire attend les paquets des fils, et envoie
ensuite un message à son père contenant les lectures des fils, leurs MACs,
ainsi que le MAC calculé sur la valeur d'agrégation:
E==>G : RA | IDA | MAC(KAi,RA) | RB | IDB | MAC(KBi,RB) |
MAC(KEi,Aggr(RA,RB))
Il n'y a aucun besoin de transmettre la valeur d'agrégation calculée, puisque
G peut calculer Aggr(RA,RB) depuis les valeurs RA et RB. Ce n'est pas aussi
nécessaire de transmettre l'IDE à G, parce que G connaît la topologie du
réseau donc peut déterminer le nœud qui envoie le message.
Le nœud G reçoit les messages des noeuds E et F. Pour chacun d'eux, G
calcule les valeurs de l'agrégation des lectures de ses petits-fils c'est-à-dire
(A, B, C et D). Il transmet alors les valeurs agrégées de ses petits-fils, l'ID
de ses fils et leurs valeurs de MAC. G calcule aussi et transmet le MAC de la
valeur d'agrégation suivante :
Aggr(RA,RB,RC,RD)=Aggr(Aggr(RA,RB),Aggr(RC,RD)).
Puisque la fonction de l'agrégation est connue à tous les nœuds, le MAC
calculé par E authentifiera la valeur calculée par G. Les lectures des capteurs
et les valeurs de MAC reçues à partir de E et F sont stockées pour
vérification postérieure.
G==>H : IDE | Aggr(RA,RB) | MAC(KEi, Aggr(RA,RB)) | IDF | Aggr(RC,RD) |
MAC(KFi,Aggr(RC,RD)) | MAC(KGi,Aggr(RA,RB,RC,RD))
De la même façon, le nœud H reçoit des messages de G et d'une autre
branche, et transmet à son tour le message agrégé à la station de base.
Noter que la longueur du message n'augmente pas si le réseau était plus
profond.
La station de base reçoit le message de H. Elle peut calculer la valeur de
l'agrégation finale, Aggr(RA, RB, RC, RD, ...) en utilisant Aggr(RA,RB,RC,RD) et
les autres valeurs de ses nœuds fils.
Validation des données
Le but du protocole SAWN est d'authentifier toutes les lectures qui ont participé à la
valeur d'agrégation, sans pour autant recevoir toutes ces lectures. Pour valider les
données (lecture des noeuds et valeurs d'agrégation), la station de base révèle la
clé courante Kxi qu'elle partage avec chaque noeud x du réseau, en émettant un
seul message contenant toutes ces clés. Ce message de révélation des clés est
authentifié par un MAC en utilisant une clé authentifiée grâce à μTESLA.
Si un nœud détecte un message erroné dans l'étape de validation de données, il
envoie un message d'alarme. Une alarme est émise par un parent quand il détecte
que le MAC d'agrégation d'un fils est contradictoire avec les données des petits-fils,
ou bien quand les MAC des données eux-mêmes sont erronés.
Yacine CHALLAL
84
La sécurité des échanges dans les RCSF
Fondamental : Concept
Les protococles de cette catégorie utilisent une clé partagée entre chaque noeud et
le noeud collecteur pour garantir l'intégrité des données transmises dans le réseau.
Comme les contenus des données sont cryptés, les noeuds utilisent un type de
cryptographie particulier appelé "Privacy Homomorphism (PH) pour pouvoir
exécuter l'agrégation
Remarque
Le point unique de vérification dans ce type de protocoles est le noeud collecteur.
Ce dernier ayant toutes les clés utilisées pour crypter les données dans le réseau.
Algorithme CMT
La taille du paquet dans ce protocole dépend de la taille de M, et une seule addition
modulaire suffit pour l'agrégation et le cryptage. Ainsi, ce protocole ne consomme
pas beaucoup d'énergie.
Yacine CHALLAL
85
La sécurité des échanges dans les RCSF
Algorithme ECEG
Yacine CHALLAL
86
Ateliers pratiques
VII -
VII
dans un
environnement
TinyOS
Découverte de TinyOS 85
Développement d'un protocole de routage (many-to-one) pour
RCSF 92
A. Découverte de TinyOS
Dans cet atalier vous allez découvrir TinyOS et le langage NesC pas à pas à travers
une application. Dans un premier temps vous allez analyser le code de cette
application. Puis vous exécuterez cette application et analyser le résultat obtenu.
Enfin on vous demandera de modifier cette application en l'enrichissant avec de
nouvelles fonctionnalités.
Yacine CHALLAL
87
Ateliers pratiques dans un environnement TinyOS
Modèle de concurrence
TinyOS execute seulement un programme consistant d'un ensemble de composants
requis par l'application. Il existe deux chemins d'exécution : les tâches, et les
"handlers" d'événements matériels.
Définition : Tâche
Les tâches sont des fonctions dont l'exécution est différée. Une fois lancée, une
tâche s'exécute jusqu'à sa fin et n'est pas et ne peut pas interrompre une autre
tâche.
Yacine CHALLAL
88
Ateliers pratiques dans un environnement TinyOS
Remarque
Les commandes et les événements qui s'exécutent dans un "handler" d'événement
matériel doivent être déclarés avec le mot clé "async".
Complément
Comme les tâches et les "handlers" sont préemptibles par d'autres codes
asynchrones, les programmes nesC son susceptibles à certaines conditions de
concurrences d'accès aux données.
Pour éviter ces conditions d'accès concurrent, il faut soit accéder aux données
partagées exclusivement à travers des tâches, ou en ayant tous les accès aux
données partagées dans des instructions "atomic".
Le compilateur signale les accès potentiellement concurrents aux données
partagées au programmeur. Il se peut que le compilateur signale des faux positifs
Dans ce cas, une variable peut être déclarée avec le mot clé norace.
Attention : norace
Le mot clé norace doit être utilisé avec une extrême précaution.
2. Application Blink
Aperçus général
Le programme "Blink" se trouve à apps/Blink dans l'arbre de TinyOS. Cette
application allume la LED rouge à une fréquence de 1HZ.
L'application Blink est composée de deux composants: un module, appelé
"[Link]", et une configuration, appelée "[Link]". [Link] est utilisée pour relier
le module [Link] à d'autres composants requis par l'application Blink.
Remarque
La raison pour laquelle on distingue les modules des configurations est de
permettre au concepteurs d'un système de construire des applications rapidement
et efficacement. Par exemple, un concepteur pourrait fournir uniquement une
configuration qui relie un ensemble de modules qu'il ne développe pas lui même.
De même, un autre développeur peut fournir une libraire d'un ensemle de modules
qui peut être utilisés dans la construction d'autres applications.
a) La configuration [Link]
Le compilateur nesC, ncc, compile une application nesC à partir de sa configuration.
Une application nesC typique est fournie avec un fichier Makefile standard qui
permet de sélectionner la plateforme d'exécution de l'application (type de mote, pc,
etc.) et invoque ncc, avec les options appropriées, sur la configuration de
l'application. Examinons maintenant la configuration [Link] de notre application :
Yacine CHALLAL
89
Ateliers pratiques dans un environnement TinyOS
[Link] Configuration
Dans les deux premières lignes, le mot clé "configuration" indique qu'il s'agit d'une
configuration appelé "Blink".
Entre les deux accolades (vides ici) il est possible de spécifier des interfaces
fournies et/ou utilisées par la configuration.
La configuration est implémentée entre les accolades suivants le mot clé
"implementation".
La ligne "components" spécifies l'ensemble de composants référencés par cette
configuration : Main, BlinkM, SingleTimer, LedsC. La suite de l'implémentation relie
les interfaces utilisées par des composants aux interfaces fournies par les autres
composants.
L'interface [Link]
Nous remarquons que StdControl définie trois commandes : init(), start(), et
stop(). init() est appelé quand le composant est initialisé pour la première fois, et
start() quand ison exécution est lancée la première fois. stop() est appelé quand le
composant est arrêté, par exemple pour éteindre le composant qu'il contrôle.
Fondamental : Le "wiring"
nesC utilise des flèches pour déterminer la liaison entre interfaces. Il lire la flèche
Yacine CHALLAL
90
Ateliers pratiques dans un environnement TinyOS
vers la droite (->) "est liée à". Le côté gauche de la flèche relie une interface à son
implémentation fournie par le côté droit de la flèche. En d'autres mots, le
composant qui utilise une interface est du côté gauche de la flèche, et le composant
qui fournie une implémentation de l'interface se trouve à droite de la flèche. La
ligne
[Link] -> [Link];
est to utilisée pour relier l'interface Timer utilisée par BlinkM à l'interface Timer
implémentée par SingleTimer. Le "wiring" peut aussi être implicite. Par exemple,
[Link] -> LedsC;
est une abréviation pour
[Link] -> [Link];
Si aucun nom d'interface n'est donné au côté droit de la flèche, le compilateur nesC
essaye par défaut de relier à la même interface du côté gauche de l'interface.
b) Le module [Link]
Considérons le module [Link] :
Le module [Link]
La première partie du code signifie qu'il s'agit d'un module appelé BlinkM, et
décalre les interfaces qu'il utilise et fournie. Le module BlinkM fournie l'interface
StdControl. ceci veut dire que BlinkM implémente l'interface StdControl. Comme
expliqué ci-dessus, ceci est nécessaire pour initialiser et lancer l'exécution du
composant Blink. Le module BlinkM utilise deux interfaces : Leds et Timer. Ceci
veut dire que BlinkM peut faire appel à toutes les commandes déclarées dans ces
deux interfaces et doit aussi implémenter tous les événements déclarés dans ces
interfaces qu'il utilise. L'interface Leds définie plusieurs commandes comme
redOn(),redOff(), etc., qui allument et éteignent les différents LEDs (rouge, vert,
jaune) du capteur.
Cependnat, Leds est juste une interface : l'implémentation est spécifiée dans la
configuration [Link].
Remarque : Timer
Considérons l'interface [Link]
Yacine CHALLAL
91
Ateliers pratiques dans un environnement TinyOS
L'interface [Link]
On remarque que l'interface Timer définie les commandes start() et stop(),
l'événement fired(). La commande start() est utilisée pour spécifier le type du timer
et l'intervalle de temps au bout duquel le Timer expire. L'unité de l'argument
interval est la milliseconde. Les types valides sont TIMER_REPEAT (le Timer se
déclenche après chaque periode de "interval" de temps jusqu'à sont arrêt avec
stop()), et TIMER_ONE_SHOT (le Timer se déclenche une seule fois après
l'expiration du délai "interval"). Comment est ce qu'une application apprend
l'expiration d'un Timer ? La réponse est lorsqu'elle reçois l'événement "expired()".
L'interface Timer fournie un événement:
event result_t fired();
un événement est une fonction que l'implémentation de l'interface signale quand un
certain événement apparaît. dans notre cas, l'événement "fired()" est signalé quand
l'intervalle de temps spécifié en argument est passé. Ceci est un exemple d'une
interface bidirectionnelle : une interface non seulement fournie des commandes qui
peuvent être appelé par les composants utilisant l'interface, mais aussi signale des
événements qui font appel à des handlers dans le composant qui utilisent
l'interface. Un module qui utilise une interface doit implémenter les événement
signalés par cette interface.
Yacine CHALLAL
92
Ateliers pratiques dans un environnement TinyOS
4. Exercice
Modifiez Blink de telle sorte que le capteur affiche, en utilisant les diodes, les trois
bits de poids faible d'un compteur.
Recompiler et relancer l'exécution de Blink sur un capteur en utilisant TOSSIM.
utilisez export DBG=led pour afficher l'état des diodes seulement.
Yacine CHALLAL
93
Ateliers pratiques dans un environnement TinyOS
Composants de l'application
Comme expliqué ci-dessus, cette première version du protocole aura besoin
d'envoyer et recevoir des messages. Pour cela, nous utiliserons le composant
GenericComm de TinyOS qui implémente les interfaces SendMsg et ReceiveMsg
permettant d'envoyer et recevoir des messages respectivement.
Toute fois, afin d'implémenter le protocole lui même (initier la procédure de
création de l'arbre par le puis, noter le noeud père, etc.) nous aurons besoin de
Yacine CHALLAL
94
Ateliers pratiques dans un environnement TinyOS
Syntaxe : [Link]
module TreeBuilderM {
provides { interface StdControl; }
uses { interface ReceiveMsg as ReceiveTreeReqMsg; interface SendMsg as
SendTreeReqMsg; }
}
implementation {
//Routing
uint16_t parentId;
//Communication
TOS_Msg buffer; // Each node has a buffer where it stores received messages.
//Functions and tasks
task void sendInitTreeReq(); // This task is launched by the SINK_NODE to initialize
tree construction task
//Implementation of StdControl Interface
command result_t [Link]() {
parentId = TOS_BCAST_ADDR; //Unknown parent
return SUCCESS;
}
command result_t [Link]() {
if (TOS_LOCAL_ADDRESS == SINK_NODE) {
post sendInitTreeReq(); //Starting the creation of the tree
}
return SUCCESS;
}
task void sendInitTreeReq() {
struct TreeReqMsg* ptr;
ptr = (struct TreeReqMsg*)([Link]);
ptr->src = TOS_LOCAL_ADDRESS; // I will be a parent
call [Link](TOS_BCAST_ADDR,sizeof(struct TreeReqMsg),&buffer);
}
command result_t [Link]() {
return SUCCESS;
}
event result_t [Link](TOS_MsgPtr pmsg, result_t success ) {
return SUCCESS;
Yacine CHALLAL
95
Ateliers pratiques dans un environnement TinyOS
}
event TOS_MsgPtr [Link](TOS_MsgPtr pmsg) {
struct TreeReqMsg * ptr;
ptr = (struct TreeReqMsg *)(pmsg->data);
parentId = ptr->src; // I received a tree construction request. I note the Id of my
parent
dbg(DBG_USR2,"__ROUTE__:parent=%d\n",parentId);
return pmsg;
}
}
Construction de l'application
Pour construire l'application [Link] il faut maintenant relier les différents
composants qui constituent cette application.
Analysez le code suivant :
Syntaxe : [Link]
includes HTC;
configuration HTC { }
implementation {
components Main, GenericComm, TreeBuilderM;
[Link] -> TreeBuilderM;
[Link] -> [Link];
//Tree Builder
[Link] -> [Link][AM_TREQMSG];
[Link] -> [Link][AM_TREQMSG];
}
Compilation et exécution
Avant de compiler et exécuter l'application HTC, nous devons d'abord définir la
topologie du réseau. Pour simplifier les choses, nous choisirons d'utiliser une grille
de 7x7 noeuds.
Le fichier suivant définie une telle topologie :
Pour compiler l'application pour être émulé par TOSSIM, tapez
make pc
Pour lancer l'exécution, tapez :
export DBG=usr2
./build/pc/[Link] -t=10 -r=lossy -rf=./grid7x7 49
Yacine CHALLAL
96
Ateliers pratiques dans un environnement TinyOS
Yacine CHALLAL
97
Ateliers pratiques dans un environnement TinyOS
Attention
Pour éliminer le problème des boucles, on avait utilisé un booléen pour savoir si le
noeud a été déjà visité ou pas. Si on veut relancer la construction périodiquement il
faut introduire un mécanisme pour savoir s'il s'agit d'une ancienne requête ou d'une
nouvelle requête de reconstruction qu'il ne faudrait pas ignorer.
Yacine CHALLAL
98
Ateliers pratiques dans un environnement TinyOS
Yacine CHALLAL
99
Test 2008/2009
VIII -
VIII
Exercice 1
Un noeud capteur sans fil
Exercice 2
Un module nesC qui implémente une interface I
doit faire appel avec "call" à toutes les commandes de cette interface I
Exercice 3
Un module nesC qui utilise une interface I
doit faire appel avec "call" à toutes les commandes de cette interface I
peut faire appel avec "call" à tous les événements de cette interface
Exercice 4
Dans nesC, une interface
Yacine CHALLAL
101
Test 2008/2009
Exercice 5
dans TinyOS, une tâche (task)
Exercice 6
Dans nesC, une configuration
Exercice 7
Considérons la définition des composants suivants :
Définition de composants
une définition possible d'une application serait :
Yacine CHALLAL
102
Test 2008/2009
Z.Y<-X.Y
Z.Y->X.Y
Z->X
Z->Y
Z=Y
Exercice 8
Dans le module suivant :
Exemple de module
Exercice 9
Dans TinyOS, le composant SingleTimer
Exercice 10
Les objectifs principaux de ZigBee sont :
d'augmenter le débit
Exercice 11
Le débit dans ZigBee est de l'ordre de :
Yacine CHALLAL
103
Test 2008/2009
Mbps
Kbps
Gbps
centaine de Kbps
Exercice 12
IEEE 802.15.4
utilise CSMA/CA
utilise CSMA/CD
Exercice 13
Dans les RCSF, le routage s'approprie plus au routage :
orienté identité
pair-à-pair
orienté données
one-to-many
many-to-one
Exercice 14
Directed Diffusion est un protocole de routage
qui permet de créer une plus courte route entre tous les noeuds du RCSF
orienté données
Exercice 15
Dans le protocole "Directed Diffusion", un intérêt
s'il est exploratoire, permet de créer des routes vers le collecteur (sink)
Exercice 16
Dans "Directed Diffusion", un gradient
Yacine CHALLAL
104
Test 2008/2009
correspond à un intérêt
Exercice 17
Dans "Directed Diffusion", le renforcement positif
utilise le boroadcast
Exercice 18
Le protocole de routage MCFA (Minimum Cost Forwarding Algorithm)
Exercice 19
L'agrégation de données dans les RCSF :
peut être considérée comme une technique réactive de tolérance aux pannes
Exercice 20
Le protocole LEAP :
Yacine CHALLAL
105
Bibliographie
[a kyild iz ]
Akyildiz I. F. Su W., Sankarasubramaniam Y. et Cayirci E. "Wireless sensor
networks: a survey", Computer Networks. Vol. 38(4). - pp. 393-422, 2002
[b o uker c he1]
Boukerche A. Werner Nelem Pazzia R., Borges Araujo R. "Fault-tolerant wireless
sensor network routing protocols for the supervision of context-aware physical
environments"; Journal of Parallel and Distributed Computing, Avr 2006. - 4 : Vol.
66. - pp. 586-599.
[b o uker c he2]
Boukerche A., Chatzigiannakisb I., Nikoletseas S. "A new energy efficient and fault-
tolerant protocol for data propagation in smart dust networks using varying
transmission range, 2006. - Vol. 29. - pp. 477-489.
[c a st elluc ia ]
Claude Castelluccia, Einar Mykletun, and Gene Tsudik. "Efficient aggregation of
encrypted data in wireless sensor networks". In MobiQuitous, pages 109-117. 2005.
[c o ug ar ]
Yong Yao and J. E. Gehrke. The Cougar Approach to In-Network Query Processing
in Sensor Networks. Sigmod Record, Volume 31, Number 3, September 2002.
[DD]
C. Intanagonwiwat and R. Govindan and D. Estrin, "Directed Diffusion : a Scalable
and Robust Communication Paradigm for Sensor Networks", ACM MobiCom 2000,
Boston, MA (2000).
[EEC- W SN ]
D. J. Malan, M. Welsh, and M. D. Smith, "A Public-Key Infrastructure for Key
Distribution in TinyOS based on Elliptic Curve Cryptography", Proc. 1st IEEE
Int'[Link]. Sensor and Ad Hoc Communications and Networks, Santa Clara, CA, Oct.
2004.
[esc hena u er ]
L. Eschenauer and V. D. Gligor, "A key-management scheme for distributed sensor
networks", In Proceedings of the 9th ACM conference on Computer and
communications security, November 2002.
[insens ]
J. Deng, R. Han, and S. Mishra, "Insens : intrusion-Tolerant Routing for Wireless
Sensor Networks", Computer Communications 29 (2006), no. 2, 216–230.
Yacine CHALLAL
107
Annexes
[kCDS]
Daia F., Wub J. "On constructing k-connected k-dominating set in wireless ad hoc
and sensor networks"; J. Parallel Distrib. Comput., 2006. - Vol. 66. - pp. 947 – 958.
[lea p ]
S. Zhu, S. Setia, and S. Jajodia, "Leap : efficient security mechanisms for large-
scale distributed sensor networks", CCS 03 : Proceedings of the 10th ACM
conference on Computer and communications security (New York, NY, USA), ACM
Press, 2003, pp. 62–72.
[m c fa ]
F. Ye et al., "A Scalable Solution to Minimum Cost Forwarding in Large Sensor
Networks", 10th Int. Conf. Comp. Commun. and Networks (2001), 304–309.
[nesc ]
David Gay, Philip Levis, david Culler, Eric Brewer ; "nesC 1.1 Language Reference
Manual".
[p eg a sis]
S. Lindsey and C. Raghavendra, "PEGASIS : Power-efficient gathering in sensor
information systems," in Proceedings of IEEE Aerospace Conference, vol. 3, March
2002, pp. 1125-1130.
[p h]
Josep Domingo-Ferrer. "A provably secure additive and multiplicative privacy
homomorphism". In ISC '02 : Proceedings of the 5th International Conference on
Information Security, 2002.
[q - co m po sit e]
H. Chan, A. Perrig, and D. Song, "Random key predistribution schemes for sensor
networks", In IEEE Symposium on Security and Privacy, Berkeley, California, May
11-14 2003, pp. 197{213.
[r o ut e]
Kemal Akkaya , Mohamed Younis "A survey on routing protocols for wireless sensor
networks" Ad Hoc Networks 3,2005.
[RR]
D. Braginsky and D. Estrin, "Rumor Routing Algorithm for Sensor Networks", 1st
Workshop. Sensor Networks and Apps., Atlanta, GA (2002).
[sa w n]
[Link] and D. Evans, "Secure aggregation for wireless networks",Workshop on
Security and Assurance in Ad Hoc Networks, January 2003.
[sec r o ut ]
J. Yin and S. Madria, "Secrout : A secure routing protocol for sensor networks",
AINA 06 : Proceedings of the 20th International Conference on Advanced
Information Networking and Applications (Washington, DC, USA), vol. 1, 2006, pp.
393–398.
[sec r o ut e]
Chris Karlof, David Wagner, "Secure routing in wireless sensor networks: attacks
and countermeasures"; Ad Hoc Networks Vol.1 (2003) pp. 293–315.
Yacine CHALLAL
108
Annexes
[sec ur eDA V]
Mahimkar A et Rappaport, T.S, SecureDAV : A Secure Data Aggregation and
Verication Protocol for Sensor Networks, 2004.
[sed a n]
[Link], N. Lasla, A. Ouadjaout and [Link] ; "SEDAN : Secure and Efficient
protocol for Data Aggregation in wireless sensor Networks", 32nd IEEE Conference
on Local Computer Networks (LCN 2007) pp. 1053-1060, Worksohop on Netwok
Security.
[sp in]
A. Perrig, R. Szewczyk, J. D. Tygar, V. Wen, and D. E. Culler, "Spins : Security
Protocols for Sensor Networks", Wirel. Netw. 8 (2002), no. 5, 521–534.
[sur v eyCST]
[Link], [Link] and [Link], "A survey of security issues in wireless
sensor networks", in IEEE Communication Survey Tutorials, 2006.
[t een]
A. Manjeshwar and D. P. Agrawal, "Teen : Arouting protocol for enhanced efficiency
in wireless sensor networks", the 15th International Parallel & Distributed
Processing Symposium (IPDPS-01), 2001, p. 189.
[t inysec ]
C. Karlof, N. Sastry, and D. Wagner, "Tinysec : A link layer security architecture for
wireless sensor networks," in Second ACM Conference on Embedded Networked
Sensor Systems (SensSys 2004), November 2004.
[to ssim ]
Philip Levis and Nelson Lee, "TOSSIM: A Simulator for TinyOS Networks"
[c ro ssb o w ]
[Link]
[t inyo s]
[Link]
[z ig b ee]
[Link]
Yacine CHALLAL
109