Sujet d’étude d’approfondissement en réseau: Freenet samy Responsable du module: Florence Perronnin Auteurs: Audrey COLBRANT Samy SIDOTMANE
Plan Introduction I. Description générale II. Les réseaux P2P décentralisé faiblement structuré III. Description technique de Freenet IV. Objectifs de Freenet V. Démonstration Conclusion Bibliographie samy
Introduction Naissance du projet Année de création : 1999 Concepteur : Ian Clarke Lieu : Edimbourg Fonctionnalités possibles avec Freenet 0.7 Surfer sur des sites Freenet Créer et insérer des free Site Discussions dans des forums Echange de fichiers Réception et envoi d’email samy
I. Description générale Fonctionnement global Réseau bâtit sur internet Diamétralement opposé aux principes du web Pas de client ni de serveur / tous clients et tous serveur P2P =/= Freenet =/= Web Espace de total liberté Anonymat Résistance à la censure Résistance aux attaques C’est fun audrey
Comment se connecter à Freenet ? Installer un nœud sur votre PC Nœud = Serveur (accès local: 127.0.0.1:8888) Patienter 24 à 48 heures pour que la page d’accueil soit utilisable. audrey
II. Les réseaux P2P décentralisés faiblement structurés Le principe : P2P Chaque nœud est serveur et client en même temps Les ressources sont décentralisées Décentralisé Recherche de ressources décentralisée Montée en charge Structuré Anneau logique où l’on ordonne les nœuds et les clés de décryptage des données. Une Finger Table sur chaque nœud pour repérer les clés lors des recherches samy
Exemple d’anneau logique avec DHT à 6bits Les nœuds Les clés privées associées aux ressources Finger Table pour le nœud 8 Clé Nœud 8+1=9 N14 8+2=10 8+4=12 8+8=16 N21 8+16=24 N32 8+32=40 N42 samy
Mais alors qu’est ce que le P2P décentralisé faiblement structuré ? Nœuds ordonnés sur l’anneau Ressources dupliquées Ressources non ordonnées sur l’anneau Finger Table remplacée par un cache samy
III. Description technique de Freenet 1. S’insérer dans le réseau 2. Stockage de l’information 3. Les principaux protocoles de routage 4. Flux réseau et ports utilisés samy
III. 1. Fonctionnement du réseau Freenet (S’insérer dans le réseau) J’ai téléchargé le logiciel Freenet et démarré le service(nœud actif) Votre Ordinateur Internet Noeud samy Browser 127.0.0.1:8888 port : 2383 nodeId : 20107cdb705b37dbbcbbd6ec836919bebea24b3bf962a2943213c0032ef3c6af
III. 1. Fonctionnement du réseau freenet (S’insérer dans le réseau) J’ai téléchargé le logiciel Freenet et démarré le service(nœud actif) Pour accéder au réseau il faut connaitre quelqu’un Vous connaissez l’ NodeInfo et ip d’un ami (on suppose qu’il est dans le réseau) Le Nœud de votre ami toto Votre Noeud Toto envoi: idVoisin le plus proche du votre samy 83.203.191.23 86.101.11.33
III. 1. Fonctionnement du réseau freenet (S’insérer dans le réseau) J’ai téléchargé le logiciel Freenet et démarré le service(nœud actif) Pour accéder au réseau il faut connaitre quelqu’un Vous connaissez l’IP d’un ami (on suppose qu’il est dans le réseau) Vous ne connaissez personne hélas (reste le DNS – pas vraiment à jour) DNS Le Nœud retourné par le DNS Votre Noeud Nœud inconnu envoi: idVoisin le plus proche du votre samy 83.203.191.23 86.101.11.33
III. 1. Fonctionnement du réseau freenet (S’insérer dans le réseau) J’ai téléchargé le logiciel Freenet et démarré le service(nœud actif) Pour accéder au réseau il faut connaitre quelqu’un Vous connaissez l’IP d’un ami (on suppose qu’il est dans le réseau) Vous ne connaissez personne hélas (reste le DNS – pas vraiment à jour) Dans les deux cas vous avez un NodeId auquel vous connecter 3. Se connecter au voisin que l’on vous a retourné, à son tour il vous redirigera jusqu’à ce que vous ayez au moins 3 connections et au plus 20 connections samy
III. 1. Fonctionnement du réseau freenet (S’insérer dans le réseau) Bilan jusqu’à présent Votre nœud Est placé dans sa zone N2^160-1 1 3 1 N2^160-XXX samy 2 N2^159
III. 1. Fonctionnement du réseau freenet (S’insérer dans le réseau) J’ai téléchargé le logiciel Freenet et démarré le service(nœud actif) Pour accéder au réseau il faut connaitre quelqu’un Vous connaissez l’IP d’un ami (on suppose qu’il est dans le réseau) Vous ne connaissez personne hélas (reste le DNS – pas vraiment à jour) 3. Se connecter au voisin que l’on vous a retourné, à son tour il vous redirigera jusqu’à ce que vous ayez au moins 3 connections et au plus 20 connections 4. À ce moment notre table de routage possède quelques voisins qui eux aussi nous ont dans leur Table samy
III. 2. Le stockage de l'information - tout est fichier - un fichier = une clé unique - fichiers coupés en blocs de 32 Ko a - Les clés b - Le stockage audrey
III. 2.a - Les clés Accès au fichier par : http://localhost:8888/[Freenet Key] CHK - Content Hash Keys SSK - Signed Subspace Keys USK - Updateable Subspace Keys audrey
CHK : Permet de désigner un fichier particulier sur le réseau (mp3, pdf...). Composé de : 1. le hash du fichier donnant un identifiant unique 2. la clé de décryptage qui permet de lire le fichier 3. la méthode de cryptage impossible de décrypter le fichier sans la CHK A quoi ça ressemble ? CHK@file hash,decryption key,crypto settings Par exemple : CHK@SVbD9~HM5nzf3AX4yFCBc-A4dhNUF5DPJZLL5NX5Brs, bA7qLNJR7IXRKn6uS5PAySjIM6azPFvK~18kSi6bbNQ,AAEA--8 audrey
SSK : Permet de désigner un fichier qui va changer au cours du temps (Freesite...). Composé de : 1. le hash du fichier donnant un identifiant unique 2. la clé de décryptage qui permet de lire le fichier 3. méta données contenant notamment la méthode de cryptage 4. le chemin choisi par le créateur de la données 5. le numéro de version de la donnée A quoi ça ressemble ? SSK@file hash,decryption key,crypto settings/path-version audrey
USK : Permet de charger la dernière version d'un site, mécanisme de recherche de last update sur un SSK. Composé de : 1. le hash du fichier donnant un identifiant unique 2. la clé de décryptage qui permet de lire le fichier 3. méta données contenant notamment la méthode de cryptage 4. le chemin choisi par le créateur de la données 5. le numéro de version de la donnée On construit une clé USK à partir d'une SSK ainsi : SSK@file hash,decryption key,crypto settings/path-version => USK@file hash,decryption key,crypto settings/path/version audrey
III. 2. b - Le stockage - Dossier download - Datastore divisé en deux parties égales : * Le cache : stockage des clés qui passent par le noeud map de : noeud source, clé, fréquence de passage -> explique le délai pour que le nœud soit opérationnel * Le store : stockage des données cryptées qui ont été rapatriées sur le noeud Mécanisme de flush de la mémoire utilisée. audrey
III. 3. Fonctionnement du réseau freenet (Télécharger une ressource) Je suis un nœud déjà intégré qui a des voisins J’ai une clé qui correspond à une ressource et je désire la récupérer. Key CHK/SSk et HTL samy Ressource correspondante
III. 3. Fonctionnement du réseau freenet (Echange de position -- SWAP) Demandes successives d’un nœud à son voisin se rapportant à des clés voisines Echange de position sur l’Overlay 2. Echange de cache (clés associées aux nœuds) Principe complémentaire avec le système de duplication de données samy
III. 3. Fonctionnement du réseau freenet (Insertion de ressources) On insère notre ressource dans notre nœud Le Nœud se charge de transformer la ressource en Freenet Ressource On la stock dans notre store On choisit 1 voisin dans la liste (le plus proche de la ressource)et on tire aléatoirement un HTL On leur envoi la ressource Le voisin reçoit une ressource, la stock dans son store, et la diffuse en décrémentant le HTL samy
III. 4. Flux Réseau et ports utilisés samy
III. 4. Flux Réseau et ports utilisés FNP : port de communication choisit aléatoirement pour éviter les blocages de port FCPv2: Protocole à base de message le transport s’effectue via TCP Types de messages : hello Client, listPeer, listPeers etc … samy
IV. Comment Freenet atteint ses objectifs ? 1 – Types de connexions 2 - Anonymat 3 - Résistance à la censure 4 - Résistance aux attaques audrey
IV. 1 – Types de connexions - OpenNet - Darknet - Faux darknet - mixte audrey
IV. 2 - Anonymat - On voit les requêtes comme si on était une passerelle (pas de connaissance de la source ou de la destination) - Données en version chiffrées sur l'ordinateur - Déni plausible par impossibilité de lecture du contenu audrey
IV. 3 - Résistance à la censure - Censurer une info = la trouver et éteindre tous les noeuds qui l'ont - Trouver une info = faire des requêtes la concernant - Faire des requêtes sur une info = la multiplier => impossible de censurer quoi que ce soit => analyse du trafic pour identifier les nœuds seulement par des gouvernements ou de puissantes organisations audrey
IV. 4 - Résistance aux attaques a. Harvesting b. Location swapping c. Attaques légales d. Identification d'un utilisateur + Attaque par corrélation + Attaque adaptative audrey
a. Harvesting - Déf : Récupérer l'ensemble des adresses IP des noeuds pour les bloquer. Tous les logiciels de P2P sont sensibles à cette attaque. - ici : Freenet étant décentralisé, il faut faire tourner une version modifiée du noeud - Faisable uniquement par des gouvernements ou des organisations puissantes - Solution : Darknet audrey
b. Location swapping - Principe : Faire disparaître des données du réseau en détruisant des noeuds - ici : l'algorithme d'échange des positions est visé en ciblant une zone particulière et leurs clés associées - Solutions : + mécanisme de caching (2007) + changement de position sur le cercle aléatoire toutes les 2000 permutations = uniformisation des nœuds sur le cercle audrey
c. Attaques légales - Blocage de ports : port aléatoire pour les connexions, impossible de bloquer tous les ports - Blocage de protocole : le trafic est crypté donc impossible de détecter qu'il vient de Freenet - Interdiction du cryptage : impossible depuis l'apparition du commerce en ligne - Pénaliser l'utilisation de Freenet : Darknet subsistera. Perquisition de pc possible mais il faut un motif valable. audrey
d. Identification d'un utilisateur Uniquement sur : OpenNet, mixte, faux DarkNet + Attaque par corrélation - études statistiques des requêtes provenant des noeuds auxquels on est directement connectés - ex : pour un fichier de 4Go, il faut 270 000 requêtes. Un noeud OpenNet a 20 connexions, soit 13 500 morceaux/connexion audrey + Attaque adaptative - se faire une idée de la position approximative d'une requête sur le cercle - s'en approcher et si on arrive à se connecter au noeud -> attaque par corrélation
V. Démonstration ... Les deux
Conclusion - Bonne idée initiale - A donné naissance à beaucoup d'autres logiciels P2P - Problèmes d'éthiques - Equilibre entre totale liberté et total contrôle ? - Difficulté à trouver des informations cohérentes. audrey
Bibliographie http://proton.inrialpes.fr/~gruber/Courses/DistributedSystems/fundamentals-part1.pdf/ http://doc-fr.freenetproject.org/Description_technique#Le_stockage_de_l.27information http://fr.wikipedia.org/wiki/Freenet/ http://freenetproject.org/ http://doc-fr.freenetproject.org/Accueil http://en.wikipedia.org/wiki/Freenet http://linuxfr.org/2008/04/02/23924.html http://wiki.freenetproject.org