Question:
Pourquoi devriez-vous rediriger l'utilisateur vers une page de connexion après une réinitialisation du mot de passe?
Adam Parkin
2015-11-10 19:57:05 UTC
view on stackexchange narkive permalink

La Aide-mémoire OWASP Mot de passe oublié suggère:

Chaque fois qu'une réinitialisation de mot de passe réussie se produit, la session doit être invalidée et l'utilisateur redirigé vers la page de connexion

Je ne comprends pas pourquoi c'est si important. Existe-t-il une base de sécurité pour cette recommandation et si oui, de quoi s'agit-il?

C'est peut-être juste un point mineur et pas si important, mais cela empêche l'utilisateur d'entrer ses détails ailleurs ... ils font parfois des trucs dingues comme ça
Je peux donc stocker le nouveau mot de passe dans mon gestionnaire de mots de passe :)
Cela dépendrait du mécanisme de réinitialisation du mot de passe. Un utilisateur qui réinitialise son mot de passe parce qu'il ne se souvient pas du mot de passe n'aurait normalement pas de session puisqu'il n'est pas connecté. OMI il pourrait y avoir un problème dans la façon dont la phrase est libellée si "la" session se réfère à des sessions créées par d'autres utilisateurs sur le même compte.
J'aurais pensé que c'était une chose UX, donc il est plus rapide de mettre le nouveau mot de passe.
C'est une vieille question, mais je suis curieux de savoir si cela est implémenté dans les applications d'identité telles que Ping Identity, Oracle Access Manager, WSO2 Identity Server, Okta, etc.?
Neuf réponses:
Jay
2015-11-10 20:03:06 UTC
view on stackexchange narkive permalink

Disons qu'un attaquant a votre mot de passe. Vous vous connectez et le réinitialisez. Si la réinitialisation n'invalide pas toutes les sessions existantes, l'attaquant a toujours accès, tant qu'il ne laisse pas sa session expirer.

La réinitialisation n'a en fait rien accompli dans ce scénario.

En fonction de ce que fait le site, il peut également y avoir des problèmes pour vous connecter avec un mot de passe qui est maintenant obsolète. Disons que votre mot de passe est utilisé pour déverrouiller quelque chose, vous êtes connecté avec "password1", mais le serveur a maintenant votre mot de passe enregistré en tant que "password2", que se passe-t-il? C'est évidemment hypothétique, mais j'espère que cela illustre ce point.

Redirection vers l'écran de connexion, je suppose, n'est qu'une recommandation. Je ne sais pas pourquoi il est important de savoir où vous envoyez l'utilisateur, mais du point de vue de la convivialité, il est plus logique d'envoyer l'utilisateur vers une page de connexion plutôt que vers la page d'accueil.

Je suppose que la raison de les renvoyer à l'écran de connexion est en fait de faire comprendre à l'utilisateur qu'il doit se reconnecter.
Pourquoi envoyer l'utilisateur à l'écran de connexion, au lieu de ... l'envoyer * via * l'écran de connexion et de le reconnecter? Je comprends la suggestion d'invalider les sessions existantes, cela semble raisonnable, mais * "J'ai tapé mon nouveau mot de passe complexe deux fois et vous ne savez toujours pas qui je suis et vous voulez immédiatement que je le ressaisisse" * est une expérience utilisateur très frustrante .
Authentification à deux facteurs @TessellatingHeckler? Programmation plus simple? Un jour, le mot de passe aura disparu depuis longtemps et nous n'aurons plus jamais de tels problèmes.
@nocomprende peut-être la même `` programmation plus simple '' qui donne naissance au modèle plus tôt dans la séquence de réinitialisation du mot de passe où vous essayez de vous connecter à l'infini, renoncez à essayer de vous souvenir, cliquez pour réinitialiser votre mot de passe et sont présentés avec un formulaire disant "entrez votre nom d'utilisateur ou adresse e-mail ", et pensez *" Bonjour? Je viens de soumettre mon nom d'utilisateur * une dizaine de fois, ne pouvez-vous pas le suivre lors d'un changement de page? "*
L'invalidation de toutes les sessions actives garantit également que si l'attaquant est celui qui change le mot de passe (s'il a obtenu votre mot de passe actuel), l'utilisateur légitime est informé de ce fait. Mais cela ne rend toujours pas nécessaire pour la session dans laquelle le mot de passe a été changé. Cela aide bien sûr avec les sessions détournées.
Ce que vous écrivez dans le premier paragraphe et sur quoi repose votre premier point (... invalider ** toutes les sessions existantes **) n'est pas ce qui est écrit dans la feuille de triche OWASP (** la session ** doit être invalidée).
Le fait que l'utilisateur se connecte n'invalide pas les sessions existantes.
Hmm, j'ai manqué la dernière phrase ... en fait, cela empêche les personnes qui se sont connectées sous votre mot de passe / session précédemment utilisé d'utiliser votre compte.
Comme je l'ai déjà dit, toutes ces choses que vous avez énumérées peuvent facilement être faites sans aller à la page de connexion. Donc, en supprimant tout ce qui ne répond pas à la question, cela se résume à votre dernier paragraphe: "Aucune idée, je suppose que c'est une recommandation pour la convivialité." Êtes-vous sûr de ne trouver * aucune * raison liée à la sécurité? Ou du moins expliquer pourquoi c'est une bonne convivialité?
-1 Cela ne répond pas vraiment du tout à la question! Voir le commentaire d'@TessellatingHeckler's. (seulement je ne peux pas -1 avec mon représentant, désolé).
@TomášZato Je pense que ce qu'il voulait dire était plus comme "après une réinitialisation du mot de passe * toutes les * sessions sont terminées, forçant ainsi une nouvelle connexion, et donc une redirection vers la page de connexion" au lieu d'impliquer que la connexion à nouveau effectue comme par magie alter-session terminaisons. Au moins, c'est ainsi que les systèmes que j'écris traitent la réinitialisation de pw - la dernière étape de l'action de réinitialisation consiste à mettre fin à toutes les sessions en cours de cet utilisateur, il ne reste donc plus rien à faire à part rediriger vers une page de connexion.
SilverlightFox
2015-11-10 20:16:02 UTC
view on stackexchange narkive permalink

Protéger les sessions sur un compte potentiellement compromis

Il n'est pas nécessaire de rediriger vers la page de connexion si la gestion de session lors du changement de mot de passe est effectuée en toute sécurité. Autrement dit, tant que tous les identifiants de session en cours sont invalidés et que la session en cours est attachée à un nouvel identifiant de session (généralement émis sous forme de jeton dans un cookie d'authentification - le cookie est uniquement envoyé à la session qui vient de changer le mot de passe), alors là il n'y a aucun risque qu'un attaquant qui est déjà dans le compte reste connecté.

Article OWASP

La justification de l'article OWASP est expliquée ci-dessous. Il n'y a rien de mal avec l'aspect sécurité de celui-ci, mais il y a quelques problèmes d'utilisabilité.

La fonctionnalité de réinitialisation du mot de passe est souvent utilisée lorsqu'un utilisateur souhaite sécuriser son compte.

En invalidant tout sessions existantes lors de la réinitialisation du mot de passe, le système s'assure que seule la personne avec le nouveau mot de passe peut se connecter.

Disons, par exemple, qu'un attaquant qui a obtenu l'accès au compte en utilisant l'ancien mot de passe est connecté . La réinitialisation de toutes les sessions déconnectera l'attaquant.

Pourquoi déconnecter l'utilisateur actuel, je vous entends demander?

Eh bien, disons que l'attaquant utilise la session de l'utilisateur actuel, disons en utilisant une vulnérabilité de fixation de session. Cela signifie que l'attaquant a la même session que l'utilisateur réel. La réinitialisation de la session en cours garantira également que personne n'est sur le compte qui n'est pas censé y avoir accès.

La redirection vers la page de connexion dans votre devis ci-dessus décrit vraiment le fait que vous devez déconnecter l'utilisateur des sessions en cours et de toutes les sessions (mais il n'y a aucun risque de vous empêcher de les déposer dans une nouvelle session avec un nouvel identifiant).

Comment invalider les sessions en cours et le mettre dans une nouvelle nécessite-t-il d'envoyer l'utilisateur à la page de connexion?
Je ne pense pas que ce soit le cas tant que la session actuelle et toutes les autres sessions sont invalidées. La création d'une nouvelle session, avec une nouvelle valeur de jeton de session pour le client actuel, répondrait aux exigences de sécurité ci-dessus et soumettrait un attaquant qui a monté la session ou obtenu le mot de passe précédent.
Parce que si vous venez de les déconnecter, ils voudront se reconnecter!
John Biddle
2015-11-11 00:28:52 UTC
view on stackexchange narkive permalink

Les autres réponses sont probablement plus correctes d'un point de vue netsec, mais je voulais ajouter que vous pouvez également vous assurer que l'utilisateur est réellement capable de se connecter avec son nouveau mot de passe. Cela rend évident si quelque chose ne va pas, comme le navigateur remplissant automatiquement un ancien mot de passe.

Il empêche également les utilisateurs d'utiliser la réinitialisation du mot de passe comme connexion. Sur l'un de mes comptes, il est plus facile de répondre aux questions de sécurité que de me souvenir du mot de passe, car je dois définir un mot de passe unique à chaque fois que je le réinitialise et que je ne m'en souviens plus.

