Question:
L'entropie du mot de passe varie entre les différentes vérifications
Neekoy
2018-09-05 14:37:54 UTC
view on stackexchange narkive permalink

Je suis massivement sous-informé en ce qui concerne la sécurité en profondeur, mais j'ai cru comprendre que l'entropie des mots de passe devrait être quelque peu similaire entre les différents algorithmes.

J'ai donné quelques vérifications d'entropie des mots de passe, et les algorithmes m'ont donné des résultats extrêmement variables.

Est-ce à prévoir, et existe-t-il une vérification fiable / standard de l'entropie du mot de passe?

Pour ajouter à la belle réponse de Connor: les vérifications d'entropie de mot de passe que vous trouvez sur le Web sont pour la plupart des ordures et ne vous disent rien sur la force de votre mot de passe, en particulier en ce qui concerne la devinabilité.
https://security.stackexchange.com/questions/185236/confused-about-using-a-password-that-would-take-centuries-to-break
Sept réponses:
Conor Mancone
2018-09-05 15:55:28 UTC
view on stackexchange narkive permalink

Tenter d'ajouter à la réponse de l'autre Connor:

Quelque chose d'important à garder à l'esprit est que l'entropie est bien sûr, en substance, "la quantité d'aléatoire" dans le mot de passe. Par conséquent, une partie des raisons pour lesquelles différents vérificateurs d'entropie ne seront pas d'accord est que l'entropie est une mesure de la façon dont le mot de passe a été généré, et non de ce que le mot de passe contient. Un exemple extrême est généralement la meilleure façon de montrer ce que je veux dire. Imaginez que mon mot de passe était frphevgl.fgnpxrkpunatr.pbzPbabeZnapbar .

Un vérificateur d'entropie évaluera probablement cela avec une grande quantité d'entropie car il ne contient aucun mot et est long. Il ne contient pas de nombres, mais en prenant un calcul simple (comme ce que Connor a décrit dans sa réponse, et ce que font la plupart des calculateurs d'entropie), vous pourriez deviner une entropie de 216 bits d'entropie - bien plus que un mot de passe typique a besoin de nos jours (38 caractères avec un mélange de majuscules et de minuscules donnent 52 ^ 38 ≈ 2 ^ 216).

Cependant, en regardant cela, quelqu'un pourrait soupçonner que mon mot de passe n'est pas vraiment aléatoire du tout et pourrait se rendre compte que ce n'est que la transformation rot13 de nom du site + mon nom . Par conséquent, la réalité est qu'il n'y a aucune entropie dans mon mot de passe, et quiconque sait comment je génère mes mots de passe saura quel est mon mot de passe pour chaque site auquel je me connecte.

Ceci est un exemple extrême mais j'espère qu'il fait passer le message. L'entropie n'est pas déterminée par l'apparence du mot de passe, mais par la manière dont il est généré. Si vous utilisez certaines règles pour générer un mot de passe pour chaque site, vos mots de passe peuvent ne pas avoir d'entropie du tout, ce qui signifie que quiconque connaît vos règles connaît vos mots de passe. Si vous utilisez beaucoup de hasard, vous avez un mot de passe à entropie élevée et il est sécurisé même si quelqu'un sait comment vous créez vos mots de passe.

Les calculatrices d'entropie émettent des hypothèses sur la manière dont les mots de passe ont été générés, et peuvent donc à la fois être en désaccord et se tromper. De plus, XKCD est toujours applicable lorsqu'il s'agit de ce genre de choses.

Excellent exemple, j'ai mis à jour ma réponse pour diriger ici car il s'agit d'une excellente description du contenu d'un mot de passe, et pas seulement de son entropie!
_ "L'entropie n'est pas déterminée par l'apparence du mot de passe mais par la manière dont il est généré" _ C'est la clé.Vous devriez en faire une déclaration ** bold **, afin qu'elle se démarque davantage.+1
Cela me rappelle aussi cette bande dessinée Dilbert: http://dilbert.com/strip/2001-10-25
@ilkkachu mon Dilbert préféré jamais :)
Pourriez-vous affirmer que l'entropie de votre mot de passe se réduit à la probabilité que vous utilisez la méthode rot13 que vous avez décrite?Pour un utilisateur aléatoire, cette probabilité est assez faible.La probabilité qu'ils utilisent 123456 ou mot de passe est beaucoup plus élevée.Ou supposez-vous qu'un attaquant peut vous identifier personnellement et connaît votre méthode de génération de mot de passe à partir de fuites (par exemple, les fuites répertoriées sur haveibeenpwned.com)?
Connor J
2018-09-05 14:50:18 UTC
view on stackexchange narkive permalink

