Quizá te suena un divertido vídeo viral en el que un robot “vence” a una de esas cajitas en las que, para pasar a la siguiente ventana en una página web, nos preguntan, ¿Eres un robot? En ese vídeo, un brazo robótico mueve un bolígrafo utilizándolo como si fuera un humano para hacer clic en la casilla de verificación y salir victorioso en su engaño.
Esto es lo que se conoce como un test CAPTCHA, que esencialmente sirve para que los usuarios demuestren que son personas, como sus siglas indican: Completely Automated Public Turing test to tell Computers and Humans Apart, es decir, test de Turing público y automático para distinguir a los ordenadores de los humanos. Esta forma de autentificación nació en el año 2000 para que los proveedores de servicios puedan comprobar que no somos bots, y así evitar que haya programas automatizados accediendo continuamente a las webs o que se creen miles de usuarios falsos.
Como os hemos explicado en Maldita.es, hay distintos tipos de pruebas CAPTCHA: letras aleatorias distorsionadas, puzles de imágenes para que las identifiquemos y la opción que aparece en el vídeo, llamada reCAPTCHA de Google, en la que no hay magia detrás de que el sistema sepa si eres un robot o no solo porque lo asegures haciendo clic en que sí, sino que lo averigua por la forma en que movemos el ratón hacia la cajita y por nuestros datos de navegación, como la dirección IP o las cookies activas. Pero también se utilizan otros parámetros que Google no ha detallado.
Estas pruebas han evolucionado en los últimos años y cada vez son más simples al ojo humano, pero más complejas entre bastidores digitales. Por eso, nos habéis preguntado si podría desarrollarse un software que imitara nuestros movimientos y generara datos de navegación ficticios para hacerse pasar por un humano.
El juego del gato y el ratón entre las pruebas CAPTCHA y los bots programados que pueden resolverlas
“La idea de un CAPTCHA es que lo pueda resolver un humano, pero a la vez que el humano no pueda desarrollar un programa que lo resuelva. Pensemos que al final un programa de inteligencia artificial (IA) también lo escribe una persona”, explica Juan G. Victores, profesor e investigador en el Laboratorio de Robótica de la Universidad Carlos III (UC3M) de Madrid.
Por eso, al final con los CAPTCHA lo que se hace es jugar al gato y al ratón, pero en ciberseguridad, como compara G. Victores. “Se hace un CAPTCHA más potente, y entonces viene un programador y consigue programar un bot más potente que lo resuelva, y así sucesivamente. El programador deberá adaptarse de nuevo a los cambios, pero mientras el objetivo se mantenga, un programador experto podrá hacerlo”, analiza el investigador.
Con la identificación de imágenes y texto es más fácil. En 2018, una inteligencia artificial desarrollada por investigadores de las universidades de Lancaster, Northwest y Pekín, que emplearon métodos de aprendizaje profundo y redes generativas antagónicas (GAN, por sus siglas en inglés), podía resolver CAPTCHAS de texto en 0,05 segundos.
También hay extensiones del navegador que lo hacen y algunas se pueden encontrar en la tienda oficial de Google Chrome, como Buster: Captcha Solver for Humans, 2Captcha Solver: Auto Evitar o Rumola - bypass CAPTCHA, que se ofrece también para ayudar a las personas ciegas a resolver estas pruebas. Una búsqueda rápida en YouTube devuelve por su parte un montón de tutoriales con diferentes técnicas sobre cómo hacerlo. En ellos, programadores recogen que se puede crear un bypass de reCAPTCHA (una forma de dar un rodeo y evitar el test) sin usar IA para que simule un movimiento que pueda considerarse natural, por ejemplo, con una simple pausa en los momentos indicados.
El objetivo de los CAPTCHAS es complicar lo máximo posible que una IA o un bot puedan resolver estos tests; por eso, están en constante desarrollo
“En la inteligencia artificial actual, la base y demostración es álgebra lineal más estadística, pero en la práctica hoy en día se hace muchísimo con menos de diez líneas de código en cualquier lenguaje de programación. Basta que alguien distribuya esas líneas con un instalador sencillo y ya está”, detalla G. Victores. Es decir, sí, hay trucos más o menos asequibles para un programador para evitar los CAPTCHAS.
Conseguir eliminar completamente que existan automatizaciones y bots que creen nuevos registros es un reto enorme. Por eso, el objetivo no es tanto lograrlo al 100%, sino complicarlo lo máximo posible. “Las nuevas versiones de reCAPTCHA son más difíciles porque no sabemos exactamente qué es lo que consideran comportarse como un humano ni qué hace exactamente el clasificador humano vs. robot. Pero al final es un objetivo fijo y, por ejemplo, con las GAN se puede entrenar cómo lo haría un humano y después depurarlo directamente con el clasificador que usan los CAPTCHAS”, dice el investigador de la UC3M.
¿Puede ir complicándose más? Sí, los desarrolladores siempre están en ello, y ahí “lo difícil sería una versión nueva de CAPTCHAS donde hubiese muchísima más variabilidad en el objetivo; ahora mismo, matemáticamente es un espacio pequeño y el ordenador está en su espacio natural”, concluye el experto.
Los robots son mucho más precisos (y rápidos) que los humanos a la hora de resolver CAPTCHAS, según los estudios*
Pero, ¿cuánto solemos tardar en completar un CAPTCHA si nos comparamos con el tiempo en que puede hacerlo una máquina? Un estudio realizado por investigadores de la Universidad de California ha intentado dar respuesta a esta pregunta. Para ello, analizaron el uso de estas herramientas en las 200 páginas webs más populares de Internet, y reclutaron a cerca de 1.400 participantes para resolver estas pruebas.
Según concluye el estudio, tardamos desde 3,6 segundos hasta 42,7 segundos en resolver un CAPTCHA, aunque estas cifras difieren dependiendo del ejercicio que tengamos que resolver. Por ejemplo, los CAPTCHA basados en texto (aquellos en los que se nos pide copiar unas letras que son difíciles de leer) suelen llevarnos entre 9 y 15 segundos, mientras que en los que tenemos que hacer clic en un recuadro apenas tardamos 5 segundos. Siguiendo con más ejemplos, los CAPTCHA en los que hay que identificar objetos (como autobuses o semáforos) nos llevan un poco más, entre 15 y 26 segundos, y aquellos que se basan en figuras (colocar bien un objeto, rotarlo hasta que esté boca arriba…) nos pueden demorar hasta 42 segundos.
¿Y cómo nos comparamos con una máquina? Pues lo cierto es que los robots nos ganan en algunos casos. En los CAPTCHA de texto el ordenador tarda menos de un segundo en resolver la prueba, y hacer clic en un cuadro apenas le lleva 1,4 segundos. En las pruebas basadas en imágenes la diferencia es menor, ya que una máquina tarda una media de 16 segundos en dar con la respuesta. Eso sí, en todos los casos una máquina tiene mucha más precisión que un humano.
Como curiosidad, el estudio también analiza cuáles son nuestros CAPTCHAS favoritos y cuáles odiamos más. Sin duda alguna, preferimos tareas sencillas como hacer clic o arrastrar el ratón frente a otras tareas más tediosas, como identificar imágenes o leer texto distorsionado.
Ya hay muchos CAPTCHA diferentes y estos se van sofisticando cada vez más, pero de momento, sí que pueden resolverse por bots o inteligencias artificiales si hay un buen programador detrás. Así que, a seguir jugando al gato y al ratón.
* Este artículo se ha actualizado el 14 de agosto de 2023 para incluir nuevos estudios sobre los CAPTCHA.
Primera fecha de publicación de este artículo: 26/08/2022