Un chiffre, une majuscule, un caractère spécial et visiblement beaucoup de drogue
L’autre jour je passe à côté de ça (dans ce tweet) :
En gros, pour s’inscrire sur ce site, il faut un mot de passe et un ID. Et comme tous les sites, il y a des règles pour choisir un bon mot de passe et un ID. Sauf qu’ici, les règles sont totalement débiles : l’une d’elle décide que le nom d’utilisateur doit avoir entre 6 et 12 lettres, mais surtout pas 9. Quant au mot de passe, les règles sont totalement à côté de la plaque : pas plus de 4 fois le même chiffre, pas plus de 12 caractères…
Je ne sais pas ce que la personne qui a mis ça a fumé, mais il a vraiment trop dû en prendre, gros.
Qu’on veuille pousser les gens à prendre l’habitude de choisir des mots de passe complexes et surtout longs, c’est une bonne chose. Mais là c’est totalement contre-productif. Généralement, quand on limite la taille d’un mot de passe, c’est parce que le système qui gère les mots de passe et les ID des utilisateurs ne peut pas stocker des chaînes de caractères trop longs. À la base, ces « règles » étaient là pour ça. Donc ajouter une clause « entre 6 et 12 caractères » est d’une absurdité totale.
De plus, dans tous les cas, quand on stocke un mot de passe sur le serveur, quand on sait s’y prendre, ON NE STOCKE PAS LE MOT DE PASSE EN CLAIR. On utilise un algorithme de hashage par dessus le mot de passe. On prend également soin d’ajouter dans l’algorithme de hashage des informations comme un « salt » au d’autres informations (navigateur, IP, date…). Sans entrer dans les détails, il s’agit d’ajouter des informations supplémentaires avec le mot de passe pour augmenter drastiquement sa solidité.
Une conséquence du hashage (un algo à sens unique qui offusque le mot de passe de façon irrémédiable), est que quelque soit la longueur du mot de passe (8, 12 ou 4579 caractères), on obtiendra toujours une chaîne de caractères unique d’une longueur bien précise : 32, 64 ou 128 bits caractères. C’est cette chaîne qui est alors stockée (et non pas le mot de passe lui-même).
Avec ceci en tête : expliquez-moi pourquoi mon mot de passe ne peut pas être aussi longue que je le souhaite ?
Par ailleurs, que mon mot de passe contienne des lettres minuscules ou majuscules, des chiffres, des caractères non-alphanumériques ou encore des kanji, de l’hébreu ou même des émoticônes, ça ne devrait jamais poser le moindre problème.
À nouveau : expliquez-moi quel système vous utilisez pour que vous soyez incapables d’accepter des signes de ponctuation ou des caractères inhabituels ? C’est quoi votre problème ?
Laissez les utilisateurs faire : s’ils veulent mettre des smiley dans un mot de passe, c’est leur problème. C’est à eux d’être assez informés pour savoir que les émoticônes c’est la merde et selon les appareils ils sont tous différents. C’est à eux de choisir de mettre des kanji dedans, et de pouvoir les reconnaître (et savoir les lire).
Plutôt que de prendre les gens pour des cons, apprenez leur à être moins cons. C’était pas un des buts d’internet : informer le monde ?
Dans un contexte où la sécurité des données est primordiale, il n’y plus aucune raison pour limiter la complexité et la longueur des mots de passe, si ce n’est votre incompétence technique (à celui qui code, ou plutôt à celui qui donne les ordres à celui qui code, c’est d’ailleurs généralement cette seconde solution…).
ÉDIT : on me fait remarquer qu’il y a un cas où une limite devient acceptable : quand il s’agit de limiter les données transférées au serveur à chaque connexion, et les données qui sont passées à la fonction de hashage. Si on utilise un mot de passe énorme, ces données sont également importantes et il s’agit là d’une faille de sécurité, permettant des attaques DDoS plus faciles.
Si je suis d’accord avec la remarque (il existe effectivement un risque pour le site, pas pour les données), ceci s’applique uniquement dans le cas où le mot de passe est énorme. Même s’il fait 4096 caractères de long, ça ne devrait pas être gênant. On est dans tous les cas loin des « 12 caractères ». De plus, ça n’explique pas pourquoi tant de sites interdisent les caractères dits « spéciaux »…