Corona-Datenspende: RKI-App erschwert Datenschutz-Analyse

Die Corona-Datenspende-App des RKI sammelt Gesundheitsdaten per Fitness-Tracker. Da die Software leider nicht quelloffen ist, sind die Datenflüsse nicht ersichtlich. Eine Analyse des Datensendeverhaltens kann zu einer Einschätzung der Datenschutzfreundlichkeit beitragen. Dazu ist es oftmals notwendig Sicherheitsvorkehrungen zu umgehen, um den Datenstrom einer App mitlesen zu können. Das ist auch bei der App des RKI der Fall. Diese setzt auf Certificate-Pinning – und in einem ersten Versuch ist es mir leider nicht gelungen die Inhaltsdaten mitzulesen, die die App austauscht. Innerhalb der App ist offenbar ein öffentliches (Client)-Zertifikat hinterlegt, mit dem ein Man-in-the-Middle-Angriffe verhindert wird. Es nennt sich thrye_prod.cer und ist ausgestellt auf die Domain *.und-gesund.de. Einem Unternehmen in Berlin, der mHealth Pioneers GmbH. Das Zertifikat selbst ist von DigiCert Inc. signiert und hat eine Schlüssellänge von 2048 Bit.

Innerhalb des Codes wird dieses Zertifikat als Teil eines Objekts eingebunden:

Certificate generateCertificate = CertificateFactory.getInstance(a(55795, 250, 5).intern()).generateCertificate(this.f991a.getAssets().open("thryve_prod.cer"));

Und dann auch abgefragt. Mit dem Frida-Framework könnte man sich jetzt vermutlich ein Injection-Skript basteln, das das Cert-Pinning aushebelt. Die mir bekannten Methoden funktionieren nämlich nicht.

Es ist halt eine Frage des Aufwands das Cert-Pinning bei der Corona-Datenspende-App zu umgehen. Sinnvoller wäre es gewesen, wenn solch eine App gleich von Beginn an als Open-Source veröffentlicht wird. So muss man im Dunkeln stochern und letztendlich dem Hersteller bzw. Herausgeber der App vertrauen.

Immerhin ergab eine lokale Code-Analyse, dass keine Tracker innerhalb der App intergriert sind. Das hat ebenfalls das Tool ClassyShark3xodus bestätigt.

Wohin sich die App verbindet (Domains) kann man dennoch feststellen:

  • Nach Eingabe Postleitzahl: datenspende.und-gesund.de
  • Während der Nutzung: corona-datenspende.de
  • Verknüpfung mit Fitbit-Wearable: accounts.fitbit.com, fitbit.com,
    assets.fitbit.com
  • Verknüpfung mit Garmin-Wearable: connect.garmin.com,
    static.garmin.com, sso.garmin.com, static.garmincdn.com,
    ajax.cloudflare.com
  • Verknüpfung mit Polar-Wearable: flow.polar.com, flow.cdn.polar.com,
    fonts.googleapis.com, gstatic.com
  • Verknüpfung mit Withings-Wearable: account.withings.com,
    fonts.googleapis.com, google-analytics.com, google.com
  • Verknüpfung mit GoogleFit-Wearable: accounts.google.com,
    ssl.gstatic.com, fonts.gstatic.com, fonts.googleapis.com,
    apis.google.com

Ob es sinnvoll ist die Fitness-Daten zu erfassen, um eine potenzielle Erkrankung an COVID-19 festzustellen? Das vermag ich nicht zu beurteilen, das können andere sicherlich besser. Persönlich halte ich es allerdings für fragwürdig hierbei auf Wearables / Smartwatches zu setzen – diese sind nicht gerade für ihre Datenschutzfreundlichkeit bekannt. Eher im Gegenteil:

Smartwatches fragen beim Einrichten eines Nutzer­kontos und bei der Kopp­lung mit dem Smartphone persönliche Angaben ab – oft auch solche, die für die reine Funk­tion unnötig sind. Sechs Anbieter im Test räumen sich das Recht ein, diese Daten an Dritte weiterzugeben.

Zieht man zur Bewertung der App die »10 Prüfsteine für die Beurteilung von „Contact Tracing“-Apps« des CCC heran, macht die App keine gute Figur bzw. bei manchen Punkten lässt sich überhaupt keine Aussage treffen.

Um es kurz zu machen: Datenschutzsensible Nutzer können die App eigentlich gar nicht nutzen, da sie vermutlich kein Wearable / Smartwatch besitzen. Und wenn, dann vermutlich eine datenschutzfreundliche Variante, die hier nicht unterstützt wird.

P.S.: Wer eine Idee für eine Frida-Code-Injection hat, der möge mich kontaktieren.

Du kannst den Blog aktiv unterstützen! Mitmachen ➡