TraceCORONA ist ein System für anonyme und dezentralisierte Kontaktnachverfolgung von Nutzern mithilfe einer mobilen App. Sie basiert darauf, dass Nutzer, die am System teilnehmen, die TraceCORONA-App herunterladen und installieren, und diese App mithilfe des Bluetooth LE-Protokolls Kontakte zwischen den Nutzern aufzeichnet. Im Gegensatz zu vielen anderen vorgeschlagenen Ansätzen führt TraceCORONA die Kontaktnachverfolgung anonym durch, wodurch die Verfolgung einzelner Nutzer des Systems unmöglich wird. TraceCORONA ist so konzipiert, dass es mit einer sicheren Plattform für ergänzende Gesundheitsdienste verbunden werden kann, die Benutzern die Möglichkeit bietet, diese Dienste privatheitswahrend auf sichere und vertrauenswürdige Weise zu nutzen.
Im Folgenden geben wir einen Überblick darüber, wie TraceCORONA funktioniert und wie eine anonyme und dezentrale Verfolgung von Nutzerkontakten bewerkstelligt werden kann. Wir bieten auch (auf Englisch) einen Überblick und einen Vergleich von TraceCORONA mit anderen App-Lösungen, die in den letzten Monaten und Wochen weltweit vorgeschlagen und teilweise bereitgestellt wurden.
Szenario
Kontaktnachverfolgungssysteme zielen darauf ab, die Kontakte von infizierten Personen in folgendem Systemmodell zu erfassen. Normalerweise gibt es zwei Hauptparteien: einen Server und mehrere Nutzer. In einer Pandemie können auch eine Reihe anderer Interessengruppen beteiligt sein, z.B. Zentren für die Kontrolle von Krankheiten (CDC), Krankenhäuser, Ärzte, Behörden, das Rote Kreuz, Krankenversicherungen und andere Gesundheitsorganisationen.
Übersicht des TraceCORONA-Systems
Das TraceCORONA-System besteht aus drei Komponenten, wie in Abb. 1 unten dargestellt.
Der TraceCORONA Server
Ein vom Betreiber des Kontaktnachverfolgungssystems betriebener Backend-Server
TraceCORONA Apps
Von Nutzern freiwillig installierte Smartphone-Anwendungen
Gesundheitsbehörde
Eine Entität, die autorisierte COVID-19 Tests durchführt
Die Funktionsweise von TraceCORONA kann in folgende Einzelschritte aufgeteilt werden:
- Erstellung von Kontakt-Tokens
- Verifizierung von Infektionen
- Übermittlung von Kontakt-Tokens an den TraceCORONA Backend Server
- Herunterladen der Kontakt-Tokens und Ermittlung möglicher Kontakte
- (optional, freiwillig) Übermittlung epidemiologischer Daten an entsprechende Forschungseinrichtungen
Nutzer von TraceCORONA laden die TraceCORONA-App herunter und installieren sie auf ihren Smartphones. Während der Installation müssen sich Benutzer weder registrieren noch persönliche Informationen angeben. Aus Effizienzgründen können Nutzer aufgefordert werden, Informationen über die ungefähre Region anzugeben, in dem sie sich befinden (z.B. eine Postleitzahl). Diese Informationen werden nicht zur Identifizierung des Nutzers verwendet, sondern lediglich zum Filtern der Kontakt-Tokens, die einzelne Nutzer zur Ermittlung von Kontakten herunterladen müssen.
Kontakt-Token
Die TraceCORONA-App verwendet Bluetooth LE, um die Anwesenheit anderer App-Nutzer in der Nähe zu erkennen. Jede TraceCORONA-App überträgt ein zufälliges und kurzlebiges, also sich häufig änderndes kryptografisches Token in ihre Umgebung, welches von anderen Geräten innerhalb der Bluetooth LE-Reichweite erfasst werden kann (typischerweise einige Meter).
Zwei Nutzer Ui und Uj verwenden ihre gegenseitig erfassten kryptografischen Tokens, um ein geheimes Kontakt-Token (Encounter Token) zu erstellen, das die Begegnung zwischen Ui und Uj zu diesem Zeitpunkt eindeutig identifiziert und nur Ui und Uj bekannt ist. Dies erfolgt mit dem sogenannten ECDH-Schlüsselaustauschalgorithmus (Elliptic Curve Diffie-Hellman key exchange).
Verifizierung von Infektionen
Nehmen wir an, dass App-Nutzer Ui einen Coronavirus-Test in einem von der Gesundheitsbehörde betriebenen COVID-19-Testzentrum machen lässt und gibt dabei der Gesundheitsbehörde seine Telefonnummer (oder andere Kontaktinformationen), um das Testergebnis zu erhalten.
Um den Infektionsstatus eines infizierten Nutzers Ui zu überprüfen, wird das in Abb. 3 gezeigte Verfahren verwendet. Wenn der Test positiv ist, schickt die Gesundheitsbehörde dem positiv getesteten TraceCORONA-Nutzer Ui eine Transaktionsauthentifizierungsnummer (TAN), z.B. per SMS.
Der Nutzer gibt diese TAN in seine TraceCORONA-App ein, die sie dann an den Server sendet. Der Server erhält regelmäßig eine Liste gültiger TANs von der Gesundheitsbehörde und benutzt diese Liste, um die von dem Nutzer eingegebene TAN zu überprüfen. Eine gültige TAN dient hierbei als Beweis dafür, dass Nutzer Ui tatsächlich positiv auf das Coronavirus getestet wurde. Danach wird diesem Nutzer die Möglichkeit freigeschaltet, seine verschlüsselten Kontakt-Tokens hochzuladen, mit deren Hilfe andere Nutzer feststellen können, ob sie mit Ui in Kontakt gewesen sind.
Beachten Sie, dass hierbei der Server keine Informationen über die wahre Identität der Nutzer erhält. Die Identität des Nutzers Ui ist daher ausschließlich der Gesundheitsbehörde bekannt, die den COVID-19-Test durchgeführt hat.
Übermittlung von Kontakt-Tokens
Nach Überprüfung des Infektionsstatus kann Nutzer Ui seine Kontakt-Tokens für andere Nutzer freigeben, damit diese feststellen können, ob sie mit Ui in Kontakt gewesen sind.
Zu diesem Zweck lädt die App von Nutzer Ui, wie in Abb. 4 gezeigt, die Liste der verschlüsselten Kontakt-Tokens des Nutzers (genauer gesagt sind es kryptographische Hashes der Kontakt-Tokens) zusammen mit verschlüsselten Informationen über seinen Infektionsstatus auf den TraceCORONA Backend Server hoch.
Beachten Sie, dass die hochgeladenen verschlüsselten Encounter-Tokens keine Informationen darüber enthalten, welchen Nutzern die Tokens zuzuordnen sind. Tatsächlich kann nicht einmal der Nutzer Ui selbst bestimmen, welchen anderen Nutzern seine Kontakt-Token zuzuordnen sind.
Darüber hinaus kann der Nutzer vor dem Hochladen alle solche Kontakt-Tokens entfernen, die er nicht freigeben möchte. Beispielsweise könnte Ui bestimmte Tokens weglassen, die während bestimmter Zeiträume oder beim Besuch bestimmter Orte generiert wurden.
Ermittlung von möglichen Kontakten
TraceCORONA Apps laden regelmäßig Kontakt-Tokens vom TraceCORONA Backend Server herunter, um zu überprüfen, ob sie einen Kontakt mit einer Person hatten, die positiv auf das Coronavirus getestet worden ist. Das Verfahren ist in Abb. 5 dargestellt.
Die TraceCORONA-App des Nutzers Uj lädt die Kontakt-Token der infizierten Nutzer sowie die dazugehörigen verschlüsselten Informationen zum Infektionsstatus herunter.
Die App von User Uj überprüft, ob eine Begegnung mit einem infizierten Nutzer stattgefunden hat, indem sie ihre eigenen lokal gespeicherten Kontakt-Tokens mit den Tokens der infizierten Nutzer vergleicht. Wenn es eine Übereinstimmung gibt, ist dies ein Beweis dafür, dass ein Kontakt stattgefunden hat und Nutzer Uj wird von der App hierüber informiert.
Optional kann Nutzer Uj auch entscheiden, seine Kontakt-Tokens für andere Nutzer freizugeben. In diesem Fall sendet die App des Nutzers die Kontakt-Tokens zusammen mit dem verschlüsselten Status des Nutzers (direkter Kontakt mit einer infizierten Person) zur weiteren Verteilung an andere Nutzer an den Server.
Vor dem Freigeben dieser Tokens überprüft der TraceCORONA-Server die Informationen zum verschlüsselten Infektionsstatus. Auf diese Weise stellt der Server sicher, dass alle im System verbreiteten Kontakt-Tokens tatsächlich aus einer authentischen Kontaktkette stammen, die von einem Nutzer mit einem verifizierten Infektionsstatus ausgeht.
Beachten Sie, dass Nutzer Uj in der Praxis nicht weiß, von welchen anderen Nutzern die von ihm heruntergeladenen Kontakt-Tokens stammen, da die Tokens selbst nicht mit einer Identität oder einem Pseudonym eines der beteiligten Nutzer verknüpft sind.
Freigabe von Kontakten zur epidemiologischen Forschung
Um die Entwicklung der epidemiologischen Situation zu verfolgen, ist es wichtig, dass epidemiologische Forscher sachliche und vor allem korrekte Informationen über Kontakte erhalten, die infizierte Personen mit anderen Personen hatten.
Eine gewollte Eigenschaft des TraceCORONA-Ansatzes ist, dass der Backend Server keine Informationen über Kontakte ableiten kann, außer ihrer Existenz in Form von Kontakt-Token.
Im Gegensatz zu anderen Ansätzen wie z.B. PEPP-PT, bei denen der Server automatisch Informationen über Kontakte infizierter Nutzer mit anderen Nutzern erhält, liegt die Entscheidung, Informationen über die Kontakte eines Nutzers mit infizierten Personen zu teilen, ausschließlich beim Nutzer, um ihm die Kontrolle über seine eigene Privatsphäre sicherzustellen.
Optionales Teilen von Kontaktinformationen
Optional kann der Nutzer der TraceCORONA-App entscheiden, Informationen über seine Kontakte mit infizierten Personen an epidemiologische Forscher weiterzugeben. Die TraceCORONA-App überträgt dann nach ausdrücklicher Genehmigung durch den Nutzer Informationen über die beobachteten Kontakte an eine Einrichtung, die epidemiologische Forschung durchführt.
Es ist sehr wichtig, dass die Daten, auf deren Grundlage epidemiologische Untersuchungen durchgeführt werden, echt, d.h. unverfälscht sind, damit man sich auf die Resultate der Untersuchungen verlassen kann. Die freigegebenen Daten sollten daher verifizierbar sein, um eine böswillige Sabotage des Datensatzes, auf dessen Grundlage epidemiologische Modelle entwickelt werden, zu verhindern. Andernfalls könnte ein böswilliger Angreifer erfundene oder böswillig geänderte Informationen über Kontakte, die in Wirklichkeit nie stattgefunden haben, einschleusen, was zu einer Verschlechterung der Qualität und Genauigkeit der abgeleiteten Modelle führen könnte.
TraceCORONA bietet daher die Möglichkeit, alle Kontakte mit infizierten Personen, die von einem Nutzer für epidemiologische Zwecke freigegeben werden, anonym zu authentifizieren.
Privatheitseigenschaften von TraceCORONA
- Das TraceCORONA-System arbeitet mit anonymen Kontakt-Tokens. Dies bedeutet, dass der TraceCORONA-Server weder Informationen über die Identität der beteiligten Nutzer noch ihre Kontaktdaten erhält. Insbesondere kann der Server nicht feststellen, welche Nutzer Kontakt zu welchen anderen Nutzern hatten. Die Ermittlung von Kontakten ist nur für die Apps der jeweiligen am Kontakt beteiligten Personen möglich.
- Kontakte bleiben auch für Nutzer des Systems völlig anonym. Es ist keinem Nutzer möglich, die von ihm gesammelten Kontakt-Token zu verwenden, um anschließend festzustellen, mit welchen anderen Nutzern er Kontakt hatte. Die Kontakt-Token sind spezifisch für Kontakte, nicht für Nutzer.
- Die von den Apps in ihre Umgebung über Bluetooth LE übermittelten kryptographischen Tokens sind nur für kurze Zeit gültig und werden fortlaufend durch neue Tokens ersetzt, sodass eine App nicht mithilfe der von ihr ausgestrahlten Tokens verfolgt werden kann.
- Der TraceCORONA-Server erhält nur eine Liste gültiger TANs vom Testlabor oder der Gesundheitsbehörde, mit denen Nutzer ihren Infektionsstatus nachweisen können. Dem Server werden keine Informationen darüber bereitgestellt, welchen Personen die jeweiligen TANs zugeordnet sind. Die Nutzer sind daher für den TraceCORONA-Server völlig anonym. Insbesondere verfügt der Server über keine Nutzerkontaktdaten, mit denen Nutzer identifiziert werden könnten.
Vergleich mit anderen Kontaktnachverfolgungsansätzen
Einen Vergleich von TraceCORONA mit anderen Kontaktnachverfolgungsansätzen finden Sie (auf Englisch) hier.