Verkehrsverbund Rhein-Ruhr (VRR): Tracking ohne Einwilligung – Deutschlandticket Teil2

1. VRR App & DeutschlandTicketVerkehrsverbund Rhein-Ruhr

Im Rahmen der Artikelserie »Deutschlandticket« werden einige Apps von Tarif- und Verkehrsverbünden stichprobenartig auf ihr Datensendeverhalten geprüft. Mittels eines Intercepting-Proxys wird das Verhalten der Apps hauptsächlich beim Start analysiert. Es wird geprüft, wohin eine App eine Verbindung aufbaut und welche Daten dabei übermittelt werden. Die Ergebnisse sollen Aufschluss darüber geben, wie datenschutzfreundlich eine App in der Standardkonfiguration ist.

Im vorliegenden Beitrag wird die VRR App & DeutschlandTicket analysiert. Die Analyse erfolgt unter Android. Die Ausgangslage für den nachfolgenden Test der App ist wie folgt:

  • Betriebssystem: Android 10 (Xiaomi Mi A1)
  • App-Version: 6.30.0.1155567 (Android)
  • Verbreitung: Über 500.000 Downloads (Google Play Store)
  • Exodus Privacy: In der Version 6.30.0.1155567 (Android) sind 3 Tracker integriert

Nachfolgend wird kurz das Datensendeverhalten der App beleuchtet.

Dieser Beitrag ist Teil einer Artikelserie:

2. Datensendeverhalten

Unmittelbar nach dem Start, noch bevor überhaupt eine Interaktion stattfindet, werden die nachfolgenden Verbindungen initiiert:

  • Google Firebase (firebaseinstallations.googleapis.com)
  • Google Firebase Crashlytics (firebase-settings.crashlytics.com)
  • Adjust (Adjust GmbH: Tracking/Nutzeranalyse)
  • VRR (app.vrr.de / shop.cms.vrr.de / vrr-db-ticketshop.de)

Auszugsweise werde ich nachfolgend die Verbindung zu Crashlytics und Adjust darstellen.

[1] Eine initiale Verbindung erfolgt zu Google Firebase Crashlytics (USA), einem Dienst für die Erstellung/Auswertung von Absturzberichten [firebase-settings.crashlytics.com]:

GET /spi/v2/platforms/android/gmp/1:799983092236:android:1d6d1ab199d3bf83a72429/settings?instance=9f5cebfdb52a29e9627e0b10fa8d01148d0f4bc5&build_version=3155567&display_version=6.30.0.1155567&source=4 HTTP/1.1
X-CRASHLYTICS-DEVELOPER-TOKEN: 470fa2b4ae81cd56ecbcda9735803434cec591fa
X-CRASHLYTICS-DEVICE-MODEL: Xiaomi/Mi A1
X-CRASHLYTICS-INSTALLATION-ID: e485a7060f0a4e5baec0ba4a2e6773ea
X-CRASHLYTICS-OS-DISPLAY-VERSION: 10
Accept: application/json
X-CRASHLYTICS-API-CLIENT-VERSION: 18.3.5
User-Agent: Crashlytics Android SDK/18.3.5
X-CRASHLYTICS-API-CLIENT-TYPE: android
X-CRASHLYTICS-GOOGLE-APP-ID: 1:799983092236:android:1d6d1ab199d3bf83a72429
X-CRASHLYTICS-OS-BUILD-VERSION: 10037230
Host: firebase-settings.crashlytics.com
Connection: close
Accept-Encoding: gzip, deflate

[2] Weitere Verbindungen erfolgen zu Adjust GmbH (Hauptfirmensitz San Francisco, USA), einem Unternehmen, dass sich auf die Verfolgung und Analyse von Nutzern innerhalb von Apps spezialisiert hat [app.adjust.com]:

POST /session HTTP/1.1
Client-SDK: flutter4.33.1@android4.33.3
Content-Type: application/x-www-form-urlencoded
User-Agent: Dalvik/2.1.0 (Linux; U; Android 10; Mi A1 Build/QQ3A.200805.001)
Host: app.adjust.com
Connection: close
Accept-Encoding: gzip, deflate
Content-Length: 907

gps_adid_attempt=1
&country=DE
&api_level=29
&event_buffering_enabled=0
&hardware_name=lineage_tissot-userdebug 10 QQ3A.200805.001 10037230
&app_version=6.30.0.1155567
&app_token=yxm97goq08ao
&installed_at=2023-05-08T08:48:40.183Z+0200
&created_at=2023-05-08T09:15:12.663Z+0200
&device_type=phone
&language=de
&gps_adid=d57fa49c-45a8-4a60-8b53-2aad7bde9a73
&connectivity_type=1
&device_manufacturer=Xiaomi
&display_width=1080
&device_name=Mi A1
&needs_response_details=1
&os_build=QQ3A.200805.001
&updated_at=2023-05-08T08:48:40.183Z+0200
&cpu_type=arm64-v8a
&screen_size=normal
&screen_format=long
&gps_adid_src=service
&os_version=10
&android_uuid=4e5c5e36-f672-4724-9e1f-81389a8d6995
&environment=production
&screen_density=high
&attribution_deeplink=1
&session_count=1
&display_height=1920
&package_name=mentz.com.vrr_cibo_app
&os_name=android
&ui_mode=1
&tracking_enabled=1
&sent_at=2023-05-08T09:15:12.694Z+0200

Auffällig ist: Ohne ausdrückliche, informierte, freiwillige und aktive Einwilligung wird die Google-Advertising-ID (d57fa49c-45a8-4a60-8b53-2aad7bde9a73) vom Gerät ausgelesen und an Adjust übermittelt. Bei der Google-Advertising-ID handelt es sich nach DSGVO um ein eindeutig personenbeziehbares Datum.

Daneben werden etliche Geräte-IDs, Gerätemodell, Auflösung etc. vom Gerät abgefragt und ohne Einwilligung an Adjust übermittelt. Ich kann nur gebetsmühlenartig wiederholen: Solche Zugriffe auf Endeinrichtungen zu Zwecken der Webanalyse, der Marktforschung und jede Form der Werbung ohne informierte Einwilligung ist nach § 25 Abs. 1 TTDSG unzulässig. § 25 TTDSG regelt den Schutz der Privatsphäre bei Endeinrichtungen und setzt Art. 5 Abs. 3 der ePrivacy-Richtlinie um.

Der obligatorische (Cookie-)Consent-Banner wird erst nach der Datenübermittlung eingeblendet – zu spät, denn bis zu diesem Punkt sind die Daten bereits abgeflossen:

Cookie-Banner

Was sagen die Datenschutzhinweise dazu?

Um unsere Marketingaktivitäten zu optimieren, nutzen wir den Dienstleister Adjust (adjust GmbH, Saarbrücker Str. 37A, 10405 Berlin), mit dem wir eine Vereinbarung zur Auftragsverarbeitung gemäß Art. 28 DSGVO abgeschlossen haben. Weitere Informationenzur Datenverarbeitung durch Adjust sind zu finden unter https://www.adjust.com/privacypolicy/.

Adjust erhebt die folgenden personenbezogenen Daten von Ihnen: IP- und MAC-Adresse, Device IDs, inklusive aller Advertising-IDs, http-Header inklusive SDK-Version, User Agent (Land, Sprache, lokale Einstellungen, Version des Betriebssystems), Nutzer-Device und Werbeaktivitäten, App und Event-Token, Aufruf der Ticketübersichtseite, Warenkorbstatus (belegt/nicht belegt), Login-Status, Standort, aktuelle Geschwindigkeit (langsam, mittel,schnell), Aktion, die der Nutzer vor der aktuellen Aktion in der App durchgeführt hat, Registrierungsstatus im Ticketshop, Anzahl und Typ an zusätzlichen Verkehrsmitteln.

Die Verarbeitung Ihrer personenbezogenen Daten zu diesem Zweck beruht auf Ihrer Einwilligung gemäß Art. 6 Abs. 1 lit. a DSGVO. Sie können Ihre Einwilligung jederzeit mit Wirkung für die Zukunft widerrufen, indem Sie in den Datenschutz-Einstellungen in der App die Einstellungen zur Nutzungsanalyse über den Schieberegler „Daten zurMarketingwirksamkeit“ deaktivieren.

Entscheidend ist:

Die Verarbeitung Ihrer personenbezogenen Daten zu diesem Zweck beruht auf Ihrer Einwilligung gemäß Art. 6 Abs. 1 lit. a DSGVO.

Nein, wie der Datenmitschnitt belegt, erfolgt die Verarbeitung bereits bevor der Nutzer eine Einwilligung dazu erteilt hat.

Der Kuketz-Blog ist spendenfinanziert!

Unabhängig. Kritisch. Informativ. Praxisnah. Verständlich.

Die Arbeit von kuketz-blog.de wird vollständig durch Spenden unserer Leserschaft finanziert. Sei Teil unserer Community und unterstütze unsere Arbeit mit einer Spende.

Mitmachen ➡

3. Fazit

In der aktuell vorliegenden Version entspricht die App des VRR nicht den gesetzlichen Anforderungen an die DSGVO und das TTDSG. Die Datenverarbeitung beginnt bereits, bevor eine notwendige Einwilligung eingeholt wurde. Leider ein häufiger Fehler vieler App-Entwickler bzw. einer mangelnden Qualitätskontrolle. Die Verantwortlichen sollten dringend nachbessern. Die Stichprobe aus Nordrhein-Westfalen (VRR) erwies sich bedauerlicherweise als Reinfall.

Über den Autor | Kuketz

Mike Kuketz

In meiner freiberuflichen Tätigkeit als Pentester / Sicherheitsforscher (Kuketz IT-Security) schlüpfe ich in die Rolle eines »Hackers« und suche nach Schwachstellen in IT-Systemen, Webanwendungen und Apps (Android, iOS). Des Weiteren bin ich Lehrbeauftragter für IT-Sicherheit an der Dualen Hochschule Karlsruhe, sensibilisiere Menschen in Workshops und Schulungen für Sicherheit und Datenschutz und bin unter anderem auch als Autor für die Computerzeitschrift c’t tätig.

Der Kuketz-Blog bzw. meine Person ist regelmäßig in den Medien (heise online, Spiegel Online, Süddeutsche Zeitung etc.) präsent.

Mehr Erfahren ➡

SpendeUnterstützen

Die Arbeit von kuketz-blog.de wird zu 100% durch Spenden unserer Leserinnen und Leser finanziert. Werde Teil dieser Community und unterstütze auch du unsere Arbeit mit deiner Spende.

Folge dem Blog

Wenn du über aktuelle Beiträge informiert werden möchtest, hast du verschiedene Möglichkeiten, dem Blog zu folgen:

Bleib aktuell ➡


Diskussion

Ich freue mich auf Deine Beteiligung zum Artikel

HilfeWenn du Ergänzungen oder konkrete Fragen zum Beitrag hast, besuche das offizielle Forum. Dort kann der Beitrag diskutiert werden. Oder besuche den Chat, um dein Anliegen zu besprechen. zur Diskussion ➡

Abschließender Hinweis

Blog-Beiträge erheben nicht den Anspruch auf ständige Aktualität und Richtigkeit wie Lexikoneinträge (z.B. Wikipedia), sondern beziehen sich wie Zeitungsartikel auf den Informationsstand zum Zeitpunkt des Redaktionsschlusses.

Kritik, Anregungen oder Korrekturvorschläge zu den Beiträgen nehme ich gerne per E-Mail entgegen.