Captcha

Un article de Wikipédia, l'encyclopédie libre.

Ce CAPTCHA de « smwm » empêche son interprétation par un ordinateur en modifiant la forme des lettres et en ajoutant un dégradé de couleur en fond.
Ce CAPTCHA de « smwm » empêche son interprétation par un ordinateur en modifiant la forme des lettres et en ajoutant un dégradé de couleur en fond.

Un Captcha est une forme de test de Turing permettant de différencier de manière automatisée un utilisateur humain d'un ordinateur.

Parce que le test est réalisé par un ordinateur, en opposition avec les tests de Turing standard réalisés par des humains, un Captcha est souvent décrit comme un test de Turing inversé. Ce terme est néanmoins ambigu parce qu’il pourrait aussi signifier que les participants essaient de prouver qu'ils sont des ordinateurs.

Sommaire

[modifier] Applications

Ce test est utilisé sur Internet dans les formulaires pour se prémunir contre les soumissions automatisées et intensives réalisées par des robots malveillants.

La vérification utilise la capacité d'analyse d'image ou de son de l'être humain. Un Captcha usuel requiert ainsi que l'utilisateur tape les lettres et les chiffres visibles sur une image distordue qui apparait à l'écran. Certains sites Web préfèrent afficher une image qui contient une question mathématique.

Ils sont utilisés :

  • contre le spam :
    • lors de l'inscription à des webmails gratuits (dont les comptes pourraient être utilisés par la suite pour l'envoi de courriers non sollicités),
    • lors de la soumission de messages dans des forums de discussion et des blogs (qui pourraient permettre de faire du spamdexing), etc. ;
  • contre l'extraction automatisée de bases de données ;
  • contre les tentatives d'attaque par force brute ;
  • pour la participation à des sondages (dont les résultats pourraient être faussés par des votes automatisés).

[modifier] À propos du nom

« Captcha » est l'acronyme de l'anglais « Completely Automated Public Turing test to Tell Computers and Humans Apart », soit en français, « test public de Turing complètement automatique ayant pour but de différencier les humains des ordinateurs ». Ce terme, qui est une marque déposée par l'université Carnegie Mellon, a été inventé en 2000 par Luis von Ahn, Manuel Blum et Nicholas J. Hopper de cette université, et par John Langford d'IBM.

[modifier] Historique

Dès le début d'Internet, les utilisateurs ont toujours voulu rendre le texte illisible par les ordinateurs. Les premiers furent les hackers, postant sur des sujets sensibles dans des forums en ligne, qui étaient automatiquement surveillés avec des mots-clefs. Pour contourner ces filtres, ces hackers ont commencé à remplacer les mots par des caractères visuellement ressemblants. Par exemple, HELLO pouvait être remplacé par |-|3|_|_() ou )-(3££0, ainsi qu'une multitude d'autres variantes numériques. Ainsi les filtres à mots-clefs ne pouvaient évidemment pas tous les détecter. Ce procédé fut plus tard connu sous le nom de "13375p34k" (leetspeak).

La première réflexion sur la création de tests automatiques qui pourraient distinguer les humains des ordinateurs dans le but de contrôler l'accès aux services web est apparue dans un manuscrit de Moni Naor de l'institut de science de Weizmann, daté de 1996, et intitulé Verification of a human in the loop, or Identification via the Turing Test. Des Captcha primitifs semblent avoir été développés plus tard, en 1997 chez AltaVista par Andrei Broder et ses collègues dans le but d'empêcher des robots d'ajouter des sites à leur moteur de recherche.

En recherchant un moyen de rendre leurs images résistantes à des attaques de logiciels de reconnaissance de caractères, l'équipe a cherché dans le manuel de leur numériseur de marque Brother, qui donnait des recommandations pour améliorer les performances de la reconnaissance de caractères (types d'écritures similaires, fond homogène…). L'équipe conçut des puzzles en essayant de simuler ce qui pourrait causer une mauvaise reconnaissance automatique de caractères. En 2000, von Ahn et Blum développèrent et publièrent la notion de Captcha, qui comprenait tout programme qui pouvait différencier un humain d'un ordinateur. Ils inventèrent de multiples exemples de Captcha, dont les premiers Captcha qui furent largement utilisés (par Yahoo! notamment).

[modifier] Caractéristiques

Les Captchas sont, par définition, entièrement automatisés, ne nécessitant qu'une petite intervention humaine lors de l'utilisation du test. Ceci présente donc des bénéfices évidents au niveau des coûts et performances.

L'algorithme utilisé pour créer un Captcha est souvent public, bien qu'il puisse être breveté. Ceci est fait dans le but de démontrer que casser ce type de test nécessite la résolution d'un problème difficile dans le domaine de l'intelligence artificielle, plutôt que simplement la découverte des secrets de l'algorithme, qui pourraient être obtenus par décompilation ou autres moyens.

[modifier] Accessibilité

Les tests de Captcha basés sur une lecture de texte - ou toute autre tâche de perception visuelle - rendent impossible l'accès aux ressources protégées pour des personnes déficientes visuelles. Néanmoins, le Captcha n'a pas forcément besoin d'être visuel. N'importe quel problème d'intelligence artificielle, comme la reconnaissance vocale, peut être utilisé comme base pour un test de Captcha. Certaines implémentations de Captchas permettent aux utilisateurs d'opter pour un Captcha audio.

Le développement des Captchas audio semble être en retard par rapport aux tests visuels. D'autres types de tests, comme ceux qui nécessitent une compréhension de texte (par exemple, un puzzle logique, des questions, ou instructions pour créer un mot de passe) peuvent aussi constituer des méthodes utilisables dans le cadre d'un Captcha. Encore une fois, il n'y a que peu d'études concernant leur résistance face aux contre-mesures.

Quelques tests intéressants apparurent avec l'idée de la reconnaissance d'images. KittenAuth[1] est un test de ce type, qui demande à l'utilisateur de reconnaître un animal (des chatons) dans une série de photographies de différentes espèces (dauphins, chiots, renards, etc.)

Pour les personnes déficientes visuelles (comme les utilisateurs aveugles, ou ayant des difficultés à la perception des couleurs), les Captchas visuels présentent de sérieux problèmes. Du fait que les Captchas sont conçus pour n'être pas lus par les machines, les outils courants d'aide comme les lecteurs d'écran ne peuvent pas les interpréter. Du fait que certains sites peuvent utiliser les tests de Captcha dès le processus d'inscription initial, ou même à chaque connexion, ces derniers peuvent complètement bloquer l'accès. Dans certaines juridictions, les propriétaires de sites peuvent devenir la cible de litiges s'ils utilisent des Captchas qui discriminent les gens ayant certains handicaps. Dans d'autres cas, ceux qui ont des difficultés visuelles peuvent choisir d'identifier un mot qui leur est lu.

Bien que fournir un Captcha audio permette aux utilisateurs aveugles de lire le texte, ce procédé exclut toujours les personnes soufrant à la fois d’un déficit visuel et auditif[2].

L'utilisation de Captcha empêche ainsi un grand nombre d'individus d'utiliser tous les services basés sur Internet comme PayPal, Gmail, Orkut, Yahoo!, ainsi que de nombreux forums et systèmes de blogs…

Ceci étant dit, même pour des personnes parfaitement voyantes, les nouvelles générations de Captcha, conçues pour résister aux logiciels sophistiqués de reconnaissance, peuvent devenir pratiquement impossibles à lire.

Un rapport du W3C a souligné l'inaccessibilité de certains tests visuels anti-robots.[réf. nécessaire]

[modifier] Contournement

Il y a plusieurs approches pour mettre en échec un Captcha :

  • on peut utiliser une main-d’œuvre humaine pour les reconnaître ;
  • exploiter les bugs dans les implémentations qui permettent à l'attaquant de passer complètement outre le Captcha ;
  • améliorer les logiciels de reconnaissance de caractères.

[modifier] Main-d’œuvre humaine

Il est possible de passer au travers du test de Captcha en utilisant des opérateurs humains employés à décoder les Captcha. Une publication du W3C indique qu'un tel opérateur « pourrait aisément vérifier des centaines de Captchas par heure ». Néanmoins, cette solution n'est pas forcément économiquement viable. Des spammeurs ont cependant réussi à contourner la difficulté en créant des sites internet qui demandent à ce que l'utilisateur passe un test de Captcha pour y accéder, ce test étant en fait celui requis par un autre site, tel celui de Yahoo pour valider la création d'une nouvelle adresse mail. L'utilisateur du premier site contribue ainsi, à son insu, aux actes malveillants de ces derniers. Une contre-mesure existe : ajouter, dans le captcha, une expression identifiant clairement son émetteur (telle que « yahoo.fr »).

[modifier] Bogues de conception

Certains systèmes de protection par Captcha mal conçus peuvent parfois être forcés sans utiliser de logiciels de reconnaissance de caractères, mais simplement en réutilisant l'ID d'une session d'une image connue de Captcha. Parfois, si une partie du logiciel qui génère le Captcha est située côté client (la validation est faite sur un serveur, mais le texte que l'utilisateur doit saisir pour s'identifier est généré côté client), alors les utilisateurs peuvent modifier le logiciel client pour afficher le texte de Captcha non déformé par exemple.

[modifier] Reconnaissance automatique de caractères

Bien que les Captcha fussent initialement conçus pour contrer les logiciels de reconnaissance de caractères standards utilisés pour la numérisation par balayage de documents, plusieurs projets de recherche ont prouvé qu'il est possible de décrypter un grand nombre de Captchas avec des programmes spécifiquement adaptés à un type de Captcha. Pour des Captchas avec des lettres déformées, l'approche adaptée est constituée d'une manière générale par les étapes suivantes :

  1. suppression du fond de l'image, par exemple avec des filtres de couleurs et la détection de lignes fines ;
  2. segmentation, c'est-à-dire découpe de l'image en plusieurs segments contenant une seule lettre ;
  3. identification de la lettre contenue dans chaque segment.

[modifier] Notes et références

  1. Test de KittenAuth.
  2. D'après sense.org.uk, environ 4 % des gens au Royaume-Uni ont de sérieuses déficiences visuelles et auditives. D'après le Consortium national d'assistance technique pour les enfants et jeunes adultes aveugles, sourds et muets (NTAC), il y avait 9 516 enfants aveugles, sourds et muets aux États-Unis en 2004. L'université Gallaudet cite une estimation de 1993 qui donne 35 000 adultes entièrement aveugles, sourds et muets aux États-Unis. L'estimation de la population aveugle, sourde et muette dépend du degré de handicap retenu dans les définitions.

[modifier] Voir aussi

Pages sur ce thème sur les projets Wikimedia :

[modifier] Articles connexes

[modifier] Liens externes