
Eine sichere Offline-Desktop-Anwendung zum Generieren und Verwalten von TOTP-2FA-Codes. Funktionen umfassen verschlüsselte Tresor-Speicherung, moderne Kryptografie (Argon2 + AES‑GCM), modulare Architektur und einen Local-First-Ansatz ohne Cloud-Abhängigkeiten. Entwickelt für Zuverlässigkeit, Erweiterbarkeit und eine zukünftige plattformübergreifende Benutzeroberfläche.
Ein sicherer, offline arbeitender Zwei-Faktor-Authentifizierungs-Manager (2FA) für Desktop-Umgebungen. Entwickelt mit Python, mit starker Verschlüsselung und ohne Cloud-Abhängigkeiten.
🌐 Landingpage: desktop-2fa.org
| Funktion | Beschreibung |
|---|---|
| 🔐 Tresor-Sicherheit | AES-256-GCM-Verschlüsselung mit Argon2id-Schlüsselableitung |
| ⏱️ TOTP-Generierung | RFC-6238-konforme Codegenerierung |
| 💻 Vollständige CLI | Vollständige Befehlszeilenschnittstelle zur Verwaltung von Tokens |
| 📋 Zwischenablage-Unterstützung | Automatisches Kopieren von TOTP-Codes in die Zwischenablage |
| 🔓 Zustandsloses Design | Jeder Befehl erfordert eine explizite Passwortauthentifizierung |
| 🛡️ Passwortrichtlinie | Konfigurierbare Durchsetzung der Passwortstärke mit zxcvbn |
| 🧪 Gut getestet | 289 erfolgreiche Tests mit umfassender Abdeckung |
| 📖 Sicherheitsmodell | Detaillierte Bedrohungsanalyse und Dokumentation des kryptografischen Designs |
Hinzufügen eines neuen TOTP-Eintrags interaktiv
Generieren eines TOTP-Codes für einen Eintrag
Umbenennen eines Eintrags mit Duplikaterkennung
Anzeigen der Versionsinformationen und Auflisten aller Einträge
pip install desktop-2fa
Installation überprüfen:
python -c "import desktop_2fa; print(desktop_2fa.__version__)"
# Output: 0.8.1dev
# Initialize a new vault
d2fa vault init
# Add a new TOTP token
d2fa vault add GitHub GitHub JBSWY3DPEHPK3PXP
# List all entries
d2fa vault list
# Generate a code
d2fa code GitHub
# Provide password via command line
d2fa vault add GitHub GitHub JBSWY3DPEHPK3PXP --password mypassphrase
# Provide password via file
d2fa vault add GitHub GitHub JBSWY3DPEHPK3PXP --password-file /path/to/passphrase.txt
Der Tresor ist eine verschlüsselte Speicherdatei unter ~/.desktop-2fa/vault.
Wenn ein Befehl einen Tresor benötigt und keiner vorhanden ist:
--password/--password-file (nicht-interaktiver Modus)Vault created at <path>Wenn ein Befehl einen Tresor benötigt und dieser vorhanden ist:
typer.Exit(1)Der Befehl rename erzwingt deterministisches Verhalten, wenn mehrere Einträge auf den Zielnamen passen:
Error: Multiple entries named '<name>' exist. Operation aborted. Resolve duplicates first.| Befehl | Beschreibung |
|---|---|
d2fa vault add <name> <issuer> <secret> | Einen neuen TOTP-Eintrag hinzufügen |
d2fa vault list | Alle gespeicherten TOTP-Einträge auflisten |
d2fa vault rename <old> <new> | Einen Eintrag umbenennen |
d2fa vault remove <name> | Einen Eintrag entfernen |
d2fa code <name> [--copy|--copy-only] | TOTP-Code mit Optionen zum Kopieren in die Zwischenablage generieren |
| Befehl | Beschreibung |
|---|---|
d2fa vault init [--force] | Einen neuen Tresor initialisieren |
d2fa vault unlock | Tresor mit Warnung bei schwachem Passwort öffnen (falls konfiguriert) |
d2fa vault change-password | Das Tresor-Passwort ändern |
d2fa vault backup | Ein verschlüsseltes Backup des Tresors erstellen |
d2fa vault export <path> | Tresor in eine Datei exportieren |
d2fa vault import <path> [--force] | Tresor aus einer Datei importieren |
| Option | Beschreibung |
|---|---|
--password <pwd> | Tresor-Passwort direkt angeben |
--password-file <path> | Tresor-Passwort aus einer Datei lesen |
--json | Ausgabe im JSON-Format |
--raw | Rohe Ausgabe (ohne Formatierung) |
--quiet | Nicht unbedingt notwendige Ausgaben unterdrücken |
--copy | TOTP-Code in die Zwischenablage kopieren und anzeigen |
--copy-only | TOTP-Code nur in die Zwischenablage kopieren |
--force | Operation erzwingen (Bestätigungen überspringen) |
Der Tresor verwendet:
Jeder Befehl erfordert eine explizite Passwortauthentifizierung. Kein sitzungsbasierter Zugriff.
Desktop-2FA verwendet zxcvbn, um die Passwortstärke beim Erstellen oder Ändern von Tresor-Passwörtern zu bewerten:
Beispiele:
password, 123456, qwerty, admin2024Battery-Horse-Staple-Correct, Mountain@River*2024, MySecureVault#42Konfiguration (~/.config/d2fa/config.toml):
[security]
# Require strong passwords (score >= 3)
reject_weak_passwords = false # warn but allow | true: reject weak passwords
Wenn reject_weak_passwords = false gilt:
Wenn reject_weak_passwords = true gilt:
Rückwärtskompatibilität:
Wenn in Ihrer Konfiguration min_password_entropy gesetzt ist (Legacy-Option), wird dies erkannt und wie die Anforderung eines zxcvbn-Scores >= 3 behandelt.