Système de réputation préservant la vie privée

Dans les grands réseaux comme Internet, la grande majorité des interactions sont effectuées entre des inconnus, ce qui pose problème lorsque les membres du réseau placent dans ces interactions une certaine valeur, monétaire ou autre. Dans le cas du commerce électronique par exemple, un acheteur n’a aucune idée de l’état réel du bien vendu, qui peut être un produit d’occasion au lieu d’un produit neuf ou être plus abîmé qu’annoncé. Parallèlement, le vendeur ne peut pas être certain qu’il sera payé après avoir expédié le bien. De ce fait, l’acheteur et le vendeur aimeraient tous deux savoir avant de s’engager définitivement s’ils peuvent faire confiance à l’autre et si le risque qu’ils encourent est grand.

Pour répondre à ce problème, il est possible d’utiliser un système de réputation. Un système de réputation permet à ses utilisateurs d’estimer la réputation des autres utilisateurs afin de les aider à décider si oui ou non ils peuvent leur faire confiance et s’il est prudent de conclure une transaction. La réputation (ou score de réputation) d’un membre du réseau est généralement représentée par un objet mathématique. L’objectif du score de réputation est de donner une représentation synthétique des différents avis des clients ayant déjà eu une interaction avec le fournisseur. Dans le cas du système de commerce électronique eBay [1], un vendeur propose un objet à la vente en fournissant une description ainsi qu’une photographie. Les acheteurs potentiels vont enchérir afin de remporter cet objet. Une fois que la transaction est effectuée, l’acheteur et le vendeur peuvent se noter l’un l’autre en déposant un témoignage, c’est-à-dire une note dans {−1, 0, +1}. Le score de réputation d’un utilisateur est la somme de ces retours. Il existe d’autres méthodes de calcul de score, comme l’utilisation de fonctions bayésiennes [18].

Si personne ne cherche à contourner le système, tout ira pour le mieux. Cependant, certains utilisateurs peuvent essayer d’attaquer le système, par exemple pour augmenter leur réputation, la remettre à zéro ou diminuer celle d’autres utilisateurs. D’autres peuvent adopter un comportement égoïste et faire du free-riding, c’est-à-dire utiliser le système pour estimer la réputation de certains utilisateurs sans fournir eux-mêmes de témoignages. Comme nous le verrons par la suite, des solutions existent permettant de se prémunir de telles attaques. Ces solutions utilisent généralement des techniques de redondance des informations, des fonctions de calcul de réputation robustes ou encore des mécanismes d’incitation à la coopération.

Terminologie des systèmes de réputation 

Un système de réputation met en jeu des participants appelés agents. Un agent peut être soit un fournisseur de service, soit un client. Un fournisseur de service, noté FS dans la suite, fournit un service, par un exemple un bien dans le cas d’un système de commerce électronique ou un fichier dans un réseau P2P de transfert de fichiers. Ces fournisseurs sont contactés par des clients qui utilisent les services proposés. Les clients sont notés p, q, . . . Avant d’interagir avec un fournisseur, un client utilise le système de réputation pour calculer le score de réputation du fournisseur de service, lui permettant ainsi d’estimer le comportement passé de ce fournisseur et de décider si oui ou non il peut interagir avec lui sans risque. Une fois que l’interaction est finie, le client émet un témoignage décrivant ce qu’il pense de cette transaction. Les nœuds du réseau stockant les témoignages sont appelés des témoins. Bien évidemment, les différents agents peuvent être bienveillants ou malveillants. Un agent malveillant va par exemple essayer d’augmenter artificiellement un score de réputation ou en diminuer un autre.

Systèmes de réputation

Lorsqu’un client utilise un système de réputation, il doit effectuer plusieurs actions pour obtenir le score de réputation d’un fournisseur de service. Dans un premier temps, il doit localiser où sont stockés les témoignages concernant les actions passées de ce fournisseur. Si le système est distribué, les témoignages peuvent être répartis dans le réseau. Ceux-ci peuvent-être les agents ayant émis ces témoignages ou d’autres. Le client doit alors déterminer en quels endroits collecter les témoignages, c’est-à-dire localiser les témoins de ce fournisseur. Ensuite, il doit les collecter le plus efficacement possible. Finalement, il doit calculer le score de réputation du fournisseur. Ces trois étapes quatre dans le cas distribué – sont les briques communes à tout système de réputation. À cet effet, nous proposons une taxonomie des systèmes de réputation suivant ces quatre éléments. Nous ferons ensuite le point sur les attaques possibles sur les systèmes de réputation. Finalement, nous présenterons un système de réputation centralisé respectant la vie privée des participants.

Stockage des témoignages

Choisir une architecture centralisée ou distribuée modifie le stockage des informations. En effet, lorsqu’un serveur central est utilisé par tous les clients et fournisseurs de service, toutes les informations peuvent y être stockées. Par contre, lorsque la conception du système de réputation est distribuée, les témoignages peuvent être stockés par l’agent comme proposé par Ravoaja [28], sous l’hypothèse que celui-ci n’a aucun intérêt à modifier son propre retour . C’est ce qui est proposé dans la plupart des systèmes distribués .

Sélection des témoins dans une architecture distribuée

En l’absence de serveur central sur lequel l’intégralité des témoignages concernant un fournisseur de service est stockée, il est nécessaire de localiser les témoignages. Comme le réseau est généralement ouvert, il peut y avoir une grande quantité de nœuds sur lesquels les témoignages ont été stockés à l’issue des différentes interactions entre clients et fournisseurs de service. Interroger tous ces nœuds est trop coûteux, c’est pourquoi des schémas de sélection de témoins sont utilisés. Ravoaja [28] présente plusieurs méthodes de sélection des témoins. La première, naïve, est une méthode par inondation. Un client cherchant à calculer la réputation de FS demande à chacun de ses voisins à un saut sur le réseau s’il a interagi avec FS. Ces derniers transmettent la requête à leurs propres voisins et ainsi de suite, jusqu’à ce que le nombre de sauts maximum (ou Time To Live), donné dans le premier message, soit atteint. Une première optimisation consiste en l’utilisation de marches aléatoires. Le premier témoin est choisi de manière aléatoire et choisira ensuite un autre témoin aléatoirement parmi ses propres témoins, et ainsi de suite jusqu’à ce que le nombre désiré de témoins soit obtenu. Une seconde technique possible est celle dite de « recherche par percolation ». Pour cette méthode, chaque témoin initie une marche aléatoire de longueur fixée et donne un index pointant sur ses témoignages à chaque agent de la marche aléatoire. Si, à l’instar de Gnutella, le réseau suit une distribution en loi de puissance , Ravoaja montre qu’au moins un agent ayant une réputation élevée reçoit une copie de l’index si la longueur de la marche est suffisante. Cela permet une propagation très rapide des requêtes et assure aux clients qu’en contactant les agents de score élevé ils auront des pointeurs vers la plupart des témoignages.

Collecte des témoignages

Dans toute architecture, la manière dont les scores de réputation du serveur sont collectés peut varier. Dans le cas centralisé, il suffit que le serveur donne le score global de réputation d’un fournisseur de service à tout agent en faisant la requête. C’est ce qui est fait pour eBay : tout le monde peut voir sur le profil d’un vendeur quel est son score de réputation et quelles sont ses dernières évaluations. Dans une architecture distribuée, la collecte des témoignages est fortement liée à l’algorithme de stockage des témoignages : par exemple, si les témoignages sont stockés sur les agents les ayant émis, il faut localiser ces agents témoins via une des méthodes présentées précédemment puis les contacter. Pavlov et al. [25] proposent plusieurs méthodes permettant en outre une collecte anonyme des témoignages. Dans celles ci, le paramètre n représente le nombre de témoins de FS choisis par p. Dans la première méthode, p construit un anneau constitué de tous les témoins. Pour calculer le score de réputation d’un fournisseur de service, p fait transiter un nombre qu’il initialise à une valeur aléatoire. Lors de la réception du message, chaque témoin additionne à ce nombre son témoignage sur FS et envoie le résultat au témoin suivant. Lorsque p obtient la somme de toutes les notes, il soustrait la valeur aléatoire initiale pour obtenir un score de réputation de FS – ce score dépendant des témoins choisis. Au total, O(n) messages ont été envoyés entre les agents. Le problème est que deux témoins « entourant » un autre témoin peuvent obtenir le score du témoin entouré. Pour améliorer cela, les auteurs proposent une deuxième méthode .

Calcul du score de réputation

Le calcul du score de réputation est intimement lié au format des témoignages, et donc à leur propagation ainsi qu’à leur stockage. Jøsang et al. [19] présentent de nombreuses manières de faire ce calcul. Les protocoles que nous avons vu jusqu’à présent font généralement une addition des différents témoignages ou une moyenne. Les auteurs précisent que si ces méthodes de calcul permettent une compréhension de tous, elles ne permettent pas une gestion aussi fine de la réputation qu’on le voudrait : un fournisseur de service ayant reçu 90 témoignages positifs et 10 négatifs aura le même score qu’un autre ayant reçu 80 témoignages positifs. De plus, ces méthodes ne permettent pas de donner plus d’importance à des témoignages émanant d’agents particuliers.

Table des matières

1 Introduction
2 État de l’art
2.1 Terminologie des systèmes de réputation
2.2 Systèmes de réputation
2.3 Attaques ciblant les systèmes de réputation
2.4 Système de réputation centralisé préservant la vie privée
3 Objectifs
3.1 Terminologie et définitions
3.2 Objectifs
4 Proposition
4.1 Système de réputation en présence de fournisseurs honnêtes
4.2 Système de réputation en présence de fournisseurs malhonnêtes
4.3 Protocole d’interaction entre un client et un fournisseur
5 Attaques sur le système et la vie privée
5.1 Robustesse du système de réputation
5.2 Respect de la vie privée
6 Conclusion

Cours gratuitTélécharger le document complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *