Sicherheit

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.

UI

Schnittstelle (React + Tauri)

  • Gewölbe
  • Ordner
  • Suchen
  • Generator
  • Einmalige Codes
  • Armaturenbrett
  • Synchronisieren
  • Teilen
  • Browser-Erweiterung
Core

Rostkern (QubKey Core)

  • .rkvey v5-Format
  • Argon2id-Ableitung
  • Authentifizierte Verschlüsselung
  • Suchindex
  • Sichere Commits
  • Speicherlöschung
  • Crash-Recovery
Storage

.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)
KDF

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).

BedrohungVektorQubKey-Antwort
Unbefugter DateizugriffDiebstahl oder Kopie von .rkveyAEAD-Verschlüsselung + Argon2id-Ableitung
Netzwerk-ExfiltrationCloud-Abfangen / MITMLocal-first: QubKey lädt Ihre Geheimnisse nicht hoch
DatenkorruptionAbsturz während des SchreibensValidierte Append-only-Commits + Wiederherstellung beim Start
Tresor-ManipulationManuelle DateiänderungAEAD-Authentifizierung pro Kompartiment + Prüfsummen
Speicherabbild (Navigation)Tresor offen, Liste / AnsichtGeheimnisse bleiben verschlüsselt, bis Sie sie anzeigen
Schwaches Master-PasswortOffline-VersucheKalibriertes Argon2id (~500 ms) + Entropiemesser
Passwort-WiederverwendungLeaks auf anderen SitesSicherheits-Dashboard (lokale Erkennung)
Zwischenablage-LeaksKopieren eines GeheimnissesZwischenablage-Timeout (30 s) + Löschen beim Sperren
Side-Channel-AngriffTiming bei Krypto-OpsKonstantzeit-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

BereichSo schützt QubKey Ihre Daten
Daten im RuhezustandAEAD (AES-256-GCM / XChaCha20), Argon2id-Schlüssel, eigene Schlüssel pro Kompartiment
TresorintegritätValidierte Append-only-Commits, Prüfsummen und atomare Schreibvorgänge
VertraulichkeitZero-Knowledge: Ihre Geheimnisse bleiben auf Ihrem Gerät verschlüsselt
Verzögerte EntschlüsselungListe und Ansicht ohne Geheimnisse; Anzeigen / Kopieren nur bei Bedarf
SchlüsselableitungKalibriertes Argon2id (~500 ms, 64 MB) zum Schutz des Master-Passworts
AnwendungIsolierter Rust-Kern, UI über Tauri-IPC, Zeroization beim Sperren
BrowsererweiterungLokales Native Messaging — die Erweiterung erhält nie das Master-Passwort
SyncOptionale 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:

  1. Sie kontrollieren den Zugriff — Master-Passwort und ggf. Wiederherstellungsschlüssel steuern den Tresorzugriff. QubKey kann sie nicht lesen oder zurücksetzen.

  2. Systemintegration — QubKey nutzt Ihre OS-Sicherheit: Dateiberechtigungen, Festplattenverschlüsselung (FileVault, BitLocker, LUKS), sicherer Speicher (Keychain, Credential Manager) und Prozessisolation.

  3. 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.

  4. 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.

  5. 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.