Aller au contenu principal

Technology, security analysis

Rester actif : le traçage en arrière-plan et l’application NHS COVID-19

Aidan FitzpatrickPublié le 6 mai 2020Mis à jour le 31 juillet 2024
Sur cette page
Cover image for: Rester actif : le traçage en arrière-plan et l’application NHS COVID-19
  • L’application NHS COVID-19 semble fonctionner correctement en arrière-plan sur les appareils iOS, contrairement à l’application australienne COVIDSafe
  • L’application empêche les faux signalements en fournissant aux utilisateurs présentant des symptômes un code de référence : ce code est ensuite associé aux résultats de test officiels avant toute action
  • NHS COVID-19 demande aux professionnels de santé de désactiver le Bluetooth de leur appareil lorsqu’ils portent des EPI, en expliquant « your interactions at work should not be captured when you are wearing PPE »
  • Mise à jour 9 h 25 BST, 7 mai : nous avons ajouté ci-dessous une section « Comment l’application parvient-elle à rester efficace en arrière-plan ? », qui explique comment elle reste active lorsqu’elle communique avec des appareils Android et aborde certains des défis et techniques de la communication entre appareils iOS
  • Mise à jour 11 h 45 BST, 7 mai : nous avons ajouté ci-dessous une section « L’application collecte-t-elle des données personnelles et révèle-t-elle mon identité ? ».

Les défis du traçage des contacts lorsqu’une application n’est pas affichée à l’écran

Les développeurs d’applications ont peu d’options pour maintenir les applications « actives » lorsqu’elles ne sont pas au premier plan de l’appareil de l’utilisateur. Apple encadre soigneusement ces options pour que les applications n’empiètent pas sur la vie privée des utilisateurs et ne vident pas indûment leur batterie. Elle distingue notamment une application qui a le focus, c’est-à-dire qui est affichée à l’écran, d’une application qui s’exécute en arrière-plan. Les récentes mises à jour d’iOS ont limité la capacité des développeurs à accéder aux données en arrière-plan : par exemple, avant de pouvoir limiter aussi efficacement la collecte en arrière-plan, Uber pouvait suivre les déplacements d’un utilisateur même lorsqu’il n’était pas dans un taxi.

Pour s’exécuter de manière significative en arrière-plan, l’éditeur d’une application doit obtenir l’autorisation d’Apple lors de sa soumission à l’App Store, en la marquant avec un ensemble de « Background Modes ». Ces modes d’arrière-plan sont réservés à la transmission de vidéo d’un appareil à un autre, à la collecte de mises à jour de localisation, au fonctionnement comme téléphone ou à l’utilisation du Bluetooth. Ce sont par exemple ces modes qui permettent à votre téléphone d’exécuter AirPlay en arrière-plan, de lire de la musique sans que Spotify soit toujours affiché, d’appeler quelqu’un avec WhatsApp puis de passer en arrière-plan, ou de suivre votre course avec Strava.

L’application NHS COVID-19

L’application NHS COVID-19

Ces modes sont toutefois limités, et les utilisateurs connaissent peut-être les notifications de l’iPhone qui demandent si les applications doivent ê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 bien ce qu’il souhaite.

Les applications de traçage des contacts reposent sur le Bluetooth à basse consommation (BLE), qui, pour simplifier, permet aux appareils de se reconnaître. En théorie, les modes d’Apple « Uses Bluetooth LE accessories » et « Acts as a Bluetooth LE accessory » sont idéaux pour cela et permettent d’utiliser le BLE en arrière-plan. Toutefois, si une application en arrière-plan utilisant ces modes peut continuer à communiquer avec les appareils BLE avec lesquels elle est déjà en communication (comme une serrure connectée Bluetooth), elle ne peut pas contrôler la fréquence de diffusion pour interroger des appareils qu’elle n’a jamais vus. En arrière-plan, il devient donc plus difficile de repérer de nouveaux appareils, de communiquer utilement avec eux et, en particulier, d’identifier des appareils non Apple. Cela pénalise nettement les applications de traçage des contacts, qui doivent s’exécuter en continu en arrière-plan.

Pour citer la documentation d’Apple sur ce service :

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

Contournements et approches alternatives pour le traçage

Bien sûr, ce défi n’est pas nouveau pour les développeurs : ils cherchent depuis longtemps des méthodes pour que les applications restent en arrière-plan et collectent des données de traçage malgré les restrictions. Des frameworks comme le projet open source AltBeacons sont apparus pour répondre à ce problème, mais ils ne sont pas viables pour le traçage des contacts, où un appareil doit chercher en continu de nouveaux appareils. Comme l’a constaté l’ABC en Australie en examinant l’application nationale COVIDSafe, il n’existe pas de solution pratique. Quelques exploits pourraient être temporairement utiles, comme enregistrer son application en tant que lecteur audio et lui faire jouer de la musique, mais ceux-ci, comme d’autres du même genre, sont mal vus d’Apple, risquent de gêner les utilisateurs et passent rarement la validation de l’App Store.

Entre-temps, Apple prépare la sortie d’iOS 13.5, actuellement disponible en bêta. Apple peut apporter à son propre système des changements favorables à ce type de suivi. La version 13.5 introduira plusieurs fonctionnalités plus visibles, comme la prise en charge de FaceID pour les utilisateurs portant un masque, ou du moins un accès plus rapide à la saisie du code, et d’autres moins visibles, comme le framework ExposureNotification, qui permet exactement ce dont les applications de traçage des contacts ont besoin. Cela ne produira bien sûr 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. Si le système d’Apple utilise un identifiant standard mondial, 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, ils ne le découvriront pas grâce au traçage des contacts.

Le ExposureNotification COVID-19 d’Apple apporte une solution à ce qu’il faut ici, mais avec des réserves. Surtout, Apple a indiqué que seule son application pourra l’utiliser, afin d’empêcher d’autres acteurs d’en faire un usage abusif.

Alors, comment le NHS s’y prend-il avec son application COVID-19 ?

Comment l’application britannique NHS COVID-19 peut-elle alors tracer efficacement de nouveaux appareils en arrière-plan, sans « s’endormir » (techniquement, « être suspendue ») et donc devenir inefficace ? D’après nos tests avec la version 1.0.1b341 de l’application « NHS COVID-19 », nous constatons qu’elle communique bel et bien efficacement en arrière-plan. Il semble que cela repose sur une série de contournements astucieux utilisant des keepalives et des notifications. Forcer la fermeture de l’application arrêtera le traçage en arrière-plan ; en revanche, si le téléphone est éteint puis rallumé, il continuera de communiquer correctement en arrière-plan. Ce contournement pourrait ou non enfreindre les règles d’Apple, mais à ce stade, il n’a pas été divulgué, et Apple a approuvé les versions de l’application qu’elle a vues jusqu’ici.

Nous continuons d’examiner la 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, avec de bonnes pratiques de sécurité et sans stockage de données inutiles. Elle s’articule autour d’un linkingId généré pour chaque installation de l’application. Cet identifiant persiste d’une installation à l’autre : désinstaller puis réinstaller l’application ne le réinitialisera donc pas.

En examinant les données de l’application avec iPhone Backup Extractor sous le chemin uk.nhs.nhsx.sonar, nous voyons une série de fichiers liés à Google Firebase et un ensemble de petits fichiers Plist (fichiers de configuration) pour le reste des données de l’application.

Les fichiers de l’application NHS COVID-19 dans une sauvegarde

Les fichiers de l’application NHS COVID-19 dans une sauvegarde

Les utilisateurs peuvent-ils déclarer à tort qu’ils ont la 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 soit ensuite associé au code de référence de l’utilisateur. Si un utilisateur signalait de faux symptômes, la confirmation n’aurait pas lieu sans que le NHS mette à jour le résultat du test pour qu’il corresponde au code de l’utilisateur.

L’application demande-t-elle l’autorisation de localisation ?

Non.

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

Non. L’application NHS COVID-19 est profondément intégrée à l’API Firebase de Google, la référence du secteur pour le stockage et la gestion des données. (Le NHS n’utilise pas le framework de traçage des contacts de Google ou d’Apple ; ne serait-ce que parce qu’il 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 importantes passent par l’API COVID19 du NHS, hébergée sous *.covid19.nhs.uk. L’application effectue quelques autres requêtes du fait de l’utilisation du service AppCenter de Microsoft, mais aucune n’est importante ni sensible.

Si le personnel du NHS utilise l’application, cela ne va-t-il pas provoquer de faux positifs ?

L’application invite les professionnels de santé à désactiver le Bluetooth de leur appareil lorsqu’ils portent des EPI, en indiquant « your interactions at work should not be captured when you are wearing personal protective equipment ».

L’invite Bluetooth relative aux EPI dans l’application NHS COVID-19

L’invite Bluetooth relative aux EPI dans l’application NHS COVID-19


Nous avons eu plaisir à examiner de plus près l’application COVID-19 du NHS. Malgré les nombreuses spéculations sur son fonctionnement, ce que nous avons vu est une application bien conçue et sûre. Le traçage en arrière-plan semble fonctionner, même s’il appartient entièrement à Apple de décider s’il restera efficace. Par conséquent, l’efficacité de la réponse britannique à la COVID-19 dépend désormais aussi d’Apple.

Le choix de faire cavalier seul ou d’utiliser le framework d’Apple a dû être difficile. Suivre Apple aurait probablement été un choix moins controversé. Toutefois, iOS 13.5 n’est pas encore disponible, alors que l’application britannique sort en bêta demain, et rien n’empêche le Royaume-Uni de suivre Apple dans les mises à jour ultérieures. Vu sous cet angle, pourquoi ne pas commencer par un essai sur l’île de Wight ?


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

Nous avons ajouté cette réponse à 9 h 25 BST, le 7 mai, pour répondre aux questions reçues sur les détails du maintien de l’application en activité. Le NHSX a employé quelques techniques astucieuses pour obtenir de meilleurs résultats.

The Sun a rapporté hier soir que l’application utilise des API Bluetooth privées, mais nous n’en avons vu aucun signe, et le journal a depuis modifié son article pour retirer cette affirmation. L’application NHS COVID-19 utilise les API Bluetooth publiques d’iOS et ne semble tirer parti d’aucun privilège spécial. Elle recourt en revanche à quelques techniques astucieuses.

La première technique répond au comportement Bluetooth d’iOS pour les applications suspendues. Nous avons noté qu’Apple modifie la façon dont une application suspendue peut rechercher de nouveaux appareils. Les applications suspendues ne sont pas en mesure de reconnaître correctement des appareils qu’elles n’ont jamais vus. Comme nous l’écrivions plus haut, il est « plus difficile de repérer de nouveaux appareils, de communiquer utilement avec eux et, en particulier, d’identifier des appareils non Apple ».

Le NHSX a abordé le défi des appareils non Apple dans l’autre sens : conscient de ne pas pouvoir influencer ce que faisait iOS à cet égard, il a intégré à son application Android des mécanismes astucieux pour reconnaître les messages restreints, propres à Apple, qu’enverrait une application en arrière-plan sur un appareil iOS. L’appareil Android obtient ainsi assez d’informations pour dialoguer avec l’appareil iOS et le sortir de veille, dans un état où ils peuvent communiquer.

La situation sans Android est un peu différente : il existe un seuil à partir duquel l’application NHS COVID-19 peut devenir silencieuse lorsqu’elle reste 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é reléguée en arrière-plan, mais elle pourra continuer à scanner (techniquement, à « diffuser ») pendant plus d’une heure et demie. D’autres événements sur le téléphone, notamment d’autres applications utilisant le Bluetooth, peuvent prolonger cette durée.

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

Par conséquent, il n’est pas possible de dire « l’application deviendra inefficace dans la communication entre appareils iOS au bout d’une durée X » : l’application dispose d’une fenêtre variable et généreuse pour rester active, et plusieurs facteurs raisonnables peuvent la prolonger, dont d’autres usages du Bluetooth, la présence d’appareils Android et l’efficacité des notifications.

Dans certaines situations moins courantes, iOS peut tenter de suspendre complètement une application en arrière-plan, par exemple lorsque le système manque de mémoire. Dans ce cas, la fiabilité du service en pâtit. L’application tente d’y remédier en déclenchant une notification push qui invite les utilisateurs à rouvrir l’application, mais cela ne fonctionne 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é à faire fonctionner le service en 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 à 11 h 45 BST, le 7 mai, pour répondre aux questions reçues sur la collecte et la transmission de données par l’application

L’application iOS collecte en réalité très peu de données : tout tourne autour de leur linkingId. Celui-ci ne pourrait être rattaché à une personne que si elle signalait des symptômes et organisait un test avec le NHS en utilisant cet identifiant.

Un résultat de test positif associé à un identifiant est, en pratique, ce qui déclenche l’alerte de traçage. La question est alors de savoir si le NHS stockerait de manière centralisée les informations d’une personne recueillies lors du test avec cet identifiant. Ce ne serait pas nécessaire au fonctionnement de l’application, et ce n’est pas inhérent à celle-ci. 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 de l’utilisateur (saisis par l’utilisateur lors de la configuration et non validés).

La question ne porte donc pas sur ce que l’application stocke : elle porte sur les informations que le NHS demande lors de la réservation d’un test, et sur la façon dont elles sont stockées.

Si un utilisateur signalait des symptômes sans organiser de test (ou organisait un test sans fournir son identifiant), il n’y aurait absolument aucun moyen de relier les deux types d’informations. Bien sûr, dans ce scénario extrême, l’application ne pourrait pas non plus alerter si l’utilisateur avait la COVID-19.

Nous continuons d’examiner la question et publierons plus de détails à mesure que les choses évolueront.


À propos de l'auteur

Aidan Fitzpatrick

Fondateur, PDG

Aidan a fondé Reincubate en 2008, après avoir créé le premier outil de récupération de données iOS au monde. Depuis, il a fait de l’entreprise l’un des meilleurs éditeurs de logiciels indépendants au monde, travaillant avec des entreprises telles qu’AMD, Qualcomm et HP pour développer des fonctionnalités de machine learning pertinentes pour les logiciels vidéo, à l’image de l’écosystème d’applications Camo. Sous la direction d’Aidan, Reincubate a remporté à quatre reprises la plus haute distinction économique du Royaume-Uni, s’est vu attribuer une place dans le classement 100 Tech du Sunday Times, et a été reconnu par l’industrie avec des nominations aux Apple Design Award et à l’App Store. Ses travaux et ses techniques sont souvent cités dans des articles universitaires consacrés à l’investigation numérique mobile, et il a été invité à intervenir lors d’événements organisés par des entreprises comme Google, Microsoft et Snap.


Commentaires (1)

richard atterbury 9 mai 2020

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

Réponse de l'assistance Reincubate 9 mai 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.


Contenu associé


Articles populaires

Logo du King's Award for Enterprise

King's Award for Enterprise : Reincubate a remporté quatre fois la plus haute distinction officielle des entreprises du Royaume-Uni, la plus récente en reconnaissance de la croissance exceptionnelle de l'entreprise au cours des trois dernières années.

Nos relations avec les utilisateurs et les partenaires sont au cœur de nos valeurs et des produits que nous créons. Consultez nos avis pour découvrir ce qu’ils disent de nous.

Certifié ISO 27001 par le Centre for Assessment, accrédité par l'UKAS

© 2008-2026 Reincubate Ltd. Tous droits réservés. Immatriculée en Angleterre et au pays de Galles sous le n° 5189175, TVA GB151788978. Camo®, Streamlight® et Reincubate® sont des marques déposées. Brevets en instance.

Aide