• Aucun résultat trouvé

Dans [YKGF06a], Yu et al. proposent SybilGuard, un système de détection des pairs sybils basé sur les relations sociales. Notre solution s’appuie en partie sur SybilGuard et nous décrivons ce système dans cette section.

A B C D E Table de routage IN B D E OUT D E B

(a) Tables de routage de SybilGuard.

A

B

C

D E

(b) Deux routes aléatoires partant de A et

B. Une fois réunies, ces deux routes restent jointes.

Figure 6.1 – Routes aléatoires de SybilGuard. La table de routage de C est

explicitée.

6.1.1 Graphe SybilGuard

SybilGuard est un système implanté sur chaque pair du réseau et permettant à chacun de ces pairs d’évaluer l’honnêteté d’un autre pair quelconque. Cette décision est basée sur un parcours particulier du graphe social.

Chaque pair maintient une liste d’amis qui sont ses voisins dans le graphe social. Cette liste représente des liens réels entre des personnes qui attestent de leur existence mutuelle. Les arcs ne sont pas dirigés et les relations sont donc considérées réciproques. Un nouvel utilisateur doit d’abord s’insérer dans le réseau SybilGuard avant de rejoindre le réseau pair-à-pair protégé.

Chaque SybilGuard possède plusieurs amis et donc plusieurs arcs : le pair crée une table de routage aléatoire par permutation aléatoire entre ces arcs. Ces

tables de routage permettent de parcourir le graphe selon des routes aléatoires1;

ces routes aléatoires ont les deux propriétés de convergence et de traçabilité arrière et sont illustrées figure 6.1.

1. Les routes aléatoires ne sont pas des marches aléatoires. Les routes aléatoires sont ai-guillées de manière déterministe selon les tables de routage générées aléatoirement la première fois, alors que les marches aléatoires sont redirigées aléatoirement à chaque saut.

S V

X

Figure6.2 – Un vérifieur V accepte un pair suspect S si et seulement si deux

de leurs routes aléatoires se croisent en un pair X.

Propriété 8 (Convergence et Traçabilité arrière)

Les routes aléatoires de SybilGuard ont les deux propriétés suivantes : 1. Convergence : Deux routes qui entrent par le même arc ressortent

par le même arc et restent ensuite jointes ;

2. Traçabilité arrière : Deux routes qui proviennent d’arcs différents ne peuvent pas ressortir par le même arc, car les tables de routage sont des permutations.

À partir de ces propriétés, il n’y a qu’une seule route de longueur donnée qui traverse un arc à son i-ème saut : une route est entièrement déterminée par cette information.

Chaque pair génère une route aléatoire pour chacun de ses arcs. Un vérifieur

V accepte un suspect S comme honnête si la majorité des routes aléatoires issues

de V croisent une route issue de S. L’intersection entre deux routes est illustrée figure 6.2.

6.1.2 Représentation du graphe

Le graphe SybilGuard est représenté par un ensemble de tables stockées par les pairs dans lesquelles chaque pair est identifié par sa clé publique. Pour chaque arc a, chaque pair P stocke une table des témoins et une table des enregistrés : – la table des témoins contient tous les pairs sur la route aléatoire de P

sortant par a ;

– la table des enregistrés contient tous les pairs dont la route aléatoire arrive à P par a.

Les deux tables d’un pair sont illustrées sur la figure 6.3(a).

Quand un pair ajoute un arc, il réinitialise sa table de routage aléatoirement, ce qui dévie les routes. Les tables sont ensuite mises à jour en conséquence, comme illustré figure 6.3(b).

Un vérifieur V accepte un suspect S comme un pair honnête s’il existe une majorité des routes aléatoires de V qui croisent une route de S. Le processus de test est le suivant :

A B C D E F Table des témoins

1 2 3 ID PE PF ... Table des enregistrés 1 2 3 ID PC PB PA

(a) Tables des témoins et des enregistrés du pair D. A B C D E F G Table des enregistrés 1 2 3 ID PC PB PG

(b) B ajoute un voisin, réinitialise sa table de routage et la table des enregistrés de D évolue.

Figure6.3 – Tables des témoins et des enregistrés.

– S envoie ses tables des témoins à V ;

– V cherche un pair commun X entre ses témoins et ceux de V , un pair commun correspondant à une intersection de deux routes ;

– V contacte X pour vérifier que S a bien une route passant par X, ce qui est vrai si une des tables des enregistrés de X contient S.

6.1.3 Protection contre l’attaque sybile

