Sécuriser sa messagerie avec PGP Travaux pratiques Patrick Maigron Institut Mines-Télécom / Télécom SudParis patrick.maigron@telecom-sudparis.eu Septembre 2015
Plan du TP Introduction Créer des clés PGP Communiquer par mail de manière sécurisée Communiquer avec une connaissance Communiquer à l intérieur d une entreprise Révoquer des clés PGP 1
Introduction Pourquoi utiliser PGP? Problèmes de sécurité liés à la messagerie électronique Écoutes Sniffers Usurpation d identité «telnet 25» Litiges Répudiation par l émetteur ou le destinataire Modification des mails en transit Attaques de type MitM Services de sécurité offerts par PGP Confidentialité Chiffrement Authentification Signature électronique Non-répudiation de l émetteur Signature électronique Intégrité Signature électronique 2
Mécanismes de PGP Introduction Mécanismes de sécurité Sécurité au niveau applicatif entre individus Complémentaire de SSL/TLS au niveau transport entre serveurs Signatures numériques Chiffrement Techniques utilisées Cryptographie asymétrique Cryptographie symétrique Fonctions de hachage Certification des clés publiques 3
Logiciels PGP Introduction Types de logiciels PGP Commerciaux : PGP (Symantec) Libres : GnuPG (GNU Privacy Guard) Intégration dans les agents de messagerie Au moyen de modules complémentaires (plugins) Thunderbird : Enigmail Outlook, Outlook Express : Gpg4win Eudora, Lotus Notes, Zimbra Webmail : des extensions pour les différents navigateurs 4
Introduction Logiciels utilisés dans le TP Serveur SMTP Thunderbird Agent de messagerie GnuPG Trousseaux de clés personnels Enigmail Gestion des clés Signature et chiffrement PKS Serveur de clés publiques Base de clés 5
Créer des clés PGP Visualiser les algorithmes supportés GnuPG gpg --version Liste des algorithmes disponibles - Cryptographie asymétrique - Cryptographie symétrique -Hachage - Compression 6
Créer des clés PGP Configurer Thunderbird Thunderbird - Lancez Thunderbird sans configurer de compte («Je configurerai mon compte plus tard») et sans configurer Enigmail («Configure Enigmail later») - Créez un nouveau compte de type Movemail Adresse électronique : VotreLogin@localhost Serveur d envoi : localhost - Édition / Paramètres des comptes Serveur sortant (SMTP) : Modifier Port 25, pas d authentification - Testez en vous envoyant un mail à l adresse VotreLogin@localhost 7
Créer des clés PGP Créer une paire de clés PGP Identification de l utilisateur Nom, adresse mail, commentaire Date d expiration Taille de la clé 1024, 2048, 4096 Algorithme -RSA & RSA -DSA & ElGamal Phrase de passe GnuPG Clé publique Clé privée Entrées aléatoires (clavier, souris ) 8
Créer des clés PGP Créer une paire de clés PGP Enigmail - Enigmail / Gestion de clefs - Générer / Nouvelle paire de clefs - Entrez les informations suivantes : Phrase secrète Commentaire Expiration de la clef Avancé : taille de clef et type de clef - Ne créez pas de certificat de révocation pour le moment 9
Créer des clés PGP Visualiser son trousseau de clés PGP Deux trousseaux de clés Enregistrés dans le répertoire.gnupg Fichier de clés publiques : pubring.gpg Fichier de clés privées : secring.gpg Afficher le contenu binaire des clés publiques GnuPG gpg - list-packets pubring.gpg Synthèse PGPdump pgpdump -i pubring.gpg Détails 10
Signer un fichier (en mode texte) Communiquer par mail de manière sécurisée Fichier original filename GnuPG gpg --clearsign filename Fichier signé filename.asc Phrase de passe pour obtenir la clé privée Clé privée 11
Vérifier un fichier signé (en mode texte) Communiquer par mail de manière sécurisée Fichier original filename Fichier signé filename.asc GnuPG gpg filename.asc Résultat: - Bonne signature - Mauvaise signature - Clé publique non trouvée 12
Communiquer par mail de manière sécurisée Configurer Enigmail Enigmail - Enigmail / Préférences - Onglet «Envoi» - Cochez «Paramètres de chiffrement manuels» - Envoyer chiffrer automatiquement : Jamais 13
Communiquer par mail de manière sécurisée Signer un mail Thunderbird - Quittez Thunderbird sur votre ordinateur, puis connectez-vous sur le serveur SMTP (avec «ssh X») et relancez Thunderbird sur ce serveur - Envoyez à votre voisin un mail signé, sans attacher votre clé publique (icône de signature) - Lisez le mail signé reçu de votre voisin - Un bouton permet d importer une clé manquante depuis des serveurs de clés prédéfinis - Dans un premier temps vous allez échanger votre clé publique avec votre voisin par mail 14
Échanger sa clé publique par mail Communiquer par mail de manière sécurisée Thunderbird - Composez un nouveau mail pour votre voisin - Enigmail / Attacher ma clé publique - Envoyez le mail contenant votre clé publique - Lisez le mail reçu de votre voisin - Effectuez un clic droit sur la pièce jointe (fichier d extension «.asc» contenant sa clé publique) - Menu contextuel / Importer une clef OpenPGP - Lisez à nouveau le mail signé reçu précédemment - Vérifiez que la clé publique de votre voisin apparaît dans votre trousseau de clés publiques (avec Enigmail) 15
Communiquer par mail de manière sécurisée Chiffrer un mail Thunderbird - Envoyez à votre voisin un mail chiffré - Lisez le mail chiffré reçu de votre voisin - Envoyez ensuite à votre voisin un mail à la fois signé et chiffré - Lisez le mail signé et chiffré reçu de votre voisin 16
Communiquer avec une connaissance Risque de contrefaçon des clés Un attaquant peut modifier une clé lors de son échange Attaque de type «Man in the middle» Alice Clé publique d Alice Clé publique de Mallory au nom d Alice Bob Mallory Un message avertit l utilisateur lorsqu il utilise une clé qui n est pas sûre (confiance inconnue) NON CERTIFIÉE Signature correcte de XXX <xxx@xxx.xxx> Id de clef : 0xXXXXXXXX / Signée le : 17
Visualiser la confiance dans une clé Communiquer avec une connaissance Enigmail - Enigmail / Gestion de clefs - Ajoutez une colonne «Validité de la clef» dans le tableau (niveau de confiance dans chaque clé publique) inconnue ou «-» confiance absolue : sa propre clé pleine confiance confiance modérée révoquée expirée 18
Utilisation des empreintes digitales Communiquer avec une connaissance Empreintes digitales des clés (fingerprints) Résultat d'un calcul effectué sur la clé publique Fonction de hachage cryptographique L empreinte digitale est plus petite que la clé publique Si deux clés ont la même empreinte digitale, elles sont identiques Alice Clé publique d Alice Fingerprint d Alice 19
Visualiser une empreinte digitale Communiquer avec une connaissance Enigmail - Effectuez un double-clic sur la clé publique de votre voisin Affichage de l empreinte digitale de la clé publique 20
Communiquer avec une connaissance Vérification des clés publiques Vérification de l empreinte digitale Alice envoie sa clé publique à Bob Pour éviter une contrefaçon de la clé d Alice lors de son envoi, Bob doit vérifier que la clé reçue est effectivement la clé envoyée par Alice Bob visualise l empreinte digitale de la clé reçue d Alice Alice transmet à Bob l empreinte digitale de sa clé au moyen d un canal sûr (par téléphone, lors d une rencontre physique ) Bob compare l empreinte digitale calculée à partir de la clé reçue d Alice avec l empreinte digitale de la clé d Alice transmise par ce canal sûr Alice Clé publique d Alice Mail Clé publique d Alice Bob Fingerprint d Alice Canal sûr Fingerprint d Alice 21
Communiquer avec une connaissance Certification des clés publiques Certification des clés publiques reçues de ses connaissances Bob a vérifié l empreinte digitale de la clé reçue d Alice Bob certifie la clé d Alice en la signant Cette certification atteste que la clé publique d Alice appartient effectivement à Alice Modifications suite à la certification des clés La validité de la clé d Alice est modifiée dans Enigmail pour Bob Le message d avertissement (NON CERTIFIÉE) disparaît lorsque Bob lit un mail signé envoyé par Alice 22
Communiquer avec une connaissance Certifier une clé publique Enigmail - Sélectionnez la clé publique de votre voisin - Édition / Signer la clef - Choisissez l option «J ai fait une vérification très poussée» - Vérifiez que la validité de la clé devient «pleine confiance» et que le message d avertissement «NON CERTIFIÉE» a disparu Certification de la clé enregistrée dans le trousseau de clés publiques Phrase de passe pour obtenir la clé privée Clé privée 23
Visualiser les certificats des clés publiques Communiquer avec une connaissance Enigmail - Sélectionnez la clé publique de votre voisin - Affichage / Signatures Affichage des certificats associés à la clé publique 24
Mise en œuvre dans une entreprise Communiquer à l intérieur d une entreprise Utilisation d une infrastructure à clés publiques (PKI) Stockage des clés publiques des personnels de l entreprise (serveur de clés) Certification des clés publiques de ces personnels avec la clé de la PKI (autorité de certification) Accès aux clés publiques certifiées lors d un échange de mail sécurisé (serveur de clés) Alice Bob Alice Clé d Alice Clé de Bob Clé de Bob certifiée par la PKI + Clé de la PKI PKI PKI Bob Clé d Alice certifiée par la PKI + Clé de la PKI 25
Mise en œuvre dans une entreprise Communiquer à l intérieur d une entreprise Personnel de l entreprise - Exporter sa clé publique vers le serveur de clés - Importer les clés du personnel depuis le serveur de clés - Importer les certificats des clés du personnel depuis le serveur de clés - Importer la clé de la PKI depuis le serveur de clés et attribuer un niveau de confiance à la PKI 26 PKI - Importer les clés du personnel depuis le serveur de clés - Certifier les clés du personnel - Exporter les clés certifiées vers le serveur de clés
Communiquer à l intérieur d une entreprise Interroger le serveur de clés PKS - Affichez dans un navigateur web la page d accès au serveur de clés - Entrez une chaîne de caractères dans le champ de recherche - Validez pour visualiser les clés correspondantes - Effectuez des recherches similaires en affichant les signatures, les empreintes digitales et le contenu des clés 27
Configurer le serveur de clés à utiliser Communiquer à l intérieur d une entreprise Enigmail - Enigmail / Préférences - Bouton «Afficher les menus et paramètres expert» - Onglet «Serveur de clefs» - Supprimez les serveurs de clés prédéfinis - Entrez le nom du serveur de clés à utiliser 28
Exporter sa clé vers le serveur de clés Communiquer à l intérieur d une entreprise Trousseau de clés publiques Enigmail - Sélectionnez votre clé publique - Serveur de clefs / Envoyer les clefs publiques - Vérifiez que votre clé publique apparaît sur le serveur de clés Serveur de clés 29
Importer des clés depuis le serveur de clés Communiquer à l intérieur d une entreprise Enigmail Serveur de clés - Supprimez la clé de votre voisin (Édition / Supprimer la clef) - Serveur de clefs / Chercher des clefs - Entrez le texte recherché (commentaire commun à l entreprise) - Sélectionnez l ensemble des clés de l entreprise et valider Trousseau de clés publiques 30
Mettre à jour des clés depuis le serveur de clés Communiquer à l intérieur d une entreprise Enigmail Serveur de clés - La PKI certifie les clés de l entreprise sur le serveur de clés - Serveur de clefs / Rafraîchir toutes les clefs publiques - Vérifiez que les clés sont maintenant certifiées par la PKI Trousseau de clés publiques 31
Attribuer un niveau de confiance à la PKI Communiquer à l intérieur d une entreprise Enigmail - Importez la clé publique de la PKI en cherchant le texte «pki» - Vérifiez son empreinte digitale - Signez la clé publique de la PKI (avec l option «J ai fait une vérification très poussée») - Sélectionnez la clé publique de la PKI - Édition / Définir le niveau de confiance du propriétaire - Choisissez l option «J ai pleinement confiance» - Vérifiez que la validité des clés de l entreprise certifiées par la PKI devient «pleine confiance» 32
Révoquer des clés PGP Révoquer sa clé publique Créer un certificat de révocation Enigmail - Sélectionnez votre clé publique - Générer / Certification de révocation Certificat de révocation UserName rev.asc Phrase de passe pour obtenir la clé privée Clé privée 33
Révoquer des clés PGP Révoquer sa clé publique Importer le certificat de révocation dans son trousseau de clés Enigmail Certificat de révocation UserName rev.asc - Fichier / Importer des clefs depuis un fichier - Sélectionnez votre certificat de révocation - Vérifiez que la validité de votre clé devient «révoquée» Trousseau de clés publiques 34
Révoquer des clés PGP Révoquer sa clé publique Exporter sa clé révoquée vers le serveur de clés Trousseau de clés publiques Enigmail - Exportez votre clé révoquée vers le serveur de clés - Vérifiez que votre clé est signalée comme révoquée sur le serveur Serveur de clés 35
Révoquer des clés PGP Prendre en compte la révocation des clés Mettre à jour les clés révoquées depuis le serveur de clés Serveur de clés Enigmail - Rafraîchissez les clés publiques de l entreprise depuis le serveur de clés - Vérifiez que la validité des clés devient «révoquée» Trousseau de clés publiques 36
Fin Visualiser graphiquement son trousseau de clés GnuPG gpg --list-sigs sig2dot.pl dot -Tpng > keyring.png display keyring.png 37