web-dev-qa-db-fra.com

"Le schéma XKCD souvent cité [...] n'est-il plus un bon conseil"?

Je trébuchais et suis tombé sur cet essai par Bruce Schneier affirmant que le schéma de mot de passe XKCD était effectivement mort.

Les crackers de mots de passe modernes combinent différents mots de leurs dictionnaires: [...]

C'est pourquoi le schéma XKCD souvent cité pour générer des mots de passe - enchaîner des mots individuels comme "correcthorsebatterystaple" - n'est plus un bon conseil. Les crackers de mot de passe sont sur cette astuce.

L'attaquant fournira toutes les informations personnelles auxquelles il a accès sur le créateur du mot de passe dans les crackers de mot de passe. Un bon cracker de mot de passe testera les noms et adresses du carnet d'adresses, les dates significatives et toute autre information personnelle dont il dispose. [...] si votre programme l'a déjà stocké en mémoire, ce processus le saisira.

Son affirmation semble être parce qu'il est connu que les gens peuvent construire leurs mots de passe de telle manière qu'ils le rendent propice à l'attaque, mais il semble que la force réside uniquement dans le pouvoir des exposants. Je suppose qu'il fait allusion à des gens qui ne choisissent pas les mots de manière vraiment aléatoire, ce qui n'est peut-être pas totalement fallacieux, car j'ai relancé plusieurs fois pour obtenir quelque chose qui n'est pas tous des adverbes et des adjectifs. Cependant, je suppose que l'abaissement de l'entropie d'un facteur de 2 à 10 n'est pas vraiment significatif (si la liste de mots est doublée à 4000, pas si difficile, la perte est plus que récupérée).

L'autre plaisanterie sur "si votre programme l'a déjà stocké en mémoire" est un peu déconcertante cependant ... tous les mots de passe ne sont-ils pas stockés en mémoire à un moment ou à un autre? Cela semble un peu trop large; de quoi parle-t-il réellement?

230
Nick T

La guerre sainte

Je pense que vous constaterez que la bonne façon de générer des mots de passe pourrait déclencher une guerre sainte où chaque groupe pense que l'autre fait des erreurs mathématiques très simples ou manque le point. Si vous obtenez 10 professionnels de la sécurité informatique dans une pièce et leur demandez comment trouver de bons mots de passe, vous obtiendrez 11 réponses différentes.

Le malentendu

L'une des nombreuses raisons pour lesquelles il n'y a pas de conseil cohérent sur les mots de passe est que tout se résume à un problème de modélisation des menaces . Contre quoi essayez-vous exactement de vous défendre?

Par exemple: essayez-vous de vous protéger contre un attaquant qui vous cible spécifiquement et connaît votre système pour générer des mots de passe? Ou êtes-vous juste l'un des millions d'utilisateurs dans une base de données divulguée? Vous défendez-vous contre le craquage de mot de passe basé sur GPU ou tout simplement un serveur Web faible? Êtes-vous sur un hôte infecté par des logiciels malveillants [1]?

Je pense que vous devez supposer que l'attaquant connaît votre méthode exacte de génération de mots de passe et ne fait que vous cibler. [2] La bande dessinée xkcd suppose dans les deux exemples que tous les détails de la génération sont connus.

Les maths

Les mathématiques dans la bande dessinée xkcd sont correctes et cela ne changera pas.

Pour les mots de passe, je dois taper et je me souviens que j'utilise un script python qui génère des mots de passe de style xkcd qui sont vraiment aléatoires. J'ai un dictionnaire de 2 ^ 11 (2048) mots anglais communs et faciles à épeler. Je pourrais donner le code source complet et une copie de ma liste de mots à un attaquant, il y aura toujours 2 ^ 44 mots de passe possibles.

Comme le dit la bande dessinée:

1000 Guesses/Sec Attaque plausible sur un service Web distant faible. Oui, casser un hachage volé est plus rapide, mais ce n'est pas ce dont l'utilisateur moyen devrait s'inquiéter.

Cela établit un bel équilibre entre facile à retenir et difficile à casser.

Et si on essayait plus de puissance ?

