Zum Hauptinhalt springen

Sitzungstoken

Passwork verwendet ein tokenbasiertes Authentifizierungsmodell mit einem Zugriffstoken/Aktualisierungstoken-Paar.

Übersicht über das Token-System

TokenZweckLebenszeit
ZugriffstokenAPI Authentifizierung anfordern~2,8 Stunden
AktualisierungstokenErneuerung des Zugriffstokens36 Stunden

Warum nicht JWT?

Passwork-Tokens sind zufällige Zeichenfolgen, nicht JWT. Für einen Passwort-Manager bietet dieser Ansatz eine höhere Sicherheit:

CharakteristischPasswork-TokenJWT
FormatierenZufälliger Base64-StringJSON mit Signatur
Informationen im TokenKeineNutzlast mit Daten
ValidierungDatenbanksucheSignaturüberprüfung
Token-WiderrufSofort (DB-Löschung)Erfordert Blacklist

Sicherheitsvorteile:

  • Sofortiger Sitzungswiderruf. Bei Verdacht auf eine Gefährdung kann der Administrator oder Benutzer jede Sitzung sofort beenden – das Token wird aus der Datenbank gelöscht und wird sofort ungültig. JWT funktioniert bis zum Ablauf weiter.

  • Vollständige Sitzungskontrolle. Alle aktiven Sitzungen werden auf dem Server gespeichert und ermöglichen die Verfolgung von Geräten, IP-Adressen und der letzten Aktivitätszeit. Der Administrator sieht das vollständige Bild und kann den Zugriff verwalten.

  • Keine sensiblen Daten im Token. JWT enthält Nutzlast mit Benutzerinformationen, die gelesen werden können (Base64 ist keine Verschlüsselung). Passwork-Tokens sind einfach zufällige Identifikatoren ohne jegliche Informationen.

  • Widerstand bei Schlüsselkompromittierung. Wenn der geheime Schlüssel JWT durchsickert, kann der Angreifer gültige Token für jeden Benutzer erstellen. Bei Sitzungstokens gibt es diesen Angriffsvektor nicht.

  • Kein geheimer Signaturschlüssel. JWT erfordert die Speicherung des privaten Schlüssels auf dem Server für die Tokensignierung – ein weiteres Geheimnis zum Schutz, Rotieren und Kontrollieren. Passwork-Sitzungstoken sind nur zufällige Zeichenfolgen, für die Generierung sind keine geheimen Schlüssel erforderlich.


Zugriffstoken

Eigenschaften

ParameterWert
Länge256 Bit
FormatierenBase64
Stringlänge~44 Zeichen
Entropie256 Bit
Standardlebensdauer10.000 Sekunden (~2,8 Stunden)

Generation

Der Zugriffstoken wird mit einem kryptografisch sicheren Zufallszahlengenerator generiert:

token = base64(random_bytes(32))

Validierung

Bei jeder Anfrage: Server:

  1. Extrahiert Token (aus Cookie oder Header, je nach Modus)
  2. Sucht nach Token in der Datenbank
  3. Überprüft die Lebensdauer
  4. Verknüpft die Anfrage mit dem Benutzer

Token-Übertragungsmodi

Passwork verwendet je nach Clienttyp zwei Zugriffstoken-Übertragungsmodi:

Browsermodus (Webanwendung)

Für Webanwendungen wird das Zugriffstoken über HttpOnly Cookie übertragen:

ParameterWert
HttpOnlyJa – für JavaScript nicht zugänglich (XSS-Schutz)
SicherJa – nur HTTPS
SameSiteStreng – CSRF-Schutz

In diesem Modus fügt der Browser jeder Anfrage automatisch ein Cookie hinzu. Das Zugriffstoken wird im Antworttext während der Authentifizierung nicht zurückgegeben – nur im Set-Cookie-Header.

API Modus (Desktop, Erweiterung, Mobil)

Für API-Clients wird das Zugriffstoken im Authorization-Header übertragen:

Authorization: Bearer {access_token}

In diesem Modus wird das Zugriffstoken im Antworttext während der Authentifizierung zurückgegeben und der Client verwaltet den Speicher unabhängig.

Modusvergleich

ParameterBrowsermodusAPI Modus
KundenWebanwendungDesktop, Erweiterung, Mobil
Token-ÜbertragungHttpOnly-CookieAutorisierungsheader
XSS-Schutz✓ (Nur Http)Hängt vom Kunden ab
Token-VerwaltungBrowser (automatisch)Client (manuell)

Token aktualisieren

Eigenschaften

ParameterWert
Länge256 Bit
FormatierenBase64
Stringlänge~44 Zeichen
Entropie256 Bit
Standardlebensdauer129.600 Sekunden (36 Stunden)

Zweck

Das Aktualisierungstoken wird verwendet, um ein neues Zugriffstoken ohne erneute Authentifizierung zu erhalten. Weitere Informationen zum Erneuerungsprozess finden Sie im Abschnitt Token-Rotation.


Lebenslange Konfiguration

Nach Benutzerrollen

Die Token-Lebensdauer wird auf Benutzerrollenebene konfiguriert:

EinstellungStandardwert
Lebensdauer des Zugriffstokens10.000 Sek. (~2,8 Stunden)
Lebensdauer des Tokens aktualisieren129.600 Sek. (36 Stunden)

Konfigurationsbeispiele

SzenarioZugriff auf TTLTTL aktualisieren
Standardbenutzer10.000 Sek.129.600 Sek.
Hohe Sicherheit1.800 Sek. (30 Min.)14.400 Sek. (4 Stunden)
Bequemlichkeit28.800 Sek. (8 Stunden)604.800 Sek. (7 Tage)

Sitzungslebenszyklus

Vollständiger Lebenszyklus

T=0: Authentifizierung. Der Benutzer gibt Anmeldeinformationen ein. Der Server erstellt Zugriffstoken (TTL: 2,8 Stunden) und Aktualisierungstoken (TTL: 36 Stunden).

T=2,8h: Zugriffstoken abgelaufen. Client sendet Aktualisierungstoken. Der Server stellt neue Token aus. Das alte Aktualisierungstoken ist ungültig.

T=36h: Aktualisierungstoken abgelaufen. Erneute Authentifizierung erforderlich. Der Benutzer gibt seine Anmeldeinformationen erneut ein.

Alternatives Szenario – Abmelden. Der Benutzer klickt auf „Abmelden“. Beide Token sind ungültig. Sitzung beendet.

Token-Ungültigmachung

Alle Sitzungstoken werden ungültig gemacht bei:

  • Benutzerabmeldung
  • Änderung des Master-Passworts
  • Zurücksetzen des Administrator-Master-Passworts

Token-Rotation

Standardmodus (Anwendungen)

Für Webanwendungen, Browsererweiterungen, Mobil- und Desktop-Apps gelten strikte Token-Rotationsrichtlinien.

Beim Aktualisieren der Sitzung sendet der Client gleichzeitig Zugriffstoken und Aktualisierungstoken und erhält als Antwort neues Tokenpaar. Dies sorgt für eine kontinuierliche Rotation beider Token und verhindert so die Wiederverwendung gestohlener Token.

Automatisierungsmodus (API)

Für DevOps-Aufgaben und Automatisierung ist eine strikte Rotation oft unpraktisch. Daher ist für Sitzungen, die über die API-Token-Generierung erstellt wurden, ein alternativer Modus verfügbar:

  • accessToken wird nur aktualisiert, ohne dass refreshToken geändert wird
  • Separate refreshToken-Erneuerung bei Bedarf

Dies ermöglicht die Verwendung langlebiger refreshToken in Skripten und CI/CD-Pipelines. HTTP-Rotationsendpunkte werden in der Dokumentation zu API-Tokens beschrieben.


Token-Sicherheit

Abhörschutz

BedrohungSchutz
NetzwerküberwachungHTTPS/TLS erforderlich
XSS-AngriffNur Http-Cookies (Browsermodus)
CSRFCSRF-Token + SameSite-Cookies

CSRF-Token

Zweck

CSRF-Token schützt vor Cross-Site-Request-Forgery-Angriffen. Für alle Änderungsvorgänge erforderlich.

Eigenschaften

ParameterWert
Größe256 Bit
FormatierenHexadezimal (64 Zeichen)
Entropie256 Bit
GeneratorKryptografisch sicher

Verwendung

CSRF-Token wird im Header jeder Anfrage übertragen:

X-CSRF-Token: {csrf_token}

Anforderungen nach Kundentyp

KundentypCSRF-Token
Webanwendung (Browsermodus)✓ Erforderlich (automatisch generiert und validiert)
Browser-ErweiterungOptional (auf Kundenwunsch)
Mobile AnwendungOptional (auf Kundenwunsch)
API— (nicht verwendet)

Zweck

Optionale zusätzliche Schutzfunktion für den Browsermodus. Bindet die Sitzung an den Clientkontext und schützt so vor Cookie-Diebstahl und Sitzungs-Hijacking.

Wie es funktioniert

