Captcha: cómo diferenciar a los humanos de los robots

«Spam will be a thing of the past in two years’ time!»: con esta profecía sorprendía Bill Gates a la opinión pública durante el Fórum Mundial de Economía de Davos en 2004, un tiro errado que aún hoy saca alguna sonrisa a la comunidad online y ciertamente garantiza al cofundador del imperio Microsoft un lugar preeminente en la lista de las meteduras de pata más ominosas del sector informático para siempre.

Por aquel entonces ni siquiera Gates podía imaginar el curso que el desarrollo del spam iba a tomar en los siguientes doce años. Aún hoy no pasa un solo día en que los internautas no tengan que vérselas con este tipo de contenido publicitario automáticamente generado, ya sea en la bandeja de entrada del buzón de correo electrónico, en su blog favorito, en el apartado de comentarios de una tienda online o en el libro de visitas de su propia web.

Y es que, en realidad, los artífices del spam siguen ganando en inteligencia. Estos programas informáticos cada vez más autónomos exploran Internet en busca de campos de formularios y otros elementos interactivos presentes en las webs en los que insertar los mensajes de sus programadores, superando incluso las defensas antispam más ingeniosas con una facilidad pasmosa.

Los captcha han sido el bastión de la web contra los comentarios spam durante mucho tiempo, pero hoy estos irritantes cuestionarios representan más un obstáculo para los humanos que para estos avanzados programas. De hecho, los estudios más actuales en torno a la tecnología de los captcha revelan que los robots a menudo muestran una cuota de error más baja incluso que las personas en los métodos que se conocen y utilizan a día de hoy. ¿Significa esto el fin de la era de los códigos captcha, los rompecabezas visuales y las adivinanzas lógicas? En este artículo, nos aproximamos a los campos de aplicación de esta tecnología, comparamos diferentes tipos de captcha entre sí y señalamos algunas alternativas disponibles para prevenir el spam.

¿Qué es un captcha?

Cuando se habla de captcha se hace referencia a un instrumento de protección contra el spam que tiene como objetivo defender de abusos a las páginas web interactivas filtrando entradas generadas automáticamente. Su nombre es en realidad un acrónimo de “Completely automated public Turing Test to tell computers and humans apart”, que podría traducirse al castellano como «Test de Turing público y completamente automatizado para diferenciar a los humanos de los ordenadores».

Ya en 1950, el informático Alan Turing propuso un procedimiento para poner a prueba el raciocinio de la inteligencia artificial. Según el pionero de la informática, una máquina estaría capacitada para imitar al intelecto humano si lograra conversar digitalmente con personas sin que estas pudieran detectar que su interlocutor es en realidad un ordenador.

El Test de Turing encontró su lugar en la historia de la investigación de la inteligencia artificial desde entonces y solo fue superado en 2014, cuando el superordenador Eugene Goostman consiguió “engañar” a más del 30 por ciento de un jurado independiente durante al menos cinco minutos, haciéndole creer que chateaban con un adolescente ucraniano con afición a los conejos de indias y a los textos políticamente incorrectos del rapero Eminem.

Esto, que podría sonar a ciencia ficción, constituye hoy uno de los problemas centrales de Internet.  Para las páginas web interactivas es crucial poder diferenciar a los usuarios que visitan la web de los programas informáticos en un proceso de verificación (human verification) en el cual unos captchas cada vez más refinados han de contribuir a detener las entradas automáticas y las peticiones de los robots de spam y de clics, comúnmente denominados bots.

¿Cuál es la finalidad de los captchas?

El ámbito más común de actuación de los captchas es el de las aplicaciones web que solicitan datos a los usuarios. Imaginemos el caso de una tienda electrónica que permite a sus clientes evaluar sus compras con comentarios. La prioridad de la tienda probablemente es garantizar que las entradas han sido escritas realmente por sus clientes o, al menos, por usuarios humanos. Sin embargo, a menudo lo que se encuentra es lo contrario, comentarios generados automáticamente que en el peor de los casos incluyen un enlace a alguna tienda de la competencia.

Esto podría evitarse protegiendo los formularios online con un captcha que obligue a los usuarios a verificar su naturaleza humana antes de poder enviar su comentario. Estos captchas se encuentran hoy en casi todos los ámbitos en los cuales es necesario diferenciar a las personas de los bots, entre ellos formularios de registro para servicios de correo electrónico, boletines, foros y redes sociales, pero también encuestas online o servicios de buscadores web.

A lo largo de todo este tiempo se han ido desarrollando métodos diversos con los cuales llevar a cabo esta human verification. No obstante, se considera aceptado que ningún procedimiento garantiza una seguridad absoluta ante el spam y que, en cualquier caso, es la usabilidad la que sale peor parada.

Diferentes tipos de captcha para diferenciar humanos y bots

El concepto que sustenta al captcha se basa en la suposición de que a pesar del avance que caracteriza a la inteligencia artificial, aún sigue habiendo diferencias en cuanto a la capacidad racional del hombre frente a la de los programas informáticos. Por ello, cada captcha incluye al menos una tarea que mientras debería poder ser resuelta por una persona sin gran dificultad, sitúa a una máquina ante una barrera insalvable, al menos en teoría.

Los instrumentos de verificación basados en captchas pueden diferenciarse a grandes rasgos de los basados en texto, gráficos, auditivos, matemáticos, lógicos y lúdicos.

Captchas basados en texto

La forma más antigua de verificación online es el captcha de texto y es aquel en el cual se muestran palabras conocidas y combinaciones alfanuméricas distorsionadas de tal manera que resultan apenas reconocibles. Para superar esta prueba, el usuario ha de descifrar de qué palabra o secuencia se trata y escribirla con el teclado en el campo de respuesta. Los procedimientos más clásicos utilizados en la creación de captchas de texto son Gimpy, ez-Gimpy, Gimpy-r y Simard’s HIP.

Esta manipulación se lleva a cabo en varios pasos, en los cuales los caracteres que forman parte de la secuencia se deforman, se escalan, se giran o se encogen y se combinan con elementos gráficos como líneas, arcos, puntos, degradados de color o ruido de fondo. La siguiente imagen muestra una selección de distorsiones posibles de texto que pueden encontrarse en Internet.

Los captchas solo pueden representar una protección fiable contra spam cuando el enigma constituye un obstáculo insalvable para los programas de reconocimiento automático de textos, aunque en la práctica esto significa recurrir a una distorsión que también afecta a la comprensión lectora de las personas.

Podemos entender esto con el ejemplo que sigue a continuación. A la hora de registrar una cuenta en Microsoft es común encontrarse con captchas de texto de este tipo:

Para algunos usuarios, reconocer la secuencia SGPKDL podría resultar difícil si tenemos en cuenta que la D está distorsionada de tal forma que fácilmente puede confundirse con una O. Mientras que hay casos en que cabría preguntarse si la imagen supone realmente un obstáculo para un software de reconocimiento de texto, la transformación en esta imagen va tan lejos que incluso un usuario humano podría verse desafiado, especialmente si padece de algún tipo de discapacidad visual. Precisamente por este motivo un captcha bien implementado ofrece la posibilidad de omitir la imagen actual y saltar a una siguiente que quizá es menos ambigua. Es fácil imaginarse el “entusiasmo” que embarga a los internautas cuando se topan con estos captchas mientras navegan por la red de redes.

Esto ha propiciado el desarrollo y la consolidación de numerosas alternativas a la tecnología de captchas de texto. Entre ellas destaca especialmente la propuesta de Google reCAPTCHA: en lugar de generar secuencias aleatorias de caracteres, reCAPTCHA se sirve de la base de datos de proyectos de digitalización como Google Books o Google Street View. Así, los usuarios reciben en su monitor fragmentos de nombres de calles, de números de viviendas y de señales de tráfico, así como de textos digitalizados, que han de reconocer y escribir con el teclado. El software ofrece siempre dos elementos, uno conocido y ya confirmado, y otro aún sin confirmar. En principio, los usuarios solo han de reconocer el primero para superar el captcha con éxito, pero aquellos usuarios que también descifran el segundo entran a formar parte entonces del programa de digitalización de Google. Las respuestas se verifican sobre una base estadística: los elementos a descifrar se presentan siempre a varios usuarios y la respuesta más frecuente se considera la correcta.

El siguiente ejemplo ilustra una forma de reCAPTCHA que aparece, por ejemplo, en el registro en un foro:

Captchas gráficos

