Zum Hauptinhalt springen

Zero-Knowledge-Sicherheitsmodell

Was ist Zero-Knowledge

Zero-Knowledge (ZK) ist ein Architekturprinzip, bei dem der Server keinen Zugriff auf entschlüsselte Daten hat. Die gesamte Ver- und Entschlüsselung erfolgt auf der Clientseite.

In der Praxis bedeutet das: Selbst wenn ein Angreifer vollen Zugriff auf den Passwork-Server und dessen Datenbank erhält, findet er nur verschlüsselte Datenblöcke — ohne Benutzerschlüssel ist das Lesen von Geheimnissen unmöglich.

Funktionsweise

┌─────────────────┐                      ┌─────────────────┐
│ Client │ │ Passwork │
│ (browser/CLI) │ │ Server │
├─────────────────┤ ├─────────────────┤
│ Encryption keys │ ──── HTTPS ────► │ Encrypted │
│ Decryption │ ◄── HTTPS ──── │ data │
│ Encryption │ │ Metadata │
└─────────────────┘ └─────────────────┘
Auf dem Server gespeichertNur dem Client bekannt
Verschlüsselte Passwörter und FelderVerschlüsselungsschlüssel
Verschlüsselte AnhängeEntschlüsselte Werte
Eintrags- und OrdnernamenMasterpasswort des Benutzers
Zugriffsrechtestruktur
Audit-Protokoll

Sicherheitsvorteile

Schutz vor Server-Kompromittierung

Selbst mit vollem Serverzugriff kann ein Angreifer nicht:

  • Passwörter oder Geheimnisse lesen;
  • Anhänge (Schlüssel, Zertifikate) entschlüsseln;
  • Werte aus Datenbank-Backups wiederherstellen.

Schutz vor Insidern

Passwork-Administratoren (Systemadministratoren, DBAs) haben keine technische Möglichkeit, Geheimnsinhalte einzusehen — auch nicht mit direktem Datenbankzugriff.

Compliance

Zero-Knowledge vereinfacht Sicherheitsaudits: Sie können nachweisen, dass selbst privilegierte Infrastrukturbenutzer keinen Zugriff auf Geheimnisse haben.

tipp

In der On-Premise-Version von Passwork kann der Zero-Knowledge-Modus vom Administrator deaktiviert werden. Wenden Sie sich an Ihr Sicherheitsteam für die aktuelle Konfiguration.

Auswirkungen auf die Automatisierung

Zero-Knowledge begrenzt, was der Server eigenständig tun kann.

Server-Einschränkungen

OperationWarum sie serverseitig nicht funktionieren kann
Automatische PasswortrotationServer verfügt nicht über Verschlüsselungsschlüssel
PasswortqualitätsprüfungenWerte sind verschlüsselt
Integrierte Integration mit externen SystemenErfordert einen Client mit Schlüsseln

Die Lösung

Für Rotation und erweiterte Automatisierung verwenden Sie einen externen Client — ein Skript oder einen Dienst, der:

  1. Sich bei Passwork authentifiziert (Token erhält).
  2. Geheimnisse über CLI/SDK abruft und entschlüsselt.
  3. Aktionen in Zielsystemen (Datenbanken, Dienste) durchführt.
  4. Neue Werte verschlüsselt und zurückschreibt.
┌──────────────┐      ┌──────────────┐      ┌──────────────┐
│ Rotation │ │ Passwork │ │ Target │
│ script │ ───► │ (stores) │ │ system │
│ │ ◄─── │ │ │ (PostgreSQL)│
│ - CLI/SDK │ └──────────────┘ │ │
│ - keys │ ─────────────────────────► │ │
└──────────────┘ └──────────────┘

Typische Einrichtung

# Cron job for rotation
0 3 * * 0 /opt/scripts/rotate-db-passwords.py

Was rotate-db-passwords.py tut:

  1. Listet Einträge im Ordner infrastructure/production/databases auf.
  2. Für jeden Eintrag:
    • generiert ein neues Passwort;
    • aktualisiert das Passwort in PostgreSQL/MySQL;
    • speichert das neue Passwort in Passwork.
  3. Sendet eine Zusammenfassung an Slack oder E-Mail.

Implementierungsbeispiele finden Sie unter: