AusweisApp2: Unaufälliges Datensendeverhalten und Cert-Pinning als zusätzlicher Schutz

Der dritte Test der App-Aktionswochen befasst sich mit der Android- und iOS-App AusweisApp2 (jeweils Version 1.22.2). Die AusweisApp2 kann in Kombination mit einem NFC-fähigen Smartphone zur elektronischen (Online-)Ausweisung mittels Personalausweis benutzt werden.

Ein Kurzcheck soll nun eine Einschätzung darüber geben, wie datenschutzfreundlich die AusweisApp2 ist. Dazu wird zunächst das Datensendeverhalten der App analysiert und anschließend ein Blick in die Datenschutzerklärung geworfen.

Nachfolgend ist das Datensendeverhalten der Android-Version dargestellt. Die iOS-Version verhält sich bei der Kommunikation mit den Servern/Gegenstellen identisch.

Vorbemerkung (für technisch Interessierte | Nerds)

Vorab ist festzuhalten, dass die Verbindungen der App mit TLS-Certificate-Pinning abgesichert sind. Mit den üblichen Methoden via Frida und Objection (android sslpinning disable) ist es mir zunächst nicht gelungen, das Cert-Pinning zu umgehen. Erst mit Objection (patchapk) hatte ich Erfolg, nachdem ich die Datei /assets/config.json manipuliert habe. Dort sind unter anderem die Root-CAs hinterlegt, die die App offenbar prüft:

],
"cvRootCertificates":[
   "7F218201...",
   "7F218201...",
   "7F218201..."
],

Die Datei lässt sich so anpassen, dass Cert-Pinning-Prüfung nicht mehr erfolgt. Anschließend kann der TLS-verschlüsselte Datenverkehr mitgelesen werden.

App-Start: Unmittelbar nach dem Start (keine Interaktion des Nutzers)

[1] Unmittelbar nach dem Start der App kontaktiert die App die Governikus GmbH & Co. KG [appl.governikus-asp.de]:

GET /ausweisapp2/updatable-files/releasenotes/de/1.22.0.txt HTTP/1.1
Host: appl.governikus-asp.de
User-Agent: AusweisApp2/1.22.2 (TR-03124/1.3)
Connection: close
Accept-Encoding: gzip, deflate
Accept-Language: de-DE,en,*

Hierbei handelt es sich um eine Abfrage der Veröffentlichungshinweise der App – also bspw. welche Änderungen seit dem letzten Update erfolgt sind:

* Das PIN-Management wurde überarbeitet.

* Die Navigation von iOS und Android wurde angeglichen. Die Seitenleiste auf Android wurde entfernt und durch eine Leiste am unteren Bildschirmrand ersetzt.

Eine weitere Kommunikation nach dem Start der App erfolgt nicht.

Während der Nutzung

Über Start -> Meine Daten einsehen lässt sich ein Selbstauskunftdienst des Herstellers aufrufen, um sich die im Chip/Ausweis gespeicherten Daten anzeigen zu lassen. Dabei wird zunächst ein Zertifikat von der Governikus GmbH & Co. KG geladen [www.autentapp.de]:

GET /AusweisAuskunft/WebServiceRequesterServlet?mode=json HTTP/1.1
Host: www.autentapp.de
User-Agent: AusweisApp2/1.22.2 (TR-03124/1.3)
Connection: close
Accept-Encoding: gzip, deflate
Accept-Language: de-DE,en,*

Zum Test habe ich dann bei der Deutschen Rentenversicherung ein Login vorgenommen. An diesem Vorgang waren dann folgende Server beteiligt:

  • www.eservice-drv.de
  • eid1.eid-service.de
  • eid2.eid-service.de
  • prodpaos.governikus-eid.de

Auffällige Datenübermittlungen (an Dritte) konnte ich keine entdecken.

Datenschutzerklärung

Die über den Google PlayStore verlinkte Datenschutzerklärung informiert den Nutzer relativ transparent über den Umgang bzw. die Verarbeitung der Daten. Wünschenswert wäre es allerdings, genauer darzustellen, welche Daten zu welchem Zweck übermittelt werden. Insgesamt ist da noch etwas Luft nach oben – gerade was die Struktur anbelangt, könnte man die Überschrift Ausweis-Auskunft / Dienst "Meine Daten einsehen" noch in weitere Unterüberschriften unterteilen.

Neben der App enthält die Datenschutzerklärung auch Informationen zur Website www.ausweisapp.bund.de. Unter anderem wird drauf hingewiesen, dass YouTube-Videos

im erweiterten Datenschutzmodus

eingebunden werden. Für eine staatliche Institution wäre es nach meiner Meinung angebracht auf Dienste wie YouTube (Google) vollständig zu verzichten.

Fazit

Die (Online-)Ausweisung per AusweisApp2 in Kombination mit dem Personalausweis ist ein sensibler Vorgang. Dieser sollte ausschließlich auf Geräten erfolgen, die alle aktuellen (Sicherheits-)Updates des Systems eingespielt haben. Gerade im Android-Universum ist dies meist nicht gegeben, da die Hersteller ihre Geräte oftmals nur einige Monate mit Updates versorgen und ihre Kunde anschließend einfach sich selbst überlassen. Vor diesem Hintergrund sollte man sich gut überlegen, ob man solch eine App nutzen möchte.

Davon abgesehen ist das Datensendeverhalten der App unauffällig bzw. datenschutzfreundlich gelöst. Das ist bei Apps, die vom Staat finanziert bzw. verantwortet werden, nicht immer gegeben.

Abschließend möchte ich noch betonen: Die Prüfung des Datensendeverhaltens einer App ersetzt keine Sicherheitsprüfung bzw. Audit und ist damit auch nicht gleichzusetzen.

Der Kuketz-Blog ist spendenfinanziert! Mitmachen ➡