Wie die Google-Apple-Lösung Bewegungsprofile von infizierten Personen preisgibt

Vor kurzem veröffentlichten wir eine Publikation, die im Detail erläutert, wie ein Angreifer die Informationen, die durch den Kontaktnachverfolgungsansatz von Google und Apple (GAP) freigegeben werden, dazu verwendet, detaillierte Bewegungsprofile der Infizierten Personen zu erstellen. Auch die deutsche Corona-Warn-App ist hiervon betroffen, da sie auf dem GAP-Ansatz aufbaut und daher auch dieselben Schwachstellen hat.

Wir haben viele Fragen zu dieser Publikation bekommen und wollen deshalb hier noch in einer etwas vereinfachten Form darstellen, warum der GAP-Ansatz die Informationen preisgibt, die es erlauben, die Bewegungen von infizierten Personen im Detail nachzuvollziehen.

Der GAP-Ansatz

Wie viele andere Tracing-Ansätze auch, basiert der GAP-Ansatz auf mobilen Smartphone-Apps, die Informationen über Bluetooth LE austauschen, wenn zwei App-Nutzer eine Begegnung haben, bei der sich unter Umständen eine Ansteckung stattfinden könnte. Im GAP-Ansatz geschieht dies, indem die Apps kurzlebige Bluetooth-Kennungen, sogenannte Rolling Proximity Identifier (RPIs), in ihre Umgebung ausstrahlen. Diese RPIs werden von anderen Apps in der Nähe registriert und lokal gespeichert. Mithilfe der gespeicherten RPIs können Apps im Nachhinein feststellen, ob ein Kontakt mit einem infizierten App Nutzer stattgefunden hat, wenn sie die RPIs dieses Nutzers in Erfahrung bringen und mit ihren lokal gespeicherten RPIs abgleichen können.

Im GAP-Ansatz, wie in Abbildung 1 unten gezeigt, generiert jede Tracing App täglich sogenannte Daily Tracing Keys (DTK), also sich täglich ändernde ‚Tagesschlüssel‘. Von diesen Tagesschlüsseln werden dann die RPIs für den jeweiligen Tag abgeleitet, sodass jedes dieser RPIs ca. 10 Minuten gültig ist und dann gegen ein neues RPI ausgewechselt wird. An einem Tag (24 Stunden) verwendet eine App insgesamt 144 verschiedene RPIs.

Abbildung 1: Google-Apple (GAP) Tracing-Ansatz

Wenn ein App Nutzer positiv auf COVID-19 getestet wird, kann er seine Kontaktpersonen warnen, indem er seine RPIs durch das Tracing-System freigibt. Dies passiert, indem die App dieses Nutzers die Tagesschlüssel (DTKs) der letzten Tage (bis zu 14 Tage) an den Tracing-Server schickt. Der Tracing-Server verteilt die Tagesschlüssel dann weiter an alle anderen Apps im System.

Andere Apps laden sich regelmäßig die neuen DTKs von infizierten Personen auf ihre lokalen Geräte herunter, und generieren mithilfe der DTKs die RPIs der infizierten Personen. Dann vergleichen sie diese RPIs mit den lokal gespeicherten RPIs. Falls es eine Übereinstimmung gibt, ist dies ein Beweis für einen Kontakt mit einer infizierten Person und die App kann den Nutzer hierüber warnen.

Das Problem

Das Problem beim GAP-Ansatz ist, dass die DTKs jeweils für 24 Stunden gültig sind, und daher alle am System Teilnehmenden nicht nur die RPIs einer infizierten Person ableiten können, sondern auch ganz genau wissen, dass diese RPIs derselben Person zugeordnet werden können. Dies heißt, dass wenn ein Angreifer in einem bestimmten Gebiet strategisch platzierte Bluetooth-Sensoren dazu benutzt, um RPIs von vorbeilaufenden Tracing-App-Nutzern zu sammeln, der Angreifer im Nachhinein in der Lage ist, mithilfe der von infizierten Nutzern freigegebenen DTKs, die dazugehörigen RPIs abzuleiten und diese mit seinen aufgezeichneten RPIs abzugleichen. Dadurch kann der Angreifer feststellen, ob und wann eine infizierte Person an seinen Beobachtungssensoren vorbeigelaufen ist und kann unter Umständen ein detailliertes Bewegungsprofil der infizierten Nutzer erstellen.

Der Angriff

Die oben geschilderte Schwachstelle am GAP-Ansatz wurde schon von vielen Sicherheitsforschern theoretisch diskutiert. Um zu zeigen, dass es sich hierbei nicht nur um einen theoretischen, sondern auch um einen durchaus reellen Angriff handelt, haben wir ein Angriffsszenario experimentell nachgestellt und unter realen Bedingungen ausgeführt.

