PGP – 4e partie : Mettre votre clé maître sur un stockage hors ligne Protéger l’intégrité de votre code avec PGP

Il serait très dommageable pour un développeur de se faire voler ses clés PGP ; apprenez à mettre les vôtres en sécurité.

Article écrit et posté par Konstantin Ryabitsev le 7 mars 2018 sur Linux.com

Traduit par Gilles Gouget pour Librethic le 15 mai 2018

https://creativecommons.org/licenses/by-sa/4.0/

Protéger l’intégrité de votre code avec PGP – 4e partie : Mettre votre clé maître sur un stockage hors ligne

Image : Creative commons zéro

Il serait très dommageable pour un développeur de se faire voler ses clés PGP ; apprenez à mettre les vôtres en sécurité.

Dans cette série de tutoriels, nous fournissons un guide pratique pour l’utilisation de PGP. Vous pouvez rattraper les précédents articles ici :

- 1ère partie : Concepts et outils de base
- 2ème partie : Générer et protéger votre clé PGP maître
- 3e partie : Générer des sous-clés PGP
- 4ème partie : Mettre votre clé maître sur un stockage hors ligne

Pour cette 4ème partie, nous poursuivons la série en voyant comment et pourquoi déménager votre clé maître de votre répertoire /home vers un stockage hors ligne. Commençons.

Check-list

  • Préparer un stockage externe chiffré (ESSENTIEL) ;
  • Faites une sauvegarde de votre répertoire GnuPG (ESSENTIEL) ;
  • Supprimer la clé maître de votre répertoire /home (BON) ;
  • Supprimer le certificat de révocation de votre répertoire /home (BON) ;

Considérations

Pourquoi voudriez vous enlever votre clé maître [C] de votre répertoire /home ? Ceci est généralement fait pour prévenir le vol ou la fuite accidentelle de votre clé. Les clé privées sont des cibles de choix pour des acteurs malicieux – nous l’avons appris de plusieurs attaques de malwares qui scannaient le répertoire /home des utilisateurs et téléchargeaient tout contenu de clé privée qu’ils y trouvaient.

Il serait très dommageable pour tout développeur de se faire voler ses clés PGP – dans le monde du Logiciel Libre, c’est souvent l’équivalent d’un vol d’identité. Enlever votre clé maître [C] de votre répertoire /home aide à vous protéger de tels événements.

Faites une sauvegarde de votre répertoire GnuPG

 !!! Ne sautez pas cette étape !!!

Il est important d’avoir sous la main une sauvegarde de vos clés PGP au cas où vous auriez besoin de les récupérer (ceci est différent des mesures anti-désastre que nous avons prises avec la paperkey).

Préparez un stockage externe chiffré

Commencez par vous procurer une petite clé USB (deux de préférence !) que vous utiliserez à des fins de sauvegarde. Vous devrez tout d’abord les chiffrer :

Faites une sauvegarde de votre répertoire GnuPG

Une fois le chiffrement réalisé, ré-insérez la clé USB et assurez vous qu’elle soit montée correctement. Trouvez son point de montage complet, par exemple en exécutant la commande mount (sous Linux, les média externes sont généralement montés sur /media/disk, sous Mac c’est /Volumes).

Une fois que vous avez le point de montage complet, copiez-y tout votre répertoire GnuPG :

$ cp -rp /.gnupg [/media/disk/name]/gnupg-backup

(Note : Si vous obtenez des erreurs de type Opération non supportée sur le socket, elles sont bénignes et vous pouvez les ignorer).

Vous pouvez maintenant tester pour être sûr que tout fonctionne encore :

$ gpg —homedir=[/media/disk/name]/gnupg-backup —list-key [fpr]

Si vous n’obtenez aucune erreur, vous êtes bon. Démontez la clé USB et étiquetez là distinctement, histoire de ne pas tout casser la prochaine fois que vous aurez besoin d’une clé USB lambda. Puis mettez-la dans un lieu sûr – mais pas trop loin, car vous en aurez besoin de temps en temps pour des choses comme modifier des identités, ajouter ou révoquer des sous-clés, ou signer la clé d’autres personnes.

Enlevez la clé maître

Les fichiers de votre répertoire /home ne sont pas aussi bien protégés que l’on voudrait le croire. Ils peuvent fuiter ou être dérobés de différentes façons :

  • Par accident en faisant des copies rapides de votre répertoire lors de l’installation d’une nouvelle station de travail ;
  • Par la malveillance ou la négligence d’un administrateur système ;
  • Par des sauvegardes mal sécurisées ;
  • Par des programmes malveillants dans vos applications de bureau (navigateurs, visionneuses de PDF, etc.) ;
  • Par coercition en traversant des frontières internationales.
    Protéger votre clé avec une bonne phrase secrète réduit grandement les risques ci-dessus, mais les phrases secrètes peuvent être découvertes par des logiciels espion (keylogger), des regards indiscrets (shoulder surfing), ou tout un tas d’autres moyens. Pour cette raison, la méthode recommandée est d’enlever votre clé maître de votre répertoire /home et de la conserver sur un support hors ligne.

Enlever votre clé maître

Revoyez la section précédente et assurez-vous d’avoir sauvegardé votre répertoire GnuPG dans son entièreté. Ce que nous sommes sur le point de faire rendra votre clé inutile si vous n’avez pas une sauvegarde utilisable !

Tout d’abord, identifiez le keygrip de votre clé maître :

$ gpg —with-keygrip —list-key [fpr]

Le résultat ressemblera à quelque chose comme ça :

pub rsa4096 2017-12-06 [C] [expires: 2019-12-06]
111122223333444455556666AAAABBBBCCCCDDDD
Keygrip = AAAA999988887777666655554444333322221111
uid [ultimate] Alice Engineer <alice@example.org>
uid [ultimate] Alice Engineer <alice@example.net>
sub rsa2048 2017-12-06 [E]
Keygrip = BBBB999988887777666655554444333322221111
sub rsa2048 2017-12-06 [S]
Keygrip = CCCC999988887777666655554444333322221111

Trouvez l’entrée keygrip qui se trouve sous la ligne pub (juste sous l’empreinte de la clé maître). Ceci correspondra directement à un fichier dans le répertoire .gnupg de votre /home :

$ cd ~/.gnupg/private-keys-v1.d
$ ls
AAAA999988887777666655554444333322221111.key
BBBB999988887777666655554444333322221111.key
CCCC999988887777666655554444333322221111.key

Tout ce que vous avez à faire, c’est simplement de supprimer le fichier .key qui correspond au keygrip maître :

$ cd ~/.gnupg/private-keys-v1.d

$ rm AAAA999988887777666655554444333322221111.key

Maintenant, si vous lancez la commande —list-sercret-keys, elle renverra que la clé maître est manquante (le # indique qu’elle n’est pas disponible) :

$ gpg --list-secret-keys

sec# rsa4096 2017-12-06 [C] [expires: 2019-12-06]
111122223333444455556666AAAABBBBCCCCDDDD
uid [ultimate] Alice Engineer <alice@example.org>
uid [ultimate] Alice Engineer <alice@example.net>
ssb rsa2048 2017-12-06 [E]
ssb rsa2048 2017-12-06 [S]

Supprimez le certificat de révocation

Un autre fichier que vous devez supprimer (mais garder en sauvegarde) est le certificat de révocation qui a été créé automatiquement avec votre clé maître. Un certificat de révocation permet à quelqu’un de marquer votre clé comme révoquée de façon permanente, entraînant l’impossibilité de l’utiliser ou de lui faire confiance pour quoi que ce soit. Vous l’utiliseriez normalement pour révoquer une clé que, pour une raison ou une autre, vous ne contrôleriez plus – par exemple dont vous auriez perdu la phrase secrète.

Tout comme pour la clé maître, si un certificat de révocation fuite en des mains mal intentionnées, il peut être utilisé pour détruire votre identité numérique de développeur, et il vaut donc mieux la supprimer de votre répertoire /home.

cd ~/.gnupg/openpgp-revocs.d
rm [fpr].rev

La prochaine fois, vous pourrez aussi apprendre à sécuriser vos sous-clés. Restez à l’écoute.