« 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).
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.
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.
Il y a plusieurs approches pour mettre en échec un captcha :
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 »).
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.
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 :
Le reCAPTCHA propose une approche semblable.