Description
Ou, comment titrer autrement que : De meilleures pratiques GPG/PGP !
Je ne parlerais pas de comment créer une clé GPG pour communiquer de manière chiffrée ; il existe de très bons guides/tutoriels qui le font très bien, et vraiment mieux que ce que je ne pourrais le faire :
- Le guide de l’Autodéfense courriel - par la FSF…
- Le tutoriel “Signature numérique et chiffrement des messages - Assistance de Thunderbird” - par Mozilla.
- Le guide des bonnes pratiques pour l’utilisation d’OpenPGP - par RiseUp
Installation
Pour pouvoir utiliser correctement gpg, il faut installer non seulement
cet outil, mais vous avez besoin d’autres outils, tels que :
gnupg gnupg-curl hopenpgp-tools parcimonie openssl
Certains de ces outils ne sont disponibles que sous Linux…
tels hopenpgp-tools
, parcimonie
.
Vous ne les trouverez pas nativement sous OpenBSD, ni en package, ni en ports !
Du fait d’installer l’outil parcimonie
, il est IMPÉRATIF de ne plus utiliser l’option
--refresh-keys
de GPG…
parcimonie le fera de la manière convenable et surtout sécurisé !
Certificat SKS
keys.openpgp.org
.Configuration
Hormis le fait d’avoir IMPÉRATIVEMENT son outil GPG/PGP à jour,
afin d’éviter les failles de sécurité, il est recommandé de ne plus utiliser dans aucun fichier toutes les options keyserver-*
.
La seule option keyserver
à utiliser, doit l’être dans le fichier ~/.gnupg/dirmngr.conf
,
tel que :
keyserver hkps://keys.openpgp.org
La configuration sous Unix/Linux se fait dans votre dossier personnel : ~/.gnupg/gpg.conf
Ajouter ces options :
Code :
keyid-format 0xlong
with-fingerprint
- La première impose l’usage du format long - sur 64 bits - de l’identifiant de la clé GPG
- la deuxième demande à afficher l’empreinte, lors de la sortie…
Pour améliorer la qualité des clés GPG, il nous faut rajouter les options suivantes :
Code :
cert-digest-algo SHA512
default-preference-list SHA512 SHA384 SHA256 SHA224 AES256 AES192 AES CAST5 ZLIB BZIP2 ZIP Uncompressed
personal-digest-preferences SHA512
- La première demande l’usage de l’algorithme SHA512
- la deuxième annonce la liste des algorithmes préférées, ; il sera utilisé du plus fort au plus faible, le premier trouvé étant utilisé !
- la dernière annonce la préférence personnelle.
Pour finir, voici d’autres options à utiliser, elles aussi, nécessaires :
Code :
keyserver-options include-revoked
keyserver-options no-try-dns-srv
list-options show-uid-validity
verify-options show-uid-validity
use-agent
auto-key-locate local
auto-key-locate keyserver
fixed-list-mode
utf8-strings
Je vous renvoie à la documentation du manpage pour que vous compreniez la raison de chacune.
Les Recommandations
Autrement-dit, les IMPÉRATIFS à ABSOLUMENT tenir compte sont :
- NE PLUS utiliser toutes les options `keyserver` dans le fichier de configuration principal
- NE PLUS utiliser l'option `--refresh-keys` de gpg, sauf si vous n’avez pas l’outil parcimonie.
- NE PAS avoir confiance dans l'identifiant d’une clé GPG, qu’il soit de format court ou long - le format court est faillible ; le format long pose son lot de problèmes ! — Utilisez l’empreinte de clé GPG…
- NE PAS avoir une confiance aveugle dans les clés fournies, même celles sur un serveur SKS - efforcez-vous d’être en contact régulier avec votre contact, par téléphone, voire mieux physiquement, pour vous assurer de la validité de celles-ci ! Demandez l’empreinte de la clé GPG de votre interlocuteur… et signer la clé dans votre ordinateur.
- NE PAS utiliser l'algorithme DSA , préférez RSA !
- NE PAS utiliser de longueur de clé inférieure à 4096 bits - de toute façon, dans l’immédiat, il n’est pas supporté de plus fort !
- NE PAS utiliser MD5, SHA1 ; utilisez un chiffrement fort tel que SHA256, voire mieux SHA512 - et paramétrez votre configuration personnelle dans ce sens, ce que nous avons vu plus haut.
- Créer vos clés, avec une date d'expiration maximale à deux ans - et, utilisez un calendrier pour vous le rappeler !
- Éditer vos clés pour ajouter :
- une sous-clé de signature,
- une photo,
- et paramétrer les préférences de hash…
- Créer ABSOLUMENT un certificat de révocation.
Du bon usage de GPG : les empreintes
Donc, nous l’avons compris, il est nécessaire/préférable d’utiliser l’outil GPG avec les empreintes de clés.
Ce sont les mêmes commandes optionnelles à gpg, mais au lieu de renseigner l’email, l’identifiant de clé, on utilisera l’empreinte d’une clé …
- Pour télécharger l’empreinte d’une clé depuis le serveur :
gpg --recv-key 'fingerprint'
- simple ou double quotes, c’est pareil - Pour vérifier l’empreinte d’une clé GPG :
gpg --fingerprint 'fingerprint'
- Pour signer une empreinte de clé GPG :
gpg --sign-key 'fingerprint'
- Pour signer localement une empreinte de clé GPG :
gpg --lsign-key 'fingerprint'
- ATTENTION : si vous signez localement, vous ne pourrez plus exporter votre signature ! - Pour gérer un fichier :
gpg --with-fingerprint keyfile
- Pour créer un certificat de révocation à partir de l’empreinte :
gpg --output email@domain.tld.rev.asc --gen-revoke 'fingerprint'
- Etc.
Du bon outil GPG
Ok, nous avons vu comment utiliser openssl, parcimonie, les outils gpg
pour nous assurer de faire les choses proprement, mais tu n’as pas
parlé du paquet hopenpgp-tools
! En effet ;-)
En fait, dans ce paquet-là, il est fourni au moins deux outils que sont
hkt
et hokey
… assemblés, ils permettent en mode console d’avoir
la pertinence qu’une clé GPG est bonne à partir de son empreinte - et
ils sont très facile à utiliser, tel que :
hkt export-pubkeys 'fingerprint' | hokey lint
Les tests corrects sont affichés en vert . Tout problème avec la clé vérifiée est affiché en rouge ! Il faut alors IMPÉRATIVEMENT se méfier d’une telle clé, voire la régénérer si c’est la vôtre, après avoir configuré votre fichier de configuration personnelle, avec les recommandations ci-dessus !
Mon script shell POSIX
Vous retrouverez mon script de gestion de clé GPG sur mon espace git… Du moins, j’espère bien qu’il soit POSIX…
- Pour afficher l’aide :
./mng_gpg help
- Pour gérer une clé, à partir de son empreinte :
./mng_gpg fingerprint 'gpg:fingerprint'
Pour information, cet outil a aussi besoin de l’outil shred
…
Des logiciels graphiques
Serveurs de clés consultables
- Le seul sécurisé est celui du projet OpenGPG : keys.openpgp.org
Et, vous avez bien compris, tout comme moi d’ailleurs… on fait une
recherche par … mail, ID, empreinte !