Tutoriel GPG, version console

Environnement de la démo :
OS: Raspbian (i.e. GNU Debian/Linux version 7 pour Raspberry Pi)
Logiciel: gpg (GnuPG) version 1.4.12 (gpg est livré avec votre distribution: Debian, Raspbian, Ubuntu, Redhat, etc...) Site GnuPG

Cette page contient des copies d'écran pour les opérations de base avec l'outil GPG et la gestion des clefs.

Pour cet exemple sous Linux, une paire de clefs sera créée en l'honneur de Louise BROOKS, actrice américaine, légende du cinéma muet (14/11/1906-08/08/1985). La durée de validité de la clef sera fixée à un an et sa clef publique sera envoyée à un serveur de clef. La démonstration étant finie et les captures écran faites, sa clef sera révoquée.

Ne vous focalisez pas sur les copies d'écran ci-dessous, les vôtres peuvent se présenter différemment. Si vous avez lu les notions précédentes (passhrase, longueur de clef, clef publique et privée, serveur de clef, date d'expiration, etc...) attachez-vous à suivre la démarche et à ce qui est en train de se faire.

 Couleur de l'invite de commande du système Linux : root@raspi:~#
 Couleur du texte généré par le système d'exploitation (Linux)
 Couleur du texte généré par la commande gpg
 couleur du texte tapé par l'utilisateur(trice), commandes saisies
 couleur et style du texte utilisés pour les commentaires
   
Ci-dessus, code des couleurs utilisées dans les exemples ci-dessous.
 root@raspi:~# gpg --help
 gpg (GnuPG) 1.4.12
 Copyright (C) 2012 Free Software Foundation, Inc.
 License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
 This is free software: you are free to change and redistribute it.
 There is NO WARRANTY, to the extent permitted by law.
 
 Home: ~/.gnupg
 Algorithmes pris en charge :
 Clef publique : RSA, RSA-E, RSA-S, ELG-E, DSA
 Chiffrement : 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH, CAMELLIA128,
               CAMELLIA192, CAMELLIA256
 Hachage : MD5, SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224
 Compression : Non compressé, ZIP, ZLIB, BZIP2
 
 Syntaxe : gpg [options] [fichiers]
 Signer, vérifier, chiffrer ou déchiffrer
 L'opération par défaut dépend des données entrées
 
 Commandes :
 
  -s, --sign [fichier]          faire une signature
      --clearsign [fichier]     faire une signature en texte clair
  -b, --detach-sign             faire une signature détachée
  -e, --encrypt                 chiffrer les données
  -c, --symmetric               chiffrement symétrique seulement
  -d, --decrypt                 déchiffrer les données (défaut)
      --verify                  vérifier une signature
      --list-keys               afficher les clefs
      --list-sigs               afficher les clefs et les signatures
      --check-sigs              afficher et vérifier les signatures de clefs
      --fingerprint             afficher les clefs et les empreintes
  -K, --list-secret-keys        afficher les clefs secrètes
      --gen-key                 générer une nouvelle paire de clefs
      --delete-keys             supprimer les clefs du porte-clefs public
      --delete-secret-keys      supprimer les clefs du porte-clefs secret
      --sign-key                signer une clef
      --lsign-key               signer une clef localement
      --edit-key                signer ou éditer une clef
      --gen-revoke              générer un certificat de révocation
      --export                  exporter les clefs
      --send-keys               exporter les clefs vers un serveur de clefs
      --recv-keys               importer les clefs d'un serveur de clefs
      --search-keys             chercher les clefs avec un serveur de clefs
      --refresh-keys            mettre à jour les clefs depuis un serveur
      --import                  importer ou fusionner les clefs
      --card-status             afficher l'état de la carte
      --card-edit               modifier les données d'une carte
      --change-pin              modifier le code personnel d'une carte
      --update-trustdb          mettre la base de confiance à jour
      --print-md alg. [fich.]   indiquer les fonctions de hachage
 
 Options :
 
  -a, --armor                   créer une sortie ASCII avec armure
  -r, --recipient NOM           chiffrer pour NOM
  -u, --local-user              utiliser cet identité pour signer ou déchiffrer
  -z N                          niveau de compression N (0 désactive)
      --textmode                utiliser le mode texte canonique
  -o, --output                  utiliser comme fichier de sortie
  -v, --verbose                 bavard
  -n, --dry-run                 ne rien modifier
  -i, --interactive             demander avant d'écraser un fichier
      --openpgp                 utiliser le comportement strict d'OpenPGP
      --pgp2                    générer des messages compatibles avec PGP 2.x
 
 (Consultez la page de manuel pour obtenir une liste complète des commandes
 et options)
 
 Exemples :
 
  -se -r Alice [fichier]     signer et chiffrer pour l'utilisateur Alice
  --clearsign [fichier]      faire une signature en texte clair
  --detach-sign [fichier]    faire une signature détachée
  --list-keys [noms]         montrer les clefs
  --fingerprint [noms]       montrer les empreintes
 
 Veuillez signaler toutes anomalies à <gnupg-bugs@gnu.org> (en anglais)
 et tout problème de traduction à <traduc@traduc.org>.
 root@raspi:~#
   