L'entropie du mot de passe est calculée par le nombre de possibilités qu'elle pourrait être à la puissance de la longueur ie. Mot de passe à 8 caractères en majuscules et minuscules = (26 * 2) 8 , (26 caractères de l'alphabet * 2 pour les majuscules et les minuscules).

Si vous incluez les chiffres 0-9 également, alors cette puissance devient 26 * 2 + 10, et si vous incluez également des caractères spéciaux, ce nombre peut devenir assez grand pour le nombre de possibilités.

Donc, à titre d'exemple, nous prendrons un mot de passe QweRTy123456 , (un horrible mot de passe que je connais). Ce mot de passe comporte 12 caractères, donc la puissance est le nombre 12, il utilise à la fois des majuscules, des minuscules et des chiffres, donc nous avons 62 12 . Ce qui donne un nombre total de possibilités de 3.2262668e + 21.

Maintenant, si nous prenons ce même mot de passe, mais tout en minuscules, c'est à dire. qwerty123456 , la valeur que nous avons est 36 12 , ce qui nous donne un potentiel de 4,7383813e + 18, toujours un nombre énorme mais beaucoup plus petit que l'utilisation des majuscules également.

La force du mot de passe repose sur deux facteurs majeurs, la longueur et la complexité. À titre d'exemple, je vais montrer un code PIN numérique de 4 contre 8 caractères pour montrer la différence. Donc, pour un code PIN à 4 chiffres, 10 4 nous avons 10 000 combinaisons possibles, et si nous utilisons une épingle à 8 chiffres, c'est à dire. 10 8 nous avons 100 000 000 de possibilités. Donc en doublant la longueur du mot de passe, nous avons multiplié par 10 000 les candidats potentiels.

Le deuxième facteur des mots de passe repose sur la complexité, c'est-à-dire. majuscules et minuscules, caractères spéciaux, etc. J'ai donné un exemple ci-dessus pour montrer comment cela augmente rapidement en utilisant plus de jeux de caractères.

Juste une note finale, un mot de passe n'est pas aussi fort que son potentiel, car un mot de passe de 12 caractères peut être le lieu de naissance de quelqu'un, le nom d'un animal de compagnie, etc. Le contenu d'un mot de passe est également extrêmement important. Le modèle à 4 mots aléatoires a tendance à être assez populaire et sûr, xkcd obligatoire.

La réponse de ConorMancone donne une excellente explication et un exemple du contenu d'un mot de passe par rapport à l'entropie, je vous suggère donc de le lire aussi pour plus d'informations sur ce sujet.

Donc, en résumé, prenez le nombre de possibilités du jeu de caractères à la puissance de la longueur du mot de passe, et divisez par 2 pour une méthode fiable d'obtenir la force du mot de passe basée sur des techniques de force brute.

J'espère que cela répond à votre question, si vous avez encore un commentaire, je le mettrai à jour pour refléter vos questions.

Excellent je le comprends maintenant.Fondamentalement, il s'agit simplement d'une mesure de la complexité d'un mot de passe, mais pas de la force du mot de passe car il existe des tables de hachage, des vérifications de dictionnaire, des vérifications d'informations communes et autres.Merci pour l'explication.:)
"vous avez seulement besoin d'obtenir 1/2 + 1 possibilités pour obtenir la bonne réponse" - Ce n'est pas ce qu'est l'attaque d'anniversaire, c'est juste une probabilité de 50% de deviner correctement en fonction de la recherche de la moitié de l'espace.
@JAD ah bel endroit, je vais corriger ça maintenant
@ConnorJ Bonne correction, j'ai raté celle-là.Cependant, vous appliquez toujours par erreur l'attaque d'anniversaire.Quand vous dites "1/2 + 1 possibilités" (idk où vous obtenez ce +1), vous voulez dire essayer 50M sur 100M des mots de passe potentiels, n'est-ce pas?Ce n'est pas ce qu'est l'attaque d'anniversaire, et cela ne garantit pas de trouver le mot de passe correct, c'est le nombre moyen de suppositions nécessaires.
@AndrolGenhald ouais, j'essayais juste de trouver une meilleure façon de le formuler afin que la réponse soit plus cohérente.Par attaque d'anniversaire, je voulais dire que pour trouver des paires basées sur des mots (c'est-à-dire un mot de passe utilisateur), je mettrai à jour la réponse maintenant
@ConnorJ L'attaque d'anniversaire s'appliquerait à _deux textes en clair_ ayant le même hachage, ne trouvant pas une entrée qui a le même hachage qu'un texte en clair _specific_;c'est-à-dire que l'attaque d'anniversaire ne peut pas être utilisée pour trouver une collision avec un hachage connu.
@Qwerty01 vient d'être mis à jour pour être plus clair qu'il est basé sur des paires correspondantes
@ConnorJ comme l'a dit Qwerty01, ce n'est toujours pas l'attaque d'anniversaire.L'attaque d'anniversaire s'applique aux attaques de collision (trouver deux choses qui produisent le même hachage), pas aux attaques de préimage (trouver quelque chose qui produit un hachage spécifique).Je ne vois en aucune façon que ce soit pertinent ici.Je suggère d'en lire un peu plus, je ne pense pas que vous en ayez une compréhension claire.
Veuillez épeler «nombre» au lieu d'écrire «non», sauf si vous avez une très bonne raison de ne pas le faire (ce que vous ne faites pas dans le cas où vous l'avez utilisé).
Comment savons-nous que «qwerty123456» est l'un des 36 ^ 12 mots de passe possibles?Il semble qu'il est généré à partir de six lettres suivies de 6 chiffres, ce qui donne 26 ^ 6 * 10 ^ 6.En fait, il semble que cela soit généré en choisissant les six premiers caractères des deux lignes d'un clavier, ce qui le rendrait extrêmement faible, car les séquences de caractères que vous pouvez obtenir directement à partir d'un clavier sont assez rares.Donc a) il est fort probable que `qwerty123456` n'ait pas été généré à partir d'un espace de la taille 36 ^ 12, et b) le" vérificateur de force "n'a aucun moyen réel de savoir si le mot de passe a été généré par une règle simple.
@ilkkachu Exactement.La mesure de l'entropie est, dans une certaine mesure, subjective."Xuj3ALP" sept caractères aléatoires sont-ils choisis parmi les majuscules, les minuscules et les chiffres?Ou s'agit-il de trois lettres minuscules, d'un chiffre et de trois lettres majuscules?Ce que vous pensez que c'est le fait passer d'environ 32 bits d'entropie à environ 42!
Comment est-ce la réponse acceptée?Ce n'est * pas * comment l'entropie du mot de passe est calculée du tout, et cela ne répond même pas à la question de l'OP de savoir pourquoi différents contrôleurs proposent différents niveaux d'entropie.
@ilkkachu C'est pourquoi l'entropie ne peut pas être calculée directement à partir d'un mot de passe, elle doit être calculée en fonction de _la manière dont le mot de passe a été généré_.
Kevin
2018-09-06 18:33:04 UTC
view on stackexchange narkive permalink

