Cryptographie GHADA ESSAIED (RT 4) IMEN SOUILEM (RT 4) KHADIGA GRIRA (RT 4) LINDA RAHMOUNI (RT 4) OUSSAMA HAMMAMI (RT 3) KARIM BELHAJ SLIMEN (GL 4)



Documents pareils
Manuel des logiciels de transferts de fichiers File Delivery Services

Le service FTP. M.BOUABID, Page 1 sur 5

Mieux comprendre les certificats SSL THAWTE EST L UN DES PRINCIPAUX FOURNISSEURS DE CERTIFICATS SSL DANS LE MONDE

Sécurisez votre serveur Web Internet Information Services de Microsoft (MS IIS) avec un certificat numérique de thawte thawte thawte thawte thawte

Service de certificat

Accéder à ZeCoffre via FTP

Cisco Certified Network Associate

Sommaire Introduction... 3 Le but du projet... 3 Les moyens utilisés... 3 Informations sur le client FTP... 4 Pourquoi une version Linux et

Installation du transfert de fichier sécurisé sur le serveur orphanet

Installation / Sauvegarde Restauration / Mise à jour

Un serveur FTP personnel, ça ne vous a jamais dit?

FTP / WebDeploy /WebDAV. Manuel

Cours 14. Crypto. 2004, Marc-André Léger

L identité numérique. Risques, protection

Chapitre 7. Sécurité des réseaux. Services, attaques et mécanismes cryptographiques. Hdhili M.H. Cours Administration et sécurité des réseaux

Sommaire Introduction Les bases de la cryptographie Introduction aux concepts d infrastructure à clés publiques Conclusions Références

L3 informatique TP n o 2 : Les applications réseau

2. MAQUETTAGE DES SOLUTIONS CONSTRUCTIVES. 2.2 Architecture fonctionnelle d un système communicant.

Windows Server 2008 Sécurité ADMINISTRATION ET CONFIGURATION DE LA SECURITE OLIVIER D.

Informations sur la sécurité

FORMATION PcVue. Mise en œuvre de WEBVUE. Journées de formation au logiciel de supervision PcVue 8.1. Lieu : Lycée Pablo Neruda Saint Martin d hères

Tutorial Terminal Server sous

Guide Numériser vers FTP

Introduction au protocole FTP. Guy Labasse

Signature électronique. Romain Kolb 31/10/2008

Serveurs de noms Protocoles HTTP et FTP

WIFI sécurisé en entreprise (sur un Active Directory 2008)

Informatique. Les réponses doivent être données en cochant les cases sur la dernière feuille du sujet, intitulée feuille de réponse

Enfin une messagerie dont l utilisateur n est pas le «produit»!

Serveur mail sécurisé

Livre blanc. Sécuriser les échanges

Configurer le Serveur avec une adresse IP Statique (INTERFACE :FastEthernet) : et un masque

Dynamic Computing Services solution de backup. White Paper Stefan Ruckstuhl

Serveur FTP. 20 décembre. Windows Server 2008R2

Initiation au cryptage et à la signature électronique

PROTEGER SA CLE USB AVEC ROHOS MINI-DRIVE

Le protocole SSH (Secure Shell)

Sécurisation du réseau

Cryptologie. Algorithmes à clé publique. Jean-Marc Robert. Génie logiciel et des TI

Protocole SSH-2.0. Tuan-Tu, TRAN. Janvier 2009

User Manual Version 3.6 Manuel de l Utilisateur Version

Groupe Eyrolles, 2006, ISBN : X

Guide d utilisation WEBPORTAL CPEM Portail d Applications Web CPEM

Manuel Utilisateur Version 1.6 Décembre 2001

LES FONCTIONS DE SURVEILLANCE DES FICHIERS

Manuel du logiciel PrestaTest.

Nokia Internet Modem Guide de l utilisateur

CARPE. Documentation Informatique S E T R A. Version Août CARPE (Documentation Informatique) 1

