Software Saxony Blog

News Detail

SAP: Die technische Grundlage der Corona-Warn-App in Deutschland

  • SAP: Die technische Grundlage der Corona-Warn-App in Deutschland
    Allgemeiner Architekturüberblick
  • SAP: Die technische Grundlage der Corona-Warn-App in Deutschland
    Zusammenspiel von App und Betriebssystem

Jürgen Müller, Chief Technology Officer (CTO) bei SAP, informiert in seinem aktuellen Blogeintrag über die Fortschritte der SAP, der Telekom und rund 25 weiterer Partner im Projekt Corona-Warn-App. Insgesamt hat das Konsortium, laut Jürgen Müller, bedeutende Fortschritte erzielt. So wurde inzwischen bereits das Scoping-Dokument, das Architekturdokument, den Code of Conduct sowie den ersten Quellcode für die App auf GitHub veröffentlicht. Zudem wird auch die Website des Projektes kontinuierlich aktualisiert, um alle über den Projektverlauf zu informieren bzw. um Feedback zu ermöglichen. Denn ein offener, agiler und transparenter Entwicklungsprozess ist für alle Projektpartner äußerst wichtig, so auch für SAP und CTO Müller.

 

 

Lassen Sie mich nochmal auf das WARUM eingehen: Warum entwickeln wir die Corona-Warn-App?

  • Wir möchten den Zeitraum zwischen einem Test, bei dem jemand positiv getestet wird (Index Case), und dem Zeitpunkt, zu dem er darüber informiert wird, so kurz wie möglich halten. So wird das Infektionsrisiko für andere so gering wie möglich gehalten. Wie wir das schaffen? Indem wir den kompletten Ablauf vom Arzt bis zum Labor und zurück zum Patienten digitalisieren.
  • Bürger sollen schnellstmöglich benachrichtigt werden, falls sie sich über einen bestimmten Zeitraum in der Nähe eines Infizierten aufgehalten haben.
  • Wir möchten so viele Bürger wie möglich informieren, falls sie sich in der Nähe eines Infizierten aufgehalten haben (z.B. im Zug oder Restaurant), diesen aber nicht persönlich kennen.

Über allem steht dabei unser Ziel, so wenig personenbezogene Daten wie möglich offenzulegen.
Das folgende Schaubild zeigt zusätzliche Informationen zur technischen Grundlage und den Prozessen der Corona-Warn-App. Dies umfasst Details zur App selbst, dem Verifizierungsprozess der Laborergebnisse und der Runtime-Umgebung in der Open Telekom Cloud dargestellt.

Corona-Warn-App

Die Corona-Warn-App wird nativ für die Betriebssysteme iOS von Apple und Android von Google entwickelt. Für Geräte von Apple wird eine Betriebssystemversion von mindestens 13.5 benötigt, damit das System funktioniert. Für Android werden die Funktionen in die Google-Play-Dienste integriert, sodass nur diese spezielle Anwendung aktualisiert werden muss, damit sie funktionieren. Zur Entwicklung der App verwenden wir das Exposure Notification Framework (ENF), das von Apple und Google bereitgestellt wird. Es verwendet die Technologie Bluetooth Low Energy (BLE). Dabei fungieren die einzelnen Smartphones als Beacons, die ständig ihre eigene temporäre ID aussenden, während sie gleichzeitig nach IDs anderer Smartphones suchen. Um vollständigen Datenschutz zu gewährleisten und die Verfolgung von Bewegungsmustern der Nutzer zu verhindern, sind die gesendeten IDs nur temporär und ändern sich alle 15 Minuten. Neue IDs werden von einem Schlüssel abgeleitet, der sich täglich durch ein kryptografisches Verfahren ändert.

Die gesammelten IDs anderer Nutzer werden lokal auf jedem einzelnen Smartphone innerhalb des ENF gespeichert. Wenn Nutzer positiv auf SARS-CoV-2 getestet wurden, können sie der App eine Verifizierung ihres positiven Tests zur Verfügung stellen, indem sie die Option auswählen, dass ihre eigenen pseudonymisierten IDs geteilt werden. Als Folge werden ihre temporären Schlüssel der letzten 14 Tage auf einen Server hochgeladen. Auf diesem Server werden alle Schlüssel der Personen, die positiv getestet wurden, aggregiert. Diese Liste aller IDs wird dann allen betroffenen Smartphones, auf denen die Corona-Warn-App installiert ist, zur Verfügung gestellt. Um damit Millionen von Smartphones erreichen zu können, werden diese aggregierten Daten über ein Content Delivery Network (CDN) bereitgestellt.

Nachdem alle positiven Schlüssel auf das Smartphone heruntergeladen wurden, analysiert das ENF, ob eine der vom Smartphone gesammelten IDs mit den IDs einer infizierten Person übereinstimmt. An dieser Stelle möchte ich einen sehr wichtigen Aspekt bezüglich Datenschutz und Sicherheit hervorheben: Personen, die Kontakt mit einer positiv getesteten Person hatten, werden nicht von einer zentralen Instanz informiert, sondern ihr Smartphone ermittelt lokal das Risiko eines erfolgten Kontaktes. Diese Information bleibt auf dem Smartphone des Nutzers und wird nicht aktiv an andere weitergegeben. Ich möchte das noch einmal ganz klar sagen: Niemand kann feststellen, mit wem eine Person Kontakt hatte. Es können keine Informationen zur Nachverfolgung, Verhaltensprofile oder ähnliche Muster zentral erstellt werden.

Verifizierungsprozess für die Labortestergebnisse