L'entropie du mot de passe est calculée en: connaissant (ou devinant) l'algorithme utilisé pour générer le mot de passe, et en rassemblant le nombre de points de branchement différents utilisés pour générer le mot de passe que vous avez choisi.

Soit je donne quelques exemples:

Mot de passe: mot de passe↑

Ce n'est pas 26 ^ 8 (ou 2 ^ 38) - parce que l'algorithme n'était pas "choisir 8 caractères minuscules aléatoires". L'algorithme était le suivant: choisissez un mot unique, très facile à retenir. Combien de mots de ce genre y a-t-il? Si vous décidez, "il y a 200 mots de ce type", alors vous regardez environ 8 bits d'entropie (et non 38).

Mot de passe: mot de passe6

Semblable à l'entrée précédente, ce n'est pas 36 ^ 9 (ou 2 ^ 47) - car l'algorithme consiste à choisir un mot unique, très facile à retenir, puis à le décorer à la fin avec un numéro à un chiffre. L'entropie ici est d'environ 11 bits (et non 47.)

Mot de passe: carpet#terraform2^

Vous pouvez maintenant deviner ce qui se passe. Deux mots relativement rares, avec un caractère de ponctuation entre eux et un chiffre à la fin. Si vous estimez que ces mots ont été choisis dans un dictionnaire de 10000 mots (2 ^ 13), vous regardez quelque chose comme 33 bits d'entrophie (13 pour le premier mot + 4 pour la ponctuation + 13 pour le deuxième mot + 3 pour le dernier chiffre.)

Alors, maintenant, pour répondre à votre question directe: pourquoi les différents vérificateurs d'entropie donnent-ils des valeurs différentes?

Eh bien, utilisons ce dernier mot de passe: tapis # terraform2.

Un évaluateur d'entropie pourrait dire: "Hé, je n'ai aucune idée de la manière dont vous avez généré ceci. Il doit donc s'agir simplement de caractères aléatoires parmi les minuscules, la ponctuation et les nombres. Appelez-le 52 ^ 17, ou 97 bits d'entropie (2 ^ 97.) "

Un autre évaluateur d'entropie un peu plus intelligent pourrait dire:" Hé, je reconnais ce premier mot, mais cette deuxième chaîne de lettres est juste aléatoire. Donc l'algorithme est un seul mot inhabituel, une ponctuation, neuf lettres aléatoires, puis un nombre. Donc 10 000 x 16 x 26 ^ 9 x 10, soit 63 bits d'entropie "

