Question:
Lorsque vous choisissez un code PIN numérique, est-ce que cela aide ou fait mal de rendre chaque chiffre unique?
smitelli
2017-04-04 05:57:15 UTC
view on stackexchange narkive permalink

Imaginez un schéma de code PIN typique à 4 chiffres contenant les chiffres [0-9] . Si je choisis mon code PIN au hasard, j'obtiendrai un des 10 * 10 * 10 * 10 = 10 000 codes. D'après ma propre expérience, plus de la moitié du temps, une séquence aléatoire de quatre chiffres contiendra une propriété ou un motif qui abaisse considérablement son entropie: un seul chiffre utilisé dans plus d'une position, un motif ascendant / descendant, etc. (Oui, oui , un code PIN à 4 chiffres n'a que 13 bits d'entropie maximum pour commencer, mais certains codes aléatoires sont encore plus horribles .)

Si je respectais une règle où je n'utilise qu'un code PIN qui a un chiffre unique dans chaque position, je crois que le nombre de codes disponibles pour moi devient 10 * 9 * 8 * 7 = 5,040 (quelqu'un s'il vous plaît me corriger si je me suis trompé). J'ai presque réduit de moitié mon espace clé, mais j'ai également éliminé de nombreux codes à faible entropie.

À la fin de la journée, est-ce que je me suis aidé ou blessé en faisant cela?

MODIFIER: Wow, beaucoup de bonnes réponses ici. Pour clarifier, je pensais à l'origine moins en termes de code PIN ATM / banque (qui a probablement une politique de verrouillage agressive après un certain nombre de suppositions erronées) et plus en termes d'autres appareils à code PIN «non supervisés»: porte programmable serrures, panneaux de système d'alarme, claviers de portes de garage, etc.

Vous avez blessé votre mot de passe.Le plus sûr est celui qui est purement aléatoire.
Une machine ne sait pas que 2232 est plus probable parce que c'est plus facile.Ainsi, lorsque vous forcez brutalement, 2232 est tout aussi difficile à deviner que 3569. De plus, après trois tentatives, la carte est bloquée.Ainsi, même une broche avec trois chiffres identiques convient, car elle est tout aussi improbable que n'importe quel autre combo.
Toute sécurité dans un code PIN à 4 chiffres proviendra probablement de la volonté de l'émetteur de verrouiller la broche après un nombre de tentatives probablement à un chiffre.Par conséquent, mon intention est d'éviter les deux premières choses qu'un attaquant essaierait.Éviter les données codées sur soi comme les anniversaires est probablement plus important que les modèles.
L'entropie du mot de passe ne devient plus faible que si vous les triez par grandeur, c'est-à-dire.vous supposez la meilleure force brute du pire des cas, qui essaie 0000, 1111, 2222, etc. puis 111
@Eclipse pas si.Si l'on sait que 20% de la population utilise 1111 ou 1234, il vaut mieux ne pas faire partie de ces 20%, même si votre générateur de nombres aléatoires arrive à 1234 par pure chance sur 10000.
Excluant tous les nombres avec des chiffres répétés, tous les nombres avec les quatre chiffres dans une séquence ascendante ou décroissante, tous les nombres qui ressemblent à des années (19xx / 20xx) et tous les nombres qui ressemblent à des dates (0101..0131, 0201..0229, etc.) laisse 4 785 codes PIN «valides», soit près de la moitié de l'espace total des clés.Le seul problème restant est s'ils ont utilisé une date significative (anniversaire / anniversaire), etc. dans les neuf premiers jours de janvier à septembre, ce qui pourrait être presque n'importe quel nombre et ne peut donc pas être exclu mécaniquement.
Les commentaires ne sont pas destinés à une discussion approfondie;cette conversation a été [déplacée vers le chat] (http://chat.stackexchange.com/rooms/56640/discussion-on-question-by-smitelli-when-choosing-a-numeric-pin-does-it-help-ou).
IIRC, il y a eu une fuite de données contenant des codes PIN, et [cette carte thermique] (https://i.stack.imgur.com/OmnDV.jpg) a été réalisée à partir des données divulguées.Cela indique les broches les plus populaires.Mise à jour: [L'analyse complète] (http://www.datagenetics.com/blog/september32012/)
Le «PIN numérique» n'est-il pas tautologique?Et, n'importe quel nombre à 4 chiffres pourrait être réévalué comme aléatoire - 1/10 000 - car chacun n'apparaît qu'une seule fois comme lui-même.La valeur par défaut du verrou numérique est souvent 0000 du fabricant.
En général, * toute * restriction sur le choix des caractères dans une clé basée sur des caractères ou un mot de passe «affaiblit» la sécurité, du moins dans le concept.Des règles telles que l'exigence d'un chiffre, à la fois en majuscules et en minuscules, et un caractère spécial dans un mot de passe sont destinées à empêcher les personnes stupides d'être encore plus stupides (mais ne les obligent probablement qu'à écrire le code sur un morceau de ruban adhésif sur leur carte de débit).
L'image de la carte thermique liée dans la réponse d'ikegami ci-dessus répond à cette question de manière intuitive et sans avoir besoin d'expliquer des mathématiques complexes.
En fait, une entropie réduite n'a pas d'effet lors du forçage brutal si l'attaquant ne sait pas que vous excluez ces codes PIN.
Mon épinglette tous les sept mais je ne vous dirai pas dans quel ordre.
Fait intéressant: la machine allemande Enigma n'a jamais encodé une lettre à elle-même, ce qui signifie qu'il n'y avait que 33554432 (2 à la 25e puissance) des solutions possibles, plutôt que 67108864 (2 à la 26e puissance).Cela a rendu les charges plus faciles à craquer.http://math.stackexchange.com/questions/1209481/how-does-the-enigma-machine-ensure-that-no-letter-is-substituted-for-itself
Quinze réponses:
Rory McCune
2017-04-04 13:02:10 UTC
view on stackexchange narkive permalink

Le fait est qu'avec une broche à 4 chiffres, l'entropie n'est pas vraiment importante. Ce qui est important, c'est le lock-out et la psychologie de l'attaquant.

L'espace de clés est si petit que toute attaque automatisée (sans verrouillage) l'épuiserait presque instantanément.

Ce qui vous inquiète, c'est qu'un attaquant devine le code PIN avant que le compte ne se verrouille. Donc, en supposant un verrouillage raisonnable (disons 3 à 5 tentatives incorrectes), vous voulez que votre code PIN se trouve en dehors des 3 à 5 codes les plus susceptibles d'être choisis.

Personnellement, j'éviterais toute séquence de répétition à 4 chiffres et tout ce qui commence en 19XX, ce qui serait une année de naissance.

Désormais, les alecs intelligents diront "ahh mais si vous faites cela, les attaquants sauront ne pas les essayer", mais cela ne s'applique que si a) la majorité des la population d'utilisateurs suit ces conseils (indice, ils ne le feront probablement pas) et b) les attaquants savent que la population d'utilisateurs a suivi ces conseils.