Wir haben, wie in Abb. 2 dargestellt, an diversen Stellen in Darmstadt Bluetooth-Sensoren aufgestellt, die die Sensoren eines Angreifers darstellen sollten. Diese Sensoren waren sehr einfache Smartphone-Apps, die die RPIs von vorbeilaufenden Tracing-App Nutzern über Bluetooth LE sammelten und speicherten.

Abbildung 2: Platzierung der Bluetooth-Sensoren des Angreifers in der Stadtmitte von Darmstadt

Während des Experiments zeichneten wir die RPIs von zwei Testnutzern auf, die sich zeitgleich in der Stadtmitte bewegten. Die Testnutzer nutzten Tracing Apps, die RPIs gemäß der Spezifikation von GAP in ihre Umgebung ausstrahlten.

Ein Beispiel der gesammelten Sensordaten an den Beobachtungsstellen B und E ist in Abb. 3 dargestellt. Wie zu sehen ist, scheinen die gesammelten RPIs zufällig, und lassen keine Rückschlüsse über Bewegungen der Nutzer zu.

Abbildung 3: Gesammelte RPI-Daten an den Beobachtungsstellen B und E

Dieses Bild verändert sich jedoch drastisch, wenn man den Fall simuliert, dass einzelne Nutzer sich mit COVID-19 infiziert haben, und ihre DTKs freigeben, mit deren Hilfe die RPIs der einzelnen Nutzer abgeleitet werden können. Da nun die RPIs eindeutig einzelnen Nutzern zugeordnet werden können, kann man, wie in Abb. 4 exemplarisch gezeigt, Rückschlüsse über die Anwesenheit einzelner Nutzer in der Nähe der Beobachtungsstellen machen.

Abbildung 4: Verlinken der RPIs des Nutzers 1 mithilfe des freigegebenen DTK

Dadurch ist es möglich, die Bewegungen von infizierten Nutzern nachzuvollziehen, wenn sie ihre DTKs freigeben. In unserem Experiment konnten wir dadurch die Bewegungen von zwei Testnutzern rekonstruieren. Abb. 5 zeigt das Resultat.

Abbildung 5: Rekonstruktion der Bewegungsprofile von zwei Nutzern mithilfe der freigegebenen Trading-Daten

Mithilfe der Beobachteten RPIs konnten wir feststellen, dass Nutzer 1 zunächst in der Nähe von Beobachtungspunkt A (ein Wohnquartier) gesichtet wurde und danach in D (Klinikum und Apotheke), C (Polizeistation), B (Rathaus) und E (eine Kneipe), bevor der Nutzer die Runde bei Position A beendete. Es wäre also denkbar, dass Nutzer 1 irgendwo in der näheren Umgebung von A wohnt, da es sich dabei um ein Wohnquartier handelt. Auch könnte man spekulativ ableiten, dass der betroffene Nutzer gesundheitliche Probleme hat, oder mit der Polizei zu tun hat. Für Nutzer 2 konnten wir feststellen, dass er vom Rathaus (B) gestartet ist, einen Abstecher in die Kneipe (E) gemacht hat, bevor er bei Position F gesichtet wurde, in der Nähe eines Lokals für Sportwetten. Des Weiteren konnten wir feststellen, dass beide Nutzer die Position B zur gleichen Zeit verließen und zur gleichen Zeit in der Nähe der Kneipe (E) ankamen, dort eine Weile verbrachten und sogar zur gleichen Zeit die Kneipe wieder verließen. Dadurch liegt die Annahme nahe, dass diese beiden Nutzer eine soziale Beziehung zueinander haben.

Fazit

Unser Experiment zeigt, dass Beobachtungen von Nutzern in Verbindung mit den dazugehörigen Zeitstempeln eine Menge an Informationen über Nutzer verraten können, da der Angreifer Informationen darüber bekommt, welche Orte infizierte Nutzer besucht haben und wie viel Zeit sie dort verbrachten. Diese Informationen können wiederum dazu genutzt werden, um spezifische Lebensumstände von Personen in Erfahrung zu bringen, z.B., in welchem Gebiet die Person wohnt (Aufenthaltsort während der Nacht) und wo sie arbeitet (Aufenthaltsort tagsüber). Je mehr der Angreifer solche distinktiven Einzelheiten über die betroffene Person ableiten kann, desto einfacher ist es für ihn, die Person eindeutig zu identifizieren und dadurch die Anonymität des Systems zu brechen.

Tags:

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

*