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 gespeichert | Nur dem Client bekannt |
|---|---|
| Verschlüsselte Passwörter und Felder | Verschlüsselungsschlüssel |
| Verschlüsselte Anhänge | Entschlüsselte Werte |
| Eintrags- und Ordnernamen | Masterpasswort 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.
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
| Operation | Warum sie serverseitig nicht funktionieren kann |
|---|---|
| Automatische Passwortrotation | Server verfügt nicht über Verschlüsselungsschlüssel |
| Passwortqualitätsprüfungen | Werte sind verschlüsselt |
| Integrierte Integration mit externen Systemen | Erfordert 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:
- Sich bei Passwork authentifiziert (Token erhält).
- Geheimnisse über CLI/SDK abruft und entschlüsselt.
- Aktionen in Zielsystemen (Datenbanken, Dienste) durchführt.
- 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:
- Listet Einträge im Ordner
infrastructure/production/databasesauf. - Für jeden Eintrag:
- generiert ein neues Passwort;
- aktualisiert das Passwort in PostgreSQL/MySQL;
- speichert das neue Passwort in Passwork.
- Sendet eine Zusammenfassung an Slack oder E-Mail.
Implementierungsbeispiele finden Sie unter: