blog:adieu_gnupg_age

Adieu GnuPG ! chiffrer des secrets sans GnuPG

Depuis… 2014 déjà, j'utilisais des clefs YubiKey, exclusivement pour OpenPGP. Avec GnuPG, j'avais donc de quoi signer et chiffrer des fichiers (j'utilisais le merveilleux https://www.passwordstore.org/ aka pass) et de quoi m'authentifier par SSH. Et tout cela, de manière transparente, que ce soit sur macOS, Debian, NetBSD, OpenBSD ou RHEL. Qui plus est, dans les trois cas (authentification, (dé)chiffrement, signature), j'avais deux facteurs avec chiffrement fort.

Mon employeur a acquis des clefs certifiées ANSSI (Yubico lance la série YubiKey 5 CSPN, la première gamme d’authentificateurs multi-protocoles FIDO2/WebAuthn/PIV/OTP certifiés CSPN (certification ANSSI)). Ces clefs n'offrent pas OpenPGP, uniquement PKCS#11 (PIV) et FIDO ; les YubiKey NEO, 4 et 5 fournissent aussi PKCS#11 et FIDO.

Avec les trois logiciels suivants, je retrouve mon cher pass : passage utilise rage, ce dernier sait utiliser une clef sur une YubiKey avec age-plugin-yubikey. Rage est une implémentation en Rust d'age, outil particulièrement simple de chiffrement de fichiers dont la spécification se lit ici : https://age-encryption.org/v1.

Les clefs utilisées nativement par age sont des EC (Ed25519), le chiffrement est assuré par Chacha20-Poly1305 ; chaque fichier est chiffré par sa propre clef symétrique, aléatoire, chiffrée par la clef EC. Comme PKCS#11 n'offre pas Ed25519, le plugin age-plugin-yubikey crée des clefs P-256.

Avant de changer de gestionnaire de mot de passe, il faut accéder à la clef et la configurer. Pour cela, installer OpenSC et son provider PKCS#11 que l'on retrouve dans les gestionnaires de paquets sous différents noms :

  1. pcscd sous Debian/Ubuntu
  2. pcsc-lite sous NetBSD, OpenBSD et RHEL

NB : sur macOS, CryptoTokenKit utilise OpenSC dans une version modifiée qui ne supporte pas les courbes elliptiques, installer la version sur Github.

age supporte de chiffrer un même secret avec plusieurs clefs. Ainsi, on dispose d'une solution de redondance avec plusieurs jetons ou (pas exclusif) de partage de secrets à plusieurs, chacun sa (ou ses…) clefs de chiffrement, indispensable pour travailler en équipe !

Avant de générer une clef, installer YubiKey manager pour changer PIN, PUK et clef de gestion de l'applet PIV. age-plugin-yubikey ne supporte encore que TDES comme algorithme de clef de gestion, ce qui n'est pas dérangeant étant donné le tout petit volume de données au regard de ce dont sweet32 a besoin.

  • blog/adieu_gnupg_age.txt
  • Dernière modification : 2023/05/09 16:46
  • de pc