Bien sûr, 2 ^ 44 est correct, mais le craquage GPU est rapide, et cela ne fera que s'accélérer. Hashcat pourrait casser un hachage faible [3] de cette taille en un certain nombre de jours, pas d'années. De plus, j'ai des centaines de mots de passe à retenir. Même dans le style xkcd, cela devient difficile après quelques-uns.

C'est là qu'interviennent les gestionnaires de mots de passe, j'aime KeePass mais il y en a beaucoup d'autres qui sont fondamentalement les mêmes. Ensuite, vous pouvez générer une seule phrase de passe xkcd plus longue que vous pouvez mémoriser (par exemple 10 mots). Ensuite, vous créez un mot de passe 128 bits vraiment aléatoire unique pour chaque compte (hex ou base 64 sont bons). 128 bits vont être assez forts pour longtemps. Si vous voulez être paranoïaque aller plus grand, il n'est pas de travail supplémentaire pour générer 256 bits de mots de passe hexadécimaux.


[1] C'est là que la mémoire entre en jeu, si vous êtes sur un hôte compromis que vous avez perdu. Peu importe si vous le saisissez ou utilisez un programme comme KeePass pour le copier et le coller si un attaquant peut enregistrer/lire la mémoire.

[2] Plutôt que l'hypothèse plus faible (mais plus probable) que l'attaquant vient de torrent un dictionnaire appelé "Top Passw0rdz 4realz 111!".

[3] Bien sûr, nous devrions tous utiliser PBKDF2, etc ... mais de nombreux sites sont toujours sur SHA1. (et ce sont les bons)

225
Hybrid

Schneier écrit ceci:

C'est pourquoi le schéma XKCD souvent cité pour générer des mots de passe - enchaîner des mots individuels comme "correcthorsebatterystaple" - n'est plus un bon conseil. Les crackers de mot de passe sont sur cette astuce.

mais la clé pour comprendre ce qu'il recherche vraiment est un peu plus loin dans son essai:

Il y a encore un schéma qui fonctionne. En 2008, je décrit le "schéma Schneier"

alors c'est tout. Ole 'Bruce veut affirmer que son schéma est le seul et unique, le meilleur, le gagnant, le schéma ultime. Par conséquent, il doit dire des choses désobligeantes sur les "concurrents", que ces affirmations soient scientifiquement valables ou non.

Dans ce cas, il a toujours été supposé que la méthode de génération de mot de passe est connue de l'attaquant. C'est tout l'intérêt des calculs d'entropie; voir l'analyse . Que les attaquants sont "sur cette astuce" ne change rien rien (quand un attaquant connaît la méthode de génération de mot de passe, le calcul d'entropie décrit exactement la force du mot de passe; lorsque l'attaquant est incompétent et ne connaît pas la méthode de génération de mot de passe, la force du mot de passe est seulement plus élevée, d'une quantité qui est presque impossible à quantifier).

La plaisanterie sur les "mots de passe en mémoire" n'est que des divagations plus incohérentes. Les mots de passe vont nécessairement à RAM à un moment donné, que vous les tapiez ou les copiez-collez à partir d'un coffre-fort de mot de passe, ou quelque chose de similaire.

Je suppose que Bruce était ivre.

Mise à jour: Schneier a été spécifiquement invité à commenter sa condamnation de phrase secrète dans n Reddit AMA qui a eu lieu le 2 août 2016. Il a continué à plaider pour son système de création de mot de passe comme une alternative supérieure aux phrases de passe Word aléatoires. Schneier a dit que son schéma "vous donne plus d'entropie par caractère mémorisable que les autres méthodes", ce qui est vrai par rapport aux caractères qui composent les mots. Mais cela n'est pas non plus pertinent lorsqu'un système s'appuie sur la mémorisation de mots plutôt que de caractères, et vous êtes autorisé à combiner suffisamment de mots pour générer une `` entropie '' adéquate pour votre phrase secrète dans son ensemble.

152
Tom Leek

[Divulgation: je travaille pour AgileBits, les créateurs de 1Password]

L'une des raisons pour lesquelles j'ai plaidé pour un schéma de type XKCD (avant qu'il ne s'appelle ainsi) dans Toward Better Master Passwords en 2011 est précisément parce que sa force ne repose pas sur l'attaquant sachant quel schéma vous avez utilisé. Si je peux me citer

La grande chose à propos de Diceware est que nous savons exactement à quel point il est sécurisé, même en supposant que l'attaquant connaît le système utilisé. La sécurité vient du véritable hasard de lancer les dés. L'utilisation de quatre ou cinq mots devrait suffire contre les attaques plausibles au cours des prochaines années compte tenu de la vitesse observée des crackers de mot de passe [contre 1Password Master Password]

Ce que la bande dessinée XKCD ne communique pas efficacement, c'est que la sélection des mots doit être (uniformément) aléatoire . Si vous demandez aux humains de choisir des mots au hasard, vous obtenez un biais important pour les noms concrets. De tels biais peuvent être et seront exploités.

Combien de force tu veux

Dans un monde parfait, nous voudrions que la force de notre mot de passe soit aussi forte que les clés que nous protégeons avec. Dites 128 bits. Mais malgré ces techniques, les humains n'y arriveront pas. Examinons donc de manière réaliste les attaques et ce que nous pouvons faire avec nos petits cerveaux chétifs.

Avec la liste Diceware Word originale de 7776 entrées, vous obtenez environ 12,9 bits par mot que vous utilisez. Donc, si vous voulez au moins 64 bits pour votre mot de passe, alors cinq mots suffiront.

Deviner les mots de passe est plus lent que deviner les clés

Dans cette section, j'arrive à un dos très approximatif de l'estimation de l'enveloppe que pour un montant constant de dollars, il est 2 ^ 13 fois plus lent de tester un mot de passe que de tester une clé AES.

Notez que tester un mot de passe est beaucoup plus lent que tester une clé. Si les bons types de schémas de hachage de mot de passe sont utilisés, il est possible de limiter la plupart des attaquants à moins de 100 000 suppositions par seconde. Ainsi, même si nous ne souhaitons jamais utiliser des clés de 50 bits, l'utilisation de mots de passe de 50 bits peut toujours avoir un sens.

Si nous n'allons pas nous limiter à lancer des dés comme dans le schéma de Diceware original d'Arnold Reinhold de 1995, alors nous pouvons utiliser une liste de mots plus longue. Le Générateur de mots de passe forts dans 1Password pour Windows utilise une liste de 17679 mots anglais entre 4 et 8 lettres inclus (débarrassé des mots tabous et des mots qui impliquent une apostrophe ou des tirets). Cela donne environ 14 bits par mot. Donc, quatre d'entre eux vous donne 56 bits, cinq vous donne 70.

Encore une fois, vous devez faire attention aux vitesses de fissuration. Deep Crack en 1997 a pu exécuter 92 milliards de tests DES par seconde. En supposant qu'un PC spécialisé haut de gamme puisse effectuer un million de suppositions par seconde contre un mot de passe raisonnablement bien haché pourrait faire 1 million de suppositions par seconde, alors les mots de passe sont aujourd'hui environ 16 bits plus difficiles à déchiffrer que les clés DES étaient en 1997.

Examinons donc cette estimation Stack Exchange pour un processeur dual core 3,8 GHz: 670 millions de clés par seconde. Si nous supposions un matériel de 5 000 $, nous pourrions facilement dépasser 10 milliards de clés par seconde. Donc, à un coût matériel similaire, le craquage de clé est toujours plus de 2 ^ 13 fois plus rapide que le craquage de mot de passe.

Objectifs révisés de résistance des mots de passe

En partant de mon estimation qu'il est 2 ^ 13 fois plus cher de tester un mot de passe bien haché que de tester une clé AES, nous devrions considérer qu'un mot de passe assez bien haché est 13 bits plus fort que son entropie réelle en ce qui concerne le craquage . Si nous voulons atteindre 90 bits de "force effective", alors 77 bits de force de mot de passe devraient le faire. Cela est réalisé avec un mot de passe Diceware de six mots (77,5 bits) de la liste d'origine et 84,6 bits avec six mots tirés d'une liste de 17679 mots.

Je ne m'attends pas à ce que la plupart des gens utilisent des mots de passe aussi longtemps. Je m'attends à ce que les gens utilisent des choses de 4 ou 5 mots. mais si vous êtes vraiment inquiet de ce que le NSA va après vos mots de passe, alors six mots devraient suffire en supposant que vous utilisez un schéma de hachage de mot de passe décent.

Estimations très approximatives uniquement

Je n'ai pas passé beaucoup de temps à rechercher des coûts et des repères. Il y a beaucoup de choses dans mes estimations avec lesquelles chipoter. J'ai tenté d'être conservateur (pessimiste quant au schéma que je préconise). J'ai également été vague sur les "mots de passe bien hachés". Encore une fois, je suis très conservateur en ce qui concerne le hachage de mot de passe dans 1Password. (Pour notre nouveau format de données, les attaquants ont été limités à moins de 20 000 suppositions par seconde et pour notre ancien format de données, ils ont atteint 300 000 suppositions par seconde pour les machines multi-GPU. Dans mes estimations, j'ai sélectionné 1 million de suppositions par deuxième pour un "mot de passe raisonnablement bien haché".)

Quelques notes historiques supplémentaires

L'idée générale des mots de passe "de type XKCD" remonte au moins aussi loin que les mots de passe à usage unique S/Key du début des années 1980. Ceux-ci ont utilisé une liste de 2048 mots d'une à quatre lettres. Un mot de passe de six mots S/Key vous a donné 66 bits. Je ne sais pas si cette idée d'utiliser des mots sélectionnés au hasard dans une liste pour une phrase de passe est antérieure à S/Key.

En 1995, Arnold Reinhold a proposé Diceware . Je ne sais pas s'il était au courant de S/Key à l'époque. Diceware a été proposé dans le cadre du développement de phrases de passe pour PGP. C'était également avant que la plupart des ordinateurs ne disposent de générateurs de nombres aléatoires appropriés sur le plan cryptographique. Il s'agit donc de lancer des dés. (Bien que je fasse confiance aux CSPRNGs sur les machines que j'utilise, j'aime toujours "remonter un nouveau mot de passe").

En juin 2011, j'ai ravivé l'intérêt pour Diceware dans Vers de meilleurs mots de passe principaux avec quelques modifications supplémentaires. Cela a abouti à mes 15 minutes de gloire. Après la sortie de la bande dessinée XKCD, j'ai produit une édition geek qui a fait le tour des mathématiques.

En juillet 2011, Randall Monroe avait repris des plans de type Diceware et publié son désormais célèbre bande dessinée . Comme je ne suis pas l'inventeur de l'idée, cela ne me dérange pas du tout d'être surclassé par la bande dessinée. En effet, comme je l'ai dit dans mon article de suivi

Ce qui m'a pris près de 2000 mots à dire en termes non techniques, Randall Monroe a pu résumer dans une bande dessinée. Cela montre juste la puissance des mathématiques ...

Mais il y a une chose dans la façon dont la bande dessinée a été interprétée qui m'inquiète. Il est clair pour moi et les personnes qui ont déjà compris le schéma que les mots doivent être choisis par un processus aléatoire uniforme et fiable. Choisir des mots "au hasard" dans votre tête n'est pas un processus uniformément fiable.

89
Jeffrey Goldberg

Le schéma de mot de passe XKCD est aussi bon que jamais. La sécurité ne vient pas du fait qu'elle est inconnue, mais de son bon moyen de générer des mots de passe mémorables à partir d'un grand espace de recherche. Si vous sélectionnez les mots à utiliser plutôt que de les générer au hasard, cependant, cet avantage est perdu - les humains ne sont pas bons pour être aléatoires.

Le peu de mémoire est mal énoncé, mais il est une préoccupation: si un logiciel malveillant volant le mot de passe pénètre sur votre ordinateur, il balaiera tout le texte de RAM et le disque dur à utiliser dans une attaque dirigée contre vos comptes.

60
Mark

Comme d'autres l'ont dit, l'attaque décrite par Bruce Schneier est efficace lorsque l'utilisateur choisit lui-même plusieurs mots, sans utiliser d'outil. Schneier écrit généralement à un public grand public, qui ne comprendra probablement pas la différence entre les mots "aléatoires" choisis par eux-mêmes et les mots aléatoires choisis par programme.

J'ajouterai que même si vous utilisez un script ou un autre outil pour choisir au hasard des mots dans un dictionnaire, vous devez utiliser la première séquence qu'il vous donne. Si vous décidez "je n'aime pas celui-là" et l'exécutez à nouveau jusqu'à ce que vous l'aimiez, ce n'est plus une phrase de passe aléatoire , il est choisi par l'homme.

De plus, même si vous utilisez un script, et même si vous n'endommagez pas le caractère aléatoire en choisissant votre séquence préférée parmi plusieurs, il y a toujours la possibilité qu'un attaquant puisse exploiter votre PRNG (pseudo - générateur de nombres aléatoires). Si l'attaquant peut savoir quand vous avez créé le mot de passe, et ce que PRNG vous avez utilisé, et peut-être d'autres informations sur votre PRNG telles que le trafic réseau généré à l'aide de votre PRNG à peu près au même moment, cela pourrait réduire l'entropie effective de votre phrase secrète aléatoire.

Peut-être un peu ésotérique, mais si votre PRNG est exploitable, le chiffre 2 ^ 44 ne sera pas entièrement réalisé. (Et si vous supposez que "personne n'essaiera d'exploiter mon PRNG", pourquoi faire vous souhaitez utiliser une phrase secrète vraiment sécurisée?)

15
wberry

Cela dépend. Une chose que vous devez comprendre est que ce n'est pas la sécurité par obscurité: les valeurs d'entropie utilisé dans la bande dessinée suppose que l'attaquant sait déjà que vous utilisez cette méthode . Si l'attaquant ne sait pas comment vous générez la phrase secrète, l'entropie augmente massivement.

L'astuce de la méthode XKCD est que vous devez réellement utiliser un générateur de nombres aléatoires et une bonne liste de mots: ne choisissez jamais les mots vous-même, pas même "au hasard" (entre guillemets parce que les humains sont vraiment très mauvais pour choisir les choses au hasard, c'est pourquoi vous ne devriez pas le faire). Diceware a des outils pour vous aider à le faire, et prend même l'élément aléatoire hors de portée de l'ordinateur en utilisant des dés ordinaires.