Routeur Chiffrant Navista Version Et le protocole de chiffrement du Réseau Privé Virtuel Navista Tunneling System - NTS Version 3.1.

Formateurs : Jackie DAÖN Franck DUBOIS Médiapôle de Guyancourt

Manuel FDS File Delivery Services Transfert de fichiers SFTP et FTP

Chapitre 1 Windows Server

Guide de l utilisateur Mikogo Version Windows

Le protocole sécurisé SSL

Copyright Arsys Internet E.U.R.L. Arsys Backup Online. Guide de l utilisateur

Manuel d'installation de Joomla 1.7

Services Réseaux - Couche Application. TODARO Cédric

VTX FTP. Transfert de fichiers business par FTP - Manuel de l'utilisateur. Informations complémentaires : info@vtx.

Cours CCNA 1. Exercices

Documentation utilisateur, manuel utilisateur MagicSafe Linux. Vous pouvez télécharger la dernière version de ce document à l adresse suivante :

Serveur d application WebDev

sécurisé de l ENSMM Accès au serveur FTP - Microsoft Windows 7 École Nationale Supérieure de Mécanique et des Microtechniques

ftp & sftp : transférer des fichiers

SSL ET IPSEC. Licence Pro ATC Amel Guetat

Chapitre 2 Accès aux partages depuis votre système d'exploitation

Crypter le courrier. Pourquoi crypter? Les clés de cryptage. Supplément au manuel Internet sécurité d'abord!

Disque Dur Internet «Découverte» Guide d utilisation du service

Skype (v2.5) Protocol Data Structures (French) Author : Ouanilo MEDEGAN

Installation du client Cisco VPN 5 (Windows)

DSI - Pôle Infrastructures

II- Préparation du serveur et installation d OpenVpn :

La sécurité informatique d'un centre d imagerie médicale Les conseils de la CNIL. Dr Hervé LECLET. Santopta

Le transfert de fichiers avec Filezilla Initiation à l'utilisation d'un client FTP

Windows Internet Name Service (WINS)

Mes documents Sauvegardés

Guide d installation JMap 5.0

Architectures web/bases de données

Présentation. LogMeIn Rescue. Architecture de LogMeIn Rescue

COURS 5 Mettre son site en ligne! Exporter son site avec WordPress Duplicator Installer un logiciel FTP Faire le suivi des visites de son site avec

Le serveur web Windows Home Server 2011

Guide d utilisation. Table des matières. Mutualisé : guide utilisation FileZilla

Authentification à deux facteurs Cryptage portable gratuit des lecteurs USB Cryptage du disque dur

Sécurité des réseaux IPSec

Les Protocoles de sécurité dans les réseaux WiFi. Ihsane MOUTAIB & Lamia ELOFIR FM05

Recommandations pour la protection des données et le chiffrement

UserLock Guide de Démarrage rapide. Version 8.5

arcopole Studio Annexe 7 Architectures Site du programme arcopole :

Les cahiers pratiques de Anonymat.org. SocksCap32. Edition du 20 Octobre 2000

Sync-A-BOX et Duplicati. est une plateforme Cloud pour stocker et gérer vos données en ligne.

Authentification avec CAS sous PRONOTE.net Version du lundi 19 septembre 2011

Richard MONTBEYRE Master 2 Professionnel Droit de l Internet Administration Entreprises. La banque en ligne et le protocole TLS : exemple

Manuel Utilisateur MISE A JOUR DU CLIENT SOFIE VERS LA VERSION 5. v0.99

Tutoriel d'introduction à TOR. v 1.0

Accès au Serveur de PAIE «SPV» par INTERNET Paramétrage du poste de travail «Windows»

BTS SIO option SISR Lycée Godefroy de Bouillon Clermont-Ferrand

Découvrez notre solution Alternative Citrix / TSE

Dans la série LES TUTORIELS LIBRES présentés par le site FRAMASOFT. Premiers pas avec WinPT (cryptographie sous Win) EITIC

Steganos présente Security Suite 2007, son incontournable suite de sécurité pour PC.

