Publicité
Tech by VICE

Les CAPTCHA vivent leurs derniers instants de gloire

Un nouveau type de réseau de neurones parvient à cracker différents types de CAPTCHA avec une précision remarquable, en généralisant une forme à partir d'un petit nombre d'exemples.​

par Daniel Oberhaus
27 Octobre 2017, 1:54pm

Illustration de l'auteur.

À l'heure où tous les domaines de l'existence sont scrupuleusement automatisés, les humains sont, plus que jamais, en quête de caractéristiques qui les différencieraient fondamentalement de leurs doppelgängers artificiels. Même si les robots apprennent désormais à jouer au Go tout seuls, ils sont incapables d'écrire un livre, de faire l'amour, de devenir des citoyens à part entière ou d'apprécier la beauté naturelle d'un paysage... n'est-ce pas ? N'EST-CE PAS ?

C'est le cœur lourd que nous vous l'annonçons : l'IA réussit désormais à cracker efficacement un outil de distinction machines/humains largement répandu, le système CAPTCHA.

Les CAPTCHA sont ces espèces de puzzles extrêmement agaçants qui exigent de vous des prouesses absurdes – recopier un extrait de texte déformé, identifier une suite de chiffres ou cliquer sur des voitures, par exemple. Lorsque le puzzle est résolu, vous êtes en quelque sorte "certifié humain" et pourrez utiliser le service ou le site Web désiré protégé par CAPTCHA.

Selon une nouvelle étude publiée aujourd'hui dans la revue Science, une IA a réussi à résoudre des types de CAPTCHA sophistiqués avec une précision de 66,6%. À titre de comparaison, les humains résolvent le même type de CAPTCHA avec une précision de 87% (s'ils échouent parfois, c'est à cause des interprétations multiples que l'on peut faire de certains puzzles). Un CAPTCHA est considéré cassé si un bot est capable de le résoudre avec une précision de 1%.

Un exemple de reCAPTCHA. Image via fakecaptcha.com

Les CAPTCHA (Tests de Turing complètement automatisés et publics ayant pour but de différencier les humains des ordinateurs), ont été inventés à la fin des années 1990 afin de lutter contre la fraude et le spam des bots. L'idée à l'origine de ce système est qu'il existe des types de puzzles faciles à résoudre pour un humain, mais pas pour un ordinateur.

Même si les ordinateurs sont très bons en calcul, n'ont aucun mal à lire du texte brut et peuvent aisément identifier des objets sur des photos et des scènes en mouvement – dès lors que ces images sont déformées, ils se heurtent à un mur. En effet, même si une machine est capable de reconnaître la lettre "M" dans toutes les polices de caractères existantes après un entrainement adapté, elle demeurera incapable de reconnaître le "M" parmi les formes infinies qu'il peut revêtir lorsqu'il est déformé, suggéré ou encore tracé à la main.

La capacité à apprendre et à généraliser à partir d'un petit nombre d'exemples est l'une des capacités qui nous distinguent des IA ; c'est cette capacité nous permet de résoudre facilement les CAPTCHA.

Ou du moins, c'est ce que nous croyions jusqu'à présent. Comme indiqué dans l'article publié dans la revue Science, les chercheurs de Vicarious – une entreprise de développement d'IA financée par Zuckerberg et Bezos – ont développé un algorithme de vision par ordinateur probabiliste capable de comprendre et de réussir un test CAPTCHA, en généralisant une forme à partir d'un petit nombre d'exemples.

D'autres équipes de recherche se sont employées par le passé à entrainer des algorithmes de deep learning à casser des CAPTCHA, mais leur technique exigeait d'entrainer leur algo sur des millions et des millions d'exemplaires soigneusement étiquetés. De même, elle ne fonctionnait que sur certaines classes de CAPTCHA. L'IA de Vicarious, quant à elle, et capable de cracker une grande variété de CAPTCHA différents, avec une efficacité supérieure.

S'inspirant des "données expérimentales en neurosciences", les chercheurs du Vicarious ont élaboré un algorithme probabiliste appelé réseau cortical récursif (RCN). Celui-ci prend un CAPTCHA et le modélise sous forme d'une collection de formes et de textures basée sur un poignée d'images d'entrainement en texte clair.

D'autres réseaux de neurones sont capables de reconnaître des mots et des lettres sur un CAPTCHA après que ces mots et ces lettres ont été analysés et étiquetés par un humain sur des millions d'échantillons d'entraînement. Le réseau cortical récursif, quant à lui, travaille plus près de la façon dont un cerveau humain répond aux signaux visuels. Le RCN génère d'abord des modèles basés sur les contours et l'apparence de quelques lettres modèles non déformées (dans ce cas présent, avec une police de caractère dérivée de la police Georgia) et l'utilise ensuite pour déterminer de manière probabiliste la lettre qu'il est en train de regarder dans une phrase CAPTCHA déformée.

Comme les chercheurs l'expliquent dans l'article, un CAPTCHA est considéré comme cassé si une machine peut le résoudre avec une précision supérieure à 1%. Ils ont présenté à l'algorithme Vicarious une grande variété de styles de CAPTCHA différents, que celui-ci a cracké avec des taux de succès remarquablement élevés. Plus précisément, il a résolu les reCAPTCHAs avec une précision de 66,6% de précision, les BotDetect avec une précision de 64,4%, les Yahoo avec une précision de 57,4% et les Paypal avec une précision de 57,1%. Dans tous les cas, l'algo n'a disposé que "d'une petite quantité de données lors de son entraînement". Pour le cas reCAPTCHA, par exemple, l'algorithme a été formé sur cinq exemplaires de caractères non déformés seulement.

Pour fonctionner, la plupart des réseaux de neurones de pointe ont besoin de lots de données d'entrainement 50 000 fois plus gros que ceux qu'utilise Vicarious, et basés sur des chaînes CAPTCHA réelles, plutôt que sur des caractères propres. Les chercheurs ont utilisé un modèle de réseau de neurones différent pour atteindre un taux de précision de 89,9%, mais il a alors fallu 2,3 millions d'images d'entraînement pour qu'il atteigne cette performance. Or, le taux de précision a chuté lorsque de menus changements ont été apportés aux CAPTCHA, par exemple en augmentant légèrement l'espacement entre les lettres.

Le principal intérêt de ce nouvel algorithme, c'est qu'il propose une nouvelle approche : plutôt que d'entrainer un réseau de neurones à cracker des types de CAPTCHA spécifiques en lui faisant voir des millions d'échantillon dudit CAPTCHA, les chercheurs du projet Vicarious ont conçu un réseau de neurones capable de créer des modèles de caractères basés sur des formes et apparences générales, qu'il utilise ensuite pour "comprendre" le CAPTCHA.

Le succès des chercheurs signifie que nous devrons bientôt mettre au point des systèmes anti-bots plus robustes. Google utilisait depuis peu le reCAPTCHA audio, qui fonctionnait plutôt bien. Peu de temps après, une équipe d'informaticiens de l'Université du Maryland a créé l'unCaptcha, un algorithme capable de résoudre les reCAPTCHA audio en quelques secondes avec plus de 85% de précision.

Même si, dans un avenir proche, les CAPTCHA continueront d'être utilisés en première intention dans le cadre de la lutte anti-bots, ils ne peuvent plus garantir que l'ensemble des visiteurs d'un site Web sont bel et bien humains. D'ici peu, nous serons probablement soumis à un test de Voight-Kampff façon Blade Runner afin de nous connecter à notre compte Paypal.