62 - Leyendo lo que las máquinas no pueden (CAPTCHA) - 17/02/2007


Autor: Lic. Cristian F. Borghello

http://www.segu-info.com.ar

Nota: Este artículo ha sido citado en el diario El Pais de España por Mercè Molist el día 15 de marzo de 2007.

Todos estamos cansados de ver imágenes distorsionadas, generalmente con un texto a descifrar e ingresar en ciertos sitios.

Estas imágenes reciben el nombre de CAPTCHA (Completely Automated Public Turing test to Tell Computers and Humans Apart (Prueba de Turing pública y automática para diferenciar a máquinas y humanos) [1].

En realidad un CAPTCHA es un programa que debería generar una prueba desafio-respuesta que los humanos seamos capaces de resolver pero que las máquinas no.
Esto que puede parece algo absolutamente inútil ha cobrado importancia con el auge del spam y el abuso de los recursos ajenos por partes de personas inescrupulosas.

Cuando el spam alcanzó los niveles actuales y la invasión de los correos electrónicos ya no era un desafío para los spammers, los mismos comenzaron a explotar nuevas vías de promoción de forma tal
de llevar a los usuarios a los sitios de venta de los productos que publicitan o bien lograr ser indexados mayor cantidad de veces por los buscadores.
La proliferación de blogs y la posibilidad de enviar mensajes a los mismos, sin registración y con formularios que no requieren más que el ingreso de texto proporcionó a los spammers la forma perfecta de lograr sus objetivos.
Con el desarrollo de simples bots [2], se rastrean millones de blogs enviando direcciones de los sitios web promocionados por los spammers. Esta acción se conoce como Splog [3].

Como se mencionó anteriormente la ventaja radica en dos puntos importantes para el spammer:

Si el blog es importante y muy visitado, miles de usuarios podrán ver los enlaces y hacer click en ellos.

Si los buscadores indexan este enlace, el mismo puede ser considerado de relevancia directamente proporcional a la importancia del blog del que fue obtenido. Si bien los buscadores implementan algoritmos (y tags HTML) para evitar estos sitios, los mismos son burlados y es común ver sitios de spammers con los buscadores.

Esta última metodología también puede ser aplicada a sitios tan populares como la Wikipedia si bien se implementan métodos para evitarlos, como el tag "noindex" que le dice a los buscadores que no
indexen los enlaces contenidos en la página.

Información detallada de este funcionamiento puede ser encontrada en "El circuito Spammer" de Fabio [4].

Los CAPTCHAs han sido, por un tiempo, una aproximación bastante acertada a la solución del problema hasta que los spammers encontraron la forma de saltar algunos de ellos.

Luego de pagar a personas para resolvieran los CAPTCHA presentados [5] y de haber llegado a la conclusión de su baja rentabilidad, paradójica y obviamente la forma de pasar un CAPTCHA es el reconocimiento óptico de caracteres (OCR) [6], la misma técnica actualmente utilizada desde hace años en los scanners y la misma utilizada para detectar spam gráfico en los correos electrónicos.

Algunos incluso van más lejos y proponen soluciones sin la utilización de OCRs [8].

Es así que actualmente pueden verse decenas de soluciones al problema [7], algunas de las cuales suelen ir desde muy sencillas, por lo cual no cumplen su función, a extremadamente difíciles de
descifrar incluso para humanos. Esto sin mencionar que las personas con deficiencias visuales tienen problemas con su reconocimiento.

Es importante remarcar que la "fortaleza" de un CAPTCHA puede ser distinta según la utilización del mismo: no tiene la misma importancia el registro a un sitio web como paypal que un formulario
de contacto en un weblog.

A modo de ejemplo podemos citar proyectos [8] en los cuales el objetivo es mejorar los CAPTCHAs actuales, mostrando debilidades, fortalezas, eficacia e ineficiencia de muchos de los métodos utilizados.

Otras corrientes prefieren variar estos métodos mediante la utilización de algunos de los siguientes métodos:

  • Resolver un problema del tipo matemático [9].
    ¿Cúanto es siete menos cuatro?. Presenta problemas con el idioma y por alguna razón es rechazado por muchos usuarios.
  • Realizar una pregunta mostrando alternativas gráficas para la solución [10].
    ¿Cuál de estas personas es mayor? y se muestran un bebé y una persona adulta.
    Presenta problemas en las personas con deficiencias visuales.
  • Responder preguntas del tipo "¿cúal es la temática de este sitio?"
    Pueden presentar problemas con el idioma o con la interpretación de la pregunta realizada.
  • Establecer la relación que guardan ciertas imágenes [11].
  • Mostrar cuatro imágenes de gatos y la persona debe seleccionar "gato" desde una lista desplegable.
    Presenta los mismos problemas del anterior y además algunas imágenes pueden ser difíciles de relacionar.
  • Establecer relación entre imágenes y caracteres en un captcha complejo. [12]
    Pueden presentar los problemas de los anteriores e incluso llegar a ser muy complejos.
  • Resolución de Puzzles y rompecabezas.
    Pueden ser complejos
  • Crear CAPTCHAs auditivos [13].
    Presentan problemas con las personas con discapacidades auditivas.

Si bien las alternativas son muchas, algunos profesionales afirman [14] que este no es el camino correcto debido a los problemas de accesibilidad que presentan y que cualquier método técnico a al
larga es "hackeable" por un robot (o por una máquina que pase el Test de Turing).

Más allá de la solución, lo cierto es que actualmente son un filtro importante en la mayoría de los sitios webs y todo parece indicar que los CAPTCHAs nos acompañaran por un tiempo más hasta que se perfeccionen algunos métodos de detección heurísticos.

Pero aún así el desafío sigue en el aire: si una máquina es capaz de pasar el Test de Turing [15] estaría demostrando su inteligencia (si una máquina se comporta en todos los aspectos como inteligente, entonces debe ser inteligente), por lo que sería capaz de pasar un test tipo CAPTCHA.

[1] CAPTCHA
http://es.wikipedia.org/wiki/Captcha
http://www.captcha.net/

[2] Bot
http://es.wikipedia.org/wiki/Bot

[3] Splog
http://es.wikipedia.org/wiki/Splog

[4] "El circuito Spammer
http://www.fabio.com.ar/verpost.php?id_noticia=1829

[5] Resolviendo CAPTCHA por dinero
http://it.slashdot.org/article.pl?sid=06/09/06/1217240

[6] OCR
http://es.wikipedia.org/wiki/OCR

[7] Variedad de CAPTCHAs
http://www.flickr.com/photos/tags/captcha/

[8] Verificando y rompiendo CAPTCHAs
http://sam.zoy.org/pwntcha/
http://www.cs.sfu.ca/~mori/research/gimpy/
http://www.puremango.co.uk/cm_breaking_captcha_115.php

[9] CAPTCHA matemático
https://www.segu-info.com.ar/articulos/img/bol79_01.png

[10] Respondiendo con imágenes
https://www.segu-info.com.ar/articulos/img/bol79_04.png

[11] Relacionando imágenes
http://gs264.sp.cs.cmu.edu/cgi-bin/esp-pix
https://www.segu-info.com.ar/articulos/img/bol79_02.png

[12] CAPTCHA complejo
https://www.segu-info.com.ar/articulos/img/bol79_03.png

[13] CAPTCHAs auditivos
http://googleblog.blogspot.com/2006/11/audio-captchas-when-visual-images-are.html
https://www.segu-info.com.ar/articulos/img/bol79_05.png

[14] Escape from CAPTCHA
http://www.bestkungfu.com/?p=445
http://www.w3.org/TR/turingtest/

[15] Test de Turing
http://es.wikipedia.org/wiki/Prueba_de_Turing

Buenos Aires, 17 de febrero de 2007

Con más de 24 años de experiencia compartiendo la mejor información de Seguridad

Contacto