Developpez.com

Le Club des Développeurs et IT Pro

Les CAPTCHA sont-ils un outil de sécurité ou une nuisance ?

Un ingénieur de Google casse celui de Sony avec un simple regex

Le 2011-07-14 16:05:15, par Hinault Romaric, Responsable .NET
Les développeurs utilisent couramment les CAPTCHA (Completely Automated Public Turing test to tell Computers and Humans Apart) comme moyen de sécurité pour éviter les enregistrements automatiques par des robots ou des spammeurs.

Ces composants gênèrent à l'écran des caractères dont le but est d'être difficilement déchiffrés par les « bots » mais aisément par les humains. Ils sont conçus en utilisant plusieurs techniques différentes, notamment l'utilisation d'une table de hachage chiffrée ou cachée.

Sony, pour sa part, a choisi de mettre en place un CAPTCHA en pur HTML, CSS et JavaScript. Ici, aucun caractère chiffré ni table de hachage, mais des caractères stockés directement en « clair », dans un simple fichier.

Ce choix douteux n'a pas échappé à l'ingénieur de la team Google+. Andrew Hintz a en effet constaté que l'utilisation d'un simple regex(expression régulière) était suffisante pour révéler les caractères de contrôle générés dans les pages de Sony.

Pire encore, le code JavaScript utilisé pour afficher et vérifier le CAPTCHA est tellement bien documenté qu'il peut être simplement utilisé pour programmer un bot pouvant contourner ce système.



Au delà de ce cas « d'école » (dans le mauvais sens) conçu par Sony, Andrew Hintz fait également remarquer que la plupart des CAPTCHA peuvent être décodés avec une simple combinaison de détection de contours Gaussien et d'analyse de la différence XOR des caractères.

Autrement dit, pour l'ingénieur de Google, ce système est plus une source de nuisance pour l'utilisateur qu'un outil de sécurité.

Source : Blog Google

Et vous ?

Pensez-vous que les CAPTCHA sont assez sécurisés ?

D'après vous, comment une entreprise comme Sony a-t-elle pu mettre au point un CAPTCHA aussi faible ?

Considérez-vous les CAPTCHA, comme Andrew Hintz, c'est à dire plus comme une nuisance que comme un outil de sécurité ?
  Discussion forum
26 commentaires
  • 7ider5
    Membre du Club
    Merci watermy pour ce lien, très drôle!


    http://xkcd.com/565/
  • kdmbella
    Expert éminent
    Pensez-vous que les CAPTCHA sont assez sécurisé?
    tout dépend de comment on le met en place : si c'est un captcha coté client c'est pas indiquer de toute façon c'est moins sécurisé qu'un captcha coté serveur

    D'après vous, commeny une entreprise comme Sony a-t-elle pu mettre au point un CAPTCHA aussi faible ?

    c'est pas certain que c'est sony qui a concu son site il l'a peut être confié a une web compagnie et dans ce cas c'est à la web compagnie qu'il faut faire un procès d'intention de l'autre coté sony n'est pas la seule entreprise dans ce cas peut être que Google lui même est dans la même situation.

    je poserai une autre question : comment le ministère de l'économie a put se faire hacker aussi facilement?

    Considérez-vous les CAPTCHA, comme Andrew Hintz, c'est à dire plus comme une nuisance que comme un outil de sécurité ?

    il arrive souvent que le captcha soit vu comme une nuisance: particulièrement lorsque le déchiffrage des caractères n'est pas évident meme pour l'homme
  • blbird
    Membre chevronné
    C'est exactement ce que j'ai mis sur mon forum phpbb3, qui même avec le cpatcha, avait une dizaine d'inscriptions réussies de bots par semaine.

    Une simple question: etes-vous un humain? Avec NON par défaut.

    Depuis 1 an, plus aucun bot n'est passé.

    Mais bon c'est sûr que pour un site très visité, ca ne marcherait pas longtemps.
  • Idelways
    Expert éminent sénior
    Bonjour

    Les captcha peuvent être embêtants mais rendrent parfois énormément de services.
    Savez-vous que reCAPTCHA est utilisé pour numériser des livres ?
    En fait, dans l'image qui s'affiche, il y a toujours deux mots, la machine connait parfaitement la suite des caractères de l'un (et ne valide que celui là), et ignore l'autre.
    A force d'avoir la même proposition plusieurs fois pour le même mot inconnu, l'OCR d'un livre à conserver avance (noter le slogan Stop spam, Read book)

    Pour revenir au sujet, je suis d'avis qu'on ne doit mettre les Captcha qu'à partir du moment où il y a abus, ou risque assez élevé d'abus.

    Je suis souvent contrarié de devoir déchiffrer péniblement les mots d'un CAPTCHA sur un blog qui fait 10 commentaires par an.

    Cordialement
    Idelways
  • spoutbe
    Nouveau membre du Club
    Certains CAPTCHA sont facile à décoder:
    http://caca.zoy.org/wiki/PWNtcha
    http://www.ocr-research.org.ua/list.html

    Un article intéressant:
    http://coding.smashingmagazine.com/2...rfect-captcha/
    The perfect CAPTCHA is no CAPTCHA at all.
    Une solution no CAPTCHA à envisager:
    http://www.webdesignfromscratch.com/...n-check-trick/
  • mister3957
    Membre expérimenté
    Comme chaque systèmes de sécurité (pas qu'informatique), ça ne fait qu'embêter les honnêtes gens.
  • lugdanum
    Membre du Club
    Bonjour

    Moi je teste depuis un bout de temps ce système:
    - Un champ caché dans mes formulaires de ce style :

    Code :
    <input type="hidden" name="email" value="" />
    Je teste ensuite si celui-ci est remplie, s'il l'est, Un bot est certainement passé par là, sinon il y a des chances que se soit bien quelqu'un...

    Je dis pas que c'est efficace à 100% mais moi aussi depuis 1 an que j'ai mis ce système en place sur un site (300 visiteurs unique/jour) plus de bots...

    Moi j'aime pas les captchats, ils ne servent vraiment à rien :
    - Facile à contourner, en tout cas ne resiste pas bien longtemps
    - Font souvent partir les gens en cas de complexité (donc perte d'inscription si le captchat se trouve sur le formulaire d'enregistrement)
    - C'est moche !

  • D.Lyre
    Candidat au Club
    J'ai été confronté au remplissage automatique d'un formulaire de contact par des bots il y a une quinzaine d'années et voici comment j'ai résolu le problème.

    Constats:
    1 -un bot met quelques secondes pour remplir un formulaire
    2 -plusieurs champs avaient les mêmes valeurs si ils étaient rempli par un bot
    3 -un humain ne peux pas remplir le formulaire en moins de quelques secondes

    Solution:
    -Je test le temps entre l'affichage du formulaire et le submit en mettant le time(), auquel j'enlève une valeur X pour évité qu'il soit reconnu comme tel, dans un champs hidden.
    -Je test aussi les doublons dans les champs.
    -Je test si le champs contient le nom du champs.

    Résultat et avantages:
    -aucun spam et aucune inscription par des bots depuis que j'utilise ce système
    -pas de CAPTCHA à mettre en place et à gérer en fonction de l'évolution des bots
    -le système ne demande aucune action de l'utilisateur

    J'applique ce système sur de nombreux sites pour des formulaires d'inscription ou des formulaires de contact depuis plus de dix ans avec succès.
  • watermy
    Membre régulier
    Pour moi il n'y a pas photo, c'est une vrai nuisance. Parfois c'est un vrai calvaire de déchiffrer ces symboles broyées alors que certains bots le font avec une facilité déconcertante.

    Pourtant rien n'est perdu, on trouvera peut-être quelque chose de vraiment efficace :

    http://xkcd.com/233/
  • Neko
    Membre chevronné
    Envoyé par Hinault Romaric

    Pensez-vous que les CAPTCHA sont assez sécurisé?
    J'ai jamais vu de states dessus, ce serait intéressant à avoir. Mais ça semble être plutôt efficace

    Envoyé par Hinault Romaric

    D'après vous, commeny une entreprise comme Sony a-t-elle pu mettre au point un CAPTCHA aussi faible ?
    Un stagiaire; un code en attente devant être remplacé qui a été oublié; etc.

    Même chez sony ya des incompétents et l'erreur est humaine, ya des milliers de façons dont ça a pu arriver, c'est pas forcément voulu.

    Envoyé par Hinault Romaric

    Considérez-vous les CAPTCHA, comme Andrew Hintz, c'est à dire plus comme une nuisance que comme un outil de sécurité ?
    J'ai rarement été bloqué par un captcha... il m'est arrivé de le raté 2 ou 3 fois d'affilé pour certains ce qui est ennuyeux oui, mais la grande majorité prend juste 2 secondes.
    Pour donner un exemple, je trouves ça beaucoup plus chiant tous les forums et sites lambda qui t'obligent à remplir nom; prénom; adresse lors d'une inscription tout en sachant très bien que strictement personne met de vrai informations. Ou encore la validation de l'email qui t'oblige à aller ouvrir ton mail et cliquer sur ce satané lien en sachant que la moitié des adresses sont des adresses jetables.