CAPTCHA - CAPTCHA

Ce CAPTCHA (Version 1) de "smwm" obscurcit son message de l'interprétation informatique en tordant les lettres et en ajoutant un léger dégradé de couleur de fond.

Un CAPTCHA ( / k æ p . ə / , un acronyme artificiel pour « Test de Turing public complètement automatisé pour dire aux ordinateurs et aux humains de se séparer ») est un type de test de défi-réponse utilisé en informatique pour déterminer si l'utilisateur est ou non humain. .

Le terme a été inventé en 2003 par Luis von Ahn , Manuel Blum , Nicholas J. Hopper et John Langford . Le type de CAPTCHA le plus courant (affiché sous la version 1.0) a été inventé pour la première fois en 1997 par deux groupes travaillant en parallèle. Cette forme de CAPTCHA nécessite que quelqu'un évalue correctement et entre une séquence de lettres ou de chiffres perceptibles dans une image déformée affichée sur son écran. Parce que le test est administré par un ordinateur, contrairement au test de Turing standard qui est administré par un humain, un CAPTCHA est parfois décrit comme un test de Turing inversé .

Cette procédure d'identification des utilisateurs a fait l'objet de nombreuses critiques, notamment de la part des personnes handicapées, mais aussi d'autres personnes qui ont le sentiment que leur travail quotidien est ralenti par des mots déformés et difficiles à lire. Il faut environ 10 secondes à une personne moyenne pour résoudre un CAPTCHA typique.

Histoire

Depuis les premiers jours d' Internet , les utilisateurs ont voulu rendre le texte illisible aux ordinateurs. Les premières de ces personnes étaient des pirates informatiques , publiant des articles sur des sujets sensibles sur des forums Internet qu'ils pensaient être automatiquement surveillés sur des mots-clés. Pour contourner ces filtres, ils ont remplacé un mot par des caractères similaires. HELLO pourrait devenir |-|3|_|_()ou )-(3££0, ainsi que de nombreuses autres variantes, de sorte qu'un filtre ne pourrait pas toutes les détecter . Cela devint plus tard connu sous le nom de leetspeak .

L'une des premières utilisations commerciales des CAPTCHA était le test de Gausebeck-Levchin . En 2000, idrive.com a commencé à protéger sa page d'inscription avec un CAPTCHA et s'est préparé à déposer un brevet sur cette technique apparemment nouvelle. En 2001, PayPal a utilisé de tels tests dans le cadre d'une stratégie de prévention de la fraude dans laquelle ils ont demandé aux humains de « retaper du texte déformé que les programmes ont du mal à reconnaître ». Le cofondateur de PayPal et CTO Max Levchin a aidé à commercialiser cette première utilisation.

Un déploiement populaire de la technologie CAPTCHA, reCAPTCHA , a été acquis par Google en 2009. En plus de prévenir la fraude par bot pour ses utilisateurs, Google a utilisé la technologie reCAPTCHA et CAPTCHA pour numériser les archives du New York Times et les livres de Google Books en 2011.

Revendications d'inventeur

Deux équipes ont prétendu être les premières à inventer les CAPTCHA largement utilisés sur le Web aujourd'hui. La première équipe avec Mark D. Lillibridge, Martín Abadi , Krishna Bharat et Andrei Broder , a utilisé des CAPTCHA en 1997 chez AltaVista pour empêcher les robots d'ajouter Uniform Resource Locator (URL) à leur moteur de recherche Web . À la recherche d'un moyen de rendre leurs images résistantes aux attaques de reconnaissance optique de caractères (OCR), l'équipe a examiné le manuel de leur scanner Brother , qui contenait des recommandations pour améliorer les résultats de l'OCR (polices similaires, arrière-plans unis, etc.). L'équipe a créé des énigmes en essayant de simuler ce que le manuel prétendait provoquer une mauvaise OCR.

La deuxième équipe à prétendre être la première à inventer les CAPTCHA avec Luis von Ahn , Manuel Blum , Nicholas J. Hopper et John Langford , a d'abord décrit les CAPTCHA dans une publication de 2003 et a ensuite reçu une large couverture dans la presse populaire. Leur notion de CAPTCHA couvre tout programme qui peut distinguer les humains des ordinateurs.

La controverse sur la qualité d'inventeur a été résolue par l'existence d'une demande de brevet de date de priorité de 1997 par Eran Reshef, Gili Raanan et Eilon Solan (deuxième groupe) qui ont travaillé à Sanctum sur le pare-feu de sécurité des applications . Leur demande de brevet précise que « l'invention est basée sur l'application de l'avantage humain dans l'application des compétences sensorielles et cognitives à la résolution de problèmes simples qui s'avèrent extrêmement difficiles pour les logiciels informatiques. Ces compétences incluent, sans s'y limiter, le traitement d'informations sensorielles telles que l'identification d'objets et de lettres dans un environnement graphique bruyant". Lillibridge, Abadi, Bharat et Broder (premier groupe) ont publié leur brevet en 1998. Les deux brevets sont antérieurs à d'autres publications de plusieurs années, bien qu'ils n'utilisent pas le terme CAPTCHA, ils décrivent les idées en détail et décrivent précisément les CAPTCHA graphiques utilisés dans le Web aujourd'hui.

Caractéristiques

Les CAPTCHA sont, par définition, entièrement automatisés, nécessitant peu de maintenance ou d'intervention humaine pour administrer, produisant des avantages en termes de coût et de fiabilité.

L'algorithme utilisé pour créer le CAPTCHA doit être rendu public, même s'il peut être couvert par un brevet. Ceci est fait pour démontrer que le briser nécessite la solution à un problème difficile dans le domaine de l'intelligence artificielle (IA) plutôt que la simple découverte de l'algorithme (secret), qui pourrait être obtenu par ingénierie inverse ou par d'autres moyens.

Les CAPTCHA modernes basés sur du texte sont conçus de telle sorte qu'ils nécessitent l'utilisation simultanée de trois capacités distinctes (reconnaissance invariante, segmentation et analyse syntaxique) pour effectuer correctement la tâche avec n'importe quelle cohérence.

  • La reconnaissance invariante fait référence à la capacité de reconnaître la grande quantité de variation dans la forme des lettres. Il existe un nombre extrêmement important de versions de chaque personnage qu'un cerveau humain peut identifier avec succès. Il n'en va pas de même pour un ordinateur, et lui apprendre à reconnaître toutes ces formations différentes est une tâche difficile.
  • La segmentation, ou la possibilité de séparer une lettre d'une autre, est également rendue difficile dans les CAPTCHA, car les caractères sont entassés sans espace blanc entre les deux.
  • Le contexte est également critique. Le CAPTCHA doit être compris de manière holistique pour identifier correctement chaque caractère. Par exemple, dans un segment d'un CAPTCHA, une lettre peut ressembler à un "m". Ce n'est que lorsque le mot entier est mis en contexte qu'il devient clair qu'il s'agit d'un u et d'un n .

Chacun de ces problèmes pose un défi important pour un ordinateur, même isolément. La présence des trois en même temps est ce qui rend les CAPTCHA difficiles à résoudre.

Contrairement aux ordinateurs, les humains excellent dans ce type de tâche. Alors que la segmentation et la reconnaissance sont deux processus distincts nécessaires à la compréhension d'une image pour un ordinateur, ils font partie du même processus pour une personne. Par exemple, lorsqu'un individu comprend que la première lettre d'un CAPTCHA est un a , cet individu comprend également où se trouvent les contours de ce a , et également où il se confond avec les contours de la lettre suivante. De plus, le cerveau humain est capable de penser dynamiquement en fonction du contexte. Il est capable de garder plusieurs explications en vie, puis de choisir celle qui est la meilleure explication pour l'ensemble de l'entrée en fonction d'indices contextuels. Cela signifie également qu'il ne sera pas dupe des variations de lettres.

Relation avec l'IA

Bien qu'utilisés principalement pour des raisons de sécurité, les CAPTCHA servent également de tâche de référence pour les technologies d'intelligence artificielle. Selon un article d'Ahn, Blum et Langford, "tout programme qui réussit les tests générés par un CAPTCHA peut être utilisé pour résoudre un problème d'IA non résolu".

Ils soutiennent que les avantages de l'utilisation de problèmes d'IA difficiles comme moyen de sécurité sont doubles. Soit le problème n'est pas résolu et il reste une méthode fiable pour distinguer les humains des ordinateurs, soit le problème est résolu et un problème d'IA difficile est résolu avec lui. Dans le cas des CAPTCHA basés sur des images et du texte, si une IA était capable d'accomplir la tâche avec précision sans exploiter les défauts d'une conception CAPTCHA particulière, elle aurait alors résolu le problème du développement d'une IA capable de reconnaître des objets complexes dans des scènes.

Accessibilité

De nombreux sites Web nécessitent de saisir un CAPTCHA lors de la création d'un compte pour éviter le spam.

Les CAPTCHA basés sur la lecture de texte - ou d'autres tâches de perception visuelle - empêchent les utilisateurs aveugles ou malvoyants d'accéder à la ressource protégée. Cependant, les CAPTCHA ne doivent pas nécessairement être visuels. Tout problème d' intelligence artificielle difficile , comme la reconnaissance vocale , peut être utilisé comme base d'un CAPTCHA. Certaines implémentations de CAPTCHA permettent aux utilisateurs d'opter pour un CAPTCHA audio, bien qu'un article de 2011 ait démontré une technique pour vaincre les schémas populaires à l'époque.

Pour les utilisateurs non voyants (par exemple les utilisateurs aveugles ou les daltoniens lors d'un test d'utilisation des couleurs), les CAPTCHA visuels présentent de sérieux problèmes. Étant donné que les CAPTCHA sont conçus pour être illisibles par les machines, les outils de technologie d'assistance courants tels que les lecteurs d'écran ne peuvent pas les interpréter. Étant donné que les sites peuvent utiliser des CAPTCHA dans le cadre du processus d'enregistrement initial, voire à chaque connexion, ce défi peut bloquer complètement l'accès. Dans certaines juridictions, les propriétaires de sites pourraient devenir la cible de litiges s'ils utilisent des CAPTCHA qui discriminent certaines personnes handicapées. Par exemple, un CAPTCHA peut rendre un site incompatible avec la section 508 aux États-Unis. Dans d'autres cas, les personnes malvoyantes peuvent choisir d'identifier un mot qui leur est lu.

Bien que fournir un CAPTCHA audio permet aux utilisateurs aveugles de lire le texte, cela gêne toujours ceux qui sont à la fois aveugles et sourds. Selon sense.org.uk, environ 4 % des personnes de plus de 60 ans au Royaume-Uni souffrent à la fois de déficiences visuelles et auditives . Il y a environ 23 000 personnes au Royaume-Uni qui ont de graves déficiences visuelles et auditives. Selon le Consortium national d'assistance technique pour les enfants et les jeunes adultes sourds-aveugles (NTAC), le nombre d' enfants sourds - aveugles aux États-Unis est passé de 9 516 à 10 471 au cours de la période 2004 à 2012. L'Université Gallaudet cite des estimations de 1980 à 2007 qui suggèrent plus de 35 000 adultes sourds-aveugles aux États-Unis. Les estimations de la population de sourds-aveugles dépendent fortement du degré de déficience utilisé dans la définition.

L'utilisation de CAPTCHA exclut donc un petit nombre d'individus d'utiliser des sous-ensembles importants de services Web courants tels que PayPal, Gmail, Orkut, Yahoo!, de nombreux systèmes de forums et de blogs, etc.

Même pour les personnes parfaitement voyantes, les nouvelles générations de CAPTCHA graphiques, conçues pour surmonter les logiciels de reconnaissance sophistiqués, peuvent être très difficiles, voire impossibles à lire.

Une méthode d'amélioration du CAPTCHA pour en faciliter le travail a été proposée par ProtectWebForm et nommée « Smart CAPTCHA ». Il est conseillé aux développeurs de combiner CAPTCHA avec JavaScript. Comme il est difficile pour la plupart des robots d'analyser et d'exécuter JavaScript, une méthode combinatoire qui remplit les champs CAPTCHA et masque à la fois l'image et le champ aux yeux humains a été proposée.

Une méthode alternative consiste à afficher à l'utilisateur une équation mathématique simple et à demander à l'utilisateur d'entrer la solution à titre de vérification. Bien qu'ils soient beaucoup plus faciles à vaincre à l'aide de logiciels, ils conviennent aux scénarios où l'imagerie graphique n'est pas appropriée, et ils offrent un niveau d'accessibilité beaucoup plus élevé pour les utilisateurs aveugles que les CAPTCHA basés sur des images. Ceux-ci sont parfois appelés MAPTCHA (M = "mathématique"). Cependant, ceux-ci peuvent être difficiles pour les utilisateurs ayant un trouble cognitif.

D'autres types de défis, tels que ceux qui nécessitent de comprendre le sens d'un texte (par exemple, un casse-tête logique, une question-questionnaire ou des instructions sur la façon de créer un mot de passe) peuvent également être utilisés comme CAPTCHA. Encore une fois, il y a peu de recherches sur leur résistance aux contre-mesures.

Contournement

Il existe plusieurs approches pour vaincre les CAPTCHA : utiliser une main-d'œuvre humaine bon marché pour les reconnaître, exploiter des bogues dans l'implémentation qui permettent à l'attaquant de contourner complètement le CAPTCHA et enfin utiliser l'apprentissage automatique pour créer un solveur automatisé. Selon l'ancien « tsar de la fraude au clic » de Google, Shuman Ghosemajumder , il existe de nombreux services qui résolvent automatiquement les CAPTCHA.

Attaques basées sur l'apprentissage automatique

Dans ses premières itérations, il n'y avait pas de méthodologie systématique pour concevoir ou évaluer les CAPTCHA. En conséquence, dans de nombreux cas, les CAPTCHA étaient d'une longueur fixe et, par conséquent, des tâches automatisées pouvaient être construites pour faire des suppositions éclairées sur l'endroit où la segmentation devrait avoir lieu. D'autres premiers CAPTCHA contenaient des ensembles de mots limités, ce qui rendait le test beaucoup plus facile à jouer. D'autres encore ont commis l'erreur de trop se fier à la confusion de fond dans l'image. Dans chaque cas, des algorithmes ont été créés qui ont réussi à accomplir la tâche en exploitant ces défauts de conception. Ces méthodes se sont toutefois avérées fragiles et de légères modifications du CAPTCHA ont pu facilement les contrecarrer. Les CAPTCHA modernes comme reCAPTCHA ne reposent plus uniquement sur des modèles fixes, mais présentent plutôt des variations de caractères qui sont souvent regroupés, rendant la segmentation presque impossible. Ces dernières itérations ont été beaucoup plus efficaces pour éviter les tâches automatisées.

Un exemple de défi reCAPTCHA de 2007, contenant les mots « suivant la conclusion ». L'ondulation et le trait horizontal ont été ajoutés pour augmenter la difficulté de casser le CAPTCHA avec un programme informatique.
Un CAPTCHA a généralement une zone de texte directement en dessous où l'utilisateur doit remplir le texte qu'il voit. Dans ce cas, "sclt ..was here".

En octobre 2013, la société d'intelligence artificielle Vicarious a affirmé avoir développé un algorithme générique de résolution de CAPTCHA capable de résoudre les CAPTCHA modernes avec des taux de reconnaissance de caractères allant jusqu'à 90 %. Cependant, Luis von Ahn , un pionnier des premiers CAPTCHA et fondateur de reCAPTCHA, a exprimé son scepticisme, déclarant : « C'est difficile pour moi d'être impressionné puisque je les vois tous les quelques mois. » Il a souligné que 50 réclamations similaires à celle de Vicarious avaient été faites depuis 2003.

En août 2014, lors de la conférence Usenix WoOT, Bursztein et al. a présenté le premier algorithme générique de résolution de CAPTCHA basé sur l'apprentissage par renforcement et a démontré son efficacité par rapport à de nombreux schémas CAPTCHA populaires. Ils ont conclu que les systèmes CAPTCHA basés sur la distorsion du texte devraient être considérés comme peu sûrs à l'avenir.

En octobre 2018 lors de la conférence ACM CCS'18, Ye et al. a présenté une attaque basée sur l'apprentissage en profondeur qui pourrait résoudre avec succès les 11 schémas de captcha de texte utilisés par le top 50 des sites Web les plus populaires en 2018 avec un taux de réussite élevé. Leur travail montre qu'un solveur CAPTCHA efficace peut être formé en utilisant aussi peu que 500 CAPTCHA réels, montrant qu'il est possible de lancer rapidement une attaque d'un nouveau schéma de texte CAPTCHA.

Travail humain bon marché ou involontaire

Il est possible de subvertir les CAPTCHA en les relayant à un atelier de misère d'opérateurs humains qui sont employés pour décoder les CAPTCHA. Un document de 2005 d'un groupe de travail du W3C a déclaré qu'un tel opérateur pourrait vérifier des centaines par heure. En 2010, l' Université de Californie à San Diego a mené une étude à grande échelle sur les fermes CAPTCHA et a découvert que le prix de vente au détail pour résoudre un million de CAPTCHA était aussi bas que 1 000 $.

Une autre technique qui a été décrite consiste à utiliser un script pour republier le CAPTCHA du site cible en tant que CAPTCHA sur un site appartenant à l'attaquant, que des humains sans méfiance visitent et résolvent correctement en peu de temps pour que le script puisse l'utiliser. Cette technique est susceptible d'être économiquement irréalisable pour la plupart des attaquants en raison du coût d'attirer suffisamment d'utilisateurs et d'exploiter un site populaire.

Externalisation vers des services payants

Il existe plusieurs sociétés Internet telles que 2Captcha et DeathByCaptcha qui offrent des services de résolution de CAPTCHA soutenus par des humains et des machines pour aussi peu que 0,50 USD pour 1 000 CAPTCHA résolus. Ces services offrent des API et des bibliothèques qui permettent aux utilisateurs d'intégrer le contournement du CAPTCHA dans les outils que les CAPTCHA ont été conçus pour bloquer en premier lieu.

Implémentation non sécurisée

Howard Yeend a identifié deux problèmes de mise en œuvre avec des systèmes CAPTCHA mal conçus :

  • Certains systèmes de protection CAPTCHA peuvent être contournés sans utiliser l' OCR simplement en réutilisant l'ID de session d'une image CAPTCHA connue
  • Les CAPTCHA résidant sur des serveurs partagés présentent également un problème ; un problème de sécurité sur un autre hôte virtuel peut rendre vulnérable le site de l'émetteur CAPTCHA

Parfois, si une partie du logiciel générant le CAPTCHA est côté client (la validation est effectuée sur un serveur mais le texte que l'utilisateur doit identifier est rendu côté client), alors les utilisateurs peuvent modifier le client pour afficher l'un -texte rendu. Certains systèmes CAPTCHA utilisent des hachages MD5 stockés côté client, ce qui peut rendre le CAPTCHA vulnérable à une attaque par force brute .

Attaques notables

Certaines attaques notables contre divers schémas CAPTCHA incluent :

  • Mori et al. a publié un article dans IEEE CVPR'03 détaillant une méthode pour vaincre l'un des CAPTCHA les plus populaires, EZ-Gimpy, qui a été testé comme étant précis à 92% pour le vaincre. Il a également été démontré que la même méthode déjouait le programme Gimpy plus complexe et moins largement déployé dans 33 % des cas. Cependant, l'existence d'implémentations de leur algorithme en usage réel est indéterminée à l'heure actuelle.
  • PWNtcha a fait des progrès significatifs en détruisant les CAPTCHA couramment utilisés, ce qui a contribué à une migration générale vers des CAPTCHA plus sophistiqués.
  • Podec, un cheval de Troie découvert par la société de sécurité Kaspersky, transmet les requêtes CAPTCHA à un service de traduction humaine en ligne qui convertit l'image en texte, trompant ainsi le système. Podec cible les appareils mobiles Android.

Schémas CAPTCHA alternatifs

Avec la démonstration que les CAPTCHA basés sur la distorsion du texte sont vulnérables aux attaques basées sur l'apprentissage automatique, certains chercheurs ont proposé des alternatives, notamment les CAPTCHA de reconnaissance d'images qui obligent les utilisateurs à identifier des objets simples dans les images présentées. L'argument en faveur de ces schémas est que des tâches telles que la reconnaissance d'objets sont généralement plus complexes à effectuer que la reconnaissance de texte et devraient donc être plus résistantes aux attaques basées sur l'apprentissage automatique. Voici quelques-uns des schémas CAPTCHA alternatifs notables :

  • Chew et al. ont publié leurs travaux lors de la 7e Conférence internationale sur la sécurité de l'information, ISC'04, proposant trois versions différentes de CAPTCHA de reconnaissance d'images et validant la proposition avec des études d'utilisateurs. Il est suggéré que l'une des versions, l'anomalie CAPTCHA, est la meilleure avec 100% des utilisateurs humains pouvant passer une anomalie CAPTCHA avec au moins 90% de probabilité en 42 secondes.
  • Datta et al. ont publié leur article dans la conférence ACM Multimedia '05, intitulé IMAGINATION (IMAGE Generation for INternet AuthenticaTION), proposant une méthode systématique de reconnaissance d'images CAPTCHA. Les images sont déformées de telle manière que les approches de reconnaissance d'images de pointe (qui sont des technologies d'attaque potentielles) ne parviennent pas à les reconnaître.
  • Microsoft (Jeremy Elson, John R. Douceur, Jon Howell et Jared Saul) prétend avoir développé la reconnaissance d'images d'espèces animales pour restreindre l'accès (ASIRRA) qui demande aux utilisateurs de distinguer les chats des chiens. Microsoft avait une version bêta de ceci pour les sites Web à utiliser. Ils affirment que « Asirra est facile pour les utilisateurs ; il peut être résolu par les humains 99,6 % du temps en moins de 30 secondes. Pour l'anecdote, les utilisateurs semblaient trouver l'expérience d'utiliser Asirra beaucoup plus agréable qu'un CAPTCHA textuel. » Cette solution a été décrite dans un article publié en 2007 dans les Actes de la 14e conférence ACM sur la sécurité informatique et des communications (CCS). Cependant, ce projet a été clôturé en octobre 2014 et n'est plus disponible.

Voir également

Les références

Autres références

Liens externes