Rimanere vivi: tracciamento in background e l'app NHS COVID-19

Pubblicato aggiornato
Cover image for: Rimanere vivi: tracciamento in background e l'app NHS COVID-19
  • L'app NHS COVID-19 sembra funzionare correttamente quando si esegue in background su dispositivi iOS, a differenza dell'app COVIDSafe australiana
  • L'app impedisce falsi rapporti fornendo agli utenti sintomi con un codice di riferimento: tale codice viene quindi associato ai risultati formali del test prima di intraprendere un'azione
  • NHS COVID-19 indica agli operatori sanitari di disattivare il Bluetooth sul proprio dispositivo mentre indossano DPI, spiegando che "le interazioni sul lavoro non devono essere catturate quando si indossano DPI"
  • Aggiornamento 0925 BST 7 maggio : abbiamo aggiunto un "In che modo l'app riesce a rimanere efficace in background?" la sezione seguente, che spiega come l'app riesce a rimanere in vita quando comunica con i dispositivi Android e copre alcune delle sfide e delle tecniche per la comunicazione da iOS a iOS
  • Aggiornamento 1145 BST del 7 maggio : abbiamo aggiunto "L'app raccoglie dati personali e rivela la mia identità?" sezione sotto.

Sfide nella traccia dei contatti quando un'app non viene visualizzata sullo schermo

Gli sviluppatori di app hanno poche opzioni quando si tratta di mantenere "attive" le app quando non sono in primo piano e centrate sul dispositivo di un utente. Apple gestisce attentamente queste opzioni per garantire che le app non invadano la privacy degli utenti o esauriscano indebitamente le batterie degli utenti. In particolare, fanno una distinzione sul fatto che un'app sia focalizzata , ovvero. viene visualizzato sullo schermo o è in esecuzione in background. I recenti aggiornamenti di iOS hanno limitato la capacità degli sviluppatori di accedere ai dati mentre erano in background: ad esempio, prima di poter limitare la raccolta in background in modo così efficace, Uber era in grado di tracciare i movimenti di un utente anche quando non era in cabina.

Per funzionare in modo significativo in background, l'editore di un'app deve ottenere l'autorizzazione da Apple quando viene inviato all'App Store, contrassegnandolo con una serie di " Modalità di sfondo ". Queste modalità in background sono limitate per l'uso quando si trasmettono video da un dispositivo a un altro, quando si raccolgono aggiornamenti sulla posizione, si agisce come un telefono o si utilizza il Bluetooth. Ad esempio, queste modalità sono ciò che consente al tuo telefono di eseguire AirPlay in background, riprodurre musica senza Spotify sempre in mostra, chiamare qualcuno con WhatsApp e quindi metterlo in background o tenere traccia della tua corsa su Strava.

The NHS COVID-19 app
L'app NHS COVID-19

Queste modalità sono limitate, tuttavia, e gli utenti potrebbero avere familiarità con le notifiche di iPhone che chiedono se le app devono poter accedere alla tua posizione in background. Anche quando un utente concede queste autorizzazioni, il telefono potrebbe continuare a richiedere la conferma che questa è la cosa giusta da fare.

Le app di tracciamento dei contatti sono costruite utilizzando Bluetooth a basso consumo (BLE), che - in poche parole - consente ai dispositivi di riconoscersi reciprocamente. Teoricamente, le modalità "Usa accessori Bluetooth LE" di Apple e "Funziona come accessorio Bluetooth LE" sono ideali per questo e consentono l'uso di BLE in background. Tuttavia, mentre un'app in background che utilizza queste modalità sarà in grado di continuare a comunicare con qualsiasi dispositivo BLE con cui è già in comunicazione (come uno smart-lock Bluetooth), non sarà in grado di controllare la velocità di trasmissione ai dispositivi di polling che non ha mai visto prima. Se in background, ciò rende più difficile la ricerca di segni di nuovi dispositivi, la comunicazione significativa con essi e, in particolare, l'identificazione di dispositivi non Apple. Ciò ostacola piuttosto le app di tracciamento dei contatti che devono essere eseguite continuamente in background.

Per citare la documentazione di Apple sul servizio :

Tutti gli UUID di servizio [...] possono essere scoperti solo da un dispositivo iOS che li sta esplicitamente cercando. [... e per] le app che pubblicizzano sono in background, la frequenza con cui il dispositivo periferico invia pacchetti pubblicitari può diminuire

Soluzioni alternative e approcci alternativi per la traccia

Naturalmente, questa non è una nuova sfida per gli sviluppatori: hanno cercato a lungo di trovare metodi per le app per rimanere in background e raccogliere i dati di tracciamento delle restrizioni . Sono emersi framework come AltBeacons open source per affrontare questo problema, non sono fattibili per la traccia dei contatti in cui un dispositivo deve essere continuamente alla ricerca di nuovi dispositivi. Come ha scoperto la ABC in Australia, quando si guarda l'app COVIDSafe nazionale, non esiste una soluzione pratica a questo. Esistono alcuni exploit che potrebbero essere temporaneamente utili - come la registrazione della propria app come lettore audio e la riproduzione di musica - ma questi e altri exploit di questa natura sono disapprovati da Apple, resistono agli inconvenienti degli utenti e raramente passano l'approvazione al App Store.

Nel frattempo, Apple si sta preparando a rilasciare iOS 13.5 , che è attualmente disponibile in versione beta. Apple è in grado di apportare modifiche al proprio sistema utili per il tracciamento in questo modo. 13.5 introdurrà una serie di funzionalità più ovvie - come il supporto per FaceID per gli utenti che indossano una maschera , o almeno un percorso più rapido per l'inserimento di un passcode - e alcune funzionalità meno ovvie, come il framework ExposureNotification che consente proprio ciò che il contatto necessità di tracciare le app. Questo non si tradurrà nel sistema perfetto, ovviamente: non tutti gli utenti saranno in grado di trarne vantaggio, poiché dispositivi come iPhone 6 (2015) non sono in grado di eseguire iOS 13. Mentre il sistema di Apple utilizza uno standard globale identificatore, ogni paese che lo implementa utilizza un database nazionale siled. Pertanto, se un europeo infetto di un paese viene esposto a un cittadino di un altro paese europeo, non lo scopriranno attraverso la ricerca dei contatti.

La notifica ExposureNotification COVID-19 di Apple fornisce una soluzione per ciò che è necessario qui, ma ci sono avvertenze. Più significativamente, Apple ha indicato che solo la loro app sarà in grado di utilizzarla al fine di prevenire l'uso improprio della tecnologia da parte di altri.

In che modo l'NHS lo fa con l' app COVID-19 ?

In che modo, quindi, il britannico NHS COVID-19 può effettivamente rintracciare nuovi dispositivi mentre è in background, senza "addormentarsi" (tecnicamente, "essere sospeso") e quindi essere reso inefficace? Dai nostri test con la versione 1.0.1b341 dell'app “NHS COVID-19”, possiamo vedere effettivamente comunicare efficacemente in background. Sembra che ciò avvenga attraverso l'uso di una serie di soluzioni intelligenti che utilizzano keepalive e notifiche. Forzare l'uscita dall'app interromperà la traccia in background, tuttavia, se invece il telefono è spento e riacceso, continuerà a comunicare correttamente in background. Questa soluzione alternativa potrebbe non essere adatta a Apple, ma a questo punto non è stata divulgata e Apple ha approvato le build dell'app che ha visto finora.

Stiamo continuando a esaminare questo aspetto e pubblicheremo maggiori dettagli man mano che le cose si sviluppano.

L'app NHS COVID-19 memorizza i dati sensibili?

No. L'app sembra molto ben messa insieme, usando pratiche di sicurezza sensate e senza memorizzazione di dati non necessari. Ruota attorno a un linkingId che viene generato per ogni installazione dell'app. Questo ID persiste durante l'installazione dell'app, quindi disinstallarlo e reinstallarlo non ripristinerà l'identificatore.

Guardando i dati dall'app utilizzando iPhone Backup Extractor sotto il percorso uk.nhs.nhsx.sonar , possiamo vedere che ci sono una serie di file accoppiati a Google Firebase e una raccolta di piccoli Plist (file di configurazione) per il resto dell'app dati.

