Ga naar hoofdinhoud

Technology, security analysis

Staying alive: tracing op de achtergrond en de NHS COVID-19-app

Aidan FitzpatrickGepubliceerd op 6 mei 2020Bijgewerkt op 31 juli 2024
Op deze pagina
Cover image for: Staying alive: tracing op de achtergrond en de NHS COVID-19-app
  • De NHS COVID-19-app lijkt correct te werken wanneer hij op de achtergrond draait op iOS-apparaten, anders dan de Australische COVIDSafe-app
  • De app voorkomt valse meldingen door gebruikers met symptomen een referentiecode te geven: die code wordt vervolgens gekoppeld aan formele testresultaten voordat er actie wordt ondernomen
  • NHS COVID-19 instrueert zorgmedewerkers om Bluetooth op hun apparaat uit te zetten terwijl ze PBM dragen, met de uitleg “your interactions at work should not be captured when you are wearing PPE”
  • Update 09:25 BST, 7 mei: We hebben hieronder een sectie “Hoe slaagt de app erin om op de achtergrond effectief te blijven?” toegevoegd, waarin we uitleggen hoe de app actief blijft bij communicatie met Android-apparaten, en enkele uitdagingen en technieken bespreken voor communicatie van iOS naar iOS
  • Update 11:45 BST, 7 mei: We hebben hieronder een sectie “Verzamelt de app persoonsgegevens en maakt hij mijn identiteit bekend?” toegevoegd.

Uitdagingen bij contactonderzoek wanneer een app niet op het scherm staat

App-ontwikkelaars hebben weinig mogelijkheden om apps “levend” te houden wanneer ze niet vooraan in beeld staan op het apparaat van een gebruiker. Apple beheert deze mogelijkheden zorgvuldig om ervoor te zorgen dat apps de privacy van gebruikers niet schenden en hun batterij niet onnodig leegtrekken. Met name maakt Apple onderscheid tussen een app die focus heeft, dat wil zeggen die op het scherm wordt getoond, en een app die op de achtergrond draait. Recente iOS-updates hebben de mogelijkheden van ontwikkelaars beperkt om toegang te krijgen tot gegevens terwijl een app op de achtergrond draait: voordat het zo effectief mogelijk werd om dataverzameling op de achtergrond te beperken, kon Uber bijvoorbeeld de bewegingen van een gebruiker volgen ook als die niet in een taxi zat.

Om in zinvolle zin op de achtergrond te kunnen draaien, moet de uitgever van een app toestemming krijgen van Apple wanneer de app wordt ingediend bij de App Store, door de app te markeren met een reeks “Background Modes”. Deze achtergrondmodi zijn beperkt tot het verzenden van video van het ene apparaat naar het andere, het verzamelen van locatie-updates, het fungeren als telefoon of het gebruiken van Bluetooth. Met deze modi kan je telefoon bijvoorbeeld AirPlay op de achtergrond laten draaien, muziek afspelen zonder dat Spotify steeds in beeld is, iemand bellen met WhatsApp en dat dan naar de achtergrond verplaatsen, of je hardlooprondje volgen met Strava.

De NHS COVID-19-app

De NHS COVID-19-app

Deze modi zijn echter beperkt, en gebruikers kennen misschien de meldingen op de iPhone waarin wordt gevraagd of apps op de achtergrond toegang tot je locatie mogen krijgen. Zelfs wanneer een gebruiker deze toestemming verleent, kan de telefoon blijven vragen om bevestiging dat dit de juiste keuze is.

Contactonderzoeksapps zijn gebouwd met Bluetooth low-energy (BLE), waarmee apparaten, simpel gezegd, elkaar kunnen herkennen. In theorie zijn de modi “Uses Bluetooth LE accessories” en “Acts as a Bluetooth LE accessory” van Apple hiervoor ideaal en maken ze het gebruik van BLE op de achtergrond mogelijk. Een app op de achtergrond die deze modi gebruikt, kan echter wel blijven communiceren met BLE-apparaten waarmee hij al in contact is (zoals een slim Bluetooth-slot), maar kan de uitzendsnelheid niet regelen om apparaten te peilen die hij nog niet eerder heeft gezien. Op de achtergrond maakt dit het moeilijker om naar tekenen van nieuwe apparaten te zoeken, zinvol met ze te communiceren en met name om niet-Apple-apparaten te herkennen. Dit belemmert contactonderzoeksapps die continu op de achtergrond moeten draaien behoorlijk.

Om de documentatie van Apple over deze service te citeren:

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

Omwegen en alternatieve benaderingen voor tracing