Oui, le "OhNoSecond" où vous vous rendez compte que vous avez mal saisi votre mot de passe en le réinitialisant et que vous n'avez plus aucune idée de ce que c'est, est l'une des expériences formidables et époustouflantes de l'informatique. Comme regarder dans votre voiture verrouillée pour voir les clés sur le siège conducteur.
@nocomprende Mais si seules les portes de voiture avaient une réinitialisation par e-mail
Je ne sais pas comment je verrouillerais ma clé dans ma voiture; vous avez besoin de la clé pour le verrouiller!
@Alex Easy. Verrouillez la porte, mettez votre clé dans la voiture, fermez la porte. Les gens le font tout le temps. Ou y a-t-il quelque chose en particulier dans votre voiture qui empêche cela?
+1 Cela répond en fait à la question (contrairement aux deux réponses plus votées).
Très bon point - semble peu pratique, mais reconfirme en fait l'intention de l'utilisateur
Deduplicator
2015-11-11 10:26:31 UTC
view on stackexchange narkive permalink

Il n'y a qu'une seule raison possible liée à la sécurité pour vous envoyer à la page de connexion, car toutes les anciennes sessions peuvent être invalidées et votre session active actuelle dont vous avez changé le mot de passe est remplacée automatiquement:
Cela rend l'utilisation de la réinitialisation du mot de passe pour la connexion plus fastidieuse, ce qui vous fait moins souvent l'utiliser, et la protège ainsi contre les écoutes clandestines et la divulgation accidentelle.

Il y a aussi une raison d'utilisation pour vous y envoyer: Cela garantit que vous pouvez réellement utiliser le nouveau mot de passe, et tout cache de mot de passe dans le navigateur est mis à jour.

@Calimo La réponse acceptée ne donne pas réellement de raison de rediriger vers la page de connexion; cela donne une raison de faire quelque chose qui est lié du point de vue du programmeur, mais qui semble complètement différent pour l'utilisateur.
supercat
2015-11-11 22:52:31 UTC
view on stackexchange narkive permalink

Si les utilisateurs sont autorisés à laisser le navigateur stocker leurs mots de passe, la redirection de l'utilisateur vers la page de connexion permettra au navigateur de capturer le nouveau mot de passe sur cette page. Sinon, la prochaine fois que l'utilisateur se connectera au navigateur, il pré-remplira "utilement" le champ du mot de passe avec l'ancien mot de passe - une action qui risque de semer la confusion si l'utilisateur ne se rend pas compte de ce qui se passe.

Sarmad Ajmal
2015-11-11 18:13:20 UTC
view on stackexchange narkive permalink

C'est très simple si l'on tient compte des contre-mesures de sécurité. Cela invalidera en fait toutes vos sessions actives, ainsi que l'appareil du voleur, qui a créé le problème.

Et cela ne pourrait pas être fait d'une manière beaucoup plus conviviale? Je ne vois pas cela, où est la partie qui nécessite une reconnexion?
Erroneous
2015-11-13 01:49:06 UTC
view on stackexchange narkive permalink

En plus de fournir un mécanisme simple pour établir une nouvelle session valide, vérifier que le nouveau mot de passe fonctionne et se déconnecter des sessions en cours, il y a aussi l'avantage supplémentaire de demander à votre utilisateur de saisir le mot de passe une troisième fois, ce qui facilite les choses à retenir.

Bill
2015-11-13 21:28:21 UTC
view on stackexchange narkive permalink

En plus de nombreux autres points soulevés ici, il y a des avantages à limiter le mécanisme de création de session à un seul point d'entrée du point de vue de la maintenabilité / du renforcement / de l'audit.

Un utilisateur réinitialise son mot de passe dans le l'état verrouillé ne doit pas nécessairement être traité comme un utilisateur connecté, même après avoir franchi la preuve de récupération des cerceaux d'identité que vous avez, sinon vous avez une séquence supplémentaire à tester lors de votre audit / test du stylet.

hamish
2019-08-11 12:34:30 UTC
view on stackexchange narkive permalink

lorsque vous vous connectez à nouveau juste après une réinitialisation du mot de passe

a) vous êtes plus susceptible de vous souvenir du mot de passe 3 secondes plus tard, que 3 jours plus tard.

b) votre navigateur peut alors demander à l'utilisateur s'il souhaite mettre à jour son mot de passe enregistré avec le nouveau, puis le navigateur s'en souviendra sur la page de connexion.



Ce Q&R a été automatiquement traduit de la langue anglaise.Le contenu original est disponible sur stackexchange, que nous remercions pour la licence cc by-sa 3.0 sous laquelle il est distribué.
Loading...