Captcha - Définition

Source: Wikipédia sous licence CC-BY-SA 3.0.
La liste des auteurs de cet article est disponible ici.

À propos du nom

« Captcha » est un rétro-acronyme : 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é comme "capture character" (capture de caractères).

Complexité

La complexité de certains types de ce système contribue à pénaliser l'expérience des internautes contraints d'essayer plusieurs fois des combinaisons possibles. En effet, certains captcha sont tellement déformés pour éviter une reconnaissance automatique que même les internautes ne peuvent les reconnaître. Pire, certain captchas sont plus facilement reconnus par les ordinateurs.

De plus, leur efficacité est contestée, et des captchas peuvent être reconnus en quelques secondes.

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 donc 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 de l'intelligence artificielle, plutôt que la découverte des secrets de l'algorithme, qui pourraient être obtenus par décompilation ou un autre moyen.

Contournement

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

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

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 captcha par heure ». Des entreprises de services indiennes sont spécialisées dans ce négoce. Des spammeurs ont 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 électronique. 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 »).

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.

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 captcha avec des programmes spécifiquement adaptés à un type de captcha. Pour des captcha 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.

Le reCAPTCHA propose une approche semblable.

Page générée en 0.091 seconde(s) - site hébergé chez Contabo
Ce site fait l'objet d'une déclaration à la CNIL sous le numéro de dossier 1037632
A propos - Informations légales
Version anglaise | Version allemande | Version espagnole | Version portugaise