C’est quoi un Captcha?
Vous en faîtes probablement tous les jours, ils sont partout. Les CAPTCHA (Completely Automated Public Turing test to tell Computers and Humans Apart) sont des épreuves qu’on nous fait passer, afin de vérifier que nous sommes humains, et non des bots en train de chercher à envoyer des formulaires ou accéder à certaines parties sensibles d’un site web.
Depuis des années, on nous demande de cliquer tous les jours sur des cases représentant des passages piéton, des fruits ou des animaux en train de faire la sieste pour prouver qu’on est véritablement humain. Au passage, ce serait intéressant d’estimer les heures perdues dans une vie à cliquer sur ces cases.
Le problème des Captchas, c’est qu’ils ne sont pas forcément simples à réaliser, même quand on est humain, et encore moins avec certains handicaps (notamment visuels). Les captchas posent aussi des problèmes sur la vie privée des internautes, car des données personnelles peuvent être collectées et transmises à des entreprises privées lors de l’opération.
Les trois principales solutions de captchas du marché
Avant de rentrer dans le vif du sujet, je voulais rapidement vous présenter les solutions les plus utilisées. Vous les connaissez, car vous les voyez tout le temps.
ReCaptcha
C’est la solution de Google. C’est sans conteste le captcha le plus utilisé sur le web. Si vous êtes comme moi devenu expert à identifier des vélos et des feux de circulation, vous savez de quoi je parle.
Le premier problème évident de ReCaptcha est que ce n’est pas une solution conforme au RGPD. Le RGPD pour rappel rapide, c’est le Règlement Général sur la Protection des Données entré en vigueur en 2018 en Europe afin d’éviter que vos données personnelles ne soient transmises, stockées et utilisées par des tiers sans votre consentement.
Recaptcha, en plus de vous faire travailler gratuitement (oui parce que si on demande tous les jours à des centaines de millions de personnes de reconnaître des piétons, ça n’est pas anodin), collecte et transfère des données personnelles vous concernant vers les serveurs de Google.
Si vous avez donné votre consentement, aucun soucis. Mais ce consentement, on ne vous le demande généralement pas. Pourquoi ? Parce que le RGPD est une contrainte européenne (il existe d’autres règlementations du même style ailleurs, comme le California Consumer Privacy Act (CCPA) en Californie), et que les mesures de mise en conformité ne sont pas natives. Beaucoup de développeur⋅ses web ne se sont toujours pas mis à la page.
Pour plus d’info sur la non conformité RGPD de Recpatcha, vous pouvez lire ces articles:
- reCAPTCHA & RGPD : Comment rester en conformité avec le RGPD ? par Friendly Captcha (une solution concurrente)
- La solution GOOGLE reCAPTCHA est-elle illégale ?
hCaptcha
C’est une autre solution très populaire. C’est celle que j’utilise systématiquement depuis des années pour protéger les sites de mes clients des robots spammeurs.
Hcaptcha se vante d’être conforme RGPD et de proposer une solution 100% accessible. Parfait sur le papier.
Cependant, plusieurs personnes malvoyantes ont rapporté avoir eu de gros soucis lorsqu’elles ont du remplir ce captcha. Le problème a fait un peu de bruit avec l’exode actuel vers Bluesky, qui utilise cette solution de captcha. Je vous en reparle plus loin dans cet article.
Cloudflare Turnstile
C’est l’autre captcha qu’on croise assez fréquemment, développé par Cloudflare.
Cette technologie a l’avantage de fonctionner en arrière-plan sans altérer l’expérience utilisateur en leur demandant de cliquer sur des cases.
Notons que Recaptcha et hCaptcha peuvent aussi fonctionner en arrière-plan dans leurs versions avancées.
Mais comme pour les solutions précédentes, l’outil de Cloudflare pose des soucis pour la mise en conformité RGPD car des données sont collectées et envoyées vers leurs serveurs situés aux États-Unis.
Consentement et Captcha
En Europe, depuis plusieurs années, et encore plus dans des pays comme l’Autriche ou l’Allemagne, on assiste à la mise en procès d’entreprises qui ne respectent pas la RGPD. Les amendes sont plus salées qu’on le croit. Si elle touche les géants du web comme Google ou Amazon (voir cet article du Monde sur le sujet), d’autres entreprises sont aussi inquiétées.
C’est pourquoi s’assurer d’une bonne conformité RGPD sur son site web n’est pas un luxe, mais une véritable obligation légale qui doit être abordée très sérieusement.
Il est compliqué d’obtenir le consentement utilisateur dans le cadre des Captcha. D’abord parce que c’est fastidieux, mais aussi parce qu’en cas de refus, vous risquez de priver vos utilisateurs d’accéder à des fonctionnalités essentielles, comme votre formulaire de contact…. Ou l’intégralité de votre site !
Alors certain⋅es misent là-dessus en mettent en avant que puisque les captchas sont des protections essentielles pour la sécurité et le bon fonctionnement d’un site, le consentement n’a pas à être explicitement demandé. Tout comme c’est le cas pour l’installation des cookies strictement essentiels qu’on retrouve par exemple sur des sites ecommerce (histoire de ne pas perdre le contenu de votre panier à chaque changement de page).
Mais l’argument ne tient pas, et des solutions comme Captcha.eu ou Friendly Captcha ont vu le jour en Europe pour proposer des solutions véritablement conformes au RGPD.
Le problème de l’accessibilité des captcha
On en arrive au gros problème posé par les captcha, qui m’a poussé à rédiger cet article.
Malgré ce qui est avancé par ces solutions, la résolution de captchas par des personnes malvoyantes et très fastidieuse, pour ne pas dire complètement impossible.
J’ai testé la solution d’accessibilité de hcaptcha. Pour moi, forcer un utilisateur à fournir son email et installer un cookie dans son navigateur n’est pas une solution acceptable à mes yeux.
La démarche est trop fastidieuse et implique de transférer une information trop personnelle comparé à l’objectif recherché : valider un simple formulaire.
Le problème des captcha et de l’accessibilité n’est pas nouveau, et avait été brillamment illustré dans cette vidéo réalisée par l’association Valentin Haüy qui oeuvre pour les personnes aveugles et malvoyantes.
Je vous recommande également la lecture de ce très bon article de DesignGouv sur les Captcha et l’accessibilité.
Les solutions accessibles et conformes au RGPD
Face à ce constat sur la technologie des Captcha, il me semble qu’il y a deux grandes solutions qui se dessinent pour continuer à lutter contre les robots malveillants, sans impacter négativement l’expérience utilisateur et l’accessibilité.
Se passer complètement des CAPTCHA
Il existe d’autres moyens de lutter contre les bots. Avec l’essor de l’IA, il devient de toutes façons de plus en plus questionable de continuer à proposer aux utilisateur⋅trices de cliquer sur des cases avec des images, avec les progrès de l’IA qui permet aux bots de résoudre de nombreux captchas aujourd’hui, comme montré récemment par une étude de l’ETH de Zurich.
D’autres techniques existent pour limiter les bots. Bien entendu, aucune n’est infaillible, mais elles peuvent être suffisantes dans de nombreux cas. Parmi celles-ci on retrouve:
- le honey pot (ou pot de miel en français), qui consiste à ajouter un champ invisible à l’œil humain dans un formulaire et à bloquer les soumissions qui l’ont rempli. Le problème est que le bot peut choisir de laisser ce champ vide et ainsi esquiver le piège.
- poser une simple question (comme un calcul mathématique simple) en fin de formulaire et n’envoyer le formulaire que si la réponse apportée est bonne.
- filtrer et bloquer les adresses IP suspectes.
- mettre en place une limite au nombre de requête par unité de temps.
On peut aussi envisager quand c’est possible de se passer de formulaire, comme dans le cas où l’on souhaite juste proposer une prise de contact. Dans ce cas, fournir une adresse email est suffisant.
Le hic bien sûr, c’est qu’il s’agit d’une information extrêmement précieuse, et qu’en cas de capture de votre adresse par un bot, vous risquez bien plus gros qu’en ayant un formulaire mal protégé. Typiquement, vous vous exposez à des vagues de spams, si votre fournisseur email ne les identifie pas correctement en amont.
La parade est d’utiliser ce qu’on appelle l’obfuscation. L’idée est de dissimuler ou modifier la valeur de votre adresse email aux robots, tout en la rendant intelligible par un humain. Plusieurs techniques existent, mais certaines posent des problèmes d’accessibilité (pour les liseuses d’écran par exemple), ou peuvent être facilement contournée. Vous pouvez trouver ici une liste des techniques d’obfuscation, ma préférée étant celle utilisant du CSS tout simplement.
Se tourner vers des solutions invisibles
Plutôt que de demander à l’internaute de cliquer sur des cases, le CAPTCHA va analyser une série de données sur le comportement de l’utilisateur⋅trice afin de lui donner un score final.
Si ce score est suffisamment bon, alors le test est considéré comme passé. L’avantage est que l’épreuve de travail se fait en tâche de fond, sans demander à l’internaute de cliquer où que ce soit, et encore moins de résoudre des énigmes.
Des outils développés par Captcha.eu, FriendlyCaptcha, ou encore Human Presence fonctionnent ainsi. On pourrait bien sûr en citer d’autres.
L’inconvénient de ces outils est qu’ils sont généralement payants pour un usage commercial, en particulier à partir d’un certain volume de requête.
Mais la question de la protection, de la mise en conformité RGPD et de l’accessibilité de votre site web mérite de s’y intéresser.
Comment choisir entre sécurité et accessibilité ?
Dans ce billet j’ai souhaité vous présenter ma réflexion personnelle sur l’utilisation de CAPTCHA pour bloquer les bots malicieux qui vadrouillent sur le web. On estime en effet qu’environ 40% du traffic Internet est composé de bots, pour la plupart malveillants.
Ceci dit, j’estime qu’on ne peut pas faire passer l’accessibilité d’un site après sa sécurité.
Il faut estimer le risque encouru et trouver les moyens d’actions adaptés sans impacter négativement l’expérience utilisateur⋅trice. Bloquer à la fois les bots et un partie des humains visitant un site n’est pas envisageable.
Pour les sites à traffic modéré, les risques encourus sont moindre et des techniques alternatives sans CAPTCHA comme celles exposées précédemment peuvent être amplement suffisante.
S’il devient difficile de gérer les attaques trop fréquentes de bots sans avoir recours à des moyens plus sophistiqués, j’encourage à utiliser des CAPTCHA complètement invisibles. Attention toutefois, car certaines de ces solutions peuvent afficher des CAPTCHA non accessibles si la preuve de travail effectuée en arrière-plan n’a pas été considérée suffisante.