Auch Jahre nach Einführung der DSGVO sind Unternehmen immer noch nicht in der Lage, die bestehenden Datenschutzgesetze einzuhalten. Ein weiteres Beispiel hierfür ist die App Bonify (nicht mehr im Play Store abrufbar) der Forteil GmbH/SCHUFA Holding AG (im Folgenden SCHUFA). In diesem Beitrag habe ich die Version 2.0.11 einer kurzen Analyse unterzogen. Der Exodus-Privacy-Report lässt bereits erahnen, wohin die Reise geht:
- Adjust
- Facebook Analytics
- Facebook Login
- Facebook Share
- Google Analytics
- Google CrashLytics
- Google Firebase Analytics
- Google Tag Manager
- Segment
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: 2.0.11 (Android)
- Verbreitung: Über 100.000 Downloads (Google Play Store)
- Exodus Privacy: In der Version 2.0.11 (Android) sind 9 Tracker integriert
Update 23.07.2023
Die SCHUFA bzw. der Geschäftsführer von Bonify hat mich kontaktiert. Sie haben einen »Action Plan« definiert, um die kritisierten Punkte baldmöglichst zu beheben.
1. Analyse Datensendeverhalten
Die nachfolgenden Datenübermittlungen erfolgen, bevor der Nutzer eine Interaktion durchgeführt hat. Dies ist häufig problematisch, da diese Daten/Informationen abgefragt bzw. übermittelt werden, bevor der Nutzer seine ausdrückliche, informierte, freiwillige und aktive Einwilligung gegeben hat.
[1] Unmittelbar nach dem Start der App wird eine Verbindung zu Google Firebase (USA) initiiert – eine Entwicklungs-Plattform für mobile Anwendungen [firebaseinstallations.googleapis.com]:
POST /v1/projects/bonify-449b2/installations HTTP/1.1 Content-Type: application/json Accept: application/json Cache-Control: no-cache X-Android-Package: com.bonifynative x-firebase-client: fire-installations/16.3.3 kotlin/1.7.10 fire-iid/20.2.3 fire-rc/19.1.4 fire-android/ fire-analytics/17.5.0 fire-fcm/20.2.4 fire-cls/17.2.1 fire-core/19.3.1 fire-abt/19.0.1 x-firebase-client-log-type: 3 X-Android-Cert: 50F91BBD1103152AEA29A85395CD3B746C98EA96 x-goog-api-key: AIzaSyBKZh-i3M0FoWnWXW-GI7wh4u3DHJAQgA4 User-Agent: Dalvik/2.1.0 (Linux; U; Android 10; Mi A1 Build/QQ3A.200805.001) Host: firebaseinstallations.googleapis.com Connection: close Accept-Encoding: gzip, deflate Content-Length: 129 { „fid“:“fELUnbUzSViUtdzCRsIt7J“, „appId“:“1:186930373401:android:dc8759f54dc948b6″, „authVersion“:“FIS_v2″, „sdkVersion“:“a:16.3.3″ }
[2] Eine weitere 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:186930373401:android:dc8759f54dc948b6/settings?instance=2080493121b91aa76e7b7ef76828c7a14e45ff57&build_version=2102378&display_version=2.0.11&source=4 HTTP/1.1 Host: firebase-settings.crashlytics.com Cache-Control: no-cache X-Crashlytics-Developer-Token: 470fa2b4ae81cd56ecbcda9735803434cec591fa X-Crashlytics-Device-Model: Xiaomi/Mi A1 X-Crashlytics-Installation-Id: 76e7b82c6f5840a6a9c30fa0bb93ed67 X-Crashlytics-Os-Display-Version: 10 Accept: application/json X-Crashlytics-Api-Client-Version: 17.2.1 User-Agent: Crashlytics Android SDK/17.2.1 X-Crashlytics-Api-Client-Type: android X-Crashlytics-Google-App-Id: 1:186930373401:android:dc8759f54dc948b6 X-Crashlytics-Os-Build-Version: 10037230 Accept-Encoding: gzip, deflate Connection: close
Bis zu diesem Punkt werden bereits Gerätedaten ausgelesen, was nach Auslegung des § 25 Abs. 1 TTDSG unzulässig ist. Das bedeutet, dass vor der Erhebung von Absturzberichten durch Google Crashlytics bzw. vor der Initialisierung des Dienstes normalerweise eine ausdrückliche, informierte, freiwillige und aktive Einwilligung eingeholt werden müsste. Dies geschieht jedoch nicht, sondern die Übermittlung findet bereits statt, bevor der Nutzer seine Einwilligung geben kann.
[3] Weiter geht es dann mit einigen Verbindungen zu Facebook (USA) [graph.facebook.com]:
POST /v8.0/550155988706104/activities HTTP/1.1 User-Agent: FBAndroidSDK.8.2.0 Accept-Language: de_DE Content-Type: application/x-www-form-urlencoded Host: graph.facebook.com Connection: close Accept-Encoding: gzip, deflate Content-Length: 531 format=json sdk=android event=MOBILE_APP_INSTALL anon_id=XZ01c385c5-23e4-45b2-afca-50a008a89861 application_tracking_enabled=true advertiser_id_collection_enabled=true advertiser_id=d57fa49c-45a8-4a60-8b53-2aad7bde9a73 advertiser_tracking_enabled=true installer_package=com.android.vending extinfo=["a2","com.bonifynative",2102378,"2.0.11","10","Mi A1","de_DE","MESZ","",1080,1920,"3",8,50,46,"Europe\/Berlin"] application_package_name=com.bonifynative
Schauen wir uns mal an, was hier übermittelt wird:
- Gerätedaten wie das Modell (Mi A1) und die Auflösung (1080,1920)
- Informationen zur App wie die Versionsnummer (2.0.11)
- und die Google-Advertising-ID (
d57fa49c-45a8-4a60-8b53-2aad7bde9a73
)
Neben Gerätedaten und App-Informationen enthält die Übertragung also auch die Google Advertising-ID (d57fa49c-45a8-4a60-8b53-2aad7bde9a73
). Warum ist das so kritisch? Allein die Übermittlung der Google-Advertising-ID reicht grundsätzlich aus, damit Facebook nun eine Verbindung zwischen Facebook-Nutzer und den übermittelten Daten herstellen kann. Der Grund: Auch die Facebook-App (sofern installiert) liest die Google-Advertising-ID aus. Damit hat Facebook dann einen Identifikator, den sie genau einer Person zuordnen können. Im Ergebnis liegt nicht nur ein Verstoß gegen § 25 Abs. 1 TTDSG, sondern auch gegen die DSGVO vor, da es sich bei der Google-Advertising-ID um ein personenbeziehbares Datum handelt.
[4] Weiter fließen dann noch Daten an Blueshift (San Francisco, USA), einem Unternehmen für Marketing, das bspw. misst, auf welchem Weg Kunden effektiv angesprochen werden können [api.getblueshift.com]:
POST /api/v1/event HTTP/1.1 Authorization: Basic MmI1YzY4NmMzOGExOTk4NDNjNTRkYTkwMWI4NTAyYjM6 Accept: application/json Content-Type: application/json User-Agent: Dalvik/2.1.0 (Linux; U; Android 10; Mi A1 Build/QQ3A.200805.001) Host: api.getblueshift.com Connection: close Accept-Encoding: gzip, deflate Content-Length: 662 { "enable_push": true, "app_version": "2.0.11 (2102378)", "device_id": "fELUnbUzSViUtdzCRsIt7J:com.bonifynative", "firebase_instance_id": "fELUnbUzSViUtdzCRsIt7J", "advertising_id": "d57fa49c-45a8-4a60-8b53-2aad7bde9a73", "device_type": "android", "network_carrier": "Telekom", "limit_ad_tracking": false, "enable_inapp": true, "device_manufacturer": "Xiaomi", "bsft_sdk_version": "3.2.8", "app_name": "com.bonifynative", "device_token": "fELUnbUzSViUtdzCRsIt7J:APA91bExL1TMQif2MjmwGmXYJKSpCEleqG4atKnsZNR4HQbrnzsuucXiW5CQzWky7b79CnwSm1CU8E8Vj-9S8mcqj5FmmkvO9yDJCzdzGw77vGFoaVvnj41N6iFVhOMq80eRh5oGWg59", "os_name": "Android 10", "event": "identify", "timestamp": "2023-07-19T17:24:06.775000Z" }
Es werden UIDs/IDs (u.a. auch die Google-Advertising-ID (d57fa49c-45a8-4a60-8b53-2aad7bde9a73
)), Gerätemodell, Mobilfunkprovider etc. vom Gerät abgefragt und ohne Einwilligung an Blueshift übermittelt. Ich kann es nur gebetsmühlenartig wiederholen: Solche Zugriffe auf Endgeräte für Zwecke der Webanalyse, der Marktforschung und für jede Form der Werbung ohne informierte Einwilligung sind nach § 25 Abs. 1 TTDSG unzulässig. § 25 TTDSG regelt den Schutz der Privatsphäre bei Endgeräten und setzt Art. 5 Abs. 3 der ePrivacy-Richtlinie um.
[5] Weitere Verbindungen bestehen zur Adjust GmbH (Hauptfirmensitz San Francisco, USA), einem Unternehmen, das sich auf das Tracking und die Analyse von Nutzern innerhalb von Apps spezialisiert hat [app.adjust.com]:
POST /sdk_click HTTP/1.1 Client-SDK: 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: 1182 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=2.0.11 partner_params={"anonymousId":"f4582402-4679-4485-98cb-f64693f2bf5b"} app_token=jqrd9r5onb40 installed_at=2023-07-19T17:22:47.652Z+0200 session_length=0 created_at=2023-07-19T17:24:11.838Z+0200 device_type=phone language=de gps_adid=d57fa49c-45a8-4a60-8b53-2aad7bde9a73 referrer_api=google source=install_referrer connectivity_type=1 device_manufacturer=Xiaomi display_width=1080 time_spent=0 device_name=Mi A1 needs_response_details=1 os_build=QQ3A.200805.001 updated_at=2023-07-19T17:22:47.652Z+0200 cpu_type=arm64-v8a screen_size=normal screen_format=long gps_adid_src=service subsession_count=1 os_version=10 android_uuid=c50c8ff0-31a5-4330-93a6-acaa8becd212 referrer=utm_source=google-play&utm_medium=organic environment=production screen_density=high attribution_deeplink=1 install_begin_time=2023-07-19T17:22:30.000Z+0200 session_count=1 display_height=1920 package_name=com.bonifynative os_name=android ui_mode=1 tracking_enabled=1 sent_at=2023-07-19T17:24:11.883Z+0200
Auch hier fällt auf, dass ohne ausdrückliche, informierte, freiwillige und aktive Einwilligung die Google Advertising-ID (d57fa49c-45a8-4a60-8b53-2aad7bde9a73
) vom Gerät ausgelesen und an Adjust übermittelt wird. Bei der Google-Advertising-ID handelt es sich, wie bereits dargestellt, um ein personenbeziehbares Datum.
Auch hier liegt ein Verstoß gegen § 25 Abs. 1 TTDSG vor.
[6] Weiter fließen dann noch Daten an Twilio/Segment (San Francisco, USA), einem Unternehmen für Marketing [events.eu1.segmentapis.com]. Aussage laut Website:
Segment collects events from your web and mobile apps and provides a complete data toolkit to every team in your company.
POST /v1/import HTTP/1.1 Content-Type: application/json User-Agent: analytics-android/4.10.3 Authorization: Basic Q000VWp0UnFJVDREWGpWS3lYa1gwUVJsZTVCcXZ4cW06 Host: events.eu1.segmentapis.com Connection: close Accept-Encoding: gzip, deflate Content-Length: 3643 { „batch“: [ { „channel“: „mobile“, „type“: „track“, „messageId“: „8ca32302-b85d-46f8-9d56-f26fb866d49c“, „timestamp“: „2023-07-19T11:24:11.137Z“, „context“: { „app“: { „build“: „2102378“, „name“: „bonify“, „namespace“: „com.bonifynative“, „version“: „2.0.11“ }, „traits“: { „anonymousId“: „f4582402-4679-4485-98cb-f64693f2bf5b“ }, „library“: { „name“: „analytics-android“, „version“: „4.10.3“ }, „os“: { „name“: „Android“, „version“: „10“ }, „timezone“: „Europe/Berlin“, „screen“: { „density“: 3.0, „width“: 1080, „height“: 1920 }, „userAgent“: „Dalvik/2.1.0 (Linux; U; Android 10; Mi A1 Build/QQ3A.200805.001)“, „locale“: „de-DE“, „device“: { „id“: „21f01e79463b2f06bf3eab834f079955c44bb5e77d44e0033dcf9acb67a5fc66“, „manufacturer“: „Xiaomi“, „model“: „Mi A1“, „name“: „tissot“, „type“: „android“, „advertisingId“: „d57fa49c-45a8-4a60-8b53-2aad7bde9a73“, „adTrackingEnabled“: true }, „network“: { „wifi“: true, „carrier“: „“, „bluetooth“: false, „cellular“: false } }, „integrations“: { „Adjust“: false, „Firebase“: false }, „anonymousId“: „f4582402-4679-4485-98cb-f64693f2bf5b“, „event“: „Application Installed“, „properties“: { „version“: „2.0.11“, „build“: 2102378 } }, { „channel“: „mobile“, „type“: „track“, „messageId“: „977f323d-5875-4a18-8ed9-29709d87f95a“, „timestamp“: „2023-07-19T11:24:11.137Z“, „context“: { „app“: { „build“: „2102378“, „name“: „bonify“, „namespace“: „com.bonifynative“, „version“: „2.0.11“ }, „traits“: { „anonymousId“: „f4582402-4679-4485-98cb-f64693f2bf5b“ }, „library“: { „name“: „analytics-android“, „version“: „4.10.3“ }, „os“: { „name“: „Android“, „version“: „10“ }, „timezone“: „Europe/Berlin“, „screen“: { „density“: 3.0, „width“: 1080, „height“: 1920 }, „userAgent“: „Dalvik/2.1.0 (Linux; U; Android 10; Mi A1 Build/QQ3A.200805.001)“, „locale“: „de-DE“, „device“: { „id“: „21f01e79463b2f06bf3eab834f079955c44bb5e77d44e0033dcf9acb67a5fc66“, „manufacturer“: „Xiaomi“, „model“: „Mi A1“, „name“: „tissot“, „type“: „android“, „advertisingId“: „d57fa49c-45a8-4a60-8b53-2aad7bde9a73“, „adTrackingEnabled“: true }, „network“: { „wifi“: true, „carrier“: „“, „bluetooth“: false, „cellular“: false } }, „integrations“: { „Adjust“: false, „Firebase“: false }, „anonymousId“: „f4582402-4679-4485-98cb-f64693f2bf5b“, „event“: „Application Opened“, „properties“: { „version“: „2.0.11“, „build“: 2102378 } }, { „channel“: „mobile“, „type“: „identify“, „messageId“: „1592c7c3-c1ff-4ca0-b11d-047bd2d90ce8“, „timestamp“: „2023-07-19T11:24:11.167Z“, „context“: { „app“: { „build“: „2102378“, „name“: „bonify“, „namespace“: „com.bonifynative“, „version“: „2.0.11“ }, „traits“: { „anonymousId“: „f4582402-4679-4485-98cb-f64693f2bf5b“, „pushActive“: 1.0, „platform“: „android“, „deviceToken“: „fELUnbUzSViUtdzCRsIt7J:APA91bExL1TMQif2MjmwGmXYJKSpCEleqG4atKnsZNR4HQbrnzsuucXiW5CQzWky7b79CnwSm1CU8E8Vj-9S8mcqj5FmmkvO9yDJCzdzGw77vGFoaVvnj41N6iFVhOMq80eRh5oGWg59“ }, „library“: { „name“: „analytics-react-native“, „version“: „1.5.1“ }, „os“: { „name“: „Android“, „version“: „10“ }, „timezone“: „Europe/Berlin“, „screen“: { „density“: 3.0, „width“: 1080, „height“: 1920 }, „userAgent“: „Dalvik/2.1.0 (Linux; U; Android 10; Mi A1 Build/QQ3A.200805.001)“, „locale“: „de-DE“, „device“: { „id“: „21f01e79463b2f06bf3eab834f079955c44bb5e77d44e0033dcf9acb67a5fc66“, „manufacturer“: „Xiaomi“, „model“: „Mi A1“, „name“: „tissot“, „type“: „android“, „advertisingId“: „d57fa49c-45a8-4a60-8b53-2aad7bde9a73“, „adTrackingEnabled“: true }, „network“: { „wifi“: true, „carrier“: „“, „bluetooth“: false, „cellular“: false } }, „integrations“: { „Adjust“: false, „Firebase“: false }, „anonymousId“: „f4582402-4679-4485-98cb-f64693f2bf5b“, „traits“: { „anonymousId“: „f4582402-4679-4485-98cb-f64693f2bf5b“, „pushActive“: 1.0, „platform“: „android“, „deviceToken“: „fELUnbUzSViUtdzCRsIt7J:APA91bExL1TMQif2MjmwGmXYJKSpCEleqG4atKnsZNR4HQbrnzsuucXiW5CQzWky7b79CnwSm1CU8E8Vj-9S8mcqj5FmmkvO9yDJCzdzGw77vGFoaVvnj41N6iFVhOMq80eRh5oGWg59“ } } ], „sentAt“: „2023-07-19T11:24:11.961Z“ }
Auch hier das gleiche Bild: Ohne ausdrückliche, informierte, freiwillige und aktive Einwilligung wird die Google-Advertising-ID (d57fa49c-45a8-4a60-8b53-2aad7bde9a73
) vom Gerät ausgelesen und an Twilio/Segment übermittelt. Bei der Google-Advertising-ID handelt es sich wie bereits erwähnt, um ein personenbeziehbares Datum.
Das Auslesen der Gerätedaten
- Hersteller
- Modell
- WiFi aktiv
- Bluetooth deaktiviert
- Mobilfunk deaktiviert
- App-Version
- Bildschirmauflösung
- […]
sei der Vollständigkeit halber auch erwähnt. Offenbar haben die Verantwortlichen noch nie etwas von § 25 Abs. 1 TTDSG gehört.
Während im Hintergrund gegen diverse Gesetze verstoßen wird, bekommt der Nutzer nur das hier zu sehen:
2. Datenschutzhinweise
Werfen wir mal einen Blick in die Datenschutzhinweise der App:
Der Schutz Ihrer Privatsphäre auf unserer Webseite https://www.bonify.de, https://my.bonify.de und in unserer App „bonify“ ist uns sehr wichtig. Die Verarbeitung Ihrer personenbezogenen Daten geschieht unter Beachtung der geltenden datenschutzrechtlichen Vorschriften, insbesondere der europäischen Datenschutzgrundverordnung (DSGVO) und des Bundesdatenschutzgesetzes (BDSG).
Nein. Einfach nein. Solche einleitenden Sätze sind grundsätzlich ein Alarmsignal, wie die Fakten erneut zeigen. Die SCHUFA ist mit der Bonify-App von Datenschutz und der Einhaltung datenschutzrechtlicher Bestimmungen weit entfernt.
Gemäß den Datenschutzhinweisen erfolgt die Nutzung der Mess- und Analysedienste von Facebook gem: Art. 6 Abs. 1 S. 1 lit. a DSGVO. Die SCHUFA stützt sich dabei auf eine Einwilligung des Nutzers. Eine ausdrückliche, informierte, freiwillige und aktive Einwilligung wird jedoch nicht eingeholt – die Daten fließen bereits an Facebook. Unter anderem die personenbeziehbare Google-Werbe-ID.
Dasselbe Bild dann bei Blueshift und Twilio/Segment. Man kann das Tracking und die Analyse durchaus auf eine Einwilligung stützen, aber dann muss die Einwilligung eingeholt werden, BEVOR die Daten fließen. Bei der App Bonify beginnt die Datenverarbeitung bereits, bevor die erforderliche Einwilligung eingeholt wurde.
Spätestens nach der Lektüre der Datenschutzhinweise ist aus meiner Sicht jegliches Vertrauen verspielt. Spätestens mit der Durchführung einer Risikoanalyse hätten die Verantwortlichen erkennen müssen, welche Gefahren mit der Einbindung von fremden Trackingbibliotheken bzw. Modulen verbunden sind. Allein unter Punkt 8 »TRACKING UND RE-TARGETING« sind die folgenden Unternehmen genannt:
- Facebook (vorliegend im Datenmitschnitt)
- Google (vorliegend im Datenmitschnitt)
- Microsoft
- Forteil GmbH
- Sentry
- Outbrain
- Taboola
- Plista
- Webtrekk
- Hotjar
- Segment (vorliegend im Datenmitschnitt)
- Blueshift (vorliegend im Datenmitschnitt)
- ConvertFlow
- Adtriba
- Landingi
- Criteo
Wenn das bei den anderen Unternehmen auch so gut mit Art. 6 Abs. 1 lit. a DSGVO (Einwilligung) funktioniert, dann gute Nacht.
Hilf mit die Spendenziele zu erreichen!
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.
3. Fazit
Auch abseits der Bonify-App ist die Kritik an der SCHUFA groß. Wer mit Datenschutz wirbt und dann eine solche Bruchlandung hinlegt, macht natürlich keine gute Werbung für ein Unternehmen, das mit hochsensiblen Daten umgeht. In der jetzigen Form rate ich dringend von der Nutzung der App ab – aber auch wenn die gesetzlichen Anforderungen der DSGVO des TTDSG (irgendwann) erfüllt sein sollten, muss sich jeder gut überlegen, ob er die App nutzen möchte. Weiterhin gebe ich zu bedenken, dass ich die App lediglich gestartet habe – eine weitere Interaktion oder Analyse habe ich nicht durchgeführt.
Betroffenen kann man nur raten (laut der Tagesschau immerhin 1,1 Millionen), eine Beschwerde bei der zuständigen Aufsichtsbehörde (Berlin) einzulegen oder direkt den Klageweg einzuschlagen.
Hinweis
Die Telekom hat auf eine ähnliche Analyse von letzter Woche fix reagiert und bereits nachgebessert. Was wird die SCHUFA bzw. Bonify (Forteil GmbH) tun?Bildquellen:
Logo: SCHUFA Holding AG
Wenn du über aktuelle Beiträge informiert werden möchtest, hast du verschiedene Möglichkeiten, dem Blog zu folgen:
Ich freue mich auf Deine Beteiligung zum Artikel
Wenn 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.