Fin du pseudonymat dans TousAntiCovid et passe sanitaire trop bavard

Depuis plusieurs semaines, l’application TousAntiCovid a une nouvelle fonctionnalité: le stockage des certificats de vaccination.

Cette application qui avait promis, craché, juré qu’elle ne contiendrait pas de données personnelles vient donc de revenir très discrètement sur ses promesses.

En effet, les différents QRCode et 2D-DOC présents sur les certificats papiers (y compris ceux que l’on peut récupérer sur https://attestation-vaccin.ameli.fr/attestation) contiennent des données personnelles et des données de santé.

De plus, ces données sont en “clair” pour qui sait extraire de ces codes barre les données qu’ils contiennent car rien n’est chiffré même si ce n’est pas lisible par un humain.

TousAntiCovid (et toute autre appli qui les scannera) a donc accès à leur contenu lorsque l’on ajoute ce certificat dans l’application et traite donc de ce fait des données à caractère personnel et plus seulement des données pseudonymisées.

Qu’est-ce qu’un “2D-DOC” ?

C’est un standard de contenu de code barre bi-dimensionnel de type “datamatrix” utilisé par les administrations françaises pour vérifier les informations contenues dans certains justificatifs.

Vous en trouverez par exemple sur vos factures téléphoniques, qui peuvent ainsi servir de justificatif de domicile sécurisé car ces 2D-DOC sont signés numériquement par leur émetteur.

C’est l’Agence Nationale des Titres Sécurisés qui maintient ce standard et l’a fait évoluer pour l’étendre aux résultats de tests virologiques et aux certificats de vaccination.

Voici ce qu’on y trouve d’après les spécifications :

Toutes ces informations sont en clair, décodables aisément par n’importe qui, il suffit de chercher “datamatrix online decoder” sur votre moteur de recherche préféré.

En plus de ces données, le 2D-DOC contient des metadonnées entre autres: version, type de document, émetteur du certificat de signature et identifiant de ce certificat, date/heure de génération du document et du code barre.

Il contient aussi une signature électronique qui permet de s’assurer de l’intégrité du contenu (qu’il n’a pas été modifié) et de l’authenticité du 2D-DOC (qui l’a généré).

Voici un exemple de contenu :

Le QR Code destiné à TousAntiCovid : pourquoi ?

En plus du 2D-DOC, un second code barre de type “QR Code” figure sur les justificatifs. Il reprend à l’identique le contenu du 2D-DOC, mais sous forme d’une URL du type :

https://bonjour.tousanticovid.gouv.fr/app/wallet?v=DC04FR03AV011E7F1E7FL101FRL0QUEST...

L’accès à cette URL transmet donc toutes les informations de votre certificat aux serveurs centraux de TousAntiCovid.

Lorsque vous scannez ce QR Code avec l’appli, celle-ci a donc accès à vos informations personnelles (nom, prénom, date de naissance), mais aussi à des données de santé (le fait que vous avez été vacciné, le type de vaccin, la date d’injection ainsi que le nombre d’injections).

Le nombre d’injections révèle indirectement aussi si vous avez été malade (dans ce cas 1 seule injection), ou si vous avez une déficience immunitaire (dans ce cas 3 injections).

L’appli permet ensuite de visualiser un 2D-DOC correspondant à votre certificat de vaccination, qui sera semble-t-il utilisé dans le cadre du passe sanitaire.

Première question : pourquoi TousAntiCovid ne lit pas directement le 2D-DOC d’origine et a besoin de son QR Code dédié contenant un lien transmettant (potentiellement) les informations vers un serveur centralisé ?

Un morceau de réponse via Twitter :

Seconde question : l’appli transmet-elle ces données aux serveurs centralisés ?

Si quelqu’un a le courage d’explorer le code ouvert de l’appli, moi j’ai abandonné !

Il ne semble pas car l’ajout d’un certificat de vaccination fonctionne en mode avion.

Aurait-on pu faire autrement pour implémenter le passe sanitaire ?

Un scan du 2D-DOC par l’app, permet à celle-ci de le reproduire à l’identique sans besoin d’un QRCode avec un lien pointant potentiellement vers l’extérieur si on n’a pas installé l’appli sur son smartphone.

L’utilisation dans le cadre du passe sanitaire va aussi permettre à toute personne scannant votre 2D-DOC d’avoir votre identité et des données de santé vous concernant.

Plutôt que d’indiquer en clair nom, prénom et date de naissance, utiles pour vérifier quand c’est nécessaire la correspondance avec une pièce d’identité, on aurait pu stocker une empreinte de ces informations (un hash) dans le 2D-DOC.

La partie données de santé aurait pu être chiffrée, et donc accessible si besoin uniquement aux détenteurs d’une clé de déchiffrement dont l’accès aurait pu être sécurisé.

Pour résumer, bien peu d’attention a été portée semble-t-il sur les données personnelles et de santé et leur traitement dans cette implémentation du passe sanitaire. On est très loin des recommandations et avis de la CNIL qui indiquait même que l’on ne devrait même pas savoir si la personne a été vaccinée, malade ou juste testée négative.

“La CNIL a rappelé l’importance de limiter strictement la divulgation d’informations privées, relatives à la santé des personnes, lors de la vérification des certificats. Elle invite donc le Gouvernement à mettre en œuvre, dans les plus brefs délais, une solution qui permettrait de limiter l’accès aux personnes autorisées à vérifier les certificats à un résultat (couleur verte ou rouge), en complément de l’identité de leur titulaire, afin de ne pas révéler s’il a été vacciné, a fait un test ou s’est rétabli d’une infection antérieure à la COVID-19.”

Je suis d’ailleurs étonné du silence de la CNIL à ce sujet. Peut-être n’a-t-elle pas fait cette analyse technique, ou n’a pas eu le temps de la faire vus les délais qu’on lui impose.

En l’état l’implémentation actuelle du passe sanitaire (papier et/ou numérique), ne répond pas aux exigences de la Loi de sortie de crise sanitaire du 31 mai 2021 qui dit dans son premier article :

La présentation du résultat d'un examen de dépistage virologique ne concluant pas à une contamination par la covid-19, d'un justificatif de statut vaccinal concernant la covid-19 ou d'un certificat de rétablissement à la suite d'une contamination par la covid-19 dans les cas prévus au A du présent II peut se faire sur papier ou sous format numérique.
La présentation, sur papier ou sous format numérique, des documents mentionnés au premier alinéa du présent B est réalisée sous une forme ne permettant pas aux personnes habilitées ou aux services autorisés à en assurer le contrôle de connaître la nature du document ni les données qu'il contient.

TousAntiCovid Vérif : un flagrant décalage avec la présentation officielle du passe sanitaire et les garanties annoncées

TousAntiCovid Vérif est l’application officielle permettant le fonctionnement du passe sanitaire. Elle permet de vérifier les 2D-DOC papier ou affichés à l’écran de votre smartphone (avec TousAntiCovid ou par une simple photo de la version papier).

Voici quelques extraits du site du gouvernement où est expliqué le fonctionnement du passe sanitaire et donc de cette seconde application : https://www.gouvernement.fr/pass-sanitaire-toutes-les-reponses-a-vos-questions

Lors d'un contrôle de votre Pass sanitaire par une autorité ou une personne habilitée, l’opération de vérification/lecture se fait en local (grâce à l’application TAC-Verif), sans conservation de donnée, sans requête à un serveur central de données. Seule la signature de votre preuve sanitaire est vérifiée sur un serveur central avec l’application TousAntiCovid Verif pour s’assurer de son authenticité. TousAntiCovid Verif disposant des règles de gestion en local, seule la signature du certificat sera vérifiée par un serveur dédié d'IN Groupe respectant toutes les règles de sécurité des systèmes d'information afin de garantir au lecteur l'authenticité du certificat.

Plusieurs remarques :

  1. “contrôle par une personne habilitée” : n’importe qui peut télécharger l’appli sur les store Apple et Google, et l’utiliser sans aucun contrôle.
    Au démarrage, elle rappelle juste qu’elle est réservée aux personnes habilitées et services autorisés dans le cadre de la Loi du 2 juin 2021… et l’accès à l’appli se base donc sur une simple “déclaration sur l’honneur”, rien de plus.
  2. “l’opération de vérification/lecture se fait en local (grâce à l’application TAC-Verif)” : la lecture de ces codes barre peut se faire avec toute autre appli ne présentant pas les garanties de l’appli officielle “ TousAntiCovid Verif”… et ces applis ont directement accès à l’intégralité des données personnelles et de santé présentes dans le 2D-DOC.
  3. Dans les CGU de l’appli, il est indiqué “Aucun transfert ou partage n’est réalisé lors du contrôle.” ce qui semble incohérent avec la page du site du gouvernement. En activant le mode avion, donc sans réseau, la vérification n’est plus possible, les données du 2D-DC sont donc bien transmises à un serveur centralisé. Encore un traitement dont on n’est pas informé, au contraire l’application affirme que ce traitement n’existe pas !
  4. Ce contrôle centralisé rend par ailleurs dépendant le fonctionnement du passe sanitaire à un accès internet fonctionnel et à une disponibilité du service en ligne de vérification géré par IN-Groupe (c’est l’Imprimerie Nationale, société détenue à 100% par l’État). Imaginez un festival avec un accès réseau saturé, ou un dysfonctionnement du serveur d’IN-Groupe (tout est possible même les numéros d’urgence peuvent être indisponibles comme nous l’a rappelé l’actualité récente).

Il semble de plus que les premières versions pour Android de cette application contient du code Google (firebase) assez opaque et aux conditions d’utilisation pas trop respectueuses des données personnelles :

Vous pouvez aussi consulter son rapport Exodus. La version 1.3 a semble-t-il corrigé ceci.

Pour gérer la vérification du pass sanitaire, les documents de preuve disposeront d’un QR code qui pourra être flashé à l’aide de l’application TousAntiCovid Verif par les exploitants des établissements recevant du public organisateurs d’événements concernés par le pass.

Cette application aura le niveau de lecture « minimum » avec juste les informations « pass valide/invalide » et « nom, prénom », sans divulguer davantage d’information sanitaire. L’application sera disponible gratuitement début juin.

Le comble ici, c’est que l’affichage du 2D-DOC sur TousAntiCovid affiche en dessous du 2D-DOC : nom, prénom, date de naissance, type de vaccin, date de dernière injection et nombre d’injections… l’accès à ces informations n’est donc pas du tout limité !

Lors d’un contrôle de passe sanitaire, tout ceci est donc visible sans même avoir besoin d’une appli pour décoder le 2D-DOC.

Le gag final pour TousAntiCovid vérif se découvre quand on fait une copie d’écran du résultat d’une vérification. Après la copie d’écran faite (oui après), un message s’affiche:

Aurait-on pu faire mieux pour la partie “vérif” ?

L’appli de vérification aurait pu aller au delà de la simple déclaration sur l’honneur en exigeant une identification de l’utilisateur sur France Connect. Ceci aurait responsabilisé l’utilisateur de l’appli et de conserver des preuves d’usages illicites.

La vérification de l’authenticité d’un 2D-DOC par TousAntiCovid Vérif aurait parfaitement pu se faire en local, il suffit pour cela d’avoir la clé publique permettant de vérifier sa validité (elle est d’ailleurs intégrée à TousAntiCovid depuis la version 2.5.0 qui effectue cette vérification d’authenticité). Il n’aurait donc pas été nécessaire de transmettre ces infos à un serveur central et d’ajouter des traitements supplémentaires de données personnelles et de santé et de créer une dépendance à une connexion internet. Lors d’une conférence de presse le 8 juin, l’annonce a été faite d’une prochaine version de l’application de vérification qui fonctionnerait en local. La mise à jour en version 1.0.1 pour iOS, n’intègre toujours pas ce changement.

Il aurait aussi été préférable pour développer cette application de pas utiliser de framework douteux sur le plan de la gestion des données personnelles (firebase de Google).

Petit conseil : conservez sur votre smartphone une simple photo (de qualité) de votre 2D-DOC papier (ou PDF) et présentez cette photo comme passe sanitaire, inutile de le scanner dans TousAntiCovid ;)

Ne partagez pas non plus publiquement une photo ni de votre 2D-DOC, ni du QRCode.

40 ans d'informatique + 33 de base de données + 25 d'internet + 11 de cartographie = #OpenStreetMap + #opendata + #logiciel_libre

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store