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: