Non manipulabilité: Les données agrégées doivent être raisonnablement fiables: Les contributions individuelles ne doivent pas pouvoir être dupliquées Les contributions individuelles doiv
Trang 1Agrégation fiable de données d’activité sur
l’internet préservant l’anonymat
Superviseur : Martin RAJMAN - Maître d'enseignement et de recherche
Artificial Intelligence Laboratory - LIA, Ecole Polytechnique Fédérale de Lausanne - EPFL
09
Trang 2Table des matières
Liste des figures
Remerciements
Résumé
Abstract
I Introduction
1 Problématique
2 Etat de l‟art
3 Context
4 Objectives du projet DistriNet
5 Présenter précisément mon sujet de stage
II Solution
1 Métaphore du vote
A Inscription
B Validation du votant
C Vote
2 Modélisation de la procédure de vote
3 Description détaillée des solutions choisies
A Procédure d‟inscription
B Procédure d‟accès
C Procédure de vote
III Implémentation
1 Architecture
2 Diverses techniques spécifiques appliquées dans le projet
IV Test & Résultats
1 Test fonctionnel (Mode d‟emploi)
A Screenshot de Contact Peer
B Screenshot de Master Peer
C Mail de confirmation de DistriNet
D Screenshot d‟Access Peer
E Screenshot de l‟interface de Vote
Lê Bảo Anh | Institut de la Francophonie pour l‟Informatique - IFI
Trang 32 Validation 29
A Préservation de l‟anonymat 29
B Non manupulabilité 35
3 Exemple d‟exploitation des données agrégées (Google Maps) 35
V Conclusions & Perspectives 37
1 Conclusions 37
2 Perspectives 37
VI Annexe 39
1 Code des messages 39
2 Paramètre du Système 40
3 Les fichiers de log 43
A MP (128.178.155.80) 43
B P1 (128.178.155.105) 45
C P2 (128.178.155.38) 45
D P3 (128.178.155.100) 45
E BV(S) (128.178.155.92) 46
4 Introduction de déploiement d‟un pair institutionnel 47
A Installation des plate-formes 47
B Déploiement d‟un pair institutionnel 48
C Configuration d‟un pair institutionnel 49
D Lancer le système DistriNet 49
Références 50
Lê Bảo Anh | Institut de la Francophonie pour
l‟Informatique - IFI
Trang 4Liste des figures
Figure 1: Exemples d’activités sur l’Internet 8
Figure 2: Métaphore du vote - Etape 1 : Inscription 14
Figure 3: Métaphore du vote - Etape 2 : Validation du votant 14
Figure 4: Métaphore du vote - Etape 3 : Vote 15
Figure 5: Architecture générale du système DistriNet 16
Figure 6 : Procédure d’insciption 17
Figure 7 : Procédure d’accès 18
Figure 8 : Procédure de vote – Etape 1 19
Figure 9: Procédure de vote – Etape 2 20
Figure 10: Architecture d'un pair institutionnel 22
Figure 11 : Screenshot de Contact Peer 25
Figure 12 : Screenshot de Master Peer 26
Figure 13 : Screenshot de mail de confirmation du réseau DistriNet 27
Figure 14 : Screenshot d’Access Peer 28
Figure 15 : Screenshot de l’interface de Vote 29
Figure 16: Exemple d’un fichier de log 30
Figure 17: Nouvelle architecture prévue 38
Figure 18 : Le trafic des messages d’une procédure de vote 40
Figure 19 : Interface de configuration 40
Lê Bảo Anh | Institut de la Francophonie pour
l‟Informatique - IFI
Trang 5Je tiens particulièrement à remercier professeur Martin RAJMAN, mon responsable de stage,
pour l‟encadrement, l‟aide, les conseils utiles et l‟environnement de travail très sérieux qu‟il
m‟a donné pendant toute la durée du stage
Je tiens également à remercier M.Trần Hữu Đức, pour sa collaboration très utiles et ses
nouveaux concepts, ses aides, ses commentaires et ses discussions qui ont fait progresser
mon travail
Je voudrais remercier tout le personnel de l‟équipe DistriNet de laboratoire LIA de l‟EPFL,
M Pascal Felber, M Etienne Rivière, M Lozenzo Leonini de l‟université Neuchâtel Institut
d‟informatique, Nathalie Perin et son équipe de l‟école des Beaux-Arts à Genève ainsi que
Patrizio Dazzi, Matteo Mordacchini mes collègues de High Performance Computing
Laboratoire ISTI-CNR Pisa, Italy pour leurs aides, conseils et encouragements
J‟adresse mes sincères remerciements à tous les professeurs d‟informatique ainsi que de
français de l‟IFI, qui sont quelquefois très sévères, pour m‟avoir enseigné et me donné les
cours intéressants pendant mes études au niveau master Je profite de cette occasion pour dire
remercier à tous les personnels de l‟IFI qui m‟ont apporté de l‟aide
Je remercie chaleureusement mes camarades de la promotion 13 pour leur amitié Je leur
souhaite bonne chance pour la soutenance
Finalement, je voudrais remercier ma famille, mes parents et mes amis qui sont toujours près
de moi et m‟ont apporté le courage dans les moments difficiles
Lê Bảo Anh | Institut de la Francophonie pour l‟Informatique - IFI
Trang 6L'impact économique de l'Internet se développe chaque jour La plupart des applications de
Web existant à grande échelle et systèmes commerciaux existants sont actuellement
centralisées et nécessitent une grande quantité de ressources matérielles et logicielles En
outre, ils soulèvent régulièrement le problème de respecter “privacy” de diverses pièces
d'information fournis par les utilisateurs pour les applications sur Internet Réseau P2P
représentent un axe de recherche intéressant pour résoudre ces deux problèmes
Le but du projet est de construire un prototype de P2P basé sur l'environnement Splay
(http://www.splay-project.org/) de l'Université de Neuchâtel, et visant à fournir contrôle de
pertinence mesuré pour des communautés d'utilisateurs Splay est un environnement pour le
prototypage et le déploiement d‟applications distribuées de grande taille Ce système contient
déjà une partie de réseau P2P, ainsi que des mécanismes spécifiques pour garantir la
robustesse du système Splay est développée par le langage de programmation LUA
(http://www.lua.org/home.html)
La génération de contrôle de pertinence s'appuiera sur les recherches exécutées par l'EPFL et
l'Université de Neuchâtel dans le cadre du projet CoFeed L'idée de base est de suivre
l'activité de requêtes des utilisateurs, et de suivre les documents qu'ils sélectionnent dans les
pages de résultats récupérées par les requêtes soumises, et de stocker ces pages dans le
système P2P
Parmi les questions importantes à étudier, nous pouvons citer l'anonymat de contrôle de
pertinence fourni par les utilisateurs, et la non manipulabilité de ces informations
L‟anonymat est nécessaire pour assurer la confidentialité des informations transmises et
cacher l'expéditeur de ces informations Non manipulabilité est nécessairee pour éviter que
les pairs peuvent envoyer de manière répétitive les mêmes informations dans le but de biaiser
les statistiques maintenues par le système Des solutions efficaces pour les deux questions
seront dévelopées en LUA
Mots-clés :
Réseau pair-à-pair, anonymat, non manipulabilité.
Lê Bảo Anh | Institut de la Francophonie pour l‟Informatique - IFI
6
Trang 7The economic impact of the Internet is growing every day Most of the existing large-scale
web-based applications and existing commercial systems are currently centralized and
require a substantial amount of hardware and software resources In addition, they regularly
raise the problem of enforcing the privacy of the various pieces of information provided by
the users to such Internet applications P2P network represent an interesting research
direction to solve both of these problems
The purpose of this project is to build a P2P prototype based on the Splay environment
(http://www.splay-project.org/) of the University of Neuchâtel, and aiming at providing
relevance feedback information tailored for various user communities The Splay
environment is a system that simplifies the prototyping and development of distributed
applications deployed on overlay networks This system already contains a part of the
targeted P2P framework, as well as specific mechanisms for guaranteeing the robustness of
the system Splay is developed in the LUA programming language
(http://www.lua.org/home.html)
The generation of the relevance feedback information will rely on the research carried out by
EPFL and UniNE in the framework of the CoFeed project The basic idea is to monitor the
querying activity of the users, and to track the documents they select in the result pages
retrieved by the submitted queries, and to store these pages in the P2P system
Among the important issues to study, one can cite the anonymity of the relevance feedback
information provided by the users, and the non manipulability of such information
Anonymity will require to ensure the privacy of transmitted information and hide the sender
of these informations Non manipulability will require to avoid that peers can repetitively
submit the same information to bias the statistic maintained by the system Effective
solutions for both issues will be developed in LUA
Key words:
Peer-to-Peer network, anonymity, non manipulability.
Lê Bảo Anh | Institut de la Francophonie pour l‟Informatique - IFI
7
Trang 8I Introduction
1 Problématique
Sur l‟Internet aujourd‟hui, nous avons beaucoup d‟activités Dans le cadre de notre projet,
les activités sur l’Internet peuvent être définies comme les visites des sites Web, les
soumissions des requêtes sur un moteur de recherche
Si nous pouvons agréger ces activités et les stocker de façon efficace pour traiter et exploiter,
cela donnera des résultats intéressants pour les utilisateurs Il s‟agit d‟une notion de suivi de
l’activité sur l’internet, cela veut dire intercepter l‟activité effectuée par des groupes
d‟utilisateurs et l‟agréger en une activité moyenne Par exemple, pour le cas des visites de
sites web, cela revient à calculer le nombre moyen de visites reçues par un site au cours du
temps
Figure 1: Exemples d’activités sur l’Internet
En observant les exemples ci-dessus, nous trouvons qu‟il y a quelques grandes questions
Trang 9?) Peut-on les manipuler ?
?) L‟anonymat des contributions individuelles est-il préservé ?
Notre recherche sert à résoudre complètement ce problème La solution efficace de ce
problème est très importante car si l‟on peut avoir confiance en ces données, à partir de cela,
on peut construire un grand nombre des systèmes (en particulier, des applications) de types
différents qui rendre des choses très utiles pour les grands publiques sur l‟Internet
Un autre aspect difficile du problème est que ces systèmes de suivi doivent être acceptables
pour les utilisateurs Pour cela, l‟activité de suivi doit essentiellement :
Préserver l'anonymat (i.e qu'il ne soit pas possible de reconstruire les activités
individuelles à partir des informations échangees et stockées dans le système)
Donner des résultats raisonnablement fiables, en particulier qu'il ne soit pas trop
facile de biaiser les résultats produits en générant artificellement de l'activité (par
exemple en visitant un site que l'on veut favoriser plusieurs fois) L'idee dans le projet
pour éviter de telles manipulations est d'utiliser la notion d'authentification,
permettant de garantir qu'une activité n'est prise en compte qu'une seule fois par
utilisateur
Un exemple simple de ces systèmes est de traiter ces données brutes et de les visualiser (sur
une carte) A la fin de mon projet du stage, j‟ai implémenté un tel système qui accumule tous
les “votes” (une nouvelle conception sera définie dans deuxième chapitre) des utilisateurs sur
l‟Internet et les visualise dans une carte du monde (Google Maps)
D‟autre type de système sera prochainement implémenté à partir de ces données est un
système de recommandation (un tel système sera effectué à l‟EPFL par Tran Huu Duc) En
basant sur les fréquences séparées de sites web visties ou les fréquences des co-occurence des
sites web visités (visité pendant une période donnée), ce système donne aux utilisateurs des
suggestions intéressantes et utiles
2 Etat de l’art
Il existe maintenant des systèmes de presque même fonctionnalité que nous espérons, parmi
entre eux on peut citer comme Tor or FreeNet Ces deux systèmes nous permettent de
garantir l‟anonymat de la navigation par changer automatiquement et continuellement
“proxy” et la sécurité des données échangées/stockées par cryptage
Tor (le routage en oignon) est un réseau modial décentralisé de routeurs, organisés en
couches, appelés noeuds de l‟oignon, dont la tâche est de transmettre de manière anonyme
des paquets TCP
Lê Bảo Anh | Institut de la Francophonie pour l‟Informatique - IFI
Trang 10Site Web officiel du projet : http://www.torproject.org/index.html.fr
FreeNet est un autre projet dans ce domain dont l‟idée est de contruire un réseau
informatique anonyme et décentralisé sur l‟internet Il vise à permettre une liberté
d‟expression et d‟information totale fondée sur la sécurité de l‟anonymat, et permet donc à
chacun de lire comme de publier du contenu Il offre la plupart des services actuels d‟internet
(courriel, téléchargement, web, etc.)
Site Web officiel du projet : http://freenetproject.org/index.html
Mais notre but dans le projet DistriNet est différent que celui de Tor et de FreeNet Notre but
essentiel est de rendre grands publiques des données agrégées sur l’activité sur l’Internet
en tout garantissant des caractéristiques:
La capacité de raisonner de façon fiable à partir de ces données agrégées Autrement
dit, le système doit garantir le non manipulabilité
L‟anonymat des contributions individuelles utilisées pour produire les données
agrégées
3 Context
Dans le cadre du projet DistriNet, on cherche à résoudre plusieurs questions différentes
posées comme abordé ci-dessus et à construire un système réel sur l‟Internet Il s‟agit d‟un
très grand projet à long terme et besoin beaucoup de contributions de toute l‟équipe Après
des discussions sérieuses avec mon supervieur Nous nous concentrons d‟abord sur deux
grands points: préservation de l’anonimat et non manipulabilité Ce sont deux points
cruciaux et difficiles à résoudre et sont aussi mon sujet de stage
Ce projet est effectué en collabaration entre l‟Ecole Polytechnique Fédérale de Lausanne –
EPFL et les partenaires de l‟Université de Neuchatel et de l‟ISTI Pisa
Je travaille plein temps dans laboratoire LIA (Artificial Intelligence Laboratory) à l‟EPFL
C‟est une de deux grandes écoles polytechniques prestigieuses de la Suisse Ca me donne un
environnement de travail très sérieux et du niveau international
4 Objectives du projet DistriNet
Nous allons construire un système ayant les caratéristiques comme suivant :
1 Permettant de produire des données agrégées d’activité sur l’Internet librement
accessibles (système ouvert).
C‟est parce que la plupart des systèmes existants aujourd‟hui n‟est pas gratuite et
assez fermée pour les grands publiques Grâce à ce système ouvert, tout le monde
Lê Bảo Anh | Institut de la Francophonie pour
l‟Informatique - IFI
Trang 11peut construire pour soi-même des applications libre qui exploitent les données
agrégées et servent aux différents buts
2 Garantissant l’anonymat des contributions individuelles.
Cette caractéristique est pour but de garantir que personne hors d‟utilisateur puisse
savoir ces contributions individuelles ce qui, quelques fois est trop importants dans
certains systèmes statistiques informatiques
3 Garantissant une fiabilité raisonnable pour les données agrégées fournies
Cette caractéristique nous permet de traiter les données pour extraire les informations
nécessaires dans les différents buts
4 Stockant les données dans un réseau P2P (pas de serveur centralisé nécessaire)
Nous choisissons le réseau P2P pour stocker les données agrégées parce que deux
raisons principales
Premièrement, nous voulons que toutes les données soient distribuées dans tout le
réseau et tous les pairs dans le réseau jouent le même rơle que les autres Autrement
dit, aucun pair peut contrơler soi-même tout ou bien la plupart des données agrégées
dans le réseau
Deuxièmement, ces données stockées sont énormes, si elles sont stockées de façon
centralisée, nous deviendrons résoudre au problème du cỏt de la resource (la
resource matérielle demandée)
5 Permettant le développement d’applications utiles exploitant les données
disponibles (par exemple des applications de visualisation)
Notre système est ouvert, c‟est la raison pour laquelle que le système doit permettre
aux gens (les développeurs) d‟exploiter les données pour sa diversité de buts
5 Présenter précisément mon sujet de stage
Comme abordé tout d‟abord, dans mon cas, je dois résoudre deux problèmes principaux:
l'anonymat et non-manipulabilité Pour chaque problème, je dois chercher les techniques
disponibles ainsi que concevoir les techniques spéciales pour atteindre les buts posés
Pour comprendre exactement ce que je dois faire, je les définis comme suivant:
Préservation de l’anonymat des contributions individuelles:
Le mécanisme de construction des données agrégées ne doit pas permettre de reconstruire
l‟identité des utilisateurs fournissant les données indiviuelles
Non manipulabilité:
Les données agrégées doivent être raisonnablement fiables:
Les contributions individuelles ne doivent pas pouvoir être dupliquées
Les contributions individuelles doivent pouvoir être authentifiées
Lê Bảo Anh | Institut de la Francophonie pour l‟Informatique - IFI
Trang 12Dans la partie “Test & Résultats” je vais prouver ces points en utilisant et en expliquant que
mon système fonctionne correctement comme ces définitions
Lê Bảo Anh | Institut de la Francophonie pour l‟Informatique - IFI
Trang 13II Solution
1 Métaphore du vote
Théoriquement, un vote de notre sens est défini comme:
Les contributions individuelles sont modélisées comme des votes.
Et
La procédure d’agrégation est modélisée comme une votation (système de vote)
On utilise une image de vote normal existe dans la vie courante pour facilement comprendre
les conceptions utilisées dans ce projet Un vote, en général, c‟est-à-dire une activité sur
l‟internet comme un utilisateur appuie sur un lien d‟Internet, compléter un sondage ou bien
soumettre une requête de recherche avec des mots-clés sur une machine de recherche
On peut imaginer une activité mentionnée comme un vote dans la vie courante (après ceci,
appellé “vote”) Ici, nous vous donnons une comparaison étape par étape les correspondances
entre un vote dans la vie courante et un vote dans notre sens: (3 étapes) Mais il faut d‟abord
comprendre les concepts essentiels utilisés dans le système:
Vote : recensement d‟une activité d‟un utilisateur sur l‟Internet (ex : la visite d‟un
site web, le click sur un lien URL après une recherche); on s‟intéresse prioritairement
à des activités pour lesquelles il existe un historique (historique de navigation, de
recherche, bookmarks, )
Votant : utilisateur inscrit dans le système DistriNet.
Bulletin de vote : mécanisme d‟authentification des votes, appellé aussi jeton de
vote
Bureau de vote : machine connectée au réseau DistriNet chargée de prendre en
compte (i.e agréger, compter) les votes pour un type d‟activité donné (e.g les visites
d‟un site Web)
Je distingue concrètement les 3 étapes :
Lê Bảo Anh | Institut de la Francophonie pour l‟Informatique - IFI
Trang 14A Inscription
Figure 2: Métaphore du vote - Etape 1 : Inscription
Dans cette étape, un utilisateur doit s‟inscrire auprès d‟un “Master Peer” (un pair
institutionnel dans le réseau DistriNet et son explication détaillée sera abordée plus tard) pour
avoir le droit de voter Le fait n‟est exécuté qu‟une fois (la première fois d‟accès au réseau)
Le système demandera aux utilisateurs une identité, dans notre système c‟est une adresse
email valide
La technique de filtrage spécique captcha est utilisée pour éviter les inscriptions
automatiques par robots La version utilisée dans le système est recaptcha, une version
gratuite, populaire et destiné spécifiquement pour les logicielles source ouvert
Après cette étape, l‟utilisateur peut obtenir un login/password, cela est considéré comme
“carte d’électure” pour voter dans les fois suivantes.
Afin d‟éviter les gens qui veulent tricher le système, un email de confirmation sera envoyé à
cette adresse email dans le but de validation
B Validation du votant
Figure 3: Métaphore du vote - Etape 2 : Validation du votant
Chaque fois un votant veut voter, il doit présenter l‟identité (email dans ce cas-là) L‟étape
correspondante dans notre système est de faire un login avec l‟identification d‟utilisateur et
le mot de passe reçus de l‟étape précedante
Lê Bảo Anh | Institut de la Francophonie pour l‟Informatique - IFI
Trang 15C Vote
Figure 4: Métaphore du vote - Etape 3 : Vote
Au lieu de mettre le bulletin de vote dans une boîte, l‟utilisateur clique sur un lien URL ou
bien envoie une requête de recherche dans le réseau DistriNet Ces données sont stockées
dans le réseau
2 Modélisation de la procédure de vote
Une architecture générale du système DistriNet fonctionne comme dans la figure suivante :
Lê Bảo Anh | Institut de la Francophonie pour
l‟Informatique - IFI
Trang 16Figure 5: Architecture générale du système DistriNet
Avec :
• Volatile Peer (VP) : un utilisateur de l‟Internet (en fait, un plug-in dans le
navigateur Web qu‟il utilise)
• Contact Peer (CP) : une machine dans le réseau DistriNet (i.e un pair
institutionnel) qui permet aux utilisateurs d‟accéder au réseau
• Access Peer (AP) : un pair institutionnel (aléatoirement choisi par le Contact
Peer) qui permet aux utilisateurs d‟accéder aux réssources du réseau DistriNet
• Master Peer (MP) : le pair institutionnel (aléatoirement choisi par le Contact
Peer) qui permet a un nouvel utilisateur de s‟inscrire dans le réseau, gère son
information spécifique (adresse mail, login/password), lui fournit des jetons de vote et
authentifie ses votes
Un Volatile Peer sur l‟Internet ne connait que Contact Peer Autrement dit, Contact Peer est
un seul pair institutionnel connu pour les utilisateurs dans le réseau Après avoir bien
Lê Bảo Anh | Institut de la Francophonie pour
l‟Informatique - IFI
Trang 17contacté, Contact Peer va choisir aléatoirement un autre pair institutionnel (c‟est Master Peer
si Volatile Peer veut s‟inscrire dans le réseau DistriNet, et Access Peer dans le cas d‟accéder
au réseau DistriNet) C‟est aussi une façon de garantir l‟équilibrage de charge pour le réseau
Pair-à-Pair
3 Description détaillée des solutions choisies
A Procédure d’inscription
Figure 6 : Procédure d’insciption
Tout d‟abord, Volatile Peer contacte avec Contact Peer pour recevoir l‟IP de Master Peer
choisi aléatoirement par ce Contact Peer En suite, Volatile Peer transfère directement à ce
Master Peer reçu: email, password, recaptcha pour l‟inscription et Master Peer confirmera
l‟utilisateur par email donné
Lê Bảo Anh | Institut de la Francophonie pour
l‟Informatique - IFI
Trang 18B Procédure d’accès
Figure 7 : Procédure d’accès
1) D‟abord, Volatile Peer contacte Contact Peer et reçoit IP(AP) comme la
procédure présentée plus tôt
2) Dès que la réception de l‟IP de Access Peer, Volatile Peer submittera son userID
et password à Access Peer.
3) L‟IP de Master Peer de cet utilisateur sera extrait à partir d‟userID, Access Peer
utilise IP(MP) afin de transmettre les informations de l‟utilisateur à Master Peer pour
les authentifier et attendre la réponse de Master Peer
4) La réponse de Master Peer sur l‟authentification d‟accès de Volatile Peer
5) Access Peer permet à Volatile Peer d‟accéder au réseau DistriNet
Lê Bảo Anh | Institut de la Francophonie pour
l‟Informatique - IFI
Trang 19C Procédure de vote
Cette procédure contient deux étapes principales :
Etape 1 :
Figure 8 : Procédure de vote – Etape 1
1) Volatile Peer contacte avec Contact Peer, et puis Contact Peer génère
aléatoirement un pair institutionnel et répond à Volatile Peer l‟adresse IP d‟Access
Peer pour que
Volatile Peer puisse accéder au réseau auprès cet Access Peer
2) Il s‟agit d‟une procédure d‟accès au réseau DistriNet comme expliqué ci-dessus
dans la partie “Procédure d‟accès”
3) Une fois accédée, Volatile Peer demandera à l‟Access Peer de générer pour lui les
trois pairs intermédiaires P1, P2, P3 pour effecturer le vote Parmi eux, P1 et P2
jouent le rôle de transmettre les messages de vote tandis que le pair intermédiaire P3
s‟occupe de la validation de vote Après avoir reçu les ips de trois ces pairs
intermédiaires, la procédure continuera comme dans l‟étape 2
Lê Bảo Anh | Institut de la Francophonie pour l‟Informatique - IFI
Trang 20Etape 2 :
Dans cette étape, les messages circilants dans le réseau DistriNet sont assez compliqués, les
numéros suivants sont correspondants avec ceux dans la figure:
Figure 9: Procédure de vote – Etape 2
BV(S) : Bureau de Vote du site S
Premièrement, Volatile Peer génère les deux codes C1 et C2 à partir de tokenID pour crypter
les messages votés dans le but de cacher le contenu avec les pairs intermédiaires Il y a
plusieurs possibilités différentes pour générer ces deux codes en garantissant l‟indépendance
entre C1 et C2 Dans notre cas, nous avons choisi de couper en deux parties de tokenID (la
moitié à gauche et celle à droite de tokenID) Ce Volatile Peer utilise ces deux codes afin
d‟envoyer des messages pour les pairs intermédiaires P1 & P2
1) Volatile Peer envoie 3 messages pour les 3 pairs intermédiaires Pour les P1 & P2,
la structure des messages est :
Lê Bảo Anh | Institut de la Francophonie pour
l‟Informatique - IFI
Trang 21a Vote session ID : ID d‟une session de vote
b IP(BV(S)) : Adresse Logique du Site web voté
c Code
d Crypt d‟un message
Note que : les messages sont cryptés de façon croisée C‟est-à-dire que le message
envoie à P1 accompagné par C1 est crypté par C2 et vice-versa
Les deux pairs intermédiaires font seulement une chose de transmettre des messages
au pair destinataire (le pair s‟occupe du vote ou bureau de vote)
Volatile Peer envoie en même temps pour le pair intermédiaire P3 un message
contenant seulement l‟IP de Master Peer pour validation du vote
2) Dans cette étape, les deux pairs intermédiares P1 & P2 ne font qu‟une chose est
de transmettre les messages reçus au pair destinataire (bureau de vote, BV(S))
3) Une fois bureau de vote reçu les deux messages, il décrypte de façon croisée les
deux messages pour savoir le contenu (décrypter le message reçu par P1 avec code
reçu par P2 et vice-versa) Après le décryptage, BV(S) sait le vote, le pair
intermédiaire de validation de vote P3 et les deux codes C1, C2 Un message contient
C1 et C2 sera envoyé à P3 pour demander la validation de ce vote
4) P3 rejoint les deux messages reçus par BV(S) et Volatile Peer et puis contacte
avec Master Peer pour valider C1 et C2
5) Master Peer répond à la demande de P3 : OK/NOT_OK
6) P3 attend la réponse de l‟étape 5 et la transmettre à BV(S) BV(S) reçoit la
réponse et traiter le vote (accepter si la réponse est positive ou réfuser dans le cas
contraire)
Après avoir observé toutes les étapes, nous trouvons que:
Ces pairs intermédiairs P1 & P2 savent seulement l‟expéditeur et le destinataire mais ils ne
savent rien du tout le contenu des messages, c‟est-à-dire le site web voté et le pair
intermédiaire P3 (le pair intermédiaire de validation du jeton de vote)
Tandis que le pair intermédiaire P3 et Master Peer ne savent que tokenID mais pas le
contenu du vote
C‟est évidamment que Volatile Peer et Bureau de Vote savent le contenu du vote, mais BV(S)
ne sait pas Volatile Peer
C‟est la raison pour laquelle que cette procédure abordée préserve l‟anonymat de la
contribution individuelle
Lê Bảo Anh | Institut de la Francophonie pour l‟Informatique - IFI
Trang 22III Implémentation
1 Architecture
Architecture d’un pair institutionnel
Splay
Figure 10: Architecture d'un pair institutionnel
Dans le réseau DistriNet, tous les pairs institutionnels ont la même fonction (il joue le rôle
comme Master Peer, Access Peer ou peut-être Contact Peer dans certains cas) C‟est
pourquoi tous les pairs institutionnels ont la même architecture (détaillée dans la figure 10)
Toutes les fonctions de base sont développées en Lua Lua est un langage de programmation
de script libre, réflexif, impératif et fonctionnel Mais Lua se pose certaines difficultés
rencontrées pendant l‟implémentation du projet notamment les difficultés du développement
de web
Lê Bảo Anh | Institut de la Francophonie pour l‟Informatique - IFI
Trang 23Une de deux parties principales de cette architecture est un “job” Splay Splay est un
environnement pour le prototypage et le déploiment d’applications distribuées de grande
taille.
Plus précisément, ce “job” Splay qui tourne tout le temps (temps réel) afin de traiter les
données reçues, traiter les messages (transmettre, crypter, décrypter) Il est déployé
automatiquement à partir d‟un pair institutionnel unique dans le réseau (qui joue le rôle
contrôller dans le réseau) pour tous les pairs institutionnels dans le réseau DistriNet
La partie de web serveur permet au système d‟interagir avec les utilisateurs
Dans tout le développement, nous nous appuyons sur plusieurs projets et bibliothèques
supportées Lua dans les domains de web, base de données, cryptage, recaptcha La plupart
de ces modules se trouve dans le projet Kepler :
http://www.keplerproject.org/
Il s‟agit d‟une plate-forme open source pour le développement d‟applications web en LUA
La partie de web qui tourne de manière séparée et indépendante sur chaque pair institutionnel
dans le réseau DistriNet Pour chaque pair institutionnel, cette partie doit être déployé
manuellement à partir du code source et configuré par l‟adminitrateur de ce serveur (pair
institutionnel) Les descriptions de déploiment et de configuration se trouvent dans la partie
d‟annexe IV
Nous listons tous les codes des messages transmis pour que tous les pairs institutionnels
puissent se connecter, ainsi que toutes les informations techniques concernant la mise en
oeuvre du sysème dans la partie d‟annexe
Tout le code source et ainsi que les modifications du projet se trouvent sur l‟Internet sur le
lien : http://code.google.com/p/distrinet/
2 Diverses techniques spécifiques appliquées dans le projet
Le protocole de transmission des messages dans le réseau DistriNet maintenant est TCP/IP
(Transmission Control Protocol/Internet Protocol) A cause que la manque du protocol de
routage dans le réseau pair-à-pair (La connection effective au réseau P2P va être intégrée
dans la nouvelle version du système) Nous devons donc utiliser le protocole TCP/IP pour
transmettre les messages
Tout le cryptage des données a été appliqué pour transmettre les messages dans notre système
est l‟algorithme DES (Data Encryption Standard) en utilisant la bibliothèque openssl (la
spécification détaillée de cette technique peut être trouvé sur http://www.openssl.org/)
Lê Bảo Anh | Institut de la Francophonie pour l‟Informatique - IFI
23
Trang 24Le système de gestion de base de données MYSQL a été utilisé afin de gérer les informations
de chaque pair institutionnel comme les informations d‟utilisateur, les données d‟activité
agrégées fiables, les paramètres de configuation du système
Le serveur web Xavante est utilisé pour être mieux compatible avec le langage de
progammation LUA selon les suggessions des auteurs de LUA Xavante fait partie du projet
Kepler : http://www.keplerproject.org/xavante/
Lê Bảo Anh | Institut de la Francophonie pour l‟Informatique - IFI
Trang 25IV Test & Résultats
1 Test fonctionnel (Mode d’emploi)
Dans cette partie, nous vous présentons quelques principaux screenshots et ses explications
de notre système
A Screenshot de Contact Peer
Figure 11 : Screenshot de Contact Peer
La première connection avec le réseau DistriNet est l‟interface de Contact
Peer Une petite fenêtre qui liste les pairs institutionnels existants dans le
réseau On peut choisir les fonctions :
Register (s‟inscrire) : si un utilisateur appuie sur ce bouton, Contact Peer va choisir
aléatoirement un pair institutionnel et y aller (redirect) Ce pair institutionnel
deviendra Master Peer de cet utilisateur
Lê Bảo Anh | Institut de la Francophonie pour
l‟Informatique - IFI