OKConsent · Version 216149e79c214483
ENTWURF – nicht veröffentlichen – anwaltliche Prüfung ausstehend (TAS-793)
Entwurf vom 2026-10-28 zu TAS-792. OKConsent verarbeitet Daten von Besuchern der Websites seiner Kunden (Einwilligungsnachweise, Skriptauslieferung, Scans) im Auftrag der Kunden; OKConsent ist hier Auftragsverarbeiter. Rechtsgrundlagen: Art. 28 DSGVO, Art. 32 DSGVO. Anlagen: Anlage 2: TOMs, Anlage 3: Unterauftragsverarbeiter. Offene Fragen: open-questions.md. Englische Fassung: ../en/dpa.md.
zwischen dem Kunden (der „Verantwortliche“) und Dipl.-Ing. Samir Alibabic – Online Marketing (Einzelunternehmen), Klugstraße 99, 80637 München, Deutschland (der „Auftragsverarbeiter“ oder „OKConsent“).
Er ist Bestandteil des Nutzungsvertrags nach den AGB (der „Hauptvertrag“) und wird mit diesem geschlossen. [Wie der AVV zustande kommt (Annahme beim Registrieren, Bestätigung im Dashboard), ist festzulegen, siehe open-questions.md.]
Der Auftragsverarbeiter stellt sicher, dass die zur Verarbeitung befugten Personen zur Vertraulichkeit verpflichtet sind oder einer angemessenen gesetzlichen Verschwiegenheitspflicht unterliegen (Art. 28 Abs. 3 Satz 2 Buchst. b DSGVO). [Derzeit verarbeitet nur der Betreiber selbst Daten im Auftrag; bei Einbindung weiterer Personen schriftliche Verpflichtung vorsehen.]
Für die Haftung gelten Art. 82 DSGVO und, im Innenverhältnis, die Haftungsregeln des Hauptvertrags (§ 13 der AGB). [Prüfen, ob die Haftungsbegrenzung des Hauptvertrags für Datenschutzverstöße im Verhältnis zum Verantwortlichen wirksam sein kann.]
Der Auftragsverarbeiter betreibt den gehosteten Dienst OKConsent. Er verarbeitet personenbezogene Daten, um für den Verantwortlichen
| Vorgang | Daten |
|---|---|
| Einwilligungsnachweise (optional; pro Site, standardmäßig aus) | zufällige Einwilligungs-Kennung; Revision der Konfiguration; Auswahl (Kategorien und Dienste); Zeitstempel der Entscheidung (Angabe des Browsers); Empfangszeit des Servers; Sprache; Pfad der Seite (ohne Query und Fragment, höchstens 512 Zeichen); abgeleitetes Ergebnis (Annahme, Ablehnung, benutzerdefiniert); Kennungen von Organisation und Site. Nicht gespeichert und nicht protokolliert: IP-Adresse, User-Agent, vollständige URL |
| Annahme eines Nachweises (flüchtig) | IP-Adresse und Anfragekopfzeilen werden nur im Arbeitsspeicher verarbeitet, um Anfragen zu begrenzen: ein HMAC der Adresse unter einem zufälligen Schlüssel, der bei jedem Start wechselt, in festen Ein-Minuten-Fenstern. Es wird nichts gespeichert, was die Adresse wiederherstellt. Der vorgeschaltete Proxy führt für diesen Pfad kein Zugriffsprotokoll mit Adresse und Referer [bei Inbetriebnahme bestätigen] |
| Auslieferung des Skripts, der Regeln und der gehosteten Rechtstexte | Beim Laden des Skripts, der Regeln oder einer gehosteten Rechtstext-Seite über das CDN sehen das CDN (und bei Cache-Fehlern unser Auslieferungsdienst) IP-Adresse, Anfragezeitpunkt, angefragten Pfad (einschließlich der Installationsquelle ?src=), User-Agent und weitere übliche Anfragedaten. Unser Auslieferungsdienst setzt keine Cookies und protokolliert nichts. Zugriffsprotokolle des CDN: siehe Anlage 3 |
| Scans | Scans laufen mit einem frischen Browserprofil gegen öffentliche Seiten der Domains des Kunden; echte Besucher sind nicht beteiligt. Gespeichert werden unter anderem Funde (Dienste, Cookies und Speichereinträge, Netzwerkanfragen), Seiten-URLs und Bildschirmfotos der Seiten (Ausschnitt). Auf öffentlichen Seiten veröffentlichte personenbezogene Angaben können zufällig darauf zu sehen sein |
| Angaben für Rechtstexte | Angaben des Verantwortlichen zu seinem Betrieb: Namen, Anschriften, E-Mail-Adressen und Telefonnummern von Betreiber, Vertretungsberechtigten, Datenschutzbeauftragten und Dienstleistern. Sie werden nicht protokolliert und mit der Site gelöscht |
| Daten | Frist |
|---|---|
| Einwilligungsnachweise | einstellbar pro Site, 30 bis 1095 Tage (Standard 365; im kostenlosen Tarif höchstens 365). Der Dienst löscht abgelaufene Nachweise stündlich. Ein Downgrade blendet überschüssige Nachweise aus und löscht sie nach 30 Tagen |
| Site-Daten (Konfigurationen, Versionen, Rechtstexte, Angaben, Scans) | bis zur Löschung der Site oder der Organisation (Organisation: zum Start manuell auf Anfrage per E-Mail) |
| Sicherungskopien | bis zu 35 Tage nach der Löschung in den Sicherungen (Anlage 2) |
| Vorgang | Ort |
|---|---|
| Hosting, Datenbank | Hetzner, Nürnberg, Deutschland |
| Sicherungen | Scaleway Object Storage, [Region: Paris, Amsterdam oder Warschau] |
| CDN | Bunny.net; Anfragen werden nur von Knoten in Europa beantwortet. Zugriffsprotokolle mit anonymisierten IP-Adressen und kürzester Aufbewahrung |
Datenschutzfragen: support@okconsent.com. Einen Datenschutzbeauftragten hat der Auftragsverarbeiter nicht bestellt.
ENTWURF – nicht veröffentlichen – anwaltliche Prüfung ausstehend (TAS-793)
Entwurf vom 2026-10-28 zu TAS-792. Quellen: docs/security-review.md, docs/architecture.md, docs/operations.md, docs/deployment.md, deploy/postgres, docs/specs/saas.md. Nichts ist bisher produktiv. Die Spalte „Stand“ sagt deshalb, was in der Software gebaut und getestet ist (Software), was der Betrieb bei der Inbetriebnahme einrichten muss und noch nicht eingerichtet ist (Betrieb, geplant) und was noch zu klären ist (zu bestätigen). Vor der Veröffentlichung muss jede Zeile „Betrieb, geplant“ und „zu bestätigen“ gegen die laufende Umgebung geprüft werden. Englische Fassung: ../en/dpa-annex-2-toms.md.
Stand: [Datum] · Version [1.0]
| Maßnahme | Stand |
|---|---|
| Die Server stehen in Rechenzentren von Hetzner. Zutrittskontrolle liegt beim Rechenzentrumsbetreiber. [Zertifikate des Betreibers einholen und nennen] | zu bestätigen |
| Der Auftragsverarbeiter betreibt keine eigenen Serverräume. Arbeitsgeräte: [Beschreibung: Festplattenverschlüsselung, Bildschirmsperre] | zu bestätigen |
| Maßnahme | Stand |
|---|---|
| Anmeldung ohne Passwort: einmaliger E-Mail-Link (5 Minuten gültig, einmal verwendbar) oder GitHub. Es werden keine Passwörter gespeichert | Software |
Sitzungen: Cookie HttpOnly, Secure, SameSite=Lax; Sitzungsdauer 7 Tage; keine IP-Adresse und kein User-Agent in der Sitzung gespeichert; Zugangstoken von GitHub werden nicht gespeichert |
Software |
| Anmeldegrenzen: höchstens 3 Anmelde-Links je Adresse und 15 Minuten; höchstens 20 Einladungen je Nutzer und Stunde | Software |
| Zugang der Administration (Betreiber): Authenticator-App (TOTP) mit 10 Einmal-Codes, Prüfung alle 4 Stunden, Sperre von 15 Minuten nach 5 falschen Codes, jeder Code nur einmal verwendbar, kein Abschalten möglich. Die Administration ist für alle anderen nicht auffindbar (gleiche Antwort wie für eine unbekannte Seite) | Software |
| Zugänge zu Konten der Anbieter (Hetzner, Bunny, GitHub, Coolify, Stripe, Scaleway) mit Zwei-Faktor-Authentifizierung | zu bestätigen |
Zugang zu den Servern über SSH und Firewall des Hosts: [Beschreibung nach Festlegung im Repository samiralibabic/ansible; die Firewall-Regeln für den Scanner sind dort vorbereitet und werden bei der ersten Bereitstellung angewendet] |
zu bestätigen |
| Zugangsdaten und Geheimnisse liegen in den geheimen Umgebungsvariablen der Plattform, nicht im Quellcode; der Dienst verweigert den Start in Produktion mit dem Platzhalter-Geheimnis | Software |
| Maßnahme | Stand |
|---|---|
| Mandantentrennung. Jede Datenbankabfrage ist auf die Organisation begrenzt. 78 Versuche, auf Daten einer anderen Organisation zuzugreifen, wurden in der Sicherheitsprüfung abgewiesen | Software |
| Rollen je Organisation (Inhaber, Mitglied); API-Schlüssel handeln nur für ihre Organisation und können nichts freigeben | Software |
| API-Schlüssel werden nur als Hash gespeichert, einmal angezeigt, können widerrufen werden und optional nach 1 bis 365 Tagen ablaufen | Software |
| Datenbankrollen mit Mindestrechten: eine Rolle für Migrationen, eine für API, eine für Worker, eine nur lesend für den Auslieferungsdienst; die Dienste starten in Produktion nicht mit einer Rolle, die Superuser ist oder Objekte anlegen darf | Software |
| Die Administration des Betreibers liest Daten über alle Organisationen hinweg; diese Lesezugriffe werden mit der Benutzerkennung des Administrators protokolliert (nicht mit dem Inhalt). Es gibt keine Anmeldung als Kunde. [Zweck und Umfang dieses Zugriffs festlegen] | Software |
| Geplante Scans laufen nur für Domains, auf denen der Dienst das Skript des Kunden gefunden hat | Software |
| Maßnahme | Stand |
|---|---|
| Alle Kunden teilen sich eine Datenbank, getrennt durch Organisationsbezug (siehe 1.3). Der Scanner läuft als eigener Container ohne Zugangsdaten der Plattform, mit eigenem Netz, schreibgeschütztem Dateisystem, ohne zusätzliche Rechte und mit gesetzten Speicher-, CPU- und Prozessgrenzen. [Offen aus der Sicherheitsprüfung: SR-04, die Chromium-Sandbox im Container muss auf dem x86_64-Produktionsserver geprüft werden; SR-05, der gelegentliche Hänger beim Start von Chromium unter Bun ist mit Bun 1.4.4 nicht mehr aufgetreten, Linux ist erst im Produktivbetrieb zu bestätigen.] | Software, Produktionsprüfung offen |
| Einrichtung einer Netzwerksperre (Egress-Firewall) für den Scanner (private Netze, Metadatenadresse und Verwaltungsdienste unerreichbar) | Betrieb, geplant |
| Entwicklung und Tests laufen lokal; es gibt keine Staging-Umgebung mit Kundendaten | Software |
| Maßnahme | Stand |
|---|---|
| Einwilligungsnachweise enthalten keine IP-Adresse, keinen User-Agent und keine vollständige URL, nur eine zufällige Kennung, Auswahl, Zeitpunkt, Sprache und Pfad ohne Query | Software |
| Die Ratenbegrenzung nutzt einen HMAC der Adresse unter einem zufälligen, nur im Speicher gehaltenen Schlüssel, der bei jedem Start wechselt | Software |
| Protokolle (JSON) enthalten keine personenbezogenen Daten: Pfad ohne Query, Statuscode, Dauer; Datenbankfehler nur als Fehlercode | Software |
| Der Proxy führt für den Pfad der Einwilligungsnachweise kein Zugriffsprotokoll mit Adresse und Referer | Betrieb, geplant |
| Das CDN liefert nur aus Europa aus; seine Zugriffsprotokolle anonymisieren IP-Adressen und werden so kurz wie möglich aufbewahrt (Einstellungen des Pull Zone, docs/operations.md) | Betrieb, geplant |
| Fehlerberichte (falls eingeschaltet) werden vor dem Versand bereinigt | Software |
| Maßnahme | Stand |
|---|---|
| Verschlüsselte Übertragung (TLS) für Dashboard, API, Auslieferung und CDN; HSTS auf Dashboard und API | Betrieb, geplant |
| E-Mail-Versand nur über verschlüsselte Verbindungen (TLS oder STARTTLS erzwungen); Verbindungen zum Sicherungsspeicher über HTTPS | Software |
| Strenge CSP im Dashboard, Vorschau in einem doppelt abgeschotteten Rahmen; Weiterleitungen nur innerhalb der Seite | Software |
| Eingaben werden validiert: Größenbegrenzung für Anfragen (1 MiB; 4 KB für Einwilligungsnachweise), striktes Schema, Origin-Prüfung gegen die Domains der Site | Software |
| CSV-Exporte schützen gegen Formel-Einschleusung | Software |
| Maßnahme | Stand |
|---|---|
| Ein Audit-Protokoll je Organisation hält fest, wer wann was geändert hat (Anmeldung, Mitglieder, API-Schlüssel, Veröffentlichungen, Tarifwechsel, Exporte); Inhalte von Antworten und Geheimnisse werden nicht protokolliert | Software |
| Aktionen der Administration werden mit Benutzerkennung (außerhalb der Audit-Protokolle der Organisationen) festgehalten | Software |
| Maßnahme | Stand |
|---|---|
| Sicherungen. Tägliche Sicherung der Datenbank (03:15 Uhr), lokal 3 Kopien (höchstens 2 GB), auf dem S3-kompatiblen EU-Speicher 35 Tage (höchstens 10 GB). Sie umfasst auch alle ausgelieferten Dateien, weil diese in der Datenbank liegen | Betrieb, geplant |
| Wiederherstellung. Monatliche Wiederherstellungsprobe mit Prüfskript; Alarm bei fehlender Sicherung von außerhalb der Verwaltungsoberfläche | Betrieb, geplant |
| Gelöschte Daten in Sicherungen. Gelöschte Nachweise und Sites bleiben bis zu 35 Tage (S3) beziehungsweise bis zur Rotation der lokalen Kopien in Sicherungen und werden danach überschrieben | Betrieb, geplant |
| Verschlüsselung der Sicherungen im Ruhezustand: [serverseitige Verschlüsselung des Speicheranbieters aktivieren und bestätigen; keine clientseitige Verschlüsselung durch Coolify, der Anbieter hält die Schlüssel] | zu bestätigen |
| Das CDN ist nur ein Zwischenspeicher; fällt es aus, genügt es, seine Adresse auf den Auslieferungsdienst oder ein anderes CDN zu richten | Software |
Gesundheitsprüfungen der Dienste (/health, /ready, /healthz), Metriken und ein externer Verfügbarkeitsmonitor; Alarme bei Worker-Neustarts und hängenden Aufträgen |
Betrieb, geplant |
| Begrenzungen gegen Überlastung: Grenzen je Organisation für gleichzeitige Scans, Scans, Veröffentlichungen und Vorschauen pro Tag; faire Warteschlange; Ratenbegrenzung für API und MCP | Software |
Betriebssystem-Updates wöchentlich durch Ansible (Neustartfenster); Docker-Images gepinnt; Container mit Gesundheitsprüfungen [Ob und wann der Neustart-Timer aktiv ist, ist unbekannt; im Repository samiralibabic/ansible prüfen] |
zu bestätigen |
| Maßnahme | Stand |
|---|---|
| Sicherheitsprüfung des Codes vor dem Start mit Maßnahmenplan (security-review.md); Ergebnisse sind behoben oder begründet akzeptiert | Software |
Automatisierte Tests lokal vor jeder Änderung (bun run gate), unter anderem Mandantentrennung, Datenbanktests, End-to-End-Tests |
Software |
| Prüfung der Abhängigkeiten auf bekannte Schwachstellen bei jeder Änderung; Aktualisierung vor jeder Produktivsetzung und bei Funden | Software |
| Prüfung der Produktivumgebung vor der Aufnahme des ersten Kunden (Scanner-Sandbox, Firewall, Proxy, CDN) | Betrieb, geplant |
Meldung von Sicherheitslücken: [Kontakt, siehe SECURITY.md, Platzhalter] |
zu bestätigen |
| Maßnahme | Stand |
|---|---|
| Einwilligungsnachweise sind standardmäßig aus und pro Site einzuschalten | Software |
| Aufbewahrung ist einstellbar (30 bis 1095 Tage); ein Löschlauf läuft stündlich; im kostenlosen Tarif höchstens 365 Tage | Software |
| Seitenaufrufe von Besuchern erreichen nie unsere API; nur die Entscheidung als Nachweis, und nur wenn der Betreiber der Website Einwilligungsnachweise eingeschaltet hat | Software |
| Hosting in der EU | Betrieb, geplant |
| Maßnahme | Stand |
|---|---|
| Unterauftragsverarbeiter nach Anlage 3 mit Auftragsverarbeitungsverträgen [abschließen / bestätigen]; Änderungen werden mitgeteilt | zu bestätigen |
| Verarbeitung nur nach Weisung (AVV § 2) | Software |
| Maßnahme | Stand |
|---|---|
| Verpflichtung zur Vertraulichkeit aller Personen mit Zugriff | zu bestätigen |
| Prozess für Datenpannen mit Meldung an den Verantwortlichen innerhalb von 48 Stunden und Dokumentation | zu bestätigen |
| Verzeichnis der Verarbeitungstätigkeiten als Auftragsverarbeiter (Art. 30 Abs. 2 DSGVO) | zu bestätigen |
| Datenschutzbeauftragter: nicht bestellt (Entscheidung vom 2026-10-28) | Betrieb, geplant |
ENTWURF – nicht veröffentlichen – anwaltliche Prüfung ausstehend (TAS-793)
Entwurf vom 2026-10-28 zu TAS-792. Quelle: docs/operations.md, docs/architecture.md, docs/decisions.md. Noch nichts ist produktiv: der Dienst ist nicht bereitgestellt; laut operations.md bestehen Konten bei Scaleway und Bunny, Verträge und Auftragsverarbeitungsverträge sind noch zu prüfen. Die Liste beschreibt, was die Entscheidungen vorsehen; vor der Veröffentlichung gegen die tatsächlichen Verträge prüfen. Offene Fragen: open-questions.md. Englische Fassung: ../en/dpa-annex-3-subprocessors.md.
Stand: [Datum]
Diese Anbieter verarbeiten personenbezogene Daten im Auftrag des Auftragsverarbeiters. Der Verantwortliche genehmigt sie nach § 5 des AVV.
| Anbieter | Leistung | Daten | Ort | Garantie |
|---|---|---|---|---|
| Hetzner Online GmbH [Anschrift bestätigen], Deutschland | Hosting des Dienstes: Server (Cloud-Server „CX32“) mit Datenbank, API, Dashboard, Worker, Auslieferungsdienst und Scanner | alle Daten nach Anlage 1: Einwilligungsnachweise, Site-Daten, Scan-Ergebnisse, Angaben für Rechtstexte; die Server sehen flüchtig IP-Adressen der Anfragen | Rechenzentrum Nürnberg, Deutschland | Auftragsverarbeitungsvertrag mit Hetzner [abschließen / bestätigen] |
| BunnyWay d.o.o. („Bunny.net“), Slowenien [Anschrift bestätigen] | Content Delivery Network: Zwischenspeicher vor unserem Auslieferungsdienst für das Skript, die Regeln und gehostete Rechtstexte | IP-Adresse, Zeitpunkt, angefragter Pfad (mit ?src=), User-Agent von Besuchern der Websites des Verantwortlichen. Gespeichert wird bei Bunny nichts außer Zwischenspeicher und Protokollen; wir nutzen keinen Speicher bei Bunny |
EU-Unternehmen; Auslieferung nur aus Europa | Auftragsverarbeitungsvertrag mit Bunny [abschließen / bestätigen]. Zugriffsprotokolle bei Bunny mit anonymisierten IP-Adressen und kürzester Aufbewahrung [Einstellung im Pull Zone prüfen]. Keine Übermittlung an Knoten außerhalb der EU |
| Scaleway SAS, Paris, Frankreich [Anschrift bestätigen] | (1) Object Storage: Sicherungskopien der Datenbank; (2) Transactional Email: Versand von E-Mails (Anmelde-Links, Einladungen, Freigabeanfragen, Warnungen) | (1) Kopien der gesamten Datenbank, also alle Daten nach Anlage 1; (2) E-Mail-Adressen und Inhalte der E-Mails an Nutzer des Verantwortlichen (keine Besucherdaten). Das sind Daten, die der Auftragsverarbeiter als eigener Verantwortlicher verarbeitet (AVV § 1 Abs. 3); Scaleway ist hierfür kein Unterauftragsverarbeiter dieses Vertrags und steht der Transparenz halber hier | Frankreich (TEM: Paris); Object Storage: [Region: Paris, Amsterdam oder Warschau] | Auftragsverarbeitungsvertrag (DPA) von Scaleway [abschließen / bestätigen] |
Diese Anbieter sind keine Unterauftragsverarbeiter für Daten nach Anlage 1. Sie sind der Transparenz halber genannt.
| Anbieter | Leistung | Daten | Hinweis |
|---|---|---|---|
| Stripe Payments Europe, Ltd., Irland (Konzern: Stripe, Inc., USA) | Bezahlseiten (Checkout), Kundenportal, Rechnungen, Zahlungsabwicklung | Name, E-Mail-Adresse, Rechnungsanschrift, Zahlungsdaten, Tarif und Rechnungen des Kunden. Keine Daten von Websitebesuchern. | Stripe verarbeitet Zahlungsdaten teilweise als eigener Verantwortlicher (zum Beispiel für Betrugsprävention und gesetzliche Pflichten), teilweise für uns. Übermittlung in die USA über Standardvertragsklauseln und das EU-US Data Privacy Framework [Stand prüfen]. Siehe Datenschutzerklärung |
| GitHub, Inc. (Microsoft), USA | optionale Anmeldung per GitHub | Name, E-Mail-Adresse und Profilbild-Adresse des Nutzers; Konto-Kennung | GitHub handelt als eigener Verantwortlicher für sein Konto. Kein Zugriff auf Daten nach Anlage 1 |
| Dienst | Stand | Wirkung |
|---|---|---|
| Fehlerverfolgung (Vorschlag: GlitchTip, EU-Instanz, Deutschland, siehe error-tracking.md) | Eingebaut, aber beim Start ausgeschaltet (Entscheidung vom 2026-10-28); ohne ERROR_TRACKING_DSN verlässt nichts den Prozess. Anbieter nicht freigegeben. Ereignisse werden vorher bereinigt (E-Mail-Adressen, IP-Adressen, Query-Werte, Zugangsdaten und Antworten entfernt) und enthalten konstruktionsbedingt keine personenbezogenen Daten |
Wird eingeschaltet, kommt der Anbieter in Teil A, falls Ereignisse personenbezogene Daten enthalten können |
| Coolify (Steuerungsserver) bei Contabo GmbH, Deutschland | Coolify verwaltet die Server, auf denen der Dienst läuft, über SSH und startet die geplanten Datenbanksicherungen. Es läuft auf einem eigenen Server von Contabo und führt den Dienst nicht aus. Es hält die Definitionen und Variablen (einschließlich Zugangsdaten). Coolify hat damit schon heute Zugriff auf die Server (SSH) und auf die Zugangsdaten und Variablen. Ob Sicherungen mit Kundendaten über diesen Server laufen, ist ungeklärt. | Ob Contabo als Unterauftragsverarbeiter in Teil A gehört, entscheidet die anwaltliche Prüfung (Frage Q15); bis dahin steht der Dienst hier |
| Namecheap, Inc., USA | Domains (okconsent.com, okconsent.de) und DNS-Zone |
Kein Zugriff auf Besucherdaten; DNS-Anfragen kommen von Resolvern. Ohne Proxy vor den Einträgen |
| KI-Anbieter | Keiner. Der Dienst ruft keinen KI-Dienst auf. Die Textglättung der Rechtstexte ist nur eine Schnittstelle ohne angeschlossenen Anbieter | Vor jedem Einsatz Information nach § 5 des AVV |
Hinzufügungen und Ersetzungen von Unterauftragsverarbeitern teilen wir nach § 5 des AVV mit.