Vus les contraintes des RCSF, la plus part des protocoles de routage sont assez simple, et par conséquent assez vulnérables aux attaques. Un noued malicieux peut opérer sur deux niveaux :
Les données échangées entre les noeuds
La topologie du réseau créée par le protocole
Ces attaques peuvent être classées en deux catégories : actives et passives.
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.
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.
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.
Certaines optimisations ont été développées afin d'augmenter la connaissance des chemins. Lorsqu'un noeud entend (en mode promiscuous) une information de routage, il met à jour sa table de routage locale en conséquence. Un noeud malicieux peut émettre un nombre important de fausses informations, remplissant ainsi les tables de routage des noeuds. Comme ces tables possèdent des tailles limitées, cela va engendrer un débordement, et les tables ne contiendront que de fausses routes.
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.
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.
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.
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.
Nous distinguons trois niveaux de solutions aux attaques sur le routage de données dans les RCSF :
La prévention contre les attaques actives: dans cette catégorie on utilise généralement des mécanismes cryptographiques pour protéger la signalisation qui sert à la construction de routes. C'est généralement des mécanismes d'authentification et de contrôle d'intégrité qui sont utilisés pour empêcher un noeud malicieux d'injecter, de modifier et/ou de supprimer une information qui servira pour la découverte, la construction ou la maintenance d'une route.
La détection de comportements suspects: dans cette catégorie on tente de déceler des comportements qui témoignent d'une attaque passive (manque de coopération, refus de relais de paquets, etc.)
La tolérance : dans cette catégorie, on introduit des mécanismes de tolérance de défaillance de noeuds à cause d'attaques ou de pannes. Le routage multi-chemin en est un exemple typique.
La figure suivante résume les catégories de solutions à préconiser pour faire face à différents types d'attaques.