web-dev-qa-db-fra.com

Deux mots de passe pour un compte

Serait-ce une bonne idée si vous aviez un compte qui nécessiterait deux mots de passe différents?

Par exemple, vos informations de connexion étaient:

email: [email protected]
password 1: P4$$w0rd1
password 2: HereIsMySecondPassword

Désormais, lorsque l'utilisateur se connecte à mon site, il doit saisir les deux mots de passe. Serait-ce une meilleure idée qu'un seul mot de passe plus fort? L'utilisateur peut choisir deux mots de passe dont il se souvient plus facilement qu'un seul fort.

27
Lexu

Pas vraiment. Il s'agit essentiellement d'un mot de passe, en appuyant sur la touche de retour comme un caractère.

Cela ajoute de la complexité au processus de connexion, ce qui n'est généralement pas une bonne chose (les utilisateurs choisiraient probablement un bon mot de passe et un mot de passe rapide à taper). N'oubliez pas la règle de @ AviD: "La sécurité au détriment de la convivialité, se fait au détriment de la sécurité"

Selon la façon dont les mots de passe étaient stockés, ils réduiraient légèrement la capacité des attaquants à créer des comptes de force brute, car un attaquant devrait casser les deux parties. Je doute cependant que cela équilibre le problème de l'utilisabilité.

91
Matthew

J'ai vu des sites bancaires où un utilisateur est tenu de répondre à 2 questions de sécurité (choisies au hasard parmi un ensemble de 5 questions prédéterminées, au moment de la création du compte).

Le fait est que si un mot de passe peut être compromis (soit sur le devant de l'utilisateur, soit à cause de failles du site Web), quelle est la probabilité que le deuxième mot de passe reste sécurisé? Si le site Web peut utiliser un meilleur algorithme de cryptage pour l'un des mots de passe, pourquoi ne pas l'utiliser pour un seul mot de passe?

Je suppose qu'une meilleure option est que l'utilisateur peut concaténer les 2 mots de passe pour créer un mot de passe beaucoup plus fort. Par exemple, la définition de 2 mots de passe "aBcD" et "eFgH" peut être piratée en quelques minutes (ou heures), mais un mot de passe comme "aBcDeFgH" nécessiterait beaucoup plus de temps pour se casser d'un hachage.

30
pri

Un inconvénient qui n'est pas encore mentionné dans les autres réponses, est qu'un tel schéma va probablement vaincre certains gestionnaires de mots de passe populaires.

Comme vous devriez encourager vos utilisateurs à utiliser des gestionnaires de mots de passe, afin qu'ils puissent utiliser de longues séquences de caractères complètement aléatoires comme mot de passe, c'est probablement une mauvaise idée.

23
Ben

Un tel système pourrait avoir certains avantages si (1) les deux mots de passe ont été choisis indépendamment, et (2) la politique de verrouillage pour les tentatives incorrectes sur le deuxième mot de passe était plus stricte que celle du premier.

Avoir une politique de verrouillage assez stricte pour les tentatives de mot de passe incorrectes peut améliorer considérablement la résistance aux attaques par force brute, mais facilite également considérablement les attaques par déni de service. Si un compte est bloqué pendant 30 minutes après trois tentatives de mot de passe incorrectes, quiconque connaît l'ID de compte peut rendre très difficile l'accès d'un utilisateur légitime en soumettant trois fausses tentatives de connexion toutes les 30 minutes.

S'il y a un mot de passe en deux parties et que le verrouillage n'est applicable qu'aux tentatives d'entrée où le premier mot de passe est correct, il serait alors nécessaire de violer le premier mot de passe afin de mener même une attaque par déni de service. De plus, la recherche de l'espace clé pour le deuxième mot de passe serait beaucoup plus lente que pour le premier. De plus, tout en avertissant un titulaire de compte de mots de passe primaires incorrects répétés produirait de nombreuses fausses alarmes auxquelles le titulaire de compte ne pourrait rien faire, notifier au titulaire de compte des mots de passe de compte secondaire incorrects pourrait être beaucoup plus utile. Si Adam Baker reçoit une notification indiquant qu'une tentative a été faite de se connecter à son compte avec un mot de passe principal correct mais un mot de passe secondaire incorrect et qu'Adam lui-même n'était pas responsable de cette tentative d'accès, il saura que son mot de passe principal a été violé et pourra peut-être pour agir avant que l'escroc ne puisse violer le deuxième mot de passe.

6
supercat

L'utilisation de 2 mots de passe n'est pas meilleure qu'un mot de passe car les principaux problèmes avec les mots de passe ne sont pas résolus. 2 mots de passe ne vaincront pas les enregistreurs de frappe ou n'empêcheront pas les crackers de récupérer correctement les mots de passe à l'aide des tables Rainbow. De plus, deux mots de passe sont plus difficiles à mémoriser qu'un seul.

4
GdD

Une faiblesse supplémentaire de ce système de mot de passe est qu'il rend le système beaucoup plus vulnérable au cracking de hachage par force brute par des techniques telles que Rainbow tables . Cela peut se produire si votre base de données de hachage de mot de passe a été divulguée d'une manière ou d'une autre.

Si un attaquant a eu accès à la base de données de mots de passe hachés, les deux mots de passe doivent être stockés séparément sous forme de deux hachages (car les stocker ensemble empêche la comparaison directe de chaque mot de passe). Cela réduit donc considérablement l'entropie de chaque hachage, permettant à un attaquant de casser facilement les deux hachages beaucoup plus rapidement qu'il ne le faudrait pour casser un seul hachage du concaténé mots de passe.

Si les deux mots de passe sont de longueurs égales et proviennent du même pool, le temps nécessaire pour craquer deux hachages isolément prend la moitié du temps exponentiel (c'est-à-dire si le craquage du hachage complet prend 1 000 000 000 000 d'essais, il ne faudrait que 1 000 000 essais pour craquer chacun sous-hachage).

Une bonne étude de cas est le hachage NTLM utilisé dans Windows XP et ci-dessous, qui a un défaut de conception très similaire au système de mot de passe mentionné. Un mot de passe relativement fort est divisé et stocké sous la forme de deux hachages séparés, ce qui affaiblit considérablement le mot de passe.

Même les ordinateurs d'il y a 10 ans pouvaient facilement cracker la grande majorité des hachages NTLM en quelques jours sans utiliser les tables Rainbow, et avec les tables, le cracking est presque instantané.

enter image description here

3
March Ho

J'ai vu cela avec le deuxième mot de passe utilisé (1) pour ne pas se connecter, mais pour effectuer une action majeure dans le compte, par exemple une transaction monétaire; (2) de type différent du premier mot de passe, par ex. le premier mot de passe est un texte constant, le deuxième mot de passe provient d'un bloc unique ou d'un message SMS. Utilisé de cette façon, cela semblait être une bonne idée.

Cela pourrait être utilisé pour se connecter, si le compte contient des données très sensibles et que la connexion n'est pas souvent utilisée, mais de cette façon, cela ne semble pas être une bonne idée.

L'utilisation d'un mot de passe de texte constant pour se connecter et d'un autre mot de passe de texte constant pour effectuer des actions majeures pourrait est logique dans certaines circonstances, mais beaucoup moins qu'avec un mot de passe secondaire à usage unique.

L'utilisation de deux mots de passe à texte constant uniquement pour se connecter offre très peu d'avantages par rapport à un mot de passe plus long, et présente également certains inconvénients majeurs, selon les autres réponses.

3
Eugene Ryabtsev

Une méthode courante utilisée par les banques est un code PIN et un mot de passe. puis des caractères aléatoires dans un ordre aléatoire sont demandés, par ex. entrez le numéro 3 1 2 de votre code PIN et entrez les caractères 3 9 5 de votre mot de passe ... cela rend plus difficile pour les enregistreurs de frappe d'obtenir des informations, mais cela nécessite une méthode de 2 mots de passe pour éviter que des attaques aléatoires ne se produisent, ainsi qu'un fail2ban , respectivement.

donc la réponse est non, ce n'est pas une mauvaise idée mais rien n'est une mauvaise idée, c'est l'implémentation qui la rend géniale ou une erreur.

2
TheHidden