- Die NHS-COVID-19-App scheint im Hintergrund auf iOS-Geräten korrekt zu funktionieren, anders als die australische COVIDSafe-App
- Die App verhindert falsche Meldungen, indem sie Nutzern mit Symptomen einen Referenzcode gibt: Dieser Code wird dann mit offiziellen Testergebnissen verknüpft, bevor Maßnahmen ergriffen werden
- NHS COVID-19 weist medizinisches Personal an, Bluetooth auf dem eigenen Gerät auszuschalten, solange es Schutzausrüstung (PPE) trägt, und erklärt: „your interactions at work should not be captured when you are wearing PPE“
- Update 09:25 Uhr BST, 7. Mai: Wir haben unten einen Abschnitt „Wie schafft es die App eigentlich, im Hintergrund wirksam zu bleiben?“ ergänzt, der erklärt, wie die App bei der Kommunikation mit Android-Geräten am Leben bleibt, und einige Herausforderungen und Techniken für die Kommunikation zwischen iOS-Geräten behandelt
- Update 11:45 Uhr BST, 7. Mai: Wir haben unten einen Abschnitt „Erfasst die App personenbezogene Daten und gibt sie meine Identität preis?“ ergänzt.
Herausforderungen bei der Kontaktverfolgung, wenn eine App nicht auf dem Bildschirm angezeigt wird
App-Entwickler haben nur wenige Möglichkeiten, Apps „am Leben“ zu halten, wenn sie nicht im Vordergrund auf dem Gerät eines Nutzers laufen. Apple steuert diese Möglichkeiten sorgfältig, damit Apps die Privatsphäre der Nutzer nicht verletzen oder die Akkus übermäßig belasten. Insbesondere unterscheidet Apple danach, ob eine App den Fokus hat — d. h. auf dem Bildschirm angezeigt wird — oder im Hintergrund läuft. Neuere Updates von iOS haben die Möglichkeiten von Entwicklern, im Hintergrund auf Daten zuzugreifen, eingeschränkt: Bevor sich die Datenerfassung im Hintergrund so wirksam begrenzen ließ, konnte Uber zum Beispiel die Bewegungen eines Nutzers nachverfolgen, selbst wenn er nicht in einem Taxi saß.
Um im Hintergrund sinnvoll laufen zu können, muss der Herausgeber einer App bei der Einreichung im App Store die Erlaubnis von Apple einholen, indem er sie mit einer Reihe von „Background Modes“ kennzeichnet. Diese Hintergrundmodi sind auf die Übertragung von Video von einem Gerät auf ein anderes, das Erfassen von Standortaktualisierungen, den Einsatz als Telefon oder die Nutzung von Bluetooth beschränkt. Mit diesen Modi kann dein Smartphone zum Beispiel AirPlay im Hintergrund ausführen, Musik abspielen, ohne dass Spotify immer sichtbar ist, jemanden per WhatsApp anrufen und die App dann in den Hintergrund schicken oder deinen Lauf mit Strava aufzeichnen.

