drduh/YubiKey-Guide : un guide pratique pour GnuPG et SSH avec un YubiKey
drduh/YubiKey-Guide offre une implémentation open source exploitable en conditions réelles avec une structure réutilisable.
En bref
- De quoi s’agit-il ?
- Stocker les identifiants GnuPG et SSH sur un YubiKey, avec une clé de certification hors ligne et des sauvegardes chiffrées.
- À qui s’adresse-t-il ?
- Le guide couvre l'ensemble du cycle de vie, de la génération des clés à l'utilisation quotidienne, y compris la rotation et la réinitialisation. Il est fourni sous licence MIT, qui autorise une large réutilisation mais n'offre aucune garantie, et le dépôt n'est pas archivé.
- Puis-je l’utiliser commercialement ?
- Oui. MIT est une licence permissive : vous pouvez utiliser, modifier et vendre un logiciel qui en dépend, à condition de conserver les mentions de droit d’auteur et de licence.
- Est-il encore maintenu ?
- Oui. Les derniers commits datent d’il y a 7 jours.
- En quel langage est-il écrit ?
- Principalement HTML, d’après les statistiques de langage de GitHub.
Ces réponses reposent sur les données GitHub du projet (dernière synchronisation le 14 septembre 2026) et sur notre analyse. Elles ne constituent pas un avis juridique.
ANALYSE OPEN SOURCE APPROFONDIE
Le principe central : clés non exportables et clé de certification hors ligne
L'idée centrale du guide est qu'un YubiKey peut contenir des clés privées GnuPG qui ne peuvent pas être copiées hors du périphérique. Pour cela, le README demande de créer une clé de certification séparée, de la garder hors ligne et de ne l'utiliser que pour émettre ou renouveler trois sous-clés destinées à la signature, au chiffrement et à l'authentification SSH. Le YubiKey peut être configuré pour exiger un contact physique à chaque opération, ce qui, selon le guide, réduit le risque d'accès non autorisé. Le dépôt est un guide communautaire ; son langage principal est indiqué comme HTML, et les métadonnées montrent plus de 12 000 étoiles et plus de 1 200 forks. Le README lui-même ne contient aucune statistique d'utilisation. La licence est MIT et la mention de copyright indique drduh comme auteur.
Choisir et préparer l'environnement
Le README consacre une section entière à l'environnement utilisé pour générer les clés. Il classe les options d'un ordinateur partagé à un système air-gapped, et recommande Debian Live démarré depuis une clé USB comme base pratique pour la plupart des gens. Il inclut des commandes pour télécharger l'image Debian Live, vérifier sa somme de contrôle et sa signature, et l'écrire sur une clé USB. Le guide fournit aussi des commandes d'installation de paquets pour Debian, OpenBSD, macOS, NixOS, Arch, RHEL7 et Fedora. Un avertissement précise que les commandes dd écrasent tout le périphérique sélectionné. Il recommande de désactiver le réseau pendant la génération des clés et d'utiliser un répertoire GnuPG temporaire qui est effacé au redémarrage ou supprimé manuellement.
Génération des clés, phrase secrète et sauvegardes hors ligne
La procédure commence par un répertoire GnuPG temporaire et un gpg.conf recommandé qui sélectionne AES256 et SHA512, désactive les commentaires et les en-têtes de version, et définit no-symkey-cache. Vous générez une clé de certification sans expiration, puis ajoutez des sous-clés de signature, de chiffrement et d'authentification avec une expiration de votre choix. Le guide recommande une phrase secrète composée uniquement de lettres majuscules et de chiffres, car elle est plus facile à écrire à la main, et fournit un modèle imprimable. Il explique ensuite comment exporter les clés secrètes vers un stockage chiffré : LUKS sous Linux ou bioctl sous OpenBSD. Le README recommande de faire au moins deux sauvegardes sur des périphériques de stockage portables distincts et mentionne Paperkey pour une copie physique.
Configurer le YubiKey et transférer les sous-clés
Une fois les clés créées, le README passe au YubiKey lui-même. Il explique que l'application OpenPGP a par défaut un code PIN utilisateur 123456 et un code PIN administrateur 12345678, et montre comment les modifier. Il avertit que trois tentatives de code PIN utilisateur incorrectes bloquent le code PIN, tandis que trois tentatives incorrectes de code PIN administrateur ou de code de réinitialisation détruisent les données de la carte. Le guide définit un attribut de connexion aléatoire et non identifiant, car les métadonnées de la carte sont lisibles sans authentification. Il transfère ensuite chaque sous-clé avec gpg --edit-key, et la vérification avec gpg -K affiche ssb> pour indiquer que la clé privée est maintenant sur la carte. Après le transfert, le système ne conserve plus de copie privée utilisable de la sous-clé.
Utiliser le YubiKey pour le chiffrement, la signature et SSH
La partie usage quotidien couvre l'importation de la clé publique, la définition de la confiance ultime et les commandes pour chiffrer, déchiffrer et signer des messages. Pour SSH, le guide configure gpg-agent comme agent SSH, exporte la clé publique SSH et explique comment limiter la clé offerte avec IdentitiesOnly et IdentityFile. Il inclut des notes spécifiques pour macOS, Windows et WSL, y compris des fichiers launchd plist et le support PuTTY. Il y a aussi une section sur l'exigence d'un contact physique pour les opérations de signature, de chiffrement ou d'authentification, en utilisant ykman openpgp keys set-touch. Le README note que le YubiKey clignote lorsqu'il attend un contact.
Maintenance des clés, réinitialisation et lectures complémentaires
Le README se termine par des instructions pour renouveler ou faire pivoter les sous-clés, réinitialiser le YubiKey et des étapes de durcissement optionnelles telles que l'amélioration de l'entropie, l'activation de KDF et des considérations réseau. Il liste également des notes de dépannage et des solutions alternatives. L'extrait de licence accorde la permission d'utiliser, copier, modifier, fusionner, publier, distribuer, sous-licencier et vendre des copies du logiciel, et déclare que le logiciel est fourni sans garantie. La licence ne fait aucune déclaration sur la posture de sécurité ou le support du guide ; ces sujets sont hors de son champ.
Conclusion éditoriale
Le guide couvre l'ensemble du cycle de vie, de la génération des clés à l'utilisation quotidienne, y compris la rotation et la réinitialisation. Il est fourni sous licence MIT, qui autorise une large réutilisation mais n'offre aucune garantie, et le dépôt n'est pas archivé.
Notes de la communauté