StopCovid : pouvons-nous avoir confiance ?

Thomas Robertson
Digicare
Published in
10 min readJun 23, 2020
Photo by Fran Boloni on Unsplash

Le but premier de cet article était de répondre à une question assez simple : est-ce que je pourrais recommander cette application à ma famille ?

Autrement dit, est-ce que je peux avoir suffisamment confiance en son design, sa conception et sa réalisation. Pour y répondre, j’ai préféré me pencher dans un premier temps sur le cœur de l’information : la documentation technique et les divers papiers publiés par l’INRIA, l’institut public en charge du projet. Puis dans un second temps, je me suis appuyé sur l’analyse faite par certains journaux spécialisés. Dans la mesure du possible, je me suis éloigné des articles ne citant aucune source ou ne reposant pas sur des faits vérifiables.

Une application de traçage des contacts, comme StopCovid, implique de facto des problèmes de vie privée. À l’heure où la data est assimilée à de l’or, comment le gouvernement fait-il pour avoir notre confiance ?

L’importance du contact tracing

Avant de s’intéresser à StopCovid, il est important de revenir sur ce qui justifie ce type d’application. L’un des grands obstacles que nous rencontrons dans la lutte de cette épidémie est la période où un individu est contagieux mais asymptomatique. Dans ces situations, des individus se transforment en cheval de Troie et vont sans le savoir transmettre ce virus à leur entourage.

Figure 1 — Schéma des chaînes de transmissions¹

Ainsi, lorsqu’un individu est testé positif, il est très important de remonter l’historique de toutes les personnes avec qui il a été en contact pour les prévenir. Si ces personnes s’isolent à temps, nous brisons les chaînes de transmissions du virus et limitons sa propagation.

Figure 2 — Schéma d’une chaîne de transmission brisée¹

Cette stratégie, appelée “contact tracing”, prend plusieurs formes. Les États-Unis ont déjà mis en place une armée de plusieurs dizaines de milliers d’enquêteurs qui interrogent et retracent manuellement ces cas contacts², bien que certains analystes estiment que ce nombre doit s’approcher de la centaine de milliers. En parallèle, nous avons vu l’émergence de solutions de contact tracing digital, comme COVIDSafe en Australie, ou TraceTogether à Singapour.

En France, nous avons eu la création de StopCovid. Initié par plusieurs ministères, ce projet a été piloté par l’INRIA, et a reçu la contribution de plusieurs acteurs publics comme privés³.

Traduit littéralement, “contact tracing” signifie traçage des contacts. Il est important de souligner que le but ici n’est que de lister les contacts que nous avons eu. En aucun cas ces applications ne doivent analyser nos déplacements pour les déduire. Ainsi StopCovid ne collectera jamais notre position, approximative ou précise. Cependant, si une application collecte un très grand nombre de données, il est possible en théorie de les croiser et donc d’en déduire nos positions.

Ces applications servent donc à retracer les contacts qu’une personne a pu avoir, et en aucun cas de “pister” un individu pour en déduire ses contacts. Ainsi, ces applications n’ont, en principe, pas besoin de connaître notre localisation précise. Il est important de souligner que même si notre localisation n’est pas communiquée, en regroupant un grand nombre d’informations, il est possible d’avoir une estimation plus ou moins précise de nos déplacements.

Pour schématiser l’application, imaginons que nous prenons avec nous un bloc-notes. Sur ce dernier, nous allons échanger notre numéro de téléphone avec chaque personne en contact rapproché pendant plus de quinze minutes. Si nous apprenons que nous étions malade à ce moment là sans le savoir, nous allons appeler chacune des personnes de notre liste pour les prévenir. Si l’inverse se produit, cette personne nous appellera pour nous prévenir.

Mais si l’application fonctionnait réellement de cette façon, elle comporte de nombreux problèmes de vie privée. Chaque personne que nous allons croiser va pouvoir nous identifier, et donc savoir où nous étions à cet instant. De plus, vu que nous appelons nous-même chacune de ces personnes, ces dernières vont pouvoir nous identifier comme étant malade, ce qui pose des problèmes de confidentialité et ouvre la voie à d’éventuelles répercussions. Enfin, rien ne garantit qu’un individu ne va pas vendre son carnet rempli de numéros de téléphone à des tiers comme des télémarketeurs. Heureusement, le design de l’application StopCovid répond à (presque) tous ces problèmes.

Comment fonctionne StopCovid

Ici, nous allons rentrer dans le fonctionnement technique de l’application. Beaucoup de concepts sont donc abordés. Si vous le souhaitez, vous pouvez passer directement à la partie “Le début des problèmes”.

Déjà, la première grosse différence, c’est que nous n’échangeons pas de “numéro de téléphone”, ni plus généralement d’identifiant permettant de remonter jusqu’à nous. Ceux qui ont installé l’application pourront s’apercevoir qu’elle ne demandera aucune information personnelle : ni compte, ni adresse mail, ni téléphone, ni nom.

Lors de son premier lancement, l’application va demander au serveur central une liste d’identifiants anonymes, appelés Identifiants Bluetooth Éphémères (ou pseudonymes), qui se renouvelle toutes les 15 minutes et qui est associée à un identifiant unique². Ce dernier sert à relier les pseudonymes ensemble et à envoyer une notification si nous avons été en contact avec un malade mais il n’est jamais partagé.

Figure 3 — Schéma de l’acquisition du pseudonyme⁴

L’application va donc émettre, à intervalles réguliers, un signal Bluetooth pour diffuser le pseudonyme, et va collecter celui des appareils aux alentours.

Pour calculer la distance entre deux individus, l’équipe s’est appuyée sur des travaux de recherches d’une équipe allemande. En théorie, il est possible d’estimer cette distance avec la puissance du signal Bluetooth, qui diminue avec la distance. En pratique, cela est plus compliqué : des murs et des objets peuvent atténuer ce signal et rendre le calcul de la distance plus compliqué⁵.

Une autre brique importante de l’application est le système chargé d’analyser et de déterminer si un contact a été ou non à risque. Pour cela, l’INRIA a étudié deux approches différentes⁶ : une approche décentralisée et une approche centralisée. La première repose sur le principe que l’application enregistre localement mais ne diffuse pas au serveur central la liste des contacts qu’elle a eu. Si quelqu’un se déclare malade, il enverra ses identifiants au serveur qui les relaiera sans les analyser aux smartphones des utilisateurs pour que leurs applications puissent déterminer si elles ont été en contact ou non avec ce pseudonyme. Apple et Google ont travaillé ensemble sur un protocole décentralisé, utilisé notamment par la Suisse avec SwissCovid.

L’autre approche, utilisée par StopCovid, repose sur une approche centralisée. Le serveur sera ainsi chargé de déterminer si deux personnes ont été en contact suffisamment longtemps pour les alerter. Dans le cas de l’application française, un QR Code figure sur le résultat de l’analyse Covid. Il doit être authentifié pour nous assurer que la personne est réellement positive et éviter de fausses déclarations.

L’application va ensuite envoyer au serveur central l’ensemble des pseudonymes des personnes qu’elle a rencontrées. Dans un souci de vie privée, l’identifiant du malade ne sera jamais envoyé, y compris au serveur central. À l’aide de l’identifiant unique associé aux pseudonymes, le serveur pourra déterminer les propriétaires des pseudonymes reçus et les alerter via une notification.

Ainsi, les utilisateurs n’auront une information que sous forme binaire : 0, l’utilisateur n’a pas été en contact avec un malade, ou 1, l’utilisateur a été en contact avec au moins un malade. L’utilisateur ne saura pas avec qui il a été en contact ni quand, ni où. Ce système protège davantage les personnes malades.

Figure 4 — Schéma de la déclaration et notification des malades⁴

Le début des problèmes

Mais malheureusement, il n’a pas fallu beaucoup de temps pour que de sérieux doutes apparaissent. Le 12 juin 2020, un chercheur de l’INRIA, Gaëtan Leurent, a publié un ticket montrant que l’application récupère plus d’informations qu’initialement annoncées par le gouvernement⁷. Repris par MediaPart⁸, l’information a vite été diffusée et concorde avec l’analyse du code source⁹. Nous apprenons que l’application, d’abord présentée comme n’enregistrant que les informations des contacts de plus de 15 minutes et à un mètre de distance, enregistre tous les contacts que les utilisateurs ont eus, indépendamment du temps de contact. En cas de déclaration de maladie, l’ensemble de ces informations est envoyé au serveur pour être analysé et ainsi déterminer le temps de contact.

Cela est justifié techniquement car les pseudonymes se renouvellent toutes les 15 minutes. Ainsi, si deux individus sont en contact mutuel pendant plus de 15 minutes, il y aura un premier échange de pseudonymes au début du contact, puis un second à la fin mais avec des pseudonymes différents car renouvelés. L’application de l’utilisateur sera incapable de faire savoir que ces deux pseudonymes appartiennent à la même personne. Ainsi, seul le serveur central peut le faire via les identifiants uniques qui relient tous les pseudonymes d’un utilisateur ensemble.

Outre de ne pas correspondre à ce qui a été annoncé par le gouvernement, cela fournit une très grande quantité d’informations au gouvernement et ouvre la voie à plusieurs attaques. De plus, le système aurait dû prendre en compte cela, et permettre un premier filtrage directement sur l’application de l’utilisateur pour limiter la quantité d’informations envoyées.

Dans la foulée, des doutes apparaissent sur le fait que le serveur central récolte ou non les adresses IP des personnes s’y connectant¹⁰. Les responsables du projet se défendent en rétorquant que cette collecte n’est destinée qu’aux administrateurs du serveur central pour identifier les attaques mais n’est jamais transmise à la partie en charge du projet. Cependant, ces détails n’ont pas été pris en compte lors de l’analyse des risques et leurs utilisations manque cruellement de clarté.

Un autre problème a été rencontré par la Grande-Bretagne, qui utilisait la même technique avec le Bluetooth. Celle-ci étant peu précise, les Britanniques ont dû l’abandonner pour utiliser à la place la technologie développée par Apple et Google¹¹. De plus, des tests de l’application StopCovid ont montré que des contacts de plus d’un mètre étaient enregistrés¹², ce qui était contraire aux recommandations initiales.

Il est très probable que maintenant que le doute se soit installé, nous en apprenons plus sur cette application au fil des prochaines semaines, mais cela n’est pas le plus important.

Pouvons-nous avoir confiance ?

Ces découvertes nous obligent à nous poser une question : est-ce que nous pouvons avoir confiance en notre gouvernement ?

Dans un monde idéal, la question n’aurait même pas dû se poser. Je ne parle ici pas d’une confiance dans le gouvernement, qui est subjective et qui dépend de la sensibilité de chacun, mais d’une confiance objective dans la technologie utilisée.

Nous ne devrions pas nous demander, si oui ou non, nous pouvons avoir confiance dans les différents acteurs maître de ce système. Ce dernier aurait du être conçu pour qu’aucuns des acteurs ne puissent être abusifs.

Et pour être honnête, ce côté est source de frustration. Quand nous lisons la documentation technique de l’application et du protocole ROBERT qui a été développé spécialement pour l’occasion, cette notion de vie privée a été prise en compte. De plus, le gouvernement a joué la carte de la transparence en publiant le code source des applications, à cette adresse : https://gitlab.inria.fr/stopcovid19.

Il est donc d’autant plus frustrant que malgré le travail fourni par l’INRIA, il est impossible de répondre objectivement à notre question initiale.

L’urgence des crises ne doit pas être une excuse pour sacrifier notre vie privée. Il est important de répondre rapidement à aux problématiques que nous faisons face, mais nous devons garder notre sens critique. Les idées à l’origine de l’application apparaissaient comme convaincantes, cependant le développement n’a pas été sans erreur, comme le montrent les polémiques actuelles retrouvées dans la presse, et la transparence n’a pas été au niveau requis pour une application aussi sensible.

Ces erreurs peuvent s’expliquer par un manque de clarté et non obligatoirement par une volonté de nuire du gouvernement.

Pour ma part, les difficultés techniques du Bluetooth, dont son imprécision, et les problèmes de vie privée m’empêchent de recommander cette application à mes proches.

Notre question initiale étant devenue subjective, car elle dépend de votre confiance dans le gouvernement. Je ne peut pas répondre à votre place, vous devez donc décider : au vu de ce que vous savez maintenant, avez-vous suffisamment confiance pour rejoindre les 1,7 millions de Français¹³ qui ont téléchargé l’application ?

N’hésitez pas à poster vos questions en commentaires. Si vous souhaitez me contacter, retrouvez-moi sur LinkedIn ou par mail à thomas.robertson[@]startinsaclay.fr.

Sources :

[1] ROBERT : ROBust and privacy-presERving proximity Tracing https://github.com/ROBERT-proximity-tracing/documents/blob/master/ROBERT-specification-EN-v1_1.pdf

[2] States Nearly Doubled Plans For Contact Tracers Since NPR Surveyed Them 10 Days Ago- https://www.npr.org/sections/health-shots/2020/04/28/846736937/we-asked-all-50-states-about-their-contact-tracing-capacity-heres-what-we-learne?t=1591550361824

[3] StopCovid : le projet https://www.economie.gouv.fr/stopcovid-le-projet

[4 ] ROBERT Specification EN v1.1 https://github.com/ROBERT-proximity-tracing/documents/blob/master/ROBERT-summary-EN.pdf

[5] ACLU White Paper: The Limits of Location Tracking in an Epidemic https://www.aclu.org/report/aclu-white-paper-limits-location-tracking-epidemic

[6] Proximity Tracing Analysis EN v1.0 https://github.com/ROBERT-proximity-tracing/documents/blob/master/Proximity-tracing-analysis-EN-v1_0.pdf

[7] Too much contact data sent to the server - Gitlab https://gitlab.inria.fr/stopcovid19/stopcovid-android/-/issues/43

[8] StopCovid, l’appli qui en savait trop https://www.mediapart.fr/journal/france/150620/stopcovid-l-appli-qui-en-savait-trop?onglet=full

[9] Tweet de Yoann Gini - Twitter https://twitter.com/ygini/status/1272842658185019392

[10] Data collection surrounding the server application https://gitlab.inria.fr/stopcovid19/robert-server/-/issues/30

[11] The UK is abandoning its current contact tracing app for Google and Apple’s system https://www.technologyreview.com/2020/06/18/1004097/the-uk-is-abandoning-its-current-contact-tracing-app-for-google-and-apples-system/

[12] L’application StopCovid collecte plus de données qu’annoncé https://www.lemonde.fr/pixels/article/2020/06/16/l-application-stopcovid-collecte-plus-de-donnees-qu-annonce_6043038_4408996.html

[13] StopCovid : moins de 2 millions de téléchargements de l’application en deux semaines https://www.francetvinfo.fr/sante/maladie/coronavirus/info-franceinfo-stopcovid-moins-de-2-millions-de-telechargements-de-l-application-en-deux-semaines_4010391.html

--

--