Looking at the NHS COVID-19 app’s files in a backup
Guardando i file dell'app NHS COVID-19 in un backup

Gli utenti possono auto-riferire falsamente di avere COVID-19?

Se un utente segnala sintomi, l'app fornisce un numero da chiamare per organizzare un test, insieme a un codice di riferimento. L'idea è che il risultato del test sia quindi associato al codice di riferimento dell'utente. Se un utente segnalasse erroneamente i sintomi, la conferma non avverrebbe senza che il Servizio sanitario nazionale aggiorni il risultato del test in modo che corrisponda al codice dell'utente.

L'app richiede autorizzazioni di localizzazione?

No non lo fa.

Il servizio sanitario nazionale ha indotto in errore il pubblico sull'utilizzo delle API di Google?

No. L'app NHS COVID-19 è profondamente integrata con l' API Firebase standard di Google per l'archiviazione e la gestione dei dati. (Il servizio sanitario nazionale non utilizza il framework di tracciamento dei contatti di Google o Apple; a parte tutto ciò, questo non sarà disponibile fino al rilascio di iOS 13.5.)

Con quali servizi comunica l'app?

Come per l'app per Android, tutte le comunicazioni materiali vengono inviate all'API COVID19 dell'NHS, ospitata in *.covid19.nhs.uk . L'app effettua alcune altre richieste come conseguenza dell'utilizzo del servizio AppCenter di Microsoft , ma nessuna rilevante o sensibile.

Se i lavoratori del SSN utilizzano l'app, non porterebbe a falsi positivi?

L'app richiede agli operatori sanitari di disabilitare il Bluetooth sui propri dispositivi mentre indossano DPI, affermando che "le tue interazioni sul lavoro non devono essere catturate quando indossi dispositivi di protezione individuale".

The NHS COVID-19 app's PPE Bluetooth prompt
Richiesta Bluetooth DPI dell'app NHS COVID-19


Siamo stati lieti di fare un tuffo più profondo nell'app COVID-19 dell'NHS. Mentre ci sono state molte speculazioni sulla sua funzionalità, quello che abbiamo visto è un'app ben costruita e sicura. La traccia in background sembra funzionare, sebbene rimanga molto sotto il controllo di Apple sul fatto che continuerà ad essere efficace. Di conseguenza, l'efficacia della risposta britannica a COVID-19 è ora anche sotto il controllo di Apple.

La scelta di andare da soli o utilizzare il framework di Apple sarà stata una sfida. Seguire l'esempio di Apple sarebbe stata probabilmente una scelta meno controversa. Tuttavia, iOS 13.5 non è ancora attivo, mentre l'app britannica verrà rilasciata domani in beta e non c'è nulla che impedisca al Regno Unito di seguire Apple nei successivi aggiornamenti. Visto attraverso quell'obiettivo - perché non spedire prima un processo nell'Isola di Wight?


In che modo l'app riesce a rimanere efficace in background?

Abbiamo aggiunto questa risposta 0925 BST, 7 maggio, per rispondere alle domande che abbiamo ricevuto sui dettagli dell'app che rimangono in vita. NHSX ha utilizzato alcune tecniche intelligenti per ottenere risultati migliori qui.

Ieri Sun ha riferito che l'app utilizza API Bluetooth private, ma non ne abbiamo visto alcun segno e da allora hanno modificato la loro storia per ritrattare questa affermazione. L'app NHS COVID-19 utilizza API Bluetooth pubbliche in iOS e non sembra sfruttare alcun privilegio speciale. Invece, ci sono alcune tecniche intelligenti.

La prima tecnica è in risposta al comportamento Bluetooth di iOS per le app sospese. Abbiamo notato che Apple modifica il modo in cui un'app può cercare nuovi dispositivi quando è sospesa. Le app sospese non sono in grado di riconoscere correttamente i dispositivi che non hanno mai visto prima. Come abbiamo scritto sopra, è "più difficile cercare segni di nuovi dispositivi, comunicare in modo significativo con essi e in particolare identificare dispositivi non Apple".

