Datenschutz in der LoyJoy Platform
Datenspeicherung und Verschlüsselung
Dieses Dokument gibt einen Überblick über alle Möglichkeiten, Daten in LoyJoy zu speichern. Es ist unser Ziel, den Datenschutz-Fußabdruck zu minimieren.
- LoyJoy kann Datenbanktabellen verwenden, um Daten zu speichern, einschließlich persönlicher identifizierbarer Informationen.
- Diese Datenspeicherung kann basierend auf dem Nutzungsprofil Ihres LoyJoy-Mandanten ganz einfach ein- oder ausgeschaltet werden.
- Zudem kann LoyJoy Daten im Local Storage des Endgeräts des Endkunden speichern (ähnlich wie ein Cookie).
- Die Daten aus dem Local Storage können per Schnittstelle in Bestandssysteme übertragen werden. So kann auf eine Speicherung in LoyJoy meist gänzlich verzichtet werden.
- Die Speicherung im Local Storage ist ausschließlich clientseitig, nicht serverseitig.
- Die Daten werden ausschließlich in der Europäischen Union mit AES-Verschlüsselung gespeichert.
- Alle Daten, die personenbezogene Daten enthalten können, haben ein automatisches Ablaufdatum. Darüber hinaus können Daten jederzeit manuell gelöscht werden.
- OpenAI-Modelle werden aus der EU via Microsoft Azure bezogen.
Liste der Speicheroptionen für personenbezogene Daten
Nr. | Name | Erforderlich | Funktionalität | Automatischer Ablauf | Ablauf basiert auf | Persönliche Daten enthalten |
---|---|---|---|---|---|---|
1 | Chat-Nachrichten für Live-Chat | Erforderlich, wenn das Live Chat Modul verwendet wird | Ermöglicht Ihnen, Nachrichten im LoyJoy Manager in „Live“ zu lesen. | 7 Tage (optional 30, 60 Tage) | Erstellt am | Chat-Nachrichten (AES-verschlüsselt) |
2 | Chat-Nachrichten für ausschl. automatisierte Chats | Erforderlich, wenn das Live Chat Modul verwendet wird | Ermöglicht Ihnen, auf die Liste der letzten Gespräche zuzugreifen. | 1 Tag | Erstellt am | Chat-Nachrichten (AES-verschlüsselt) |
3 | Chat-Nachrichten für Natural Language Understanding (NLU) oder GPT | Nein, empfohlen bei Verwendung von NLU oder GPT | Speichert Freitext-Chat-Nachrichten mit ihrer NLU-Klassifizierung bzw. GPT-Antwort wie in Manager > Knowledge, um die KI-Leistung zu überprüfen. | 30 Tage (optional 7 Tage) | Erstellt am | Chat-Nachrichten aus freien Texteinträgen (AES verschlüsselt) |
4 | Messenger-Sessions | Erforderlich bei Verwendung von Facebook Messenger, WhatsApp, WeChat | Speichert Chat-Sitzungen im Fall von Facebook, WhatsApp, WeChat, da diese Kanäle keine mit LocalStorage vergleichbare Sitzungsdatenbank anbieten. | 7 Tage (optional 30, 60 Tage) | Erstellt am | Kunden-ID durch die externe Plattform, personenbezogene Daten in Chatbots gesammelt |
5 | Laufzeit-Log | Ja | Speichert Log-Einträge wie in Kunden > Log. Zum Beispiel ggf. externe API-Fehler (inkl. HTTP-Body im Debug-Modus), Kundenauthentifizierung (Fail, Pass). | 7 Tage (optional 30 Tage) | Erstellt am | E-Mail-Adresse (AES verschlüsselt), IP-Adresse, Nachricht (AES verschlüsselt) |
6 | Manager-Log | Ja | Speichert Log-Einträge wie in Manager > Einstellungen > Log Datenzugriff durch Manager-Benutzer | 180 Tage | Erstellt am | LoyJoy Manager-Benutzer-E-Mail-Adressen, IP-Adressen, Datum und Uhrzeit der Aktivität (AES-verschlüsselt) |
7 | Security-Log | Ja | Speichert Log-Einträge zu sicherheitsrelevanten Ereignissen (z. B. Authentifizierung, Daten-Export) und i. A. Zugriffen im LoyJoy Manager, mit dem Ziel der IT-Security-Mustererkennung Datenzugriff durch LoyJoy-Systemadministratoren | 365 Tage | Erstellt am | LoyJoy Manager-Benutzer-E-Mail-Adressen, IP-Adressen, Timestamp (zwecks Mustererkennung unverschlüsselt) |
8 | Variablen | Nein | Speichert alle Prozessvariablen für Exportzwecke wie in Manager > Kunden > Variablen herunterladen | 60 Tage (optional 30, 90, 180, 360 Tage) | Verfällt am | Variablenwerte, E-Mail-Adresse, Device ID, ggf. auch Dokumente (AES verschlüsselt) |
9 | Marketing-Einwilligungen | Nur bei Verwendung der Prozessmodule Newsletter-Opt-In, Reminder-Opt-In, Profiling-Opt-In, Web-Push-Opt-In, kann deaktiviert werden | Speichert Einwilligungen für Exportzwecke. | 180 Tage (optional 60, 90, 360 Tage) | Erstellt am | E-Mail-Adresse (AES-verschlüsselt), IP-Adresse (AES-verschlüsselt) |
10 | Gutschein-Codes eingelöst | Nur bei Verwendung der Prozessmodule Gutschein oder Codes, deaktivierbar | Speichert Gutscheincodes zur Ausgabe an Kunden. Ein ausgegebener Gutscheincode wird einer E-Mail-Adresse zugeordnet, sodass er nicht zweimal ausgegeben werden kann. | 180 Tage (optional 30, 60, 90, 360 Tage) | Erstellt am | E-Mail-Adresse (AES verschlüsselt) |
11 | Loyalty-Transaktionen | Nur wenn Prozessmodule Loyalty, Loyalty Referral, Loyalty Sharing verwendet werden, kann deaktiviert werden | Speichert Loyalty-Transaktionen, die im Chat als Münzen dargestellt sind. Zum Beispiel kann ein Kunde bei einer Treuetransaktion 10 Münzen erhalten, bei einer anderen Treuetransaktion 2 Münzen für eine Prämie ausgeben, wobei dem Kunden 8 Münzen und eine Prämieneinlösung übrig bleiben. | 180 Tage (optional 30, 60, 90, 360, 720 Tage) | Erstellt am | E-Mail-Adresse (AES-verschlüsselt) |
12 | Loyalty Prämien Einlösung | Nur bei Verwendung des Prozessmoduls Prämien, deaktivierbar | Speichert das Einlösen von Prämien durch Kunden aus Loyalty-Aktionen. | 60 Tage (optional 30, 90, 180 Tage) | Erstellt am | E-Mail-Adresse, Vorname, Nachname, Postanschrift, Telefon (alle AES verschlüsselt) |
13 | Gewinnspiel-Teilnahmen | Nur wenn Prozessmodul Gewinnspiel-Teilnahme oder Sofortgewinn, kann deaktiviert werden, | Speichert Teilnahmen, aus denen auch ein Teilnehmer zufällig ausgewählt werden kann. Kann auch eine manuell ausgewählte Zufallsliste von Teilnehmern als Kopie des entsprechenden Teilnahmeeintrags speichern. | 60 Tage (optional 30, 90, 180 Tage) | Erstellt am | E-Mail-Adresse, Vorname, Nachname, Postanschrift, Telefon (alles AES-verschlüsselt) |
14 | Push Abonnements | Nur wenn Prozessmodul “Web-Push-Opt-In” verwendet wird und Push-Nachrichten unter dem Menüpunkt Push versendet werden | Speichert ein Web-Push-Abonnement, das bei der Erteilung einer Web-Push-Zustimmung im User-Agent (Web-Browser) erstellt wird | 720 Tage (optional 30, 60, 90, 180, 360) | Erstellt am | auth_aes, endpoint, p256dh_aes, private_key_aes, public_key_aes |
15 | Push Notifications | Nur wenn Prozessmodul Web-Push-Opt-In verwendet wird | Speichert eine bestimmte Web-Push-Benachrichtigung für einen bestimmten Benutzeragenten (Webbrowser), die zum Zeitpunkt due_at gesendet werden soll | Nach Zeitpunkt due_at | Due at | actions_1_action, actions_1_icon_url, actions_1_title, actions_2_action, actions_2_icon_url, actions_2_title, auth_aes, badge_url, body, dir, due_at, endpoint, entity_id, icon_url, image_url, p256dh_aes, |
16 | Web Notifications | Nur wenn Prozessmodul Notification verwendet wird | Speichert Web-Benachrichtigungen, die in der Startansicht der Chat-Benutzeroberfläche mit dem Benachrichtigungs-Widget angezeigt werden | Nach erhalt oder nach 7 Tagen (optional 30, 60, 90, 180) | Erstellt am | body, bot_id, jump_bpmn_process_id, device_id, due_at, entity_id, expires_at, icon_url, title, url |
Datenübertragung und Verschlüsselung
Data at Rest
Daten werden verschlüsselt gespeichert.
- AES-verschlüsselt mit AES/CBC/PKCS5Padding und Schlüsselgröße 128.
- Die Datenbankzeilen werden nach dem jeweiligen Ablaufdatum entsprechend der konfiguration im Mandanten automatisch gelöscht.
- Datenbank-Backups werden rotierend nach 60 Tagen gelöscht.
- In der Vektordatenbank werden die Daten (mit Ausnahme der Vektoren) mit AES verschlüsselt gespeichert. Die Vektoren sind nicht verschlüsselt, weil sie als Such-Index dienen, somit Maschinen-lesbar sein müssen. Es sind jedoch nur abstrahierte Repräsentationen der Rohdaten. Der AES-Key ist der Vektordatenbank nicht bekannt, sondern wird lediglich im Application Code verwaltet.
Data in Transit
Daten während der Übertragung werden mit TLS verschlüsselt.
- Alle Dienste werden auf Google Cloud Run gehostet, daher gilt die Google Load Balancer-Zertifikatsverwaltung.
- Die LoyJoy GmbH verwaltet keine TLS-Zertifikate, dies erfolgt automatisiert auf Basis von LetsEncrypt von Google Cloud Platform.
Secrets
Secrets werden vom Secret Manager der Google Cloud Platform verwaltet. Dies gilt für alle Geheimnisse mit Ausnahme des privaten AES-Schlüssels, der für die Google Cloud Platform nicht sichtbar gemacht wird. Der AES-Schlüssel wird nicht im Plaintext als Secret gespeichert, sondern als Ciphertext, der durch ein Hardware Security Module dekodiert wird.
Cookies und LocalStorage
Cookies im Manager (LoyJoy Backend Platform)
Der LoyJoy Cloud Platform Manager schreibt und liest ein sicheres Authorization Cookie, wenn sich ein Manager-Nutzer anmeldet. Das Cookie enthält ein signiertes JWT mit den Anmeldedaten des Benutzers und läuft nach 8 Stunden ab.
Cookies in der Chat-UI
Aus unserer Sicht ist davon auszugehen, dass der Nutzer eine funktionierende Chat-Lösung erwartet, d. h. dass der Inhalt des Chats nicht bloß durch das Schließen des Browsers oder durch längere Inaktivität verloren geht.
Die LoyJoy Platform nutzt statt eines Cookies das LocalStorage des Browsers. Im LocalStorage speichern wir den Zustand des Chats, d. h. den bisherigen Chatverlauf mit den Nutzereingaben.
Die LoyJoy Chat-UI speichert diese Chat-Sitzung nur clientseitig, nicht serverseitig.
Die Nutzung des LocalStorage kann in der Platform auch deaktiviert werden (siehe Speicherdauer des Cookies).
Nur bei nativer Integration in die Kanäle Facebook Messenger, WeChat, sowie WhatsApp speichert die LoyJoy Chat-UI die komplette Chat-Sitzung clientseitig, nicht serverseitig. Unser Ansatz minimiert aus Datenschutzgründen serverseitige Sitzungsdaten.
Die Chat-UI schreibt und liest das LocalStorage-Objekt loyjoy-chat.
Dieses Objekt enthält die Eigenschaften Messages und Session.
- Messages enthält die Chatnachrichtenverläufe des Chats,
- Session enthält ein signiertes JWT-Objekt, das alle Sitzungsvariablen des Chats enthält, d. h. Prozessvariablen.
Speicherdauer des Cookies
Die Speicherdauer der Chatnachrichtenverläufe im LocalStorage-Objekt kann in der LoyJoy Platform konfiguriert werden. Sie liegt zwischen 30 Minuten und 14 Tagen. Bei Auswahl von “0 Minuten” werden Chatnachrichtenverläufe deaktiviert.
Integration mit Consent-Managern
Wenn Sie einen Consent Manager (auch bekannt als Cookie-Banner) auf Ihrer Webseite verwenden, kann der LoyJoy-Chatbot auf die Auswahl des Kunden reagieren.
Der Consent Manager kann in LoyJoy auf zwei Arten integriert werden: Basic oder Smart.
Bei Basic wird das LoyJoy-Code-Snippet mit Parametern so angepasst, dass es zu Ihrem Consent Manager passt. Typischerweise sind diese Parameter die Cookie-Kategorie und dass das Widget nach dem Schließen des Consent Managers geladen werden soll. Der Nachteil des Basic-Modus ist, dass (1) wenn LoyJoy als essentielles Cookie eingestuft wird, der LoyJoy-Chat sofort geladen wird und möglicherweise mit dem Fenster des Consent Managers kollidiert und (2) wenn LoyJoy als Marketing-Cookie eingestuft wird, der Chat nicht geladen wird, wenn der Kunde solche Cookies ablehnt.
Im Smart-Modus werden diese Nachteile abgemildert. LoyJoy wartet (1) darauf, dass das Fenster des Consent Managers geschlossen wird, um danach den Chat anzuzeigen und (2) zeigt den Chat in jedem Fall an, allerdings mit deaktivierten Cookies, wenn der Kunde Cookies abgelehnt hat. Es ist nicht notwendig, LoyJoy als essentiell, funktional oder Marketing zu klassifizieren, da der Chat nur dann Cookies zulässt, wenn alle Kategorien zugestimmt wurden.
Lesen von Login-Cookies
Die Chat-Benutzeroberfläche kann non-secure Cookies lesen, um einen externen Authentifizierungskontext zu verwenden, um den Kunden automatisch in der LoyJoy Chat-UI anzumelden.
FAQ
Welche Daten werden an Cloudflare in die USA übertragen oder auch nicht?
Cloudflare ist ein vom Bundesamt für Sicherheit in der Informationstechnik (BSI) geführter qualifizierter DDoS-Mitigation-Dienstleister. Cloudflare verfügt über eine Zertifizierung nach EU-U.S. Data Privacy Framework.
Cloudflare betreibt ein weltweites Content Delivery Network (CDN) und stellt Schutzfunktionen für die LoyJoy-Webanwendung zur Verfügung. Damit läuft LoyJoy jederzeit performant und sicher.
Cloudflare verarbeitet nur die IP-Adresse der Kunden, da dies technisch erforderlich ist. Weitere personenbezogene Daten, die ggf. im Chatverlauf anfallen, werden NICHT über Cloudflare geroutet.
Wird die IP-Adresse von jedem Kunden automatisch getrackt?
Nein. Tracking-Technologien werden von LoyJoy grundsätzlich nicht genutzt (es kann aber z. B. mit einem Facebook Pixel integriert werden). Die Übertragung der IP-Adresse ist im Internet technisch notwendig, um Daten zwischen Webserver und Endgerät des Kunden austauschen zu können. Eine webbasierte Applikation (z. B. eine Webseite oder LoyJoy) kann technisch nicht ohne Übertragung der IP-Adresse funktionieren. Wird der LoyJoy-Chat nur technisch geladen (d.h. die Chatbubble geladen), speichern wir die IP-Adresse nicht. Sofern der Chat geöffnet und genutzt wird, speichern wir den Chatverlauf inklusive IP-Adresse für 30 Tage.
Hat LoyJoy bereits die aktuellen EU-Standardvertragsklauseln mit den Subdienstleistern vereinbart?
Ja, die vereinbarten Standardvertragsklauseln wurden nach dem Schrems II-Urteil aktualisiert.
Diese können hier eingesehen werden:
https://cloud.google.com/terms/data-processing-terms
https://www.cloudflare.com/cloudflare-customer-dpa/
Werden personenbezogene Daten pseudonymisiert verarbeitet?
Die Daten werden verschlüsselt transportiert und gespeichert.
Welche Maßnahmen bezüglich Übertragung von Daten in Drittstaaten werden, neben den Standardvertragsklauseln, ergriffen?
Leider ist der Abschluss der Standardvertragsklauseln für die Aufsichtsbehörden bei Datenübermittlungen in Drittländer nicht ausreichend. Daher haben wir zusätzliche Sicherheitsmaßnahmen der Daten implementiert, so dass ein Zugriff von US-Behörden (faktisch/theoretisch) nicht möglich ist.
Dazu zählen insbesondere die Transportverschlüsselung und Speicherverschlüsselung.
Weiterhin bieten wir den weitgehenden Verzicht auf die Nutzung einer serverseitigen Datenspeicherung. Die Daten werden dann lokal auf dem Endgerät des Kunden gespeichert und bei Bedarf über eine API verschlüsselt übertragen oder als verschlüsselter Anhang einer E-Mail bereitgestellt.
Was ist der LocalStorage?
Der Localstorage stellt einen Speicher im Browser des Kunden dar. Im Gegensatz zum Einsatz von Cookies werden Informationen im Localstorage nicht an den Server übertragen. Damit ist die Nutzung des LocalStorage im Vergleich zu Cookies datensparsamer.
Der Unterschied zwischen Localstorage und Sessionstorage ist, dass der Localstorage niemals abläuft. Und der Sessionstorage läuft beim Schließen des Browserfensters/tabs ab und wird gelöscht.
Welche Daten werden automatisch beim Starten des Chats verarbeitet?
Wie bei jedem Webseiten-Aufruf wird die IP-Adresse übertragen. Dazu der Zeitpunkt des Aufrufs, der User Agent (verwendeter Browser), URL der Webseite und die Referrer URL.
Welche Dienste der Google Cloud werden wofür verwendet?
Google Cloud Firebase CDN | Hosting von statischem Code (JavaScript, HTML, CSS) der LoyJoy Platform |
---|---|
Google Cloud Run | Hosting und serverseitige Ausführung von Java-Code der LoyJoy Platform in Cluster mit horizontaler Skalierbarkeit |
Google Cloud Functions | Hosting und serverseitige Ausführung von Nicht-Java-Code der LoyJoy Platform für spezifische Aufgabenstellungen (PDF-Erstellung, Suchindex-Generierung etc.) |
Google Cloud Storage | Hosting von Mandanten-spezifischen Administrationsobjekten (Modelle, Knowledge-Artikel, Bilder, Schriftarten etc.) in mehreren multiregional replizierten Buckets |
Google Cloud DataStore | Verschlüsselte Speicherung personenbezogener Daten als Append-Only in multiregional replizierten Tabellen |
Google Cloud SQL | Anonymisierte Speicherung von Analytics-Daten; Verschlüsselte Speicherung von Konversationen, Chat-Nachrichten, Variablen, Gewinnspiel-Teilnahmen |
Google Cloud Memorystore Redis | Verschlüsselte Speicherung von Chat-Nachrichten (falls nicht in Google Cloud SQL) |
Google Cloud Secret Manager | Verschlüsselte Speicherung von Konfigurations-Parametern |
Google Cloud Trace | Verteiltes Tracing der gehosteten Dienste zur Erfassung von anonymisierten Leistungsdaten |
Google Cloud Scheduler | Konfiguration und Auslösung von Cron-Jobs |
Google Cloud Error Reporting | Automatisierte Erfassung von client- und serverseitigen anonymisierten Fehlermeldungen sowie automatisierte Benachrichtigungen an DevOps |
Werden Fragen an OpenAI in die USA übertragen?
Nein, die Verarbeitung findet in Rechenzentren von Microsoft Ireland in der EU statt. Wir empfehlen, Ihren eigenen Microsoft Azure API Key in der LoyJoy Platform zu hinterlegen. Damit läuft OpenAI direkt in Ihrer eigenen Microsoft Azure Subscription. In diesem Falle ist Microsoft kein Subdienstleister von LoyJoy, sondern Ihr direkter Dienstleister.
Speichert Azure OpenAI Daten für das Training der KI?
Nein, die Fragen an die KI werden nicht für das KI-Training verwendet. Nach Beantwortung einer Frage werden die Daten nach 30 Tagen seitens OpenAI (bei Verarbeitung in den USA) bzw. Microsoft Ireland (bei Verarbeitung in der EU) gelöscht.
Welche personenbezogenen Daten werden an Azure OpenAI übertragen?
Es werden nur die Fragen übertragen.
Wo werden die in die LoyJoy-Wissensdatenbank hochgeladenen Daten gespeichert?
Ihre Daten werden in der EU verschlüsselt gespeichert. Es werden nicht die Originaldateien, sondern ausschließlich abgeleitete Wissens-„Chunks“ als Grundlage für das Retrieval Augmented Generation (RAG)-Verfahren abgelegt. Sie haben jederzeit die Möglichkeit, diese Daten eigenständig innerhalb der Plattform zu löschen.
Fragen zum EU AI Act
Welche Rolle hat LoyJoy mit der angebotenen Chatbot-Plattform und was ist das Geschäftsmodell?
LoyJoy ist eine Software as a Service-Plattform (SaaS) für Chatbots, die externe KI-Modelle in ihr Leistungsangebot integriert. Als Subdienstleister greift LoyJoy unter anderem auf Modelle von OpenAI via Microsoft Azure (Vertragspartner Microsoft Ireland) zurück.
Der Anbieter im Sinne des AI Act ist Microsoft Azure (oder ggf. ein anderer LLM-Anbieter nach Wahl des Kunden). Sowohl LoyJoy als auch Kunden von LoyJoy sind als Nutzer/Betreiber einzustufen. Es wird seitens LoyJoy weder ein eigenes Modell entwickelt noch wird ein Fine-Tuning von Modellen durchgeführt.
Kunden haben die Möglichkeit, LoyJoy mit ihrer eigenen Azure-Subscription zu verknüpfen. In diesem Fall ist Microsoft direkter Subdienstleister des Kunden.
Wie sieht das vertragliche Verhältnis zwischen LoyJoy, Microsoft Azure und OpenAI aus?
Das vertragliche Verhältnis ist in der Antwort auf die vorherige Frage bereits erläutert.
Wie funktioniert das Modell in Bezug auf Drittparteien und Trainingsdaten? Wie werden die von Kunden bereitgestellten Daten technisch verarbeitet und gegebenenfalls genutzt?
Aus den bereitgestellten Quelldaten für die KI werden sogenannte Embeddings berechnet und in einer Vektordatenbank gespeichert. Eingehende Fragen werden ebenfalls mit Embeddings versehen. Zunächst erfolgt ein semantischer Abgleich anhand der Embeddings, um mögliche relevante Inhalte zu identifizieren. Diese Inhalte werden dem Large Language Model (LLM) zusammen mit einem Prompt und einer System Message per API übergeben, damit das LLM eine Antwort generieren kann. Optional können die identifizierten Inhalte vorab durch ein LLM semantisch hinsichtlich ihrer Eignung zur Beantwortung der Frage bewertet werden (sogenanntes Reranking).
Was passiert mit den von Kunden eingegebenen Daten und werden diese für das Training der KI genutzt (auch wenn sie nicht personenbezogen sind)?
Die von Kunden eingegebenen Daten werden nicht für das Training einer KI verwendet.