Pourquoi jK8v!ge4D n’est pas un bon mot de passe

La validation du mot de passe pose un problème fondamental.

Jetez un coup d’œil à ces deux mots de passe :

  • jK8v!ge4D
  • leséléphantsvertsavecdeschapeaux / greenelephantswithtophats

Selon vous, quel est le mot de passe qui prend le plus de temps pour être déchiffré par un ordinateur ? Et quel est, selon vous, le mot de passe le plus facile à retenir ? La réponse à ces deux questions est le mot de passe numéro 2. Pourtant, les gens sont encouragés à créer des mots de passe qui ressemblent au numéro 1. On a appris aux gens à écrire des mots de passe difficiles à retenir, sans raison valable.
Parlons de cela.

Il y a beaucoup de choses bizarres dans les normes de l’internet. La validation est l’une d’entre elles. Il est du devoir du développeur de s’assurer que l’utilisateur n’entre rien de malveillant ou de mal formaté dans ces champs.
Par exemple, un champ qui demande un numéro postal n’autorise généralement que des espaces et des chiffres, et si nous savons dans quel pays vit l’utilisateur, nous pouvons également le limiter à un certain nombre de caractères. Les numéros de téléphone peuvent souvent comporter des chiffres, un signe plus (seulement au début) et un tiret, peut-être aussi une parenthèse si nous nous sentons libéraux. Les adresses électroniques sont difficiles à valider, mais une pratique courante veut qu’elles comprennent un signe (@) suivi d’un point, même si une adresse électronique parfaitement valide ne peut en fait avoir aucun de ces attributs. Certains sites web essaient de valider les noms en obligeant les gens à ne pas dépasser une certaine longueur ou en les obligeant à n’utiliser que certains caractères, bien que ces validations ne fonctionnent jamais vraiment car les noms des gens peuvent être à peu près n’importe quoi.

La validation est mise en œuvre pour plusieurs raisons. L’une d’entre elles est la sécurité. La validation empêche les utilisateurs d’entrer des codes effrayants dans les champs qui pourraient modifier la base de données ou effectuer d’autres actions malveillantes. Une autre raison est de forcer un certain type de données. Si un champ n’est censé être composé que de chiffres, l’ingénieur de la base de données peut avoir mis en place une colonne de la base de données qui n’autorise que les chiffres, ce qui signifie qu’un symbole qui n’est pas un chiffre provoquerait une erreur.

Mais la raison principale, en réalité, est d’aider l’utilisateur à éviter de faire des erreurs.

Forcer vos mots de passe

Pour une raison quelconque, on attend des développeurs front-end qu’ils veillent à ce que les utilisateurs saisissent ce qui est traditionnellement conçu comme un bon mot de passe. Il doit comporter au moins huit caractères, inclure des majuscules et des minuscules, un chiffre et, si nous nous sentons vraiment tatillons, il doit même inclure un caractère spécial, comme un point d’exclamation.
Voici un exemple de ce qui est généralement considéré comme un mot de passe solide : jK8v!ge4D. Étant donné que l’on vous demande souvent de saisir un tel mot de passe, il serait juste de votre part de supposer que nous le considérons comme un bon mot de passe.
Ce n’est pas le cas. C’est stupide. C’est un mauvais mot de passe.

Tout d’abord, comment quelqu’un est-il censé se souvenir de cela ? Ce qui arrive, c’est que les utilisateurs ne peuvent pas s’en souvenir, alors ils écrivent les mots de passe quelque part. Comme sur un post-it. Et puis ils finissent par se faire « pirater ».
Ensuite, les utilisateurs finissent par utiliser le même mot de passe pour différents services, car il est impensable de garder la trace de tout un tas de ces mots de passe complexes. Lorsque vous créez un compte pour un site web décent, un code magique en coulisse transforme votre mot de passe en un hachage (communément et incorrectement appelé cryptage). Votre mot de passe finit par ressembler à quelque chose comme ceci dans la base de données : k5ka2p8bFuSmoVT1tzOyyuaREkkKBcCNqoDKzYiJL9RaE8yMnPgh2XzzF0NDrUhgrcLwg78xs1w5pJiypEdFX. Même si la base de données est piratée, le pirate ne peut pas vraiment faire quoi que ce soit avec ces informations. Il est possible de retrouver le mot de passe original si celui-ci est assez courant et si l’algorithme est assez simple, bien qu’avec un mot de passe quelque peu décent qui a été correctement haché, il soit généralement assez sûr.
Le problème est que tous les services ne hachent pas les mots de passe de leurs utilisateurs. Si vous utilisez le même mot de passe pour de nombreux services, vous risquez de vous retrouver avec un service mal programmé qui enregistre en fait votre mot de passe en texte clair dans sa base de données. S’ils finissent par être compromis, le pirate a soudainement votre mot de passe pour tous vos comptes où vous utilisez le même mot de passe. C’est effrayant, et cela arrive beaucoup plus souvent qu’on ne le pense.
C’est pourquoi vous DEVEZ utiliser des mots de passe différents pour les différents sites web. Cependant, les utilisateurs d’aujourd’hui ont des comptes sur des tonnes et des tonnes de sites web. Comment sont-ils censés se souvenir de tous leurs mots de passe ? Les utilisateurs expérimentés peuvent utiliser un outil de mémorisation des mots de passe, mais vous ne pouvez pas vous attendre à ce que l’utilisateur moyen le fasse.
Il existe une meilleure solution.