Une attaque sybile sur le réseau SybilGuard se déroule en deux étapes : 1. l’attaquant physique s’insère dans le réseau SybilGuard, en créant des

arcs vers des amis. Ce nombre d’arcs est limité par le nombre d’amis de l’attaquant présents dans le réseau ;

2. l’attaquant crée un nombre illimité d’identités sybiles. Ces identités sybiles sont ajoutées en tant qu’amis du pair attaquant initial ou à sa place pour certains arcs vers la zone honnête.

Le nombre de pairs sybils créés par un attaquant est illimité mais le nombre d’arcs vers le réseau honnête est limité : SybilGuard utilise cette limite. En effet, pour se faire accepter par un pair V , un pair S doit avoir une route qui croise une route du pair V . Grâce aux propriétés des routes aléatoires, toutes les routes des pairs sybils suivent les mêmes arcs d’entrée vers le réseau honnête et

convergent. De plus, grâce à la traçabilité arrière, il n’existe qu’une seule route

traversant un arc donné dans un sens à son i-ème saut, et donc un unique pair initiateur de cette route. Si la longueur des routes est limitée par un paramètre

w, alors le nombre de routes de l’attaquant entrant dans la partie honnête du

graphe social est également limité, ce qui limite le nombre de pairs sybils ayant une existence dans le graphe honnête. Cette protection est illustrée figure 6.4.

Zone honnête

(a) Initialement, le réseau SybilGuard est un graphe social de pairs honnêtes N.

Zone honnête

(b) Un attaquant ♠ crée un arc avec un pair honnête.

Zone honnête Zone sybile

(c) L’attaquant crée autant de pairs sybils qu’il le souhaite, mais ne peut ajouter des arcs qu’entre eux.

Zone honnête Zone sybile

(d) La longueur des routes étant limitée à 3, seuls trois pairs sybils peuvent créer des routes entrant dans la zone honnête (conver-gence et traçabilité arrière).

Figure 6.4 – Une attaque sybile dans le cas de SybilGuard. La longueur des

routes aléatoires w vaut 3.

6.1.4 Longueur des routes aléatoires

La longueur des routes aléatoires w reflète un compromis entre la facilité d’insertion pour un pair honnête et la difficulté de créer des identités sybiles pour un attaquant. Le paramètre w doit être :

– suffisamment élevé pour garantir une forte probabilité d’intersection entre deux routes aléatoires honnêtes ;

– suffisamment faible pour empêcher un attaquant d’insérer un grand nombre de pairs sybils dans le graphe honnête.

Le calcul de la longueur optimale des routes w est effectué localement par chaque pair à partir d’un échantillonnage de tests selon une méthode proposée dans [YKGF06a]. Chaque pair situé sur une route utilise sa valeur de w pour propager la route et un attaquant ne peut donc pas créer des routes arbitraire-ment longues.

Un pair honnête peut éventuellement avoir une route aléatoire qui entre dans une partie sybile du graphe. Dans ce cas, cette route n’est plus protégée

par SybilGuard et croise un nombre illimité de pairs sybils : c’est pourquoi un pair n’est pas considéré comme honnête si une unique route croise une route du vérifieur mais plutôt si la majorité des routes du vérifieur croisent une route du suspect. Cette vérification permet de lisser le comportement de SybilGuard sur l’ensemble des routes de chaque pair.

La longueur des routes w garantissant une probabilité d’intersection élevée entre deux routes honnêtes est de l’ordre de Θ(√n log n), où n est la taille du réseau [YKGF06a]. Chaque pair accepte ainsi de l’ordre de Θ(g × w) pairs sybils par attaquant, où g est le nombre d’arcs entre cet attaquant et la partie honnête du graphe. La longueur w des routes joue donc un rôle important et nous montrons que la combinaison avec l’autorité de certification distribuée permet de réduire cette longueur.

SybilGuard seul ne propose aucun contrôle sur les identifiants des pairs. Chaque membre possède un couple de clés publique/secrète et chaque pair est identifié dans l’overlay pair-à-pair par le condensat de sa clé publique. Un atta-quant peut ainsi générer un grand nombre de clés publiques avant de joindre Sy-bilGuard, choisir celle dont le condensat est situé au bon endroit dans l’overlay

[CDG+02] et enregistrer cette clé publique : SybilGuard limite le nombre de

pairs sybils mais ne contraint pas leurs identifiants à être choisis aléatoirement. SybilGuard n’offre donc qu’une protection partielle contre l’attaque sybile et la combinaison avec l’autorité de certification distribuée permet de traiter le second aspect de la protection.