Mots de passe

Je suis horrifié par la politique de sécurité de la plupart des sites web. Peut-être qu’il manque une solide formation aux développeurs web sur les questions de sécurité. Peut-être que les clients n’en ont rien à foutre et ne sont pas prêt à payer un poil plus cher pour avoir un site mieux sécurisé. Pire, peut-être qu’ils sont prêts à payer mais qu’on les arnaque en leur vendant de la merde.

Commençons par un principe de base : jamais personne ne doit jamais avoir accès à un mot de passe, par aucun moyen, sous quelque forme que ce soit. Jamais. JAMAIS !Pourquoi ? Parce que les utilisateurs ont tendance à toujours utiliser le même mot de passe partout. C’est mal, mais ils le font quand même. Du coup, si un mot de passe est compromis sur un site quelconque par une personne mal intentionnée, il y a toutes les chances pour qu’elle essaie de voir si par hasard, ce mot de passe ne fonctionnerait pas aussi sur d’autres sites : twitter, facebook, la boîte mail de l’utilisateur, etc. La boîte mail est bien sûr le plus sensible. Une fois qu’un tiers a accès à vos mails, il a accès à l’option « J’ai oublié mon mot de passe » de tous les sites sur lesquels vous avez des comptes.

Ne croyez pas que seul un hacker de haut niveau puisse pirater un site. Ça peut être un employé de la boîte qui gère le site web et qui a tout naturellement accès à la base de données qui se trouve derrière. Ça peut aussi être l’ordinateur qui fait tourner le site qui est saisi par un huissier sur ordre de justice, puis revendu aux enchères à un inconnu avec toutes les données qu’il y a dessus (la boîte où je travaillais en 1999 a été confrontée à ce problème). Ça peut être un bug qui fait qu’un utilisateur régulier a accès aux infos d’un autre utilisateur (le site de Navigo a eu ce problème il y a quelques années).

De ce principe de non-accessibilité des mots de passe découle quelques règles de conception technique.

Hélas, la majorité des sites n’appliquent pas ces principes. Le niveau de sécurité qu’ils fournissent est plutôt bas et pour éviter les problèmes, je ne saurai que trop vous conseiller d’utiliser un mot de passe différent à chaque fois. Ainsi, si un mot de passe est corrompu sur un site, les conséquences seront limitées à ce site. Bien sûr, il peut être difficile de mémoriser autant de mots de passe. Pour s’aider, on peut utiliser les astuces suivantes :

Un autre principe, moins intuitif a priori, est que le mieux est l’ennemi du bien. En tant que développeur de site web, vous croyez augmenter la sécurité en exigeant des utilisateurs qu’ils choisissent des mots de passe complexes et qu’ils les changent régulièrement ? Erreur. Vous la diminuez, parce qu’à partir d’un certain niveau de complexité, les utilisateurs n’ont pas d’autre choix que de noter leur mot de passe sur un post-it pour réussir à s’en rappeler… Et un post-it, ça s’égare.

D’une façon générale, je pense qu’il ne faut pas trop imposer de contraintes sur le choix des mots de passe. Il faut exiger un niveau de sécurité minimal pour éviter les choix idiots (et pourtant répandus…). Mais interdire ou obliger certains caractères est plutôt de nature à emmerder l’utilisateur, et donc à baisser la sécurité. À propos de la résistance des mots de passe, ce petit strip de XKCD est éloquent.

Passons à cette abomination qu’utilisent pratiquement toutes les banques de nos jours sur leurs sites web (et même sur leurs applications iPhone ou Android) :

Voilà un parfait exemple du gadget qui rassure tout le monde alors que ça fait en réalité diminuer la sécurité, et cela pour deux raisons.

Ce truc réussit donc l’exploit de faire passer la sécurité des sites bancaires de pipeau à pipeau moins moins tout en faisant chier les utilisateurs. J’espère que son créateur a déjà sa place réservée aux enfers.

À propos de sécurité pipeau, faites-moi penser à vous parler un jour de cette grosse arnaque que sont les scanners d’empreintes digitales…