Share2Speedy Peer to Peer sécurisé Guillaume Giraud (Chef de projet) Cédric Givord David Jouve Patrice Laroche
Plan Patrice Laroche Cédric Givord David Jouve Guillaume Giraud Introduction Généralités sur le projet Phase d’analyse et de conception Partie opérationnelle Interface Phase de réalisation Conclusion
Introduction Qu’est-ce que le P2P ? Architecture centralisée / décentralisée Intérêt de Share2Speedy Échange sécurisé de données Intérêt pédagogique
Contexte P2P libres non-sécurisés P2P sécurisé au statut ambigu
Définition du projet Version minimale Échange de données et gestion de dossiers partagés Vérification de l’intégrité Cryptage et décryptage Version avancée Compression et décompression Gestion des langues
Extensions possibles « Chat » Programme pour Linux Notation des fichiers Skins Modes (compact/développé)
Plan Patrice Laroche Cédric Givord David Jouve Guillaume Giraud Introduction Généralités sur le projet Phase d’analyse et de conception Partie opérationnelle Interface Phase de réalisation Conclusion
Phase d’Analyse Choix langage Choix logiciels
Choix langages UML : analyse et modélisation C++ : développement partie opérationnelle Qt : développement partie interface
Choix logiciels Rational Rose pour l’UML Visual Studio pour C++ et QT QT designer conception interface
Plan Patrice Laroche Cédric Givord David Jouve Guillaume Giraud Introduction Généralités sur le projet Phase d’analyse et de conception Partie opérationnelle Interface Phase de réalisation Conclusion
Partie opérationnelle RSA Connexion Recherche Téléchargement
RSA Échange de clé et de message Cle pub B message Internet Cle pub B Message crypté Utilisateur AUtilisateur B message Cle privée B
RSA Construction de clés Nombres premiers trouvés 3 nombres premiers 2 nb = modulo, 1 nb = clé publique Clé privée = inverse modulaire de la clé publique Clé composée de 2 éléments Cryptage Message ^ clé pub % clé mod. Par morceaux plus petits de 1 caractère que le modulo. Décryptage Message ^ clé privée % clé mod. Par morceaux aussi grand que le modulo
Recherche La dispersion d’un fragment de demande Départ demande réponse
Téléchargement Répartition demandes sur toutes les sources Toutes les 5 minutes, vérification des fragments et redemande Téléchargement achevé => vérification d’intégrité du fichier si correcte, déplacement du fichier dans le dossier téléchargés sinon, questionner les sources et re-vérification
Téléchargement Réception (d’un fragment) Décompression / décryptage Vérification du condensé du fragment Écriture du fragment et IP expéditeur Envoi (réception d’une demande de fragment) Si fichier en cours de téléchargement, ajouter la source Tant que tous les fragments ne sont pas envoyés Lecture d’un fragment Calcul du condensé Compression / cryptage Envoi du fragment
Plan Patrice Laroche Cédric Givord David Jouve Guillaume Giraud Introduction Généralités sur le projet Phase d’analyse et de conception Partie opérationnelle Interface Phase de réalisation Conclusion
Interface graphique Bibliothèque graphique Qt Qt Designer
Interface graphique Actions de base : consulter, rechercher, partager, se (dé)connecter, configurer, aide Journal, à propos Barre d’outils Problèmes : Icônes Qt designer
Interface graphique Solution : Les onglets 2 types d’onglets : Les « vrais » : Journal, transfert, recherche, partage Les « faux » : Lancer/Quitter, Configuration, Aide, A Propos
Journal MessageHeure
Transfert
Répertoires : Incomplet.ctrl : fichier de contrôle.temp : fichier en construction.ip : liste d’IP Fini Le fichier reçu complètement
Recherche Zone de texte Liste de groupe Bouton de recherche
Partage
Configuration Répertoire « Langues » Affiche seulement langues valides
Aide Consultable à tout instant Fenêtre principale : onglet Aide Fenêtre configuration et choix langue : « WhatThis mode » : Curseur devient Pour afficher aide : sélectionner un objet.
Problèmes Traduction des chaînes à accents Problème d’affichage dû à Qt Changement des raccourcis clavier Partage de fichier long, si trop de fichiers
Plan Patrice Laroche Cédric Givord David Jouve Guillaume Giraud Introduction Généralités sur le projet Phase d’analyse et de conception Partie opérationnelle Interface Phase de réalisation Conclusion Remerciements
Conclusion Projet trop ambitieux Projet enrichissant C / C++ / POO Réseaux UML Gestion de projet / travail en groupe
Remerciements Chirine Ghedira, notre encadrante Jean-Pierre Boutin Bruno Tellez Hamamache Kheddouci