Captcha : Une mesure de sécurité inefficace et contreproductive

Tôt ou tard, vos formulaires se feront attaquer par des spambot. Ceux-ci parcourent le web à la recherche de formulaire à remplir dans un double objectif : Créer des liens ou envoyer des emails en profitant d’une faille appelée « injection d’entête ».

Même en sécurisant l’entête, les spambots sont une véritable nuisance. Il faut trier et supprimer les faux, ce qui prend du temps.

Finalement, on décide de s’armer pour empêcher les spambots de passer et la première idée, c’est le CAPTCHA.

Un CAPTCHA, qu’est-ce que c’est ?

Un captcha est une image contenant une suite de caractères à recopier dans une petite boite. Seulement voilà : À l’aide d’une technique appelée « OCR« , certains spambots sont entrainés pour passer les systèmes de captcha les plus courants. Par exemple, résoudre automatiquement captcha généré par un forum ou un blog WordPress ne posera aucune difficulté.

Ainsi, même si l’ajout d’un captcha vous permet de souffler quelques semaines, un autre spambot arrivera, mieux armé, pour contourner vos défenses. Dans votre course à l’armement, vous augmenterez tellement le degré de difficulté que même vos visiteurs humains ne pourront plus lire et décrypter vos Captchas.

Enfin, pour enfoncer le clou, il existe des services tels que Decaptcher, qui promettent de résoudre captcha pour quelques euros, par l’intermédiaire d’une API. L’expérience montre que ça marche plutôt pas mal avec des taux de réussite allant de 20 à 100% selon les systèmes attaqués.

Dans un article précédent, j’ai déjà démontré que je pouvais même utiliser mes visiteurs à leur insu en leur faisant décrypter les captchas pour aider mes propres spambots.

Serveurs proxy et mise en cache : Des tueurs de captcha

Si votre serveur web commence à ramer dans la choucroute, vous pourriez avoir la bonne idée de mettre en place un système de cache, voir de monter un serveur proxy qui viendrait se placer devant votre serveur apache pour le soulager. Si vous n’avez pas pensé à gérer un no-cache sur l’image du captcha, vous pourriez tout simplement empêcher quiconque de remplir vos formulaires : La première image générée risque bien d’être mise en cache et ô malheur : C’est elle qui s’affichera en lieu et place de tous les autres captchas rencontrés sur le site.

Le problème peut surgir en aval : bon nombre d’écoles, administrations et entreprises utilisent un proxy pour économiser la bande passante (50 personnes sur une box ADSL, bonjour les dégâts!). Si le proxy a été configuré par un gros bourrin, les utilisateurs de ces réseaux ne pourront jamais passer vos captchas.

Pourquoi alors rencontre-t-on autant de captcha ?

N’est-ce pas une bonne question ?  Pourquoi continue-t-on à utiliser des captchas sur nos jolis sites web, alors qu’on a des visiteurs qui se plaignent de ne pas réussir à les résoudre et que des spambot arrivent quand même à passer ?