
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.
Version 0.8.0 behält die gesamte bisherige Sicherheitshärtung aus v0.7.3 bei und führt eine modulare Architektur für eine bessere Code-Isolation ein:
| Dokument | Beschreibung |
|---|---|
| Benutzerhandbuch | Vollständiger Benutzerleitfaden |
| Sicherheitsmodell | Detaillierte Bedrohungsanalyse und kryptografisches Design |
| CLI-UX-Spezifikation | UX-Vertrag und -Verhalten |
| Kryptografie | Details zur Sicherheitsimplementierung |
pytest tests/ # Run all tests
pytest --cov=src/desktop_2fa # Run with coverage
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
Apache License 2.0. Siehe Datei LICENSE.
Łukasz Perek
desktop‑2fa wird durch das Kilo OSS Sponsorship Program unterstützt.
Bei Fragen oder für Unterstützung kontaktieren Sie uns unter [email protected]
Desktop‑2FA ist ein unabhängiges Open‑Source‑Tool, das mit Fokus auf Autonomie, Transparenz und Offline-Sicherheit entwickelt wurde. Wenn Sie es nützlich finden und die weitere Entwicklung unterstützen möchten, können Sie das über die folgenden Plattformen tun: