Varios grupos diferentes desarrollaron las primeras formas de la tecnología CAPTCHA en paralelo a finales de la década de 1990 y principios de la de 2000. Cada grupo trabajó para combatir el problema generalizado de los hackers que emplean bots para actividades nefastas en el Internet. Por ejemplo, los informáticos que trabajaban para el motor de búsqueda AltaVista querían evitar que los bots agregaran direcciones web maliciosas a la base de datos de enlaces de la compañía.
Los investigadores de la compañía de TI Sanctum presentaron el primer sistema de estilo CAPTCHA en 1997. Sin embargo, un grupo de investigadores en ciencias de la computación de la Universidad Carnegie Mellon dirigido por Luis von Ahn y Manuel Blum introdujo por primera vez el término CAPTCHA en 2003. Este equipo se inspiró para trabajar en la tecnología por un ejecutivo de Yahoo que pronunció una charla sobre los problemas de la compañía con los robots de spam que se registran en millones de cuentas de correo electrónico falsas.
Para resolver el problema de Yahoo, von Ahn y Blum crearon un programa informático que:
- generó una cadena aleatoria de texto,
- generó una imagen distorsionada de ese texto (llamada "código CAPTCHA"),
- presentó la imagen al usuario,
- pidió al usuario que ingresara el texto en un campo de formulario y luego enviara la entrada haciendo clic en una casilla de verificación junto a la frase "No soy un robot".
Debido a que la tecnología OCR de la época tenía dificultades para descifrar un texto tan distorsionado, los bots no podían superar el desafío de CAPTCHA. Si un usuario ingresó la cadena correcta de caracteres, se podría asumir de manera confiable que era humano y se le permitió completar el registro de su cuenta o el envío de un formulario sitio web.
Yahoo implementó la tecnología de Carnegie Mellon, requiriendo que todos los usuarios pasen una prueba CAPTCHA antes de registrar para obtener una dirección de email. Esto redujo significativamente la actividad de los robots de spam, y otras empresas procedieron a adoptar CAPTCHA para proteger sus formularios web. Sin embargo, con el tiempo, los piratas informáticos emplearon datos de los desafíos CAPTCHA completados para desarrollar algoritmos capaces de pasar las pruebas CAPTCHA de manera confiable. Esto marcó el comienzo de una carrera armamentista en curso entre los desarrolladores de CAPTCHA y los ciberdelincuentes que impulsó la evolución de la funcionalidad de CAPTCHA.
reCAPTCHA v1
Lanzado por von Ahn en 2007, reCAPTCHA v1 tenía un doble objetivo: hacer que el desafío CAPTCHA basado en texto fuera más difícil de descifrar para los bots y mejorar la precisión del OCR que se empleaba en ese momento para digitalizar textos impresos.
reCAPTCHA logró el primer objetivo al aumentar la distorsión del texto que se muestra al usuario y, finalmente, agregar líneas a través del texto.
Logró el segundo objetivo reemplazando una sola imagen de texto distorsionado generado aleatoriamente por dos imágenes de texto distorsionado de palabras escaneadas de textos reales por dos programas de OCR diferentes. La primera palabra, o palabra de control, era una palabra identificada correctamente por ambos programas de OCR. La segunda palabra fue una palabra que ambos programas de OCR no pudieron identificar. Si el usuario identificó correctamente la palabra de control, reCAPTCHA asumió que el usuario era humano y le permitió continuar con su tarea, y también asumió que el usuario identificó la segunda palabra correctamente y empleó la respuesta para verificar futuros resultados de OCR.
De esta manera, reCAPTCHA mejoró la seguridad anti-bot y mejoró la precisión de los textos digitalizados en el Internet Archive y el New York Times. Irónicamente, con el tiempo también ayudó a mejorar la inteligencia artificial y los algoritmos de machine learning hasta el punto de que, para 2014, pudieron identificar los CAPTCHA de texto más distorsionados el 99.8 % de las veces.
En 2009, Google adquirió reCAPTCHA y comenzó a usarlo para digitalizar textos para Google Books mientras lo ofrecía como un servicio a otras organizaciones. Sin embargo, a medida que la tecnología OCR progresó con la ayuda de reCAPTCHA, también lo hicieron los programas de inteligencia artificial que podían resolver eficazmente los reCAPTCHA basados en texto. En respuesta, Google introdujo reCAPTCHA de reconocimiento de imágenes en 2012, que reemplazó el texto distorsionado con imágenes tomadas de Google Street View. Los usuarios demostraron su humanidad al identificar objetos del mundo real, como farolas y taxis. Además de eludir el OCR avanzado que ahora despliegan los bots, estos reCAPTCHA basados en imágenes se consideraron más convenientes para los usuarios de aplicaciones móviles.
Google reCAPTCHA v2: No CAPTCHA reCAPTCHA
En 2014, Google lanzó reCAPTCHA v2, que reemplazó los desafíos basados en texto e imágenes con una simple casilla de verificación que decía "No soy un robot". A medida que los usuarios marcan la casilla, reCAPTCHA v2 analiza las interacciones del usuario con los sitios web, evaluando factores como la velocidad de escritura, las cookies, el historial del dispositivo y la dirección IP para determinar si es probable que el usuario sea humano. La casilla de verificación también es parte de cómo funciona el CAPTCHA: sin CAPTCHA, reCAPTCHA rastrea los movimientos del mouse del usuario cuando hace clic en la casilla. Los movimientos de un humano tienden a ser más caóticos, mientras que los movimientos de los bots son más precisos. Si ningún CAPTCHA reCAPTCHA sospecha que un usuario puede ser un bot, le presenta un desafío CAPTCHA basado en imágenes.
reCAPTCHA v3
reCAPTCHA v3, que debutó en 2018, prescinde de la casilla de verificación y amplía el análisis de riesgos impulsado por IA de no CAPTCHA reCAPTCHA. ReCAPTCHA v3 se integra con un sitio web a través de la API de JavaScript y se ejecuta en segundo plano, puntuando el comportamiento de un usuario en una escala de 0,0 (probablemente un bot) a 1,0 (probablemente un humano). Los propietarios de sitios web pueden configurar acciones automáticas para que se activen en determinados momentos cuando el puntaje de un usuario sugiera que puede ser un bot. Por ejemplo, los comentarios de blog de usuarios con puntajes bajos pueden enviar a una cola de moderación cuando hacen clic en "submit," o se puede pedir a los usuarios con puntajes bajos que completen un proceso de autenticación multifactor cuando intentan iniciar sesión en una cuenta.
Los métodos de autenticación basados en IA, como reCAPTCHA v3, tratan de eludir el problema de los piratas informáticos. Al eliminar los retos interactivos del proceso de verificación CAPTCHA, impiden que los piratas informáticos empleen los datos de retos resueltos anteriormente para capacitar bots que descifren nuevos CAPTCHA. Por ello, los expertos creen que los CAPTCHA basados en IA podrían convertir en la norma y sustituir por completo a los CAPTCHA basados en retos en los próximos cinco a diez años.