Datenschutz in LogonApp
Dieses Dokument beschreibt, wie LogonApp die Anforderungen der DSGVO technisch umsetzt und was Betreiber und Kunden selbst erledigen müssen. Es ersetzt keine Rechtsberatung.
Rollen
- Kunde (Mandant) ist Verantwortlicher nach Art. 4 Nr. 7 DSGVO für die Daten seiner Besucher und Mitarbeitenden.
- Betreiber der SaaS-Instanz ist Auftragsverarbeiter nach Art. 28 DSGVO. Grundlage ist der Vertrag zur Auftragsverarbeitung (siehe AVV-Vorlage.md), den Kunden bei der Registrierung akzeptieren.
- Beim Selbstbetrieb im eigenen Rechenzentrum entfällt die Auftragsverarbeitung.
Verarbeitete Daten und Rechtsgrundlagen
| Daten | Zweck | Rechtsgrundlage |
|---|---|---|
| Name, Firma, Ansprechpartner, An- und Abmeldezeit | Besuchsorganisation, Hausrecht, Evakuierung | Art. 6 Abs. 1 lit. f, lit. c DSGVO (Arbeits- und Brandschutz) |
| E-Mail, Telefon (optional je Besuchertyp) | Einladung, Rückfragen | Art. 6 Abs. 1 lit. f DSGVO |
| Antworten auf Sicherheitsfragen, Kfz-Kennzeichen | Sicherheit, Zufahrt | Art. 6 Abs. 1 lit. f DSGVO |
| Unterschrift unter Vereinbarungen (NDA) | Vertragsschluss und Nachweis | Art. 6 Abs. 1 lit. b DSGVO |
| Besucherfoto (standardmäßig aus) | Ausweis, Identifikation durch Gastgeber | Art. 6 Abs. 1 lit. f DSGVO, Abwägung dokumentieren |
| Arbeitszeiten von Mitarbeitenden | Arbeitszeiterfassung | Art. 6 Abs. 1 lit. c DSGVO i. V. m. § 16 Abs. 2 ArbZG, BAG 1 ABR 22/21 |
| PIN und Karten-ID | Authentifizierung am Kiosk | Art. 6 Abs. 1 lit. b DSGVO, § 26 BDSG |
Wichtig: Sicherheitsfragen mit Gesundheitsbezug (z. B. Symptome) sind besondere Kategorien nach Art. 9 DSGVO. Solche Fragen nur stellen, wenn eine Ausnahme nach Art. 9 Abs. 2 greift, und eine Datenschutz-Folgenabschätzung prüfen.
Technische Umsetzung (Privacy by Design, Art. 25)
Verschlüsselung
- Name, E-Mail, Telefon, Firma, Zusatzangaben, Fotos und Unterschriften werden mit AES-256-GCM verschlüsselt gespeichert (
src/lib/crypto.ts). Der Schlüssel (APP_ENCRYPTION_KEY) liegt nur in der Server-Umgebung. - Für das Wiederfinden betroffener Personen (Auskunft, Löschung) wird ein Blind-Index (HMAC-SHA256 mit separatem Schlüssel) gespeichert, nicht die Klartext-E-Mail.
- PINs und Karten-IDs werden nur als HMAC-Prüfwert gespeichert, Passwörter mit bcrypt (Kostenfaktor 12).
- SQLite läuft mit
secure_delete=ON: gelöschte Inhalte werden in der Datei überschrieben.
Speicherbegrenzung (Art. 5 Abs. 1 lit. e)
Ein Löschlauf (src/lib/retention.ts) läuft alle sechs Stunden im Server und ist zusätzlich per npm run retention oder POST /api/cron/retention auslösbar. Fristen sind je Mandant im Datenschutz-Center einstellbar.
| Datenart | Voreinstellung | Was passiert |
|---|---|---|
| Besucherfotos | 1 Tag nach Abmeldung | Foto gelöscht |
| Besuchsdaten | 90 Tage | Anonymisiert: Personenbezug entfernt, Zeitpunkt, Typ und Standort bleiben für Statistik |
| Unterschriften | 365 Tage | Unterschriftsbild gelöscht, Bestätigung mit Version und Zeit bleibt |
| Zeiterfassung | 730 Tage | Buchungen gelöscht |
| Lieferungen | 90 Tage | Gelöscht |
| Evakuierungslisten | 30 Tage | Gelöscht |
| Zugriffsprotokoll | 365 Tage | Gelöscht |
Nicht wahrgenommene Einladungen werden ebenfalls nach der Besuchsfrist anonymisiert.
Datenminimierung (Art. 5 Abs. 1 lit. c)
- Je Besuchertyp ist einstellbar, ob Firma, E-Mail, Telefon, Foto und Ansprechpartner abgefragt werden.
- Fotos sind pro Standort standardmäßig deaktiviert.
- Am Kiosk gibt es keine vollständige Mitarbeiter- oder Besucherliste. Die Suche startet erst ab zwei bzw. drei Buchstaben und zeigt Besucher nur als „Vorname N.“.
- Chat-Benachrichtigungen (Slack, Teams) enthalten standardmäßig nur „Vorname N.“, weil diese Dienste häufig außerhalb der EU verarbeiten.
- Der Kiosk verwirft nach 90 Sekunden Inaktivität alle Eingaben.
Transparenz (Art. 12–14)
- Der Datenschutzhinweis mit Verantwortlichem und Datenschutzbeauftragtem ist am Kiosk, auf dem Handy und auf der Einladungsseite jederzeit abrufbar.
- Hinweise und Vereinbarungen sind versioniert. Jede Bestätigung speichert die Version und den Zeitpunkt (Nachweis nach Art. 5 Abs. 2).
Betroffenenrechte
- Auskunft (Art. 15) und Datenübertragbarkeit (Art. 20): Datenschutz-Center, Person über E-Mail oder exakten Namen suchen, Export als JSON.
- Löschung (Art. 17): im selben Schritt alle gefundenen Besuche anonymisieren. Einzelbesuche lassen sich in der Detailansicht anonymisieren.
- Berichtigung (Art. 16): über Empfang bzw. erneute Anmeldung. Jede Anfrage wird mit Bearbeiter und Trefferzahl protokolliert.
Rechenschaft und Zugriffskontrolle
- Rollen: Mitarbeiter/in, Gastgeber/in, Empfang, Administrator/in, Inhaber/in. Mitarbeitende ohne Empfangsrolle sehen keine Besucherdaten.
- Strikte Mandantentrennung: jede Abfrage filtert auf die Organisation des angemeldeten Nutzers.
- Das Zugriffsprotokoll erfasst Ansehen von Besuchsdetails, Exporte, PDF-Abrufe, Löschungen, Anmeldungen und Einstellungsänderungen. Es enthält selbst keine Klartext-Besucherdaten.
Sicherheit der Verarbeitung (Art. 32)
- Strikte Content-Security-Policy, keine externen Skripte, Schriften oder CDNs,
X-Frame-Options: DENY, HSTS,Referrer-Policy: no-referrer. - Sitzungen als zufällige Tokens, in der Datenbank nur als SHA-256 gespeichert,
HttpOnly,SameSite=Lax, 7 Tage gültig. - Begrenzung von Anmelde-, PIN- und Code-Versuchen gegen Durchprobieren.
- Der QR-Code für die Anmeldung per Handy wechselt alle 30 Sekunden (HMAC-signiert), das daraus ausgestellte Formular-Ticket gilt 20 Minuten.
- Ausweise sind über den Kiosk nur 15 Minuten nach der Anmeldung abrufbar.
- CSV-Exporte sind gegen Formel-Injection geschützt; Auskunfts-Exporte laufen per POST, damit keine Personendaten in URLs oder Server-Logs stehen.
E-Mail-Versand
- Versandweg wählt der Kunde (Einstellungen → E-Mail):
- eigener Mailserver (Business, Pro),
- Microsoft 365 (Pro mit Entra-SSO),
- „Über LogonApp“ nur, wenn der Betreiber einen eigenen E-Mail-Dienst anbietet; dieser wäre dann Unterauftragsverarbeiter und in der AVV-Anlage 2 zu nennen.
- Ohne eingerichteten Versandweg werden keine E-Mails versendet.
- Rollen: Eigener Mailserver und Microsoft 365 sind Dienste des Kunden, keine Unterauftragsverarbeiter des Betreibers (AVV § 8 Abs. 3, Anlage 1 Abschnitt F). Der Kunde nennt seinen E-Mail-Dienst als Empfänger in seinen Datenschutzhinweisen und im Verarbeitungsverzeichnis.
- Zugangsdaten: SMTP-Passwort und Client-Geheimnis werden mit AES-256-GCM verschlüsselt gespeichert und nicht wieder angezeigt. Das Graph-Token liegt nur im Arbeitsspeicher. Absender sind auf die Domains der SSO-Verbindung beschränkt.
- Verbindungen:
- Zum Mailserver nur über TLS mit Zertifikatsprüfung.
- Interne Netzadressen werden abgewiesen (Schutz des Betreibernetzes).
- Logs: Kein Betreff, keine Inhalte. E-Mail-Adressen werden aus Fehlermeldungen entfernt.
Events
- Zweck und Rechtsgrundlage: Organisation und Durchführung des Events (Anmeldung, Einlass, Ausweis, Sicherheit vor Ort) – in der Regel Art. 6 Abs. 1 lit. b bzw. lit. f DSGVO; die Bewertung trifft der Kunde als Verantwortlicher.
- Daten: wie bei Besuchen (Name, E-Mail, ggf. Firma, Telefon, Zusatzfelder der Teilnahmeart), verschlüsselt gespeichert. Die E-Mail-Adresse ist Pflicht, weil Bestätigung und Check-in-Code per E-Mail kommen.
- Transparenz: Die Registrierungsseite zeigt Verantwortlichen, Datenschutzbeauftragte/n, Zweck, Löschfrist und den allgemeinen Datenschutzhinweis des Kunden; die Anmeldung setzt die Kenntnisnahme voraus. Hinweise und Vereinbarungen der Teilnahmeart werden beim Check-in bestätigt (mit Version, optional Unterschrift).
- Speicherbegrenzung: Teilnahmen werden nach der Event-Frist (Voreinstellung höchstens 90 Tage, einstellbar 1–730) ab Event-Ende anonymisiert – auch Registrierungen ohne Check-in. Die allgemeine Besuchsfrist greift für Events nicht, damit frühe Anmeldungen nicht vor dem Event gelöscht werden.
- Betroffenenrechte: Absage jederzeit über den Link in der Bestätigung; Auskunft und Löschung über die normale Betroffenensuche (E-Mail-Blind-Index).
- Missbrauchsschutz: Begrenzung der Anmeldungen je Adresse, Honigtopf-Feld gegen Bots, keine Auskunft darüber, ob eine E-Mail-Adresse bereits angemeldet ist (die Bestätigung geht erneut an die angegebene Adresse). Registrierungsseiten sind
noindex.
Turso
Wird statt der lokalen Datei Turso als Datenbank genutzt, ist der Anbieter (ChiselStrike Inc., USA) ein weiterer Unterauftragsverarbeiter:
- Datenbank in einer EU-Region anlegen (z. B.
--location fra). - AVV/DPA mit Turso abschließen und im eigenen AVV als Unterauftragsverarbeiter listen; Drittlandbezug über das EU-US Data Privacy Framework bzw. Standardvertragsklauseln absichern.
- Name, Kontaktdaten, Antworten, Fotos und Unterschriften kommen bei Turso nur verschlüsselt an, da die Verschlüsselung in der App erfolgt und der Schlüssel den Server nie verlässt. Unverschlüsselt sind Zeitstempel, Besuchertyp, Standort, Namen der Mitarbeitenden und das Zugriffsprotokoll.
- Backups und Point-in-Time-Recovery bei Turso in die Löschfristen einbeziehen: gelöschte Daten können dort noch für die Aufbewahrungsdauer der Backups vorhanden sein.
Kiosk-Box
- Die Box speichert keine Besucherdaten. Ausweise werden als verschlüsseltes PDF in der Datenbank abgelegt, nach erfolgreichem Druck sofort gelöscht und nach spätestens einer Stunde verworfen. Auf der Box liegt das PDF nur für die Dauer des Drucks in einem temporären Verzeichnis.
- Jede Box hat ein eigenes Geheimnis (nur als Hash auf dem Server). Im Portal entfernte Boxen verlieren sofort den Zugang.
- Die Box baut nur ausgehende Verbindungen auf. Die lokale Service-Oberfläche (Port 8080) ist PIN-geschützt, gibt Kiosk-Adresse und Details nur an das Gerät selbst bzw. angemeldete Sitzungen heraus und sperrt nach fünf Fehlversuchen.
- Das Einbetten des Kiosks ist nur für
/k/…und nur vonlocalhost:8080erlaubt (Content-Security-Policyframe-ancestors).
Zahlungsabwicklung über Stripe
Ist STRIPE_SECRET_KEY gesetzt, rechnet der Betreiber Tarife über Stripe (Stripe Payments Europe Ltd., Irland; Konzernmutter in den USA) ab. Stripe ist ein weiterer Unterauftragsverarbeiter des Betreibers, nicht der Kunden:
- An Stripe gehen nur Abrechnungsdaten des Kunden: Firmenname, E-Mail der bestellenden Person, Rechnungs- und ggf. Lieferadresse, USt-IdNr. Besucherdaten werden nie übermittelt.
- Zahlungsdaten (Karte, IBAN) werden ausschließlich auf Seiten von Stripe eingegeben (Checkout, Kundenportal) und erreichen LogonApp nie.
- LogonApp speichert nur Stripe-Kunden- und Abo-Kennungen sowie Status und Laufzeit des Abos.
- Webhooks werden per Signatur geprüft und jedes Ereignis nur einmal verarbeitet.
- Für den Drittlandbezug: Stripe ist unter dem EU-US Data Privacy Framework zertifiziert, zusätzlich gelten die Standardvertragsklauseln im Stripe-DPA. Das DPA im Stripe-Dashboard akzeptieren und Stripe in der Datenschutzerklärung nennen.
Anfragen über die Website
Bestellanfragen für Komplett-Sets und Tarifanfragen enthalten Kontaktdaten (Name, E-Mail, ggf. Telefon) des anfragenden Unternehmens. Rechtsgrundlage ist Art. 6 Abs. 1 lit. b DSGVO (vorvertragliche Maßnahmen), die Einwilligung wird mit Zeitstempel gespeichert. Der Betreiber löscht Anfragen im Plattform-Bereich nach Abschluss.
Demo-Modus
DEMO_MODE=true ist nur für Präsentationen gedacht und darf nicht mit echten Personendaten betrieben werden: Ohne gesetzte Schlüssel verwendet die Demo einen festen, öffentlich bekannten Schlüssel, die Anmeldung erfolgt ohne Passwort, und alle Daten werden regelmäßig gelöscht.
Checkliste für Kunden (Verantwortliche)
- Verantwortlichen, Datenschutzbeauftragten und Hinweistext unter Einstellungen eintragen und prüfen.
- Löschfristen unter Datenschutz an die eigenen Vorgaben anpassen und im Hinweistext nennen.
- Verarbeitung ins Verzeichnis der Verarbeitungstätigkeiten aufnehmen (Vorlage:
Verarbeitungsverzeichnis.md). - Vertrag zur Auftragsverarbeitung ablegen (bei SaaS).
- Bei Fotos, Gesundheitsfragen oder systematischer Überwachung eine Datenschutz-Folgenabschätzung nach Art. 35 prüfen.
- Betriebsrat beteiligen, sobald Zeiterfassung oder Kartenleser eingesetzt werden (§ 87 Abs. 1 Nr. 6 BetrVG).
- Kiosk-Tablet im Kiosk-Modus betreiben (geführter Zugriff unter iPadOS, Kiosk-Modus unter Android), damit Gäste nicht in andere Apps wechseln.
- Slack- oder Teams-Webhooks nur einsetzen, wenn mit dem Anbieter ein AVV besteht und der Drittlandtransfer abgesichert ist.
Checkliste für Betreiber einer SaaS-Instanz
- Hosting in der EU, AVV mit dem Hoster, Unterauftragsverarbeiter im AVV listen.
APP_ENCRYPTION_KEYundAPP_SIGNING_KEYgetrennt vom Datenbank-Backup sichern (z. B. Secret-Manager).- TLS erzwingen (Reverse Proxy), Backups verschlüsseln und ihre Aufbewahrung an die Löschfristen anpassen.
- Impressum, Datenschutzerklärung, AGB und AVV unter
/impressum,/datenschutz,/agb,/avvmit echten Angaben füllen (docs/*.md). - Server-Logs ohne Request-Bodies betreiben und nach kurzer Frist rotieren.