Posted in

CAPTCHA ou ANTISPAM – privilégier la sécurité ou la lisibilité

Sur vos formulaires on peut utiliser des CAPTCHA ou ANTISPAM. Ils permettent de filtrer les internautes des robots. Toutefois, un captcha trop sécurisé peut ne pas reconnaître un véritable internaute. Il faut choisir entre une bonne lisibilité au détriment d’une grande sécurité.

Difficile aujourd’hui de passer à côté des CAPTCHA(1). Ce terme, un peu barbare, est utilisé aujourd’hui pour nommer ces fameuses lettres ou chiffres que l’on retrouve le plus souvent à la soumission d’un formulaire. Il est d’ailleurs plus communément nommé ANTISPAM.

Son but : vérifier que l’on est bien un humain et non un robot. Cela permet à l’auteur du site de se prémunir contre les soumissions de formulaires automatisées et intempestives réalisées par des robots sur Internet.

Pour quoi faire ? Éviter le spam, empêcher la participation automatique à des sondages, etc.

Comment ? En utilisant principalement la concaténation de chiffres et de lettres déformées, utilisant des polices différentes dans une image rendant ainsi la lecture indétectable par un robot.

L’accessibilité du CAPTCHA, débat actif sur la toile

 

Coté accessibilité (lisibilité), certains CAPTCHA peuvent causer pas mal de migraines. Il faut dire que leur contenu est parfois tellement déformé et brouillé qu’il finit par être difficilement déchiffrable à l’œil humain. La question est donc se savoir à quel point il faut compliquer la lecture d’un CAPTCHA sous le prétexte de la sécurité (efficacité à filtrer les robots).

D’autant qu’une étude a montré qu’ils sont tous contournables à plus ou moins grande échelle.

Différents types de CAPTCHA…

Certaines solutions se distinguent sur la toile.

SOLUTIONS CLASSIQUES

– Utiliser le son en plus d’un CAPTCHA complexe afin de permettre à n’importe quelle personne de le lire

– Utiliser la régénération de la séquence de chiffres et lettres afin de laisser plusieurs possibilités pour l’utilisateur

– Rendre plus explicite la séquence de chiffres et lettres par une concaténation de mots ayant un sens. Il existe néanmoins un risque de reconnaissance si la déformation n’est pas assez forte

– Tolérer quelques fautes d’orthographes pour faciliter la saisie

– Supprimer les accents, les espaces et les majuscules

SOLUTIONS EXOTIQUES

Si l’on souhaite passer outre la déformation des textes et modifications des polices, on peut opter pour d’autres systèmes plus originaux :

– Le CAPTCHA Arithmétique : 2+2 = [Donner la réponse]. Sans abus néanmoins car on peut trouver ce genre de casse tête également :

Antispam arithmétique
Antispam arithmétique

– Le Flash : qui a pour inconvénient néanmoins de nécessiter un player pour le lire

– La compréhension de texte : un puzzle logique, des questions ou des instructions, il n’y a que peu d’études concernant leur résistance face aux contre-mesures.

– La reconnaissance d’images : KittenAuth (2) est un test de ce type, qui demande à l’utilisateur de reconnaître un animal (des chatons) dans une série de photographies de différentes espèces (dauphins, chiots, renards, etc.)

Captcha avec reconnaissance d'image
Captcha avec reconnaissance d’image

En attendant une méthode « infaillible » de sécurisation de nos formulaires, le CAPTCHA reste un bon moyen de protection mais faut il encore qu’il soit apprécié des utilisateurs de nos sites.

Alors, un bon CAPTCHA, c’est quoi ?

La question finalement n’est pas de savoir si le logiciel de reconnaissance de forme peut contourner le CAPTCHA ? La vraie question est de savoir s’il y a beaucoup de spammers qui utilisent des technologies évoluées de reconnaissance de formes.

En fait, peu de sites qui proposent des CAPTCHA lors de la soumission de formulaires sont intempestivement dérangés par de la profusion de SPAM. Il est donc clair que le simple fait de poser un CAPTCHA est suffisamment dissuasif pour offrir une bonne protection.

Faut-il donc mieux avoir un CAPTCHA peu lisible mais filtrant 99,9999% des spams ou un CAPTCHA plus lisible et filtrant 99,99 % des spam ? A vous de répondre.

La réponse de la Gazelle :
De notre coté, nous avons fait le choix d’un CAPTCHA le plus lisible possible :, pour cela, nous avons préféré utiliser des séries de mots (dans la langue de l’internaute) et faiblement déformés. De plus, nous acceptons une légère tolérance aux fautes de frappe.

Résultat sur plusieurs centaines de milliers de visiteurs, le taux d’échec à la saisie de notre CAPTCHA est très faible (< 1%) et du coté de la sécurité, nous  ne déplorons à ce jour aucun SPAM automatique.

(1) CAPTCHA : Completely Automated Public Turing test to tell Computers and Humans Apart

(2) En savoir plus sur KittenAuth : http://thepcspy.com/kittenauth/

A voir ..

http://techcrunch.com/2010/10/24/captchas-ads-nucaptcha-engage/

13 thoughts on “CAPTCHA ou ANTISPAM – privilégier la sécurité ou la lisibilité

  1. Pour offrir une bonne protection avec un CAPTCHA simple il faut effectivement la possibilité de rapidement changer d’algorithme dans le cas où le CAPTCHA est craqué. Dans le cas des sites WebGazelle, nous avons prévu ce redéploiement.

  2. Pour ma part, je n’ai jamais eu de grosse attaque de spam avec de simples questions du type : quel est la première lettre du mot « sauce »
    Si on ajoute des nombres avant du type : 2010/2011 ou 2010 – 2011 ça passe pour éviter les spams de base.. Mais en cas d’attaque ciblée ça ne tient pas longtemps 🙂
    Gael

  3. Salut,

    Désolé de te dire, mais ton captcha est (trop) easy à solver…
    Pour éviter le spam les questions « logic captcha » sont vraiment ce qui se fait de mieux, également je n’ai trouvé aucun moyen pour le moment de cracker les captcha ASCII de Drupal car n’étant pas une image, on ne peux l’envoyer chez decaptcher.

  4. @Discodog – Effectivement, ce captcha est assez simple à résoudre, dans notre cas, on se base sur un jeu de 52 cartes donc dans le principe même pas besoin d’OCR (Reconnaissance Optique de Caractère), une simple injection de données brutale peut suffire. Mais notre argument n’est pas d’avoir le captcha le plus sécurisé possible, mais de trouver un bon mixte entre lisibilité et efficacité. Dans les faits, ça marque.

  5. Bonjour, je cherche à modifier mon captcha, il est généré par php et je cherche un moyen de le compliquer un peu. Parce que la les spammeurs se font plaisir.
    Comment changer mon code php pour le rendre plus difficile?

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *