Skip to content

Kurzdokumentation der offiziellen Corona Warn App

Dennis Natusch edited this page May 25, 2020 · 6 revisions

Die Architektur der offiziellen Corona-Warn-App basiert auf der DP-3T Architektur. Jede App speichert gesendete und empfangene IDs nur lokal und überträgt nur im Falle eines positiven Tests und Einwilligung des Users auf einen Server. Die IDs werden von einem täglich wechselnden Temporary Exposure Key abgeleitet. Die App downloadet regelmäßig die auf dem Server gespeicherten Keys um lokal das Risiko des Users zu berechnen und ihn ggf. zu informieren.

Prozess der Verifikation zum Upload von Keys im Falle eines positiven Tests

Sobald ein Patient sich Testen lässt erhält er vom Arzt einen QR-Code, der vom Laboratory Information System ausgestellt wird. Dieser kann von der App gescannt werden, die daraus eine GUID ableitet (Schritt 1). Diese GUID wird gehasht an den Verification Server gesendet (Schritt 2), der einen Registration Token erstellt, diesen zusammen mit der GUID speichert (Schritt 3) und an die App schickt (Schritt 4). Diese fragt dann regelmäßig beim Server nach den Testergebnissen (Schritt 5), wobei der Registration Token als Verifikation dient. Der Verification Server erhält die Testergebnisse vom Laboratory Information System (Schritt 6 und 7) und schickt diese zurück an die App (Schritt 8). Im Falle eines positiven Tests kann der User sich entscheiden, seine gespeicherten Keys, die er über die letzten 14 Tage zum Erstellen von IDs benutzt hat, mit dem Server zu teilen. Dazu erfragt die App eine TAN vom Verification Server (Schritt 9). Dieser generiert die TAN und schickt sie zurück (Schritt 10 und 11). Die App schickt die TAN und die benutzten Keys an den Corona-Warn-App Server, welcher die TAN beim Verification Server verifiziert und die Keys speichert (Schritte 12 bis 16).

Sollte der User keinen QR-Code benutzten wollen oder das Testinstitut kann keinen ausstellen, werden die Testergebnisse wie bisher durch das Gesundheitsamt mitgeteilt, welches dabei auch eine teleTAN sendet. Diese kann vom User wie die GUID benutzt werden um einen Registration Token zu erhalten. Wenn der User seine Keys mit dem Server teilen will, verfährt er dann wie oben erklärt, beginnend bei Schritt 9.

Regulärer Betrieb

Jede App sendet an zufällgen Zeitpunkten Dummy-Testergebnissanfragen und Dummy-Keyuploads, damit Angreifer nicht über eine Traffic-Analysis erfahren können, wer sich testen lassen hat und wer infiziert ist. Außerdem downloadet jede App einmal pro Stunde alle verfügbaren Keys über ein Content-Delivery-Network. Um das Netzwerk nicht zu überlasten wählt jede App in jedem Intervall einen zufälligen Zeitpunkt zum Download aus.

Aufbau der App

Die App wird nativ für Android und iOS entwickelt. Beide OS stellen ein Exposure Notification Interface bereit, welches die Schlüssel generiert und speichert. Auf empfangene Schlüssel werden davon gespeichert, sodass die App keinen Zugriff darauf hat. Desweiteren empfängt das Framework die Keys infizierter Personen vom Server und gleicht diese mit gesammelten Keys ab. Das Ergebnis hiervon, also alle gesammelten Keys, die mit Keys von positiv getesteten Personen übereinstimmen, werden an die App übertragen, die daraus das Risiko des Users berechnet. Der Prozess der Risikoberechnung ist für den User nicht sichtbar.

Clone this wiki locally