Une excellente analyse de ceci ( lien avec l'aimable autorisation de @codesincahaos)

Modifier 2 - Pour une interprétation beaucoup plus mathématique de cela, je vous recommande de lire la réponse de @ diagprov

Certes, il s'agit toujours d'un site de questions-réponses.OP a posé une question dans laquelle rien ne suggère qu'OP a un quelconque influenceur à l'affût.La question utilise également des mathématiques.Si la question portait sur le fait de déjouer l'autre partie, nous pouvons enchérir.Je dirais n'importe quelle séquence sur le pavé numérique faisant un motif, regardez «1254», «7618» est beaucoup plus facile à trouver que «2776».Mais comment évaluer les réponses alors?
Je suppose que je l'évaluais en me basant sur la dernière phrase des OP demandant si cela aidait ou nuisait à leur sécurité.Pour moi, ce qui est important dans la sécurité du code PIN, ce n'est pas de choisir un code PIN couramment utilisé.S'il n'y a pas de lock-out, vous êtes de toute façon bourré, donc le seul facteur de votre contrôle est de choisir un élément inhabituel et non aléatoire.
Ok, est-ce que cela nuit ou aide la sécurité à exclure les chiffres répétés si le code PIN était de 8 chiffres?
Eh bien, avec des codes PIN à 8 chiffres, vous êtes toujours à un stade où la force brute sans contrainte est trivialement facile, vous supposeriez donc que le verrouillage + ne pas choisir de codes PIN communs serait la meilleure défense.La réponse à votre question dépendra du fait que la répétition des chiffres fait partie des formes les plus courantes de code PIN à 8 chiffres, si l'attaquant est conscient de la restriction avant de lancer une attaque et si le code PIN est généré par le système ou l'utilisateur.
J'ai relu votre réponse à quelques reprises et je ne vois pas la réponse à la question "* est-ce que je me suis aidé ou me suis blessé en faisant ça? *" - ce serait parfaitement normal, mais dans votre commentaire, vous avez en fait souligné le fait que vousabordent cette question même.
LISEZ CE LIEN.Désolé d'avoir crié.
"mais cela ne s'applique que ..." plus important encore;cela lui laisse encore 9890 combinaisons à essayer.
@RоryMcCune Cet article de DataGenetics a été une excellente lecture, merci.
a) et b) et inutiles car le point le plus important est que, même si les attaquants savent ne pas les essayer, ils n'auraient toujours aucun moyen de savoir comment deviner votre épingle aléatoire en 3 tentatives.
La partie sur les alecs intelligents me rappelle l'ancien outsmart ... Je choisirai 5000 parce que c'est juste au milieu, donc à chaque fois qu'ils commencent, il leur faudra un maximum de temps pour l'atteindre en moyenne.Mais que faire s'ils utilisent une recherche binaire?Ils commenceront à 5000 et le devineront en une seule fois.Ok, donc cela exclurait 5000, 7500, 2500, 3750, etc. Je choisirai donc 4999 ou 5001 car c'est le chemin moyen le plus long pour une recherche binaire et une recherche linéaire.Mais attendez, supposons qu'ils commencent au milieu et effectuent une recherche linéaire à partir de là ... etc.
La recherche binaire @Michael n'a pas d'application ici.Non, vraiment pas.Réfléchissez bien avant de répondre.Trouver un code PIN aléatoire est O (n).Une recherche binaire est une opération O (logn) qui commence par une * clé connue * et recherche un * sous-ensemble ordonné * des clés possibles.S'il ne s'agit pas d'un sous-ensemble, vous pouvez utiliser l'indexation directe, qui est O (1)."5000, 7500, 2500, 3750, etc."- une recherche binaire ne regardera que d'un côté de l'essai initial ou de l'autre, pas des deux.C'est tout l'intérêt de la recherche binaire,
@JimBalter C'était un peu ce que je voulais dire ... vous pouvez essayer de choisir un code PIN basé sur le schéma que vous pensez que l'attaquant utilisera pour essayer de deviner les codes PIN, mais il appartient à l'ancienne catégorie «vous-même déjoué».
^ Non, le fait est que vous ne comprenez pas ce qu'est une recherche binaire ou quand elle est appliquée.
8068: Le code PIN le plus populaire des lecteurs de données datagenetics.
@Michael Je n'ai aucune idée de la sécurité des broches, mais les recherches binaires ne sont vraiment pas applicables ici.Une recherche binaire n'a de sens que si vous obtenez des commentaires sur si une valeur est "plus grande que" ou "moins que" ce que vous avez essayé.Je ne connais aucun système de code PIN où le message d'erreur est "désolé, le mot de passe que vous avez essayé était un nombre plus grand que le mot de passe correct" - l'attaquant n'obtient que des commentaires "est le bon mot de passe" ou "n'est pas le bon mot de passe".
diagprov
2017-04-04 14:38:16 UTC
view on stackexchange narkive permalink

Je vais intervenir et parler un peu d'entropie et de probabilité et j'espère que cela vous aidera à comprendre.

Premièrement, qu'est-ce que la probabilité? C'est en fait une question ouverte parmi les statisticiens, mais voici la définition fréquentialiste: nous disons que si une pièce juste est retournée, elle a une probabilité de 0,5 de faire face. Cependant, si vous lancez une pièce, vous remarquerez peut-être que les cinq premiers résultats sont tous des têtes, ce qui ne semble pas correct. Ainsi, le fréquentialiste dit que si vous deviez lancer la pièce "assez" de fois, vous finirez par découvrir qu’un tirage au sort sur deux est une tête.

La clé est cette probabilité ne dit rien sur ce qui va réellement se passer . Un mot de passe à haute entropie peut être deviné du premier coup par simple chance, quels que soient les résultats possibles, etc.

Maintenant, qu'est-ce que l'entropie? Si vous commencez à dire "eh bien, c'est le nombre de résultats possibles ...", vous avez peut-être raison dans un contexte de génération de données aléatoires, mais c'est l'exemple parfait où vous devez vraiment comprendre ce qui se passe en dessous.

Tout d'abord, parlons d'auto-information. Il s'agit d'une variable aléatoire (ce qui signifie qu'il existe un certain nombre de résultats possibles) qui varie selon la probabilité de chaque résultat (puis nous prenons -log2 (P (X)) pour l'encoder en "bits" d'information). Nous devons donc attribuer à chaque résultat une probabilité.

Comme d'autres l'ont souligné, certaines variantes du choix du code PIN sont plus probables. Tous les mêmes numéros (1111, 2222, 3333, ...), anniversaires (20XX, 19XX) et ainsi de suite. Vous devez attribuer une probabilité plus élevée à ces nombres, car les personnes simplement mises sont plus susceptibles de les choisir et ne vont certainement pas choisir une séquence aléatoire. La façon dont vous attribuez la probabilité aux autres nombres dépend entièrement de vous et dépend vraiment de ce que vous en savez sur le processus de choix d'une épingle.

Maintenant, l'entropie, ou pour garder @codesinchaos heureux, l'entropie de Shannon en particulier, est le moyen de la distribution des informations personnelles. C'est la valeur "la plus probable" de l'auto-information compte tenu des probabilités de chaque choix. Qu'est-ce que ça veut dire? Comme le dit la réponse actuelle la plus votée, il s'agit d'une mesure du processus de choix et de sa qualité, et non de l'épingle elle-même.

Que se passe-t-il lorsque vous supprimez des choix à forte probabilité comme 1111, 2222, 3333 ? Ces résultats donnent une très faible auto-information (-log (P (X)) est petit pour les grandes probabilités, car nous nous attendons à ce qu'elles se produisent) et leur suppression déplace donc la distribution vers la droite, c'est-à-dire déplace l'emplacement de la distribution vers le centre. Cela augmentera sa moyenne. Donc, supprimer les choix que la plupart des gens feraient autrement avec une probabilité élevée augmente en fait l'entropie .

Examinons l'entropie d'une manière différente: si vous deviez deviner les codes PIN, dans quel ordre les essayeriez-vous (en supposant qu'il n'y ait pas de lock-out)? Vous commenceriez avec les NIP les plus probables pour certains. Ce que dit l'entropie, c'est que si vous répétiez cette expérience suffisamment de fois (c'est-à-dire que vous essayiez de deviner le code PIN d'un grand nombre de cartes dont les codes PIN ont été choisis exactement avec la même logique), un choix d'entropie plus faible vous donnerait, à l'attaquant, plus de succès

Encore une fois, il reste à savoir ce qui pourrait se passer dans le cas théorique de nombreuses cartes, et non ce qui pourrait arriver parce que l’attaquant a de la chance .

Voici votre résumé:

  1. Ce que devient l'entropie dépend de la façon dont vous attribuez des probabilités à l'espace de résultat.
  2. Sans aucun doute, si vous laissez les humains choisir des codes PIN, ils choisiront certaines valeurs avec une probabilité beaucoup plus élevée que d'autres.
  3. Cela signifie que vous ne pouvez pas supposer que la distribution sous-jacente est uniforme et dire "entropie == nombre de résultats".
  4. Si vous supprimez les options de mauvais choix les plus probables, l'entropie augmente.
  5. L'entropie, comme la probabilité de deviner correctement, ne dit absolument rien sur la question de savoir si un attaquant aura de la chance et devinera correctement votre code PIN. Cela dit simplement qu'en théorie une meilleure entropie donne plus de mal à votre attaquant.

Maintenant, pour compléter ma réponse, examinons les aspects pratiques. Si nous allons comparer aux mots de passe, aux choix de sortie de fonction de hachage ou aux données aléatoires, les codes PIN sont nul. Si vous donnez à un attaquant et à un défenseur le libre choix du code PIN et aucune autre information, le nombre de suppositions pour avoir raison 50% du temps (paradoxe d'anniversaire) est ridiculement bas. Les codes PIN feraient de mauvaises fonctions de hachage.

Cependant, les humains ne peuvent pas très bien mémoriser 128 bits de données, surtout lorsqu'ils sont ivre et qu'ils essaient de payer pour un kebab en utilisant une puce et une épingle. Les codes PIN sont donc un compromis pragmatique et avec trois suppositions comme limite, à part un attaquant qui a beaucoup de chance, vous devriez être prudent.

TL; DR Suppression du choix du plus probable Les codes PIN de vos choix possibles améliorent vos chances face à un attaquant qui ne devinera pas au hasard (c'est-à-dire la plupart des attaquants).


Edit: Je pense que cette discussion justifie des mathématiques maintenant. Voici ce que je vais supposer dans mes calculs:

  1. Nous utilisons des codes PIN à 4 chiffres
  2. Les données du lien de Raesene sont correctes, c'est-à-dire que:

      # 1 1234 10,713% # 2 1111 6,016% # 3 0000 1,881% # 4 1212 1,197% # 5 7777 0,745% # 6 1004 0,616% # 7 2000 0,613% # 8 4444 0,526% # 9 2222 0,516% # 10 6969 0,512% # 11 9999 0,451% # 12 3333 0,419% # 13 5555 0,395% # 14 6666 0,391% # 15 1122 0,366% # 16 1313 0,304% # 17 8888 0,303% # 18 4321 0,293% # 19 2001 0,290% # 20 1010 0,285%  
  3. Je vais également supposer que tout code PIN non mentionné dans cette liste a une chance égale d'être choisi parmi la probabilité "non allouée" restante (probabilité 1-totale consommée ci-dessus). C'est presque définitivement incorrect, mais nous n'avons que peu de données.

Pour calculer cela, j'ai utilisé le code sage suivant:

  def shannon_entropy (probabilités ): contributions = [p * (-1 * log (p, 2)) pour p en probabilités] return sum (contributions)  

Calcule l'entropie de shannon réelle pour un ensemble donné de probabilités . print

  importation itertoolstotal_outcomes = 10.0 ^ 4probability_random_outcome = 1 / total_outcomesprobability_random_outcomemaximum_entropy = -log (probability_random_outcome, 2) maximum_entropymaximum_entropy_probability_list = liste (itertools.repeat (probability_random_outcome, total_outcomes)) = maximum_entropy_calculated shannon_entropy (maximum_entropy_probability_list) ( maximum_entropy) print (maximum_entropy_calculated)  

Montre que ma fonction calcule avec précision l'entropie maximale, en prenant une liste de 10 ^ 4 probabilités, chacune à 1/10 ^ 4.

Puis

  probabilité_list_one = [10,713 / 100, 6,016 / 100, 1,881 / 100, 1,197 / 100, 0,745 / 100, 0,616 / 100, 0,613 / 100, 0,526 / 100,0,516 / 100, 0,512 / 100, 0,451 / 100, 0,419 / 100, 0,395 / 100, 0,391 / 100, 0,366 / 100, 0,304 / 100, 0.303 / 100,0.293 / 100,0.290 / 100,0.285 / 100] result_count_one = 10 ^ 4 - len (probabilité_list_one) print ("Outcome count 1:", result_count_one) probabilité_consumed_one = sum (probabilité_list_one) print ("Probabilité consommée par liste: ", probabilité_consumé_one) probabilité_ro_one = (1-probabilité_consumé_one) / result_count_oneentropy_probability_list_one = probabilité_list_one + liste (itertools.repeat (probabilité_ro_one, result_count_one)) entropy_one = shannon_entropy entropyone_list_probability 

Ici, comme je l'ai dit ci-dessus, je prends ces 20 probabilités et suppose que le reste des probabilités est réparti uniformément entre les résultats restants, en étendant la liste avec chaque probabilité définie uniformément. Le calcul est effectué.

  probabilité_list_two = [6,016 / 100, 1,881 / 100, 1,197 / 100, 0,745 / 100, 0,616 / 100, 0,613 / 100, 0,526 / 100,0,516 / 100, 0,512 / 100, 0,451 / 100, 0,419 / 100, 0,395 / 100, 0,391 / 100, 0,366 / 100, 0,304 / 100, 0,303 / 100,0,293 / 100,0,290 / 100,0,285 / 100] result_count_two = 10 ^ 4 - len (probabilité_list_two) -1print ("Nombre de résultats 2:", résultat_count_two) probabilité_consumé_two = somme (probabilité_list_two) print ("Probabilité consommée par la liste:", probabilité_consumé_two) probabilité_ro_two = (1-probabilité_consumes_two_two) /o résultat_liste_consommé (1-probabilité_consumé_two) .repeat (probabilité_ro_two, result_count_two))) entropy_two = shannon_entropy (entropy_probability_list_two) entropy_two  

Dans ce cas, je supprime le code PIN le plus probable, 1111 et recalcule l'entropie.

À partir de ces résultats, vous pouvez voir que le choix aléatoire d'un code PIN a 13,2877 bits d'entropie. Répéter cette expérience avec un code PIN supprimé nous donne 13,2876 bits

Choisir un code PIN compte tenu des probabilités de choix pour ces 20 codes PIN et sinon choisir au hasard signifie que votre choix est de 11,40 bits d'entropie, sur 13,2877 bits possibles. À partir de cette base, bloquer le PIN 1111 et autoriser autrement les 19 autres PIN évidents et tous les autres PIN choisis avec une probabilité égale a une entropie de 12,33 bits, sur 13,2876 bits possibles.

J'espère que cela explique pourquoi beaucoup de réponses disent que l'entropie est en baisse plutôt qu'en hausse. Ils envisagent l'entropie maximale possible, plutôt que l'entropie moyenne (entropie de shannon) du système en tenant compte de la possibilité de choix. Une meilleure mesure est l'entropie du shannon, car elle prend en compte la probabilité que chaque choix soit fait globalement et donc comment un attaquant va probablement procéder à l'attaque.

Comme vous pouvez le voir , le blocage de ce PIN 1111 augmente significativement l'entropie du shannon, à un léger coût pour l'entropie globale possible. Si vous voulez discuter de l'entropie, en gros, la suppression du code PIN 1111 aide énormément.

Pour référence que la bande dessinée XKCD calcule l'entropie des mauvais mots de passe à environ 28 bits et l'entropie des bons plus haut, à 44 bits. Encore une fois, cela dépend des hypothèses faites quant aux probabilités de certains choix mais cela devrait également montrer que les codes PIN sont nul en termes d'entropie et que la limite de N-essais pour un petit N est la seule manière continuez.

Feuille de travail Sage publique

J'apprécie l'explication.+1
Notez que l'entropie de Shannon n'est pas une bonne mesure de la force du mot de passe.Avec les nombres utilisés ci-dessus, l'entropie de Shannon modéliserait le mot de passe `1111` comme devinable en 10 essais en moyenne (car il suppose que l'attaquant essaiera des mots de passe aléatoires avec la distribution de probabilité donnée), mais en fait, il sera deviné en 1 essai en moyennecar l'attaquant choisira d'abord le mot de passe le plus probable.Ce dernier peut être capturé par le concept de [deviner l'entropie] (http://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-63-2.pdf#page=114).(La logique de la réponse s'applique toujours.)
De plus, je ne pense pas qu'il soit logique d'invoquer ici le paradoxe de l'anniversaire.Cela n'est pertinent que pour les collisions, pas pour les tentatives de deviner une cible fixe.
@Tgr Mais diagprov ne parle-t-il pas d'une collision lorsque les utilisateurs et les attaquants sélectionnent tous les deux des codes PIN au hasard?
@jpmc26 ne voit toujours pas comment il serait logique de modéliser cela comme une collision.
@Tgr Le modéliser comme un choix aléatoire à la fois par le défenseur et l'attaquant est le meilleur scénario pour le défenseur.Le point de diag est que même dans ce meilleur des cas, l'attaquant n'a pas à travailler très dur pour trouver votre code PIN, quelle que soit sa qualité.Ils ont juste besoin de deviner quelques fois, quelque chose de trivial à voir avec la technologie moderne, et les chances de deviner correctement augmentent très rapidement à mesure que l'attaquant continue de deviner ou s'il devine contre plusieurs défenseurs.Lorsque ceux-ci «se heurtent», l'attaquant gagne.(Le paradoxe de l'anniversaire concerne en réalité la vitesse à laquelle la probabilité augmente à mesure que vous augmentez les tentatives.)
C'est tout simplement faux.Si le défenseur choisit un nombre aléatoire ou si l'attaquant est en train de deviner au hasard, le nombre attendu de suppositions pour une chance de 50% est de 5000, et les chances de succès sont linéaires avec le nombre de suppositions.(FWIW si l'un des deux utilise une distribution aléatoire uniforme, le choix de la distribution / de l'algorithme par l'autre ne fait aucune différence.) Les suppositions multiples de l'attaquant ne peuvent en aucun cas se «heurter».
@Tgr pour répondre à vos commentaires, ce que vous avez mal compris, c'est que l'entropie n'est pas la force d'un mot de passe individuel, mais plutôt la méthode.La méthode dans ce cas est de "laisser de nombreux humains choisir leur propre code PIN" et les empêcher de faire certains choix améliore cette méthode.Bien entendu, la méthode la plus idéale est la génération aléatoire de tous les codes PIN.Cela signifie que le PIN 1111 a différentes auto-informations (qui seraient souvent appelées "entropie" même si ce n'est pas le cas) en fonction de la méthode de génération.C'est au moins purement mathématique.
Maintenant, mes remarques sur les collisions consistent à comparer les codes PIN aux mots de passe, eh bien, d'une certaine manière, je voulais dire que très simplement l'espace de sortie est trop petit pour même vraiment considérer l'entropie.Encore une fois, nous parlons de la méthode et dans le meilleur des cas, tous les défenseurs génèrent aléatoirement leurs codes PIN.Ensuite, l'attaquant, également en devinant au hasard, n'aura besoin que d'environ 141 suppositions (selon les formules de wikipedia) pour deviner correctement le code PIN de quelqu'un, 50% du temps où ce jeu est joué.
En bref, j'ai expliqué les mathématiques de l'entropie et que, étant donné la méthode de génération, la suppression des codes PIN évidents comme 1111 l'améliore en fonction de ce que nous attendons des gens, mais la diminue si nous imaginons que les gens se comportent parfaitement.Mais la vraie défense ici réside dans la limite des 3 tentatives et la chance que l'attaquant, en volant votre carte, ne devine pas votre code PIN lors de sa première tentative.
@Tgr Mais le défenseur ne sélectionne * qu'une fois *.L'attaquant sélectionne autant de fois qu'il le souhaite.
Dmitry Grigoryev
2017-04-04 14:37:46 UTC
view on stackexchange narkive permalink

Cela dépend vraiment de la façon dont le code PIN est créé:

  • Si le code PIN est généré , assurez-vous que la distribution est uniforme et ne l'excluez pas toutes les combinaisons. Cela maximisera l'entropie.

  • Si le code PIN est choisi par un opérateur humain, il est parfaitement logique d'exclure certaines combinaisons. Je n'irais pas jusqu'à rejeter la moitié des combinaisons, mais si vous le faites, vous devriez également envisager de rejeter les codes PIN commençant par 0 1 et 2 (pensez aux années et aux dates de naissance) puis aux codes PIN correspondant à des dispositions de clés physiques telles que 2580 et 1379 et ainsi de suite. Assurez-vous simplement de vous arrêter avant d'autoriser un seul 8068 NIP que cette étude a jugé le moins probable.

Ce que vous devez faire pour les codes PIN choisis par l'homme, c'est exclure les combinaisons les plus courantes: 1234 et 1111 représentent à eux seuls près de 17% de tous les codes PIN utilisés et les 20 codes PIN les plus courants représentent près de 27%. Ceux-ci incluent chaque chiffre répété 4 fois et des combinaisons populaires comme 1212 et 4321.

Edit: après une seconde réflexion, je pense que vous devriez exclure les plus courantes combinaisons dans tous les cas. Même si votre code PIN est généré aléatoirement, l'attaquant peut ne pas le savoir, auquel cas il essaiera probablement ces combinaisons en premier.

Votre modification est bien meilleure que votre commentaire d'origine.Ce qui compte, c'est * l'algorithme de l'attaquant *.Étant donné que les attaquants doivent vérifier l'ensemble des combinaisons, pas seulement le sous-ensemble que cette personne particulière choisit, c'est l'entropie de la première, et non de la seconde, qui compte.
techraf
2017-04-04 06:11:49 UTC
view on stackexchange narkive permalink

L'entropie est une propriété de la méthode de génération de mot de passe, pas le mot de passe.

Si vous décidez d'éliminer les chiffres répétés - cette décision réduit l'entropie par rapport à la génération d'une séquence aléatoire.

En fait, tout ce que vous proposez aura une entropie plus faible que la génération d'une séquence aléatoire.


Et si vous pensez qu'un mot de passe généré aléatoirement 1111 a une faible entropie et il est donc plus facile de faire de la force brute, il suffit d'aller dans n'importe quel endroit de jeu et de parier sur 1 quatre fois de suite - cela devrait être une victoire sûre.

Bien que la séquence "1111" soit tout aussi probable que n'importe quelle autre, je proposerais que ce soit une séquence plus susceptible d'être devinée par les attaquants, et par conséquent, vous seriez plus sûr si vous l'évitiez.
Les commentaires ne sont pas destinés à une discussion approfondie;cette conversation a été [déplacée vers le chat] (http://chat.stackexchange.com/rooms/56589/discussion-on-answer-by-techraf-when-choosing-a-numeric-pin-does-it-help-or-hur).Tout autre commentaire doit y être fait - tout commentaire ici sera supprimé.
Je voudrais également noter que l'observation est un facteur.Il est beaucoup plus facile de dire que vous appuyez 4 fois sur la même touche et de quelle touche il s'agit que si vous appuyez sur plusieurs.
Comme vous le dites, l'entropie est une propriété de la méthode de génération de mot de passe, et lorsque la méthode la plus courante pour générer des codes PIN est par choix humain, il vaut la peine d'éviter les mots de passe les plus courants.Si j'écris un programme pour générer un mot de passe aléatoire de caractères aléatoires de longueur aléatoire, j'ai une très bonne entropie en théorie, mais si ce programme crache "mot de passe" par hasard, c'est toujours une bonne idée de rejeter ce résultat puisque lel'attaquant ne saura pas ou ne se souciera pas que je l'ai généré au hasard
Donc, si vous vouliez un code PIN à 4 chiffres pour votre voiture et que le générateur de broches aléatoires choisissait "1111", vous l'utiliseriez?Si nous parlons de forçage brutal où les broches sont devinées au hasard, vous avez raison de dire que cela ne ferait aucune différence, mais dans le monde réel, utiliser «1111» serait un peu comme toujours laisser votre voiture déverrouillée.
@Jojodmo Veuillez citer la phrase pertinente de la réponse qui vous a fait penser que je le ferais.
"_Entropy est une propriété de la méthode de génération de mot de passe, pas du mot de passe._" L'entropie est une propriété de la surface d'attaque, pas de la méthode de génération de mot de passe.Cette erreur conceptuelle conduit à une défense très mal raisonnée d'inclure «1111» alors que c'est littéralement le tout premier code PIN que la plupart des attaquants essaieront.Voir [Commentaire @Tgr's] (https://security.stackexchange.com/questions/155606/when-choosing-a-numeric-pin-does-it-help-or-hurt-to-make-each-digit-unique#comment296396_155639) pour une meilleure caractérisation de l'entropie.
Xiong Chiamiov
2017-04-04 10:30:50 UTC
view on stackexchange narkive permalink

Restreindre votre pool de numéros disponibles réduit le nombre de solutions possibles, ce qui le rend moins sûr.

La répétition des chiffres est une faiblesse humaine courante lors du choix des codes PIN, ce qui signifie qu'ils seront essayés en premier par les attaquants. Ainsi, exclure les nombres répétés augmente la sécurité.

Comme c'est souvent le cas, la décision présente à la fois des avantages et des inconvénients en fonction de l'attaque spécifique contre laquelle vous vous défendez. Vous ne devriez probablement pas trop y penser et envisager des changements dans une perspective plus large (comme ne pas utiliser une broche à 4 chiffres, ou ajouter un deuxième facteur, ou avoir des verrouillages en cas de tentatives incorrectes) si vous souhaitez augmenter la sécurité du système.

Je pense que le deuxième point est une plus grande préoccupation.Mais n'évitez pas les chiffres répétés.Évitez les modèles "évidents": 1234, 4321. Bien sûr, si j'avais la carte de crédit de Bruce Schneier, je pourrais essayer n'importe quelle combinaison aléatoire qui n'était pas un modèle évident à la place.Si vous êtes moins connu, je pense que vous feriez mieux d'éviter les mots de passe "faciles".
@dave C'est ainsi [paradoxe] (https://en.wikipedia.org/wiki/Interesting_number_paradox). .
@dave Donc, si l'attaquant connaît Bruce Schneier, alors son compte est * plus sûr * avec un code PIN commun et évident.Intéressant.
@DavidRicherby Vrai!Je suppose que l'idée d'entiers "inintéressants" n'est convaincante que lorsque vous pensez que les entiers ne sont qu'un ensemble partiellement ordonné (sans qu'aucun des entiers "inintéressants" n'ait un ordre défini).
"Restreindre votre pool de numéros disponible réduit le nombre de solutions possibles, le rendant moins sécurisé."- C'est une erreur, car la piscine n'a pas été réduite, seulement ce que l'OP choisit de prendre dans la piscine.Cette différence est essentielle car * l'attaquant doit s'adresser à l'ensemble du pool *, et ne sait pas que l'OP a restreint son choix à moins que l'attaquant ne lise cette page, sache qui est l'OP et adapte son attaque en conséquence.
Dakkaron
2017-04-04 21:16:50 UTC
view on stackexchange narkive permalink

Il me semble que la plupart des autres réponses se concentrent sur le mauvais type d'attaque.

Puisque nous avons affaire à un scénario très spécifique (saisie manuelle du code PIN), nous pouvons optimiser la génération du code PIN pour les scénarios d'attaque possibles.

Attaque par dictionnaire

D'après ce que je peux déduire de la question, nous parlons de la saisie manuelle du code PIN, donc l'attaquant doit tapez chaque code PIN qu'ils essaient. Une attaque par force brute peut donc prendre un certain temps (par exemple, vous avez besoin de deux secondes pour chaque code PIN que vous essayez, cela prendra presque trois heures en moyenne). C'est possible, mais ce n'est pas l'approche la plus intelligente.

Donc, lorsqu'une attaque par force brute est irréalisable, vous pouvez à la place essayer une attaque par dictionnaire. Ici, vous essayez d'abord les codes PIN les plus courants. Si cela échoue, vous pouvez toujours recourir à une attaque par force brute plus tard. Avec les attaques par dictionnaire, l'entropie n'a plus tellement d'importance. Ici, il importe que le mot de passe soit dans le dictionnaire ou non. Étant donné que l'attaquant n'a probablement pas de véritable dictionnaire de codes PIN courants, il devra créer son dictionnaire à la volée. Cela signifierait que le dictionnaire sera probablement plutôt court et orienté vers les modèles. Les codes PIN possibles dans le dictionnaire seraient:

  • PIN consécutifs (par exemple 0123 ou 1234)
  • PIN avec quatre fois le même chiffre (par exemple 2222)
  • peut-être aussi des codes PIN avec seulement trois fois le même chiffre

En éliminant ces quelques mots de passe, vous ne réduisez pas beaucoup la taille de votre espace de clés, mais vous pouvez facilement vous défendre contre les attaques par dictionnaire. Des stratégies similaires sont utilisées par les sites Web qui ne vous permettent pas d'utiliser des mots de passe courants ou faciles à deviner (par exemple, en utilisant le nom d'utilisateur comme mot de passe)

Brute Force Attack

Ensuite, nous pouvons essayer d'optimiser contre d'éventuelles attaques par force brute. Cela pourrait aider beaucoup moins pour un coût plus élevé, donc cela pourrait ne pas en valoir la peine. Il existe deux stratégies principales pour qu'un attaquant humain puisse effectuer des attaques par force brute: soit il suffit de saisir des codes PIN aléatoires, soit de commencer par 0000 et de compter (ou 9999 et de compter à rebours). Ainsi, les codes PIN tels que 0001 ou 9998 peuvent être un mauvais choix car une personne effectuant une attaque par force brute peut les trouver assez rapidement. Alors peut-être excluez les codes PIN commençant par 0 ou 9.


En suivant ces règles, vous ne devriez pas perdre trop de mots de passe possibles, mais vous pourrez peut-être renforcer votre code PIN contre les stratégies d'attaque les plus courantes pour ce scénario spécifique .

"Alors peut-être exclure les codes PIN commençant par 0 ou 9."Je ne suis pas d’accord.L'exclusion de ces codes PIN ne ferait que prolonger un peu plus l'attaque par force brute, mais l'attaquant finira par passer par le code PIN nécessaire, tôt ou tard.Les exclure ne fera que réduire l'entropie.
Au début, avec suffisamment de performances, chaque clé peut être exécutée brutalement.Le but de l'utilisation de touches plus longues est de ralentir l'attaquant suffisamment longtemps pour rendre une attaque irréalisable car elle prend tellement de temps.Il en va de même ici.S'il faut à votre attaquant par force brute au moins 1000 essais (à 2 secondes un essai soit environ une demi-heure), c'est bien mieux que par exemple.100 essais.De plus, s'il y a une limite à la vitesse de saisie des touches, cela peut être considérablement amélioré, par ex.avec 10 secondes d'attente entre chaque essai, vous êtes à un minimum de 2,7 heures.C'est long pour essayer de casser une serrure sans se faire prendre.
northerner
2017-04-04 15:23:28 UTC
view on stackexchange narkive permalink

Je n'ai pas assez de commentaires mais une recommandation. Les codes PIN saisis à l'aide d'un seul bouton (ou d'un simple motif de boutons) sont plus faciles à observer par un surfeur d'épaule. À l'école primaire, le professeur a pensé qu'ils m'avaient rendu service en faisant mon mot de passe 4321 et un imbécile a regardé mon doigt bouger en ligne droite et a dit à tout le monde mon mot de passe.

Je conseille de faire une liste de codes confidentiels faibles qui sont sensibles à cela, puis en les soustrayant des codes confidentiels générés de manière entièrement aléatoire.

Ce!En fonction de l'utilisation d'un code PIN: du clavier utilisé et de la personne qui peut l'observer, un code PIN à un chiffre peut être facilement deviné.Si vous réalisez que les 4 chiffres étaient identiques et que c'était dans le coin supérieur, alors il suffit d'essayer 1111, 2222, 4444 et 5555. Le mouvement des doigts en apparence aléatoire rend la tâche beaucoup plus difficile à deviner.
@MatthieuM.OTOH, s'ils sont tous sur le clavier, avez-vous pressé 1-1-6-8, 1-6-6-8, 1-6-8-8, 1-1-8-8, etc. Je pense queest beaucoup plus difficile à discerner pour certains «surfeurs d'épaule» que 4-3-6-9.
J.A.K.
2017-04-04 21:57:29 UTC
view on stackexchange narkive permalink

Cela dépend de l'implémentation. L'élimination des nombres consécutifs réduira l'espace de clés de 0,1% mais présente des avantages pour la sécurité physique qui peuvent en valoir la peine.

Beaucoup de bonnes réponses intelligentes ici, point principal étant donné qu'au lieu de le rendre plus sécurisé, vous réduisez l'espace des touches (mais négativement, 10 sur 10 000).

Les réponses les plus importantes ne touchent cependant pas à l'aspect physique de la saisie d'une épingle. L'extraction visuelle et thermo-visuelle est un réel danger de nos jours. En d'autres termes, les méchants surfent sur votre code PIN avec leurs yeux, un télescope, une caméra de surveillance sur le guichet automatique ou même des caméras thermiques.

Ce dernier est plus récent, et particulièrement désagréable car un skimmer peut marcher jusqu'à un pin pad et regarder la signature thermique, même si vous avez bien couvert le pad.

une épingle consécutive nuira à la sécurité dans cette zone; cela réduit la complexité de l'emplacement physique des nombres d'une quantité horrible. Même si vous avez couvert votre main, il est probable que l'attaquant devine le bouton sur lequel vous avez appuyé quatre fois avant qu'un verrouillage ne se produise. Sur un téléphone, s'il y a une grosse tache de graisse sur le zéro, c'est celle que je vais essayer en premier.

"Beaucoup de bonnes réponses ici, le point principal étant qu'au lieu de le rendre plus sûr, vous réduisez l'espace de clés (mais négativement, 10 sur 10.000)."- non, ce sont de mauvaises réponses, car restreindre le jeu de clés que vous choisissez ne réduit pas le jeu de clés, qui est le jeu que vous * pourriez * choisir et que tout attaquant doit rendre compte, à moins que vous ne leur disiez que vous êtesen omettant certaines combinaisons et ils adaptent leur attaque juste pour vous.
Marcel
2017-04-04 10:51:24 UTC
view on stackexchange narkive permalink

Sur mon téléphone, le code PIN utilise délibérément l'un des nombres deux fois de suite, afin de le rendre plus difficile à deviner car:

  • La quantité de "taches de graisse" ne correspond pas le nombre de chiffres
  • Un "surfeur d'épaule" aura (un peu) plus de mal à distinguer le double tapotement du simple tapotement

Addendum: Le téléphone en question permet une longueur personnalisée du code PIN, donc un attaquant (n'observant pas l'entrée du code PIN) ne connaît pas le nombre de chiffres utilisés.

Si les taches de graisse sur votre téléphone m'indiquent que votre broche à n chiffres utilise n chiffres différents, il y en a n!broches possibles.Si les taches de graisse me disent qu'il utilise (n-1) chiffres, et que je sais que votre téléphone vous fait appuyer deux fois sur l'un des chiffres, il y a (n-1) (n-1)!possibilités, _qui est un plus petit nombre_.Échec épique.
Je risquerais également de supposer que, dans certains cas, il serait facile de voir quel chiffre était le chiffre répété en fonction de l'aspect différent de la bavure.J'ai certainement vu des serrures de porte avec des boutons métalliques avec un chiffre usé par rapport aux autres.
Si je vois une grosse tache de graisse sur le zéro d'un téléphone, je parierai de l'argent sur ce que leur épingle est.
@DavidRicherby Sauf les taches de graisse * ne * vous dites pas qu'il utilise (n-1) chiffres.L'examen des taches de graisse ne vous dit pas si le mot de passe était 1-1 ou 1-1-1-1-1-1.Vous ne savez pas non plus s'il y a eu un double tap ou non.Autoriser les répétitions vous donne un espace de n! ^ N!Tout nombre sur lequel vous avez appuyé peut être dans la séquence finale un nombre de fois illimité.
@Shane Si c'est un code PIN, il est de longueur fixe, que je peux découvrir en devinant des chiffres.Et nous devons toujours supposer que l'attaquant connaît toutes les règles appliquées par le système telles que "Le code PIN doit être composé de trois chiffres dont l'un est répété".De plus, je ne sais pas trop où vous obtenez n! ^ N!de.Si le mot de passe a une longueur $ k $ et qu'il y a des options $ n $ pour chaque chiffre, il y a au plus $ n ^ k $ différentes possibilités.S'il n'y a pas de limite sur la longueur possible, il existe une infinité de mots de passe possibles.
@DavidRicherby Vous avez raison, n! ^ N!était une chose stupide à dire.Le fait est que si quelqu'un vous regarde secrètement appuyer sur les boutons, il sait sur quels boutons vous avez appuyé et dans quel ordre.Sans répéter les clés, ils * connaissent déjà votre mot de passe *.Si vous avez utilisé des touches de répétition, elles ne le font pas.Si je sais qu'ils ont composé le 1-4-7, je ne sais pas si leur mot de passe est 1147, 1447, 144447 ou 1477. Si je sais qu'ils ont appuyé sur 1-4-6-9, je sais que leur mot de passe est 1469. C'est-à-direla différence entre votre carte étant verrouillée et quelqu'un qui vole votre argent.
@DavidRicherby Une broche à 4 chiffres avec les chiffres [1,2,3,4] a 24 possibilités.Une broche à 4 chiffres avec les chiffres [1,2,3] a 36 possibilités.
Les codes PIN @Shane ont une longueur fixe.Si c'est un NIP à quatre chiffres, c'est 1147, 1447 ou 1477. Oh non, en moyenne, il faut deux suppositions au lieu d'une.
@JoeFrambach Non, un code PIN à 4 chiffres avec les chiffres 1, 2, 3 a 18 possibilités: 1123, 1132, 2113, 3112, 2311, 3211, 2213, 2231, 1223, 3221, 1322, 3122, 3312, 3321, 1332, 2331, 1233, 2133.
@DavidRicherby Il vous manque 1213, 1312, 2131, 2132, 2123, 3123, 3213, pour commencer
En tant que PO: Merci pour ce long débat, semble un sujet très controversé.L'appareil à l'esprit lors de l'écriture de la réponse permet des longueurs personnalisées de la broche, la mienne est en fait plus longue que 4 chiffres.
@JoeFrambach La réponse parle de codes PIN où le chiffre répété doit apparaître deux fois de suite, bien que je ne l'ai pas mentionné dans tous mes commentaires.
Cette réponse ne semble pas tenter de * répondre * à la question du PO.Cela ressemble juste à un bon conseil.
@ Ces suppositions supplémentaires font la différence entre le verrouillage de votre carte et le vide de votre compte bancaire.
JDługosz
2017-04-04 12:36:30 UTC
view on stackexchange narkive permalink

Vous devriez faire une liste spécifique de «clés faibles» à l'avance , c'est ce que quelqu'un essaierait de deviner. Cela inclut les dates importantes, les adresses, etc. et peut inclure 1111 si les gens essayeraient cela en devinant.

Ensuite, faites un tirage au sort et filtrez par rapport à la (courte) liste . Si la liste n'est pas courte mais systématique (par exemple, pas de chiffres répétés, pas de dates légales), vous vous retrouvez avec trop peu de possibilités, ce qui commence à rendre la tâche plus facile à deviner.

user2428118
2017-04-07 01:15:15 UTC
view on stackexchange narkive permalink

En 2012, un chercheur a compilé une liste des codes PIN les plus courants issus d'un certain nombre de violations de données. Ce qu'il a découvert, c'est que les codes PIN les plus populaires étaient:

  1. Séquences, telles que 1234 ou 7777
  2. Dates, telles que 2001
  3. Références à la culture pop, telles que 0007 (à partir du numéro de code 007 de James Bond)
  4. Facile à saisir , comme 2580 (nombres qui se trouvent en ligne droite sur de nombreux claviers)

Voici le top 20 (qui n'inclut pas tous les exemples donnés ci-dessus): Top 20 most popular PIN codes. 1234, 1111 and 0000 comprise the top three.

Donc, les séquences sont mauvaises. Il en va de même pour les codes PIN facilement mémorisables sans mnémotechnique. Cependant, les broches qui ont le même chiffre plus d'une fois ne sont pas nécessairement mauvaises non plus.

Exemple concret:

À l'autre extrémité de l'échelle, le moins fréquemment Le nombre utilisé que j'ai trouvé dans mon ensemble de données était 8068. De toutes les combinaisons de nombres, cela semblait être le moins intéressant. Ce n'est pas une date dans l'histoire, ce n'est pas un modèle, ce n'est pas un anniversaire, ce n'est pas facile à taper. C'est la broche parfaite… ou ça l'aurait été jusqu'à présent.

Alors maintenant tu sais.

shwew!le mien n'est pas sur la liste!
AMADANON Inc.
2017-04-11 09:32:43 UTC
view on stackexchange narkive permalink

Il peut y avoir des attaques dont l'efficacité varie en fonction du nombre de chiffres répétés.

Par exemple, disons que quelqu'un applique une légère poussière sur le clavier de votre guichet. Vous insérez votre carte, vous couvrez vos mains pendant que vous tapez votre code PIN, vérifiez votre solde, puis vous vous demandez. Au fur et à mesure que vous avancez, quelqu'un prend votre poche, récupère votre carte.

Il a maintenant votre carte et peut voir quels boutons ont leur époussetage perturbé - ils connaissent les chiffres, mais pas l'ordre.

S'ils voient que vous avez appuyé sur les chiffres 2, 3, 6 et 8, votre code PIN pourrait être l'un des suivants:

  2368, 2386, 2638, 2683, 2836, 2863 , 3268, 3286, 3628, 3682, 3826, 3862,6238, 6283, 6328, 6382, 6823, 6832,8236, 8263, 8326, 8362, 8623, 8632  

24 possibilités. Avec 3 suppositions, ils ont 1/8 de chances de deviner correctement.

Voici les possibilités à 4 chiffres, dont l'un est répété: 2, 3 et 6:

  2236, 2263, 2326, 2336, 2362, 2363, 2366, 2623, 2632, 2633, 2636, 2663, 3226, 3236, 3262, 3263, 3266, 3326, 3362, 3622, 3623, 3626, 3632, 3662, 6223, 6232, 6233, 6236, 6263, 6322, 6323, 6326, 6332, 6362, 6623, 6632  

Il y en a 36. Les chances de deviner cela en 3 tentatives sont de 1/12. De meilleures chances!

Essayons à nouveau, cette fois avec seulement deux chiffres:

  2223, 2232, 2233, 2322, 2323, 2332, 2333, 3222, 3223, 3232, 3233, 3322, 3323, 3332  

14 combinaisons, plus de 1/5 de chance de deviner avec 3 essais.

Evidemment, avec un seul chiffre, il y a une seule solution, et cela peut être deviné tout de suite.

Bien sûr, si les chiffres de votre épingle sont 1, 6 et 9, je suppose que vous êtes né en 1961, 1966, 1969 ou 1996 - si je vous vois partir, je devrais être capable de deviner si vous avez 21 ou 48 ans, ce qui signifie que 3 suppositions sont probablement tout ce dont j'ai besoin.

daniel
2017-04-04 12:17:41 UTC
view on stackexchange narkive permalink

Vous avez raison de dire que les règles pour supprimer des motifs endommageraient votre espace clé, mais cela ne réduirait en rien l'entropie car l'entropie provient de votre matériel, votre machine TRNG est autorisée à générer un chiffre répétitif de temps en temps.

En maths, si vous ne voulez pas voir un chiffre qui se répète comme 9 dans '0919', alors votre calcul est exact, mais si vous voulez dire répéter un chiffre comme 9 dans '0991', alors vous êtes laissé avec 7190 sur 10000.

Mais selon ce que vous pensez avec "quatre chiffres contenant une propriété ou un motif", vous le réduisez davantage, supprimez tous les motifs tels que '12', 321 'ou' 34 ', supprimez tous les nombres non premiers, alors vous n'avez qu'une poignée (~ 300 sur 10000) de nombres sans intérêt.

Pourquoi supprimer les non-nombres premiers?Je pense que les nombres premiers sont plus intéressants mathématiquement.
J'allais supprimer tout ce qui est divisible par 2, puis tout ce qui est divisible par 3, car ils sont plus faciles à retenir, et je l'ai pris jusqu'au bout.Mais vous avez raison, certaines personnes peuvent mémoriser des nombres premiers inférieurs à 10000, donc ils devraient également être supprimés du pool, cela nous laisse avec des nombres qui ne sont pas premiers et ne sont pas non plus divisibles par d'autres nombres: D
EL Dendo
2017-04-04 19:30:35 UTC
view on stackexchange narkive permalink

Évitez d'utiliser le même chiffre consécutivement. Le délai entre le même chiffre sera plus court que le délai entre les différents chiffres (puisque votre doigt est déjà sur le bouton), donnant des informations importantes.

Veuillez indiquer la raison du vote négatif de ma réponse ...
Je n'ai pas voté contre, mais cela semble supposer un modèle de menace particulier qui ne soulève pas de problème.Autrement dit, cela suppose que l'attaquant dispose d'un mécanisme pour chronométrer vos modèles de pression de touche sans réellement observer l'appareil.Je suis vaguement conscient que la technologie existe pour faire des observations comme celle-ci lors de la saisie sur un clavier, mais il n'est pas clair pour moi que le code PIN irait dans un clavier pour commencer.
@jpmc26 Il a certainement été soulevé;voir, par exemple, le commentaire de David Wallace sous la question du PO.Quant à votre hypothèse requise, regarder les doigts de quelqu'un ou même simplement sa main de loin pendant que la vue des pressions sur les touches réelles est bloquée est admissible.Quant au "clavier", l'OP a écrit dans son édition "serrures de porte programmables, panneaux de système d'alarme, claviers de porte de garage, etc."
en fait, je parlais d'expérience: je tapais un code alors qu'un collègue ne pouvait pas voir mes mains mais pouvait m'entendre taper sur un clavier.Ensuite, il m'a dit quels chiffres consécutifs étaient identiques.
Dylan
2017-04-04 06:34:34 UTC
view on stackexchange narkive permalink

Les broches à 4 chiffres se fissurent facilement en quelques secondes avec le bon équipement. Pourquoi utiliser une broche aussi ridiculement courte alors que des exploits comme Reaver ont prouvé que 4 chiffres ne suffisent pas (en supposant que votre broche puisse être forcée brutalement)

Et si elle ne peut pas être forcée brutalement, de quoi vous inquiétez-vous ? Les chances de quelqu'un qui le devine sont toujours de 1 sur 10 000, que la broche soit 1743 ou 1111. Vous prenez toujours un risque avec une broche plus courte, et il serait mal avisé de ne pas accepter les séquences répétées car vous êtes radicalement abaisser l'entropie.

Si votre esprit est fixé là-dessus, vous pouvez simplement vous assurer que votre générateur continue de produire des valeurs jusqu'à ce qu'il ait un chiffre unique à chaque position. Cette méthode semblerait la plus logique pour ce que vous essayez d'accomplir, et ne réduira pas l'entropie si vous autorisez toujours la génération de 1111, par exemple, bien qu'elle ne soit pas utilisée (générant à plusieurs reprises des nombres jusqu'à ce qu'elle en trouve un avec un chiffre unique dans chaque position, et jeter ceux qui ne le sont pas)

"_ne réduira pas l'entropie si vous autorisez toujours 1111, par exemple, à être généré bien que non utilisé_".Complètement faux.Peu importe que vous ne considériez jamais les codes PIN avec des chiffres répétés, ou que vous les rejetiez s'ils sont générés: l'effet net est un «espace PIN» de la moitié de la taille potentielle, donc une entropie réduite.
lol non, si vous choisissez 1234 pour votre code PIN, il y a beaucoup plus de chances qu'un attaquant le devine dans les deux premiers coups, étant donné qu'il s'agit du code PIN le plus courant.N'oubliez pas que les attaquants sont humains.
@TripeHound Mais cela suppose que l'adversaire sait que les séquences répétées ne sont pas autorisées ... Et techniquement, l'entropie resterait la même.Vous vous trompez.
@Dylan Non, vous vous trompez.Le schéma que vous avez décrit est juste un échantillonnage de rejet pour produire la distribution uniforme sur un sous-ensemble des 10 ^ 4 broches possibles.L'entropie d'une distribution dépend uniquement de la distribution, et non de la méthode que vous utilisez pour en extraire.(Par exemple, l'entropie de la distribution des nombres générée en lançant un dé à 4 faces est exactement la même que l'entropie de la distribution générée en roulant un dé à 6 faces et en relançant 5s et 6s, car c'est la même distribution. C'est essentiellement ce que vous faites ici, uniquement avec un dé à 10 000 faces.)
Dylan a raison (pas environ 1234, mais à propos du sous-ensemble) et TripeHound a complètement tort.L '«espace PIN» est l'ensemble des broches possibles, celle qu'un attaquant doit rendre compte, pas le sous-ensemble que l'OP sélectionne, qui est inconnu de l'attaquant (sauf s'il lit cette page, connaît l'OP et adapte sonattaque selon).David Richerby fait la même erreur, confondant un sous-ensemble filtré de l'espace échantillon avec l'espace échantillon, qui reste le même.
@JimBalter Bien qu'un attaquant ne sache pas toujours que l'espace d'attaque a été restreint, il le fera parfois (en particulier pour tout site modérément populaire).L'un des principes sous-jacents de la sécurité est de ne pas compter sur l'obscurité, vous devez donc planifier le pire et supposer qu'ils _do_ savent.


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 3.0 sous laquelle il est distribué.
Loading...