Voici une explication approfondie des mathématiques dans cette bande dessinée:
Les petites cases dans la bande dessinée représentent l'entropie dans une échelle logarithmique, c'est-à-dire "bits". Chaque case signifie un peu d'entropie supplémentaire. L'entropie est une mesure du coût moyen pour obtenir le bon mot de passe lors d'une attaque par force brute. Nous supposons que l'attaquant connaît la méthode exacte de génération de mot de passe, y compris les distributions de probabilité pour les choix aléatoires dans la méthode. Une entropie de n bits signifie qu'en moyenne, l'attaquant essaiera 2n-1 mots de passe avant de trouver le bon. Lorsque les choix aléatoires sont équiprobables , vous avez n bits d'entropie lorsqu'il y a 2n mots de passe possibles, qui signifie que l'attaquant essaiera, en moyenne, la moitié d'entre eux. La définition avec le coût moyen est plus générique, en ce qu'elle capture les cas où les choix aléatoires pris lors du processus de génération de mot de passe (celui qui se produit généralement dans la tête de l'utilisateur humain) ne sont pas uniformes. Nous verrons un exemple ci-dessous.
L'intérêt d'utiliser des "bits" est qu'ils s'additionnent. Si vous avez deux moitiés de mot de passe que vous générez indépendamment l'une de l'autre, l'une avec 10 bits d'entropie et l'autre avec 12 bits, alors l'entropie totale est de 22 bits. Si nous devions utiliser une échelle non logarithmique, il faudrait multiplier: 210 choix uniformes pour la première moitié et 2 12 sup> les choix uniformes pour l'autre moitié compensent 2 10 · 2 12 = 2 22 choix uniformes. Les ajouts sont plus faciles à transmettre graphiquement avec de petites boîtes, d'où l'utilisation de bits.
Cela étant dit, voyons les deux méthodes décrites dans la bande dessinée. Nous allons commencer par la seconde, qui est plus facile à analyser.
La méthode du "cheval correct"
Le processus de génération de mot de passe pour cette méthode est le suivant: prenez une liste (publique) donnée de 2048 mots (supposément des mots courants, faciles à retenir). Choisissez quatre mots aléatoires dans cette liste, uniformément et indépendamment les uns des autres: sélectionnez un mot au hasard, puis sélectionnez à nouveau un mot au hasard (qui pourrait être le même que le premier mot), et ainsi de suite pour un troisième puis un quatrième mots. Concaténez les quatre mots ensemble, et voilà! vous avez votre mot de passe.
Chaque sélection de mot aléatoire vaut 11 bits, car 2 11 = 2048 , et, surtout, chaque mot est sélectionné uniformément (tous les 2048 mots ont la même probabilité de 1/2048 d'être sélectionnés) et indépendamment des autres mots (vous ne choisissez pas un mot pour qu'il corresponde ou non - correspond aux mots précédents et, en particulier, vous ne rejetez pas un mot s'il se trouve être le même choix qu'un mot précédent). Puisque les humains ne sont pas du tout doués pour faire des choix aléatoires dans leur tête, nous devons supposer que la sélection de mots aléatoires se fait avec un appareil physique (dés, jetons de monnaie, ordinateurs ...).
Le l'entropie totale est alors de 44 bits, correspondant aux 44 cases de la bande dessinée.
La méthode "troubador"
Pour celle-ci, les règles sont plus complexes :
- Sélectionnez un mot au hasard dans une grande liste donnée de mots significatifs.
- Décidez au hasard si vous souhaitez mettre la première lettre en majuscule ou non.
- Pour les lettres éligibles aux "substitutions traditionnelles", appliquer ou non la substitution (décider au hasard pour chaque lettre). Ces substitutions traditionnelles peuvent être, par exemple: "o" -> "0", "a" -> "4", "i" -> "!", "E" -> "3", "l" -> "1" (les règles donnent une liste exhaustive connue publiquement).
- Ajoutez un signe de ponctuation et un chiffre.
Le mot aléatoire est évalué à 16 bits par la bande dessinée, ce qui signifie une sélection uniforme dans une liste de 65536 mots (ou non uniforme dans une liste plus longue). Il y a plus de mots que cela en anglais, apparemment environ 228 000, mais certains d'entre eux sont très longs ou très courts, d'autres sont si rares que les gens ne s'en souviennent pas du tout. "16 bits" semble être un décompte plausible.
Mettre en majuscule ou non la première lettre équivaut, nominalement, à 1 bit d'entropie (deux choix). Si l'utilisateur fait ce choix dans sa tête, alors ce sera un équilibre entre le sentiment de sécurité de l'utilisateur ("les majuscules est évidemment plus sûr!") Et la paresse de l'utilisateur ("les minuscules sont plus faciles à taper") . Là encore, "1 bit" est plausible.
Les "substitutions traditionnelles" sont plus complexes car le nombre de lettres éligibles dépend du mot de base; ici, trois lettres, donc 3 bits d'entropie. D'autres mots pourraient avoir d'autres comptes, mais il semble plausible qu'en moyenne, nous trouvons environ 3 lettres éligibles. Cela dépend de la liste des "substitutions traditionnelles", qui sont supposées être une convention donnée.
Pour le signe de ponctuation et le chiffre supplémentaires, la bande dessinée donne 1 bit pour le choix de celui qui vient en premier (le chiffre ou le signe de ponctuation), puis 4 bits pour le signe et 3 bits pour le chiffre. Le décompte des chiffres mérite une explication: c'est parce que les humains, lorsqu'on leur demande de choisir un chiffre aléatoire, ne sont pas du tout uniformes; le chiffre "1" aura environ 5 à 10 fois plus de chances d'être sélectionné que "0". Parmi les facteurs psychologiques, «0» a une mauvaise connotation (vide, sombre, mort), tandis que «1» est perçu positivement (gagnant, champion, top). Dans le sud de la Chine, «8» est très populaire parce que le mot «huit» se prononce de la même manière que le mot «chance»; et, de même, «4» est évité en raison de l'homophonie avec le mot «mort». L'attaquant va d'abord essayer des mots de passe où le chiffre est un "1", lui permettant de bénéficier de la non-uniformité des choix de l'utilisateur.
Si le choix du chiffre n'est pas fait par un cerveau humain mais par un appareil impartial, alors nous obtenons 3,32 bits d'entropie, pas 3 bits. Mais c'est assez proche à des fins d'illustration (je comprends très bien que Randall Munroe ne voulait pas dessiner des boîtes partielles).
Quatre bits pour la ponctuation sont un peu sous-estimés; il existe 32 signes de ponctuation en ASCII, tous relativement faciles à taper sur un clavier commun. Cela signifierait 5 bits, pas 4. Là encore, si le signe est choisi par un humain, alors certains signes seront plus courants que d'autres, car les humains pensent rarement à «#» ou «|» comme "ponctuation".
Le grand total de 28 bits est alors à peu près correct, bien que cela dépende des détails précis de certaines sélections aléatoires et de la liste des "substitutions traditionnelles" (ce qui a un impact sur le nombre moyen de lettres éligibles). Avec un mot de passe généré par ordinateur, nous pouvons espérer environ 30 bits. C'est encore faible en ce qui concerne les 44 bits de la méthode du "cheval correct".
Applicabilité
Les paragraphes ci-dessus montrent que les mathématiques de la bande dessinée sont correct (au moins avec la précision que l'on peut attendre dans ces conditions - c'est une bande dessinée , pas un article de recherche ). Elle requiert toujours les conditions suivantes:
-
La "méthode de génération de mot de passe" est connue de l'attaquant. C'est la partie que @Jeff ne croit pas. Mais cela a du sens. Dans les grandes organisations, les responsables de la sécurité publient de telles directives pour la génération de mots de passe. Même si ce n'est pas le cas, les gens ont Google et ses collègues, et auront tendance à utiliser l'un d'une douzaine de règles. La bande dessinée comprend des dispositions pour cela: "Vous pouvez ajouter quelques bits supplémentaires pour tenir compte du fait qu'il ne s'agit que de l'un des rares formats courants".
Conclusion: même si vous conservez votre méthode " secret ", ce ne sera pas cela secret car vous suivrez plus ou moins consciemment une méthode" classique ", et il n'y en a pas beaucoup.
-
Les choix aléatoires sont aléatoires et uniformes . C'est difficile à réaliser avec des utilisateurs humains. Vous devez les convaincre d'utiliser un appareil pour un bon caractère aléatoire (une pièce de monnaie, pas un cerveau), et pour accepter le résultat. C'est l'essentiel de ma réponse originale (reproduite ci-dessous). Si les utilisateurs modifient les choix, ne serait-ce qu'en générant un autre mot de passe si celui qu'ils ont obtenu "ne leur plaît pas", ils s'écartent de l'uniformité aléatoire, et l'entropie ne peut être abaissée (l'entropie maximale est obtenue avec un hasard uniforme; vous ne pouvez pas mieux, mais vous pouvez être bien pire).
La bonne réponse est bien sûr celle de @AviD. Les calculs de la bande dessinée sont corrects, mais le point important est que les bons mots de passe doivent être à la fois difficiles à deviner et faciles à retenir. Le message principal de la bande dessinée est de montrer que les "règles de génération de mots de passe" courantes échouent aux deux points: elles rendent difficile la mémorisation des mots de passe, qui ne sont néanmoins pas si difficiles à deviner.
Il illustre également l'échec des esprits humains à évaluer la sécurité. "Tr0ub4dor&3" semble plus aléatoire que "correcthorsebatterystaple"; et les mêmes esprits donneront de bons points à ce dernier uniquement à cause de la mauvaise raison, à savoir la croyance répandue (mais erronée) que le mot de passe longueur fait force . Ce ne est pas. Un mot de passe n'est pas fort car il est long; il est fort car il comprend beaucoup d'aléatoire (tous les bits d'entropie dont nous avons discuté tout au long). La longueur supplémentaire permet d'avoir plus de force, en donnant plus de place au hasard; en particulier, en permettant un hasard "doux" facile à retenir, comme le truc du cheval électrique. D'un autre côté, un mot de passe très court est forcément faible, car il n'y a que peu d'entropie que vous pouvez insérer dans 5 caractères.
Notez que «difficile à deviner» et «facile à retenir» ne couvrent pas tout ce qui est à dire sur la génération de mots de passe; il y a aussi «facile à utiliser», qui signifie généralement «facile à taper». Les mots de passe longs sont un problème sur les smartphones, mais les mots de passe comportant des chiffres et des signes de ponctuation et une casse mixte sont sans doute encore pires.
Réponse originale:
La bande dessinée suppose que la sélection d'un mot "commun" aléatoire donne une entropie d'environ 11 bits - ce qui signifie qu'il y a environ 2000 mots communs. C'est un décompte plausible. L'astuce, bien sûr, est d'avoir une sélection vraiment aléatoire. Par exemple, les activités suivantes:
- sélectionnez quatre mots au hasard, puis mémorisez-les dans l'ordre qui a le plus de sens;
- si les quatre mots semblent trop difficiles à retenir, les mettre au rebut et en sélectionner quatre autres;
- remplacer l'un des mots par le nom d'un footballeur (l'attaquant ne le devinera jamais!);
... tous réduire l'entropie. Il n’est pas facile d’amener vos utilisateurs à utiliser le vrai hasard et à accepter le résultat .
Les mêmes utilisateurs se plaindront probablement des tracas liés à la saisie d’un mot de passe long (si la saisie implique un smartphone, je dois dire que je les comprends assez bien). Un utilisateur mécontent n'est jamais une bonne chose, car il commencera à chercher des contre-mesures qui lui faciliteront la vie, comme garder le mot de passe dans un fichier et le «taper» avec une copie&paste. Les utilisateurs peuvent souvent être étonnamment créatifs de cette façon. Par conséquent, les mots de passe longs ont tendance à se retourner contre vous, du point de vue de la sécurité.