Comment fonctionne un solveur de captcha par IA : modèles, jetons et limites
Un solveur de captcha par IA est un logiciel qui utilise des modèles de machine learning pour répondre à un captcha à votre place. Il fonctionne mieux sur les défis dont la réponse peut être lue dans le contenu, comme des caractères déformés ou une grille d'images. Pour les widgets à jeton, le travail du modèle consiste à produire une réponse que le serveur du site accepte, ce qui est un problème différent. Ce guide explique ces deux cas, les limites de chacun, et ce que vous recevez réellement d'un service de résolution.
Ce guide décrit des techniques générales. Il ne détaille pas le fonctionnement interne d'un service particulier. Ce qui compte pour vous en tant que développeur, c'est le contrat : vous envoyez les détails d'un captcha et vous recevez un jeton en retour.
Trois familles de captchas
La plupart des captchas appartiennent à l'une de trois familles, et l'IA les traite chacune différemment.
Défis de contenu. Le visiteur lit ou identifie quelque chose : des caractères déformés, une série de numéros de rue, des feux de signalisation dans une grille, un objet tourné. La bonne réponse se trouve dans l'image ou l'audio lui-même. C'est le domaine où le machine learning est le plus performant.
Scoring comportemental. Il peut n'y avoir aucun défi visible. Le site observe la manière dont le navigateur se comporte, examine l'historique des requêtes et attribue un score au visiteur. reCAPTCHA v3 fonctionne ainsi, et renvoie un nombre plutôt qu'une énigme. Un modèle ne peut pas simplement « lire » la réponse ici, car il n'y a pas de réponse à lire. La question est de savoir si les signaux paraissent assez humains.
Widgets à jeton. Un widget s'exécute dans la page, effectue ses vérifications et écrit un jeton dans un champ de formulaire caché. Le backend du site vérifie ensuite ce jeton auprès du fournisseur. PopularCaptcha fonctionne ainsi, de même que reCAPTCHA v2 et Cloudflare Turnstile.
Comment les modèles traitent les défis de contenu
Pour le texte déformé, l'approche standard est un modèle de reconnaissance optique de caractères (OCR). Un réseau convolutif, ou un modèle de vision basé sur des transformers, lit l'image et produit une suite de caractères. L'entraînement utilise de grands ensembles de captchas générés dont la réponse est connue, afin que le modèle apprenne les déformations courantes : distorsions, lignes de bruit, caractères qui se chevauchent et texture de fond.
Pour les grilles d'images, la tâche est une classification. Le modèle examine chaque case et décide si elle contient l'objet demandé. Les cas difficiles sont les objets partiellement cachés, situés au bord d'une case, ou ambigus, comme un bus qui sort presque entièrement du cadre. La précision y est plus faible, et un bon solveur doit décider quand deviner et quand demander un autre tour.
Les captchas audio utilisent la reconnaissance vocale. Le modèle transcrit l'extrait, et la réponse est la transcription. Le bruit de fond et les distorsions volontaires sont les principales difficultés.
Les défis de type puzzle, comme faire pivoter une image ou glisser une pièce à sa place, demandent un autre type de modèle. Le modèle estime un angle ou une position à partir de l'image, puis produit le glisser-déposer ou le clic correspondant.
Comment les modèles traitent le scoring et les jetons
Le scoring comportemental et les widgets à jeton sont plus difficiles à résoudre en lisant la page. Les vérifications du fournisseur s'exécutent dans le navigateur du visiteur, et leur résultat dépend de signaux comme l'environnement du navigateur, le rythme des événements de saisie et l'historique de la session. Le solveur ne peut pas voir le score ni les signaux avec un niveau de détail utile depuis l'extérieur.
Pour ces cas, l'approche retenue est un solveur qui renvoie la réponse attendue par le fournisseur, grâce à un pipeline conçu pour produire des jetons valides. De votre côté, la propriété importante est simple : vous obtenez un jeton ou une erreur, et c'est le site qui vérifie le jeton.
C'est pourquoi l'API Scarnox est conçue ainsi. Vous envoyez le type de tâche, la sitekey et l'URL de la page, et vous recevez un jeton dans le champ solution :
{"errorId": 0, "solution": {"token": "..."}, "cost": ...}
Le jeton est placé dans le champ de formulaire attendu par le site, et il expire au bout d'environ deux minutes. Le guide de l'API solveur de captcha détaille la requête complète.
Où l'IA aide et où elle s'arrête
Les solveurs IA sont efficaces pour :
- lire de façon constante des caractères déformés, une fois réglés pour la famille de captcha visée ;
- classer des grilles d'images avec une grande précision sur des exemples clairs ;
- répondre assez vite pour une requête synchrone ;
- échouer sans vous coûter quoi que ce soit, si le solveur est conçu pour ne pas facturer les résolutions échouées.
Ils sont moins performants pour :
- les puzzles dont le design change souvent, car un modèle entraîné sur la version du mois dernier peut ne pas se transposer ;
- les vérifications comportementales, où le résultat dépend autant de l'environnement d'exécution que de la réponse ;
- tout défi qui exige un jugement humain sur le contenu, comme une question de sens ou de contexte.
Il existe aussi une limite pratique qu'aucun modèle ne supprime. Un captcha est une barrière délibérée, et les éditeurs mettent leurs défis à jour. Un solveur qui fonctionne aujourd'hui peut échouer le mois prochain. Il faut donc surveiller les résultats du solveur et ne pas supposer qu'ils resteront valables.
Choisir un solveur
Quatre questions vous aident à évaluer n'importe quel service de résolution :
- Quels types de captcha prend-il en charge aujourd'hui, par opposition à ceux qui sont seulement prévus ?
- Combien coûte une résolution échouée ? Un solveur qui facture les échecs rend les nouvelles tentatives coûteuses.
- Comment réagit-il en cas de délai dépassé ou de réponse lente ? Votre code a besoin d'une erreur claire pour agir.
- Que devez-vous modifier dans votre code lorsque le captcha change ? Moins il y a de modifications, mieux c'est.
Scarnox prend actuellement en charge PopularCaptcha, sans proxy, en production. Les autres types arrivent bientôt, et le guide des types de captcha indique le statut de chacun.