| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente |
| gnupg [Le 30/05/2016, 14:55] – [Création du Certificat de révocation] 193.50.159.4 | gnupg [Le 31/01/2024, 21:38] (Version actuelle) – [Signer et Chiffrer des fichiers avec GnuPG] correction affichage de deux tirets pour une option Amiralgaby |
|---|
| {{tag>Precise Trusty sécurité}} | {{tag>Xenial sécurité}} |
| |
| ---- | ---- |
| Comment fonctionne le chiffrement ? | Comment fonctionne le chiffrement ? |
| |
| Il serait dommage d'utiliser GPG sans connaître la différence entre une clef publique et une clef privée (//public key/private key//). Par conséquent, je vous invite à visiter la page [[http://fr.wikipedia.org/wiki/Cryptographie_asym%C3%A9trique|Cryptographie asymétrique]] sur Wikipédia. | Il serait dommage d'utiliser GPG sans connaître la différence entre une clef publique et une clef privée (//public key/private key//). Par conséquent, je vous invite à visiter la page [[wpfr>Cryptographie_asymétrique|Cryptographie asymétrique]] sur Wikipédia. |
| À noter qu'on peut également chiffrer en symétrique avec GPG (option « -c »). | À noter qu'on peut également chiffrer en symétrique avec GPG (option « -c »). |
| |
| |
| La **clef publique** sert à chiffrer un message qui pourra être déchiffré uniquement à l'aide de la **clef privée**. Pour que cela fonctionne, il faut fournir à vos correspondants votre clef publique. Ceux-ci chiffreront leur message avec cette clef, et vous seul pourrez le déchiffrer à l'aide de votre clef privée. | La **clef publique** sert à chiffrer un message qui pourra être déchiffré uniquement à l'aide de la **clef privée**. Pour que cela fonctionne, il faut fournir à vos correspondants votre clef publique. Ceux-ci chiffreront leur message avec cette clef, et vous seul pourrez le déchiffrer à l'aide de votre clef privée. |
| | Ne perdez pas ce mot de passe et ne le divulguez à personne. |
| |
| La **clef privée** ne doit jamais être divulguée. Pour plus de sécurité, cette clé est chiffrée en symétrique et un mot de passe y est donc associé : ainsi même lorsque quelqu'un a accès à votre clef privée (en accédant à votre ordinateur par exemple), il ne peut utiliser votre clé privée pour déchiffrer vos données. | |
| |
| Une clef publique et une clef privée fonctionnent en inverse. Ce que chiffre l'une, l'autre peut le déchiffrer, et vice versa. Chacune fait une partie du travail. Ainsi, vous pouvez **signer** vos messages à l'aide de votre clef privée en envoyant avec votre message une copie conforme de celui-ci, chiffrée avec votre clef privée. Votre clef publique pourra déchiffrer ce message, attestant ainsi de l'identité de son emetteur. | |
| |
| Un //mot de passe// est associé à la clef privée : il vous sera demandé pour signer ou déchiffrer les fichiers, courriels ou messages. Le chiffrage ne nécessite pas de mot de passe. | |
| |
| Évidemment, ne perdez pas ce mot de passe et ne le divulguez à personne. | |
| |
| ==== Validité de la clef ==== | ==== Validité de la clef ==== |
| |
| Lors de la création de la clef publique, une date d'expiration vous sera demandée : c'est la date à partir de laquelle vous et vos correspondants ne pourrez plus utiliser cette clef pour chiffrer des données. | Lors de la création de la clef publique, une date d'expiration vous sera demandée : c'est la date à partir de laquelle vous et vos correspondants ne pourrez plus utiliser cette clef pour chiffrer des données. |
| |
| **Note :** Ceci ne vous empêchera pas de relire des données chiffrées avec cette clef publique. Il est aussi possible de modifier cette date d'expiration ultérieurement. \\ | **Note :** Ceci ne vous empêchera pas de relire des données chiffrées avec cette clef publique. Il est aussi possible de modifier cette date d'expiration ultérieurement. \\ |
| L'identifiant d'une clef est appelé //uid// //(User IDentifiant)// dans GPG. Il est de la forme « Prénom NOM (commentaire) <adresse de courriel> » (ou « Prénom NOM <adresse de courriel> » si aucun commentaire n'a été spécifié). | L'identifiant d'une clef est appelé //uid// //(User IDentifiant)// dans GPG. Il est de la forme « Prénom NOM (commentaire) <adresse de courriel> » (ou « Prénom NOM <adresse de courriel> » si aucun commentaire n'a été spécifié). |
| |
| Une clef est composée de différents champs (cf. comment lister les clefs de son trousseau dans la section « [[#gerer_son_trousseau_de_clefs|Gérer son trousseau de clefs]] ») : | Une clef est composée de différents champs (cf. comment lister les clefs de son trousseau dans la section « [[#gerer_son_trousseau_de_clefs|Gérer son trousseau de clefs]] ») : |
| - le champ « pub » correspond à la partie publique. | - le champ « pub » correspond à la partie publique. |
| - le champ « sub » correspond à une sous-clé. | - le champ « sub » correspond à une sous-clé. |
| - le champ « uid » correspond à une adresse email et un nom. | - le champ « uid » correspond à une adresse email et un nom. |
| |
| La notation « <id> » utilisée dans cette documentation est une chaine de caractères propre à une clé du trousseau. Typiquement, cela peut être le //nom//, ou //un identifiant de la clé// (« pub » ou « uid »), ou encore //l'adresse de courriel//. | La notation « <id> » utilisée dans cette documentation est une chaîne de caractères propre à une clé du trousseau. Typiquement, cela peut être le //nom//, ou //un identifiant de la clé// (« pub » ou « uid »), ou encore //l'adresse de courriel//. |
| |
| |
| Si l'empreinte ne correspond pas vous devez supprimer la clef publique invalide de votre trousseau. | Si l'empreinte ne correspond pas vous devez supprimer la clef publique invalide de votre trousseau. |
| |
| **Note :** Les 8 derniers caractères du //fingerprint// correspondent à l'identifiant //pub// de la clé. | **Note :** Les 8 derniers caractères du //fingerprint// correspondent à l'identifiant //pub// de la clé. Cette méthode d’identification des clés n’est plus fiable, il est facile de générer une clé avec une empreinte différente mais dont les 8 derniers caractères sont choisis. Cf [[https://evil32.com/]]. |
| |
| ==== Signer une clef publique ==== | ==== Signer une clef publique ==== |
| Signer une clef publique, c'est certifier que cette clef est bien celle de la personne indiquée par l'identifiant. C'est pour cela qu'il faut faire la vérification d'empreinte //avant// de signer une clef. | Signer une clef publique, c'est certifier que cette clef est bien celle de la personne indiquée par l'identifiant. C'est pour cela qu'il faut faire la vérification d'empreinte //avant// de signer une clef. |
| |
| Après avoir signé une clef publique vous pouvez la renvoyer sur un serveur. Il est parfois apprécié de ne pas publier directement la clé signée, mais de l'envoyer à son propriétaire afin du lui en laisser le choix.\\ | Après avoir signé une clef publique vous pouvez la renvoyer sur un serveur. Il est parfois apprécié de ne pas publier directement la clé signée, mais de l'envoyer à son propriétaire afin de lui en laisser le choix.\\ |
| Votre signature apporte à tous votre garantie sur l'authenticité de cette clef. | Votre signature apporte à tous votre garantie sur l'authenticité de cette clef. |
| |
| |
| ===== Pré-requis ===== | |
| |
| * Disposer des [[:sudo|droits d'administration]]. | |
| * Disposer d'une connexion à Internet configurée et activée. | |
| * Les [[:depots|Dépôts universe]] activé. | |
| |
| ===== Installation ===== | ===== Installation ===== |
| |
| Cette section illustre les usages les plus communs de GnuPG. Vous pouvez évidement obtenir d'autres détails en utilisant la commande :<code>gpg2 --help</code> | Cette section illustre les usages les plus communs de GnuPG. Vous pouvez évidement obtenir d'autres détails en utilisant la commande :<code>gpg2 --help</code> |
| | |
| | |
| | |
| | ====Vérification intégrité d'un fichier ==== |
| | |
| | |
| | <note>C'est probablement la première utilisation de gpg dont vous aurez besoin.</note> |
| | |
| | Cette commande vérifie que le fichier MD5SUMS à la même signature que celui qui a été signé par son auteur (dans l'exemple la signature publique est dans le fichier MD5SUMS.sign. Si les noms de fichier ont le même radical, le 2e argument peut être omis): |
| | |
| | <code>gpg2 --verify MD5SUMS.sign MD5SUMS</code> |
| | |
| |
| |
| ==== Création d'une clef ==== | ==== Création d'une clef ==== |
| |
| Ouvrez une console et exécutez la commande suivante : <code>gpg2 --gen-key</code> qui vous renvoie: | Ouvrez une console et exécutez la commande suivante : <code>gpg2 --full-gen-key</code> qui vous renvoie : |
| <code>Sélectionnez le type de clef désiré : | <code>Sélectionnez le type de clef désiré : |
| (1) RSA et RSA (par défaut) | (1) RSA et RSA (par défaut) |
| On vous proposera une clef de 2048 bits, cela vous assurera une bonne protection, appuyez sur //Entrer//. | On vous proposera une clef de 2048 bits, cela vous assurera une bonne protection, appuyez sur //Entrer//. |
| |
| <note important>Dans le cas d'une clé RSA, **il est aujourd'hui (2015) vivement recommandé d'utiliser une clé d'une longueur minimale de 4096 bits !** | <note important>Dans le cas d'une clé RSA, **il est aujourd'hui (2016) vivement recommandé d'utiliser une clé d'une longueur minimale de 4096 bits !** |
| |
| Voir << [[https://help.riseup.net/fr/security/message-security/openpgp/best-practices#les-cl%C3%A9s-primaires-devraient-%C3%AAtre-des-cl%C3%A9s-dsa-2-ou-rsa-de-4096-bits-ou-plus-de-pr%C3%A9f%C3%A9rence-rsa|Les clés primaires devraient être des clés DSA-2 ou RSA, de 4096 bits ou plus (de préférence RSA)]] >> ou encore [[http://www.heise.de/ix/artikel/Passivitaet-heisst-sich-abzufinden-1981718.html|l'interview de Phil Zimmermann]] [de], l'inventeur de PGP, qui, en 2013, recommandait déjà une longueur minimale de 3072 bits pour les clés RSA.</note> | Voir << [[https://help.riseup.net/fr/security/message-security/openpgp/best-practices#les-cl%C3%A9s-primaires-devraient-%C3%AAtre-des-cl%C3%A9s-dsa-2-ou-rsa-de-4096-bits-ou-plus-de-pr%C3%A9f%C3%A9rence-rsa|Les clés primaires devraient être des clés DSA-2 ou RSA, de 4096 bits ou plus (de préférence RSA)]] >> ou encore [[http://www.heise.de/ix/artikel/Passivitaet-heisst-sich-abzufinden-1981718.html|l'interview de Phil Zimmermann]] [de], l'inventeur de PGP, qui, en 2013, recommandait déjà une longueur minimale de 3072 bits pour les clés RSA.</note> |
| ==== Gérer son trousseau de clefs ==== | ==== Gérer son trousseau de clefs ==== |
| |
| Voici quelques commandes pour gérer son trousseau de clefs: | Voici quelques commandes pour gérer son trousseau de clefs : |
| * Lister toutes les clefs: <code>gpg2 --list-keys</code> | * Lister toutes les clefs : <code>gpg2 --list-keys</code> |
| * Exporter une clef publique sur un serveur de clef : <code>gpg2 --send-key <id> --keyserver <serveur></code> Vous pouvez spécifier un serveur de clef spécifique avec l'option « ''--keyserver <serveur>'' », c'est aussi bien pour la recherche, l'importation ou exportation de clef. | * Exporter une clef publique sur un serveur de clef : <code>gpg2 --send-key <id> --keyserver <serveur></code> Vous pouvez spécifier un serveur de clef spécifique avec l'option « ''%%--%%keyserver <serveur>'' », c'est aussi bien pour la recherche, l'importation ou exportation de clef. |
| * Rechercher une clef publique sur un serveur de clef : <code>gpg2 --search-keys <identifiant></code> | * Rechercher une clef publique sur un serveur de clef : <code>gpg2 --search-keys <identifiant></code> |
| * Ajouter une clef publique depuis un serveur de clef : <code>gpg2 --recv-keys <identifiant></code> | * Ajouter une clef publique depuis un serveur de clef : <code>gpg2 --recv-keys <identifiant></code> |
| * Ajouter une clef publique contenue dans le presse papier (vous avez reçu la clef publique par courriel par exemple) : <code>gpg2 --import</code> Collez ensuite la clef dans le terminal. et taper Ctrl D | * Ajouter une clef publique contenue dans le presse-papier (vous avez reçu la clef publique par courriel par exemple) : <code>gpg2 --import</code> Collez ensuite la clef dans le terminal. et taper Ctrl D |
| * Supprimer une clef publique : <code>gpg2 --delete-keys <identifiant></code> | * Supprimer une clef publique : <code>gpg2 --delete-keys <identifiant></code> |
| |
| * Evolution : [[:evolution_gpg|Evolution Gpg]] | * Evolution : [[:evolution_gpg|Evolution Gpg]] |
| * Kmail : [[:kmail_openpgp|KMail Openpgp]] | * Kmail : [[:kmail_openpgp|KMail Openpgp]] |
| * [[:Claws-mail]] avec le module [[http://www.claws-mail.org/plugin.php?plugin=gpg|gpg]] | * [[:Claws-mail]] avec le module [[https://www.claws-mail.org/plugin.php?plugin=gpg|gpg]] |
| | |
| * Jabber : | * Jabber : |
| |
| <note tip>Il faut bien comprendre ici que c'est là où intervient le mécanisme de clef publique/ clef privés. Vous chiffrez un fichier avec la clef publique de son destinataire et seule sa clef privée pourra le déchiffrer. D'où l'intérêt de ne pas hésiter à diffuser sa clef publique. Ce principe est bien sûr identique pour le mail.\\ | <note tip>Il faut bien comprendre ici que c'est là où intervient le mécanisme de clef publique/ clef privés. Vous chiffrez un fichier avec la clef publique de son destinataire et seule sa clef privée pourra le déchiffrer. D'où l'intérêt de ne pas hésiter à diffuser sa clef publique. Ce principe est bien sûr identique pour le mail.\\ |
| Vous pouvez également chiffrer et signer un fichier en même temps, il suffit de mettre les options //--sign// et //--encrypt//.</note> | Vous pouvez également chiffrer et signer un fichier en même temps, il suffit de mettre les options //%%--sign%%// et //%%--encrypt%%//.</note> |
| |
| |
| * [[https://gnupg.org/|Le site officiel de GnuPG]] [en] | * [[https://gnupg.org/|Le site officiel de GnuPG]] [en] |
| * [[http://www.francoz.net/doc/gpg/|Utilisation de GnuPG]] | * [[http://www.francoz.net/doc/gpg/|Utilisation de GnuPG]] |
| * [[http://matrix.samizdat.net/crypto/gpg_intro/index.html|Introduction à GnuPG]] | |
| * L'article [[wpfr>Pretty Good Privacy]] sur Wikipédia | * L'article [[wpfr>Pretty Good Privacy]] sur Wikipédia |
| * L'article [[wpfr>GNU Privacy Guard]] sur Wikipédia | * L'article [[wpfr>GNU Privacy Guard]] sur Wikipédia |
| * [[https://gnupg.org/howtos/fr/|"Mini-Howto" plutôt complet !]] | * [[https://gnupg.org/howtos/fr/|"Mini-Howto" plutôt complet !]] |
| * [[http://gpglinux.free.fr/|Télécharger GnuPG HOWTO par cho7]] | * [[http://gpglinux.free.fr/|Télécharger GnuPG HOWTO par cho7]] |
| * Le HOW-TO [[http://forum.ubuntu-fr.org/viewtopic.php?id=28207|Créer sa clef PGP]] sur le forum ubuntu-fr | * Le HOW-TO [[https://forum.ubuntu-fr.org/viewtopic.php?id=28207|Créer sa clef PGP]] sur le forum ubuntu-fr |
| * [[http://blog.rom1v.com/2009/05/gnupg-chiffrer-et-signer-sous-ubuntu-pour-les-nuls/|GnuPG : chiffrer et signer sous Ubuntu pour les nuls (®om's blog)]] | * [[https://blog.rom1v.com/2009/05/gnupg-chiffrer-et-signer-sous-ubuntu-pour-les-nuls/|GnuPG : chiffrer et signer sous Ubuntu pour les nuls (®om's blog)]] |
| * Un bon tutoriel : [[https://www.mistra.fr/tutoriel-linux-chiffrer-signer-mails-fichiers-gpg.html|Chiffrer et signer ses mails ou ses fichiers avec GPG]] | * Un bon tutoriel : [[https://www.mistra.fr/tutoriel-linux-chiffrer-signer-mails-fichiers-gpg.html|Chiffrer et signer ses mails ou ses fichiers avec GPG]] |
| * Les bons conseils d'utilisation : [[https://help.riseup.net/fr/security/message-security/openpgp/best-practices|Bonnes pratiques pour l'utilisation d'OpenPGP]] | * Les bons conseils d'utilisation : [[https://help.riseup.net/fr/security/message-security/openpgp/best-practices|Bonnes pratiques pour l'utilisation d'OpenPGP]] |
| ---- | ---- |
| |
| //Contributeurs : [[utilisateurs:Id2ndR]],[[utilisateurs:naoli]], [[:utilisateurs:l_africain|L'Africain]],[[utilisateurs:illoxx]].// | //Contributeurs : [[utilisateurs:Id2ndR]],[[utilisateurs:naoli]], [[:utilisateurs:l_africain|L'Africain]],[[utilisateurs:illoxx]],--- //[[:utilisateurs:fnx|fnx]] Le 17/08/2019, 11:15//.// |