L’une des problématiques les plus courantes qu’ont à résoudre les développeurs, est de déterminer lors d’une session sur leurs sites Internet, si les utilisateurs connectés sont des êtres humains ou des robots. La réponse est souvent fournie par un CAPTCHA (Completely Automated Public Turing Test to tell Computers and Humans Apart), qui demande à l’usager d’effectuer une action ou de répondre à une question. Depuis quelques mois, Google cherche à rendre invisible cette opération, sans pour autant la supprimer.

Alan Turing avait imaginé en 1950 un test qui permettait de faire la différence entre un robot et un être humain. Mais il a fallu attendre 2014 –et encore c’est contesté – pour que ce test soit passé avec succès par un programme. Ce qui montre toute la difficulté qu’il y a de simuler le moindre comportement cognitif d’un humain, fut-il celui d’un joueur de soccer…
Le test de Turing

Alan Turing avait imaginé en 1950 un test censé permettre à un « juge » d’estimer, par un jeu de questions/réponses, s’il avait affaire à un robot ou à un être humain. Et Turing, génial mathématicien britannique, à qui la planète finira par rendre l’hommage qu’il mérite, avait placé la barre très haute : « si en 5 minutes de questions/réponses, le robot arrive à tromper 30 % des juges placés en face de lui, il aura passé le test avec succès ».

Tellement haute, que ce n’est qu’en 2014 qu’une équipe de développeurs russes a conçu un programme d’Intelligence Artificielle, un personnage virtuel, dénommé Eugène Goostman, qui a réussi à se faire passer pour un garçon de 13 ans, lors d’un test organisé par l’université anglaise de Reading. Au moins pour 33 % des interlocuteurs. Evénement considéré par certains comme une grande date dans l’histoire de l’IA, mais que d’autres minimisent, dans la mesure où Kevin Warwick, professeur à Reading, à l’origine de l’opération, est considéré par beaucoup comme un joyeux fantaisiste, pour s’être auto-proclamé le premier « Cyborg » de l’histoire en 2000 et s’être fait implanter un microprocesseur dans le bras.

Le système GOTCHA de Carnegie Mellon remet en cause le principe des CAPTCHA, qu’il remplace par une série de tâches d’encres symétriques, décrites par des phrases d’identification.
Remise en cause des CAPTCHA

Le mécanisme de CAPTCHA a pour objet de répondre à la même question. Etes-vous un robot ?

Au début des années 2000, les CAPTCHAs étaient des suites de chiffres et de lettres déformés, que l’internaute était invité à reconnaître et à reproduire dans une case.

Des CAPTCHA dérivés sont ensuite apparus, la désignation parmi une série de photos, celles qui concernaient Madonna ou une pompe à essence, par exemple, le CAPTCHA estimant que si vous êtes capables de faire la différence entre Madonna et une pompe à essence, le monde vous appartient, car il est probable que vous avez plus de 3 neurones dans le cerveau.

Nous sommes tous passés par ces processus et nous savons bien que, malgré notre QI (Quotient Intellectuel) « élevé », nous nous sommes souvent trompés, notre interprétation n’étant pas toujours la bonne.

De plus, le mécanisme a été de plus en plus mis en défaut par des assistants (bots) très performants, qui ont réussi à leurrer les sites sur leur identité véritable, humain ou robot.

D’où certaines initiatives, telle que celle de chercheurs de l’Université Carnegie Mellon en 2013, qui a consisté à demander aux utilisateurs de se plier au test de Rorschach, bien connu en psychiatrie. A savoir préciser ce qu’ils reconnaissent quand on leur soumet des tâches d’encre symétriques. Identification qu’ils sont invités à exprimer par des phrases, dument enregistrées, les images et les phrases étant ensuite mélangées, puis soumises lors d’une nouvelle session, l’usager étant invité à mettre la bonne phrase en face de la bonne image.

Ce test qui porte le nom de GOTCHA (Generating panOptic Turing Tests to Telle Computers and Humans Apart) a lui-aussi été fortement critiqué.

Tous ces systèmes ont d’ailleurs un défaut : ils sont agaçants. Tant il est vrai que nous demander de faire la différence entre une pompe à essence et Madonna, n’est pas la meilleure manière de rendre hommage à notre intelligence…

Avec reCAPTCHA, l’objectif de Google est de rendre le mécanisme de reconnaissance moins contraignant. Cette fois, le système s’exécute automatiquement en arrière-plan, en se fondant sur un certain nombre de critères, que Google n’a pas divulgués.
La position de Google

En 2009, Google avait racheté la Compagnie reCAPTCHA, qui avait fortement simplifié le processus de reconnaissance CAPTCHA, en le réduisant à une seule question/réponse. Système qui avait ensuite été intégré dans les sessions Google, jusqu’à récemment où il a été remplacé par un mécanisme moins intrusif, un reCAPTCHA « invisible ». Autrement dit qui existe toujours, mais qui ne passe plus par une question/réponse à laquelle l’usager doit se soumettre, mais s’exécute de manière transparente. Il s’agit toujours d’un programme qui affiche une boîte de dialogue, mais celui-ci collecte un certain nombre d’informations en arrière-plan, des données qu’il analyse, selon des méthodes dont Google dit qu’elles sont issues « de techniques avancées d’analyses de risques » et sur les interactions précédentes avec ce même utilisateur. Qui lui permettent de répondre avec un maximum de fiabilité.

ReCAPTCHA est proposé sous la forme d’une API, dont l’algorithme n’a pas été dévoilé, secret d’état, mais que l’on pourra implémenter comme une boîte noire dans nos applications.  On sait seulement qu’il se sert de l’adresse IP, des mouvements détectés de la souris, de la vitesse de saisie au clavier, etc, pour faire la fameuse distinction, chère à Alan Turing. En cas d’ambiguïté, un test  classique GAPCHA est proposé, mais uniquement pour lever le doute.

Les entreprises clientes vont pouvoir intégrer reCAPTCHA dans leurs applications et sites Internet, indépendamment de la nature de la machine cliente.

Il faudra que le développeur fasse l’acquisition d’un couple de clés de chiffrement, une clé de site et une clé secrète. La clé du site sera utilisée pour appeler le service reCAPTCHA sur le site, alors que la clé privée aura pour fonction d’autoriser la communication entre l’application en arrière-plan et le service reCAPTCHA chargé de l’authentification.

C’est évidemment dans le domaine des mobiles, que l’usage de reCAPTCHA sera le plus évident.