PGP – 2e partie : Générer votre clé maître Protéger l’intégrité de votre code avec PGP

Apprenez comment générer une clé maître de 4096-bit dans ce tutoriel PGP. Dans cette série d’articles, nous jetons un regard approfondi sur l’utilisation de PGP et fournissons un guide pratique à destination des développeurs travaillant sur des projets de logiciels libres. Dans cet épisode, nous vous montrons comment générer et protéger votre clé PGP maître.

Article écrit et posté par Konstantin Ryabitsev le 21 février 2018 sur Linux.com
Traduit par Gilles Gouget pour Librethic le 23 avril 2018
https://creativecommons.org/licenses/by-sa/4.0/

Comprendre la clé (certifiante) « maître »

Dans cette section et la suivante, nous parlerons de la « clé maître » et des ’sous-clés". Il est important de comprendre ce qui suit :
1. Il n’y a pas de différence technique entre la « clé maître » et les « sous-clés » ;
2. Au moment de la création, nous assignons des limitations fonctionnelles à chaque clé en leur donnant des capacités spécifiques ;
3. Une clé PGP peut avoir quatre capacités :

  • une clé [S] peut être utilisée pour signer ;
  • une clé [E] peut être utilisée pour chiffrer ;
  • une clé [A] peut être utilisée pour authentifier ;
  • une clé [C] peut être utilisée pour certifier d’autres clés.

4. Une clé unique peut avoir des capacités multiples.

La clé [C] ayant la capacité de certification est considérée comme la clé « maître » car elle est la seule à pouvoir être utilisée pour indiquer des relations avec d’autres clés. Seule la clé [C] peut être utilisée pour :
- Ajouter ou révoquer d’autres clés (sous-clés) ayant les capacités S/E/A ;
- Ajouter, changer ou révoquer des identités (uids) associées aux clés ;
- Ajouter ou changer la date d’expiration d’elle-même ou de toute sous-clé ;
- Signer les clés d’autres personnes pour la toile de confiance.

Dans le monde du Logiciel Libre, la clé [C] est votre identité numérique. Une fois que vous créez cette clé, vous devez rendre des mesures toutes particulières pour la protéger et l’empêcher de tomber entre des mains malicieuses.

Avant de créer votre clé maître

Avant de créer votre clé maître il vous faut choisir votre identité principale et votre phrase secrète.

Identité principale

Les identités sont des chaînes utilisant le même format que le champ « expéditeur » que l’on trouve dans les courriels :
Alice Engineer <alice.engineer chez example.org>

Vous pouvez créer de nouvelles identités, en révoquer d’anciennes, et changer d’identité principale à tout moment. Puisque l’identité principale est visible dans toutes les opérations GnuPG, vous devriez choisir un nom et une adresse qui soient à la fois professionnels et les plus susceptibles d’être utilisés pour des communications protégées par PGP, comme votre adresse professionnelle ou l’adresse que vous utilisez pour signer vos contributions.

Phrase secrète

La phrase secrète est exclusivement utilisée pour chiffrer la clé privée avec un algorithme symétrique qui est conservé sur le disque. Si le contenu de votre répertoire .gnupg vient à fuiter, une bonne phrase secrète est la dernière ligne de défense contre le voleur et sa capacité à vous usurper votre identité en ligne, c’est pourquoi il est important d’avoir une bonne phrase secrète.
La bonne recette pour une bonne phrase secrète c’est 3-4 mots d’un dictionnaire riche ou de plusieurs, qui ne soit pas une citation d’une source populaire (chanson, livre, slogan). Vous utiliserez cette phrase fréquemment, aussi devrait-elle être facile à taper et à mémoriser.

Algorithme et force de la clé

Même si cela fait déjà un certain temps que GnuPG supporte la crypto par courbes elliptiques, nous continuons à utiliser des clés RSA, au moins pour un temps. Alors qu’il est possible de commencer à utiliser les clés ED25519 dès maintenant, il est probable que vous tomberez sur des outils et des matériels qui ne seront pas capables de les gérer correctement.
Vous pouvez aussi vous demander pourquoi la clé maître est de 4096-bit, quand un peu plus loin dans ce guide on dira que les clés 2048-bit sont assez bonnes pour la durée de vie de la cryptographie par clé publique RSA. Les raisons sont principalement sociales et non techniques : les clés maîtres sont les plus visibles dans la chaîne de clés, et certains développeurs avec lesquels vous allez interagir vous jugeront inévitablement de façon négative si votre clé maître à moins de bits que la leur.

Générer la clé maître

Pour générer votre nouvelle clé maître, lancez la commande suivante, en mettant les bonnes valeurs à la place de "Alice Engineer" :

