Essai 10 / Numérique

Garder le secret hors de la machine

Une clé de certification OpenPGP qui ne siège jamais sur le portable quotidien est un objet différent d’une phrase secrète dans un gestionnaire.

Cette édition traduite est en attente d’une révision éditoriale par une personne de langue maternelle.

Un circuit imprimé basse tension déconnecté, des sondes de multimètre et un porte-piles vide disposés pour établir un diagnostic.
Une panne plus petite est une question plus simple. Une scène illustrative originale.

GnuPG reste l’outil que je prends quand la question est : certifier, signer, chiffrer, authentifier sans donner le matériel privé à un vendeur. L’accueil est ingrat. C’est une raison de traiter le secret primaire comme un objet rare, hors-ligne, et de faire le quotidien avec des sous-clés.

C’est le chemin expert. Un défaut moderne plus petit : age pour les fichiers, SSH pour le login. OpenPGP gagne sa barbe quand il faut une toile de certification, du mail, des signatures git, et une clé que l’on peut mettre dans un tiroir.

Notions de base · Ce que fait une clé ici

La clé publique se publie. La privée reste sous contrôle. Certification, signature, chiffrement, authentification (SSH via gpg-agent) peuvent être répartis sur des sous-clés pour que le secret le plus dangereux — celui qui peut en émettre d’autres — ne vive pas dans le sac du train.

Une primaire certification seule, puis trois métiers

L’arrangement que j’utilise, documenté dans GnuPG Keys Management : primaire certify seulement ; sous-clés sign, encrypt, authenticate ; secret primaire sur média amovible chiffré puis supprimé du quotidien ; sous-clés éventuellement sur carte. Les défauts actuels de GnuPG préfèrent l’ECC. Raisonnable. J’utilise encore une grande RSA de certification quand je veux une primaire conservative. Pas de phrase secrète dans un modèle batch. L’empreinte complète, jamais un ID court.

gpg --list-secret-keys --fingerprint --with-keygrip

Exporter, prouver, puis supprimer

Une commande d’export n’est pas une sauvegarde. Restaurez dans un GNUPGHOME jetable en RAM avant de supprimer. Vous voulez sec (pas sec#) et de vrais ssb. gpg --list-packets montre gnu-dummy ou gnu-divert-to-card si vous avez exporté un stub.

umask 077
TEST_GNUPGHOME="$(mktemp -d /dev/shm/gnupg-test.XXXXXX)"
gpg --homedir "$TEST_GNUPGHOME" --import ./primary.private-key.sec
gpg --homedir "$TEST_GNUPGHOME" --list-secret-keys --fingerprint

Le ! cité sélectionne la primaire seulement. Ensuite le quotidien montre sec#. Sur YubiKey, attendez ssb>.

Utiliser la primaire hors-ligne

Certifier veut dire monter le volume et, de préférence, un GNUPGHOME propre. Puis démonter. Le portable qui signe git ne doit pas pouvoir forger une nouvelle identité.

Intermédiaire · Si vous n’êtes pas prêt pour une primaire hors-ligne

Alors ne faites pas semblant. Ed25519/Cv25519 avec expiration, certificat de révocation quelque part, sauvegarde de ~/.gnupg restaurée. age est plus propre pour chiffrer des fichiers sans toile OpenPGP. Vous pourrez passer à une clé de certification hors-ligne plus tard. Vous ne pouvez pas « dé-fuiter » une primaire qui a vécu trois ans dans un sac.

Ce que ce n’est pas

Pas un tutoriel pour chiffrer une blague. Pas un argument pour que tout le monde fasse du RSA-8192. C’est la forme d’une clé dont la partie dangereuse tient dans un tiroir, dont les parties quotidiennes se remplacent, et dont la reprise a été vue dans /dev/shm avant le besoin.

gpg --delete-secret-keys "${FINGERPRINT}!"
gpg --list-secret-keys "$FINGERPRINT"
gpgconf --list-dirs homedir
Essai suivant Retour au début ↑