Dit is natuurlijk geen nieuwe uitdaging voor ontwikkelaars: ze proberen al lang methoden te vinden waarmee apps op de achtergrond actief kunnen blijven en beperkingen kunnen omzeilen om tracinggegevens te verzamelen. Frameworks zoals het opensource-AltBeacons zijn ontstaan om dit aan te pakken, maar zijn niet bruikbaar voor contactonderzoek, waarbij een apparaat voortdurend naar nieuwe apparaten moet zoeken. Zoals ABC constateerde in Australië, toen het naar de nationale COVIDSafe-app keek, is hier tot nu toe geen praktische oplossing voor. Er bestaan een paar exploits die tijdelijk nuttig kunnen zijn, zoals je app registreren als audiospeler en er muziek mee laten afspelen, maar Apple keurt deze en andere exploits van dien aard af, ze kunnen gebruikers last bezorgen en komen zelden door de goedkeuring voor de App Store.

Intussen heeft Apple zich voorbereid op de release van iOS 13.5, dat momenteel beschikbaar is als bèta. Apple kan wijzigingen aanbrengen in zijn eigen systeem die gunstig zijn voor tracking op deze manier. 13.5 introduceert een aantal duidelijkere functies, zoals ondersteuning voor FaceID voor gebruikers met een mondkapje, of althans een snellere manier om een toegangscode in te voeren, en enkele minder opvallende functies, zoals het framework ExposureNotification dat precies biedt wat de contactonderzoeksapps nodig hebben. Dit levert natuurlijk niet het perfecte systeem op: niet elke gebruiker kan hiervan profiteren, omdat apparaten zoals de iPhone 6 (2015) iOS 13 niet kunnen draaien. Hoewel het systeem van Apple een wereldwijd standaardidentificatienummer gebruikt, gebruikt elk land dat het implementeert een eigen, afgeschermde nationale database. Als een geïnfecteerde Europeaan uit het ene land dus in contact komt met een burger uit een ander Europees land, komen ze dat niet te weten via contactonderzoek.

Het COVID-19-ExposureNotification van Apple biedt een oplossing voor wat hier nodig is, maar er zijn kanttekeningen. Het belangrijkste is dat Apple heeft aangegeven dat alleen de app van Apple zelf er gebruik van kan maken, om misbruik van de technologie door anderen te voorkomen.

Hoe doet de NHS het dan met de COVID-19-app?

Hoe kan de Britse NHS COVID-19-app dan effectief nieuwe apparaten traceren terwijl hij op de achtergrond draait, zonder “in slaap te vallen” (technisch gezien “te worden opgeschort”) en daardoor niet meer effectief te zijn? Uit onze tests met versie 1.0.1b341 van de app “NHS COVID-19” blijkt dat hij inderdaad effectief communiceert op de achtergrond. Het lijkt erop dat dit gebeurt met een reeks slimme omwegen met keepalives en meldingen. Als je de app geforceerd afsluit, stopt de tracing op de achtergrond. Als je de telefoon daarentegen uit- en weer aanzet, blijft hij op de achtergrond gewoon communiceren. Of deze omweg in strijd is met de regels van Apple is niet zeker, maar op dit moment is dit niet bekendgemaakt en heeft Apple de builds van de app die het tot nu toe heeft gezien goedgekeurd.

We blijven dit onderzoeken en publiceren meer details naarmate de situatie zich ontwikkelt.

Slaat de NHS COVID-19-app gevoelige gegevens op?

Nee. De app lijkt heel goed in elkaar te zitten, met verstandige beveiligingspraktijken en zonder opslag van onnodige gegevens. Hij draait om een linkingId die voor elke installatie van de app wordt gegenereerd. Deze ID blijft behouden bij het opnieuw installeren van de app, dus de app verwijderen en opnieuw installeren zet de identifier niet terug.

Als we met iPhone Backup Extractor de gegevens van de app bekijken onder het pad uk.nhs.nhsx.sonar, zien we een reeks bestanden die aan Google Firebase gekoppeld zijn en een verzameling kleine plists (configuratiebestanden) voor de rest van de gegevens van de app.

De bestanden van de NHS COVID-19-app in een back-up bekijken

De bestanden van de NHS COVID-19-app in een back-up bekijken

Kunnen gebruikers ten onrechte zelf melden dat ze COVID-19 hebben?

Als een gebruiker symptomen meldt, geeft de app een nummer om te bellen om een test te regelen, samen met een referentiecode. Het idee is dat het testresultaat vervolgens wordt gekoppeld aan de referentiecode van de gebruiker. Als een gebruiker ten onrechte symptomen zou melden, zou er geen bevestiging plaatsvinden zonder dat de NHS het testresultaat bijwerkt zodat het overeenkomt met de code van de gebruiker.

Vraagt de app om locatietoestemming?

Nee, dat doet hij niet.

Heeft de NHS het publiek misleid over het gebruik van Google-API’s?

