Rester en vie: traçage d'arrière-plan et application NHS COVID-19

Publié Mis à jour
Cover image for: Rester en vie: traçage d'arrière-plan et application NHS COVID-19
  • L'application NHS COVID-19 semble fonctionner correctement lors de l'exécution en arrière-plan sur les appareils iOS, contrairement à l'application australienne COVIDSafe
  • L'application empêche les faux rapports en fournissant aux utilisateurs des symptômes avec un code de référence: ce code est ensuite associé aux résultats des tests formels avant qu'une action ne soit entreprise
  • NHS COVID-19 demande aux travailleurs de la santé d'éteindre Bluetooth sur leur appareil lorsqu'ils portent des EPI, expliquant «vos interactions au travail ne devraient pas être capturées lorsque vous portez des EPI»
  • Mise à jour 0925 BST du 7 mai : nous avons ajouté un "Comment l'application parvient-elle à rester efficace en arrière-plan?" ci-dessous, expliquant comment l'application parvient à rester en vie lors de la communication avec des appareils Android, et couvrant certains des défis et des techniques de communication iOS-iOS
  • Mise à jour 1145 BST du 7 mai : nous avons ajouté un "L'application collecte-t-elle des données personnelles et révèle-t-elle mon identité?" section ci-dessous.

Défis dans le suivi des contacts lorsqu'une application n'est pas affichée à l'écran

Les développeurs d'applications ont peu d'options pour garder les applications «en vie» lorsqu'elles ne sont pas au premier plan sur l'appareil de l'utilisateur. Apple gère soigneusement ces options pour garantir que les applications n'empiètent pas sur la vie privée des utilisateurs ou ne déchargent pas indûment les batteries des utilisateurs. En particulier, ils établissent une distinction quant à savoir si une application a le focus - c'est-à-dire. il est affiché à l'écran - ou s'exécute en arrière-plan. Les mises à jour récentes d'iOS ont limité la capacité des développeurs à accéder aux données en arrière-plan: par exemple, avant de pouvoir limiter la collecte d'arrière-plan si efficacement, Uber a pu suivre les mouvements d'un utilisateur même lorsqu'il n'était pas dans une cabine.

Pour fonctionner de manière significative en arrière-plan, l'éditeur d'une application doit obtenir l'autorisation d'Apple lorsqu'elle est soumise à l'App Store, en la marquant avec un ensemble de « modes d'arrière-plan ». Ces modes d'arrière-plan sont limités pour une utilisation lors de la transmission de vidéos d'un appareil à un autre, lors de la collecte de mises à jour de position, en agissant comme un téléphone ou en utilisant Bluetooth. Par exemple, ces modes permettent à votre téléphone d'exécuter AirPlay en arrière-plan, de jouer de la musique sans que Spotify ne soit toujours affiché, d'appeler quelqu'un avec WhatsApp, puis de le mettre en arrière-plan ou de suivre votre course sur Strava.

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

Ces modes sont cependant limités et les utilisateurs peuvent être familiarisés avec les notifications de l'iPhone demandant si les applications devraient être autorisées à accéder à votre position en arrière-plan. Même lorsqu'un utilisateur accorde ces autorisations, le téléphone peut continuer à demander confirmation que c'est la bonne chose à faire.

Les applications de suivi des contacts sont construites à l'aide de Bluetooth low-energy (BLE), qui - simplement - permet aux appareils de se reconnaître. Théoriquement, les modes «Utilise les accessoires Bluetooth LE» et «Agit comme un accessoire Bluetooth LE» d'Apple sont idéaux pour cela et permettent d'utiliser le BLE en arrière-plan. Cependant, alors qu'une application en arrière-plan utilisant ces modes pourra continuer à communiquer avec tous les appareils BLE avec lesquels elle est déjà en communication (comme un verrou intelligent Bluetooth), elle ne pourra pas contrôler le taux de diffusion pour interroger les appareils qu'il n'a jamais vu auparavant. Une fois mis en arrière-plan, il est plus difficile de rechercher des signes de nouveaux appareils, de communiquer avec eux de manière significative, et en particulier d'identifier les appareils non Apple. Cela gêne plutôt les applications de suivi des contacts qui doivent s'exécuter en continu en arrière-plan.

