Index ¦ Archives ¦ Atom

Doctolib est trop bavard

Le 8 mars 2021, France Inter a publié un article sur son site web affirmant que des données comme « les médecins consultés, la fréquence de rendez-vous et même parfois, le motif de ce rendez-vous » étaient confiées à Amazon Web Services, et étaient « en clair ». L’article de France Inter est plutôt fouillis, et on ne comprend pas vraiment de quoi il retourne, par manque de détails techniques et d’informations sur ce qui a été effectivement observé.

Pour rappel, Doctolib est une plateforme française privée qui met en relation médecins, praticiens, et patients, et qui doit donc traiter des données à caractère personnel médicales, données médicales dont l’actualité a montré qu’elles ne sont pas toujours bien sécurisées.

Toujours est-il que Doctolib, par le biais de son co-fondateur et président, a répondu dans un article publié sur medium en affirmant que les affirmations de France Inter étaient « fausses ». La réponse a au moins le mérite d’être un peu plus claire, mais ce n’est toujours pas complètement gagné.

Dans cet article, je vais essayer d’apporter quelques précisions afin de déterminer qui a tort et qui a raison. Dans sa réponse, Stanislas Niox-Chateau affirme que « L’ensemble des données des utilisateurs de Doctolib est chiffré au repos. » et « Les données en transit sont toujours chiffrées. ».

Tout d’abord, concernant le chiffrement au repos, cela est à vérifier sur les serveurs de Doctolib, et ceci n’est donc pas vraiment ce qui était reproché à l’entreprise par France Inter, je vais donc passer sur ce point. Le second point est plus intéressant : le fait que des données soient chiffrées en transit.

Est-ce bien le cas? La réponse est très probablement « oui », même avant de vérifier le fonctionnement de l’application Doctolib ou du site web Doctolib. Cela ne veut pas dire que c’est suffisant : si je chiffre mes données pour les envoyer à Facebook, et que Facebook peut les lire, mes données seront probablement confidentielle sur le chemin qu’elles prennent jusqu’à Facebook, mais rien ne me garantie que Facebook ne va pas en faire n’importe quoi derrière.

Quand le président de Doctolib affirme ensuite que le chiffrement de bout en bout est une « technique de chiffrement avant-gardiste qui est encore très faiblement déployée dans le monde », ce n’est pas un bon signe quant à sa véracité. Plusieurs messageries instantanées, comme Signal, WhatsApp ou encore Telegram supportent le chiffrement de bout-en-bout depuis plusieurs années, et ce ne sont pas des services mineurs.

Vérifions.

Protocole de test

Pour tester si les données de Doctolib s’échappent vers des tiers comme Amazon, j’ai étudié l’application Android de la société, et ré-utilisé la même technique que lors de mon analyse de l’application Izly, que je ne vais donc pas re-détailler ici. En résumé, je me place sur le chemin de communication entre l’application et Internet, et j’observe les données qui passent pour déterminer leur contenu et leur destinataire.

Grâce à cette étude, j’observe que Doctolib est en effet trop bavard, et fait fuiter des données liées à la santé des personnes qui utilisent le service à d’autres entreprises privées.

Méta-données envoyées à Cloudinary

Tout d’abord, Doctolib utilise le service de gestion d’images Cloudinary pour héberger les images des médecins et autres établissements de santé. Lorsqu’une recherche est effectuée par un utilisateur de Doctolib pour trouver un médecin ou un établissement de santé, les images liées sont chargées par le biais des serveurs de Cloudinary. Ainsi, Cloudinary peut savoir si l’utilisateur cherche un oncologue, un chirugien dentiste, et peut techniquement re-construire la requête de l’utilisateur en utilisant les photos des praticiens. Je donne ici un exemple d’images affichées quand on recherche le mot-clef « cancer » :

Les miniatures chargées sont, entre autres, celles de l’Institut Curie, un centre de recherche et de traitement du cancer en France, et du Pôle de chirurgie viscérale et digestive // Oncologie de Montpellier, établissement spécialisés sur les cancers.

Techniquement, Cloudinary peut donc faire le lien entre l’adresse IP de l’utilisateur et sa recherche sur le mot clef « cancer », une recherche à caractère médical.

Méta-données envoyées à Amazon

L’application Doctolib envoie de la télémétrie, à la fois à Google Analytics et Amazon. Sauf que dans certaines données envoyées à Amazon, on peut retrouver des URLs qui correspondent à ce que visite ou recherche l’utilisateur, comme illustré sur l’image ci-dessous (cliquez pour agrandir):

Un certificat doctolib derrière une IP Cloudflare

L’application communique avec des IPs de Cloudflare, à travers les requêtes pour la récupération du fichier appointments.json. Ce fichier contient les informations concernant les rendez-vous, le nom du patient, la localisation du praticien, sa spécialité…

Ici, par exemple, un test de dépistage du COVID que j’ai effectué il y a quelques mois.

Certes, le certificat TLS est bien celui de Doctolib, mais l’adresse IP qui répond est une adresse IP de Cloudflare, ce qui veut très probablement dire que Doctolib a uploadé sa clef privée sur les serveurs de Cloudflare (qui sert ainsi de terminaison TLS), ou que Doctolib repose sur le mécanisme « keyless » de CloudFlare, ce qui signifierait que Cloudflare peut lire les données « en clair », contrairement aux affirmations du président de Doctolib.

Il est techniquement possible que Cloudflare ne serve qu’à faire proxy SNI, permettant ainsi à Doctolib d’effectuer la terminaison TLS (et rendre impossible la lecture des données par Cloudflare), mais la probabilité que cela soit le cas est faible, car cela enleverait une bonne partie de l’intérêt à utiliser Cloudflare.

Quant à l’utilisation du mode mode « keyless » de CloudFlare, qui permet de ne pas avoir à partager la clef privée avec ce dernier, celui ci n’est pas magique: l’entreprise rappelle en effet sur sa page que « Keyless SSL nécessite que Cloudflare déchiffre, inspecte et rechiffre le trafic pour le renvoyer au serveur d’origine du client. », ce qui signifie que Cloudflare a accès aux données en clair, même si il n’a pas accès à la clef privée.

En résumé

Certaines données et méta-données de santé des personnes qui utilisent Doctolib sont envoyées, directement ou indirectement, à d’autres entreprises privées, comme Amazon, Cloudflare, ou Cloudinary.

Même si « Doctolib utilise uniquement les données de ses utilisateurs pour le bon fonctionnement de ses services », comme l’affirme son président, peut-il en affirmer autant pour ces autres entreprises privées dont les sièges sociaux sont situés en dehors de l’Europe, aux États Unis, pays qui n’a pas été jugé aussi sûr que l’Europe pour l’hébergement de données ?

Je pense que la réponse est « non », et à ce titre, Doctolib peut largement mieux faire.

© Rémy Grünblatt 🍃. Built using Pelican. Theme by Giulio Fidente on github.