Um Missbrauch zu verhindern, müssen die Nutzer zuerst verifizieren, ob sie positiv getestet wurden, bevor sie ihre Schlüssel hochladen können. Durch diese Integration sind die positiven Testergebnisse bereits verifiziert und die Diagnoseschlüssel können direkt hochgeladen werden, nachdem die Nutzer ihr Einverständnis gegeben haben. Wenn das Labor die direkte elektronische Übertragung der Testergebnisse auf das Smartphone der Nutzer nicht unterstützt oder wenn Nutzer sich gegen die elektronische Übertragung ihrer Testergebnisse entschieden haben, ist auch eine manuelle Verifizierung möglich.

Nachfolgend beschreibe ich kurz, wie der Interaktionsfluss im geplanten Verifizierungsprozess für den Nutzer Schritt für Schritt aussieht.

  • Schritt 1: Wenn ein Test durchgeführt wird, erhalten die Nutzer einen individuellen QR-Code, der einen Global Unique Identifier (GUID) enthält. Die Nutzer können dann den QR-Code mit der Corona-Warn-App scannen. Wenn der Code gescannt wird, wird ein Webservice-Aufruf (REST) an den Verifizierungsserver gerichtet, der das Smartphone mit den Daten aus dem QR-Code über ein Registrierungs-Token verknüpft. Das Token wird auf dem Server generiert und auf dem Smartphone gespeichert.
  • Schritt 2: Die Proben werden zusammen mit einem "Probenbegleitschein", der einen maschinenlesbaren QR-Code sowie mehrere andere Barcodes (z. B. Labor-ID, Proben-IDs) enthält, zum Labor transportiert.
  • Schritt 3: Sobald das Testergebnis vorliegt, überträgt die lokal im Labor laufende Software das Testergebnis zusammen mit dem GUID aus dem QR-Code an das Laborinformationssystem. Im Laborinformationssystem werden der GUID mit Hash und das Testergebnis zusammen gespeichert. Dies wird dem Verifizierungsserver über eine REST-Schnittstelle zur Verfügung gestellt.
  • Schritt 4: Nach der Anmeldung für Benachrichtigungen in Schritt 1 richten die Smartphones der Nutzer regelmäßig Anfragen an den Verifizierungsserver, der wiederum beim Laborinformationssystem abfragt, ob Testergebnisse verfügbar sind. Ist dies der Fall, wird der Nutzer informiert. Erst nach dem Öffnen der App wird das Ergebnis zusammen mit Empfehlungen für das weitere Vorgehen angezeigt.

Falls der Test positiv ist, werden die Nutzer gebeten, ihre Schlüssel hochzuladen, damit andere herausfinden können, dass sie Kontakt mit einer infizierten Person hatten. Wenn die Nutzer zustimmen, ruft die App ein Token (TAN), das nur für eine kurze Zeit gültig ist, vom Verifizierungsserver ab. Die TAN wird zusammen mit den Diagnoseschlüsseln der letzten 14 Tage auf den Corona-Warn-App-Server hochgeladen.

Runtime-Umgebung Open Telekom Cloud

Um die Infektionsketten wirkungsvoll zu durchbrechen, ist eine hohe Akzeptanz der App erforderlich. Gemeinsam mit der Bundesregierung, der Deutschen Telekom und unseren Partnern hoffen wir auf eine hohe Anzahl an aktiven Nutzern. Das Backend mit der erforderlichen Bandbreite wird über die Open Telekom Cloud (OTC) zur Verfügung gestellt. Die Server befinden sich in Deutschland. Dies stellt zusammen mit dem Content Delivery Network (CDN) von Telekom sicher, dass der geschätzte Durchsatz und die Zahl der Anfragen bewältigt werden können – auch zu Spitzenzeiten. Und natürlich kommen hierbei auch die zuverlässigen Magenta Security Services aus Deutschland zum Einsatz.

Ich kann nicht oft genug unterstreichen, dass Sicherheit und Datenschutz bei diesem Projekt an vorderster Stelle stehen. Nachfolgend ein Beispiel, wie wir die Datenschutz- und Sicherheitsfunktionen in das Backend integrieren: Um zu vermeiden, dass erkennbare Muster entstehen, sendet die App zufällig Anfragen an das Backend, selbst wenn ein Benutzer nicht positiv getestet wurde. Sie lassen sich serverseitig leicht ignorieren, aber von außen sieht dies genauso aus, wie wenn ein Benutzer ein positives Testergebnis hochgeladen hat. Dies trägt dazu bei, die Privatsphäre der Nutzer zu schützen, die wegen positiver Testergebnisse tatsächlich ihre Diagnoseschlüssel hochladen. Alle von der App verarbeiteten Daten dienen genau zwei Zielen: Einen Nutzer wissen zu lassen, dass er engen Kontakt zu einem infizierten Nutzer hatte, ohne die jeweilige Identität offenzulegen, und Testergebnisse abzurufen. Und dieser Prozess ist unter genauester Einhaltung der DSGVO gut geschützt.

Ich bin fest davon überzeugt, dass wir durch einen offenen, agilen und transparenten Entwicklungsprozess das Vertrauen der Menschen gewinnen und dies wiederum zu einer hohen Akzeptanz der App führt. Wir werden alle von einer App profitieren, die uns warnt, wenn wir uns in der Nähe einer Person befunden haben, die sich nachweislich mit SARS-CoV-2 infiziert hat. Dadurch können wir die Infektionsketten so früh wie möglich durchbrechen, ohne auf unser Recht auf Datenschutz und Sicherheit verzichten zu müssen. Wir werden Sie über unsere Fortschritte in den nächsten Wochen auf dem Laufenden halten. Sie können das Projekt auch auf GitHub verfolgen, um sich über die Fortschritte zu informieren, Feedback zu geben oder daran mitzuarbeiten.

Weiterführende Links


www.sap.com

Grafiken: SAP