Pour citer la documentation d'Apple sur le service :

Tous les UUID de service ne peuvent être [...] découverts que par un appareil iOS qui les recherche explicitement. [... et pour] les applications publicitaires sont en arrière-plan, la fréquence à laquelle votre périphérique envoie des paquets publicitaires peut diminuer

Solutions de contournement et approches alternatives pour le traçage

Bien sûr, ce n'est pas un nouveau défi pour les développeurs: ils essaient depuis longtemps de trouver des méthodes pour que les applications restent en arrière-plan et collectent les restrictions traçant les données . Des cadres tels que les AltBeacons open source ont émergé pour résoudre ce problème, ne sont pas viables pour le suivi des contacts où un appareil doit constamment rechercher de nouveaux appareils. Comme ABC l'a découvert en Australie, en regardant leur application nationale COVIDSafe, il n'y a pas eu de solution pratique à cela. Il existe quelques exploits qui pourraient être temporairement utiles - tels que l'enregistrement de son application en tant que lecteur audio et la faire jouer de la musique - mais ces exploits et d'autres de cette nature sont désapprouvés par Apple, incommodent les utilisateurs et approuvent rarement le Magasin d'applications.

En attendant, Apple se prépare à sortir iOS 13.5 , qui est actuellement disponible en version bêta. Apple est en mesure d'apporter des modifications à son propre système qui sont avantageuses pour le suivi de cette manière. 13.5 introduira un certain nombre de fonctionnalités plus évidentes - telles que la prise en charge de FaceID pour les utilisateurs portant un masque , ou au moins un moyen plus rapide d'entrer un code d'accès - et quelques fonctionnalités moins évidentes, telles que le cadre ExposureNotification qui permet exactement ce que le contact les applications de traçage ont besoin. Bien sûr, cela ne donnera pas le système parfait: tous les utilisateurs ne pourront pas en profiter, car des appareils comme l'iPhone 6 (2015) ne peuvent pas exécuter iOS 13. Alors que le système d'Apple utilise une norme mondiale identifiant, chaque pays qui le met en œuvre utilise une base de données nationale cloisonnée. Ainsi, si un Européen infecté d'un pays est exposé à un citoyen d'un autre pays européen, il ne le découvrira pas grâce à la recherche des contacts.

COVID-19 ExposureNotification Apple fournit une solution pour ce qui est nécessaire ici, mais il y a des mises en garde. Plus important encore, Apple a indiqué que seule son application serait en mesure de l'utiliser afin d'éviter toute utilisation abusive de la technologie par d'autres.

Alors, comment le NHS le fait-il avec son application COVID-19 ?

Comment alors le NHS britannique COVID-19 peut-il efficacement retracer de nouveaux appareils en arrière-plan, sans «s'endormir» (techniquement, «être suspendu») et être ainsi rendu inefficace? D'après nos tests avec la version 1.0.1b341 de l'application «NHS COVID-19», nous pouvons voir qu'il communique effectivement en arrière-plan. Il semble que cela soit fait en utilisant une série de solutions de contournement intelligentes utilisant des keepalives et des notifications. Forcer à quitter l'application arrêtera le suivi en arrière-plan, cependant, si le téléphone est éteint puis rallumé, il continuera à communiquer correctement en arrière-plan. Cette solution de contournement peut ou non tomber sous le coup d'Apple, mais à ce stade, elle n'a pas été divulguée, et Apple a approuvé les versions de l'application qu'elles ont vues jusqu'à présent.

Nous continuons de nous pencher sur cette question et publierons plus de détails à mesure que les choses évolueront.

L'application NHS COVID-19 stocke-t-elle des données sensibles?

Non. L'application semble très bien conçue, en utilisant des pratiques de sécurité raisonnables et sans stockage de données inutiles. Il s'articule autour d'un linkingId qui est généré pour chaque installation de l'application. Cet ID persiste pendant l'installation de l'application, donc sa désinstallation et sa réinstallation ne réinitialiseront pas l'identifiant.

En regardant les données de l'application à l'aide de l' iPhone Backup Extractor sous le chemin uk.nhs.nhsx.sonar , nous pouvons voir qu'il existe une série de fichiers couplés à Google Firebase et une collection de petits plists (fichiers de configuration) pour le reste de l'application. Les données.

Looking at the NHS COVID-19 app’s files in a backup
Affichage des fichiers de l'application NHS COVID-19 dans une sauvegarde

Les utilisateurs peuvent-ils faussement déclarer eux-mêmes qu'ils ont COVID-19?

Si un utilisateur signale des symptômes, l'application fournit un numéro à appeler pour organiser un test, ainsi qu'un code de référence. L'idée est que le résultat du test est ensuite associé au code de référence de l'utilisateur. Si un utilisateur signalait faussement les symptômes, la confirmation ne se produirait pas sans que le NHS ne mette à jour le résultat du test pour qu'il corresponde au code de l'utilisateur.

L'application demande-t-elle des autorisations de localisation?

Non.

Le NHS a-t-il induit le public en erreur sur l'utilisation des API Google?

Non. L'application NHS COVID-19 est profondément intégrée à l' API Firebase standard de Google pour le stockage et la gestion des données. (Le NHS n'utilise pas Google ou le cadre de suivi des contacts d'Apple; à part toute autre chose, cela ne sera pas disponible avant la sortie d'iOS 13.5.)

Avec quels services l'application communique-t-elle?

Comme pour l'application Android, toutes les communications matérielles sont effectuées via l'API COVID19 du NHS, hébergée sous *.covid19.nhs.uk . L'application fait quelques autres demandes à la suite de l'utilisation du service AppCenter de Microsoft , mais aucune n'est matérielle ou sensible.

Si les employés du NHS utilisent l'application, cela ne conduira-t-il pas à des faux positifs?

L'application invite les professionnels de la santé à désactiver le Bluetooth sur leurs appareils lorsqu'ils portent un EPI, indiquant que «vos interactions au travail ne doivent pas être capturées lorsque vous portez un équipement de protection individuelle».

The NHS COVID-19 app's PPE Bluetooth prompt
L'invite Bluetooth PPE de l'application NHS COVID-19


Nous avons été ravis de plonger plus profondément dans l'application COVID-19 du NHS. Bien qu'il y ait eu beaucoup de spéculations sur ses fonctionnalités, ce que nous avons vu est une application bien conçue et sécurisée. Le traçage d'arrière-plan semble fonctionner, bien qu'il reste largement sous le contrôle d'Apple quant à savoir si cela continuera d'être efficace. En conséquence, l'efficacité de la réponse britannique au COVID-19 est désormais également sous le contrôle d'Apple.

Le choix de faire cavalier seul ou d'utiliser le cadre d'Apple aura été difficile. Suivre l'exemple d'Apple aurait probablement été un choix moins controversé. Cependant, iOS 13.5 n'est pas encore en ligne, alors que l'application britannique sortira en version bêta demain, et rien n'empêche le Royaume-Uni de suivre Apple dans les mises à jour suivantes. Vu à travers cette lentille - pourquoi ne pas expédier un essai sur l'île de Wight en premier?


Comment l'application parvient-elle à rester efficace en arrière-plan?

Nous avons ajouté cette réponse 0925 BST, le 7 mai, pour répondre aux questions que nous avons reçues sur les spécificités de l'application en vie. NHSX a utilisé quelques techniques intelligentes pour améliorer les résultats ici.

Le Sun a rapporté hier soir que l'application utilise des API Bluetooth privées, mais nous n'en avons vu aucun signe et ils ont depuis modifié leur histoire pour retirer cette affirmation. L'application NHS COVID-19 utilise des API Bluetooth publiques dans iOS et ne semble pas bénéficier de privilèges spéciaux. Au lieu de cela, il existe des techniques intelligentes.

La première technique est en réponse au comportement Bluetooth d'iOS pour les applications suspendues. Nous avons remarqué qu'Apple modifie la façon dont une application peut rechercher de nouveaux appareils lorsqu'elle est suspendue. Les applications suspendues ne sont pas en mesure de reconnaître correctement les appareils qu'elles n'ont jamais vus auparavant. Comme nous l'avons écrit ci-dessus, il est «plus difficile de rechercher des signes de nouveaux appareils, de communiquer avec eux de manière significative, et en particulier d'identifier les appareils non Apple».

NHSX a abordé le défi des appareils non Apple dans l'autre sens: réalisant qu'ils ne pouvaient pas influencer ce que faisait iOS à cet égard, ils ont construit des trucs intelligents dans leur application Android pour reconnaître les messages restreints spécifiques à Apple qu'une application en arrière-plan sur un appareil iOS enverrait. Cela donne à l'appareil Android suffisamment d'informations pour pouvoir parler à l'appareil iOS, le réveillant dans un état dans lequel il peut communiquer.

La situation sans iOS est un peu différente; il existe un seuil par lequel l'application NHS COVID-19 peut se taire lorsqu'elle est laissée en arrière-plan pendant un certain temps, et les journaux de l'appareil en montrent des exemples. Dans ce cas, l'application a été poussée à l'arrière-plan, mais pourra continuer à scanner (techniquement, «diffuser») pendant plus d'une heure et demie. D'autres événements sur le téléphone - y compris d'autres applications utilisant Bluetooth - peuvent prolonger cela.

La session uk.nhs.nhsx.sonar-périphérique-11919-319 peut publier en arrière-plan pendant 6240 secondes

En conséquence, il n'est pas possible de dire "l'application deviendra inefficace dans la communication iOS-iOS après X période de temps": il y a une fenêtre variable généreuse que l'application doit rester en vie, et un certain nombre de facteurs raisonnables qui peuvent déclencher l'extension de cette fenêtre, y compris une autre utilisation de Bluetooth, la présence d'appareils Android et l'efficacité des notifications.

Il existe des situations moins courantes où iOS peut essayer de suspendre complètement une application en arrière-plan, par exemple lorsque le système manque de mémoire. Lorsque cela se produit, la fiabilité du service est affectée. L'application essaie de résoudre ce problème en déclenchant une notification push demandant aux utilisateurs de rouvrir l'application, mais cela ne fonctionnera pas toujours, selon l'état de l'appareil. Lors de nos tests, les appareils iOS sur lesquels nous avons exécuté l'application ont continué de faire fonctionner le service d'arrière-plan pendant la nuit.


L'application collecte-t-elle des données personnelles et révèle-t-elle mon identité?

Nous avons ajouté cette réponse 1145 BST, le 7 mai, pour répondre aux questions que nous avons reçues sur la collecte et la transmission des données de l'application

L'application iOS capture vraiment très peu de données: tout linkingId leur linkingId . Cela ne pouvait être lié à une personne que si elle signalait des symptômes et organisait un test avec le NHS en utilisant cette pièce d'identité.

Un résultat de test positif codé par rapport à un ID est effectivement ce qui déclenche l'alarme de suivi. La question est alors de savoir si le NHS stockerait de manière centralisée les informations d'une personne collectées au moment du test à côté de cette pièce d'identité. Cela ne serait pas nécessaire au fonctionnement de l'application et n'est pas intrinsèque à l'application. Comme nous l'avons écrit plus tôt, l'application n'a pas accès aux données de localisation au-delà des premiers chiffres du code postal d'un utilisateur (qui sont entrés par l'utilisateur lors de la configuration et ne sont pas validés.)

La question ici n'est donc pas de savoir ce que l'application stocke: c'est quelles informations le NHS demande lors de la réservation d'un test, et comment ces informations sont stockées.

Si un utilisateur devait signaler des symptômes et ne pas organiser un test (ou organiser un test sans fournir son ID), il n'y aurait absolument aucun moyen de lier les deux types d'informations. Bien sûr, dans ce scénario extrême, cela empêcherait également l'application de signaler si l'utilisateur avait COVID-19.

Nous continuons de nous pencher sur cette question et publierons plus de détails à mesure que les choses évolueront.

commentaires (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.


Pouvons-nous améliorer cet article?

Nous aimons entendre les utilisateurs: pourquoi ne pas nous envoyer un email, laisser un commentaire ou tweet @reincubate?

© 2008 - 2020 Reincubate Ltd. Tous droits réservés. Enregistré en Angleterre et au Pays de Galles #5189175, VAT GB151788978. Reincubate® est une marque déposée. Politique de confidentialité & termes. Nous recommandons l'authentification multi-facteurs. Construit avec à Londres.