Ce CAPTCHA de "smwm" rend difficile son interprétation par un ordinateur, en modifiant la forme des lettres et en ajoutant un dégradé de couleur en fond. Ces procédés peuvent cependant compromettre la reconnaissance des caractères par un humain. |
Le terme CAPTCHA est une marque commerciale de l'université Carnegie-Mellon désignant une famille de tests de Turing permettant de différencier de manière automatisée un utilisateur humain d'un ordinateur.
C'est un test de défi-réponse utilisé en informatique, pour s'assurer qu'une réponse n'est pas générée par un ordinateur. L'acronyme « CAPTCHA » est basé sur le mot capture, et vient de l'anglais completely automated public Turing test to tell computers and humans apart1 (« Test de Turing public complètement automatisé afin de distinguer les ordinateurs des humains »).
Étant 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.
Histoire
Dès les débuts d'Internet, les utilisateurs ont voulu produire des textes que les ordinateurs ne puissent pas déchiffrer. Les premiers ont été les hackers, postant sur des sujets sensibles dans des forums en ligne, surveillés automatiquement grâce à des mots clefs. Pour contourner ces filtres, ils 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 pas tous les détecter. Ce procédé a plus tard été connu sous le nom de « 13375p34k » (leetspeak).
La première réflexion sur la création de tests automatiques qui pourraient discriminer 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 bots 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 parcouru le manuel de son 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 a donc conçu des casse-têtes en essayant de simuler ce qui pourrait causer une mauvaise reconnaissance automatique de caractères. En 2000, von Ahn et Blum ont développé et publié la notion de CAPTCHA, qui comprend tout programme qui peut différencier un humain d'un ordinateur. Ils en ont inventé de multiples exemples, dont les premiers ont largement été utilisés (par Yahoo! notamment).
Une compétition a commencé entre l'amélioration des robots lecteurs de CAPTCHA et le brouillage des CAPTCHA. Ainsi sont apparus des caractères de plus en plus déformés, l'usage de couleurs et des CAPTCHA animés (dont les caractères se déforment avec le temps).
Ces procédés posent néanmoins des problèmes d'accessibilités aux personnes ayant une vision déficiente. Pour remédier à ce problème, certains systèmes proposent de choisir entre identification graphique et sonore.
Afin de contourner les CAPTCHA, certaines sociétés engagent des humains pour décoder les tests. D'autres renvoient le CAPTCHA dans des logiciels permettant d'accéder par exemple à des images pornographiques, annulant ce faisant les coûts de main-d’œuvre et permettant à des robots, grâce à ces réponses, d'envoyer des spams à peu de frais.
Dans les années 2010, de nouvelles formes de CAPTCHA apparaissent, comme des puzzles (images découpées à rassembler dans le bon ordre). Elles sont par exemple utilisées dans le système de vérification de WeChat. Différents plugin de type puzzle sont disponibles pour les systèmes de gestion de contenu à l'instar de Captcha-garb pour Wordpress.
À propos du nom
« CAPTCHA » est un rétroacronyme : le mot se prononce comme capture en anglais américain et est censé être composé des initiales de 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. Le nom « captcha » peut également être interprété par capture character (caractères de capture).
Caractéristiques
Les CAPTCHA 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 des bénéfices au niveau des coûts et des 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 en faisant appel à des notions d'intelligence artificielle, plutôt que la découverte des secrets de l'algorithme, qui pourraient être obtenus par décompilation ou un autre moyen.
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 saisisse au clavier une courte séquence improbable d'une demi-douzaine de lettres et/ou de chiffres visibles sur une image distordue (voir illustration) qui apparaît à 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 référencement abusif), 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).