Zum Hauptinhalt springen

Lokaler Browserspeicher

Passwork ermöglicht das Speichern des Masterschlüssels im Browser, um die Eingabe des Masterpassworts bei jeder Anmeldung zu vermeiden. Zum Schutz wird der Local Storage Secret Code verwendet — ein vom Server generiertes Token.

Wichtig

Der gespeicherte Masterschlüssel ist durch ein Token geschützt, das nur nach erfolgreicher Basisauthentifizierung ausgestellt wird. Ohne Kontozugang ist es unmöglich, Daten aus dem localStorage zu entschlüsseln.


Local Storage Secret Code

Was es ist

Der Local Storage Secret Code ist ein zufälliges Token, das:

  • Vom Server bei der Erstellung eines Benutzers generiert wird
  • Dem Client nach erfolgreicher Authentifizierung ausgestellt wird
  • Zur Verschlüsselung des Masterschlüssels im localStorage verwendet wird

Eigenschaften

ParameterWebanwendungBrowsererweiterung
Länge100 Zeichen60 Zeichen
AlphabetA-Z, a-z, 0-9A-Z, a-z, 0-9
Entropie~596 Bit~357 Bit
GenerierungAuf dem ServerAuf dem Server
Token-SpeicherungAuf dem ServerAuf dem Server

Lebenszyklus

  1. Erstellung — bei der Benutzerregistrierung generiert der Server den Secret Code
  2. Ausstellung — bei jeder erfolgreichen Authentifizierung sendet der Server den Secret Code an den Client
  3. Verwendung — Client verschlüsselt den Masterschlüssel und speichert ihn im localStorage
  4. Rotation — Der Secret Code kann vom Administrator regeneriert werden

Prozess der Masterschlüssel-Speicherung

Speicherungssequenz:

  1. Benutzer aktiviert die Option „Masterpasswort merken"
  2. Benutzer gibt das Masterpasswort ein
  3. Client berechnet den Masterschlüssel (PBKDF2, 300.000 Iterationen, SHA-256)
  4. Client sendet den Masterschlüssel-Hash zur Überprüfung an den Server
  5. Server bestätigt die Korrektheit und gibt den Local Storage Secret Code zurück
  6. Client verschlüsselt den Masterschlüssel mit dem Secret Code (AES-256-CBC)
  7. Verschlüsselter Masterschlüssel wird im localStorage gespeichert
  8. Der Secret Code wird nicht im localStorage gespeichert

Verschlüsselungsalgorithmus

ParameterWert
AlgorithmusAES-256-CBC
PaddingPKCS#7
SchlüsselLocal Storage Secret Code (100 Zeichen → 256 Bit)
IVAutomatisch generiert (128 Bit)

Was im localStorage gespeichert wird

DatenFormatSchutz
Verschlüsselter MasterschlüsselBase64-ZeichenfolgeAES-256-CBC
Benutzer-IDZeichenfolge
AnwendungseinstellungenJSON
Was NICHT gespeichert wird
  • Masterpasswort (niemals)
  • Local Storage Secret Code (wird bei jeder Authentifizierung ausgestellt)
  • Unverschlüsselter Masterschlüssel
  • Privater RSA-Schlüssel

Prozess der Masterschlüssel-Wiederherstellung

Automatische Anmeldesequenz:

  1. Benutzer öffnet die Anwendung
  2. Client prüft, ob ein verschlüsselter Masterschlüssel im localStorage vorhanden ist
  3. Falls Schlüssel vorhanden — Client merkt ihn sich für die spätere Entschlüsselung
  4. Benutzer schließt die Basisauthentifizierung ab (Login/Passwort)
  5. Server überprüft die Anmeldedaten
  6. Server gibt Zugriffstoken und Local Storage Secret Code zurück
  7. Client entschlüsselt den Masterschlüssel mit dem Secret Code (AES-256-CBC)
  8. Masterschlüssel ist wiederhergestellt — Eingabe des Masterpassworts ist nicht erforderlich

Bedingungen für automatische Anmeldung

Die automatische Wiederherstellung des Masterschlüssels ist möglich, wenn:

BedingungBeschreibung
SchlüsselvorhandenseinlocalStorage enthält verschlüsselten Masterschlüssel
AuthentifizierungBenutzer hat die Basisauthentifizierung abgeschlossen
Gültiger Secret CodeServer hat korrekten Secret Code zurückgegeben
Erfolgreiche EntschlüsselungDaten sind nicht beschädigt

Sicherheitsmodell

Bedrohungsschutz

BedrohungSchutz
localStorage-DiebstahlDaten sind verschlüsselt, Verschlüsselungsschlüssel ist auf dem Server
XSS-AngriffSecret Code wird nicht auf dem Client gespeichert
SitzungsdiebstahlBasisauthentifizierung erforderlich
Physischer GerätezugriffKontopasswort erforderlich

Grundprinzip

Ohne erfolgreiche Serverauthentifizierung ist die Entschlüsselung des Masterschlüssels unmöglich.

Selbst wenn ein Angreifer:

  • Zugang zum localStorage erhält
  • Den verschlüsselten Masterschlüssel extrahiert
  • Zugang zum Dateisystem des Geräts erhält

Er kann die Daten nicht entschlüsseln ohne:

  • Kontopasswort (oder SSO/LDAP-Zugang)
  • Erfolgreiche Serverauthentifizierung
  • Erhalt des Secret Codes vom Server

Einschränkungen

SzenarioRisiko
Gemeinsam genutztes GerätEin anderer Benutzer kann nach seiner Authentifizierung Zugang erhalten
Browser-SynchronisierungVerschlüsselter Schlüssel wird zwischen Geräten synchronisiert
ServerkompromittierungAngreifer könnte Secret Code erhalten

Verwaltung gespeicherter Daten

Funktion deaktivieren

Der Benutzer kann:

  1. „Masterpasswort merken" in den Einstellungen deaktivieren
  2. Daten werden aus dem localStorage gelöscht

Erzwungener Reset

Der Administrator kann:

  1. Den Secret Code des Benutzers regenerieren
  2. Alle gespeicherten Masterschlüssel werden ungültig
  3. Der Benutzer muss das Masterpasswort erneut eingeben

Abmeldung

Bei der Abmeldung:

  • Sitzungstoken werden gelöscht
  • Verschlüsselter Masterschlüssel kann im localStorage verbleiben (für die nächste Anmeldung)
  • Der Benutzer kann optional „Abmelden und vergessen" wählen

Sicherheitsempfehlungen

Wann „Merken" verwenden

Empfohlen:

  • Auf persönlichem Gerät mit Passwort/Biometrie
  • Für die tägliche Nutzung von Passwork
  • Wenn Komfort wichtig ist und das Gerät geschützt ist

Nicht empfohlen:

  • Auf gemeinsam genutzten/öffentlichen Geräten
  • Bei strengen Sicherheitsanforderungen
  • Wenn das Gerät verloren gehen oder gestohlen werden könnte

Organisationsrichtlinien

Der Administrator kann:

  • Die „Merken"-Funktion auf Richtlinienebene deaktivieren
  • Die Gültigkeitsdauer des gespeicherten Schlüssels begrenzen
  • Eine regelmäßige erneute Eingabe des Masterpassworts erfordern

Speicherschutz

In-Memory-Verschleierung

Neben der localStorage-Verschlüsselung verwendet Passwork einen Mechanismus zum Schutz von Passwörtern im Browserspeicher:

MethodeBeschreibung
AufteilenPasswort wird in zufällige Teile aufgeteilt
VerschleierungJeder Teil wird verschleiert (Zeichenverschiebung)
MischenTeile werden in zufälliger Reihenfolge gespeichert
WiederherstellungWiederherstellungsreihenfolge wird separat gespeichert
Einschränkung

Dies ist Verschleierung, kein kryptografischer Schutz. Es erschwert das einfache Lesen des Speichers (z. B. in Dumps), schützt aber nicht vor gezielten Angriffen mit einem Debugger.


Unterschiede bei der Browsererweiterung

Die Browsererweiterung weist Implementierungsunterschiede auf:

ParameterWebanwendungErweiterung
Secret-Code-Länge100 Zeichen (~596 Bit)60 Zeichen (~357 Bit)
SpeicherunglocalStoragechrome.storage.local
IsolationGemeinsame DomainIsolierte Erweiterung
XSS-SchutzAbhängig von CSPVollständige Isolation

Vorteile der Erweiterung

  • Isolierter Speicher — von Webseiten nicht zugänglich
  • Separater Ausführungskontext — Schutz vor bösartigen Skripten
  • XSS-Schutz — besuchte Websites können nicht auf Erweiterungsdaten zugreifen