est-il meilleur lorsqu'un utilisateur oublie son mot de passe de les faire réinitialiser son mot de passe ou d'envoyer simplement le mot de passe perdu? P>
4 Réponses :
Il est plus sûr de réinitialiser le mot de passe, car une tierce partie pourrait intercepter le mot de passe envoyé. P>
Edit: Par réinitialisation, je suppose que vous voulez dire le modèle commun d'envoi de l'utilisateur un jeton qui permet à l'utilisateur de définir un nouveau mot de passe. Évidemment, si vous dégagez simplement un nouveau mot de passe et envoyez-le dans le courrier, il est tout aussi peu sûr que d'envoyer simplement le mot de passe d'origine. Le jeton ne devrait bien sûr être utilisable que une fois, sinon ce sera aussi bon qu'un mot de passe. p>
seul risque ici est qu'un tiers intercepte le jeton et em> modifier le mot de passe avant em> l'utilisateur. Ceci est un risque plus faible que l'envoi du mot de passe, car un mot de passe intercepté sera utile tant que le mot de passe est utilisé, tandis que le jeton ne sera utile qu'une fois, et em> vous découvrirez si quelqu'un a utilisé le jeton. p>
Notez que le risque le plus élevé n'est probablement pas des gens écoutant sur le trafic de courrier électronique, mais plutôt une personne qui examine par votre courrier plus tard, ou un piratage dans votre compte WebMail, il est donc vraiment mauvais d'avoir des mots de passe toujours valides dans votre boîte aux lettres. < / p>
Alors, comment l'utilisateur obtiendra-t-il la prise du mot de passe de réinitialisation, étant donné que le mailing n'est pas sûr? :)
@Zed: Envoyez un lien à l'utilisateur contenant une valeur à usage unique aléatoire (que vous vous souvenez) de sorte que lorsqu'il clique dessus, vous pouvez réinitialiser leur mot de passe et leur envoyer un nouveau (sur https).
@Greg: C'est le point. Il n'y a pas de différence entre envoyer un "mot de passe aléatoire" ou une "valeur aléatoire que l'utilisateur peut utiliser pour ...". Vous les utilisez à la fois pour temporairement i> identifier l'utilisateur. Tiers peut altérer l'un d'eux.
Eh bien, lorsque la seule chose que le site sait pour certains sur l'utilisateur est leur adresse e-mail, nous ne le résoudons pas jusqu'à ce que nous résolvions le problème de courriel crypté, allons-nous?
Exactement. En bref, si vous ne faites pas confiance à l'e-mail, vous avez perdu. Si vous devez faire confiance à un courrier électronique, il ne sert à rien de jouer avec des liens aléatoires et peu importe, ce n'est pas plus sûr que d'envoyer un nouveau mot de passe.
Grande différence, mais pas de sécurité-sage - mais utilisable-sage. Il est certain que l'utilisateur est facile de recevoir un lien pour simplement cliquer sur et d'être présenté directement avec la boîte de dialogue "Sélectionner un nouveau mot de passe" directement, d'un mot de passe temporaire que l'utilisateur doit copier et coller (ou taper) dans quelque part ailleurs, puis frapper Entrez ... beaucoup plus d'étapes qui ne sont pas nécessaires ^^ (mais devraient également être là comme un sans danger)
@Zed: à moins que le mot de passe aléatoire "ne soit pas simplement un mot de passe temporaire qui doit être modifié, il existe une différence entre le" jeton aléatoire pour modifier le mot de passe "et le" mot de passe aléatoire ". Parce que l'utilisateur voudra peut-être garder le "mot de passe aléatoire" qui lui a été envoyé et peut-être oublier de supprimer le courrier électronique. Mais le jeton aléatoire ne sera dans le meilleur parti que pour ce changement de mot de passe spécifique et valable uniquement pendant une courte période.
@Gumbo: Ne permettez donc pas à l'utilisateur de conserver le mot de passe. Force-le à le changer après la première connexion.
Les envoyer par mot de passe perdu implique que vous les gardez en texte brut ou crypté dans un cryptage bilatéral qui n'est pas sûr. P>
Je suggérerais de suivre le mécanisme WordPress pour réinitialiser le mot de passe: P>
Je pensais à envoyer un mot de passe de réinitialisation même s'il semble plus facile que l'utilisateur leur envoie votre ancien mot de passe.
Si quelque chose, c'est une question de confiance - voudriez-vous vraiment que les administrateurs de chaque site utilisent de savoir quels mots de passe vous choisissez? Bien sûr, idéalement, les gens utiliseraient différents mots de passe pour chaque site, mais peu font réellement - c'est trop de tracas.
Il suffit d'ajouter un peu à la réponse d'Eimantas. Pour la sécurité, le serveur ne doit jamais enregistrer le mot de passe d'un utilisateur en texte brut. Il devrait enregistrer le mot de passe crypté à sens unique. Lorsqu'un utilisateur de connexion, le client doit chiffrer le mot de passe avec Javescript et envoyer la chaîne cryptée sur le serveur. Ceci est un peu comme le fonctionnement de la connexion Unix. Fréquemment, un utilisateur utilise le même mot de passe pour différents sites Web. Si vous le gardez en texte brut, vous obtiendrez l'accès à tous. En tant qu'utilisateur, je m'inquiéterais profondément à ce sujet.
@ LH3 Cryptez-le à l'aide de JavaScript sur le client, puis envoyez-le sur le serveur? Es-tu sérieux?
@Thiyagaraj, au moins c'est plus sûr que d'envoyer le mot de passe en clairexuel.
Hashing Un mot de passe avec JavaScript a peu de sécurité ajoutée. La sécurité doit être effectuée sur le côté serveur, avec SSL pour protéger la communication client-serveur client. JavaScript est mal adapté pour le travail.
Une de plus. Je suis tout à fait d'accord SSL est plus sécurisé, mais je me sens toujours plus assuré si le serveur ne sait pas et ne stocke donc pas mon mot de passe. Stocker les mots de passe dans une base de données sur le côté du serveur signifie toujours que certains développeurs peuvent connaître mon mot de passe, ce qui me fait me sentir dangereux.
Seul le Hash du mot de passe doit être stocké; Les mots de passe eux-mêmes ne doivent jamais être stockés sur aucun serveur.
Vous ne devriez pas pouvoir renvoyer le mot de passe en premier lieu. Votre meilleure chance est de générer un mot de passe à usage unique aléatoire et d'envoyer à l'adresse e-mail enregistrée de l'utilisateur. P>
Vous pouvez déployer des questions de sécurité (comme "votre nom de votre premier chien") et un autre mysticisme, mais je crois que les utilisateurs ont tendance à oublier les réponses à ces mots de passe, ce qui vous permet de revenir à la case unique. P>
Si vous utilisez des questions de sécurité (dans), elles ne doivent pas être traitées comme un mot de passe de sauvegarde, mais uniquement en tant que gardiennes d'accès à un mécanisme de réinitialisation de mot de passe. Sinon, vous obtenez votre compte de messagerie brisé lorsque quelqu'un lève le lycée, vous êtes allé et la déplace comme une réponse pour "Où avez-vous rencontré votre conjoint?" (comme arrivé à Sarah Palin l'année dernière).
Mais il est important d'envoyer un mot de passe aléatoire qu'après un email de confirmation initial. Si vous manquez cela, une personne malveillante peut cliquer sur le bouton Demande de mot de passe, entrez votre adresse électronique laissant votre compte inaccessible. Si vous souhaitez vous connecter avec votre mot de passe d'origine sans vérifier le courrier électronique d'abord, conduit à une défaillance de la connexion. C'est une mauvaise expérience utilisateur et agaçante. Cette technique utilisée par un script BOT peut effectuer une déni de service pour chaque adresse électronique connue à l'aide du service.
De nombreux utilisateurs utilisent le même mot de passe sur de nombreux sites Web. Pour respecter la vie privée des personnes, il est recommandé de toujours stocker des mots de passe cryptés à sens unique avec des fonctions de hachage tels que SHA-256 ou MD5. Mais vous ne devriez pas les utiliser sans sel supplémentaire, car les attaques de dictionnaires peuvent simplement être effectuées sur ces mots de passe. Prendre soin des utilisateurs La confidentialité constitue la base d'une relation fiable entre vous et vos clients. P>
Je recommande également le mécanisme de réinitialisation du mot de passe mentionné par Eimantes. Le courrier électronique de confirmation est la tâche principale de ce processus. Toujours laisser l'utilisateur confirmer sa demande de réinitialisation de mot de passe pour éviter que de fausses demandes conduisent à un compte inaccessible. P>
Au lieu de calculer un mot de passe aléatoire, vous pouvez transférer l'utilisateur à une page où il peut entrer un nouveau mot de passe. P>
Gardez également à l'esprit que l'envoi de mots de passe sur HTTP sans SSL est très peu sûr, en particulier dans les réseaux publics tels que les hotspots WLAN. Jetez un coup d'œil aux méthodes d'authentification de messages tels que HMAC en combinaison avec Diffie-Hellman-Bey-Exchange. Ou au moins utiliser une fonction supplémentaire de sel hash + lors de la connexion. P>
SHA-256 et MD5 sont trop rapides pour être considérés comme sécurisés. Découvrez BCRYPT ou PBKDF2.
Jetez un coup d'œil à: Stackoverflow.com/Questtions/647514/...
Vous ne devriez pas avoir de mot de passe original en premier lieu, il doit être irrémédiablement haché.