Procédure pas à pas de découverte de l offre. Service Cloud Cloudwatt

Solution sécurisée d envoi et de réception de fichiers volumineux par .

Transcription:

Cryptographie GHADA ESSAIED (RT 4) IMEN SOUILEM (RT 4) KHADIGA GRIRA (RT 4) LINDA RAHMOUNI (RT 4) OUSSAMA HAMMAMI (RT 3) KARIM BELHAJ SLIMEN (GL 4)

Table des matières 1. Présentation de l atelier... 3 1.1. Introduction... 3 1.2. Différents types de cryptage... 3 1.2.1. Cryptage symétrique... 3 1.2.2. Cryptage asymétrique... 3 1.2.3. Cryptage hybride... 4 1.3. Application de l atelier... 4 2. Présentation des outils utilisés... 4 2.1. Filezilla... 4 2.2. GPG... 5 2.3. Java... 6 2.3.1. JavaFX... 6 2.3.2. Apache Commons NET... 6 3. Architecture... 6 4. Configuration des outils... 7 4.1. Configurer Filezilla... 7 4.2. Développer le client FTP en JAVA... 8 4.2.1. Initialisation... 8 4.2.2. Connecter... 8 4.2.3. Telecharger... 9 4.2.4. Envoyer... 10 4.2.5. Vérifier Nom... 11 4.3. Configurer le JDK... 12 4.4. Crypter/Décrypter les fichiers en Java... 12 4.4.1. Méthode crypter... 12 4.4.2. Méthode décrypter... 12 4.4.3. Méthode docrypto... 12 4.4.4. Méthode GenerateNewKey... 13 4.5. Développer l interface graphique et le contrôleur... 13 4.6. Transférer les fichiers de manière sécurisé... 14 4.6.1. Envoyer les fichiers... 14 4.6.2. Télécharger les fichiers... 15 4.7. Crypter la clé de cryptage du fichier avec GPG... 16 5. Scénario de test... 16 1

5.1. Upload... 16 5.2. Partage... 16 5.3. Download... 17 6. Conclusion... 18 2

1. Présentation de l atelier Cryptographie SECURILIGHT 2014 1.1. Introduction La cryptographie est une discipline consistant à concevoir des mécanismes cryptologique afin de transmettre, en sécurité, des informations secrètes et sensible. En particulier, on cherche à transmettre des messages secrets à travers des réseaux informatiques où chaque message peut être facilement intercepté ou altéré. Trois propriétés doivent être garanties pour qu on puisse affirmer que le message a été transmis de manière sécurisée : La confidentialité : seule le destinataire légitime du message peut déchiffrer son contenu, même si plusieurs personnes ont pu l intercepter et le lire. L intégrité : malgré que le message soit passé par plusieurs routeurs ou serveurs, on veut pouvoir garantir que son contenu n a pas été modifié. L authenticité : on veut vérifier l identité de celui qui a envoyé le message Intuitivement, ce problème semble impossible à résoudre, pourtant, plusieurs méthodes ont été développées pour y remédier. 1.2. Différents types de cryptage 1.2.1. Cryptage symétrique En cryptage symétrique, il y a une seule clé pour crypter et décrypter le message. Par conséquent, il faut trouver un moyen pour partager la clé entre les deux interlocuteurs sans que celle-ci ne soit compromise, car si la clé est interceptée, le message est lui aussi compromis. Une question se pose alors. Si transférer un message à travers un canal (dans ce cas, un réseau informatique) présente un risque, quel intérêt y a-t-il alors dans le cryptage symétrique, puisque il faut alors transférer la clé à travers ce même canal risqué? Intuitivement, il semble inutile. Cependant, il existe des moyens afin de partager une clé de façon sécurisée : Utiliser le cryptage asymétrique que l on va présenter plus tard, pour transférer la clé de cryptage symétrique, ce qui équivaut à un cryptage hybride. Utiliser un protocole afin que les deux interlocuteurs se mettent d accord sur une même clé, comme Diffie-Hellman. 1.2.2. Cryptage asymétrique Dans cette technique, la clé de cryptage, la clé publique, n est pas la même que la clé de décryptage, qui est la clé privée. Le principal avantage que la clé de décryptage n est jamais partagée et donc il n y a aucun risque qu elle ne soit compromise. La clé de cryptage, elle, est publique et il n y a aucun risque si elle interceptée. L échange de message par cryptage asymétrique ce passe de la manière suivante : Alice souhaite envoyer un message à Bob. Elle crypte son message selon la clé publique de Bob. 3

Bob reçoit le message d Alice et la décrypte selon sa clé privée. Si une autre personne intercepte le message, elle ne pourra pas le déchiffrer puisque seul Bob à la clé secrète, qui est celle qui permet de décrypter le message, et il ne la partage avec personne. La clé publique peut être assimilée à un cadenas, et la clé secrète à la clé qui l ouvre. Chaque utilisateur dispose d une multitude de cadenas qu il distribue à tout le monde et une clé unique qui permet de les ouvrir qu il garde bien à lui. Si on souhaite lui envoyer un objet secrètement, on se procure son cadenas et on referme une boite avec ce cadenas, et on envoie la boite à travers un canal non sécurisé. Comme seul lui à la clé qui permet d ouvrir le cadenas, il n y aucun risque qu on découvre le contenu secret de la boîte si elle est interceptée, et intercepter le cadenas lors de son échange ne présente aucun intérêt car il ne sert qu à fermer des boîtes, et non à les ouvrir. D ailleurs, quiconque souhaite se procurer le cadenas n a qu à le demander, puisqu il est public. Le principal inconvénient des cryptages asymétriques est qu ils nécessitent plus de temps à exécuter, et donc ne conviennent pas à de grands fichiers. 1.2.3. Cryptage hybride Présente la sécurité des cryptages asymétriques avec la rapidité des cryptages symétriques, et convient pour envoyer en toute sécurité de grands fichier. Le fichier est d abord crypté par un cryptage symétrique, puis la clé est échangée suivant le cryptage asymétrique. 1.3. Application de l atelier Pour cet atelier, nous avons développé une application sécurisée de partage de fichiers sur des serveurs ftp. Elle permet de : Sécuriser l échange de fichier entre l utilisateur et le serveur ftp de fichiers, que ce soit lors de l envoi ou le téléchargement du fichier. Sécuriser le stockage du fichier. En effet, même si l utilisateur n est pas le propriétaire du serveur et qu une autre personne a accès au fichier, il n y a aucun moyen pour qu un autre déchiffre le fichier sans le consentement du propriétaire. En effet, le cryptage du fichier se fait sur l ordinateur du client avant d être envoyé sur le serveur, il reste stocké en étant crypté sur le serveur avant qu un autre utilisateur le télécharge et le déchiffre, à condition qu il dispose de la clé. L application a été pensée de façon à être facilement utilisable pour un utilisateur quelconque. L échange des clés doit être sécurisé, pour cela on utilisera GPG. 2. Présentation des outils utilisés 2.1. Filezilla FTP (File Transfer Protocol) est un protocole de transfert de fichier qui permet de déplacer des fichiers d'un ordinateur vers un serveur de façon rapide et sécurisée. Le protocole est négocié avec un login et un mot de passe. 4

