Sicherheitsarchitektur
Rust/Tauri-Stack, .rkvey-v5-Format, Kompartimente, verzögerte Entschlüsselung und Bedrohungsmodell.
Die Sicherheit von QubKey basiert auf einer Schichtenarchitektur und dem Prinzip der Defense in Depth: Dateisystem, .rkvey-v5-Format, Kryptografie und der Rust-Anwendungskern schützen Ihre Geheimnisse in jedem Schritt — von der Speicherung bis zur Entsperrung.
Jede Schicht bietet eine ergänzende Garantie. Fehlt ein Systemschutz (z. B. keine Festplattenverschlüsselung), schützen Anwendungs- und Kryptoschichten weiterhin Ihren Tresor. Mit Format v5 werden Geheimnisse eines Eintrags nur entschlüsselt, wenn Sie sie anzeigen oder kopieren — nicht beim Öffnen des Tresors und nicht in der Liste.
Schnittstelle (React + Tauri)
- Gewölbe
- Ordner
- Suchen
- Generator
- Einmalige Codes
- Armaturenbrett
- Synchronisieren
- Teilen
- Browser-Erweiterung
Rostkern (QubKey Core)
- .rkvey v5-Format
- Argon2id-Ableitung
- Authentifizierte Verschlüsselung
- Suchindex
- Sichere Commits
- Speicherlöschung
- Crash-Recovery
.rkvey v5-Datei im Dateisystem
- Präambel
- Verschlüsselter Header
- Verschlüsselter Index
- Geheimfächer
- Anhänge
- Commit-Verlauf
Sicherheitsschichten
Entsperrfluss
Die Entsperrung folgt einer strengen Pipeline: Das Master-Passwort gelangt in den Rust-Kern, Argon2id leitet den Masterschlüssel ab, Unterschlüssel entschlüsseln Header und B-Tree-Index. Eintrags-Kompartimente (Geheimnisse, Anhänge) bleiben verschlüsselt und werden nur bei Bedarf gelesen. Beim Sperren werden alle Schlüssel und Geheimnisse aus dem Speicher gelöscht.
Master-Passwort + Salt
.rkvey Präambel (Klartext)
- Eingetragen im Rust-Kern (Tauri IPC) – niemals der WebView ausgesetzt
- Zufälliges Salt in der Präambel gespeichert (16 Bytes)
Argon2id
- 64 MB RAM · 3 Iter · p=4 (Standard `KdfParams`)
- GPU-/ASIC-Widerstand
- Je nach Plattform ca. 250–500 ms kalibriert
Hauptschlüssel
256 Bit · `KeyManager::derive_master_key`
Unterschlüsselableitung
HKDF-SHA256(master, salt=file∥entry, info=kind)
header_key
Sicherer Header
index_key
B-Tree-Index
Fachschlüssel
Fächer
AEAD-Entschlüsselung
- AES-256-GCM oder XChaCha20-Poly1305
- Kopfzeile · Index · Fächer (auf Anfrage)
Speicher nach dem Entsperren
- Liste/Ansicht: nur Metadaten
- Geheimnisse und Anhänge werden nur auf Anfrage entschlüsselt
Sperren
- `KeyManager::clear_keys()` + Nullsetzen
- Geheimnisse gelöscht und Zwischenablage geleert
Bedrohungsmodell
QubKey ist für die häufigsten Bedrohungsszenarien eines lokalen Managers ausgelegt. Die Tabelle beschreibt Angriffsvektor und integrierte Gegenmaßnahme (.rkvey-v5-Format).
| Bedrohung | Vektor | QubKey-Antwort |
|---|---|---|
| Unbefugter Dateizugriff | Diebstahl oder Kopie von .rkvey | AEAD-Verschlüsselung + Argon2id-Ableitung |
| Netzwerk-Exfiltration | Cloud-Abfangen / MITM | Local-first: QubKey lädt Ihre Geheimnisse nicht hoch |
| Datenkorruption | Absturz während des Schreibens | Validierte Append-only-Commits + Wiederherstellung beim Start |
| Tresor-Manipulation | Manuelle Dateiänderung | AEAD-Authentifizierung pro Kompartiment + Prüfsummen |
| Speicherabbild (Navigation) | Tresor offen, Liste / Ansicht | Geheimnisse bleiben verschlüsselt, bis Sie sie anzeigen |
| Schwaches Master-Passwort | Offline-Versuche | Kalibriertes Argon2id (~500 ms) + Entropiemesser |
| Passwort-Wiederverwendung | Leaks auf anderen Sites | Sicherheits-Dashboard (lokale Erkennung) |
| Zwischenablage-Leaks | Kopieren eines Geheimnisses | Zwischenablage-Timeout (30 s) + Löschen beim Sperren |
| Side-Channel-Angriff | Timing bei Krypto-Ops | Konstantzeit-Implementierungen (RustCrypto) |
Best Practices
Dieses Modell deckt Bedrohungen ab, die QubKey direkt über seine Architektur adressiert. Für optimalen Schutz kombinieren Sie QubKey mit System-Best-Practices: Festplattenverschlüsselung aktiv, aktuelles OS und starkes Master-Passwort.
Integrierter Schutz
| Bereich | So schützt QubKey Ihre Daten |
|---|---|
| Daten im Ruhezustand | AEAD (AES-256-GCM / XChaCha20), Argon2id-Schlüssel, eigene Schlüssel pro Kompartiment |
| Tresorintegrität | Validierte Append-only-Commits, Prüfsummen und atomare Schreibvorgänge |
| Vertraulichkeit | Zero-Knowledge: Ihre Geheimnisse bleiben auf Ihrem Gerät verschlüsselt |
| Verzögerte Entschlüsselung | Liste und Ansicht ohne Geheimnisse; Anzeigen / Kopieren nur bei Bedarf |
| Schlüsselableitung | Kalibriertes Argon2id (~500 ms, 64 MB) zum Schutz des Master-Passworts |
| Anwendung | Isolierter Rust-Kern, UI über Tauri-IPC, Zeroization beim Sperren |
| Browsererweiterung | Lokales Native Messaging — die Erweiterung erhält nie das Master-Passwort |
| Sync | Optionale verschlüsselte Multi-Geräte-Sync (Cloud oder Self-Host) oder verschlüsselte .rkvey-Datei (Cloud, USB, NAS) |
Vertrauensarchitektur
Zero-knowledge
QubKey organisiert Vertrauen auf mehreren ergänzenden Ebenen:
-
Sie kontrollieren den Zugriff — Master-Passwort und ggf. Wiederherstellungsschlüssel steuern den Tresorzugriff. QubKey kann sie nicht lesen oder zurücksetzen.
-
Systemintegration — QubKey nutzt Ihre OS-Sicherheit: Dateiberechtigungen, Festplattenverschlüsselung (FileVault, BitLocker, LUKS), sicherer Speicher (Keychain, Credential Manager) und Prozessisolation.
-
Rust- / UI-Trennung — Die gesamte Kryptografie läuft im Rust-Kern mit Speichersicherheit zur Compile-Zeit. Die React-UI kommuniziert über Tauri-IPC; das WebView hat keinen direkten Zugriff auf das Master-Passwort.
-
Vorsichtiger Speicherumgang (v5) — Beim Entsperren werden nur Header und Index entschlüsselt. Geheimnisse und Anhänge bleiben verschlüsselt bis zu einer expliziten Aktion (anzeigen, kopieren, herunterladen). Beim Sperren: Zeroization und leere Zwischenablage.
-
Browsererweiterung — Lokales Native Messaging; die Erweiterung erhält nie das Master-Passwort.
Schutzfunktionen
Automatische Sperre
Tresor wird nach konfigurierbarer Inaktivität gesperrt (Standard: 5 Min.). Löst Zeroization und Zwischenablage-Löschung aus.
Verzögerte Entschlüsselung
Geheimnisse eines Eintrags werden nur entschlüsselt, wenn Sie sie anzeigen oder kopieren. Liste und Ansicht zeigen keine geschützten Felder.
Zeroization
Geheimnisse werden beim Sperren aus dem RAM gelöscht (Rust-zeroize-Crate); Caches geleert, nur ephemere Entschlüsselung bei Bedarf.
Zwischenablage-Timeout
Zwischenablage wird nach 30 Sekunden automatisch geleert. Konfigurierbar in den Tresoreinstellungen.