WikiMiNET

La documentation technique et administrative

Outils pour utilisateurs

Outils du site


wiki:guide_du_debutant:cle_openpgp

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
wiki:guide_du_debutant:cle_openpgp [2018/02/28 01:35]
varens [Suppression de clé] ajout signature simtrami
wiki:guide_du_debutant:cle_openpgp [2020/06/27 18:16] (Version actuelle)
Ligne 2: Ligne 2:
  
 <WRAP center round todo 60%> <WRAP center round todo 60%>
-Cette page est inachevée, certaines sections reste à être complétée ! Néanmoins, les autres sections sont complètes et peuvent être suivies sans crainte.\\+Cette page est inachevée, certaines sections restent à compléter ! Néanmoins, les autres sections sont complètes et peuvent être suivies sans crainte.\\
 À faire : À faire :
   * Description succinte du fonctionnement d'OpenPGP   * Description succinte du fonctionnement d'OpenPGP
Ligne 36: Ligne 36:
  
 === OpenPGP === === OpenPGP ===
-Zimmerman, en bon hipster, commença à développer une version open-source de PGP. Celle-ci n'emploierai donc pas d'algorithme soumis à des licences propriétaires ou ambiguës.\\ +Zimmerman, en bon hipster, commença à développer une version open-source de PGP. Celle-ci n'emploierait donc pas d'algorithme soumis à des licences propriétaires ou ambiguës.\\ 
-En 1997 il proposa les normes OpenPGP à l'IETF pour permettre aux fournisseurs de chiffrement conformes aux normes PGP de fournir des solutions compatibles avec d'autres fournisseurs de logiciels compatibles OpenPGP. Cela servira à créer un environnement libre((ici : open-source)) et compétitif permettant au outils de chiffrement PGP de prospérer.\\+En 1997 il proposa les normes OpenPGP à l'IETF pour permettre aux fournisseurs de chiffrement conformes aux normes PGP de fournir des solutions compatibles avec d'autres fournisseurs de logiciels compatibles OpenPGP. Cela servira à créer un environnement libre((ici : open-source)) et compétitif permettant aux outils de chiffrement PGP de prospérer.\\
 Aujourd'hui OpenPGP est une norme open-source de PGP pour une utilisation publique et **ce terme peut être utilisé pour décrire n'importe quel programme basé sur le système OpenPGP** (e.g. GnuPG). Aujourd'hui OpenPGP est une norme open-source de PGP pour une utilisation publique et **ce terme peut être utilisé pour décrire n'importe quel programme basé sur le système OpenPGP** (e.g. GnuPG).
  
 === GnuPG (GNU Privacy Guard) === === GnuPG (GNU Privacy Guard) ===
-GnuPGP a été développé par Werner Koch et publié en 1999 en tant qu'alternative à PGP. C'ets un logiciel qui se base sur les normes OpenPGP, il est disponible gratuitement dans les dépôts officiels de toute bonne distribution GNU/Linux. De part sa conception, il peut être utilisé pour déchiffrer n'importe quel fichier de normes OpenPGP ou PGP.\\ +GnuPGP a été développé par Werner Koch et publié en 1999 en tant qu'alternative à PGP. C'est un logiciel qui se base sur les normes OpenPGP, il est disponible gratuitement dans les dépôts officiels de toute bonne distribution GNU/Linux. Grace à sa conception, il peut être utilisé pour déchiffrer n'importe quel fichier de normes OpenPGP ou PGP.\\ 
-GPG fourni une interface utilisateur lors de son intégration dans des logiciels de messagerie électronique ou des systèmes d'exploitations. Sans GUI((Graphical User Interface)), l'interface de GnuPG, dès lors TUI((Text-based User Interface)), prend la forme d'un script Perl attendant des commandes.+GPG fournit une interface utilisateur lors de son intégration dans des logiciels de messagerie électronique ou des systèmes d'exploitation. Sans GUI((Graphical User Interface)), l'interface de GnuPG, dès lors TUI((Text-based User Interface)), prend la forme d'un script Perl attendant des commandes.
  
 === Conclusion === === Conclusion ===
-  * OpenPGP est la norme approuvée par l'IETF qui décrit les technologies de chiffrement qui utilise des processus interopérables avec PGP. +  * OpenPGP est la norme approuvée par l'IETF qui décrit les technologies de chiffrement utilisant des processus interopérables avec PGP. 
-  * PGP est une solution propriétaire de chiffrement et les droits de ce logiciel sont détenus pas Symantec.+  * PGP est une solution propriétaire de chiffrement et les droits de ce logiciel sont détenus par Symantec.
   * GPG est une autre solution très populaire qui suit la norme OpenPGP et offre une interface utilisateur pour chiffrer facilement ses fichiers.   * GPG est une autre solution très populaire qui suit la norme OpenPGP et offre une interface utilisateur pour chiffrer facilement ses fichiers.
  
Ligne 78: Ligne 78:
 Si vous n'avez pas encore de clé ou que vous souhaitez repartir sur de bonnes bases, générez votre clé comme suit. Si vous n'avez pas encore de clé ou que vous souhaitez repartir sur de bonnes bases, générez votre clé comme suit.
 <code> <code>
-$ gpg --full-generate-key+$ gpg --full-gen
 </code> </code>
 La clé doit suivre la configuration suivante : La clé doit suivre la configuration suivante :
Ligne 87: Ligne 87:
     - Adresse électronique : Celle de cette identité     - Adresse électronique : Celle de cette identité
     - Commentaire : Description de l'identité, pseudo, etc.     - Commentaire : Description de l'identité, pseudo, etc.
-    - Phrase secrète : Choisissez un mot de passe complexe((http://testyourpassword.com)), unique que vous retiendrez, il ne pourra pas être changé N'UTILISEZ SURTOUT PAS CELUI DE VOTRE CLÉ USB CHIFFRÉE !!+    - Phrase secrète : Choisissez un mot de passe complexe((http://testyourpassword.com)), unique que vous retiendrez, il peut être changé par la suite (mais ce n'est pas une raison pour choisir un mot de passe moisi). N'UTILISEZ SURTOUT PAS CELUI DE VOTRE CLÉ USB CHIFFRÉE !!
  
 GnuPG s'attend à ce que vous génériez suffisamment d’entropie pour générer un trousseau de clés complexes. Si vous êtes un minimum en train d'utiliser le multitâche de votre machine, cette opération devrait durer moins d'une seconde (pas besoin d'installer une Gentoo pour générer ses clés en même temps que le noyau est compilé...).\\ GnuPG s'attend à ce que vous génériez suffisamment d’entropie pour générer un trousseau de clés complexes. Si vous êtes un minimum en train d'utiliser le multitâche de votre machine, cette opération devrait durer moins d'une seconde (pas besoin d'installer une Gentoo pour générer ses clés en même temps que le noyau est compilé...).\\
Ligne 93: Ligne 93:
    * L'identifiant de votre clé primaire    * L'identifiant de votre clé primaire
    * Le chemin vers votre certificat de révocation (généralement //$HOME/.gnupg/openpgp-revocs.d/[long id de clé].rev//)    * Le chemin vers votre certificat de révocation (généralement //$HOME/.gnupg/openpgp-revocs.d/[long id de clé].rev//)
-   Les clés publiques et uid créées (une ''pub'' marquée SC, votre ''uid'' et une ''sub'' marquée E)+   Votre empreinte de clé (mot hexadécimal de 40 octets)
  
-On peut désormais éditer la clé.\\\\ +Des clés publiques et uid ont été créées : une ''pub'' marquée SC, votre ''uid'' et une ''sub'' marquée E 
-IMPORTANT : N'envoyez jamais votre clé sur un serveur de clé à moins d'être sûr qu'elle soit prête à être utilisée comme vous le souhaitez : les serveurs de clés ne supprimeront jamais une clé exportée. + 
-IMPORTANT 2 : Si, dans la suite de ce tutoriel, vous faites une erreur de manipulation irréparables sur votre clé **et que celle-ci n'a pas été partagée**, vous pouvez la supprimer purement et simplement de votre ordinateur. Pour cela, voir la section [[cle_openpgp#suppression_de_cle|Suppression de clé]]+On peut désormais éditer la clé.\\ 
 +\\ 
 +IMPORTANT : 
 +  * N'envoyez jamais votre clé sur un serveur de clé à moins d'être sûr qu'elle soit prête à être utilisée comme vous le souhaitez : les serveurs de clés ne supprimeront jamais une clé exportée. 
 +  Si, dans la suite de ce tutoriel, vous faites une erreur de manipulation irréparables sur votre clé **et que celle-ci n'a pas été partagée**, vous pouvez la supprimer purement et simplement de votre ordinateur. Pour cela, voir la section [[cle_openpgp#suppression_de_cle|Suppression de clé]].
  
 ==== Génération d'une subkey de signature ==== ==== Génération d'une subkey de signature ====
Ligne 208: Ligne 212:
 $ cp $HOME/.gnupg /run/media/[user]/[usb]/. $ cp $HOME/.gnupg /run/media/[user]/[usb]/.
 </code> </code>
-Ensuite exportez (1) toutes vos subkeys ou (2) celles de votre choix. Et entrez le mot de passe de la clé.+Ensuite exportez votre clé maître, puis (1) toutes vos subkeys ou (2) celles de votre choix. Et entrez le mot de passe de la clé.
 <code> <code>
-(1) $ gpg --export-secret-subkeys [KEYID] > nom_identifiant_clairement_lensemble.secret-subkeys+$ gpg --export-secret-key [KEYID] > [fingerprint].secret-key 
 + 
 +(1) $ gpg --export-secret-subkeys [KEYID] > [fingerprint].secret-subkeys
 ou ou
-(2) $ gpg --export-secret-subkeys [SUBKEYID_1]! [SUBKEYID_2]! .. > nom_identifiant_clairement_lensemble.secret-subkeys+(2) $ gpg --export-secret-subkeys [SUBKEYID_1]! [SUBKEYID_2]! .. > [fingerprint]-[E/S/A/etc.].secret-subkeys
 </code> </code>
 Supprimez alors votre clé secrète maître (si si). Supprimez alors votre clé secrète maître (si si).
Ligne 220: Ligne 226:
 Importez les ''ssb'' précédemment exportées. Entrez votre mot de passe de clé. Importez les ''ssb'' précédemment exportées. Entrez votre mot de passe de clé.
 <code> <code>
-$ gpg --import nom_identifiant_clairement_lensemble.secret-subkeys+$ gpg --import [fingerprint].secret-subkeys
 </code> </code>
 Et vérifiez le bon déroulement de l'opération. Et vérifiez le bon déroulement de l'opération.
Ligne 226: Ligne 232:
 $ gpg -K $ gpg -K
 </code> </code>
-Un # devrait être apparu à droite de ''sec'' signifiant que la master key n'est plus stockée dans la clé.+Un # devrait être apparu à droite de ''sec'' signifiant que la master key n'est plus stockée dans la clé.\\ 
 +\\
 (Factultatif) Vous pouvez changer le mot de passe protégeant vos subkeys sur l'appareil. (Factultatif) Vous pouvez changer le mot de passe protégeant vos subkeys sur l'appareil.
 <code> <code>
Ligne 234: Ligne 241:
 </code> </code>
  
-Votre ordinateur est désormais près pour une utilisation normale.+Votre ordinateur est désormais prêt pour une utilisation normale.
  
 ==== Utiliser la clé maître secrète ==== ==== Utiliser la clé maître secrète ====
Ligne 250: Ligne 257:
 Pour ce faire, branchez votre clé USB chiffrée contenant la copie du dossier .gnupg et indiquez à GnuPG le chemin vers le répertoire .gnupg de votre clé. Pour ce faire, branchez votre clé USB chiffrée contenant la copie du dossier .gnupg et indiquez à GnuPG le chemin vers le répertoire .gnupg de votre clé.
 <code> <code>
-$ gpg --homedir /run/media/[user]/[usb]/[chemin]/.gnupg --edit-keys [KEYID]+$ gpg --homedir /run/media/[user]/[usb]/[chemin]/.gnupg --edit-key [KEYID
 + [Opérations...]
 ou ou
 $ export GNUPGHOME=/run/media/[user]/[usb]/[chemin]/.gnupg $ export GNUPGHOME=/run/media/[user]/[usb]/[chemin]/.gnupg
 +$ gpg --edit-key [KEYID]
  [Opérations...]  [Opérations...]
 $ export GNUPGHOME=$HOME/.gnupg $ export GNUPGHOME=$HOME/.gnupg
 </code> </code>
 N'oubliez pas que le mot de passe n'est pas celui que vous avez peut-être défini pour vos subkeys localement mais celui de votre clé.\\ N'oubliez pas que le mot de passe n'est pas celui que vous avez peut-être défini pour vos subkeys localement mais celui de votre clé.\\
-Si des modifications concernant les uid (par exemple) ont été apportées, n'oubliez pas de faire une sauvegarde de votre .gnupg local, de supprimer $HOME/.gnupg, de copier le .gnupg de votre clé sur votre ordinateur et de refaire la manipulation décrite dans [[cle_openpgp#proteger_la_cle_maitre_secrete|Protéger la clé maître secrète]].\\ +<del>Si des modifications concernant les uid (par exemple) ont été apportées, n'oubliez pas de faire une sauvegarde de votre .gnupg local, de supprimer $HOME/.gnupg, de copier le .gnupg de votre clé sur votre ordinateur et de refaire la manipulation décrite dans [[cle_openpgp#proteger_la_cle_maitre_secrete|Protéger la clé maître secrète]].</del> Cette méthode n'est pas recommandée, surtout si votre répertoire .gnupg est protégé comme c'est le cas pour WSL (qui relie ~/.gnupg avec C:/Users/<user>/AppData/Roaming/gnupg/) permettant une utilisation synchronisée de GnuPG sur Windows et WSL. Préférez la méthode de réimportation des subkeys suivante.\\ 
-Vous pouvez alors démonter et détacher votre clé USB chiffrée.+\\ 
 +Après avoir effectué des modifications, votre clé se trouve modifiée. Il est donc nécessaire d'exporter ces modifications afin qu'elles soient publiées et utilisables dans le cas d'altération ou de création de subkeys.\\ 
 +Pour cela, re-publiez votre clé publique par la méthode de votre choix et exportez vos subkeys si cela est nécessaire. 
 +<code> 
 +$ gpg --homedir /run/media/[user]/[usb]/[chemin]/.gnupg --export-secret-subkeys [KEYID | SUBKEYID1 [SUBKEYID2] ...] > [fingerprint].secret-subkeys 
 +ou (selon le choix de la méthode à l'étape précédente) 
 +$ gpg --export-secret-subkeys [KEYID | SUBKEYID1 [SUBKEYID2] ...] > [fingerprint].secret-subkeys 
 +</code>
  
 +Puis importez la nouvelle version de la clé publique et les subkeys.
 +<code>
 +$ gpg --keyserver <keyserver> --recv-keys <keyid (commence par 0x)>
 +$ gpg --import [fingerprint].secret-subkeys
 +</code>
 +
 +Vous pouvez alors démonter et détacher votre clé USB chiffrée.\\
 +\\
 +Une dernière méthode, plus simple, est possible mais elle nécessite de stocker la clé maître temporairement sur la machine (donc plus uniquement sur votre clé chiffrée) et n'est donc pas recommandée ni explicité ici.
 +  - Importer la clé maître
 +  - Effectuer des opération
 +  - Ré-exporter clé maître et subkeys ainsi que les clés publiques localement stockées
 +  - Supprimer la clé du trousseau
 +  - Importer les subkeys et les clés publiques
 +  - Envoyer la clé sur les serveurs hpk
 ==== Utiliser sa clé sur ses appareils ==== ==== Utiliser sa clé sur ses appareils ====
  
Ligne 285: Ligne 316:
 Se référer au manuel de ''gnupg2''((https://www.mankier.com/1/gpg2)) Se référer au manuel de ''gnupg2''((https://www.mankier.com/1/gpg2))
  
 +Lister les clés du trousseau
 +<code>
 +$ gpg --list-keys
 +</code>
 +
 +Récupérer une clé depuis un serveur de clés
 +<code>
 +$ gpg --keyserver [nom du serveur de clés] --search-keys [adresse e-mail]
 +ou
 +$ gpg --keyserver [nom du serveur de clés] --search-keys KEYID
 +</code>
 +
 +Récupérer une clé depuis un fichier
 +<code>
 +$ gpg --import fichier.extension
 +</code>
 +
 +Envoyer une clé vers un serveur de clés
 +<code>
 +$ gpg --keyserver [nom du serveur de clés] --send-keys KEYID
 +</code>
 +
 +Définir le niveau de confiance d'une clé
 +<code>
 +$ gpg --edit-key KEYID trust
 +</code>
 +
 +Certifier une clé (nécessite la clé primaire secrète)
 +<code>
 +$ gpg --edit-key KEYID sign
 +...
 +> save
 +</code>
 +
 +Lorsque l'on souhaite certifier la clé de quelqu'un, il faut définir le niveau de confiance qu'on souhaite lui accorder en fonction du niveau d'assurance que vous avez que la clé est bien celle de celui qui se l'approprie (avoir la personne en face de soi, l'avoir au téléphone, vérifier sa photo d'identité, etc.). Après quoi vous pouvez la certifier avec la commande précédente et lui renvoyer par email en lui rappelant de l'envoyer sur un serveur de clés (ou envoyez-la directement sur un serveur de clés en le notifiant)\\
 +
 +Renvoyer la clé de quelqu'un
 +<code>
 +$ gpg --armor --export KEYID > KEYID.asc
 +</code>
 +Récupérer le fichier .asc et le transmettre par mail (en signant le mail).
 +
 +Voir les certifications d'une clé
 +<code>
 +$ gpg --list-sigs KEYID
 +</code>
 ===== Modifier une clé ===== ===== Modifier une clé =====
  
 ==== Ajouter des éléments à la clé ==== ==== Ajouter des éléments à la clé ====
  
-Une clé OpenPGP peut contenir plus d'informations que celles demandées lors de sa génération pas GnuPG. Elle peut contenir plusieurs identités (uid) référents nom, email et commentaire qui définissent chacune un profil avec des préférences concernant les méthodes de chiffrement et d'autres paramètres techniques. Elle peut aussi contenir une photo d'identité !\\+Une clé OpenPGP peut contenir plus d'informations que celles demandées lors de sa génération par GnuPG. Elle peut contenir plusieurs identités (uid) référents nom, email et commentaire et définissent chacune un profil avec des préférences concernant les méthodes de chiffrement et d'autres paramètres techniques. Elle peut aussi contenir une photo d'identité !\\
 Pour l'exemple nous allons ajouter une identité à notre clé, une photo((Version rognée de : http://img.20mn.fr/QzK6grYxTamzlczVGu3fiA/515x330_chanteur-bernard-minet.jpg)) et modifier les préférences de chiffrement par défaut de cette uid.\\ Pour l'exemple nous allons ajouter une identité à notre clé, une photo((Version rognée de : http://img.20mn.fr/QzK6grYxTamzlczVGu3fiA/515x330_chanteur-bernard-minet.jpg)) et modifier les préférences de chiffrement par défaut de cette uid.\\
  
Ligne 415: Ligne 492:
 Afin de supprimer une clé (master et subkeys), il faut préalablement supprimer la clé maître. Afin de supprimer une clé (master et subkeys), il faut préalablement supprimer la clé maître.
 <code> <code>
-$ gpg --delete-secrete-keys [KeyID]+$ gpg --delete-secret-keys [KeyID]
 </code> </code>
 Il vous sera alors plusieurs fois demandé confirmation.\\ Il vous sera alors plusieurs fois demandé confirmation.\\
Ligne 422: Ligne 499:
 $ gpg --delete-keys [KeyID] $ gpg --delete-keys [KeyID]
 </code> </code>
-Vous pouvez par ce biais supprimer plusieurs clés à la fois en indiquant plusieurs [KeyID].\\+Vous pouvez par ce biais supprimer plusieurs trousseaux de clés à la fois en indiquant plusieurs [KeyID].\\
 Vérifiez enfin que la(les) clé(s) a(ont) bien été supprimée(s). Vérifiez enfin que la(les) clé(s) a(ont) bien été supprimée(s).
 <code> <code>
wiki/guide_du_debutant/cle_openpgp.1519778152.txt.gz · Dernière modification: 2020/06/27 18:15 (modification externe)