Un CAPTCHA ( / ˈk æ p . tʃ ə / KAP -chə ) es un tipo de prueba de desafío-respuesta utilizada en informática para determinar si el usuario es humano con el fin de disuadir ataques de bots y spam. [1]
El término fue acuñado en 2003 por Luis von Ahn , Manuel Blum , Nicholas J. Hopper y John Langford . [2] Es un acrónimo inventado de "Completely Automated Public Turing test to tell Computers and Humans Apart" (Prueba de Turing pública completamente automatizada para diferenciar entre computadoras y humanos) . [3] Un tipo históricamente común de CAPTCHA (que se muestra como reCAPTCHA v1 ) fue inventado por primera vez en 1997 por dos grupos que trabajaban en paralelo. Esta forma de CAPTCHA requiere ingresar una secuencia de letras o números en una imagen distorsionada. Debido a que la prueba es administrada por una computadora, a diferencia de la prueba de Turing estándar que es administrada por un humano, las CAPTCHA a veces se describen como pruebas de Turing inversas . [4]
Dos servicios CAPTCHA ampliamente utilizados son reCAPTCHA de Google [5] [6] y el independiente hCaptcha. [7] [8] A una persona promedio le toma aproximadamente 10 segundos resolver un CAPTCHA típico. [9]
El propósito de los CAPTCHA es evitar el spam en los sitios web, como el spam de promociones, el spam de registro y el raspado de datos. Muchos sitios web utilizan CAPTCHA de manera eficaz para evitar los ataques de bots. Los CAPTCHA están diseñados para que los humanos puedan completarlos, mientras que la mayoría de los robots no pueden. [10] Los CAPTCHA más nuevos analizan el comportamiento del usuario en Internet para demostrar que es un humano. [11] Una prueba CAPTCHA normal solo aparece si el usuario actúa como un bot, como cuando solicita páginas web o hace clic en enlaces demasiado rápido.
Desde los años 1980 y 1990, los usuarios han querido hacer que el texto sea ilegible para las computadoras. [12] Las primeras personas en hacerlo fueron los hackers , que publicaban sobre temas delicados en foros de Internet que creían que estaban siendo monitoreados automáticamente en función de palabras clave. Para eludir dichos filtros, reemplazaban una palabra con caracteres similares. HOLA podía convertirse en |-|3|_|_()
o )-(3££0
, y otros, de modo que un filtro no pudiera detectarlos todos . Esto más tarde se conoció como leetspeak . [13]
Uno de los primeros usos comerciales de los CAPTCHA fue la prueba de Gausebeck-Levchin. En 2000, idrive.com comenzó a proteger su página de registro [14] con un CAPTCHA y se preparó para presentar una patente. [12] En 2001, PayPal utilizó estas pruebas como parte de una estrategia de prevención del fraude en la que pedían a los humanos que "reescribieran texto distorsionado que los programas tienen dificultades para reconocer". [15] El cofundador y director técnico de PayPal, Max Levchin, ayudó a comercializar este uso.
Google adquirió en 2009 una implementación popular de la tecnología CAPTCHA, reCAPTCHA . [16] Además de prevenir el fraude de bots para sus usuarios, Google utilizó la tecnología reCAPTCHA y CAPTCHA para digitalizar los archivos de The New York Times y los libros de Google Books en 2011. [17]
Eran Reshef, Gili Raanan y Eilon Solan, que trabajaron en Sanctum en el desarrollo de firewalls de seguridad para aplicaciones , patentaron por primera vez CAPTCHA en 1997. Su solicitud de patente detalla que "la invención se basa en la aplicación de la ventaja humana al aplicar habilidades sensoriales y cognitivas para resolver problemas simples que resultan extremadamente difíciles para el software informático. Dichas habilidades incluyen, entre otras, el procesamiento de información sensorial, como la identificación de objetos y letras dentro de un entorno gráfico ruidoso, señales y habla dentro de una señal auditiva, patrones y objetos dentro de una secuencia de video o animación". [18]
Los CAPTCHA están automatizados y requieren poco mantenimiento o intervención humana para administrarlos, lo que produce beneficios en términos de costo y confiabilidad. [19]
Los CAPTCHA modernos basados en texto están diseñados de tal manera que requieren el uso simultáneo de tres capacidades separadas: reconocimiento invariante, segmentación y análisis para completar la tarea. [20]
Cada uno de estos problemas plantea un desafío importante para una computadora, incluso de manera aislada. Por lo tanto, estas tres técnicas en conjunto hacen que los CAPTCHA sean difíciles de resolver para las computadoras. [23]
Aunque se utilizan principalmente por razones de seguridad, los CAPTCHA también pueden servir como tarea de referencia para las tecnologías de inteligencia artificial. Según un artículo de Ahn, Blum y Langford [24] , "cualquier programa que supere las pruebas generadas por un CAPTCHA puede utilizarse para resolver un problema de inteligencia artificial difícil sin resolver". [25] Argumentan que las ventajas de utilizar problemas de inteligencia artificial difíciles como medio de seguridad son dobles. O bien el problema queda sin resolver y sigue habiendo un método fiable para distinguir a los humanos de las computadoras, o bien el problema se resuelve y junto con él se resuelve un problema de inteligencia artificial difícil. [24]
Los CAPTCHA basados en la lectura de texto (u otras tareas de percepción visual) impiden que los usuarios ciegos o con discapacidad visual accedan al recurso protegido. [26] [27] Debido a que los CAPTCHA están diseñados para que las máquinas no los puedan leer, las herramientas de tecnología de asistencia comunes , como los lectores de pantalla, no pueden interpretarlos. El uso de CAPTCHA excluye así a un pequeño porcentaje de usuarios del uso de subconjuntos significativos de servicios comunes basados en la Web, como PayPal, Gmail, Orkut, Yahoo!, muchos sistemas de foros y blogs, etc. [28] En ciertas jurisdicciones, los propietarios de sitios podrían convertirse en blanco de litigios si utilizan CAPTCHA que discriminan a ciertas personas con discapacidades. Por ejemplo, un CAPTCHA puede hacer que un sitio sea incompatible con la Sección 508 en los Estados Unidos.
Los CAPTCHA no tienen por qué ser visuales. Cualquier problema de inteligencia artificial complejo , como el reconocimiento de voz , puede utilizarse como CAPTCHA. Algunas implementaciones de CAPTCHA permiten a los usuarios optar por un CAPTCHA de audio, como reCAPTCHA, aunque un artículo de 2011 demostró una técnica para vencer los esquemas populares en ese momento. [29]
ProtectWebForm propuso un método para mejorar el CAPTCHA y facilitar su uso, denominado "Smart CAPTCHA". [30] Se recomienda a los desarrolladores combinar el CAPTCHA con JavaScript. Dado que a la mayoría de los robots les resulta difícil analizar y ejecutar JavaScript, se propuso un método combinatorio que rellena los campos del CAPTCHA y oculta tanto la imagen como el campo a los ojos humanos. [31]
Un método alternativo consiste en mostrar al usuario una ecuación matemática sencilla y pedirle que introduzca la solución como verificación. Aunque estos métodos son mucho más fáciles de vencer mediante software, son adecuados para situaciones en las que las imágenes gráficas no son adecuadas y proporcionan un nivel de accesibilidad mucho mayor para los usuarios ciegos que los CAPTCHA basados en imágenes. A veces se los denomina MAPTCHA (M = "matemático"). Sin embargo, pueden resultar difíciles para los usuarios con un trastorno cognitivo, como la discalculia . [32]
También se pueden utilizar como CAPTCHA desafíos como acertijos de lógica o preguntas de trivia. Existen investigaciones sobre su resistencia a las contramedidas. [33]
Las dos formas principales de evitar los CAPTCHA incluyen el uso de mano de obra humana barata para reconocerlos y el uso del aprendizaje automático para crear un solucionador automático. [34] Según el ex " zar del fraude de clics " de Google, Shuman Ghosemajumder , existen numerosos servicios que resuelven los CAPTCHA automáticamente. [35]
No existía una metodología sistemática para diseñar o evaluar los primeros CAPTCHA. [23] Como resultado, había muchos casos en los que los CAPTCHA tenían una longitud fija y, por lo tanto, se podían construir tareas automatizadas para hacer con éxito suposiciones fundamentadas sobre dónde debería tener lugar la segmentación. Otros CAPTCHA tempranos contenían conjuntos limitados de palabras, lo que hacía que la prueba fuera mucho más fácil de manipular. Otros [ ejemplo necesario ] cometieron el error de confiar demasiado en la confusión de fondo en la imagen. En cada caso, se crearon algoritmos que pudieron completar con éxito la tarea explotando estos defectos de diseño. Sin embargo, cambios leves en el CAPTCHA podrían frustrarlos. Los CAPTCHA modernos como reCAPTCHA se basan en variaciones actuales de caracteres que se colapsan juntos, lo que los hace difíciles de segmentar, y han evitado las tareas automatizadas. [36]
En octubre de 2013, la empresa de inteligencia artificial Vicarious afirmó que había desarrollado un algoritmo genérico de resolución de CAPTCHA que era capaz de resolver CAPTCHA modernos con tasas de reconocimiento de caracteres de hasta el 90%. [37] Sin embargo, Luis von Ahn , pionero de los primeros CAPTCHA y fundador de reCAPTCHA, dijo: "Es difícil para mí estar impresionado ya que veo esto cada pocos meses". Se han hecho 50 afirmaciones similares a la de Vicarious desde 2003. [38]
En agosto de 2014, en la conferencia Usenix WoOT, Bursztein et al. presentaron el primer algoritmo genérico de resolución de CAPTCHA basado en aprendizaje de refuerzo y demostraron su eficiencia frente a muchos esquemas CAPTCHA populares. [36]
En octubre de 2018, en la conferencia ACM CCS'18, Ye et al. presentaron un ataque basado en aprendizaje profundo que podría resolver de manera consistente los 11 esquemas de captcha de texto utilizados por los 50 sitios web más populares en 2018. Un solucionador de CAPTCHA eficaz se puede entrenar utilizando tan solo 500 CAPTCHA reales. [39]
Es posible subvertir los CAPTCHAs al transmitirlos a un taller clandestino de operadores humanos que se emplean para decodificarlos. Un artículo de 2005 de un grupo de trabajo del W3C decía que podían verificar cientos de ellos por hora. [26] En 2010, la Universidad de California en San Diego realizó un estudio a gran escala de granjas de CAPTCHA. El precio de venta al público por resolver un millón de CAPTCHAs era de tan solo 1.000 dólares. [40]
Otra técnica consiste en utilizar un script para volver a publicar el CAPTCHA del sitio de destino como un CAPTCHA en el sitio del atacante, que humanos desprevenidos visitan y resuelven en poco tiempo para que el script lo use. [41] [42]
En 2023, ChatGPT engañó a un trabajador de TaskRabbit para que resolviera un CAPTCHA diciéndole que no era un robot y que tenía problemas de visión. [43]
Existen varias empresas de Internet como 2Captcha y DeathByCaptcha que ofrecen servicios de resolución de CAPTCHA respaldados por humanos y máquinas por tan solo US$0,50 por cada 1000 CAPTCHA resueltos. [44] Estos servicios ofrecen API y bibliotecas que permiten a los usuarios integrar la elusión de CAPTCHA en las herramientas que los CAPTCHAs fueron diseñados para bloquear en primer lugar. [45]
Howard Yeend ha identificado dos problemas de implementación con sistemas CAPTCHA mal diseñados: [46] la reutilización del ID de sesión de una imagen CAPTCHA conocida y los CAPTCHA que residen en servidores compartidos.
En ocasiones, si parte del software que genera el CAPTCHA es del lado del cliente (la validación se realiza en un servidor pero el texto que el usuario debe identificar se muestra en el lado del cliente), los usuarios pueden modificar el cliente para que muestre el texto no mostrado. Algunos sistemas CAPTCHA utilizan hashes MD5 almacenados en el lado del cliente, lo que puede dejar al CAPTCHA vulnerable a un ataque de fuerza bruta . [47]
Algunos investigadores han propuesto alternativas, como los CAPTCHA de reconocimiento de imágenes, que requieren que los usuarios identifiquen objetos simples en las imágenes presentadas. El argumento a favor de estos esquemas es que las tareas como el reconocimiento de objetos son más complejas de realizar que el reconocimiento de texto y, por lo tanto, deberían ser más resistentes a los ataques basados en el aprendizaje automático.
Chew et al. publicaron su trabajo en la 7.ª Conferencia Internacional de Seguridad de la Información, ISC'04, proponiendo tres versiones diferentes de CAPTCHA de reconocimiento de imágenes y validando la propuesta con estudios de usuarios. Se sugiere que una de las versiones, el CAPTCHA de anomalías, es mejor, ya que el 100% de los usuarios humanos pueden pasar un CAPTCHA de anomalías con al menos un 90% de probabilidad en 42 segundos. [48] Datta et al. publicaron su artículo en la Conferencia ACM Multimedia '05, llamado IMAGINATION (Generación de imágenes para autenticación en Internet), proponiendo una forma sistemática de CAPTCHA de reconocimiento de imágenes. Las imágenes están distorsionadas, por lo que los métodos de reconocimiento de imágenes no pueden reconocerlas. [49]
Microsoft (Jeremy Elson, John R. Douceur, Jon Howell y Jared Saul) afirma haber desarrollado el sistema de reconocimiento de imágenes de especies animales para restringir el acceso (ASIRRA, por sus siglas en inglés), que pide a los usuarios que distingan a los gatos de los perros. Microsoft tenía una versión beta de este sistema para que lo utilizaran los sitios web. [50] Afirman que "Asirra es fácil para los usuarios; puede ser resuelto por humanos el 99,6 % de las veces en menos de 30 segundos. Según algunas anécdotas, los usuarios parecían encontrar la experiencia de usar Asirra mucho más agradable que un CAPTCHA basado en texto". Esta solución se describió en un artículo de 2007 en las Actas de la 14.ª Conferencia de la ACM sobre Seguridad Informática y de las Comunicaciones (CCS, por sus siglas en inglés). [51] Se cerró en octubre de 2014. [52]
CAPTCHA (Completely Automated Public Turing test to tell Computers and Humans Apart) es un [...]