Wenn diese Option aktiviert ist, berechnet der Server die Signatur basierend auf:

  • Client-Adresse IP
  • Browser-Benutzeragent – Sitzungskennung
  • Geheimer Schlüssel (60 Zeichen, ~357 Bit Entropie)

Die Signatur wird nach folgender Formel berechnet:

cookieSign = HMAC-SHA512(IP + UserAgent + SessionID, secret)

Die Signatur wird in einem separaten HttpOnly-Cookie gespeichert und bei jeder Anfrage überprüft.

Angriffsschutz

AngriffSchutz
Sitzungs-HijackingGestohlenes Cookie funktioniert nicht von verschiedenen IP
Cookie-DiebstahlCookie nutzlos ohne Übereinstimmung mit IP + User-Agent

Einschränkungen

  • IP-Änderung (VPN, Mobilfunknetz) erfordert eine erneute Authentifizierung
  • Browser-Update kann User-Agent ändern

Aktivieren

Die Funktion wird vom Administrator in den Systemeinstellungen aktiviert. Standardmäßig deaktiviert für Kompatibilität mit Benutzern mit dynamischem IP.


Kundentypen

Passwork unterscheidet vier Client-Typen mit unterschiedlichen Sicherheitsmechanismen:

FunktionWebBrowser-ErweiterungMobilAPI
Token-ÜbertragungsmodusBrowsermodusAPI ModusAPI ModusAPI Modus
ZugriffstokenKeksKopfzeileKopfzeileKopfzeile
CSRF-Token✓ ErforderlichOptionalOptional
Cookie-ZeichenOptional
PIN-Code✓ Unterstützt

Browsererweiterung – nur Clienttyp, der serverseitigen PIN-Code unterstützt. Die PIN wird auf dem Server überprüft, wodurch ein temporäres Fenster zur Verwendung durch API geöffnet wird. Nach Ablauf der Zeit ist die Sitzung bis zur erneuten PIN-Eingabe gesperrt. Bei mehreren falschen Versuchen beendet der Server die Sitzung sofort. Dies schützt vor Token-Diebstahl – selbst bei einer Token-Kompromittierung kann der Angreifer API nicht verwenden, ohne die PIN zu kennen.


HTTP Header

Authentifizierungsheader

KopfzeileBeschreibungModus
AuthorizationZugriffstoken (Bearer {token})API Modus
CookieZugriffstoken (automatisch)Browsermodus
X-CSRF-TokenCSRF-SchutzAlle Modi
X-Master-Key-HashHauptschlüssel-HashBei Bedarf

Clientseitiger Token-Speicher

Jeder Clienttyp implementiert eine sichere Tokenspeicherung entsprechend den Plattformfunktionen:

  • Webanwendung – Zugriffstoken, gespeichert im HttpOnly-Cookie, unzugänglich für JavaScript (XSS-Schutz)
  • Desktop- und mobile Apps – Token, die im sicheren Speicher des Betriebssystems mit eingeschränktem Zugriff gespeichert werden
  • Browser-Erweiterung – isolierter Browser-Speicher verwendet, auf den von Webseiten aus nicht zugegriffen werden kann

Mehrere Sitzungen

Parallele Sitzungen

Passwork unterstützt mehrere gleichzeitige Sitzungen:

  • Der Benutzer kann auf mehreren Geräten authentifiziert werden
  • Jedes Gerät verfügt über ein eigenes Token-Paar
  • Das Abmelden auf einem Gerät hat keine Auswirkungen auf andere

Sitzungsverwaltung

Der Benutzer kann:

  • Liste der aktiven Sitzungen anzeigen
  • Bestimmte Sitzung beenden
  • Alle Sitzungen beenden (außer der aktuellen)

Der Administrator kann:

  • Erzwingen Sie die Beendigung aller Benutzersitzungen

Konfigurationsempfehlungen

Hohe Sicherheit

ParameterWert
Zugriffstoken30 Minuten
Aktualisierungstoken4 Stunden
  • Häufige erneute Authentifizierung
  • Kurzes Angriffsfenster
  • Geeignet für kritische Systeme

Sicherheits- und Komfortbalance (Standard)

ParameterWert
Zugriffstoken~2,8 Stunden
Aktualisierungstoken36 Stunden
  • Werktags ohne erneute Authentifizierung
  • Token für ca. 1,5 Werktage aktualisieren
  • Geeignet für die meisten Organisationen

Maximaler Komfort

ParameterWert
Zugriffstoken8 Stunden
Aktualisierungstoken7 Tage
  • Authentifizierung einmal pro Woche
  • Geeignet für Szenarien mit geringem Risiko – Nicht empfohlen für kritische Daten