Avant toute chose : obtenir de l'aide avec le paramètre --help.

Sont affichés les paramètres à utiliser pour générer des clefs, pour les lister (clefs publiques et clefs privées), les signer, les envoyer vers un serveur de clefs, pour générer des certificats de révocations, etc...

Au début, ne vous attachez pas aux paramètres relatifs aux cartes (--card-....) ils ne vous serviront quasiment pas. En effet, GPG peut être utilisé aussi sur une carte lisible par un lecteur de carte (comme une carte bancaire). IMHO, la sécurité serait meilleure que les quatre petits chiffres qui protègent vos cartes bancaires, mais bon... cela est une autre histoire.
 root@raspi:~# gpg --recv-keys EFF8D25F
 gpg: demande de la clef EFF8D25F sur le serveur hkp keys.gnupg.net
 gpg: clef EFF8D25F : clef publique « Judy GARLAND <judy.garland@gmail.com> » importée
 gpg:       Quantité totale traitée : 1
 gpg:                     importées : 1
  root@raspi:~# gpg --list-keys
 /root/.gnupg/pubring.gpg
 ------------------------
 pub   1024D/EFF8D25F 2014-09-02 [expire : 2019-06-22]
 uid                  Judy GARLAND <judy.garland@gmail.com>
 sub   4096g/D61FA063 2014-09-02 [expire : 2019-06-22]

  root@raspi:~# gpg --fingerprint
 /root/.gnupg/pubring.gpg
 ------------------------
 pub   1024D/EFF8D25F 2014-09-02 [expire : 2019-06-22]
  Empreinte de la clef = 58B1 09B3 020A C5FE 9276  3D44 9C30 1EC8 EFF8 D25F
 uid                  Judy GARLAND <judy.garland@gmail.com>
 sub   4096g/D61FA063 2014-09-02 [expire : 2019-06-22]
 
 root@raspi:~#
   
Nous n'avons encore aucune clef à notre trousseau. Avant de générer notre première paire de clefs, on va importer une clef publique, celle de Judy GARLAND <judy.garland@gmail.com> (Key-ID = 0xEFF8D25F) créée avec PGP sous Windows (le tutoriel précédent) et déposée sur le serveur de clef du M.I.T. https://pgp.mit.edu (Massachussets Institute of Technology, USA)

Ceci montre deux choses :

  • PGP et GPG (GnuPG) sont compatibles entre eux
  • Les serveurs de clefs s'échangent les clefs entre-eux puisque la clef de Judy a été déposée sur le serveur pgp.mit.edu et qu'elle a été récupérée sur le serveur key.gnupg.net

Ci-dessus les commandes de réception de la clef (on notera qu'on désigne la clef par son identifiant, la Key-ID), listage, affichage de l'enpreinte (fingerprint).
 root@raspi:~# gpg --gen-key
 gpg (GnuPG) 1.4.12; Copyright (C) 2012 Free Software Foundation, Inc.
 This is free software: you are free to change and redistribute it.
 There is NO WARRANTY, to the extent permitted by law.
 
 Sélectionnez le type de clef désiré :
    (1) RSA et RSA (par défaut)
    (2) DSA et Elgamal
    (3) DSA (signature seule)
    (4) RSA (signature seule)
 Quel est votre choix ? 1
 les clefs RSA peuvent faire entre 1024 et 4096 bits de longueur.
 Quelle taille de clef désirez-vous ? (2048) 4096
 La taille demandée est 4096 bits
 Veuillez indiquer le temps pendant lequel cette clef devrait être valable.
          0 = la clef n'expire pas
         = la clef expire dans n jours
       w = la clef expire dans n semaines
       m = la clef expire dans n mois
       y = la clef expire dans n ans
 Pendant combien de temps la clef est-elle valable ? (0) 1y
 La clef expire le jeu. 03 sept. 2015 11:00:47 CEST
 Est-ce correct ? (o/N) o
 
 Une identité est nécessaire à la clef ; le programme la construit à partir
 du nom réel, d'un commentaire et d'une adresse électronique de cette façon :
    « Heinrich Heine (le poète) <heinrichh@duesseldorf.de> »
 
 Nom réel : Louise BROOKS
 Adresse électronique : louise.brooks@orange.fr
 Commentaire :
 Vous avez sélectionné cette identité :
     « Louise BROOKS <louise.brooks@orange.fr> »
 
 Faut-il modifier le (N)om, le (C)ommentaire, l'(A)dresse électronique
 ou (O)ui/(Q)uitter ? o
 Une phrase de passe est nécessaire pour protéger votre clef secrète.
  ... la frappe de la phrase de passe n'est pas affichée ...
 De nombreux octets aléatoires doivent être générés. 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'obtenir suffisamment d'entropie.
 .........+++++
 ..+++++
 De nombreux octets aléatoires doivent être générés. 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'obtenir suffisamment d'entropie.
 ...+++++
 +++++
 gpg: clef 27E12B74 marquée de confiance ultime.
 les clefs publique et secrète ont été créées et signées.
 
 gpg: vérification de la base de confiance
 gpg: 3 marginale(s) nécessaire(s), 1 complète(s) nécessaire(s),
      modèle de confiance PGP
 gpg: profondeur : 0  valables :   1  signées :   0
      confiance : 0 i., 0 n.d., 0 j., 0 m., 0 t., 1 u.
 gpg: la prochaine vérification de la base de confiance aura lieu le 2015-09-03
 pub   4096R/27E12B74 2014-09-03 [expire : 2015-09-03]
  Empreinte de la clef = D522 E1BF 4F1D B88C 8C3C  A970 40F1 BF09 27E1 2B74
 uid                  Louise BROOKS <louise.brooks@orange.fr>
 sub   4096R/8346B4C0 2014-09-03 [expire : 2015-09-03]
 
 root@raspi:~#
   
Création de notre clef au nom de Louise BROOKS <louise.brooks@orange.fr>
 root@raspi:~# gpg --edit-key louise.brooks@orange.fr
 gpg (GnuPG) 1.4.12; Copyright (C) 2012 Free Software Foundation, Inc.
 This is free software: you are free to change and redistribute it.
 There is NO WARRANTY, to the extent permitted by law.
 
 La clef secrète est disponible.
 
 pub  4096R/27E12B74  créé : 2014-09-03  expire : 2015-09-03  utilisation : SC
                      confiance : ultime        validité : ultime
 sub  4096R/8346B4C0  créé : 2014-09-03  expire : 2015-09-03  utilisation : E
 [  ultime ] (1). Louise BROOKS <louise.brooks@orange.fr>
 
 gpg>
   
Pour modifier les caractéristique d'une clef, il faut éditer cette clef. Mais avant d'aller plus loin, consultez l'écran suivant.
 root@raspi:~# gpg --edit-key louise.brooks@orange.fr
 gpg (GnuPG) 1.4.12; Copyright (C) 2012 Free Software Foundation, Inc.
 This is free software: you are free to change and redistribute it.
 There is NO WARRANTY, to the extent permitted by law.
 
 La clef secrète est disponible.
 
 pub  4096R/27E12B74  créé : 2014-09-03  expire : 2015-09-03  utilisation : SC
                      confiance : ultime        validité : ultime
 sub  4096R/8346B4C0  créé : 2014-09-03  expire : 2015-09-03  utilisation : E
 [  ultime ] (1). Louise BROOKS <louise.brooks@orange.fr>
 
 gpg> help
 quit        quitter ce menu
 save        enregistrer et quitter
 help        afficher cette aide
 fpr         afficher l'empreinte de la clef
 list        afficher la clef et les identités
 uid         sélectionner l'identité N
 key         sélectionner la sous-clef N
 check       vérifier les signatures
 sign        signer les identités sélectionnées [* voir ci-dessous les commandes similaires]
 lsign       signer les identités sélectionnées localement
 tsign       signer les identités sélectionnées avec une signature de confiance
 nrsign      signer les identités sélectionnées avec une signature non révocable
 adduid      ajouter une identité
 addphoto    ajouter une photo d'identité
 deluid      supprimer les identités sélectionnées
 addkey      ajouter une sous-clef
 addcardkey  ajouter une clef à une carte à puce
 keytocard   déplacer une clef vers une carte à puce
 bkuptocard  déplacer une clef de sauvegarde vers une carte à puce
 delkey      supprimer les sous-clefs sélectionnées
 addrevoker  ajouter une clef de révocation
 delsig      supprimer les signatures des identités sélectionnées
 expire      modifier la date d'expiration de la clef ou des sous-clefs sélectionnées
 primary     marquer l'identité sélectionnée comme principale
 toggle      passer de la liste des clefs secrètes à celle des clefs privées ou vice versa
 pref        afficher les préférences (expert)
 showpref    afficher les préférences (bavard)
 setpref     définir la liste des préférences pour les identités sélectionnées
 keyserver   définir le serveur de clefs favori pour les identités sélectionnées
 notation    définir une notation pour les identités sélectionnées
 passwd      modifier la phrase de passe
 trust       modifier la confiance du propriétaire
 revsig      révoquer les signatures des identités sélectionnées
 revuid      révoquer les identités sélectionnées
 revkey      révoquer la clef ou des sous-clefs sélectionnées
 enable      activer la clef
 disable     désactiver la clef
 showphoto   montrer les photos d'identité sélectionnées
 clean       compacter les identités inutilisables et supprimer les
             signatures inutilisables de la clef
 minimize    compacter les identités inutilisables et supprimer toutes
             les signatures de la clef
 
 * La commande « sign » peut être précédée du caractère « l » pour
   les signatures locales (lsign), « t » pour les signatures de
   confiance (tsign), « nr » pour les signatures non révocables
   (nrsign), ou toute combinaison possible (ltsign, tnrsign, etc.).
 
 gpg>
   
Une fois dans le programme gpg, on obtient de l'aide en tapant help. Là, sont listées toutes les commandes possibles pour gérer la clef désignée : ajouter une photo, signer la clef, modifier la date d'expiration, modifier le mot de passe, etc...
 root@raspi:~# ls -l
 total 92
 -rw-r--r-- 1 root root  3442 sept.  3 10:41 louise.brooks_120x144.jpg
 -rw-r--r-- 1 root root 16482 mars   8 23:53 pf.asc
 root@raspi:~#
   
 gpg> addphoto
 
 Choisissez une image pour votre photo d'identité. L'image doit être
 un fichier JPEG. Rappelez-vous que cette image est stockée dans la
 clef publique. Si l'image est très grosse, la clef le sera aussi.
 Une taille de l'ordre de 240x288 est conseillée.
 
 Entrez le nom du fichier JPEG pour la photo d'identité : louise.brooks_120x144.jpg
 gpg: aucun afficheur de photos n'a été choisi
 gpg: impossible d'afficher la photo d'identité.
 Cette photo est-elle correcte (o/N/q) ? o
 
 Une phrase de passe est nécessaire pour déverrouiller la clef secrète de
 l'utilisateur : « Louise BROOKS <louise.brooks@orange.fr> »
 clef RSA de 4096 bits, identifiant 27E12B74, créée le 2014-09-03
  ... la frappe de la phrase de passe n'est pas affichée ...
 
 pub  4096R/27E12B74  créé : 2014-09-03  expire : 2015-09-03  utilisation : SC
                      confiance : ultime        validité : ultime
 sub  4096R/8346B4C0  créé : 2014-09-03  expire : 2015-09-03  utilisation : E
 [  ultime ] (1). Louise BROOKS <louise.brooks@orange.fr>
 [ inconnue] (2)  [jpeg image of size 3442]
 
 gpg> quit
 Faut-il enregistrer les modifications ? (o/N) o
 root@raspi:~#
   
La copie d'écran précédente montrait le résultat de la commande de listage détaillé (long: ls -l) de répertoire. La photo que nous allons utiliser s'y trouve sous le nom de louise.brooks_120x144.jpg

Une fois dans gpg, on utilise la commande addphoto permettant d'inclure la photo dans la clef. Lorsque vous quittez l'édition de la clef sans sauvegarder, le programme vous propose d'enregister les modifications. Vous n'auriez pas ce message si la commande save avait été utilisée.

 root@raspi:~# gpg --list-keys
 /root/.gnupg/pubring.gpg
 ------------------------
 pub   1024D/EFF8D25F 2014-09-02 [expire : 2019-06-22]
 uid                  Judy GARLAND <judy.garland@gmail.com>
 sub   4096g/D61FA063 2014-09-02 [expire : 2019-06-22]
 
 pub   4096R/27E12B74 2014-09-03 [expire : 2015-09-03]
 uid                  Louise BROOKS <louise.brooks@orange.fr>
 sub   4096R/8346B4C0 2014-09-03 [expire : 2015-09-03]
 
 root@raspi:~# gpg --list-secret-keys
 /root/.gnupg/secring.gpg
 ------------------------
 sec   4096R/27E12B74 2014-09-03 [expire : 2015-09-03]
 uid                  Louise BROOKS <louise.brooks@orange.fr>
 ssb   4096R/8346B4C0 2014-09-03
 
 root@raspi:~#
   
Le listage des clefs (publiques et secrètes) font apparaître deux clefs publiques (Judy et Louise) et une clef privée (Louise)
 root@raspi:~# gpg --fingerprint
 /root/.gnupg/pubring.gpg
 ------------------------
 pub   1024D/EFF8D25F 2014-09-02 [expire : 2019-06-22]
  Empreinte de la clef = 58B1 09B3 020A C5FE 9276  3D44 9C30 1EC8 EFF8 D25F
 uid                  Judy GARLAND <judy.garland@gmail.com>
 sub   4096g/D61FA063 2014-09-02 [expire : 2019-06-22]
 
 pub   4096R/27E12B74 2014-09-03 [expire : 2015-09-03]
  Empreinte de la clef = D522 E1BF 4F1D B88C 8C3C  A970 40F1 BF09 27E1 2B74
 uid                  Louise BROOKS <louise.brooks@orange.fr>
 sub   4096R/8346B4C0 2014-09-03 [expire : 2015-09-03]
 
 root@raspi:~#
   
De même, l'affichage des empreintes liste les deux clefs publiques se trouvant dans le trousseau de clefs.

Notez que la Key-ID (l'identifiant) des clefs est constituée par les huit derniers digits hexadécimaux de l'empreinte : 0xEFF8D25F pour Judy et 0x27E12B74 pour Louise (le 0x du début précise que ce qui suit sont des digits hexadécimaux).

 root@raspi:~# gpg --gen-revoke louise.brooks@orange.fr
 
 sec  4096R/27E12B74 2014-09-03 Louise BROOKS <louise.brooks@orange.fr>
 
 Faut-il créer un certificat de révocation pour cette clef ? (o/N) o
 choisissez la cause de la révocation :
   0 = Aucune raison indiquée
   1 = La clef a été compromise
   2 = La clef a été remplacée
   3 = La clef n'est plus utilisée
   Q = Annuler
 (Vous devriez sûrement sélectionner 1 ici)
 Quelle est votre décision ? 3
 Entrez une description facultative, en terminant par une ligne vide :
 > Fin d'utilisation pour tests
 >
 Cause de révocation : La clef n'est plus utilisée
 Fin d'utilisation pour tests
 Est-ce d'accord ? (o/N) o
 
 Une phrase de passe est nécessaire pour déverrouiller la clef secrète de
 l'utilisateur : « Louise BROOKS <louise.brooks@orange.fr> »
 clef RSA de 4096 bits, identifiant 27E12B74, créée le 2014-09-03
  ... la frappe de la phrase de passe n'est pas affichée ...
 sortie forcée avec armure ASCII.
 Certificat de révocation créé.
 
 Veuillez le déplacer sur un support que vous pouvez cacher ; toute personne
 accédant à ce certificat peut l'utiliser pour rendre votre clef inutilisable.
 Imprimer ce certificat et le stocker ailleurs est une bonne idée, au cas où le
 support devienne illisible. Attention quand même : le système d'impression
 utilisé pourrait stocker ces données et les rendre accessibles à d'autres.
 -----BEGIN PGP PUBLIC KEY BLOCK-----
 Version: GnuPG v1.4.12 (GNU/Linux)
 Comment: A revocation certificate should follow
 
 iQI7BCABAgAlBQJUBuCLHh0DRmluIGQndXRpbGlzYXRpb24gcG91ciB0ZXN0cwAK
 CRBA8b8JJ+ErdGT3D/0dXpPK2X8VHy1B7OD5dTN/36xAE5QwzuSpZH+j//RoYv8Q
 SPdFumaHSlHRZ1btXyP3g9+QxH76smSpyuVfGKMynBPtu5YM7jmolAm2gNnbaj9a
 Npc/Sk6aAF7WH3QKO0TeTtfhnoayvVNbDDAVc1/rwH8JEYWC/5PtlD5raCIJiY5N
 /7VlexnqYzwbNT0OLkukdhdoJNgVVFSomai6mxZ5Q8I+FJolQTUm8gtUtLGta48G
 sNbBb0oM4r0/qaq4aTz+BvI8V+TXLRa6S2d9ggfQdyve4E5Ys9dGRNm/a6eE+GdE
 bTudtxr2uYc9yYC7Y7iE5Qszc2sCOdgN2Bd57Hni2xq8H6yVckegDyBiYMtY8kKN
 DzbNQ+z7w2Ik1lsMPgz50B1IycSraFB5Rf7XHcSHkCQRE9x5FVtwHAOa/z8Auxxf
 bazOYxffbSkOLoGlkV2U3IGF5fRGSv3CBG4KcIyCGWt2s/mzw0ZM0TBoBZBkLBVh
 Fs1GjW64h3v5l6UbQxl2opdpLPsUKaljQQ1LJ1zfgiaslfvm25553kI15wiOsJwI
 H4INGD1nnYLKd+rlll7SgfnEBKZ88rjvmclrhLSSgIBYR5RLKNbJoADaLxWf8b5m
 KXg9Boh9+y1ttEwtF5I4wVs9nqseSg7N5JqH69IBKC5xXxZ/axQPGxHqKV1kWQ==
 =ZYfO
 -----END PGP PUBLIC KEY BLOCK-----
 root@raspi:~#
   
La clef venant d'être générée, elle est prête à être envoyée vers un serveur de clef, il est temps de générer un certificat de révocation (que l'on mettra en lieu sûr) pour le cas où la clef publique viendrait à être corrompue, volée ou perdue. Dans ce cas, c'est ce certificat que l'on enverrait au serveur de clefs afin de prévenir les autres utilisateurs que cette clef n'est plus valide.
 root@raspi:~# gpg --gen-revoke louise.brooks@orange.fr > 27E12B74_louise.brooks_revok.asc
   
La génération d'un certificat de révocation affiche ce certificat sur la sortie standard, c'est à dire l'écran. Il est possible alors de faire un Copier/Coller... dans un fichier ou, ce qui est plus simple, d'envoyer le résultat dans un fichier par une redirection (signe supérieur à), comme ci-dessus. Les question seront posées comme précédemment mais le certificat sera rangé dans un fichier au lieu d'être affiché. NB: Au lieu de la redirection ( > ) on aurait pu utiliser l'option --output.

Le nom du fichier est libre. Toutefois, une personne pouvant avoir plusieurs adresses mail (et donc plusieurs clefs privées) il est bon de différencier les certificats de révocation en mettant la Key-ID dans le nom du fichier.

 root@raspi:~# gpg --send-keys louise.brooks@orange.fr
 gpg: « louise.brooks@orange.fr » n'est pas un identifiant de clef : ignoré
 root@raspi:~# gpg --send-keys 27E12B74
 gpg: envoi de la clef 27E12B74 au serveur hkp keys.gnupg.net
 root@raspi:~#
   
Envoi de la clef publique vers un serveur de clef.

Si, lorsque l'on travaille en local pour l'édition de la clef on peut désigner la clef par l'adresse mail qui lui correspond, on doit utiliser la Key-ID pour la communication avec un serveur de clef.

Comme il a été dit plus haut, bien que la clef ait été ici envoyée au serveur de clef keys.gnupg.net, on pourra la retrouver sur d'autres serveurs étant donné que les serveurs de clefs s'échangent les données entre eux. Les échanges peuvent se faire toutes les heures ou tous les jours ou a une périodicité choisie par eux. C'est la raison pour laquelle, il se peut qu'on ne retrouve pas immédiatement sur un autre serveur la clef qui vient d'être envoyée. Dans notre exemple, la clef de Louise déposée sur gnupg.net a pu être retrouvée sur le serveur du M.I.T. environ 1h, 1h15 plus tard.
Recherche sur le serveur de clef du M.I.T.
Une clef trouvée avec la même Key-ID. Il suffit de cliquer sur le lien représenté par la Key-ID : 4096R/27E12B74 pour afficher cette clef publique. Un utilisateur quelconque peut très bien effectuer un Copier/Coller... de cette clef dans un fichier qu'il lui suffira ensuite d'importer dans son programme de gestion de clefs (Windows ou Linux).
Le plus souvent, c'est sur une carte de visite que l'empreinte de la clef (le fingerprint) est communiquée. Et c'est grâce aux huit derniers digits, la Key-ID, que l'on recherche la clef publique correspondante. On peut d'ailleurs cocher la case "Show PGP fingerprints for keys" sur le formulaire du serveur pour vérifier l'empreinte affichée avec celle fournie afin de s'assurer de la bonne clef.
 root@raspi:~# gpg --export -a
 -----BEGIN PGP PUBLIC KEY BLOCK-----
 Version: GnuPG v1.4.12 (GNU/Linux)
 
 mQGiBFQF/60RBADrDvkKOMeXJU7jOvJdjqcV913+2zw1EHXkdIUDPu7RKYbYdXht
 hejLV6i1uTgK+xeA9e5U7ge+Jl9lDZ/0Sr5QChk3xcoQw+/BggaKPkO6PMGkh6Ua
 CyK22l7NeoU50Gof4OSWfU+jBi74dcVS51gLnN7jW+VL2K2lPKOAvqs+xQCg/3aK
 XALEyJtDdnUIvCGVTvxS+bEEAMrXSHi5FxSicMjIWL1uJ+nG5OoFED3IT7BkFl8p
                    .... bla bla bla sur 171 lignes ....
 ceqqSRQUoIz4J4HqWlP3l1lRSlei8LFU9QiFZVVfNGoIX0lt8psVbffRTgCNrLEI
 XE6y8ADWkgaejEOMFGrPngO9FcoAy5MyLvjrRiMBr/9vo2a2mPOeCC/RMBxh9fut
 9ItqkCF8/WqJdphK/omeVA==
 =OQJp
 -----END PGP PUBLIC KEY BLOCK-----
   
Il n'est pas nécessaire de passer par un serveur de clef pour générer et copier la clef publique d'une clef. La commande ci-dessus permet à gpg de la générer.
 root@raspi:~# gpg --export -a > 27E12B74_louise.brooks_pub.asc
 root@raspi:~# ls -l
 total 132
 -rw-r--r-- 1 root root  3442 sept.  3 10:41 louise.brooks_120x144.jpg
 -rw-r--r-- 1 root root 10864 sept.  3 11:55 27E12B74_louise.brooks_pub.asc
 -rw-r--r-- & root root   942 sept.  3 11:07 27E12B74_louise.brooks_revok.asc
 -rw-r--r-- 1 root root 16482 mars   8 23:53 pf.asc
 root@raspi:~#
   
Comme pour la génération d'un certificat de révocation l'affichage se fait sur la sortie standard, c'est à dire l'écran. Pour obtenir un fichier, il suffit de rediriger la commande vers un fichier (ou d'utiliser l'option --output). Celui-ci pourra alors être envoyé par mail si besoin est ou placé en téléchargement sur un site web. L'extension de fichier .asc est utilisée par les logiciels de gestion de clefs et signifie que le contenu du fichier est en ASCII. (American Standard Code for Information Interchange)

A continuer... (envoi révocation au serveur)

Mise à jour le 15/06/2017 à 16:35:14