Les CAPTCHA et reCAPTCHA déterminent si un utilisateur est en fait un bot. Ces tests peuvent permettre d’arrêter l’activité de bots malveillants, mais ils sont loin d’être infaillibles.
Cet article s'articule autour des points suivants :
Contenu associé
Abonnez-vous à theNET, le récapitulatif mensuel de Cloudflare des idées les plus populaires concernant Internet !
Copier le lien de l'article
Un test CAPTCHA est conçu pour déterminer si un utilisateur en ligne est vraiment un humain et non un bot. CAPTCHA est un acronyme qui signifie « Completely Automated Public Turing test to tell Computers and Humans Apart » (test de Turing public complètement automatisé permettant de différencier un utilisateur humain d'un ordinateur). Les utilisateurs rencontrent souvent des tests CAPTCHA et reCAPTCHA sur Internet. Même s'ils permettent de gérer l'activité des bots, ces tests présentent des inconvénients.
Bien que les CAPTCHA soient conçus pour bloquer les bots automatisés, les CAPTCHA sont eux-mêmes automatisés. Ils sont programmés pour apparaître à certains endroits sur un site web et ils approuvent ou rejettent automatiquement les utilisateurs.
Les CAPTCHA classiques, qui sont encore utilisés dans certaines propriétés web aujourd’hui, consiste à demander aux utilisateurs d’identifier des lettres. Les lettres sont déformées pour que les bots aient peu de chance de les identifier. Pour passer le test, les utilisateurs doivent interpréter le texte déformé, saisir les lettres correctes dans un champ de formulaire et envoyer le formulaire. Si les lettres ne correspondent pas, les utilisateurs sont invités a recommencer. Ces tests sont courants dans les formulaires de connexion ou d’inscription, les sondages en ligne et les pages de paiements des détaillants en ligne.
L'idée est qu'un programme informatique tel qu'un bot ne sera pas en mesure d'interpréter les lettres déformées, tandis qu'un être humain, habitué à voir et à interpréter des lettres dans toutes sortes de contextes, différentes polices, écritures, etc., sera généralement en mesure de les identifier.
Le mieux que de nombreux bots puissent faire est de saisir des lettres aléatoires, ce qui rend statistiquement peu probable qu'ils réussiront le test. Ainsi, les bots échouent au test et ne peuvent pas interagir avec le site web ou l'application, tandis que les humains peuvent continuer à l'utiliser normalement.
Les bots avancés peuvent utiliser l'apprentissage automatique pour identifier ces lettres déformées, de sorte que ces types de tests CAPTCHA sont remplacés par des tests plus complexes. Google reCAPTCHA a développé un certain nombre d'autres tests pour différentier les utilisateurs humains des bots.
recAPTCHA est un service Google gratuit qui remplace les CAPTCHA traditionnels. La technologie reCAPTCHA a été développée par les chercheurs de l’université Carnegie Mellon, puis acheté par Google en 2009.
Le reCAPTCHA est plus avancé que les tests CAPTCHA habituels. Comme le CAPTCHA, certains reCAPTCHA obligent les utilisateurs à saisir des images de texte que les ordinateurs ont du mal à déchiffrer. Contrairement aux CAPTCHA ordinaires, les reCAPTCHA se procurent le texte à partir d'images du monde réel : photos d'adresses de rue, texte de livres imprimés, texte de vieux journaux, etc.
Au fil du temps, Google a étendu la fonctionnalité des tests reCAPTCHA afin qu'ils n'aient plus à s'appuyer sur l'ancien style d'identification de texte flou ou déformé. Certains types de tests reCAPTCHA fonctionnent autrement :
Pour un test reCAPTCHA de reconnaissance d'image, les utilisateurs se voient généralement présenter 9 ou 16 images carrées. Les images peuvent toutes provenir de la même grande image ou être différentes. Un utilisateur doit identifier les images qui contiennent certains objets, tels que des animaux, des arbres ou des panneaux de signalisation. Si leur réponse correspond aux réponses de la plupart des autres utilisateurs qui ont passé le même test, la réponse est considérée comme « correcte » et l'utilisateur réussit le test.
La suppression de certains objets dans des photos floues est une tâche très difficile à réaliser pour les ordinateurs. Même les programmes avancés d'intelligence artificielle (IA) éprouvent des difficultés avec cette opération, a fortiori les bots également. Cela ne doit cependant pas poser de difficultés à un utilisateur humain, car les humains sont habitués à percevoir les objets du quotidien dans toutes sortes de contextes et de situations.
Certains tests reCAPTCHA invitent simplement l'utilisateur à cocher une case à côté de la déclaration « Je ne suis pas un robot ». Toutefois, le test ne porte pas sur l'action réelle de cliquer sur la case à cocher, mais sur la phase qui mène au clic de la case à cocher.
Ce test reCAPTCHA prend en compte le mouvement du curseur de l'utilisateur à l'approche de la case à cocher. Même le mouvement le plus précis d'un humain est aléatoire dans une certaine mesure au niveau microscopique : de minuscules mouvements inconscients que les bots ne peuvent pas facilement imiter. Si le mouvement du curseur contient une partie de cette imprévisibilité, alors le test estime que l'utilisateur est probablement légitime. Le reCAPTCHA peut également évaluer les cookies stockés par le navigateur sur l'appareil d'un utilisateur et l'historique de l'appareil afin de savoir si l'utilisateur est susceptible d'être un bot.
Si le test n'est toujours pas en mesure de déterminer si l'utilisateur est ou non humain, il peut présenter un défi supplémentaire, tel que le test de reconnaissance d'images décrit ci-dessus. Toutefois, la plupart du temps, les mouvements du curseur, les cookies et l'historique de l'appareil de l'utilisateur sont suffisamment concluants.
Les dernières versions de reCAPTCHA sont capables de porter un regard global sur le comportement et l'historique des interactions d'un utilisateur avec le contenu sur Internet. La plupart du temps, le programme peut décider en fonction de ces facteurs si l'utilisateur est un bot ou non, sans lui fournir de test à passer. Sinon, l'utilisateur se verra présenter un défi reCAPTCHA typique.
Google propose un service payant mensuel appelé reCAPTCHA Enterprise, qui utilise un système de détection basé sur un score pour distinguer les humains des bots. reCAPTCHA Enterprise interagit avec le backend du client et les pages web pour déclencher une séquence d'événements JavaScript, HTML et d'authentification par jeton. Le système calcule ensuite le « score » de risque du visiteur, entre 0,0 et 1,0, et le développeur du site web détermine les mesures à prendre en fonction du score.
Plus le score est faible, plus le « visiteur » est susceptible d'être un bot. Un score reCAPTCHA Enterprise de 0,0 indique que l'interaction pourrait être frauduleuse et présente un risque élevé, tandis que 1,0 indique que l'interaction est très probablement légitime et présente un risque faible.
Certaines propriétés web ont automatiquement des CAPTCHA en place comme défense proactive contre les bots. Souvent, un test peut être déclenché si le comportement de l'utilisateur semble ressembler au comportement d'un bot : si les utilisateurs demandent des pages web ou cliquent sur des hyperliens à un taux beaucoup plus élevé que la moyenne, par exemple.
Certains bots arrivent à passer le test CAPTCHA. Les chercheurs ont montré qu'il était possible d'écrire des programmes qui résolvent les CAPTCHA de reconnaissance d'images. En outre, les pirates peuvent utiliser des fermes à clics pour passer les tests : des milliers de travailleurs peu rémunérés qui résolvent les CAPTCHA pour les bots.
Outre un CAPTCHA, il doit y avoir d'autres stratégies en place pour arrêter les bots malveillants (tels que les bots d'extraction de contenu, les bots de bourrage d'identifiants ou les bots de spam).
Expérience utilisateur négative : un test CAPTCHA peut interrompre le flux de ce que les utilisateurs essaient de faire en leur donnant une impression négative de leur expérience sur la propriété web et les amener à abandonner complètement la page web dans certains cas.
Ce système ne fonctionne pas pour les personnes malvoyantes : le problème avec les CAPTCHA est qu'ils dépendent de la perception visuelle. Cela les rend quasiment impossible à passer, non seulement pour les personnes totalement aveugles mais aussi pour toute personne malvoyante.
Ces tests peuvent être contournés par les bots : comme indiqué ci-dessus, les CAPTCHA ne protègent pas complètement des bots et ne doivent pas être utilisés pour la gestion des bots.
Les solutions de gestion des bots telles que Cloudflare Bot Management ou Super Bot Fight Mode peuvent identifier les mauvais bots sans affecter l'expérience utilisateur, en se basant sur le comportement du bot. De cette façon, les bots peuvent être atténués sans forcer les utilisateurs à compléter les CAPTCHAS.
Cloudflare propose également Turnstile, une solution invisible de remplacement au CAPTCHA qui utilise un fragment de code gratuit. Turnstile est accessible à tous ; il n'est pas nécessaire d'être client de Cloudflare pour l'utiliser.
À mesure que des millions d’utilisateurs identifient des textes difficiles à lire et sélectionnent des objets dans des images floues, ces données sont fournies aux programmes informatiques d’intelligence artificielle pour qu’ils s’améliorent également dans ces tâches.
En général, les programmes informatiques ont du mal à identifier les objets et les lettres dans différents contextes, car le contexte peut changer presque à l'infini dans le monde réel. Par exemple, un panneau stop est un octogone rouge comportant le mot STOP écrit en lettres blanches. Un programme informatique pourrait identifier assez facilement une combinaison formes-mots. Toutefois, un panneau stop sur une photo peut être très différent de cette simple description en fonction du contexte : l'angle de la photo, l'éclairage, la météo, etc.
Grâce à l'apprentissage automatique, les programmes d'IA peuvent s'affranchir plus facilement de ces limites. Prenons l'exemple d'un panneau stop. Le programmeur fournit au programme d'IA un grand nombre de données concernant ce qui est ou non un panneau stop. Pour que cela soit efficace, il a besoin de nombreux exemples d'images avec et sans des panneaux stop, et il a besoin d'utilisateurs humains pour les identifier jusqu'à ce que le programme dispose de suffisamment de données pour être capable de le faire.
Le reCAPTCHA répond à ce besoin en demandant aux humains d’identifier des objets et des textes, ce qui fournit petit à petit suffisamment de données pour créer des programmes d’IA robustes.
Un test de Turing évalue la capacité d'un ordinateur à imiter le comportement humain. Alan Turing, un des pionniers de l'informatique, a inventé le concept du test qui porte son nom en 1950. Un programme informatique « réussit » le test de Turing si ses performances pendant le test ne se distinguent pas de celles d'un humain, c'est-à-dire s'il agit de la même manière qu'un humain agirait. Un test de Turing ne dépend pas de l'obtention de réponses correctes, mais de la façon dont les réponses sont « humaines », qu'elles soient bonnes ou mauvaises.
Bien qu'il soit appelé « test de Turing public », un CAPTCHA est vraiment l'opposé d'un test de Turing. Il détermine si un utilisateur supposé humain est en fait un programme informatique (un bot) ou non, au lieu d'essayer de déterminer si un ordinateur est un humain. Pour ce faire, un CAPTCHA doit assigner une tâche brève facile pour les personnes et difficile pour les ordinateurs. L'identification du texte et des images correspond généralement à ces critères.