Nee. De NHS COVID-19-app is diep geïntegreerd met de Firebase-API van Google, de industriestandaard voor gegevensopslag en -beheer. (De NHS gebruikt niet het contactonderzoeksframework van Google of Apple; dat komt trouwens pas beschikbaar met de release van iOS 13.5.)

Met welke services communiceert de app?

Net als bij de Android-app loopt alle wezenlijke communicatie via de COVID19-API van de NHS, die wordt gehost onder *.covid19.nhs.uk. De app doet een paar andere verzoeken doordat hij gebruikmaakt van de AppCenter-service van Microsoft, maar geen enkele daarvan is wezenlijk of gevoelig.

Als NHS-medewerkers de app gebruiken, leidt dat dan niet tot valse positieven?

De app vraagt zorgmedewerkers om Bluetooth op hun apparaat uit te schakelen terwijl ze PBM dragen, met de tekst “your interactions at work should not be captured when you are wearing personal protective equipment”.

De Bluetooth-melding over PBM in de NHS COVID-19-app

De Bluetooth-melding over PBM in de NHS COVID-19-app


We hebben met plezier dieper in de COVID-19-app van de NHS gedoken. Hoewel er veel is gespeculeerd over de werking ervan, is wat we hebben gezien een goed gebouwde en veilige app. De tracing op de achtergrond lijkt te werken, al ligt het nog steeds helemaal in handen van Apple of dit effectief blijft. Daardoor ligt ook de effectiviteit van de Britse reactie op COVID-19 nu in handen van Apple.

De keuze om het alleen te doen of het framework van Apple te gebruiken, zal een lastige zijn geweest. Het voorbeeld van Apple volgen zou waarschijnlijk minder controversieel zijn geweest. iOS 13.5 is echter nog niet live, terwijl de Britse app morgen in bèta uitkomt, en er is niets wat het VK ervan weerhoudt om in latere updates alsnog het voorbeeld van Apple te volgen. Bekeken vanuit dat perspectief: waarom niet eerst een proef op het Isle of Wight uitrollen?


Hoe slaagt de app erin om op de achtergrond effectief te blijven?

We hebben dit antwoord op 7 mei om 09:25 BST toegevoegd om vragen te beantwoorden die we hebben gekregen over de details van het actief blijven van de app. NHSX heeft hier een paar slimme technieken gebruikt voor betere resultaten.

The Sun meldde gisteravond dat de app private Bluetooth-API’s gebruikt, maar wij hebben daar geen aanwijzingen voor gezien en de krant heeft haar verhaal inmiddels aangepast en die bewering ingetrokken. De NHS COVID-19-app gebruikt openbare Bluetooth-API’s binnen iOS en lijkt geen gebruik te maken van speciale privileges. In plaats daarvan zijn er enkele slimme technieken.

De eerste techniek is een reactie op het Bluetooth-gedrag van iOS voor opgeschorte apps. We merkten op dat Apple verandert hoe een app naar nieuwe apparaten kan zoeken wanneer die is opgeschort. Opgeschorte apps kunnen apparaten die ze niet eerder hebben gezien niet goed herkennen. Zoals we hierboven schreven, is het “moeilijker om naar tekenen van nieuwe apparaten te zoeken, zinvol met ze te communiceren en met name om niet-Apple-apparaten te herkennen”.

NHSX pakte de uitdaging van niet-Apple-apparaten van de andere kant aan: omdat ze zich realiseerden dat ze niet konden beïnvloeden wat iOS in dit opzicht deed, bouwden ze in hun Android-app slimme functionaliteit om de beperkte, Apple-specifieke berichten te herkennen die een app op de achtergrond van een iOS-apparaat zou verzenden. Zo krijgt het Android-apparaat genoeg informatie om met het iOS-apparaat te kunnen praten en het weer wakker te maken in een toestand waarin ze kunnen communiceren.

Zonder Android is de situatie iets anders: er is een drempel waarbij de NHS COVID-19-app stil kan vallen wanneer hij een bepaalde tijd op de achtergrond blijft, en de apparaatlogboeken laten daar voorbeelden van zien. In dit geval is de app naar de achtergrond verplaatst, maar kan hij nog ruim anderhalf uur blijven scannen (technisch gezien “uitzenden”). Andere gebeurtenissen op de telefoon, waaronder andere apps die Bluetooth gebruiken, kunnen dit verlengen.

Session uk.nhs.nhsx.sonar-peripheral-11919-319 can advertise in background for 6240 seconds

Daardoor is het niet mogelijk om te zeggen “de app wordt na X tijd niet meer effectief bij communicatie van iOS naar iOS”: er is een ruim, variabel tijdvenster waarin de app actief blijft, en een aantal redelijke factoren kan ervoor zorgen dat dit venster wordt verlengd, waaronder ander gebruik van Bluetooth, de aanwezigheid van Android-apparaten en de effectiviteit van meldingen.

Er zijn enkele minder voorkomende situaties waarin iOS kan proberen een app op de achtergrond volledig op te schorten, bijvoorbeeld wanneer het systeem weinig geheugen heeft. Als dat gebeurt, heeft dat invloed op de betrouwbaarheid van de service. De app probeert dit op te vangen door een pushmelding te activeren die gebruikers vraagt de app opnieuw te openen, maar dat werkt niet altijd, afhankelijk van de toestand van het apparaat. In onze tests bleef de achtergrondservice op de iOS-apparaten waarop we de app hebben gedraaid de hele nacht actief.


Verzamelt de app persoonsgegevens en maakt hij mijn identiteit bekend?

We hebben dit antwoord op 7 mei om 11:45 BST toegevoegd om vragen te beantwoorden die we hebben gekregen over het verzamelen en verzenden van gegevens door de app

De iOS-app legt echt heel weinig gegevens vast: alles draait om hun linkingId. Die kan alleen aan een persoon gekoppeld worden als die symptomen meldde en met die ID een test bij de NHS regelde.

Dat een positief testresultaat aan een ID wordt gekoppeld, is feitelijk wat het contactonderzoeksalarm doet afgaan. De vraag is dan of de NHS de gegevens van een persoon die op het moment van de test zijn verzameld centraal opslaat naast die ID. Dat is niet nodig om de app te laten werken en maakt geen wezenlijk deel uit van de app. Zoals we eerder schreven, heeft de app geen toegang tot locatiegegevens, behalve de eerste paar cijfers van de postcode van een gebruiker (die de gebruiker bij het instellen zelf invoert en die niet worden gevalideerd).

De vraag is hier dus niet wat de app opslaat: het gaat erom welke informatie de NHS vraagt bij het boeken van een test en hoe die informatie wordt opgeslagen.

Als een gebruiker symptomen zou melden en geen test zou regelen (of een test zou regelen zonder zijn ID op te geven), zou er absoluut geen manier zijn om de twee soorten informatie aan elkaar te koppelen. In dit uiterste scenario zou de app natuurlijk ook niet kunnen waarschuwen als de gebruiker COVID-19 had.

We blijven dit onderzoeken en publiceren meer details naarmate de situatie zich ontwikkelt.


Over de auteur

Aidan Fitzpatrick

Oprichter, CEO

Aidan richtte Reincubate op in 2008, nadat hij ’s werelds eerste tool voor iOS-gegevensherstel had gebouwd. Sindsdien heeft hij het bedrijf uitgebouwd tot een van ’s werelds toonaangevende ISV’s, in samenwerking met bedrijven als AMD, Qualcomm en HP om betekenisvolle machine-learning-functies voor videosoftware te ontwikkelen, met als uithangbord het Camo-app-ecosysteem. Onder Aidans leiding heeft Reincubate vier keer de hoogste zakelijke onderscheiding van het VK gewonnen, een plek veroverd op de 100 Tech-lijst van The Sunday Times, en erkenning in de sector gekregen met nominaties voor de Apple Design Award en de App Store Awards. Zijn werk en technieken worden vaak aangehaald in wetenschappelijke publicaties over mobiele forensica, en hij is uitgenodigd om te spreken op evenementen georganiseerd door bedrijven als Google, Microsoft en Snap.


Reacties (1)

richard atterbury 9 mei 2020

I am on IOW. The app does require Location Services. Very surprised as every description, including yours, says that it does not

Antwoord van Reincubate-support 9 mei 2020

Hi Richard, thanks for your comment! The way the app gets access to Bluetooth on Android is confusing; its request for access makes it appear it's also requesting location access. We detail what's [going on with that here](https://reincubate.com/blog/nhs-covid-19-background-tracing-details/) — in short, it's a limitation of Android that appears misleading.


Gerelateerde inhoud


Populaire artikelen

Logo van de King's Award for Enterprise

King's Award for Enterprise: Reincubate heeft vier keer de hoogste officiële zakelijke onderscheiding van het Verenigd Koninkrijk gewonnen, het meest recent als erkenning voor de uitzonderlijke groei van het bedrijf in de afgelopen drie jaar.

Onze relaties met gebruikers en partners staan centraal in onze waarden en de producten die we maken. Bekijk onze reviews om te horen wat zij over ons te zeggen hebben.

ISO 27001-gecertificeerd door Centre for Assessment, geaccrediteerd door UKAS

© 2008-2026 Reincubate Ltd. Alle rechten voorbehouden. Ingeschreven in Engeland en Wales onder nr. 5189175, btw-nummer GB151788978. Camo®, Streamlight® en Reincubate® zijn geregistreerde handelsmerken. Octrooien aangevraagd.

Hulp