Verschlüsselung
- TLS 1.2+ bei jeder Verbindung zwischen Client, DraftKite und Unterauftragsverarbeitern.
- OAuth-Tokens (Refresh und Access) werden mit AES-256-GCM verschlüsselt, bevor sie in Postgres geschrieben werden.
- Der Verschlüsselungsschlüssel liegt in der Umgebungsvariable TOKEN_ENCRYPTION_KEY, im verschlüsselten Umgebungsspeicher der Hosting-Plattform — nie im Code und nie in der Datenbank, die er schützt.
- Kartennummern werden niemals bei uns gespeichert — wir sehen nur Stripe-Customer- und -Subscription-IDs.
Isolation über Row-Level Security
Jede Tabelle in der DraftKite-Datenbank hat RLS aktiviert und ist über auth.uid() eingegrenzt. Das bedeutet, dass eine SQL-Abfrage aus der Sitzung eines Nutzers niemals die Daten anderer Nutzer sehen kann — nicht einmal, wenn ein Fehler im Anwendungscode vorliegt.
Nur Webhooks und Hintergrundjobs, die keine Nutzersitzung haben, verwenden eine Service-Rolle — und sie sind sorgfältig darauf beschränkt, nur mit bestimmten User-IDs zu arbeiten.
Hosting
Alle Daten werden in der EU bei Supabase in Frankfurt (Deutschland) gehostet. Die KI-Verarbeitung erfolgt bei OpenAI (USA) unter Standardvertragsklauseln für Übermittlungen.
OpenAI verwendet Ihre Daten nicht, um Modelle zu trainieren.
Interne Zugriffssteuerung
- Der Zugriff auf die Produktionsumgebung ist auf wenige Personen beschränkt, alle mit MFA.
- Zugriffe auf die Produktionsinfrastruktur werden von unseren Hosting-Anbietern Vercel und Supabase protokolliert und auf deren Plattformen vorgehalten.
- Verschlüsselungsschlüssel liegen im verschlüsselten Umgebungsspeicher der Hosting-Plattform — nie im Code und nie in der Datenbank, die sie schützen.
Was passiert bei einer Datenschutzverletzung?
Wir haben einen formellen Incident-Response-Plan. Im Fall einer Datenschutzverletzung werden betroffene Nutzer innerhalb von 72 Stunden gemäß DSGVO Art. 33-34 benachrichtigt, und die dänische Datenschutzbehörde (Datatilsynet) wird gemäß den Vorschriften informiert.