Los CAPTCHA y los reCAPTCHA determinan si un usuario es realmente un bot. Aunque estas pruebas puedan ayudar a detener la actividad de bots maliciosos, no son infalibles.
Después de leer este artículo podrás:
Contenido relacionado
Bots de spam
Gestionar los bots beneficiosos
Bots beneficiosos vs. bots perjudiciales
Gestión de bots
¿Qué es un bot?
Suscríbase a theNET, el resumen mensual de Cloudflare sobre las ideas más populares de Internet.
Copiar enlace del artículo
Una prueba CAPTCHA está diseñada para determinar si un usuario conectado es un humano y no un bot. CAPTCHA es un acrónimo que significa "Test de Turing completamente automático y público para diferenciar ordenadores de humanos". Los usuarios se encuentran a menudo con pruebas CAPTCHA y reCAPTCHA en Internet. Tales pruebas son un modo de gestionar la actividad de bots, aunque el enfoque presenta inconvenientes.
Aunque los CAPTCHA están diseñados para bloquear bots automatizados, los CAPTCHA están a su vez automatizados. Están programados para aparecer en ciertos partes de un sitio web, y aceptan o rechazan automáticamente a los usuarios.
Los CAPTCHA clásicos, que todavía se se siguen usando en algunas propiedades web, piden a los usuarios que identifiquen letras. Las letras están distorsionadas para que los bots no puedan identificarlas. Para pasar la prueba, los usuarios tienen que interpretar el texto distorsionado, introducir las letras correctas en un campo de formulario y enviar el formulario. Si las letras no coinciden, se les pide a los usuarios que lo vuelvan a intentar. Estas pruebas son habituales en formularios de inicio de sesión, formularios de registro de cuenta, encuestas en línea y páginas de pago en comercios electrónicos.
La idea es que un programa informático como un bot no podrá interpretar las letras distorsionadas, mientras que un humano, que está acostumbrado a ver e interpretar letras en todo tipo de contextos (diferentes fuentes, caligrafías, etc.) probablemente pueda.
Muchos bots solo conseguirán introducir algunas letras al azar, así que es estadísticamente improbable que pasen la prueba. De esta forma, los bots no pasan la prueba y se les bloquea la interacción con el sitio web o la aplicación, mientras que los humanos pueden seguir usándola como de costumbre.
Los bots avanzados pueden hacer uso del aprendizaje automático para identificar estas letras distorsionadas, así que se están reemplazando este tipo de pruebas CAPTCHA por otras más complejas. Google reCAPTCHA ha desarrollado una serie de otras pruebas para diferenciar a los usuarios humanos de los bots.
reCAPTCHA es un servicio gratuito que ofrece Google como sustituto de los CAPTCHA tradicionales. La tecnología reCAPTCHA la desarrollaron los investigadores de la Carnegie Mellon University, que luego adquirió Google en 2009.
reCAPTCHA es más avanzado que las pruebas CAPTCHA tradicionales. Al igual que los CAPTCHA, algunos reCAPTCHA requieren que los usuarios introduzcan imágenes de texto que son difícil de descifrar parar los ordenadores. A diferencia de los CAPTCHA normales, reCAPTCHA obtiene el texto de imágenes reales: fotos de direcciones de calles, textos de libros impresos, textos de periódicos antiguos, etc.
A lo largo del tiempo, Google ha ido ampliando la funcionalidad de las pruebas reCAPTCHA para que ya no tengan que depender del viejo estilo de identificar texto borroso o distorsionado. Otros tipos de pruebas reCAPTCHA incluyen:
Para una prueba de reconocimiento de imágenes de reCAPTCHA, los usuarios suelen recibir 9 o 16 imágenes cuadradas. Todas las imágenes pueden provenir de la misma imagen grande o ser diferentes. Un usuario tiene que identificar las imágenes que incluyen ciertos objetos, como animales, árboles o placas con nombres de calles. Si su respuesta coincide con las respuestas de la mayoría de los otros usuarios que hayan enviado la misma prueba, la respuesta se considerará "correcta" y el usuario pasará la prueba.
Seleccionar ciertos objetos de fotos borrosas es un problema difícil de resolver para los ordenadores. Incluso los programas avanzados de inteligencia artificial (IA) tienen problemas con ello, así que un bot también se enfrentará a ese problema. Sin embargo, un usuario humano debería poder hacerlo con facilidad, ya que los seres humanos están acostumbrados a percibir objetos cotidianos en todo tipo de contexto y situación.
Algunas pruebas reCAPTCHA simplemente solicitan al usuario que marque una casilla junto a la frase, "No soy un robot." Sin embargo, la prueba no es el hecho de hacer clic en la casilla de verificación, si no todo lo que lleva a este proceso.
Esta prueba de reCAPTCHA tiene en cuenta el movimiento del cursor del usuario según se acerca a la casilla de verificación. Incluso el movimiento más directo realizado por un humano cuenta con cierta cantidad de aleatoriedad a un nivel microscópico: pequeños movimientos inconscientes que a los bots les cuesta imitar. Si el movimiento del cursor incluye algo de esta imprevisibilidad, la prueba decidirá que el usuario probablemente sea legítimo. El reCAPTCHA también puede evaluar las cookies almacenadas por el navegador en un dispositivo de usuario y el historial del dispositivo para averiguar la probabilidad de que el usuario sea un bot.
Si aun así la prueba no es capaz de determinar si el usuario es humano, puede presentar un desafío adicional, como la prueba de reconocimiento de imagen descrita anteriormente. Sin embargo, suele ser suficiente con los movimientos de cursor del usuario, las cookies y el historial del dispositivo.
Las últimas versiones de reCAPTCHA pueden efectuar un análisis holístico del comportamiento y el historial de interacción de un usuario con el contenido en Internet. Habitualmente en función de esos factores, el programa puede determinar si el usuario es un bot, sin hacer que complete un desafío. Si no es así, el usuario recibirá un desafío típico de reCAPTCHA.
Google ofrece un servicio mensual de pago llamado reCAPTCHA Enterprise, que utiliza un sistema de detección basado en puntuaciones para distinguir entre humanos y bots. reCAPTCHA Enterprise interactúa con el back-end del cliente y las páginas web para activar una secuencia de eventos JavaScript, HTML y autenticación por token. Luego, el sistema obtiene la "puntuación" de riesgo del visitante, de 0,0 a 1,0, y el desarrollador del sitio web determina qué medidas se deben tomar en función de la puntuación.
Cuanto menor sea la puntuación, más probable es que el "visitante" sea en realidad un bot. Una puntuación reCAPTCHA Enterprise de 0,0 indica que la interacción podría ser fraudulenta y de alto riesgo, mientras que 1,0 significa que la interacción es muy probablemente legítima y de bajo riesgo.
De forma automática, algunas propiedades web cuentan con CAPTCHA como defensa proactiva ante los bots. En otras ocasiones, se puede activar una prueba si el comportamiento de un usuario se asemeja al de un bot: si los usuarios solicitan páginas web o hacen clic en hipervínculos a una tasa mucho más alta que la media, por ejemplo.
Algunos bots pueden pueden llevar a superar los CAPTCHA de texto. Hay investigadores que han demostrado que se pueden encontrar formas de escribir un programa para que supere los CAPTCHA de reconocimiento de imágenes. Además, los atacantes pueden utilizar granjas de clics para pasar las pruebas: miles de trabajadores con salarios bajos que resuelven CAPTCHA en representación de bots.
Además de un CAPTCHA, tiene que haber otras estrategias para detener a los bots no deseados (como los bots de scraping de contenido, los bots de relleno de credenciales o los bots de spam).
Mala experiencia de usuario: una prueba CAPTCHA puede interrumpir el flujo de actividad de los usuarios, lo que les proporciona una visión negativa de su experiencia en la propiedad web e incluso puede hacer que abandonen la página.
No lo pueden utilizar las personas con discapacidad visual: el problema de los CAPTCHA es que dependen de la percepción visual. Esto hace casi imposible que lo puedan utilizar personas ciegas y aquellos con una discapacidad visual grave.
Los bots pueden engañar a estas pruebas: tal y como se describió anteriormente, los CAPTCHA no son completamente seguros contra los bots y no se debería confiar en ellos en la gestión de bots.
Soluciones de gestión de bots, como Cloudflare Bot Management o Super Bot Fight Mode, pueden identificar bots perjudiciales sin afectar a la experiencia del usuario, en base al comportamiento del bot. De este modo, se pueden mitigar los bots se pueden mitigar sin tener que obligar a los usuarios a completar un CAPTCHA.
Cloudflare también ofrece Turnstile, una alternativa invisible a CAPTCHA que usa un fragmento de código gratuito. Turnstile está disponible para todo el mundo — y no es necesario ser cliente de Cloudflare para utilizarlo.
A medida que millones de usuarios identifican los textos difíciles de leer y seleccionan objetos de imágenes borrosas, esos datos se envían a los programas informáticos de inteligencia artificial para que a su vez mejoren en la realización de esas tareas.
Por lo general, los programas informáticos tienen problemas para identificar objetos y letras en diferentes contextos, debido a que el contexto puede cambiar de forma casi infinita en el mundo real. Por ejemplo, una señal de stop es un octágono rojo con "STOP" en letras blancas. Un programa informático podría identificar con facilidad este tipo de combinación de forma y palabra. Sin embargo, una señal de stop en una foto puede tener un aspecto muy diferente en función del contexto: el ángulo de la foto, la iluminación, el tiempo, etc.
Mediante el aprendizaje automático, los programas de inteligencia artificial van mejorando a la hora de superar estas limitaciones. En el ejemplo de la señal de stop, el programador alimentaría al programa de IA con un montón de datos acerca de lo que es o no es una señal de stop. Para que esto sea efectivo, tienen que utilizar muchos ejemplos de imágenes con señales de stop y otras sin señales de stop, y necesitan usuarios humanos para que las identifiquen hasta que el programa haya recolectado información suficiente para ser efectivo.
reCAPTCHA ayuda a satisfacer esta necesidad, ya que hace que los humanos identifiquen objetos y textos, lo que proporciona de manera progresiva suficientes datos para desarrollar programas de IA sólidos.
Un test de Turing evalúa la capacidad que tiene un ordenador para imitar el comportamiento humano. Alan Turing, uno de los primeros pioneros de la informática, desarrolló el concepto del test de Turing en 1950. Un programa informático "pasa el test de Turing" si su funcionamiento durante test no se puede distinguir del de un humano, si actúa como lo haría un ser humano. Un test de Turing no depende de que las respuestas sean correctas, sino de lo "humanas" que suenen dichas respuestas, independientemente de que sean correctas o no.
Aunque se llame "Test público de Turing", un CAPTCHA realmente es lo opuesto a un test de Turing: determina si un usuario supuestamente humano es en realidad un programa informático (un bot) o no, en lugar de tratar de determinar si un ordenador es humano. Para conseguir esto, un CAPTCHA tiene que asignar una tarea breve que sea sencilla para las personas y difícil para los ordenadores. La identificación de texto e imágenes se suele ajustar a esos criterios.