35 votes

Le code PIN à 5 chiffres est-il meilleur que la plupart des mots de passe?

C'est quelque chose qui m'énerve depuis de nombreuses années: pourquoi la plupart des services en ligne à forte valeur de l'entropie d'un mot de passe, la citant comme une mesure de sécurité, et de l'appliquer lorsque les utilisateurs sélectionnent un mot de passe?

J'ai décidé de venir avec cette question après avoir lu le livre "Faire des Web les mots de passe d'Accomplir Quoi que ce soit?" (et, bien sûr, classique de la bande dessinée Dilbert).

Le classique de la politique d'un site en ligne est d'exiger au moins 6 ou 8 chiffres, supérieure+minuscules+mot de passe numérique. Cette longueur est un peu pertinents pour la difficulté de l'attaque par force brute, par exemple de récupérer un mot de passe à partir de hachage. Mais la façon classique de deviner qui se passe en ligne, c'est que quelqu'un essaie de se connecter au serveur, qui est libre de refuser, après quelques tentatives.

Imaginons, par exemple, que nous sommes à protéger des moyennes de service avec un code PIN. On pense immédiatement à environ 4 chiffres ou 6 chiffres pins, mais que peut-être pas une bonne idée car trop de gens seront tentés d'entrer dans leurs anniversaires d'enfants, qui sont essentiellement un public de connaissances.

Donc, voici mes 5 chiffres du code PIN de la suggestion. Je garde pour chaque utilisateur une "attaque" pavillon.

  1. L'utilisateur se connecte correctement -> OK
  2. Sinon, garder la session https et permettre à plus de 2 tente
  3. Utilisateur -> OK
  4. Sinon, il faut attendre 2 plus essaie avec une pause de 5 minutes devant eux
  5. Utilisateur -> OK
  6. L'utilisateur pauses session -> définir le drapeau
  7. L'utilisateur sauts de session mais connecte normalement plus tard: le présent de l'utilisateur avec le dialogue et de permettre à effacer le drapeau
  8. L'utilisateur épuise la tente au-dessus: envoyer un email avec le lien; permettre à effacer le drapeau
  9. Si il y a plus de 100 drapeaux durant le mois, mondiale "attaque" drapeau qui exige que les personnes qui n'ont pas un cookie de répondre à des questions de sécurité
  10. Effacer automatiquement l'utilisateur drapeau dans certains cas (par exemple, l'utilisateur enfin connecté à partir de l'ordinateur)

Supposons que les noms d'utilisateur sont en quelque sorte connu (notez que ce ne sera pas vrai pour la plupart des sites). Une attaque par force brute contre un utilisateur est désespéré, vous êtes en lock-out au bout de 5 tentatives, alors vous avez un 1/200000 chance. Si vous essayez de deviner le mot de passe de plus de 200 fois en un mois, le drapeau s'éteint et vous n'obtenez rien. Si vous essayez <200 utilisateurs par mois, après un an, vous avez < 1% de chance de casser un utilisateur; vous êtes beaucoup mieux avec le phishing, les virus, l'ingénierie sociale ou autre chose.

La taille du site est pertinent seulement dans le sens de ne pas avoir de faux positifs, c'est les utilisateurs qui en ont réellement oublier leur mot de passe (disons 1% par mois), le récupérer, mais ne pas effacer le drapeau (disons 1% de celles-ci), et quand vous ne pouvez pas effacer le drapeau automatiquement (par exemple, 10% de celles-ci). Cela fait 10 prévu de faux positifs drapeaux par mois pour 106 utilisateurs --- ce qui signifie qu'un moyen site a une assez faible probabilité d'entrer dans la "panique" mode, qui de toute façon n'est pas mauvais.

Je crois que ce régime est très pratique. Voici quelques manifeste tout d'abord les faits à ce sujet (mises à jour):

  • avantage: Le code PIN est plus facile à retenir. Je crois que c'est un gros avantage car il est maintenant possible d'exiger que l'utilisateur se souvient du mot de passe que vous avez généré. Je crois que la plupart des gens sont beaucoup mieux se souvenir de 5 chiffres aléatoires que tout autre type de mot de passe aléatoire.
  • compromis: le Hachage ne va pas aider beaucoup si votre attaquant connaît à la fois le PIN hachés et le sel. Cela est possible si quelqu'un fait irruption dans votre base de données et apprend quel est votre processus de salage. Cependant, je crois que le mot de passe standard de l'entropie n'aide pas dans ce cas non plus.
  • avantage: les gens sont beaucoup plus heureux souvenir aléatoire de 5 chiffres, qu'au hasard des mots de passe alphanumériques; par conséquent, il est beaucoup plus facile pour nous oblige également à générer le mot de passe, pas l'utilisateur. Ceci élimine dictionnaire/données personnelles des attaques.

