Informations sur ma clé publique PGP

Qu’est-ce ?

Je ne saurais pas expliquer mieux que l’ami Wikipedia : GPG sur Wikipedia. Une autre bonne référence est ce wikibook sur GPG.

Allez d’abord vous informer, ou vous rafraîchir les idées avant de lire d’avantage.

Où et quand m’en sers-je ?

Signer pour assurer l’origine d’un fichier

J’essaie de prendre l’habitude de signer les fichiers importants (binaires, PDF etc), que je propose au téléchargement.

Cela permet à n’importe qui d’être sûr de ce que vous téléchargez : la clé utilisée pour signer les fichier étant privée je suis (normalement) le seul à pouvoir émettre ces signatures.

La plupart des adresses (URLs) de fichiers que je donne sur mes pages webs peuvent permettre de récupérer la signature du fichier en question en rajoutant .asc à la fin. Exemple: cv.pdf et cv.pdf.asc, ou cette page : pgp.fr.html et pgp.fr.html.asc.

Exemple

Par exemple, mon fichier de configuration pour Bash, .bashrc, a une signature .bashrc.asc.

Avec l’extension sphinx.ext.runblock, il est possible d’embarquer dans cette page web la commande qui permet de créer cette signature numérique (et sa sortie) :

$ gpg --detach-sign --armor --quiet -o - /home/lilian/.bashrc
-----BEGIN PGP SIGNATURE-----

iQIzBAABCgAdFiEE/DSleRq5aEZtX0W7LaPXUOHniXEFAmEmIRUACgkQLaPXUOHn
iXF0FBAAtjGI9+axNX9XC+NONJL0m118xwBv5NXn8HIo7VRyCw67t1Bh7s4ooVOp
EV59e/dv52IrgDVTY4Ep+IZROkF1kupooj3gBJngiNOf2FaPWIoQ7OpdN+XQVCvu
h9ay/7e4/V5axfwvbI1XdQ2nNeWUeKuVfwItyeZv0NqCClDCfZquyvFXiNO5KNw5
zy583zmB8PHDPVD5jTMBgCIgW2tDoIC9DOJL0oWi7QbzK4eJGPBoqsxun0V4QWlZ
O/O3F9vFpx1bagIn9s8CQ2PoWiFQPBHqq+k4AIwwwMH7esO/6Xvc3xc6an3QJ91V
hDpeVMD4JrQ8OaKi3cz3HgCVjHpvEOiVuTSB2rTuvOuc0fvJ+xkelkgmbNgUaUwl
rpg/anIz7AVvt/1rJhi/fiLpQNOWvgY09/IqrLkqokuM2wkkW51S4REMV3vYGQSW
hxoGNc/0UQ/XA50PRzFwyQN3Ke3xAW5+1ENP0rycMip6F4RG/q2VCKHGtGKj7RBV
pCdaxKO0L2lbBnt00toOogBnJTzLGkqR6u7vB+YWGIJPJGl6Ay4mUV8arLuubA/w
EfPwi9vP9uNgKhep7akxB6SztAD2zFRfyENcLpb+jpmZP1xcvWWQFV9tMh3TEMtG
zcxnT+PV9FgEtVUIkZmAGuOhi6XgDR96RUElZNs+WqTgohXy/PY=
=CYG0
-----END PGP SIGNATURE-----

Comment utiliser ces fichiers .asc ?

Il est possible de vérifier ces signatures, avec ma clé publique. Et c’est même le but principal de ces fichiers .asc !

D’abord, il faut importer ma clé publique dans votre répertoire de clés auxquelles vous faites confiance (trust-ring).

R4096/C1108F8A0

En ce qui concerne ma clé publique, dans ce fichier Lilian_Besson.asc :

  1. D’abord, il faut la télécharger, comme expliqué au paragraphe suivant;

  2. Ensuite, il faut vérifier sa somme de contrôle MD5 et SHA256, afin d’être sûr que vous ayez télécharger le bon fichier ! Vous pouvez comparer la sortie des commandes md5sum et sha256sum avec les valeurs suivantes.

    Depuis mon répertoire de clés :

    $ GPGKEY=`gpg.sh` gpg --export --armor $GPGKEY | md5sum
    $ GPGKEY=`gpg.sh` gpg --export --armor $GPGKEY | sha256sum
    bash: ligne 1: gpg.sh : commande introuvable
    gpg: Attention : rien n'a été exporté
    bash: ligne 2: gpg.sh : commande introuvable
    gpg: Attention : rien n'a été exporté
    

    Depuis le fichier Lilian_Besson.asc :

    $ # Utilisez ./Lilian_Besson.asc pour verifier le fichier dans le dossier courant
    $ md5sum ~/Lilian_Besson.asc
    $ sha256sum ~/Lilian_Besson.asc
    md5sum: /home/lilian/Lilian_Besson.asc: Aucun fichier ou dossier de ce type
    sha256sum: /home/lilian/Lilian_Besson.asc: Aucun fichier ou dossier de ce type
    

À quoi cela sert-il ? Cela vous permet de vérifier que vous avez bien téléchargé la bonne armor-art (ie. la version ASCII) de ma clé publique.

  1. Ensuite il faut l’importer dans votre répertoire de clé (local sur chaque machine) :

    gpg --import Lilian_Besson.asc
    

Ensuite, pour vérifier la signature fichier.asc du fichier fichier il suffit de faire :

gpg --verify fichier.asc fichier

Exemple (2)

Donc pour l’exemple de mon fichier .bashrc, il suffit de faire :

gpg --verify .bashrc.asc .bashrc

Alors, normalement, si vous avez bien importé la clé, et téléchargé les bons fichiers, cela devrait vous donner un message comme :

$ gpg --verify ~/.bashrc.asc ~/.bashrc
gpg: Signature faite le dim. 21 févr. 2021 23:28:38 CET
gpg:                avec la clef RSA FC34A5791AB968466D5F45BB2DA3D750E1E78971
gpg: Bonne signature de « Lilian Besson (@Naereen) <lilian@besson.link> » [ultime]

Normalement, ça marche !

Note

J’ai écrit un petit script pour automatiquement cacher les adresses courriel écrite par ces commandes gpg dans les pages générées avec Sphinx et l’extension runblock.

Pourquoi ? Pour rien. Ou si en fait. Pour tenter d’éviter de laisser mes adresses éléctroniques en clair dans les nouveaux documents que je produit.

Pourquoi seulement nouveaux ? Parce que je ne savais pas que des bots peuvent scanner des millions de pages par jour à la recherche d’adresses électroniques, afin d’envoyer du spam. Donc, tant que faire ce peux, j’essaie de limiter la présence d’une adresse sous forme truc.machin@domain.ext et utilise plutôt un format du genre truc.machin[@] ou [AT].

Bref, ce script obscure_email.sh réalise cette substitution automatiquement, pour tous les documents textuels générés via Sphinx, avant de les envoyer vers un serveur. Comme ça, c’est facile et automatique :)

Ma clé publique

L”empreinte publique de ma clé est C108F8A0.

R4096/C1108F8A0

Une méthode plus simple pour récupérer ma clé est de la rechercher directement sur un des deux serveurs suivants :

  • keyserver.ubuntu.com;

  • pgp.mit.edu.

Donc, une recherche sur un de ces serveurs de clés PGP donne :

Et aussi

J’utilise aussi de plus en plus GPG pour signer ou chiffrer mes emails, abandonnant ainsi Hotmail pour la rédaction de mails. Le paragraphe suivant est consacré à mutt, un client de messagerie en console.

Note

Je n’utilise plus fréquemment mutt.


Mutt

J’utilise Mut 1.5.21 pour rédiger et lire mes mails. Voir la page officielle pour plus de détails : http://www.mutt.org.

Mes fichiers de conf”

Vous pouvez trouver notamment ici publis/muttrc/ mes fichiers de configurations pour mutt (enfin, les fichiers ne contenant aucune info privée).

Il faut placer .muttrc dans votre $HOME, et le contenu du dossier mutt/ dans $HOME/.mutt/.

Il faut ensuite écrire un couple de fichier truc.account.muttrc et truc.signature.muttrc par compte de messagerie que vous souhaitez utiliser. Il est possible d’utiliser un fichier truc.password.gpg pour stocker un mot de passe pour un serveur SMTP, POP ou IMAP de façon crypté par GPG.

Adaptez enfin le .muttrc pour charger les bons fichiers (dans mon cas, truc=ens et truc=crans).

Le jeu de couleur fourni vient du projet solarized.

Astuces

  • Utilisez mutt via tmux (ou screen ou byobu), afin de pouvoir l’ouvrir facilement !

  • Ne stockez pas vos mots de passes en clair dans vos fichiers de configurations dans ~/.mutt/ !

  • Vous pouvez définir un alias alias mutt-truc=mutt -F ~/.mutt/truc.muttrc afin de lancer plus vite mutt sur un seul de vos comptes.

  • Il est possible d’utiliser ses contacts Google pour créer un fichier $HOME/.goobook_cache, permettant l’auto-complétion du destinataire via la touche TAB dans mutt, avec goobook.