Combien de temps faut-il pour craquer ?

Regardez cette chaîne de caractères : gtypohgt. Il s’agit de huit caractères aléatoires, tous en minuscules. Il ne faut pas plus de deux minutes à un ordinateur moderne pour la traverser de force. Remplacez certains caractères par quelques chiffres, et vous obtenez un mot de passe qui peut prendre jusqu’à une heure à cracker (g9ypo3gt). Remplacez quelques caractères par des majuscules, et le mot de passe prendra des jours à craquer (g9YPo3gT). Si vous y ajoutez un signe spécial, cela peut prendre jusqu’à un mois (g9Y!o3gT).

g9Y!o3gT est techniquement un mot de passe décent. Personne ne pourra le deviner, il ne figure sur aucune liste de mots de passe courants et les ordinateurs mettront un temps raisonnable à le déchiffrer. Le problème est que ce mot de passe est difficile à retenir pour un humain – sans raison réelle.

Regardez maintenant cette beauté : des éléphants verts avec des chapeaux  (greenelephantswithtophats). Cela fait 24 caractères, tous en minuscules. Pas de chiffres, pas de caractères aléatoires, pas de manigances. Pourtant, il faudra des milliers et des milliers d’années à un ordinateur pour déchiffrer ce mot de passe. Vous voyez, pour chaque caractère que vous ajoutez, le temps nécessaire à un ordinateur pour le craquer augmente considérablement. Greenelephantswithtophats ne figure sur aucune liste de mots de passe courants, et aucun humain ne pourra le deviner non plus.

Voilà un bon mot de passe

Créez un mot de passe qui raconte une histoire. Vous avez besoin d’un mot de passe Facebook ? Que diriez-vous afaceforabookbutapizzaforahorse (a face for a book but a pizza for a horse) ? Visualisez-le. Notre mémoire spatiale est notre mémoire la plus forte. Soudain, vous avez un mot de passe extrêmement puissant, facile à retenir et unique à un site web particulier. Ce mot de passe doit être quelque chose que même les personnes qui vous connaissent très bien ne peuvent pas deviner. Vous ne parlez pas souvent des tortues, n’est-ce pas ? Avez-vous déjà vu une tortue violette ? Non ? Visualisez-la. C’est fait, maintenant. Vous pouvez mentir dans vos mots de passe : ioncesawapurpleturtleiswear (j’ai vu une fois une tortue violette, je le jure). Il faudra des millions d’années pour qu’un ordinateur moderne se déchiffre, et même votre sœur ne pourra pas le deviner.

Il faudrait des millions d’années à la force brutale pour déchiffrer cela. Il est également impossible pour les humains de le deviner – même si quelqu’un peut découvrir que le nom de votre animal de compagnie est Rufus, il ne pourra jamais deviner que cette phrase particulière sera votre mot de passe.

Ces mots de passe sont faciles à imaginer. des voitures volantes qui ne peuvent pas voler. des pommes peuvent être superbes, mais le poirier est comme le ciel. des chèvres avec des chaussures qui se plaisent à faire la fête pendant les jours de pluie (flyingcarsthatcannotflyarenotflying. applesmaybegreatbutpearsarelikeheaven. goatswithshoesenjoytrainsonrainydays.) Personne ne les devinera.
Pourtant, certains sites web n’autorisent pas non plus ces mots de passe. Ils se plaindront que vous n’ayez pas ajouté de chiffre ou de majuscule ou que celui-ci soit trop long, ou encore pour une autre raison non technique et absurde.
Vous pourriez donc tromper un peu le système. Ajoutez A1 ! à la fin de n’importe lequel des mots de passe ci-dessus, et ils seront acceptés par tout système qui ne les appelle pas trop longs. Vous avez maintenant un caractère en majuscule, un chiffre et un signe spécial. Même si ces trois caractères sont identiques sur tous vos mots de passe, le reste du mot de passe compensera. ioncesawapurpleturtleiswear et ioncesawapurpleturtleiswearA1 ! sont tous deux impossibles à déchiffrer par un ordinateur, ce qui signifie que vous devez saisir ces caractères à la fin, ce qui n’est rien d’autre qu’un inconvénient.

L’intention des développeurs est bénigne. Les gens entrent de mauvais mots de passe. Les gestionnaires de sites web ne veulent pas de scandales, alors ils essaient de forcer les utilisateurs à entrer des mots de passe décents, aussi encombrants soient-ils.

N’oubliez pas cette technique la prochaine fois que vous devrez créer un mot de passe. Faites-en un qui soit difficile à déchiffrer pour les ordinateurs et facile à retenir, et non l’inverse.

Oh, mais même si vous ne le faites pas, promettez simplement de vous tenir à l’écart de toute variation de 123456, password123 et qwerty. Ce sont en fait de mauvais mots de passe.
Eh bien, je suppose que c’est pour cela que nous vous forçons à écrire quelque chose comme ce jK8v!ge4D.
Cercle complet.

Via Towardsdatascience

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.