[:fr]
Un captcha est un test de type challenge-réponse qui vise à prouver que celui qui le passe est bien un utilisateur humain et non un ordinateur. On parle parfois de test de Turing inversé.
Mis au point en 2000 à l’université américaine de Carnegie-Mellon, il consiste à reconnaître un ensemble de caractères légèrement déformés et incrustés dans une image, que les ordinateurs ne sont pas censés pouvoir déchiffrer puisque n’étant pas sous forme de texte. Il existe également des tests audio pour les personnes malvoyantes.
Le but des captchas est d’empêcher l’automatisation de certaines actions. On les trouve typiquement sur des sites internet pour protéger la création de comptes. Ainsi il n’est pas possible avec un script de quelques lignes de créer des dizaines d’adresses Gmail pour envoyer du spam, ou encore d’utiliser des bots pour poster des publicités sur les forums.
Toutes les mesures de sécurité évoluent suivant la même logique : un attaquant trouve une faille, une amélioration est apportée pour corriger le problème et ce cycle se répète. Dans le cas des captchas cela se traduit par des logiciels de reconnaissance optique de caractères (ROC) qui en devenant plus performants ont obligé les sites utilisant des captchas à utiliser des mots de plus en plus brouillés et difficiles à reconnaître. Le problème est que cela finit par nuire à l’expérience des utilisateurs, qui doivent parfois s’y reprendre à plusieurs fois pour déchiffrer un mot complètement illisible.
Mais il y a pire : des services proposent maintenant des méthodes automatisées de résolution de captchas en utilisant des humains. Une API permet d’envoyer le captcha vers le terminal d’un opérateur dont le travail consiste à identifier à la chaîne des mots plus ou moins lisibles qui défilent en continu sur son écran. Et ces services sont très efficaces, puisque pour un coût faible (quelques centimes par captcha) ils affichent un temps de réponse inférieur à dix secondes avec un taux de résolution d’environ 90%.
Afin de palier à ces problèmes Google a mis au point le service reCaptcha qui est maintenant le plus utilisé pour ce type de contrôle. Son principal avantage est d’éviter à la plupart des utilisateurs humains d’avoir à résoudre un captcha. Au lieu de cela une checkbox « Je ne suis pas un robot » déclenche lorsqu’elle est cochée l’analyse de certaines données du navigateur, notamment les cookies, afin d’identifier un comportement propre à un utilisateur humain. Le résultat de cette analyse peut conduire à trois scénarios différents :
1) Si l’utilisateur est identifié comme être humain il n’a pas de test à passer
2) En cas de doute il lui est demandé de résoudre une captcha « simple » (typiquement choisir parmi un lot d’images celles qui contiennent un certain objet)
3) Enfin si il y a une forte suspicion d’être face à un bot le service reCaptcha demande la résolution d’une captcha « classique »
Cependant le service Google a subi un gros revers lors de la conférence Black Hat Asia en avril dernier, où des chercheurs ont présenté leurs travaux détaillés dans l’article I’m not a human: Breaking the Google reCAPTCHA. Ils ont mis au point un système permettant de résoudre les captchas (dont celles proposées par Google) plus rapidement et avec un plus grand taux de réussite que les services utilisant des opérateurs humains. Sans compter que leur attaque a l’avantage de se faire offline et donc de n’engendrer aucun surcoût à chaque utilisation.
En conclusion, les captchas peuvent prévenir des tentatives d’accès automatisées grossières et/ou non ciblées. Mais il faut avoir conscience de leur inefficacité face à une attaque plus sérieuse. Et la mettre en balance avec le potentiel impact sur l’expérience utilisateur pour savoir si oui ou non l’utilisation de captchas est pertinente.
Sources et ressources :
https://en.wikipedia.org/wiki/CAPTCHA
https://www.google.com/recaptcha/intro/index.html?utm_source=twitterfeed&utm_medium=twitter
http://security.stackexchange.com/questions/78807/how-does-googles-no-captcha-recaptcha-work?rq=1
http://www.theregister.co.uk/2016/04/07/captcha_rapture_as_google_facebook_humancheckers_wasted/
Emile
Consultant sécurité
[:]