Mes questions sont les suivantes:

  1. Quelles sont les autres différences/avantages de mon schéma par rapport à celui que j'ai décrit comme typique?
  2. Ne sera pas la plupart des sites de taille moyenne et les entreprises à mieux avec mon mot de passe système?
  3. Quelles sont les raisons de choisir le régime qu'ils ont?

Note: je ne défends pas toujours avoir les mots de passe courts. Mon propre web les mots de passe sont généralement générés aléatoirement et cryptées par un gestionnaire de mot de passe (1Password) avec 12 caractères à haute entropie mot de passe. Mais je pense que souvent le schéma ci-dessus serait mieux que ce que nous avons dans la pratique.

42voto

Ksempac Points 1398

Non, tu te trompes. Les attaques par force Brute est une chose, mais le vrai danger est de "Rainbow Tables" qui, à partir d'une valeur de hachage, vous donne le mot de passe en clair.

D'abord vous n'avez jamais jamais stocker quoi que ce soit sous forme de texte brut. Si quelqu'un manquement à la sécurité de votre (ou même si un employé a l'intention de nuire) vous ne voulez pas exposer des utilisateurs de mot de passe. Si vous utilisez un salé correctement de hachage.

Puis, avec un 5-digit PIN, c'est trop court pour protéger avec de hachage. Il y a des rainbow tables (ou même des recherches effectuées sur Google) qui permettent à quelqu'un pour obtenir le mot de passe, si ils obtiennent la valeur de hachage.

14voto

merkuro Points 4077

Gardez à l'esprit qu'un utilisateur malveillant de 3.000 tentatives peuvent réussir à bloquer 1.000 comptes en quelques minutes. Une autre chose est qu'il peut améliorer les chances de succès de la connexion en essayant de milliers de comptes un jour. Est OpenID n'est pas une option?

Mise à jour

Juste eu un peu d'inspiration sur les 5 chiffres de la chose. Si le code à 5 chiffres (10^5=100.000) sont vraiment facile à retenir et sécuritaire en même temps, ce à propos de ces cas:

4 letters all lowercase (26^4 = 456.976) => abcd
3 letters with mixed cases (52^3 = 140.608) => aBc
3 letters lowercase + numbers (36^3 = 46.656) => ab1

2voto

Juergen Points 4839

Méfiez-vous de la session de la manipulation

Je ne sais pas trop sur le gestionnaire de session, mais autant que je sais, c'est la plupart du temps fait à l'aide des cookies. Lorsque vous avez un régime comme le vôtre, il est nécessaire d'écrire de fausses tentatives dans la base de données ou dans des fichiers sur votre serveur, puisque vous ne pouvez pas compter sur le gestionnaire de session (dans votre description, il semble un peu comme vous l'avez peut "tenir la session" pour avoir toute la vérité...) -- depuis les sessions sur internet sont très vulnérables. C'est juste une construction de cookies (qui peut être supprimé) et/ou les noms de page (ceux-ci peut être altérée). La seule chose que vous pouvez compter sur, c'est que l'utilisateur détient toujours la session -- on ne peut pas vraiment identifier si certains (seamingly) nouvelle connexion n'est pas votre ancien utilisateur ...

Spécialement, il ne fait pas de sens de distinguer "l'Utilisateur a toujours la session" et "Utilisateur sauts de session" (votre point 7) c'est juste un neglectible différence et peut aussi devenir un trou de sécurité.

Se souvenir n'est pas vraiment plus facile

Vous dire aussi, que se souvenir de 5 chiffres sont plus facile. Qui pourrait être bon pour votre carte de crédit ou carte de banque (en Allemagne, nous avons à 4 Broches) numéro de sécurité, mais pour les sites web, vous avez toujours le problème, que ceux de nombreux sites web ont des mots de passe. Pour se souvenir des dizaines de 5 chiffres est aussi difficile que beaucoup de mots de passe.

2voto

John Rasch Points 28874

Je ne comprends toujours pas pourquoi les gens de limite de longueur de mot de passe à tous. Ne serait-il pas plus facile pour moi de vous rappeler une phrase ou une phrase? Par exemple, je pourrais avoir besoin de mon mot de passe pour être "this is my stackoverflow password". J'aurais quelques sérieux problèmes de mémoire si j'ai oublié que. Sa longueur est de 34 caractères et utilise uniquement un alphabet de 27 caractères, mais encore serait quasiment impossible de renverser la table de hachage (4,6 x 1048 permutations possibles).

Combiné avec vos idées à propos de cette "attaque " drapeau" et le bon salage/techniques de hachage, ce serait une solution idéale à mon avis.

1voto

Matthew Whited Points 12255

Les mots de passe avec des hachages salés sont les meilleurs. Le sel empêche la plupart des attaques arc-en-ciel et un mot de passe est beaucoup plus difficile à utiliser. Même avec une attaque par dictionnaire, il serait plus probable d’obtenir des résultats plus rapides sur une NIP à 5 chiffres que sur un mot de passe de longueur similaire.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X