%

GPG : Du bon usage sécurisé

Article publié, le et modifié le
5 minutes de lecture

Cet article contient 1017 mots.
Source brute de l'article :
Commit version : beb80d0

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 :

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

Attention

Certificat SKS

Danger

Configuration

Danger

La configuration sous Unix/Linux se fait dans votre dossier personnel : ~/.gnupg/gpg.conf

Ajouter ces options :

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 :

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 :

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

Obsolète

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 !

Attention

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 !