Captcha désigne tout simplement une image représentant des lettres déformées dans le but de ne pas être reconnues par un OCR. Enfin ça c'est ma définition avec mes mots pour vous présenter la chose... regardons sur la toile les définitions que l'on peut trouver :

Premier réflexe : la Wikipédia où on peut y lire :

CAPTCHA est un acronyme pour « 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 », sigle déposé par l'université Carnegie Mellon. Ce terme a été inventé en 2000 par Luis von Ahn, Manuel Blum, et Nicholas J. Hopper de l'université Carnegie Mellon, et John Langford d'IBM.[1]

Ensuite... et bien rien, j'ai pas vraiment trouver d'autre référence en ligne sérieuse ou supplémentaire à ce que dit la Wikipédia, alors on va s'en contenter ;)

Déjà on voit que ma définition à moi sans être fausse est limitée, car en fait les fameuses images déformées que nous connaissons tous[2] ne sont en fait qu'une méthode parmi d'autres de réaliser un captcha. Disons que si elle est aussi répandu c'est que c'est la plus facile à mettre en oeuvre et qui pendant longtemps marchait assez bien...

Un captcha est donc un moyen évident permettant de distinguer l'homme de la machine... mais n'oublions pas que c'est l'homme qui créé la machine ;) et que ce que l'homme peut créer un autre peut le casser... pour les images il y a les OCR, ils deviennent quand même de plus en plus performant... et puis ce n'est pas tout, on a tendance nous tous bien voyant à utiliser en masse les images et donc notre sens de la vue. On en oubli presque nos autres sens...

Certes il est "difficile" d'exploiter le sens du goût, du toucher et de l'odorat sur nos PC actuels[3], mais celui de l'ouïe est tout de même bien réel, et je trouve ça personnellement très intéressant de comparer à quel point les constructeurs de PC et tout l'univers qui les entour oublient presque que nous avons des oreilles pour écouter... Certes des choses sont faites, avec l'expansion du home cinéma entre autre, nous voyons des enceintes à 3,4,5,6 voire même 7 voix. mais combien de jeux informatiques où de logiciels exploitent ceci ? Alors que les écrans et surtout les cartes graphiques et donc les graphismes 3D sont sans arrêt entrain d'évoluer, avec toujours plus d'effets et de réalisme, du côté du son je dirais que c'est le calme plat[4]. On ne peut pas dire en tout cas que ce soit l'argument commercial le plus mis en avant, et pourtant beaucoup d'ingénieurs et autres mordus du son en ont passés des heures dans leurs labo pour vous fournir un son de qualité, avec des effets vous immergeant dans un environnement sonore 3D, etc...

Je me rappel avoir lu il y a quelques années, une études sur les retards du son arrivant dans notre oreille et les décalages gauche droite, permettant de reproduire un effet 3D avec un simple casque stéréo classique. J'avais également vu un jour à la fnac un casque 3D qui avait deux écouteurs par oreille... Moi mon rêve lorsqu'il m'arrive de me détendre en jouant sur mon PC, ce serait d'avoir 8 enceintes plus un boomer, mais les 8 enceintes placées aux 8 arrêtes d'un cube dont je serais le centre, il faudrait bien sûr que le jeu suive, et là seulement je pense que je serais enfin dans un véritable environnement 3D voire 4D[5].

Seulement voilà, vous êtes assis en face d'un écran, et celui-ci ne bouge pas, et de façon pratique il est plus aisé de poser un écran sur un bureau que d'installer huit enceintes autour de vous, alors à quoi bon ? bah je suis pas d'accord, mais bon c'est pas moi tout seul que je vais faire bouger des choses, et puis je m'éloigne du sujet là....

En fait je ne me suis pas tant éloigné que ça du sujet, car si personnellement j'ai confondus dans ma tête avant de lire la Wikipédia un Anti-bot à base d'image déformée avec un captcha, c'est que le net nous inonde de cette solution parce que les inventeurs, d'autant plus en informatique, ont une fâcheuse tendance à travailler sur le visuel plus que sur l'auditif !!! Pourquoi Je pense que c'est une histoire de difficulté surtout pour l'écriture, il est certainement plus facile de générer des images que des sons, je veux dire écrire un A ou le prononcer. Pour l'homme, aucune différence ou presque[6], mais pour l'ordinateur?

Par exemple en PHP il n'y a ni extension ni script qui vous propose une liste de fonctions générant des sons à partir d'un texte. Alors que pour les images vous avez au moins GD ;)

J'ai tout de même découvert quelque chose d'intéressant du côté du son, la combinaison de PHP[7] et de Flite, un moteur de synthèse vocale. Flite est un programme écrit en C écrit à l'origine pour Linux[8] et qui permet de synthétiser une voix depuis une chaîne de caractère. Seulement il présente deux inconvénients majeur pour beaucoup, le premier il synthétise en anglais, ce qui pourra avoir des résultats étrange pour des mots français, et deuxièmement étant donné que c'est un logiciel et non un script, il demande une installation sur le serveur, et donc il n'est pas possible de l'utiliser pour tout ceux qui ont leur site chez un hébergeur mutualisé. Ces derniers permettant rarement d'installer des logiciels.

Cependant si vous êtes intéressé pour tester un captcha en PHP pour l'image couplé à Flite pour le son, je vous propose d'aller voir PhpCaptcha[9], une librairie en PHP permettant de générer un captcha visuel et audio.

Afin de finir le tour des captchas, il faut forcément parler accessibilité. Et oui, le sujet qui fâche... Je me rappel avoir discuter un long moment avec un client qui voulais un site tout en flash malgré les nombreux désavantage que j'essayais de lui faire comprendre, et il a finit par me répondre qu'il préférais atteindre des clients de qualité en petit nombre, que toucher beaucoup de monde avec un site moyen... no comment... son site actuellement ne peut pas être référencé, les polices ne peuvent pas être agrandis par le navigateur pour les personnes dont la vue baisse, et les lecteurs en braille n'en parlons pas... Pour les captchas, c'est la même chose !

Outre le fait que de nombreuses image sont parfois illisible, à tel point que certains développeurs se sentent obligé de préciser le nombre de lettre à lire, où ne tiennent pas compte de la casse, ce qui est une faille supplémentaire[10], une personne mal voyante aura du mal justement à comprendre le captcha visuel, et une personne avec un début de surdité où un équipement audio limité (comme c'est souvent le cas) comprendra difficilement le captcha sonore. Je n'argumenterais même pas les lecteurs en brailles pour les non voyants mis à part le fait que de plus en plus de forum mettent un captcha visuel pour l'inscription, ce qui fait que les mal et non voyants ne peuvent que lire les forums, et il leur est impossible de s'inscrire et donc d'écrire..., de mon point de vue c'est de la discrimination, seulement il est pas facile d'y faire face, mon propre forum n'est justement pas accessible, et je réfléchit au meilleur moyen de mettre en oeuvre ce genre d'accessibilité... d'où l'objet de cette rubrique anti-bot aidant ma réflexion...

Bon je ne m'étendrai pas plus longtemps sur l'accessibilité, ou plutôt l'inaccessibilité. Je vous propose de lire la traduction d'un article du W3C qui s'intitule justement : L'inaccessibilité des « CAPTCHA »

Bon je vais arrêter là ce très long article de présentation de captchas, en précisant simplement que si ma rubrique s'appelle anti-bot, c'est que c'est mon but recherché. En aucun cas je prend pour acquis que les captchas sont LA solution anti-bot, et j'aurais même tendance à dire que à la vue des problèmes qu'ils engendrent, et leur fiabilité contestable, les captchas ne sont certainement pas la meilleure solution pour un anti-bot efficace. J'affirmerais même qu'en fait les captchas, surtout visuel, sont le nouveau jouet des développeurs web depuis quelques années, et que c'est un faux prétexte pour s'amuser à faire de la génération d'image :)

Certes, ceci m'amuse également, c'est pour ça que je vais continuer de faire mumuse aussi, mais je vous promet d'autres articles et réflexions sur les anti-bots, autres que captcha visuel ;) mais c'est pas pour demain, laissez moi le temps d'y réfléchir, et de vous faire partager ensuite mes idées et/ou découvertes ;) Mais j'ai déjà tout pleins de trucs en tête......

Notes

[1] Source du 01/12/2006 : http://fr.wikipedia.org/wiki/Captcha

[2] Voir mon premier article sur les images Anti-bot si vous ne savez pas encore de quoi je parle ;)

[3] Bien que des choses existent déjà et sont commercialisées dans ces domaines

[4] Elle est facile je vous l'accorde :)

[5] La 4ème dimension étant le temps bien entendu :)

[6] A condition d'être ni sourd ni aveugle bien entendu ;)

[7] bien sûr, je parle de mon langage préféré comme toujours ;)

[8] mais qui devrait pouvoir être compiler sous win32 ou MacOSX, merci de faire part de vos découvertes à ce sujet ...

[9] Je n'ai pas encore eu l'occasion de le tester, faites nous part de votre expérience !

[10] Même s'il est vrai que ça facilite la tâche du visiteur...et du bot...