$ gpg --quick-generate-key 'Alice Engineer <alice@example.org>' rsa4096 cert

Une boite de dialogue s’ouvrira pour vous demander la phrase secrète. Puis il vous faudra sans doute bouger votre souris ou taper quelques caractères pour générer suffisamment d’entropie jusqu’à que la commande se termine.
Regardez la sortie de la commande, ce sera quelque chose comme ça :

pub   rsa4096 2017-12-06 [C] [expires: 2019-12-06]
    111122223333444455556666AAAABBBBCCCCDDDD
uid                      Alice Engineer <alice@example.org>

Notez la longue chaîne sur la deuxième ligne – c’est l’empreinte complète de votre clé nouvellement créée. Les identifiants de clé ("Key IDs") peuvent être représentés de trois façons :

  • L’empreinte, un identifiant de clé complet de 40 caractères ;
  • Long, les derniers 16 caractères de l’empreinte (AAAABBBBCCCCDDDD) ;
  • Court, les derniers 8 caractères de l’empreinte (CCCCDDDD).
  • Vous devriez éviter d’utiliser les identifiants courts de 8 caractères car ils ne sont pas suffisamment uniques.

À ce stade, je vous suggère d’ouvrir un éditeur de texte et d’y copier-coller votre empreinte. Il vous faudra l’utiliser pour les prochaines étapes, alors il sera pratique de l’avoir sous la main.

Sauvegarder votre clé maître

Pour faire face à des cas de force majeure – particulièrement si vous comptez utiliser la toile de confiance et collecter des signatures d’autres développeurs –, vous devriez créer une copie "en dur" de votre clé privée. C’est supposé être la mesure de dernier recours dans le cas ou tous les autres mécanismes de sauvegarde échoueraient.
La meilleure façon de créer une copie "en dur" imprimable de votre clé privée est d’utiliser le logiciel paperkey qui a été écrit dans ce but précis. Paperkey est disponible dans toutes les distributions Linux, ainsi qu’en installable via "brew install paperkey" sur Mac.

Exécutez la commande suivante, en remplaçant [fpr] par l’empreinte complète de votre clé.

$ gpg --export-secret-key [fpr] | paperkey -o /tmp/key-backup.txt
Le résultat est dans un format qui est facile à traiter en OCR ou à saisir à la main, si d’aventure vous avez besoin de le récupérer. Imprimez ce fichier, puis prenez un stylo et écrivez la phrase secrète dans la marge de la feuille. C’est une étape indispensable, car l’impression de la clé est toujours chiffrée avec la phrase secrète, et si jamais vous changez la phrase secrète de votre clé, vous ne vous souviendrez plus de ce qu’elle était lorsque vous l’avez créée – je vous le garanti.
Mettez le document imprimé et la phrase secrète manuscrite dans une enveloppe, et rangez la dans un endroit sécurisé et bien protégé, de préférence loin de chez vous, comme votre coffre à la banque.

À propos des imprimantes : L’époque où les imprimantes étaient des périphériques idiots connectés au port parallèle de votre ordinateur est loin derrière nous. De nos jours elles ont des systèmes d’exploitation complets, des disques durs et un accès au cloud. Puisque le contenu de la clé que nous avons envoyé à l’imprimante est chiffré avec la phrase secrète, l’opération est plutôt sécurisée, mais fiez vous à votre meilleur jugement paranoïaque.

Ajouter les identités pertinentes

Si vous avez plusieurs adresses mail pertinentes (personnelle, travail, projet open-source, etc.), vous pouvez les ajouter à votre clé maître. Vous n’aurez pas besoin de faire cela pour des adresses avec lesquelles vous ne compte pas utiliser PGP (par exemple, probablement pas votre adresse d’ancien élève).
La commande est (mettez l’empreinte complète de votre clé à la place de [fpr]) :
$ gpg --quick-add-uid [fpr] 'Alice Engineer <allie@example.net>'
Vous pouvez voir les UIDs que vous avez déjà ajouté avec :
$ gpg --list-key [fpr] | grep ^uid

Choisissez l’UID primaire

GnuPG considérera le dernier UID enregistré comme votre UID primaire, alors si ce n’est pas ce que vous voulez, vous pouvez le modifier :
$ gpg --quick-set-primary-uid [fpr] 'Alice Engineer <alice@example.org>'
La prochaine fois, nous verrons comment générer des sous-clés PGP, qui sont les clés que vous utiliserez dans votre travail au jour le jour.

Les autres articles de la série sur PGP

- 1ère partie : Concepts et outils de base
- 2ème partie : Générer une clé maitre
- 3ème partie : Générer des sous clés

Voir en ligne : https://www.linux.com/blog/learn/PG...