Quelques commandes GnuPG

  1. Liste des clés
  2. Renouveler une clé
  3. Exporter une clé
  4. Créer un certificat de révocation
  5. Révoquer une clé à partir d'un certificat de révocation
  6. Révoquer une sous-clé
  7. Supprimer une clé
  8. Importer une clé
  9. Envoyer sa clé sur le réseau des serveurs de clés publiques
  10. Signer et vérifier un fichier
  11. Signer et définir le niveau de confiance d'un correspondant
  12. Chiffrer/Déchiffrer un fichier
  13. Chiffrer/Déchiffrer du texte dans un terminal
  14. Signer et vérifier un texte

1. Liste des clés

Les clés publiques :

gpg --list-key

Les clés privées :

gpg --list-secret-keys

2. Renouveler une clé

gpg --expert --edit-key 34C29329
expire
save

3. Exporter une clé

Clé publique :

gpg --armor --export ID > 34C29329.pub.asc

Clé privée :

gpg --armor --export-secret-key 34C29329 > 34C29329.priv.asc

Sous-clé privée :

gpg --armor --export-secret-subkeys ID > ID.sub_priv.asc

4. Créer un certificat de révocation

gpg --gen-revoke ID --output ID.rev.asc

On conserve précieusement ID.rev.asc à l'abri en espérant qu'il ne servira jamais.

5. Révoquer une clé à partir d'un certificat de révocation

gpg --import 34C29329-revcert.asc
gpg --edit-key 34C29329

On constate que la clé ainsi que les sous-clés ont été révoquées :

gpg (GnuPG) 2.0.22; Copyright (C) 2013 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.

La clef suivante a été révoquée le 2014-02-23 par la clef RSA 34C29329 Prenom Nom <mail@domain.com>
pub  4096R/34C29329  créé : 2014-02-23  révoquée : 2014-02-23  utilisation : SC
                     confiance : inconnu       validité : révoquée
La clef suivante a été révoquée le 2014-02-23 par la clef RSA 34C29329 Prenom Nom <mail@domain.com>
sub  4096R/ADE52043  créé : 2014-02-23  révoquée : 2014-02-23  utilisation : E
La clef suivante a été révoquée le 2014-02-23 par la clef RSA 34C29329 Prenom Nom <mail@domain.com>
sub  4096R/B9CF7863  créé : 2014-02-23  révoquée : 2014-02-23  utilisation : S
[ révoquée] (1). Prenom Nom <mail@domain.com>

On pense à envoyer la clé révoquée sur les serveurs de clés :

gpg --send-keys 34C29329

6. Révoquer une sous-clé

Dans l'exemple je vais révoquer la sous-clé ADE52043, la clé maîtresse étant 34C29329.

gpg --edit-key 34C29329
key 1
revkey

Un astérisque doit apparaître à coter de là ou les clés sélectionnées.

On pense à envoyer la clé révoquée sur les serveurs de clés :

gpg --send-keys 34C29329

7. Supprimer une clé

Clé publique :

gpg --delete-key 34C29329

Clé privée :

gpg --delete-secret-keys 34C29329

Les deux :

gpg --delete-secret-and-public-key 34C29329

8. Importer une clé

Clé ou sous-clé publique ou privée :

gpg --import 34C29329.pub.asc
gpg --import 34C29329.priv.asc
gpg --import 34C29329.sub_priv.asc

9. Envoyer sa clé sur le réseau des serveurs de clés publiques

gpg --send-key 34C29329

10. Signer et vérifier un fichier

Signer :

gpg -sa fichier.ext

Qui générera la signature fichier.ext.asc.

Vérifier :

gpg --verify fichier.ext.asc

11. Signer et définir le niveau de confiance d'un correspondant

Signer la clé de David Tennant :

gpg --edit-key "David Tennant"
sign

Définir le niveau de confiance de David Tennant :

gpg --edit-key "David Tennant"
trust

12. Chiffrer/Déchiffrer un fichier

Chiffrement asymétrique par clé publique :

gpg --recipient 34C29329 --encrypt --armor fichier.ext

Déchiffrement asymétrique par clé publique :

gpg --decrypt fichier.ext.asc > fichier.ext

Chiffrement symétrique :

gpg -c fichier.ext

Déchiffrement symétrique :

gpg -o fichier.ext -d fichier.ext.gpg

13. Chiffrer/Déchiffrer du texte dans un terminal

Chiffrer :

gpg --recipient 34C29329 -a -e <<EOF
Ce texte est secret
Allons-y Alonso
EOF

Ce qui retournera :

-----BEGIN PGP MESSAGE-----

