CAPTCHA: La evolución de la tecnología para detectar bots
Al finalizar este tema
Comprenderás por qué existen los CAPTCHA, cómo han evolucionado desde la v1 hasta la v3 y qué opciones tienes al implementarlos.
Cuando los bots invaden el formulario de registro
Una tienda en línea lanzó una promoción: "cupón de 5.000 wones al registrarse". En solo 10 minutos, el número de usuarios registrados llegó a 30.000. Todos eran bots.
# Lo que hacen los botsfor i in range(30000): requests.post("https://shop.com/signup", data={ "email": f"bot{i}@fake.com", "password": "1234" })Llenar un formulario con datos y enviarlos requiere solo tres líneas de código. Se necesita un método para distinguir entre humanos y bots. Esto es el CAPTCHA (Completely Automated Public Turing test to tell Computers and Humans Apart).
Primera generación: texto distorsionado
Los CAPTCHA de la década de 2000 tenían este aspecto:
Lea e ingrese el texto dentro de la imagen distorsionada y con líneas
[xK9m2P] → El usuario escribePrincipio: Los humanos pueden leer letras distorsionadas, pero la tecnología OCR (reconocimiento óptico de caracteres) de la época tenía dificultades para hacerlo.
Problema: Con el avance de la IA, la precisión del OCR ha superado a la humana. Al distorsionar aún más las letras, se produce un fenómeno inverso: los bots pueden leerlas, pero los humanos no.
Segunda generación — "No soy un robot" (reCAPTCHA v2)
reCAPTCHA v2, creado por Google, consiste en una sola casilla de verificación:
☐ No soy un robotAl hacer clic en esto, esto es lo que sucede en segundo plano:
- Si la trayectoria del ratón parece humana (los bots se mueven en línea recta)
- Si el tiempo de permanencia en la página es natural
- Si las cookies y la información del navegador son normales
- Si se han utilizado anteriormente los servicios de Google
Si algo resulta sospechoso, aparece un desafío de imágenes como "selecciona todas las imágenes que contengan semáforos". Estos datos de etiquetado de imágenes se utilizan para el entrenamiento de la IA de los coches autónomos de Google. Cada vez que resuelves un CAPTCHA, estás entrenando la IA de Google.
El doble propósito de reCAPTCHA v2
Google utiliza "semáforos", "pasos de peatones" y "coches" en los desafíos de imágenes por una razón. Cada vez que un usuario clasifica una imagen, el resultado se convierte en datos de entrenamiento para la IA de conducción autónoma de Google. Es mano de obra gratuita.
La versión anterior, reCAPTCHA v1, era similar: hacía que los usuarios leyeran palabras ilegibles de documentos escaneados para avanzar en la digitalización de Google Books. Es, a la vez, una herramienta de seguridad y un pipeline de entrenamiento de IA.
Tercera generación: CAPTCHA invisible (reCAPTCHA v3)
La v3 ni siquiera tiene una casilla de verificación. Sin que el usuario tenga que hacer nada, analiza los patrones de comportamiento en segundo plano y asigna una puntuación (0.0 a 1.0):
- 0.9: casi con total seguridad un humano
- 0.1: casi con total seguridad un bot
// Verificación del puntaje en el servidor
const score = await verifyRecaptcha(token);
if (score < 0.5) {
// Se requiere autenticación adicional (verificación por correo electrónico, SMS, etc.)
}Los desarrolladores configuran los umbrales. Las acciones críticas (pagos, registro) tienen un umbral más alto, mientras que las menos importantes (búsqueda) tienen uno más bajo. A medida que la experiencia del usuario mejora, los bots también "aprenden a comportarse como humanos", lo que mantiene una carrera armamentista constante.
Técnicas de evasión de CAPTCHA y la carrera armamentista
Los creadores de bots evaden constantemente los CAPTCHA:
- Superación por OCR: reconocimiento de caracteres distorsionados mediante modelos de aprendizaje profundo → neutralización de los CAPTCHA de primera generación
- Granjas de CAPTCHA: servicios donde personas en países con mano de obra barata resuelven CAPTCHA por encargo ($1~3 por 1000 unidades)
- Imitación de comportamiento: bots que mueven el ratón como un humano → evasión de reCAPTCHA v2
- Automatización del navegador: control de navegadores reales mediante Playwright/Selenium → normalización de cookies y huella digital (fingerprinting)
En respuesta a esto:
- Fingerprinting: combinación de decenas de datos, como la configuración del navegador, fuentes y tamaño de pantalla, para una identificación única
- Fortalecimiento del análisis de comportamiento: análisis de patrones de desplazamiento, ritmo de escritura e incluso presión táctil
- Cloudflare Turnstile: detección de bots en el lado del servidor sin depender de Google
En esta carrera armamentista, no existe un "CAPTCHA perfecto". El objetivo realista es encontrar un equilibrio entre el nivel de seguridad y la comodidad del usuario.
Conclusión clave: El CAPTCHA es una "prueba para distinguir entre humanos y bots" que ha evolucionado desde caracteres distorsionados hasta la clasificación de imágenes y el análisis de comportamiento. Lo irónico es que, cada vez que resolvemos un CAPTCHA, estamos generando datos de entrenamiento para la IA.