Question:
Je ne sais pas trop comment utiliser un mot de passe qui "prendrait des siècles à se casser"
Batman
2018-05-05 00:55:44 UTC
view on stackexchange narkive permalink

Je parle de ce mot de passe - 23 ## 24 $$ 25 %% 26 et d'autres similaires composés de caractères spéciaux apparaissant dans un modèle, que les utilisateurs utilisent beaucoup de nos jours.

Au travail (société de financement), je créais une liste de mauvais mots de passe que les utilisateurs ne devraient pas être autorisés à choisir, impliquant certains cycles ou certains modèles, et le type ci-dessus présente ce trait de contenir des nombres consécutifs prenant en sandwich des caractères spéciaux ( répété certaines fois, ici deux fois).

Juste par curiosité, j'ai vérifié cela sur un site Web très connu (sur sa page de connexion), et il a déclaré que cela prendrait des siècles pour se rompre.

Quelques autres exemples dans la liste qui prendraient des années à se rompre, mais qui sont très vulnérables:

1! 2 @ 3 # 4 $ 5% 6 ^ 2 @ 3 # 4 $ 5% 6 ^ 7& a! B @ c # d $ e% f ^

Maintenant, je suis confus avec la liste, je devrais Je marque ces types particuliers de mots de passe comme vulnérables et je n'autorise pas les utilisateurs à les utiliser, même s'ils prennent beaucoup de temps à break?

Note 1 - Nous considérons ces vulnérables car de nombreux utilisateurs (et, par conséquent, plusieurs mots de passe similaires) suivent cette tendance pour se souvenir facilement des choses.
Note 2 - Nous sommes confus car la sécurité les gars sont tous au sujet d'augmenter l'entropie, ce qu'ils ignorent est une augmentation de l'ordre des hachages similaires dans la base de données
Il y a eu une friction entre les gars quant à l'endroit où nous dessinons une ligne, définissant quel mot de passe être autorisé ou interdit.

Modifications:

  • Ce site Web dont je parle, mais ne nomme pas, sur lequel j'ai testé le mot de passe est joli bien connu de tous les hackers éthiques / contraires à l'éthique, de presque tous les utilisateurs ici sur Stack Exchange et de nombreuses grandes / petites entreprises (car ils utilisent ses services).

  • Nous ne le faisons pas stocker les mots de passe en texte brut . Nous utilisons un algorithme de hachage agréable, qui n'est pas fait maison.
    Un incident nous a amenés à revoir nos politiques de mot de passe, et nous avons créé une base de données distincte db-2 sur une machine différente, dans laquelle nous avons stocké le mot de passe de l'utilisateur simplement_hashed_newly_created (pas de sel, rien, juste hashed_password) sans stocker who_created, détails when_created. Nous l'avons fait pour une courte période seulement. Tout changement de mot de passe est également entré dans cette base de données. Alors que, dans notre base de données d'origine db-1 , nous nous trouvions secure_salted_passwords.
    Nous avons continué à créer une liste L de mots de passe vulnérables hachés également, suivant un modèle, et nous nous sommes retrouvés amusé quand nous avons fait correspondre L & db-2 - nous avons vu plusieurs groupes de mots de passe similaires, avec certains modèles. L et db-2 ont ensuite été effacés des systèmes.

  • db-2 a été conservé sur une machine hautement sécurisée et était en sécurité, ne divulguera pas les détails exacts ici. Nous sommes conscients que même les entrefers ou les prises électriques ne sont pas sécurisés. db-2 et L ont été détruits.

  • Ne vous inquiétez pas des mots de passe affichés ici, car nous avons déjà petite expérience, et tous ces groupes d'utilisateurs spécifiques ont été faits pour réinitialiser leurs mots de passe (bien sûr, un nouveau mot de passe différent de l'ancien). C'est la raison pour laquelle je suis venu ici en postant quelques exemples.
    Et, j'ai commenté ici plus tôt aussi, que j'ai posté un échantillon de mots de passe de la logique du générateur qui a créé une très grande liste de mots de passe hachés, qui peuvent ou non être dans db-2 . Encore une fois, comme tous ces utilisateurs ont un nouveau mot de passe, donc pas de soucis, tout est sûr.

  • Depuis que je sais que le générateur fonctionne, j'ai testé quelques exemples de site Web, et nous ne savions pas lesquels étaient autorisés ou interdits, sur quels critères.

Merci beaucoup pour vos réponses, acceptez ma gratitude. Sur la base des réponses, pour le moment, nous avons reporté toute restriction concernant le choix du mot de passe.