hQIMA2Yu7vqt5SBDAQ//UeC2r1Wl/ag1FDIqYVizmPvmWIJ90haSE6GtR2XVzz5d
ADaBD1LV/CV4WMmBNaDhttn1mHZFKdBKc8xUqo36+nY3dlVZ/+M/BDbJkIJ3Wflv
2lJCc8N4Cy7CT+ZYjGmUNTWPIW+SuLERSiIJWPTvcEUF4TxCW4mrImux0WXiReZK
zh8lTpqZeMWNS6F6pWZZx2/MFLnSHvaR25ScM8+viWoX6ER9qR95GKLgDHHhZo33
lp9DYYgA/xxRDEr2kPLYkWCFcxP54Zbz6YhWfMnaAYgbO7YAHKb9uh5OXVRHDHiE
oH7UttvdtjKAH+H3qxGahRA61Ocy4sL7Y7TtTNmJtg4QJ+YoTZ99h2PPJckMkHGJ
iRl5RGNxQaSXczOOKVZ/AOj250E0mA/tRQXJS5dNxUX7lcU3Dy9TuUspF+MjXJH5
Op3G3bPF8JJhlYre6kzGLcQBlxt88XiDA4tLRx23w1N5+O5vmDoCvQTVdW0oxuif
Wd3HnhTLWw825YKsxrODoGOQ32ILROIRfMC4w5/iSuxgi81VSdPGHeD/7x+s1NRh
YodVdor4N9GUEvK/AEBW+X12KYEymgjreUQEDNq2Y3hOn1o+qNa/Q1zr/kZYJLAg
3En0F8ZKhp8kUkwM+6FckGGN/b9w4/SyihrNpvg77WduPjMBT0zJzKcy1XemyZHS
awFPWB0RKc6Gv4bT+bQCBGch3APBfEd61D1rAYb1dooyMCyc22u6sDwECbxHRhZD
fSjhrZy/YuvtpXDxEkiCdUK6ofD0VmCa6sWmUKiHQ+hw23A9P7MLNi/vWkWhmEzO
k+0TK83vuUMtFIt0
=aNdl
-----END PGP MESSAGE-----

Déchiffrer :

gpg --decrypt <<EOF
-----BEGIN PGP MESSAGE-----

hQIMA2Yu7vqt5SBDAQ//UeC2r1Wl/ag1FDIqYVizmPvmWIJ90haSE6GtR2XVzz5d
ADaBD1LV/CV4WMmBNaDhttn1mHZFKdBKc8xUqo36+nY3dlVZ/+M/BDbJkIJ3Wflv
2lJCc8N4Cy7CT+ZYjGmUNTWPIW+SuLERSiIJWPTvcEUF4TxCW4mrImux0WXiReZK
zh8lTpqZeMWNS6F6pWZZx2/MFLnSHvaR25ScM8+viWoX6ER9qR95GKLgDHHhZo33
lp9DYYgA/xxRDEr2kPLYkWCFcxP54Zbz6YhWfMnaAYgbO7YAHKb9uh5OXVRHDHiE
oH7UttvdtjKAH+H3qxGahRA61Ocy4sL7Y7TtTNmJtg4QJ+YoTZ99h2PPJckMkHGJ
iRl5RGNxQaSXczOOKVZ/AOj250E0mA/tRQXJS5dNxUX7lcU3Dy9TuUspF+MjXJH5
Op3G3bPF8JJhlYre6kzGLcQBlxt88XiDA4tLRx23w1N5+O5vmDoCvQTVdW0oxuif
Wd3HnhTLWw825YKsxrODoGOQ32ILROIRfMC4w5/iSuxgi81VSdPGHeD/7x+s1NRh
YodVdor4N9GUEvK/AEBW+X12KYEymgjreUQEDNq2Y3hOn1o+qNa/Q1zr/kZYJLAg
3En0F8ZKhp8kUkwM+6FckGGN/b9w4/SyihrNpvg77WduPjMBT0zJzKcy1XemyZHS
awFPWB0RKc6Gv4bT+bQCBGch3APBfEd61D1rAYb1dooyMCyc22u6sDwECbxHRhZD
fSjhrZy/YuvtpXDxEkiCdUK6ofD0VmCa6sWmUKiHQ+hw23A9P7MLNi/vWkWhmEzO
k+0TK83vuUMtFIt0
=aNdl
-----END PGP MESSAGE-----
EOF

Ce qui retournera :

Une phrase de passe est nécessaire pour déverrouiller la clef secrète de
l'utilisateur : « Prenom Nom <mail@domain.com> »
clef RSA de 4096 bits, identifiant ADE52043, créée le 2014-02-23 (identifiant de clef principale 34C29329)

gpg: chiffré avec une clef RSA de 4096 bits, identifiant ADE52043, créée le 2014-02-23
      « Prenom Nom <mail@domain.com> »
Ce texte est secret
Allons-y Alonso

14. Signer et vérifier un texte

Signer :

gpg --clearsign <<EOF
Ce texte est signé
Les Daleks ne pourront pas le falsifier !
EOF

