martes, 26 de junio de 2012

Resolviendo CAPTCHAs: el factor humano

En mi último post contaba cómo había resuelto el tema de las descargas directas en un servidor Linux sin entorno gráfico, controlado remotamente mediante SSH. Una de las opciones más interesantes de plowshare está relacionada con el uso de CAPTCHAs, esas pruebas consistentes (la mayoría de las veces) en transcribir el texto de una imagen y que, si están bien diseñadas, permiten distinguir a un cibernauta humano de un programa de ordenador equivalente. Estas pruebas han proliferado desde hace años como mecanismo de detección (y disuasión) de spammers (los que envían correo basura) y de otros procesos automatizados (conocidos genéricamente como bots o "robots software") que abusen (o esquiven ciertas políticas) de servicios web. 

Para esquivar esas "barreras virtuales" dispuestas para evitar la interacción automatizada con la web, los bots se mejoraron convenientemente. Se trataba de añadirles código capaz de procesar esas imágenes proporcionadas a modo de reto por los CAPTCHAS y extraer e identificar el texto que encierran. Para ello se comenzaron a utilizar distintas técnicas de reconocimiento de patrones y de reconocimiento óptico de caracteres (OCR) que permitieron derrotar durante un tiempo a los CAPTCHAS, que progresivamente se hacían más enrevesados (p. ej. solapando los símbolos y/o distorsionándolos) y obligaban a su vez a perfeccionarlas. Pero llegó un momento en que la complejidad de tecnologías como reCAPTCHA, volvieron a hacer ese tipo de pruebas "aptas solo para humanos".

Un nuevo enfoque para saltar estas barreras, que descubrí al empezar a usar plowshare, consiste en reenviar este reto visual a un humano. Y no me refiero a la acción típica de JDownloader y otros programas similares que ante un CAPTCHA irresoluble lo muestran en pantalla para que lo resuelva el usuario si es que se encuentra mirando la pantalla en ese momento. A esa idea se le dio un nuevo giro de tuerca consistente en reenviar la imagen a otro humano que esté conectado en ese momento y la transcriba por ti. Ese es el servicio que proporciona, por ejemplo, captcha.trader, un sitio web donde se compran o se ganan (resolviendo CAPTCHAs para otros) créditos canjeables por la resolución de estos acertijos en el momento necesario. Es lo que vengo haciendo con éxito con plowshare: cuando estoy on-line resuelvo de vez en cuando algunos CAPTCHAs en la web de captcha.trader anotándolos a mi cuenta de usuario para luego "gastarlos" en las descargas no interactivas mediante plowshare (ejemplo de configuración aquí). Aunque me ha servido para conseguir mis propósitos (descargas directas no interactivas), asomarse a la puerta de este nuevo mercado tan propenso a la explotación del trabajo ajeno da que pensar sobre el futuro de Internet...