Aunque ya estamos acostumbrados a verlos frecuentemente, durante años han protagonizado chistes, bromas y memes en internet. El CAPTCHA es una herramienta de seguridad que emplean millones de páginas web con el objetivo de diferenciar usuarios humanos de posibles bots o programas diseñados para descubrir contraseñas o automatizar el acceso a determinados servicios online. Un elemento familiar en nuestro día a día y que tiene muchas formas y variantes, algunas de ellas muy curiosas. Otras difíciles de desentrañar incluso para un humano.

Su nombre recuerda a una zona de Rusia conocida por sus cangrejos y por sus paisajes. Pero CAPTCHA no viene del ruso. En realidad es un acrónimo que significa 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. El concepto surge en 2000 y los primeros que hablan de captchas son Luis von Ahn, Manuel Blum y Nicholas J. Hopper de la Carnegie Mellon University y John Langford de IBM.

Al CAPTCHA se lo conoce en menor medida como prueba de Turing inversa, ya que es una máquina, ordenador o programa el encargado de identificar al humano y no al revés. Y consiste en pedirnos a los seres humanos a que hagamos algo en el navegador web que, en principio, una máquina no debería ser capaz de hacer. Desde escribir unas palabras que aparecen deformadas en una imagen a seleccionar unos iconos en pantalla y no otros, mover una pieza dentro de un puzle o elegir imágenes que contengan cierto objeto y no otro. Hay muchos tipos de CAPTCHA, pero, ¿de qué manera sabe la web en la que estás de que eres un humano y no un programa de ordenador?

Para qué sirve un CAPTCHA

Dice Google que un CAPTCHA “te ayuda a protegerte del spam y del descifrado de contraseñas pidiéndote que completes una simple prueba que demuestre que eres humano y no un ordenador que intenta acceder a una cuenta protegida con contraseña”. En según qué páginas web, te encontrarás con captchas si intentas acceder a varios enlaces con mucha rapidez o si utilizas programas que descargan imágenes o contenido de páginas web de manera automática. En definitiva, el CAPTCHA pretende detectar los bots de internet.

Volviendo a la explicación de Google, el CAPTCHA habitual suele mostrar una “secuencia de letras o números generada aleatoriamente que aparece como una imagen distorsionada”. Tú, como humano, deberías ser capaz de leer y escribir esa secuencia de letras o números. Si no logras acertar, puedes probar suerte de nuevo e incluso pedir que una voz robótica te lea la secuencia. En principio, un bot de internet no debería ser capaz de descifrar esa imagen. Y aunque hoy en día el reconocimiento de imagen ha evolucionado, todavía sigue siendo una buena herramienta de seguridad.  

Encontramos captchas en millones de páginas web y en muchos lugares distintos: inicio de sesión, registro de nuevos usuarios, formularios, encuestas online, cambios de contraseña de cuentas ya creadas, inicio de sesión en nuevos dispositivos y un largo etcétera. Como comenté antes, un captcha puede aparecer si una página web detecta que estamos realizando acciones demasiado rápidas acordes al comportamiento habitual de una persona. Por ejemplo, al hacer clic en enlaces o imágenes.

YouTube video

Por qué es efectivo el CAPTCHA contra bots

El CAPTCHA tradicional se sigue empleando todavía. Pero en muchos sitios web ha sido sustituido por versiones mejoradas y más elaboradas. O por alternativas como el reCAPTCHA, desarrollado por investigadores de la Carnegie Mellon University y comprada posteriormente por Google en 2009. Con todo, el CAPTCHA sigue funcionando bien en la mayoría de ocasiones.

Tal y como explican en el sitio web de Cloudflare, los bots más habituales utilizan la fuerza bruta para dar con la contraseña o palabra secreta. En el caso de un CAPTCHA, introducen letras aleatoriamente. Y aunque esto puede funcionar en un formulario al uso con claves sencillas y algo de tiempo, no sirve para descifrar qué esconde una imagen deformada. Y para los bots avanzados que han ido apareciendo en los últimos años y que utilizan machine learning para identificar letras distorsionadas, se han ido incorporando tests más complejos como el reCAPTCHA mencionado antes.

Conocidos por todos porque muestran imágenes de fotografías reales, de Google Street View u otras fuentes públicas, los recaptchas añaden algo más de complejidad. En vez de identificar una palabra, tienes que marcar partes de una imagen que contengan lo que pide el enunciado. Y, luego, confirmar tu elección pulsando un botón. Todos nos hemos encontrado alguna vez con un reCAPTCHA pidiendo que selecciones las fotos con semáforos, escaleras o pasos de cebra. Si ya es difícil para un bot identificar palabras, mucho más lo es detectar elementos en una fotografía. Y aunque la inteligencia artificial está dando pasos de gigante en este sentido, todavía no está implementada en este tipo de bots de manera generalizada.

Otros recaptchas simplemente te piden que marques una casilla de verificación en la que dice “No soy un robot”. Lo de simplemente es por el aspecto de esta prueba, porque detrás esconde una estrategia elaborada.

El CAPTCHA ha evolucionado en pocos años para ser más seguro

Tu movimiento te delata, humano o robot

A medida que los bots incorporan la capacidad de reconocer imágenes, ¿cómo hacer que un test diferencie humanos de robots en internet? La respuesta está en el movimiento. No de ti. Por el momento, los captchas o recaptchas más modernos se centran en el movimiento del cursor. También se los conoce como No CAPTCHA. Si tienes que marcar una casilla que dice que no eres un robot, en un ordenador tienes que usar el ratón o trackpad para acercar el cursor hasta esa casilla de verificación. Y, una vez ahí, hacer clic. Esta estrategia también se emplea en un CAPTCHA que te pida colocar una pieza de puzle o seleccionar unos iconos en el orden indicado.

Ese movimiento del cursor, accionado por un ratón o trackpad que, a su vez, es movido por tu mano, tiene unas características propias. Unos patrones microscópicos característicos de los humanos. Movimientos imperceptibles de fracciones de segundo que los bots no pueden imitar fácilmente. Cloudflare lo resume así: “Si el movimiento del cursor contiene algo de esta imprevisibilidad, entonces la prueba decide que el usuario es probablemente legítimo”. Y por si esto fuera poco, las cookies almacenadas en el navegador web y el propio dispositivo ayudan también a discernir de si se trata de un bot o un humano navegando por internet.

¿Qué ocurre con las pantallas táctiles?

Hablar de ratones o trackpads hoy en día implica dejar de lado a miles de pantallas táctiles, las que utilizamos a diario en tabletas, teléfonos inteligentes e incluso en ordenadores con pantallas de este tipo. Ahí, los movimientos del cursor son distintos. Es más. No hay cursor a la vista. Tu dedo marca la casilla de verificación para indicar que eres un ser humano. ¿Cómo detectar ahí un patrón de movimiento? Obviamente, en este caso, el CAPTCHA o reCAPTCHA tiene en cuenta más elementos para decidir si eres humano o robot.

Como vimos antes, junto a los patrones de movimiento, la API encargada de aplicar el CAPTCHA también tiene en cuenta información facilitada por el navegador web y por el propio dispositivo. A esto se unen los eventos de toque, es decir, aquellas acciones que el usuario realiza en el dispositivo táctil al tocar la pantalla. Desde tocar con uno, dos o más dedos a arrastrar el dedo por la pantalla, hacerlo con más o menos presión… Son distintas interacciones que el dispositivo traduce en acciones diferentes, como abrir un menú contextual, abrir una aplicación o marcar un elemento. Y en este caso, sirve para discernir si quien marca la casilla de verificación es humano