ces mots de passe peuvent prendre des siècles à se rompre (force brute) mais pas tellement de temps à deviner.
Les sites Web ne devraient pas dire «cela prendrait des siècles à se rompre».Ils devraient dire «cela me prendrait des siècles à se rompre».Et ils sont tous beaucoup plus stupides que votre attaquant de base.
Envisagez (également) d'utiliser: https://haveibeenpwned.com/Passwords
Quoi qu'il en soit: comment diable savez-vous que vos utilisateurs utilisent souvent ce genre de mots de passe?Conservez-vous les mots de passe en texte clair ou chiffrés au lieu de hachage?Ou avez-vous correctement mis en œuvre une vérification effectuée lors du changement de mot de passe pour voir si le mot de passe choisi suit ces catégories?
Mot de passe * entropie * (par opposition à la longueur ou à la complexité) est ce que vous demandez à ces sites Web de déterminer, et c'est une chose presque impossible pour eux de travailler avec précision.
À propos, selon toute probabilité, lorsque vous essayez des mots de passe sur ledit site Web, ils les ajoutent probablement à leur dictionnaire.
Que voulez-vous dire lorsque vous faites référence à des «hachages similaires dans la base de données»?vous avez le même hachage plusieurs fois?
Veillez à ne pas [utiliser des mots de passe difficiles pour les humains mais faciles à deviner pour les ordinateurs] (https://xkcd.com/936/)
Je ne comprends pas pourquoi vous avez décidé de commencer à maintenir une liste de hachages de mots de passe non salés après un incident.Garder cela autour semble juste que cela pose des problèmes.Avez-vous envisagé l'authentification multifacteur?
@ZachLipton: Cette liste non salée de mots de passe n'a été conservée que pendant une courte période, et continuellement déplacée vers `db-2` sur une machine différente, car nous voulions confirmer nos doutes avant de déployer de nouvelles directives.Personne n'a jamais vu de mots de passe en clair, la liste des mots de passe vulnérables a également été hachée, ce n'était pas une liste en texte brut.Nous avons utilisé un générateur qui a généré le hachage de ces mots de passe à motifs.Depuis, nous connaissons la logique placée dans ce générateur, j'ai posté quelques modèles qui peuvent / peuvent ne pas être dans le `db-2`.`db-2` a été effacé ainsi que la liste` L`, une fois que nous avons fait correspondre les deux.
J'espère que vous n'utiliserez plus jamais ces mots de passe ou ceux générés à partir du même modèle maintenant qu'ils ont été mis en ligne.La base de données non salée ressemble également à un risque pour la sécurité.
@JOW D'accord.Le premier mot de passe que j'ai «cassé» manuellement remonte au début des années 1990.J'ai recherché le numéro de téléphone d'une entreprise dont je savais qu'il y avait des tonnes de lignes de messagerie vocale et j'ai entré les numéros suivants sur le téléphone: «2580456».Comment suis-je entré si facilement?Regardez un clavier téléphonique: je viens de descendre la ligne au milieu avec des chiffres, puis la même chose au centre.Mot de passe facile / paresseux que certains techniciens ont utilisé (toujours utilisé?) Pour configurer les choses.
14 caractères, ce n'est pas tant que ça même pour ma vieille Radeon 5870. De quoi parle la partie «siècles»?
`ce qu'ils ignorent, c'est un ordre accru de hachages similaires dans la base de données (...) Nous utilisons un algorithme de hachage agréable, pas fait maison .` Pas si bien (pour ce cas d'utilisation) si des mots de passe similaires produisent des hachages similaires.[Continuity] (https://en.wikipedia.org/wiki/Hash_function#Continuity) n'est ** pas ** une qualité souhaitable pour une fonction de hachage de sécurité.Vous en voulez généralement un avec [effet d'avalanche] (https://en.wikipedia.org/wiki/Avalanche_effect)
N'y a-t-il pas une bande dessinée XKCD avec un gars se vantant auprès de son collègue de la complexité, de la longueur et de la «difficulté» de son nouveau mot de passe dans son gestionnaire de mots de passe super sécurisé.Et puis il se lève et se prend un café.Pendant que l'autre s'assoit et commence à écrire les mots de passe stockés dans le gestionnaire de mots de passe.
@sbecker Je ne me souviens pas que c'était une bande xkcd.Si vous le trouvez, puis-je avoir le lien?
@Baldrickk Je ne me souviens pas non plus que ce soit une bande xkcd.Le classique https://xkcd.com/538/ semble cependant similaire.
Vous devriez vraiment revoir NIST 800-63-3, et voir quelles recommandations ils font en ce qui concerne les mots de passe ("secrets mémorisés").
J'espère que votre bon algorithme de hachage est pbkdf2, bcrypt, scrypt, argon, etc. Parce que quand j'entends les gens parler de hachage avec du sel, cela signifie surtout une sorte de sha512.Ceux qui utilisent un algorithme de hachage de mot de passe correct ne mentionnent tout simplement pas le sel, car il est intégré. Je dis simplement que dire "hachage salé" a une mauvaise odeur indiquant un manque de connaissances.
@Dissimilis: Mes modifications étaient destinées aux personnes qui n'ont pas travaillé avec ces algos et il se peut qu'elles ne sachent pas grand-chose sur le fonctionnement.Je ne voulais pas paraître impoli en les corrigeant, alors j'ai posté des choses sous «modifications» en anglais simple.J'apprécie votre préoccupation, merci, et croyez-moi par «gentil», je voulais vraiment dire un bel algorithme.J'ai grandi ici sur security.stackexchange, en écoutant des gars formidables comme vous, ayez confiance en moi!
Dix réponses:
schroeder
2018-05-05 01:06:39 UTC
view on stackexchange narkive permalink

Les calculatrices en ligne basent leurs résultats sur un ensemble particulier d'hypothèses, qui pourraient ne pas s'appliquer dans un cas particulier. Il n'y a aucune base pour faire confiance aux calculatrices pour fournir des informations sur la façon dont un attaquant pourrait choisir de casser le mot de passe.

Par exemple, si je sais que vous utilisez un modèle, et quel est ce modèle, alors je ajusterait mon bruteforcing pour s'aligner avec le modèle. Il n'y a aucun moyen pour un calculateur en ligne de rendre compte de cela. Il y a d'autres facteurs similaires à prendre en compte. "Entropy" consiste à assurer autant d'aléatoire que possible. Un modèle d'ensemble a un caractère aléatoire très réduit, quels que soient les caractères utilisés.

Donc, oui, interdisez ces modèles évidents, si cela répond à votre objectif.

Je suis cependant préoccupé par votre méthode d'interdiction de ces mots de passe. Vous menez peut-être la mauvaise bataille.

Même si vous ne connaissez pas le modèle spécifique utilisé, les ensembles de règles pour des outils comme Hashcat appliqueront les modèles les plus courants (et même rares) et toutes leurs variations.
Merci pour la réponse, je l'apprécie profondément.Ce site Web, dont je parle mais je ne nommerai pas, est à peu près connu de tous les hackers éthiques / contraires à l'éthique, de presque tous les utilisateurs ici sur l'échange de piles et de toutes les grandes / petites entreprises (car ilsutiliser ses services) ... c'est pourquoi je suis venu ici pour demander des suggestions.En plus du "caractère aléatoire beaucoup plus réduit", c'est un groupe de mots de passe similaires, encore et encore, dans notre base de données qui a attiré notre attention.
"un groupe de mots de passe similaires, encore et encore, dans notre base de données": conservez-vous vos mots de passe en clair?Ce serait de loin le plus gros problème de sécurité;vous devriez les hacher (avec des sels uniques), ce qui rendrait ce genre de chose impossible à remarquer avec désinvolture.
@Batman Sérieusement, découvrez si les mots de passe sont stockés en texte clair ou par un cryptage réversible.Si l'un ou l'autre est le cas, faites campagne pour que cela change immédiatement, c'est une menace sérieuse pour votre entreprise.Si les mots de passe sont stockés en texte brut au lieu d'être hachés, la qualité de vos mots de passe n'aura pas d'importance lorsqu'un pirate s'introduit et les récupère tous dans votre base de données.
`c'est un groupe de mots de passe similaires, encore et encore, dans notre base de données qui a attiré notre attention` Cette déclaration que vous avez faite à la fois dans OP et dans les commentaires fait que beaucoup d'entre nous supposent que vous les stockez soit en texte brut (ce que vousont refusé) ou vous utilisez un algorithme de hachage sans [effet d'avalanche] (https://en.wikipedia.org/wiki/Avalanche_effect) (Comment pouvez-vous savoir qu'ils sont similaires, sinon?).Ce dernier est, bien sûr, légèrement meilleur, mais les deux sont mauvais.
La plupart de ces calculatrices en ligne supposent une technologie et des algorithmes de recherche très obsolètes.
+1 pour le dernier paragraphe.C'est exactement ce que j'ai pensé en lisant la question.
Je ne suis pas si sûr de cette réponse.Heuristiquement, il est facile d'attribuer une valeur d'entropie inférieure à ces mots de passe.Mais l'analyse heuristique présuppose que vous pouvez déjà deviner le schéma de codage entropie en ascii, pour lequel il existe un autre ensemble d'entropie.Je pense que BTC a eu raison avec BIP39 ...
Luis Casillas
2018-05-05 02:28:43 UTC
view on stackexchange narkive permalink

Juste par curiosité, j'ai vérifié cela sur un site Web très connu (sur sa page de connexion) et il a déclaré que cela prendrait des siècles pour se briser.

Ces sites Web ne peut pas être considéré comme un évangile. Beaucoup sont sans valeur et même pour les bons, les résultats doivent être soigneusement interprétés. Tout d'abord, en règle générale, un vérificateur de force peut vous dire de manière concluante qu'un mot de passe est faible mais ne peut pas vraiment vous prouver qu'un mot de passe est fort - le mot de passe dans lequel il ne peut pas trouver de faute pourrait bien tomber dans une attaque qui le compteur ne modélise pas. Pour quelques exemples extrêmes, cet article Ars Technica décrit des attaques par cracking réussies sur des phrases de passe autrement impressionnantes:

Presque immédiatement, un flot de des mots de passe autrefois têtus se sont révélés. Ils comprenaient: "Vais-je jamais revoir votre visage?" (36 caractères), "au commencement était le mot" (29 caractères), "de la genèse aux révélations" (26), "je ne me souviens de rien" (24), "il n'y a pas de chose mais ce qui se réveille" (26), "givemelibertyorgivemedeath" (26 ), et "à l'est du soleil-ouest de la lune" (25).

L'autre chose est que ce n'est pas parce qu'un mètre vous a dit qu'il juge le mot de passe fort que tous ces compteurs le font. Par exemple, le vérificateur zxcvbn, qui est l'un des meilleurs, pense qu'il est cassable en 3 heures par une attaque hors ligne si le hachage du mot de passe est faible:

  password : 23 ## 24 $$ 25 %% 26guesses_log10: 14score: 4 / 4fonction exécution (ms): 3 temps de devinettes: 100 / heure: siècles (attaque en ligne étranglée) 10 / seconde: siècles (attaque en ligne sans limitation) 10k / seconde: siècles ( attaque hors ligne, hachage lent, nombreux cœurs) 10B / seconde: 3 heures (attaque hors ligne, hachage rapide, nombreux cœurs) séquence de correspondance: '23 ## 24 $$ 25 %% 26'pattern: bruteforceguesses_log10: 14   pré>

Il estime 2 minutes pour 1! 2 @ 3 # 4 $ 5% 6 ^ , 2 @ 3 # 4 $ 5% 6 ^ 7& et a! b @ c # d $ e% f ^ avec une attaque de 10B / seconde (3 ans à 10k / seconde), donc celles qu'il pense sont encore pires. (Bien qu'il les note tous 4/4. Le compteur vous recommande d'accepter réellement l'un de ces mots de passe, car il estime qu'ils sont raisonnablement susceptibles de résister aux attaques si votre application a implémenté un hachage lent des mots de passe . Mais son analyse prouve en fait qu'ils sont faibles face à une attaque spécifique que vous devriez atténuer.)

Notez que zxcvbn modélise les attaques en se basant uniquement sur une connaissance générale de la façon dont la plupart des utilisateurs choisissent les mots de passe - il n'a pas toute connaissance spécifique de la manière dont les politiques ou pratiques de mot de passe de votre organisation peuvent permettre une attaque spécialisée contre quelqu'un qui les apprend. Et rappelez-vous toujours que l'outil peut vous dire qu'un mot de passe est faible, mais pas qu'il est fort - zxcvbn estime que des siècles sont nécessaires pour déchiffrer Est-ce que je reverrai jamais votre visage? , lequel de L'article d'Ars que nous savons a en fait été craqué dans la vraie vie.

Maintenant, je suis confus avec la liste, devrais-je marquer ces types de mots de passe comme vulnérables et interdire aux utilisateurs de partir pour eux, même s'ils mettent beaucoup de temps à se briser?

Votre instinct de bannir ces mots de passe s'avère en fait justifié, comme le montrent les résultats de zxcvbn. Le problème est qu'il est peu probable que vous réussissiez à compiler une liste finie de mots de passe qui sont également vulnérables, ni de modèles qu'un attaquant pourrait exploiter avec succès. Par exemple, pour attraper tous les mots de passe que zxcvbn pense être aussi vulnérables que les trois derniers, vous auriez besoin d'une liste de 1,2 billion d'entrées (10 milliards de mots de passe / seconde × 2 minutes). Pas pratique. Même si vous essayez de condenser les choses en une petite liste de modèles à rejeter, je ne compterais pas pour réussir à déjouer vos attaquants.

Une chose que vous devez absolument faire est d'utiliser un hachage de mot de passe fort, avec les fonctions de hachage de mot de passe bcrypt ou Argon2. C'est ce que les résultats de zxcvbn ci-dessus appellent "hachage lent" et cela rend probablement vos entrées de mot de passe beaucoup plus difficiles à casser. (Mais encore une fois, rappelez-vous qu'un vérificateur de force peut vous dire que certains mots de passe sont certainement dangereux, mais pas qu'ils sont sûrs.)

Ce que vous devez également considérer:

  • une petite liste (des milliers) de mots de passe connus pour être très courants, et interdisez-les. Ces listes peuvent être facilement trouvées en ligne.
  • Utilisez la liste de 500 millions de mots de passe violés de Troy Hunt, qui dispose également d'une API en ligne. (Assurez-vous de lire le matériel sur le k-anonymat afin de ne pas envoyer de mots de passe à l'API!)
  • Utilisez une bibliothèque de compteurs intelligents comme zxcvbn, qui est un une alternative bien plus sophistiquée à la détection de modèles comme celle que vous envisagez.
  • Mettez en œuvre un deuxième facteur d'authentification, de sorte que les mots de passe ne soient pas votre seule ligne de défense.
Appréciez vos efforts.Ce hachage lent, qui prend des siècles pour casser un mot de passe, est la raison pour laquelle nous sommes divisés sur les mots de passe vulnérables / non vulnérables.Pour des raisons de sécurité, je n'ai pas publié ici les différents types de mots de passe que les utilisateurs utilisent souvent, sur notre site.Ce que nous expérimentons, c'est d'avoir des hachages similaires stockés sur notre base de données, lorsque nous avons vérifié par recoupement, il a été constaté qu'un modèle défini gagnait du terrain parmi les utilisateurs pour la création de mots de passe.Dieu nous en garde, en cas de violation, aucune lenteur ne sauverait ces mots de passe particuliers car ce sont des modèles devinables.En regardant le lien `Troy`, brb.
@Batman Je pense que vous allez lentement vers un seul mot de passe "sûr" et approuvé.Les modèles que vous mentionnez n'ont pas été créés volontairement par les utilisateurs - en interdisant certains mots de passe **, vous les avez forcés à inventer ces modèles **.Plus vous mettez de restrictions, plus vous obligez tout le monde à suivre un modèle.Une fois cassé, ce serait catastrophique.Moins de règles, plus d'éducation.Agrafe de batterie de cheval correcte.
@Batman Si vous avez des hachages de mot de passe similaires dans votre base de données, alors quelque chose de plus profond ne va pas.Si vous utilisiez un algorithme approprié (tel que PBKDF2, bcrypt, scrypt ou Argon2i), alors même si chaque utilisateur avait le même mot de passe, ils auraient des hachages différents.Si le même mot de passe entraîne le même hachage, les attaquants obtiennent un énorme avantage, car ils peuvent déchiffrer le mot de passe de tout le monde en même temps.Si l'algorithme est largement utilisé, il peut même y avoir des tables arc-en-ciel prêtes à l'emploi disponibles.
@Agent_L: Nous n'avons forcé personne à définir un modèle de mots de passe, il suffit d'inclure un symbole, un chiffre avec une longueur totale supérieure ou égale à 8 était la règle.Mais.Je suppose que nous devrons peut-être mettre certaines restrictions sur la création de mot de passe, car dans le domaine financier, la protection des données des utilisateurs est la priorité absolue.
@Batman Vous implémentez donc l'authentification multifacteur?
@DerekElkins: Bien sûr, nous allons bientôt aller dans cette direction.
"pour attraper tous les mots de passe que zxcvbn pense être aussi vulnérables que les trois derniers, vous auriez besoin d'une liste avec 1,2 billion d'entrées" Pas vraiment.La faiblesse de ce mot de passe peut être détectée en calculant l'autocorrélation à un niveau binaire - Pour un décalage de 4 caractères, l'autocorrélation sera très élevée.
@Batman Si vos utilisateurs commencent à partager des modèles pour tromper vos restrictions, ces restrictions sont trop dures pour eux et c'est un risque de sécurité énorme.Certains utilisateurs (par exemple les nerds) peuvent se souvenir des chiffres et des symboles, d'autres (le reste) ne le peuvent pas.Vous devez éduquer les utilisateurs.
@Agent_L - "Vous devez éduquer les utilisateurs", a noté le point.Nous avons des clients très anciens (et respectés) qui pourraient rencontrer des problèmes lors de la configuration du nouveau mot de passe, vous avez raison lorsque vous dites les éduquer.
Steve Sether
2018-05-05 06:37:18 UTC
view on stackexchange narkive permalink

La devinabilité des mots de passe signifie savoir quelque chose sur le type de mots de passe que les gens peuvent choisir. Nous savons tous que "Password" est devinable car c'est un mot anglais. Mais sachez que vous devez soit connaître l'anglais, soit avoir une idée de la façon dont l'anglais ou d'autres langues apparentées épellent les mots. Un étranger de quelque part dans les environs de Bételgeuse qui n'a jamais été exposé à l'anglais ou à une autre langue humaine ne saura pas que "Password" est facilement devinable. En d'autres termes, les modèles sont quelque peu subjectifs, ce qui (au-delà d'un certain niveau) les rend terriblement difficiles à prédire à l'avance.

De même, pour certains des mots de passe de votre liste, il n'est pas immédiatement évident de savoir ce que modèle est. 1! 2 @ 3 # 4 $ 5% 6 ^ semble quelque peu "aléatoire" à première vue, mais vous remarquerez rapidement que sur un clavier QWERTY, c'est simplement 1-6, et en alternant tous les autres caractères avec la touche Maj.

De plus, si quelqu'un vous montrait le mot de passe CPE1704TKS, vous pourriez aussi penser que c'est un bon mot de passe. Il a 10 caractères de lettres et de chiffres, il n'y a pas de motif répétable déterminable, et ce n'est pas un mot dans aucune langue humaine. Vous vous trompez cependant, et ce n'est pas un bon mot de passe car c'est le mot de passe utilisé pour lancer les missiles nucléaires à la fin du film Wargames.

Pour cette raison, en utilisant des calculs de "crackability" (basé sur la longueur et la sélection de caractères) à partir d'un site Web aléatoire sont en grande partie faux. De plus, ils dépendent de l'obtention des hachages de mots de passe par quelqu'un, ce qui constitue en soi un compromis de sécurité majeur. Ils sont doublement faux car ils impliquent que vous savez à quelle vitesse un hachage prend. Les vitesses de hachage varient de plusieurs ordres de grandeur en fonction de l'algorithme que vous avez choisi. Prenez donc les scores de "crackability" avec un grain de sel. La plupart des attaques contre les mots de passe de nos jours utilisent des mots de passe courants ou des mots de passe réutilisés et non des hachages de mots de passe volés.

En réalité, cela revient simplement à maintenir une liste de "mauvais mots de passe" que d'autres personnes ont trouvés au fil des ans et qui ont une sorte de signification particulière. Je suppose que c'est de là que viennent les responsables de la sécurité.

Concernant "simplement maintenir une liste de 'mauvais mots de passe' que d'autres personnes ont trouvé au fil des ans": ou simplement utiliser [la liste de quelqu'un d'autre qui est probablement beaucoup plus grande que la vôtre] (https://haveibeenpwned.com/Passwords).
@Ben Je ne suis pas sûr de ce que vous dites ici.Je ne voulais pas dire que vous devriez maintenir votre propre liste indépendamment de toute autre liste, mais plutôt que vous devriez prendre en compte les listes d'autres personnes lors de la tenue d'une liste.En effet, déterminer ce qui a du sens pour vous.Interdire 500 millions de mots de passe n'est peut-être pas la bonne approche pour tout le monde, par exemple.
"La plupart des attaques contre les mots de passe de nos jours utilisent des mots de passe courants ou des mots de passe réutilisés" - D'accord.
leftaroundabout
2018-05-05 16:03:07 UTC
view on stackexchange narkive permalink

Il est impossible de prouver qu'un mot de passe donné est difficile à déchiffrer.

Ce que vous entendez par l'affirmation (correcte) selon laquelle ces mots sont "hautement vulnérables", c'est que là Il existe un algorithme plus facile à deviner pour les générer, à savoir "frapper la ligne numérique d'un clavier QWERTY dans tel ou tel motif simple". Il s'agit d'un algorithme facile à reconnaître pour un humain qui passe toute la journée à presser ses doigts sur un tel clavier, mais les motifs sur un tel clavier sont en fait plutôt «non évidents pour un ordinateur», car en fait, la plupart des programmes informatiques ne Je ne me soucie pas du tout de la disposition physique des touches .

Je pourrais également donner un exemple comme YWJjZGVmZ2hpamts , que vous pourriez penser un mot de passe raisonnablement sûr, mais vous auriez tort, car il se trouve qu'il s'agit du codage Base64 de la chaîne abcdefghijkl , et cela peut sembler totalement évident à une IA pour laquelle un string est avant tout un modèle de bits.

La notion de la façon dont un bit d'information donné peut être exprimé est appelée complexité de Kolmogorov. Malgré la définition simple, c'est en fait un concept très délicat: cela dépend fortement de la langue dans laquelle vous voulez tout exprimer, et il est incomputable . Vraiment, le mieux que vous puissiez faire est d'évaluer tous les programmes courts possibles dans un langage de programmation expressif avec une grande bibliothèque standard, mais si cela ne réussit pas cela ne garantit en aucun cas qu'il n'y a pas de bas. entropie moyen de calculer le mot de passe dans une autre langue qui comprend une fonction standard cruciale. Si vous ne connaissez pas la disposition QWERTY, vous pourriez également penser que asdfqwerzxcv est sûr, malgré l'évidence totale lorsque vous le connaissez.

Le résultat: si vous trouvez une représentation à faible entropie d'un mot de passe donné, alors oui, interdisez-la. Mais ne prenez jamais l'assertion de qui que ce soit (y compris de tout programme ) pour valeur nominale qu'un mot de passe donné est sécurisé s'il ne sait pas comment le mot de passe a été réellement généré. Si vous voulez garantir des mots de passe vraiment incassables, le seul moyen est de vous assurer qu'ils proviennent d'un processus aléatoire physique quantique.


Tout programme concerné par le craquage de mots de passe devrait cependant connaître les dispositions de clavier, car il est bien connu que les humains ont tendance à recourir à de tels modèles. De plus, 23 ## 24 $$ 25 %% 26 est assez facile même sans connaître la disposition du clavier, car la ligne numérique est presque ordonnée en ASCII. Donc, ces sites Web font vraiment un travail terrible ici.

C'est même sans tenir compte des problèmes d'exécution. Ce que vous faites ici est tout aussi difficile que de forcer brutalement un mot de passe inconnu .

_ "qu'un mot de passe donné est sécurisé s'ils ne savent pas comment le mot de passe a été réellement généré" _, être généré par, disons, un _ "processus aléatoire physique quantique" _ ne rend pas réellement le mot de passe plus sûr. Si mon générateur de nombres aléatoires de matériel génère le mot de passe suggéré de "Mot de passe" (ce qui est une occurrence très improbable, mais pas impossible).Ensuite, en termes réels, il est tout aussi sécurisé (ou sécurisé) que si je l'avais sélectionné par le fait que j'utilise toujours "Mot de passe" comme mot de passe.
Connaître la méthode de génération vous indique la propension de cette méthode à générer des mots de passe sécurisés, mais cela ne vous dit rien sur la sécurité d'un mot de passe donné généré à l'aide de cette méthode.Pour comprendre cela, vous n'avez pas besoin de connaître vos ** utilisateurs **, vous devez connaître vos ** attaquants **.C'est sur quoi porte votre réponse, à l'exception de ces deux phrases.
@LyndonWhite «occurrence improbable, mais pas impossible» - dans le cas de seulement huit caractères, c'est un point assez valable.En général, il est cependant logique de considérer les événements exponentiellement improbables comme _impossible_.Techniquement parlant, il est également possible que votre méthode de vérification de mot de passe soit juste au mauvais moment interrompue par un rayon cosmique traversant le processeur et faisant basculer la valeur de retour de faux à vrai, mais si vous continuez à tenir compte de tout cela pratiquement, mais pas-des scénarios tout à fait impossibles que vous n'irez nulle part.
En particulier, c'est en fait une partie principale de mon argument que vous ne pouvez pas connaître les attaquants.Vous pouvez connaître certaines choses qu'ils essaieront probablement, et il est certainement logique de filtrer contre celles-ci, mais vous ne pouvez pas savoir ce qu'ils _ n'essaieront pas.Ainsi, une stratégie est plus sûre si _ peu importe_ ce qu'ils essaient.
en effet, c'est juste, donc mon point principal était que les informations que vous (le ** responsable du système / le système **) connaissez sur la méthode de * l'utilisateur * pour générer le mot de passe ne sont pas réellement pertinentes pour la sécurité du mot de passe de cet utilisateur.Pour un ** utilisateur **, votre point sur l'utilisation d'un processus aléatoire pour générer le mot de passe tient (dans l'ensemble, sur de nombreux mots de passe).Du ** mainteneur / système **, peu importe comment ils l'ont obtenu.Votre dernière phrase ne tient fondamentalement pas, elle n'a aucun rapport avec le ** maintaner / system ** comment elle a été générée.C'est ce que c'est.
@LyndonWhite non, je ne suis pas d'accord: _ce que c'est_ n'est pas pertinent.La sécurité d'un mot de passe unique est en fin de compte une notion dénuée de sens (encore une fois, sauf pour un petit sous-ensemble de pwds qui ne sont pas sûrs).Ce n'est que la méthode de génération que vous pouvez objectivement évaluer par entropie.Et oui, la méthode _particulière_ utilisée n'a pas d'importance, ni pour le responsable ni pour l'utilisateur, mais l'entropie du générateur est la seule chose qui compte.
reed
2018-05-05 02:04:18 UTC
view on stackexchange narkive permalink

Un mot de passe comme "12345678" peut être considéré comme aléatoire, si vous le souhaitez. Si vous utilisez un générateur de mots de passe aléatoires, la probabilité de générer "12345678" est la même que celle de "4h2Ud8yG" (en ne considérant que les mots de passe alphanumériques). Et "12345678" peut être aussi difficile à casser que "4h2Ud8yG", si vous le forcez de manière brutale dans la plage de "00000000" à "ZZZZZZZZ". Mais la vérité est que les mots de passe ne doivent pas être simplement aléatoires, ils doivent également paraître aléatoires. Pourquoi? Étant donné que les attaquants utilisent souvent la force brute basée sur des dictionnaires ou des modèles, les mots de passe qui ne sont pas basés sur des mots ou des modèles sont plus sécurisés. De plus, si des mots et des modèles sont utilisés pour faciliter la mémorisation du mot de passe, il est probable que tous les autres mots de passe utilisés par la même personne seront plus faciles à retenir de la même manière. Donc, si un attaquant vole l'un de vos mots de passe et qu'il ressemble à "John75", il est susceptible de briser la majorité de vos mots de passe par des modèles de force brute tels que "nom + numéro", "mot + numéro" ou certaines variantes. Mais si l'attaquant vole l'un de vos mots de passe et qu'il ressemble au hasard "4h2Ud8yG", alors il ne pourra en extraire aucune information.

Vous avez donc raison lorsque vous dites ces mots de passe que vous avez ne sont pas vraiment sécurisés. Ils n'ont même pas toute l'entropie que vous pensez avoir! Et c'est parce que l'entropie de mot de passe est basée sur la façon dont un mot de passe ressemble, ou la façon dont un mot de passe est créé. Un mot de passe comme "1! 2 @ 3 # 4 $ 5% 6 ^", si vous le pensez comme "nombre suivi du symbole, six fois", vous auriez (10x10) ^ 6 = 10 ^ 12 possibilités. Ce qui est inférieur aux possibilités pour un simple mot de passe de 8 caractères composé de lettres minuscules et de chiffres: 36 ^ 8 = 2,8 x 10 ^ 12 possibilités. Mais si vous pensez à cet exemple de mot de passe comme "nombre suivi du symbole sur la même touche, à partir de 1 dans l'ordre croissant, six fois ", alors les possibilités totales sont ... une seule!

Ils devraient avoir suffisamment de complexité Kolmogorov, pour être exact.
keithRozario
2018-05-07 14:03:32 UTC
view on stackexchange narkive permalink

Tout d'abord, ces indicateurs de sévérité des mots de passe sont des directives, pas une vérité absolue.

Deuxièmement, le degré de sécurité d'un mot de passe ou le temps qu'il faudrait pour déchiffrer dépend de quelques facteurs. Pour mieux comprendre cela, il est important de comprendre comment les mots de passe «se cassent» en premier lieu.

Il existe 3 attaques courantes contre les mots de passe:

  1. Les attaquants essaient de se connecter à un service en devinant le mot de passe
  2. Les attaquants ont trouvé la même combinaison nom d'utilisateur / mot de passe dans une violation distincte et l'utilisent maintenant contre un service non violé (bourrage d'informations d'identification)
  3. Les attaquants ont obtenu la base de données vidage d'un service et avoir le hachage du mot de passe. Ils forcent maintenant brutalement les hachages pour déterminer le mot de passe en clair.

Pour empêcher les attaquants de deviner directement les mots de passe, nous appliquons une sorte de «règle d'entropie» AND nous limitons les tentatives de connexion. De cette façon, les attaquants ne peuvent pas forcer directement votre service.

Pour empêcher le bourrage d'informations d'identification est une tâche plus difficile. Quelle que soit la force avec laquelle vous forcez les mots de passe, cela ne sera d'aucune utilité si l'utilisateur avait le même mot de passe sur un système piraté distinct - et ce système l'a stocké en texte clair!

Certaines entreprises (notamment Amazon, LinkedIn et OpenTable) accèdent même à des violations de données et alertent leurs clients - même si ces violations sont en dehors desdites entreprises. Cela aide à se protéger contre le bourrage d'informations d'identification (un peu!), Mais cela pourrait être un peu trop loin.

Enfin, il y a le forçage brutal typique d'un hachage de mot de passe. C'est là qu'un attaquant a en quelque sorte mis la main sur les hachages de mot de passe des utilisateurs et essaie maintenant de deviner le texte en clair à partir des hachages. Voici où nous entendons couramment le trope il faudra des siècles pour rompre .

En général, l'attaquant utilisera un outil comme ocl-hashcat en combinaison avec une liste de mots de mots de passe communs (comme les mots de passe RockYou ou Top1000, etc.) pour deviner le texte en clair. Les attaquants peuvent également forcer brutalement chaque combinaison de lettres, de chiffres et de caractères spéciaux, mais ce n'est pas courant, car c'est moins efficace qu'une liste de mots.

Le ralentissement de l'attaque, nous nous appuyons généralement sur:

  • Utilisation d'une fonction de hachage Strong (Bcrypt au lieu de MD5)
  • Salage des mots de passe individuels ( pour forcer les attaquants à la force brute un par un)
  • Empêcher les utilisateurs d'utiliser des mots de passe faibles
  • Empêcher les utilisateurs d'utiliser des mots de passe lors de violations de données précédentes (car la liste de mots est composée de mots de passe précédemment violés) .

Pour les 2 derniers, NIST recommande ce qui suit:

Lors du traitement des demandes d'établissement et de modification de secrets mémorisés, les vérificateurs DOIVENT comparer les secrets potentiels par rapport à une liste contenant des valeurs connues pour être couramment utilisées, attendues ou compromises. Par exemple, la liste PEUT inclure, mais sans s'y limiter:

  • Mots de passe obtenus à partir de corpus de violation précédents.
  • Mots du dictionnaire.
  • Répétitif ou caractères séquentiels (par exemple «aaaaaa», «1234abcd»).
  • Mots spécifiques au contexte, tels que le nom du service, le nom d'utilisateur et ses dérivés.

De toute évidence, les services doivent forcer la réinitialisation du mot de passe une fois qu'une faille est découverte sur leur service.

En bref, ne soyez pas confus sur le fait de prendre des siècles pour casser des bêtises. Appliquez un ensemble raisonnable de pratiques autour de la protection des mots de passe et vous devriez être bon, ne vous fiez pas entièrement à ces indicateurs de force de mot de passe pour déterminer votre posture de sécurité. Ce lien NIST est un bon point de départ.

Tom
2018-05-07 01:50:58 UTC
view on stackexchange narkive permalink

La plupart des conseils en ligne sur les mots de passe sont, pour le dire amical, sans aucune base solide. Cela vaut particulièrement pour la soi-disant complexité des mots de passe, qui est basée sur un mythe des années 80 et heureusement - après que l'auteur original du NIST l'ait admis l'année dernière - en voie de disparition.

Vous pouvez pas faire une estimation de la force du mot de passe sans comprendre ce que sont réellement vos menaces. Toutes les calculatrices en ligne triviales sont absurdes car elles ne font que faire des calculs sans tenir compte de ce que vous essayez de protéger contre^.

Votre menace pourrait être brutale fort>. Dans ce cas, la première chose à faire est de ne pas autoriser les attaques par force brute. Si quelqu'un entre un mauvais mot de passe cent fois et que vous ne le verrouillez pas, vous faites quelque chose de mal qui n'a rien à voir avec la force du mot de passe. La deuxième chose à faire est longueur> complexité (mettre que dans Google, excellent article).

Si votre menace est une attaque par dictionnaire sur vos hachages de mot de passe, la première chose à faire est de protéger correctement vos hachages. La seconde est de saler et de hacher correctement avec une fonction de hachage appropriée (bcrypt, scrypt, etc. - pas MD5 ou SHA1). Le troisième est de ne pas autoriser les mots simples du dictionnaire et les permutations. Utilisez la même logique que les crackers, certains d'entre eux sont accessibles au public.

Si votre menace est de surfer sur l'épaule ou des autocollants post-it, vous voulez éviter la complexité absurde et assurez-vous que vos utilisateurs peuvent réellement se souvenir de leurs mots de passe et saisissez-les rapidement. Encore une fois, longueur> complexité. Faites une longueur minimale de 12 caractères, mais autorisez les mots composés.

Et ainsi de suite ...

En bref: tenez compte de vos menaces, ne vous fiez pas aux estimations mathématiques triviales.

Fait amusant: lorsque j'ai préparé un récent discours sur la sécurité des mots de passe, il s'est avéré que de nombreux outils de mots de passe en ligne pensent qu'ABCabc123! "§ est un mot de passe vraiment sûr ...
Vote positif parce que vous avez condensé toute la question en une seule déclaration avec votre dernière phrase.Une calculatrice de force brute va traiter '123456789' de la même manière que tout autre mot de passe à 9 caractères, même si nous, les humains, considérons généralement qu'il est "plus facile" de casser, parce que nous ne pensons pas uniquement en termes de force brute.Si l'attaquant utilise la force brute (et uniquement la force brute), la réponse est très différente de celle qui utilise une autre méthode.
Peter Green
2018-05-07 18:41:23 UTC
view on stackexchange narkive permalink

Juste par curiosité, j'ai vérifié cela sur un site Web très connu (sur sa page de connexion), et il a déclaré que cela prendrait des siècles pour se rompre.

Tel les affirmations sont toujours très douteuses.

Le problème fondamental est que pour calculer combien de temps il faudrait à un attaquant pour casser un mot de passe, vous avez besoin d'un modèle de l'attaquant.

Un attaquant idéalisé le ferait. essayez les mots de passe dans l'ordre du plus probable au moins probable. Bien sûr, un véritable attaquant ne sait pas quelle est la probabilité d'un mot de passe donné, il doit donc deviner, il combinera généralement une sorte de dictionnaire (qui, si l'attaquant est un peu compétitif, contiendra beaucoup plus que de simples mots anglais) avec un un tas de règles de génération.

Le problème est que les modèles d'attaquants utilisés par les compteurs de force de mot de passe sont souvent loin derrière les attaquants réels dans la taille de leurs dictionnaires et la complexité de leurs règles.


Le problème fondamental avec les restrictions de mot de passe est que, quelle que soit la restriction que vous faites, les utilisateurs feront souvent le strict minimum pour que leur mot de passe passe.

Maintenant, cela peut ajouter de l'entropie, il y a normalement plus d'un moyen minimum de muter un mot de passe afin qu'il passe les règles, mais l'entropie ajoutée est beaucoup plus petite qu'une analyse naïve peut le suggérer. Par exemple, si vous forcez les utilisateurs à ajouter un nombre à leur mot de passe, un nombre disproportionné d'entre eux choisiront probablement 1.

MauganRa
2018-05-05 18:39:51 UTC
view on stackexchange narkive permalink

Vous êtes probablement confus en supposant qu'il est possible de définir la vulnérabilité des mots de passe a priori. Au lieu de cela, cela dépend fortement du modèle qu'un attaquant réel essaiera en premier. Un attaquant opportuniste essaierait probablement d'abord un dictionnaire ou des listes de mots de passe divulgués. Mais en faisant un effort même modéré, ils peuvent devenir assez précis. C'est une des raisons pour lesquelles l'application des directives sur les mots de passe est une bataille perdue. La plupart des directives encouragent les utilisateurs à respecter certaines exigences minimales lors du choix de leurs mots de passe. Cela peut aider à les forcer brutalement . Par exemple,

  • une longueur de mot de passe minimale de X caractères permet à un attaquant d'éviter d'essayer tous les mots de passe plus courts que X et de se concentrer sur les mots de passe de longueur X, X + 1 ou X +2 en supposant que de nombreux utilisateurs ne remplissent que la longueur minimale requise.

  • En appliquant un modèle tel que «minuscules, majuscules, nombres et caractères spéciaux», un attaquant peut supposer qu'il y a les utilisateurs qui dérivent leur mot de passe en utilisant exactement ce modèle .

  • Il serait possible de leur dire si leur mot de passe était un mot de passe divulgué, mais là est le risque qu'ils finiraient par le modifier jusqu'à ce qu'il passe. Encore une fois, c'est un indice pour les attaquants sur la façon de diriger leur forçage brutal.

  • La longueur maximale est assez évidente. Dans le meilleur des cas, une longueur réduit l'avantage d'utiliser des gestionnaires de mots de passe. Dans le pire des cas, ils peuvent faire allusion aux limites technologiques sous-jacentes du système de connexion. En outre, ils placent une limite supérieure sur l'effort le plus défavorable qu'un attaquant doit déployer.

Vous avez tellement raison dans votre analyse de la longueur des mots de passe, nous ne pouvons certainement pas faire grand-chose, mais, bien sûr, nous pouvons les restreindre pour ne pas suivre un modèle.
jmoreno
2018-05-08 06:51:29 UTC
view on stackexchange narkive permalink

Pour déterminer la difficulté à déchiffrer un mot de passe, vous devez connaître son entropie, ce que ces sites ne peuvent évidemment pas connaître. Ils font leur meilleure supposition et retournent ensuite cela comme résultat.

Afin de calculer correctement l'entropie d'un mot de passe, vous devez supposer que l'attaquant en sait autant que le créateur sur la façon dont le mot de passe a été créé. Si le créateur inclut toujours l'un des deux mots de 10 lettres, l'attaquant doit savoir à la fois qu'un de ces mots sera présent et ce qu'il est.

De là, vous pouvez voir que votre modèle est très faible entropie (pas plus de 7 bits). Mais comme les sites Web ne le savent pas, ils le notent beaucoup plus. Si vous voulez un bon mot de passe, vous devez avoir un caractère aléatoire. Comment amener un utilisateur à accepter et à inclure le caractère aléatoire dans le mot de passe est un problème. Mieux vaut essayer de trouver comment amener quelqu'un d'autre à faire le mot de passe ou l'équivalent du mot de passe.



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...