web-dev-qa-db-fra.com

Si j'inclus un service de mot de passe oublié, alors quel est le point d'utiliser un mot de passe?

J'ai mis en place un service de mot de passe oublié de la manière suivante:

  1. L'utilisateur va à la page de connexion, clique sur "Mot de passe oublié?"
  2. L'utilisateur est présenté avec un formulaire qui demande leur adresse e-mail.
  3. Le courrier électronique est envoyé à l'adresse indiquée si dans la base de données, avec un lien contenant une chaîne (supposée) unique, longue et générée de manière aléatoire, qui est également stockée dans la base de données avec le temps requis, ce qui permet une limite de temps à définir. le lien (lequel il est)
  4. L'utilisateur clique sur le lien, il est validé, ils sont ensuite invités à fournir un nouveau mot de passe.

C'est assez standard (bien que je puisse changer de petits aspects de celui-ci), mais cela m'a rendu merveillé - puisque les bons mots de passe sont si rarement fournis/rappelés, pourquoi ne pas distribuer avec le mot de passe tout à fait et utiliser le système de mots de passe oublié à la place?

  1. L'utilisateur va à la page de connexion, remplit l'adresse e-mail (ou peut-être un nom d'utilisateur pour être plus sécurisé?)
  2. Le courrier électronique est envoyé avec le lien. Le lien a une limite de temps très courte (<5 minutes).
  3. Utilisateur clique ici, ils sont dans.

Dans les deux scénarios, la sécurité des e-mails de l'utilisateur - reniflé ou cassée à - est la menace courante, mais dans le deuxième scénario:

  • Le lien est valable pour un temps beaucoup plus court.
  • Il est également susceptible d'être utilisé plus rapidement (toute sorte d'email de validation peut être laissé seul, mais si vous voulez certainement vous connecter maintenant, vous allez utiliser ce lien lorsque vous l'obtenez).
  • L'utilisateur ne reçoit pas de mot de passe shoddy.
  • L'utilisateur doit seulement se souvenir d'un mot de passe.
  • Un seul compte ne peut pas être partagé entre plusieurs personnes (à moins qu'ils partagent une adresse électronique).
  • Une attaque automatisée doit être allongée dans le système de messagerie et attendre un email, ce qui est susceptible d'être plus long que l'attente qu'un mot de passe soit mal fabriqué, mieux que BCRYPT.

Je me demande simplement quels sont les inconvénients? Je vois:

  • Irritation de l'utilisateur, peut-être d'attendre un email ou de vous connecter à leur email aussi
  • Il ouvrirait probablement une nouvelle fenêtre de navigateur, qui peut être irritante si vous souhaitez organiser des onglets.
  • Un utilisateur peut se rendre compte qu'ils doivent protéger leur compte de messagerie avec un meilleur mot de passe, le changer, puis se verrouiller :-)

C'est juste une pensée.


Grâce à tous ceux qui ont mis une réponse, il y a des points vraiment intéressants (et définitivement valables) qui m'ont vraiment fait penser et me donner plus de domaines à enquêter. D.w. Obtient la tique à cause du lien fourni qui donne un aperçu de ce type de situation particulière, mais j'apprécie vraiment toutes les réponses données.

46
Iain

Cela semble être OpenID, mais pire:

Il hérite des problèmes suivants de OpenID:

  • Vous entrez votre mot de passe maître à chaque fois. Si vous êtes sur un ordinateur moins fiable, vous ne voudrez peut-être pas vous connecter à des comptes de sécurité basse sécurité et non dans votre courrier électronique.
  • Votre fournisseur de messagerie remarque chaque identifiant

Cela ajoute des inconvénients sur OpenID:

  • C'est plus de travail pour se connecter
10
CodesInChaos

Oui, du côté de la sécurité qui est raisonnable. (Bien que cela puisse avoir des descentes d'autres, d'autres ont souligné, comme l'utilisateur devait toujours utiliser le mot de passe principal.)

Mais Non, de perspective pratique qui gâcherait les choses. Beaucoup de choses qui ne peuvent pas être minimisées comme "irritation de l'utilisateur".

Par exemple, vous prenez l'hypothèse que les gens sont connectés à leur gmail ou à un tel moment. Vrai pour certains utilisateurs, peut-être même le plus, mais pas vrai pour beaucoup. Vous supposez également que les gens puissent facilement ouvrir des liens à partir de leur courrier électronique au même environnement que le navigateur n'est pas vrai pour de nombreux scénarios mobiles.

Le point sous-jacent est le suivant: Le courrier électronique et la navigation sont des systèmes distincts. Ils ne seraient pas ont Pour être, bien sûr, mais ils sont =. Cela signifie essentiellement juste qu'il existe un attente qu'ils sont séparés. Ainsi, les choses de l'ensemble de l'écosystème informatique sont conçues d'une manière qui s'attend à ce que ces systèmes soient séparés. Même si ce que vous faites serait un joli hack, vous ne pouvez pas simplement vous concevoir des choses d'ingorquer les hypothèses que le reste du peuple a fait. Si vous le faites, vous rencontrerez toutes sortes de problèmes que vous ne vous attendiez pas.

1
Ilari Kajaste

Cela ressemble beaucoup à - Browserid , dont le but est de simplement garantir que les utilisateurs possèdent les adresses électroniques qu'ils prétendent.

Il a l'avantage d'être surtout indolore (- même pour Devs ) mais l'inconvénient d'une faible adoption et d'essentiellement aucun partenaire de la Fédération. (Non pas qu'ils en ont réellement besoin pour que cela fonctionne, ma compréhension est qu'elle est entièrement fonctionnelle, avec chaque email déjà.)

0
quodlibetor