Webyboom

Webyboom est un collectif de webdesigners & webconcepteurs, notre blog est destiné à tous ceux qui sont confrontés comme nous, aux créations et refontes de sites web, avec pour enjeux, le respect des standards et des recommandations sur l'Accessibilité

mardi 19 août 2008

Participez à une étude sur l'accessibilité des captchas

Posté par olivier_webyboom le mardi 19 août 2008 - Accessibilité

L'usage des CAPTCHAs, visuels ou auditifs, pose des problèmes d'accessibilité, tel que celui décrit dans l'article "en finir avec les captchas visuels?". Le projet WebInSight a lancé une étude afin de mesurer l'impact des CAPTCHAs sur les utilisateurs, et quantifier la gêne occasionnée. Les internautes peuvent contribuer à l'étude en répondant à un questionnaire. Outre le fait qu'il faille comprendre l'anglais, Flash est nécessaire pour entendre les CAPTCHAs auditifs. Que cela ne vous freine pas pour autant: échouer au test, quelqu'en soit la raison, est un résultat en soi!

A noter que WebAnywhere, lecteur d'écran en ligne et gratuit, est l'un des autres travaux de ce projet, déjà évoqué sur ce blog. A suivre également: AccessMonkey, framework javascript visant à améliorer l'accessibilité des sites, en permettant la collaboration entre internautes et développeurs.



mercredi 6 août 2008

En finir avec les CAPTCHAs visuels?

Posté par olivier_webyboom le mercredi 6 août 2008 - Accessibilité

Tout part d'un message de Pierre Reynaud, posté sur la liste Accessibilité-numérique. Pierre n'est pas content, et on le comprend: il se retrouve confronté à un système anti-spam, MailInBlack, basé sur l'identification de l'expéditeur, via un formulaire. Ce formulaire comporte un captcha visuel, c'est-à-dire une image destinée à filtrer les logiciels d'inscription automatique (les robots spammeurs, quoi). Cette image contient des lettres déformées, censément illisibles par un système de reconnaissance de caractères, mais faciles à déchiffrer pour un humain, qui peut alors saisir le texte incrusté dans l'image. Seulement voila, Pierre est aveugle, et n'a donc pas accès au contenu du captcha. Il n'est donc pas en mesure d'écrire à son correspondant qui a utilisé ce système pour protéger sa boite mail.
Dans le but de dépanner Pierre, je l'ai orienté vers Webvisum, un outil gratuit décrit lors d'un précédent billet. Webvisum est une extension de Firefox 3 qui comprend un décrypteur de Captcha visuel. La mise en place est un peu lourde au départ, mais sur le formulaire incriminé, ça marche:

  1. D'abord il faut télécharger et installer Firefox 3 si ce n'est déjà fait

  2. Créer un compte sur Webvisum
  3. Télécharger et installer Webvisum

  4. Une fois Webvisum installé, se rendre sur la page où se trouve un captcha (la page de contact du système anti-spam sus-cité par exemple)

  5. Lancer le résolveur via le menu contextuel (option "Solve CAPTCHA", raccouci clavier: 6) ou le raccourci clavier (ctrl+alt+6, mais un conseil, changez-le, car sur un clavier français il semble que ça ne marche pas). L'image est détectée par Webvisum, qui l'expédie à un serveur, et renvoie la réponse après quelques secondes. La chaine de caractères est dans le presse-papiers, il n'y a plus qu'à la coller dans le champ adéquat

Ouf!
Sur 3 essais réalisés sur cette page, ça marche à 100% (Sébastien Delorme a eu des résultats moins flatteurs avec des captchas complexes). Il faut dire que le captcha utilisé par Mailinblack paraît bien simple... et si c'est ça la clé de voute de leur système supposé "éliminer 100% des spams", j'aurais tendance à dire qu'il y a de la présomption dans l'air. Ça ne doit pas être bien dur de forcer le barrage avec un algorithme OCR de base... et du coup ruiner le principe sur lequel repose ce service.

Ça vaudrait le coup, il me semble, que nombre de gens (dont toi, ami lecteur... si si, on peut se tutoyer maintenant!) envoient un courrier à cette société pour leur expliquer en quoi leur système est discriminant, et inefficace qui plus est. Mais j'hésite sur le fait de leur expliquer comment un outil gratuit a pu contourner leur captcha en quelques secondes. En effet, deux réactions sont possibles: soit ils y réfléchissent et utilisent un système plus efficace et moins pénalisant pour les humains; soit ils se disent qu'ils n'ont pas à se remettre en cause, puisqu'après tout les non et mal-voyants peuvent quand même se débrouiller. Évidemment la seconde attitude est suicidaire commercialement, mais que voulez-vous, même en matière de business la rationalité n'est pas le propre de l'homme...

Qu'en penses-tu, lecteur? La discussion sur la liste accessibilité-numérique a permis d'avancer quelques arguments. Globalement, le consensus qui se dégage est que si on présente la solution de contournement, il faut aussi préciser sa lourdeur pour un utilisateur bien intentionné, mais souligner sa capacité de contournement, plausible pour un hacker du dimanche, donc source d'un risque de sécurité inacceptable. Certains (Sébastien) pensent qu'il faut proposer des solutions alternatives pour être constructif, ce qui est louable, mais pas forcément l'objet de ce type de message.

L'idée n'est pas de jeter l'opprobre sur cette société en particulier, bien que l'usage de technologies-barrières soit ancré bien profond au cœur de leur produit. Mais il faut faire prendre conscience aux décideurs mal informés que ce type de service n'en est pas un, et qu'ils doivent être plus exigeants avec leurs fournisseurs, et réclamer des solutions qui prennent réellement en compte tous les paramètres. C'est vrai de MailinBlack comme de tout système basé sur des captchas et autres techniques pénalisantes. C'est pourquoi je propose qu'on mette à disposition des internautes une liste de sites ou services posant ce type de problèmes, avec l'adresse e-mail de réclamation adéquate, permettant à tout un chacun d'en sélectionner et de les contacter à ce propos. Si le mouvement est suivi, l'effet de masse devrait donner au moins à réfléchir aux éditeurs.

Des volontaires?

mardi 23 octobre 2007

Accessibilité: le Captcha, est-ce accessible ?

Posté par madona_webyboom le mardi 23 octobre 2007 - Accessibilité

Pour rappel ce terme bizzaroïde, « Captcha », qui paraît tout droit provenir du fin fond du Caucase, n'est en fait qu'un acronyme anglais « Completely Automated Public Turing test to Tell Computers and Humans Apart », soit en français, « test public de Turing complètement automatique ayant pour but de différencier les humains des ordinateurs (serait-ce une première forme de racisme entre humain et machine... ;-). Ce terme a été inventé en 2000 par Luis von Ahn, Manuel Blum et Nicholas J. Hopper de l'université Carnégie Mellon, et par John Langford d'IBM.

Ce test est utilisé sur internet dans les formulaires pour se prémunir :
- Contre les soumissions automatisées et intensives réalisées par des robots malveillants,
- Contre le spam lors de l'inscription à des webmails gratuits ou lors de la soumission de messages dans des blogs ou des forums de discussion,
- Contre l'extraction automatisée de bases de données,
- Contre la falsification des résultats de sondages

La vérification utilise la capacité d'analyse d'image ou de son de l'être humain. Un captcha usuel requiert que l'utilisateur tape les lettres et les chiffres visibles sur une image distordue qui apparaît à l'écran. Certains sites Web préfèrent afficher une image qui contient une question simple (2+2=?). Et oui apparement un ordinateur a du mal à comprendre pourquoi on lui demande une opération aussi simple..;-)

Cependant, les captchas visuels ne sont pas accessibles aux personnes malvoyantes, de même que les captchas auditifs ne le sont pas aux personnes malentendantes. La seule façon de construire un captcha accessible à tous demeure la question simple à laquelle il faut répondre.

Xavier Borderie de JDN Développeurs présente un système permettant de générer de manière aléatoire l'ensemble du contenu de l'image, afin de s'assurer d'une certaine sécurité : texte, image de fond, caractéristique de la police (taille, graisse, positionnement, angle, fonte utilisée, couleur), taille de l'image elle-même, ou des traits aléatoires qui viennent troubler encore le visiteur non humain.

Voici les fonctions impliquées :

L'image de fond est importée grâce à une première image, qui charge un fichier déterminé (choisi parmi une série d'image nommée "picX.jpg", par exemple.

  1. $rnd = rand(1, 26);
  2. $fond = imagecreatefromjpeg("img/pic".$rnd.".jpg");

Ce fond est ensuite collé sur l'image définitive, dont la taille peut également être aléatoire :

  1. $largeur = 120;
  2. $hauteur = 120;
  3. $image = ImageCreate($largeur, $hauteur);
  4. ImageCopy($image, $fond, 0, 0, 0, 0, $largeur, $hauteur);
  5. ImageDestroy($fond);

Nous n'utilisons ici que la fonte comme élément aléatoire du texte :

  1. $fontes = array("tahoma.ttf", "BSSYM7.TTF", "GARAIT.TTF", "georgia.ttf");
  2. $rnd = rand(0, count($fontes)-1);
  3. $police = $fontes[$rnd];
  4. $couleurTexte = imagecolorallocate($image, 255,255,255); // blanc
  5. ImageTTFText($image, 12, 12, 40, $hauteur/2, $couleurTexte, $police, $texte);

ImageTTFText() présente également l'intérêt, avec son 3e argument, de pouvoir donner un angle à la police, possiblement aléatoire. On pourrait même réaliser une boucle au travers de la chaîne, qui afficherait chaque caractère avec une police, une couleur, un angle différents... dans les limites de la lisibilité, bien sûr.

Tout ceci fait, il ne reste plus qu'à l'envoyer au navigateur :

  1. header("Content-type: image/jpg");
  2. imagejpeg($image);
  3. imagedestroy($image);

Lire l'article complet de Xavier Borderie

« Accueil  1