Los captchas basados en imágenes constituyen una alternativa a los captchas de texto: en lugar de presentar al usuario una secuencia alfanumérica alterada, los captchas visuales se apoyan en elementos gráficos comprensibles a primera vista. Suele recurrirse para ello a imágenes con motivos cotidianos colocadas en mosaico, donde el usuario tiene la misión de pinchar en un motivo específico, identificar motivos similares o descubrir una relación semántica entre ellos —como aquellos en que se trata de seleccionar todas las imágenes donde aparezca una taza de café.

Google también utiliza captchas compuestos por una imagen cuadriculada donde el usuario ha de hacer clic sobre áreas determinadas, por ejemplo, en los campos donde se visualiza una señal topográfica. A diferencia de como ocurre con los captchas de texto, aquí basta con hacer clic sobre los fragmentos correctos para superar la prueba.

La mayoría de usuarios son capaces de resolver este tipo de enigmas gráficos de un solo vistazo, pero la capacidad de los programas informáticos para reconocer un motivo, clasificarlo semánticamente y relacionarlo con motivos similares aún está hoy muy limitada. Esto hace que los captchas basados en imagen sean considerados mucho más eficaces que los métodos basados en texto.

Captchas auditivos

Los captchas de texto e imagen entran en la categoría de métodos gráficos de verificación. Para un usuario superar esta prueba depende de su habilidad para reconocer la información que se le presenta y aquellas personas con visión limitada o incluso con alguna minusvalía pueden verse enfrentadas a un completo desafío, razón por la cual aquellos captchas que únicamente apelan a uno de los cinco sentidos demuestran una escasa usabilidad y son considerados no accesibles. En consecuencia, al implementar captchas en una web es conveniente tener en cuenta la posibilidad de que el método escogido de verificación facilite encontrar la solución por diversas vías.

Con la intención de permitir el acceso a contenido protegido por captcha también a aquellos con peor vista, los métodos gráficos suelen ir acompañados de los denominados captchas de audio o captchas auditivos. Para ello, a menudo se implementa un botón con el cual el usuario puede alternar a la versión sonora de una secuencia de cifras que a continuación puede escribir en el campo para la respuesta. En la imagen siguiente vemos cómo implementa Yahoo el captcha de audio:

Para garantizar un alto grado de usabilidad, la grabación debe ser comprensible y adaptada al idioma del usuario, algo que, aunque lógico a simple vista, no siempre sucede.

Problemas matemáticos y captchas de lógica

Otra alternativa que también tiene en cuenta las dificultades de aquellos menos avezados visualmente utiliza problemas de álgebra o adivinanzas intelectuales que deberían impedir la entrada de bots en el sistema. Una operación sencilla como la que se muestra a continuación se puede leer con un lector de pantallas de forma que no excluye a los internautas con dispositivos de salida no visuales.

Estas sencillas operaciones matemáticas presuponen una educación básica, pero no representan un obstáculo real para los bots, sabiendo que precisamente en matemáticas los ordenadores superan a las personas. Esto ha llevado a acompañar a este tipo de captchas de diferentes formas de distorsión gráfica, de forma que la accesibilidad de los lectores de pantalla se ha visto perjudicada. Para ponérselo aún más difícil a los programas, han aparecido captchas que exigen el resultado de la operación de cálculo en su forma numeral o en los cuales se ha de introducir una sola cifra en el campo de respuesta (“Multiplica 7 x 7 y escribe la primera cifra del resultado en el campo de respuesta”: el resultado de la operación es 49, pero la solución al captcha 4).

Otra variante la constituyen los captchas que utilizan tareas de lógica o preguntas de cultura general, a menudo con una cierta relación temática con la aplicación web en cuestión. En un foro de software libre como el de Simple Machines, no debe extrañar encontrar un captcha como este:

Las preguntas lógicas o que presuponen ciertos conocimientos pueden parecer triviales, pero ante ellas los bots clásicos a menudo se ven superados porque aún no tienen la capacidad de establecer conexiones de este tipo. Así, algunas preguntas podrían ser:

  • ¿De qué color es el caballo blanco de Santiago?
  • ¿En qué ciudad se encuentra este monumento (Coliseo, Torre Eiffel, Big Ben, etc.)?

En ocasiones, los captchas de este tipo se programan de tal forma que se aceptan varias variaciones, por ejemplo, en mayúsculas o minúsculas.

Captchas lúdicos

Los webmasters preocupados por no espantar a sus visitas con captchas crípticos o complicadas operaciones matemáticas pueden apuntarse a la tendencia actual a la gamificación: proveedores como SweetCaptcha o FunCaptcha ofrecen juegos entretenidos que pueden integrarse en captchas.

SweetCaptcha confía en la capacidad asociativa de las personas y plantea tareas de clasificación de gran sencillez a las visitas de una web, como en el siguiente ejemplo, en el cual basta con trasladar las baquetas al tambor para demostrar la calidad humana del usuario.

SweetCaptcha utiliza así una variación del clásico captcha con rompecabezas, que los usuarios han de resolver trasladando elementos de una imagen a su posición correcta.

En el caso de FunCaptcha, sin embargo, todo da vueltas en torno al círculo: solo cuando el perro de la imagen se encuentra en la posición correcta el software se considera satisfecho y deja pasar al usuario.

Si bien no es esto lo que llamaríamos “pasárselo en grande”, ciertamente se trata de una forma mucho más entretenida de resolver un enigma que descifrar un fragmento distorsionado de texto.

Pros y contras de los captchas

Si un captcha es efectivo a la hora de impedir el acceso a los spambots permitiendo el paso a las personas sin obstáculos, se reduce considerablemente el trabajo de mantenimiento necesario en una web. Mientras que los operadores que ofrecen contenido generado por el usuario se benefician de no tener que verificar manualmente los comentarios, un servidor puede verse recompensado con una carga menor si las entradas y las peticiones automáticas se ven bloqueadas antes de que activen una respuesta del sistema que exija un gasto elevado de recursos. Dicho esto ¿qué caracteriza a un buen captcha? La investigación en el sector de la inteligencia artificial avanza a paso seguro y la habilidad de los programas especializados para interpretar textos distorsionados o resolver tareas intelectuales mejora a una velocidad de vértigo. Ya en 2014 un equipo de investigación en Google publicó una fórmula con la cual los reCAPTCHA clásicos se resuelven automáticamente en un 99,8 por ciento de los casos. Como base de datos se utilizaron diez millones de números de viviendas que el equipo había generado con Google Street View. Numerosos proveedores de captchas intentan compensar los avances en el aprendizaje automático con métodos cada vez más complejos de verificación, llegando a rozar a menudo la frontera de lo factible. Ya en 2010 los investigadores de la Universidad de Stanford) señalaron que en muchos casos los captchas constituyen un gran desafío incluso para los internautas. Estas fueron las conclusiones a partir de un estudio que pidió a 1.100 personas resolver alrededor de 318.000 captchas de los que eran habituales por aquel entonces. Los sujetos del estudio resolvieron captchas gráficos en 9,8 segundos de media, mientras que para los auditivos necesitaron más del triple de tiempo (28,4 segundos). Cuando se mostraba el mismo captcha gráfico a tres personas, solo un 71 % de los casos coincidían con la solución, casualidad aún menor en el caso de los sonoros, donde solo un 31 % llegaba a una misma conclusión. A todo esto, los investigadores también pudieron poner de relieve que la mitad de los sujetos abandonaban el test auditivo sin siquiera resolverlo, lo que demuestra hasta qué punto los métodos de verificación (y su realización) tienen un peso en la motivación del usuario a la hora de interactuar con un sitio web. En este contexto, en 2009 la empresa de software como servicio MOZ publicó un artículo en su blog sobre el efecto de los captchas en las tasas de conversión de los formularios web. En un estudio de caso, el autor Casey Henry examinó a más de 50 webs corporativas diferentes durante seis meses para llegar a la conclusión de que las tasas de conversión de los formularios (por ejemplo, para recibir un boletín) descendían una media de un 3,2 por ciento si los captchas estaban activados, aunque, como contrapartida, la entrada de spam también se reducía hasta en un 88 por ciento. Las compañías cuyos ingresos dependen de la interacción de los usuarios en su web deberían ser las primeras en reflexionar si una tasa de rechazo de estas dimensiones es aceptable para ellas. Se trataría, en este caso, de cotejar el gasto por métodos antispam alternativos con las pérdidas de ingresos generadas por los captchas.

Los captchas y la accesibilidad web

