
Une application de bureau hors ligne sécurisée pour générer et gérer des codes TOTP 2FA. Elle dispose d'un stockage de coffre crypté, d'une cryptographie moderne (Argon2 + AES‑GCM), d'une architecture modulaire et d'une approche locale sans dépendances cloud. Conçue pour la fiabilité, l'extensibilité et une future interface utilisateur multiplateforme.
Un gestionnaire d'authentification à deux facteurs (2FA) sécurisé et hors ligne pour les environnements de bureau. Construit avec Python, offrant un chiffrement fort et aucune dépendance cloud.
🌐 Page d'accueil: desktop-2fa.org
| Fonctionnalité | Description |
|---|
| 🔐 Sécurité du coffre | Chiffrement AES-256-GCM avec dérivation de clé Argon2id |
| ⏱️ Génération TOTP | Génération de codes conforme à la norme RFC 6238 |
| 💻 CLI complète | Interface en ligne de commande complète pour la gestion des jetons |
| 📋 Presse‑papiers | Copie automatique des codes TOTP dans le presse‑papiers |
| 🔓 Conception sans état | Chaque commande nécessite une authentification explicite par mot de passe |
| 🛡️ Politique de mot de passe | Application configurable de la force du mot de passe avec zxcvbn |
| 🧪 Bien testé | 289 tests réussis avec une couverture complète |
| 📖 Modèle de sécurité | Analyse détaillée des menaces et documentation de la conception cryptographique |
Ajout d'une nouvelle entrée TOTP de manière interactive
Génération d'un code TOTP pour une entrée
Renommage d'une entrée avec détection des doublons
Affichage des informations de version et liste de toutes les entrées
pip install desktop-2fa
Vérifier l'installation :
python -c "import desktop_2fa; print(desktop_2fa.__version__)"
# Output: 0.8.1dev
# Initialiser un nouveau coffre
d2fa vault init
# Ajouter un nouveau jeton TOTP
d2fa vault add GitHub GitHub JBSWY3DPEHPK3PXP
# Lister toutes les entrées
d2fa vault list
# Générer un code
d2fa code GitHub
# Fournir le mot de passe via la ligne de commande
d2fa vault add GitHub GitHub JBSWY3DPEHPK3PXP --password mypassphrase
# Fournir le mot de passe via un fichier
d2fa vault add GitHub GitHub JBSWY3DPEHPK3PXP --password-file /path/to/passphrase.txt
Le coffre est un fichier de stockage chiffré situé à ~/.desktop-2fa/vault.
Lorsqu'une commande nécessite un coffre et qu'aucun n'existe :
--password/--password-file (mode non interactif)Vault created at <path>Lorsqu'une commande nécessite un coffre et qu'il existe :
typer.Exit(1)La commande rename applique un comportement déterministe lorsque plusieurs entrées correspondent au nom cible :
Error: Multiple entries named '<name>' exist. Operation aborted. Resolve duplicates first.| Commande | Description |
|---|---|
d2fa vault add <name> <issuer> <secret> | Ajouter une nouvelle entrée TOTP |
d2fa vault list | Lister toutes les entrées TOTP stockées |
d2fa vault rename <old> <new> | Renommer une entrée |
d2fa vault remove <name> | Supprimer une entrée |
d2fa code <name> [--copy|--copy-only] | Générer un code TOTP avec options de copie dans le presse‑papiers |
| Commande | Description |
|---|---|
d2fa vault init [--force] | Initialiser un nouveau coffre |
d2fa vault unlock | Ouvrir le coffre avec un avertissement de mot de passe faible (si configuré) |
d2fa vault change-password | Changer le mot de passe du coffre |
d2fa vault backup | Créer une sauvegarde chiffrée du coffre |
d2fa vault export <path> | Exporter le coffre vers un fichier |
d2fa vault import <path> [--force] | Importer un coffre depuis un fichier |
| Option | Description |
|---|---|
--password <pwd> | Fournir le mot de passe du coffre directement |
--password-file <path> | Lire le mot de passe du coffre depuis un fichier |
--json | Sortie au format JSON |
--raw | Sortie brute (sans mise en forme) |
--quiet | Supprimer les sorties non essentielles |
--copy | Copier le code TOTP dans le presse‑papiers et l'afficher |
--copy-only | Copier le code TOTP uniquement dans le presse‑papiers |
--force | Forcer l'opération (ignorer les confirmations) |
Le coffre utilise :
Chaque commande nécessite une authentification explicite par mot de passe. Aucun accès basé sur une session.
Desktop-2FA utilise zxcvbn pour évaluer la force du mot de passe lors de la création ou du changement du mot de passe du coffre :
Exemples :
password, 123456, qwerty, admin2024Battery-Horse-Staple-Correct, Mountain@River*2024, MySecureVault#42Configuration (~/.config/d2fa/config.toml) :
[security]
# Exiger des mots de passe forts (score >= 3)
reject_weak_passwords = false # avertir mais autoriser | true : rejeter les mots de passe faibles
Lorsque reject_weak_passwords = false :
Lorsque reject_weak_passwords = true :
Rétrocompatibilité :
Si vous avez min_password_entropy défini dans votre configuration (option héritée), elle est reconnue et traitée comme équivalente à l'exigence d'un score zxcvbn >= 3.
La version 0.8.0 maintient tout le renforcement de sécurité précédent de la v0.7.3 et introduit une architecture modulaire pour une meilleure isolation du code :
| Document | Description |
|---|---|
| Manuel d'utilisation | Guide d'utilisation complet |
| Modèle de sécurité | Analyse détaillée des menaces et conception cryptographique |
| Spécification UX de la CLI | Contrat UX et comportement |
| Cryptographie | Détails de l'implémentation de la sécurité |
pytest tests/ # Exécuter tous les tests
pytest --cov=src/desktop_2fa # Exécuter avec couverture
src/desktop_2fa/
├── app/ # Application components
├── cli/ # Command-line interface
├── crypto/ # Encryption utilities
├── totp/ # TOTP generation
├── ui/ # User interface components
├── vault/ # Vault management
└── utils/ # Utilities
Licence Apache 2.0. Voir le fichier LICENSE.
Łukasz Perek
desktop‑2fa est soutenu par le programme de parrainage Kilo OSS.
Pour toute question ou soutien, contactez‑nous à [email protected]
Desktop‑2FA est un outil open‑source indépendant construit avec un accent sur l'autonomie, la transparence et la sécurité hors ligne. Si vous le trouvez utile et souhaitez soutenir son développement continu, vous pouvez le faire via les plateformes ci‑dessous :