Au commencement était le mot de passe
Quand est apparue l'idée de devoir protéger ses données et d'être l'unique personne à pouvoir accéder à son compte, on a créé les mots de passe. C'est simple, mais bancal : vous connaissez un secret, vous êtes le seul à le connaître et donc le seul à pouvoir "prouver" à la machine que vous êtes la bonne personne.
Très vite, on s'est aperçu de deux problèmes : si on oublie le mot de passe, comment fait-on ? Et si le mot de passe est trop facile à deviner, il ne sert plus à rien.
Les deux problèmes sont liés, car la règle veut de choisir des mots de passe complexes, mais qui vont se révélés difficiles à retenir. Enfin, j'utilise le verbe vouloir au présent, je devrais l'utiliser au passé. Il y a vingt ans, c'était la mode de dire qu'il fallait utiliser des mots de passe avec une minuscule, une majuscule, un chiffre et un caractère spécial. Mais pourquoi ?
Un peu de calcul
Quand on cherche à casser un mot de passe, on va calculer le nombre de possibilités à essayer pour casser un mot de passe. Prenons le cas simple d'un mot de passe de 2 caractères. Si je n'utilise que des lettres minuscules, j'ai 26x26= 676 possibilités (de aa à zz). Si j'ajoute les lettres majuscules, d'un coup je passe à 52x52= 2704 possibilités. En continuant le même raisonnement et en ajoutant les chiffres (10) et les caractères spéciaux (environ 10) on en arrive à 72x72= 5184.
On voit clairement que mettre des caractères divers permets de multiplier le nombre de possibilités, rendant difficile le travail d'un hacker qui cherche à casser un mot de passe. Maintenant, là on est sur des "petits" chiffres, car j'ai volontairement pris deux caractères pour que ce soit simple à calculer. Mais il y a vingt ans, on préconisait 6-8 caractères, et on considérait que c'était déjà beaucoup. En effet, si on part sur un mot de passe de 8 caractères, on arrive à plus de 700 000 milliards de possibilités. Ca commence à faire.
Sauf qu'à l'heure actuelle, on a facilement des processeurs qui font 3 milliards d'opérations à la seconde. Si bien qu'un processeur dédié à ce genre de calcul va casser un mot de passe de 8 caractères en ... 3 jours. Il y a vingt ans, on était pas sur les mêmes puissances de calcul, et donc on n'avait pas envisagé ça. Aujourd'hui, c'est trop peu.
Il vous reste un essai
Pour pallier à ce problème, on a créé la fonctionnalité de user locking. Tu te trompes 3 fois ? Et bien tu vas attendre une vingtaine de secondes avant de pouvoir réessayer, voire une minute. Et ainsi de suite. Car la force du hacker, c'est de pouvoir faire 3 milliards d'opérations à la seconde. Si vous le bridez à 3 en 20 secondes, la Terre aura explosé de sa belle mort qu'il n'aura toujours pas deviner votre mot de passe. On pourrait penser le cas réglé, et ne pas avoir à changer quoique ce soit. Et c'est là qu'arrive les fuites de données.
Parce qu'il faut se le dire, un hacker, il va aller au plus simple. Il peut tenter de contourner le fonctionnement du user locking, mais c'est long et fastidieux, et généralement assez robuste (avec des alarmes et plein de choses qui feront qu'on saura ce qu'il est en train de faire). Donc à la place, le hacker va piquer complètement la base utilisateurs du site en question, et hop ! Plus besoin de trouver votre mot de passe, il est dans la base !
Ca, c'était il y a un peu plus de quinze ans. La solution ne relève pas de l'utilisateur, mais du site, qui doit stocker les mots de passe de façon à ce qu'un hacker ne puisse pas les lire (pas en clairs) ni les décrypter (pas chiffrés avec une clé) car s'il a volé la base, il y a de forte chance qu'il ait aussi la clé ... Les mots de passe sont donc censés être stockés sous forme de "hash", qui est une opération irréversible, si bien que le hacker en ayant que le hash ne pourra pas remonter à votre mot de passe. Le voilà bien avancé. Mais comme les hackers sont malins, ils ont là aussi trouvé la parade.
Taste the rainbow
Comme les utilisateurs sont cons, ils utilisent toujours les mêmes mots de passe. Donc des gens motivés ont calculé les hashs les plus "probables" des mots de passe les plus probables, ils les ont mis dans une grande base qui s'appelle une rainbow table. Donc le hacker, une fois qu'il a piqué la base, il regarde votre hash, et il cherche dans sa rainbow table s'il y a une correspondance. Si oui, il est content, il a direct votre mot de passe. Si non, on en revient à la puissance de calcul : il peut faire les calculs sur son pc et chercher à casser votre mot de passe en testant tous les hashs, mais ça va lui prendre du temps, et il ne perdra pas ce temps pour un compte à piscou magazine.
Alors on fait quoi ?
Déjà, on est pas à poil car avec les années, les sites ont amélioré leurs défenses : le user locking, puis le hash des mots de passe, et en prime il faut que le hacker ait piqué la base. On est pas sur un truc simple à réaliser, ce qui veut dire que la plupart des mots de passe sont "sûrs" même à 8 caractères. Seulement, c'est un peu risqué de se baser là dessus, vu le nombre de sites piratés chaque année et le nombre de fuites de données. C'est d'ailleurs pour ça qu'il y a des publications pour inciter les utilisateurs à changer leurs mots de passe et ne pas réutiliser des mots de passe qui étaient dans des fuites de données. Mais en plus de ça, il y a quelques petites astuces qu'on peut rajouter pour ne pas se faire pirater facilement.
You know the rules
On va faire une liste, parce que les listes, c'est la vie :
- Un mot de passe doit être unique. Si vous réutilisez le même mot de passe ailleurs, alors il faut que ce soit sur quelque chose qui n'a pas de valeur pour vous.
- Corrolaire de la première règle, vous pouvez vous définir des "groupes". Le but est de se fixer des règles sur les mots de passe selon ces groupes, et prendre conscience de l'importance ou non de chaque (boom une liste dans une liste !):
- - les mots de passe super méga importants : email/banque, avec un niveau très élevé de sécurité. Si on vous pique votre mots de passe d'email, vous perdez au grand jeu de la vie, donc il faut que ce soit le plus dur à casser.
- - les mots de passe importants mais pas trop : site d'achat en tout genre. Si on vous le pique, vous allez sans doute offrir des cartes graphiques à des gens en Albanie mais bon vous limiterez la casse et la banque vous remboursera.
- - les mots de passe osef : franchement, si quelqu'un veut piquer les mdp de mtgv qu'il y aille, il en fera pas grand chose mis à part poster à la place de Pax de faux avis sur des jeux Nintendo pour salir sa réputation.
- Idéalement, un mot de passe très important devrait être utilisé en double authentification (empreinte digitale, vérification sur le téléphone en plus du pc,...) ou/et être très long. Les banques ne vous laissent pas le choix et utilisent de la double authentification parce que c'est le truc le plus dur à casser. Mais dans le cas d'un mail où on se connecte très souvent, ce n'est pas très pratique, et le mieux reste un très long mots de passe. Du genre 20, 25 caractères pour résister aux attaques que j'ai expliqué. Oui mais voilà, c'est dur à retenir. Sauf si ... C'est une phrase. Et là, on passe du password au passphrase ! Ca sera simple à retenir, et vous aurez aisément 20 caractères, vous pourrez même glisser facilement un chiffre dedans ou un caractère spécial. Par exemple, si jusqu'ici votre mot de passe était "Poulet41", vous pouvez mettre "Ptipouletjoue41cartes". 21 caractères, pas mal non ? Conseil à Ptipoulet : change de mot de passe.
- Pour les mots de passe un peu moins importants, on peut soit suivre la même règle (mais sans réutiliser le même que pour les comptes très importants) ou alors il y a des techniques un peu plus "simple". Vous connaissez un mot de passe par coeur, genre "oigh4cev" ? Et bien pour votre compte facebook, vous faites "oigh4cevfacebook". Pour votre compte youtube, "oigh4cevyoutube", et ainsi de suite. Comme ça, vous retenez un seul mot de passe, et le nom du site. Normalement vous devriez y arriver. Et en fait, cette technique agrandit votre mot de passe, et n'est pas détectable par un hacker. Quand ils "trouvent" des mots de passe, ils automatisent et testent sur d'autres sites, mais jamais ils ne vont les vérifier et chercher à les changer.
- Pour les mots de passe osef, mettez ce que vous voulez. Franchement, que ce soit "azerty" ou "123456", ça changera pas grand chose. Le jour ou le site est hacké, ben vous refaites un compte, ou vous réinitialisez le mot de passe.
Mais il a pas parlé du stockage !
C'est vrai qu'un aspect important des mots de passe, c'est la manière de les stocker/ de s'en souvenir. Je sais que vous adorez ça, donc bam une liste :
- La mémoire. C'est le mieux, mais c'est à double tranchant si vous avez une mauvaise mémoire. En fait, si vous avez des règles comme ce que j'ai listé au dessus, ça fait très peu à mémoriser, et vous pouvez le faire, mais ça demande de s'organiser.
- Les outils de navigateurs. Les chrome/firefox proposent de stocker les mots de passe. Leurs solutions sont très bien, sachant que dans ce cas là, vous êtes sensibles à une attaque qui vous ciblerez vous. Si vous n'allez sur aucun site louche et que vous ne cliquez pas sur les mails du prince nigérian, vous devriez être safe. Néanmoins, ne pas stocker son mot de passe de mail serait de bon aloi (je suis un mauvais élève là dessus). A noter qu'avec ce genre de solutions, vous êtes surtout sensible à une attaque d'une personne qui vous connait et va accéder à votre ordi quand vous avez le dos tourné. Le bémol que je vois là dessus, c'est d'être dépendant du navigateur qui a stocké, et encore plus quand vous l'avez laissé généré le mot de passe, car comme il sort des trucs imbitables, vous l'avez pas retenu et s'il faut le remettre sur un autre pc, dans l'cul lulu.
- Keepass et autres outils de stockage. C'est mieux que les outils de navigateurs, avec la contrainte de devoir retenir un mot de passe fort (enfin, une phrase de passe). La contrainte vient plutôt de la manière dont vous voulez l'utiliser : si vous le laissez actif sans arrêt et sans qu'il redemande le mot de passe, vous retombez dans les mêmes travers que les outils de navigateurs, à savoir que quelqu'un peut s'en servir quand vous êtes pas là (j'écris ce post depuis la maison de Mazz pendant qu'il creuse à la cave).
- Le carnet. On s'est souvent moqué des gens qui notent les mots de passe sur des post-it, mais au final pour les gens qui n'ont rien de sensibles, avoir un carnet à la maison c'est raisonnable. Vous le planquez suffisamment, vous le sortez seulement quand vous ne vous souvenez plus, et surtout vous n'en parlez à personn (et vous ne le laissez pas traîner). Honnêtement, vous serez aussi safe que de les stocker dans votre pc (sauf si vous vous appelez Liliane B. et que vous notez vos codes d'accès à vos comptes sur ledit carnet).
J'ai sans doute oublié des trucs mais je dois filer, si vous avez des questions hésitez pas, j'éditerai le message pour rajouter des points.