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.
Gestionnaire de secrets
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 :
pcscd
sous Debian/Ubuntupcsc-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.