Ces contrôles de mots de passe qui ne sont qu’une illusion de sécurité

13/06/2016

La plupart des tests utilisateurs que j’ai l’occasion de mener passent à un moment ou un autre par une authentification, une étape si commune qu’on pourrait croire qu’elle est anodine… et pourtant c’est loin d’être le cas ! L’expérience est souvent douloureuse, et si ça peut leur simplifier la vie, les utilisateurs n’hésitent pas bien longtemps avant de contourner les contraintes de sécurité…

Comment les utilisateurs réagissent aux contraintes de sécurité ?

Pour sécuriser une connexion, on décide parfois d’implémenter de nombreuses règles de contrôle, par exemple : caractères imposés, longueur minimum et maximum, double saisie du mot de passe, etc. Que se passe-t-il lorsque l’utilisateur se trouve face à ces contrôles ? Voici quelques extraits que j'ai relevés au cours de tests utilisateurs sur différents projets :

« Ah, je vois que je dois le taper deux fois alors je vais mettre un truc pas trop long et pas trop compliqué. »

« En fait je peux pas relire ce que je tape alors il faut que je mette quelque chose de simple. »

« Bon ça fait déjà deux fois qu’il veut pas mon mot de passe parce que c’est trop court, donc je vais devoir mettre un truc bidon. »

« Je peux pas mettre mes mots de passe habituels donc je vais me le noter sur une feuille sinon je vais l’oublier. »

« Là je peux pas coller le mot de passe que j’ai généré, donc bon, c’est pas grave je vais mettre un autre que je mets tout le temps. »

« Bon ben il m’a bloqué pour 24 heures là donc je vais devoir recréer un compte du coup. »

Pour l’utilisateur, l’authentification n’est qu’un obstacle à passer le plus rapidement possible

Oui, l’authentification n’est qu’une contrainte pour l’utilisateur ! C’est le système qui a besoin de vérifier qui est là. L’utilisateur lui, sait très bien qui il est, et il aimerait bien que le système le comprenne rapidement. La plupart des contrôles trop contraignants conduisent donc l’utilisateur à opter pour des contournements moins sécurisés.

Ceci est d’autant plus dommageable que le critère le plus important en termes de sécurité est simplement la longueur du mot de passe.

Quelques règles pratiques ?

En résumé, voilà quelques règles pratiques qui me semblent poser un cadre moins douloureux pour authentifier un utilisateur, et donc finalement, plus sécurisé :

  • Autoriser les copier-coller
  • Permettre à l’utilisateur de vérifier sa saisie
  • Imposer peu de règles (privilégier la longueur minimum)
  • Annoncer les règles immédiatement (longueur, caractères, …)
  • Donner une limite de nombre de caractères très haute
  • Afficher un indicateur de niveau de sécurité
  • Ne pas demander une double saisie
  • Opter pour un anti-brute force très progressif (1min., 3.min, 5min)

Ressources

Le projet seethroughtrees.github.io/react-ux-password-field propose un composant react qui implémente la plupart de ces règles, intéressant à tester 🙂