NHSX ha affrontato la sfida dei dispositivi non Apple viceversa: rendendosi conto che non potevano influenzare ciò che iOS stava facendo a questo proposito, hanno creato cose intelligenti nella loro app Android per riconoscere i messaggi limitati e specifici di Apple che un'app in background su un dispositivo iOS avrebbe inviato. Ciò fornisce al dispositivo Android informazioni sufficienti per poter comunicare con il dispositivo iOS, ripristinandolo in uno stato in cui è in grado di comunicare.

La situazione senza iOS è leggermente diversa; c'è una soglia in base alla quale l'app NHS COVID-19 può rimanere silenziosa se lasciata in background per un certo periodo di tempo, e i registri dei dispositivi mostrano esempi di questo. In questo caso, l'app è stata spostata in background, ma sarà in grado di continuare a scansionare (tecnicamente, "trasmettere") per oltre un'ora e mezza. Altri eventi sul telefono, incluse altre app che utilizzano Bluetooth, possono estenderlo.

La sessione uk.nhs.nhsx.sonar-periferia-11919-319 può fare pubblicità in background per 6240 secondi

Di conseguenza, non è possibile dire "l'app diventerà inefficace nelle comunicazioni da iOS a iOS dopo un periodo di tempo X": esiste una finestra variabile generosa che l'app deve rimanere in vita e una serie di fattori ragionevoli che possono attivare l'estensione di questa finestra, incluso l'uso di Bluetooth, la presenza di dispositivi Android e l'efficacia delle notifiche.

Esistono alcune situazioni meno comuni in cui iOS potrebbe tentare di sospendere completamente un'app in background, ad esempio in cui il sistema sta esaurendo la memoria. In questo caso, viene compromessa l'affidabilità del servizio. L'app tenta di risolvere questo problema attivando una notifica push che chiede agli utenti di riaprire l'app, ma questo non funzionerà sempre, a seconda dello stato del dispositivo. Nei nostri test, i dispositivi iOS su cui abbiamo eseguito l'app hanno continuato a mantenere attivo il servizio in background durante la notte.


L'app raccoglie dati personali e rivela la mia identità?

Abbiamo aggiunto questa risposta 1145 BST, 7 maggio, per rispondere alle domande che abbiamo ricevuto sulla raccolta e la trasmissione di dati dell'app

L'app per iOS acquisisce pochissimi dati: tutto linkingId loro linkingId . Ciò potrebbe essere legato a una persona solo se hanno segnalato sintomi e organizzato un test con il SSN utilizzando tale ID.

Un risultato positivo del test codificato su un ID è effettivamente ciò che disattiva l'allarme di tracciamento. La domanda quindi è se il servizio sanitario nazionale memorizzerebbe centralmente i dettagli di una persona raccolti al momento del test insieme a quell'ID. Ciò non sarebbe necessario per il funzionamento dell'app e non è intrinseco all'app. Come abbiamo scritto in precedenza, l'app non ha accesso ai dati sulla posizione oltre le prime cifre del codice postale di un utente (che sono inseriti dall'utente al momento della configurazione e non sono convalidati).

La domanda qui non riguarda ciò che l'app memorizza: riguarda le informazioni richieste dal SSN al momento della prenotazione di un test e come vengono archiviate.

Se un utente dovesse segnalare i sintomi e non organizzare un test (o organizzare un test senza fornire il proprio ID), non ci sarebbe assolutamente modo di collegare i due tipi di informazioni. Naturalmente, in questo scenario estremo ciò impedirebbe anche all'app di avvisare se l'utente avesse COVID-19.

Stiamo continuando a esaminare questo aspetto e pubblicheremo maggiori dettagli man mano che le cose si sviluppano.

Commenti (1)

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

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 — in short, it's a limitation of Android that appears misleading.


Possiamo migliorare questo articolo?

Ci piace ascoltare gli utenti: perché non mandarci un'email, lasciare un commento o twittare @reincubate?

© 2008 - 2020 Reincubate Ltd. Tutti i diritti riservati. Registrato in Inghilterra e Galles #5189175, VAT GB151788978. Reincubate e Camo sono marchi registrati. Politica sulla riservatezza & condizioni. Raccomandiamo 2FA. Costruito con a Londra.