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

videur[1]

Tôt ou tard, vos formulaire 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 c’est quoi ?

Là vous savez que vous avez trop corsé vos captcha

Un captcha est une image contenant une suite de caractères à recopier dans une petite boite. Seulement voila : A 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, un résoudre automatiquement captcha généré par un forum phpBB 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 Captcha.

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 captcha 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 captcha 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 captcha.

Pourquoi alors rencontre-t-on autant de captcha ?

N’est ce pas une bonne question ?  Pourquoi continue-t-on à utiliser des captcha 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 ?