Die NHS-COVID-19-App
Diese Modi sind jedoch eingeschränkt, und vielleicht kennst du die Hinweise auf dem iPhone, die fragen, ob Apps im Hintergrund auf deinen Standort zugreifen dürfen. Selbst wenn ein Nutzer diese Berechtigungen erteilt, kann das Smartphone weiterhin um Bestätigung bitten, dass das richtig ist.
Kontaktverfolgungs-Apps werden mit Bluetooth Low Energy (BLE) gebaut, das — vereinfacht gesagt — Geräten erlaubt, einander zu erkennen. Theoretisch sind Apples Modi „Uses Bluetooth LE accessories“ und „Acts as a Bluetooth LE accessory“ dafür ideal und erlauben die Nutzung von BLE im Hintergrund. Eine App im Hintergrund, die diese Modi nutzt, kann zwar weiter mit BLE-Geräten kommunizieren, mit denen sie bereits in Kontakt steht (etwa einem Bluetooth-Smart-Lock), sie kann aber die Sendefrequenz nicht steuern, um Geräte abzufragen, die sie noch nicht gesehen hat. Im Hintergrund macht das es schwerer, nach Anzeichen neuer Geräte zu suchen, sinnvoll mit ihnen zu kommunizieren und insbesondere Nicht-Apple-Geräte zu erkennen. Das behindert Kontaktverfolgungs-Apps, die durchgehend im Hintergrund laufen müssen, erheblich.
Um die Dokumentation von Apple zu diesem Dienst zu zitieren:
All service UUIDs ... can be discovered only by an iOS device that is explicitly scanning for them. ...and for apps that are advertising are in the background, the frequency at which your peripheral device sends advertising packets may decrease
Workarounds und alternative Ansätze für die Kontaktverfolgung
Natürlich ist das keine neue Herausforderung für Entwickler: Sie suchen seit Langem nach Methoden, damit Apps im Hintergrund bleiben und trotz Einschränkungen Tracing-Daten erfassen können. Frameworks wie das Open-Source-Projekt AltBeacons sind entstanden, um das anzugehen, taugen aber nicht für die Kontaktverfolgung, bei der ein Gerät fortlaufend nach neuen Geräten suchen muss. Wie ABC festgestellt hat, als der Sender die australische nationale COVIDSafe-App untersuchte, gibt es dafür bisher keine praktikable Lösung. Es gibt ein paar Exploits, die vorübergehend nützlich sein könnten — etwa die eigene App als Audioplayer zu registrieren und Musik abspielen zu lassen —, doch diese und andere Exploits dieser Art sind bei Apple verpönt, können Nutzer beeinträchtigen und bestehen die Prüfung für den App Store nur selten.
In der Zwischenzeit bereitet Apple die Veröffentlichung von iOS 13.5 vor, das derzeit als Beta verfügbar ist. Apple kann Änderungen an seinem eigenen System vornehmen, die für diese Art der Nachverfolgung von Vorteil sind. 13.5 bringt einige offensichtlichere Funktionen mit — etwa Unterstützung für FaceID für Nutzer, die eine Maske tragen, oder zumindest einen schnelleren Weg zur Eingabe des Codes — und einige weniger offensichtliche, wie das ExposureNotification-Framework, das genau das ermöglicht, was Kontaktverfolgungs-Apps brauchen. Das führt natürlich nicht zum perfekten System: Nicht jeder Nutzer kann davon profitieren, da Geräte wie das iPhone 6 (2015) iOS 13 nicht ausführen können. Während das System von Apple eine globale Standardkennung verwendet, nutzt jedes Land, das es einführt, eine abgeschottete nationale Datenbank. Wenn also ein infizierter Europäer aus einem Land einem Bürger eines anderen europäischen Landes ausgesetzt ist, wird er das nicht über die Kontaktverfolgung erfahren.
Apples COVID-19-ExposureNotification bietet eine Lösung für das, was hier benötigt wird, aber es gibt Einschränkungen. Am bedeutsamsten ist, dass Apple angedeutet hat, dass nur die eigene App sie nutzen kann, um einen Missbrauch der Technologie durch andere zu verhindern.
Wie macht der NHS das also mit seiner COVID-19-App?
Wie kann die britische NHS-COVID-19-App also neue Geräte im Hintergrund wirksam erfassen, ohne „einzuschlafen“ (technisch: „angehalten zu werden“) und damit wirkungslos zu werden? Aus unseren Tests mit Version 1.0.1b341 der App „NHS COVID-19“ sehen wir, dass sie tatsächlich im Hintergrund wirksam kommuniziert. Offenbar geschieht das durch eine Reihe cleverer Workarounds mit Keepalives und Benachrichtigungen.
Wenn man die App zwangsbeendet, stoppt das Tracing im Hintergrund. Wird stattdessen das Smartphone aus- und wieder eingeschaltet, kommuniziert sie jedoch weiterhin korrekt im Hintergrund. Dieser Workaround verstößt möglicherweise gegen die Regeln von Apple, möglicherweise auch nicht, aber zum jetzigen Zeitpunkt wurde er nicht offengelegt, und Apple hat die bisher eingesehenen Builds der App genehmigt.
Wir untersuchen das weiter und veröffentlichen mehr Details, sobald es Neuigkeiten gibt.
Speichert die NHS-COVID-19-App sensible Daten?
Nein. Die App scheint sehr gut gemacht zu sein, mit sinnvollen Sicherheitspraktiken und ohne Speicherung unnötiger Daten. Im Mittelpunkt steht eine Kennung (linkingId), die bei jeder Installation der App erzeugt wird. Diese ID bleibt über Neuinstallationen der App hinweg bestehen, sodass sie sich auch durch Deinstallieren und erneutes Installieren nicht zurücksetzen lässt.
Wenn wir uns die Daten der App mit iPhone Backup Extractor unter dem Pfad uk.nhs.nhsx.sonar ansehen, finden wir eine Reihe von Dateien, die mit Google Firebase verknüpft sind, und eine Sammlung kleiner Plists (Konfigurationsdateien) für die übrigen Daten der App.

Die Dateien der NHS-COVID-19-App in einem Backup
Können Nutzer fälschlich selbst melden, dass sie COVID-19 haben?
Wenn ein Nutzer Symptome meldet, gibt die App eine Nummer an, unter der ein Test vereinbart werden kann, zusammen mit einem Referenzcode. Die Idee ist, dass das Testergebnis dann mit dem Referenzcode des Nutzers verknüpft wird. Würde ein Nutzer fälschlich Symptome melden, käme es nicht zu einer Bestätigung, solange der NHS das Testergebnis nicht passend zum Code des Nutzers aktualisiert.
Fragt die App Standortberechtigungen an?
Nein, das tut sie nicht.
Hat der NHS die Öffentlichkeit über die Nutzung von Google-APIs getäuscht?
Nein. Die NHS-COVID-19-App ist tief in die branchenübliche Firebase-API von Google für Datenspeicherung und -verwaltung integriert. (Der NHS nutzt nicht das Kontaktverfolgungs-Framework von Google oder Apple; schon allein deshalb nicht, weil es erst mit der Veröffentlichung von iOS 13.5 verfügbar sein wird.)
Mit welchen Diensten kommuniziert die App?
Wie bei der Android-App läuft die gesamte wesentliche Kommunikation über die COVID19-API des NHS, die unter *.covid19.nhs.uk gehostet wird. Die App stellt durch die Nutzung des AppCenter-Dienstes von Microsoft ein paar weitere Anfragen, aber keine, die wesentlich oder sensibel wären.
Wenn NHS-Mitarbeiter die App nutzen, führt das nicht zu falsch positiven Meldungen?
Die App fordert medizinisches Personal auf, Bluetooth auf den eigenen Geräten zu deaktivieren, solange es Schutzausrüstung trägt, und erklärt: „your interactions at work should not be captured when you are wearing personal protective equipment“.

Der PPE-Bluetooth-Hinweis der NHS-COVID-19-App
Wir haben uns gefreut, die COVID-19-App des NHS genauer unter die Lupe zu nehmen. Während es viele Spekulationen über ihre Funktionsweise gab, haben wir eine gut gebaute und sichere App gesehen. Das Tracing im Hintergrund scheint zu funktionieren, wobei es weiterhin ganz in Apples Hand liegt, ob das wirksam bleibt. Folglich liegt die Wirksamkeit der britischen Reaktion auf COVID-19 nun ebenfalls in Apples Hand.
Die Entscheidung, einen Alleingang zu wagen oder das Framework von Apple zu nutzen, wird eine schwierige gewesen sein. Apples Vorgaben zu folgen wäre wohl die weniger umstrittene Wahl gewesen. iOS 13.5 ist jedoch noch nicht verfügbar, während die britische App morgen als Beta erscheint, und nichts hindert Großbritannien daran, in späteren Updates auf Apples Weg einzuschwenken. Aus diesem Blickwinkel betrachtet — warum nicht zuerst auf der Isle of Wight einen Test durchführen?
Wie schafft es die App eigentlich, im Hintergrund wirksam zu bleiben?
Diese Antwort haben wir am 7. Mai um 09:25 Uhr BST ergänzt, um Fragen zu beantworten, die wir zu den Einzelheiten zum Wachbleiben der App erhalten haben. NHSX hat hier ein paar clevere Techniken für bessere Ergebnisse eingesetzt.
The Sun hat gestern Abend berichtet, die App nutze private Bluetooth-APIs, wir haben dafür aber keinerlei Anzeichen gesehen, und die Zeitung hat ihren Artikel inzwischen geändert und diese Behauptung zurückgenommen. Die NHS-COVID-19-App nutzt öffentliche Bluetooth-APIs in iOS und scheint keine besonderen Privilegien auszunutzen. Stattdessen gibt es einige clevere Techniken.
Die erste Technik reagiert auf das Bluetooth-Verhalten von iOS bei angehaltenen Apps. Uns ist aufgefallen, dass Apple verändert, wie eine App im angehaltenen Zustand nach neuen Geräten suchen kann. Angehaltene Apps können Geräte, die sie noch nicht gesehen haben, nicht korrekt erkennen. Wie wir oben geschrieben haben, ist es „schwerer, nach Anzeichen neuer Geräte zu suchen, sinnvoll mit ihnen zu kommunizieren und insbesondere Nicht-Apple-Geräte zu erkennen“.
NHSX hat die Herausforderung mit Nicht-Apple-Geräten andersherum angepackt: Da das Team erkannte, dass es nicht beeinflussen konnte, was iOS in dieser Hinsicht tut, hat es in seiner Android-App clevere Funktionen gebaut, die die eingeschränkten, Apple-spezifischen Nachrichten erkennen, die eine App im Hintergrund auf einem iOS-Gerät senden würde. Damit hat das Android-Gerät genug Informationen, um mit dem iOS-Gerät sprechen zu können und es wieder in einen Zustand aufzuwecken, in dem sich kommunizieren lässt.
Ohne Android ist die Lage etwas anders: Es gibt eine Schwelle, ab der die NHS-COVID-19-App verstummen kann, wenn sie eine Zeit lang im Hintergrund bleibt, und Geräteprotokolle zeigen Beispiele dafür. In diesem Fall wurde die App in den Hintergrund verschoben, kann aber noch über eineinhalb Stunden weiter scannen (technisch: „senden“). Andere Ereignisse auf dem Smartphone — darunter andere Apps, die Bluetooth nutzen — können diese Zeit verlängern.
Session uk.nhs.nhsx.sonar-peripheral-11919-319 can advertise in background for 6240 seconds
Folglich lässt sich nicht sagen: „Die App wird bei der Kommunikation zwischen iOS-Geräten nach X Zeit wirkungslos“: Die App hat ein großzügiges, variables Zeitfenster, um am Leben zu bleiben, und eine Reihe nachvollziehbarer Faktoren kann dazu führen, dass dieses Fenster verlängert wird, darunter andere Nutzung von Bluetooth, die Anwesenheit von Android-Geräten und die Wirksamkeit der Benachrichtigungen.
Es gibt einige seltenere Situationen, in denen iOS versuchen könnte, eine Hintergrund-App vollständig anzuhalten, zum Beispiel wenn dem System der Arbeitsspeicher knapp wird. Tritt das ein, beeinträchtigt es die Zuverlässigkeit des Dienstes. Die App versucht dem zu begegnen, indem sie eine Push-Benachrichtigung auslöst, die Nutzer bittet, die App erneut zu öffnen, aber das funktioniert je nach Zustand des Geräts nicht immer. In unseren Tests haben die iOS-Geräte, auf denen wir die App ausgeführt haben, den Hintergrunddienst über Nacht weiter laufen lassen.
Erfasst die App personenbezogene Daten und gibt sie meine Identität preis?
Diese Antwort haben wir am 7. Mai um 11:45 Uhr BST ergänzt, um Fragen zu beantworten, die wir zur Erfassung und Übertragung von Daten durch die App erhalten haben
Die iOS-App erfasst wirklich sehr wenige Daten: Es geht nur um die Kennung der Nutzer (linkingId). Diese Kennung ließe sich nur dann einer Person zuordnen, wenn sie Symptome meldet und mit dieser ID einen Test beim NHS vereinbart.
Ein positives Testergebnis, das einer ID zugeordnet wird, löst effektiv den Tracing-Alarm aus. Die Frage ist dann, ob der NHS die zum Zeitpunkt des Tests erhobenen Angaben einer Person zentral zusammen mit dieser ID speichern würde. Das wäre für das Funktionieren der App nicht notwendig und ist nicht Teil der App. Wie wir bereits geschrieben haben, hat die App keinen Zugriff auf Standortdaten über die ersten Ziffern der Postleitzahl eines Nutzers hinaus (die der Nutzer bei der Einrichtung eingibt und die nicht überprüft werden).
Die Frage ist hier also nicht, was die App speichert: Es geht darum, welche Informationen der NHS bei der Buchung eines Tests abfragt und wie diese Informationen gespeichert werden.
Würde ein Nutzer Symptome melden und keinen Test vereinbaren (oder einen Test vereinbaren, ohne seine ID anzugeben), gäbe es absolut keine Möglichkeit, die beiden Arten von Informationen zu verknüpfen. In diesem Extremszenario würde das natürlich auch verhindern, dass die App warnt, falls der Nutzer COVID-19 hätte.
Wir untersuchen das weiter und veröffentlichen mehr Details, sobald es Neuigkeiten gibt.