Un troisième et un quatrième évaluateur d'entropie pourraient comprendre correctement l'algorithme utilisé pour le générer. Mais le troisième évaluateur pense que les deux mots devraient provenir d'un dictionnaire de 5000 mots, mais le quatrième évaluateur pense que vous devez pénétrer dans un dictionnaire de 30 000 mots pour les trouver. Donc on arrive avec 32 bits sur l'entropie tandis que l'autre pense qu'il y a 37 bits.

J'espère que ça commence à avoir un sens. La raison pour laquelle différents évaluateurs d'entropie proposent des nombres différents est qu'ils proposent tous des évaluations différentes sur la manière dont le mot de passe a été généré.

supercat
2018-09-05 20:32:51 UTC
view on stackexchange narkive permalink

Il n'y a aucun moyen de juger si une séquence de nombres ou de caractères se trouve être aléatoire. Une machine appelée à produire un nombre aléatoire à sept chiffres produirait 8675309 environ une fois tous les dix millions de requêtes. Un fan de Tommy Tutone pourrait offrir ce nombre à chaque fois. Si une application de sécurité a besoin d'un numéro à sept chiffres (il doit peut-être être accessible via le pavé numérique), elle peut juger que 8675309 a une bonne entropie, à moins que cette application ait été écrite par un fan de Tommy Tutone, auquel cas il pourrait considérer ce nombre comme étant aussi mauvais que 1111111 ou 1234567.

Fondamentalement, la seule chose qu'un vérificateur d'entropie peut faire est de vérifier si un mot de passe correspond à des motifs considérés comme ayant une faible entropie, et d'observer le modèle d'entropie la plus basse auquel il correspond [chaque code d'accès correspondra à un modèle - un code d'accès de eg 23 caractères correspondront à des modèles comme «tout autre code de 20 à 25 caractères» s'il ne correspond à rien d'autre]. Si différentes personnes sont invitées à produire une liste de tous les modèles de codes d'accès à faible entropie auxquels elles peuvent penser, elles penseront certainement à des choses différentes. Ce qui compte vraiment, cependant, c'est de savoir si un mot de passe particulier correspondrait à un modèle qu'un attaquant décide d'essayer. Bien qu'il existe certains ensembles de codes d'accès que les attaquants seraient particulièrement susceptibles d'essayer (par exemple, 1111111 et 1234567), les choix de code d'accès une fois que l'on franchit cette limite sont susceptibles de varier considérablement d'un attaquant.

"Il n'y a aucun moyen de juger si une séquence de nombres ou de caractères se trouve être aléatoire."Oui, bien que la vérification du caractère aléatoire des valeurs passées par rapport à tout modèle possible soit mauvaise, il est assez facile de vérifier si un essai futur répond aux modèles de base.Je ne peux pas dire que 1111111 n'est pas aléatoire, mais je peux concevoir un test de sorte que si un générateur crache 1111111 pendant le test, je rejetterai avec une grande certitude l'hypothèse nulle selon laquelle les nombres sont aléatoires et indépendants.Quoi qu'il en soit, voici une bande dessinée Dilbert pertinente: http://dilbert.com/strip/2001-10-25
@CodyP: Pour tout N pratique, le nombre de manières non aléatoires théoriquement possibles de générer une liste de N nombres dépassera le nombre de listes possibles de N nombres.Si le seul critère que l'on utilise pour rejeter une liste est de savoir si 11111111 apparaît plus qu'il ne le devrait, on accepterait à tort la plupart des listes non aléatoires.Si l'on tentait de rejeter 60% des listes qui pourraient avoir été produites par des moyens non aléatoires, on rejetterait également 60% des listes aléatoires.Le mieux est d'espérer que certains moyens non aléatoires de génération de données seront beaucoup plus susceptibles d'être utilisés que d'autres.
Bien que ce soit factuellement correct et que vous soulevez de bonnes mises en garde, mon point principal est que l'idée intuitive selon laquelle 1111111 est le signe d'un mauvais RNG a du mérite, malgré des considérations académiques telles que les faux négatifs et les modèles obscurs.Je ne pense pas que quiconque vous suggérerait de définir votre valeur p à 60% ou de ne vérifier que les 1 répétés.Compte tenu des tests matures comme la suite de tests NIST ou le vérificateur de mots de passe zxcvbn, nous n'avons pas à prétendre que rejeter 1111111 est un problème difficile.Cela est particulièrement vrai pour les mots de passe pour lesquels nous avons une bonne idée des modèles courants.
@CodyP: Mon point est que les évaluations pour savoir si des codes d'accès particuliers sont plus susceptibles d'être choisis via une méthode à haute entropie qu'une méthode à faible entropie reposent presque entièrement sur des suppositions quant à la probabilité que diverses méthodes à faible entropie soient employées.
BoppreH
2018-09-05 20:01:50 UTC
view on stackexchange narkive permalink

