Michael W. L u c a s
§ Adapté par Daniel Garance – Contribution de Jean-Marie Thomas
PGP & GPG Assurer la confidentialité de ses e-mails et fichiers
PGP & GPG Assurer la confidentialité de son courrier électronique
Collection « Accès Libre » Pour que l’informatique soit un outil, pas un ennemi ! Monter son serveur de mails sous Linux M. BÄCK et al., adapté par P. TONNERRE N°11931, 2006, 360 pages.
OpenOffice.org 2 efficace. S. GAUTIER, C. HARDY, F. LABBE, M. PINQUIER. N°11638, 2006, 420 p. avec CD-Rom.
Débuter sous Linux avec Mandriva. S. BLONDEEL, D. CARTRON, J. RISI. N°11689, 2006, 530 p. avec CD-Rom.
Réussir un site web d’association avec des outils libres ! A.-L. QUATRAVAUX et D. QUATRAVAUX. N°12000, 2006, 348 p., à paraître.
Ubuntu. La distribution Linux facile à utiliser. L. DRICOT et al. N°11608, 2006, 340 p. avec CD-Rom.
Réussir un projet de site Web, 4e édition. N. CHU. N°11974, 2006, 230 pages.
Gimp 2 efficace. C. GEMY. N°11666, 2005, 360 p. avec CD-Rom.
Home cinéma et musique sur un PC Linux. V. FABRE. N°11402, 2004, 200 p.
Collection « Poche Accès Libre » Premiers pas en CSS et HTML Guide pour les débutants F. DRAILLARD N°12011, 2006, 232 pages.
Gimp 2.2. Débuter en retouche photo et graphisme libre. D. ROBERT. N°11670, 2006, 296 p.
Mozilla Thunderbird. Le mail sûr et sans spam. D. GARANCE, A.-L. et D. QUATRAVAUX. N°11609, 2005, 320 p., avec CD-Rom.
OpenOffice.org 2 Calc. S. GAUTIER, avec la contribution de J.-M. THOMAS. N°11667, 2006, 220 p.
Firefox. Un navigateur web sûr et rapide. T. TRUBACZ, préface de T. NITOT. N°11604, 2005, 250 p.
OpenOffice.org 2 Writer. S. GAUTIER, avec la contribution de G. VEYSSIERE. N°11668, 2005, 248 p.
SPIP 1.8. M.-M. MAUDET, A.-L. et D. QUATRAVAUX. N°11605, 2005, 376 p.
Collection « Connectez-moi ! » Partage et publication… Quel mode d’emploi pour ces nouveaux usages de l’Internet ? Wikipédia. Comprendre et participer. S. BLONDEEL. N°11941, 2006, 168 p.
Les podcasts. Écouter, s’abonner et créer. F. DUMESNIL. N°11724, 2006, 168 p.
Peer-to-peer. Comprendre et utiliser. F. LE FESSANT. N°11731, 2006, 168 p.
Créer son blog en 5 minutes. C. BECHET. N°11730, 2006, 132 p.
… et chez le même éditeur Debian GNU/Linux, 2e édition. – R. HERTZOG. – N°11639, 2005, environ 320 p. Sécuriser un réseau Linux, 2e édition. – B. BOUTHERIN, B. DELAUNAY. – N°11445, 2004, 200 p. BSD, 2e édition. – E. DREYFUS. – N°11463, 2004, 300 pages. Mémento Firefox et Thunderbird. – M. GREY. – N°11780, 2006, 14 p. CSS 2 : pratique du design web. – R. GOETTER. – N°11570, 2005, 324 p. Design web : utiliser les standards. – J. ZELDMAN. – N°11548, 2005, 440 p. XUL. – J. PROTZENKO, B. PICAUD. – N°11675, 2005, 320 p. SPIP 1.8. – V. CARON, Y. FORGERIT et al. – N°11428, 2005, 450 p. Typo3. – W. ALTMANN et al. – N°11781, 2006, 532 p. Programmation Python. T. ZIADE. – N°11677, 2006, 530 p. Ruby on Rails. – D. THOMAS et al. – N°11746, 2006, 590 p.
Michael W. Lucas
PGP & GPG Assurer la confidentialité de son courrier électronique
Adapté par Daniel Garance avec la contribution de Jean-Marie Thomas Remerciements à Benoit Picaud
ÉDITIONS EYROLLES 61, bld Saint-Germain 75240 Paris Cedex 05 www.editions-eyrolles.com
Traduction autorisée de l’ouvrage en langue anglaise intitulé PGP & GPG de Michael W Lucas - ISBN 1-59327-071-2 publié par No Starch Press.
Le code de la propriété intellectuelle du 1er juillet 1992 interdit en effet expressément la photocopie à usage collectif sans autorisation des ayants droit. Or, cette pratique s’est généralisée notamment dans les établissements d’enseignement, provoquant une baisse brutale des achats de livres, au point que la possibilité même pour les auteurs de créer des œuvres nouvelles et de les faire éditer correctement est aujourd’hui menacée. En application de la loi du 11 mars 1957, il est interdit de reproduire intégralement ou partiellement le présent ouvrage, sur quelque support que ce soit, sans l’autorisation de l’Éditeur ou du Centre Français d’exploitation du droit de copie, 20, rue des Grands Augustins, 75006 Paris. © Michael W. Lucas, 2006. © Groupe Eyrolles, 2006, pour l’édition en langue française, ISBN : 2-212-12001-X
Avant-propos
Nombreux sont ceux pour qui la cryptographie a quelque chose de suspect, voire d’inquiétant. Après tout, les techniques de chiffrement sont des secrets militaires et commerciaux depuis des millénaires. Cinéma et littérature utilisent la cryptographie en fonction des besoins du scénario, sans aucun égard pour son fonctionnement véritable. Ceux qui s’y intéressent de plus près sont rapidement confrontés à des algorithmes suffisamment complexes pour décourager quiconque ne dispose pas de connaissances approfondies en mathématiques. Tout ceci contribue à l’ambiance de mystère qui entoure le sujet. S’il est vrai que les mathématiques sur lesquelles se basent les techniques de cryptographie actuelles sont complexes, les outils cryptographiques sont eux très simples d’emploi dès lors qu’on a une petite idée du type de chiffrement à employer. L’ouvrage que vous tenez dans vos mains vous guidera étape par étape dans le monde de la cryptographie et des signatures numériques ; il vous apprendra à employer les outils qui protègent vos informations confidentielles tout en les transmettant aux personnes voulues. Ce livre n’a pas l’ambition d’être exhaustif sur le sujet. Il ne vous apprendra pas à calculer manuellement des clés de chiffrement et ne décrit pas non plus dans les moindres détails chacun des algorithmes et chacune des techniques de chiffrement disponibles. En revanche, il vous en apprendra assez sur les principes du chiffrement et de la signature numérique pour que vous fassiez des choix éclairés en fonction des circonstances.
© Groupe Eyrolles, 2005
Accès libre – PGP & GPG
Vous verrez comment intégrer le chiffrement aux logiciels de courrier électronique les plus employés pour échanger des messages électroniques sécurisés avec vos correspondants, comment installer les systèmes de chiffrement Pretty Good Privacy (PGP) et Gnu Privacy Guard (GnuPG ou GPG) sous Windows, Unix, Linux et Mac OS X et comment les utiliser pour sécuriser vos données personnelles.
Le contenu de ce livre À RETENIR Que sont PGP, OpenPGP et GnuPG ? PGP est la première implémentation de la norme OpenPGP tandis que GnuPG en est une plus récente et libre de surcroît. Si la phrase qui précède n’a pour vous aucun sens, poursuivez la lecture. Si au contraire, vous savez exactement ce à quoi elle se réfère, vous pouvez envisager de passer directement au chapitre 1.
Ce livre n’est pas un traité exhaustif sur la cryptographie, mais il couvre une large gamme de sujets en rapport avec OpenPGP, PGP et GnuPG. Le chapitre 1 explique les principes fondamentaux de la cryptographie. Nous y traitons des principaux types de chiffrement employés par OpenPGP, de la différence entre système de chiffrement et code, et du type de chiffrement à employer avec GnuPG. Le chapitre 2 expose les principes de fonctionnement d’OpenPGP. Il y est question du réseau de confiance (Web of Trust), de clés et de sousclés, de trousseaux de clés et de serveurs de clés. Vous y trouverez aussi des conseils pour protéger votre clé, la faire signer, la révoquer et la diffuser auprès de tiers. Le chapitre 3 explique comment installer PGP Desktop sous Windows et Mac OS X. Le chapitre 4 décrit l’installation de GnuPG, à la fois sous Windows et sous les systèmes de type Unix, Linux et Mac OS X. Le chapitre 5 montre de quelle manière les clés OpenPGP sont reliées les unes aux autres. Il y est également question de vérification d’identité et de signature de clés. Le réseau de confiance, évoqué au chapitre 2, est ce qui distingue OpenPGP de tous les autres systèmes cryptographiques, et sans doute son élément le plus important. La sécurité ne repose pas sur les logiciels, mais sur leurs utilisateurs. Malheureusement, les utilisateurs sont également les maillons faibles de tout système de sécurité. C’est à quoi le système tente de remédier et vous verrez dans ce chapitre comment signer les clés, et quelles sont les erreurs à éviter. Le chapitre 6 traite de la gestion du réseau de confiance à l’aide de PGP Desktop tandis que le chapitre 7 est consacré à la gestion du réseau de confiance à l’aide de GnuPG.
VIII
© Groupe Eyrolles, 2005
Avant-propos
Dans le chapitre 8, vous verrez comment OpenPGP peut s’intégrer à votre courrier électronique et quels sont les problèmes qui peuvent se poser. Il y sera notamment question de PGP/MIME et du stockage de fichiers chiffrés. Le chapitre 9 vous montrera alors comment réaliser cette intégration avec PGP Desktop et votre logiciel de courrier électronique sous Windows. Dans le chapitre 10, vous vous familiariserez avec différents plug-ins permettant de faire fonctionner GnuPG avec les logiciels de courrier électronique les plus courants, aussi bien sous Windows et Mac OS X que Linux. Le chapitre 11 conclura le livre par des réflexions sur la manière de minimiser les risques en matière de sécurité, sur l’emploi d’OpenPGP au sein d’une équipe et sur l’utilisation de quelques fonctions supplémentaires de GnuPG et de PGP. Les annexes A et B récapitulent respectivement PGP Command Line et les commandes en ligne de GnuPG.
Quels chapitres lire ? Cet ouvrage traite d’un seul système cryptographique indépendamment de la plate-forme (Windows, Mac OS X, Linux ou Unix) mais qui peut être employé à l’aide de logiciels tout à fait différents. Deux logiciels mettant en œuvre ce système sont présentés pour différentes plates-formes, et plusieurs aspects de leur utilisation sont abordés. PGP fonctionne sous Windows et Mac OS X, tandis que GnuPG dispose d’une gamme plus large de systèmes supports qui inclut la famile des Linux/Unix. Vous n’avez besoin de lire que les chapitres concernant le logiciel que vous avez choisi. Si vous hésitez encore, relisez les sections qui précèdent pour vous aider à prendre une décision, ou lisez simplement l’ensemble du livre : il n’est pas si gros, et tôt ou tard, vous vous féliciterez de bien connaître les deux logiciels. Si toutefois vous êtes sûr de préférer l’un des deux logiciels, sachez que les chapitres 3, 6 et 9 et l’annexe A concernent exclusivement PGP tandis que les chapitres 4, 7 et 10 et l’annexe B n’intéresseront que les utilisateurs de GnuPG. Les autres chapitres sont communs aux deux logiciels.
© Groupe Eyrolles, 2005
IX
Accès libre – PGP & GPG
Remerciements Écrire un livre demande d’être aidé par un grand nombre de personnes. Pour leurs commentaires sur les divers brouillons et versions de PGP et GPG, je dois beaucoup aux personnes suivantes : Henry Hertz Hobbit, J. Wren Hunt, Thomas Jones, Srijith Krishnan Nair, David Shaw et Thomas Sjorgeren. Stephan Somogyi de PGP Corporation m’a apporté sa précieuse connaissance de PGP, et ses encouragements en général. Len Sassaman m’a apporté sa précieuse connaissance de OpenPGP et de son histoire, et m’a rappellé à quel point nos doux espoirs ne coïncident pas toujours avec la dure réalité. Je dois à ces gens ce que j’ai fait de bon, tandis que je suis seul fautif de mes erreurs. Il faut aussi porter le crédit de cet ouvrage aux innombrables cryptographes, chercheurs, administrateurs de la sécurité et développeurs système de l’infrastructure mondiale OpenPGP, sans oublier Phil Zimmermann qui le premier a créé PGP. Je n’aurais rien eu à écrire sans eux. Le débat d’aujourd’hui autour de la confidentialité est plus intense que jamais, et la modeste parution de ce livre ne le clora pas. Alors que David Brin a certainement raison et que la Transparent Society a probablement raison, il semble que la confidentialité soit réservée à certains : les grandes compagnies et les bureaux gouvernementaux en bénéficient, tandis que nous, gens ordinaires, ne sommes pas dans le même cas. Espérons que ce livre vous en offrira la possibilité.
X
© Groupe Eyrolles, 2005
Table des matières INTRODUCTION ............................................................. 1 L’histoire du système cryptographique PGP et du long procès de son fondateur • 2 La norme OpenPGP • 5 Un système reposant sur OpenPGP est-il vraiment sûr ? • 5 PGP Corporation aujourd’hui • 6 Le logiciel libre GnuPG • 6 PGP ou GnuPG ? • 7 Simplicité d’emploi • 7 La transparence, garantie de qualité • 8 Algorithmes pris en charge • 9 OpenPGP et la loi • 10 1. À QUOI SERVENT LA CRYPTOGRAPHIE ET OPENPGP ? ..... 13 Que garantit la norme OpenPGP ? • 14 Comprendre les notions fondamentales • 15 Chiffrer un texte pour le protéger des regards indiscrets • 15 Chiffre • 16 L’empreinte d’un message, version numérique de l’empreinte digitale • 16 Cryptanalyse.. ou attaque • 17 Les objectifs de la cryptographie OpenPGP • 18 La confidentialité : protéger des messages sensibles • 18 La garantie d’intégrité : le message n’est pas falsifié • 18 La non-répudiation : le signataire ne peut nier être l’expéditeur du message • 19 L’authenticité : on lit bien ce qui a été envoyé • 19 Les rouages : les algorithmes de chiffrement • 20
© Groupe Eyrolles, 2005
Algorithmes symétriques : l’efficacité pour protéger en dehors de tout échange • 21 La magie des algorithmes asymétriques • 21 Chiffrement à clé publique • 22 Une signature pour du contenu numérique • 23 Étapes techniques d’une signature numérique • 23 Et si le message a été falsifié ? • 24 Chiffrer et signer en même temps : la force d’OpenPGP • 24 Phrases secrètes et clés privées • 26 Qu’est-ce qu’une bonne phrase secrète • 26 Élémentaire prudence • 27 2. LES CONCEPTS DE BASE DE LA NORME OPENPGP ...........29 OpenPGP : quelle « sécurité » exactement ? • 30 Le réseau de confiance • 32 Questions de confiance • 33 L’appartenance au réseau de confiance n’est pas un gage de bonne foi • 34 Le nombre de signatures d’une clé n’est pas une mesure de confiance • 34 Signer une clé, un engagement • 34 Intégrer le réseau de confiance • 35 Précautions pour installer OpenPGP • 36 Précautions matérielles : sur quel ordinateur installer so n logiciel et ses clés ? • 36 Précautions en cas de partage sous Windows • 36 Conseils pour créer sa première paire de clés • 37 Choisir la longueur de la clé • 37 Choisir le délai d’expiration des clés • 38
XI
Accès libre – PGP & GPG
Nom, adresse électronique et commentaire • 39 Nom • 39 Adresse électronique • 39 Commentaire • 39 Identifiant utilisateur • 39 Créer un certificat de révocation dès la création de la clé • 40 Stocker en lieu sûr sa paire de clés • 40 Stocker un certificat de révocation • 41 Identification photographique et clés OpenPGP • 41 Taille et format de la photo • 41 Diffuser sa clé publique • 42 Recourir à des serveurs publics de clés • 43 Publier sa clé publique sur son site web • 44 Diffusion ad hoc • 44 3. INSTALLER PGP SOUS WINDOWS ET MAC OS X ............ 47 Téléchargement de PGP • 48 Installation de PGP • 48 Configurer les options de PGP • 51 Type de clé (Key Type) • 51 Taille de clé (Key Size) • 51 Expiration • 52 Méthodes de chiffrement (Ciphers) • 52 Empreintes • 52 Saisie de la phrase secrète et génération des clés • 53 Créer une copie de sauvegarde de sa paire de clés PGP • 55 Certificats de révocation et PGP • 57 Désactiver les mises à jour des serveurs de clés • 58 Générer un certificat de révocation (sans révoquer la clé) • 58 Réimportation de la clé privée • 60 Configurer les propriétés de la clé • 61 Révoquer sa clé avec le certificat de révocation • 62 Publier sa clé sur un serveur de clés public • 62 Publier sa clé sur le serveur de PGP Corporation • 62 Publier sa clé sur un autre serveur • 63 4. INSTALLER GNUPG POUR WINDOWS, UNIX/LINUX ET MAC OS X ............................................................ 65 Télécharger GnuPG • 66 Une bonne habitude à prendre : vérifier les sommes de contrôle • 67 Vérifier les sommes de contrôle sous Windows • 68 Vérifier les sommes de contrôle sous Mac OS X • 69 Vérifier les sommes de contrôle sous Linux/Unix • 69
XII
Le répertoire de configuration de GnuPG • 70 Emplacement des trousseaux de clés GnuPG • 70 Spécificier serveur de clés et autres options dans gpg.conf • 71 Logiciels d’interface graphique à installer pour GnuPG • 71 Installer GnuPG sous Windows • 73 Installer GnuPG seul • 73 Installer GnuPG à l’aide de Gpg4win • 75 L’interface graphique WinPT • 77 Créer une paire de clés dans WinPT • 77 Le gestionnaire de clés de WinPT • 79 Créer un certificat de révocation depuis WinPT • 80 Envoyer la clé sur un serveur de clés • 81 Le gestionnaire de clés d’Enigmail pour Mozilla Thunderbird • 81 Créer une paire de clés avec Enigmail • 82 Créer un certificat de révocation avec Enigmail • 83 Envoyer la clé sur un serveur de clés • 83 Installer GnuPG sous Mac OS X • 84 Télécharger et installer GPG • 84 Créer des clés avec Keychain Access • 85 Créer un certificat de révocation • 85 Envoyer la clé sur un serveur de clés • 86 Installer GnuPG sur Linux et autres systèmes Unix • 87 GnuPG et les nombres aléatoires • 88 EGD, le démon accumulateur d’entropie • 88 Compiler le code source de GnuPG • 90 Installer sa version compilée de GnuPG • 90 Régler les options de configuration • 91 Utiliser GnuPG en mode root setuid • 92 N’exécutez pas GnuPG en tant que root • 93 Créer une paire de clés GnuPG depuis l’invite de commande • 93 Créer un certificat de révocation • 99 Rendre publique votre clé • 100 Extraction de la clé • 100 Serveurs de clés • 102 Formulaires web • 103 5. LE RÉSEAU DE CONFIANCE ..........................................105 Rechercher les clés de ses correspondants sur les serveurs de clés • 106 Le réseau de serveurs subkeys.pgp.net • 106 Rechercher la clé d’un correspondant • 108
© Groupe Eyrolles, 2005
6. GÉRER SON TROUSSEAU DE CLÉS AVEC PGP ................ 117 Ajouter des serveurs de clés • 118 Ajouter des clés au trousseau • 120 Recherche sur les serveurs de clés • 120 Importation depuis un fichier • 121 Comparaison d’empreintes • 121 Renvoyer la clé signée • 123 Afficher les signatures • 124 Mise à jour des signatures • 124 Ajouter des photos à vos clés • 125 7. GÉRER SON TROUSSEAU DE CLÉS AVEC GNUPG ............ 127 Ajouter des serveurs de clés • 128 Options du serveur de clés • 128 Avec Enigmail (Thunderbird) • 129 Avec WinPT (Windows) • 129 Avec Keychain Access (Mac OS X) • 130 Ajouter des clés au trousseau • 130 Afficher et importer des clés • 131 Depuis l’invite de commande • 131 Avec Enigmail • 133 Avec WinPT • 134 Avec Keychain Access • 134 Importer une clé • 134 Depuis l’invite de commande • 134 Avec Enigmail • 135 Avec WinPT • 135 Signature de clé • 135 Vérifier l’empreinte • 136 Signer une clé • 136 Depuis l’invite de commande • 136 Avec Enigmail • 137 Avec WinPT • 138 Avec Keychain Access • 138 Afficher les signatures d’une clé • 138
© Groupe Eyrolles, 2005
Table des matières
Signer une clé : pourquoi et comment ? • 109 Signer les clés de personnes proches • 110 Que faire avant de signer la clé d’un inconnu ? • 110 Que faire d’une clé que vous avez signée ? • 112 Intégrer une nouvelle signature à sa clé • 112 Séances de signature de clés • 113 Niveaux de fiabilité des clés • 114 À l’écart du réseau de confiance • 115
Depuis l’invite de commande • 138 Avec Enigmail • 139 Avec WinPT • 139 Exporter une clé • 139 Depuis l’invite de commande • 139 Avec Enigmail • 140 Avec WinPT • 140 Avec Keychain Access • 140 Importer de nouvelles signatures • 140 Envoyer des signatures sur des serveurs de clés • 141 Depuis l’invite de commande • 141 Avec Enigmail • 141 Avec WinPT • 141 Avec Keychain Access • 141 Mettre à jour des clés • 142 Effacer des clés publiques du trousseau • 142 Depuis l’invite de commande • 143 Avec Enigmail • 143 Avec WinPT • 143 Avec Keychain Access • 143 Ajouter de photos aux clés avec GnuPG • 143 Ajouter une photo à une clé • 144 Afficher les photos avec GnuPG • 145 Les photos dans WinPT • 145 GnuPG et le réseau de confiance • 147 Affecter des niveaux de confiance • 148 Depuis l’invite de commande • 148 Avec Enigmail • 148 Avec WinPT • 149 8. LES PRINCIPES D’OPENPGP POUR LE COURRIER ÉLECTRONIQUE ...........................................151 Chiffrement des messages • 153 Chiffrement direct du texte des messages • 153 Les inconvénients du chiffrement direct • 153 Les avantages du chiffrement direct • 154 PGP/MIME • 155 Intégration avec les logiciels de courrier électronique • 156 Proxys • 156 Plug-ins • 156 Stockage du courrier : chiffré ou non chiffré ? • 157 Stocker le courrier sous une forme non chiffrée • 157 Chiffrer son courrier avec sa clé publique • 158
XIII
Accès libre – PGP & GPG
Messages provenant de l’extérieur de votre réseau de confiance • 158 Étendre son réseau de confiance • 159 Parcourir le réseau de confiance (pathfinder) • 159 Être anonyme mais identifiable • 160 Ce qui n’est jamais chiffré dans un courriel • 162 Stocker sous une forme non chiffrée • 162 9. ASSURER LA CONFIDENTIALITÉ DES MAILS AVEC PGP SOUS WINDOWS ....................................... 165 Interaction avec votre logiciel de courrier électronique • 166 Identifier les messages OpenPGP • 167 Stockage des messages • 168 Créer des règles pour le chiffrement du courrier • 168 Chiffrement en fonction du destinataire • 169 Chiffrement obligatoire • 170 Envoi sur les listes de diffusion • 170 Gestion des listes de diffusion • 171 Créer des règles personnalisées • 171 Conditions • 172 Actions • 173 Exceptions • 174 Exemple de règle personnalisée : exception à une règle par défaut • 175 Exemple de règle personnalisée : remplacer une règle par défaut • 175 Ordre des règles • 177 10. ... ET AVEC GNUPG SOUS WINDOWS, LINUX ET MAC OS X .......................................................... 179 Thunderbird et GnuPG • 180 Installer Enigmail, le plug-in GnuPG de Thunderbird • 180 Configurer Enigmail • 181 Envoyer des messages chiffrés • 183 Règles en fonction des destinataires • 183 Ouvrir des messages chiffrés • 185 Apple Mail et GPGMail • 186 GnuPG et les logiciels de courrier électronique de Microsoft • 186 Outlook et GnuPG • 187 Installer le plug-in GPGol • 187 Configurer le plug-in • 187 Options • 189 Phrase secrète, ou passphrase • 190
XIV
Avancé • 190 Envoyer des messages chiffrés • 190 Recevoir des messages chiffrés • 191 Outlook Express et GnuPG • 191 Configurer Outlook Express pour OpenPGP • 192 Envoyer des messages chiffrés • 193 Boîtes de dialogue et avertissement divers • 194 Recevoir et vérifier des messages signés et chiffrés • 194 Déchiffrer des messages PGP/MIME avec Outlook et Outlook Express • 194 11. VERS UNE MEILLEURE SECURITÉ AVEC OPENPGP.........197 D’où proviennent les risques ? • 198 Mauvaise utilisation • 198 Mauvaise signature • 199 Failles matérielles • 200 Failles logicielles • 200 Faiblesse humaine • 201 Fausses clés • 203 Interopérabilité d’OpenPGP • 204 OpenPGP et le travail d’équipe • 204 Nomadisme et systèmes partagés • 205 Autres fonctions • 207 Mémorisation de la phrase secrète • 207 Destruction de fichiers • 207 A. INTRODUCTION À PGP COMMAND LINE ......................209 Configurer PGP Command Line • 210 Vérification et licence • 211 Créer une paire de clés • 212 Choix du type de clé • 213 Choix de la phrase secrète • 213 Choix d’une date d’expiration • 213 Génération d’un certificat de révocation • 214 Exportation de la clé publique • 214 Serveur de clés • 214 Fichier au format texte • 215 Afficher des clés • 215 Gestion des clés • 217 Recherche de clés • 217 Importation de clés • 218 Signature d’une clé • 218 Mise à jour des clés sur un serveur • 218 Chiffrement et déchiffrement • 219 Signature et vérification de fichiers • 219
© Groupe Eyrolles, 2005
© Groupe Eyrolles, 2005
Table des matières
B. RÉSUMÉ DES COMMANDES GNUPG ............................ 221 Configurer GnuPG • 222 Format et type de sortie • 222 Créer une paire de clés, révoquer et exporter • 222 Révocation d’une clé • 223 Exportation d’une clé • 223 Envoi d’une clé sur un serveur de clés • 223 Gestion des trousseaux de clés • 224
Affichage des clés • 224 Ajouter et ôter des clés • 224 Signatures de clés • 225 Chiffrement et déchiffrement • 225 Signer un fichier • 226 Formats de sortie • 226 INDEX ......................................................................227
XV
© Groupe Eyrolles, 2005
Introduction
SOMMAIRE
OpenPGP GnuPG GPG GPL GNU PGP ... Cryptographie cryptage chiffrement cryptanalyse ...
Licence logiciel libre audit algorithme brevet ... Une introduction pour clarifier les concepts et la combinatoire complexe de tous ces termes !
© Groupe Eyrolles, 2005
B L’histoire de PGP B PGP Corporation aujourd’hui B Qu’est-ce que GnuPG ? B PGP ou GnuPG ? B OpenPGP et la loi MOTS-CLÉS
B OpenPGP B PGP Corporation B GnuPG B GPG B GPL
Accès libre – PGP & GPG
L’histoire du système cryptographique PGP et du long procès de son fondateur La cryptographie est une science ancienne, mais il a fallu attendre la diffusion d’ordinateurs rapides pour qu’elle soit largement adoptée. Les autorités nationales ont suivi cette évolution avec une inquiétude croissante. En effet, s’il existe de nombreux usages légitimes pour la cryptographie, elle constitue également un outil pouvant être exploité à des fins illicites. En 1991, un projet de loi du Sénat américain portant le numéro 266, qui concernait la lutte contre la criminalité d’une manière générale, comportait une disposition obligeant tous les outils de chiffrement à comporter une « porte dérobée » donnant aux autorités l’accès aux messages chiffrés. Alors même que les débats parlementaires sur cette loi étaient en cours, Phil Zimmermann combina plusieurs méthodes de chiffrement existantes pour créer un logiciel qu’il nomma « Pretty Good Privacy », ou PGP. Si les principes mathématiques sur lesquels reposait PGP étaient connus depuis longtemps, l’innovation de Phil Zimmermann a consisté à rendre ces outils accessibles à tout propriétaire d’un ordinateur domestique. Dès ses premières versions, PGP permettait aux utilisateurs de MS-DOS de disposer d’un système de chiffrement en principe impossible à casser, tel qu’il est employé par les militaires. Tandis que les débats législatifs sur le projet de loi 266 se poursuivaient, un ami de Zimmermann se mit à distribuer PGP avec l’objectif de mettre le chiffrement fort à disposition d’un aussi grand nombre de personnes que possible. Il utilisa pour cela des systèmes BBS (des ordinateurs permettant le téléchargement de fichiers) ainsi qu’Internet, qui était à l’époque pour l’essentiel un réseau employé par les chercheurs et les universités. Ce militantisme actif contribua à l’abandon du projet de loi. Zimmermann, qui était depuis longtemps un militant antinucléaire, était convaincu que PGP pourrait être utile aux dissidents, aux contestataires et à toute autre personne exposée à des risques en raison de ses convictions, soit un grand nombre de personnes à la fois aux États-Unis et à l’étranger. Depuis la Seconde Guerre mondiale, les États-Unis considéraient le chiffrement fort comme une menace importante pour leur sécurité interne et interdisaient son exportation. L’exportation de logiciels de chiffrement, PGP y compris, nécessitait de disposer d’une licence délivrée par le Département d’état, l’exportation vers certains
2
© Groupe Eyrolles, 2005
Introduction
JARGON Cyptographie, chiffrer, déchiffrer Quelques précisions terminologiques ne sont peut-être pas de trop ici. La cryptographie désigne en principe une écriture secrète, mais par extension, le terme est maintenant employé pour désigner l’art de créer de telles écritures. C’est dans ce sens que nous l’utilisons dans ce livre. La transformation d’un message pour le rendre incompréhensible à ceux qui ne disposent pas de la clé adéquate se nomme chiffrement, le déchiffrement étant l’opération inverse. Les verbes correspondants sont chiffrer et déchiffrer. Les termes cryptage/décryptage, plus récents, ainsi que les termes codage/décodage (et les verbes correspondants) ont des sens similaires et sont parfois contestés. Pour éviter toute confusion, nous n’y aurons pas recours dans ce livre.
pays étant interdite dans tous les cas. Les outils de chiffrement étaient ni plus ni moins classifiés comme des armes de guerre. Zimmermann décida alors de contourner les restrictions à l’exportation en exploitant la différence entre écrit et logiciel. Initialement, PGP a été écrit sous forme de texte, ou « code source », qu’il faut ensuite convertir en un programme utilisable par l’ordinateur à l’aide d’outils informatiques. C’est une pratique très courante en informatique. Le texte luimême n’est pas un logiciel, pas plus que les plans d’une voiture ne sont une voiture, mais il est tout aussi indispensable pour obtenir le produit final. Zimmermann eut donc l’idée de publier sous forme de livre le texte (le code) sur lequel reposait PGP. Bien que de nombreux livres traitant de cryptographie aient été soumis à des restrictions à l’exportation, Zimmermann réussit à obtenir une licence pour son livre de code source. C’est ainsi que PGP se diffusa dans le monde entier et devint rapidement une norme de facto pour le chiffrement de données.
BON À SAVOIR Exception juridique Les livres ne sont pas considérés comme des logiciels, même lorsqu’ils contiennent du « code source », ces instructions grâce auxquelles un ordinateur peut créer un programme. Et les livres ne sont pas des armes non plus (mais vous êtes peut-être d’un autre avis si vous avez déjà laissé tomber sur votre pied l’un de ces pavés informatiques de 1 500 pages).
Bien entendu, les autorités américaines ne furent pas dupes de la manœuvre et intentèrent un procès à Zimmermann, qui dura trois ans. Ce procès fit de lui une sorte de héros de la communauté informatique. De nombreux utilisateurs téléchargèrent PGP uniquement pour avoir une meilleure idée de ce dont il était question, et finirent par l’utiliser régulièrement pour leurs propres besoins. Au cours d’auditions parlementaires, Zimmermann lut des lettres qu’il avait reçues de personnes vivant sous des régimes autoritaires ou dans des zones de guerre expliquant comment leur vie avait été sauvée par PGP, ce qui permit au public de prendre conscience de l’importance de son travail. Par ailleurs, dans la mesure où PGP avait été diffusé sur Internet avant la publication
© Groupe Eyrolles, 2005
3
Accès libre – PGP & GPG
du livre, le code était déjà disponible partout dans le monde (pour peu qu’on dispose d’une connexion Internet, ce qui n’était pas donné à tout le monde au début des années 1990). Le livre était simplement un moyen pour les personnes résidant à l’extérieur des États-Unis d’utiliser PGP en respectant les lois américaines. L’histoire du procès de PGP est fascinante et pourrait facilement remplir tout ce livre. Pour Zimmermann et ses défenseurs, le contenu du livre était de la « parole ». Or, le Premier amendement à la Constitution des États-Unis garantit la liberté de parole. D’où d’intéressantes considérations, par exemple pour savoir où se situe la limite entre la parole et le code informatique. Par ailleurs, PGP n’avait pas été distribué par Zimmermann lui-même, mais par d’autres. Si quelqu’un en Libye téléchargeait PGP depuis le serveur du Massachusetts Institute of Technology, Zimmermann en était-il responsable ? Ces questions furent longuement débattues par les avocats des deux bords, mais lorsqu’il apparut que les tribunaux considéraient le Premier amendement comme ayant plus de poids que la réglementation fédérale, les autorités américaines firent marche arrière. Ce recul évita des frais juridiques supplémentaires (et la perspective d’une défaite humiliante) dans une affaire qui paraissait mal engagée pour le gouvernement et surtout, il coupa court au risque de l’établissement d’une jurisprudence qui aurait rendu plus généralement légale toute exportation en matière cryptographique. Un futur gouvernement américain pourrait toutefois remettre l’affaire sur la table s’il considère les circonstances comme plus favorables pour lui.
QUE RECOUVRENT LES TERMES PGP, GPG ET OPENPGP ? Pour éviter toute confusion entre les sigles PGP, GPG et OpenPGP, un petit résumé peut être utile : • OpenPGP est une norme à laquelle se conforment PGP et GnuPG, et aussi d’autres logiciels. En effet, de nombreux éditeurs de logiciels intègrent des fonctions OpenPGP à leurs produits, même si aucun n’est aussi connu ou reconnu que PGP ou GnuPG. • PGP désigne exclusivement le produit du même nom de la société PGP Corporation. Lorsque vous voyez le mot PGP, il ne peut désigner que ce produit, et non GnuPG ni aucune autre mise en œuvre d’OpenPGP. • Les expressions GnuPG et GPG s’appliquent spécifiquement au logiciel libre Gnu Privacy Guard.
4
© Groupe Eyrolles, 2005
Introduction
La norme OpenPGP PGP n’était pas seulement confronté à un procès, mais présentait certains problèmes techniques, que des cryptographes dans le monde entier ne tardèrent pas à soulever. Le problème le plus manifeste était l’utilisation par PGP des techniques de chiffrement RSA (Rivest Shamir Adleman) et IDEA (International Data Encryption Algorithm), qui étaient brevetées. En conséquence, toute utilisation commerciale de PGP nécessitait le paiement de droits aux détenteurs des brevets. Pour beaucoup d’informaticiens et de spécialistes de la sécurité, le recours à ces techniques brevetées était inacceptable parce qu’il représentait un obstacle à l’utilisation de PGP, tant pour le grand public que pour les entreprises. Zimmermann proposa une solution en 1988, lorsque sa société, PGP Corporation, proposa une version revue et corrigée de PGP, OpenPGP, à l’IETF (Internet Engineering Task Force, l’organisme chargé d’élaborer les normes d’Internet). OpenPGP définit les normes selon lesquelles différents programmes peuvent communiquer entre eux, librement mais de manière sécurisée, en utilisant une version améliorée du protocole PGP et différents algorithmes de chiffrement. Ce qui permit à diverses personnes et entreprises de créer leurs propres mises en œuvre d’OpenPGP à partir de zéro en les adaptant à leurs besoins particuliers.
Un système reposant sur OpenPGP est-il vraiment sûr ? S’il fallait une preuve du niveau de sécurité que peut offrir OpenPGP, il suffirait d’évoquer le fait que les meilleurs spécialistes en sécurité informatique y font appel, ainsi que de très nombreuses administrations nationales, grandes entreprises ou hôpitaux. Avec une puissance de calcul suffisante, il est possible de casser le chiffrement utilisé par n’importe quelle application OpenPGP. La National Security Agency, l’agence de renseignement américaine responsable de la collecte et de l’analyse de l’information (www.nsa.gov) disposerait d’ordinateurs spécialement conçus pour casser ce type de chiffrement. Toutefois, si quelqu’un est prêt à dépenser des millions pour accéder à vos informations, il existe sans doute pour lui des moyens plus simples d’y parvenir. On peut donc dire sans risquer de se tromper que lorsqu’OpenPGP est correctement configuré et employé, il est suffisamment sûr pour inciter ceux qui s’intéressent à vos informations à choisir un autre moyen d’y accéder plutôt que de tenter de casser le chiffrement.
© Groupe Eyrolles, 2005
ATTENTION Vous avez dit sécurité ? OpenPGP n’est pas la garantie d’une sécurité absolue. Mal mis en pratique, il peut même affaiblir votre sécurité en vous donnant l’impression que vos informations sont protégées alors qu’elles ne le sont pas. Le fait de ne pas adopter les bonnes pratiques en matière de sécurité informatique revient à fermer sa maison à clé en partant en vacances tout en laissant la clé sous le paillasson, là où n’importe qui peut la trouver.
5
Accès libre – PGP & GPG
PGP Corporation aujourd’hui BUSINESS PGP Corporation Pendant quelques années, PGP Corporation a appartenu à Network Associates, mais c’est aujourd’hui une société indépendante comptant parmi ses partenaires de nombreux acteurs importants du marché informatique.
Aujourd’hui, PGP Corporation est un acteur important du monde de la cryptographie et de la sécurité de l’information qui fournit des logiciels PGP pour de nombreuses plates-formes, de l’ordinateur au PDA, et pour de nombreuses applications, du courrier électronique aux dossiers médicaux en passant par la messagerie instantanée. Elle propose des versions d’OpenPGP pour la plupart des systèmes d’exploitation courants, ainsi qu’un système PGP qui s’intègre de manière transparente aux logiciels de courrier électronique les plus employés. PGP est un produit commercial et PGP Corporation propose une large gamme de services en rapport avec ce produit. Dans ce livre, nous traiterons de la version de base, PGP Desktop ; les solutions PGP pour l’entreprise pourraient remplir un livre à elles seules. Dans la mesure où PGP est un produit commercial, il n’est pas gratuit.
Le logiciel libre GnuPG GnuPG est un logiciel libre qui met en œuvre la norme OpenPGP et les algorithmes qu’elle désigne. Elle a été mise à disposition du public en 1999 par le développeur allemand Werner Koch, et elle est disponible dans des versions Windows et Unix, dont Linux et Mac OS X.
La licence GPL B http://www.gnu.org/licenses/gpl.html
Dans la mesure où GnuPG respecte la norme OpenPGP (utilisable donc sans restriction car il ne se sert pas de l’algorithme breveté IDEA), il peut être employé pour communiquer avec des utilisateurs employant d’autres logiciels conformes à cette norme. « Librement disponible » signifie ici que l’on peut se le procurer gratuitement, accéder au code source qui a servi à créer le programme et que vous pouvez en faire ce que bon vous semble, comme l’énonce sa licence GPL. L’accès au code source n’intéresse sans doute qu’une minorité de lecteurs, mais elle est essentielle pour ceux qui ont besoin de l’examiner et de le modifier, condition au combien importante pour que le logiciel soit sûr. Le nom officiel du logiciel est GnuPG, mais ce nom est fréquemment abrégé en GPG. Quel que soit le nom que vous utilisiez, les personnes connaissant OpenPGP sauront de quoi vous parlez.
6
© Groupe Eyrolles, 2005
Introduction
PGP ou GnuPG ? GnuPG est gratuit et libre, tandis que PGP ne l’est pas mais présente certains avantages notamment en termes de langues disponibles, de simplicité d’emploi, d’assistance technique et d’algorithmes pris en charge. Vous allez toutefois constater que pour le moment, le choix d’un logiciel de cryptographie peut s’avérer cornélien dans la mesure où chaque solution présente des avantages et des inconvénients importants. GnuPG sous licence GPL GnuPG est un logiciel libre. Vous pouvez l’employer comme bon vous semble, à titre privé ou professionnel. Néanmoins, si vous l’intégrez à un produit professionnel que vous revendez ensuite, lisez attentivement la licence GPL (General Public License) et respectez-la ! Vous constaterez notamment que dès lors qu’un produit utilise du code GPL, il est soumis à certaines obligations, notamment celle de reverser le code source amélioré à la communauté dont il est issu.
VERSIONS Langues disponibles de PGP À l’heure actuelle, PGP n’a pas été traduit en français, uniquement en allemand et en japonais. Il se peut que cette situation change, et peut-être une version localisée sera-t-elle disponible lorsque vous lirez ces lignes. Si ce n’est pas le cas, vous devez accepter une moindre convivialité du logiciel dès lors que vous ou vos utilisateurs n’êtes pas familiarisés avec la langue de Shakespeare.
B http://www.gnu.org/licenses/gpl.html
GnuPG est disponible en français. Cependant, dans la mesure où il fonctionne depuis l’invite de commande, la question de la langue a une importance moindre que s’il disposait d’une interface graphique. Vous verrez toutefois que des interfaces graphiques ont été créées a posteriori pour GnuPG et que l’une des meilleures d’entre elles, Enigmail, a été traduite en français. Enigmail est une extension de Mozilla Thunderbird, un logiciel de courrier électronique gratuit d’excellente qualité. Sans vouloir trop approfondir ici (ce sera l’objet du reste du livre), retenez toutefois qu’il est possible d’utiliser GnuPG par l’intermédiaire d’une interface graphique entièrement en français, mais à condition d’utiliser le logiciel de courrier électronique Mozilla Thunderbird, lui aussi en français.
OUTIL Un logiciel libre de courrier électronique B Mozilla Thunderbird, le mail sûr et sans
spam, D. Garance, Eyrolles 2005.
Simplicité d’emploi Un utilisateur de GnuPG ne doit pas avoir peur de « mettre la main dans le cambouis » de temps à autre et de faire appel à l’invite de commande de son système d’exploitation. Il existe bien pour GnuPG des modules supplémentaires qui offrent une interface plus conviviale (voir ci-dessus),
© Groupe Eyrolles, 2005
7
Accès libre – PGP & GPG
mais ceux-ci ne permettent pas toujours d’accéder à toutes les fonctions de GnuPG. De plus, lors des mises à jours de GnuPG, il n’est pas certain que ces interfaces soient également mises à niveau. Il n’est donc peut-être pas recommandé d’installer GnuPG chez son grand-père, sauf si on est prêt à lui rendre visite souvent pour régler des problèmes de configuration et d’utilisation. C’est pourquoi, on pourra préférer utiliser PGP de PGP Corporation qui fait tout son possible pour que ses produits fonctionnent de manière transparente du point de vue de l’utilisateur final, à la manière de n’importe quel autre logiciel commercial. C’est un avantage déterminant. Si vous aviez à mettre en place une solution cryptographique unique pour le service commercial, la comptabilité et le service marketing de votre entreprise, et à condition que la langue de l’interface soit sans importance, nous vous conseillerions sans hésitation de choisir PGP, la simplicité d’emploi étant alors un facteur pertinent.
La transparence, garantie de qualité TERMINOLOGIE Audit de sécurité Les personnes qui prennent la sécurité au sérieux, dans des contextes où des vies humaines ou d’importantes sommes d’argent dépendent de la confidentialité des informations, font appel à des spécialistes pour faire examiner leurs logiciels de sécurité et s’assurer de l’absence de problèmes. Un tel processus d’examen d’un logiciel se nomme « audit ».
On attribue la qualité de transparence à un logiciel selon que son fonctionnement interne est plus ou moins connu et accessible. Pour la plupart des utilisateurs, c’est un facteur sans importance : ce qu’ils souhaitent, c’est que leur logiciel fonctionne sans poser de problèmes. En revanche, pour les professionnels de la sécurité, la transparence est un facteur critique. En effet, celle-ci leur offre une liberté, une opportunité rares : ces professionnels, leur équipes, ou d’autres personnes mandatées, pourront vérifier le code source des programmes. Ainsi, ils s’assureront qu’ils ne contiennent pas de code malveillant ou de porte dérobée (backdoor) permettant un contrôle non souhaité pendant leur exécution, et à l’insu des utilisateurs, par des individus voués à des buts non louables. Les logiciels dont le code est ouvert peuvent être audités par de nombreux utilisateurs à travers la planète, passionnés et intéressés par les progrès qu’apportent les logiciels libres. Quel meilleur audit que celui réalisé par des centaines de bénévoles et professionnels dont les seuls buts sont de faire progresser ces outils qui permettent de protéger notre vie privée. Utiliser de tels logiciels, dont le code source est ouvert et dont les fonctionnements sont connus est un gage de sécurité et de pérennité.
8
© Groupe Eyrolles, 2005
Introduction
Sachant qu’il y a plus d’individus bienveillants que le contraire, la transparence est synonyme d’ouverture, de confiance, de sécurité. La cryptographie est un art ancien, et l’une de ses règles essentielles est que la connaissance du fonctionnement d’un bon système cryptographique n’aide pas pour autant à le casser. Les seuls systèmes de chiffrement que les professionnels de la cryptographie prennent au sérieux sont ceux dont le fonctionnement est au contraire connu. C’est le cas du système cryptographique d’OpenPGP, parfaitement audité de manière continue depuis dix ans par des personnes qui seraient ravies d’y trouver une faille. Ce serait pour eux la gloire assurée au sein de la communauté des cryptanalystes, un peu comme pour un ingénieur d’inventer un moteur hautes performances ne consommant que deux litres d’essence aux cent kilomètres. Toutefois, PGP et GnuPG ne se limitent pas au code des algorithmes utilisés par OpenPGP. Il y a autour de ces algorithmes une bonne quantité de code source. Un individu malveillant pourrait trouver dans le code source une faille permettant de passer outre les protections qu’offre le logiciel. Le code source nécessite d’être audité par des professionnels talentueux pour s’assurer de sa fiabilité. De par sa qualité de logiciel libre, le code source de GnuPG est librement accessible par tout un chacun, et vérifié par des personnes aux compétences de tous niveaux. Quant au code source de PGP, il est accessible aussi, mais exclusivement à ses clients ; ces derniers font toutefois fréquemment appel à des spécialistes très pointus pour l’auditer.
Algorithmes pris en charge Les premières versions de PGP faisaient appel à des algorithmes qui étaient soumis à des brevets à l’époque de la création de PGP. Certaines de ces méthodes de chiffrement sont maintenant dans le domaine public, mais l’une d’entre elles, IDEA, est protégée par des brevets en Europe. OpenPGP est passé à des algorithmes plus récents, mais vous trouverez des références aux anciens algorithmes dans les premières versions de PGP. Vous n’avez pas besoin de comprendre ce qu’est IDEA, mais vous devez savoir le reconnaître si vous y avez affaire un jour. GnuPG ne prend pas en charge la méthode de chiffrement IDEA parce qu’elle n’est pas entièrement libre, bien que les termes de sa licence soient très généreux : son emploi est gratuit pour une utilisation non
© Groupe Eyrolles, 2005
ATTENTION IDEA, un composant breveté L’algorithme IDEA étant soumis à un brevet, nous vous déconseillons fortement de l’utiliser. Si d’aventure vous receviez un élément chiffré avec l’algorithme IDEA, la meilleure attitude à adopter serait de demander à votre correspondant de vous renvoyer les informations chiffrées avec un autre algorithme. Cela ne devrait poser aucun problème à votre émetteur et vous évitera par la même d’implémenter un algorithme breveté dont l’utilisation va à l’encontre de la transparence et de l’ouverture des logiciels libres.
9
Accès libre – PGP & GPG
AVANCÉ Installation d’IDEA pour GnuPG Si vous choisissez d’employer GnuPG et n’avez d’autre choix que d’utiliser l’algorithme IDEA, installez le module correspondant. Son code source est téléchargeable depuis l’adresse : B ftp://ftp.gnupg.dk/pub/contrib-dk/idea.c.gz
et le fichier DLL correspondant, compilé pour Windows, depuis ftp:// ftp.gnupg.dk/pub/contrib-dk/ideadll.zip. Décompressez le fichier et placezle fichier dans le répertoire de l’application GnuPG (sous Unix, Linux, etc., vous devrez au préalable compiler le source). Ajoutez ensuite la ligne load-extension idea au fichier gnupg.conf pour disposer d’IDEA sous GnuPG. Retenez bien, toutefois, que ce module n’a rien d’officiel et que ses concepteurs n’offrent aucune garantie quant à son fonctionnement.
commerciale, et il suffit d’avoir acheté une seule fois un produit incluant IDEA pour disposer d’une licence à vie pour ce produit. Dans le cas contraire, vous pouvez acquérir en ligne une licence IDEA pour la modique somme de 15 euros. Aussi généreux qu’ils soient, ces termes de licence restent incompatibles avec celle de GnuPG. Il est possible de modifier GnuPG pour le rendre compatible avec IDEA, mais l’équipe de développement de GnuPG ne le fera pas pour vous. PGP Corporation a quant à elle payé le détenteur du brevet (la société suisse Mediacrypt). En conséquence, lorsque vous achetez PGP, vous disposez automatiquement d’une licence IDEA. Heureusement, OpenPGP ne nécessite plus d’utiliser IDEA, mais pour certaines entreprises, cette licence est néanmoins nécessaire. Si vous trouvez un fichier chiffré vieux de dix ans que vous souhaitez ouvrir, il est possible que vous ayez besoin d’IDEA. Sinon, il est superflu.
OpenPGP et la loi OpenPGP utilise certains des algorithmes de chiffrement à clé publique les plus forts disponibles actuellement. « Fort » signifie ici que les forces de l’ordre ne pourront accéder à un fichier correctement protégé avec GnuPG, ce qui n’est pas du goût de la plupart des autorités nationales. Certains pays autorisent leurs citoyens à utiliser des algorithmes de chiffrement forts, mais d’une manière limitée seulement, et qui puissent être cassés. D’autres exigent que toutes les clés de chiffrement soient déposées auprès d’une « autorité de séquestre ».
10
© Groupe Eyrolles, 2005
Introduction
Ainsi, si un jour vous deveniez un dangereux criminel, il suffirait aux forces de l’ordre de demander votre clé à cette autorité pour être en mesure de déchiffrer les messages qui vous incriminent. C’est un peu comme demander à un cambrioleur de fournir volontairement ses empreintes digitales avant d’effectuer un cambriolage, et tout aussi efficace. Pour compliquer encore les choses, les lois changent régulièrement. Si vous avez des doutes concernant la législation dans ce domaine concernant votre propre pays, renseignez-vous auprès d’un spécialiste local de la sécurité ou d’un avocat. Une recherche Google portant sur « lois cryptographie » donnera plusieurs résultats intéressants ; vous pouvez aussi vous rendre sur le site http://rechten.uvt.nl/koops/cryptolaw, en anglais mais très complet. D’autres implications légales d’OpenPGP seront traitées au chapitre 11. CONTEXTE La loi en France Si les États-Unis appliquaient des restrictions à la diffusion de la cryptographie, la France n’était pas en reste : à l’époque du procès de PGP, c’était l’un des pays au monde les plus restrictifs en la matière, puisque le chiffrement y était tout simplement interdit sans autorisation préalable des autorités. Depuis, il a été libéralisé et il peut être employé sans risque de poursuites judiciaires. Toutefois, les autorités françaises restent extrêmement méfiantes vis-à-vis des procédés cryptographiques, comme vous le découvrirez au chapitre 11.
© Groupe Eyrolles, 2005
11
chapitre
1 Alice
Bernard Carole
Ève Mallory
© Groupe Eyrolles, 2005
À quoi servent la cryptographie et OpenPGP ?
SOMMAIRE
Les techniques de chiffrement modernes, reposant sur des formules mathématiques extrêmement complexes, offrent à chacun le moyen de protéger la confidentialité de ses données. Pour peu qu’elles soient bien expliquées, elles sont simples à comprendre et à mettre en œuvre !
B À quoi sert OpenPGP ? B Notions fondamentales B La cryptographie OpenPGP B Algorithmes de chiffrement B Chiffrement à clé publique B Signature numérique B Chiffrement asymétrique et signature combinés
B Phrases secrètes et clés privées MOTS-CLÉS
B Alice, Bernard, Bob, Carole, Ève B algorithme B clé B empreinte B hachage B Mallory B non-répudiation B signature
© Groupe Eyrolles, 2005
Accès libre – PGP & GPG
Il n’est pas nécessaire de tout savoir sur la cryptographie moderne pour employer OpenPGP. Toutefois, il faut en comprendre les bases et connaître ses possibilités et ses limites.
Que garantit la norme OpenPGP ? OpenPGP combine empreintes cryptographiques, chiffrement à clé publique et signature numérique pour offrir un excellent niveau de confidentialité, d’intégrité, de non-répudiation et d’authenticité. Ces quatre termes ont des sens spécifiques que nous expliquerons dans ce chapitre. En tant qu’utilisateur final, il est important pour vous de comprendre les principes du fonctionnement d’OpenPGP afin de savoir également quelles sont ses limites. OpenPGP ne peut faire que six choses, dont aucune n’est possible à partir de l’infrastructure actuelle du courrier électronique alors qu’elles peuvent s’avérer extrêmement utiles dans de nombreuses circonstances. Votre manière d’utiliser OpenPGP dépend de l’effet que vous souhaitez obtenir (voir tableau 1-1). Tableau 1–1 Principales utilisations d’OpenPGP Je souhaite...
Je dois...
Je souhaite que toute personne lisant ce message sache que j’en suis l’expéditeur, sans contestation possible de ma part.
Signer numériquement le message avec votre clé privée.
Je voudrais vérifier l’identité de mon correspondant pour m’assurer que l’expéditeur du message est bien qui il prétend être.
Vérifier la signature avec la clé publique de l’expéditeur.
Je voudrais envoyer un message que seul mon correspondant pourra lire.
Chiffrer le message avec la clé publique du destinataire.
Je voudrais déchiffrer un message que j’ai reçu.
Déchiffrer le message avec votre clé privée.
Je souhaite envoyer un message que seul le destinataire pourra lire, et qu’il puisse vérifier que j’en suis l’expéditeur.
Chiffrer le message avec la clé publique du destinataire et signer numériquement le message avec votre clé privée.
Je souhaite déchiffrer et vérifier un message comprenant une signature numérique.
Déchiffrer le message avec votre clé privée et vérifier la signature avec la clé publique de l’expéditeur.
14
© Groupe Eyrolles, 2005
1 – À quoi servent la cryptographie et OpenPGP ?
En cas de doute sur les fonctions d’OpenPGP, consultez cette liste ! S’il existe de nombreuses applications pour la cryptographie, toutes les utilisations courantes d’OpenPGP y sont couvertes. Voyons maintenant comment OpenPGP permet d’accomplir ces tâches.
Comprendre les notions fondamentales Nous avons déjà fait un premier point de terminologie au début de l’introduction, mais en matière de cryptographie, les termes employés sont nombreux et font parfois l’objet de discussions houleuses. Inutile d’entrer dans ce type de débat ici ; les sections qui suivent préciseront simplement le sens des termes employés dans le reste de ce livre.
Chiffrer un texte pour le protéger des regards indiscrets La cryptographie permet de protéger un message, autrement dit une information : un message électronique, les bilans comptables de votre entreprise, la photo de votre chien ou n’importe quoi d’autre. ILLUSTRATION Une information très sensible Voici un texte en clair que certaines personnes auraient été ravies d’intercepter voici quelques décennies : Débarquement Normandie 6 juin
Une fois transformé en texte chiffré à l’aide d’OpenPGP, l’aspect du message est légèrement différent, puisqu’il ressemble à ceci : -----BEGIN PGP MESSAGE----Version: GnuPG v1.4.4 (MingW32) –
GPGshell v3.51
hQIOA+bUnHtGxPsZEAf+OjdKK86UAgoUF3xS4nSIqA+VpCDh33SHorWwZi0tFk0w Jt2XPMt2JMeslQme+/q7k7r5a1LaUuJla88NVYjF6ttGOFq9lwG3/Y5Cqi92De0k S/OJddtn4JcyUTtgisYjm6+4KpCQg3aCiWP5ulzMGY41dQ6qCoEN+E4LkIm5NLFI ...
À l’évidence, le sens initial du message n’est plus vraiment apparent. Un lecteur verra aisément qu’il s’agit d’un message OpenPGP chiffré avec le logiciel GnuPG par l’intermédiaire de l’interface GPGshell , ce qui indique que le chiffrement a probablement été réalisé sous Windows.
© Groupe Eyrolles, 2005
Ces informations en clair peuvent certes être utiles à des individus malintentionnés pour tenter d’accéder à votre ordinateur (ce qui nécessite des compétences peu en rapport avec la cryptographie), mais elles ne les aident en revanche en rien pour le déchiffrement du message lui-même.
15
Accès libre – PGP & GPG
Tant qu’elle n’a pas été chiffrée, cette information est dite en clair, ce qui signifie qu’elle peut être vue et lue par n’importe qui disposant du logiciel adéquat, sans qu’aucune autre opération particulière ne soit nécessaire pour l’afficher. Le texte chiffré, comme son nom l’indique, est un texte en clair qui a été chiffré. Un tel texte est illisible : si vous examiniez une feuille de calcul chiffrée dans votre tableur, vous ne verriez qu’une suite de caractères sans queue ni tête.
Chiffre « Chiffre » est le terme technique employé pour décrire une méthode de dissimulation du contenu d’un message. En langage courant, on parlerait de « code secret ».
EXEMPLE Chiffrement par transposition et par substitution Certains chefs militaires de l’antiquité, par exemple, rédigeaient les messages sur une bande de papier soigneusement enroulée autour d’un bâton ; une fois la bande déroulée, les lettres du message apparaissent dans le désordre, rendant ce dernier incompréhensible. Seule une personne sachant comment enrouler la bande de papier et disposant d’un bâton de même diamètre pouvait décoder le message. Cette méthode de chiffrement, dite par transposition, était tout à fait légitime à une époque où la majeure partie de la population était illettrée, mais aujourd’hui, n’importe quel collégien serait capable de déchiffrer un tel message.
Une autre méthode de chiffrement consiste à dissimuler le contenu d’un message en remplaçant d’une manière ou d’une autre chacun de ses caractères : c’est un chiffrement par substitution. Les enfants essayent tous la méthode de chiffrement consistant à remplacer les lettres par des chiffres (A=1, B=2, C=3…), le message chiffré apparaissant alors sous la forme d’une suite de nombres et non de lettres. Encore une fois, c’est une méthode qui n’offre aucune garantie de sécurité. Pour casser ce type de code, il suffira à un cryptanalyste de compter la fréquence de chacun des nombres d’un texte chiffré de taille moyenne, et de la comparer à la fréquence des lettres d’un texte moyen en clair.
L’empreinte d’un message, version numérique de l’empreinte digitale Une empreinte (on dit aussi « condensé » ou « hachage », hash en anglais) est une série de chiffres et de lettres calculés depuis un message à l’aide d’un algorithme. Il existe toutes sortes d’algorithmes permettant de créer de telles empreintes. Les empreintes sont très utiles dans le contexte d’OpenPGP. En effet, lorsqu’on altère le message initial sur lequel
16
© Groupe Eyrolles, 2005
fd3b9c256d1f310fe85673f5ad5bec84e12bbcc2
Changeons une seule lettre dans ce message de sorte qu’il indique « Débarquement Normandie 7 juin ». Son empreinte devient complètement différente :
Incassable Il n’est pas possible de retrouver le texte en clair depuis son empreinte. Et il est très difficile de créer un fichier produisant une empreinte prédéfinie. Le moyen le plus rapide d’y parvenir serait de générer tous les fichiers possibles jusqu’à obtenir l’empreinte voulue.
bef241f36d508e50538647702c0529ee38a0945f
Ainsi l’empreinte permet de savoir si oui ou non un message a été intercepté et modifié, aussi minime soit la modification. Même si la différence entre les deux messages en clair n’est pas nécessairement bien visible, la moindre modification de celui-ci engendre des empreintes entièrement différentes, ce qui permet de se rendre compte immédiatement de l’altération du message. CULTURE Empreintes et sommes de contrôle Vous entendrez également parler de sommes de contrôle (checksum). Il s’agit d’algorithmes de vérification similaires à ceux de génération d’empreintes, mais qui sont beaucoup moins fiables. Les sommes de contrôle sont plus simples à produire (et à falsifier !) que les empreintes, mais s’avèrent néanmoins utiles pour des vérifications d’intégrité moins critiques.
Cryptanalyse.. ou attaque Les tentatives de déchiffrement d’un texte chiffré sans disposer de sa clé font partie du domaine de la cryptanalyse (on parle aussi d’attaque). Les méthodes de chiffrement avancées transposent d’une manière particulière le texte en clair ou le transforment radicalement de telle manière qu’il ne puisse être découvert à l’aide de méthodes telles que le comptage du nombre d’occurrences des caractères. En général, les méthodes de chiffrement calculent le texte chiffré à partir du texte en clair et d’une clé. Le type de clé employé dépend de la méthode utilisée pour combiner le texte en clair avec la clé. Réciproquement, on retouve le texte en clair à partir du texte chiffré et d’une clé.
© Groupe Eyrolles, 2005
17
1 – À quoi servent la cryptographie et OpenPGP ?
est basée une empreinte, celle-ci est modifiée du tout au tout. Ainsi l’empreinte du message « Débarquement Normandie 6 juin », par exemple, est la suivante (en utilisant l’algorithme SHA-1) :
Accès libre – PGP & GPG
Les objectifs de la cryptographie OpenPGP Le système cryptographique OpenPGP garantit dans un échange numérique donné trois caractéristiques fondamentales : la confidentialité du message, son intégrité et sa non-répudiation. Ces trois caractéristiques combinées garantissent l’authenticité.
La confidentialité : protéger des messages sensibles La confidentialité signifie que le message reste privé. Le texte en clair ne peut être lu que par la personne qui dispose des clés, des algorithmes et des outils nécessaires. Dans la plupart des cas, il n’est pas possible d’empêcher que le texte chiffré soit vu par des tiers. Les messages transférés par Internet, notamment, peuvent être interceptés par de nombreuses personnes, de la même manière qu’un voisin indélicat peut ouvrir au-dessus de sa bouilloire une lettre que le facteur aurait laissé pour vous. Cependant, une fois chiffré, le texte d’un message se présente sous la forme d’une suite de caractères sans queue ni tête pour tous ceux qui ne disposent pas de la clé pour le déchiffrer. La confidentialité est généralement la première chose qui vient à l’esprit lorsqu’on parle de « code secret ». « BONS » ET « MÉCHANTS » En cryptologie, pour expliquer un protocole ou une attaque, des prénoms sont souvent employés à la place des lettres pour représenter les différentes personnes concernées et faciliter la compréhension. Ainsi, Alice et Bob (ou parfois Bernard, en français) sont les « bons » qui cherchent à communiquer entre eux. Il arrive que Carol (ou Carole) se joigne à eux. Ève est une espionne qui écoute les échanges entre Alice et Bob, tandis que Mallory et Oscar sont des méchants qui cherchent à casser le code.
La garantie d’intégrité : le message n’est pas falsifié L’intégrité se réfère au fait qu’un message reste inchangé. L’utilisation d’OpenPGP permet de s’assurer qu’un message n’a pas été altéré pendant sa transmission. Dans beaucoup de systèmes informatiques, notamment ceux des entreprises, l’administrateur système a le pouvoir non seulement d’afficher le contenu des documents, mais aussi de le modifier. Bien entendu, les admi-
18
© Groupe Eyrolles, 2005
1 – À quoi servent la cryptographie et OpenPGP ?
nistrateurs système qui se permettraient de modifier le courrier électronique de leurs utilisateurs ne courent pas les rues, notamment parce qu’ils perdraient rapidement leur emploi. Il reste que cette opération est à la portée de pratiquement n’importe qui. La fonction d’intégrité d’OpenPGP évite cela en vous avertissant lorsqu’un message a été altéré.
La non-répudiation : le signataire ne peut nier être l’expéditeur du message La non-répudiation signifie qu’une personne ne peut démentir avoir signé un message donné, ce qui est d’une importance particulière dans le contexte du courrier électronique. Supposons par exemple que votre patron reçoive un jour un message électronique dont vous semblez être l’expéditeur et qui contient votre démission ainsi que la menace de publier des photos compromettantes s’il n’acceptait pas de vous verser des indemnités de départ particulièrement généreuses. Il est probable que vous dénonciez ce message comme étant un faux ; autrement dit, vous répudieriez le message. Si le message n’a pas été signé avec une application OpenPGP, il sera très difficile de prouver qu’il provient effectivement de vous. Dans le cas contraire, vous ne pouvez le répudier. La non-répudiation, à elle seule, est une raison suffisante pour utiliser OpenPGP. Si vos destinataires habituels savent que vous signez tous vos messages avec OpenPGP, il auront immédiatement des soupçons s’il reçoivent un message prétendument de vous mais non signé (surtout s’il ne vous ressemble pas du point de vue de son contenu). Il est toujours possible pour quelqu’un de voler votre clé privée, mais nous verrons comment l’en empêcher dans le chapitre 2 et dans la suite de ce livre.
ATTENTION Alcool = danger ! Ne signez pas numériquement un message électronique lorsque vous êtes ivre ou dans un état anormal. Dans un tel état, abstenezvous d’envoyer quelque message électronique que ce soit.
Les situations décrites ci-dessus peuvent paraître inhabituelles, mais vous aurez plusieurs fois à vérifier l’identité véritable des auteurs de messages « falsifiés », pour trouver finalement peu de messages véritablement faux.
L’authenticité : on lit bien ce qui a été envoyé Lorsque vous recevez un message électronique qui a été chiffré et signé avec OpenPGP, vous savez que personne d’autre que vous n’a pu accéder à son contenu. Vous savez que son contenu n’a pas été modifié. Vous
© Groupe Eyrolles, 2005
19
Accès libre – PGP & GPG
savez également que le message provient d’une personne qui a le droit d’utiliser le nom employé pour signer le message. En d’autres termes, le message est authentique. Il n’a été ni vu ni modifié par des personnes malveillantes, et vous savez à coup sûr qui l’a signé.
Les rouages : les algorithmes de chiffrement Un algorithme de chiffrement est une méthode qui transforme un texte en clair en texte chiffré et inversement. Il existe des algorithmes très simples (du type A=1) et d’autres extrêmement complexes. Les algorithmes résistant mieux à la cryptanalyse sont dits plus forts ou meilleurs. Différents algorithmes utilisent différents types de clés. À RETENIR Algorithmes forts vs grandes clés Mieux vaut miser sur un algorithme fort que sur la taille de la clé. Certains algorithmes utilisant une clé de 80 bits sont plus sûrs que d’autres faisant appel à une clé de 160 bits, simplement parce qu’ils sont plus forts.
Les spécialistes en cryptanalyse n’essaient même pas de deviner la clé : ils préfèrent s’attaquer à l’algorithme. Si ce dernier utilise mal votre clé de 128 bits, votre message pourra être déchiffré sans même utiliser la clé, ou une grande partie de la clé sera devinée à partir du message chiffré. Si vous utilisez par exemple une clé de 40 bits mais qu’il est possible de deviner 30 de ces bits du fait d’une faiblesse quelconque de l’algorithme, il devient alors beaucoup plus facile de deviner les 10 bits restants de la clé. En effet, pour 10 bits, le nombre de combinaisons possibles n’est que de 1 024, et un ordinateur moderne pourra les essayer toutes en un instant. Il faut donc se rappeler que la sécurité d’une transaction dépend beaucoup plus de l’algorithme utilisé que du nombre de bits de la clé. DÉFINITION Bits, longueur de clé et résistance au déchiffrement Une caractéristique commune à presque toutes les méthodes de chiffrement par ordinateur est le bit. Ce terme est souvent employé à mauvais escient. Ainsi, on entendra « Ce site web utilise un chiffrement à 128 bits, donc il est sûr. » ou « Je n’utilise qu’un chiffrement à 40 bits, qui n’est pas vraiment sûr. » Le nombre de bits n’est que le nombre de uns et de zéros de la clé. Une clé comportant 40 uns et zéros est une clé de 40 bits. Dans la mesure où une clé de 40 bits peut prendre plusieurs milliards de valeurs possibles, il faudrait beaucoup de temps pour essayer toutes les clés possibles. Pour une clé de 128 bits, le nombre de combinaisons est d’environ 340 sextillions (soit 340 × 1034, ou encore 340 suivi de 34 zéros), ce qui la rend encore plus difficile à deviner. Avec l’augmentation de la puissance des ordinateurs, le temps nécessaire pour deviner une clé diminue, mais il reste supérieur à la durée d’une vie humaine.
20
© Groupe Eyrolles, 2005
1 – À quoi servent la cryptographie et OpenPGP ?
Les algorithmes ont chacun des caractéristiques qui leur sont propres, et qui ne concernent souvent en rien les utilisateurs d’OpenPGP. Il y a toutefois une différence essentielle à connaître : celle entre algorithmes symétriques et asymétriques.
Algorithmes symétriques : l’efficacité pour protéger en dehors de tout échange Les algorithmes symétriques utilisent la même clé pour le chiffrement et le déchiffrement. La méthode de chiffrement enfantine décrite plus haut, où chaque lettre est remplacée par un nombre de la clé, est un exemple d’algorithme symétrique très simple. Lorsqu’on dispose de cette clé, il est possible de chiffrer et de déchiffrer les messages à volonté. La clé peut également être aisément modifiée. Vous et votre correspondant pourriez par exemple décider que A=9, B=&, etc., puis créer des textes chiffrés d’aspect très différent depuis un même texte en clair. Une personne qui aurait analysé vos anciens messages pour en déduire la clé serait obligée de recommencer cette analyse pour vos messages utilisant une nouvelle clé. En général, lorsqu’on pense « code secret », on pense au chiffrement symétrique. Le problème des algorithmes symétriques est qu’ils nécessitent de disposer d’un moyen sûr d’échange de la clé entre les correspondants. Lorsqu’on dispose d’un moyen d’échange sûr, le chiffrement n’a plus vraiment de raison d’être ! En revanche, il est utile pour protéger des données qui ne sont pas destinées à être échangées, comme les fichiers d’un disque dur.
B.A.-BA Internet n’est pas sûr ! Malgré les apparences, Internet n’est pas un moyen d’échange sûr : il est « sur écoute » en permanence, certaines personnes enregistrant jusqu’à la moindre donnée transitant sur leur réseau au cas où elle s’avérerait intéressante par la suite. L’auteur connait un gestionnaire de réseau qui dispose de toutes les données, sans exception, qui ont transité sur son réseau au cours des cinq dernières années.
La magie des algorithmes asymétriques Les algorithmes symétriques sont généralement beaucoup plus faciles à casser que les algorithmes asymétriques, qui utilisent des clés différentes pour le chiffrement et le déchiffrement. Peu importe quelle clé est employée pour quoi : si la clé A est employée pour chiffrer un message, il ne peut être déchiffré qu’avec la clé B ; si la clé B est employée pour chiffrer un message, il ne peut être déchiffré qu’avec la clé A. Cette opération peut sembler magique pour quelqu’un qui ne connaîtrait que les méthodes de chiffrement classiques par substitution, mais elle fonctionne. La démonstration mathématique du fonctionnement de
© Groupe Eyrolles, 2005
21
Accès libre – PGP & GPG
ANALOGIE Le billet coupé en deux Vous avez sans doute déjà vu des films où une pièce ou un billet est coupé en deux de telle manière que par la suite, deux personnes qui ne se sont jamais rencontrées sachent qu’elles parlent à la bonne personne. C’est de cette manière que fonctionne le chiffrement asymétrique : il faut disposer des deux moitiés de la clé pour pouvoir accéder au contenu du message. Le chiffrement du message s’effectue avec une clé spécifique et le déchiffrement avec une autre clé spécifique, différente de la précédente.
cette méthode de chiffrement n’est pas des plus simples, et les calculs eux-mêmes sont pratiquement impossibles à réaliser à la main, du fait de l’utilisation de très grands nombres premiers. Lors de l’utilisation d’algorithmes asymétriques, deux personnes peuvent être munies de clés différentes mais complémentaires et les employer pour protéger leurs communications. Le fait de disposer de l’une des clés n’aide en rien l’attaquant à deviner l’autre. Le chiffrement asymétrique n’a commencé à se répandre qu’à partir du moment où les ordinateurs ont pu se charger d’effectuer rapidement les calculs longs et complexes qu’implique cette méthode de chiffrement. OpenPGP est basé sur le chiffrement asymétrique. NE VOUS CASSEZ PAS LA TÊTE ! Nombreux sont ceux pour qui le concept de chiffrement asymétrique est difficile à accepter et qui croient que ce type de chiffrement ne peut exister, qu’il n’est pas réellement asymétrique, ou pire, qu’ils voient très bien de quoi il s’agit. Vous trouverez de nombreux documents sur le sujet en effectuant une recherche Google portant sur « chiffrement asymétrique ». Pour comprendre les mécanismes mathématiques du chiffrement asymétrique, le livre le plus facile d’accès sur le sujet est sans doute Cryptographie appliquée, de Bruce Schneier, aux éditions Vuibert. Le plus simple est encore d’accepter que les très grands nombres ont un comportement qui n’a rien d’intuitif, et que c’est ce qui permet au chiffrement asymétrique de fonctionner.
Chiffrement à clé publique Le fait de disposer de deux clés complémentaires, A et B, offre toutes sortes de possibilités intéressantes. Supposons par exemple que vous rendiez publique la clé A : vous la publiez sur votre page web, vous la distribuez au cours de soirées ou encore vous la mettez à disposition de tous sur un serveur de clés publiques. Pour autant, la sécurité de vos messages ne sera pas compromise. En effet, cette clé A ne peut être employée que pour : • chiffrer des messages ne pouvant être déchiffrés qu’avec la clé complémentaire B, que vous n’avez communiquée à personne ; • et déchiffrer les messages chiffrés avec cette clé B, dont par conséquent vous seul pouvez être l’auteur.
22
© Groupe Eyrolles, 2005
1 – À quoi servent la cryptographie et OpenPGP ?
C’est là le principe de fonctionnement du chiffrement à clé publique. La clé que vous publiez est nommée clé publique tandis que la clé que vous ne communiquez à personne est la clé privée (ou parfois clé secrète). Les deux clés complémentaires, A et B, sont nommées paire de clés. Tout utilisateur d’OpenPGP dispose de sa propre paire de clés, la vocation de la clé publique étant d’être largement diffusée tandis la clé privée doit être aussi bien protégée que possible. OpenPGP dispose de méthodes permettant de diffuser la clé publique parce que les tatouages ne sont ni nécessaires ni désirables en cryptographie. ATTENTION Protégez vos phrases secrètes OpenPGP fait appel à des phrases secrètes (nous y reviendrons dans ce chapitre) afin d’éviter que subtiliser un fichier suffise pour accéder à votre clé privée. Toutefois, quiconque dispose de votre clé privée et de votre phrase secrète peut usurper votre identité. Par conséquent, protégez-les bien tous deux ! Tout au long du livre, vous verrez comment faire en sorte que votre clé privée reste privée et que votre clé publique soit rendue aussi publique que possible.
Une signature pour du contenu numérique Lorsque vous signez numériquement un message non chiffré, il reste lisible par tous. La signature numérique sert uniquement à indiquer au destinataire que l’expéditeur est en possession de la clé privée qui correspond à la clé publique de cette personne.
TECHNIQUE Les signatures numériques utilisent à la fois des empreintes (MD5, SHA) et un système de cryptographie à clé publique.
Elle garantit la non-répudiation et l’intégrité du message, mais pas sa confidentialité. Si vous voulez que tout le monde sache que vous êtes l’auteur d’un message, utilisez une signature numérique.
Étapes techniques d’une signature numérique Comme nous l’avons vu précédemment (voir page 16), lorsqu’un message est altéré, son empreinte est radicalement modifiée, ce qui représente un moyen simple de vérifier son intégrité. Vous ne pouvez envoyer une empreinte en même temps que le message électronique qu’elle sert à vérifier : en effet, toute personne capable de modifier le message électronique pourrait modifier en même temps l’empreinte pour la faire corres-
© Groupe Eyrolles, 2005
23
Accès libre – PGP & GPG
pondre au message modifié. Il faut donc empêcher toute altération de l’empreinte. L’une des solutions consiste à utiliser un chiffrement à clé publique pour signer numériquement le message. Voici en résumé les opérations effectuées par OpenPGP lorsque vous lui demandez de signer un message : 1 Il génère l’empreinte du message. 2 Il chiffre l’empreinte avec votre clé privée (votre signature numé-
rique). 3 Il joint l’empreinte chiffrée au message pour créer un message signé. 4 Il envoie le message avec la pièce jointe.
Le destinataire recevra le message en clair, plus une petite pièce jointe contenant la signature chiffrée. Si le destinataire dispose d’outils OpenPGP, il peut vérifier la signature c’est-à-dire déchiffrer l’empreinte du message avec votre clé publique. Dans la mesure où vous êtes le seul à disposer de votre clé privée, vous êtes également le seul à pouvoir avoir créé cette empreinte. Le destinataire peut ensuite calculer à son tour l’empreinte du message qu’il a reçu. Si les deux empreintes sont identiques, le destinataire est certain que ce qu’il lit est ce que vous lui avez envoyé.
Et si le message a été falsifié ? Si en revanche le message a été altéré en cours de route, la vérification de l’empreinte fera apparaître une erreur. Il est possible que votre clé publique ne parvienne pas à déchiffrer l’empreinte, ce qui signifie que le message aurait été chiffré avec la clé privée de quelqu’un d’autre. Ou peut-être votre clé publique déchiffre-t-elle bien l’empreinte, mais celleci ne correspond-elle pas à l’empreinte du message électronique que vous avez reçu, ce qui indique que le message a été altéré.
Chiffrer et signer en même temps : la force d’OpenPGP Nous avons vu que les empreintes permettaient de s’assurer qu’un document n’avait pas été altéré.
24
© Groupe Eyrolles, 2005
1 – À quoi servent la cryptographie et OpenPGP ?
Nous avons également vu que les systèmes de chiffrement asymétrique chiffrent un message afin qu’il ne soit déchiffrable que par une seule personne, ou envoient des messages ne pouvant provenir que d’une seule personne. Les signatures numériques combinent ces deux procédés, mais OpenPGP va encore plus loin dans ce domaine. En combinant la clé privée de l’expéditeur et la clé publique du destinataire, on s’assure qu’un message OpenPGP ne puisse être lu que par le destinataire prévu et ne puisse avoir été expédié que par une personne donnée, comme le montre la figure 1-1. Paire de clés d’Alice
Message chiffré pour Bernard et signé par Alice
Paire de clés de Bernard
Clé publique d’Alice
Clé publique de Bernard
Clé publique de Bernard
Clé privée d’Alice
Clé privée d’Alice
Clé privée de Bernard
Alice
Bernard
Figure 1–1 Clés OpenPGP et chiffrement d’un message
Comme le montre la figure 1-1, Alice et Bernard disposent chacun d’une paire de clés : une clé publique et une clé privée. Ces deux personnes n’ont jamais communiqué l’une avec l’autre, mais leurs clés publiques sont disponibles sur Internet. Chacun a gardé secrète sa clé privée. Lorsqu’Alice veut envoyer un message à Bernard, elle le signe avec sa clé privée et le chiffre avec la clé publique de Bernard. Le message ne peut alors être déchiffré qu’à l’aide de la clé privée de Bernard, tandis que la signature peut être vérifiée par toute personne disposant de la clé publique d’Alice. En utilisant la clé publique de la première personne et la clé privée de la seconde, on s’assure que toute personne voulant lire le message et vérifier son authenticité doive disposer à la fois de la clé publique d’Alice et de la clé privée de Bernard. La clé publique d’Alice n’est pas difficile à trouver, mais la clé privée de Bernard est en principe bien protégée. Et la seule personne à disposer des deux clés à la fois est Bernard.
À RETENIR Particularités du chiffrement asymétrique Une fois le message envoyé, si l’émetteur n’a chiffré qu’avec la clé publique de l’autre, au lieu de chiffrer aussi avec la sienne, même la personne qui l’a chiffré ne peut plus le déchiffrer ! Mais les outils proposent une option permettant de toujours chiffer par défaut avec sa prope clé.
C’est cette approche simple d’OpenPGP qui a sauvé la vie d’opposants et de membres d’ONG dans des pays soumis à un régime totalitaire ou en guerre civile.
© Groupe Eyrolles, 2005
25
Accès libre – PGP & GPG
Phrases secrètes et clés privées Les clés privées d’OpenPGP (ainsi que celles de nombreux autres programmes, notamment Secure Shell) sont composées de deux éléments : un fichier sur votre disque dur et une phrase secrète. Le fichier de votre disque dur contient votre clé privée, brouillée au point d’être inutilisable. La phrase secrète (qu’on nomme parfois phrase de passe ou passphrase) n’est rien d’autre qu’un mot de passe particulièrement long et contenant des espaces. À chaque fois que vous souhaitez employer votre clé privée, OpenPGP vous demande votre phrase secrète. Cette phrase secrète sert ensuite à reconstituer la clé privée qui se trouve sur votre disque. Si vous entrez une phrase secrète erronée, la clé privée qui en résulte l’est aussi et ne fonctionne pas. En conséquence, un fichier de clé privée stocké sur un ordinateur portable volé ne pourra être utilisé par le voleur, sauf bien sûr si la phrase secrète est stockée dans un fichier en clair quelque part. Votre mémoire est le seul endroit sûr pour le stockage de votre phrase secrète.
Qu’est-ce qu’une bonne phrase secrète Les ordinateurs actuels sont suffisamment puissants pour pouvoir retrouver un mot de passe court simplement en essayant toutes les combinaisons de caractères possibles. Une telle manière de procéder se nomme attaque par force brute. Vous pouvez utiliser une phrase secrète simple et courte, mais votre clé privée sera alors mal protégée. Votre phrase secrète doit être longue de plusieurs mots, facile à mémoriser pour vous et aussi difficile à deviner que possible pour des tiers. Utilisez dans la mesure du possible des caractères spéciaux tels que #, !, ~, ainsi que les caractères diacritiques du français (é, œ, Ç…) ou d’autres langues. Utilisez les mots techniques de votre profession. Remplacez des lettres par des chiffres. Combinez majuscules et minuscules. Évitez en revanche d’utiliser des slogans ou des répliques célèbres. Si la phrase « C’est cela, oui » est facile à retenir, elle est également trop facile à deviner et beaucoup trop courte. Vous pourriez en revanche combiner les recommandations ci-dessus pour créer une phrase secrète. À partir de « C’est cela, oui », vous pourriez par exemple obtenir « C’est ç’la, oui… est une phrase que Thierry Lhermitte répète sans cesse dans Le Père Noël est une ordure (mais maintenant que cette phrase a été publiée, il n’est pas conseillé de l’utiliser !). Certains spécialistes recommandent d’utiliser quelques phrases tirées
26
© Groupe Eyrolles, 2005
1 – À quoi servent la cryptographie et OpenPGP ?
d’un livre obscur. Utilisez vos connaissances en langues étrangères et remplacez l’un ou l’autre mot de la phrase par leur équivalent anglais, espagnol ou navajo. Vos cours de langues rares, qui ne vous avaient jamais servi jusqu’à présent, pourraient s’avérer très utiles dans ce contexte en vous fournissant des phrases secrètes extrêmement difficiles à deviner ou à casser par une attaque par force brute. Une fois votre phrase secrète choisie, insérez-y des caractères spéciaux et appliquez-y des substitutions. Plus votre phrase est longue et complexe, plus elle est sûre. Votre phrase secrète finale doit être incompréhensible pour quiconque excepté vous-même.
Élémentaire prudence Pourquoi tant de prudence dans le choix d’une phrase secrète ? Parce qu’en matière de cryptographie à clé publique, toute personne disposant de votre paire de clés peut se faire passer pour vous. Une personne volant votre ordinateur portable et connaissant OpenPGP peut usurper votre identité électronique pour peu qu’elle accède à votre clé OpenPGP complète. Celle-ci se trouve sous forme de fichier sur votre disque dur, protégé par une phrase secrète. Puisqu’il n’est pas possible de garantir que votre ordinateur ne sera jamais volé, la phrase secrète représente l’ultime ligne de défense de votre clé privée. Si vous utilisez OpenPGP pour protéger des documents personnels, il peut être nécessaire d’enregistrer votre phrase secrète quelque part afin qu’un membre de votre famille puisse accéder à ces documents au cas où vous disparaîtriez brusquement. C’est une décision personnelle à prendre. Vous pourriez par exemple louer un coffre-fort dans une banque ou encore faire appel à un notaire ; deux solutions qui garantissent un niveau de sécurité élevé, même s’il n’est pas absolu. Vous pouvez également créer des paires de clés OpenPGP communes à plusieurs membres de votre famille pour protéger certains documents familiaux, notamment financiers. L’utilisation d’une même clé privée pour plusieurs personnes n’est d’ailleurs pas rare dans le contexte d’une entreprise, comme nous verrons au chapitre 11 ; les documents sont alors signés par une équipe et non un individu.
ATTENTION Perte de sa clé secrète Une fois que vous commencez à utiliser couramment OpenPGP pour protéger vos informations secrètes, la perte de votre clé secrète s’apparente à la perte de votre portefeuille, de vos cartes bancaires, de votre carte d’identité et de votre passeport. Pire encore : en France, en Belgique et dans divers autres pays européens, la signature numérique a la même valeur légale qu’une signature sur papier. Vous pourriez donc apprendre un jour que vous vous êtes livré à du trafic d’armes sans le savoir. La phrase secrète est la clé de votre tranquillité d’esprit : choisissez-la bien.
Maintenant que vous connaissez les bases cryptographiques, nous allons nous intéresser au fonctionnement d’OpenPGP lui-même.
© Groupe Eyrolles, 2005
27
chapitre
2 OpenPGP clé publique, clé privée paire de clés signature réseau de confiance
© Groupe Eyrolles, 2005
Les concepts de base de la norme OpenPGP
SOMMAIRE
B OpenPGP : quelle « sécurité »
Qu’apporte OpenPGP, en termes de sécurité, et en particulier, qu'est-ce que le réseau de confiance qui en est le fondement ? Quelle différence entre OpenPGP et les certificats électroniques ? Quelles options et précautions prendre lors de la création d'une paire de clés ?
exactement ?
B Le réseau de confiance B Questions de confiance B Précautions pour installer OpenPGP
B Créer une paire de clés B Créer un certificat de révocation
B Stocker une paire de clés B Identification photographique et clés OpenPGP
B Diffuser sa clé publique MOTS-CLÉS
B clé B paire de clé B confiance B signature
© Groupe Eyrolles, 2005
Accès libre – PGP & GPG
Maintenant que vous connaissez les principes de base de la cryptographie, vous vous demandez peut-être ce qui particularise OpenPGP par rapport aux autres systèmes de chiffrement, en dehors des interminables poursuites judiciaires dont a été victime son créateur. Après tout, les techniques cryptographiques sous-jacentes à OpenPGP ont été déployées dans une grande variété d’applications et de protocoles ; ce n’est donc pas cela qui le singularise. Le secret d’OpenPGP est un concept qui lui est unique : le réseau de confiance, « Web of Trust » en anglais. Pour bien utiliser OpenPGP, vous devez comprendre ce qu’est ce réseau. Les détails de la gestion du réseau de confiance seront évoqués au chapitre 5 ; PGP sera traité de manière plus spécifique au chapitre 6 et GnuPG au chapitre 7.
Dans ce chapitre, nous verrons les principes de fonctionnement du réseau de confiance. Nous évoquerons aussi quelques considérations à prendre en compte lors de la création et de l’utilisation de clés publiques et privées.
OpenPGP : quelle « sécurité » exactement ? Réfléchissons un instant aux différents aspects du concept très flou de « sécurité ». En effet, si OpenPGP offre bien certaines solutions dans ce domaine, il ne donne pas une réponse à tous les problèmes qui peuvent se présenter.
RAPPEL De la difficulté d’identifier l’autre dans un échange électronique L’identification d’une personne se trouvant en face de soi ne pose généralement pas de problème : c’est quelque chose que nous faisons depuis des millénaires avec nos cinq sens, et en conséquence, c’est un domaine où nous excellons. Cependant, il en va tout autrement lorsqu’il s’agit d’identifier l’expéditeur d’un message électronique. En effet, la seule information qu’un tel message comporte de son expéditeur est son en-tête, qui est aisément falsifiable.
30
OpenPGP n’empêchera personne de voler votre ordinateur, ni de vous envoyer trois millions de messages indésirables. Il permet la confidentialité, l’intégrité et la non-répudiation, mais la mise en œuvre de chacune de ces trois fonctions est fortement liée au concept d’identité. On peut même dire que l’idée de base d’OpenPGP est la vérification d’identité. En effet, lorsque vous recevez un message signé à l’aide de la clé privée de quelqu’un, vous pouvez être pratiquement certain que l’expéditeur dispose bien de la clé privée correspondante. Le problème qui se pose alors est : comment associer l’identité d’une personne réelle à une paire de clés ? Ce problème a longtemps été l’une des faiblesses de la cryptographie à clé publique. C’est ici qu’entre en scène le réseau de confiance, dont l’objectif est de permettre de se passer d’une autorité de certification centralisée et de transférer la responsabilité de la vérification d’identité aux mains des utilisateurs.
© Groupe Eyrolles, 2005
Dans de nombreuses entreprises soucieuses de leur sécurité, on trouve moins souvent PGP que des infrastructures de clés créant pour leurs utilisateurs et serveurs des certificats électroniques. PGP et les certificats électroniques sont-ils concurrents ? La norme définissant le format de ces certificats électroniques s’appelle X.509 (version 3), en référence à la norme des annuaires, appelée X.500, dont elle est la lointaine héritière. Les certificats, à la norme X.509, ont ceci de commun avec PGP en ce qu’ils partagent les mêmes fonctionnements cryptographiques fondamentaux, en utilisant la techniques des clés asymétriques. Ils assurent donc, techniquement parlant, les mêmes types de garanties électroniques. Ces garanties sont l’authentification forte, la confidentialité, l’intégrité et la non-répudiation, assurées par deux techniques: le chiffrement et la signature électroniques. Ces deux normes diffèrent cependant sur de nombreux autres points, d’où le sentiment général qu’elles sont «concurrentes». Première différence, la plus visible peut-être : du point de vue du format, PGP et les certificats sont incompatibles. Un message chiffré avec un système ne peut être lu avec un logiciel qui ne mettrait en œuvre que l’autre technologie. Au delà de ce simple aspect formel, il y a également un plus grand support de l’industrie informatique pour les certificats électroniques. S’il existe des greffons PGP pour Outlook ou Thunderbird, ces logiciels supportent par ailleurs nativement les certificats, tout comme les routeurs VPN, les clients et les serveur web, beaucoup de système de login comme MS-Gina ou Unix PAM, voire Microsoft Word et OpenOffice.org ! La raison profonde de cette adoption par l’industrie de l’informatique est liée à la troisième différence, déterminante, entre PGP et les certificats. Il s’agit d’une différence de nature, et même de conception, entre PGP et X.509. • Les certificats sont émis par une infrastructure de gestion de clés, placées entre les mains d’une organisation qui en répond, comme une entreprise ou un gouvernement. Ils sont fondés sur l’idée d’organisation, de structure de référence, dont dépendent les utilisateurs. Ils obéissent à des règles de sécurité simples et transitives : si un utilsateur dispose d’un certificat d’une entreprise Lambda, il fera automatiquement confiance à tous les utilisateurs de certificats Lambda et à tous les serveurs dont les certificats
© Groupe Eyrolles, 2005
seront signés par Lambda. En d’autres termes, l’utilisateur n’a pas trop de question à se poser : l’organisation « pense » pour lui la sécurité. • PGP au contraire est fondé sur l’idée d’individu et a été conçu en vue de promouvoir et de défendre les libertés individuelles. C’est l’utilisateur, et non son entreprise ou son gouvernement, qui crée, gère et ordonne ses clés et ses critères de confiance. L’utilisateur crée ses clés et tisse lui-même ses réseaux de confiance, avec ses proches, ses amis, ses connaissances puis les connaissances de connaissances, comme on le verra dans ce livre. Rien ne lui est imposé : il définit précisément ce qu’il fait et à qui il accorde sa confiance. Il s’agit donc de deux visions du monde radicalement différentes. On serait tenté de résumer ainsi : les certificats seraient le choix des entreprises, des industriels et des puissants, intégrant dans leurs infrastructures la gestion de clés centralisées, ainsi que les moyens pour contrôler les utilisateurs ; PGP à l’opposé serait le hérault vertueux de la liberté individuelle ? Pas si simple. PGP et X.509 ne sont pas des technologies directement concurrentes en ce qu’elles sont... complémentaires. Tout individu a le droit d’assurer le respect sa vie privée et un outil comme PGP permet l’exercice de ce droit fondamental. Par ailleurs, des organisations ont le droit (et ont intérêt) à assurer la sécurité de leurs échanges et de leurs transactions, et de s’en porter caution, pour les usages dans le cadre de leurs activités, y compris avec des utilisateurs incompétents voire potentiellement hostiles aux mesures de sécurité que l’organisation entend mettre en place. Les certificats obéissent à une logique régalienne, PGP obéit à une logique individualiste. Ces deux logiques peuvent parfaitement coexister: sphère privée, sphère collective ou publique. Il est donc tout à fait possible et légitime pour une personne de disposer d’une clé PGP pour ses activités privées ou associatives et de disposer de certificats pour d’autres activités, lorsque ces activités dépendent d’organisations, comme son entreprise ou son gouvernement, comme les certificats inclus dans les cartes de santé, les cartes d’identité (nos lecteurs belges disposent d’une carte d’identité électronique depuis 2003) ou encore les passeports électroniques.
31
2 – Les concepts de base de la norme OpenPGP
RÉFÉRENCE Comprendre la différence entre PGP et les certificats électroniques
Accès libre – PGP & GPG
Les entreprises résolvent ce problème en mettant en œuvre les grands moyens. Ainsi, les sites utilisant le protocole sécurisé SSL utilisent-ils des certificats numériques provenant d’Autorités de certification, des sociétés dont la principale fonction est de vérifier l’identité réelle des personnes ou des entreprises qui demandent un certificat pour leur site. Ce processus, lorsqu’il est correctement effectué, prend du temps et coûte cher. Une fois l’identité vérifiée, l’autorité de certification signe numériquement la clé publique du site, ce qui revient pour cette autorité à confirmer qu’elle a vérifié l’identité du détenteur du certificat. Si cette approche fonctionne globalement très bien, elle n’est pas sans ses propres faiblesses. Tout d’abord, les autorités de certification sont des entreprises, et elles font payer leurs services. Un particulier n’est sans doute pas prêt à payer 100 euros par an juste pour prouver son identité lorsqu’il envoie des messages électroniques. Par ailleurs, les autorités de certification elles-mêmes peuvent être abusées, et leur signature numérique n’est donc pas une garantie absolue. En fait, d’un point de vue technique ou cryptographique, il n’y a pas de différence fondamentale entre la signature numérique fournie par l’autorité de certification et les signatures que vous créez avec votre clé privée. Ce qui différencie essentiellement ces deux systèmes, c’est qu’OpenPGP vous permet de créer vous-même vos signatures numériques. RAPPEL OpenPGP et certificats X.509 Le fonctionnement interne des certificats X.509 utilisés par les sites web diffère de celui de la paire de clés d’OpenPGP. Les deux ne sont pas interchangeables parce qu’ils font appel à des algorithmes différents et que leur contenu est lui aussi différent, mais les principes sont les mêmes (voir l’encadré page précédente).
Le réseau de confiance Le réseau de confiance est le réseau infaillible des personnes qui se sont identifiées mutuellement et qui se sont signé numériquement leurs clés OpenPGP. Il est entièrement composé de liens entre individus. Avec le temps, toujours plus de personnes s’y joignent et celui-ci devient à mesure plus étendu et plus interconnecté.
32
© Groupe Eyrolles, 2005
2 – Les concepts de base de la norme OpenPGP
ILLUSTRATION Transitivité de la confiance numérique Supposons par exemple que je reçoive un jour un message signé numériquement par Thomas. Je n’ai jamais rencontré Thomas, mais je peux obtenir une copie de sa clé publique depuis un serveur de clés. Cette clé a été signée numériquement par des personnes qui ont vérifié son identité. L’une des personnes ayant signé cette clé est Caroline, que je connais. Or, Caroline n’aurait pas signé la clé de Thomas sans le connaître personnellement ou sans avoir vérifié son identité d’une manière ou d’une autre. Une fois que j’ai vérifié que Caroline a signé la clé de Thomas, je sais qu’elle se « porte garante » de l’identité de Thomas. Je fais confiance à Caroline, qui fait confiance à Thomas. Il est donc très probable que la clé publique de Thomas corresponde bien à la personne Thomas. Et la chaîne peut se poursuivre de cette manière : moi faisant confiance à Caroline, qui fait confiance à Thomas, qui fait confiance à Igor, qui fait confiance à Sarifa, et ainsi de suite. Au fur et à mesure que la clé de Thomas est signée par un plus grand nombre de personnes, elle est de plus en plus intégrée au réseau de confiance et le nombre moyen d’intermédiaires nécessaires avant d’arriver à sa clé diminue.
Toute personne utilisant OpenPGP pour communiquer avec des tiers est connecté au réseau de confiance. Le réseau de confiance n’est toutefois pas infaillible. Si je me fie à Caroline lorsqu’elle signe une clé parce que je sais qu’elle vérifie bien l’identité de la personne correspondante, je ne sais rien de Thomas. Peut-être signe-t-il les clés de toutes les personnes qu’il rencontre, ou bien signe-til des clés qu’il télécharge au hasard depuis un serveur de clés. Si OpenPGP recommençait à zéro aujourd’hui, le réseau de confiance n’aurait pas du tout le même aspect. Rappelez-vous simplement qu’en définitive, c’est toujours à vous de décider à qui vous fier. Vous pouvez toujours refuser de signer une clé ou d’accepter une identité du fait d’une relation trop distante avec la personne concernée.
Questions de confiance De même que le mot sécurité, le mot confiance peut avoir un sens très différent selon le contexte et la personne qui l’emploie. Du reste, la norme OpenPGP évite soigneusement de le définir.
© Groupe Eyrolles, 2005
33
Accès libre – PGP & GPG
L’appartenance au réseau de confiance n’est pas un gage de bonne foi Le fait qu’une personne fasse partie du réseau de confiance ne signifie pas qu’elle soit fiable. Vous connaissez certainement des personnes à qui vous ne confieriez ni votre portefeuille, ni votre hamster, mais vous pouvez à tout moment signer leurs clés PGP et les aider à prouver leur identité à d’autres. Ou vous pouvez très bien recevoir un message électronique signé numériquement qui soit néanmoins suspect, vous proposant par exemple d’acheter la Tour Eiffel pour quelques euros. Si la clé de l’expéditeur fait partie du réseau de confiance, vous aurez au moins quelques chances de l’identifier.
Le nombre de signatures d’une clé n’est pas une mesure de confiance RAPPEL Le réseau de confiance, une responsabilité pour l’utilisateur d’OpenPGP La responsabilité de la constitution du réseau de confiance vous incombe. L’ajout de signatures numériques d’autres utilisateurs à votre clé et la signature de clés de tiers sont des éléments importants de l’utilisation d’OpenPGP. Vous devez vous intégrer aussi bien que possible au réseau de confiance.
Le nombre de signatures ajoutées à votre clé n’est pas nécessairement une bonne indication du degré de confiance qu’on accorde à votre clé. Néanmoins, plus les chemins entre vous et un autre utilisateur du réseau de confiance sont longs et peu nombreux, moins cet autre utilisateur se fiera à votre identité. Voir « Parcourir le réseau de confiance (pathfinder) », page 159.
Signer une clé, un engagement Lorsque vous signez la clé de quelqu’un, vous déclarez publiquement avoir identifié cette personne et avoir constaté que son identité correspond bien à celle de sa clé publique. Réciproquement, pour faire signer votre clé par un tiers, vous devez au préalable lui prouver votre identité. Nombreux sont ceux pour qui une pièce d’identité officielle comme une carte d’identité ou un passeport est une preuve d’identité suffisante.
34
© Groupe Eyrolles, 2005
2 – Les concepts de base de la norme OpenPGP
RAPPEL Réseau de confiance vs Autorité de certification Ce système peut sembler faillible, mais il ne l’est pas plus que celui reposant sur une autorité de certification centralisée, au sein de laquelle la certification est basée sur le travail d’êtres humains tout comme vous. Les personnes qui vérifient les identités sont formées pour détecter les faux papiers, mais elles travaillent à distance. Lorsqu’une personne vous fait face avec sa carte d’identité, vous pouvez comparer directement sa photo avec son visage, une possibilité dont l’autorité de certification ne dispose pas. De plus, dans la mesure où nous ne vérifions pas très souvent des identités, nous sommes sans doute plus attentifs lorsque nous effectuons cette opération. Les salariés des autorités de certification ne font rien d’autre à longueur de journée. Par conséquent, le risque d’erreur humaine n’est pas négligeable, sans parler de la possibilité d’utiliser des faux papiers, qui tromperont un salarié d’une autorité de certification presque aussi facilement que vous.
Les pièces d’identité officielles ne garantissent pas l’identité d’une personne de manière sûre. Par exemple, vous hésiteriez sûrement à signer la clé d’une personne qui ne disposerait que d’un passeport tasmanien pour prouver son identité (d’autant que la Tasmanie est un état de l’Australie qui n’émet pas ses propres passeports). Vous avez parfaitement le droit de ne signer que les clés des personnes que vous connaissez bien ; c’est d’ailleurs le principe adopté par beaucoup d’utilisateurs expérimentés d’OpenPGP. Et inversement, ne soyez pas vexé si quelqu’un refuse de signer votre clé.
Intégrer le réseau de confiance L’un des moyens les plus courants de développer vos liens dans le réseau de confiance est de participer à des séances de signature de clés (keysigning party). Ces réunions permettent à des utilisateurs d’OpenPGP de vérifier mutuellement leurs identités et de signer les clés les uns des autres. De telles séances sont généralement organisées en marge de conférences ou de salons spécialisés. Si vous n’avez jamais entendu parler de la moindre séance de signature de clés ou que vous n’avez pas envie de vous y rendre, renseignez-vous autour de vous. Dès lors qu’il y a dans votre entourage des personnes en rapport avec l’informatique, vous en trouverez à coup sûr qui disposent d’une paire de clés OpenPGP.
© Groupe Eyrolles, 2005
35
Accès libre – PGP & GPG
Par ailleurs, il existe des sites spécialement conçus pour permettre aux utilisateurs d’OpenPGP de se rencontrer et d’échanger des signatures de clés, notamment www.biglumber.com. Quoiqu’une simple signature suffit pour vous rattacher au réseau de confiance. Une fois que vous commencerez à utiliser OpenPGP, vous serez surpris de constater le nombre de personnes dans votre entourage qui l’utilisent aussi.
Précautions pour installer OpenPGP Précautions matérielles : sur quel ordinateur installer son logiciel et ses clés ? OpenPGP vous permet de prouver qui vous êtes. De même que vous ne laisseriez pas traîner votre carte d’identité dans un lieu public, mieux vaut éviter d’utiliser OpenPGP sur un ordinateur qui ne soit pas le vôtre. D’autres utilisateurs du même ordinateur pourraient accéder à votre trousseau de clés, et même à votre phrase secrète. Même si vous avez défini les autorisations de vos clés de telle manière que vous seul puissiez les voir, n’oubliez pas que les personnes disposant de droits d’administration pour le système pourront malgré tout accéder à ces fichiers. En d’autres termes, n’installez pas OpenPGP sur un système partagé tel que l’ordinateur de votre université ou d’un cybercafé. Veillez également à bien protéger votre ordinateur personnel. Si vous quittez votre poste de travail sans protéger l’économiseur d’écran par un mot de passe, des personnes malintentionnées pourraient accéder à vos clés.
Précautions en cas de partage sous Windows Parlons maintenant de Windows. Toutes les versions de Windows basées sur Windows 95 (c’est-à-dire Windows 95, 98 et Me) ne sont pas de vrais systèmes d’exploitation multi-utilisateurs. Leurs fonctions multi-utilisateurs ont été ajoutées après coup et ne sont pas véritablement intégrées au système. Par conséquent, il n’est pas possible de protéger de manière adéquate des clés OpenPGP sur un système Windows 9x. Toute personne utilisant ce système pourrait accéder à vos
36
© Groupe Eyrolles, 2005
2 – Les concepts de base de la norme OpenPGP
clés sans que vous ne vous en rendiez jamais compte. Les fonctions de mot de passe de ces versions de Windows peuvent facilement être outrepassées par toute personne capable d’accéder au système, sans même recourir à des outils ou des logiciels spéciaux. En conséquence, nous déconseillons de stocker quelque information personnelle que ce soit, et notamment des clés OpenPGP, sur des systèmes Windows 9x. Les systèmes d’exploitation basés sur Windows NT (Windows Vista, XP et 2000) représentent une nette amélioration dans ce domaine. Il est possible d’y accéder « par effraction », mais il faut pour cela disposer de logiciels spéciaux et de temps, comme c’est le cas pour tout bon système Unix. Toutefois, ils utilisent des comptes d’administrateur pouvant installer n’importe quoi, à la manière des comptes « root » d’Unix. Vous devez donc veiller à ce que personne d’autre ne puisse accéder à votre trousseau de clés. Nous reviendrons sur ce sujet, mais nous ne pourrons le traiter de manière approfondie. Si vous vous intéressez à la sécurité des ordinateurs personnels, vous trouverez de nombreux livres qui traitent spécifiquement de ce sujet.
Conseils pour créer sa première paire de clés Quelle que soit la version d’OpenPGP que vous choisissez d’utiliser, vous devez créer une paire de clés lorsque vous installez le logiciel. Les étapes à suivre diffèrent selon le logiciel, mais les principes restent les mêmes.
À RETENIR Veillez sur vos clés Veillez à ne générer vos clés que sur une machine qui vous appartienne. Si vous laissez traîner votre paire de clés GnuPG n’importe où, n’importe qui pourrait usurper votre identité.
Choisir la longueur de la clé La longueur de la clé est le nombre de bits (uns et zéros) dont elle est constituée. À l’heure où ces lignes sont écrites, PGP et GnuPG utilisent tous deux une valeur par défaut de 2 048 bits. Une clé symétrique de 2 048 bits suffit à assurer une sécurité forte pour les années à venir, sauf si votre attaquant dispose d’ordinateurs quantiques ou de l’un de ces ordinateurs ultrasecrets que les services de renseignements américains auraient mis en place pour casser les codes.
Vous verrez dans le prochain chapitre comment procéder avec PGP et dans le chapitre 4 comment faire avec GnuPG.
En augmentant la taille de la clé, vous augmentez la quantité de travail nécessaire pour chiffrer, mais aussi pour déchiffrer vos messages. En
© Groupe Eyrolles, 2005
37
Accès libre – PGP & GPG
contrepartie, vos clés seront plus difficiles à casser. Utilisez les paramètres par défaut, sauf si vous êtes certain que toutes les personnes avec lesquelles vous échangez des messages chiffrés disposent d’ordinateurs suffisamment puissants pour leur éviter d’avoir à faire une pause café en attendant le déchiffrement de vos messages.
Choisir le délai d’expiration des clés La question du délai d’expiration des clés fait débat au sein même de la communauté des spécialistes d’OpenPGP. Un délai d’expiration relativement court présente certains avantages pour l’avenir : si par exemple vous laissez une paire de clés sans date d’expiration sur un CD-Rom et que quelqu’un trouve ce CD-Rom en 2038, il pourra utiliser cette paire de clés pour usurper votre identité. Avec des clés qui expirent régulièrement (au bout de quelques années), vous êtes obligé de générer à chaque fois de nouvelles clés et de les diffuser ensuite auprès de vos correspondants. En tant que nouvel utilisateur d’OpenPGP, vous constaterez sans doute assez vite que certains choix que vous avez faits lors de la création des clés n’étaient pas les meilleurs. Il est alors plus difficile de se débarrasser d’une clé qui n’expire jamais. Pour votre première clé, nous conseillons un délai d’expiration d’un an. Pour vos clés suivantes, choisissez des délais d’expiration allant de deux à cinq ans. Bien que dans ce livre, nous fassions de notre mieux pour aborder et résoudre tous les problèmes potentiels auxquels vous pourriez être confronté, vous trouverez sans doute des manières d’utiliser OpenPGP que nous n’aurions jamais imaginées, d’où l’intérêt de choisir des délais d’expiration relativement courts. Le problème le plus courant des clés qui n’expirent pas est sans doute la situation où une vieille clé publique est employée pour contacter quelqu’un qui ne dispose plus de la paire de clés, et par conséquent, ne peut pas lire les messages qui lui sont adressés. Si vous aviez par exemple rendu publique une clé PGP sans date d’expiration en 1995, elle serait encore disponible aujourd’hui par l’intermédiaire de Google et d’autres sites web ; vous auriez du mal à retrouver les logiciels nécessaires pour lire un message chiffré avec cette clé. Il vous serait encore plus difficile de lire un tel message en 2015, mais la clé serait encore en cache à divers endroits, et quels que soient vos efforts pour diffuser une clé mise à jour, toutes sortes de personnes continueraient à utiliser l’ancienne. Retenez qu’il faut toujours choisir un délai d’expiration pour vos clés.
38
© Groupe Eyrolles, 2005
2 – Les concepts de base de la norme OpenPGP
Nom, adresse électronique et commentaire Votre nom, votre adresse électronique et un commentaire facultatif se combinent pour créer votre identifiant utilisateur OpenPGP, ou UID (User ID). Veillez à ne pas faire d’erreur lors de la saisie de ces informations.
Nom Utilisez vos vrais nom et prénom. Rappelez-vous que l’un des aspects essentiels de l’utilisation de GnuPG est de faire signer votre clé publique par des tiers. S’il est facile de faire signer sa clé à ses amis et parents, il est plus difficile de prouver son identité à des étrangers. Pour prouver votre identité à quelqu’un que vous rencontrez pour la première fois de votre vie, mieux vaut que le nom de la clé corresponde aussi exactement que possible à celui d’une pièce identité officielle.
Adresse électronique Vous devez également indiquer une adresse électronique. Votre clé est liée à cette adresse électronique, pour le meilleur et pour le pire.
Notez que vous pouvez bien sûr associer autant d’adresses électroniques que souhaité à une clé.
Commentaire Le commentaire sert généralement à décrire en quelques mots qui vous êtes et ce que vous faites. Il peut être important dans la mesure où il arrive que deux personnes aient les mêmes nom et prénom. Ainsi, une recherche Google portant sur « Michael Lucas » vous permettra de trouver toute une série de personnages intéressants : doubleurs, acteurs, professeurs de tir, ministres, etc.
Identifiant utilisateur La combinaison de ces trois informations, nom, adresse électronique et commentaire, est l’identifiant utilisateur ou UID. Un UID est censé se référer à une seule entité. Lorsque quelqu’un cherche votre clé privée, il doit pouvoir la trouver en se basant sur votre nom, ou à défaut sur votre adresse électronique. Une personne qui cherche à vous contacter n’essaiera probablement pas de trouver votre clé publique en effectuant une recherche sur votre activité. Toutefois, cette mention, dans les commentaires, lui permettra de vous distinguer de tous vos homonymes qui utilisent OpenPGP.
© Groupe Eyrolles, 2005
39
Accès libre – PGP & GPG
Créer un certificat de révocation dès la création de la clé Un certificat de révocation vous permet d’annoncer au monde que votre paire de clés n’est plus valide. Vous en aurez besoin si vous perdez votre clé privée ou si quelqu’un s’en empare. De même, si vous oubliiez votre phrase secrète, vous ne pourrez plus utiliser votre propre clé privée ni lire les messages électroniques chiffrés que vous recevez. Il n’est pas impossible non plus que les évolutions technologiques rendent obsolète votre paire de clés. Vous entendrez parler de temps à autre d’un utilisateur recevant un message chiffré avec une clé PGP datant de 1992 dans un format qu’aucun logiciel OpenPGP moderne ne peut lire. C’est peut-être la raison la plus importante pour laquelle il est préférable de choisir une date d’expiration pour votre clé. Dans ces situations, vous avez besoin d’un moyen de « désactiver » votre clé. Aussi conseillons-nous pour parer à ces éventualités de créer le certificat de révocation immédiatement après avoir créé la clé.
Stocker en lieu sûr sa paire de clés
ATTENTION Évitez les ordinateurs publics Ne stockez ni votre paire de clés, ni votre certificat de révocation sur un ordinateur public, semi-public ou utilisé par plusieurs personnes à la fois.
Après avoir commencé à utiliser OpenPGP, la perte de votre clé privée vous causerait des problèmes interminables. Des fichiers ont disparu à la suite d’erreurs des utilisateurs, il est arrivé que des bogues de système de fichiers effacent des données dont l’importance est apparue des semaines plus tard, et des bogues de système d’exploitation peuvent empêcher tout démarrage d’une machine. Trois des ordinateurs de l’auteur ont pris feu. Alors que dans le monde de l’entreprise, on peut toujours accuser le département informatique en cas de problème, vous êtes le seul à pouvoir protéger vos clés OpenPGP. Vous ne pouvez déléguer cette responsabilité. Effectuez une copie de sauvegarde de votre paire de clés et de votre certificat de révocation sur un support amovible, CD-Rom, par exemple, et stockez-le en lieu sûr, par exemple dans le coffre-fort d’une banque. Vous pourriez également les emmener avec vous sur une clé USB ou un lecteur MP3 à condition de les chiffrer au préalable. Le coffre-fort est une solution relativement sûre. Cependant, si un coffre-fort résistant au feu évite la combustion de son contenu en cas d’incendie, les températures atteintes suffisent pour corrompre les supports numériques. Vous pouvez par conséquent imprimer votre certificat
40
© Groupe Eyrolles, 2005
2 – Les concepts de base de la norme OpenPGP
de révocation et le stocker en même temps que sa sauvegarde numérique. Ainsi, en cas de défaillance du support, vous aurez la possibilité de copier manuellement le certificat pour révoquer votre clé.
Stocker un certificat de révocation De même que toute personne mettant la main sur votre clé privée et votre phrase cachée peut se faire passer pour vous, toute personne obtenant votre certificat de révocation pourrait rendre votre clé publique inutilisable. Ce serait ennuyeux pour un débutant et catastrophique pour un utilisateur faisant fréquemment appel à OpenPGP. Stockez votre certificat de révocation aussi sûrement que votre clé privée.
Identification photographique et clés OpenPGP Depuis peu, il est possible de stocker une image dans une clé publique OpenPGP. La vérification de l’identité du propriétaire de la clé est ainsi beaucoup plus facile, puisqu’une image est visible au moment de signer ou non sa clé. PGP et GnuPG permettent tous deux d’extraire et d’afficher les photos incluses dans les clés.
Taille et format de la photo Pour insérer votre propre photo dans votre clé, vous devez disposer d’une image numérique de vous-même qui montre soit votre visage seul, soit votre tête et vos épaules. Pour le meilleur résultat possible, l’image doit mesurer 120×144 pixels et être au format JPEG. Ces paramètres sont valables à la fois pour PGP et GnuPG. Les clés OpenPGP doivent être aussi compactes que possible ; par conséquent, veillez à ce que votre photo soit la moins volumineuse possible. Elle n’a pas besoin d’être très détaillée : il suffit que vous soyez reconnaissable. L’insertion d’une photo dans votre clé publique n’est pas difficile, mais nécessite des connaissances dont vous ne disposez pas encore. Nous y reviendrons aux chapitres 6 (pour PGP) et 7 (pour GnuPG).
© Groupe Eyrolles, 2005
41
Accès libre – PGP & GPG
Diffuser sa clé publique PRÉCAUTION Petite vérification avant la publication de la clé Avant de faire profiter le monde entier de votre clé publique, assurez-vous que vous êtes prêt à utiliser OpenPGP. Effectuez une sauvegarde de vos clés publique et privée. Créez un certificat de révocation. Stockez le tout en lieu sûr. Si vous n’effectuez pas ces opérations, vous risquez de poster une clé « orpheline », ce qui veut dire que vous recevrez des messages chiffrés (et potentiellement importants) sans pouvoir les déchiffrer. En cas de doute, patientez un peu avant de poster votre clé sur un serveur de clés. Il sera toujours temps de le faire un peu plus tard.
Vous vous dites peut-être que la meilleure chose à faire est de proposer votre clé publique en téléchargement sur votre page web, mais en réalité, ce n’est pas nécessairement une bonne idée. N’importe qui peut créer une page web indiquant « Site officiel de Michael W. Lucas » et y placer une clé publique. Pire encore : n’importe qui pourrait indiquer sur cette page web « Pour contacter l’auteur mondialement connu de PGP et GPG et d’autres ouvrages informatiques érudits, envoyez-lui un message à l’adresse
[email protected] et utilisez cette clé OpenPGP ». Bien entendu, l’adresse qui précède n’est pas la véritable adresse électronique de l’auteur. Vous verrez parfois des signatures de messages électroniques indiquant « Ma clé publique est disponible à l’adresse www.monsiteweb.com ». Cette approche semble meilleure, à en juger par le grand nombre de personnes qui l’utilisent. Toutefois, le message électronique aurait pu être altéré, et l’URL pourrait donc avoir été falsifiée afin de tromper le destinataire. En revanche, si l’expéditeur envoie beaucoup de messages électroniques, ses correspondants peuvent s’assurer que l’URL indiquée est bien la même dans tous les messages. Le meilleur moyen de distribuer une clé est de la fournir en personne. Lorsqu’un collègue crée une paire de clés OpenPGP, demandez-lui de vous envoyer sa clé publique, vérifiez-la ensemble, puis ajoutez-la à votre trousseau de clés. À l’évidence, cette solution ne peut être employée pour tous vos correspondants, partout dans le monde. Par ailleurs, il n’est pas possible non plus de demander par courrier électronique la clé publique d’un message
42
© Groupe Eyrolles, 2005
2 – Les concepts de base de la norme OpenPGP
chiffré que vous venez de recevoir : vous n’auriez aucune garantie quant à l’identité de l’expéditeur. Heureusement, OpenPGP dispose d’un mécanisme de distribution de clés que nous avons déjà évoqué, et qui couvre le monde entier.
Recourir à des serveurs publics de clés Il existe des serveurs Internet spécifiquement conçus pour gérer et distribuer des clés OpenPGP. Ces serveurs de clés sont semblables aux autres serveurs Internet qui sont configurés pour traiter les pages web, le courrier électronique ou tout autre protocole. Les logiciels OpenPGP sont capables de communiquer automatiquement avec des serveurs de clés OpenPGP. Les serveurs de clés sont très nombreux et distribués dans le monde entier. Ils s’échangent généralement leurs bases de données entre eux pour que toutes les clés soient accessibles sur tous les serveurs. Les serveurs de clés OpenPGP traditionnels permettaient à n’importe qui d’ajouter une clé avec n’importe quelle adresse électronique. Aujourd’hui, avec l’explosion du nombre d’utilisateurs d’Internet, cette approche laisse apparaître ses limites. La société PGP Corporation propose un service de « clé PGP vérifiée ». Lorsque vous envoyez une clé, vous recevez un message électronique à l’adresse de la clé pour confirmer celle-ci. C’est une sécurité supplémentaire, qui nécessite que Mallory puisse accéder au compte de courrier électronique de la personne dont elle cherche à usurper l’identité. Dans ce cas toutefois, OpenPGP ne représentera pas un obstacle pour elle. Limites du système de diffusion par serveurs Les réserves exprimées quant à la fiabilité et à l’intégrité du système de serveurs de clés sont en partie légitimes. Il a été conçu et mis en place avant qu’Internet ne se popularise, et il faut maintenant vivre avec ses limitations. Si le système OpenPGP était recréé à partir de zéro aujourd’hui, les solutions trouvées seraient sans doute différentes, mais on peut dire la même chose du Web, du courrier électronique et de tous les autres protocoles qui font d’Internet ce qu’il est aujourd’hui. Il faut aussi se rappeler que le système de serveurs de clés est de loin supérieur au système de vérification d’identité par défaut d’Internet, qui est inexistant.
© Groupe Eyrolles, 2005
43
Accès libre – PGP & GPG
Publier sa clé publique sur son site web Les serveurs de clés ne sont pas la seule solution pour distribuer votre clé publique. Rien ne vous empêche de la proposer en téléchargement sur votre site web : elle confirmera un peu plus que vous êtes bien qui vous prétendez être, pour tous ceux qui sont suffisamment paranoïaques pour effectuer ce type de vérification sur votre site. Beaucoup d’utilisateurs de systèmes de type Unix partagés placent leur clé publique dans leur fichier finger text ou plan pour le rendre accessible aux autres utilisateurs du système. Si ces méthodes sont parfaitement légitimes en tant que moyens de diffusion supplémentaires, elles ne s’intègrent pas bien à l’architecture d’OpenPGP. L’utilisateur moyen d’OpenPGP n’aura pas nécessairement envie d’essayer de retrouver la page web de son correspondant : il voudra que son logiciel de courrier électronique se procure automatiquement la clé sur un serveur de clés.
Diffusion ad hoc Certaines personnes ont des raisons particulières de ne pas vouloir utiliser des serveurs de clés, par exemple parce qu’elles ne souhaitent pas que des inconnus leur envoient des messages chiffrés, ou encore parce qu’elles ont des objections de principe quant à la sécurité de l’architecture des serveurs de clés. Ces personnes utilisent leurs propres méthodes pour diffuser leurs clés, et vous devrez respecter la procédure qu’elles imposent si vous souhaitez leur envoyer des messages chiffrés. Maintenant que vous savez à quoi va vous servir le logiciel que vous avez choisi, il est temps de s’intéresser à l’installation de PGP et de GnuPG. À RETENIR Résumons ! • On chiffre donc avec les clés publiques (souvent publiquement disponibles de ses destinataires). • On signe avec sa propre clé privée –- les destinataires vérifiant la signature grâce à la clé publique correspondante. On peut chiffrer avec autant de clés que souhaité (pour autant de destinataires) et il est recommandé de toujours chiffrer aussi avec sa propre clé publique afin d'être en mesure plus tard de déchiffrer ses propres messages.
44
© Groupe Eyrolles, 2005
2 – Les concepts de base de la norme OpenPGP
OpenPGP
Mes correspondants l’utilisent pour m’adresser des messages chiffrés.
Je publie ma clé publique.
Pour déchiffrer un message qui m’est destiné, j’utilise ma clé privée. Pour chiffrer un message, j’utilise les clés publiques de mes correspondants.
ma clé publique
Pour pouvoir relire un message que j’ai chiffré pour d’autres, je le chiffre aussi avec ma clé publique.
ma clé privée
Pour vérifier la signature de mon correspondant, j’utilise sa clé publique.
Je tiens secrète ma clé privée.
Pour signer un message j’utilise ma clé privée. Mon correspondant vérifie ma signature avec ma clé publique. Pour chiffrer et signer un message, je le chiffre avec la clé publique de mon correspondant, je le signe avec ma clé privée.
mon trousseau de clés
Les clés publiques de mes correspondants me sont remises directement ou bien je les trouve sur un serveur de clés. Je m'en sers après avoir vérifié leur empreinte.
Christine Moi
Hugo Adèle
Bob
Muriel Charles
© Groupe Eyrolles, 2005
le réseau de confiance Lorsque je me suis assuré (de visu) de l'identité du propriétaire d'une clé, je peux signer sa clé et étendre le réseau de confiance. J'ai d'autant plus confiance en une clé qu'elle est signée de moi ou de gens en qui j'ai confiance.
45
chapitre
3
© Groupe Eyrolles, 2005
Installer PGP sous Windows et Mac OS X
SOMMAIRE
La version PGP Desktop, qui intéresse le plus les particuliers, existe en deux variantes nommées Home et Professional. La version Home offre des fonctions de base d’envoi de courrier électronique. La version Professional permet de chiffrer l’ensemble de son disque dur.
B Téléchargement de PGP B Installation de PGP B Sauvegarde de clés PGP B Certificats de révocation et PGP B Serveurs de clés et PGP MOTS-CLÉS
B certificat de révocation B clé B confiance B empreinte B IDEA B licence B MD5 B phrase secrète
© Groupe Eyrolles, 2005
Accès libre – PGP & GPG
Plates-formes et langages supportés PGP ne fonctionne pas sous Linux et n’existe pas encore en français.
PGP Corporation propose différents types de logiciels OpenPGP, qui vont d’une version destinée aux particuliers à une autre pour les entreprises en passant par une version en mode invite de commande. Nous nous focaliserons ici sur le logiciel PGP Desktop, celui qui intéressera le plus les particuliers. Pour l’utilisateur final, toutes les versions de PGP fonctionnent de manière similaire ; après tout, elles sont toutes des mises en œuvre de la même norme OpenPGP. Toutefois, il existe des variantes selon les versions. En ce qui concerne la version PGP Desktop, elles se nomment Home et Professional. La version Home offre des fonctions de base d’envoi de courrier électronique tandis que la version Professional permet également de chiffrer l’ensemble de son disque dur. Choisissez la version correspondant le mieux à vos besoins.
Téléchargement de PGP B http://www.pgp.com
Pour commencer, téléchargez PGP depuis le site web de la société, www.pgp.com. Cliquez sur Downloads, puis sur Free 30 Days Trial. PGP vous propose d’essayer le logiciel gratuitement pendant 30 jours, mais vous pouvez également l’acheter immédiatement. La période d’essai est un bon moyen de vous assurer que le logiciel répond à vos besoins. Après quelques minutes, ou tout au plus quelques heures, vous recevrez un message électronique comprenant un lien pour télécharger le logiciel, une liste d’instructions et un numéro de licence. Conservez soigneusement ce message électronique ! Vous en aurez besoin non seulement pour installer PGP, mais aussi, le cas échéant, pour accéder à l’assistance technique. Le fichier téléchargé et le numéro de licence sont spécifiques à la personne qui en a fait la demande : le nom, l’adresse électronique et les autres informations sont incorporés dans le logiciel téléchargé.
Installation de PGP Le fichier que vous téléchargez se présente sous la forme d’une archive compressée au format ZIP. Si elle n’est pas automatiquement décompressée par votre navigateur ou votre système d’exploitation, vous devez effectuer cette opération manuellement. Une fois l’archive décompressée, vous obtenez un fichier .exe. Double-cliquez sur ce fichier et
48
© Groupe Eyrolles, 2005
3 – Installer PGP sous Windows et Mac OS X
suivez la procédure d’installation : lisez les conditions de licence et cliquez sur I accept, puis sur Next. Une fois l’installation terminée, vous devez redémarrer l’ordinateur. Ouvrez ensuite une session avec l’utilisateur pour lequel vous voulez utiliser PGP. Une fenêtre s’affiche automatiquement pour vous demander si vous souhaitez utiliser PGP à partir de ce compte. Choisissez Yes. Entrez ensuite vos informations de licence : nom, organisation et adresse électronique. Vous devez indiquer exactement les mêmes informations que celles que vous avez fournies sur le site de PGP. Si vous les avez oubliées, vous les trouverez dans le message électronique contenant votre numéro de licence. La figure 3-1 montre à quoi ressemble l’assistant de saisie des informations de licence. La fenêtre suivante demande votre numéro de licence. À l’heure actuelle, il s’agit d’un code alphanumérique de 28 caractères. Vous pouvez le copier-coller depuis le message électronique que vous avez reçu (ou le PDF qui accompagne ce message) pour être sûr de ne pas vous tromper.
Figure 3–1
L’assistant de saisie des informations de licence de PGP
Une fois votre numéro de licence vérifié, l’assistant de configuration de PGP apparaît. Vous pouvez choisir d’importer des clés existantes ou de créer une nouvelle clé. Choisissez I am a new user ( Je suis un nouvel utilisateur) et cliquez sur Suivant pour commencer la création d’une nouvelle clé.
© Groupe Eyrolles, 2005
49
Accès libre – PGP & GPG
Un écran d’introduction vous fournit des informations générales sur la création de clés (Mac OS X : cochez l’option Expert Mode pour accéder aux options avancées). Cliquez sur Suivant pour afficher l’écran de la figure 3-2.
Figure 3–2
L’écran qui permet de spécifier le nom et la ou les adresse(s) électronique(s)
Les boutons More et Advanced sont importants tous deux. Si vous souhaitez protéger plusieurs adresses électroniques avec PGP, cliquez sur More pour saisir des adresses supplémentaires.
Installation sous Mac OS X Sous Mac OS X, la procédure d’installation est légèrement différente. Vous n’avez pas besoin de redémarrer l’ordinateur à la fin de l’installation et PGP n’est pas automatiquement lancé au démarrage. Une fois le logiciel installé, vous le trouverez dans le dossier Applications. Lancez PGP, puis choisissez File>New>PGP Key pour commencer la génération d’une nouvelle clé. La procédure à suivre ensuite est pratiquement identique à celle décrite pour Windows. La principale différence est que pour accéder aux options avancées, vous devez cocher l’option Expert Mode à la première étape au lieu de cliquer sur le bouton Advanced.
50
© Groupe Eyrolles, 2005
3 – Installer PGP sous Windows et Mac OS X
Si vous prévoyez de ne communiquer qu’avec des personnes utilisant le logiciel officiel de PGP Corporation, il vous suffit de cliquer sur Suivant (ou, sous Mac OS X, deux fois sur Continue) pour commencer la génération de vos clés. Si en revanche vous souhaitez communiquer avec des utilisateurs d’autres solutions OpenPGP, cliquez sur le bouton Advanced. Vous affichez ainsi les options avancées (voir figure 3-3).
Figure 3–3
Les options de clé avancées
Configurer les options de PGP Type de clé (Key Type) OpenPGP prend en charge un grand nombre de types de clés, notamment des clés qui permettent de signer des messages mais pas de les chiffrer, des clés compatibles avec des versions anciennes d’OpenPGP, etc. À l’heure actuelle, le type de clé standard pour l’envoi de courrier électronique est RSA.
AVERTISSEMENT Faire les bons choix Reportez-vous aux différents conseils de création du chapitre 2.
Taille de clé (Key Size) Il s’agit de la taille de la clé en nombre de bits, comme le décrit la section « Votre paire de clés » au chapitre 2. La valeur par défaut est de 2 048, ce
© Groupe Eyrolles, 2005
51
Accès libre – PGP & GPG
qui devrait suffire pour la plupart des utilisateurs. Des paires de clés plus longues ne sont utiles que si vos informations doivent rester confidentielles pendant encore plusieurs décennies.
Expiration Choisissez une date d’expiration pour votre clé, ou Never pour qu’elle n’expire jamais (déconseillé). Pour votre première paire de clés, nous vous suggérons d’utiliser un délai d’expiration d’un an au maximum (voir chapitre 2).
Méthodes de chiffrement (Ciphers) EXPERT L'algorithme de chiffrement AES L’AES (Advanced Encryption Standard) est, comme son nom l’indique, une norme de chiffrement symétrique destiné à remplacer le DES (Data Encryption Standard) qui est devenu trop faible au regard des attaques actuelles. B http://fr.wikipedia.org/wiki/
Advanced_Encryption_Standard
PGP propose une liste de méthodes de chiffrement qu’il reconnaît, notamment AES, CAST, TripleDES, IDEA et Twofish. Les différences entre ces méthodes n’intéressent généralement que les cryptographes. Aujourd’hui, presque tout le monde utilise AES. La méthode de chiffrement choisie sous Preferred Cipher (AES par défaut) sera celle employée lors de la rédaction de messages électroniques. L’une des différences importantes entre PGP et les autres solutions OpenPGP est qu’il prend en charge la méthode de chiffrement IDEA. Par défaut, cette méthode est désactivée.
Empreintes Les algorithmes de hachage pris en charge varient selon les solutions OpenPGP (voir le chapitre 1 pour plus d’informations sur les hachages). Certains sont vieux, plus faibles et susceptibles d’être cassés. Si vous cochez toutes les options sous Hashes : Allowed (ou Allowed Hashes), vous pourrez déchiffrer tous les messages, y compris ceux utilisant un hachage faible. Si vous recherchez une sécurité maximale, en revanche, désactivez les hachages MD5 et SHA-1 (ils le sont par défaut). Dans ce cas, il est possible que vous ne puissiez pas déchiffrer tous les messages que vous recevez.
52
© Groupe Eyrolles, 2005
3 – Installer PGP sous Windows et Mac OS X
Saisie de la phrase secrète et génération des clés Cliquez sur Suivant pour passer à l’écran de saisie de la phrase secrète (voir figure 3-4).
Figure 3–4
L’écran de saisie de la phrase secrète
Comme son nom l’indique, cet écran vous permet de saisir la très importante phrase secrète. Nous l’avons déjà évoqué, cette phrase secrète est un élément essentiel de l’utilisation de PGP. Une barre de progression vous aide à évaluer la qualité de votre phrase, mais ne vous y fiez pas aveuglément ! Relisez plutôt les conseils donnés au chapitre 1. Lorsque vous cliquez sur Suivant (ou Create Key, selon votre système d’exploitation), PGP commence le calcul de vos clés. Une petite animation s’affiche en attendant pour vous informer que votre ordinateur ne se tourne pas les pouces. Après avoir généré une série de nombres aléatoires et les avoir combinés, votre clé est prête. Cliquez sur Suivant. Le prochain écran vous propose de publier votre clé sur le PGP Global Directory, le répertoire centralisé de clés de PGP (voir figure 3-5). Nous n’en sommes pas encore là : cliquez sur Skip (ou No). Si les serveurs de clés officiels de PGP permettent aux utilisateurs de supprimer à tout
© Groupe Eyrolles, 2005
53
Accès libre – PGP & GPG
moment leur clé OpenPGP du répertoire, mieux vaut disposer d’un certificat de révocation avant de publier sa clé où que ce soit .
Figure 3–5
L’assistant de publication des clés sur le répertoire officiel de PGP
Sous Mac OS X, l’installation est terminée. Sous Windows, PGP vous propose ensuite de rechercher vos comptes de courrier électronique et votre compte AOL Instant Messenger (AIM) afin de chiffrer automatiquement vos communications avec d’autres utilisateurs de PGP. Nous vous conseillons d’accepter : ainsi, vous n’aurez pas besoin de configurer ces comptes par la suite. Notez que cela ne vous empêchera en rien d’envoyer des messages non chiffrés. Cliquez sur Suivant pour que PGP cherche vos comptes et effectue les réglages correspondants. À l’étape suivante, l’assistant affiche les règles standards qui déterminent dans quelles circonstances PGP chiffre les messages. Ce sera l’objet du chapitre 9. Pour le moment, vous pouvez cliquer sur Suivant, puis sur Terminer. PGP est maintenant installé sur votre ordinateur. Il ne vous reste plus qu’à créer une copie de sauvegarde de votre clé et à générer un certificat de révocation avant de la publier.
54
© Groupe Eyrolles, 2005
3 – Installer PGP sous Windows et Mac OS X
Créer une copie de sauvegarde de sa paire de clés PGP Pratiquement toutes les opérations et réglages de PGP s’effectuent par l’intermédiaire de PGP Desktop, qui est accessible depuis le menu Démarrer>Programmes (Windows) ou depuis le dossier Applications, sous le nom PGP (Mac OS X). Commencez par effectuer une copie de sauvegarde de votre clé privée. 1 Ouvrez PGP Desktop. Vous devriez voir apparaître une fenêtre simi-
laire à celle de la figure 3-6.
Figure 3–6
La fenêtre PGP Desktop
2 Lors du premier lancement de PGP Desktop, une seule clé est
visible, celle que vous venez de créer. Cliquez droit (Mac OS X : Ctrl+clic) sur cette clé et choisissez Export. 3 Une boîte de dialogue d’enregistrement standard s’affiche. Elle pré-
sente toutefois une particularité (voir figure 3-7) : l’option Include Private Key(s) (inclure les clés privées). Vous devez cocher cette option avant de cliquer sur Enregistrer ou Save afin de sauvegarder votre clé privée. Dans le cas contraire, vous ne sauvegarderiez que votre clé
© Groupe Eyrolles, 2005
55
Accès libre – PGP & GPG
publique, qui sera de toute façon disponible sous peu sur des dizaines de serveurs de clés dans le monde entier.
Figure 3–7
Sauvegarde d’une clé privée
4 Pamr défaut, le fichier de sauvegarde sera enregistré dans votre dos-
sier Mes documents (Windows) ou dans votre dossier de départ (Mac OS X), le nom du fichier étant votre nom suivi, sous Windows, de l’extension .asc. Copiez ce fichier sur un autre support. Ainsi, au cas où votre ordinateur serait volé ou que vous perdiez le contenu de votre disque, vous pourriez néanmoins accéder aux messages chiffrés que vous recevez.
BON À SAVOIR Dossiers d’installation de PGP (Windows) PGP stocke les paramètres de l’application dans un dossier nommé PGP Corporation, qui se trouve lui-même dans votre dossier Documents and Settings/Application Data. Lors de l’installation, les autorisations de ce dossier sont définies de telle manière que vous seul puissiez y accéder. Veillez à ne pas les modifier. Par ailleurs, lorsque vous sauvegardez votre système, pensez à sauvegarder également ce dossier. De plus, PGP installe des clés de registre sous HKEY_LOCAL_MACHINE/ SOFTWARE/PGP Corporation. Ces clés ne sont pas modifiables par l’utilisateur, mais veillez néanmoins à les inclure lorsque vous effectuez des sauvegardes de votre système.
56
© Groupe Eyrolles, 2005
3 – Installer PGP sous Windows et Mac OS X
Certificats de révocation et PGP Comme vous vous en souvenez après avoir lu le chapitre 2, les certificats de révocation servent à informer le monde entier que votre clé publique n’est plus valide. Ils représentent donc une issue de secours en cas de destruction de votre ordinateur ou de vol de votre phrase secrète. Si vous n’utilisez PGP que pour protéger des fichiers se trouvant sur votre disque et si vous ne l’employez jamais pour transmettre des données chiffrées à des tiers, vous n’avez en principe pas besoin d’un certificat de révocation. Il est néanmoins toujours préférable d’en créer un au cas où. En revanche, si vous utilisez PGP pour envoyer des messages à vos correspondants, la création d’un certificat de révocation n’est pas une option, mais une obligation. PGP vous donne la possibilité de révoquer une clé sans disposer d’un certificat de révocation. Toutefois, cette possibilité ne s’applique qu’aux clés stockées dans l’annuaire de clés PGP Global Directory. Si vous publiez votre clé sur tout autre serveur de clés, ou si quelqu’un d’autre publie vos clés sur un tel serveur (ce qui est très malpoli, mais le monde est plein de goujats), vous ne pourrez la révoquer qu’à l’aide d’un certificat de révocation. PGP vous permet de désigner des « révocateurs », des personnes pouvant envoyer un certificat de révocation à votre place, mais cette possibilité n’est intéressante qu’au sein d’une entreprise. Vous pourriez bien sûr désigner l’un des membres de votre famille en tant que révocateur, mais si votre ordinateur est détruit, il y a des chances pour que les autres ordinateurs de la famille le soient aussi. La génération d’un certificat de révocation est quelque peu fastidieuse dans PGP Desktop, mais n’a rien de compliqué. Vous devez : 1 désactiver les mises à jour automatiques de serveurs de clés ; 2 confirmer que vous disposez d’une sauvegarde de votre paire de clés ; 3 générer le certificat de révocation ; 4 l’enregistrer ; 5 réinstaller votre paire de clés depuis la sauvegarde ; 6 et enfin modifier les propriétés de la clé privée.
© Groupe Eyrolles, 2005
57
Accès libre – PGP & GPG
Désactiver les mises à jour des serveurs de clés Comme nous l’avons vu au chapitre 2, un serveur de clés est un lieu de stockage pour les clés publiques. Avant de générer un certificat de révocation, vous devez vous assurer que PGP n’envoie pas automatiquement des mises à jour au serveur de clés pour éviter que le certificat de révocation ne soit envoyé au serveur immédiatement après sa création. Commencez par afficher les options de PGP en choisissant Tools>PGP Options (Windows) ou PGP>Preferences (Mac OS X). Ouvrez l’onglet Keys et, sous Synchronization, assurez-vous que l’option Automatically synchronize keys with keyservers soit désactivée.
Figure 3–8 Assurez-vous que l’option
« Automatically synchronize keys with (key)servers » soit désactivée.
Vous réactiverez cette option après avoir créé le certificat de révocation.
Générer un certificat de révocation (sans révoquer la clé) Vous allez maintenant générer le certificat de révocation lui-même. Avant de continuer, vérifiez soigneusement que vous disposez bien d’une copie de sauvegarde de votre clé (voir « Sauvegarde de clés PGP », plus haut dans ce chapitre). En effet, la génération du certificat de révocation va rendre inutilisable la paire de clés que vous avez installée, et vous devrez par conséquent rétablir une paire de clés utilisable depuis la version sauvegardée. En cas de doute, créez une nouvelle copie de sauvegarde en y incluant la clé privée. Voici comment créer le certificat de révocation : 1 Cliquez droit (Mac OS X : Ctrl+clic) sur votre clé dans la fenêtre de PGP Desktop et choisissez Revoke. Une boîte de dialogue vous demande de confirmer la révocation (voir figure 3-9). Cliquez sur Oui ou OK. Sous Windows, une nouvelle boîte de dialogue apparaît, vous demandant de saisir votre phrase secrète (voir figure 3-10).
58
© Groupe Eyrolles, 2005
3 – Installer PGP sous Windows et Mac OS X
Figure 3–9
Vous devez confirmer que vous voulez bien révoquer la clé.
Figure 3–10
Dans la boîte de dialogue suivante, vous devez saisir votre phrase secrète.
2 Une fois que vous avez saisi votre phrase secrète, le nom de votre clé
apparaît en italique sous Windows. Sous Mac OS X, le symbole de la clé est accompagné d’une petite icône rouge. Votre clé est maintenant révoquée sur votre ordinateur. 3 Exportez la clé révoquée comme décrit dans la section « Certificats de révocation et PGP », un peu plus haut. N’oubliez pas d’exporter la clé privée en même temps que la clé publique. Donnez au fichier un nom différent de celui de votre précédente sauvegarde, sans quoi vous remplaceriez votre clé non révoquée par la clé révoquée. La clé révoquée exportée est votre certificat de révocation. Stockez-le en lieu sûr de la même manière que votre autre sauvegarde. Maintenant que vous disposez d’un certificat de révocation, vous pouvez supprimer la clé. Dans la fenêtre de PGP Desktop, cliquez droit sur votre clé et choisissez Delete (Windows) ou sélectionnez la clé et choisissez Keys>Delete (Mac OS X). Vous verrez s’afficher deux boîtes de dialogue d’avertissement successives (voir figures 3-11 et 3-12).
Figure 3–11
Le premier message d’avertissement lorsque vous choisissez de supprimer une clé
© Groupe Eyrolles, 2005
59
Accès libre – PGP & GPG
La première vous informe que vous risquez de recevoir des messages que vous ne serez pas en mesure de déchiffrer. Dans la mesure où vous disposez d’une copie de sauvegarde de votre clé privée, le problème ne se pose pas. La deuxième vous indique que la suppression de la clé est une opération irréversible. Ici encore, vous disposez d’une copie de sauvegarde de la clé. La fenêtre de PGP Desktop est maintenant vide.
Figure 3–12
Le second message d’avertissement lorsque vous choisissez de supprimer une clé
Réimportation de la clé privée Pour utiliser votre clé privée, vous devez la réimporter. 1 À partir de l’explorateur de Windows ou du Finder de Mac OS X,
retrouvez le fichier de sauvegarde de votre clé privée. 2 Double-cliquez sur le fichier pour l’ouvrir. Une boîte de dialogue
apparaît, vous demandant de choisir la clé à importer (voir figure 3-13). Le fichier ne comprend qu’une seule clé sauvegardée, la vôtre. Sélectionnez-la, puis cliquez sur Import. Votre clé s’affiche alors dans la fenêtre de PGP Desktop.
Figure 3–13
Choisissez la clé à importer.
Notez que le petit cercle, dans la colonne Validity, n’est plus vert comme c’était le cas auparavant : vous devez indiquer manuellement à PGP de faire confiance à cette clé.
60
© Groupe Eyrolles, 2005
3 – Installer PGP sous Windows et Mac OS X
Configurer les propriétés de la clé Pour indiquer à PGP que votre clé réimportée est fiable, double-cliquez dessus dans la fenêtre PGP Desktop pour afficher sa boîte de dialogue de propriétés, qui permet de modifier les paramètres de vos clés personnelles. ATTENTION Les options de cette boîte de dialogue vous permettent d’appliquer de nombreux changements, dont certains peuvent rendre votre clé inutilisable. Par conséquent, soyez prudent ! À moins que vous sachiez exactement à quoi correspond une propriété et quelles sont ses implications en ce qui concerne l’interopérabilité avec OpenPGP, il est fortement déconseillé de la modifier.
Certaines des fonctions de la boîte de dialogue ne posent pas de problème particulier. Ainsi, pour ajouter une adresse électronique à une clé ou modifier sa phrase secrète, il suffit de cliquer respectivement sur Add Email Address ou Change Passphrase (Mac OS X : le premier et le troisième bouton, en haut dans la boîte de dialogue). Vous pouvez également modifier la date d’expiration à l’aide du champ Expires. Ici, le champ qui nous intéresse est Trust (confiance). Ce champ indique votre degré de confiance en la clé, sujet qui a été traité au chapitre 2. Dans la mesure où il s’agit de votre clé privée, que
Figure 3–14
Les propriétés d’une clé PGP
© Groupe Eyrolles, 2005
61
Accès libre – PGP & GPG
vous avez générée vous-même, vous lui faites entièrement confiance. En conséquent, cliquez sur None, à droite de Trust, et choisissez Implicit. La modification s’applique immédiatement, sans que vous ayez à cliquer sur OK.
Révoquer sa clé avec le certificat de révocation Si vous avez oublié votre phrase secrète ou si vous avez l’impression que votre clé a été compromise d’une manière ou d’une autre, importez votre certificat de révocation et transférez-le sur le serveur de clés. Vous publiez ainsi le certificat de révocation, et toute personne voulant mettre à jour votre clé depuis le serveur sera informée de votre action.
Publier sa clé sur un serveur de clés public Publier sa clé sur le serveur de PGP Corporation Comme nous l’avons vu au chapitre 2, un serveur de clés est une machine qui fait office de répertoire de clés OpenPGP. PGP Corporation fournit un serveur de clés aux utilisateurs de PGP. Le fonctionnement de ce serveur est légèrement différent de celui des autres dans la mesure où il impose une vérification par courrier électronique. Lorsque vous ajoutez une clé à ce répertoire, le serveur envoie un message électronique à l’adresse spécifiée dans la clé. Si vous avez choisi une adresse légitime lors de la création de la clé, vous recevrez ce message électronique. Il suffit ensuite de cliquer sur le lien inclus dans le message pour ajouter votre clé au répertoire de clés de PGP. Le serveur de PGP n’échange pas ses clés avec les autres serveurs : il est considéré comme « neuf » et dépourvu des clés inutilisées, invalides ou compromises qui se sont accumulées depuis une dizaine d’années sur les autres serveurs de clés. Si vous souhaitez également envoyer votre clé sur ces autres serveurs, vous devez le faire séparément.
62
© Groupe Eyrolles, 2005
3 – Installer PGP sous Windows et Mac OS X
Autres propriétés des clés OpenPGP Nous vous avons conseillé de ne pas modifier les autres valeurs de la boîte de dialogue de propriétés de la clé. Toutefois, vous êtes sans doute curieux de savoir à quoi elles correspondent. Voici un bref résumé de leur fonction respective. • ID – L’identifiant OpenPGP de la clé. • Type – Le type de méthode de chiffrement employée pour la clé. Pour le courrier électronique, RSA est aujourd’hui la norme. • Size – Le nombre de bits de la clé. • Keyserver – Permet de désigner un serveur de clés prioritaire pour cette clé. • Expires – Permet de modifier la date d’expiration de la clé, ou de choisir une durée de vie illimitée. • Group – Permet de spécifier si la clé est utilisée par un groupe de personnes. Nous en reparlerons au chapitre 11. • Cipher – Le type d’algorithme à utiliser pour cette clé PGP. • Hash – Le type de hachage à utiliser pour cette clé PGP. • Compression – Le type de compression à utiliser pour cette clé PGP. Notez par ailleurs l’existence d’un bouton Change Passphrase (Mac OS X : le troisième à partir de la gauche, en haut) qui modifie votre phrase secrète sans endommager votre clé.
Publier sa clé sur un autre serveur Pour ce faire, trouvez un site web qui accepte l’envoi de clés. Le site pgpkeys.mit.edu, par exemple, fonctionne sans interruption depuis de nombreuses années. Une autre solution consiste à effectuer une recherche Google portant sur « submit PGP keyserver ». Après avoir trouvé un serveur, sélectionnez votre clé dans la fenêtre PGP Desktop et choisissez Édition>Copier. Vous copiez ainsi votre clé dans le Presse-papiers. Cliquez dans le champ adéquat de la page web (ce champ, relativement grand, se nomme généralement Paste your key here ou Submit your key here, ou quelque chose de similaire). Cliquez ensuite sur le bouton Submit : votre clé se trouve maintenant sur le serveur de clés. Félicitations ! Vous en avez fini avec la configuration de PGP et la création de votre clé. S’il faut veiller à toutes sortes de petits détails lorsqu’on utilise PGP, comparez la longueur de ce chapitre avec celle du suivant et soyez reconnaissant de vous en tirer à meilleur compte que les utilisateurs de GnuPG.
© Groupe Eyrolles, 2005
63
chapitre
4
© Groupe Eyrolles, 2005
Installer GnuPG pour Windows, Unix/Linux et Mac OS X
SOMMAIRE
Quels que soient votre système d’exploitation et vos compétences en informatique, il y a forcément une version de GnuPG pour vous.
B Télécharger GnuPG B Quels logiciels installer ? B Installer GnuPG sous Windows B L’interface graphique WinPT B Le gestionnaire de clés d’Enigmail
B Installer GnuPG sous Mac OS X B Installer GnuPG sur un système Unix MOTS-CLÉS
B Sommaire B clé B cheksum B compilation B Enigmail B Perl B phrase secrète B serveur de clés
© Groupe Eyrolles, 2005
Accès libre – PGP & GPG
Si toutes les informations dont vous avez besoin apparaissent au début de ce chapitre, rien ne vous oblige à le parcourir jusqu’à la fin. Cela vaut en particulier pour les utilisateurs Windows et Mac qui ne souhaitent pas compiler GnuPG depuis le code source.
GnuPG est un logicel libre, librement disponible sur Internet, et vous en trouverez également plusieurs versions toutes prêtes pour différents systèmes d’exploitation, usages et types d’utilisateurs. Bien que GnuPG luimême soit extrêmement fiable, certaines des versions alternatives et des ajouts qui ont été conçus pour GnuPG n’offrent pas le même niveau de qualité. En choisissant le bon logiciel et en l’installant et le configurant correctement, vous éviterez de nombreux problèmes par la suite. Nous commencerons par parler des versions les plus simples d’emploi de GnuPG, les fichiers binaires précompilés, et nous verrons ensuite comment compiler soi-même GnuPG depuis les fichiers sources. RÉFÉRENCE Site web officiel et documentation de GnuPG Les documents et les fichiers qu’il propose font autorité. Si vous trouvez quelque part des informations qui contredisent ce site, il est très probable que ce soit ce dernier qui fournisse les informations correctes, et que les documents extérieurs soient erronés. Il est même possible que le site contredise ce livre, du fait d’évolutions qui ont eu lieu depuis sa parution. Par ailleurs, en cas de contradiction entre les informations en français et celles en anglais, ces dernières sont toujours celles qui font autorité. B http://www.gnupg.org
Télécharger GnuPG Sous Linux ? Facile ! GPG est disponible par défaut sur la plupart des distributions Linux : inutile de l’installer, il l’est déjà !
Pour télécharger GnuPG, l’option la plus courante consiste à se rendre sur son site officiel. La page d’accueil devrait automatiquement s’afficher en français (ou dans la langue de votre navigateur). Cliquez sur le lien Téléchargement, à gauche. La page qui s’affiche offre en téléchargement différentes versions de GnuPG sous forme de code source. Un peu plus bas, la section Binaires propose une version exécutable (et donc directement utilisable) de GnuPG pour Windows, ainsi que des liens vers des versions exécutables pour différents autres systèmes, notamment Linux et Mac OS X. Téléchargez la version qui vous intéresse, mais ne décompressez pas tout de suite le fichier obtenu (et, dans le cas de Mac OS X, ne montez pas l’image). En tant qu’utilisateur de Windows, une deuxième option s’offre à vous pour le téléchargement de GnuPG. Vous pouvez en effet utiliser un « pack » qui installe en une seule fois GnuPG, plusieurs interfaces gra-
66
© Groupe Eyrolles, 2005
Le pack en question se nomme Gpg4win, et on le trouve à l’adresse www.gpg4win.org. À moins que vous ayez une raison particulière d’installer séparément GnuPG et les autres programmes OpenPGP, nous vous incitons fortement à choisir Gpg4win, qui représente la solution d’installation la plus simple et la plus fiable (voir « Installation de GnuPG sous Windows », page 73). Les mesures de vérification qui s’appliquent à GnuPG téléchargé seul s’appliquent tout autant à Gpg4win. Par conséquent, n’omettez pas de lire ce qui suit.
ATTENTION Mozilla Thunderbird N’installez pas Gpg4win si vous utilisez l’excellent logiciel libre de courrier électronique Mozilla Thunderbird (le petit frère de Firefox) au lieu d’Outlook/Outlook Express. Dans ce cas, choisissez bien l'installation séparée de GnuPG
Une bonne habitude à prendre : vérifier les sommes de contrôle GnuPG est un système de sécurité employé par un très grand nombre d’utilisateurs de par le monde. En conséquence, si quelqu’un parvenait à remplacer la version officielle de GnuPG par sa propre version légèrement modifiée, il pourrait accéder aux données de toutes les personnes qui installent ce logiciel et qui sont convaincues que leurs informations sont bien protégées. Par conséquent, les distributions de GnuPG sont régulièrement la cible d’attaques, qui peuvent provenir aussi bien d’adolescents blasés (kiddies) que de véritables criminels. Vous devez donc vous assurer que le logiciel que vous avez téléchargé est bien celui créé par les développeurs de GnuPG. La même chose est du reste vraie pour le logiciel PGP, mais celui-ci est proposé par une société qui paie des gens pour qu’ils vérifient l’intégrité des fichiers téléchargés, tandis que GnuPG est mis à disposition de tous par des volontaires. C’est là que les sommes de contrôle entrent en scène. Les sommes de contrôle sont similaires aux empreintes, qui ont été évoquées au chapitre 1. Lorsque le fichier est modifié de quelque manière que ce soit, la somme de contrôle change du tout au tout. Les mathématiciens ont développé de nombreuses méthodes pour calculer des sommes de contrôle, et selon la version de GnuPG que vous téléchargez,
© Groupe Eyrolles, 2005
67
4 – Installer GnuPG pour Windows, Unix/Linux et Mac OS X
phiques de gestion des clés dont WinPT (évoqué dans ce chapitre et les suivants) ainsi que GPGol, le plug-in OpenPGP pour Microsoft Outlook, dont il sera question au chapitre 10. L’installeur permet de sélectionner les éléments à installer, vous évitant ainsi d’encombrer votre disque dur de programmes que vous n’utilisez pas.
Accès libre – PGP & GPG
CULTURE Logiciels téléchargeables depuis le Web La vérification des sommes de contrôle est une mesure de précaution des plus élémentaires dès qu’il s’agit de télécharger un logiciel depuis Internet. Notez d’ailleurs que le statut de logiciel libre est une garantie supplémentaire puisque, bien souvent, les logiciels gratuits mais non libres (dont le code source n’est pas disponible) renferment des logiciels espions.
le type de somme de contrôle est différent. Ainsi, sur la page officielle (en français) de GnuPG, vous constaterez que les informations relatives au téléchargement de chaque fichier occupent plusieurs lignes :
GnuPG 1.4.4 compilé pour Microsoft Windows. Signature et empreinte SHA-1 du fichier précédent. abf49fa5dc71e291144780d47f2811d83ae5e1ba gnupg-w32cli-1.4.4.exe
est le programme lui-même. La deuxième ligne correspond à un
fichier contenant une signature numérique du programme de la ligne précédente. Un téléchargement est un message comme un autre, et la signature numérique est le meilleur moyen de vérifier son intégrité. Toutefois, le problème qui se pose est un peu celui du serpent qui se mord la queue : comment vérifier la signature du logiciel de vérification de signatures ? Il y a heureusement une alternative. Les développeurs proposent une somme de contrôle pour le fichier téléchargé . La somme de contrôle n’est pas une solution aussi fiable qu’une signature numérique complète, mais elle vaut mieux que rien du tout.
Vérifier les sommes de contrôle sous Windows Aucun programme de vérification des sommes de contrôle n’est fourni avec les systèmes d’exploitation Windows, mais il en existe beaucoup qui sont librement disponibles. GnuPG propose un calculateur de sommes de contrôle sur son site, mais il y manque quelques fonctions utiles. Essayez par exemple digestIT 2004, un logiciel gratuit entièrement intégré à l’interface de Windows. Vous le trouverez facilement en effectuant une recherche Google portant sur son nom. Une fois le logiciel installé, un clic droit sur un fichier fait apparaître l’élément de menu digestIT 2004 qui vous propose de calculer ou de comparer des sommes de contrôle MD5 ou SHA-1. Les sommes de contrôle sont un outil tellement utile pour vérifier
68
© Groupe Eyrolles, 2005
4 – Installer GnuPG pour Windows, Unix/Linux et Mac OS X
l’intégrité de logiciels téléchargés que nous conseillons fortement d’installer ce logiciel et de l’utiliser de manière systématique.
Vérifier les sommes de contrôle sous Mac OS X Ceux d’entre vous qui ne sont pas habitués à utiliser le Terminal seront heureux d’apprendre que le logiciel gratuit checkSum+ leur permettra d’effectuer des vérifications de sommes de contrôle par simple glisserdéposer (vous le trouverez par exemple sur www.versiontracker.com). Choisissez pour cela File>Open Explorer après avoir lancé l’application. Les autres pourront utiliser la méthode décrite dans la section suivante, s’ils préfèrent.
Vérifier les sommes de contrôle sous Linux/Unix De nombreux systèmes d’exploitation de type Unix (Mac OS X, les systèmes BSD et la plupart des versions de Linux) sont équipés d’un calculateur de sommes de contrôle. Dans le cas contraire, vous en trouverez sans nul doute en téléchargement. Pour cela, utilisez la commande sha1 ou sha1sum, ou encore md5 ou md5sum, selon le type de somme de contrôle, de la manière suivante (si aucune de ces commandes n’est disponible, utilisez openssl sha1 ou openssl md5) : # sha1 gnupg-w32cli-1.4.4.exe SHA1 (gnupg-w32cli-1.4.4.exe) = abf49fa5dc71e291144780d47f2811d83ae5e1ba
Comparez la somme de contrôle calculée par votre programme avec celle fournie par les développeurs de GnuPG. Si les deux correspondent, il est quasi impossible que quelqu’un ait altéré le fichier que vous avez téléchargé (ici, pour les besoins de l’exemple, c’est un fichier Windows qui est vérifié sur un système Unix, mais vous voyez le principe). Quelle que soit la manière dont vous calculez la somme de contrôle, si les deux sommes ne coïncident pas, votre téléchargement a été corrompu, votre logiciel de calcul de sommes de contrôle ne fonctionne pas correctement, les développeurs de GnuPG ont omis de mettre à jour la somme de contrôle lorsqu’ils ont mis à jour le logiciel, ou le logiciel a été altéré sur son site de téléchargement. La cause la plus probable du problème est un mauvais téléchargement. Essayez de télécharger à nouveau
© Groupe Eyrolles, 2005
ASTUCE Paranoïa chronique Pour une sécurité maximale sans signature numérique, comparez la somme de contrôle du fichier avec une somme de contrôle du même fichier fournie sur un autre site de téléchargement.
69
Accès libre – PGP & GPG
le fichier, si possible depuis un autre site. Si vous ne parvenez toujours pas à obtenir la bonne somme de contrôle, demandez de l’aide par l’intermédiaire d’une liste de diffusion consacrée à GnuPG (voir la page d’accueil de GnuPG). Il n’en existe pas en français à l’heure actuelle ; vous devrez donc rédiger votre question en anglais. Quelle que soit la version de GnuPG choisie, l’installation crée un répertoire GnuPG contenant plusieurs fichiers importants. Nous allons donc les évoquer ici avant de parler de l’installation proprement dite de GnuPG.
Le répertoire de configuration de GnuPG Toutes les informations de GnuPG sont stockées dans un répertoire qui lui est propre : • Sur les systèmes de type Linux/Unix (Mac OS X compris), il s’agit par défaut du répertoire $HOME/.gnupg. • Sur les systèmes d’exploitation Windows, le répertoire par défaut est C:\Documents and Settings\nom d’utilisateur\Application Data\gnupg. Nous nous référerons à ce répertoire comme le répertoire racine de GnuPG. À moins d’avoir une très bonne raison de ne pas utiliser cet emplacement par défaut (par exemple parce que vous aimez saisir des chemins interminables depuis l’invite de commande), n’en changez pas.
Emplacement des trousseaux de clés GnuPG GnuPG crée plusieurs fichiers dans ce répertoire : •
secring.gpg
est votre trousseau de clés secrètes.
•
pubring.gpg
est votre trousseau de clés publiques.
•
trustdb.gpg
est la base de données de fiabilité des clés.
•
gpg.conf
contient vos paramètres de configuration de GnuPG.
Le seul fichier dont vous ayez à vous soucier pour le moment est gpg.conf. Il définit les options locales d’utilisation de GnuPG (nous verrons au fur et à mesure, dans ce livre, quelles options peuvent être ainsi définies).
70
© Groupe Eyrolles, 2005
4 – Installer GnuPG pour Windows, Unix/Linux et Mac OS X
Spécifier serveur de clés et autres options dans gpg.conf Si le fichier gpg.conf n’est pas présent dans votre dossier GnuPG, créezle. Sous Windows, utilisez pour cela un éditeur de texte tel que le Blocnotes et non un logiciel de traitement de texte comme Word. Le fichier gpg.conf peut contenir diverses variables, chaque nom de variable étant suivi de sa valeur 3. Ici, par exemple, la valeur hkp://subkeys.pgp.net a été affectée à la variable keyserver. # serveur de clés à utiliser en priorité keyserver hkp://subkeys.pgp.net
Dans le fichier gpg.conf, les lignes commençant par un signe dièse (#) sont des commentaires. Pour certaines variables, il n’est pas nécessaire de spécifier de valeur : leur seule présence dans le fichier suffit. Ainsi, l’instruction no-secmemwarning évite à elle seule l’affichage incessant du message concernant l’utilisation de mémoire non sécurisée qui apparaît sur certains systèmes Unix.
ATTENTION Extension de noms de fichiers sous Windows Sous Windows, assurez-vous que le système d’exploitation n’ajoute pas automatiquement une extension au nom du fichier lors de son enregistrement, ce qui donnerait par exemple gpg.conf.txt. Si c’est le cas, supprimez cette extension supplémentaire.
Logiciels d’interface graphique à installer pour GnuPG Avant de parler de l’installation de GnuPG proprement dite, il n’est peut-être pas inutile d’évoquer les logiciels qui pourraient vous être utiles. GnuPG est en principe la seule chose dont vous ayez besoin, puisque c’est l’application qui effectue toutes les opérations cryptographiques : création de clé, chiffrement et déchiffrement, signature… Toutefois, il ne fonctionne qu’en mode invite de commande et, à moins d’être un professionnel de l’informatique, vous vous lasserez sans doute rapidement de saisir des commandes au clavier. Pour cette raison, vous souhaiterez sans doute installer une interface graphique pour GnuPG qui facilite son emploi. Lors du choix d’une interface graphique, le principal facteur à prendre en compte est le logiciel de courrier électronique que vous utilisez. Il est possible d’utiliser GnuPG
© Groupe Eyrolles, 2005
71
Accès libre – PGP & GPG
depuis tous les logiciels de courrier électronique courants, mais il en est un qui se détache du lot : Mozilla Thunderbird, (logiciel open source sous licence MPL, Mozilla Public License). Grâce à l’extension Enigmail (sous licences MPL et GPL), qui sera décrite plus en détail au chapitre 10, OpenPGP est particulièrement bien intégré à Thunderbird, au point que toutes les opérations cryptographiques et de gestion des clés peuvent être directement effectuées depuis le logiciel de courrier électronique. Thunderbird et Enigmail présentent trois avantages supplémentaires : ils sont gratuits et libres, entièrement en français et disponibles à la fois pour Windows, Linux et Mac OS X. Si vous ne voulez ou ne pouvez pas utiliser Thunderbird en tant que logiciel de courrier électronique, vous devez installer, en plus de GnuPG, une interface séparée de gestion pour créer et gérer vos clés et celles de vos correspondants. L’autre élément à installer est un plug-in faisant le lien entre GnuPG et votre logiciel de courrier électronique. Ce deuxième élément est spécifique à votre logiciel de courrier électronique. Nous en parlerons de manière plus approfondie au chapitre 10. Le tableau 4-1 résume ce qui précède pour différents logiciels de courrier électronique. Les logiciels auxquels il est fait référence sont tous décrits dans ce chapitre ou dans le chapitre 10. Tableau 4–1 Les éléments à installer en plus de GnuPG en fonction du logiciel de courrier électronique choisi. Logiciel de courrier électronique Mozilla Thunderbird (Windows, Mac OS X, Linux)
Installeur de GnuPG à employer GnuPG seul http://www.gnupg.org ou Mac GNU Privacy Guard
Plug-in pour le logiciel de courrier électronique
Interface de gestion des clés
Enigmail (en français)
comprise dans Enigmail
http://macgpg.sourceforge.net Microsoft Outlook Express (Windows)
Gpg4win (www.gpg4win.org)
GPGoe (en anglais)
WinPT ou autre
Microsoft Outlook (Windows)
Gpg4win (www.gpg4win.org)
GPGol (en anglais)
WinPT ou autre
Apple Mail (Mac OS X)
Mac GNU Privacy Guard (http://macgpg.sourceforge.net)
GPGMail (en français)
GPG Keychain Access
72
© Groupe Eyrolles, 2005
4 – Installer GnuPG pour Windows, Unix/Linux et Mac OS X
Enfin, pour compliquer encore un peu les choses, retenez que les versions des interfaces graphiques choisies doivent correspondre à celles de GnuPG : lorsque vous mettez à jour GnuPG, vous devez généralement mettre à jour également les interfaces graphiques que vous employez, sans quoi vous risquez d’être confronté à des problèmes d’incompatibilité entre les deux.
Installer GnuPG sous Windows GnuPG fonctionne à la fois sur des systèmes d’exploitation Windows de type NT (Windows 2000, 2003, XP, Vista) et sur des systèmes de type Windows 95 (Windows 95, 98 et Me). Si vous êtes le seul utilisateur de votre système d’exploitation, l’installation de GnuPG ne pose aucun problème particulier. En revanche, il est déconseillé de l’installer sur un système de type Windows 95 multi-utilisateur. Comme nous l’avons déjà mentionné, ce système d’exploitation n’est pas véritablement multi-utilisateur, et n’importe qui ayant accès à l’ordinateur a également accès à l’ensemble de ses fichiers, y compris aux données confidentielles qu’ils peuvent contenir, sans que vous puissiez l’en empêcher.
Installer GnuPG seul Cette section décrit comment installer uniquement GnuPG, l’application qui fonctionne en mode ligne de commande, sans aucune interface utilisateur. Même lorsqu’on utilise une interface graphique pour GnuPG, il est utile de savoir comment installer ce dernier seul, notamment parce que certaines des interfaces graphiques disponibles sont livrées sans GnuPG, ce qui veut dire qu’il est nécessaire d’installer celuici au préalable. 1 Rendez-vous sur le site www.gnupg.org et cliquez sur Téléchargement.
Vous devriez voir un lien vers GnuPG pour Windows dans la section Binaires (exécutables). Téléchargez le fichier dans un dossier provisoire de votre disque dur, puis double-cliquez sur le fichier .exe pour lancer l’installation. 2 GnuPG vous demande quelle langue vous souhaitez utiliser pour
l’installeur (voir figure 4-1). Au moment où ces lignes sont écrites, vous avez le choix entre l’anglais et l’allemand. Ensuite, vous verrez se
© Groupe Eyrolles, 2005
73
Accès libre – PGP & GPG
succéder des écrans d’installation classiques (bienvenue, licence GPL…) avant de pouvoir choisir les composants que vous souhaitez installer. L’installation de GnuGP occupe moins de 5 Mo : vous avez sans doute déjà reçu des pièces jointes de messages électroniques plus volumineuses que cela !
Figure 4–1
Le choix de la langue de l’installeur
3 Vous pouvez ensuite choisir la langue de GnuPG lui-même (voir
figure 4-2). Le français fait partie des options disponibles, mais rappelez-vous que vous ne modifiez ainsi que la langue des informations affichées à l’invite de commande, non celle de l’interface graphique elle-même, dont il sera question un peu plus loin.
Figure 4–2
Le choix de la langue de GnuPG
4 Gardez le dossier d’installation par défaut, comme le montre la figure
4-3. Vous simplifiez ainsi l’installation des logiciels qui utilisent GnuPG, notamment les interfaces graphiques. Un dernier écran vous demande où créer des raccourcis pour le programme, après quoi il
74
© Groupe Eyrolles, 2005
4 – Installer GnuPG pour Windows, Unix/Linux et Mac OS X
suffit de cliquer sur Install. Quelques instants plus tard, GnuPG est installé et prêt à être utilisé. L’étape suivante consiste à créer une paire de clés ; nous y reviendrons un peu plus loin dans ce chapitre.
Figure 4–3
Le choix du dossier d’installation de GnuPG
AVANCÉ GnuPG et la variable d’environnement PATH Quelle que soit la version de GnuPG que vous installiez, il est conseillé d’ajouter le chemin d’accès absolu de l’exécutable gpg.exe à votre variable d’environnement PATH afin de pouvoir l’exécuter directement depuis l’invite de commande :
• • • •
Cliquez droit sur le Poste de travail et choisissez Propriétés. Cliquez sur l’onglet Avancé puis sur le bouton Variables d’environnement. Sous Variables système, cliquez sur Path, puis sur Modifier. À la fin du champ Valeur de la variable, ajoutez un point-virgule suivi du chemin de l’exécutable gpg.exe, C:\Program Files\GNU\GnuPG par défaut
Installer GnuPG à l’aide de Gpg4win Le fichier de Gpg4win, en téléchargement gratuit à l’adresse www.gpg4win.org, existe en deux versions. La première comporte une documentation en allemand qui ne vous intéresse sans doute pas, aussi choisirez-vous sans doute la version « light », la seconde. Après avoir téléchargé le fichier et vérifié sa somme de contrôle, procédez comme suit :
© Groupe Eyrolles, 2005
RAPPEL Mozilla Thunderbird N’ayez pas recours à Gpg4win si vous utilisez le logiciel de courrier électronique Thunderbird.
75
Accès libre – PGP & GPG
1 Double-cliquez sur le fichier gpg4win.exe pour lancer l’installation.
Vous voyez s’afficher les classiques écrans de présentation et de licence. En l’occurrence, il s’agit d’une licence GPL, la même que celle de GnuPG. Cliquez sur Next. 2 Un troisième écran vous demande quelles applications installer (voir
LOGICIEL Microsoft Outlook Si vous utilisez Microsoft Outlook, n’oubliez pas, lors de l’installation, de cocher la case GPGol, le plug-in GnuPG pour Outlook. En fait, si vous souhaitez utiliser Outlook avec GnuPG, vous n’avez pas d’autre choix que de passer par Gpg4win, le plug-in GPGol n’étant pas disponible séparément.
figure 4-4). En plus de GnuPG et de WinPT, vous pouvez choisir deux autres interfaces graphiques pour GnuPG (GPA et GPGee), GPGol, qui est un plug-in pour Outlook (nous y reviendrons au chapitre 10), ainsi que Sylpheed, un logiciel de courrier électronique utilisant GnuPG. Choisissez les applications que vous souhaitez installer, puis cliquez sur Next.
Figure 4–4
La sélection des applications à installer par Gpg4win
3 L’installeur vous propose de choisir un répertoire d’installation. Il est
fortement conseillé de garder le répertoire (C:\Program Files\GNU\GnuPG). Cliquez sur Next.
par
défaut
4 L’étape suivante vous permet de décider où vous souhaitez placer des
raccourcis pour accéder aux applications. Activez et désactivez les options voulues. 5 Lorsque vous cliquez sur Next, l’installation de GnuPG et des autres
applications sélectionnées commence (vous devrez éventuellement fermer au préalable Outlook et les fenêtres d’explorateur Windows pour éviter d’avoir à redémarrer l’ordinateur après l’installation).
76
© Groupe Eyrolles, 2005
4 – Installer GnuPG pour Windows, Unix/Linux et Mac OS X
C’est tout : GnuPG et les interfaces que vous avez choisies sont prêts à l’emploi. Notez que par défaut, WinPT est installé dans le même répertoire que GnuPG, soit C:\Program Files\GNU\GnuPG.
L’interface graphique WinPT Il existe différentes interfaces graphiques pour GnuPG, qui ont pour nom GPGShell, GPGee ou encore Gnu Privacy Assistant (GPA). Toutefois, à l’heure actuelle, la plus complète se nomme WinPT (pour Windows Privacy Tray). WinPT (www.winpt.org) masque une grande partie de la complexité de GnuPG derrière une interface conviviale. Si vous souhaitez utiliser GnuPG aussi rapidement que possible, WinPT est une très bonne solution. Rien ne vous empêche pour autant d’installer et d’essayer les autres interfaces disponibles. Leurs fonctions sont très similaires, et une fois que vous saurez utiliser l’une d’entre elles, vous saurez également utiliser les autres.
ATTENTION Version à éviter N’utilisez pas la version de WinPT en français disponible depuis le site SourceForge (http://sourceforge.net) et différents autres sites car elle est obsolète. Préférez la version disponible sur le site de WinPT ou celle de Gpg4win.
Créer une paire de clés dans WinPT Lorsque vous lancez WinPT pour la première fois, vous voyez en principe s’afficher la boîte de dialogue de la figure 4-5, qui vous demande de créer une nouvelle paire de clés GnuPG ou d’importer une paire de clés existante.
Figure 4–5
La boîte de dialogue qui s’affiche au premier lancement de WinPT
Nous supposerons ici que vous n’avez encore jamais créé de clés OpenPGP, et que vous choisissez par conséquent la première option dans cette boîte de dialogue. Vous lancez ainsi l’assistant de génération de clés, qui vous demande votre nom et votre adresse électronique. Néanmoins, après avoir lu le chapitre 2, vous savez qu’il peut être utile de spécifier toutes sortes d’autres informations lors de la génération de la clé.
© Groupe Eyrolles, 2005
77
Accès libre – PGP & GPG
Notez le bouton Expert, dans le coin inférieur droit (voir figure 4-6). Dans la mesure où vous lisez ce livre, vous êtes un expert en matière de calcul de clés. Cliquez sur ce bouton.
Figure 4–6
Les options de base de WinPT pour la création d’une clé
La boîte de dialogue qui s’affiche alors (voir figure 4-7) vous permet de spécifier toutes les informations nécessaires. Nous les avons évoquées au chapitre 2, mais il n’est peut-être pas inutile d’en reparler ici. Laissez tels quels les champs Key type et Subkey size, sauf si vous avez une raison particulière de vouloir limiter les fonctions de votre clé ou de la rendre particulièrement difficile à casser. Dans le champ Real name, entrez vos nom et prénom tels qu’ils apparaissent sur vos pièces d’identité si vous souhaitez que des tiers signent votre clé.
Figure 4–7
Les options « expertes » de création de clés
78
© Groupe Eyrolles, 2005
4 – Installer GnuPG pour Windows, Unix/Linux et Mac OS X
Le champ Comment (commentaires) sert à fournir des informations supplémentaires destinées à vous distinguer de vos homonymes. Entrez dans le champ Email address une adresse électronique qui vous appartient. Pour finir, désactivez Never à droite de Expire date et entrez une date d’expiration située un an dans le futur. Cliquez sur Start. Une nouvelle boîte de dialogue vous demande de saisir votre phrase secrète, puis de la confirmer après avoir cliqué sur OK. Après cela, une boîte de dialogue montre la progression du calcul de la clé sous la forme de signes + et – (voir figure 4-8). Si la progression vous paraît lente, agitez la souris ou promenez-vous pendant un moment sur le Web pour produire l’entropie nécessaire. Une fois l’opération terminée, WinPT vous informe qu’il a calculé vos clés, et vous suggère d’en créer immédiatement une sauvegarde. Acceptez, et choisissez un emplacement de sauvegarde sûr pour votre clé (voir le chapitre 2 pour plus de détails).
Le gestionnaire de clés de WinPT Une fois WinPT lancé et votre clé créée, l’icône d’une clé apparaît dans la zone de notification (à l’extrémité droite de la barre des tâches). Double-cliquez sur cette icône pour lancer le gestionnaire de clés de WinPT, ou cliquez droit dessus pour accéder à diverses autres fonctions. Le gestionnaire (voir figure 4-8) montre la clé que vous venez de créer, et une grande quantité d’espace blanc pour les clés de vos correspondants que vous accumulerez au fur et à mesure.
Figure 4–8
Le gestionnaire de clés de WinPT
© Groupe Eyrolles, 2005
79
Accès libre – PGP & GPG
Créer un certificat de révocation depuis WinPT La prochaine étape consiste à créer un certificat de révocation. 1 Ouvrez le gestionnaire de clés s’il est fermé, cliquez droit sur votre clé
et choisissez Revoke Cert. Une fenêtre s’affiche pour que vous spécifiiez toutes les informations nécessaires à la création de votre certificat de révocation (voir figure 4-9).
Figure 4–9
La boîte de dialogue de création de certificat de révocation
2 Plusieurs motifs standards de révocation de la clé sont proposés dans
la boîte de dialogue, mais pour le moment, nous ne savons pas pourquoi cette clé pourrait être révoquée à l’avenir. Par conséquent, gardez l’option par défaut dans le premier champ, No reason specified (aucune raison spécifiée). 3 Le texte descriptif (Optional description text) est facultatif, mais il est
utile de spécifier que le certificat a été créé lors de la génération de la clé. 4 Pour accéder à votre clé privée, vous devez systématiquement fournir
votre phrase secrète (Passphrase). 5 Pour finir, choisissez le nom et l’emplacement du fichier qui stockera
votre certificat de révocation. Par défaut, WinPT utilise l’identifiant de la clé comme nom de fichier, mais vous devez néanmoins spécifier le répertoire où l’enregistrer. Choisissez un endroit sûr ; stockez-le par exemple au même endroit que la sauvegarde de votre clé secrète. Cliquez ensuite sur OK pour créer le certificat de révocation.
80
© Groupe Eyrolles, 2005
Une fois le certificat de révocation créé, vous pouvez publier sur un serveur de clés. Pour ce faire, cliquez droit sur la clé, choisissez Send to keyserver, puis choisissez l’un des serveurs de clés qui s’affichent dans le sous-menu. Vous pouvez également définir un serveur de clés par défaut. Pour cela, cliquez sur Keyserver dans la barre de menus du gestionnaire de clés. La liste des serveurs qui s’affichent dans la boîte de dialogue est stockée dans le fichier C:\Documents and Settings\nom d’utilisateur\ Application Data\winpt\keyserver.conf. Pour ajouter ou supprimer des serveurs de cette liste, il suffit de modifier ce fichier.
À NOTER WinPT sans invite de commande Si vous n’utilisez que WinPT et si vous n’avez pas l’intention d’employer GnuPG depuis l’invite de commande, vous pouvez sauter le reste de ce chapitre et passer directement au chapitre 5. Sinon, passez à la section « Compilation du code source », page 90.
Le gestionnaire de clés d’Enigmail pour Mozilla Thunderbird Enigmail est une extension (un plug-in, si vous préférez) pour le logiciel de courrier électronique Thunderbird. À l’heure actuelle, il représente la meilleure solution pour l’utilisation d’OpenPGP dans le cadre du courrier électronique – du moins pour tous ceux qui ne sont pas des acharnés de l’invite de commande. Enigmail comprend également une interface de gestion des clés, raison pour laquelle il en est question ici. Pour faire fonctionner Enigmail, vous devez au préalable effectuer les opérations suivantes : 1 Installer GnuPG, comme décrit dans la section « Installation de
GnuPG seul ». 2 Installer l’extension Enigmail elle-même. Vous trouverez les infor-
mations correspondantes au chapitre 10, sous « Thunderbird et GnuPG ». 3 Configurer Enigmail en fonction de votre installation de GnuPG. Là
encore, les informations correspondantes seront disponibles sous « Thunderbird et GnuPG » au chapitre 10. Pour ouvrir l’interface de gestion des clés d’Enigmail, lancez Thunderbird, puis choisissez OpenPGP>Gestion de clés.
© Groupe Eyrolles, 2005
81
4 – Installer GnuPG pour Windows, Unix/Linux et Mac OS X
Envoyer la clé sur un serveur de clés
Accès libre – PGP & GPG
Créer une paire de clés avec Enigmail Contrairement à d’autres interfaces de gestion des clés, Enigmail ne propose pas d’assistant pour la création d’une nouvelle paire de clés. Pour autant, si vous avez lu ce livre jusqu’ici, cette opération ne devrait vous poser aucun problème. 1 Choisissez Générer>Nouvelle paire de clés. La boîte de dialogue Génération de clé OpenPGP
s’affiche (voir figure 4-10).
Figure 4–10
La boîte de dialogue de génération de clé d’Enigmail
AVANCÉ En savoir plus sur Thunderbird L’une des limitations du gestionnaire de clés d’Enigmail est qu’il ne permet de générer des clés que pour les identités que vous avez définies dans Thunderbird, et non pour n’importe quelle adresse électronique de votre choix. Si vous débutez avec Thunderbird et si vous avez besoin de vous familiariser avec ce logiciel, l’ouvrage Thunderbird, le mail sûr et sans s p a m , de Daniel Garance, Dominique et Anne-Laure Quatravaux, aux Éditions Eyrolles, vous en apprendra plus sur le sujet.
82
2 Choisissez le compte de courrier pour lequel vous souhaitez créer une
clé. Assurez-vous que l’option Utiliser la clé générée pour l’identité sélectionnée soit cochée : ainsi, Thunderbird utilisera automatiquement la clé pour le déchiffrement et la signature des messages utilisant cette adresse. 3 Entrez une phrase secrète dans le champ correspondant, et répétez-la
dans le champ adjacent. Vous constaterez qu’Enigmail vous permet également de choisir de ne pas utiliser de phrase secrète, mais c’est une très mauvaise idée : n’importe qui ayant accès à votre ordinateur ou se procurant votre fichier de clé privée pourrait se faire passer pour vous et déchiffrer vos messages confidentiels.
© Groupe Eyrolles, 2005
4 – Installer GnuPG pour Windows, Unix/Linux et Mac OS X
4 Entrez dans le champ Commentaire des informations supplémentaires
susceptibles de vous distinguer de vos homonymes. 5 Dans l’onglet Expiration de la clé, champ La clé expire dans, entrez
Pour une première clé, mieux vaut choisir une date d’expiration relativement proche. 1 année.
6 Cliquez sur l’onglet Avancé. Assurez-vous que la Taille de la clé est de 2 048
(bits) et dans la liste déroulante Type de clé, choisissez RSA.
7 Cliquez sur Générer la clé, puis lisez la note située juste au-dessus de
la barre de progression en attendant que votre clé soit créée. Si la génération prend plus de quelques instants, suivez les instructions de cette note pour donner de l’entropie. Après quelques secondes ou quelques minutes, la boîte de dialogue de génération de clé se ferme et votre nouvelle clé apparaît dans le gestionnaire de clés d’Enigmail.
Créer un certificat de révocation avec Enigmail La prochaine étape consiste à créer un certificat de révocation pour votre clé. Avec Enigmail, cette opération est on ne peut plus simple : • Sélectionner votre clé dans le gestionnaire de clés, puis de choisir Générer>Certificat de révocation. • Saisissez votre phrase secrète, puis choisissez un nom et un emplacement pour le fichier résultant. • Lorsque vous cliquez sur OK ou Enregistrer, votre certificat est généré à l’emplacement que vous avez indiqué. Notez que contrairement à WinPT, Enigmail ne permet pas de spécifier de motif de révocation ni de commentaires.
Envoyer la clé sur un serveur de clés Une fois le certificat de révocation créé, vous pouvez publier sur un serveur de clés. Pour ce faire, sélectionnez la clé, puis choisissez Serveur de clés>Envoyer les clés publiques. La clé est automatiquement envoyée vers le premier serveur de clés défini dans les préférences d’Enigmail (voir le chapitre 10 pour plus de détails à ce sujet).
© Groupe Eyrolles, 2005
83
Accès libre – PGP & GPG
Installer GnuPG sous Mac OS X À la base, Mac OS X est un système d’exploitation Unix (BSD). De ce fait, toutes les informations des sections qui suivent s’appliquent à ce système. Toutefois, nombreux sont les utilisateurs du Mac qui ne sont pas des spécialistes de l’invite de commande. Si vous y êtes allergique, la seule solution, à l’heure actuelle, est d’utiliser Thunderbird avec Enigmail, comme décrit dans les pages qui précèdent ainsi qu’au chapitre 10. Cette solution a de plus l’avantage d’être entièrement en français. Si vous utilisez actuellement Apple Mail ou une autre application (Entourage, Eudora…) à laquelle vous ne souhaitez pas renoncer, vous trouverez des plug-ins pour utiliser GnuPG avec votre logiciel de courrier électronique préféré ; plus d’informations concernant GPGMail, le plugin pour Apple Mail, seront fournies au chapitre 10. Toutefois, vous ne disposerez que d’une interface de gestion des clés en anglais, aux fonctions limitées, qui nécessite de recourir de temps à autre au Terminal.
Télécharger et installer GPG B http://macgpg.sourceforge.net
Téléchargez le fichier d’image disque contenant GnuPG en veillant à choisir la version correspondant à votre version de Mac OS X. Profitezen pour télécharger également Keychain Access, qui est l’interface graphique de GnuPG pour Mac OS X. Installez GnuPG en double-cliquant sur l’image disque (dont l’extension est .dmg), puis sur le « paquet » de GnuPG (son extension est .mpkg). L’installation (en français) n’appelle pas de commentaire particulier : vous devrez confirmer que vous acceptez les conditions de licence, puis choisir un disque de destination pour GnuPG. Une fois l’installation terminée, GnuPG est disponible sur votre Mac, et vous pouvez y accéder depuis le Terminal. L’interface graphique, GPG Keychain Access, se présente sous forme d’un fichier ZIP compressé. Après décompression, vous obtenez un dossier, dans lequel se trouve un deuxième dossier nommé Keychain Access, lequel contient le logiciel lui-même, qui se nomme GPG Trousseau d’accès en français. Faites simplement glisser ce fichier dans votre dossier Applications : vous êtes prêt à créer votre paire de clés.
84
© Groupe Eyrolles, 2005
4 – Installer GnuPG pour Windows, Unix/Linux et Mac OS X
Créer des clés avec Keychain Access Keychain Access est muni d’un assistant de création de clés, qui, suivant la version, s’affichera automatiquement au lancement du logiciel ou pas ; si ce n’est pas le cas, cliquez sur le bouton New. Les étapes successives vous demandent de choisir un type de clé (gardez l’option par défaut, DSA and ElGamal), une taille de clé (choisissez 2 048) et une date d’expiration (pour une première clé, cochez l’option Key has expiration date et choisissez un délai d’expiration d’un an). Entrez ensuite votre identité : votre vrai nom, tel qu’il apparaît sur vos documents d’identité officiels, votre adresse électronique et des commentaires susceptibles de vous distinguer de vos homonymes. La dernière étape consiste à entrer deux fois votre phrase secrète. La création de la clé commence ensuite. Notez que sous OS X, la génération de clés n’est pas très rapide, et qu’il est possible qu’il lui faille une dizaine de minutes, voire plus, pour aboutir. Agitez la souris ou parcourez le Web pour générer de l’entropie et accélérer le traitement. Une fois la clé calculée, l’interface principale de Keychain Access apparaît avec votre clé (voir figure 4-11). Notez la présence de deux onglets, l’un pour les clés publiques, l’autre pour les clés privées.
Figure 4–11
L’interface principale de GPG Keychain Access, avec la liste des clés disponibles
Créer un certificat de révocation La prochaine étape consiste à créer un certificat de révocation. Cette fonction n’étant pas disponible dans l’interface de Keychain Access, vous devez lancer une fenêtre de Terminal (qui se trouve dans le dossier Applications>Utilitaires), puis saisir au clavier les commandes correspondantes.
© Groupe Eyrolles, 2005
85
Accès libre – PGP & GPG
Vous trouverez les informations nécessaires dans la section « Certificats de révocation avec GnuPG », un peu plus loin dans ce chapitre.
Envoyer la clé sur un serveur de clés Une fois le certificat de révocation créé, vous pouvez publier sur un serveur de clés. Pour ce faire, sélectionnez la clé, puis choisissez Key>Send to Keyserver. Par défaut, le serveur de clés employé est hkp://subkeys.pgp.net. Si, pour une raison quelconque, vous souhaitez utiliser un autre serveur, téléchargez GPGPreferences depuis http://macgpg.sourceforge.net, installez-le, puis ouvrez-le depuis les Préférences Système. L’onglet Serveur de clés (voir figure 4-12) vous permet alors de choisir un serveur dans une liste ou d’en ajouter en saisissant l’adresse dans le champ Serveur de clés. Le serveur affiché dans le champ Serveur de clés est celui qui sera employé par défaut.
Figure 4–12
L’onglet Serveur de clés des préférences de GnuPG, sous Mac OS X
86
© Groupe Eyrolles, 2005
4 – Installer GnuPG pour Windows, Unix/Linux et Mac OS X
Installer GnuPG sur Linux et autres systèmes Unix Si vous ne souhaitez pas compiler votre propre binaire GnuPG depuis sa source, vous trouverez facilement des sites de téléchargement proposant des versions déjà compilées pour votre système d’exploitation, notamment AIX, Solaris ou HP/UX. Ces paquets sont généralement compilés avec les outils natifs du système d’exploitation ; veillez à lire attentivement la documentation qui les accompagne. Sur les systèmes d’exploitation libres de type Linux ou BSD, GnuPG est installé d’office ou bénéficie d’une installation simple. Assurez-vous néanmoins que la version de GnuPG fournie avec votre système d’exploitation soit récente. Utilisez gpg --version pour afficher le numéro de votre version de GnuPG. Les deux moyens les plus courants d’installer GnuPG sont d’utiliser des des paquets au format RPM sous des systèmes Linux tels que Fedora Core et Red Hat, ou de faire appel au système de ports/paquets des BSD. Pour installer GnuPG depuis un RPM, téléchargez-le, puis exécutez ce qui suit : # rpm --install nom-du-rpm-gnupg.rpm
Les systèmes BSD placent le kit d’installation de GnuPG soit dans (FreeBSD, OpenBSD), soit dans /usr/ pkgsrc/security/gnupg (NetBSD). Allez dans ce répertoire, puis tapez ce qui suit pour compiler et configurer automatiquement GnuPG pour le système d’exploitation correspondant :
/usr/ports/security/gnupg
# make install clean
Les systèmes BSD fournissent aussi des paquets précompilés. Pour installer par exemple GnuPG sur un système FreeBSD, il suffit d’exécuter la commande suivante : # pkg_add -r gnupg"
© Groupe Eyrolles, 2005
87
Accès libre – PGP & GPG
Ceux d’entre vous ayant plus d’expérience avec les paquets RPM, DEB ou les ports BSD connaîtront sans doute d’autres fonctions de leur système d’exploitation permettant le traitement de paquets (il y a également apt-get sous Debian et pkgadd sous Solaris). Dans ce cas, n’hésitez pas à employer l’outil de votre choix afin d’installer GnuPG pour votre système d’exploitation.
GnuPG et les nombres aléatoires GnuPG utilise des nombres aléatoires pour produire des paires de clés et chiffrer les messages. S’il est très facile d’obtenir des résultats aléatoires dans le monde réel (il suffit pour cela de laisser tomber un œuf et d’observer les éclaboussures obtenues), l’une des caractéristiques de l’ordinateur est justement l’absence de hasard dans son fonctionnement. Les ordinateurs sont censés produire le même résultat à chaque fois qu’une même opération est effectuée. Même s’il est possible de produire des valeurs véritablement aléatoires sur tous les ordinateurs, certains systèmes emploient des générateurs de nombres pseudo-aléatoires (pire : certains de ces générateurs de nombres pseudo-aléatoires sont présentés comme générant des nombres véritablement aléatoires !). Mallory a déjà exploité l’utilisation de tels nombres pseudo-aléatoires pour casser des clés cryptographiques. L’utilisation de GnuPG nécessite de disposer d’une source de hasard de bonne qualité. Windows, Linux et les systèmes BSD disposent de bons systèmes de génération de hasard, mais ce n’est pas le cas pour tous les systèmes Unix, y compris des systèmes commerciaux tels que AIX, HP/UX et d’anciennes versions de Solaris. Certains de ces systèmes peuvent être complétés par des applications de génération de hasard, et certains administrateurs système utilisent des astuces pour générer du hasard, mais ces méthodes ne sont pas nécessairement conformes aux normes et il n’est pas certain qu’elles fonctionnent avec GnuPG.
EGD, le démon accumulateur d’entropie EGD (Entropy Gathering Daemon, démon accumulateur d’entropie) a été écrit pour fournir du hasard à GnuPG. EGD est un script en langage Perl exécutant différents programmes système qui produisent des résultats imprévisibles (top, vmstat, etc.) et les combine pour former une
88
© Groupe Eyrolles, 2005
4 – Installer GnuPG pour Windows, Unix/Linux et Mac OS X
source de hasard de qualité acceptable. Vous devez disposer de Perl en version 5.004 ou supérieure pour pouvoir utiliser EGD. EGD n’est pas une aussi bonne source de hasard que celles disponibles sur les autres systèmes d’exploitation, mais il est suffisant pour qu’un utilisateur de GnuPG puisse se sentir raisonnablement en sécurité. EGD n’est pas nécessaire sous Windows, Linux, BSD ni Mac OS X à partir de la version 10.1. Vous pouvez télécharger EGD depuis le site web de GnuPG. Une fois le téléchargement terminé, vérifiez la somme de contrôle du paquet et extrayez-le. Pour installer ensuite EGD, suivez ces étapes : 1 Passez au répertoire où vous avez extrait les fichiers, puis exécutez ce
qui suit : # perl Makefile.pl # make test # make install
Vous trouverez egd.pl soit dans /usr/bin, soit dans /usr/local/bin, en fonction de votre configuration Perl. 2 Si vous n’avez encore jamais exécuté GnuPG sur cet ordinateur, créez
un répertoire .gnupg dans votre répertoire de départ. 3 Par défaut, EGD fournit des valeurs aléatoires dans le fichier .gnupg/ entropy, mais il ne peut créer de lui-même ce répertoire. Pour ce faire, lancez EGD quelques instants avant de démarrer GnuPG. Mieux encore : lancez-le avant d’installer GnuPG, le processus de compilation lui-même générant une bonne quantité d’entropie. # egd.pl ~/.gnupg/entropy
4 Vous devez indiquer à GnuPG d’utiliser EGD plutôt que l’outil de
génération de hasard du système d’exploitation, qui n’existe pas. Pour ce faire, ajoutez la ligne suivante à votre fichier gpg.conf : load-extension rndegd
Vous pouvez aussi ajouter l’argument --load-extension=rndegd à chaque fois que vous lancez GnuPG. Néanmoins, il est préférable d’éviter autant que possible d’avoir à ajouter des arguments aux commandes que vous exécutez !
© Groupe Eyrolles, 2005
89
Accès libre – PGP & GPG
Compiler le code source de GnuPG La possibilité d’accéder au code source est l’un des principaux avantages de la licence de GnuPG. Si vous souhaitez simplement que vos logiciels fassent ce qu’on leur demande sans vous préoccuper de leur fonctionnement interne, vous pouvez sans doute passer directement à la section suivante. Ceux d’entre vous qui utilisent make aussi souvent que d’autres jouent au Solitaire seront intéressés par ce qui suit. AVANCÉ Compilation de GnuPG sous Windows Il est possible de compiler GnuPG sur un système Windows, mais c’est une opération à réserver aux spécialistes. Ici, nous supposerons que vous effectuez la compilation sous Unix, qui est l’environnement natif de GnuPG.
GnuPG a initialement été conçu comme un logiciel Unix, ce que son code source laisse clairement apparaître. En réalité, la version Windows distribuée sur le site web de GnuPG résulte d’une compilation croisée sur un système de type Unix.
Installer sa version compilée de GnuPG GnuPG est habituellement compilé à l’aide du compilateur GCC, gmake et autoconf, qui peuvent être librement téléchargés depuis de nombreux sites Internet. Vous devez les installer avant de compiler GnuPG. Pour le faire correctement, référez-vous à leur documentation. Une fois que vous disposez de ces applications, suivez les étapes ci-après : 1 Téléchargez le code source de GnuPG depuis le site web ou l’un de
ses miroirs. Vérifiez la somme de contrôle pour vous assurer que vous disposez du bon code source. 2 Le source de GnuPG est distribué sous la forme d’une archive tar
bzippée, que vous devez donc décompresser et extraire : # bunzip gnupg-1.4.4.tar.bz2 | tar -xf –
Le répertoire résultant contient plusieurs fichiers au format texte fournissant des informations ainsi que les fichiers nécessaires pour compiler l’application. Le fichier README, notamment, contient une rapide introduction à GnuPG tandis qu’INSTALL fournit des informations détaillées sur la manière de compiler GnuPG à partir du code source et de le faire fonctionner sur votre système. 3 Le script configure vérifie votre système pour confirmer que tout est
prêt pour effectuer la compilation. Pour une configuration standard de GnuPG, exécutez simplement ce qui suit : # ./configure
90
© Groupe Eyrolles, 2005
4 – Installer GnuPG pour Windows, Unix/Linux et Mac OS X
Régler les options de configuration Les options de configuration de GnuPG peuvent pour la plupart être définies à l’aide de commande spécifiées lors de l’utilisation de configure. Pour afficher la liste de ces options, utilisez l’option --help. À titre d’information, voici les plus courantes : • Si vous avez besoin d’EGD pour générer du hasard sur votre système d’exploitation, utilisez l’option --enable-static-rnd=egd. Vous évitez ainsi d’avoir à modifier le fichier de configuration ou à ajouter des commandes au lancement de GnuPG pour lui indiquer que vous utilisez EGD. • L’option --prefix vous permet de choisir où placer les applications compilées et leur documentation. Ainsi, pour compiler votre propre version de GnuPG qui utilise EGD et dont les fichiers binaires soient placés à la racine de votre compte, exécutez ce qui suit : # ./configure --enable-static-rnd=egd --prefix=/home/mwlucas
Si votre système dispose de tous les éléments nécessaires pour compiler GnuPG, le processus de configuration affichera une série d’écrans d’information, puis vous devriez retrouver l’invite de commande. Si toutefois, pour une raison quelconque, votre système ne parvient pas à compiler GnuPG, le script configure affiche des avertissements et arrête son exécution. Vous devez alors remédier aux problèmes avant de pouvoir poursuivre. Après avoir configuré GnuPG, compilez-le et installez-le : # make # make install
Si vous rencontrez un problème lors de la compilation de GnuPG, il est probable que d’autres y aient été confrontés avant vous. Lisez d’abord le message d’erreur et essayez de le comprendre. S’il est incompréhensible pour vous, recherchez ce message sur Google et sur les archives de la liste de diffusion gnupg-users (elle est accessible depuis www.gnupg.org). Si ces deux sources ne vous fournissent pas de réponse, posez une question sur la liste de diffusion gnupg-users.
© Groupe Eyrolles, 2005
91
Accès libre – PGP & GPG
Utiliser GnuPG en mode root setuid Sur les systèmes de type Unix, il est possible que vous voyiez apparaître le message suivant à chaque lancement de GnuPG : gpg: AVERTISSEMENT: l’utilisation de la mémoire n’est pas sûre ! gpg: voir http://www.gnupg.org/fr/faq.html pour plus d’informations
Tous les systèmes d’exploitation actuels font appel à de la mémoire virtuelle, ce qui consiste à écrire sur disque les parties de la mémoire système les moins fréquemment employées afin que les programmes les plus actifs disposent de plus de place. GnuPG vous indique par ce message que le système d’exploitation fait justement appel à de la mémoire virtuelle, ce qui, en principe, peut permettre à une personne connaissant bien votre système d’exploitation d’accéder à votre clé privée. À l’évidence, c’est un problème. Pour résoudre ce problème, vous pouvez autoriser le programme gpg à s’exécuter en tant que root en activant le bit setuid. Les programmes setuid n’utilisent jamais de mémoire virtuelle, ce qui évite le risque décrit plus haut. En revanche, ils ont mauvaise réputation dans le monde de la sécurité parce que dans certaines circonstances, ils peuvent représenter un moyen pour des individus malveillants d’accéder illégalement à un ordinateur. Pour cette raison, GnuPG ne s’installe pas en tant que root setuid. C’est à l’administrateur système de décider s’il accepte un programme setuid en plus ou non. Dans le cas de GnuPG, l’exécution en tant que root setuid se justifie tout à fait. Pour l’exécuter comme tel, exécutez ce qui suit : # chown root /usr/local/bin/gpg* # chgrp wheel /usr/local/bin/gpg* # chmod 4755 /usr/local/bin/gpg*
Si vous ne disposez pas des privilèges pour exécuter ces commandes sur votre système, parlez-en à votre administrateur système (et cessez d’utiliser GnuPG sur un système dont vous n’avez pas le contrôle). Si vous ne voulez ou ne pouvez pas installer gpg en tant que root setuid, vous pouvez du moins éviter l’affichage du message d’avertissement en ajoutant l’option no-secmem-warning à votre fichier gpg.conf. Le problème ne sera pas résolu pour autant, mais du moins GnuPG cessera-t-il de vous en avertir systématiquement.
92
© Groupe Eyrolles, 2005
4 – Installer GnuPG pour Windows, Unix/Linux et Mac OS X
N’exécutez pas GnuPG en tant que root Maintenant que GnuPG est installé exactement comme vous le voulez, il est temps de l’utiliser. S’il est nécessaire d’être root pour installer de GnuPG sur votre système, évitez-le lors de son exécution. Le compte root est réservé à l’administration du système et la résolution de problèmes, et ne doit pas être employé pour des tâches quotidiennes. À RETENIR Symbole de l’invite de commande Si votre système utilise le signe dièse (#) pour indiquer une invite de commande au niveau root, ne prêtez pas attention à la présence de ce signe dans les autres exemples de ce livre. GnuPG est conçu pour être employé au quotidien par un seul utilisateur, et non à partir du compte root (et cessez de vous fier à l’invite de commande pour savoir si vous êtes root ou non ; Mallory peut très facilement modifier votre invite de commande).
Créer une paire de clés GnuPG depuis l’invite de commande Comme pour n’importe quelle autre mise en œuvre d’OpenPGP, vous devez créer une paire de clés avant d’accéder à la plupart des fonctions de GnuPG. Rappelez-vous que vous ne devez créer votre paire de clés que sur une machine dont vous avez le contrôle. Si vous laissez traîner votre paire de clés, n’importe qui pourra se faire passer pour vous. Au passage, les paires de clés utilisées dans cet ouvrage ne sont que des exemples. Vous pouvez utiliser GnuPG sur des systèmes Windows ou Unix (Mac OS X compris). L’invite varie selon le système, mais les commandes GnuPG sont identiques. Dans les exemples qui suivent, nous utilisons le dièse (#) Unix simplement parce qu’il est plus court que l’invite de type C:>Program Files\ de Windows. Créez votre paire de clés en entrant ce qui suit : # gpg --gen-key gpg (GnuPG) 1.4.4; Copyright (C) 2006 Free Software Foundation, Inc. This program comes with ABSOLUTELY NO WARRANTY . This is free software, and you are welcome to redistribute it under certain conditions. See the file COPYING for details.
© Groupe Eyrolles, 2005
93
Accès libre – PGP & GPG
gpg : le porte-clés `/home/mwlucas/.gnupg/secring.gpg` a été créé gpg : le porte-clés `/home/mwlucas/.gnupg/pubring.gpg` a été créé
L’option --gen-key demande à GnuPG de créer une nouvelle paire de clés. À chaque nouveau lancement de GnuPG, il vous rappelle qu’il n’offre aucune garantie , et vous informe de ses conditions de licence (GPL). Lors de la première exécution de GnuPG, le programme crée un répertoire pour stocker vos clés privées , vos clés publiques ainsi que les autres informations utilisées par GnuPG. Nous examinerons plus en détail ces fichiers dans les prochains chapitres. Sélectionnez le type de clé désiré: (1) DSA et Elgamal (par défaut) (2) DSA (signature seule) (5) RSA (signature seule) Votre choix ? 5
La méthode de création de clé par défaut a été employée pendant de nombreuses années, mais elle commence à vieillir. Choisissez plutôt une clé RSA . les clés RSA peuvent faire entre 1024 et 4096 bits de longueur. Quelle taille de clé désirez-vous ? (2048) 2048 La taille demandée est 2048 bits
GnuPG utilise une taille de clé par défaut de 2 048 bits, qui offre un niveau de sécurité élevé pour les années à venir. Comme nous l’avons déjà mentionné, en augmentant la taille de la clé, on augmente aussi la quantité de travail nécessaire pour la traiter. Par conséquent, à moins d’être sûr que vos correspondants disposent d’ordinateurs performants, mieux vaut garder l’option par défaut. Une fois que vous avez choisi une taille de clé, GnuPG vous demande sa date d’expiration. Spécifiez combien de temps cette clé devrait être valide. 0 = la clé n’expire pas = la clé expire dans n jours w = la clé expire dans n semaines m = la clé expire dans n mois y = la clé expire dans n années La clé est valide pour ? (0) 1y
94
© Groupe Eyrolles, 2005
4 – Installer GnuPG pour Windows, Unix/Linux et Mac OS X
La clé expire le 06/26/07 12:38:32 Est-ce correct ? (o/N) o
Nous avons parlé des délais d’expiration au chapitre 2. Pour une première clé, mieux vaut choisir un délai d’expiration d’un an. Affectez maintenant un nom et une adresse électronique à votre clé : Vous avez besoin d’un nom d’utilisateur pour identifier votre clé; le programme le construit à partir du nom réel, d’un commentaire et d’une adresse e-mail de cette manière: « Heinrich Heine (Der Dichter) » Nom réel: Michael Warren Lucas Jr((1)) Adresse e-mail:
[email protected]((2)) Commentaire: Author, consultant, sysadmin
Les informations que vous entrez ici doivent être votre nom véritable , tel qu’il apparaît sur vos pièces d’identité officielles (voir chapitre 2), votre adresse électronique ainsi éventuellement qu’un commentaire permettant de vous distinguer de vos homonymes. GnuPG affiche alors ce qui suit : Vous utilisez le jeu de caractères ’CP850’. Vous avez sélectionné ce nom d’utilisateur: "Michael Warren Lucas Jr (Author, consultant, sysadmin) <
[email protected]>" Changer le (N)om, le (C)ommentaire, l’(E)-mail ou (O)K/ (Q)uitter ? o
De quoi auriez-vous l’air si, après avoir fait signer votre clé par toutes sortes de personnes, vous constatiez qu’elle comporte une faute de frappe. C’est votre dernière chance de vérifier ce que vous avez saisi et de vous assurer qu’aucune erreur ne s’y est glissée. Modifiez si nécessaire les valeurs à corriger en appuyant sur la touche correspondante ou, pour confirmer les informations, appuyez sur o pour continuer. La prochaine étape consiste à entrer votre phrase secrète : Vous avez besoin d’une phrase de passe pour protéger votre clé secrète. Entrez la phrase de passe:
© Groupe Eyrolles, 2005
95
Accès libre – PGP & GPG
Comme nous l’avons vu au chapitre 1, une phrase secrète (ou phrase de passe) n’est rien d’autre qu’un mot de passe particulièrement long. Elle sert à protéger votre clé secrète pour garantir que vous seul puissiez l’utiliser. Choisissez une phrase secrète que vous puissiez vous rappeler facilement, mais que personne d’autre ne puisse deviner. Saisissez deux fois votre phrase secrète ; si vos deux phrases diffèrent, vous verrez s’afficher un message d’erreur, comme c’est le cas lorsque vous définissez un mot de passe dans diverses autres applications. Vous voyez alors s’afficher ce qui suit : Un grand nombre d’octets aléatoires doit être généré. Vous devriez faire autre-chose (taper au clavier, déplacer la souris, utiliser les disques) pendant la génération de nombres premiers; cela donne au générateur de nombres aléatoires une meilleure chance d’avoir assez d’entropie. ....+++++ ..+++++
Votre système d’exploitation fournit des valeurs aléatoires à la demande, soit par l’intermédiaire d’outils faisant partie du système d’exploitation, soit à l’aide d’un programme externe tel qu’EGD. Les valeurs aléatoires proviennent d’actions hors du contrôle de l’ordinateur, par exemple des déplacements de la souris ou l’arrivée de paquets réseau. Il peut arriver que votre ordinateur soit à court de valeurs aléatoires, auquel cas il aura besoin de votre aide pour en créer. Si le processus de génération de la clé dure trop longtemps, faites bouger la souris, ouvrez une page web ou tapez un document en laissant l’invite de commande ouverte à l’arrière-plan. Les déplacements de souris sont généralement considérés comme une excellente source de hasard si votre système d’exploitation les utilise. C’est le cas de Windows et de certains systèmes Linux et BSD ; en revanche, les systèmes Unix commerciaux n’y ont généralement pas recours. Après quelques instants, GnuPG confirme la création d’une nouvelle paire de clés : gpg: clé F6C26699 marquée comme ayant une confiance ultime les clés publique et secrète ont été créées et signées .
.
gpg: vérifier la base de confiance
96
© Groupe Eyrolles, 2005
4 – Installer GnuPG pour Windows, Unix/Linux et Mac OS X
gpg: 3 marginale(s) nécessaires, 1 complète(s) nécessaires, modèle de confiance PGP gpg: profondeur: 0 valide: 2 signé: 0 confiance: 0-. 0g. 0n. 0m. 0f. 2u gpg: la prochaine vérification de la base de confiance aura lieu le 2007-06-22 pub 2048R/F6C26699 2006-06-26 [expire: 2007-06-26] Empreinte de la clé = EEB7 F8DD 56EA EDC0 E20A C18C FD5C A2C1 F6C2 6699 uid Michael Warren Lucas Jr (Auteur, consultant, administrateur système) <
[email protected]> Notez que cette clé ne peut être utilisée pour chiffrer . Vous pouvez utiliser la commande «--edit-key» pour générer une sousclé à cette fin.
Vous apprenez ici différentes choses concernant votre clé. Premièrement, vous voyez apparaître le keyid de votre clé, F6C26699 . Ce keyid n’est pas unique : il est possible qu’un autre utilisateur d’OpenPGP utilise une clé ayant le même identifiant. Toutefois, il vous permettra de distinguer les clés de votre trousseau privé. Votre niveau de confiance en cette clé est ultime : elle a été générée sur votre propre ordinateur, et si dans ces conditions, vous ne pouvez lui faire confiance, vous avez des problèmes que GnuPG ne peut vous aider à résoudre. Par ailleurs, une clé publique et une clé secrète ont été créées et signées . L’empreinte de la clé permet de vérifier de visu l’identité d’une clé publique. Il n’est pas absolument certain que cette empreinte soit unique : de même que pour les empreintes dont il a été question au chapitre 1, il est théoriquement possible que quelqu’un d’autre s’avère disposer d’une clé dont l’empreinte est identique à la vôtre. Néanmoins, la probabilité est faible, un peu comme celle d’être tué par la chute d’une météorite. Combiné avec votre nom et votre adresse électronique, enfin, l’empreinte est unique à coup sûr. Pour finir, un message vous informe que vous ne pouvez utiliser cette clé pour chiffrer les messages ; c’est dû à l’algorithme de génération de clé choisi (RSA). Pour chiffrer des messages, vous devez au préalable créer une sous-clé de votre clé, une opération qui ne prend que quelques instants : gpg --edit-key mwlucas gpg (GnuPG) 1.4.4; Copyright (C) 2006 Free Software Foundation, Inc.
© Groupe Eyrolles, 2005
97
Accès libre – PGP & GPG
This program comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to redistribute it under certain conditions. See the file COPYING for details. La clé secrète est disponible.
En tapant --edit-key, vous passez en mode Commande. Pour spécifier la clé à modifier, entrez une partie de l’identifiant de la clé, ici mwlucas. Commande> addkey La clé est protégée. Vous avez besoin d’une phrase de passe pour déverrouiller la clé secrète pour l’utilisateur: « Michael Warren Lucas Jr (Auteur, consultant, administrateur système) <
[email protected]> » clé de 2048 bits RSA, ID F6C26699, créée le 2006-06-26
La commande addkey ajoute une sous-clé à la clé choisie. Une fois cette sous-clé créée, elle sera automatiquement employée pour le chiffrement de vos missives. Vous devez saisir votre phrase secrète pour accéder à votre clé. Une fois celle-ci saisie, choisissez le type de clé voulu : Sélectionnez le type de clé désiré: (2) DSA (signature seule) (4) Elgamal (chiffrement seul) (5) RSA (signature seule) (6) RSA (chiffrement seul) Votre choix ? 6
Votre clé permet déjà de signer vos messages ; la sous-clé que vous ajoutez doit vous permettre de les chiffrer. Par conséquent, appuyez sur 6 pour choisir RSA (chiffrement seul). Les étapes suivantes consistent à choisir une taille de clé (2 048 bits), un délai d’expiration (un an, s’il s’agit de votre première clé), et à confirmer deux fois les informations que vous avez entrées. Après cela, GnuPG calcule la sous-clé, ce qui nécessite encore une fois de générer des nombres aléatoires ; ces étapes sont exactement identiques à celles des pages précédentes. La sous-clé une fois générée, tapez quit pour quitter le mode Commande et enregistrez les modifications en appuyant sur o.
98
© Groupe Eyrolles, 2005
4 – Installer GnuPG pour Windows, Unix/Linux et Mac OS X
Créer un certificat de révocation La création d’un certificat de révocation nécessite de pouvoir accéder à sa clé privée, de connaître sa phrase secrète et de disposer d’une version compatible d’un système OpenPGP. Le meilleur moyen d’être sûr de disposer de tous ces éléments est de créer son certificat de révocation immédiatement après la paire de clés. Pour ce faire, exécutez ce qui suit à l’invite de commande : # gpg -a --output
[email protected] X --gen-revoke
[email protected] Ici, nous demandons à GnuPG de créer un fichier nommé
[email protected] . Nous conseillons d’utiliser pour les certificats de révocation des noms de fichier incluant l’adresse électronique auxquels ils sont associés, mais vous pouvez utiliser tout autre système à votre convenance. Le fichier créé doit être un certificat de révocation pour la clé dont l’identifiant comprend
[email protected] . Après avoir affiché les informations sur cette clé, GnuPG vous demande de confirmer que vous souhaitez créer un certificat pour elle. sec 2048R/F6C26699 2006-06-26 Michael Warren Lucas Jr (Auteur, consultant, administrateur système) <
[email protected]> Générer un certificat de révocation pour cette clé ? (o/N) o choisissez la cause de la révocation: 0 = Aucune raison spécifiée 1 = La clé a été compromise 2 = La clé a été remplacée 3 = La clé n’est plus utilisée Q = Annuler (Vous devriez sûrement sélectionner 1 ici) Votre décision ? 0
Dans la mesure où vous n’avez pour le moment aucune idée de la raison pour laquelle vous pourriez être amené à la révoquer, entrez 0 . Le motif de révocation de la clé choisi ici n’a pas une importance capitale : votre certificat sera pris en compte quelle que soit la raison réelle de la révocation.
© Groupe Eyrolles, 2005
99
Accès libre – PGP & GPG
Entrez une description optionnelle ; terminez-là par une ligne vide: >Certificat de révocation généré lors de la création de la clé > Cause de révocation: Aucune raison spécifiée (Aucune description donnée) Est-ce d’accord ? (o/N) o
GnuPG vous demande une description pour la clé (cette description peut être courte ou vous pouvez l’omettre). Appuyez ensuite deux fois sur Entrée , puis confirmez la création du certificat . Vous avez besoin d’une phrase de passe pour déverrouiller la clé secrète pour l’utilisateur: « Michael Warren Lucas Jr (Auteur, consultant, administrateur système) <
[email protected]> » clé de 2048 bits RSA, ID F6C26699, créée le 2006-06-26 Entrez la phrase de passe:
Une fois que vous avez saisi la phrase secrète pour accéder à votre clé privée, GnuPG crée le certificat de révocation, puis affiche un bref message indiquant comment sécuriser votre clé et votre certificat de révocation.
Rendre publique votre clé Si vous utilisez PGP, le logiciel envoie automatiquement votre clé sur le serveur de clés de PGP Corporation. En tant qu’utilisateur de GnuPG, vous pouvez choisir n’importe quelle méthode de publication. Vous pouvez aussi bien ne pas la rendre publique du tout que la diffuser auprès du monde entier. Les méthodes de diffusion les plus courantes sont la mise à disposition de la clé sur une page web ou un autre support Internet (finger, ftp…) et l’envoi de la clé sur un serveur de clés.
Extraction de la clé Votre clé publique est stockée dans le fichier pubring.gpg qui se trouve dans votre répertoire racine GnuPG, mais ne proposez pas ce fichier en téléchargement sur votre page web ! En effet, il contient aussi toutes les autres clés publiques que vous avez ajoutées à votre trousseau. OpenPGP définit un format standard de présentation de clés publiques sous forme
100
© Groupe Eyrolles, 2005
4 – Installer GnuPG pour Windows, Unix/Linux et Mac OS X
de texte afin qu’elles puissent être facilement affichées par des navigateurs. Par ailleurs, GnuPG comporte des outils permettant d’extraire votre clé publique de votre trousseau dans un format qui puisse facilement être utilisé par des tiers. Contrairement à l’extraction d’une véritable clé d’un porte-clé, le fait d’extraire votre clé publique de votre trousseau virtuel crée simplement une copie de la clé dans un nouveau fichier. # gpg --output
[email protected] X --export mwlucas
Ici, nous utilisons GnuPG pour créer un fichier, pubkey.mwlucas@ , qui contient notre clé publique. Nous indiquons à GnuPG quelle clé exporter en spécifiant une partie de son identifiant . Si la clé publique exemple contenait plus d’une clé comportant la chaîne mwlucas, nous devrions utiliser une description plus complète. blackhelicopters.org.gpg
Si vous examinez maintenant le fichier qui vient d’être créé, vous constaterez qu’il ne contient que des données binaires (autrement dit, un charabia sans queue ni tête). Les données binaires conviennent parfaitement aux machines, mais il n’est pas adapté du tout au courrier électronique, aux pages web ou à tout autre système un tant soit peu convivial. Pour rendre votre clé publique plus visible, vous pouvez la convertir en caractères ASCII à l’aide de l’option --armor : # gpg --output
[email protected] X –armor --export mwlucas
À RETENIR Format binaire et format ASCII Les données binaires sont traitées de manière différente selon le système d’exploitation, et leur transmission par courrier électronique peut les altérer. L’option --armor protège les données binaires en les transformant en données ASCII, à l’ancienne. Le fait que les données ainsi présentées soient plus faciles à lire par les humains n’est qu’une conséquence secondaire (bénéfique) de cette transformation.
La seule différence entre cette commande et la suivante est l’ajout de l’option --armor , mais le fichier résultant est différent, puisqu’il ressemble à ceci : -----BEGIN PGP PUBLIC KEY BLOCK----Version: GnuPG v1.4.4 (FreeBSD) mQGiBEIL3skRBADyThL7faGX/ JL7xZYL6TPYJzvxn5qHUTAO9Hw4o99OLTLMI7J3 14g6i7XTS37C90ntI8hAFZV7yaXXj5dA5pduIkuEVAmxat4OydPqqE31XNScIAn q ...
© Groupe Eyrolles, 2005
101
Accès libre – PGP & GPG
Quelques dizaines de lignes plus loin, vous devriez voir ce qui suit : -----END PGP PUBLIC KEY BLOCK-----
Il s’agit de votre clé publique sous une forme déchiffrable par l’homme. « Déchiffrable » est ici à prendre au sens large : sous cette forme, il est sans doute possible d’épeler une clé, mais il faudrait pour cela être très motivé. Malgré tout, elle représente un net progrès par rapport aux données binaires. Vous pouvez proposer ce fichier en téléchargement sur votre site ou même le copier et le coller tel quel dans une page. Pour les personnes qui cherchent votre clé publique, un fichier téléchargeable sera plus simple d’emploi.
Serveurs de clés Avant d’envoyer votre clé publique sur un serveur de clés, vous devez choisir le serveur de destination. La liste des serveurs change fréquemment, aussi ne présenterons-nous pas ici de « top ten ». Le plus simple est soit d’utiliser subkeys.pgp.net, soit d’effectuer une recherche Google portant sur les serveurs de clés OpenPGP (keyservers en anglais). Si vous aimez taper au clavier, vous pouvez spécifier le serveur de clés depuis l’invite de commande à l’aide de la commande --keyserver : # gpg --keyserver subkeys.pgp.net X --send-keys
[email protected] Ici, la clé publique correspondant à l’adresse électronique est envoyée au serveur de clés subkeys.pgp.net . Le serveur de clés devrait répondre en indiquant qu’il a bien reçu la clé. Cette dernière sera accessible à tous, dès que les serveurs se seront échangé ces informations entre eux, ce qui va généralement très vite. L’inconvénient de cette approche est qu’il est nécessaire de spécifier à chaque fois le serveur de clés depuis l’invite de commande, ce qui devient rapidement fastidieux. Pour spécifier un serveur de clés par défaut, définissez l’option keyserver dans le fichier gpg.conf qui se trouve dans le répertoire racine de GnuPG : keyserver x-hkp://subkeys.pgp.net
102
© Groupe Eyrolles, 2005
4 – Installer GnuPG pour Windows, Unix/Linux et Mac OS X
Si, après avoir défini un serveur de clés de cette manière, vous souhaitez en utiliser un autre, spécifiez-le depuis l’invite de commande : il sera utilisé à la place de celui indiqué dans le fichier gpg.conf.
Formulaires web Certains utilisateurs rencontrent des problèmes lorsqu’ils essaient de contacter un serveur de clés depuis leur réseau. Ce problème semble affecter un nombre non négligeable de personnes et laisse supposer que certaines configurations de réseau rendent difficile tout contact avec les serveurs de clés. Si c’est votre cas, vous pouvez envoyer votre clé OpenPGP par l’intermédiaire d’un formulaire web. Vous en trouverez un sur le site http://pgp.mit.edu, par exemple. Copiez votre clé ASCII (celle créée avec l’option --armor) et collez-la dans le champ correspondant. Cette procédure devrait fonctionner même depuis un accès limité à Internet.
© Groupe Eyrolles, 2005
Vous trouverez une liste de serveurs qui semble régulièrement mise à jour à l’adresse : B www.rossde.com/PGP/pgp_keyserv.html
103
chapitre
5 Hugo Christine Moi Adèle Bob
Muriel Charles
...
© Groupe Eyrolles, 2005
Le réseau de confiance
SOMMAIRE
Pour échanger des messages avec des tiers et vérifier l’identité des expéditeurs des messages reçus, vous devez disposer de leurs clés publiques. Ces clés peuvent être signées par d’autres, qui se portent garants de l’identité de leur propriétaire. Et c’est ainsi que se tisse peu à peu un réseau de confiance.
B Les serveurs de clés B Signer une clé : pourquoi et comment ?
B Séances de signature de clés B Fiabilité des clés B À l’écart du réseau de confiance MOTS-CLÉS
B confiance B fiabilité des clés B signature B recherche de clés
© Groupe Eyrolles, 2005
Accès libre – PGP & GPG
Maintenant que vous disposez de votre propre paire de clés et que vous avez diffusé votre clé publique, vous pouvez lire n’importe quel message chiffré avec votre clé publique, et vos destinataires peuvent vérifier que les messages que vous leur envoyez proviennent bien de vous. Toutefois, ce n’est là que la moitié du processus de communication confidentielle. Vous devez également pouvoir envoyer à des tiers des messages qu’ils seront seuls à pouvoir lire et vérifier que les expéditeurs des messages que vous recevez sont bien qui ils prétendent être. Ces tâches nécessitent de disposer des clés publiques des personnes avec qui vous êtes en contact. Avec les clés publiques, vous mettez en place votre propre réseau de confiance et vérifiez l’identité de tout utilisateur d’OpenPGP. Pour commencer, vous devez apprendre à trouver les clés publiques de vos correspondants sur les serveurs de clés et à partir d’autres sources en ligne.
Rechercher les clés de ses correspondants sur les serveurs de clés Les serveurs de clés stockent les clés publiques OpenPGP et les mettent à disposition de tous. Si vous avez suivi les instructions d’installation des chapitres précédents, votre clé publique devrait maintenant être disponible sur subkeys.pgp.net et keyserver.pgp.com. Normalement, vos correspondants ne devraient avoir aucun problème à les trouver.
Le réseau de serveurs subkeys.pgp.net est un serveur de clés « à l’ancienne ». Il date d’une époque où seuls les plus férus de technologie utilisaient PGP (ainsi qu’Internet, du reste). Il s’agit en réalité de plusieurs serveurs de clés se synchronisant entre eux et gérés par des volontaires partout dans le monde. Lorsque vous vous connectez à cette adresse, vous contactez en réalité une machine différente à chaque fois. Lorsqu’une clé publique est envoyée sur l’une d’elles, elle se propage d’elle-même sur l’ensemble des serveurs en quelques heures.
subkeys.pgp.net
N’importe qui peut envoyer des clés sur ce serveur. Les clés anciennes ne sont jamais supprimées, et l’identité du propriétaire de la clé n’est pas vérifiée lors de son envoi mais leur statut est précisé (clé expirée, clé
106
© Groupe Eyrolles, 2005
5 – Le réseau de confiance
révoquée...). En conséquence, si vous cherchez une clé ancienne, il y a des chances pour que vous la trouviez sur ce serveur. Malheureusement, certains envoient des clés sur ce serveur à des fins de test, ou de fausses clés, et celles-ci resteront stockées sur le serveur pour toujours. Au passage, rappelez-vous qu’il ne faut jamais envoyer de clés sur un serveur à titre d’essai : ces clés inutiles resteraient stockées pour toujours sur le serveur, déparant le paysage à la manière de bouteilles en plastique usagées. RAPPEL Tout le monde peut publier une clé... et alors ? Rappelons que ce sont les signatures et elles seules qui peuvent donner un indice de la confiance à accorder à une clé. Cela dit, il reste mal vu de publier la clé d'un autre à son insu.
Si vous utilisez GnuPG, nous recommandons d’utiliser subkeys.pgp.net par défaut, sauf si vous avez la chance de disposer d’un miroir local à proximité, celui de votre université, par exemple. Depuis PGP, vous pouvez ajouter subkeys.pgp.net à la liste des serveurs de clés pour qu’il soit automatiquement pris en compte lors d’une recherche. ALTERNATIVE pgpkeys.mit.edu Le serveur de clés public basé au MIT fait partie de la fédération de serveurs de clés et présente aussi une interface web très simple et efficace pour la recherche et la soumission des clés – qui ne sont après tout que des blocs de lettres et de chiffres.
keyserver.pgp.com PGP Corporation met à disposition de tous keyserver.pgp.com (ou « PGP Global Directory »), un serveur de clés qui fonctionne différemment du précédent. Lorsque vous envoyez une clé sur keyserver.pgp.com, le serveur envoie un message à l’adresse électronique de la clé pour confirmer que celle-ci appartient bien au compte de courrier correspondant. Lorsque le destinataire clique sur le lien qui se trouve dans le message, la clé devient accessible à tous depuis le serveur de clés. Par ailleurs, contrairement à subkeys.pgp.net, les clés envoyées sur keyserver.pgp.com qui ne sont pas employées pendant une certaine période (six mois, à l’heure actuelle) sont effacées du serveur. En conséquence,
© Groupe Eyrolles, 2005
107
Accès libre – PGP & GPG
celui-ci est toujours à jour, mais il ne respecte pas entièrement les principes antérieurs d’OpenPGP. À RETENIR GnuPG et keyserver.pgp.com PGP recherche automatiquement les clés sur keyserver.pgp.com. Les utilisateurs de GnuPG doivent rechercher manuellement les clés sur ce serveur (ou choisir keyserver.pgp.com par défaut).
La faiblesse de ce modèle est que le logiciel PGP part du principe que les clés acceptées par keyserver.pgp.com sont valables. Il y a effectivement de fortes chances pour que ce soit vrai : pour envoyer une clé, vous devez pouvoir accéder à l’adresse électronique correspondante. Cependant, n’importe qui peut créer une adresse électronique auprès d’un service de courrier électronique gratuit et utiliser le nom de son choix. Par conséquent, ce système ne garantit pas l’identité du détenteur de la clé.
Rechercher la clé d’un correspondant Si votre logiciel de courrier électronique ne recherche pas automatiquement les clés publiques des messages chiffrés avec OpenPGP, vous devrez effectuer vous-même la recherche sur les serveurs de clés. GnuPG et PGP permettent tous deux de rechercher des clés correspondant à certaines caractéristiques. Par ailleurs, les serveurs de clés disposent pour la plupart d’interfaces web (mais ce n’est pas le cas de subkeys.pgp.net). Pour rechercher une clé sur keyserver.pgp.com, par exemple, il suffit d’afficher la page correspondante dans un navigateur et d’entrer l’adresse électronique de la personne recherchée : l’interface web vous permettra alors de télécharger la clé, si elle se trouve sur le serveur. Après avoir téléchargé la clé et l’avoir ajoutée à votre trousseau, il vous est possible de chiffrer avec cette clé des messages privés que seul votre correspondant pourra lire. Vous pouvez aussi vous joindre au réseau de confiance en signant des clés et en faisant signer les vôtres. MAGIQUE Chiffrer avec plusieurs clés publiques pour plusieurs destinataires Vous pouvez chiffrer avec autant de clés publiques que souhaité, pour de multiples destinataires. Par exemple, Enigmail vous propose la liste des destinataires dont vous connaissez les clés publiques. Choisissez dans la liste les destinataires souhaités, et Enigmail chiffrera le message avec toutes les clés correspondantes. Ainsi chaque destinataire pourra déchiffrer le message. Magique, non ?
108
© Groupe Eyrolles, 2005
5 – Le réseau de confiance
Signer une clé : pourquoi et comment ? Lorsque vous signez une clé, vous assurez que vous avez vérifié l’identité de son détenteur. Cette vérification se nomme confiance (trust) dans le monde d’OpenPGP. RAPPEL La « confiance » au sens d’OpenPGP Rappelez-vous que le terme « confiance » ne signifie pas ici que vous considérez la personne comme digne de confiance, mais uniquement que vous croyez en son identité. Peut-être le petit voyou du quartier est-il un ancien camarade de classe, et vous savez par conséquent qui il est. Vous pourriez donc signer sa clé sans la moindre hésitation parce que vous savez qu’il est qui il prétend être. Vous ne lui confieriez pas votre portefeuille ni vos animaux familiers, mais vous vous fiez à son identité, et c’est la seule chose qui compte dans le contexte d’OpenPGP.
Pour la signature, le détenteur de la clé doit fournir les éléments suivants à la personne censée la signer : • l’empreinte, le keyid et l’identifiant (UID) de sa clé électronique, obtenus par n’importe quel moyen excepté Internet ; • sa clé publique (provenant d’un serveur de clés, d’une page web, d’une clé USB ou d’une autre source similaire) ; • son adresse électronique ; • son nom et son prénom ; • une preuve de son identité. Chaque clé a une empreinte qui lui est propre ainsi qu’un keyid qui, combiné à l’identifiant, est également unique. Vous pouvez afficher l’empreinte et le keyid d’une clé dans GnuPG comme dans PGP. Ainsi, la clé que nous avons créée dans le chapitre précédent a pour empreinte EEB7 F8DD 56EA EDC0 E20A C18C FD5C A2C1 F6C2 6699, et pour keyid F6C26699. Les plus perspicaces auront remarqué que le keyid n’est rien d’autre que les huit derniers caractères de l’empreinte de la clé. Toutes les empreintes de clés et tous les keyid ont une apparence similaire.
RAPPEL La signature d'une clé est un engagement Signer une clé, c’est se porter garant de l'identité de son propriétaire.
Le keyid et l’empreinte doivent être fournis par un moyen autre qu’Internet. Cela peut sembler une complication inutile, mais supposons que Mallory ait réussi à accéder au compte de courrier électronique de votre ami. Dans ce cas, vous ne pouvez plus vous fier à l’empreinte que
© Groupe Eyrolles, 2005
109
Accès libre – PGP & GPG
votre ami vous envoie par courrier électronique. La même chose s’applique aux empreintes que votre ami présente sur sa page web. Il doit donc vous fournir la clé par un moyen autre qu’Internet. Une fois que vous disposez de l’empreinte et de l’identifiant, vous n’aurez pas de difficulté à trouver la clé publique du correspondant par l’intermédiaire d’un serveur de clés. En ce qui concerne les preuves d’identité à fournir par le correspondant, tout dépend de votre rapport avec lui. Voyons quelques exemples.
Signer les clés de personnes proches Le moyen le plus simple de compléter votre trousseau est d’y ajouter les clés des collègues, amis et parents qui utilisent OpenPGP. Supposons qu’un nouveau venu dans l’entreprise (nous l’appellerons Luc) vienne de créer sa paire de clés et vous demande de la signer. Vous voudriez aussi qu’il signe la vôtre. Il étendra ainsi son réseau de confiance et il ajoutera votre clé à son trousseau. Il pourra alors vérifier les messages que vous lui envoyez. Luc vous montre une feuille de papier avec son keyid et son empreinte, et vous informe que sa clé publique se trouve sur un serveur de clés. Par ailleurs, il dispose de deux pièces d’identité officielles. En examinant ses papiers d’identité pour confirmer que son nom correspond à celui de la clé, prêtez bien attention à la forme du nom utilisé pour la paire de clés. Si la carte d’identité de Luc indique que son nom complet est Luc-François Dupont, alors qu’il a indiqué pour sa clé le nom de Luc Dupont, il risque de ne pas pouvoir la faire signer par des tiers. Nous vous conseillons donc de ne signer la clé d’une personne que lorsque son identifiant correspond à son identité officielle et son adresse électronique, et si son keyid et son empreinte correspondent à ceux qu’il vous a fournis séparément. Une fois son identité confirmée, téléchargez sa clé, signez-la et renvoyez-la lui.
Que faire avant de signer la clé d’un inconnu ? Si vous ne connaissez pas du tout un correspondant, ne signez pas sa clé. Il y a toutefois des cas où des inconnus ne le sont pas tout à fait : un client qui utilise OpenPGP, le responsable informatique d’une autre société... Vous n’avez que peu de doutes quant à leur identité.
110
© Groupe Eyrolles, 2005
5 – Le réseau de confiance
Vérifications informelles La vérification d’une clé peut très bien se dérouler de manière informelle. Si par exemple vous recevez un message électronique d’un ami qui vous demande de signer sa nouvelle clé GnuPG, vous pourriez l’appeler au téléphone, et la conversion pourrait se dérouler comme suit : « Je viens de recevoir ton message avec ta clé. Peux-tu vérifier que ton keyid est bien C3D15ECA ? Parfait, et ton empreinte ? Et quel est le nom écrit sur ta carte d’identité ? Non, je connais ton nom, je voudrais juste que tu sortes ta carte d’identité et que tu me lises ce qui est écrit dessus. Bon, écoute, le nom de ta clé ne correspond pas exactement à celui de ta carte d’identité. Crée une nouvelle clé avec ton nom officiel et rappelle-moi. »
Même si aucun de vous n’a d’ordinateur sous la main, vous pouvez réunir les informations nécessaires, puis signer la clé par la suite à tout moment. Vérifiez d’abord sa pièce d’identité. Votre correspondant doit pouvoir vous montrer deux pièces d’identité comportant son nom officiel ; il s’agira en général de sa carte d’identité (ou de son passeport, ou de sa carte de séjour) et de son permis de conduire. À défaut, vous pouvez également accepter les cartes d’étudiant ou de membre d’une organisation quelconque. Après avoir vérifié les pièces d’identité, demandez à la personne son keyid, son empreinte, son adresse de serveur de clés et son adresse électronique. Ensuite, devant votre ordinateur, téléchargez la clé de la personne et comparez les éléments suivants : • le nom de l’identifiant (UID) de la clé et le nom officiel ; • l’adresse électronique de la clé et celle que la personne vous a fournie ; • l’empreinte de la clé et celle que la personne vous a fournie. Si tous ces éléments correspondent, signez la clé. Sinon, abstenez-vous. AVANCÉ Coordination de signatures Si vous êtes prêt à vérifier l’identité de personnes inconnues et à signer leur clé, voyez des sites de coordination de signatures tels que www.biglumber.com. Ces sites facilitent les rencontres entre utilisateurs d’OpenPGP partout dans le monde. Vous pouvez envoyer votre clé sur ce site ainsi que votre nom et la ville où vous résidez, et chercher d’autres utilisateurs OpenPGP dans votre ville ou à proximité. Il est ensuite facile de contacter ces personnes et d’organiser une rencontre rapide dans un café afin de vérifier ses identités respectives et échanger des empreintes.
© Groupe Eyrolles, 2005
111
Accès libre – PGP & GPG
Quand ne pas signer une clé Le principe est simple : si vous n’avez jamais rencontré une personne, vous ne devez pas signer sa clé. N’importe qui peut créer un compte auprès d’un service gratuit de courrier électronique et utiliser le nom de quelqu’un d’autre en tant qu’adresse électronique. Il se peut que vous correspondiez pendant des années avec une personne et que vous vous familiarisiez avec son style et ses idées. Il se peut même que vous deveniez un ami proche de cette personne que vous n’avez jamais rencontrée, et que vous soyez intimement convaincu que cette personne soit bien qui elle prétend être. Pour autant, vous n’avez aucune certitude que la personne qui vous envoie des messages en tant que
[email protected] se nomme réellement Pascal Obispo. Vous n’avez jamais vu aucune de ses pièces d’identité, même si vous correspondez avec elle depuis des années. Une telle rigueur peut paraître excessive, mais c’est le principe du fonctionnement d’OpenPGP. En signant une clé, vous mettez en jeu votre propre réputation. Vous garantissez que vous avez vérifié, au mieux de vos possibilités, l’identité de la personne. Si vous signez la clé de n’importe qui sans valider son identité, d’autres pourront choisir de ne pas se fier à votre identité ni à vos signatures (nous y reviendrons un peu plus loin).
Que faire d’une clé que vous avez signée ?
CONSEIL Ne gaffez pas Il serait très indélicat d’envoyer la clé publique d’un autre sur un serveur de clé où elle ne se trouvait pas précédemment. Le propriétaire de la clé avait peut-être des raisons de ne pas vouloir utiliser de serveur de clés et de privilégier ses propres méthodes de diffusion. Ou peut-être voulait-il restreindre l’emploi de sa clé à un nombre limité de personnes. Ne publiez jamais la clé de quelqu’un à sa place !
112
Une fois que vous avez signé une clé, remettez-la où vous l’avez trouvée. Si vous l’avez téléchargée depuis un serveur de clés publiques, vous pouvez mettre à jour l’enregistrement de ce serveur. Si elle provient d’ailleurs, renvoyez-la à son propriétaire une fois signée.
Intégrer une nouvelle signature à sa clé Vous avez prouvé votre identité à un tiers et cette personne vous a renvoyé un nouveau fichier de clé publique. Comment ajouter cette signature à votre clé publique ? Rien de plus simple : importez simplement le fichier de clé publique dans votre trousseau. Votre logiciel verra qu’il s’agit de votre propre clé, extraira la signature du fichier et l’ajoutera à votre trousseau. Nous parlerons de l’importation de clés avec PGP au chapitre 6, et avec GnuPG au chapitre 7.
© Groupe Eyrolles, 2005
5 – Le réseau de confiance
Séances de signature de clés Le moyen le plus rapide d’ajouter des signatures à votre clé publique consiste à participer à une séance de signature de clés, qui est un rassemblement spécifiquement destiné à vérifier l’identité réciproque des participants et à signer des clés publiques OpenPGP. Vous n’avez pas besoin de connaître les personnes à qui vous faites signer votre clé, mais peutêtre avez-vous des amis communs avec plus de participants que vous ne pensez. Vous devrez probablement fournir votre keyid, votre empreinte ainsi que votre identifiant (UID) avant la séance ou en emmener plusieurs avec vous (nous recommandons d’imprimer dans tous les cas keyid, empreinte et identifiant sur des bandes de papier prêtes à distribuer, au cas où l’organisateur ne l’aurait pas fait pour vous). Venez à la séance avec des pièces d’identité ; l’ordinateur, en revanche, est superflu. Et pensez à amener au moins un exemplaire imprimé de votre identifiant et de votre empreinte afin que vous puissiez comparer votre original avec les copies dont disposent les autres participants. Le déroulement des séances de signature peut varier, mais le principe général est que chacun des participants s’identifie vis-à-vis de chacun des autres. Si vous avez fourni vos informations de clé à l’organisateur avant la séance, il distribuera sans doute à chacun une liste de clés à vérifier et à signer. Si ce n’est pas le cas, vous devrez fournir à chaque personne une version écrite ou imprimée de vos informations de clé. Une fois que tout le monde dispose des informations de toutes les clés à signer, chacun à son tour lit son empreinte et son identifiant (UID) à l’ensemble des personnes réunies (une alternative consiste à afficher ces informations en grand à l’aide d’un vidéoprojecteur). Vous confirmez ainsi que l’organisateur n’a pas mélangé les clés lors de la création des listes de clés, et que même si Mallory lui-même est l’organisateur, il ne peut faire beaucoup de dégâts. Lorsque les autres participants présentent leurs informations de clé et leurs pièces d’identité, vérifiez-les avec soin, comme vous le feriez pour n’importe quel inconnu. Une fois que l’identité d’une personne vous paraît établie de manière satisfaisante, cochez sa clé dans la liste. Si vous avez la moindre réserve quant au détenteur de la clé, barrez sa clé. Après la séance, reprenez votre liste de clés. Téléchargez-les depuis un serveur de clés et comparez-les avec celles de la liste que vous avez cochées. Si les clés téléchargées ont la même empreinte que celles qui
© Groupe Eyrolles, 2005
EXPERT Parano ? Certains vont jusqu’à attendre un certain temps après la séance de vérification avant d’effectuer les opérations de signature, afin qu’il ne soit pas détectable qu’ils ont rencontré telle et telle personne à telle date en tel lieu.
113
Accès libre – PGP & GPG
vous ont été présentées lors de la séance de signature, et si l’identifiant des clés téléchargées correspond lui aussi, signez les clés correspondantes et renvoyez-les à leur détenteur ou mettez à jour l’enregistrement du serveur de clés.
Niveaux de fiabilité des clés Le mot confiance peut avoir différents sens dans le contexte d’OpenPGP ; dans le contexte de la signature de clé, le degré de confiance en une personne qui signe des clés dépend de la rigueur avec laquelle elle vérifie l’identité du détenteur des clés. Lorsque vous ajoutez une clé publique à votre trousseau, vous devez lui affecter un niveau de confiance parmi trois. La méthode d’affectation du niveau de confiance dépend du logiciel OpenPGP que vous employez ; nous y reviendrons au chapitre 6 (PGP) ou 7 (GnuPG). – Bien que vous ayez vérifié l’identité du détenteur de la clé, vous n’avez pas confiance en sa capacité à vérifier l’identité des détenteurs d’autres clés. Vous serez peut-être amené à utiliser ce niveau de confiance pour des membres de votre famille, ou pour des personnes que vous savez être très crédules.
•
Aucune (none)
•
– Vous avez vérifié l’identité du détenteur de la clé, et ce dernier semble être raisonnablement compétent pour ce qui est de la vérification de l’identité de tiers. Vous utiliserez sans doute ce niveau de confiance pour des personnes que vous ne connaissez pas et que vous avez rencontrées au cours d’une séance de signature de clés. Leur présence à l’un de ces rassemblements montre qu’ils savent pour le moins comment les choses sont censées se passer.
•
Fiable (trusted) – Vous avez entièrement confiance en cette personne en ce qui concerne la vérification de l’identité de tiers et la signature de leurs clés OpenPGP.
Marginale
Il existe également un quatrième niveau de confiance, qui se nomme Implicite. Il est réservé aux clés pour lesquelles vous disposez de la clé secrète. Vous verrez dans les chapitres qui suivent comment utiliser PGP et GnuPG pour affecter un niveau de confiance aux clés lors de leur importation et de leur signature.
114
© Groupe Eyrolles, 2005
5 – Le réseau de confiance
À l’écart du réseau de confiance Il n’est pas obligatoire de passer par le réseau de confiance pour utiliser OpenPGP. Du reste, certains utilisateurs refusent de signer des clés ou de participer d’une autre manière au réseau de confiance. Après tout, ce réseau permet au monde entier de savoir quelles personnes vous avez rencontrées. Si une enquête est ouverte sur vous, les signatures de votre clé OpenPGP fourniront aux enquêteurs une liste toute prête de personnes sur lesquelles enquêter. Le « profilage de réseau » (network profiling) consiste à identifier un point de convergence et à établir des liens avec d’autres groupes pour identifier leur point de convergence. La CIA utilise cette technique pour mettre à jour des cellules terroristes tandis que les services de lutte contre le trafic de drogue l’emploient pour analyser la circulation de la drogue et que les casinos y font appel pour identifier des systèmes de triche sophistiqués. Le réseau de confiance peut aider les « profileurs de réseau ». Une méthode plus sûre de gestion des clés consiste à vérifier personnellement celles de toutes les personnes avec lesquelles vous communiquez. Vous pouvez ajouter des signatures locales (non exportables) à ces clés afin qu’elles restent sur votre propre trousseau et qu’elles ne soient pas diffusées sur les serveurs de clés. Vous profitez ainsi de tous les avantages d’OpenPGP, au prix d’une vérification individuelle et personnelle de chaque clé. La vérification personnelle reste dans tous les cas le meilleur moyen de vérifier une clé.
Exemple de profilage de réseau Imaginez que vous élevez des rats et que vous souhaitiez communiquer avec d’autres éleveurs de ces animaux. Vous pouvez faire appel à OpenPGP pour préserver la confidentialité de vos messages. Supposons toutefois qu’un jour, le gouvernement annonce le lancement d’une campagne anti-rats. Si vous êtes soupçonné d’être un point de convergence d’activités de défense des rats, les autorités peuvent alors employer votre trousseau comme point de départ pour la création d’une liste de suspects et pour tenter de détecter les trafics de rats potentiels. Si les gens ne souhaitent pas être sur la liste des suspects, mieux vaut qu’ils évitent de signer votre clé. Et de même, vous ne souhaitez certainement pas qu’on enquête sur votre compte le jour où votre hobby est déclaré illégal ou immoral.
Dans le reste de ce livre, nous supposerons que vous participez au réseau de confiance. Rappelez-vous toutefois que vous pouvez aussi bien choisir de ne pas y participer. Les motifs de l’utilisation d’OpenPGP sont différents pour chacun, et vous seul savez à quels risques vous êtes exposé.
© Groupe Eyrolles, 2005
115
chapitre
6
© Groupe Eyrolles, 2005
Gérer son trousseau de clés avec PGP
SOMMAIRE
La gestion de clés OpenPGP avec PGP (sous Windows et Mac OS X) est très simple. Après avoir configuré votre client, des tâches telles que la recherche et la signature de clés s’effectuent en quelques instants.
B Ajouter des serveurs de clés B Ajouter des clés au trousseau B Renvoyer la clé signée B Afficher les signatures B Ajouter des photos à vos clé MOTS-CLÉS
B clé B empreinte B niveau de confiance B photo B signature B trousseau
© Groupe Eyrolles, 2005
Accès libre – PGP & GPG
Ajouter des serveurs de clés Par défaut, PGP utilise le serveur de clés de PGP Corporation, qui peut parfaitement suffire si tous vos correspondants utilisent également PGP. Cependant, s’ils ont recours à d’autres serveurs, vous devrez les ajouter à la liste dans PGP afin que le logiciel effectue automatiquement des recherches auprès de ces serveurs à l’avenir. À RETENIR Fiabilité des serveurs de clés Certains serveurs de clés sont plus fiables que d’autres. Utilisez de préférence subkeys.pgp.net, qui est raisonnablement fiable.
Pour ajouter un serveur de clés, procédez comme suit : 1 Choisissez Tools>Edit Keyservers (Mac OS : Keys>Add Keyserver) pour
afficher la liste des serveurs de clés de PGP (voir figure 6-1). Sous Mac OS X, la liste est affichée dans le volet de gauche de PGP Desktop.
Figure 6–1
La liste des serveurs de clés de PGP
2 (Windows uniquement). Par défaut, la liste ne comprend qu’un seul
serveur de clés. Pour en ajouter un, cliquez sur Add. Vous affichez ainsi la boîte de dialogue de la figure 6-2. 3 PGP est compatible aussi bien avec les serveurs de type LDAP (le
Global Directory de PGP est un serveur de ce type) qu’avec des serveurs LDAP sécurisés employés en entreprise ou encore des serveurs HTTP « à l’ancienne ». Pour ajouter ce dernier type de serveur, choi-
118
© Groupe Eyrolles, 2005
6 – Gérer son trousseau de clés avec PGP
Figure 6–2
La boîte de dialogue d’ajout de serveur
sissez PGP Keyserver HTTP dans la liste déroulante Type, puis entrez l’adresse du serveur dans le champ Address. Sous Mac OS X, cliquez sur l’onglet Advanced pour pouvoir choisir un type de serveur. 4 Cliquez sur OK : la liste affiche le nouveau serveur de clés (ou, sous
Mac OS X, il apparaît dans le volet de gauche de l’interface). (Windows uniquement). Dans la liste, il y a une petite différence entre le serveur de clés que vous venez de spécifier et keyserver.pgp.com : la colonne Trusted (De confiance) indique No pour le premier et Yes pour le second. La raison en est que PGP est livré avec une copie de la clé publique utilisée par le Global Directory et que toutes les clés distribuées par ce serveur ont été signées avec cette clé, d’où un certain niveau de validation. Les serveurs de clés publics, en revanche, n’effectuent pas de validation des clés qui leur sont soumises, et elles ne sont donc pas considérées comme fiables a priori (vous pouvez faire confiance à certaines clés, mais leur présence sur le serveur n’augure en rien de leur fiabilité). Si de nombreux utilisateurs ont envoyé leur clé sur le serveur PGP Global Directory, vous n’y trouverez pas nécessairement celles de tous vos correspondants. Si vous recevez fréquemment des messages signés ou chiffrés par des personnes n’ayant pas recours au Global Directory, ajoutez des serveurs de clés supplémentaires à la liste pour faciliter la recherche de leurs clés publiques. Nous suggérons d’ajouter au minimum subkeys.pgp.net à la liste des serveurs. Ainsi, lorsque PGP Desktop cherchera la clé publique d’un correspondant, il aura plus de chances de la trouver. Vous serez peut-être amené à ajouter d’autres serveurs de clés : si votre université dispose de son propre serveur, par exemple, vous aurez intérêt à l’ajouter la liste.
© Groupe Eyrolles, 2005
119
Accès libre – PGP & GPG
Ajouter des clés au trousseau Une fois que vous avez identifié quelqu’un de manière raisonnablement sûre, vous pouvez rechercher, vérifier et signer sa clé. Nous allons voir la procédure à suivre dans PGP pour ajouter la clé du correspondant au trousseau personnel en se basant sur son adresse électronique et pour vérifier l’empreinte de la clé.
Recherche sur les serveurs de clés MAC OS X Les serveurs de clés Sous Mac OS X, le volet de gauche de l’interface comprend une rubrique Keyservers si vous avez ajouté des serveurs supplémentaires (sinon, vous ne voyez apparaître que le serveur par défaut, PGP Global Directory). Ouvrez cette rubrique en cliquant sur le petit triangle situé à sa gauche et cliquez sur le serveur à partir duquel vous souhaitez effectuer une recherche. Si vous n’avez pas ajouté de serveurs supplémentaires, cliquez simplement sur PGP Global Directory . Sous Mac OS X, vous ne pouvez effectuer de recherche que sur un serveur à la fois.
Sur le côté gauche de la fenêtre PGP Desktop, sous PGP Keys, se trouve l’option Search for Keys. Cliquez sur cette option pour afficher l’écran de recherche de clés (voir figure 6-3), qui vous permet d’effectuer des recherches très précises afin d’identifier rapidement une clé donnée. Vous pouvez notamment effectuer une recherche portant sur un nom (Name), une adresse électronique (Email), un type de clé, ou toute autre caractéristique de la clé. La liste déroulante Search vous demande de choisir sur quel serveur ou dans quel trousseau local effectuer la recherche. Les utilisateurs n’ont pour la plupart qu’un seul trousseau nommé All Keys (toutes les clés), mais si vous avez personnalisé quelque peu le logiciel, il se peut que vous en ayez plusieurs. Vous pouvez également effectuer des recherches plus sophistiquées, par exemple pour trouver des clés correspondant à tous les critères (all) que vous définissez au-dessous, à n’importe quel critère (any) ou à aucun critère (none). Les boutons « + » et « – » respectivement ajoutent et enlèvent des critères de recherche.
Figure 6–3
L’écran de recherche de clés de PGP
Supposons que vous choisissiez Email dans la liste déroulante située le plus à gauche. Vous entrez l’adresse électronique de votre correspondant dans le champ de droite. Lorsque vous cliquez sur Search, vous voyez s’afficher la liste de toutes les clés contenant l’adresse électronique spécifiée.
120
© Groupe Eyrolles, 2005
6 – Gérer son trousseau de clés avec PGP
Pour ajouter à votre trousseau local une clé que vous avez trouvée, sélectionnez cette dernière et choisissez Edit>Add To. Le sous-menu affiche la liste des trousseaux que votre logiciel connaît. Vous n’avez probablement qu’un seul trousseau nommé All Keys. Choisissez-le pour que la clé lui soit ajoutée et qu’elle s’affiche dans PGP Desktop. Sous Mac OS X, faites simplement glisser la clé sur Keys, dans le volet de gauche, pour qu’elle soit ajoutée à votre liste de clés.
Importation depuis un fichier Si la clé que vous voulez signer se trouve sur un serveur de clés, mais est distribuée via une autre méthode, par exemple une page web, elle se présente généralement sous la forme d’un fichier à télécharger. Dans ce cas, procédez comme suit : 1 Téléchargez la clé et donnez-lui l’extension .asc afin que PGP la
reconnaisse en tant que clé. 2 Cliquez droit (Mac OS : Ctrl+clic) sur le fichier enregistré et choi-
sissez Ouvrir avec>PGP Tray sous Windows, ou Ouvrir avec>PGP (Par défaut), sous Mac OS. Une boîte de dialogue affiche la clé. Cliquez sur Import (Windows) ou OK (Mac OS) pour l’importer dans PGP Desktop.
Comparaison d’empreintes L’étape suivante consiste à confirmer que la clé que vous avez trouvée est la même que celle que votre correspondant vous a montrée. Voici comment faire : 1 Double-cliquez sur la clé importée pour afficher ses propriétés (voir
figure 6-4). Le bas de la boîte de dialogue, sous Fingerprint, affiche l’empreinte de la clé (si elle n’est pas visible, cliquez sur le mot Fingerprint pour ouvrir cette section). L’empreinte est proposée sous une forme hexadécimale et sous forme « biométrique », c’est-à-dire d’une série de mots anglais. Ce dernier format paraît plus convivial, mais à notre connaissance, PGP Corporation est le seul à l’employer, le format hexadécimal étant le seul universellement reconnu. 2 Comparez toute la clé avec celle affichée à l’écran. Il peut être tentant
de ne vérifier que les quatre premiers caractères, mais quelqu’un qui serait déterminé à usurper une identité pourrait très bien générer des
© Groupe Eyrolles, 2005
121
Accès libre – PGP & GPG
Figure 6–4
Les propriétés de la clé
clés OpenPGP aléatoires jusqu’à ce qu’il en obtienne une dont l’empreinte ressemble à celle de la véritable clé, dans l’espoir que le destinataire ne vérifie que superficiellement l’empreinte. 3 Si les empreintes sont bien identiques, refermez la boîte de dialogue de
propriétés de la clé. La clé étant sélectionnée, choisissez Edit>Add To>All Keys pour ajouter la clé à votre trousseau All Keys (sous Mac OS, vous n’avez pas besoin d’effectuer cette opération, toute clé importée étant automatiquement ajoutée à votre liste). La clé publique qui vous intéresse devrait maintenant faire partie de votre trousseau. 4 La clé étant toujours sélectionnée, choisissez Keys>Sign. 5 PGP affiche la boîte de dialogue de la figure 6-5. Le haut vous rap-
pelle les responsabilités liées à la signature d’une clé, la teneur du message étant la même que celle de notre précédent chapitre : ne signez une clé que si vous avez vérifié dans les formes l’identité de son détenteur. 6 La boîte de dialogue comprend également l’option Allow signature to be exported (Permettre l’exportation de la signature). Si vous avez effectivement vérifié l’identité du détenteur de la clé, vous pouvez cocher cette case. La prochaine fois que vous mettrez à jour votre liste de clés, votre signature sera ajoutée aux autres sur le serveur de clés, et vous intégrerez ainsi plus étroitement le propriétaire de la clé au réseau de confiance. Bien que ce ne soit pas une obligation, la signa-
122
© Groupe Eyrolles, 2005
6 – Gérer son trousseau de clés avec PGP
Figure 6–5
La boîte de dialogue de signature de clé
ture de clé est généralement une opération réciproque : si vous voulez que votre clé soit signée, vous devez vous-même signer la clé de votre correspondant. 7 Une boîte de dialogue demande votre phrase secrète. Une fois celle-ci
saisie, la clé est signée. 8 Rouvrez la boîte de dialogue de propriétés de la clé que vous venez
d’importer. Le champ Validity indique maintenant Valid à gauche d’une petite pastille verte. Pendant que vous y êtes, choisissez un niveau de confiance pour la personne qui a signé la clé (voir le précédent chapitre). Ouvrez la liste à droite de Trust (confiance) et choisissez None (aucune), Marginal ou Trusted/Full (fiable).
Renvoyer la clé signée Maintenant que vous avez signé la clé, renvoyez-la (avec votre signature) là où vous l’avez obtenue. Si elle provient d’un serveur de clés, sélectionnez-la dans PGP Desktop et choisissez Tools>Synchronize Selected Keys (Mac OS X : Keys>Synchronize) pour la renvoyer sur le serveur. Si vous l’avez obtenue en tant que fichier, depuis un site web ou depuis une autre source, renvoyez-la directement à son détenteur. Celui-ci a certainement de bonnes raisons de ne pas diffuser sa clé par l’intermédiaire d’un serveur de clés. N’envoyez jamais sur un serveur une clé qui ne soit pas la vôtre !
© Groupe Eyrolles, 2005
123
Accès libre – PGP & GPG
Pour renvoyer une clé à son propriétaire, sélectionnez-la, puis choisissez File>Export>Key (Mac OS X : File>Export), et choisissez le nom du fichier devant contenir la clé exportée. Transmettez la clé à son détenteur en utilisant la méthode la plus adaptée ; le courrier électronique est une méthode de transmission tout à fait acceptable.
Afficher les signatures Lorsque vous ajoutez une clé publique à votre trousseau, l’une des questions à se poser est : qui d’autre a signé cette clé ? Pour afficher les autres personnes qui ont signé une clé donnée, cliquez sur le signe « + » (Mac OS X : la petite flèche) à gauche de la clé dans PGP Desktop (voir figure 6-6).
Figure 6–6
Les signatures d’une clé
Sur la figure 6-6, on voit que la clé de Michael Warren Lucas, Jr. a été signée par lui-même, par Greg Donner et par PGP Global Directory.
Mise à jour des signatures Avec le temps, les clés sont révoquées, remplacées et complétées par de nouvelles signatures. Pour que ces modifications soient répercutées sur votre trousseau de clés, utilisez la fonction de synchronisation de clés de PGP. L’onglet Keys de la boîte de dialogue d’options de PGP (Windows : Tools>PGP Options ; Mac OS X : PGP>Preferences) comporte l’option Automatically sychronize keys with keyservers. Lorsqu’elle est cochée, PGP mettra régulièrement à jour les clés locales en fonction des informations obtenues depuis PGP Global Directory (ainsi que depuis tout autre serveur de clés que vous auriez défini).
124
© Groupe Eyrolles, 2005
6 – Gérer son trousseau de clés avec PGP
Ajouter des photos à vos clés Maintenant que vous êtes un peu familiarisé avec les fonctions de PGP et que vous êtes prêt à essayer les nombreuses possibilités de PGP Desktop, que diriez-vous d’ajouter une photo à votre clé ? Procurez-vous une photo numérique de vous-même et assurez-vous que son format convienne pour une clé OpenPGP (voir le chapitre 2). Suivez ensuite ces étapes : 1 Ouvrez la boîte de dialogue de propriétés de votre clé (voir
figure 6-4, page 122). 2 Cliquez sur le bouton + situé sous la grande image de la clé, à droite.
Vous ouvrez ainsi la boîte de dialogue de la figure 6-7.
Figure 6–7
La boîte de dialogue Add Photo
3 Faites glisser votre photo sur la boîte de dialogue. PGP Desktop vous
demande alors votre phrase secrète. Une fois que vous l’avez saisie, votre photo est intégrée à votre clé. Pour afficher la photo du propriétaire d’une autre clé, ouvrez les propriétés de la clé correspondante. Maintenant que vous savez manipuler votre clé et que vous connaissez le fonctionnement du réseau de confiance, voyons comment gérer les clés avec GnuPG.
© Groupe Eyrolles, 2005
125
chapitre
7
© Groupe Eyrolles, 2005
Gérer son trousseau de clés avec GnuPG
SOMMAIRE
La gestion de clés dans GnuPG est un peu plus complexe qu’avec PGP mais vous pourrez y gérer des clés sur toutes les plates-formes Windows, Linux/Unix et Mac OS X, aussi bien depuis l’invite de commande que depuis des interfaces graphiques telles Enigmail, WinPT ou Keychain Access.
B Ajouter des serveurs de clés B Ajouter des clés au trousseau B Signature de clé B Mise à jour de clés B Effacer des clés publiques du trousseau
B Ajouter des photos aux clés avec GnuPG
B GnuPG et le réseau de confiance MOTS-CLÉS
B Enigmail B Keychain Access B WinPT B Linux B Mac OS X B Windows
© Groupe Eyrolles, 2005
Accès libre – PGP & GPG
La gestion de clés dans GnuPG peut s’avérer un peu plus complexe qu’avec PGP dans la mesure où les divers outils ne sont pas aussi bien intégrés. Nous mettrons ici l’accent sur la gestion des clés depuis l’invite de commande, avec quelques indications sur la manière de procéder dans les interfaces graphiques Enigmail, WinPT et Keychain Access.
Ajouter des serveurs de clés GnuPG définit un serveur de clés par défaut, mais vous pouvez en choisir un autre lorsque vous effectuez des opérations depuis l’invite de commande. Comme pour beaucoup d’autres paramètres de GnuPG, le serveur de clés par défaut est défini dans le fichier gpg.conf : keyserver hkp://subkeys.pgp.net
est le sigle de Horowitz Keyserver Protocol, le protocole servant à échanger des clés sur un réseau. Beaucoup de clients OpenPGP utilisent ce protocole, mais vous n’avez pas besoin de connaître les détails de son fonctionnement. HKP utilise le port TCP 11371 ; en conséquence, si vous êtes situé derrière un pare-feu et que ce port n’est pas ouvert, vous aurez des difficultés à communiquer avec le serveur de clés.
hkp
Indiquez le nom du serveur après l’URL d’un site web. CONVENTION Choix d’un serveur par défaut Pour le reste de ce livre, nous supposerons que vous avez défini un serveur par défaut, soit dans le fichier gpg.conf, soit depuis WinPT. Dans le cas contraire, si vous souhaitez suivre les exemples du livre, vous devrez systématiquement ajouter l’option : --keyserver subkeys.gpg.net à toutes les commandes que vous saisissez.
128
hkp://,
comme vous le feriez pour
Après avoir ajouté le serveur à gpg.conf, il devient votre serveur par défaut. Vous pouvez toutefois en choisir un autre en ajoutant l’option suivante à partir de l’invite de commande : --keyserver
Options du serveur de clés L’interaction de GnuPG avec les serveurs de clés peut être paramétrée de manière très précise, mais les options disponibles ne sont pour la plupart employées que dans le contexte de la résolution de problèmes. Certaines, toutefois, s’avèrent utiles au quotidien.
© Groupe Eyrolles, 2005
7 – Gérer son trousseau de clés avec GnuPG
L’une de ces options est la recherche automatique de clés. Par défaut, lorsque vous recevez un message chiffré ou signé, GnuPG cherche la clé correspondant à l’expéditeur sur le trousseau local. S’il ne la trouve pas, il s’arrête et attend que vous ajoutiez la clé publique correspondante au trousseau. Si vous ne souhaitez pas rechercher manuellement cette clé, ajoutez au serveur de clés l’option auto-key-retrieve. Cette fonction ne vous sera d’aucun secours lorsque vous signez la clé d’un tiers, mais elle facilitera l’échange de documents, notamment celui de messages électroniques. L’option verbose rend quant à elle GnuPG plus bavard : vous verrez s’afficher plus d’informations quant aux opérations qu’il effectue, ce qui est souvent utile pour résoudre des problèmes éventuels et également satisfaire votre curiosité. keyserver-options auto-key-retrieve, verbose
Avec Enigmail (Thunderbird) Enigmail n’utilise pas les serveurs de clés déclarés dans le fichier gpg.conf : il se base sur sa propre liste, définie dans la boîte de dialogue de préférences. Dans Thunderbird, choisissez OpenPGP>Préférences et ouvrez l’onglet Général. Le champ situé en bas dans la boîte de dialogue est la liste des serveurs, qui sont séparés les uns des autres par des virgules. Vous constaterez que cette liste comprend par défaut un certain nombre de serveurs fiables, notamment subkeys.pgp.net et le serveur « officiel » de PGP. Par conséquent, vous n’aurez sans doute pas besoin de la modifier, sauf pour y ajouter par exemple le serveur de votre université.
Avec WinPT (Windows) Pour afficher dans WinPT la liste des serveurs définis, ouvrez le gestionnaire de clés, puis cliquez sur Keyserver dans la barre de menus. Vous ouvrez ainsi la fenêtre Keyserver Access (voir figure 7-1). Définissez celui de ces serveurs qui sera utilisé par défaut en le sélectionnant, puis en cliquant sur Set default. Dans WinPT, les serveurs de clés ne sont pas définis par le fichier gpg.conf. WinPT utilise sa propre liste, qui est stockée dans le fichier texte C:\Documents and Settings\nom d’utilisateur\Application Data\winpt.
© Groupe Eyrolles, 2005
129
Accès libre – PGP & GPG
Figure 7–1
La boîte de dialogue Keyserver Access
Vous devez redémarrer WinPT pour que les modifications appliquées à ce fichier soient prises en compte.
Avec Keychain Access (Mac OS X) Si vous avez installé GnuPG et Keychain Access sous Mac OS X, vous trouverez la liste des serveurs de clés dans les préférences de GnuPG. Pour accéder à ces dernières, vous pouvez soit choisir GnuPG depuis les Préférences Système, soit ouvrir Keychain Access et choisir GPG Trousseau d’accès>Préférences. Cliquez ensuite sur l’onglet Serveur de clés pour afficher une liste déroulante des serveurs. Pour ajouter un serveur de clés, remplacez le nom de celui qui est sélectionné (le serveur dont vous avez effacé le nom ne disparaît pas pour autant de la liste). Le serveur employé par défaut est celui sélectionné dans la liste déroulante.
Ajouter des clés au trousseau Supposons que vous ayez reçu un message signé numériquement provenant de l’adresse électronique
[email protected]. Vous n’avez pas besoin de la clé publique de M. Lucas pour lire son message, mais elle vous sera nécessaire pour confirmer qu’il en est bien l’auteur. Si vous utilisez le système de recherche automatique de clés de GnuPG, la vérifica-
130
© Groupe Eyrolles, 2005
7 – Gérer son trousseau de clés avec GnuPG
tion de la signature se fera d’elle-même. Sinon, vous avez besoin du keyid de la clé publique pour retrouver cette dernière sur le serveur de clés. Si votre logiciel de courrier électronique n’affiche pas le keyid, vous devrez passer par l’interface web de votre serveur de clés. La réponse que vous obtiendrez ressemblera à ceci : pub
X
1024D/E68C49BC 2005/02/21 Michael Warren Lucas Jr (Author, consultant, sysadmin) <
[email protected]> Key fingerprint = 67FF 2497 8C3C C0A4 B012 DB67 C073 AC55 E68C 49BC
Le serveur de clés renvoie le keyid , la date de création de la clé , l’identifiant de l’utilisateur (UID) ainsi que l’empreinte de la clé . Pour importer la clé, vous avez besoin du keyid, qui dans ce cas est E68C49BC.
Afficher et importer des clés Depuis l’invite de commande Pour importer une clé en utilisant gpg depuis l’invite de commande, utilisez l’option --recv-keys et spécifiez le keyid. La clé sera téléchargée depuis le serveur de clés par défaut : # gpg --recv-keys E68C49BC gpg: requête de la clé E68C49BC du serveur hkp subkeys.pgp.net gpg: clé E68C49BC: clé publique « Michael Warren Lucas Jr X (Author, consultant, sysadmin) <
[email protected]> » X importée gpg: 3 marginale(s) nécessaires, 1 complète(s) nécessaires, modèle de confiance PGP gpg: profondeur: 0 valide: 2 signé: 0 confiance: 0-. 0g. 0n. 0m. 0f. 2u gpg: la prochaine vérification de la base de confiance aura lieu le 2007-06-22 gpg: Quantité totale traitée: 1 gpg: importée: 1
Ici, nous demandons au serveur de clés par défaut la clé publique dont le keyid est E68C49BC . Le serveur répond en indiquant l’identifiant utilisateur de la clé pour confirmer qu’il s’agit bien de la bonne clé, et indique le nombre de clés importées .
© Groupe Eyrolles, 2005
131
Accès libre – PGP & GPG
Pour afficher les clés se trouvant sur votre trousseau, utilisez gpg --list-keys : # gpg --list-keys /home/mwlucas/.gnupg/pubring.gpg --------------------------------------------------------------1024D/E68C49BC 2005-02-21 pub uid Michael Warren Lucas Jr X (Author, consultant, sysadmin) X <
[email protected]> sub 2048g/A67199A7 2005-02-21
GnuPG indique d’abord le nom et l’emplacement du fichier où se trouve votre trousseau public ; il doit en principe s’agir du fichier pubring.gpg dans votre répertoire racine GnuPG (voir chapitre 4). Le début de la ligne suivante indique le type de clé dont il s’agit : ici, une clé publique . Puis sont affichés la longueur de la clé, son keyid et sa date de création . L’identifiant utilisateur de la clé est indiqué sur une ligne séparée , suivi des sous-clés éventuelles (vous vous rappelez peut-être avoir créé une sous-clé dans le chapitre 4, en même temps que votre clé principale ; les sous-clés sont souvent employées par les utilisateurs avancés, mais vous n’avez généralement pas besoin de vous en soucier, sauf dans le cas décrit dans le chapitre 4). Pour afficher les clés de votre trousseau privé, utilisez l’option :
--list-secret-keys
# gpg –list-secret-keys /home/mwlucas/.gnupg/pubring.gpg -------------------------------------------------------------1024D/E68C49BC 2005-02-21 sec uid Michael Warren Lucas Jr X (Author, consultant, sysadmin) X <
[email protected]> 2048g/A67199A7 2005-02-21 ssb
Le résultat est très similaire à la liste des clés publiques, à ceci près que GnuPG indique qu’il s’agit d’une clé secrète (sec) , de même que la sous-clé (ssb signifie secret subkey). Au fur et à mesure que vous compléterez votre trousseau de clés, la commande --list-keys produira plusieurs pages d’informations. Dans l’exemple donné plus haut, le trousseau ne comporte qu’une seule clé. Si
132
© Groupe Eyrolles, 2005
7 – Gérer son trousseau de clés avec GnuPG
chaque clé occupe trois lignes, il suffit qu’un trousseau comprenne neuf clés pour que la commande remplisse un écran d’invite de commande. Pour éviter d’avoir à essayer de trouver ce que vous cherchez dans une liste interminable, vous pouvez filtrer les clés affichées en spécifiant l’un des paramètres de la clé après --list-keys. Ainsi, pour n’afficher que les informations concernant la clé publique de M. Lucas, vous utiliseriez par exemple # gpg --list-keys
[email protected] À la place de l’adresse électronique, vous auriez aussi bien pu spécifier le nom (Michael Warren Lucas, voire Michael Lucas) ou le keyid de la clé (E68C49BC).
Avec Enigmail Pour afficher ou importer des clés avec Enigmail, ouvrez le gestionnaire en choisissant OpenPGP>Gestion de clés. Il affiche toutes les clés, publiques et privées, de vos trousseaux. Vous pouvez filtrer cette liste en saisissant une partie de l’identifiant utilisateur de la clé ou son keyid dans le champ situé tout en haut de la fenêtre. Pour trouver une clé située sur un serveur, choisissez Serveur de clés>Chercher des clés à partir du gestionnaire de clés d’Enigmail. Entrez l’identifiant utilisateur de la clé recherchée (l’adresse électronique du destinataire, par exemple), choisissez un serveur de clés et cliquez sur OK. Après quelques instants, une nouvelle fenêtre affiche toutes les clés correspondant aux informations que vous avez fournies. Cochez les clés que vous souhaitez importer, puis cliquez sur OK. Les clés sont alors ajoutées à votre trousseau. Plutôt que de télécharger les clés et de les ajouter à votre trousseau avant d’envoyer des messages, vous pouvez également demander à Enigmail de les chercher automatiquement lors de l’envoi. Pour ce faire, ouvrez les préférences d’Enigmail en choisissant OpenPGP>Préférences depuis la fenêtre principale de Mozilla Thunderbird. Ouvrez l’onglet Avancé des Préférences, puis le nom d’un ou plusieurs serveur(s) dans le champ Télécharger automatiquement les clés depuis le serveur. L’inconvénient de cette manière de procéder est qu’elle entraîne l’utilisation de clés dont la fiabilité n’est pas connue.
© Groupe Eyrolles, 2005
133
Accès libre – PGP & GPG
Avec WinPT Pour afficher ou importer des clés avec WinPT, procédez comme suit : 1 Ouvrez le gestionnaire de clés en cliquant sur l’icône de WinPT, dans
la zone de notification, à droite de la barre des tâches. Il affiche toutes les clés, publiques et privées, de vos trousseaux. 2 Cliquez sur Keyserver. Vous affichez ainsi la boîte de dialogue Keyserver Access
(voir figure 7-1, plus haut).
3 Sélectionnez le serveur que vous souhaitez utiliser, puis entrez le
keyid ou l’adresse électronique voulue dans le champ situé au bas de la boîte de dialogue. Cliquez ensuite sur Receive pour ajouter la clé correspondante à votre trousseau.
Avec Keychain Access Pour rechercher une clé depuis Keychain Access, choisissez Key>Search for Entrez vos critères de recherche dans la boîte de dialogue qui apparaît : il peut s’agir du nom ou d’une partie du nom de la personne, de son adresse électronique ou encore du keyid de la clé recherchée. Lorsque vous cliquez sur OK, une fenêtre de Terminal apparaît. Au bout de quelques instants, vous devriez y voir apparaître le résultat de vos recherches.
Key.
Chaque résultat est précédé d’un numéro entre parenthèses. Pour importer l’une des clés que vous avez trouvées, entrez ce numéro suivi de la touche Retour. Elle est alors automatiquement importée et apparaît dans l’interface principale de Keychain Access. Notez que si votre recherche produit plusieurs pages de résultats, vous devrez éventuellement appuyer sur N, puis sur Retour, pour parcourir les pages de résultats une à une.
Importer une clé Depuis l’invite de commande Pour importer une clé qui est distribuée autrement que via un serveur de clés (un site web, par exemple), utilisez la commande --import suivie du nom du fichier, par exemple :
134
© Groupe Eyrolles, 2005
7 – Gérer son trousseau de clés avec GnuPG
# gpg --import gedonner.asc gpg: clé E2F41133 : clé publique « Greg Donner X » importée gpg: Quantité totale traitée: 1 gpg: importée: 1
GnuPG importe la nouvelle clé publique depuis le fichier gedonner.asc , puis affiche la clé publique qu’il a trouvée dans ce fichier ainsi que son identifiant utilisateur .
Avec Enigmail Pour importer une clé avec Enigmail, choisissez d’abord OpenPGP>Gestion de clés dans Thunderbird. Les commandes Fichier>Importer des clés depuis un fichier et Édition>Importer des clés depuis le presse-papier importent une clé respectivement depuis un fichier, ou depuis le presse-papier système.
Avec WinPT Pour importer une clé depuis WinPT, ouvrez le gestionnaire, puis cliquez sur le bouton ouvrir (avec l’icône du dossier ouvert). Retrouvez ensuite le fichier où est stockée la clé à importer et cliquez sur Ouvrir. Notez toutefois que cette fonction de WinPT, selon la version du logiciel, ne fonctionne pas toujours très bien. En cas de problème, mieux vaut utiliser GnuPG depuis l’invite de commande.
Signature de clé Maintenant que vous savez comment trouver et importer les clés de vos correspondants, voyons comment les intégrer à votre réseau de confiance. Au préalable, vous devez bien sûr vérifier les pièces d’identité des personnes concernées et noter leur adresse électronique et l’empreinte de leur clé. Une fois ces opérations effectuées, vous pouvez signer les clés, ce qui implique de vérifier l’empreinte des clés publiques téléchargées, de les signer numériquement, puis de les renvoyer à leur propriétaire.
© Groupe Eyrolles, 2005
135
Accès libre – PGP & GPG
Vérifier l’empreinte Supposons que vous ayez importé une clé qui semble bien être celle de votre correspondant. Vous avez pris soin de vérifier son identité et vous lui avez demandé l’empreinte de sa clé, en l’occurrence B147 5969 B88D 3582 C05E BB83 91B5 AA6A E2F4 1133. Pour afficher l’empreinte de sa clé (et pas celle des autres clés du trousseau), utilisez l’option --fingerprint avec comme argument son adresse électronique : # gpg --fingerprint
[email protected] pub 2048R/E2F41133 2007-06-25 Empreinte de la clé = B147 5969 B88D 3582 C05E BB83 91B5 X AA6A E2F4 1133 uid Greg Donner sub 2048R/8373FD79 2007-06-25
Le résultat ressemble à celui de l’option --list-keys, avec une ligne supplémentaire correspondant à l’empreinte de la clé . Dans le gestionnaire de clés d’Enigmail, double-cliquez sur une clé pour afficher son empreinte et ses autres propriétés. Dans WinPT, sélectionnez-la puis choisissez Key>Properties. Une fois que vous avez confirmé que l’empreinte était bien la même que celle fournie par votre correspondant, vous pouvez signer la clé.
Signer une clé Depuis l’invite de commande Pour signer la clé depuis l’invite de commande, utilisez l’option --sign-key suivie du keyid : # gpg --sign-key E2F41133 pub
2048R/E2F41133
créé: 2005-06-25 expire: jamais
utilisation: SC confiance: inconnu validité: inconnu sub 2048R/8373FD79 créé: 2005-06-25 expire: jamais utilisation: E [ inconnue] (1). Greg Donner pub 2048R/E2F41133 créé: 2005-06-25 expire: jamais utilisation: SC confiance: inconnu validité: inconnu
136
© Groupe Eyrolles, 2005
7 – Gérer son trousseau de clés avec GnuPG
Empreinte de la clé principale: B147 5969 B88D 3582 C05E BB83 91B5 AA6A E2F4 1133 Greg Donner Etes-vous vraiment sûr(e) que vous voulez signer cette clé avec votre clé « Michael Warren Lucas Jr (Author, consultant, sysadmin) <
[email protected]> » (E68C49BC) Signer réellement ? (o/N) o
GnuPG affiche d’abord les informations en rapport avec la clé correspondant au keyid que vous avez fourni : le keyid lui-même , l’empreinte de la clé et l’identifiant de la clé publique . Il vous demande ensuite de confirmer que vous voulez signer cette clé avec votre clé privée. Si le keyid, l’empreinte et l’identifiant correspondent bien aux informations fournies par le détenteur de la clé, entrez o . Vous devrez ensuite saisir votre phrase secrète, après quoi GnuPG signera la clé.
Avec Enigmail Dans le gestionnaire de clés d’Enigmail, choisissez Édition>Signer la clé après avoir sélectionné celle qui vous intéresse. La boîte de dialogue qui s’affiche récapitule les informations (identifiant utilisateur, keyid et empreinte), vous demande avec quelle clé privée vous souhaitez signer, et vous permet de spécifier dans quelle mesure vous avez vérifié l’identité de la personne à qui elle appartient. Après avoir cliqué sur OK, saisissez votre phrase secrète. La clé est alors signée.
À RETENIR Signatures : les choisir exportables ou non ? Par défaut, Enigmail signe les clés d’une manière exportable, ce qui signifie que lorsque vous envoyez la clé sur un serveur (ou que vous la renvoyez à son propriétaire), votre signature y est incluse. Si vous cochez l’option Signature locale, votre signature ne pourra être employée que dans le cadre de votre réseau de confiance personnel, mais non par des tiers. Si vous vous êtes assuré dans les formes de l’identité de votre correspondant et si vous participez au réseau de confiance, laissez désactivée l’option Signature locale. Voir la section « À l'écart du réseau de confiance », page 115.
© Groupe Eyrolles, 2005
137
Accès libre – PGP & GPG
Avec WinPT Pour signer une clé depuis WinPT, procédez comme suit : 1 Sélectionnez la clé que vous voulez signer, puis choisissez Key>Sign pour afficher la boîte de dialogue Key Signing, qui affiche l’empreinte de la clé et son identifiant. 2 Si vous utilisez plusieurs clés privées, une liste déroulante vous permet de choisir celle que vous souhaitez employer pour signer la clé. 3 Entrez votre phrase secrète dans le champ Passphrase, puis cliquez sur OK. Un message vous informe alors que la clé a été signée.
Avec Keychain Access Pour signer une clé avec Keychain Access, il vous suffit de la sélectionner et de choisir soit Key>Sign, soit Key>Sign Local. Si vous choisissez la deuxième option, la clé ne sera signée que localement, et votre signature ne sera pas ajoutée à la clé du serveur lorsque vous mettrez vos clés à jour. Une signature locale n’a d’utilité que pour vous-même. Dans la mesure où vous en savez maintenant assez sur OpenPGP pour signer une clé en toute connaissance de cause, choisissez la commande Sign plutôt que la commande Sign Local.
Afficher les signatures d’une clé Une fois une clé signée, vous souhaitez peut-être vérifier que votre signature y a bien été ajoutée.
Depuis l’invite de commande Pour afficher les signatures d’une clé depuis l’invite de commande, utilisez l’option --list-sigs suivie du keyid de la clé publique concernée : # gpg --list-sigs e2f41133 pub 2048R/E2F41133 2007-06-25 uid Greg Donner X sig N E2F41133 2007-06-25 Greg Donner X sig E68C49BC 2007-07-19 Michael Warren Lucas Jr X (Author, consultant, sysadmin) X <
[email protected]> sub 2048R/8373FD79 2007-06-25 sig E2F41133 2007-06-25 Greg Donner X
138
© Groupe Eyrolles, 2005
7 – Gérer son trousseau de clés avec GnuPG
La commande qui précède revient à demander la liste complète des signatures de la clé dont le keyid est E2F41133 . Cette clé ne comporte que deux signatures : l’une est celle de son détenteur , l’autre de l’auteur de cet ouvrage . Vous disposez désormais de votre propre petit réseau de confiance. Toutefois, pour vous intégrer au réseau de confiance public, vous devez rendre publiques les clés que vous avez signées (veillez simplement à bien renvoyer les clés là où vous les avez obtenues !).
Avec Enigmail Pour afficher les signatures d’une clé dans Enigmail, sélectionnez-la puis choisissez Affichage>Signatures. Pour exporter la clé publique d’une tierce personne après l’avoir signée, procédez de même que pour exporter votre propre clé publique dans un fichier.
Avec WinPT Pour afficher les signatures d’une clé dans WinPT, sélectionnez-la puis choisissez Key>List Signatures. Pour exporter la clé publique d’une tierce personne après l’avoir signée, procédez de même que pour exporter votre propre clé publique dans un fichier.
Exporter une clé Depuis l’invite de commande Pour exporter une clé publique depuis la ligne de commande, spécifiez son keyid et le nom du fichier à créer : # gpg --output X --export
gedonner.asc --armor E2F41133
Ici, nous demandons à GnuPG de créer un fichier nommé gedonner.asc , au format « armor » (ASCII) , et d’exporter la clé publique dont le keyid est E2F41133 . La commande est presque identique à celle permettant d’exporter sa propre clé. Le fichier exporté comprend la clé publique, votre signature et toutes les autres signatures qu’elle comportait auparavant. Un autre utilisateur
© Groupe Eyrolles, 2005
139
Accès libre – PGP & GPG
pourra importer ce fichier et l’ajouter à son propre trousseau, ou, si la clé se trouvait déjà dans son trousseau, lui ajouter les nouvelles signatures. Renvoyez la clé publique signée à son propriétaire dans un message électronique chiffré et signé pour lui permettre d’intégrer votre signature à sa clé publique et de la distribuer comme bon lui semble.
Avec Enigmail Pour exporter une clé avec Enigmail, sélectionnez-la dans le gestionnaire de clés, puis choisissez Fichier>Exporter des clés vers un fichier. Choisissez un nom et un répertoire de destination pour le fichier, puis cliquez sur OK ou Enregistrer. Enigmail utilise automatiquement le format ASCII, et ajoute au nom du fichier l’extension correspondante (.asc)
Avec WinPT Pour exporter une clé avec WinPT, sélectionnez-la dans le gestionnaire de clés et choisissez Edit>Copy. Créez ensuite un nouveau fichier texte et copiez-y le contenu du presse-papiers. Donnez un nom explicite au fichier et choisissez l’extension .asc afin qu’il puisse être aisément identifié en tant que clé publique OpenPGP.
Avec Keychain Access Pour exporter une clé avec Keychain Access, sélectionnez-la, puis cliquez sur le bouton Export. Dans la boîte de dialogue d’enregistrement de fichier qui apparaît, cochez l’option Armored (pour que le fichier exporté soit au format ASCII) et choisissez un nom explicite pour le fichier. Donnez-lui l’extension .asc afin qu’il puisse être aisément identifié en tant que clé publique OpenPGP.
Importer de nouvelles signatures Lorsque quelqu’un vous renvoie votre clé publique à laquelle il a ajouté sa signature, vous pouvez transférer cette signature en important dans votre trousseau le fichier envoyé par votre correspondant. GnuPG fera de lui-même le tri et intégrera la signature à votre clé publique.
140
© Groupe Eyrolles, 2005
7 – Gérer son trousseau de clés avec GnuPG
Envoyer des signatures sur des serveurs de clés Si vous vous êtes procuré la clé publique d’un correspondant auprès d’un serveur de clés, vous pouvez mettre à jour la clé directement sur le serveur (mais uniquement là où la clé a déjà été publiée).
Depuis l’invite de commande Pour effectuer cette opération depuis l’invite de commande, utilisez l’option --send-keys : vous mettez ainsi à jour l’enregistrement correspondant à la clé que vous envoyez, comme s’il s’agissait de la première publication de cette clé sur le serveur. Par exemple, mettons à jour la clé de Greg, dont le keyid est E2F41133 : # gpg --send-keys E2F41133
Avec Enigmail Pour mettre à jour une clé sur un serveur avec Enigmail, sélectionnez-la dans le gestionnaire, puis choisissez Envoyer les clés publiques. Sélectionnez ensuite le serveur de clés voulu, ou entrez son nom dans le champ Serveur de clés, et cliquez sur OK.
Avec WinPT Pour mettre à jour une clé sur un serveur avec WinPT, cliquez droit sur son nom dans le gestionnaire de clés et choisissez Send to Keyserver. Sélectionnez ensuite le serveur de clés voulu.
Avec Keychain Access Pour mettre à jour une clé sur un serveur avec Keychain Access, sélectionnez-la dans la liste. Choisissez ensuite Key>Send to Keyserver pour l’envoyer vers votre serveur de clés par défaut.
© Groupe Eyrolles, 2005
141
Accès libre – PGP & GPG
Mettre à jour des clés Lorsque vous ajoutez des signatures à votre clé publique personnelle, renvoyez-la sur le serveur de clés où vous l’aviez initialement envoyée. Par ailleurs, il est utile de s’assurer à intervalles réguliers, tous les mois par exemple, que les clés que vous avez précédemment téléchargées sont toujours valides et d’y ajouter leurs nouvelles signatures, le cas échéant. Utilisez pour cela l’option --refresh-keys. # gpg --refresh-keys gpg: rafraîchissement de 31 clés depuis hkp://subkeys.pgp.net gpg: requête de la clé D4ED7B9F du serveur hkp subkeys.pgp.net gpg: requête de la clé ...
GnuPG indique le nombre de clés de votre trousseau public et le serveur de clés où il effectue la vérification . Il affiche ensuite les requêtes qu’il envoie pour chacune des clés du trousseau, affichant pour chacune son keyid . Si l’une des clés ne se trouve pas sur le serveur, vous verrez s’afficher un message tel que celui-ci : key F5AA36476A78FC4E6CE9E1DEE12A396C18F1E038 not found on keyserver
À RETENIR En cas de changement Si l’une des clés a changé, GnuPG affiche en quoi elle a été modifiée et met à jour la copie qui se trouve sur votre trousseau.
La clé à laquelle GnuPG se réfère ci-dessus a été importée depuis un fichier et ne se trouve sur aucun serveur de clés. Pour vérifier si elle comporte de nouvelles signatures ou n’est plus valide, il faut vous la procurer à nouveau depuis l’endroit où vous l’aviez initialement obtenue. Une fois le processus de mise à jour terminé, GnuPG affiche le nombre de clés vérifiées, le nombre de clés inchangées et le nombre de nouvelles signatures qu’il a trouvées.
Effacer des clés publiques du trousseau Si, pour une raison quelconque, vous avez refusé de signer une clé publique, vous voudrez sans doute éviter de la garder dans votre trousseau. La même chose est vraie pour la clé publique d’une personne avec qui vous n’échangez plus de messages.
142
© Groupe Eyrolles, 2005
7 – Gérer son trousseau de clés avec GnuPG
Depuis l’invite de commande Pour supprimer une clé publique de votre trousseau, utilisez l’option --delete-key et spécifiez le keyid de la clé. # gpg --delete-keys E2F41133 pub 2048R/E2F41133 2007-06-25 Greg Donner X Enlever cette clé du porte-clés ? (o/N) o
GnuPG affiche le keyid et l’identifiant utilisateur de la clé que vous vous apprêtez à supprimer pour vous laisser vérifier que vous ne vous êtes pas trompé. Une fois cette vérification effectuée, appuyez sur o pour supprimer la clé de votre trousseau.
Avec Enigmail Pour supprimer une clé avec Enigmail, sélectionnez-la dans le gestionnaire de clés, puis choisissez Édition>Supprimer la clé.
Avec WinPT Pour supprimer une clé avec WinPT, sélectionnez-la dans le gestionnaire de clés, puis choisissez Key>Delete.
Avec Keychain Access Pour supprimer une clé avec Keychain Access, sélectionnez-la dans la liste des clés, puis choisissez Key>Delete.
Ajouter de photos aux clés avec GnuPG Comme nous l’avons vu au chapitre 2, les photos sont un bon moyen de compléter une clé OpenPGP. Maintenant que vous avez un peu plus d’expérience avec GnuPG et la gestion des clés, vous pouvez ajouter des photos à votre propre clé et afficher celles des clés de vos correspondants.
© Groupe Eyrolles, 2005
143
Accès libre – PGP & GPG
Ajouter une photo à une clé GnuPG comporte un éditeur de paires de clés très sophistiqué est très puissant qui vous permet de modifier votre clé d’un grand nombre de manières. Ces modifications rendraient pour la plupart inutilisable la clé d’un utilisateur moyen, aussi ne seront-elles pas traitées ici. Néanmoins l’une des fonctions de l’éditeur est d’ajouter une photo à une clé. Pour activer l’éditeur, utilisez l’option --edit-key suivie du keyid ou de votre adresse électronique. # gpg --edit-key
[email protected] La clé secrète est disponible. 1024D/E68C49BC créé: 2006-06-29 expire: 2007-06-29 utilisation: SC confiance: ultime validité: ultime sub 2048g/A67199A7 créé: 2006-06-29 expire: 2007-06-29 utilisation: E [ ultime ] (1). Michael Warren Lucas Jr (Author, consultant, sysadmin) <mwlucas @blackhelicopters.org> Commande> pub
GnuPG vous indique que vous disposez de la clé secrète pour la clé que vous vous apprêtez à modifier : rien n’est plus normal, puisqu’il s’agit de votre propre clé. Il affiche également le keyid et l’identifiant utilisateur de cette clé. Assurez-vous qu’il s’agisse bien de votre clé avant de continuer. Pour finir, l’invite de commande change pour vous rappeler que vous êtes en mode édition . Utilisez la commande addphoto : Commande> addphoto Choisissez une image à utiliser pour votre photo d’identité. L’image doit être un fichier JPEG. Rappelez-vous que cette image est stockée dans votre clé publique. Si vous utilisez une image très grosse, il en sera de même pour votre clé ! La meilleure taille à utiliser est 240x288. Entrez le nom du fichier JPEG pour la photo d’identité: c:\temp\photo.jpg
Lorsque GnuPG vous demande le nom du fichier photo, entrez son nom et son chemin complet (vous n’avez pas besoin de spécifier le
144
© Groupe Eyrolles, 2005
7 – Gérer son trousseau de clés avec GnuPG
chemin complet si vous exécutez la commande depuis le répertoire où se trouve le fichier). GnuPG ouvre alors le logiciel de visualisation d’images par défaut pour vous laisser vous assurer qu’il s’agit bien de la bonne photo. Si c’est le cas, refermez le logiciel de visualisation. GnuPG vous demande alors : Cette photo est-elle correcte (o/N/q) ? o
GnuPG vous demande ensuite votre phrase secrète pour confirmer que vous avez bien le droit d’effectuer cette modification. Saisissez-la. Commande> save
Vous retournez ensuite à l’invite de commande. En cas d’erreur, vous pouvez entrer quit à la place de save pour annuler tous les changements.
Afficher les photos avec GnuPG Pour afficher des photos avec GnuPG, votre système d’exploitation doit disposer d’une interface graphique, par exemple Microsoft Windows ou un système de type Unix avec X Windows. Pour visualiser la photo qui est rattachée à une clé, utilisez l’option --list-options show-photo avant --list-keys. # gpg --list-options show-photos X --list-keys
[email protected] Vous affichez ainsi les informations de la clé et vous lancez le visualiseur d’images qui montre la photo incluse. Attention à ne pas afficher toutes les clés de votre trousseau : il est possible que plusieurs d’entre elles comportent une photo, et dans ce cas, vous verrez s’ouvrir un visualiseur d’images pour chacune d’elles. Si votre trousseau comporte un grand nombre de clés, vous risquez d’ouvrir ainsi des dizaines, voire des centaines d’images.
À RETENIR Enigmail et ID Photo Enigmail permet d’afficher les photos d’une clé (avec la commande Affichage>ID Photo ), mais pas d’y insérer soi-même une photo.
Les photos dans WinPT Pour ajouter une photo à votre paire de clés depuis WinPT, ouvrez le gestionnaire de clés, cliquez droit sur la clé et choisissez Add.
© Groupe Eyrolles, 2005
145
Accès libre – PGP & GPG
Dans le sous-menu, choisissez Photo. WinPT ouvre alors la boîte de dialogue Add Photo ID (voir figure 7-2).
Figure 7–2
La boîte de dialogue Add Photo ID
Indiquez le chemin complet de votre photo ainsi que votre phrase secrète. Lorsque vous cliquez sur OK, WinPT ajoute la photo à votre clé. Pour afficher avec WinPT une photo attachée, double-cliquez sur la clé dans le gestionnaire de clés. La boîte de dialogue de propriétés affiche alors la photo qu’elle contient, comme le montre la figure 7-3.
Figure 7–3
La boîte de dialogue de propriétés de la clé avec une photo
Sous Windows, WinPT est sans doute le moyen le plus simple de gérer les photos dans GnuPG.
146
© Groupe Eyrolles, 2005
7 – Gérer son trousseau de clés avec GnuPG
GnuPG et le réseau de confiance Maintenant que vous savez comment gérer votre trousseau de clés, voyons comment établir un réseau de confiance avec GnuPG. Et sous PGP ? Vous avez vu au chapitre 6 que le modèle de confiance de PGP est très simple : si une clé publique est signée par quelqu’un dont vous avez signé la clé, la clé est considérée comme fiable (trusted). En conséquence, il est très facile de mettre en place un réseau de confiance avec PGP.
GnuPG est un peu plus paranoïaque (ou, si vous préférez, rigoureux). Vous pouvez affecter un niveau de confiance (trust) à toutes les clés publiques de votre trousseau, comme nous l’avons évoqué à la fin du chapitre 5. Pour que GnuPG fasse confiance à une clé précédemment inconnue, celle-ci doit avoir été signée soit par une personne en qui vous avez entièrement confiance (full trust), soit par trois personnes en qui vous avez marginalement confiance. Rappelez-vous que le terme confiance n’a pas le même sens ici que dans la vie quotidienne : il concerne uniquement la capacité de la personne à vérifier l’identité d’un tiers de manière rigoureuse et systématique. Vous pouvez définir le niveau de confiance que vous attribuez à une clé soit depuis l’invite de commande, soit à l’aide de WinPT. Les informations de confiance sont stockées dans le fichier $GPGHOME/ trustdb.gpg. Les informations de confiance sont distinctes des clés publiques elles-mêmes parce que chacun est libre d’accorder un niveau de confiance différent à une clé donnée. CONSEIL Ordre et méthode Mettez à jour à intervalles réguliers votre base de données de confiance pour éviter que cette tâche ne devienne irréalisable. Il est beaucoup plus facile d’affecter des valeurs de confiance à la demi-douzaine de nouveaux utilisateurs d’OpenPGP avec lesquels vous avez parlé la semaine précédente qu’avec les centaines de personnes avec qui vous avez correspondu au cours de l’année passée.
© Groupe Eyrolles, 2005
147
Accès libre – PGP & GPG
Affecter des niveaux de confiance Depuis l’invite de commande Utilisez l’option --update-trustdb pour affecter des niveaux de confiance. Cette commande passe en revue toutes les clés de votre trousseau en vous laissant affecter une valeur de confiance à chacune d’elles. # gpg --update-trustdb ... Décidez maintenant à quel point vous avez confiance en cet utilisateur pour qu’il vérifie les clés des autres utilisateurs (vous pouvez vérifier son passeport, vérifier les empreintes de plusieurs sources différentes, etc.) 1 = ne sais pas ou ne dirai pas 2 = je ne fais PAS confiance 3 = je crois marginalement 4 = je fais entièrement confiance s = sauter cette clé q = quitter Votre décision ? 1
GnuPG affiche les informations de base de chaque clé, notamment son identifiant et son empreinte, puis vous demande de choisir dans quelle mesure vous avez confiance en la capacité de cette personne de vérifier l’identité d’autres utilisateurs d’OpenPGP. Choisissez la valeur appropriée pour chacune des clés de votre trousseau. Ainsi, GnuPG créera votre propre réseau de confiance en fonction de vos choix. Si vous avez le moindre doute concernant une clé, choisissez la réponse 1, ne sais pas ou ne dirai pas. Vous pourrez ainsi utiliser cette clé sans vous engager quant à la confiance que vous accordez à l’utilisateur.
Avec Enigmail Pour modifier le niveau de confiance que vous affectez à une clé dans Enigmail, sélectionnez-la dans le gestionnaire de clés. Choisissez ensuite Édition>Définir le niveau de confiance de la clé. Dans la boîte de dialogue qui apparaît, choisissez l’un des cinq niveaux de confiance proposés, puis cliquez sur OK.
148
© Groupe Eyrolles, 2005
7 – Gérer son trousseau de clés avec GnuPG
Avec WinPT Pour modifier le niveau de confiance que vous affectez à une clé dans WinPT, double-cliquez dessus. Dans la boîte de dialogue de propriétés de la clé qui apparaît, cliquez sur Change, à droite du champ Ownertrust. Une nouvelle boîte de dialogue vous laisse choisir un niveau de confiance : Don’t know (ne sais pas), I do NOT trust (pas de confiance), I trust marginally (confiance marginale), I trust fully (confiance totale) ou I trust ultimately (pour votre propre clé publique, dans la mesure où vous disposez de sa clé privée).
© Groupe Eyrolles, 2005
149
chapitre
8 courrier électronique anonymat chiffrement plug-ins PGP/MIME réseau de confiance
© Groupe Eyrolles, 2005
Les principes d’OpenPGP pour le courrier électronique
SOMMAIRE
Le fonctionnement d’OpenPGP n’a plus de secret pour vous et vous maîtrisez la gestion de votre trousseau de clés. Passons maintenant à l’application principale : le chiffrement et la signature du courrier électronique.
B Chiffrement des messages B Intégration avec les logiciels de courrier électronique
B Stockage du courrier : chiffré ou non chiffré ?
B Messages provenant de l’extérieur de votre réseau de confiance
B Être anonyme mais identifiable B Ce qui n’est jamais chiffré dans un courriel MOTS-CLÉS
B anonymat B chiffrement direct B courrier électronique B Mallory B MIME, PGP/MIME B plug-ins B réseau de confiance
© Groupe Eyrolles, 2005
Accès libre – PGP & GPG
L’apprentissage du fonctionnement d’OpenPGP et de la gestion de votre trousseau de clés était un copieux hors-d’œuvre. Nous en arrivons maintenant au plat principal : l’utilisation d’OpenPGP dans le contexte du courrier électronique. PGP et GnuPG permettent tous deux d’utiliser des fonctions OpenPGP depuis un logiciel de courrier électronique. Comme vous allez le voir, le fonctionnement d’OpenPGP est très semblable dans tous les logiciels de courrier électronique une fois que vous avez repéré l’emplacement des fonctions « chiffrer » et « signer ». Autrement dit, dès lors que vous savez utiliser OpenPGP dans un logiciel de courrier électronique, vous n’aurez aucune difficulté à l’utiliser dans les autres. Le chapitre 1 comportait une liste résumant toutes les opérations qu’il est possible d’effectuer avec OpenPGP. C’était toutefois avant que vous ne vous familiarisiez avec des concepts tels que la non-répudiation. Par conséquent, cette liste n’avait peut-être pas pour vous autant de sens qu’elle en a maintenant. Examinez-la à nouveau ci-dessous avec les connaissances que vous avez acquises en matière de cryptographie : vous réalisez maintenant de quelle manière clés publiques, clés privées et signatures numériques se combinent pour fournir le niveau voulu de confidentialité. Une fois que vous commencerez à employer OpenPGP au quotidien, il ne vous faudra pas longtemps avant de savoir quand utiliser les six fonctions présentées dans le tableau ci-dessous. Tableau 8–1 Principales utilisations d’OpenPGP Je souhaite...
Je dois...
Je souhaite que toute personne lisant ce message sache que j’en suis l’expéditeur, sans contestation possible de ma part.
Signer numériquement le message avec votre clé privée.
Je voudrais vérifier l’identité de mon correspondant pour m’assurer que l’expéditeur du message est bien qui il prétend être.
Vérifier la signature avec la clé publique de l’expéditeur.
Je voudrais envoyer un message que seul mon correspondant pourra lire.
Chiffrer le message avec la clé publique du destinataire.
Je voudrais déchiffrer un message que j’ai reçu.
Déchiffrer le message avec votre clé privée.
Je souhaite envoyer un message que seul le destinataire pourra lire, et qu’il puisse vérifier que j’en suis l’expéditeur.
Chiffrer le message avec la clé publique du destinataire et signer numériquement le message avec votre clé privée.
Je souhaite déchiffrer et vérifier un message comprenant une signature numérique.
Déchiffrer le message avec votre clé privée et vérifier la signature avec la clé publique de l’expéditeur.
152
© Groupe Eyrolles, 2005
8 – Les principes d’OpenPGP pour le courrier électronique
Chiffrement des messages Lorsqu’il est employé dans le contexte du courrier électronique, OpenPGP utilise deux méthodes de chiffrement différentes. PGP/ MIME est la solution la plus moderne dans la mesure où les messages chiffrés y sont envoyés en pièces jointes, mais tous les logiciels de courrier électronique ne la prennent pas en charge. La méthode plus ancienne, qui consiste à chiffrer directement le texte du message, est adaptée aux messages électroniques simples. Le choix de la méthode de chiffrement diffère selon les logiciels de courrier électronique et le programme OpenPGP employé ; nous verrons quelles sont les options disponibles dans les sections ci-dessous.
Chiffrement direct du texte des messages Avec cette méthode, le corps du message est directement chiffré. Lorsque vous signez un tel message, le corps du message est complété par une signature OpenPGP. Lorsque vous chiffrez et signez un message, le message chiffré remplace entièrement le corps du message initial. Lorsque vous ouvrez un message chiffré de la sorte sans passer par un programme OpenPGP, le début de ce message ressemblera à ce qui suit : -----BEGIN PGP MESSAGE----Version: PGP Desktop 9.0.2 (Build 2433) qANQR1DBwU4D2jTKQaZxmacQCACbxrL+clBol8wB1R16tr5vXFFLurHsug9Qk6Cq ...
Comme vous pouvez le constater, un tel message ne comporte aucune information utile à partir du moment où on ne sait pas le déchiffrer.
Les inconvénients du chiffrement direct Le chiffrement direct est la méthode la plus simple possible, mais avec le temps, ses limitations sont devenues de plus en plus manifestes. Il pose notamment des problèmes en ce qui concerne les caractères non-ASCII, les pièces jointes et les documents binaires. Les caractères non-ASCII (caractères accentués du français, alphabet cyrillique ou caractères chinois, par exemple) ne se laissent pas toujours correctement chiffrer et déchiffrer par la méthode du chiffrement direct.
© Groupe Eyrolles, 2005
153
Accès libre – PGP & GPG
Le courrier électronique a été conçu par des anglophones pour des anglophones, et les logiciels de courrier électronique doivent déjà recourir à toutes sortes d’astuces pour gérer les jeux de caractères nonASCII (peut-être que si les créateurs du courrier électronique avaient réalisé qu’il allait être utilisé dans le monde entier et pas seulement par quelques spécialistes, ils auraient anticipé ces problèmes et conçu les normes différemment, mais les choses sont maintenant ce qu’elles sont). La combinaison de tels caractères et d’OpenPGP peut donner des résultats imprévisibles en fonction du logiciel de courrier électronique et du programme OpenPGP employés. De même, les pièces jointes posent parfois problème lors de l’utilisation du chiffrement direct. Il est possible que votre logiciel de courrier électronique chiffre le corps du message, mais pas la pièce jointe. Dans ce cas, pour utiliser le chiffrement, vous seriez obligé de chiffrer séparément le fichier que vous souhaitez envoyer ainsi que la signature et d’ajouter ces deux éléments au message en tant que pièces jointes. Par ailleurs, lors de l’utilisation du chiffrement direct, il n’est pas possible de chiffrer des données binaires : fichiers PDF ou Word, photos numériques… Et comme si cela ne suffisait pas, les serveurs de courrier électronique sont susceptibles de corrompre les messages directement chiffrés.
Les avantages du chiffrement direct Malgré tous ces inconvénients, le chiffrement direct présente un avantage important : les messages ainsi chiffrés peuvent être lus par n’importe quel logiciel de courrier électronique. PGP/MIME a été conçu en réponse à tous ces problèmes. Lorsque vous utilisez le chiffrement direct, vous devez savoir de quelle manière votre logiciel de courrier électronique interagit avec votre logiciel OpenPGP dans ces circonstances. Ces interactions seront traitées dans les deux prochains chapitres. En résumé, on peut dire que PGP Corporation se donne beaucoup de mal pour que le chiffrement direct fonctionne correctement et de manière transparente pour tous, tandis qu’avec GnuPG, tout dépend du logiciel de courrier électronique utilisé.
154
© Groupe Eyrolles, 2005
8 – Les principes d’OpenPGP pour le courrier électronique
PGP/MIME Si vous vous y connaissez un peu en informatique, vous avez sans doute déjà rencontré l’expression MIME (Multipurpose Internet Mail Extension). Il s’agit d’un ensemble de normes pour le codage du courrier. PGP/MIME est la méthode de codage conçue pour les messages OpenPGP. Pour résoudre les problèmes auxquels est confronté le chiffrement direct, PGP/MIME traite chacun des éléments d’un message comme une pièce jointe, aussi bien le texte chiffré lui-même que sa signature numérique ou que les « vraies » pièces jointes. Les serveurs et les logiciels de courrier électronique ne gèrent pas les pièces jointes de la même façon que les messages électroniques euxmêmes. Les serveurs de courrier électronique ne modifient jamais les pièces jointes et les logiciels de courrier électronique traitent les pièces jointes comme des objets distincts. Dans la mesure où les pièces jointes ne risquent pas d’être altérées, il est beaucoup plus facile de chiffrer des messages utilisant différents jeux de caractères ou des fichiers binaires avec PGP/MIME. En principe, tous les logiciels de courrier électronique et toutes les mises en œuvre d’OpenPGP sont capables de lire les messages chiffrés directement et ceux faisant appel à PGP/MIME. Toutefois, si PGP gère les deux types de codage, GnuPG ne fonctionne pas aussi bien avec tous les logiciels de courrier électronique. Certains logiciels sont plus compatibles avec GnuPG que d’autres. Le codage S/MIME Nombreux sont les individus et les sociétés à avoir créé leur propre système de courrier électronique sécurisé au cours des deux dernières décennies. Ils sont pour la plupart restés confidentiels tandis que certains connaissaient une gloire éphémère avant de disparaître. Vous verrez notamment des références au système de codage S/MIME. Certains logiciels de courrier électronique le prennent en charge, mais c’est une méthode de codage non OpenPGP. Si, lors de l’exploration des options de votre logiciel de courrier électronique, vous tombez sur une rubrique S/MIME, vous êtes au mauvais endroit.
© Groupe Eyrolles, 2005
155
Accès libre – PGP & GPG
Intégration avec les logiciels de courrier électronique Il y a deux manières d’utiliser OpenPGP avec votre logiciel de courrier électronique : soit par l’intermédiaire d’un proxy, soit à l’aide d’un module supplémentaire, ou plug-in, qui s’ajoute au logiciel.
Proxys Les proxys peuvent être utilisés avec n’importe quel logiciel de courrier électronique, mais ils ne sont pas intégrés à ce dernier. En conséquence, les paramètres de signature, de chiffrement et de déchiffrement doivent être définis dans le proxy et non dans le logiciel de courrier. Par ailleurs, lorsque vous utilisez un proxy, l’option de chiffrement et de signature de vos messages n’apparaît pas dans le logiciel de courrier : pour chiffrer ou signer vos messages, vous devez ouvrir le proxy et lui indiquer que vous souhaitez chiffrer tous les messages envoyés ou tous ceux envoyés à une adresse donnée. PGP utilise un proxy pour le chiffrement et la signature des messages, comme vous le verrez dans le prochain chapitre. DÉFINITION Proxy Un proxy est un petit programme servant d’intermédiaire entre votre logiciel de courrier électronique et votre serveur de courrier. Le proxy envoie et reçoit les messages à/de votre serveur de courrier, et le logiciel de courrier électronique ne reçoit et n’envoie le courrier que par l’intermédiaire du proxy.
Plug-ins L’alternative consiste à utiliser un plug-in. C’est l’option retenue par GnuPG. Le plug-in s’intègre au logiciel de courrier électronique et met à disposition de l’utilisateur des boutons de signature et de chiffrement directement dans l’interface du logiciel. Les plug-ins sont spécifiques à chaque logiciel de courrier électronique. Autrement dit, un plug-in conçu pour Microsoft Outlook ne fonctionnera pas dans Mozilla Thunderbird.
156
© Groupe Eyrolles, 2005
8 – Les principes d’OpenPGP pour le courrier électronique
En conséquence, chaque plug-in est muni de sa propre interface et fonctionne de manière légèrement différente. En général, les plug-ins sont conçus pour donner l’impression qu’ils font partie de l’interface du logiciel. Après tout, c’est le but de l’intégration du plug-in avec le logiciel. Nous parlerons des plug-ins de GnuPG pour différents logiciels de courrier Windows et Mac OS au chapitre 10.
Stockage du courrier : chiffré ou non chiffré ? Comme de nombreuses autres personnes, vous sauvegardez sans doute tous vos anciens messages électroniques parce que vous pouvez toujours avoir besoin de vous y référer à l’avenir. Toutefois, OpenPGP pose d’intéressants problèmes en ce qui concerne l’archivage du courrier électronique. Ainsi, lorsque vous envoyez un message chiffré à quelqu’un, votre programme de lecture de courrier électronique doit utiliser la clé privée du destinataire pour pouvoir le lire. Cependant, dans la mesure où vous ne disposez pas de la clé privée du destinataire, vous ne pouvez lire le message que vous avez envoyé, alors même que vous en êtes l’auteur d’où la nécessité de toujours chiffrer avec sa clé publique, comme nous le verrons.
Stocker le courrier sous une forme non chiffrée Certains plug-ins de logiciels de courrier électronique permettent d’enregistrer les messages sous une forme non chiffrée. Le problème de cette approche est que votre message est alors protégé pendant sa transmission, ainsi que sur l’ordinateur du destinataire, mais pas sur votre propre disque dur. Toute personne pouvant accéder à votre ordinateur pourra lire ces messages que vous avez envoyés chiffrés. Cette option peut être envisageable dans un environnement d’entreprise, mais si vous résidez dans un pays où sévit un régime totalitaire et êtes menacé par sa police secrète, la confidentialité de ces messages peut très bien être une question de vie ou de mort, à la fois pour vous et pour vos correspondants (si cette situation vous paraît artificielle, sachez que c’est ainsi qu’OpenPGP a réellement sauvé des vies).
© Groupe Eyrolles, 2005
157
Accès libre – PGP & GPG
Une alternative consiste à enregistrer tous vos messages sans chiffrement, mais sur une partition de disque chiffrée. Nous en parlerons rapidement au chapitre 11.
Chiffrer son courrier avec sa clé publique ASTUCE Proxy et déchiffrement des messages Si vous utilisez un proxy pour accéder aux services OpenPGP, le logiciel de courrier ne verra que des messages non chiffrés. En conséquence, vos messages seront toujours stockés sous une forme non chiffrée.
Une autre alternative consiste à chiffrer vos messages avec votre propre clé publique afin de pouvoir les déchiffrer par la suite avec votre clé privée et votre phrase secrète. Ainsi, vous empêchez tout accès à vos messages, même en cas de vol de votre ordinateur, tout en gardant un accès relativement simple à votre correspondance passée. Vous pouvez obtenir le même résultat dans un logiciel de courrier électronique qui enregistre les messages envoyés sous une forme chiffrée en vous envoyant à vous-même le message en copie lors de l’envoi du message initial. Nous verrons quelles options offre chaque logiciel dans les deux prochains chapitres.
Messages provenant de l’extérieur de votre réseau de confiance OpenPGP est utilisé dans le monde entier, et vous ne pouvez connaître toutes les personnes qui l’emploient. Il est probable que votre trousseau comporte d’abord des clés pour vos amis et collègues, puis se développe progressivement au fur et à mesure que vous communiquez avec un nombre croissant d’utilisateurs d’OpenPGP. Cependant, si vous recevez un message chiffré provenant d’un pays situé à l’autre bout du monde, il est tout à fait possible que vous n’ayez pas de connaissances communes et que par conséquent, vous ne puissiez pas vérifier réellement l’identité de votre correspondant. Que faire dans ce cas-là ? L’une des possibilités est de n’utiliser que le serveur de clés de PGP Corporation et de n’échanger des messages qu’avec des personnes utilisant ce serveur, qui signe les clés publiques après avoir vérifié l’adresse électronique qui y est rattachée. Toutefois, la norme OpenPGP est ouverte, ce qui veut dire que tout le monde a le droit de créer un logiciel OpenPGP et que vous ne pouvez empêcher personne de vous envoyer un message chiffré comme vous ne
158
© Groupe Eyrolles, 2005
8 – Les principes d’OpenPGP pour le courrier électronique
pouvez l’empêcher de vous envoyer une carte postale. Imaginons que vous ayez des correspondants qui utilisent OpenPGP dans le monde entier, et qu’un certain nombre d’entre eux aient des clés publiques sans aucun lien avec votre réseau de confiance. Comment vous fier à eux ? Voici les trois options dont vous disposez : • étendre votre réseau de confiance ; • trouver des liens de confiance jusqu’au correspondant ; • utiliser la clé en n’accordant qu’une confiance limitée à l’expéditeur.
Étendre son réseau de confiance C’est l’option la plus correcte. Échangez des signatures avec un plus grand nombre de personnes, y compris celles avec lesquelles vous n’échangerez sans doute jamais de messages chiffrés. Signez leurs clés et faites-leur signer la vôtre. Ainsi, vous serez mieux intégré au réseau de confiance global, ce qui vous rendra plus facile à retrouver et inversement.
Parcourir le réseau de confiance (pathfinder) Effectuez une recherche Google portant sur « PGP pathfinder ». Vous trouverez un certain nombre de sites web permettant de trouver les chemins existant dans le réseau de confiance entre deux clés publiques au choix, ces clés devant se trouver toutes deux sur des serveurs de clés publics. Il faut pour cela fournir les keyid des deux clés concernées (rappelez-vous que le keyid n’est rien d’autre que les huit derniers caractères de l’empreinte de la clé). Plus il existe de manières d’aller d’une clé à l’autre, plus vous vous fierez à cette clé. Si vous avez fait signer votre clé au cours de plusieurs séances de signature, vous vous attendrez à trouver plusieurs « chemins » menant de votre clé vers n’importe quelle autre faisant partie du réseau de confiance. Les programmes de recherche de chemins à l’intérieur du réseau de confiance sont majoritairement basés sur Wotsap, un programme en Python conçu pour trouver des liens entre clés. Wotsap est disponible sur de nombreux sites web. Si l’analyse du réseau de confiance vous intéresse, nous vous suggèrons de commencer par ce programme.
© Groupe Eyrolles, 2005
159
Accès libre – PGP & GPG
EXEMPLE Examiner les nœuds intermédiaires en cas de doute (pathfinder) Supposons par exemple qu’après avoir publié ce livre, l’auteur reçoive un message électronique d’une personne prétendant être Phil Zimmermann, le créateur de PGP. Le keyid de l’expéditeur est B2D7795E. L’auteur peut retrouver la clé publique de Phil Zimmermann sur un serveur de clés ou sur sa page web, mais il est possible que quelqu’un ait diffusé une fausse clé à sa place pour tromper les gens. Il se rend donc sur un site « pathfinder » pour le réseau de confiance, à l’adresse www.cs.uu.nl/~henkp/henkp/pgp/pathfinder, le premier résultat fourni par Google. Il entre le keyid du message reçu ainsi que le sien. Le serveur indique qu’il existe huit chemins disjoints (disjunct) entre les deux clés, huit chemins différents n’ayant aucune clé en commun. Pour que cette clé soit un faux, il aurait fallu que le faussaire trompe un grand nombre de personnes. Bien que l’auteur n’ait jamais rencontré Phil Zimmermann, il fera confiance à sa signature. Si le pathfinder avait indiqué un seul chemin, il aurait eu beaucoup plus de soupçons.
Être anonyme mais identifiable Quoi que vous fassiez, il arrivera un jour où vous recevrez un message chiffré avec votre clé publique mais provenant d’un inconnu, dont vous ne pouvez pas vérifier la clé et qui ne fait pas partie du réseau de confiance. Que faire dans ce cas ? Trois possibilités s’offrent à vous : supprimer le message sans le lire, ou le conserver en attendant de pouvoir vérifier l’identité de son propriétaire, ou enfin installer la clé publique de l’expéditeur pour vérifier sa signature, ce qui ne présente aucun danger. Utiliser une clé sans lien avec aucun réseau de confiance peut en fait être très utile pour qui souhaite rester anonyme ou caché derrière un pseudonyme. Ce livre, par exemple, a bénéficié de la relecture de contributeurs renommés d’une liste de diffusion GPG, connus sous leurs seuls pseudonymes. Peu importe leur identité réelle ; l’important était la certitude que leur contribution venait bien de ces mêmes personnes qui intervenaient par ailleurs brillamment sur la liste. Qui sait, peut-être s’agissaitil de souris extra-intelligentes, mais qu’importe ? L’utilisation d’une clé extérieure au réseau de confiance offre ainsi la possibilité, le moment venu, de dévoiler ou non qu’on est l’auteur de mes-
160
© Groupe Eyrolles, 2005
8 – Les principes d’OpenPGP pour le courrier électronique
B.A.-BA Importer une clé publique est sans danger « Comment cela, sans danger ? Alors qu’il n’est pas possible de vérifier l’identité de l’expéditeur ? ». L’installation d’une clé publique, quelle qu’elle soit, est sans risque. Une clé inconnue sur votre trousseau public ne compromettra pas la sécurité de votre machine, ne diffusera pas votre phrase secrète au monde entier et ne permettra pas à Mallory d’accéder à votre compte bancaire (il existe bien sûr la possibilité que Mallory découvre une « clé publique magique » qui exploite un bogue de votre logiciel OpenPGP et lui permette ainsi d’accéder à votre ordinateur, mais PGP et GnuPG gèrent les clés avec beaucoup de prudence et sont spécifiquement audités dans ce domaine).
sages. Ainsi du salarié d’une entreprise qui dévoilerait des informations compromettantes sur les agissements de la direction. Ces messages seraient signés, et une fois la multinationale détruite et son patron en prison, il pourrait choisir ou non de révéler qu’il est l’auteur des dénonciations en présentant la clé privée et la phrase secrète... La véritable question, ici, est celle du degré de confiance que vous accordez à votre correspondant. Le fait que vous ajoutiez une clé à votre trousseau ne signifie pas que vous la signiez, ni que vous croyiez ce que raconte l’auteur des messages. Il signifie simplement que vous pouvez lire les messages de l’expéditeur et décider de le croire ou non. Si vous décidez de correspondre avec lui, vous avez pour le moins la certitude que les messages ultérieurs que vous recevrez proviennent toujours de la même personne. Cela dit, le réseau de confiance reste indispensable. Il est un excellent moyen de vérifier l’identité de ses correspondants, surtout si vous utilisez la technique de « recherche de chemins » (pathfinding) décrite plus haut ; il est un excellent moyen de vérifier que vous êtes bien qui vous prétendez être. L’utilisation du réseau de confiance n’est pas obligatoire, l’emploi d’OpenPGP sans le réseau de confiance offre diverses autres possibilités. Mais sans lui, tenter de prouver l’identité de quelqu’un revient à essayer de trouver dans une cave à charbon à minuit un chat noir qui ne s’y trouve pas. Le réseau de confiance vous permet de disposer d’un filet et d’une lampe de poche, ou vous avertit pour le moins que le chat est en réalité un tigre.
© Groupe Eyrolles, 2005
161
Accès libre – PGP & GPG
Ce qui n’est jamais chiffré dans un courriel OpenPGP utilise toutes sortes d’astuces pour protéger le contenu d’un message, mais vous devez connaître les éléments qui ne sont pas protégés. Notamment, OpenPGP ne chiffre pas l’objet (ou sujet) d’un message. Un objet tel que « Rendez-vous hôtel de France 22 h » est tout à fait explicite pour quelqu’un qui intercepterait votre message. Lorsque vous envoyez un message chiffré avec OpenPGP, donnez-lui un objet aussi neutre que possible, par exemple « divers », ou pas d’objet du tout.
Stocker sous une forme non chiffrée Par ailleurs, il est possible que par défaut, votre logiciel de courrier électronique stocke une version non chiffrée des messages OpenPGP que vous envoyez. Veillez à vous familiariser avec la manière dont votre système OpenPGP stocke vos messages. Le logiciel mutt, par exemple, stocke ceux-ci sous une forme chiffrée. En conséquence, vous ne pouvez pas lire les messages chiffrés que vous envoyez, sauf à les chiffrer aussi avec votre propre clé publique. D’autres personnes préfèrent configurer leur logiciel de courrier électronique de telle manière qu’il stocke les messages envoyés dans un format non chiffré. Si vous ne vous souciez pas que les personnes pouvant accéder à votre ordinateur lisent les messages chiffrés que vous avez envoyés, cette dernière solution vous conviendra. Si en revanche, la confidentialité des messages que vous envoyez est une question de vie ou de mort, mieux vaut vous assurer que vos messages envoyés restent chiffrés. Nous y reviendrons dans les deux prochains chapitres. Vous en savez maintenant assez pour utiliser OpenPGP et le réseau de confiance au quotidien. Voyons comment configurer les logiciels de courrier électronique avec GnuPG et PGP.
162
© Groupe Eyrolles, 2005
chapitre
9
© Groupe Eyrolles, 2005
Assurer la confidentialité des mails avec PGP sous Windows
SOMMAIRE
B Interaction avec votre logiciel
Si vous cherchez une solution de chiffrement qui fonctionne de manière automatique, PGP peut être une bonne solution. Une réserve, toutefois : ce logiciel n’est disponible qu’en anglais et uniquement sous Windows et Mac OS X.
© Groupe Eyrolles, 2005
de courrier électronique
B Créer des règles pour le chiffrement du courrier MOTS-CLÉS
B PGP Desktop B liste de diffusion B règles de courrier B stockage
Accès libre – PGP & GPG
PGP facilite l’utilisation d’OpenPGP dans le cadre du courrier électronique en se chargeant de tous les détails techniques du chiffrement, du déchiffrement et de la signature de messages. C’est donc une bonne solution pour tous ceux qui cherchent un chiffrement qui fonctionne de manière automatique, avec une réserve, toutefois : PGP n’est actuellement disponible qu’en anglais, ce qui peut représenter un obstacle. Pour simplifier l’utilisation du chiffrement au jour le jour, PGP se base sur des règles définies par vos soins qui déterminent quand et dans quelles conditions les messages doivent être chiffrés, déchiffrés et signés. Les règles sont ensuite appliquées automatiquement sans que vous ayez à intervenir, et les messages sont chiffrés ou déchiffrés lors de leur envoi ou avant leur arrivée dans votre boîte de réception. Ce système fonctionne avec tous les logiciels de courrier électronique et évite d’oublier de signer ou de chiffrer un message.
Interaction avec votre logiciel de courrier électronique Sous Windows, la coordination de votre logiciel de courrier électronique et de PGP est on ne peut plus simple : une fois PGP Desktop installé et lancé, le programme reste à l’arrière-plan en attendant que vous envoyiez un message électronique. Lorsqu’il détecte l’envoi d’un message, il intercepte la requête et affiche une boîte de dialogue vous demandant si vous souhaitez sécuriser ce compte de courrier électronique. Répondez Yes et cliquez sur Suivant. Vous pourrez alors choisir de créer une nouvelle clé (New key), d’utiliser votre clé PGP Desktop existante (PGP Desktop key) ou d’importer une paire de clés (Import key). Choisissez PGP Desktop key et cliquez sur Suivant. Sélectionnez la clé à employer (en principe, vous ne devriez avoir qu’une seule clé privée) et cliquez sur Suivant. Cliquez ensuite sur Terminer : c’est fait, votre compte de courrier et configuré pour être utilisé avec PGP. Sous Mac OS X, vous devez fournir à PGP les paramètres des comptes de courrier que vous utilisez. Ouvrez l’interface principale de PGP Desktop et dans le volet de gauche, cliquez sur PGP Messaging. Cliquez ensuite sur le bouton Create New Service dans le volet principal de l’interface. Dans la boîte de dialogue qui apparaît, entrez une description (de
166
© Groupe Eyrolles, 2005
9 – Assurer la confidentialité des mails avec PGP sous Windows
N’OUBLIEZ PAS D’EXÉCUTER PGP DESKTOP Veillez à ce que PGP Desktop soit en cours de fonctionnement à chaque fois que vous envoyez ou recevez du courrier. Dans le cas contraire, votre courrier ne pourra être ni chiffré, ni déchiffré. Et vous ne vous apercevrez peut-être même pas que c’est le cas. Lorsque PGP Desktop est actif, un petit cadenas argenté s’affiche dans la zone de notification Windows, en bas et à droite dans la barre des tâches, ou, sous Mac OS X, à l’extrémité droite de la barre de menus, à côté de l’horloge.
préférence le nom de votre compte de courrier électronique), puis les paramètres de votre compte : adresse électronique, serveur entrant (Incoming Mail Server), serveur sortant (Outgoing Mail Server) et nom d’utilisateur (Username). Vous pouvez également spécifier la clé à utiliser avec ce compte, mais ce n’est pas obligatoire. Cliquez sur Save pour enregistrer ces informations. Si vous utilisez plusieurs comptes de courrier, répétez ces opérations pour chacun d’eux. Par la suite, lorsque vous utiliserez ces comptes, vos messages seront automatiquement signés, chiffrés et déchiffrés par PGP. Si PGP ne parvient pas à intercepter votre courrier, le problème vient probablement de ce que votre logiciel de courrier électronique utilise une connexion sécurisée (ou connexion SSL) avec votre serveur de courrier. Examinez les paramètres de votre compte de courrier : vous devriez y trouver une option du type Ce serveur nécessite une connexion sécurisée. Assurez-vous que cette option soit désactivée. Si votre serveur de courrier électronique permet des connexions sécurisées (SSL), PGP Desktop le détectera automatiquement, mais c’est PGP qui doit établir cette connexion et non votre logiciel de courrier électronique.
Identifier les messages OpenPGP Dans la mesure où toutes les opérations OpenPGP sont gérées par le proxy, votre logiciel de courrier électronique n’est pas impliqué du tout dans le processus de chiffrement ou de signature. Les messages reçus s’affichent entièrement en texte clair, mais le proxy PGP ajoute une ligne telle que celle-ci au début du message : * PGP Signed: 9/22/05 at 11:45:28
© Groupe Eyrolles, 2005
167
Accès libre – PGP & GPG
À la fin du message, PGP ajoute deux lignes supplémentaires qui indiquent l’identifiant utilisateur (UID) de l’expéditeur, ainsi que son keyid, similaires à celles-ci : * Michael Warren Lucas Jr (Author, consultant, sysadmin) * 0xE68C49BC
Ces trois lignes sont la seule chose dans le message qui témoignent de l’intervention de PGP. Par conséquent, soyez vigilant !
Stockage des messages Une autre conséquence de l’utilisation d’un proxy est que tous les messages sont stockés en clair sur votre ordinateur local. Si vos messages comportent des informations confidentielles et si votre ordinateur n’est pas à l’abri du vol, veillez à protéger les messages qui se trouvent sur votre disque dur. PGP Desktop dispose de fonctions de chiffrement et de déchiffrement de fichiers et de dossiers. Utilisez-les pour chiffrer l’ensemble de vos archives de messages électroniques. Vous devrez alors déchiffrer votre archive des messages pour envoyer ou recevoir des messages, bien sûr, mais c’est préférable à la divulgation de vos données confidentielles. Notez que PGP Desktop propose une fonction qui chiffre et déchiffre des « partitions virtuelles », fichiers chiffrés permettant de stocker des données à la manière d’un disque virtuel.
Créer des règles pour le chiffrement du courrier MAC OS X Règles de courrier Sous Mac OS X, cliquez sur le nom du compte de courrier, sous PGP Messaging. Notez que les règles de courrier s’appliquent séparément à chacun de vos comptes. Par conséquent, si vous utilisez plusieurs comptes et si vous souhaitez créer des règles personnalisées, veillez à les créer pour chacun d’eux !
168
PGP n’ajoute pas de boutons à votre logiciel de courrier électronique (ou tout au plus un bouton « PGP » pour ouvrir la fenêtre principale de PGP Desktop). Par conséquent, vous ne pouvez décider depuis votre logiciel de courrier électronique si vous souhaitez chiffrer ou signer un message donné. Ces décisions sont toutes prises par l’intermédiaire du proxy, que vous configurez via PGP Desktop. Ainsi, votre utilisation d’OpenPGP est systématique et rigoureuse : vous ne pouvez oublier de chiffrer un message confidentiel après avoir indiqué à PGP Desktop que tout message de tel type doit être traité comme confidentiel. Pour déterminer
© Groupe Eyrolles, 2005
9 – Assurer la confidentialité des mails avec PGP sous Windows
quels messages sont chiffrés ou signés par le proxy, vous devez créer des règles depuis PGP Desktop : cliquez sur PGP Messaging, dans le volet de gauche. Le volet principal de la fenêtre de PGP Desktop affiche alors les règles en vigueur, sous Security Policies (voir figure 9-1).
Figure 9–1
Les règles de traitement des messages
Par défaut, PGP Desktop utilise quatre règles, qui conviennent à la plupart des situations. Vous devez néanmoins comprendre leur fonctionnement, notamment parce que certaines nécessitent d’être adaptées pour être utiles dans un contexte francophone. Les règles sont les suivantes : Opportunistic Encryption (chiffrement opportuniste), Require Encryption (Chiffrement obligatoire), Mailing List Submissions (envoi sur les listes de diffusions) et Mailing List Admin Requests (gestion des listes de diffusion).
Chiffrement en fonction du destinataire « Chiffrement opportuniste » (Opportunistic Encryption) signifie simplement que PGP doit utiliser la clé d’un destinataire particulier si elle est disponible. Si vous envoyez un message à un correspondant et si la clé publique de ce correspondant se trouve dans votre trousseau, PGP l’emploie pour chiffrer le message avant son envoi. Dans le cas contraire, PGP cherche sur ses serveurs la clé correspondant à l’adresse électro-
© Groupe Eyrolles, 2005
169
Accès libre – PGP & GPG
nique. S’il la trouve, il l’utilise pour chiffrer le message. Par défaut, PGP utilise le serveur de clés PGP Global Directory. Cette méthode fonctionne donc pour les correspondants OpenPGP qui ont envoyé leurs clés sur ce serveur. Voir le chapitre 6 pour plus d’informations sur la manière de spécifier des serveurs de clés supplémentaires. Si PGP ne trouve aucune clé publique pour ce correspondant, le message est envoyé sans chiffrement ni signature.
Chiffrement obligatoire La règle « Demander le chiffrement » (Require Encryption) impose que le message soit chiffré avant d’être envoyé à son destinataire. Si PGP ne peut pas chiffrer le message, il n’est pas envoyé. Lorsque vous cliquez sur Envoyer, vous voyez alors s’afficher un message du type An error occurred while sending mail. The mail server responded: No encryption key found for recipient: mwlucas@blackhelicopters .org. Please check the message and try again.
Il vous indique que PGP a bien intercepté le message, mais qu’il n’a pas trouvé de clé publique pour le destinataire, et que par conséquent, il n’a rien envoyé. Pour que cette règle soit appliquée à un message donné, placez la chaîne [PGP] (crochets compris) n’importe où dans l’objet du message. PGP détectera cette chaîne et appliquera cette règle.
Envoi sur les listes de diffusion Les messages que vous envoyez sur les listes de diffusion ne doivent jamais être chiffrés : quelle clé emploieriez-vous ? Toutefois, rien ne vous empêche de signer ces messages pour confirmer qu’ils proviennent bien de vous. La règle « envoi sur les listes de diffusion » (Mailing List Submissions) est conçue spécifiquement pour ce cas. Son fonctionnement est basé sur l’adresse électronique où vous envoyez le message. Si cette adresse comprend des chaînes telles que -users@, -list@ ou -news@ (ainsi que plusieurs autres que nous n’énumérerons pas ici), les messages sont signés mais pas chiffrés.
170
© Groupe Eyrolles, 2005
9 – Assurer la confidentialité des mails avec PGP sous Windows
Les chaînes sur lesquelles est basée cette règle correspondent aux types d’adresses électroniques couramment employées pour les listes de diffusion anglo-saxonnes. Les listes de diffusions francophones n’utilisent que rarement ces types d’adresses et, dans ce cas précis, cette règle n’est pas d’une grande utilité. Toutefois, vous verrez un peu plus loin comment créer une règle spécifiquement adaptée aux listes de diffusion auxquelles vous êtes abonné.
Gestion des listes de diffusion La dernière règle, « gestion des listes de diffusion » (Mailing List Admin concerne les messages que vous envoyez aux gestionnaires des listes de diffusion pour effectuer automatiquement des opérations telles que des désabonnements provisoires ou définitifs. Les programmes auxquels vous envoyez ces messages ne sont pas compatibles avec OpenPGP et par conséquent, ils risquent d’interpréter de manière imprévisible les messages chiffrés ou signés.
Requests)
Cette règle de PGP est similaire à la précédente : elle s’applique automatiquement aux messages envoyés à destination d’adresses électroniques comportant certaines chaînes de caractères, telles que -subscribe@ ou -unsubscribe@. Et comme la précédente, cette règle n’est pas d’un grand secours pour la plupart des listes de diffusion francophones. Vous devrez donc définir vos propres règles pour ces types de messages. Les quatre règles sont traitées dans l’ordre. Si le message satisfait les critères de la première règle, c’est elle qui est appliquée et les autres sont ignorées. Sinon, on passe à la deuxième règle, et ainsi de suite. Vous pouvez changer l’ordre d’application en cliquant sur Edit policies, à droite dans le volet principal de l’interface, puis en sélectionnant une règle dans la liste et en cliquant sur Move up ou Move Down.
Créer des règles personnalisées À l’évidence, les quatre règles par défaut de PGP ne suffisent pas pour toutes les situations, d’autant qu’elles ne sont pas adaptées au français. Vous souhaiterez peut-être n’envoyer que des messages signés, mais non chiffrés, à certains de vos correspondants, même si leurs clés publiques se trouvent sur un serveur de clés. Ou si vous êtes abonné à une liste de diffusion, il est probable que les règles par défaut ne conviennent pas. Pour
© Groupe Eyrolles, 2005
171
Accès libre – PGP & GPG
créer une règle personnalisée, cliquez sur New Policy dans le volet de gauche, sous PGP Messenging. La boîte de dialogue qui s’ouvre alors (voir figure 9-2) vous laisse définir votre règle personnalisée. Commencez par entrer une description de votre règle dans le champ Description. Vous devez ensuite définir les conditions dans lesquelles cette règle s’appliquera, les actions à effectuer lorsque les conditions sont remplies et que faire lorsque ces actions ne peuvent être exécutées.
Figure 9–2
La boîte de dialogue qui permet de définir une règle personnalisée
Conditions La première section décrit les conditions d’application de la règle. Vous pouvez définir plusieurs conditions et choisir d’appliquer la règle si toutes les conditions sont remplies (If all), si au moins une condition est remplie (If any) ou si aucune condition n’est remplie (If none). Les critères disponibles sont les suivants : • Recipient est l’adresse électronique du destinataire. Vous pourriez par exemple créer une règle indiquant que tout message adressé à l’adresse Recipient doit être chiffré et signé. Bien entendu, la règle par défaut de chiffrement opportuniste a exactement le même effet dans ce cas. • Recipient Domain est le nom de domaine de l’adresse électronique du destinataire, ce qui se trouve après le symbole @. Vous pourriez par exemple choisir de ne chiffrer aucun des messages envoyés à destina-
172
© Groupe Eyrolles, 2005
9 – Assurer la confidentialité des mails avec PGP sous Windows
tion d’un service tel que Gmail, qui ne propose pas de fonctions cryptographiques. • Message Subject vous permet de définir une règle qui s’applique si l’objet de votre message comprend une chaîne de caractères donnée. Supposons que vous soyez abonné à une liste de diffusion et que pour vous désabonner de cette liste, vous deviez envoyer un message comportant le texte « unsubscribe » dans son objet. Dans ce cas, vous créeriez une règle spécifiant que tout message dont le destinataire (Recipient) est la liste de diffusion et dont l’objet comporte le mot « unsubscribe » ne doit être ni chiffré, ni signé. • Message Body est une condition similaire à la précédente, à ceci près qu’elle s’applique au corps du message et non à son objet. Cette condition peut également être utile dans le contexte d’une liste de diffusion, par exemple si pour vous désabonner, vous devez envoyer un message dont le contenu soit « unsubscribe ». • Certains logiciels de courrier électronique permettent d’ajouter des en-têtes personnalisés aux messages. Le critère Message Header sert à définir une règle qui s’applique si l’en-tête de votre message contient (ou ne contient pas) une certaine chaîne de caractères. Si vous ne savez pas ce qu’est un en-tête de message électronique, ne prêtez pas attention à ce critère : cela ne vous empêchera pas d’utiliser PGP. • Message Priority et Message Sensitivity (priorité et confidentialité) sont des paramètres que vous pouvez affecter un message depuis la plupart des logiciels de courrier électronique, même si dans certains d’entre eux les options correspondantes sont difficiles à trouver. Mieux vaut toutefois utiliser des règles portant sur le destinataire, l’objet ou le corps du message. Vous pouvez ajouter des conditions supplémentaires en cliquant sur le bouton « plus » qui se trouve sur le côté droit de la boîte de dialogue.
Actions La section suivante de la boîte de dialogue vous laisse définir quelles actions PGP doit appliquer aux messages respectant les critères que vous avez retenus plus haut. Avec l’option Send in Clear, votre message est envoyé en clair, sans signature. Si vous choisissez cette option, votre règle est prête, et vous pouvez cliquer sur OK.
© Groupe Eyrolles, 2005
173
Accès libre – PGP & GPG
Si vous choisissez de chiffrer le message (Encrypt to) ou de le signer (Sign), il vous faut choisir le type de chiffrement à employer. Nous avons parlé du chiffrement direct des messages et de PGP/MIME dans le précédent chapitre. Par ailleurs, si vous choisissez de chiffrer le message, vous devez également choisir quelle clé employer pour le chiffrement. L’option par défaut, recipient’s unverified key, consiste à utiliser la clé du destinataire, même si elle n’a pas été signée par vos soins. Avec l’option recipient’s verified key, le message ne sera chiffré que si vous avez signé la clé du destinataire. Avec « a list of keys » enfin, le message ne sera chiffré que si la clé fait partie de la liste de clés que vous définissez. Comme pour les conditions, il est possible de définir plusieurs actions en cliquant sur le bouton « plus » correspondant sur le côté droit de la boîte de dialogue, par exemple lors de la définition d’une règle dont le but est à la fois de signer et de chiffrer vos messages.
Exceptions Si les critères que vous avez définis plus haut sont respectés, vous devez indiquer à PGP ce qu’il doit faire s’il ne trouve pas la clé du destinataire, si elle n’est pas signée par vos soins ou si elle ne fait pas partie de la liste que vous avez définie. Vous pouvez demander à PGP de chercher la clé, d’envoyer le texte en clair ou de ne pas l’envoyer. Par défaut, PGP recherche la clé publique du destinataire sur un ou plusieurs serveurs de clés (Search on). Avec Send message in clear, le message est envoyé en clair ; avec Block message, le message n’est pas envoyé. La deuxième liste déroulante spécifie sur quel serveur PGP doit effectuer la recherche. Par défaut, le serveur sélectionné est celui de PGP, keyserver.pgp.com, mais vous pouvez également demander une recherche sur tous les serveurs de la liste que vous avez définie (All Keyservers). La liste déroulante If no result vous laisse spécifier ce que PGP doit faire si la recherche sur les serveurs de clés ne donne pas de résultat : envoyer le message en clair (Send message in clear) ou ne pas l’envoyer (Block message). La dernière liste déroulante, enfin, sert à indiquer ce que PGP doit faire des clés qu’il a trouvées sur un serveur de clés : les stocker provisoirement en mémoire cache (temporarily cache found keys), les ajouter à votre trousseau (save found keys) ou vous poser la question le moment venu.
174
© Groupe Eyrolles, 2005
9 – Assurer la confidentialité des mails avec PGP sous Windows
Exemple de règle personnalisée : exception à une règle par défaut Dans la plupart des cas, les règles par défaut de PGP Desktop suffisent. Il arrive toutefois qu’il soit utile de créer ses propres règles, soit parce qu’on a besoin de définir une exception à une règle par défaut, soit pour remplacer l’une d’elles. Par exemple, si vos correspondants ignorent tout de PGP, vous choisirez peut-être de ne pas signer certains messages correspondant pourtant à la règle n°2. Un autre cas d’exception consiste à ne pas chiffrer des messages avec une clé obsolète oubliée sur un serveur (cela n’arriverait pas si toutes les clés avaient un délai d’expiration). Pour répondre à ces deux problèmes, créez une seule règle personnalisée qui ressemble à celle de la figure 9-3. Figure 9–3
Une règle de message personnalisée dans PGP
Avec cette règle, tous les messages envoyés aux adresses mentionnées seront en texte clair, sans signature. Vous compléterez cette règle au fur et à mesure, lorsque certaines personnes vous informeront qu’elles ne peuvent ou ne veulent pas recevoir de messages chiffrés ou signés.
À RETENIR Send in clear, envoyer le texte en clair Dans la mesure où l’option Send in Clear a été choisie, toutes les autres options disparaissent.
Exemple de règle personnalisée : remplacer une règle par défaut Imaginons : vos correspondants utilisent pour la plupart le format PGP/ MIME, et ils n’aiment pas recevoir des messages utilisant le format de
© Groupe Eyrolles, 2005
175
Accès libre – PGP & GPG
chiffrement par défaut de PGP, qui est le chiffrement direct du message. Pour résoudre ce problème, remplacez la règle de chiffrement opportuniste (Opportunistic Encryption) par votre propre règle, en indiquant que le format PGP/MIME doit être employé pour tous les messages que vous envoyez. Pour ce faire, cliquez sur PGP Messaging, à gauche dans l’interface de PGP Desktop, puis sur Edit policies, à droite. Sélectionnez Opportunistic Encryption dans la liste et copiez cette règle avec Duplicate Policy. Sélectionnez ensuite la règle dupliquée dans la liste et cliquez sur Edit Policy. Il ne vous reste plus qu’à choisir PGP/MIME dans la liste déroulante Prefer pour que tous les messages chiffrés utilisent automatiquement le format PGP/MIME (voir figure 9-4). encoding
Figure 9–4
Une règle qui permet d’envoyer les messages au format PGP/MIME par défaut.
Comme le montre la figure 9-4, vous pouvez utiliser l’astérisque en tant que caractère générique. Ici, ce symbole assure que la règle s’applique quel que soit le domaine de l’adresse électronique du destinataire (Recipient Domain). Vous pourriez également dupliquer la règle de chiffrement obligatoire (Require Encryption) et la modifier pour utiliser également le format PGP/MIME dans tous les messages à chiffrer, mais il est probable que tous les destinataires auxquels s’appliquerait cette règle utilisent euxmêmes PGP desktop et ne se soucient pas du format de leurs messages.
176
© Groupe Eyrolles, 2005
9 – Assurer la confidentialité des mails avec PGP sous Windows
Ordre des règles Les règles que vous créez sont automatiquement placées au début de la liste, en supposant que vous souhaitez qu’elles s’appliquent prioritairement par rapport aux règles par défaut. En réalité, ce n’est pas toujours le cas. Ainsi, la deuxième règle personnalisée que nous avons créée (qui impose le format PGP/MIME) s’applique à tous les messages envoyés, mais vous ne voulez pas que les messages à destination des listes de diffusion soient chiffrés ou signés. Cette règle doit donc être l’avant-dernière et précéder Opportunistic Encryption. Pour ce faire, cliquez sur PGP Messaging dans le volet de gauche de l’interface de PGP Desktop, sélectionnez la règle à déplacer, puis cliquez sur les boutons fléchés (Move Up et Move Down).
Figure 9–5
Modification des règles de PGP
Comme nous l’avons déjà mentionné, les règles sont traitées dans l’ordre. Dans l’exemple ci-dessus, la première règle personnalisée, Cleartext Exceptions, sera la première traitée. En conséquence, tous les messages dont l’adresse électronique correspond à celles de cette règle seront systématiquement envoyés en texte clair, sans chiffrement ni signature. Pour désactiver provisoirement une règle, y compris une règle par défaut, décochez la case qui se trouve à sa gauche. Les règles offrent une grande souplesse en matière de traitement des messages électroniques. Une fois votre ensemble de règles bien en place, elles garantiront que vos messages seront traités de manière systématique, sans que vous ayez à vous en soucier.
© Groupe Eyrolles, 2005
177
chapitre
10
© Groupe Eyrolles, 2005
... et avec GnuPG sous Windows, Linux et Mac OS X
SOMMAIRE
Comment utiliser GnuPG avec les principaux logiciels de courrier électronique : Mozilla Thunderbird, Microsoft Outlook, Microsoft Outlook Express, et Mail, proposé par défaut sous Mac OS X.
B Thunderbird et GnuPG B Apple Mail et GPGMail B Outlook Express et GnuPG B Outlook et GnuPG MOTS-CLÉS
B Enigmail B GPGMail B GPGoe B GPGol B PGP/MIME B plug-ins
© Groupe Eyrolles, 2005
Accès libre – PGP & GPG
GnuPG n’est pas facile à utiliser tel quel avec un logiciel de courrier électronique parce qu’il fonctionne depuis l’invite de commande tandis que les logiciels actuels utilisent pratiquement tous une interface graphique. Cependant, il existe des plug-ins GnuPG pour tous les logiciels de courrier électronique courants, qui disposent de fonctions plus ou moins complètes, et dont certains sont traduits en français. Dans ce chapitre, nous verrons comment utiliser GnuPG avec les principaux logiciels de courrier électronique : Mozilla Thunderbird, de la suite logicielle Mozilla, Mail, le logiciel par défaut de Mac OS X, et enfin, les deux logiciels de courrier électronique de Microsoft proposés sous Windows, Microsoft Outlook et Microsoft Outlook Express.
Thunderbird et GnuPG LOGICIELS Suite logicielle Mozilla La fondation Mozilla est à l’origine de plusieurs excellents logiciels, notamment le navigateur web Firefox, le logiciel de courrier électronique Thunderbird, le logiciel de suivi de bogues Bugzilla et plusieurs autres. Tous ces logiciels sont gratuits et sous licence MPL (Mozilla Public License). Cette dernière est une licence de logiciels libres et open source créée par Netscape. Elle a la particularité de permettre la publication d’un logiciel à la fois sous licence MPL et sous une ou plusieurs autres licences, telles que la GPL.
PORTABILITÉ Thunderbird pour tous Mozilla Thunderbird et sa remarquable extension Enigmail fonctionnent tout aussi bien sous Mac OS X que sous Windows, et aussi sous Linux.
180
Thunderbird est le logiciel de courrier électronique de la « suite logicielle » Mozilla et un descendant direct du navigateur web Netscape. Vous pouvez le télécharger depuis www.mozilla-europe.org/fr. Thunderbird a rapidement établi sa réputation de qualité, et c’est le logiciel que choisissent de nombreux utilisateurs exigeants en matière de traitement du courrier électronique. Le code source de Thunderbird étant public, les développeurs de GnuPG n’ont eu aucune difficulté à intégrer toutes les fonctions qu’ils voulaient dans le plug-in.
Installer Enigmail, le plug-in GnuPG de Thunderbird Le plug-in GnuPG de Thunderbird, qui se nomme Enigmail, se présente sous la forme d’une extension (Thunderbird, de même que la plupart des logiciels Mozilla, est conçu pour être « extensible » et faciliter le développement par des tiers de modules qui complètent les fonctions du logiciel). Comme Thunderbird lui-même, Enigmail est gratuit. Pour installer le plug-in, procédez comme suit : 1 Téléchargez Enigmail depuis le site http://enigmail.mozdev.org (cliquez
sur le lien Download). Choisissez la version qui correspond à votre système d’exploitation. Cliquez ensuite sur language pack, vers le haut de la page, et téléchargez le paquet de traduction correspondant au français (il se nomme enigmail-fr-FR-0.9x.xpi au moment où ces lignes sont écrites).
© Groupe Eyrolles, 2005
10 – ... et avec GnuPG sous Windows, Linux et Mac OS X
Si vous utilisez Firefox pour télécharger ces deux fichiers, ne cliquez pas dessus, sinon Firefox croira qu’il s’agit d’extensions qui lui sont destinées, et vous verrez alors s’afficher un message d’erreur. Cliquez droit (Mac OS : Ctrl+clic) sur le lien menant vers le fichier et dans le menu contextuel, choisissez Enregistrer la cible du lien sous. 2 Lancez Thunderbird, choisissez Outils>Extensions, puis cliquez sur Installer. Retrouvez sur votre disque dur le premier fichier que vous avez téléchargé. Thunderbird vous demande de confirmer l’installation. Une fois celle-ci effectuée, fermez Thunderbird.
3 Ouvrez à nouveau Thunderbird, choisissez Outils>Extensions et cli-
quez sur Installer. Retrouvez sur le disque dur le deuxième fichier téléchargé (celui qui traduit Enigmail en français) et encore une fois, confirmez l’installation. Refermez ensuite Thunderbird. 4 Lorsque vous lancez ensuite Thunderbird, une nouvele entrée, OpenPGP,
apparaît dans la barre de menus.
Configurer Enigmail Pour configurer Enigmail, choisissez OpenPGP>Préférences et affichez la boîte de dialogue de la figure 10-1.
Figure 10–1
Les préférences d’Enigmail
© Groupe Eyrolles, 2005
181
Accès libre – PGP & GPG
1 La première étape consiste à indiquer à Enigmail où se trouve l’exécu-
table de GnuPG. Selon votre système d’exploitation, il est possible que le champ correspondant soit déjà rempli. Par défaut, sous Windows, le répertoire d’installation est C:\Program Files\GNU\GnuPG\ gpg.exe. Sous Mac OS X et la plupart des versions de Linux, le chemin à employer est /usr/local/bin/gpg ou /usr/bin/gpg (à adapter selon votre système d’exploitation et votre distribution). 2 Comme les autres plug-ins OpenPGP, Enigmail peut mémoriser
votre phrase secrète. La valeur par défaut de cinq minutes est adaptée à de nombreuses situations. Au travail ou sur un ordinateur public, une valeur de deux ou trois minutes sera plus prudente. Pour votre ordinateur domestique, enfin, une valeur d’une heure est raisonnable. 3 Le champ Serveur de clés spécifie où Enigmail doit chercher les clés
publiques lorsque vous recevez un message signé ou chiffré. Ce champ est rempli d’office. Ne le modifiez que si vous rencontrez des problèmes de connexion avec les serveurs. 4 L’onglet Envoi (voir figure 10-2) comporte plusieurs options impor-
tantes. L’option Chiffrer pour soi-même, notamment, crée automatiquement une copie chiffrée avec votre propre clé privée des messages que vous envoyez, ce qui vous autorise à y accéder par la suite (nous avons évoqué ce problème au chapitre 8). Cliquez sur OK une fois que vous avez terminé.
Figure 10–2
Les options d’envoi d’Enigmail
182
© Groupe Eyrolles, 2005
1 Depuis l’interface principale de Thunderbird, choisissez Outils>Paramètres des comptes.
2 Dans la liste de gauche, sous le nom de votre compte, cliquez sur Sécurité OpenPGP.
3 Assurez-vous que dans le volet de droite, l’option Activer le support OpenPGP pour cette identité
soit cochée. Cliquez ensuite sur OK.
Enigmail est maintenant prêt à l’emploi.
À RETENIR Clé par défaut Par défaut, Enigmail utilise la clé dont l’identifiant utilisateur (UID) correspond à l’adresse électronique du compte. Ainsi, si l’adresse du compte de Greg est :
[email protected] Enigmail cherchera une paire de clés avec cette adresse électronique. Si vous souhaitez utiliser une autre clé, entrez son keyid dans le champ Utiliser un identifiant de clé particulier ou cliquez sur Choisir une clé.
Envoyer des messages chiffrés La rédaction et l’envoi d’un message chiffré avec OpenPGP sont pratiquement identiques à ceux de n’importe quel autre message. Lorsque vous cliquez sur Écrire, la fenêtre de rédaction comporte un bouton supplémentaire, OpenPGP. Quand vous cliquez dessus, Thunderbird affiche une petite boîte de dialogue comportant trois options (voir figure 10-3).
Figure 10–3
Les options d’envoi des messages d’Enigmail
Cochez Signer le message et Chiffrer le message. Par défaut, Enigmail utilise le chiffrement direct des messages, mais vous pouvez aussi choisir un chiffrement PGP/MIME. Ce choix dépendra des possibilités du logiciel de courrier électronique de votre correspondant.
Règles en fonction des destinataires Ces nombreuses possibilités sont bienvenues, mais elles compliquent également votre tâche : difficile de se rappeler quel logiciel de courrier électronique est employé par quel correspondant, et donc de choisir le bon format de chiffrement. Heureusement, Enigmail autorise à créer des règles pour chacun de vos correspondants. Lors de l’envoi de vos mes-
© Groupe Eyrolles, 2005
183
10 – ... et avec GnuPG sous Windows, Linux et Mac OS X
Activez ensuite Enigmail pour les comptes avec lesquels vous souhaitez l’utiliser.
Accès libre – PGP & GPG
sages, Enigmail les traitera automatiquement en fonction de ces règles, sans que vous ayez à vous poser de questions. 1 Dans l’interface principale de Thunderbird, choisissez OpenPGP> Modifier les règles par destinataire.
La fenêtre qui apparaît affiche toutes les règles que vous avez définies. Dans la figure 10-4, la fenêtre comporte une seule règle.
Figure 10–4
L’éditeur de règles par destinataire
2 Cliquez sur Ajouter pour créer une nouvelle règle (voir figure 10-5).
Figure 10–5
Création d’une règle par destinataire
184
© Groupe Eyrolles, 2005
10 – ... et avec GnuPG sous Windows, Linux et Mac OS X
Sur la figure 10-5, vous voyez une règle pour les messages envoyés à
[email protected]. Une clé OpenPGP particulière doit être employée pour les messages envoyés à cette adresse. La liste déroulante PGP/MIME, en bas, évite d’avoir à se rappeler, au moment de l’envoi, si le destinataire peut déchiffrer les messages PGP/MIME ou non. Avec la règle définie dans cet exemple, tous les messages envoyés à l’adresse
[email protected] sont automatiquement chiffrés et signés, et n’utilisent jamais PGP/MIME. Vous pouvez également créer des règles qui s’appliquent à un domaine entier ou un nom d’utilisateur, ou définir divers autres critères d’application des règles.
Ouvrir des messages chiffrés L’ouverture de messages OpenPGP avec Enigmail, qu’ils utilisent PGP/ MIME ou non, ne pose en principe aucun problème. Lorsque vous tentez d’ouvrir un message OpenPGP, Enigmail affiche une boîte de dialogue vous demandant votre phrase secrète. Ensuite, il se charge automatiquement de tout. Par ailleurs, Enigmail affiche très clairement le statut OpenPGP du message, comme le montre la figure 10-6.
Figure 10–6
Ouverture d’un message OpenPGP
La rubrique OpenPGP, dans l’en-tête du message, affiche ses informations OpenPGP. L’arrière-plan vert indique qu’Enigmail a pu vérifier la signature du message, qui est décrite comme étant correcte. Si vous cli-
© Groupe Eyrolles, 2005
185
Accès libre – PGP & GPG
quez sur le crayon bleu, sur le côté droit, vous affichez une boîte de dialogue avec des informations OpenPGP détaillées : identifiant de la clé de l’expéditeur, date d’expédition et empreinte de la clé utilisée pour la signature. En cas de problème avec la signature, l’icône du crayon, à droite, apparaît brisée.
Apple Mail et GPGMail En tant qu’heureux propriétaire d’un Mac, vous n’êtes peut-être pas prêt à renoncer à l’utilisation de Mail, le logiciel de courrier électronique d’Apple. La bonne nouvelle est qu’il existe pour Mail un plug-in OpenPGP en français, GPGMail. Mieux encore : l’auteur du plug-in, Stéphane Corthésy, propose sur son site des informations claires et en français sur l’installation et le fonctionnement de son logiciel. Et dans la mesure où ce plug-in déchiffre aussi les messages au format PGP/ MIME, vous pouvez utiliser Mail en conjonction avec OpenPGP d’une manière relativement satisfaisante. ALTERNATIVE Thunderbird et Enigmail L’utilisation de Thunderbird et d’Enigmail est néanmoins plus simple que celle de Mail avec GPGMail. En effet, GPGMail ne disposant pas de son propre gestionnaire de clés, vous devrez recourir à Keychain Access, et parfois au Terminal, pour la gestion de vos clés. C’est le prix à payer pour rester fidèle à Apple.
GnuPG et les logiciels de courrier électronique de Microsoft À NOTER Outlook, Outlook Express et PGP/MIME L’équipe de GnuPG a diverses idées ingénieuses pour faire fonctionner le format PGP/MIME avec ces deux logiciels, mais à l’heure actuelle, aucune des solutions envisagées n’est disponible pour le grand public.
186
Dans la mesure où Outlook Express et Outlook ne permettent pas à des logiciels tiers d’accéder aux en-têtes MIME bruts des messages, ces deux logiciels n’offrent qu’une compatibilité limitée avec le format PGP/ MIME. Si en revanche tous vos correspondants utilisent le chiffrement direct des messages électroniques, vous ne devriez pas rencontrer de problème lors de l’utilisation de GnuPG avec les logiciels de Microsoft.
© Groupe Eyrolles, 2005
Utilisation de WinPT avec Outlook et Outlook Express Avant d’envoyer ou d’ouvrir des messages OpenPGP avec Outlook Express ou Outlook, veillez à ajouter la clé publique de votre correspondant à votre trousseau WinPT, comme nous l’avons vu au chapitre 7. Sinon, vous risquez d’être confronté à des messages d’erreur peu rassurants.
Outlook et GnuPG Le gouvernement allemand a encouragé la création d’un plug-in GnuPG de grande qualité pour Outlook. Ce plug-in gratuit, qui se nomme GPGol, est maintenant développé par g10code, une société allemande qui propose des services en matière de GnuPG et de logiciels associés.
Installer le plug-in GPGol À l’heure actuelle, GPGol n’est pas disponible seul. Il fait partie du « pack » Gpg4win dont il a été question au chapitre 4. Si vous avez installé GnuPG et WinPT, mais pas GPGol, la meilleure solution consiste à les désinstaller tous deux, puis à les réinstaller ainsi que GPGol à partir de Gpg4win. Le plug-in sera alors prêt à fonctionner depuis Microsoft Outlook.
À NOTER Versions d’Outlook prises en charge À l’heure actuelle, GPGol ne fonctionne qu’avec Outlook 2003 SP2 et versions ultérieures, mais il est possible que d’autres versions d’Outlook soient prises en charge lorsque vous lirez ces lignes. Vous trouverez plus information à ce sujet sur le site des développeurs du logiciel, à l’adress : B http://www.g10code.com/p-gpgol.html
Configurer le plug-in Contrairement au plug-in pour Outlook Express, GPGol ne nécessite aucune configuration particulière. Si vous vous trompez en saisissant votre phrase secrète, le plug-in vous demandera de réessayer plutôt que d’envoyer le message non chiffré, comme le fait GPGoe.
© Groupe Eyrolles, 2005
187
10 – ... et avec GnuPG sous Windows, Linux et Mac OS X
À l’évidence, vous n’avez aucun contrôle sur les messages électroniques qu’on vous envoie, et le format PGP/MIME est largement utilisé. Si vous voulez disposer d’un logiciel gratuit et si vous êtes fatigué de demander « Pouvez-vous renvoyer votre message sans utiliser le format PGP/MIME ? », nous vous conseillons de vous intéresser à Mozilla Thunderbird. Ce logiciel de courrier électronique est aussi simple d’emploi qu’Outlook ou Outlook Express, il est gratuit, il dispose de plus de fonctions et il peut importer vos comptes de courrier et vos messages depuis Outlook Express. Néanmoins, pour ceux qui refusent de se laisser convaincre, les pages qui suivent montreront ce qu’il est possible de faire avec les logiciels de Microsoft.
Accès libre – PGP & GPG
Une fois le plug-in installé, redémarrez Outlook, puis choisissez Outils>Options. La boîte de dialogue comporte maintenant un nouvel onglet nommé GnuPG, qui vous permet de paramétrer le plug-in. Avant cela, configurez Outlook de telle manière que les messages soient rédigés au format texte et non en HTML. Ouvrez l’onglet Format du courrier, comme le montre la figure 10-7.
Figure 10–7
L’onglet Format du courrier des options d’Outlook, les options étant configurées pour GnuPG
La première liste déroulante de cet onglet permet de choisir le format dans lequel sont envoyés les messages. Choisissez Texte brut dans cette liste déroulante. Ainsi, non seulement vos messages pourront être chiffrés avec GnuPG, mais ils seront également plus faciles à interpréter par des logiciels de courrier électronique non Microsoft. Passez ensuite à l’onglet GnuPG, comme le montre la figure 10-8. Les différentes options proposées dans cet onglet ne devraient pas vous poser de problème, mais nous allons néanmoins les passer en revue rapidement.
188
© Groupe Eyrolles, 2005
10 – ... et avec GnuPG sous Windows, Linux et Mac OS X
Figure 10–8
L’onglet GnuPG d’Outlook
Options Si vous cochez l’option Encrypt new messages by default, Outlook affichera une boîte de dialogue vous demandant de sélectionner la clé du destinataire à chaque fois que vous enverrez un message. Dans le cas où vous ne disposez pas de cette clé, annulez le chiffrement au moment de l’envoi. Outlook ne peut pas télécharger automatiquement les clés des destinataires. Si vous cochez Sign new messages by default, GnuPG signera tous les messages électroniques que vous envoyez, ce qui troublera ceux de vos correspondants qui ne savent pas ce qu’est OpenPGP. L’option Save decrypted message automatically indique au plug-in d’enregistrer le message en clair (nous en avons parlé dans le chapitre 8, dans la section « Stockage du courrier : chiffré ou non ? »). Si vous préférez que vos messages restent confidentiels en cas de vol de votre ordinateur, évitez de cocher cette option. Avec l’option Also encrypt message with the default key, tous les messages que vous envoyez sont chiffrés avec votre clé publique en plus de celle de votre ou vos destinataire(s). En conséquence, vous pourrez utiliser votre
© Groupe Eyrolles, 2005
189
Accès libre – PGP & GPG
phrase secrète pour ouvrir des messages chiffrés que vous avez envoyés à des tiers. Dans certains cas, cette possibilité constituera un risque trop important pour vous. Ainsi, si vous travaillez dans une zone dangereuse, le fait que les messages que vous envoyez puissent être déchiffrés sur votre ordinateur risque de mettre en danger vos amis ou vos collègues. En revanche, si votre principal souci est de sécuriser vos documents au cas où votre ordinateur portable serait volé dans le métro, cette option peut s’avérer utile. Après tout, le voleur ne pourra lire ces messages s’il ne dispose pas de la phrase secrète (nous reparlerons de ce sujet dans le chapitre 11).
Phrase secrète, ou passphrase Le plug-in peut mémoriser votre phrase secrète après que vous l’ayez tapée. Ainsi, si vous signez ou déchiffrez plusieurs messages d’affilée, vous n’avez pas besoin de la saisir à plusieurs reprises. La valeur par défaut est de 600 secondes, soit dix minutes. Avec une valeur de 0, la phrase secrète reste mémorisée jusqu’à la fermeture d’Outlook. Nous conseillons d’utiliser une valeur d’environ 120 secondes, soit une durée suffisante pour déchiffrer ou signer plusieurs messages, sans pour autant prendre le risque qu’un tiers n’envoie des messages en votre nom sans avoir à saisir la phrase secrète pendant que vous allez chercher un café.
Avancé En cliquant sur le bouton Avancé, vous affichez une boîte de dialogue qui spécifie le chemin de l’exécutable de GnuPG, le répertoire racine de GnuPG ainsi que le chemin de l’exécutable de votre gestionnaire de clés. Utilisez-la par exemple lorsque vous avez installé plusieurs versions de GnuPG ou plusieurs gestionnaires de clés et que vous souhaitez passer de l’un à l’autre. À RETENIR Limites du chiffrement GPG avec Outlook Rappelez-vous que seules les pièces jointes au format texte sont ainsi chiffrées. Le chiffrement n’est pas appliqué à des fichiers binaires tels que des images ou des feuilles de calcul. Notez que le couple Thunderbird/ Enigmail chiffre bien l’ensemble des messages, pièces jointes comprises.
190
Envoyer des messages chiffrés Pour envoyer un message chiffré avec OpenPGP depuis Outlook, procédez comme suit : 1 Rédigez votre message comme vous le feriez normalement. 2 Examinez la barre d’outils de la fenêtre du message. Vous y verrez
deux nouveaux boutons : Encrypt message with GPG (son icône repré-
© Groupe Eyrolles, 2005
10 – ... et avec GnuPG sous Windows, Linux et Mac OS X
sente une feuille dont la partie inférieure est rouge) et Sign message (son icône représente une feuille et un crayon). Le premier chiffre votre message, tandis que le second sert à le signer.
with GPG
3 Lorsque vous cliquez sur Envoyer, le plug-in vous demande votre
phrase secrète. Lorsque vous l’avez saisie, Outlook envoie le message à son destinataire. Si votre message comprend une pièce jointe au format texte brut, le plug-in la chiffrera séparément et elle apparaîtra au destinataire sous la forme d’une pièce jointe distincte.
Recevoir des messages chiffrés Avec le plug-in GPGol, la réception de messages directement chiffrés dans Outlook est on ne peut plus simple. Lorsque vous cliquez sur un message, GnuPG affiche une boîte de dialogue vous demandant votre phrase secrète. Lorsque vous l’avez saisie, le message déchiffré apparaît dans Outlook.
À RETENIR Ergonomie La seule chose qui distingue les messages chiffrés des autres est la boîte de dialogue vous demandant votre phrase secrète. Les messages signés, quant à eux, comportent un en-tête qui indique si la signature est valide ou non.
Outlook Express et GnuPG Outlook Express est livré par défaut avec Microsoft Windows, ce qui en fait l’un des logiciels de courrier électronique les plus utilisés dans le monde. Il répond aux besoins de la plupart des utilisateurs et il est simple d’emploi. Le plug-in GnuPG pour Outlook Express se nomme GPGoe. Bien qu’officiellement il s’agisse encore d’une bêta, il est tout à fait utilisable tel quel. Vous le trouverez en téléchargement sur le site wald.intevation.org/ projects/gpgoe. Le fichier téléchargé est une archive ZIP. Extrayez-la dans le dossier où vous souhaitez installer le plug-in, puis lancez GPGOEInit.exe. Vous verrez apparaître l’icône d’un cadenas dans la zone de notification (à droite de la barre des tâches) qui vous indique que le plug-in est actif. Pour le désactiver, double-cliquez sur cette icône et répondez Yes à la question de la boîte de dialogue. Il peut être utile d’ajouter un raccourci vers GPGOEInit.exe dans le dossier Démarrage afin que le plug-in soit systématiquement lancé en même temps que Windows.
© Groupe Eyrolles, 2005
191
Accès libre – PGP & GPG
Configurer Outlook Express pour OpenPGP À RETENIR Envoi des messages avec Outlook Express Lorsque l’option Envoyer les messages immédiatement est désactivée, vous devez cliquer sur le bouton Envoyer/Recevoir pour faire partir votre message. Le bouton Envoyer de la fenêtre du message lui-même est sans action. Cela vous laisse la possibilité, en cas d’échec du chiffrement, de remédier au problème avant que le message soit envoyé.
Outlook Express étant incompatible avec PGP/MIME, il ne pourra déchiffrer que des messages contenant du texte. Vous ne chiffrerez ni ne déchiffrerez des messages au format HTML. Avant de commencer à rédiger des messages chiffrés dans Outlook Express, configurez les options du logiciel comme dans la figure 10-1. 1 Choisissez Outils>Options. 2 Dans l’onglet Envois, sous Format d’envoi du courrier, sélectionnez Texte brut pour que le texte des messages que vous rédigez puisse être directement chiffré par GnuPG.
3 vec cette option, votre message sera envoyé dans tous les cas, même si
son chiffrement a échoué (par exemple parce que vous avez fait une erreur en saisissant votre phrase secrète). En conséquence, le message risque d’être expédié tel quel, ni chiffré, ni signé.
Figure 10–9
L’onglet Envois de la boîte de dialogue d’options d’Outlook Express
192
© Groupe Eyrolles, 2005
10 – ... et avec GnuPG sous Windows, Linux et Mac OS X
Envoyer des messages chiffrés Le plug-in GPGoe n’a aucun effet visible sur Outlook Express tant que vous ne cliquez pas sur le bouton Créer un message. Lorsque vous ouvrez une fenêtre de composition de message, vous devriez voir apparaître deux nouveaux boutons, Signer et Crypter (voir figure 10-2). Si vous avez déjà utilisé le système de signature numérique propriétaire de Microsoft, vous reconnaissez sans doute ces deux boutons ; l’auteur du plug-in les a simplement réutilisés pour GnuPG. Figure 10–10
Rédaction d’un message chiffré avec GnuPG dans Outlook Express
À RETENIR Message sans objet
Rédigez votre message, puis cliquez sur Signer. Un ruban rouge apparaît à droite du champ À :. Pour chiffrer le message, cliquez sur le bouton Crypter. Vous verrez alors apparaître l’icône d’un cadenas à droite du champ Cc : (ou du champ À : si le message n’est pas signé).
Vous avez peut-être remarqué que le message de la figure 10-10 ne comporte aucun objet pour éviter qu’il ne dévoile la moindre information quant à son contenu, puisque l’objet des messages n’est pas chiffré.
N’oubliez surtout pas Rappelez-vous qu’Outlook Express enverra votre message même si pour une raison quelconque, le plug-in n’a pas pu le signer ou le chiffrer. Si GnuPG vous renvoie une erreur, examinez la Boîte d’envoi. Votre message s’y trouvera, ni signé, ni chiffré. Copiez le corps du message dans un nouveau message, supprimez le message non chiffré, puis réessayez (dans Outlook Express, les messages sont stockés chiffrés).
© Groupe Eyrolles, 2005
193
Accès libre – PGP & GPG
Lorsque vous cliquez sur Envoyer, le plug-in affiche une boîte de dialogue vous demandant d’entrer votre phrase secrète. Après l’avoir saisie, cliquez sur OK. Votre message est alors stocké dans la Boîte d’envoi en attendant que vous cliquiez sur Envoyer/Recevoir.
Boîtes de dialogue et avertissement divers Vous verrez peut-être s’afficher diverses autres boîtes de dialogue lors de l’envoi de messages électroniques GnuPG depuis Outlook Express. Ainsi, le plug-in vous demandera peut-être de choisir la clé publique à employer pour le destinataire, ou, si votre trousseau comporte plusieurs clés privées, de sélectionner celle qui doit servir à signer le message.
Recevoir et vérifier des messages signés et chiffrés Lorsqu’Outlook Express reçoit un message dont le texte a été directement chiffré, le plug-in l’intercepte et vérifie automatiquement la signature ou vous demande votre phrase secrète pour déchiffrer le message. Dans les deux cas, le résultat s’affiche dans une fenêtre séparée. Le message original reste dans son format initial dans Outlook Express. Le déchiffrement de messages au format PGP/MIME est plus problématique puisque, comme vous vous le rappelez, Outlook Express ne permet pas au plug-in d’accéder aux en-têtes MIME bruts. Vous pouvez toutefois essayer de déchiffrer les messages depuis l’invite de commande. Nous verrons comment faire un peu plus loin dans ce chapitre.
Déchiffrer des messages PGP/MIME avec Outlook et Outlook Express Nous l’avons dit, les plug-ins GnuPG pour les logiciels de courrier électronique Microsoft ne sont pas compatibles avec PGP/MIME. Dans certains cas, toutefois, vous pourrez déchiffrer de tels messages en passant par l’invite de commande de GnuPG (pour plus de détails sur les commandes de GnuPG, voir l’annexe B).
194
© Groupe Eyrolles, 2005
10 – ... et avec GnuPG sous Windows, Linux et Mac OS X
Les messages PGP/MIME arrivent sous forme de pièces jointes portant l’extension .asc. Si le message chiffré ne comprend pas de pièces jointes (autrement dit, si la pièce jointe chiffrée ne comprend pas elle-même de sous-pièces jointes), vous pourrez parfois le déchiffrer manuellement. Procédez comme suit : 1 Enregistrez la pièce jointe avec l’extension .asc sur votre disque dur,
ouvrez une fenêtre d’invite de commande et allez dans le répertoire où vous avez enregistré le fichier. 2 Utilisez --decrypt avec gpg pour déchiffrer le fichier. L’affichage
devrait être similaire à celui-ci : C:> gpg --decrypt msg.asc Vous avez besoin d’une phrase de passe pour déverrouiller la clé secrète pour l’utilisateur: « Greg E Donner » clé de 2048 bits ELG-E, ID 80154DE0, créée le 2006-06-29 (ID clé principale 46CD08E9)
gpg: chiffré avec une clé de 2048 bits ELG-E, ID 80154DE0, créée le 2006-06-29 « Greg E Donner » Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit La prochaine réunion du club des cinq aura lieu vendredi prochain à minuit.
gpg: Signature faite le 07/03/06 21:28:14 avec la clé DSA ID E68C49BC gpg: Bonne signature de « Michael Warren Lucas Jr (Author, consultant,sysadmin) <
[email protected]> »
GnuPG demande immédiatement une phrase de passe pour afficher le message déchiffré . Ensuite, GnuPG vous informe que la signature est bonne . Vous trouverez que ce qui précède représente beaucoup de travail simplement pour lire un seul message. Il existe des solutions plus simples, mais qui nécessiteront éventuellement de votre part de changer de logiciel de courrier électronique. À l’heure actuelle, la meilleure solution pour la réception de messages PGP/MIME se nomme sans doute Thunderbird, qui présente l’avantage supplémentaire d’offrir une interface entièrement en français, y compris en ce qui concerne GnuPG.
© Groupe Eyrolles, 2005
AVANCÉ GnuPG depuis l’invite de commande Voir à l’annexe B le résumé des principales commandes de GnuPG depuis l’invite de commande.
195
chapitre
11 risques
© Groupe Eyrolles, 2005
Vers une meilleure securité avec OpenPGP
SOMMAIRE
Gardez à l’esprit que dans tout système de chiffrement, le maillon faible, c’est l’homme. OpenPGP n’y fait pas exception.
B D’où proviennent les risques ? B Interopérabilité d’OpenPGP B OpenPGP et le travail d’équipe B OpenPGP et les systèmes partagés
B Autres fonctions MOTS-CLÉS
B clé professionnelle B interopérabilité B Mallory B phishing B risque
© Groupe Eyrolles, 2005
Accès libre – PGP & GPG
Vous savez maintenant raisonnablement bien comment utiliser OpenPGP avec PGP et GnuPG, et vous n’aurez aucune difficulté à saisir rapidement le fonctionnement d’autres produits OpenPGP. Pour conclure ce livre, voyons quelques problématiques intéressantes concernant l’utilisation d’OpenPGP, de PGP et de GnuPG. Aucun protocole de sécurité n’étant parfait, nous allons voir à quels risques on s’expose lors de l’utilisation d’OpenPGP. Nous évoquerons les problèmes d’interopérabilité entre PGP et GnuPG (ainsi que les autres applications OpenPGP) et la manière dont des groupes de personnes peuvent utiliser la même clé en minimisant les risques. Pour finir, nous parlerons de techniques rendant un peu moins risquée l’utilisation d’OpenPGP sur un système partagé ainsi que de certaines fonctions supplémentaires qu’offrent WinPT et GnuPG.
D’où proviennent les risques ? Bien qu’OpenPGP offre une méthode fiable pour prouver l’authenticité d’un message, il n’est pas inutile de se rappeler que PGP est le sigle de « Pretty Good Privacy », qu’on pourrait traduire par « protection acceptable de la vie privée ». Autrement dit, PGP offre un niveau de confidentialité acceptable, mais rien de plus. Mallory (le « méchant » ; voir chapitre 1) dispose de nombreuses méthodes pour contourner les protections d’OpenPGP, reposant pour la plupart sur la naïveté ou l’ignorance de la victime. Rappelez-vous les détails essentiels de l’utilisation d’OpenPGP ; de cette façon, Mallory se lassera très vite et ira embêter quelqu’un d’autre.
Mauvaise utilisation Le mauvais usage est de loin le risque principal lors de l’utilisation d’OpenPGP. Mal employé, OpenPGP crée l’illusion de la sécurité alors qu’il n’en est rien en réalité. L’illusion de la sécurité est pire que l’absence de sécurité : si votre porte d’entrée paraît verrouillée mais qu’elle ne l’est pas, mieux vaut le savoir. Tout non-respect des règles d’OpenPGP peut être assimilé à un mauvais usage. Si vous laissez votre clé privée sur votre site web, même dans un répertoire caché, quelqu’un la trouvera. « T’as d’beaux yeux, tu sais »
198
© Groupe Eyrolles, 2005
11 – Vers une meilleure securité avec OpenPGP
n’est pas une phrase secrète : c’est une incitation à l’usurpation d’identité. Et ne vous envoyez pas non plus votre phrase secrète et votre clé privée à vous-même par courrier électronique. Ces exemples proviennent de situations vécues, et toutes les personnes concernées ont regretté leur imprudence tôt ou tard. La justification habituelle de cette imprudence est que les règles d’OpenPGP sont complexes, ce qui n’est pas faux. La confidentialité et la sécurité ne sont pas simples à mettre en œuvre, mais si vous lisez ce livre, c’est que vous considérez que les efforts à faire pour les préserver en valent la peine. Certaines personnes vont même jusqu’à stocker leurs clés OpenPGP uniquement sur des ordinateurs qui ne sont connectés à aucun réseau. Tout ce qu’ils signent ou chiffrent est transféré sur un support amovible, puis sur l’ordinateur déconnecté, traité avec OpenPGP et enfin transféré à nouveau sur l’ordinateur connecté. De telles mesures sont sans doute exagérées pour la plupart des utilisateurs, mais sont une excellente technique pour ceux qui ont besoin d’un niveau de sécurité très élevé, dans la mesure où la couche de sécurité physique qui est ainsi ajoutée est très difficile à circonvenir.
Mauvaise signature « Ce monsieur dit qu’il est Michael W. Lucas. Je lui fais confiance. » C’est exactement l’erreur à ne pas faire. Lorsque vous signez la clé de quelqu’un d’autre, vous ne validez pas seulement son identité pour votre propre usage : vous affirmez aussi publiquement que vous avez vérifié son identité. Une personne parvenant à en tromper une autre et à faire signer sa clé alors qu’elle ne correspond pas à son identité réelle s’insère ainsi dans le réseau de confiance et peut ensuite en tromper d’autres. Rappelez-vous que vous pouvez utiliser la clé publique de n’importe qui sans la signer. Si un correspondant vous envoie un message, vous pouvez importer sa clé publique et l’utiliser pour lire les messages chiffrés avec la clé privée correspondante. Vous n’avez aucune preuve qu’il est réellement qui il prétend être, mais vous saurez à coup sûr que tous les messages ultérieurs signés de façon identique proviennent d’une personne ayant accès à la même clé privée.
© Groupe Eyrolles, 2005
199
Accès libre – PGP & GPG
Failles matérielles Une personne disposant d’un accès physique à votre ordinateur peut obtenir votre phrase secrète. Un keylogger matériel, un petit appareil qui se branche sur le câble de votre clavier, est disponible sur Internet pour quelques dizaines d’euros et enregistre toutes les touches que vous saisissez au clavier.
DÉFINITION Keyloggers Les keyloggers sont couramment employés par les forces de police et les détectives privés. Si vous êtes sous la menace d’un espionnage, assurez-vous de l’absence de keyloggers avant d’utiliser OpenPGP. L’utilisation d’une disposition particulière des touches du clavier n’est pas une protection : Mallory se rendra rapidement compte que vous utilisez une disposition différente et aura tôt fait de « décoder » ce que vous avez saisi à l’aide d’un logiciel d’analyse. Notez qu’en revanche, en dehors de toute considération de sécurité, les claviers Dvorak sont un excellent moyen d’éviter qu’on vous emprunte votre ordinateur pendant la pause déjeuner.
Certains de ces appareils sont même assez petits pour être insérés dans des ordinateurs portables. Mallory pourrait discrètement raccorder un tel appareil à votre ordinateur pendant votre déjeuner, attendre quelques jours, puis récupérer l’appareil et voir tout ce que vous avez tapé. Si vous avez saisi votre phrase secrète au cours de cette période, vous êtes perdu. Il faudra sans doute beaucoup de patience à Mallory pour retrouver votre phrase secrète parmi tout ce que vous avez saisi, mais si elle est suffisamment motivée, elle y parviendra. L’une des solutions à ce problème consiste à utiliser un clavier « virtuel », qui permet de sélectionner les lettres à l’écran avec la souris au lieu de les taper au clavier. Une telle mesure ne concernera que les personnes les plus menacées, mais si vous êtes dans une telle situation, un outil de ce genre vous protégera. Attention toutefois : ne raccourcissez pas votre phrase secrète sous prétexte qu’elle est plus difficile à saisir avec la souris. Après tout, l’intérêt du clavier virtuel est justement qu’il rend votre phrase secrète plus sûre. Si la protection de la phrase secrète est importante, celle du fichier contenant votre clé privée l’est tout autant. Une personne disposant d’un accès physique à votre ordinateur pourra toujours ouvrir son boîtier et voler ou copier votre disque dur pour se procurer votre fichier de clé privée. Pour cette raison, de nombreuses personnes gardent toutes leurs clés privées et publiques sur des clés USB. Il est plus difficile de voler une clé cryptographique lorsqu’elle reste en permanence sur votre personne.
Failles logicielles Si votre système d’exploitation n’est pas sûr, Mallory est capable d’accéder à vos données confidentielles depuis n’importe où dans le monde. Vers, virus et logiciels espions enregistrent tout ce que vous saisissez au clavier sans même nécessiter un accès physique à votre machine. Certains logiciels espions sont capables de chercher activement
200
© Groupe Eyrolles, 2005
11 – Vers une meilleure securité avec OpenPGP
les mots de passe et les phrases secrètes que vous saisissez, tandis que d’autres donnent à des individus malveillants le contrôle à distance de votre ordinateur. Les solutions à ce problème sont relativement simples. • Tout d’abord, veillez à ce que votre système d’exploitation soit à jour des derniers correctifs. Configurez-les pour vérifier automatiquement la présence de ces correctifs et les installer. Si votre système d’exploitation ne sait pas se mettre à jour automatiquement, recherchez régulièrement les correctifs qui existeraient sur Internet. • Installez un logiciel antivirus, mettez-le régulièrement à jour et activez-le en permanence. • Veillez à ce que vos logiciels OpenPGP soient à jour. Aucun système d’exploitation n’est parfaitement sûr, et les correctifs de sécurité ne résolvent pas tous les problèmes. Cependant, en matière de criminalité informatique comme pour la criminalité traditionnelle, l’occasion fait le larron : les criminels s’attaquent en priorité aux cibles les plus vulnérables. Un système à jour rend votre ordinateur plus difficile d’accès, et Mallory, selon toute vraisemblance, s’attaquera à quelqu’un d’autre. Par ailleurs, si vous disposez d’une connexion à haut débit, éteignez votre ordinateur ou mettez-le en veille lorsque vous ne l’utilisez pas, ou procurez-vous un pare-feu matériel. Aujourd’hui, les ordinateurs toujours allumés et dotés d’une connexion haut débit sont exploités par des cybercriminels qui les contrôlent à distance et les emploient de diverses manières illégales pour s’enrichir. Un individu capable d’utiliser votre ordinateur pour lancer une attaque à distance sur un site de commerce électronique sera également capable de retrouver tous vos mots de passe et toutes vos phrases secrètes. Si la sécurité de votre ordinateur est un sujet qui vous tient à cœur, procurez-vous un livre sur le sujet. Mieux vaut trop de sécurité que pas assez.
Faiblesse humaine Le meilleur moyen pour Mallory de pénétrer les défenses d’OpenPGP est d’obtenir votre phrase secrète et votre clé privée.
© Groupe Eyrolles, 2005
201
Accès libre – PGP & GPG
Sur un système correctement protégé, il sera difficile de subtiliser votre clé privée. Par ailleurs, Mallory doit se procurer votre phrase secrète, ce qui représente une difficulté supplémentaire. Si vous utilisez correctement OpenPGP, cette phrase secrète se trouve exclusivement dans votre mémoire. Pour Mallory, la mission est donc de l’en extraire. Une approche entièrement dépourvue de subtilité consisterait à recruter deux ou trois armoires à glace armées de battes de base-ball, et à vous obliger à la révéler par la force. Les anglo-saxons appellent plaisamment ce procédé rubber hose cryptanalysis, qu’on pourrait traduire par « cryptanalyse à la gégène ».
CONTEXTE Le bon exemple Si le législateur français semble manifester une hostilité constante vis-à-vis de la cryptographie, il n’en va pas de même dans tous les pays. Dans certains, notamment l’Allemagne, l’utilisation de moyens cryptographiques est non seulement acceptée, mais même encouragée par les autorités.
202
Pour un nombre non négligeable de personnes, la simple présence d’une signature OpenPGP est une preuve d’authenticité. De ce fait, on voit commettre toutes sortes d’attaques similaires aux messages électroniques de « phishing », qui cherchent à inciter les destinataires à dévoiler le mot de passe d’accès à leur compte en banque. Ces attaques ne ciblent pas OpenPGP lui-même : elles exploitent OpenPGP pour produire une fausse impression de sécurité. Pour se faire passer pour quelqu’un d’autre, il suffit à Mallory de trouver une signature OpenPGP réelle dans les archives d’une liste de diffusion ou sur Usenet, puis à joindre cette signature à un message électronique. De nombreux destinataires ne se donneront pas la peine de la vérifier, présumant que personne n’aurait le culot de la falsifier ainsi. Ou si Mallory parvient à accéder au compte de courrier de quelqu’un d’autre, elle pourra envoyer une clé OpenPGP vers un serveur de clés, puis usurper impunément l’identité de sa victime. Mallory pourrait également envoyer plusieurs clés pour une même personne sur un serveur de clés dans l’espoir que cette personne utilise par mégarde l’une d’elles. Des spécialistes en matière de sécurité cherchent des moyens pour réduire ce type de risque, mais rien dans l’infrastructure d’OpenPGP ne permet de protéger une personne trop crédule. L’aspect légal de la cryptographie est également très intéressant. Dans quelle mesure les documents chiffrés à l’aide d’OpenPGP (ou de tout autre système cryptographique) sont-ils à l’abri de poursuites judiciaires ? Dans ce domaine, la loi française est claire, mais c’est bien là son seul mérite en ce qui concerne les utilisateurs d’OpenPGP. La Loi sur la sécurité quotidienne, élaborée à la hâte au lendemain des attentats terroristes du 11 septembre 2001, dit que le refus de communiquer sa phrase secrète ou sa clé privée est punissable par la loi, la peine prévue étant de trois ans d’emprisonnement et de 45 000 euros d’amende. Il
© Groupe Eyrolles, 2005
11 – Vers une meilleure securité avec OpenPGP
suffit pour cela que le moyen de chiffrement (OpenPGP, en ce qui nous concerne) soit « susceptible d’avoir été utilisé pour préparer, faciliter ou commettre un crime ou un délit » (article 434-15-2 du Code pénal). En d’autres termes, si vous résidez en France, n’espérez pas de la cryptographie qu’elle vous aide à dissimuler des documents compromettants vis-àvis de la justice. Du fait de sa formulation ambiguë, la loi mentionnée plus haut autorise les magistrats à exiger le déchiffrement de n’importe quel document.
Fausses clés Dans la mesure où n’importe qui a la possibilité de créer une clé publique OpenPGP avec n’importe quel nom, il y a toujours des petits plaisantins pour envoyer sur les serveurs des clés au nom d’autres personnes. Ainsi, une recherche sur subkeys.pgp.net portant sur « George W. Bush » donnera pas moins de sept réponses avec ce nom, dont plusieurs avec l’adresse
[email protected]. Si le président américain utilisait OpenPGP, il serait difficile de savoir laquelle de ces clés est vraiment la sienne. Le serveur de clés de PGP Corporation évite ce problème en demandant une réponse au propriétaire de l’adresse électronique avant de rendre la clé publique. Il est probable qu’un nombre croissant de réseaux de serveurs de clés adopteront cette approche, mais ce n’est pas le cas actuellement. La morale de l’histoire est la suivante : si vous trouvez plusieurs clés pour une même personne, vérifiez les signatures. Une clé comportant un plus grand nombre de signatures, et qui est donc bien intégrée au réseau de confiance, a plus de chances d’être valide qu’une clé ne comportant que peu ou pas de signatures. En ce qui concerne les George W. Bush mentionnés plus haut, aucune ne comportait de signature. On peut supposer que le président des États-Unis serait capable de trouver au moins une personne qui confirmerait son identité et signerait sa clé. Les autres George W. Bush, homonymes du président et ayant une autre adresse électronique, ont fait signer leur clé par des tiers. Il est toujours utile d’essayer de trouver d’autres sources pour une clé publique, par exemple la page d’accueil de la personne. Si le président américain devait un jour utiliser OpenPGP, il est très probable que sa clé publique se trouverait quelque part sur le site www.whitehouse.org (il dispose très certainement d’un système de chiffrement pour son courrier,
© Groupe Eyrolles, 2005
203
Accès libre – PGP & GPG
mais c’est alors un système non-OpenPGP, ou qui ne fait pas partie du réseau de confiance.) En définitive, le seul moyen de vérifier une clé OpenPGP est le réseau de confiance, mais vous seul pouvez décider à qui vous vous fiez et dans quelle mesure.
Interopérabilité d’OpenPGP
CONSEIL Faites un geste Si vous souhaitez vraiment sécuriser vos communications, incitez ou aidez vos correspondants à mettre à jour leurs logiciels plutôt que de communiquer avec eux par l’intermédiaire de leurs vieux outils qui n’offrent aucune garantie de sécurité. Rappelez-vous que l’illusion de la sécurité est pire que l’absence de sécurité.
La norme OpenPGP spécifie que tous les programmes OpenPGP doivent pouvoir utiliser la méthode de hachage SHA-1 et le chiffrement 3DES, mais laisse la porte ouverte à d’autres méthodes. Dans ce domaine, le choix est vaste, et de ce fait, différents logiciels OpenPGP n’utilisent pas nécessairement les mêmes algorithmes de hachage et déchiffrement. Il existe même des différences d’algorithmes selon le numéro de version du logiciel. Généralement parlant, le meilleur moyen d’être sûr que votre logiciel puisse communiquer avec tous les autres logiciels OpenPGP consiste à installer tous les algorithmes et toutes les méthodes de hachage disponibles. Certaines de ces méthodes ne sont pas sûres et peuvent être falsifiées, notamment MD5 et, dans une moindre mesure, SHA-1. Les personnes qui utilisent ces algorithmes ne sont pas aussi en sécurité qu’elles le croient, mais cela ne doit pas vous empêcher de communiquer avec elles si vous le souhaitez. Il reste alors à résoudre le problème des versions de PGP d’avant OpenPGP, qui n’utilisent pas 3DES. Ces anciennes versions présentent presque toutes des problèmes de sécurité. Les utilisateurs de la version 2 de PGP n’ont pas d’alternative et doivent mettre à jour leur logiciel, car cette version ne leur offre aucune sécurité.
OpenPGP et le travail d’équipe Dans de nombreuses entreprises, les fichiers sont signés par un groupe de personnes. Ainsi, vous trouverez sur Internet un grand nombre de logiciels comportant une signature OpenPGP. La phrase secrète est connue de plusieurs personnes au sein de l’équipe de développement. C’est une solution raisonnable, même si elle n’est pas idéale, pour peu que l’identifiant utilisateur de la clé mentionne clairement qu’il s’agit de
204
© Groupe Eyrolles, 2005
11 – Vers une meilleure securité avec OpenPGP
la clé d’une équipe. Le plus important est ici de savoir quand changer de clé. Une erreur courante consiste à croire qu’il suffit de changer de phrase secrète lorsque l’un des membres quitte l’équipe. En effet, si la personne sur le départ emmène avec elle une copie de la clé privée correspondant à l’ancienne phrase secrète, elle pourra l’utiliser pour signer autant de documents qu’elle souhaite, sans qu’il soit possible de voir la différence. OpenPGP ne prévoit aucun mécanisme pour diffuser le fait que la phrase secrète d’une clé a été modifié. En cas de changement de personne au sein de l’équipe, la seule mesure sûre est de révoquer immédiatement l’ancienne clé, de diffuser la clé révoquée et de créer une nouvelle paire de clés. Lorsque vous placez ensuite la clé révoquée sur le serveur de clés, toutes les personnes mettant à jour leur clé seront informées qu’elle n’est plus valable.
À RETENIR Clés révoquées OpenPGP permet de déchiffrer des messages chiffrés avec une clé révoquée, mais pas de chiffrer de nouveaux messages.
Nomadisme et systèmes partagés Tout au long de ce livre, nous avons insisté sur le fait que votre ordinateur OpenPGP doive être un système mono-utilisateur. Il se peut toutefois que vous choisissiez de ne pas respecter cette règle dans certaines circonstances. Ainsi, au sein de l’entreprise, il existe presque toujours des administrateurs qui gèrent les mises à jour des systèmes d’exploitation, la protection antivirus, etc. Ces personnes disposent d’un accès administratif à tous les ordinateurs de l’entreprise. Si vous devez utiliser OpenPGP dans un tel environnement, voici comment réduire les risques : • Si vous utilisez Windows 95, Windows 98 ou Windows Me et si vous ne pouvez pas passer à un système d’exploitation plus moderne, n’utilisez pas de chiffrement sur cette machine. N’importe qui capable de mettre en route votre ordinateur peut également voler votre clé privée. Il n’y a aucun moyen de sécuriser ces systèmes d’exploitation. • Pour les systèmes d’exploitation de type Windows NT et Linux, définissez les autorisations de votre trousseau de clés de telle manière que vous soyez le seul à pouvoir le lire. Le système d’autorisations de Windows est bien adapté ici : l’administrateur système ne peut modi-
© Groupe Eyrolles, 2005
205
Accès libre – PGP & GPG
fier les autorisations de votre trousseau qu’en prenant possession du répertoire correspondant, ce qui est un bon indice du fait que quelqu’un a volé votre clé. Beaucoup de systèmes Unix utilisent des contrôles d’accès obligatoires (MAC, Mandatory Access Controls), qui ont un effet similaire. • Pour une protection accrue de votre trousseau, stockez-le sur une clé USB ou un autre support amovible. On trouve par ailleurs des cartes à puce OpenPGP pour stocker les clés ; de telles cartes ajoutent une couche de sécurité supplémentaire au système, y compris sur un ordinateur partagé. • Si vous ne pouvez faire autrement que de copier vos clés sur un disque dur partagé, installez un logiciel permettant de les effacer de manière définitive une fois que vous avez terminé. Une recherche Google portant sur « suppression fichiers » ou « secure delete » vous renseignera sur de nombreux logiciels gratuits effaçant des fichiers de manière sûre. PGP comprend également un outil de suppression de fichiers, comme vous le verrez à la fin de ce chapitre. • Lors de l’utilisation de GnuPG sur un système Windows partagé, vous pourriez créer un dossier nommé C:\GnuPG et y copier les fichiers de l’application GnuPG. Ajoutez ensuite ce répertoire à la variable PATH du système. Ainsi, tous les utilisateurs de l’ordinateur accéderont à la même version de GnuPG, ce qui évitera au moins les problèmes qui se posent lors de l’emploi de plusieurs versions sur une même machine. CONSEIL Utilisation de la clé professionnelle Votre clé professionnelle doit être considérée comme une clé provisoire, puisque vous serez sans doute amené à changer d’emploi au moins une fois dans votre vie. Votre réputation en tant que signeur de clés, en revanche, vous suit tout au long de votre vie. Par ailleurs, mieux vaut toujours garder à la maison un certificat de révocation pour la clé professionnelle, au cas où vous seriez renvoyé du jour au lendemain.
206
• Si vous ne pouvez vous fier entièrement à l’ordinateur de votre lieu de travail, créez deux clés OpenPGP : l’une professionnelle, l’autre personnelle. Signez votre clé professionnelle avec votre clé personnelle. N’amenez jamais votre clé personnelle sur votre lieu de travail, mais utilisez-la pour signer d’autres clés lorsqu’on vous le demande et faites-la signer par des tiers. Toutes ces mesures ne représentent pas une protection absolue contre un administrateur système malveillant, mais elles limitent les dégâts. Rares sont les administrateurs système qui volent les clés privées de leurs utilisateurs. Ce n’est pas parce qu’ils sont fondamentalement honnêtes, mais parce que ce type d’intrusion dans la vie privée des utilisateurs est toujours rapidement détecté et a pour conséquence un licenciement immédiat. Si cette situation se reproduit à plusieurs reprises, l’administrateur
© Groupe Eyrolles, 2005
11 – Vers une meilleure securité avec OpenPGP
en question n’aura plus la moindre chance d’être recruté nulle part – pas en tant qu’administrateur système, en tout cas. Les autres utilisateurs de votre ordinateur représentent un danger bien plus important. Quelles que soient les précautions que vous preniez, l’accès physique reste le maillon faible. Si quelqu’un parvient à ouvrir votre ordinateur et emmener votre disque dur, votre clé est définitivement compromise. Votre seul espoir est alors que votre phrase secrète est assez longue et complexe pour protéger suffisamment longtemps votre clé privée.
Autres fonctions WinPT, Enigmail et PGP offrent des fonctions supplémentaires qui intéresseront les personnes cherchant à protéger leur vie privée. Ces fonctions ne font pas partie d’OpenPGP, mais elles méritent néanmoins d’être mentionnées.
Mémorisation de la phrase secrète WinPT, Enigmail et PGP sont capables de mémoriser votre phrase secrète pendant une durée que vous déterminez, ce qui vous évite d’avoir à la saisir trop souvent. Toutefois, si vous utilisez cette option, toute personne accédant à votre ordinateur en votre absence peut se faire passer pour vous tant que la phrase secrète reste mémorisée. Choisissez une durée de mémorisation de quelques minutes ou demandez systématiquement au logiciel d’« oublier » votre phrase secrète lorsque vous quittez votre poste de travail. Dans Thunderbird, la commande correspondante est OpenPGP>Oublier la phrase secrète.
Destruction de fichiers La destruction de fichiers est une fonction supplémentaire de WinPT et de PGP (elle n’est pas disponible dans Enigmail). Lorsque vous supprimez un document à partir du système d’exploitation, il n’est pas effacé : il est simplement masqué. Il ne sera véritablement détruit que longtemps après, une fois qu’il aura été recouvert par d’autres fichiers sur le disque dur.
© Groupe Eyrolles, 2005
207
Accès libre – PGP & GPG
Les fichiers ainsi effacés peuvent être récupérés à l’aide de divers logiciels. Pour détruire un fichier de manière permanente et irrévocable, utilisez la fonction de destruction de PGP ou de WinPT. En ce qui concerne PGP, cliquez droit sur un fichier depuis l’explorateur et choisissez PGP Zip>Shred. La fonction correspondante de WinPT est d’un accès un peu plus complexe : cliquez droit sur l’icône de WinPT, dans la zone de notification, et choisissez File Manager. Faites glisser les fichiers à supprimer sur la fenêtre qui s’est affichée, puis choisissez File>Wipe pour les détruire définitivement. Si votre système d’exploitation effectue une journalisation du système de fichiers, la destruction de fichiers est moins efficace, mais elle rend néanmoins plus difficile la récupération de documents effacés. N’oubliez pas de détruire également toutes les versions antérieures de vos documents : vos brouillons peuvent être aussi compromettants que la version finale. Et assurez-vous que vous n’avez négligé de supprimer aucune des sauvegardes de ces documents. MODÈLE POUR LA DESTRUCTION DES DOCUMENTS ÉLECTRONIQUES Winston Churchill racontait l’histoire d’un homme qui avait reçu un télégramme l’informant du décès de sa belle-mère et lui demandant quelles dispositions funéraires il souhaitait prendre. L’homme répondit : « Embaumement, crémation et dispersion des cendres en haute mer. On n’est jamais trop prudent. » C’est un bon modèle pour la destruction de documents électroniques.
PGP Desktop offre également la possibilité de chiffrer les messages que vous envoyez par l’intermédiaire de la messagerie instantanée d’AOL (AIM), ce qui rend envisageable l’usage de ce type de logiciel dans le contexte de l’entreprise. Vous disposez également de la possibilité de chiffrer un disque dur entier, au prix d’une importante consommation de ressources. C’est toutefois un très bon moyen de protéger ses données en cas de vol de son ordinateur portable. Essayez les diverses fonctions de votre logiciel : vous constaterez qu’il offre des possibilités bien au-delà de celles décrites dans ce livre, et vous utiliserez vite OpenPGP bien plus que vous ne l’auriez cru.
208
© Groupe Eyrolles, 2005
Introduction à PGP Command Line
A SOMMAIRE
Pour maîtriser rapidement les opérations de base de PGP Command Line.
B Configurer PGP Command Line B Vérification et licence B Créer d’une paire de clés B Afficher des clés B Gérer des clés B Chiffrement et déchiffrement
© Groupe Eyrolles, 2005
Accès libre – PGP & GPG
PGP Corporation propose une gamme complète de logiciels. Celui dont il a été question dans ce livre est PGP Desktop, mais un autre logiciel susceptible de vous intéresser est PGP Command Line, qui s’adresse aux entreprises plutôt qu’aux particuliers. Il est disponible pour Windows et divers systèmes Unix (notamment Mac OS X), et il est fourni avec un manuel complet de plus de 300 pages (en anglais). Cette annexe présente les fonctions de base de PGP Command Line afin que vous maîtrisiez rapidement ses opérations de base. Pour des informations plus approfondies, nous vous invitons à consulter le manuel de l’application. Le fonctionnement de PGP Command Line est identique sous Windows et sous les systèmes d’exploitation de type Unix, la seule différence étant l’aspect de l’invite de commande. Dans les exemples qui suivent, nous utiliserons un dièse (#), comme c’est le cas dans certains shells Unix, mais les utilisateurs ne disposant que de privilèges normaux peuvent très bien utiliser PGP Command Line. À RETENIR Non interactivité Contrairement à la plupart des applications fonctionnant depuis l’invite de commande, PGP Command Line est entièrement non-interactif une fois l’exécution lancée. Il est conçu pour les environnements automatisés où aucun utilisateur n’est présent, et par conséquent, ne demande aucune information supplémentaire. Ce type de comportement est bien entendu particulièrement pratique dans le cadre de scripts.
Configurer PGP Command Line Toutes les informations concernant PGP Command Line, notamment la configuration et les clés, sont stockées dans un répertoire d’application. Sous Windows, ce répertoire est défini lors de l’installation. Sous Unix, il s’agit du répertoire $HOME/.pgp. Pour changer le fonctionnement de PGP Command Line, modifiez le fichier de configuration PGPPrefs.xml. Les paramètres par défaut conviennent à presque toutes les situations ; vous en trouverez une explication complète dans le manuel.
210
© Groupe Eyrolles, 2005
A – Introduction à PGP Command Line
Le fichier de configuration doit contenir du XML valide. Heureusement, sa structure est très simple. En voici un exemple : CLpassphraseCacheTimeout 120
Dans cet exemple, la variable CLpassphraseCacheTimeout , qui détermine pendant combien de temps la phrase secrète reste mémorisée, a une valeur de 120. Pour modifier cette valeur, entrez un nombre à la place de 120 sans toucher aux balises environnantes. pubring.pkr et secring.skr sont deux autres fichiers importants de ce répertoire. Le premier stocke votre trousseau de clés publiques tandis que le second stocke votre trousseau de clés privées. Est-il nécessaire de revenir sur l’importance de la confidentialité de ce second fichier ?
CONSEIL Erreurs, sauvegardes, versions Lors de la modification d’un fichier de configuration tel que celui-ci, il arrive couramment d’effacer par accident un chevron ouvrant ou fermant sans s’en rendre compte, et d’empêcher ainsi tout fonctionnement du logiciel. Par conséquent, gardez toujours une copie de votre dernière configuration fonctionnelle ! Il est beaucoup plus rapide de revenir à une configuration antérieure et de la modifier à nouveau que d’examiner un fichier pendant des heures en essayant de détecter la cause de l’erreur. Sous Unix, nous vous conseillons fortement d’utiliser le système d’administration de versions CVS (logiciel libre sous licence GPL), ou son successeur Subversion (logiciel libre sous licence Apache), pour la gestion de vos fichiers de configuration. Il est gratuit et, ayant été utilisé depuis des décennies, il est particulièrement fiable.
Vérification et licence Une fois l’installation de PGP Command Line terminée, assurez-vous qu’il fonctionne en essayant les options --version, qui affiche le numéro de version de PGP Command Line dont vous disposez, et --help, qui affiche toutes les options disponibles. Si ces deux options fonctionnent, votre installation est correcte.
© Groupe Eyrolles, 2005
211
Accès libre – PGP & GPG
Entrez ensuite la licence de votre logiciel. Dans le cas contraire, les fonctions disponibles de PGP Command Line (PGPCL) seront très limitées. Vous devez disposer d’un accès Internet pour que le logiciel effectue une vérification à distance du numéro de licence, du nom, de l’adresse électronique et de l’organisation. Ces informations doivent être saisies exactement comme elles apparaissent dans la licence : # pgp --license-authorize X --license-name "Michael Lucas" X --licenseorganization "Author (Press)" X --license-number "longue-chaîne-de-caractères" X --license-email "
[email protected]"
Nous demandons ici à PGPCL d’autoriser la licence correspondant au nom , à l’organisation , au numéro de licence et à l’adresse électronique indiqués . Si toutes les informations ont été correctement saisies, PGPCL ajoutera les informations de licence à PGPprefs.xml après avoir contacté le serveur de PGP Corporation, et PGPCL est prêt à être utilisé.
Créer une paire de clés PGPCL sait créer toutes sortes de paires de clés différentes en plus des clés OpenPGP standards pour la signature et le chiffrement. Le format pour la création d’une paire de clés OpenPGP est le suivant, où UID est l’identifiant utilisateur standard de PGP, sous la forme d’un nom suivi d’une adresse électronique entre chevrons. # pgp --gen-key "UID" X --key-type rsa X --encryption-bits 2048 X --passphrase "phrase-secrète" X --other-options
Pour ajouter un commentaire facultatif à l’identifiant utilisateur (voir chapitre 2), insérez-le entre parenthèses entre le nom et l’adresse électronique. PGP vous informera que ce format n’est pas standard, mais il est néanmoins couramment employé et fonctionne très bien. Ainsi, l’identifiant de l’auteur de ces lignes est le suivant :
212
© Groupe Eyrolles, 2005
A – Introduction à PGP Command Line
Michael Warren Lucas Jr (Author, consultant, sysadmin) <
[email protected]>
Les commentaires servent à vous différencier de vos homonymes qui utilisent également OpenPGP. PGPCL permet l’utilisation de plusieurs types de paires de clés . Si vous avez des besoins particuliers en matière de cryptographie, nous vous invitons à consulter le manuel ; nous ne parlerons ici que des paires de clés OpenPGP.
Choix du type de clé Les clés OpenPGP modernes utilisent le type RSA. Pour définir le type de clé, utilisez le paramètre --key-type. Pour le nombre de bits de la paire de clés (voir chapitre 1), choisissez une valeur entre 1 024 et 4 096. Nous conseillons d’utiliser une valeur de 2 048, qui protégera vos documents pendant encore longtemps.
Choix de la phrase secrète Vous devez indiquer une phrase secrète lors de la création de la clé. Vous pourrez en changer par la suite avec l’option --change-passphrase.
Choix d’une date d’expiration Par défaut, les nouvelles clés n’ont pas de date d’expiration. Pour leur en donner, utilisez le paramètre facultatif --expiration-date et spécifiez la date au format AAAA-MM-JJ, par exemple 2008-12-31. Voici un exemple de création de paire de clés : # pgp --gen-key "Michael Warren Lucas Jr (Consultant, author, X sysadmin)<
[email protected]>" X --key-type rsa X --encryption-bits 2048 X --passphrase "Ceci n’est pas une bonne phrase secrète" X --expiration-date 2008-12-31
Lorsque la clé est créée, PGP affiche son keyid.
© Groupe Eyrolles, 2005
213
Accès libre – PGP & GPG
Génération d’un certificat de révocation Comme pour n’importe quelle clé OpenPGP, il est important de créer un certificat de révocation immédiatement après avoir créé la clé. Pour ce faire, utilisez l’option --gen-revocation : # pgp --gen-revocation "UID" X --passphrase "phrase-secrète" X --force
Le premier argument indique à PGPCL quelle clé doit être révoquée. Il suffit pour cela de spécifier une partie de l’identifiant utilisateur de manière à identifier sans ambiguïté une clé de votre trousseau. Indiquez ensuite votre phrase secrète . Pour finir, le paramètre --force ((3)) évite l’affichage d’un message de confirmation. Ainsi, pour créer un certificat de révocation pour la clé précédemment calculée, voici la commande à saisir : # pgp --gen-revocation
[email protected] X --passphrase "Ceci n’est pas une bonne phrase secrète" X --force
Exportation de la clé publique La prochaine étape consiste à distribuer votre clé publique auprès de vos correspondants, soit par l’intermédiaire d’un serveur de clés, soit sous la forme d’un fichier au format texte.
Serveur de clés Utilisez l’option --keyserver-send pour envoyer votre clé sur un serveur de clés, et l’option --keyserver pour choisir le serveur de clés : # pgp --keyserver-send UID X --keyserver protocole://serveur-de-clés
Comme lors de la génération d’un certificat de révocation, il suffit de spécifier une partie suffisante de l’identifiant utilisateur pour identifier sans ambiguïté la clé à envoyer.
214
© Groupe Eyrolles, 2005
A – Introduction à PGP Command Line
Vous devez spécifier à la fois le nom du serveur de clés et le protocole employé pour y accéder. Les protocoles les plus courants sont LDAP (qui est utilisé par le serveur de clés de PGP Corporation) et HTTP (qui est employé par des serveurs de clés tels que subkeys.pgp.net). Indiquez le protocole avant le nom du serveur, à la manière d’une URL. Ainsi, pour envoyer notre clé PGP nouvellement créée au serveur de clés de PGP Corporation, keyserver.pgp.com, nous exécuterions ce qui suit : # pgp --keyserver-send
[email protected] X --keyserver ldap://keyserver.pgp.com
Par défaut, PGPCL contacte le serveur de clés public de PGP Corporation. L’argument --keyserver n’est nécessaire que si vous souhaitez contacter un autre serveur de clés.
Fichier au format texte Pour exporter au format texte votre clé publique depuis votre trousseau, utilisez la commande --export : # pgp --export UID
Vous créez ainsi un fichier au format texte dont le nom est identique à votre identifiant utilisateur. Si vous avez créé un certificat de révocation et si vous ne l’avez pas renommé, PGPCL vous indiquera qu’il ne peut pas créer le fichier. Dans ce cas, renommez votre certificat de révocation et réexportez la clé.
Afficher des clés Pour afficher toutes les clés de votre trousseau, utilisez l’option --list-keys. Pour afficher une clé particulière, spécifiez l’identifiant utilisateur correspondant, ou une partie de cet identifiant, après --list-keys.
© Groupe Eyrolles, 2005
215
Accès libre – PGP & GPG
Tableau A–1 Options de PGPCL pour l’affichage de clés Option
Fonction
--pgp-fingerprint
Affiche l’empreinte de la clé spécifiée
--list-key-details
Affiche toutes les informations de la clé
--list-sigs
Affiche toutes les signatures de la clé
--list-sig-details
Affiche des informations détaillées sur les signatures de la clé
--list-userids
Affiche tous les identifiants utilisateur de la clé
Voici par exemple comment afficher toutes les clés dont l’identifiant utilisateur comprend la chaîne mwlucas : # pgp --list-keys mwlucas Alg Type Size/Type Flags Key ID User ID ----- ---- --------- ------- ---------- ------*RSA4 pair 2048/2048 [VI---] 0x7E02501C Michael Warren Lucas Jr X (Consultant, author, sysadmin) X <
[email protected]> 1 key found
Ici, PGPCL n’a trouvé qu’une seule clé. La possibilité de filtrer les résultats s’avère très utile dès lors que le nombre de clés du trousseau commence à augmenter. La liste des clés par défaut ne comporte que des informations sommaires, mais vous pouvez en afficher d’autres à l’aide des options du tableau A-1. Vous pouvez utiliser ces options seules ou suivies d’un identifiant ou d’une partie d’identifiant. Ainsi, pour afficher toutes les signatures de notre clé, nous exécuterions ce qui suit : # pgp --list-sigs
[email protected] 216
© Groupe Eyrolles, 2005
A – Introduction à PGP Command Line
Gestion des clés Les opérations les plus couramment effectuées au quotidien sur les clés sont la recherche, la signature et la mise à jour.
Recherche de clés Pour trouver la clé de quelqu’un sur un serveur de clés avec PGPCL, vous devez spécifier l’identifiant utilisateur de la clé recherchée ou une partie de cet identifiant, ainsi que le nom du serveur de clés où la recherche doit être effectuée. La meilleure méthode consiste à rechercher l’adresse électronique du correspondant. Voici comment chercher sur le serveur subkeys.pgp.net toutes les clés comportant la chaîne Michael Lucas : # pgp --keyserver-search "Michael Lucas" --keyserver http://subkeys.pgp.net http://subkeys.pgp.net:keyserver search (2504:successful search) Alg Type Size/Type Flags Key ID User ID ----- ---- --------- ------- ---------- ------DSS pub 2048/1024 [-----] 0xE68C49BC Michael Warren Lucas Jr (Author, consultant, sysadmin) <
[email protected]> DSS pub 2048/1024 [-----] 0xAB6CA178 Michael Lucas <
[email protected]> DSS pub 2048/1024 [-----] 0x4922B639 Michael P. Lucas <
[email protected]> DSS pub 2048/1024 [-----] 0x4768326E B. Michael Lucas DSS pub 2048/1024 [-----] 0xAD08B0C7 David Michael Lucas DSS pub 2048/1024 [-----] 0xFB31770D David Michael Lucas <
[email protected]> 6 keys found
Le serveur de clés indique qu’il a trouvé six clés correspondant à la chaîne Michael Lucas et affiche les résultats, mais une seule d’entre elles nous intéresse. La liste comprend l’identifiant de chaque clé , ce qui permet de spécifier par la suite une partie d’identifiant qui désigne sans ambiguïté la clé à importer. À RETENIR keyserver.pgp.com Une recherche sur keyserver.pgp.com n’aurait renvoyé qu’une seule clé, en raison du système de vérification de PGP via l’adresse électronique.
© Groupe Eyrolles, 2005
217
Accès libre – PGP & GPG
Importation de clés Utilisez --keyserver-recv pour importer une clé publique depuis un serveur de clés et l’ajouter à votre trousseau public : # pgp --keyserver-recv
[email protected] X --keyserver http://subkeys.pgp.net
PGP importe la clé et l’ajoute à votre trousseau, la rendant localement accessible de manière permanente.
Signature d’une clé Une fois que vous avez examiné l’empreinte d’une clé et son identifiant, et que vous avez vérifié les pièces d’identité de son propriétaire (voir chapitre 5), vous pouvez choisir de signer cette clé. PGPCL offre plusieurs formats de signature ; nous allons voir ici comment ajouter une signature « à l’ancienne », celle employée dans le réseau de confiance. Pour signer une clé, utilisez --sign-key comme suit : # pgp --sign-key UID-de-la-clé-à-signer X --signer votre-UID X --sig-type exportable X --passphrase phrase-secrète
Vous devez indiquer à PGPCL quelle clé vous souhaitez signer en spécifiant une partie de son identifiant utilisateur qui permette de la désigner sans ambiguïté (vous ne pouvez signer qu’avec votre propre clé). Spécifiez pour finir votre phrase secrète . PGP signe alors la clé et la stocke dans votre trousseau.
Mise à jour des clés sur un serveur Après la signature de la clé, vous pouvez l’exporter dans un fichier et la restituer à son propriétaire ou la renvoyer sur un serveur de clés, si c’est là que vous l’avez obtenue (voir le chapitre 5 pour plus de détails). Pour envoyer la clé mise à jour sur un serveur de clés, utilisez --keyserver-update : # pgp --keyserver-update UID
218
© Groupe Eyrolles, 2005
A – Introduction à PGP Command Line
Maintenant que vous savez gérer vos clés, intéressons-nous aux fonctions les plus importantes de PGPCL : le chiffrement et le déchiffrement.
Chiffrement et déchiffrement Pour chiffrer un fichier avec PGPCL, utilisez --encrypt et --recipient. # pgp --encrypt nom-de-fichier --recipient UID
Ainsi, pour chiffrer le fichier ComptesBancaires.ods que vous avez prévu d’envoyer à M. Lucas, entrez ce qui suit : # pgp --encrypt ComptesBancaires.ods X --recipient
[email protected] RAPPEL Fichiers ASCII Par défaut, les fichiers chiffrés sont de type binaire. Pour obtenir des fichiers ASCII, ajoutez l’argument --armor.
Pour déchiffrer un fichier, utilisez --decrypt et --passphrase. # pgp --decrypt nom-de-fichier --passphrase phrase-secrète
Pour déchiffrer le fichier mentionné plus haut, par exemple, nous utiliserions : # pgp --decrypt ComptesBancaires.ods X --passphrase "Ceci n’est pas une bonne phrase secrète"
Nous obtiendrions alors le fichier non chiffré ComptesBancaires.ods, qu’il ne resterait plus qu’à ouvrir dans OpenOffice.
Signature et vérification de fichiers Pour signer et vérifier des fichiers, utilisez respectivement --sign et --verify. Les fichiers signés comportent l’extension .pgp, ou .asc s’ils sont au format ASCII.
© Groupe Eyrolles, 2005
219
Résumé des commandes GnuPG
B SOMMAIRE
Récapitulation des diverses commandes et options de GnuPG, cette annexe servira de référence.
B Configuration de GnuPG B Format et type de sortie B Création de paires de clés, révocation et exportation
B Gestion des trousseaux de clés B Signatures de clés B Chiffrement et déchiffrement B Signer un fichier B Formats de sortie
© Groupe Eyrolles, 2005
Accès libre – PGP & GPG
Tout au long de ce livre, nous avons évoqué diverses commandes et options de GnuPG. Elles sont toutes récapitulées dans cette annexe, qui vous servira de référence. Il est important de comprendre les tenants et les aboutissants de chacune de ces fonctions : par conséquent, ne sautez pas le reste de ce livre pour ne vous fier qu’à cette annexe.
Configurer GnuPG AVANCÉ Options avancées de GnuPG GnuPG est un logiciel puissant proposant de nombreuses options que nous n’avons pas évoquées. Ces options ne concernent pour la plupart que des situations très particulières, ou nécessitent une connaissance approfondie d’OpenPGP pour être correctement mises en œuvre.
Les informations de configuration et les trousseaux de clés de GnuPG sont stockés dans le même répertoire. Sous Windows, le répertoire est défini lors de l’installation. Sous les systèmes Unix, il s’agit de $HOME/ .gnupg par défaut. Le répertoire contient trois fichiers importants pour la plupart des utilisateurs : gpg.conf, pubring.gpg et secring.gpg, qui sont respectivement le fichier de configuration de GnuPG, le trousseau de clés publiques et le trousseau de clés privées.
Format et type de sortie Lors de l’utilisation de clés GnuPG, il est important de spécifier le format et le type de sortie voulus. L’argument -a (ou --armor) indique à GnuPG que la sortie doit être effectuée dans un format « lisible » (ASCII) à la place du format binaire employé par défaut. L’argument --output, quant à lui, indique à GnuPG de créer un fichier plutôt que d’afficher le résultat à l’écran.
Créer une paire de clés, révoquer et exporter Pour créer une nouvelle paire de clés, utilisez l’option interactive --gen-key. GnuPG vous fait alors parcourir une à une les étapes de création de la clé (ce sujet a été traité en détail au chapitre 4).
222
© Groupe Eyrolles, 2005
B – Résumé des commandes GnuPG
Révocation d’une clé Pour générer un certificat de révocation pour votre paire de clés, utilisez l’option --gen-revoke en spécifiant l’identifiant utilisateur (UID) de la clé à révoquer. Vous pouvez également choisir le format ASCII (armor) et demander à ce que le résultat soit un fichier, et non simplement affiché à l’écran. # gpg
X X
-a --output
[email protected] --gen-revoke
[email protected] Ici, le fichier généré est
[email protected], au format ASCII . Le fichier résultant est un certificat de révocation pour la clé dont l’identifiant contient la chaîne
[email protected] .
Exportation d’une clé Pour exporter une clé dans un fichier texte, utilisez l’option --export. Dans la mesure où il s’agit d’un fichier texte, utilisez de préférence --armor. # gpg --output
[email protected] X --armor X --export
[email protected] Ici, nous créons un fichier nommé pubkey.mwlucas@blackhelicopters. org.gpg.asc au format ASCII . Ce fichier correspond à l’exportation de la clé dont l’identifiant comprend la chaîne mwlucas@black helicopters.org .
Envoi d’une clé sur un serveur de clés Pour envoyer une clé sur un serveur de clés, utilisez l’option --send-keys. L’option --keyserver spécifie le serveur où la clé doit être envoyée. Si vous ne spécifiez aucun serveur, GnuPG utilisera le serveur par défaut spécifié dans gpg.conf.
© Groupe Eyrolles, 2005
223
Accès libre – PGP & GPG
# gpg --send-keys X --keyserver
[email protected] subkeys.pgp.net
Ici, la clé dont l’identifiant contient
[email protected] est envoyée au serveur de clés subkeys.pgp.net .
Gestion des trousseaux de clés Lorsque vous créez une clé, vous créez en même temps un trousseau pour cette clé (et d’autres). Vous devrez de temps à autre ajouter et ôter des clés à ce trousseau.
Affichage des clés GnuPG vous permet d’afficher vos clés et leurs caractéristiques : • Avec --list-keys, vous affichez toutes les clés publiques de votre trousseau. Vous pouvez aussi spécifier une partie d’un identifiant utilisateur pour n’afficher que les clés correspondantes. • Pour afficher les clés secrètes de votre trousseau, utilisez l’option --list-secret-keys. • Pour afficher l’empreinte d’une clé, utilisez --fingerprint en spécifiant l’identifiant de la clé ou une partie de celui-ci.
Ajouter et ôter des clés GnuPG vous permet d’effectuer directement depuis l’invite de commande toutes les opérations en rapport avec les serveurs de clés. • Pour extraire une clé d’un serveur de clés, utilisez l’option --recv-keys et spécifiez le keyid de la clé à télécharger. # gpg --recv-keys E68C49BC
• Pour importer une clé publique depuis un fichier, utilisez l’option --import et indiquez le nom du fichier. Aucune autre option n’est requise. Pour supprimer une clé de votre trousseau, utilisez l’option --delete-key et spécifiez l’identifiant ou le keyid de la clé à supprimer.
224
© Groupe Eyrolles, 2005
B – Résumé des commandes GnuPG
Signatures de clés La validation, l’ajout et la mise à jour de signatures sont des éléments importants de GnuPG. • Pour afficher les signatures d’une clé, utilisez l’option suivie du keyid ou de l’identifiant.
--list-sigs
• Pour signer une clé, utilisez l’option --sign-key suivie du keyid ou de l’identifiant : # gpg --sign-key
[email protected] • Pour exporter une clé nouvellement signée dans un fichier texte, utilisez --export, ainsi que --output pour créer le fichier et --armor pour spécifier le format ASCII. # gpg --output gedonner.asc X --armor X --export
[email protected] • Pour envoyer la clé publique signée sur un serveur de clés, utilisez --send-keys en spécifiant le keyid ou l’identifiant de la clé signée. • Pour mettre à jour toutes les clés de votre trousseau depuis un serveur de clés, utilisez --refresh-keys. • Après avoir signé plusieurs clés, utilisez l’option --update-trustdb pour mettre en place votre propre réseau de confiance.
Chiffrement et déchiffrement Utilisez l’option --encrypt pour chiffrer un fichier dont vous spécifiez le nom. GnuPG vous demandera l’identifiant des clés publiques que vous souhaitez employer pour le chiffrement, puis chiffrera le fichier de telle manière qu’il ne puisse plus être lu qu’avec la clé privée correspondante. Pour déchiffrer un fichier, utilisez --decrypt. GnuPG vous demandera votre phrase secrète, puis affichera le message déchiffré à l’écran.
© Groupe Eyrolles, 2005
225
Accès libre – PGP & GPG
Signer un fichier Pour signer un fichier, utilisez l’option --sign et spécifiez le nom du fichier. Pour vérifier une signature numérique, utilisez --verify. GnuPG vous indiquera si la signature est valide ou non.
Formats de sortie Par défaut, les fichiers chiffrés et les clés sont générés dans un format binaire, et les noms de fichier sont basés sur les noms des fichiers d’origine. Vous pouvez spécifier un autre type de sortie avec les options --armor et --output. • Avec l’option --armor, la sortie est au format ASCII, plus facile à lire pour les humains. • L’option --output vous permet de choisir le nom du fichier où sera stocké le résultat de la commande. • Par défaut, GnuPG crée un nouveau fichier dont le nom est identique à l’original, auquel est ajouté l’extension .gpg. Si vous spécifiez --armor, le nouveau fichier aura le même nom que l’original, mais avec l’extension .asc. Voici comment chiffrer un fichier en utilisant le format ASCII et en choisissant le nom du fichier résultant : # gpg --armor X --output encryptedfile.asc X --encrypt SecretPasswordList.txt
Les options --encrypt.
226
--armor
et
--output
doivent être utilisées avant
--sign
ou
© Groupe Eyrolles, 2005
Index 3DES 204
A addphoto 144 administrateur système 206 adresse électronique 39, 95 plusieurs par clé 61 AES 52 affichage des clés 132 AIM 208 AIX 87 algorithme 20 asymétrique 21 sécurité 20 symétrique 21 Alice 18 amis 110 anonymat 160 antivirus 201 armor 101, 222, 225, 226 ASCII 226 attaque 17 authenticité 19 autoconf 90 auto-key-retrieve 129 autorité de certification 32
B Bernard 18 biglumber 36, 111 bit 20
© Groupe Eyrolles, 2005
Bob 18 BSD 87 Bugzilla 180
C Carole 18 CAST 52 CD-Rom 40 certificat de révocation création 58 stockage 41 utilisation 62 checksum 17 checkSum+ 69 chiffre 16 chiffrement 3, 52, 225 à clé publique 22 asymétrique 21 direct 153 fort 10 méthode 52 par substitution 16 par transposition 16 symétrique 21 clavier 200 clé 21 afficher 132, 215 ajouter au trousseau 120, 130 créer 212, 222 créer avec WinPT 77 délai d’expiration 38
diffuser 100 diffusion 42 expiration 61, 94 exporter 223 fichier 134 importer 218, 224 importer depuis un fichier 121 inconnue 160 longueur 37 mettre à jour 218 mise à jour 124, 142 orpheline 42 paire 23 photo 125, 144 privée 23, 132, 198, 201 professionnelle et personnelle 206 publique 22, 33 recherche 108, 120 rechercher 217 révocation 40 serveurs 43 signature 122, 199 signer 122, 135, 218, 225 supprimer 224 trousseau 70 type 51, 213 vérifiée (PGP) 43 codage 3 code secret 16 code source 3, 9 coffre-fort 40
227
Accès libre – PGP & GPG
collègues 110 commentaire de la clé 39 confiance 33, 97, 109, 199 Enigmail 148 GnuPG 147 implicite 61 personnes proches 110 WinPT 149 confidentialité 18 courrier électronique 152, 166 PGP 166 stockage 157, 168 cryptage 3 cryptanalyse 17 cryptographie 3, 14 cybercafé 36 cypher 52
exporter une clé 140 importation de clés 133, 135 installation 180 ouvrir les messages 185 phrase secrète 182 recherche automatique de clés 133 règles 183 serveur de clés 83 serveurs de clés 129 entropie 88 Ève 18 expiration de la clé 52 export 223, 225 exportation de la clé 214 exporter une clé 139 extraire une clé 100
D
falsification 19, 30 fausse clé 203 Fedora Core 87 fiabilité des clés 114 fichier destruction 207 signature 226 fingerprint 136, 224 Firefox 180 formulaire web pour serveur de clés 103 FreeBSD 87
date d’expiration 213 Debian 88 déchiffrement 3, 225 décodage 3 decrypt 225 décryptage 3 delete-key 143, 224 digestIT 2004 68 DSA 94
E edit-key 144 effacer des clés 142 EGD 88, 96 Elgamal 94 empreinte 16, 52, 109, 224 comparer 121 en clair 15 encrypt 225 Enigmail 7, 72, 81 affichage des clés 133 certificat de révocation 83 confiance 148 configuration 181 créer des clés 82 envoi de clé 141 envoi de messages 183
228
F
G GCC 90 génération de clés 53 gen-key 222 gen-revoke 223 gestion de clés avec PGP 118 gmake 90 Gnu Privacy Guard VIII, 4 GnuPG VIII, 4, 6 certificat de révocation 99 commandes 222 compilation 90 configuration 70, 91 générer des clés 93
interface graphique 77 Linux 87 liste de diffusion 70 OS X 84 photo 144 répertoire racine 70 gnupg-users (liste de diffusion) 91 GPG VIII, 4 gpg.conf 70, 102 Gpg4win 67, 75, 187 GPGMail 186 GPGoe 191 GPGol 187 GPL 7
H hachage 16 hasard 88 hash 16 hkp 128 HP/UX 87
I IDEA 9, 52 identifiant 109, 113 utilisateur 39 identité 33, 137 IETF 5 image 41 implicite (fiabilité) 114 import 134, 224 importation de clés 131, 134 importer signature 140 une clé 121 installation de GnuPG 73 intégrité 18 interopérabilité OpenPGP 204 invite de commande 222
K Keychain Access 84 affichage des clés 134 créer des clés 85 envoi de clé 141 exporter une clé 140
© Groupe Eyrolles, 2005
Index
keyid 109, 113, 137 keylogger 200 keyserver.conf 81 keyserver.pgp.com 107, 119 keysigning party 35 Koch, Werner 6
L LDAP 118, 215 législation 10, 202 licence 211 de PGP 49 Linux 87 liste de diffusion 170 list-keys 132, 224 list-options 145 list-secret-keys 132, 224 list-sigs 138, 225 logiciels requis 71 Loi sur la sécurité quotidienne 202
M MAC 206 Mac OS X installer GnuPG 84 Mail 186 Mallory 18, 43, 113, 161, 198 marginale (fiabilité) 114 mauvais usage 198 MD5 52, 204 mémoire virtuelle 92 messagerie instantanée 208 MIME 155, 186 mise à jour de clés 142 mode Commande 98 Mozilla 180 Mozilla Thunderbird 7, 72
N NetBSD 87 network profiling 115 niveau de confiance 123 nom 39 nombres aléatoires 88, 96 non-répudiation 19 no-secmem-warning 92
© Groupe Eyrolles, 2005
O OpenBSD 87 OpenPGP 4, 5 Outlook 187 configuration du plug-in 187 envoi de messages 190 installation du plug-in 187 options 189 phrase secrète 190 recevoir des messages 191 Outlook Express 191 configuration pour GnuPG 192 envoi de messages 193 réception de messages 194 output 222, 225, 226
P paire de clés 37 parents 110 PATH 206 Path 75 pathfinder 159 Perl (pour EGD) 89 perte de la clé 40 PGP VIII, 4, 6, 48 certificat de révocation 57 courrier électronique 166 emplacement des fichiers 56 gestion de clés 118 histoire 2 installation 48 licence 49 PGP Desktop 48 propriétés des clés 61 règles de courrier 168 serveur de clés 62, 118 téléchargement 48 PGP Command Line 210 configuration 210 PGP Corporation 6 PGP Desktop 6, 167 PGP Global Directory 107 PGP/MIME 153, 155, 186 PGPPrefs.xml 210 phishing 202 photo 41, 125, 143
afficher 145 WinPT 145 phrase secrète 53, 61, 95, 199, 201, 205, 213 mémorisation 207 pièces d’identité 110 plug-ins 156 port hkp (11371) 128 presse-papiers 135 Pretty Good Privacy VIII profilage de réseau 115 proxy 156 pubring.gpg 70, 100 pubring.pkr 211
R recherche de clés 108 automatique 133 recv-keys 131, 224 Red Hat 87 refresh-keys 142, 225 registre 56 règles d’envoi du courrier 183 réseau de confiance 30, 32, 106, 115, 137, 158 chemins 159 révocation de clé 205, 223 révoquer 214 risques 198 RPM 87 RSA 51, 63, 94
S S/MIME 155 sauvegarde de la clé 55 séances de signature de clés 35 secring.gpg 70 secring.skr 211 sécurité 30 logicielle 200 send-keys 141, 225 serveur de clés 33, 71, 102, 106, 214 ajouter 118 depuis un formulaire web 103 Enigmail 129 envoi de clé 223
229
Accès libre – PGP & GPG
Keychain Access 86, 130 options 128 par défaut 128 PGP 62 signatures 141 WinPT 129 setuid root 92 SHA-1 52, 204 show-photo 145 sign 226 signature 135, 199, 225 afficher 124, 138, 225 clés d’inconnus 110 de clés 35 Enigmail 137, 183 fichier 226 informelle 111 Keychain Access 138 locale 115, 137 mise à jour 124 numérique 23 séance de signature 113 WinPT 138 signer une clé 109 sign-key 136, 225 Solaris 87 somme de contrôle 17, 67
230
sous-clé 98 SSL 32 subkeys.pgp.net 106, 118, 128 système d’exploitation 200 systèmes partagés 205
T taille de clé 51, 94 téléchargement GnuPG 66 terminologie 15 Thunderbird 180 travail d’équipe 204 TripleDES 52 trousseau 100, 129, 206 ajouter des clés 120 gestion 224 trust 109 trustdb.gpg 70 trusted (fiabilité) 114 Twofish 52
U UID 39, 113 université 36 update-trustdb 148, 225 User ID 39
V verbose 129 vérifier l’empreinte 136 verify 226
W Web of Trust 30, 106 Windows 95 36, 205 Windows NT 37 WinPT 77 affichage des clés 134 certificat de révocation 80 confiance 149 créer des clés 77 envoi de clé 141 exporter une clé 140 gestionnaire de clés 79 importation de clés 134, 135 serveur de clés 81 Wotsap 159
X X.509 32 XML 211
Z Zimmermann, Phil 2
© Groupe Eyrolles, 2005
OpenPGP
Mes correspondants l’utilisent pour m’adresser des messages chiffrés.
Je publie ma clé publique.
Pour déchiffrer un message qui m’est destiné, j’utilise ma clé privée. Pour chiffrer un message, j’utilise les clés publiques de mes correspondants.
ma clé publique
Pour pouvoir relire un message que j’ai chiffré pour d’autres, je le chiffre aussi avec ma clé publique.
ma clé privée
Pour vérifier la signature de mon correspondant, j’utilise sa clé publique.
Je tiens secrète ma clé privée.
Pour signer un message j’utilise ma clé privée. Mon correspondant vérifie ma signature avec ma clé publique. Pour chiffrer et signer un message, je le chiffre avec la clé publique de mon correspondant, je le signe avec ma clé privée.
mon trousseau de clés
Les clés publiques de mes correspondants me sont remises directement ou bien je les trouve sur un serveur de clés. Je m'en sers après avoir vérifié leur empreinte.
Christine Moi
Hugo Adèle
Bob
Muriel Charles
le réseau de confiance Lorsque je me suis assuré (de visu) de l'identité du propriétaire d'une clé, je peux signer sa clé et étendre le réseau de confiance. J'ai d'autant plus confiance en une clé qu'elle est signée de moi ou de gens en qui j'ai confiance.
Dans la collection Accès libre...
Dans la collection Accès libre...
Autres parutions...
Autres parutions...