Pensez à un mot au hasard. Maintenant, tout de suite, le premier qui vient.
Quel qu’il soit, il n’était pas au hasard. C’était un de vos mots : quelque chose que vous avez lu cette semaine, un objet posé devant vous, la lettre par laquelle commence votre prénom. Quand on demande du hasard à quelqu’un, ce qu’il produit, c’est de l’autobiographie. Et l’autobiographie, ça se devine.
Voilà tout le problème des mots de passe, résumé. Ce n’est pas que les gens soient paresseux — ils le sont aussi —, c’est que nous sommes incapables de produire du hasard. Certaines lettres nous plaisent, on évite les répétitions parce que « ça ne fait pas assez aléatoire », on alterne voyelles et consonnes sans s’en rendre compte et, si on nous demande un chiffre, on pioche dans ce qu’on a sous la main : dates, âges, nombres qui veulent dire quelque chose. Un attaquant n’a pas besoin de savoir qui vous êtes pour exploiter ça. Il lui suffit de savoir que vous êtes humain.
Un ingénieur, cinq dés et une liste
En 1995, Arnold G. Reinhold a publié sur son site une méthode qu’il a appelée Diceware. L’idée est d’une simplicité presque vexante : si le problème vient de ce que l’humain ne sait pas choisir au hasard, retirez le choix à l’humain.
La procédure complète tient en trois lignes :
- Vous lancez cinq dés et vous notez les résultats dans l’ordre. Disons
4-2-6-1-3. - Vous cherchez
42613dans une liste. - C’est votre mot. Vous recommencez pour le suivant.
La liste compte 7 776 entrées, et ce nombre n’a rien d’arbitraire : c’est
6⁵, tous les résultats possibles de cinq dés. Chaque combinaison — de 11111 à
66666 — pointe vers une entrée différente, aucune n’est laissée de côté,
aucune ne fait doublon. La liste d’origine mêle des mots courts en anglais à
quelques syllabes, chiffres et signes isolés, précisément parce que trouver
7 776 bons mots est plus difficile qu’il n’y paraît.
L’important, ce n’est pas la liste. C’est le dé.
Pourquoi 12,9 bits font bien 12,9 bits
C’est ici que se joue ce que presque personne ne comprend, et c’est la seule chose qui compte.
L’entropie d’un mot Diceware vaut log₂(7 776) = 12,9 bits. C’est de l’arithmétique, pas de la sécurité : il y a 7 776 résultats et ils ont tous exactement la même probabilité.
Comparez avec ce qui se passe quand c’est vous qui choisissez. Si je vous demande un mot dans un dictionnaire de 7 776 mots, le calcul semble identique — il y a bien 7 776 options — mais il ne l’est pas, parce que vous ne les choisissez pas avec la même probabilité. Vous allez prendre des mots courants, des mots que vous aimez, des mots croisés dans la journée. Ce dictionnaire vaut 12,9 bits sur le papier et beaucoup moins dans votre tête, et l’attaquant, lui, trie sa liste par fréquence et commence par ce que les gens choisissent. L’entropie, ce n’est pas le nombre d’options : c’est le nombre d’options une fois déduit ce que l’attaquant sait de vos goûts.
Les dés n’ont pas de goûts. Ils n’ont pas non plus de mémoire : le dé ignore que
le jet précédent a donné forêt, donc il ne cherche pas à éviter la répétition,
il ne cherche pas la variété et il n’a pas honte de sortir deux mots qui
commencent pareil. C’est pour ça que les 12,9 bits de Diceware sont de vrais
12,9 bits, et pas un chiffre optimiste de plaquette commerciale.
Et c’est pour ça que les comptes montent proprement. Chaque mot s’ajoute :
- Cinq mots : environ 64 bits.
- Six mots : environ 77 bits.
- Sept mots : environ 90 bits.
C’est une addition honnête, pas une multiplication magique, parce que chaque jet est indépendant des autres. Reinhold recommande de ne pas descendre en dessous de cinq mots, et d’en prendre six ou plus pour ce qui compte vraiment. Vous pouvez voir l’effet dans le générateur : ajouter un mot ajoute toujours la même chose, et ce « toujours » est toute l’invention.
Le secret, ce n’est pas la liste
L’objection arrive toute seule : si la liste est publique, ce n’est pas plus facile à casser ?
Non, et il vaut la peine de le dire lentement. Les 12,9 bits supposent déjà que l’attaquant a la liste. Ils supposent aussi qu’il sait que vous utilisez Diceware, qu’il sait combien de mots compte votre phrase et qu’il sait dans quel ordre vous les écrivez. Tout cela est déjà déduit. La seule chose qu’il ignore, c’est ce que vos dés ont donné, et c’est précisément ce que vous comptez quand vous dites « 77 bits ».
C’est exactement l’inverse de ce qu’on fait avec P@ssw0rd, où tout l’espoir
repose sur l’idée que personne n’aura celle de remplacer le a par un @. Si,
on l’a. C’est l’une des premières règles qu’applique n’importe quel outil
d’attaque par dictionnaire. Si la tentation vous prend, testez-la dans le
vérificateur et regardez combien de temps elle tient.
L’EFF et les listes alternatives
En 2016, l’Electronic Frontier Foundation a publié ses propres listes de mots pour les phrases tirées aux dés. La liste longue conserve les 7 776 entrées — les mêmes cinq dés, les mêmes 12,9 bits — mais en change le contenu : dehors les syllabes bizarres et les signes, dedans des mots ordinaires, faciles à taper et faciles à distinguer les uns des autres. Ils ont aussi publié des listes courtes, de 1 296 mots (6⁴, quatre dés, 10,3 bits par mot) : l’une avec des mots plus courts et plus mémorisables, l’autre pensée pour que chaque mot se distingue des autres par ses premières lettres et puisse être complété automatiquement. En échange, chaque jet vaut moins et il faut lancer plus souvent.
Ce qu’il y a d’élégant là-dedans, c’est que l’arithmétique ne change pas selon les goûts de chacun. C’est le nombre d’entrées qui commande. Vous pouvez faire votre propre liste en breton, en occitan ou en klingon : tant qu’elle a 7 776 entrées distinctes et que vous choisissez aux dés, chaque mot vaut 12,9 bits. La seule chose que vous décidez en changeant de liste, c’est le degré d’agrément du résultat, pas son degré de sécurité.
Les trois façons de tout gâcher
Diceware échoue de trois manières, et les trois sont la même erreur : l’humain qui remet la main dedans.
- Relancer parce que « celui-là ne me plaît pas ». Si vous écartez des résultats, vous n’utilisez plus des dés : vous utilisez votre jugement avec un dé qui fait de la figuration. On garde ce qui sort.
- Réordonner les mots pour que ça sonne comme une phrase. L’ordre fait partie du jet, lui aussi.
- « L’améliorer » avec un
!à la fin et une majuscule au début. Ça n’ajoute rien face à un attaquant qui sait que les gens mettent un!à la fin et une majuscule au début. S’il faut satisfaire une politique stupide, faites-le, mais n’allez pas croire que vous y avez gagné en sécurité : vous aviez gagné en relançant les dés.
Et un avertissement que Reinhold donnait déjà : des dés ordinaires suffisent largement — ceux de casino sont plus précis, mais ils ne sont pas nécessaires —, il vaut mieux lancer sur une surface lisse et le résultat se note tel qu’il tombe.
Le résumé
Une phrase de six mots tirée aux dés est plus longue à taper que P@ssw0rd,
plus facile à retenir que Tr0ub4dor&3 et infiniment plus coûteuse à casser que
les deux. Non parce qu’elle serait plus alambiquée — elle ne l’est pas, ce sont
six mots normaux — mais parce que c’est la seule partie de votre mot de passe
que vous n’avez pas décidée.
Voilà toute la blague de Diceware : le meilleur mot de passe que vous puissiez avoir est celui où votre avis n’a pas voix au chapitre.
Sources : Arnold G. Reinhold, « The Diceware Passphrase Home Page » et sa liste de 7 776 mots (1995) · Electronic Frontier Foundation, listes de mots pour phrases de passe tirées aux dés (2016) · l’arithmétique est vérifiable : 6⁵ = 7 776 et log₂(7 776) ≈ 12,92 bits par mot.