Zum Hauptinhalt springen

Sicherheit

Zero-Knowledge-Verschlüsselung

Plandaten werden auf dem Client verschlüsselt (AES-GCM). Der Verschlüsselungsschlüssel wird aus dem Passwort des Nutzers abgeleitet (PBKDF2), und in einem Duo-Plan wird er zwischen den Haushaltsmitgliedern per Schlüsselaustausch (ECDH) geteilt. Der Schlüssel erreicht den Server in keiner Form. Wir schreiben keine eigene Kryptografie — wir nutzen die native Web Crypto API des Browsers.

Das Ergebnis: Selbst mit vollem Zugriff auf die Datenbank lassen sich die Daten ohne das Passwort oder den Wiederherstellungscode des Nutzers nicht lesen.

Zugriffskontrolle (Row Level Security)

Im Cloud-Modus wird der Datenzugriff durch Postgres RLS erzwungen: Abfragen sehen und ändern nur den Haushalt, dessen Mitglied Sie sind. Operationen wie das Erstellen/Beitreten/Verlassen eines Haushalts oder das Speichern des Zustands laufen über security definer-Funktionen, die die Berechtigungen kontrolliert prüfen. RLS wirkt als zusätzliche Schicht (Defense-in-Depth) über dem Chiffretext — sie schränkt ein, wer einen Datensatz überhaupt abrufen kann, der ohne den Schlüssel ohnehin unlesbar ist.

Schlüssel und Geheimnisse

  • Im Browser wird nur der öffentliche anon-Schlüssel verwendet, geschützt durch RLS.
  • Sensible Schlüssel (z. B. Service-Role-, Zahlungsanbieter-Schlüssel) erreichen das Frontend nie — sie liegen nur auf dem Server (Umgebungsvariablen).
  • Keine Geheimnisse im Repository.

Datenvalidierung

Jedes Formular und jedes Lesen des Zustands durchläuft Zod-Schemas — ungültige oder böswillige Daten erreichen die App nie. Text wird von Steuerzeichen bereinigt.

Passwörter

Passwörter werden nicht im Klartext gespeichert — Supabase hält nur einen Einweg-Hash (bcrypt). Sie lassen sich nicht lesen; sie lassen sich nur zurücksetzen oder überschreiben.

Destruktive Aktionen

Das Zurücksetzen von Daten und das Löschen Ihres Kontos erfordern eine Passwortbestätigung, um versehentlichen Datenverlust zu verhindern.

Transport und Header

Kommunikation über HTTPS, mit Sicherheits-Headern (einschließlich einer CSP).