Florilège des systèmes de vérification d’humain

Publié le 27 juillet 2007 par magnus (retour à la page principale du site)

Le titre n’est pas très évocateur, mais faute de mieux…

Il existe une problématique liée au besoin de vérifier si on a affaire à un être humain ou une machine. Dans le monde « réel » cette problématique n’est pas encore d’actualité, en parlant avec quelqu’un, on peut aisément savoir si elle est humaine. Dans le cadre du web par contre, le problème prend toute son ampleur. En effet, comment savoir si on a affaire à un humain au moment de la soumission d’un formulaire (dans le sens <form>…</form>). Que ce soit un achat, une demande de contact ou une inscription, le problème est le même. De manière générale, le but est toujours le même: éviter l’abus, d’un service (par exemple: compte email pour envoyer du spam) ou de la patience de l’administrateur. A ce jour, il n’y pas de critères passifs (qui ne demandent pas l’intervention de l’utilisateur) pour déterminer de façon satisfaisante l’humanité de l’interlocuteur. Il a donc été décidé de demander à l’utilisateur de prouver qu’il est bien humain. Le contraire, demander à un bot de prouver qu’il n’en est pas un, aurait été plus juste car il n’embêterait pas les utilisateurs mais la méthode ou technique se fait attendre.

les systèmes visuels

Les premiers systèmes a être apparu sont des challenges sous formes d’images contenant des lettres ou chiffres qu’il fallait recopier dans un champ du formulaire.

challenge simple

Simple dans le principe, l’application l’est moins.

Premièrement il faut que le développeur comprenne qu’il ne faut jamais faire confiance au client. En effet, on a vu des implémentations farfelues (dont Secure Form mailer for WordPress version 5.3) qui stockait (à la fonction hash près) le code dans un cookie. Le butineur retourne avec le reste du formulaire, le code entré par l’utilisateur ET le code de vérification. Ce système ne sert donc à rien!

Deuxièmement, les concepteurs de scripts et de bots ont relevé le nouveau défi que représente ces images car les machines n’ont pas d’yeux (vraiment?). Il y a actuellement 2 manières d’aborder le nouveau problème:

  1. élever la machine au rang de pouvoir prouver son humanité
  2. déléguer le challenge à un être humain

Une image est un assemblage de point, lorsqu’elle est décompressée. Ces points et leur position peuvent être utilisé pour faire de la reconnaissance de caractères. La machine repère les séparations entre les caractères et compare ces derniers à l’ensemble fini de caractères possibles (rappelons-nous, les caractères doivent être reconnaissable par les humains inférieurs dans ce domaine). La machine sait donc lire! La parade à cela consiste à « noyer » les caractères dans du bruit pour que la machine ne les trouve pas:

celui de Yahoo au 27 juillet 2007
yahoo challenge

celui de MSN au 27 juillet 2007
msn challenge

celui de Facebook au 27 juillet 2007 (celui de reCaptcha en réalité)
facebood challenge

Cette solution est ingénieuse pour résoudre ce problème mais n’est de loin pas la panacée. En effet, la second approche des méchants est de déléguer la reconnaissance des caractères à des humains qui ne feraient que cela. Ce scénario est plausible et réel quand on connait les moyens mis en oeuvre par les organisations criminels sur internet. Donc la machine lance la procédure et dès qu’il s’agit de prouver son humanité, elle demande à un humain de l’aider. Il faut imaginer comme exemple, la création de millier de compte Yahoo. L’humain qui peut être payé au code retranscrit, se voit présenter une dizaine de challenge à la fois.

les autres sens

Un autre problème causé par l’usage d’image est l’accessibilité; comment le mal-voyant ou l’aveugle relève-t-il le challenge? Un autre sens vient à son secours. Les sites proposent donc une alternative audio de leur challenge. Par contre, il s’agit de ne pas ouvrir les portes que l’on a fermé avec l’usage d’image complexe. Il faut donc que la machine ne puisse pas faire de la reconnaissance vocale avec les sons. Du bruit est donc ajouté au son.

alternative amusante vite contournée

Une alternative à l’usage de médias est de poser des questions à l’utilisateur. Cette approche peut paraître ingénieuse, mais il ne faut pas oublier les moyens utilisés pour contourner ces mesures. Dans ce cas précis, il suffit de répertorier les questions une fois pour toute, à l’aide d’un humain par exemple, pour que cette mesure ne serve plus à rien. En plus si le système est répandu (script php, plugin pour gestionnaire de contenu courant), sa résistance n’en sera que plus faible.

le risque

Tant qu’un site n’attise pas la convoitise; ne pas être google, yahoo, msn, securityfocus aide. Son propriétaire ne devrait pas investir pour trouver une solution meilleure. Un simple système qui fonctionne correctement (une image à recopier), couplé à d’autres mesures comme les analyses de la fréquence, du contenu (anti-virus, anti-spam) le mettra à l’abri.

Il faut toujours garder à l’esprit qu’en matière de sécurité, un système est aussi sûr que son élément le plus faible et donc, avoir un CAPTCHA qui ne fonctionne pas, revient à ne pas en avoir du tout.

Laisser un commentaire

(obligatoire)
(obligatoire)


Bad Behavior has blocked 10 access attempts in the last 7 days.