RAMACHANDRA Samundeswar FREENET - GNUTELLA Projet CDI 2002/2003
FREENET 1.Introduction 2.Historique 3.Architecture 4.Le Protocole 5.Conclusion Projet CDI 2002/2003
Introduction Freenet est une application de réseau adaptatif d’égal à égal qui permet de créer une mémoire massive et virtuelle d’information pour mettre les publication, la duplication et la récupération de données tout en préservant l’anonymat de tous. Les principaux caractéristiques : ° Fortement résistant : tous les processus internes sont anonymes et décentralisés sur la totalité du réseau ° Privée : il est difficile de visualiser les informations qu’une personne visionne Projet CDI 2002/2003
Introduction ° Sûre : par le cryptage fort des informations ° Efficace : par la destruction des données devenues non utile, par la réplication dynamique des données suivant la demande et fournit un service efficace pour un usage minimal de la bande passante en regard de ma charge. Projet CDI 2002/2003
Historique Freenet est une implémentation Open Source améliorée du système décrit dans le mémoire de Ian CLARKE datant de 1999 : « A distributed decentralised information storage and retrieval system » Le développement est effectué après la publication du mémoire (Jt 99) par un groupe dirigé par CLARKE. La première version (0.1 de Freenet )est apparue en Mars Et actuellement on en est à la version 0.4. Projet CDI 2002/2003
Architecture Réseau d’égal à égal de nodes qui se connectent les uns les autres pour stocker et délivrer les fichiers de données réparties par des clés. Un node : - gère son stock local de données - le met au disposition de l’ensemble du réseau - possède une table de routage dynamique contenant des adresse des autres nodes et des clés qu’ils sont susceptibles de détenir. Projet CDI 2002/2003
Architecture Les demandes s’effectuent de nodes en nodes, chaque node prennent la décision du routage local en cas de boucle détectée le node précédent choisit un node différent pour la redirection. Une requête est constituée d’un compteur(Hope-to-live) et d’un identifiant unique.Celle-ci est traitée jusqu’au succès ou échec (Hope-to-live = 0). Projet CDI 2002/2003
Clés Les données de Freenet sont identifiées par des clés binaires. Ces clés sont obtenues par l’utilisation d’une fonction de hachage : SHA- 1 sur 160bits. Freenet permet d’utiliser trois types de clés différentes : La clé à signature de mot clé ( Keyword Signature Key KSK) : hachage du titre de document. Titre Clé publique/privéesignature du fichier haché => clé du fichier Projet CDI 2002/2003
Cryptage du fichier par la chaîne descriptive comme clé Publication de la chaîne pour l’accès aux autres La clé à signature d’espace de nommage (Signed Subspace Key SSK) permet de créer son propre espace de nommage privé. Espace de nommage => une paire de clé pub/privée ( l’identifiant) Insertion d’un fichier : 1.Hachage indépendant : chaîne descriptive / partie publique de l’identifiant 2.Association par un XOR 3.Re-Hachage =>clé du fichier Cryptage Publication de la chaîne + la clé publique personnalisée + sous identifiant personnel Remarque : Pour le stockage nécessité de la clé privée
La clé à hachage de contenu (Content Hash Key ou CHK) permet, à l'aide de clefs d'authentifications générées lors de la génération de la clef, d'autoriser le propriétaire du document à mettre à jour, bien qu'il ne sache pas où le document se trouve physiquement. Hachage du contenu => clé pseudo-unique Cryptage du fichier par une clé générée aléatoirement Publication de la clé d’hachage de contenu + clé de décryptage Projet CDI 2002/2003
Retrouver des données 1.Calculer ou obtenir la clé de fichier binaire 2. Requête dans son propre node. Okje suis la source Sinon routage (clé de la requête) Clé la plus proche ( similaire) Pas de boucle Node fonctionnel Hope-to-live >0 Projet CDI 2002/2003
B D E C A abbNode C acdNode B abc Requête Données Retrouver des données échec Projet CDI 2002/2003
La duplication des informations B D E C A abbNode C acdNode B abcNode D abc Le fichier est dupliqué sur le chemin (cache) Politique de cache : Last Recently Used Mise à jours des tables de routage Le graphe évolue (un lien = nouvelle entrée) Met la donnée dans son propre cache
Avantages : spécialisation des nœuds en clé similaires Spécialisation en des clusters de fichiers ayant des clés similaires Suivant la charge du réseau décrémentation du H-t-L Permet l’ajout des nouvelles nodes inconnues fournissant des fichiers Projet CDI 2002/2003
Stockage des données Calcul du clé de fichier binaire Algorithme : recherche dans son propre node si la clé est déjà oui : retour des données existante non : envoie aux autres nodes (H-t-L) Si collision => choix d’une autre clé Fin du H-t-L : insertion choix de la clé la plus proche envoie à ce node Si collision : envoie des données vers le node précédent Sans collision de clé : message « tout est clair » est envoyé au node original. Emplacement avec des clés similaires. L’insertion indique les nouvelles nodes Projet CDI 2002/2003
Gestion des nodes Un nouveau node peut joindre le réseau en : en découvrant l’adresse d’un ou plusieurs nodes existantes Déclarant sa présence Concernent la clé du node, il doit : * Choisir des graines aléatoires * Envoyer un message d’annonce hachage de ces graines ) à quelques nodes existants. Réception de l’annonce => génère une graine aléatoire Xor avec le hachage reçu re-hachage avec le résultat => un engagement Projet CDI 2002/2003
Gestion des nodes Envoie de ce nouvelle hachage à d’autres nodes Chaînes ( H-t-L) le dernier génère la graine Tous les nodes révèlent leurs graine => Xor de toutes les graines : clé du nouveau node. Projet CDI 2002/2003
Détails du protocole Protocole orienté paquet Un message : Le démarrage d’une transaction Id de la transaction H-t-L Depth Request.Hand de retour Reply.HandShaque N°version de protocle qu’il comprend node
La demande de données E N RequestData Id+HtL+clé de la requête R ReplyRestrat Time out du réseau SendData (données du Node En cas d’échec : ReplyNotFound Selon H-t-l Démarre un Compteur C=0 échec
L’insertion de données E R collision Reply.Insert Send.Insert SendData (données du Node RequestData Id+HtL+clé de la requête RequestInsert Id+HtL+Depth+proposition de clé Insère les données Send.Insert Fin de la transaction
Conclusion Sécurité Tolérance aux pannes Stockage efficace des informations Algorithme de routage efficace et adaptatif La nature du système ne permet pas d’évaluer avec précision son efficacité.
Bibliographie [freenetproject] dec 2002http://freenetproject.org/cgi-bin/twiki/view/FR/ICSI [Linsolas] Rapport de stage de DEA d’Informatique Distribuée Romain Linsolas dec 2002 [linusfrench.net] dec 2002http:// [Da Costa] Simulation Peer- to- Peer de Georges Da Costa Laboratoire ID- IMAG Projet APACHE UMR 5132 dec 2002