Cómo resuelve captchas una IA: modelos, tokens y límites
Un solver de captcha con IA es un software que usa modelos de aprendizaje automático para responder un captcha en tu nombre. Funciona mejor en desafíos cuya respuesta se puede leer del propio contenido, como texto distorsionado o una cuadrícula de imágenes. En los widgets basados en token, el trabajo del modelo es producir una respuesta que acepte el servidor del sitio, y eso es un problema distinto. Esta guía explica los dos casos, dónde están los límites y qué recibes realmente de un servicio solver.
Esta guía describe técnicas generales. No describe los detalles internos de ningún servicio concreto. Lo que importa para ti como desarrollador es el contrato: envías los datos de un captcha y recibes de vuelta un token.
Tres familias de captcha
La mayoría de los captchas pertenecen a una de tres familias, y la IA trata cada una de forma distinta.
Desafíos de contenido. El visitante lee o identifica algo: caracteres distorsionados, un conjunto de números de calle, semáforos en una cuadrícula, un objeto girado. La respuesta correcta está en la propia imagen o audio. Es el área donde el aprendizaje automático es más fuerte.
Puntuación de comportamiento. Puede que no haya ningún desafío visible. El sitio observa cómo se comporta el navegador, analiza el historial de peticiones y puntúa al visitante. reCAPTCHA v3 funciona así, y devuelve un número en lugar de un rompecabezas. Un modelo no puede simplemente "leer" la respuesta aquí, porque no hay respuesta que leer. La pregunta es si las señales parecen lo bastante humanas.
Widgets basados en token. Un widget se ejecuta en la página, hace sus comprobaciones y escribe un token en un campo oculto del formulario. Después, el backend del sitio verifica el token con el proveedor. PopularCaptcha funciona así, y también reCAPTCHA v2 y Cloudflare Turnstile.
Cómo manejan los modelos los desafíos de contenido
Para el texto distorsionado, el enfoque estándar es un modelo de reconocimiento óptico de caracteres. Una red convolucional, o un modelo de visión basado en transformers, lee la imagen y produce una secuencia de caracteres. El entrenamiento usa grandes conjuntos de captchas generados con respuestas conocidas, de modo que el modelo aprende las distorsiones habituales: deformaciones, líneas de ruido, glifos superpuestos y texturas de fondo.
Para las cuadrículas de imágenes, la tarea es de clasificación. El modelo mira cada casilla y decide si contiene el objeto que pide el desafío. Los casos difíciles son los objetos parcialmente ocultos, los que están en el borde de una casilla o los ambiguos, como un autobús que queda casi fuera del encuadre. La precisión en esos casos es menor, y un buen solver tiene que decidir cuándo adivinar y cuándo pedir otra ronda.
Los desafíos de audio usan reconocimiento de voz. El modelo transcribe el clip, y la respuesta es la transcripción. Las principales dificultades son el ruido de fondo y la distorsión deliberada.
Los desafíos de puzle, como girar una imagen o deslizar una pieza a su sitio, necesitan un tipo de modelo diferente. El modelo estima un ángulo o una posición a partir de la imagen y después produce el arrastre o el clic que corresponde.
Cómo manejan los modelos la puntuación y los tokens
La puntuación de comportamiento y los widgets de token son más difíciles de resolver leyendo la página. Las comprobaciones del proveedor se ejecutan en el navegador del visitante, y su resultado depende de señales como el entorno del navegador, el momento de los eventos de entrada y el historial de la sesión. El solver no puede ver la puntuación ni las señales con un detalle útil desde fuera.
En estos casos, el enfoque que funciona es un solver que devuelve la respuesta que espera el proveedor, usando una canalización diseñada para producir tokens válidos. Desde tu lado, la propiedad importante es simple: obtienes un token o un error, y el sitio comprueba el token.
Por eso la API de Scarnox tiene la forma que tiene. Envías el tipo de tarea, la sitekey y la URL de la página, y recibes un token en el campo solution:
{"errorId": 0, "solution": {"token": "..."}, "cost": ...}
El token va en el campo del formulario que espera el sitio, y caduca a los dos minutos aproximadamente. La guía de la API del solver de captcha cubre la petición completa.
Dónde ayuda la IA y dónde se detiene
Los solvers con IA son buenos en:
- leer texto distorsionado de forma consistente, una vez ajustados para la familia de captcha;
- clasificar cuadrículas de imágenes con alta precisión en ejemplos claros;
- responder con la rapidez suficiente para una petición síncrona;
- fallar de una forma que no te cuesta nada, si el solver está diseñado en torno a los intentos fallidos gratuitos.
Son más débiles en:
- puzles que cambian de diseño con frecuencia, porque un modelo entrenado con la versión del mes pasado puede no funcionar con la nueva;
- comprobaciones de comportamiento, donde el resultado depende tanto del entorno en el que ejecutas como de la respuesta;
- cualquier desafío que requiera el juicio de una persona sobre el contenido, como una pregunta sobre el significado o el contexto.
Hay también un límite práctico que ningún modelo elimina. Un captcha es una barrera deliberada, y los proveedores actualizan sus desafíos. Un solver que funciona hoy puede fallar el próximo mes, así que debes tratar la salida del solver como algo que monitorizar, no como algo que dar por hecho que seguirá funcionando.
Cómo elegir un solver
Cuatro preguntas te ayudan a evaluar cualquier servicio solver:
- ¿Qué tipos de captcha soporta hoy, en lugar de tenerlos en la hoja de ruta?
- ¿Cuánto te cuesta un intento fallido? Un solver que cobra por los fallos hace caros los reintentos.
- ¿Cómo se comporta ante un timeout o una respuesta lenta? Tu código necesita un error claro en el que basarse.
- ¿Qué tienes que cambiar en tu código cuando cambia el captcha? Cuanto menos, mejor.
Scarnox soporta actualmente PopularCaptcha, sin proxy, en directo. Otros tipos llegarán pronto, y la guía de tipos de captcha explica el estado de cada uno.