%

GPG : Guide bonnes pratiques (RSA)

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

Cet article contient 1522 mots.
Source brute de l'article :
Commit version : 90bf963

Description

Suite à mes précédentes réflexions à-propos du Bon usage sécurisé de GPG , finalement je me décide pour un article de ce genre : Guide des bonnes pratiques pour la création de clés GPG.

De fait, il ne suffit pas de se dire, “je vais créer ma clé à coup de --gen-key, et puis zou…”, ou d’utiliser une interface graphique pour le faire, telle qu’Enigmail ou GPA, c’est un processus un peu plus long, d’autant si l’on veut le faire correctement !

Ce guide s’inspire très fortement de celui d’Alex Cabal


Création parfaite de clés GPG

Informations importantes

  • Ne pas utiliser le paramétrage par défaut de GPG, à savoir : 2048 - et, encore moins, inférieur !
  • La seule taille forte de clé, valide, à ce jour est : 4096 !
  • Le seul chiffrement à utiliser est : RSA !

Création

Création : Clients Graphiques

Pour Enigmail, il faut ouvrir la fenêtre de gestion de clés, puis cliquer sur le menu ‘Générer > Nouvelle clé’…

Il ne reste plus qu’à choisir le courriel concerné, de créer une passphrase, et de la répéter ; dans l’onglet ‘Expiration’, veillez à la durée : pas plus de 2 ans !

Puis dans l’onglet ‘Avancé’, vérifier la taille de la clé : 4096, le type de la clé ‘RSA’… vous n’avez plus qu’à cliquer sur le bouton [ Générer la clef ], et à laisser faire le temps de la génération…

Avec GPA, c’est sensiblement pareil, à la différence que c’est le menu ‘Clefs’ > ‘Nouvelle clef’ qui permet de le faire…

Choisissez l’algorithme de chiffrement : RSA - (RSA (sign only) nous servira plus tard…) -, la taille de clé - il est très probable qu’il ne soit pas possible de chiffrer avec une clé plus forte que 3072 - puis remplissez les champs ‘Nom’, et ‘Courriel’ seulement, et finissez par cliquez dans la case à cocher ‘Expires’, pour choisir une date de 2 ans, maximum.

Création : Mode Console

Il y a deux options pour créer une clé, l’une permettant de faire plus finement en demandant plus de choses que l’autre, à savoir :

  • l’option --gen-key, version abrégée de l’option --generate-key,
  • l’option --full-gen-key, version abrégée de l’option --full-generate-key.

Utilisons l’option --gen-key :

Code : sh

Ajout d’une photo

Veillez à utiliser une photo qui soit de taille légère !

addphoto : Clients Graphiques

Enigmail : il faut ouvrir la fenêtre de gestion de clés, menu “Édition” > “Ajouter une photo” après avoir sélectionné la clé.

  • 2ème possibilité : clic droit sur la clé, menu contextuel ‘Ajouter une photo"… et choisissez le fichier en question.
  • 3ème possibilité : clic droit sur la clé, menu contextuel “Propriété de la clé”, puis dans la fenêtre de propriété, cliquez sur le bouton [ Sélectionnez une action … ] et choisissez ‘Ajouter une photo’.

GPA semble ne pas en être capable !

addphoto : Mode Console

C’est l’option --edit-key qui sera utilisée puis l’option addphoto, telles que :

Code : sh

Préférences Hash

Paramétrer les hash préférés sont de bon aloi !

setpref : Clients Graphiques

Enigmail semble ne pas en être capable !

GPA semble ne pas en être capable !

setpref : Mode Console

C’est encore l’option --edit-key qui sera utilisée mais avec l’option setpref, telles que :

Code : sh

Une nouvelle sous-clé de signature

Cette étape est vraiment importante ; elle sert à créer une sous-clé qui ne servira qu’à signer de nouveaux messages et autres documents…

Si vous vous passez des deux étapes précédentes, ne vous passez pas de celle-ci ; vous comprendrez plus bas le pourquoi !

Les recommandations de création de cette sous-clé sont ABSOLUMENT les mêmes que pour la création de la clé principale !

Quoi ? vous avez déjà oublié : RSA + 4096 bits - avec la différence qu’on utilisera le choix ‘RSA (sign only)’, et pas besoin de paramétrer une période de validité…

addkey : Clients Graphiques

Enigmail semble ne pas en être capable !