Más difícil resulta la elección de la tecnología adecuada para aquellos administradores preocupados por la accesibilidad de su oferta en la web. Aunque se trata solo de estimaciones y estas no son estables, los estudios afirman que las personas con discapacidad suponen una quinta parte de la población global (20 %) española. Si bien no todas las discapacidades dificultan el acceso a la red, hay una parte remarcable de personas a las que no se debe excluir del acceso a la información digital (en el caso de las instituciones educativas, esto supondría incluso infringir la ley). Para estas personas con alguna discapacidad, las promesas de Internet suponen un especial alivio de su vida cotidiana y, sin embargo, aún sigue habiendo una gran parte de sitios que no tienen en cuenta los principios del acceso universal que predicaba el creador de la red de redes Tim Berners Lee y director del W3C Consortium (“The power of the web is in its universality.”). En este sentido, los captchas también suponen en alguna medida una barrera en no pocas ocasiones insuperable, por ejemplo, cuando la verificación no puede llevarse a cabo debido a limitaciones en la vista. Las pautas de accesibilidad al contenido web o Web Content Accessibility Guidelines (WCAG) de la Web Accessibility Initiative (WAI) del consorcio W3C se ocupan de esta problemática en su relación con los captchas y proponen los siguientes puntos como requisitos mínimos para un captcha accesible:

  • Cuando se utiliza un contenido gráfico y no de texto para diferenciar a personas de máquinas se ha de facilitar una alternativa de texto que explique la finalidad del contenido gráfico.
  • Siempre que se utilice un método de captcha se ha de diseñar de tal modo que se disponga de alternativas que tengan en cuenta los distintos tipos de discapacidad.

Estos requisitos mínimos son los que se han tomado en consideración en la redacción de la Norma UNE 139803:2012: Requisitos de Accesibilidad para contenidos en la web, de aplicación en España, que equivale directamente a las Pautas de Accesibilidad para el contenido web WCAG2.0 mencionadas arriba. Además de estas exigencias de mínimo cumplimiento, es recomendable integrar siempre los captchas en un texto explicativo para garantizar que los usuarios entiendan cómo han de verificar su naturaleza humana. Aquí se incluyen una explicación inteligible del test en un formato de texto apto para lectores de pantalla, así como unos campos de respuesta suficientemente explícitos. En cualquier caso, los usuarios deberían poder omitir una prueba ilegible y probar con otro captcha diferente si la respuesta no fue considerada válida. Aparte de todo esto, un captcha no debería representar la única opción a la hora de utilizar una oferta en la web. Conviene facilitar al usuario alguna vía de contacto con el administrador o un servicio de atención al cliente para obtener acceso a la página. Asimismo, el empleo de captchas debería reducirse a un mínimo indispensable: una vez superado uno, no debería tener ningún otro tipo de verificación en la misma web.

¿Hay alternativas al viejo conocido?