Il s'adosse à la même technologie qui permet d'afficher les pages web dans le navigateur (HTTP), mais ne sert qu'au transfert de fichier. Quant à Filezilla, c est un logiciel d application FTP, multiplateforme, qui se décline en deux versions : Filezilla Client et Filezilla Server. C est un logiciel open-source développé pour les systèmes d exploitation Windows, Linux et Mac OSX par Tim Kosse (Allemand). Filezilla est utilisé pour le téléchargement de fichiers depuis et vers un site FTP, un serveur ou une hôte. Le programme nous permet de transférer des fichiers et de naviguer parmi les dossiers, les sites Web, et même en local. Ce logiciel nous permet d'effectuer plusieurs transferts de fichiers simultanément. Filezilla Server supporte les protocoles FTP et FTPS. Cela inclut donc : Téléchargement et chargement de fichiers avec limitation possible du débit de chaque compte. Compression de données. Chiffrement par SSL/TLS (pour FTPS). Journalisation de l'activité (pour le débogage et le monitoring en temps réel). Limitation de l'accès au réseau LAN, ou réseau externe. Support des systèmes de fichiers virtuels. Parmi les logiciels concurrents de Filezilla on cite quelques exemples: En open-source SmartFTP : gère les transferts simultanés, les files d attentes, l arrêt et la reprise d un dépôt de document, la mémorisation des dossiers et le téléchargement des derniers fichiers arrivés. LeechFTP : Non seulement ce client FTP est totalement gratuit, mais très complet, il offre la plupart des options utiles et pousse le luxe jusqu'à autoriser un nombre de sessions illimité. En version payante : Cute FTP Pro : ce programme est similaire à un navigateur web, il est facilement utilisable et simple même pour les débutants. Crystal FTP : un programme moderne et pleinement fonctionnel, qui gère les files d attentes, permet de comparer les répertoires et d en indiquer les différences, supporte les 4 types de serveurs FTP les plus courants (direct, direct passif, proxy, socks). Pourquoi a-t-on choisit Filezilla? C'est rapide, stable, facile à utiliser et gratuit. Filezilla est un client solide qui répond à toutes les attentes que l on peut avoir d un client FTP. 2.2. GPG GPG est un logiciel libre de cryptographie qui supporte de nombreux algorithmes de cryptage, symétriques et asymétrique. On peut donc s en servir pour chiffrer des messages et les échanger en toute sécurité. Il supporte le standard OpenPGP ce qui le rend compatible avec PGP, c est-à-dire que ces deux programmes peuvent utiliser les mêmes clés et décrypter les mêmes messages. GPG est la version libre de PGP, de Symantec, qui est sa principale alternative. 5

2.3. Java L application a été développée avec le langage Java. Nous avons entre autres utilisé les libraires JavaFX et Apache Commons NET 2.3.1. JavaFX Inclut par défaut dans le JDK depuis le JDK 7. Il permet de programmer l interface sous forme d un fichier XML et d utiliser un seul contrôleur pour toutes les opérations. L outil Scene Builder d Oracle est disponible pour créer l interface graphique par drag and drop. 2.3.2. Apache Commons NET Librairie libre développé par Apache qui implémente plusieurs protocoles comme ftp, ntp ou http. 3. Architecture L application comporte deux modules : un module cryptographique qui permet de chiffrer, déchiffrer les fichiers avec l algorithme AES ainsi que de générer des clés de cryptages aléatoires un module ftp qui se charge de télécharger ou envoyer les fichiers à partir de/vers un serveur ftp. Il se charge également de gérer les cas où il y a un conflit de nom. Lors de l envoi d un fichier, l utilisateur saisit l adresse du serveur et sélectionne le fichier à envoyer. L application génère alors une clé aléatoire, puis envoie le fichier crypté au serveur. Comme le fichier est envoyé et stocké sur le serveur en étant crypté, il n y a aucun risque si une personne mal intentionnée l intercepte. Quand le propriétaire du fichier souhaite le partager avec un autre, il envoie la clé et l url de manière sécurisée, c est-à-dire après les avoir cryptés. Dans ce cas, le destinataire les saisie dans l application qui télécharge le fichier avant de le décrypter. 6

4. Configuration des outils 4.1. Configurer Filezilla On commence par la création d un utilisateur, dans notre cas notre utilisateur sera un «Anonymous» sans mot de passe (en effet, la protection des fichiers est garantie par le cryptage, et non les droits d accès). Puis on va ajouter un répertoire dans lequel sera la sauvegarde des fichiers et on va définir les droits d accès des utilisateurs: 7