GPA semble ne pas être capable de générer de clés dont la taille soit de 4096 bits, sinon, c’est menu “Clefs” > “Nouvelle clé” ; choisir l’algorithme ‘RSA (sign only)’, remplir les champs ‘Nom’, ‘Courriel’ - sur ce dernier, remplir l’adresse mail correspondante, et ne pas cochez la case ‘Expirer’ puis validez !

addkey: Mode Console

C’est toujours l’option --edit-key qui sera utilisée mais cette fois-ci avec l’option addkey, telles que :

Code : sh

Création du certificat de révocation

La création du certificat de révocation est une étape à faire ABSOLUMENT !

En effet, celui-ci vous sera nécessaire pour révoquer votre clé GPG, ou la sous-clé de signature, si jamais vous avez perdu celle-ci, et/ou qu’elle soit volée, et/ou qu’elle soit compromise !

Il vous importe de placer ce certificat de révocation dans un endroit sûr !

revoke : Clients graphiques

Enigmail : Clic droit sur la clé, menu contextuel “Créer et enregistrer un certificat de révocation”.

  • 2ème possibilité : clic droit sur la clé, menu contextuel “Propriétés de la clé”, puis dans la fenêtre “Propriété”, cliquez sur le bouton [ Sélectionnez l’action …], puis “Créer et enregistrer un certificat de révocation”.

GPA semble ne pas en être capable !

revoke : mode console

C’est assez simple, pour une fois :

$ gpg --output email@domain.tld.rev.asc --gen-revoke email@domain.tld

Exportez vos clés

L’export de vos clés fait partie du processus nécessaire. Bien entendu, il vous incombe de mettre en lieu sûr ces fichiers, IMPÉRATIVEMENT la clé privée qui en résulte !

export : Clients graphiques

Enigmail : clic droit sur la clé, menu contextuel “Exporter les clés vers un fichier”

GPA : Menu ‘Clefs’ > ‘Exporter des clefs’

2ème possibilité : clic droit sur la clé en question, puis dans le menu contextuel, choisir ‘Exporter des clefs’…

export : mode console :

$ gpg --export-secret-keys --armor email@domain.tld > email@domain.tld.private_key.asc
$ gpg --export --armor email@domain.tld > email@domain.tld.public_key.asc

Transformons les clés

Transformez les clés que nous avons créées, dites clés primaires en clés portables ou mode “protégé”, est un autre processus IMPORTANT !

Ce processus est un peu long, non-prévu dans le fonctionnement interne de GPG, peut faire peur - et donner des suées,…

Il a pour propos d’extraire les sous-clés, de les détruire du porte-clé, de les importer correctement !

Attention

transformation : Clients Graphiques

Ne cherchez pas ; ce processus n’est pas du tout géré !

transformation : Mode Console

Tout d’abord un aperçu de la clé, pour comparaison :

celui-ci n’est absolument pas nécessaire - juste pour aider à remarquer la légére différence, avant ce processus et après !

Code : sh

Maintenant, le processus de transformation - que vous devez exécutez :

Code : sh

Comparons :

Code : sh

En fait la différence visible/visuelle est très légère : sur la ligne commençant par le mot sec, celui-ci est suivi du symbole #

La présence du symbole dièze signifie que la sous-clé de signature ne fait pas partie du trousseau de clé !

Si le symbole dièze n'est pas présent, c'est qu'il y a eu un problème dans la phase de ce processus… refaites-le !


Voilà, vous avez suivi toutes ces étapes - c’est très bien. Elles vous garantissent d’avoir fait correctement les choses ;-)

Partagez votre clé publique !

Allez n’hésitez pas à partagez, publiez votre clé publique - informez de l’empreinte relative à votre clé publique - privilégiez le contact réel, physique lors de cet échange…

En mode graphique :

Enigmail : Menu “Serveur de clefs” > “Envoyer les clés publiques”.

2ème possibilité : clic droit sur la clé, menu contextuel “Envoyer les clés publiques vers un serveur de clefs”

GPA : Menu ‘Serveur’ > ‘Envoyer des clefs’.

2ème possibilité : clic droit sur la clé, puis dans le menu contextuel, choisissez ‘Envoyer des clefs’ ; confirmez votre choix, si cela vous est demandé en cliquant sur le bouton [Oui].

En mode console :

Utilisez donc l’option --send-keys "fingerprint, tel que :
$ gpg --send-keys "fingerprint"

Astuce

De bonnes lectures

Je renvoie très fortement vers les bonnes lectures en question :


Du bon outil GPG

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énèrer une clé : ./mng_gpg create

Pour information, cet outil a aussi besoin de l’outil shred