Aun siendo hoy tan habituales, estos métodos de verificación basados en el test de Turing no son la única solución con la que proteger a una página web interactiva contra el spam. Con la Working Group Note 23, la WAI desarrolló en 2005 un catálogo de propuestas de prevención ante el spam sin captcha denominado “Inaccessibility of CAPTCHA. Alternatives to visual Turing Tests on the Web”. Con el paso del tiempo se ha ido consolidando un gran número de métodos para la identificación de solicitudes y respuestas automáticas. Los explicamos a continuación:

  • Listas negras: si puede rastrearse un determinado origen para los comentarios spam o para las peticiones automáticas en masa, los administradores web cuentan con la posibilidad de bloquear todas las interacciones con esta procedencia incluyéndolas en una lista negra. Se trata de una lista que enumera todos aquellos servidores o direcciones IP que han de bloquearse en caso de peticiones futuras y que puede crearse manualmente con .htaccess. También es posible recurrir a redes antispam o a proveedores profesionales que ofrecen en Internet listas negras centralizadas y actualizadas constantemente.
  • Honeypots: muchos gestores de páginas web desenmascaran candidatos para la lista negra colocando “trampas” en los formularios. Los denominados “honeypots” o tarros de miel consisten en añadir en un formulario campos invisibles para un usuario humano, pero visibles para un spambot utilizando técnicas de CSS o de JavaScript. Los robots, que solo pueden leer el código HTML, rellenan sin pensar todos los campos, incluidos los escondidos a la vista humana. Esto se convierte en un claro indicio de que la interacción con la web no tiene lugar desde un navegador ni hay una persona detrás de la petición.
  • Filtro de contenido: conocidos como content filters, estos también trabajan con listas negras y representan otra solución para bloquear el spam de comentarios en blogs, tiendas online o foros. En estas listas los administradores definen las llamadas “palabras críticas” (de “hot words”), palabras clave que suelen aparecer en el contexto de los comentarios spam para identificar automáticamente entradas sospechosas como contenido generado por máquinas. No obstante, su utilización conlleva el riesgo de bloquear también los comentarios de personas en los cuales aparezcan palabras de la lista negra.
  • Filtrado en el lado del servidor: la mayoría de servidores web cuentan con un programa de filtrado que permite detectar interacciones llamativas con ciertos apartados de una web y con ello limitar los daños que podrían ocasionar las hazañas de los spambots. Estos filtros de spam se apoyan en análisis estáticos, empíricos y conductuales para identificar actuaciones sospechosas a partir de ciertos aspectos y patrones conocidos. Los análisis de los filtros de spam toman como referencia las características técnicas de los agentes de usuario (user agents) y en ellos se evalúa, por ejemplo, el volumen de los datos solicitados, la dirección IP, el método utilizado para introducir los datos, los datos de la firma y las páginas visitadas con anterioridad. Por medio de la fecha y la hora también se puede conocer el tiempo que ha pasado entre la entrega del formulario online y la entrada de la respuesta, porque, al contrario que las personas, los robots son capaces de rellenar formularios a una velocidad considerable.

Una alternativa muy extendida al clásico captcha, basada en el análisis de la conducta, también procede de la casa Google. Con el nombre de “No CAPTCHA reCaptcha“, la compañía californiana ofrece desde 2013 un servicio de verificación que protege de forma fiable a las páginas interactivas de un uso indebido y que en la mayor parte de los casos no necesita un captcha. En lugar de obligar a los usuarios a resolver una tarea matemática o lógica, el más reciente reCAPTCHA de Google está compuesto únicamente por una caja de verificación.

Cuando un usuario marca la casilla “No soy un robot”, el programa comprueba en un segundo plano qué probabilidad hay de que se trate de una entrada automática. Para ello Google utiliza un análisis avanzado de riesgos, aunque la empresa no revela cuáles son los pasos que sigue este algoritmo para realizar esta comprobación. En la red, sin embargo, se discuten los siguientes aspectos:

  • Cookies
  • Dirección IP
  • Movimientos del ratón en la zona de la caja
  • Duración de la estancia

Si el software concluye que efectivamente quien ha pinchado en la casilla es una persona, le deja pasar sin dilación. Solo cuando el resultado del análisis apunta a un elevado riesgo de spam entra en juego un captcha. El noCAPTCHA sería, de este modo, una especie de prueba precedente que evaluaría si la verificación de Turing es necesaria o puede omitirse. Esto, que satisface en cuanto a accesibilidad web, presenta problemas de privacidad, porque al utilizar el nuevo reCAPTCHA, los webmasters están enviando automáticamente a Google los datos de movimiento de sus usuarios. En consecuencia, estos deberían ser avisados explícitamente en la declaración de protección de datos del empleo de software de terceros como prevención antispam. En este contexto resulta llamativo que para este nuevo reCAPTCHA Google haga referencia a las condiciones generales de uso y a una protección de datos global que también se aplican para el resto de servicios del buscador. Cabe pensar, por esto, que la empresa también utiliza todos los datos que recolecta de esta forma para mejorar sus prestaciones (en publicidad, por ejemplo) más allá de la prevención del spam. Si te interesa esta temática, en un artículo del magazín digital Business Insider se aborda esta problemática en profundidad. En la guía para desarrolladores, Google facilita un manual detallado para integrar un reCaptcha invisible en una página web, la evolución más reciente del No CAPTCHA reCAPTCHA que no necesita una caja de verificación para ser efectivo contra el spam.

En la teoría, el reCAPTCHA invisible funciona en un segundo plano cuando un usuario cumplimenta un formulario online con una diversidad de procesos analíticos que Google mantiene hasta el momento en secreto.

¿Le ha resultado útil este artículo?
Page top