J'entends toujours "Un mot de passe long, c'est bien, un mot de passe plus long, c'est mieux". Mais y a-t-il une chose telle qu'un " mot de passe est si long qu'il devient dangereux " ou " le mot de passe est long assez, l'allonger n'aura plus d'importance "?
Je suis intéressé par la sécurité du mot de passe en ce qui concerne le craquage uniquement.
Pas si cela peut provoquer un DoS surcharger les serveurs pendant le hachage, ou si le vendeur pense le contraire .
Supposez également que le mot de passe ne contient aucun dictionnaire ce serait dans les commentaires de toute façon. mots, est stocké selon les meilleures pratiques , a un fort et sel unique , et entropie pertinente par caractère. La façon dont l'utilisateur se souviendra/se rappellera/stockera le mot de passe n'a pas d'importance non plus.
J'accepte que plus long / mots de passe / sont plus sûrs . Je pose des questions sur la limite supérieure .
Existe-t-il une longueur (ou taille d'entropie) où l'allongement du mot de passe n'a plus d'importance (sic), voire affaiblit sa sécurité? Je sais que cela dépend de l'algorithme de hachage, si la limite supérieure d'un algorithme donné existe et est connue, c'est quoi?
128 bits (d'entropie)
Le but principal d'un mot de passe plus long est d'empêcher les attaques par force brute. Il est généralement admis que 128 bits sont au-delà de la capacité de quiconque à utiliser la force brute, et le resteront dans un avenir prévisible. Vous voyez ce chiffre à quelques endroits, par exemple Les chiffrements SSL avec une longueur de clé de 128 bits ou plus sont considérés comme "haute sécurité" et OWASP recommande que les jetons de session soient d'au moins 128 bits. Le raisonnement est le même pour tous ces éléments - 128 bits empêchent les attaques par force brute.
En pratique, si un mot de passe est composé de lettres majuscules et minuscules, de chiffres et d'une petite ponctuation, il y a environ 6 bits d'entropie dans chaque caractère, donc un mot de passe de 128 bits se compose de 22 caractères.
Un mot de passe peut être compromis autrement que par la force brute. Peut-être y a-t-il un enregistreur de frappe sur le système client, ou l'utilisateur est-il phishing. La longueur du mot de passe ne fait presque aucune différence avec ces attaques - même un mot de passe de 1000 bits serait capturé tout de même. Et ces attaques sont courantes dans la pratique, donc cela ne vaut vraiment pas la peine d'utiliser des mots de passe trop longs.
En fait, vous pouvez vous en sortir avec un peu moins de 128 bits. Si le mot de passe est haché avec une fonction de hachage lente comme bcrypt, cela rend une attaque par force brute plus difficile, donc 100 bits (ou environ) empêche complètement les attaques par force brute. Si vous ne vous préoccupez que des attaques en ligne et que le site a une politique de verrouillage, vous pouvez vous en tirer encore moins - 64 bits empêcheraient complètement une attaque par force brute en ligne à débit limité.
Un mot de passe peut-il être aussi long qu'il n'est pas sécurisé? Oui.
Lorsque vous examinez la situation générale de la sécurité dans votre organisation, la sécurité ne signifie pas seulement "protéger les comptes avec des mots de passe invisibles". La sécurité doit protéger l'ensemble de l'organisation avec la "triade CIA" de confidentialité, d'intégrité et de disponibilité. Au-delà d'un certain seuil de longueur de mot de passe, la confidentialité et l'intégrité ne s'améliorent pas statistiquement, tandis que la disponibilité diminue en raison d'une mauvaise utilisation. Un système auquel vous ne pouvez pas vous connecter est tout aussi indisponible que celui qui est en panne.
Si vous forcez votre utilisateur à taper un mot de passe de 22 caractères composé de toutes les lettres, chiffres et symboles aléatoires et mixtes, vos utilisateurs seront plus sujets aux erreurs. Considérez qu'un utilisateur peut être stressé pour répondre immédiatement à une situation critique. L'effondrement d'un mot de passe long peut entraîner un verrouillage de 3 tentatives et prendre tellement de temps à l'utilisateur pour réinitialiser qu'il ne peut pas résoudre la situation en temps opportun, et une catastrophe se produit. Ce long mot de passe a empêché la disponibilité; au lieu de protéger l'organisation, elle lui a fait du tort.
Combien de temps vos utilisateurs perdent-ils à saisir des mots de passe? Plus le mot de passe est long, plus l'entrée est lente. Soustrayez cette dépense tout de suite. Cela fait partie du coût de la sécurité, de l'argent qui aurait pu être dépensé ailleurs. Un mot de passe de 100 caractères vous coûterait plus qu'un mot de passe de 20 caractères, tout en n'entraînant aucune diminution mesurable du risque. Le temps et l'argent sont des atouts, et un mot de passe trop long les dépense sans produire d'avantages supplémentaires.
Avec tout cela, suis-je en faveur d'une mauvaise sécurité des codes PIN à 4 chiffres, afin que les utilisateurs soient plus rapides, plus heureux et commettent moins d'erreurs? Bien sûr que non. Ce que vous devez faire est d'équilibrer l'entropie fournie par le mot de passe avec la psychologie de son utilisation.
Bien que la plupart des utilisateurs ne puissent pas se souvenir d'un mot de passe de 12 caractères composé de 70 lettres, chiffres et symboles, ils pourraient probablement se souvenir d'une phrase secrète de cinq mots; alors envisagez une approche diceware pour obtenir une entropie similaire. Cinq mots aléatoires mais familiers sont probablement plus faciles à retenir et à taper que 12 symboles aléatoires tout en fournissant des quintillions de combinaisons possibles; six mots de diceware offrent encore plus de sécurité que les mots de passe à 12 caractères.
S'il doit s'agir de caractères pour une raison quelconque, assurez-vous de les choisir dans l'ensemble de caractères non ambigus. Ne forcez pas l'utilisateur à danser sur la touche Maj ou ne tapez pas de symboles aléatoires. Si vous avez besoin de l'entropie à partir d'un mot de passe de 12 caractères aléatoires qui tire de [az] [AZ] [0-9] [! - *], vous pouvez atteindre un niveau d'entropie similaire en utilisant simplement [az] et en l'étendant à 15 caractères .
Ou envisagez d'autres outils, tels que les jetons d'authentification, la biométrie ou les cartes à puce, et demandez à ceux-ci de compléter un code PIN plus court.
Les systèmes de sécurité doivent être utilisables, sinon ils interfèrent avec l'organisation à son détriment.
Des mots de passe de plus en plus longs ne deviennent pas dangereux, mais à un moment donné ils cessent de devenir plus sûrs.
Sur la base des hypothèses que vous mentionnez, il semble probable que le mot de passe soit vraiment aléatoire et stocké en utilisant bcrypt (stockage de mot de passe de pointe). Bcrypt a un limite de longueur compris entre 50 et 72 caractères, selon l'implémentation. Ainsi, un mot de passe plus long que celui-ci ne sera pas autorisé, haché en utilisant uniquement les N premiers caractères, ou quelque chose de similaire. Fondamentalement, plus ce ne sera pas mieux (mais ce ne sera pas pire).
On pourrait également affirmer qu'une fois le mot de passe sécurisé contre une attaque par force brute contre le hachage de mot de passe jusqu'à la fin de l'univers, l'allonger ne le rend pas plus sûr. Même si vous faites des hypothèses folles sur le matériel d'un attaquant, un mot de passe vraiment aléatoire avec 20-30 caractères sera sécurisé jusqu'à la fin de l'univers. Par conséquent, un mot de passe plus long ne sera pas plus sûr.
Un cas où un mot de passe plus long peut être en fait plus faible que prévu est celui des systèmes qui tronquent la chaîne que vous entrez comme mot de passe. Considérer
passwordsogoodtahtittakestrillionyearstobreakitgoaheadtryme
Ce mot de passe est extrêmement bon1 sauf quand vous avez un système qui le voit réellement comme
password
car il n'accepte que 8 caractères. Le reste est silencieusement jeté donc vous tapez toujours passwordsogoodtahtittakestrillionyearstobreakitgoaheadtryme
, le système accepte password
et tout le monde est content.
Y compris le pirate qui essaie cette combinaison en premier.
1oui, aussi parce qu'il a des mots de dictionnaire qui le rendent plus facile à retenir que certains triades inutiles de majuscules-chiffres spéciaux promus par des consultants en sécurité mathématiquement
Je vois quelques commentaires y faire allusion, mais aucune réponse ne l'indique clairement, je vais donc l'ajouter ici.
Oui, il y a une limite à la longueur que vous pouvez ajouter à un mot de passe avant de ne plus en obtenir plus de sécurité si le mot de passe est haché (et espérons qu'il l'est). En effet, un attaquant n'a pas besoin de connaître votre mot de passe, il n'a besoin que de connaître une chaîne qui hache vers la même sortie. Par conséquent, si vous avez un mot de passe avec plus d'entropie que la sortie de l'algorithme de hachage, il y aura presque certainement une chaîne plus courte qui produira la même sortie en raison des collisions de hachage. À ce stade, peu importe combien de temps vous créez le mot de passe, vous n'obtiendrez toujours que la même entropie de sortie.
Cela signifie bien sûr que l'attaquant devrait forcer le hachage brutalement jusqu'à ce qu'une collision soit trouvée, ce qui sera pratiquement impossible pour des hachages cryptographiques sécurisés, mais vous avez demandé une limite théorique, pas pratique.
La limite de Landauer spécifie le nombre théorique maximal possible de changements sur un seul bit que vous pouvez effectuer avec une quantité d'énergie donnée. Disons que vous avez accès aux 20 centrales électriques les plus puissantes au monde, toutes fonctionnant à pleine capacité pendant 100 ans. Cela vous donnerait 5 * 10 ^ 20 joules d'énergie pour faire vos calculs. Supposons que vous ayez un ordinateur moderne qui ne consomme qu'un million de fois autant d'énergie que théoriquement nécessaire. Avec autant d'énergie, ce bon ordinateur refroidi à -270 degrés Celsius, les lois de la physique disent que vous ne pouvez travailler qu'avec 2 ^ 124 combinaisons d'entrées.
Si vous êtes prêt à détruire complètement la planète entière, à la convertir avec une efficacité parfaite en énergie, et à faire refroidir à nouveau un ordinateur qui fonctionne à la limite de Landauer à -270 degrés Celsius, alors vous pouvez énumérer 2 ^ 213 combinaisons d'entrée possibles.
Si vous pouvez d'une manière ou d'une autre détruire toute la matière dans l'univers entier et récolter toute l'énergie sombre, alors votre ordinateur théoriquement parfait ne peut toujours fonctionner que par 2 ^ 233 combinaisons.
Par conséquent, 2 ^ 233 combinaisons est le point auquel une attaque par force brute n'est plus garantie de réussir avec un investissement suffisant en temps et en énergie. Il n'y a aucun investissement possible assez grand.
Il y a toujours de la chance. Peu importe le nombre de bits dont vous disposez, il est possible qu'une supposition soit correcte. On choisit donc un risque acceptable. Il n'y a aucun moyen d'obtenir un risque nul et aucun moyen de définir "acceptable" en termes universels.
Théoriquement, un ordinateur de la taille de la Terre et fonctionnant à la limite de Bremermann pour la vitesse de calcul casserait un mot de passe de 256 bits en moins de deux minutes. Cependant, comme on vient de le calculer, la puissance dans l'univers est insuffisante pour faire cet effort. Le temps qu'il faut pour craquer avec un équipement théoriquement idéal ne nous donne pas de limite "acceptable".
Le président Obama a ordonné la création d'un ordinateur exaflop d'ici 2025, espérant que ce sera l'ordinateur le plus rapide au monde lors de sa construction. Quelle chance un ordinateur exaflop a-t-il de casser un mot de passe de 2 ^ 233 bits dans les 5 milliards d'années qui restent avant l'explosion du Soleil? Eh bien, c'est 1,6 * 10 ^ 34 suppositions ou moins de 2 ^ 114 suppositions. C'est une chance sur 2 ^ 119 (6 * 10 ^ 35) de casser le mot de passe avant que le Soleil n'explose.
Acceptable? Qui doit dire? Il est très difficile de mettre ces chances en perspective car elles sont si peu probables. Gagner le jackpot de loterie cette semaine, la semaine prochaine et la semaine suivante également? Bien plus probable que de casser le mot de passe avant que le Soleil n'explose dans cinq milliards d'années.
233 bits d'entropie peuvent être représentés avec 36 caractères tirés des 95 caractères imprimables de US-ASCII. Un attaquant ne peut garantir de casser un tel mot de passe par la force brute, même en utilisant toutes les ressources de l'univers entier pour le faire, et les chances qu'ils le fassent en utilisant uniquement la technologie existante aujourd'hui sont très très faibles.
C'est la seule limite que je connaisse qui est imposée non pas au choix de l'algorithme ou à la personne qui doit se souvenir du mot de passe mais par les lois physiques réelles de l'univers.
Par défaut, la réponse à une question de la forme peut [mauvaise chose XYZ] arriver avec des mots de passe est oui. Il y a toujours une place pour des commentaires spécifiques, mais le fait demeure que les mots de passe sont l'une des tâches de sécurité les moins naturelles confiées à une personne, et cette personne privilégiera presque certainement l'efficacité par rapport à la sécurité.
Si vous choisissez un mot de passe long qui ne figure pas dans un dictionnaire, il est probable que le mot de passe soit une chaîne aléatoire de caractères difficiles à retenir. En conséquence, l'utilisateur devra trouver des raccourcis pour utiliser son système sans trop de soucis (pour les utilisateurs, la sécurité est normalement un obstacle pour réaliser les tâches qui ont réellement de la valeur): écrivez-le, conservez-le dans le presse-papiers, branchez un dong USB qui tape automatiquement le mot de passe ... vous le nommez.
La bande dessinée Battery Horse Staple XKCD est devenue célèbre pour produire des mots de passe plus longs qui sont plus mémorables, mais, par conséquent, mettez correcthorsebaterrystaple dans chaque dictionnaire. Donc, en général, il est difficile de produire des mots de passe longs utilisables.
Voilà pour la responsabilité pratique. Voyons maintenant quelques chiffres. Supposons que vous ne stockiez pas votre mot de passe en texte clair, mais vous le hachez et le salez. En général, disons qu'il n'y a pas de moyen plus simple de casser le stockage de mot de passe que d'obtenir une collision pour le mot de passe stocké. Dans ce cas, chaque hachage de mot de passe aura une longueur fixe: disons 256 bits pour SHA-256. Ensuite, vous avez au plus 2256 valeurs à stocker. Certes, c'est beaucoup, mais c'est aussi votre "limite". Si vous stockez des mots de passe avec plus de 256 bits d'entropie, vous ne conserverez cette entropie supplémentaire nulle part. Ce n'est pas moins sûr, mais, comme l'a souligné la réponse de Neil en ce qui concerne bcrypt, il n'y aura aucun gain avec des mots de passe plus longs.
Oui, il y a un cas où un mot de passe plus long est moins sûr, mais personne ne devrait utiliser les mots de passe DES de toute façon ces jours-ci, car ils sont triviaux à craquer de toute façon. Certaines implémentations de DES était en fait moins sécurisé et utilisait moins d'entropie lorsque le mot de passe dépassait huit caractères! La solution de contournement consistait à tronquer le mot de passe à huit caractères avant le hachage. Si vous trouvez que quelqu'un utilise toujours DES les mots de passe basés sur le hachage ont également d'autres problèmes. Il est également théoriquement possible qu'une faille similaire affecte d'autres algorithmes de hachage de mot de passe (je pense que certaines versions de lanman avaient un problème similaire), mais la plupart des personnes qui conçoivent des hachages de mot de passe apprennent des leçons de historique et je ne connais pas de fonction de hachage de mot de passe publiée moderne avec ce problème.
Lorsque vous parlez de mots de passe, il est important de prendre en compte tous les vecteurs.
Par exemple, le mot de passe "mot de passe" prendra 2,17 secondes à la force brute. "p455w0rd" prend 29,02 secondes et "p455w0Rd!" prend 2,4 mois. Important: Parlait de forcer brutalement un mot de passe, ces trois exemples prendraient moins d'une seconde dans une attaque basée sur un dictionnaire.
En revanche, "thisisalongpassword" prend 2,5 millions de siècles, tandis que "th1sIs4l0ngPa55w0rd" prend 36,72 siècles. Cependant, en utilisant le mot de passe plus complexe, vous augmentez le risque que quelqu'un écrive sur un pense-bête et le colle sur son moniteur.
Ainsi, alors qu'une plus grande entropie est meilleure du point de vue de la force brute, elle réduit la sécurité globale d'un système en augmentant le capot probable que les gens seront des gens et feront des choses peu sûres, augmentant ainsi la vulnérabilité d'autres vecteurs d'attaque.
Pour regarder un autre exemple, disons que vous forcez les utilisateurs à utiliser un mot de passe de longueur de phrase secrète. L'utilisateur choisit donc "tobeornottobe". Si un pirate utilisait la force brute seul, cela prendrait 9,85 mois. Mais parce qu'un pirate utilisera des attaques par dictionnaire et d'autres heuristiques, cela prendra probablement des menuets. Si le même utilisateur utilisait "2b0n2b", alors la force brute seule prendrait 0,02 seconde, mais les attaques par dictionnaire seraient inutiles. Le but est de trouver un juste milieu entre facile à retenir, force brute difficile et dictionnaire difficile. Si vous rendez votre politique de mot de passe éloignée de l'un de ces objectifs, vous avez affaibli le mot de passe global.
La réponse
Il n'y a pas de limite supérieure où plus d'entropie entraînera l'affaiblissement d'un mot de passe. Il y a une limite supérieure lorsque l'on parle de en utilisant un mot de passe dans le monde réel. La limite supérieure est le point où les utilisateurs du système ne peuvent plus utiliser le mot de passe sans utiliser des moyens non sécurisés pour s'en souvenir, vous ouvrant ainsi à d'autres vecteurs d'attaque.
Le temps de passe des mots de passe par force brute est basé sur https://www.grc.com/haystack.htm sur "Scénario d'attaque rapide hors ligne"
pas de limites, en fait. La limite serait possible pour un hachage faible connu où une attaque de substitution est bien documentée et mesurable.