Captcha

De Wikipedia, la enciclopedia libre
Saltar a: navegación, búsqueda
Prueba CAPTCHA para la secuencia «smwm» que dificulta el reconocimiento OCR por parte de los bots, distorsionando las letras y añadiendo un degradado de fondo

Captcha o CAPTCHA son las siglas de Completely Automated Public Turing test to tell Computers and Humans Apart (Prueba de Turing completamente automática y pública para diferenciar computadoras (ordenadores) de humanos).[1] Este test es controlado por una máquina, en lugar de por un humano como en la Prueba de Turing, por ello consiste en una prueba de Turing inversa.

Se trata de una prueba desafío-respuesta utilizada en computación para determinar cuándo el usuario es o no humano. El término se empezó a utilizar en el año 2000 por Luis von Ahn, Manuel Blum y Nicholas J. Hopper de la Universidad Carnegie Mellon, y John Langford de IBM.[1] [2] Consiste en que el usuario introduzca correctamente un conjunto de caracteres que se muestran en una imagen distorsionada que aparece en pantalla. Se supone que una máquina no es capaz de comprender e introducir la secuencia de forma correcta por lo que solamente el humano podría hacerlo.[1] [3]


Descripción[editar]

El sistema captcha tiene las siguientes características por definición:

  • Son completamente automatizados, es decir, no es necesario ningún tipo de mantenimiento ni de intervención humana para su realización. Esto supone grandes beneficios en cuanto a fiabilidad y coste.
  • El algoritmo utilizado es público. De esta forma la ruptura de un captcha pasa a ser un problema de inteligencia artificial y no la ruptura de un algoritmo secreto.

Se utiliza en Scriptcase.

Aplicaciones[editar]

Los captchas son utilizados para evitar que robots, también llamados spambots, puedan utilizar ciertos servicios. Por ejemplo, para que no puedan participar en encuestas o foros de discusión, registrarse para usar cuentas de correo electrónico (o su uso para envío de correo basura) y más recientemente, para evitar que un bot de este tipo pueda enviar correo basura (el remitente debe pasar el test antes de que se entregue al destinatario).[4]

Controversias[editar]

Accesibilidad para personas con discapacidad[editar]

Cualquier problema de difícil solución del campo de la inteligencia artificial puede ser utilizado como, por ejemplo, reconocimiento de caracteres/imágenes o reconocimiento de voz. Sin embargo, estas soluciones impiden a personas con deficiencias visuales o auditivas acceder a los recursos protegidos.[5] Además, debido a su naturaleza y misión, algunos asistentes para discapacitados (como los lectores de pantalla) no pueden interpretarlos, quedando bloqueado el acceso al recurso.[6]

En algunos sitios se permite elegir entre la validación visual o sonora. En la actualidad, el desarrollo de captchas basados en sonidos está muy por detrás de los visuales y no son tan eficientes. Existe un proyecto en desarrollo llamado Captcha Accesible que trata de crear un catpcha orientado a lectores de pantalla para personas invidentes.

Debilidades del sistema[editar]

Hay algunas aproximaciones a cómo se puede romper CAPTCHA: usando humanos como mano de obra barata o involuntaria para reconocerlos, explotando bugs en la implementación que permitan a un atacante saltarse el reconocimiento, y finalmente mejorando el software de reconocimiento óptico de caracteres. Proyectos como reCAPTCHA han intentado en los últimos tiempos mejorar la eficacia del sistema CAPTCHA para evitar completamente el reconocimiento por parte de programas OCR.

Actualmente hacer un captcha seguro requiere métodos complicados de implementar que únicamente poseen las grandes empresas. Pero hay métodos para dificultar a los programas OCR. Uno de estos métodos es el «método del tachado». Este método consiste en tachar las letras del captcha de manera que un humano sepa identificarlas pero un software OCR no pueda separar las unas de las otras. Para este método es importante utilizar un mismo color de letra (realmente modificar el color de poco sirve ya que para reconocerlas convierten la imagen a color negro) y tachar con el mismo color que las letras, a ser posible, una línea que no sea recta y de más de un píxel de grosor.

Es posible resolver los CAPTCHAs usando humanos explotados como mano de obra barata para decodificar CAPTCHAs. Un documento de la organización W3C afirma que un operador «puede fácilmente verificar cientos de ellos cada hora». Por otro lado, hay quien afirma que esto no es económicamente viable. Una técnica de crackeo usada con el sistema consiste en usar un script que muestre un CAPTCHA de un sitio atacado como un CAPTCHA en un sitio que pertenezca al atacante, en el que humanos desprevenidos visitan y correctamente resuelven estos CAPTCHAs.

Implementaciones inseguras[editar]

Howard Yeend ha identificado algunos problemas de implementación con CAPTCHAs pobremente diseñados:

  • Algunos sistemas de protección CAPTCHA pueden sortearse sin usar un sistema de reconocimiento óptico de caracteres (OCR) simplemente reutilizando el ID de sesión de una imagen conocida.
  • Los CAPTCHAs que están alojados en servidores compartidos también presentan un problema: una incidencia de seguridad en otro alojamiento virtual, podría dejar el sistema CAPTCHA vulnerable.
  • Algunas veces, si parte del software de generación del CAPTCHA se realiza en el lado del cliente (la validación se hace en el servidor, pero el texto que el usuario tiene que identificar es renderizado en el lado del cliente), los usuarios pueden modificar el cliente para que muestre el texto sin renderizar. Algunos sistemas usan hashes MD5 almacenados en el lado del servidor, que a menudo pueden ser crackeados.

Reconocimiento de caracteres por ordenador[editar]

Aunque los CAPTCHAs han sido originalmente diseñados para impedir que el software OCR reconozca los caracteres de las imágenes generadas, existen proyectos de investigación que han probado que es posible saltarse muchos CAPTCHAs con programas que han sido específicamente diseñados para un tipo determinado de CAPTCHA. Para CAPTCHAs con letras distorsionadas, la aproximación típica es seguir los siguientes pasos:

  1. Eliminación del ruido de fondo, por ejemplo con filtros de color y detecciones de líneas finas.
  2. Segmentación, por ejemplo partiendo la imagen en segmentos que contienen una sola letra.
  3. Identificar la letra de cada segmento, y así utilizar la información extraída de la imagen.

El paso 1 es típicamente muy fácil de automatizar. En 2005, se mostró que un algoritmo de una red neuronal tiene un menor margen de error que los humanos resolviendo el paso 3. La única parte donde los humanos superan a las máquinas es en el paso 2. Si el ruido de fondo consiste en formas similares a letras, y las letras están unidas a este ruido, la segmentación se hace casi imposible con el software actual. Por lo tanto, un CAPTCHA efectivo debería enfocarse en el paso 2, la segmentación.

Véase también[editar]

Referencias[editar]

  1. a b c Grossman, Lev (5 de junio de 2008). «Computer Literacy Tests: Are You Human?» (en inglés). Time. Consultado el 12 de junio de 2008. «The Carnegie Mellon team came back with the CAPTCHA. (It stands for "completely automated public Turing test to tell computers and humans apart"; no, the acronym doesn't really fit.) The point of the CAPTCHA is that reading those swirly letters is something that computers aren't very good at.» 
  2. «CAPTCHA: Telling Humans and Computers Apart Automatically». Universidad Carnegie Mellon. Consultado el 16 de agosto de 2012.
  3. Sergio Luján Mora (2011). ¿Qué es un CAPTCHA? Origen y uso. España: Universidad de Alicante. Escena en 4:01. Consultado el 16 de agosto de 2012. 
  4. «Applications of CAPTCHAs». Carnegie Mellon University. Consultado el 16 de agosto de 2012.
  5. Sergio Luján-Mora. «¿Qué es un CAPTCHA? Problemas de accesibilidad». Consultado el 19 de mayo de 2013.
  6. «Inaccesibility of CAPTCHA» (en inglés). W3C (23 de noviembre de 2005). Consultado el 16 de agosto de 2012.

Enlaces externos[editar]