Ce qui retournera :

Une phrase de passe est nécessaire pour déverrouiller la clef secrète de
l'utilisateur : « Prenom Nom <mail@domain.com> »
clef RSA de 4096 bits, identifiant B9CF7863, créée le 2014-02-23 (identifiant de clef principale 34C29329)

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

Ce texte est signé
Les Daleks ne pourront pas le falsifier !
-----BEGIN PGP SIGNATURE-----

iQIcBAEBCgAGBQJTCWFIAAoJEMtw0ha5z3hjn8wP/3XX+WUtVArucpI5AXc8Uaaz
BtRTvdKivFYdsC2hVjY1Wsj9mXwbxAY3QuuiBp5ndL4O0ldtr73V3Zhq+lgqPMwi
kdobLZtMf95VElUH1c1IoeLrpRFRsu7YZcUAEOMWWDpkYPEylSgFL8oWgu6GAOcS
Aj+gQjt2mP9RPGq5IUf1jKCMam/iAh4fwdwfPBhmwXY+dTufHHPlqwRWuc4OdSA8
6+vxEr+1dAi7lU8bnBjTazQ8Th1I38ARe6h8FSDp+FtePSq3YMxbewNLuzooZlAn
Xonjm8KIa2aoGzTLpWj5sjgxJksMuGUt53g1tgYEiUqm2EaJ4Jv0hrzUFY8Zl9Ot
LhP9inz/5573f3dFmJSTJC+/a2JU94IBKNVh8E24DzfDi6kqc+/jFUV6wB4k62HM
6Fl6vVa3lcAHUnYl73btS7bb7vocgdM9i2tBq+bXGhlUF+/bP0/7E+1LEjdVrayC
ifsp9TjrnlIr913NkR6GQHbOGqDAqmv9THYAw+wYK/IaaU2zoMNgKUdxZ46+ylnZ
iBDcgUu+L6ulOp7tecmcK/xoYVvF+aHyCevlXGAApesPooCM3TVZKLOagffSdZYW
OmLsVV76yH/pO2EbIErOBbPxUeiLZqxNbx3Ws1m4TLIlE0MnS47geKoI/GIFozjE
t4y++ndgQnmyGOto3iqV
=+qML
-----END PGP SIGNATURE-----

Vérifier :

gpg --verify <<EOF
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

Ce texte est signé
Les Daleks ne pourront pas le falsifier !
-----BEGIN PGP SIGNATURE-----

iQIcBAEBCgAGBQJTCWFIAAoJEMtw0ha5z3hjn8wP/3XX+WUtVArucpI5AXc8Uaaz
BtRTvdKivFYdsC2hVjY1Wsj9mXwbxAY3QuuiBp5ndL4O0ldtr73V3Zhq+lgqPMwi
kdobLZtMf95VElUH1c1IoeLrpRFRsu7YZcUAEOMWWDpkYPEylSgFL8oWgu6GAOcS
Aj+gQjt2mP9RPGq5IUf1jKCMam/iAh4fwdwfPBhmwXY+dTufHHPlqwRWuc4OdSA8
6+vxEr+1dAi7lU8bnBjTazQ8Th1I38ARe6h8FSDp+FtePSq3YMxbewNLuzooZlAn
Xonjm8KIa2aoGzTLpWj5sjgxJksMuGUt53g1tgYEiUqm2EaJ4Jv0hrzUFY8Zl9Ot
LhP9inz/5573f3dFmJSTJC+/a2JU94IBKNVh8E24DzfDi6kqc+/jFUV6wB4k62HM
6Fl6vVa3lcAHUnYl73btS7bb7vocgdM9i2tBq+bXGhlUF+/bP0/7E+1LEjdVrayC
ifsp9TjrnlIr913NkR6GQHbOGqDAqmv9THYAw+wYK/IaaU2zoMNgKUdxZ46+ylnZ
iBDcgUu+L6ulOp7tecmcK/xoYVvF+aHyCevlXGAApesPooCM3TVZKLOagffSdZYW
OmLsVV76yH/pO2EbIErOBbPxUeiLZqxNbx3Ws1m4TLIlE0MnS47geKoI/GIFozjE
t4y++ndgQnmyGOto3iqV
=+qML
-----END PGP SIGNATURE-----
EOF

Ce qui retournera dans le cas où la signature est bonne :

gpg: Signature faite le dim. 23 févr. 2014 03:47:36 CET avec la clef RSA d'identifiant B9CF7863
gpg: Bonne signature de « Prenom Nom <mail@domain.com> »

Si le texte a été falsifié :

gpg: Signature faite le dim. 23 févr. 2014 03:47:36 CET avec la clef RSA d'identifiant B9CF7863
gpg: MAUVAISE signature de « Prenom Nom <mail@domain.com> »