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.
- L'utilisateur se connecte correctement -> OK
- Sinon, garder la session https et permettre à plus de 2 tente
- Utilisateur -> OK
- Sinon, il faut attendre 2 plus essaie avec une pause de 5 minutes devant eux
- Utilisateur -> OK
- L'utilisateur pauses session -> définir le drapeau
- 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
- L'utilisateur épuise la tente au-dessus: envoyer un email avec le lien; permettre à effacer le drapeau
- 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é
- 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:
- Quelles sont les autres différences/avantages de mon schéma par rapport à celui que j'ai décrit comme typique?
- Ne sera pas la plupart des sites de taille moyenne et les entreprises à mieux avec mon mot de passe système?
- 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.