Contre une attaque généralisée - le genre de chose où un attaquant a obtenu une liste de mots de passe d'un site Web et ne sait rien sur les mots de passe de la liste - c'est aussi fort que jamais. Comme vous le dites, sa force vient du pouvoir des exposants (et d'une bonne liste de mots).

L'attaque de Schneier peut fonctionner, mais uniquement dans un contexte entièrement différent. Son attaque suppose que vous êtes spécifiquement ciblé, par un attaquant qui en sait déjà beaucoup sur vous . Cela peut ne pas sembler particulièrement inquiétant au premier abord, car l'attaquant déterminé stéréotypé est un agent du renseignement derrière un écran, et la plupart d'entre nous n'ont pas à se soucier autant de ceux-ci: il n'y en a que beaucoup, et chacun ne peut que permettre de se soucier de tant de gens. Mais c'est en fait plus un problème qu'il n'y paraît à première vue, grâce à l'avènement de logiciels malveillants sophistiqués. Une installation de malware peut se permettre de prendre soin de vous même si l'attaquant ne le fait pas, et vous vous retrouvez donc face à un attaquant extrêmement déterminé. En fait, même plus déterminé qu'un humain pourrait être bien moins créatif.

Les logiciels malveillants qui compilent des informations sur vous donneront des mots qui vous semblent importants très prioritaires dans la liste de mots. Il le fait parce que la plupart des gens choisissent eux-mêmes les mots "aléatoires", mais ce faisant, ils biaisent en fait assez fortement vers les mots qui sont les plus importants pour eux: il peut toujours "sembler" aléatoire, mais certains mots sont beaucoup plus susceptibles de venir que les autres. Pour cette raison, donner à ces mots une haute priorité se traduit souvent par des hits relativement rapides, et c'est le "truc" dont parle Schneier.

Cependant, vous pouvez toujours contrecarrer l'attaque de Schneier en utilisant un réel hasard . Le hic, c'est que cela nécessite de la discipline: toutes les décisions concernant les mots à utiliser dans votre phrase secrète (à part le choix d'une bonne liste de mots) doivent être prises complètement hors de vos mains. C'est là que des choses comme Diceware peuvent vous aider.

11
The Spooniest

Le calcul de la force est assez simple si le choix de Word est aléatoire: (nombre de mots dans le dictionnaire) ^ (nombre de mots dans la phrase), en supposant que l'attaquant connaît le nombre de dans le dictionnaire. Donc, une phrase de 5 mots utilisant un connu ( par l'attaquant !) 7776 Dictionnaire Word Diceware: a 7776 ^ 5 = 2,8E19 ou 64 bits d'entropie.

Il y a un élément qui n'est pas mentionné dans le schéma: en ajoutant juste 1 caractère (aléatoire) à un endroit aléatoire dans la phrase entière, la force est augmentée d'environ 10 bits, voir Diceware, trucs optionnels .

Les calculs ci-dessus ne tiennent pas compte non plus du symbole séparateur entre les mots. Cela peut ajouter 5 bits supplémentaires.

5
Dick99999

Je voudrais également ajouter une réponse oui également, mais pour d'autres raisons. Ce n'est pas un bon conseil [en général] à cause des contraintes de longueur:

  • Des sites comme Skype, ING, eBay et dans mon pays Binckbank et KPN limitent les mots de passe à 20 caractères. (Cette limite bancaire est de 15, mais elle a utilisé une autorisation à 2 facteurs)
  • Avec une longueur moyenne de 4,5 caractères/mot pour un petit dictionnaire de 3000 à 8000 mots, cela permet d'utiliser uniquement des phrases de 3 à 4 mots.
  • Lorsque vous utilisez de gros dictionnaires, la moyenne peut être de 6 à 7: 3 mots seulement
  • Si le site insiste pour utiliser un symbole et un chiffre dans le mot de passe, seuls 18 caractères sont disponibles pour la phrase.

Ces longueurs ne protègent que contre les attaques en ligne. Pour les attaques hors ligne, cela dépend de la dérivation de la clé et de la fonction de hachage, du nombre d'itérations et du matériel de craquage utilisé par le site de l'application, qu'une phrase de 3-4 mots offre une protection suffisante.

2
Dick99999

Il est important d'avoir le bon contexte. Le xkcd comic compare Tr0ub4dor&3 À une entropie supposée de 28 bits (bien que je calcule il comme 34,6) à correcthorsebatterystaple et ses 44 bits supposés d'entropie (un code à quatre mots diceware fait 51,7 bits… mais l'un de ces mots n'est pas diceware. En utilisant un simple dictionnaire d'orthographe de 100k mots, je le calcule à 66,4 bits).

Tout d'abord, rendons cela plus facile à comprendre. Il y a 94 caractères imprimables. Un mot de passe à un caractère a log₂(94) = 6.55 bits d'entropie. Deux caractères ont log₂(94²) = 13.10 bits d'entropie. Vous pouvez diviser l'entropie finale d'un schéma de mots de passe par 6,55 afin de déterminer la complexité équivalente d'un mot de passe purement aléatoire mesurée en caractères.

Donc:

  • 28 bits d'entropie password Mot de passe de 4,3 caractères (très mauvais!)
  • 44 bits d'entropie password mot de passe de 6,7 caractères (également mauvais)
  • 66,4 bits d'entropie password mot de passe de 10,1 caractères (correct pour 2016)

En faisant confiance aux numéros de xkcd, vous pouvez voir pourquoi Schneier était inquiet. Cela semble un peu exagéré, car la plupart des attaquants abandonneront toujours après une dizaine de personnages [citation requise] - cela devrait prendre quelques années à un gros cluster pour briser un mot de passe haché MD5 à 10 caractères - bien que de toute évidence, si un bon attaquant connaît votre schéma, la longueur absolue des caractères ne soit pas un problème.

La complexité totale du schéma est la plus importante. Vous devez supposer le pire des cas (que l'attaquant connaît votre schéma exact). C'est une excellente idée de s'assurer en outre que votre mot de passe est de 11+ caractères ( lorsque cela est autorisé ), mais c'est une priorité secondaire (et il est gratuit avec des phrases de passe).

Créez des phrases de passe avec quatre mots plus un mot de passe

Voici mes conseils de création de mots de passe (avec des estimations d'entropie):

  • Faites une "phrase" absurde de 4+ mots de 4+ caractères chacun (100 000⁴)
  • Aucun de ces mots ne peut être connecté à vous –ou les uns aux autres– en aucune façon
  • Cas d'utilisation, espaces et au moins deux symboles ou signes de ponctuation (32²)
  • Au moins un mot doit échouer à la vérification orthographique (par exemple, leetspeak, mots étrangers, 64 chacun)
  • Inclure au moins une autre "erreur" (orthographe/grammaire/syntaxe, entropie inconnue)
  • Entre deux mots, ajoutez un code d'accès traditionnel "aléatoire" de 7+ caractères (92⁷)

Cela devrait être au moins log₂(100000⁴ × 32 × 3 × 64 × 92⁵) = 112 bits d'entropie (ce qui est très fort, ≈17 caractères). J'ai ignoré la capitalisation (je suppose que seul le premier caractère est en majuscule) et un symbole (je suppose qu'il se termine par ., ! Ou ?, Donc le deuxième symbole a un complexité de 3) et j'ai également supposé que "aléatoire" n'est pas tout à fait aléatoire et j'ai calculé le code comme un équivalent à cinq caractères (le strict respect de la formule ci-dessus vous donnerait plus de 128 bits d'entropie à ≈20 caractères).

Ce dernier point mérite d'être répété:

Les humains sont très mauvais pour générer de l'aléatoire

Très très peu de codes d'accès de caractères "aléatoires" générés par l'homme, même approche vrai caractère aléatoire. Il y aura des modèles dans le code liés au clavier de la personne, aux numéros préférés et/ou à l'hypothèse qu'un certain mot obscur est impossible à deviner.

J'ai conçu ce schéma pour être robuste contre le manque inhérent de hasard des gens; en supposant un vocabulaire limité (disons les 2600 mots en anglais de base ), l'utilisation de mots apparentés (pénalisés en ne comptant que trois mots), et un code d'accès limité à l'entropie de six caractères alphanumériques, log₂(2600³ × 62⁶) lui-même est toujours fort à 70 bits (≈10,6 caractères).

Ne laissez pas cette eau couler votre phrase secrète ! Cette section est présente pour démontrer que ce schéma a une certaine résistance à l'entropie limitée des choix humains, pas pour encourager les mauvais choix.

Le seul vrai problème vient des gens qui prennent des citations ou des paroles comme leurs quatre mots. Ces phrases de passe sont anéanties si la citation ou les paroles peuvent être devinées (par exemple en regardant vos likes sur Facebook) ou auraient autrement une entropie d'environ 6 caractères aléatoires à un temps de crack de 30 secondes (MD5) à 17 jours (PBKDF2) .

Vous pouvez utiliser ma table d'entropie pour calculer l'entropie de votre schéma de phrase secrète.

(Ne vous préoccupez pas du fait que les mots de passe vivent brièvement en mémoire sauf si vous êtes un développeur)

1
Adam Katz

Non je ne pense pas.

Le conseil réel dans cette bande dessinée xkcd est de tiliser des mnémoniques faciles à retenir et générer un mot de passe tant que vous vous en souvenez. Ce sont des conseils de base sur les mots de passe n'importe où et resteront toujours vrais (même la méthode de Schneier citée utilise ces deux faits de base). En effet, la bande dessinée utilise des mots anglais courants, mais votre implémentation ne doit pas l'être, et la bande dessinée n'implique pas que vous le fassiez.

Bien sûr, les mots de passe les plus sécurisés sont des chaînes totalement aléatoires comme l'apparence d'une chaîne MD5, et vous pouvez probablement utiliser un gestionnaire de mots de passe pour stocker tous ces mots de passe, mais alors quel mot de passe allez-vous utiliser pour ce gestionnaire? ¯\ (ツ)

1
Raestloz