De manière générale, la sécurité d'un mot de passe dépend de la difficulté pour votre attaquant de le deviner. C'est ce que ces sites essaient de mesurer, avec différents algorithmes pour deviner.

Un vérificateur très stupide peut penser que le mot de passe "00000000000000000000" a une entropie élevée car il est long et l'algorithme du site Web pour deviner est "essayez toutes les combinaisons de tous les caractères", ce qui prendrait en effet beaucoup de temps pour devinez correctement ce mot de passe. Un vérificateur plus intelligent essaiera d'abord les mots de passe numériques, introduisant ainsi une pénalité de sécurité pour ce mot de passe (il sera trouvé plus rapidement). Un devineur plus intelligent essaiera d'abord des modèles (comme des caractères répétés ou des mots du dictionnaire) et conclura à juste titre que ce mot de passe est une poubelle.

Cela peut sembler inutile, mais notez que même un mauvais devineur vous donnera une limite supérieure utile : "votre mot de passe peut être rompu avec tout au plus autant de suppositions". C'est la valeur que ces contrôleurs fournissent. En essayant plusieurs devinettes et en prenant le nombre le plus bas, vous obtenez une estimation plus prudente.

Future Security
2018-09-07 00:22:11 UTC
view on stackexchange narkive permalink

Les autres réponses n'utilisent pas la définition de la théorie de l'information de l'entropie. La définition mathématique est définie comme une fonction basée uniquement sur une distribution de probabilité. Il est défini pour la fonction de densité de probabilité p comme la somme de p (x) * -log (p (x)) de chaque résultat possible x .

Les unités d'entropie sont logarithmiques. En général, deux sont utilisés pour la base du logarithme, nous disons donc qu'un système stochastique a n bits d'entropie . (D'autres bases peuvent être utilisées. Pour la base e , vous mesureriez plutôt l'entropie "nats", pour le logarithme nat ural, mais la base deux et les "bits" sont plus courants.)

Le terme vient de la théorie de l'information. L'entropie est, bien entendu, liée à l'information. (Une autre raison pour laquelle nous disons "bits".) Mais vous pouvez aussi décrire l'entropie comme une mesure de "l'imprévisibilité".

Lancer une pièce juste une fois (dans le monde idéal) produit 1 bit d'entropie. Lancer une pièce deux fois produit deux bits. Etc. Les distributions uniformes (discrètes) sont les distributions les plus simples pour calculer l'entropie car chaque terme additionné est identique. Vous pouvez simplifier l'équation pour l'entropie d'une variable discrète uniforme X avec n résultats chacun avec 1 / n probabilité de

H (X) = n * 1 / n * -log (1 / n) = log (n)

Vous devriez pouvoir voir comment on peut obtenir l'entropie hors du système qui est un ou plusieurs tirages de pièces avec juste connaissance du nombre de tirages de pièces à enregistrer.

L'entropie des distributions non uniformes (discrètes) est également facile à calculer. Cela nécessite juste plus d'étapes. Je vais utiliser l'exemple de tirage au sort pour relier à nouveau l'entropie à l'imprévisibilité. Et si vous utilisiez à la place une pièce biaisée? Eh bien, l'entropie est

H = p (têtes) * -log (p (têtes)) + p (queues) * -log (p (queues))

Si vous indiquez que vous obtenez ceci

Coin flip entropy plot

Vous voyez? Moins un tirage de pièces (distribution) est juste (uniforme), moins il a d'entropie. L'entropie est maximisée pour le type de tirage de pièce qui est le plus imprévisible: un tirage de pièce juste. Les lancers de pièces biaisés contiennent encore une certaine entropie tant que les têtes et les queues sont encore possibles. L'entropie (imprévisibilité) diminue lorsque la pièce devient plus biaisée. Tout ce qui est sûr à 100% n'a aucune entropie.

Il est important de savoir que c'est l'idée de lancer des pièces qui a une entropie, et non le résultat des lancers de pièces eux-mêmes. Vous ne pouvez pas déduire d'un échantillon x de la distribution X quelle est la probabilité p (x) de x . Tout ce que vous savez, c'est qu'il est non nul. Et avec seulement x , vous n'avez aucune idée du nombre d'autres résultats possibles ou de leurs probabilités individuelles. Par conséquent, vous ne pouvez pas calculer l'entropie en regardant simplement un échantillon.

Lorsque vous voyez une chaîne "HTHTHT" , vous ne savez pas si elle provient d'une séquence de six lancers de pièces justes (6 bits d'entropie), une séquence de retournement de pièces biaisée (< 6 bits), une chaîne générée aléatoirement à partir de la distribution uniforme des 6 lettres majuscules (6 * log_2 (26) ou environ 28 bits), ou s'il provient d'une séquence qui alterne simplement entre 'H' et 'T' (0 bits).

Pour la même raison, vous ne pouvez pas calculer l'entropie d'un seul mot de passe. Tout outil qui vous indique l'entropie d'un mot de passe que vous entrez est incorrect ou déforme ce qu'il entend par entropie. (Et peut-être récolter des mots de passe.) Seuls les systèmes avec une distribution de probabilité peuvent avoir une entropie. Vous ne pouvez pas calculer la véritable entropie de ce système avec la connaissance des probabilités exactes et il n'y a aucun moyen de contourner cela.

On peut cependant estimer l'entropie, mais cela nécessite encore quelques connaissances (ou hypothèses) de la distribution. Si vous supposez qu'un mot de passe de type k a été généré à partir de l'une des rares distributions uniformes avec un alphabet A , vous pouvez estimer l'entropie à log_2 (1 / | A |) . | A | étant la taille de l'alphabet. De nombreux estimateurs de la force des mots de passe utilisent cette méthode (naïve). S'ils voient que vous n'utilisez que des minuscules, ils supposent que | A | = 26 . S'ils voient un mélange de majuscules et de minuscules, ils supposent | A | = 52 . C'est pourquoi un prétendu calculateur de force de mot de passe peut vous dire que "Password1" est des milliers de fois plus sécurisé que "password" . Il émet des hypothèses sur la distribution statistique des mots de passe qui ne sont pas nécessairement justifiées.

Certains vérificateurs de force de mot de passe ne présentent pas ce comportement, mais cela ne signifie pas qu'il s'agit d'estimations exactes. Ils sont simplement programmés pour rechercher plus de modèles. Nous pouvons faire des estimations plus éclairées de la force du mot de passe en fonction des comportements humains observés ou imaginés des mots de passe, mais nous ne pouvons jamais calculer une valeur d'entropie qui n'est pas une estimation.

Et comme je l'ai dit plus tôt, il est faux de dire que les mots de passe eux-mêmes ont une entropie qui leur est associée. Quand les gens disent qu'un mot de passe a ___ entropie alors, s'ils savent de quoi ils parlent, ils l'utilisent vraiment en abrégé pour "ce mot de passe a été généré en utilisant un processus qui a ____ entropie."

Certaines personnes préconisent que les mots de passe soient générés par ordinateur plutôt que par l'homme. C'est parce que les humains sont mauvais pour trouver des mots de passe à haute entropie. Le biais humain produit des distributions de mots de passe non uniformes. Même les mots de passe longs que les gens choisissent sont plus prévisibles que prévu. Pour les mots de passe générés par ordinateur, nous pouvons connaître l'entropie exacte d'un espace de mot de passe parce qu'un programmeur a créé cet espace de mot de passe. Nous sommes en mesure de connaître l'entropie de mot de passe générée par la machine sans estimation, en supposant que nous utilisons un RNG sécurisé. Diceware est une autre méthode de génération de mots de passe que les gens préconisent et qui possède les mêmes propriétés. Il ne nécessite aucun ordinateur et suppose à la place que vous avez un dé à six faces.

Si un mot de passe est généré avec n bits d'entropie, nous pouvons estimer le nombre de suppositions a Le cracker de mot de passe doit être égal à 2 ^ (n-1). Cependant, il s'agit d'une estimation prudente. La force du mot de passe et l'entropie ne sont pas synonymes. L'estimation basée sur l'entropie suppose que le pirate connaît votre processus de génération de mot de passe individuel. La force du mot de passe basée sur l'entropie suit le principe de Kerckhoffs. Il mesure la force du mot de passe dans un sens (puisque l'entropie mesure l'imprévisibilité) en utilisant l'état d'esprit security-through-obscurity is not security . Si vous gardez consciemment l'entropie à l'esprit lors de la génération de mots de passe, vous pouvez choisir une méthode de génération de mot de passe avec une entropie élevée et obtenir une limite inférieure sur la sécurité de votre mot de passe.

Tant que le mot de passe est mémorable / utilisable il n'y a rien de mal à utiliser des calculs d'entropie vraie comme estimation prudente de la force du mot de passe; mieux vaut sous-estimer (et utiliser des mots de passe générés par ordinateur ou générés par des dés) que surestimer la force du mot de passe (comme le font les algorithmes d'estimation de la force des mots de passe avec les mots de passe générés par l'homme.)

