martes, 11 de enero de 2011

Problemas de accesibilidad de los captcha (2/2)

Segunda parte del videotutorial sobre los problemas de accesibilidad de los captcha (la primera parte es Problemas de accesibilidad de los captcha (1/2)).

En esta segunda parte muestro algunos captcha que se proponen como accesibles, pero que siguen teniendo algunos problemas de accesibilidad importantes.

El vídeo es accesible: posee subtítulos en español, para que una persona sorda pueda seguirlo.


Además, también he publicado las transparencias empleadas en el vídeo.


Y a continuación incluyo la transcripción completa del vídeo.

1. Hola, soy Sergio Luján Mora, profesor de la Universidad de Alicante, y con este videotutorial vas a aprender los problemas de accesibilidad que presentan los captcha.

2. En la parte anterior de este videotutorial vimos los problemas de accesibilidad que presentan los captcha que se emplean normalmente.
En esta segunda parte del videotutorial vamos a ver que soluciones hay para que los captcha sean accesibles.

3. El World Wide Web Consortium, el consorcio internacional que desarrolla recomendaciones para la Web, como HTML o CSS, publicó en el año 2005 una nota donde analizaba el problema de los captcha y proponía seis posibles soluciones.

4. Desgraciadamente, estas soluciones tampoco son la panacea (por eso propone seis soluciones) y algunas son muy difíciles de conseguir.

5. Por otro lado, hay desarrolladores que han propuesto algunas alternativas a los captcha visuales.
Estas alternativas se basan en el uso de captcha textual en vez de visual.
Los desarrolladores que proponen estos captcha afirman que son accesibles, aunque esto no es del todo cierto, como veremos a continuación.

6. Por ejemplo, en el portal Discapnet dedicado a las personas con discapacidad, se emplea un captcha donde se debe introducir la respuesta a una operación matemática sencilla.
Este captcha presenta un problema de accesibilidad, ya que las personas con discapacidad cognitiva o intelectual pueden tener problemas.
Además, es una mala solución ya que es fácil de sortear: no es difícil hacer un programa que calcule el resultado de la operación matemática.

7. En la web manualdeusuario.es, se emplea un captcha donde hay que responder una pregunta sencilla como cuál es el color de la hierba o de qué color es la nieve.
Esta solución plantea otra vez varios problemas.
En primer lugar, otra vez las personas con discapacidad cognitiva o intelectual pueden tener problemas para resolver el captcha.
Además, como podemos ver en este mismo ejemplo, existe el problema de la barrera del idioma.
Y por último, ¿cuántas preguntas se pueden crear?
Un buen captcha debe tener un número ilimitado de preguntas, que deben ser fáciles de crear y a ser posible de un modo automático.
Este tipo de captcha sólo permite un conjunto limitado de preguntas.

8. Otro ejemplo de intento de captcha accesible lo podemos encontrar en el sitio web alzado.org, en el que se emplean varios tipos de captcha.
Por ejemplo, en este es necesario escribir la palabra que aparece en la tabla en las coordenadas indicadas.
En este caso, sería la palabra guisante.

9. Y en este otro tipo, se tiene que contestar la pregunta de cultura general que se realiza.
En este caso se pregunta “El monumento de la foto se encuentra en el país de…”.
Como la foto muestra la Torre Eiffel, hay que contestar Francia.
Algunos problemas que presenta esta solución son similares a los de las propuestas anteriores: puede haber problemas con el nivel de cultura, las personas con discapacidad cognitiva también pueden tener problemas y continúa existiendo el problema de la barrera del idioma.

10. Otra propuesta es el llamado Heyes Captcha, en la que el usuario tiene que pulsar una serie de teclas durante una serie de segundos para demostrar que es un ser humano.
Vamos a probarlo.
Nos vamos al navegador.
Aquí estamos en la página web de Heyes Captcha.
Y, las instrucciones nos dicen que tenemos que apretar la tecla E por 4 segundos.
Para ello, nos situamos en esta casilla y pulsamos la tecla E.
Vemos como el contador va avanzando y cuando llegue a 4, soltamos.
Ahora nos dice que tenemos que pulsar la tecla J por 5 segundos.
Así que repetimos la operación, pulsamos la tecla J durante 5 segundos.
Y ahora pulsamos la tecla E por 2 segundos, y vemos que hemos pasado el test.
Desgraciadamente, un sistema como este supone un problema de accesibilidad para aquellas personas que sufran algún tipo de discapacidad física que implique movilidad reducida, como puede ser la parálisis cerebral o la distrofia muscular, y que impida un control preciso de los interfaces de usuario.


11. La idea más original y, quizás, la que más futuro tiene, es la que encontramos en el llamado Honeypot Captcha, el “captcha del tarro de miel”.
En informática se denomina “honeypot” a un sistema que en realidad es una trampa, y cuya intención es atraer a los posibles atacantes de un sistema que se quiere proteger.
La idea del Honeypot Captcha es ofrecer a los “bots” un “tarro de miel”, para que acudan a él como las moscas a la miel.
Sin embargo, se supone que un ser humano no caerá en la trampa.
¿Cómo funciona el Honeypot Captcha?

12. Normalmente, una página web se compone al menos de dos partes: el código HTML y el código CSS.
El código HTML define la estructura y contenido de la página web, mientras que el código CSS define la presentación de la página web (los colores, los tipos de letra, las posiciones, etc.).
La clave del captcha del “tarro de miel” es explotar el hecho de que la mayoría de los “bots” actuales no interpretan el código CSS.
Veamos un ejemplo sencillo de esta trampa.
Por un lado, tenemos el código HTML de un formulario para dejar comentarios en un blog, que define un formulario similar a este.
Este formulario se compone de los siguientes campos: el nombre, el email, el comentario y un campo que hay que dejar vacío y que es el “tarro de miel”.
Por otro lado, tenemos el código CSS que oculta el campo del formulario que hace la función del “tarro de miel”.

13. Como he dicho antes, la clave de esta trampa es explotar el hecho de que la mayoría de los “bots” no interpretan el código CSS.
Un ser humano que utilice un navegador web normal verá la página web con la presentación definida en el CSS, y por tanto, el campo que hay que dejar vacío no lo verá y evidentemente, lo dejará vacío.
Sin embargo, un “bot” verá la página web sin el CSS, verá el campo que hay que dejar vacío, y lo rellenará.

14. Por tanto, cuando se reciba un comentario en el servidor, si se detecta información en el campo “Este campo hay que dejarlo vacío”, se supondrá que es un “bot” quien está enviado el comentario, y se rechazará.

15. Esta solución es muy simple y a su vez muy buena, ya que es muy fácil de implementar y es transparente para el usuario.
Y por ser transparente, es totalmente accesible.
Sin embargo, ¿qué ocurre cuando un usuario utiliza un navegador que no interpreta CSS?
Además, la clave de este captcha es explotar el hecho de que en la actualidad la mayoría de los “bots” no interpretan el código CSS, pero no es raro suponer que en un futuro cercano sí que lo harán, y entonces este captcha dejará de ser útil.

16. Otro captcha ingenioso es el que emplea WP Hashcash, un “plugin” para Wordpress, una de las plataformas de blog más extendida.
En este caso, la clave de este captcha es explotar el hecho de que la mayoría de los “bots” tampoco interpretan el código JavaScript.

17. Este “plugin” genera una función con valores aleatorios cada vez que se accede a una página con un formulario para dejar un comentario.
Cuando se envía un comentario, también se envía el resultado de esta función.
Si quien intenta enviar un comentario es un “bot”, no ejecutará el código JavaScript, no enviará el resultado de esta función, y el comentario será rechazado.
Esta solución tiene el mismo punto débil que el captcha del “tarro de miel”: los “bots” actuales no ejecutan JavaScript, pero no es raro suponer que en un futuro cercano sí que lo harán y entonces, este captcha dejará de ser útil.
Sin embargo, este captcha tiene una característica más que solventa esta posible situación futura.

18. El cálculo que realiza la función de JavaScript es lo que se conoce como “proof-of-work”, traducido al castellano “prueba de trabajo”.
La clave del “proof-of-work” es su asimetría: el trabajo debe ser moderadamente difícil (pero factible) por el lado del cliente, pero fácil de verificar por el lado del servidor.
El cliente debe dedicar un tiempo a calcular el resultado del trabajo, por lo que supondrá una gran penalización para un “bot” que intenta enviar miles y miles de comentarios, ya que tendrá que repetir este trabajo miles y miles de veces.
Sin embargo, para un único usuario no supone una penalización apreciable, ya que solamente lo hará una vez.
Además, al ser asimétrica la prueba de trabajo, el servidor puede verificar el resultado en un tiempo casi nulo.
Las ventajas y desventajas de esta propuesta son similares a las del captcha del “tarro de miel” que emplea CSS: es simple, transparente y accesible, siempre que el usuario utilice un navegador que admita JavaScript.

19. Para finalizar.
Hemos visto los problemas de accesibilidad que presentan los captcha actuales.
Los nuevos captcha que se están proponiendo no solucionan este problema, ya que siguen siendo no accesibles.
Incluso aquellos que se proponen como accesibles, en el fondo no lo son.
La solución es emplear algún tipo de captcha transparente que no afecte a la interacción de un usuario con una página web.
Hemos visto dos soluciones de este tipo, una basada en el empleo de CSS, y otra basada en el empleo de JavaScript.
Pero tampoco son la solución completa.
En realidad, es difícil que se llegue algún día a una solución total, ya que este es el típico juego del gato y el ratón, donde cada vez que se plantea un nuevo tipo de captcha, aparece un truco para saltarse ese captcha.

20. Y con esto finalizo este videotutorial en el que te he explicado cuales son los problemas de accesibilidad que presentan los captcha y qué posibles soluciones existen hoy en día para lograr que un captcha sea accesible.
Si necesitas más información o quieres contactar conmigo, en la página web http://accesibilidadweb.dlsi.ua.es podrás encontrar más información sobre accesibilidad web o también puedes contactar directamente conmigo  a través de mi dirección de correo electrónico sergio.lujan@ua.es.

No hay comentarios: