Un CAPTCHA ( / ˈ k æ p . tʃ ə / KAP -chə ) es un tipo de prueba de desafío-respuesta que se utiliza 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 artificial de " Prueba de Turing pública completamente automatizada para diferenciar las computadoras de los 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, los CAPTCHA a veces se describen como pruebas de Turing inversas . [4]
Dos servicios CAPTCHA ampliamente utilizados son reCAPTCHA [5] [6] de Google y el hCaptcha independiente. [7] [8] A una persona promedio le toma aproximadamente 10 segundos resolver un CAPTCHA típico. [9]
El propósito de los CAPTCHA es prevenir el spam en sitios web, como spam de promoción, spam de registro y extracción de datos, y es menos probable que los bots abusen de los sitios web con spam si esos sitios web usan CAPTCHA. Muchos sitios web utilizan CAPTCHA de forma eficaz para evitar 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 ser 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 las décadas de 1980 y 1990, los usuarios han querido que el texto sea ilegible para las computadoras. [12] Las primeras personas de este tipo fueron los piratas informáticos , que publicaban sobre temas delicados en foros de Internet que pensaban que estaban siendo monitoreados automáticamente en función de las palabras clave. Para eludir esos filtros, reemplazaron una palabra con caracteres parecidos. HOLA podría convertirse en |-|3|_|_()
o )-(3££0
y otros, de modo que un filtro no pudiera detectarlos a todos . Esto más tarde se conoció como leetspeak . [13]
Uno de los primeros usos comerciales de los CAPTCHA fue en 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ó tales pruebas como parte de una estrategia de prevención de fraude en la que pedían a los humanos que "volvieran a escribir texto distorsionado que los programas tienen dificultades para reconocer". [15] El cofundador y director de tecnología de PayPal, Max Levchin, ayudó a comercializar este uso.
Google adquirió una implementación popular de la tecnología CAPTCHA, reCAPTCHA , en 2009. [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 libros de Google Books en 2011. [17]
Eran Reshef, Gili Raanan y Eilon Solan, que trabajaron en Sanctum en Application Security Firewall , patentaron CAPTCHA por primera vez 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 demuestran ser extremadamente difícil para el software de computadora. 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 un video o animación. secuencia". [18]
Los CAPTCHA están automatizados y requieren poco mantenimiento o intervención humana para administrarlos, lo que produce beneficios en costo y confiabilidad. [19]
Los CAPTCHA modernos basados en texto están diseñados de manera que requieren el uso simultáneo de tres habilidades 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 forma aislada. Por lo tanto, estas tres técnicas en conjunto hacen que los CAPTCHA sean difíciles de resolver para las computadoras. [23]
Si bien 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 pase las pruebas generadas por un CAPTCHA puede usarse para resolver un problema difícil de IA no resuelto". [25] Argumentan que las ventajas de utilizar problemas difíciles de IA como medio de seguridad son dobles. O el problema no se resuelve y queda un método confiable para distinguir a los humanos de las computadoras, o el problema se resuelve y junto con él se resuelve un difícil problema de IA. [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 puedan leerlos, las herramientas comunes de tecnología de asistencia , como los lectores de pantalla, no pueden interpretarlos. Por lo tanto, el uso de CAPTCHA excluye a un pequeño porcentaje de usuarios del uso de subconjuntos importantes de servicios web comunes como PayPal, Gmail, Orkut, Yahoo!, muchos sistemas de foros y blogs, etc. [28] En ciertas jurisdicciones, los propietarios de sitios podrían se convierten en objeto de litigios si utilizan CAPTCHA que discriminan a determinadas 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 que ser visuales. Cualquier problema difícil de inteligencia artificial , como el reconocimiento de voz , se puede utilizar 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 derrotar los esquemas populares en ese momento. [29]
ProtectWebForm propuso un método para mejorar CAPTCHA para facilitar el trabajo y lo denominó "Smart CAPTCHA". [30] Se recomienda a los desarrolladores combinar 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 CAPTCHA y oculta tanto la imagen como el campo a los ojos humanos. [31]
Un método alternativo implica mostrar al usuario una ecuación matemática simple y solicitarle que ingrese la solución como verificación. Aunque son mucho más fáciles de eliminar usando software, son adecuados para escenarios donde las imágenes gráficas no son apropiadas y proporcionan un nivel mucho más alto de accesibilidad para usuarios ciegos que los CAPTCHA basados en imágenes. A veces se los denomina MAPTCHA (M = "matemático"). Sin embargo, esto puede resultar difícil para los usuarios con un trastorno cognitivo, como la discalculia . [32]
Desafíos como un acertijo de lógica o una pregunta de trivia también se pueden utilizar como CAPTCHA. Se están investigando su resistencia a las contramedidas. [33]
Dos formas principales de eludir CAPTCHA incluyen utilizar mano de obra humana barata para reconocerlos y utilizar el aprendizaje automático para crear un solucionador automatizado. [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, hubo muchos casos en los que los CAPTCHA tenían una longitud fija y, por lo tanto, se podían construir tareas automatizadas para hacer conjeturas fundamentadas sobre dónde debería tener lugar la segmentación. Otros CAPTCHA iniciales contenían conjuntos limitados de palabras, lo que hizo que la prueba fuera mucho más fácil de jugar. Otros más [ se necesita ejemplo ] cometieron el error de confiar demasiado en la confusión del fondo de la imagen. En cada caso, se crearon algoritmos que pudieron completar con éxito la tarea explotando estos defectos de diseño. Sin embargo, cambios ligeros en el CAPTCHA podrían frustrarlos. Los CAPTCHA modernos como reCAPTCHA se basan en variaciones actuales de caracteres que están colapsados, lo que dificulta su segmentación, y han evitado 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 podía 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í quedar impresionado ya que los veo cada pocos meses". Desde 2003 se han presentado 50 reclamaciones similares a la de Vicarious. [38]
En agosto de 2014, en la conferencia Usenix WoOT, Bursztein et al. presentó el primer algoritmo genérico de resolución de CAPTCHA basado en el aprendizaje por refuerzo y demostró su eficiencia frente a muchos esquemas CAPTCHA populares. [36]
En octubre de 2018, en la conferencia ACM CCS'18, Ye et al. presentó un ataque basado en aprendizaje profundo que podría resolver consistentemente los 11 esquemas de captcha de texto utilizados por los 50 sitios web más populares en 2018. Se puede entrenar un solucionador de CAPTCHA eficaz utilizando tan solo 500 CAPTCHA reales. [39]
Es posible subvertir los CAPTCHA transmitiéndolos a un taller de explotación de operadores humanos que se emplean para decodificar los CAPTCHA. Un artículo de 2005 de un grupo de trabajo del W3C decía que podían verificar cientos por hora. [26] En 2010, la Universidad de California en San Diego llevó a cabo un estudio a gran escala de granjas CAPTCHA. El precio minorista para resolver un millón de CAPTCHA era tan solo 1.000 dólares. [40]
Otra técnica consiste en utilizar un script para volver a publicar el CAPTCHA del sitio objetivo como CAPTCHA en el sitio del atacante, que humanos desprevenidos visitan y resuelven en poco tiempo para que lo utilice el script. [41] [42]
En 2023, el chatbot de IA generativa 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]
Hay 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 0,50 dólares estadounidenses 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 para las que los CAPTCHA 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] reutilizar el ID de sesión de una imagen CAPTCHA conocida y CAPTCHA que residen en servidores compartidos.
A veces, si parte del software que genera el CAPTCHA está en el lado del cliente (la validación se realiza en un servidor pero el texto que el usuario debe identificar se representa en el lado del cliente), entonces los usuarios pueden modificar el cliente para mostrar el CAPTCHA. -texto renderizado. Algunos sistemas CAPTCHA utilizan hashes MD5 almacenados en el lado del cliente, lo que puede dejar el CAPTCHA vulnerable a un ataque de fuerza bruta . [47]
Algunos investigadores han propuesto alternativas que incluyen 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 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 anómalo, es la mejor, ya que el 100 % de los usuarios humanos pueden pasar un CAPTCHA anómalo con al menos un 90 % de probabilidad en 42 segundos. [48] Datta y otros. publicaron su artículo en la Conferencia ACM Multimedia '05, denominado IMAGINATION (IMAge Generation for INternet AuthenticaTION), proponiendo una forma sistemática de reconocimiento de imágenes CAPTCHA. 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) afirman haber desarrollado el Reconocimiento de imágenes de especies animales para restringir el acceso (ASIRRA), que pide a los usuarios que distingan los gatos de los perros. Microsoft tenía una versión beta de esto para que la usaran los sitios web. [50] Afirman que "Asirra es fácil para los usuarios; los humanos pueden resolverlo el 99,6% de las veces en menos de 30 segundos. Como anécdota, los usuarios parecieron 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 ACM sobre Seguridad Informática y de las Comunicaciones (CCS). [51] Se cerró en octubre de 2014. [52]
CAPTCHA (Prueba de Turing pública completamente automatizada para diferenciar computadoras y humanos) es una [...]