4.2. Développer le client FTP en JAVA 4.2.1. Initialisation Par convention, deux ports sont attribués pour les connexions FTP : le port 21 pour les commandes et le port 20 pour les données donc on a choisi le port 21 pour l'envoie des commandes. Les attributs «user»et «pass» présentent les coordonnées de serveur ftp (Filezilla server). «FTPClient» définit un client ftp qui va interroger le serveur. 4.2.2. Connecter Cette fonction permet d établir la connexion entre le serveur et le client en prenant en compte une adresse, un numéro de port, un nom d utilisateur et un mot de passe. 8

4.2.3. Telecharger Cette fonction permet de télécharger un fichier du serveur vers le client tout en passant par ces étapes: InputStream retrievefilestream: Cette méthode récupère un fichier distant dont le chemin est spécifié, renvoie un InputStream que nous pouvons utiliser pour lire des octets du fichier distant. Cette méthode nous donne plus de contrôle sur la façon de lire et écrire les données. on récupère un tableau d'octets de la InputStream et écrire ces octets dans le OutputStream, jusqu'à ce que le InputStream devient vide. on invoque la méthode completependingcommand () pour compléter la transaction. on Ferme l'ouvert OutputStream l' InputStream. on vérifie la valeur de retour de completependingcommand () afin de s assurer du succès du téléchargement. Se déconnecter et se déconnecter du serveur. 9

4.2.4. Envoyer Cette fonction permet de déposer un fichier sur le serveur par le client tout en passant par ces étapes: Créer un InputStream pour le fichier local. Appeler storefilestream pour commencer le transfert de fichiers: Utiliser un OutputStream : ces lignes permettent de lire les octets du InputStream du fichier local et écrit ces octets dans le OutputStream qui est renvoyé par la storefilestream(). Fermer le ouvert InputStream et OutputStream. Appeler la méthode completependingcommand ( ) pour compléter la transaction. Se déconnecter et se déconnecter du serveur. 10

4.2.5. Vérifier Nom Cette méthode permet, lors de l'upload, de vérifier si le nom de fichier existe sous le répertoire du serveur. Si le fichier n'existe pas, il sera enregistré sans modification de nom. Si le fichier existe, cette fonction aura comme rôle d ajouter au nom de fichier un indice numérique (1, 2, 3 etc..) selon le nombre d'occurrence de fichier dans le répertoire. 11

4.3. Configurer le JDK Par défaut, le JDK et le JRE exige que la taille de la clé pour l algorithme AES doit être de 16 octets (ou 128 bits). Donc, si vous fournissez une clé dont la taille est différente de 16 octets, une exception java.security.invalidkeyexception sera levée. Pour éviter ce problème, nous avons téléchargé le package Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files qui contient les deux fichiers local policy et US_Export_Policy. Puis nous les avons enregistré sous le chemin suivant C:\Program Files\Java\jre7\lib\security Remarque : ces deux fichiers existent déjà dans le répertoire security mais il faut les écraser et les remplacer par leur nouvelle version téléchargée. Mais c est quoi un API JCE? JCE (Java Cryptography Extension) est une API qui fournit des fonctionnalités cryptographiques de haut niveau (chiffrage/déchiffrage avec algorithmes symétriques/asymétriques...) Elle propose de standardiser l'utilisation de la cryptographie en restant indépendant des algorithmes utilisés. Elle prend en compte le cryptage/décryptage de données, la génération de clés et l'utilisation de la technologie MAC (Message Authentication Code) pour garantir l'intégrité d'un message. 4.4. Crypter/Décrypter les fichiers en Java Pour effectuer le cryptage et le décryptage des fichiers, nous avons créé la classe crypto.java (voir figures 1 et 2). Cette classe contient 4 méthodes : 4.4.1. Méthode crypter Elle prend une chaine de caractères d entrée, une chaine de caractères de sortie et la clé de cryptage en tant que paramètres d entrée, fait appel à la méthode docrypto et affiche la chaine cryptée. 4.4.2. Méthode décrypter Elle prend le chemin des fichiers d entrée et de sortie ainsi que la clé de cryptage en tant que paramètres d entrée, fait appel à la méthode docrypto et crypte le contenu du premier fichier en l écrivant dans le deuxième. 4.4.3. Méthode docrypto Cette méthode permet le cryptage ou le décryptage d un fichier fourni en entrée selon la valeur de la variable ciphermode (ciphermode =Cipher.ENCRYPT_MODE pour le cryptage du fichier et ciphermode =Cipher.DECRYPT_MODE pour le décryptage du fichier). 12

4.4.4. Méthode GenerateNewKey Cette méthode génère une clé de cryptage de 256 bits à l aide de la méthode prédéfinie generatekey de la classe KeyGenerator puis la convertie en chaine de caractères pour qu on puisse l envoyer aux autres utilisateurs. 4.5. Développer l interface graphique et le contrôleur On a utilisé JavaFX pour développer l interface graphique. L interface est d abord crée par drag and drop avec Scene Builder (compatible avec Eclipse et Netbeans) puis on déclare simplement les méthodes du contrôleur qui seront invoqués pour chaque élément de l interface. On ajoute un «fx :id» pour les éléments auxquels on souhaite accéder, comme les champs des formulaires par example. 13

4.6. Transférer les fichiers de manière sécurisé Dans cette partie, nous allons utiliser les classes décrites précédemment pour transférer de manière sécurisée les fichiers. Le transfert doit s exécuter sur un autre thread afin d une part, de ne pas bloquer l interface graphique, et d autre part, de permettre des transferts en parallèle. 4.6.1. Envoyer les fichiers Pour envoyer le fichier, on génère d abord une clé aléatoire, puis on crypte le fichier dans un autre fichier temporaire. Ensuite, on l envoie sur le serveur avec le protocole FTP (après avoir résolu les éventuels conflits de noms). On efface ensuite le fichier temporaire et on envoie un signal à la classe qui a fait appel à l envoi, qui est le contrôleur de l interface graphique. 14

4.6.2. Télécharger les fichiers On commence par télécharger le fichier par le protocole FTP dans un fichier temporaire, puis on le déchiffre dans le fichier final. 15

4.7. Crypter la clé de cryptage du fichier avec GPG Les commandes de base pour utiliser GPG : Générer une clé : gpg genkey Exporter la clé publique dans un fichier : gpg --export -a "User Name" Ajouter une clé publique à partie d un fichier : gpg --import public.key Crypter un message : gpg --encrypt --armor nomfichier Déchiffrer un message : gpg --decrypt --armor nomfichier 5. Scénario de test 5.1. Upload L utilisateur saisie l adresse ip du serveur dans le champ «server», puis clique sur «browse «pour sélectionner le fichier à envoyer. Il peut également saisir l emplacement du fichier manuellement. Il clique ensuite sur «send». 5.2. Partage L utilisateur choisit le fichier qu il souhaite partager dans «My files» puis clique sur «Copy to Clipboard» pour que le la chaine de caractère soit collée dans le presse-papier. 16

Il envoie la chaîne contenant l url, le nom et le clé du fichier à son destinataire. 5.3. Download Il saisit la chaine dans le champ «Remote File» puis clique sur «download». Une fenêtre apparaitre pour lui demander l emplacement où il doit enregistrer le fichier. 17

6. Conclusion La sécurisation de l envoi des messages et des fichiers est d une importance capitale non seulement pour les entreprises, mais aussi pour les particuliers, comme en témoignent les pertes financières colossales dans le monde due aussi bien au piratage des sites internet des sociétés qu aux usurpations d identités, et l unique moyen de s en prévenir est de protéger ses propres donnés par la cryptographie. Dans cet atelier, nous avons non seulement mis en œuvre des outils pour sécuriser l envoi de messages, mais aussi développé notre propre application destinée aux utilisateurs lambda afin de faciliter l échange sécurisé de fichiers et de rendre la cryptographie accessible à tout un chacun. De même, nous espérons que cet atelier servira aussi de guide aux développeurs souhaitant intégrer la cryptographie dans leurs applications. 18