La cryptographie à clés publiques avec GnuPG From and to the world Contents 1 Présentation 5 La cryptographie (TODO) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 La cryptographie à clé partagée (symétrique) (TODO) . . . . . . . . . . . . . . . . . 5 La cryptographie à clé publique (asymétrique) . . . . . . . . . . . . . . . . . . . . . . 5 La confidentialité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 L’authenticité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 La nécessité de la confiance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Le problème avec la confiance . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 La cryptographie hybride . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Récapitulatif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2 Détails 9 La paire de clés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Clé publique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Clé privée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Les sous-clés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Clé de signature principale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Clés de signature . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Clés de chiffrement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Sécurité des clés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Type et taille des clés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Phrase de passe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Date d’expiration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Révocation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Authentification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Identité d’utilisateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Validité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Confiance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Autres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Signature de clé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Réseau de confiance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Autres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 Trousseau de clés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 Serveur de clé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 Récapitulatif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 3 Réseau de confiance 19 Relations de confiance directes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Comprendre le concept de validité de la clé . . . . . . . . . . . . . . . . . . . . . . . . 19 Définir la confiance dans le propriétaire . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Comprendre le concept de confiance marginale . . . . . . . . . . . . . . . . . . . . . . 22 3 Contents Récapitulatif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 4 Usages 27 Préparation du support USB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 Effacer le support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 Chiffer le support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 Formater le support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 Accéder au support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 Configurer GnuPG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 Création d’une paire de clés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 Améliorer l’entropie du système . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 Générer la clé de signature principale . . . . . . . . . . . . . . . . . . . . . . . . 31 Générer un certificat de révocation . . . . . . . . . . . . . . . . . . . . . . . . . 33 Modification de la paire de clés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 Ajouter une sous-clé de chiffrement . . . . . . . . . . . . . . . . . . . . . . . . . 34 Ajouter une sous-clé de signature . . . . . . . . . . . . . . . . . . . . . . . . . . 36 Ajouter une identité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 Sauvegarder la paire de clé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 Publier la clé publique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 Modification du réseau de confiance . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 Importer une clé publique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 Vérifier la validité d’une clé publique . . . . . . . . . . . . . . . . . . . . . . . . 41 Définir le niveau de confiance . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 Signer une clé publique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 Diffusion de la signature . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 Consulter la base de confiance . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 Afficher les signatures d’une clé publique . . . . . . . . . . . . . . . . . . . . . . 44 Utilisation sur des fichiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 Chiffrer un fichier (TODO) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 Déchiffrer un fichier (TODO) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 Signer un fichier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 Vérifier une signature . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 Révocation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 Révoquer une identité (TODO) . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 Révoquer un signature de clé (TODO) . . . . . . . . . . . . . . . . . . . . . . . 49 Révoquer une clé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 Révoquer la clé maitresse avec un certificat de révocation . . . . . . . . . . . . . 50 Récapitulatif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 4 1 Présentation Dans cette première partie, nous allons présenter les principaux concepts qui nous servirons par la suite. La cryptographie (TODO) La cryptographie permet d’assurer la confidentialité d’un message, c’est à dire permettre de transmettre un message qui ne puisse être lu que par son destinataire et d’assurer l’authenticité d’un message, c’est à dire permettre de s’assurer que l’expéditeur est bien celui à qui l’on pense. Il existe deux grandes méthodes cryptographiques pour obtenir ces résultats, la cryptographie à clé partagée et la cryptographie à clé publique. La cryptographie à clé partagée (symétrique) (TODO) Imaginons un coffre à une clé, chacun possède la clé. TODO Ajouter un dessin de coffre à une clé avec la même clé. La cryptographie à clé publique (asymétrique) Dans ce chapitre, nous n’allons pas étudier la cryptographie asymétrique en détails, mais plutôt présenter de manière simplifiée les concepts de base. Nous les approfondirons par la suite. La confidentialité Pour assurer la confidentialité d’un message, imaginez un coffre possédant deux clés : une clé qui permet seulement de le fermer et une clé qui permet uniquement de l’ouvrir. TODO Ajouter un dessin de coffre avec les deux clés La clé servant à fermer les coffres doit être communiquée à toutes les personnes désirant construire des coffres à votre intention. La clé servant à ouvrir les coffres doit être gardée soigneusement hors de portée d’autrui. En effet, quelqu’un s’en emparant serait en mesure d’ouvrir tout les coffres, les anciens comme les nouveaux. Cependant, vu que la clé servant à fermer les coffres est disponible pour tous, n’importe qui peut vous envoyer un coffre. Comment pouvez vous savoir que le coffre provient bien de votre amie Alice et non de votre ennemie Eve, prétendant être Alice ? Et c’est pareil pour Alice. Comment peut-elle s’assurer que le coffre qu’elle a reçu est bien de vous ? 5 1 Présentation L’authenticité Pour assurer l’authenticité d’un message, imaginez un cachet de cire possédant deux sceaux : un sceau qui permet uniquement d’apposer le cachet et un sceau qui permet seulement de vérifier le cachet. TODO Ajouter un dessin de cachet avec les deux sceaux Le sceau permettant la vérification doit être communiqué à toutes les personnes désirant pouvoir vérifier le cachet. Le sceau permettant l’apposition doit être gardé soigneusement hors de porté d’autrui. En effet quelqu’un s’en emparant serait en mesure d’apposer votre cachet sur n’importe quel message. Cependant, avant qu’Alice puisse vérifier votre cachet, elle doit être quasi-certaine que le sceau qu’elle posséde est réellement le vôtre et non celui de votre ennemie Eve, prétendant être vous. De même, avant qu’elle puisse vous envoyer un message que vous seul pourrez lire, elle doit être quasi-certaine que la clé servant à fermer le coffre est réellement la vôtre et non celle de votre ennemie Eve, prétendant être vous. Et c’est la même chose pour vous, vis-à-vis d’Alice. La nécessité de la confiance Cette assurance est ce que nous appelons “confiance”. Elle doit être à double sens. Vous devez être sûr des éléments que vous possédez pour votre correspondant. Et lui doit être sûr que les élements qu’il posséde sont bien les votres. Comme dit plus haut, la “confiance” correspond à la certitude que les élements, la clé servant à fermer des coffres à son intention et le cachet servant à vérifier ses sceaux, que nous connaissons pour Alice sont bien ceux d’Alice. Si vous et Alice viviez dans la même maison ou aux alentours, établir cette confiance serait facile : vous vous retrouvez autour d’un café et les echangez en face-à-face. Le problème avec la confiance Mais si vous souhaitez communiquer de manière sûre avec Chloé ? C’est une bonne amie d’Alice, mais elle habite dans les côtes d’Armor et vous sur la côte d’Azur, et vous ne vous êtes jamais rencontré-e-s. Que ce passe-t-il si Chloé invite Dharma et Ezri, qui à leur tour invitent Finn et Gabby ? Comment pouvez vous faire confiance à la clé d’une personne que vous n’avez jamais rencontrée ? C’est là que les deux principaux systèmes de cryptographie à clé publique, X.509 et OpenPGP, divergent dans leur façon d’aborder ce problème : • Le standard X.509 utilise les certificats et les autorités de certification (CAs). Il est bien adapté pour des organisations hiérachisées ayant une autorité de confiance implicite qui se porte garante pour tous les certificats qu’elle émet. C’est le procédé utilisé dans la navigation sécurisée avec SSL/TLS et dans le cryptage des mails avec S/MINE. Imaginons, tous les gens de la côte d’Azur doivent avoir leur clé vérifiée (signée) par Alice avant que l’on puisse faire confiance à cette clé, pendant que tous les gens des côtes d’Armor doivent avoir leur clé signée par Chloé. Alice et Cloé signent mutuellement leur propre clé, et vous finissez avec une hiérarchie de confiance. Alice et Cloé sont les autorités 6 La cryptographie hybride de confiance. Aussi longtemps que vous avez confiance en Alice, vous pouvez communiquer de manière sûre avec n’importe qui. C’est simple et direct, mais il y un défaut important. La méchante Eve doit seulement accéder à la clé privée de Chloé pour être en mesure d’infiltrer entièrement votre organisation. • Le standard OpenPGP utilise les relations de confiance entre les utilisateurs avec l’objectif affiché de ne pas nécessiter d’autorités de certification centralisées. C’est le procédé utilisé dans le cryptage des mails avec OpenPGP. Au lieu d’avoir designé des autorités de confiance (CAs) comme Alice et Chloé, à qui tous doivent faire confiance pour que la hiérachie des autorités de confiance fonctionne, OpenPGP vous laisse vous, en tant qu’utilisateur, décider en qui vous avez confiance, et à quel point. La structure résultante est appelée “Toile de Confiance”. La cryptographie hybride Pour des raisons de performance et afin de permettre d’envoye un même message qui puisse être ouvert par plusieurs destinataires, OpenPGP utilise les deux types de cryptographie que nous venons de voir. La cryptographie symétrique est utilisée pour chiffrer le message, puis utilise la cryptographie asymétrique pour chiffrer la clé symétrique qui a été utilisée C’est à dire que 1. on crée un premier coffre à une clé avec une clé taillée pour l’usage 2. on place le message dans le coffre 3. on cachete la clé du coffre avec le sceau privé de l’expéditeur. 4. on crée un deuxième coffre, cette fois un coffre à deux clés 5. on place la clé cachetée dans le deuxième coffre 6. on envoie les deux coffres ensemble. Récapitulatif La confidentialité implique que vous pouvez transmettre un message avec l’assurance que seul votre correspondant pourra le lire et que votre ennemi ne peux lire le message même s’il peux espionner toutes les communications. implique que votre correpondant doit être capable de vous transmettre un message avec l’assurance que vous seul pourrez lire. L’authenticité Vous devez être capable de vérifier que le message que vous avez reçu provient bien du correspondant auquel vous pensez. Votre correspondant(e) doit être capable de vérifier que le message provient bien de vous. Votre ennemi ne doit pas être en messure de modifier le message sans que cela ne se détecte, ni de se faire passer pour vous, ni pour votre correspondant. La cryptographie symétrique peut être vu comme un coffre-fort possédant une seule clé qui sert le fermer (chiffrer) et pour l’ouvrir (déchiffrer) 7 1 Présentation necessité de partager une même clé (ce qui implique un canal de communication sûr pour communiquer la clé) reposse entièrement sur la clé (elle doit donc être difficile à deviner) il faut une clé différente pour chacun de vos correspondants. Si n personnes doivent communiquer, il faut n(n − 1)/2 clés (5000 clés pour 100 personnes), ce qui implique un trousseau de clés conséquant. La cryptographie asymétrique peut être vu comme un coffre-fort possédant deux clés aux usages différents Une clé sert à le fermer, l’autre sert à l’ouvrir assure la confidentialité en placant les documents dans des coffres. assure l’authenticité en apposant un cachet sur les documents. Il faut s’assurer de la validité des éléments en notre possession. Les autres doivent faire de même. la clé publique peut être donnée à n’importe qui la clé privée doit être gardé secrète Repose sur l’impossibilité de déduire, en un temps et avec des moyens réalistes, la clé privée à partir de la clé publique. l’émetteur chiffre avec la clé publique du destinataire le destinataire décrypte avec sa clé privée simplifie l’échange de clé car la clé publique peut circuler sur un canal de communication non-sûr, il faut uniquement s’assurer que c’est bien la bonne clé chaque personne posséde sa propre paire de clés. Si n personnes doivent communiquer, il faut n paires de clés (100 paires de clés pour 100 personnes), ce qui implique un trousseau de clé bien plus modeste qu’avec la cryptographie symétrique. La cryptographie hybride utilise la cryptographie symétrique pour chiffrer le message avec une clé à usage unique. utilise la cryptographie asymétrique pour chiffrer la clé qui a été utilisée pour chiffrer le message. utilise la cryptographie asymétrique pour authentifier le message. 8 2 Détails Nous allons maintenant présenter plus en détail les concepts que nous venons d’aborder. Nous verrons la façon dont ils ont été implémantée (jargon qui veut dire mise en oeuvre d’un concept) dans GnuPG (pour GNU Privacy Guard) qui est l’implémantation open-source du standard OpenPGP. La paire de clés Généralement, dans la cryptographie à clé publique nous parlons de paire de clés c’est à dire d’une partie publique, appelée clé publique, apparaillée avec une partie privée, appelée clé privée. Dans la réalité, une paire de clé est en fait constituées de plusieurs paires de clés, appelées sous-clés, ayant chacune une fonction précise. Nous verrons leurs fonctions dans la partie suivante. Clé publique La clé publique se communique à tous vos correspondants, soit directement soit par l’intermédiare d’un serveur de clés. Elle contient les parties publiques des différentes sous-clés qui constituent la paire de clés. Clé privée La clé privée se conserve au fond d’un coffre-fort. Elle contient les parties privées des différentes sous-clés qui constituent la paire de clés. Attention, tout le fonctionnement et toute la sécurité de ce mécanisme de protection et de signature repose sur le fait que votre clé privée ne tombe JAMAIS entre de mauvaises mains (donc entre les mains de PERSONNE si ce n’est les vôtres). Pour cela il est conseillé de ne pas laisser son ordinateur sans surveillance, d’avoir une bonne phrase de passe. Dans le cas où un malheur arrive, il est aussi conseillé de posséder ce que l’on appelle un certificat de révocation à disposition afin de pouvoir invalider la paire de clé. Les sous-clés Le réel intérêt des sous-clés est de simplifier l’expiration régulière ou la révocation de sous-clé compromise ou ne répondant plus à vos critères de sécurité. Votre toile de confiance n’est pas affectée par les changements sur les sous-clés car la clé de signature principale sur laquelle est bâtie la toile de confiance n’est pas modifiée. Les sous-clés ajoutent une assurance qu’un problème ne vas pas détruire votre chaîne de confiance ce qui est le plus long à mettre en place. 9 2 Détails Il est possible d’ajouter des clés de chiffrement ainsi que des clés de signatures à une paire de clé. Elles seront signées par la clé de signature principale afin de certifier à vos correspondant leur appartenance à la paire de clés. Clé de signature principale La clé de signature principale est la pièce maîtresse de votre paire de clé. La partie privée de la clé de signature principale vous permet de : • certifier vos identités en les signant afin d’indiquer à vos correspondants que c’est bien vous qui avez ajouté ces identités à votre paire de clés. • certifier vos sous-clés en les signant, ce qui indique à vos correspondants que c’est bien vous qui avez ajouté ces sous-clés à votre paire de clés. • certifier des clés publiques en les signant, ce qui indique à vos correspondants que vous avez vérifié l’appartenance de chaque clé à son propriétaire. • signer un message afin de votre correspondant puisse s’assurer que vous êtes bien l’expéditeur. La partie publique de la clé de signature principale permet à vous ou vos correspondants de : • authentifier une identité pour s’assurer que c’est bien vous qui avez ajouté une sous-clé à votre paire de clés. • authentifier une sous-clé pour s’assurer que c’est bien vous qui avez ajouté une identité à votre paire de clés. • authentifier une signature pour s’assurer que c’est bien vous qui avez signé une clé publique. • authentifier un message pour s’assurer que vous en êtes bien l’expéditeur. Si la partie privée de cette clé est compromise, l’attaquant pourra signer des clés en votre nom, ce qui lui permettra de vous rendre garant de l’identité de quelqu’un. Il pourra aussi signer des messages en votre nom, ce qui lui permettra d’usurper votre identité au yeux de vos correspondants. Sachant qu’il est possible de créer des clés de signature qui n’ont pas le pouvoir de certifier des clés et que l’opération de signature de clé n’étant pas quotidienne, la partie privée de la clé de signature principale peut être retirée du trousseau de clé. Cela peut en améliorer la sécurité car s’il est compromis l’attaquant ne pourra pas certifier de nouvelles clés publiques et donc vous rendre garant d’une identité que vous n’avez pas vérifiée, ni certifier des sous-clés et donc ajouter une sous-clé afin de pouvoir signer un message en votre nom ou décrypter des messages à votre intention, ni certifier des identités et donc vous faire passer pour quelqu’un d’autre. Clés de signature La partie privée des clés de signature vous permettent de signer un message afin de votre correspondant puisse s’assurer que vous êtes bien l’expéditeur. La partie publique des clés de signature permettent à vous et à vos correspondants de authen- tifier un message pour s’assurer qu’il est bien de vous à condition que vous l’ayez signé par la partie privée. Si la partie privée est compromise, l’attaquant pourra signer des messages en votre nom, ce qui lui permettra d’usurper votre identité au yeux de vos correspondants. 10