Le système de fichier pair-à-pair distribué. Plan ● Présentation de Peerfuse – Le but recherché – Les fonctionnalités ● Utilisation de la bibliothèque.

Slides:



Advertisements
Présentations similaires
Sécurité Informatique Module 05
Advertisements

GCstar Gestionnaire de collections personnelles Christian Jodar (Tian)
Projet tuteuré 2009 Les clients légers Alexandre Cédric Joël Benjamin.
Système de gestion d'entrées pour un cinéma Scanvion Michel – Etudiant 4.
Travailler à l'ensimag avec son matériel personnel (dans les locaux Ensimag ou depuis l'extérieur) 1.Introduction 2.La clé USB Ensilinux 3.Rappels : Accès.
Les Logiciels Libres en pratique Samedi 25 mars 2006 Toulibre
Votre rayon de soleil ! PROJET EVOLUTION – GMSI 38 Thomas Mouhica, Alexandre Lacombe, Timothé Michel 1.
Le système Raid 5 Table des matières Qu'est ce que le RAID ? Les objectifs Le raid 5 Les avantages et les inconvénients Les composants d’un Raid.
Cetiad - Sicep Mars Généralités ➢ Organisation de l'assistance dans l'académie de Dijon ➢ Architecture réseau des établissements ➢ Présentation.
La Neutralité du Net - Net Neutrality -. Principe Fondamental Router sans tenir compte du contenu Ne pas privilégier une adresse Ne pas privilégier un.
Séminaire EOLE Beaune Septembre 2007 AMON NG.
A quoi sert la programmation? - indispensable pour plusieurs métiers. - passion. But du cours: - suite du cours Prog. Imp. I - fichiers, pointeurs, modularité.
EDMODO Qu’est-ce qu’est EDMODO ?  Edmodo est une plateforme dont l’apparence ressemble beaucoup à celle de Facebook, mais qui est entièrement dédié à.
1 Observer le paramétrage d’un réseau. 2 Dans notre réseau téléphonique habituel, les postes, reliés à un auto-commutateur... …peuvent dialoguer, car.
Février 2006X. Belanger / Guilde Introduction à. Février 2006X. Belanger / Guilde Qu'est ce que Samba ? ● Implémentation libre du protocole CIFS/SMB (client.
L’intérêt de sauvegarder certaines données stockées localement sur les postes clients est souvent trop sous-estimée par nos utilisateurs. Casse matérielle,
Linux1 Utilisateurs et groupes. ● Le contrôle des utilisateurs et groupes est au coeur de l'administration de système de Linux. ● Utilisateurs : personnes.
République algérienne démocratique et populaire Ministère de la Formation Et de l’Enseignement Professionnel Institut National Spécialisé en Formation.
Interfaçage entre Maple et du code externe
Eric b, emmanuel l, damien t
Mise en place d’un système de partage de fichiers
Qu’est-ce un serveur de messagerie?
Phishing : Techniques et sensibilisation
Le nouvel espace partenaires et l’EXTRANET CDAP
AbulÉdu Logiciels Libres et Éducation la solution logicielle libre
de la productivité individuelle au travail collaboratif
Le nouvel espace partenaires et l’EXTRANET CDAP
Le Répertoire National des Structures de Recherche – RNSR
Objectifs Maîtriser : Un environnement de travail
Gestion de version centralisée et décentralisée
Communications via sockets
SOMMAIRE 1: ORALE 2: Les 3 systèmes de gestion de base de donnés 3:ORACLE DATA BASE 4:MY SQL 5:Oppen Office.org Base 6:Concurrence Conclusion.
L’ordinateur et les réseaux
Folders Access Manager Capacte
Résolution de grilles Slither Link
La transparence réseau dans KDE
Journée Analyse D0, 19 janvier 2004
Chiffrement de bout en bout
Pack business Entrepreneurs intégral la solution tout en 1 !
Comment fonctionne RADIUS?
Gestion des sécurités sur les comptes User Access Control
Windows 7 NTFS.
Module 5 : Gestion des disques.
Communications via sockets
Ce videoclip produit par l’Ecole Polytechnique Fédérale de Lausanne
Partie 3 : Interface utilisateur
Chapitre 7 Configuration de l'environnement du bureau
HTTP DNS NTP FTP R231 RJ45 definition HTTP DNS NTP FTP R231 RJ45.
Certificat en Informatique et Internet D5. Travailler en réseau, communiquer et collaborer Equipe C2I - FSEGS Semestre 2 – Avril 2015 Université de Sfax.
Système d’exploitation
Bureau distant sur Windows Vista /2008 Server
Informatique générale
Les protocoles de la couche application Chapitre 7.
Mise en place d'un Serveur Radius pour la sécurité d'un réseau Wireless sous Windows Serveur Présenter par le Stagiaire : Etienne Mamadou Guilavogui.
Système d’exploitation UNIX
La gestion des habilitations par le partenaire
Gestion des sécurités sur les comptes User Access Control
Le réseau Les Protocoles.
Gestion des entrées/sorties: organisation d'un disque dur
Le portail Mon Compte Partenaire
Formation CCNA 16 - Routage Classless VLSM/CIDR. Sommaire 1)Introduction au routage classless 2)CIDR* 3)VLSM** 4)Configuration * Classless Inter-Domain.
Déploiement de noeuds de clusters chez EDF R&D avec GOsa²
Michaël HERVIEUX Thomas MEURISSE
Système d’exploitation: Principe IFT6800 – E 2008 Pierre Poulin.
Notions d'architecture client-serveur. Présentation de l'architecture d'un système client/serveur Des machines clientes contactent un serveur qui leur.
Backup des Postes de Travail
YII Yes It Is !.
Les Commandes de base Linux. 1 L’aide sur les commandes Linux ◦ help : obtenir de l’aide pour une commande interne du shell. Elle permet aussi d'afficher.
Transcription de la présentation:

Le système de fichier pair-à-pair distribué

Plan ● Présentation de Peerfuse – Le but recherché – Les fonctionnalités ● Utilisation de la bibliothèque FUSE – L'API ● Solutions aux problématiques de sécurité réseau – DHT – Protocole – Chiffrement des messages et des données avec OpenSSL – Protections contre les attaques

Peerfuse ● Initié fin janvier 2008 – Développé par Laurent Defert et Romain Bignon – Écrit en C++ avec la bibliothèque FUSE – Toujours en cours de développement et non utilisable en prod ● Alternatives – Pastis/Pastry – Freenet

Peerfuse ● Espace de partage commun ● Entièrement décentralisé ● Mode déconnecté ● Deux visions différentes : – Peerfuse-lan : déploiement au sein d'un réseau local – Peerfuse-net : utilisation via Internet

Peerfuse-net ● UID unique par utilisateur ● Possibilités de créer des groupes d'utilisateurs ● Chiffrement des données ● Routage entre les pairs

Peerfuse-lan ● Utilisation des permissions UNIX des systèmes hôtes. ● Permettre de monter un /usr commun à plusieurs machines.

FUSE ● Filesystem in UserSpacE ● Modules noyau pour Linux, FreeBSD, Mac OS X, Windows, OpenSolaris, Hurd,... ● Systèmes de fichiers virtuels : – SSHFS – WikipediaFS – GmailFS – NTFS-3G

FUSE

FUSE - API int (*getattr) (const char *, struct stat *); int (*readlink) (const char *, char *, size_t); int (*mknod) (const char *, mode_t, dev_t); int (*mkdir) (const char *, mode_t); int (*unlink) (const char *); int (*rmdir) (const char *); int (*symlink) (const char *, const char *); int (*rename) (const char *, const char *); int (*link) (const char *, const char *); int (*chmod) (const char *, mode_t); int (*chown) (const char *, uid_t, gid_t); int (*truncate) (const char *, off_t); int (*utime) (const char *, struct utimbuf *); int (*open) (const char *, struct fuse_file_info *); int (*read) (const char *, char *, size_t, off_t, struct fuse_file_info *); int (*write) (const char *, const char *, size_t, off_t, struct fuse_file_info *); int (*statfs) (const char *, struct statvfs *); int (*flush) (const char *, struct fuse_file_info *); int (*release) (const char *, struct fuse_file_info *); int (*fsync) (const char *, int, struct fuse_file_info *); int (*setxattr) (const char *, const char *, const char *, size_t, int); int (*getxattr) (const char *, const char *, char *, size_t); int (*listxattr) (const char *, char *, size_t); int (*removexattr) (const char *, const char *); int (*opendir) (const char *, struct fuse_file_info *); int (*readdir) (const char *, void *, fuse_fill_dir_t, off_t, struct fuse_file_info *); int (*releasedir) (const char *, struct fuse_file_info *); int (*fsyncdir) (const char *, int, struct fuse_file_info *); void *(*init) (struct fuse_conn_info *conn); void (*destroy) (void *); int (*access) (const char *, int); int (*create) (const char *, mode_t, struct fuse_file_info *); int (*ftruncate) (const char *, off_t, struct fuse_file_info *); int (*fgetattr) (const char *, struct stat *, struct fuse_file_info *); int (*lock) (const char *, struct fuse_file_info *, int cmd, struct flock *); int (*utimens) (const char *, const struct timespec tv[2]); int (*bmap) (const char *, size_t blocksize, uint64_t *idx);

Protocole réseau

DHT : Pastry ● Identifiant unique sur 160 bits (SHA-1 de la clef publique) ● Représentation sur un cercle ● Routage des messages

Proto. de connexion ● Paire de clefs publique/privée ● UID 160 bits ● Connexion au premier pair ● Mise en relation ● Merge des données

Gestion des fichiers ● Chiffrement et signature des messages : | Perms | Cryptage | Signature | | RW | User private key | No | | | | RW R | Group private key | User public key | | | | RW R R | No | User public key | | | | RW RW | Group private key | No | | | | RW RW R | No | Group public key | | | | RW RW RW | No | No | ' ' ' '

Gestion des fichiers A crée le fichier B responsable dossier C responsable fichier A -> B : message de création B vérifie la faisabilité B stocke dans les informations dossier B -> C : message de création C -> B : ACK B -> A : ACK A B C 1. MKFILE 2. MKFILE 3. ACK 4. ACK

Redondance ● Chaque message est répliqué sur les pairs voisins ● Si jamais B tombe, le pair le plus proche prends la relève A B

Cache C responsable dossier ● A récupère le contenu du répertoire ● A le garde en cache ● D demande le contenu du répertoire ● Le message passe par A qui peut lui répondre directement A B C 1. LS_DIR 2. LS_DIR 3. MKFILEs 10. LS_DIR 11. LS_DIR D

Découpage des fichiers B A SHA1(/path/to/file) -> SHA1(part1) -> SHA1(part2) -> SHA1(part3) -> SHA1(part4)... -> SHA1(part16) SHA1(part1) part1

Écriture dans un fichier Propagation de l'information A écrit dans le fichier B responsable du fichier A -> B : Modification du champ Sharers des meta data ● Seul A est sharer ● Message bien évidement signé pour prouver sa légitimité à écrire dedans A B 1. MKFILE

Écriture dans un fichier Limitation des données redondées A veut envoyer des data B responsable fichier C pair dont l'ID est à l'opposé de A sur le cercle A -> B : envoie chunk + taille data déjà écrites B -> C : envoie taille data signé par A C -> B : réponds l'ancienne taille, et stock la nouvelle B vérifie qu'il n'y a pas eu dépassement, et accepte ou non A C B 1. CHUNK 2. ASK_WRITTEN_SIZE 3. LAST_WRITTEN_SIZE

Lecture d'un fichier ● Récupérations des données depuis la DHT ● IDs sharers stockés dans les meta-data A C B

Conclusion ● Système sécurisé ● Gros développements en cours ● Appel à contributions

Questions ?