Demander deux fois le mot de passe lors de la création d’un compte

C’est idiot. Et pourtant ce modèle de conception est particulièrement courant sur le web. CDiscount le fait, Vente Privée le fait, Les 3 Suisses le fait, Auchan le fait, Carrefour le fait, Leclerc le fait, La Redoute le fait…

C’est bien simple, j’ai pris la liste des vingt premiers e-commerçants de France sur JournalDuNet, et sur ces vingt sites, seuls deux (Sarenza et Éveil et jeux) ne demandent pas de saisir deux fois le mot de passe lors de la création d’un compte. Il se trouve que j’ai aussi pêché par le passé en faisant exactement la même chose. Et puis j’ai eu l’occasion de réaliser à quel point c’était idiot il y a quelques années en travaillant sur la refonte d’un gros site e-commerce.

Pour se rendre compte à quel point c’est idiot, il faut se poser une question simple mais récurrente dans la conception web : quel problème est-ce que j’essaie de résoudre ?

À la base, l’origine du besoin de ce deuxième champ est totalement saine d’esprit. Ce champ est là pour s’assurer que l’utilisateur n’a pas fait d’erreur en tapant son mot de passe. Ça arrive de faire des erreurs. Et encore plus quand on ne voit pas ce qu’on écrit, comme dans un champ de mot de passe.

Mais du coup, le fait de taper deux fois son mot de passe dans des champs où l’on ne voit pas ce qu’on écrit ne résout pas du tout le problème. L’utilisateur a désormais deux fois plus de chances de faire des erreurs. Et corriger son erreur devient désormais deux fois plus long, puisque sans voir ce qu’il a écrit ni où se trouve l’erreur, l’utilisateur sera obligé de retaper ses deux mots de passe.

Alors comment résoudre ce problème ? Plusieurs solutions existent :

  • Permettre d’afficher le mot de passe en clair. C’est ce qui existe depuis un bail sous OS X, et plus récemment sur Windows 8 (et c’est la solution adoptée chez les deux bons élèves cités en début d’article). C’est extrêmement facile à mettre en place avec jQuery (ici un tutoriel en français chez Creative Juiz).
  • Afficher les lettres en clair au fil de la saisie. C’est le comportement par défaut sous iOS et Android. C’est un peu plus lourd à mettre en place (ici un exemple chez CSS Tricks), et le comportement n’est peut-être pas du meilleur effet sur desktop.
  • Afficher le mot de passe en clair. C’est ce que Jakob Nielsen implorait en 2009 dans son article Stop Password Masking. C’est radical, et à peser avec la sensibilité des informations accessibles derrière le compte. Mais rien n’empêche de combiner cette solution avec la première, en affichant par défaut le mot de passe en clair, et en permettant à l’utilisateur de le masquer si besoin.

Je vais conclure en casant cet XKCD.

Le champ important

Si vous êtes sur un site de vente en ligne et qu’on vous demande deux fois votre adresse e-mail et deux fois votre mot de passe, mais qu’une seule fois votre adresse postale, ça en dit surement beaucoup plus sur la volonté du vendeur à détenir vos informations personnelles plutôt que sa volonté de vous livrer à bon port.

  1. TomTom, le

    Pas d’accord du tout.

    Étant avant tout un utilisateur du web avant d’être un créateur, je suis bien content quand on me signale que je me suis gouré quelque part, même si c’est dans le champ de vérification. Je préfère ça que de me demander ensuite en me connectant pourquoi ça ne veut pas marcher, puis redemander un mot de passe qui met parfois plusieurs minutes à arriver, mot de passe généralement nouveau si le site est sécurisé, copier-coller ce mot de passer, se connecter, et aller le modifier ensuite dans son espace membre par celui voulu à la base.

  2. THéotix, le

    Je ne suis pas d’accord sur toute votre argumentation, si remplir deux fois le mot de passe est plus long, il permet de se rendre compte que l’on s’est trompé (parce que l’on a tapé trop vite peut-être) dans la saisie d’un des deux mots de passe.
    Et personnellement je n’ai pas envie, surtout un site de e-commerce, de remplir mon mot de passe dans un champ en clair.

  3. MeursaultF, le

    Excellent réflexion.

  4. Nico, le

    > Si vous êtes sur un site de vente en ligne et qu’on vous demande deux fois votre adresse e-mail et deux fois votre mot de passe, mais qu’une seule fois votre adresse postale, ça en dit surement beaucoup plus sur la volonté du vendeur à détenir vos informations personnelles plutôt que sa volonté de vous livrer à bon port.

    Mouais… sauf qu’en général, pour l’utilisateur lambda, le mot de passe, c’est un truc über compliqué qu’il ne retient pas, tandis que son adresse, il la connait (sauf cas particulier, tu sais où tu habites par cœur, par contre, le mot de passe…).

    Quand à l’adresse e-mail, si tu veux pouvoir communiquer (et si tout ton suivi client passe par ça), t’as intérêt que l’utilisateur l’ait bien rentré. Lors d’une inscription à un Paris Web précédent, j’avais écrit nioclas au lieu de nicolas dans mon email, résultat : impossible de recevoir la confirmation.

    Certes, le re-saisir ne garantit pas que je ne refasse pas la même erreur, mais ça limite la casse.

    Quand au mot de passe en clair, je suis mitigé. Certes dans certains cas, ça ne changerait rien, mais dans d’autres : tu fais une démo projetée sur écran ou tu utilises un ordi avec du monde autour, je suis moyennement chaud à l’idée que tout le monde puisse voir mon mot de passe.

  5. Rémi, le

    @Nico : Si on part sur cette logique alors tous les champs devraient être doublés, partout, tout le temps. Si un champ n’est pas doublé, ça signifie qu’on tolère qu’il soit incorrect. Si on tolère qu’il soit incorrect, ça signifie qu’on peut probablement s’en passer, et donc ne pas avoir ce champ en premier lieu.

  6. Alfred, le

    Pareil, la double entrée me semble indispensable.
    Par contre un petit check en js de la similitude des MDP est salutaire.

  7. jvoisin, le

    Je pense qu’au contraire, masquer le mot de passe et le demander deux fois est une bonne pratique: ça protège des regards indiscrets. C’est pour la même raison que le mot de passe n’est pas affiché lors du login.
    Je tiens pour acquis que l’utilisateur sait taper son mot de passe correctement, deux fois. S’il n’en est pas capable, je ne pense pas que lui afficher en clair sous les yeux l’empêcherait de faire une typo.

  8. Raphaël, le

    Je suis parfaitement d’accord avec toi pour plusieurs raisons :
    – Déjà on ne construit pas une interface sur la base des problèmes potentiels mais sur la base du fonctionnement normal. Pour illustrer cela rien ne vaut un dessin : http://blocnotes.iergo.fr/breve/conception-et-problemes-potentiels/

    Si on met deux champs qu’est ce qu’on va obtenir comme comportements ?
    – je vais copier/coller le mot de passe. Donc si il est faux la première fois, il le sera la 2éme fois.
    – Ouais, mais on va empêcher le copier/coller (2éme niveau anti-utilisateur)
    – Je ne vais pas pouvoir utiliser le logiciel qui stocke/chiffre/génère mes mots de passe compliqués et individualisés pour chaque site/service.
    – Je vais taper un mot de passe trivial « azerty123″ pour ne pas me tromper.
    – Ouais on va empêcher les mots de passe triviaux puis rajouter l’obligation d’utiliser des lettres, des chiffres et des caractères spéciaux (3éme niveau anti-utilisateur)
    – Ok, la machine essaye d’être plus intelligente que moi allez : PrénomDeMaFemmeAnnéeDeNaissanceSigneALaCon et pof : »monica64+ »
    – Bon, bah non ils ne veulent pas que je m’inscrive… Salut !

    Au final on arrive à quoi ? Un niveau de protection plus faible globalement que celui avec un seul champ et une mauvaise première impression ou bonne raison de quitter le site. A vous de voir !

  9. cendrieR, le

    Tant que le champ n’est en clair qu’à l’inscription, et pas à la connexion …
    Je rejoins cependant l’avis de Nico sur l’adresse postale qui a peut de chance d’être fausse : l’utilisateur la connait par coeur. Il y a une grosse différence entre une adresse postale, qui permet quelques inversions/oublis de lettres, et les adresses mail + mot de passe qui eux ont une tolérance 0 à l’erreur si on veut les utiliser par la suite.
    Avoir à remplir les champs deux fois c’est chiant, peut-être qu’il faudrait caler systématiquement une page récapitulatif pour forcer les gens à se relire ? On voit ça de temps en temps mais je serais incapable de donner une proportion des sites qui font ça, ou encore si les gens relisent vraiment leurs infos.

  10. Darathor, le

    Je suis d’accord essentiellement sur deux points :

    1) c’est un vrai problème à la base de vouloir avoir une meilleure garantie sur les champ cruciaux (en l’occurrence essentiellement l’email et le mot de passe qui s’ils sont faux peuvent directement mener à créer un nouveau compte). Pour les autres champs, même s’ils sont importants, il peuvent potentiellement être corrigés par la suite. Ils n’empêchent pas le fonctionnement immédiat.

    2) le fait de donner la possibilité d’afficher le mot de passe en clair est une bonne idée aussi : si on est seul derrière son écran, à l’abri des regards indiscrets, ça peut aider. On peut même envisager de masquer dans ce cas le champ de confirmation.

    Par contre sur tout le reste je ne suis absolument pas d’accord.

    1) le fait de taper deux fois le mot de passe résout bien une partie du problème : si on a fait une faute de frappe l’une des deux fois, on a une erreur (le risque de faire deux fois de suite la même faute existe mais est relativement faible…). Ce n’est certes pas infaillible mais de toutes façons, on ne vise pas l’infaillibilité, juste à trouver un moyen raisonnable d’écrémer le plus d’erreurs possibles. Et en l’occurrence retaper un mot de passe (qu’au pire on pourra copier coller si on veut prendre le risque) répond bien au problème.

    2) afficher le dernier caractère en cours de frappe c’est une question de survie sur un appareil mobile où les touches font le tiers de la taille du doigt qui tape dessus et sont de surcroit majoritairement tactiles, ce qui élimines les repères tactiles justement et augmente encore le la fréquence d’erreur. C’est également acceptable sur un mobile qui est en général personnel et dont l’écran est facile à cacher des regards indiscrets. Sur un ordinateur de bureaux c’est infiniment moins pertinent, tant il est bien plus difficile de masquer un écran 23 pouces des regards éventuels de ses voisins de bureau ou des personnes qui peuvent passer à proximité.

    3) concernant le fait d’afficher le mot de passe en clair systématiquement, c’est juste pire que tout, notamment pour la raison évoquée plus haut qui est encore 100 fois plus valable dans ce cas. Dans tous les cas c’est une connerie, même activé par défaut avec possibilité de le masquer. Qui va penser à le masquer à temps au moment où c’est important de le faire ? (d’autant plus quand on a l’habitude qu’il soit masqué par défaut justement)

    4) enfin sur le dernier point : il faut bien distinguer les informations vitales (e-mail et mot de passe) qui font que sans elle on ne pourra même plus contacter le client (par exemple pour lui signaler que les autres informations sont fausses) des informations certes très importantes mais pas vitales. L’adresse postale est bien plus tolérante aux coquilles que l’adresse e-mail. Un caractère de l’adresse e-mail ou du mot de passe est faut et l’ensemble de la donnée est mort (aucun e-mail n’aboutira si un seul caractère est faux). Un caractère qui change dans l’adresse postale, a de bonne chance de ne pas du tout empêcher la livraison (j’ai déjà reçu un certain nombre de courriers dont l’adresse était partiellement erronée). Donc non ce n’est pas du même niveau et ça n’a pas besoin du même niveau d’exactitude, même si c’est une information nécessaire.

  11. Naouak, le

    Pour tenir un site grand public dans ma vie pro, je suis toujours surpris du nombre de personne qui font une erreur de frappe sur leur mot de passe ou mail. Retirer cette vérification c’est potentiellement accepter une augmentation de ce taux d’erreur.

    Maintenant dans quel cas, les gens partiront plus souvent sans revenir :
    1. Ils doivent rentrer deux fois leur mail/mot de passe
    2. Ils arrivent pas à se connecter parce que leurs mail/mot de passe à l’inscription sont erronés

  12. mulk, le

    @Raphaël: tout à fait d’accord, surtout que si on a fait une erreur lors de la saisie du mot de passe, on peut toujours « ré-initialiser le mot de passe » (du coup, avoir saisi un mail correct devient capital).

  13. mulk, le

    @Naouak-> Vous avez oublié:
    3. Le site est merdique :D

    Plus sérieusement, votre question est insoluble car cela dépend de la volonté de l’internaute et de l’effort qu’il est prêt à faire pour obtenir ce qu’il est venu chercher…

  14. Zan, le

    Marrant ça, ces 2 problèmes m’arrivent très régulièrement, et une erreur sur le mot de passe pas plus tard qu’hier soir. Heureusement qu’il y a ces deux champs en double pour contrôler les erreurs de frappe, ça évite beaucoup de noeuds au cerveau à se demander d’où peut provenir cet satanée impossibilité de connexion, internet ? identifiant ? adresse de courriel ? mot de passe ? délai de création de compte ? autre chose ?

    Pour l’adresse internet il faut savoir que le cerveau est incapable de voir une erreur de frappe :
    Sleon une édtue de l’Uvinertisé de Cmabrigde, l’odrre des ltteers dans un mtos n’a pas d’ipmrotncae,la suele coshe ipmrotnate est que la pmeirère et la drenèire soit à la bnnoe pclae. Le rsete peut êrte dans un dsérorde ttoal et vuos puoevz tujoruos lrie snas porlblème. C’est prace que le creaveu hmauin ne lit pas chuaqe ltetre elle-mmêe mias le mot comme un tuot.
    Si tu es sûr d’avoir tapé la bonne adresse de courriel, une inversion de lettres sera totalement invisible. Tout ce qu’on peut être sûr, c’est d’avoir taper son adresse de courriel dans le bon champ. Rien d’autre.
    Autant le cerveau corrige les erreurs, autant pour une machine c’est tolérance zéro.

    Concernant le mot de passe, j’étais emmerdé parce qu’incapable de taper 2x le même mot de passe. Apparemment, en plus d’une possible erreur de frappe qui arrive souvent, il y avait un script qui tournait en arrière plan et lorsqu’il se lançait et que j’enfonçais une touche au même moment celle-ci n’était pas prise en compte. J’ai dû m’y reprendre à 5x avant de réussir ! la poisse ! -_- »

    Alors moi je dis merci aux champs en double. :)

  15. lordfpx, le

    Pas trop d’accord sur cette position.

    Demander 2 fois l’email est nécessaires, car c’est souvent le véritable ID de l’utilisateur (pour la connexion, pour récupérer un mot de passe, être informé par l’admin de fait importants…). Se tromper lors de l’inscription peut avoir de grosses conséquences.

    Demander le mot de passe 2 fois est tout aussi important pour éviter les classiques erreurs de frappe, je suis un habitué du web, un développeur front et pourtant je tape souvent trop rapidement mes mots de passe et je suis bien content quand le formulaire me le signale.

    Les champs adresses n’est pas comparable aux 2 autres champs, car l’erreur y est souvent minime et l’expédition est rarement impactée alors qu’une erreur sur un email ou un mot de passe est tout de suite bloquant.

  16. Alex, le

    THéotix : «Et personnellement je n’ai pas envie, surtout un site de e-commerce, de remplir mon mot de passe dans un champ en clair.» ???????????????
    Ça change quoi que le mot de passe soit visible, sauf si quelqu’un est derrière votre dos pendant la création du compte ? Car au final, le mot de passe sera très certainement envoyé *en clair* vers le site Internet (je n’ai pas encore vu de formulaire d’inscription en ssl).
    Je suis d’accord avec l’article, la création de compte se ferait plus rapidement si le mot de passe tapé était visible.

  17. shavounet, le

    (J’ai pas tout lu) mais c’est clair que le double mot de passe est loin d’être infaillible. Je suis le premier à faire 2x les mêmes fautes en tapant trop vite. Autre exemple à la con : le caps lock suffit pour pourrir 2x son mot de passe sans s’en rendre compte.

    Par contre je ne suis pas du tout d’accord sur le mot de passe en clair, ou les hacks JS à la con. Premièrement, je pense qu’un navigateur doit lui même offir cette possibilité ou non. En plus (je ne sais pas si ça existe déjà, ou si c’est faisable, sinon imaginons un futur lointain où c’est le cas) mais c’est lui qui est garant de la sécurité du mot de passe, et un hack-js-a-la-con rend à coup sûr toute sécurité inutile.

  18. EloiZ, le

    Pas d’accord moi non plus.
    Je préfère largement la solution de la double demande de mot de passe.
    Ce qui m’énerve au plus haut point ce sont les sites qui envoient le mot de passe par mail (en clair) lors de la confirmation de création de compte (bonjour la sécurité).

  19. Jerry Wham, le

    Pour les mots de passe masqués il existe l’extension Firefox webdeveloper qui permet de lever le masquage. Perso je l’utilise systématiquement car la configuration de mon bureau permet d’éviter les regards indiscrets. Il faut que l’utilisateur puisse faire ce qu’il veut et le masquage ou non du mot de passe doit relever de sa responsabilité. Après pour l’adresse émail c’est vrai que ça ne supporte pas l’erreur. Peut être qu’une alternative serait de ne le taper qu’une fois et ensuite afficher à l’utilisateur un message du style : un message vient d’être envoyé à l’adresse mon@email.fr (ecrit en gros). Si cette adresse est incorrecte veuillez la modifier en cliquant sur ce lien (qui redirige vers le formulaire précédent rempli avec les informations de session) sinon cliquez sur le lien suivant (qui enregistre définitivement le compte, supprime les informations de session pour éviter les retours en arrière et dirige vers le formulaire de connexion par exemple).

  20. Damien Cuvillier, le

    Tellement d’accord.
    Je serais d’ailleurs curieux de savoir combien de formulaire d’inscription un internaute moyen rempli par mois…

    Effectivement, afficher le mot de passe en clair peut être risqué vis à vis des regards indiscrets. Mais la première alternative est pas mal.

    De plus, les procédures de récupération de mot de passe sont devenues tellement simples. Au pire, si on s’est trompé on peut revenir en arrière.

    Dans une utilisation de e-commerce, ça me parait tellement évident, là dans un milieu bancaire, ca peut encore paraitre risqué (quoique).

    A ce titre, je constate avec satisfaction que les premiers claviers visuel disparaissent, tel que chez Credit Mutuel…
    Il était temps, double mots de passe, captcha, claviers visuels ne sont qu’une issue informatique pour palier à des lacunes techniques de sécurité mais ne sont justifiées à mon sens par aucun sens ergonomique/pratique.

  21. Pierre TL, le

    Un truc que je trouve complètement idiot lors de la double saisie du mot de passe, c’est que le copier coller soit autorisé et c’est le cas 2 fois sur 3 environ.

    Peut être faudrait-il laisser le choix aux utilisateurs :
    – A l’inscription, affiche le mot de passe par défaut (en le signalant) et ajouter un petit bouton pour le masquer et qui ajoutera un second champ de vérification.
    – Pour la connexion, un seul champ avec un bouton affiché/masqué le mot de passe.

  22. Thomas Ruffier, le

    Mmmh et pourquoi tant de précautions ?
    Après tout, si l’utilisateur s’est trompé lors de l’inscription, il réinitialisera son mot de passe avec son adresse mail.

    En fait, le demander une seule fois en masqué est suffisant et moins contraignant pour l’utilisateur.

  23. Killian, le

    J’aime lorsqu’un site ne me demande de définir un mot de passe qu’après avoir cliqué sur le lien de validation du compte reçu par email.

    Sur le site je rentre mon identifiant et mail. (Une seule fois bien sûr.)
    Après avoir cliqué sur le lien de confirmation je rentre mon nouveau mot de passe. (Une fois seulement bien sûr.)

    Si je me suis trompé, ou si j’ai perdu mon mot de passe je demande à recevoir un mail fournissant un lien me permettant d’en saisir un nouveau.

  24. Jack NUMBER, le

    Hahaha : http://pourquoileweb.tumblr.com/post/65435441317/pourquoi-les-navigateurs-mobiles-ne-proposent-ils

  25. Grégocentrique, le

    Mon expérience personnelle qui intéressera au moins une personne (coucou Maman) : je suis l’heureux possesseur d’un kikou-clavier « lettres noires brillantes sur touches noires mates » très proche du modèle « clavier sans lettres ». J’utilise donc une extension FF qui m’affiche les mots de passe en clair au survol de la souris, pour pouvoir lire ce que je tape. Et à l’usage je me demande si ce n’est pas là la meilleure solution, pouvoir facilement switcher de l’un à l’autre au survol.

    Je suis également fortement opposé au champ de confirmation du mot de passe et bénis chaque site qui me permet d’éviter cette étape. Mais je peux comprendre l’avis inverse et ne vous jugerai donc point.

    J’ai également été confronté à la fac à un environnement où l’on pouvait lire mon mot de passe par dessus mon épaule et changer mon fond d’écran par fecaljapan.jpg malgré moi. Mais c’était il y a 10 ans et depuis je n’ai jamais réellement eu besoin de me cacher.

    Merci de m’avoir lu.

  26. sebastien, le

    Je suis d’accord sur ce que tu dis, mais pas sur ton argumentation. Demander deux fois le mot de passe est idiot. Et effectivement pour s’en rendre compte il faut se demander « quel problème j’essaye de résoudre en faisant ça ? » et la réponse, à mon sens, c’est : aucun problème.
    En effet, si je n’ai qu’un champ « mot de passe » à remplir et que, pensant le remplir avec ma date d’anniversaire : 15071980, je le remplis de manière erronée : 15071981, que va-t-il se passer lorsque je vais vouloir me connecter à mon compte ? Bah ça va pas marcher, et on va me signaler que mon mdp est faux… et donc je vais cliquer sur « mot de passe oublié » et basta. Aucun problème.

  27. galex-713, le

    Je suis complètement d’accord. Principalement pour une raison : toute l’intelligence, la complexité, doit être déplacée coté *client*. Trop longtemps de gros dinosaures ont figé le Web comme IE. Maintenant l’évolution a repris, et ça va dans la bonne direction (surtout grâce à la diversification des terminaux). En effet la force d’Internet c’est que l’intelligence est en périphérie, pas dans le réseau. Je pense qu’il faut appliquer ce concept également au client–serveur et que c’est le client qui doit choisir, s’adapter et rendre l’expérience utilisateur plus confortable.

    Il y a un moyen *sémantique* de spécifier une entrée de mot de passe, les navigateurs n’ont qu’à l’adapter en conséquence : changement de masquage facilité (de ronds à clair, voir un mot de passe n’affichant même pas le nombre de caractères, comme sous toute console Unix), dernière lettre qui s’affiche, ou répétition de l’entrée du mot de passe mais *fait coté client* et donc *en fonction des circonstances*. Par exemple en media=projector on pourrait ne pas afficher le nombre de caractères mais faire rentrer deux fois le mot de passe, en media=screen ne pas afficher les caractères mais permettre le démasquage facile, en media=handled afficher le dernier caractère, etc.

    Comme je le dis souvent : « le problème c’est pas le site, c’est ton logiciel ».