La réponse à votre question est Non. Il n'existe pas de moyen fiable de vérifier l'entropie du mot de passe. C'est en fait mathématiquement impossible.

+1, mais je crois que votre `H (X)` devrait être `log_2 (n)` et non `log_2 (1 / n)`.Et je ne sais pas pourquoi vous dites que les autres réponses n'utilisent pas la définition de la théorie de l'information de l'entropie, certaines ne le font pas mais la plupart le font.
@AndrolGenhald J'ai corrigé l'erreur H (X).J'ai oublié les signes moins.D'autres réponses vont directement au nombre de bits de force d'un mot de passe, mais elles ignorent les formules.Peut-être que je n'ai pas lu assez attentivement.Sauter la nuance d'entropie définie sur la base d'une distribution de probabilité conduit à un malentendu.Quelqu'un pourrait facilement enlever, à la place, l'idée que force = longueur * alphabet_size, ce qui n'est vrai que pour les distributions uniformes.
Quelques suggestions d'améliorations possibles: "Et peut-être récolter des mots de passe."pourrait être plus clair si vous avez lié des exemples de vérificateurs d'entropie malveillants connus et connus.Notez également que les distributions non uniformes (discrètes) ne sont pas préférées dans le mot de passe ou en particulier la cryptographie car certaines sorties sont plus courantes que l'entropie seule ne le suggère (en échange d'autres sorties étant moins courantes).Enfin, la plupart des vérificateurs de force de mot de passe fournissent une limite supérieure ou une entropie «aveugle».Les bons contrôleurs fournissent une limite supérieure plus petite basée sur des scénarios réalistes.Je ne considère pas cela comme malhonnête.
Jeffrey Goldberg
2018-09-07 07:17:06 UTC
view on stackexchange narkive permalink

Il y a deux choses cruciales qui doivent être comprises, chacune sur laquelle je vais développer

  1. Tout ce qui tente de juger l'entropie d'un mot de passe à partir du mot de passe seul se saisit à des pailles. C'est parce que la force est une caractéristique du système qui génère le mot de passe et non le mot de passe lui-même.

  2. L'entropie n'est pas un concept cohérent pour la force du mot de passe sauf si le mot de passe est le résultat d'un processus qui génère des mots de passe uniformément . L'entropie est une métrique médiocre lorsque la distribution des mots de passe possibles n'est pas uniforme.

C'est le schéma de création qui compte

La force d'un mot de passe ( qu'il soit mesuré en entropie ou non) est une fonction du schéma qui a été utilisé pour le créer. Pour me citer quelque chose que j'ai écrit en 2011

Je ne saurais trop insister sur le fait que nous devons regarder le système au lieu d'une seule sortie de le système. Permettez-moi d’illustrer cela par un exemple ridicule. Les mots de passe F9GndpVkfB44VdvwfUgTxGH7A8t et rE67AjbDCUotaju9H49sMFgYszA ressemblent chacun à des mots de passe extrêmement forts. Sur la base de leur longueur et de l'utilisation de majuscules et minuscules et de chiffres, tout système de test de la force des mots de passe dirait que ce sont des mots de passe extrêmement forts. Mais supposons que le système par lequel ceux-ci ont été générés était le suivant: Lancez une pièce. Si cela arrive, utilisez F9GndpVkfB44VdvwfUgTxGH7A8t , et si cela arrive, utilisez rE67AjbDCUotaju9H49sMFgYszA .

Ce système ne produit que deux résultats. Et même si les mots de passe semblent forts, les mots de passe générés par ce système sont extrêmement faibles.

Tout indicateur de force de mot de passe les rapportera comme très forts. Pour me citer également en décrivant le fonctionnement de la jauge de force de 1Password (Divulgation: je travaille pour 1Password), j'ai présenté ma réponse de 2013 avec:

La façon habituelle de déterminer la force d'un mot de passe spécifique est de sacrifier un poulet puis de lire les entrailles. Mais dans 1Password, nous faisons mieux. Nous calculons l'horoscope du poulet avant de le sacrifier. Étant donné que certains de nos employés sont végétariens, nous sommes toujours à la recherche d'approches alternatives.

La triste réalité de la question est qu'il est impossible de mesurer la force des mots de passe avec précision (à moins de passer des années ou des décennies à essayer de déchiffrer le mot de passe proposé). La raison en est que la force d'un mot de passe dépend en grande partie du système par lequel il a été généré. Ce n'est pas quelque chose qui peut être déterminé avec confiance en inspectant un seul mot de passe.

Il n'est donc pas du tout surprenant que différents compteurs de force produiront des résultats différents. Et tous doivent être pris avec un gros grain de sel. Comme d'autres l'ont noté, les compteurs de force doivent deviner quel type de système vous avez utilisé pour créer le mot de passe à partir de l'instance unique du mot de passe lui-même. Et cette hypothèse fonctionne très bien.

Supposons, par exemple, que le mot de passe que vous testez a une casse mixte. Désormais, la plupart des mots de passe créés par les humains auront parfois des majuscules au début du bloc. Autrement dit, les humains sont beaucoup plus susceptibles de créer un mot de passe qui ressemble à Password1234 qu’ils ne le sont pour créer paSsword1234 ? Votre système de force explique-t-il ce genre de différence? Ou est-ce qu'il détecte simplement qu'il y a une casse mixte et fait un calcul en supposant (à tort) que les lettres majuscules et minuscules sont probablement égales dans tout le mot de passe?

Maintenant, les compteurs de force se sont améliorés au cours des dernières années, mais même les meilleurs d'entre eux sont profondément et fondamentalement limités car ils essaient de comprendre quel système vous avez utilisé pour créer le mot de passe à partir du mot de passe lui-même.

L'entropie est la mauvaise notion

L'entropie n'a de sens que si chaque mot de passe possible que le schéma peut créer est également probable. Dans une conférence PasswordsCon 2013, j'ai illustré cela avec quelques exemples extrêmes. (Affichez le PDF des diapositives en mode page unique pour obtenir les superpositions).

Imaginez un schéma de création de mot de passe qui 9 fois sur 10 choisit un mot de passe fixe, mais l'autre 1 fois sur dix sélections uniformément parmi 2 512 possibilités. L'entropie de Shannon de ce schéma est d'environ 52 bits (ce qui est très respectable pour un mot de passe), mais il s'agit clairement d'un schéma de création de mot de passe terrible. J'ai fait valoir, à la place, que lorsqu'il y a une distribution non uniforme, nous devrions simplement utiliser la probabilité du résultat le plus probable (min-entropie) comme mesure de la force du schéma.

Bien que ce soit un artifice exemple pour faire un point, le fait est que la distribution des mots de passe choisis par l'homme est une distribution à tête grasse. Peu importe le nombre de mots de passe différents qui pourraient être générés si beaucoup de gens finissent tous par choisir parmi les plus courants.

Je vous recommande donc fortement d'utiliser le mot "entropie" que vous utilisez "min-entropy" qui est log 2 p(xm ), où x m est le mot de passe le plus probable et p est sa probabilité de se produire. Notez que lorsque la distribution de probabilité est uniforme, l'entropie min et l'entropie de Shannon sont identiques. Mais lorsque la distribution n'est pas uniforme, elles peuvent être très différentes.

S'il est vrai que * l'entropie * d'un mot de passe dépend du schéma de création utilisé pour le générer, je ne pense pas qu'il en résulte que la * force * le fasse.Premièrement, il faut que le schéma de création soit * connu *: `F9GndpVkfB44VdvwfUgTxGH7A8t` et` rE67AjbDCUotaju9H49sMFgYszA` ne sont faibles que si l'attaquant sait qu'il existe un schéma qui sélectionne ces deux chaînes.Deuxièmement, différents schémas peuvent générer le même mot de passe: si j'utilise un compteur Geiger pour sélectionner une séquence de 8 points de code Unicode, il peut sélectionner "mot de passe";clairement, le fort caractère aléatoire n'a pas conduit à un mot de passe fort.
En matière de sécurité, vous devez supposer que l'attaquant connaît le système.Et ceux qui essaient sérieusement de déchiffrer les mots de passe en savent plus que quiconque sur les systèmes utilisés. Donc oui.Vous pouvez obtenir des mots de passe forts à partir de schémas à faible entropie en utilisant des schémas inconnus (et qui ne produisent pas les types de résultats communs à partir de schémas courants).Mais pensez à ce que cela signifie pour les compteurs de force.Une fois qu'un schéma est connu, le compteur doit s'adapter comme par magie.
La phrase que je conteste est "La force d'un mot de passe ... est fonction du schéma qui a été utilisé pour le créer."Oui, les attaquants connaissent les schémas généralement utilisés pour générer des mots de passe, mais ils ne connaissent pas en pratique le schéma spécifique utilisé pour créer un mot de passe particulier.Le compteur n'a pas besoin de "s'ajuster magiquement", il doit juste être basé sur * les techniques que les attaquants sont susceptibles d'utiliser *.Je dirais que la force d'un mot de passe est fonction de * la probabilité qu'un attaquant le devine *, quelle que soit la manière dont il a été réellement créé.


Ce Q&R a été automatiquement traduit de la langue anglaise.Le contenu original est disponible sur stackexchange, que nous remercions pour la licence cc by-sa 4.0 sous laquelle il est distribué.
Loading...