Question

J'ai reçu la malheureuse exigence de la construction d'une page qui affiche un nouveau mot de passe à l'utilisateur authentifié. J'ai en vain protesté contre cette exigence comme une idée généralement mauvaise, mais je pense que le jury est encore donc peut-être des arguments contre l'affichage d'un nouveau mot de passe que je ne l'ai pas encore essayé. Avez-vous des suggestions?

En second lieu, serait-il préférable d'afficher le mot de passe à l'utilisateur comme une image, plutôt que sous forme de texte. Je suis préoccupé par le texte étant « raclée » que je suppose serait plus difficile avec une image. Comment puis-je faire en sorte que l'image ne sera pas mis en cache par le navigateur de l'utilisateur?

merci à l'avance,

Était-ce utile?

La solution

Je ne sais pas ce que vous construisez et quelles sont les exigences, mais en règle générale, je ne considère pas un problème de sécurité grave. Permet de regarder les vecteurs d'attaque:

  1. L'homme dans l'attaque du milieu sur le texte trafic HTTP -. Une image, en particulier un obscurcie contre OCR (style CAPTCHA) empêchera cette attaque, mais aussi tout simplement en utilisant le protocole HTTPS comme mentionné porneL
  2. racler l'écran par une application de bureau à distance - la protection HTTPS ne sera pas utile, ni une image que le désordre sur un écran doit être lu par un de toute façon humaine (un attaquant humain peut aussi contourner votre protection d'image brouillée contre « l'homme dans le milieu » en demandant à l'auditeur d'archiver l'image et ensuite sur eux manuellement). Si un être humain est derrière le grattoir d'écran, vous avez pas de protection.
  3. sur votre épaule écoute clandestine - si l'attaquant est tout simplement debout derrière l'utilisateur, puis à nouveau -. Vous avez pas de protection

Ne notez que si votre mot de passe est généré automatiquement, vous devez montrer à l'utilisateur, il n'y a pas moyen de contourner cela. Un des sites de façon tenter d'atténuer la menace est d'envoyer le mot de passe par email - sous l'hypothèse qu'un utilisateur peut se assurer de lire l'e-mail quand personne ne regarde, à leur propre temps. Malheureusement email ne sera pas même vous laisser le bénéfice de cryptage pour protéger le transfert.

A mon avis, la meilleure façon est de laisser l'entrée d'utilisateur le mot de passe (dans un champ mot de passe de faux-fuyants, comme il est normalement fait), puis stocker seulement le hachage du mot de passe afin que vous ne devez pas stocker le mot de passe réel, ce qui empêche vous de montrer à l'utilisateur. Si vous devez montrer à l'utilisateur (peut-être parce que vous générez il), alors assurez-vous que vous êtes sur HTTPS et juste montrer -. Toute la fanfare complique juste la mise en œuvre sans donner de prestations de sécurité

Autres conseils

Image ne garantira pas beaucoup.

Si vous utilisez HTTPS, puis le mot de passe sera sécurisé de toute façon. Si vous utilisez HTTP, puis le mot de passe sera envoyé en texte clair de la forme (je suppose que vous affichez pour une sorte de confirmation), et comment il est affiché quelques secondes plus tard ne sera pas question.

La chose importante est de faire en sorte que la page qui affiche le mot de passe est non cache'able.

Cache-control: no-cache, no-store, must-revalidate

Avez-vous essayé ce qui suit?

  • vous ne pouvez pas afficher le mot de passe parce que vous ne stockez pas.

Je ne sais pas si elle est vraiment une si mauvaise idée. Vous devez envoyer le nouveau mot de passe à l'utilisateur ou l'autre manière. Envoi de courrier électronique non crypté comme a les mêmes problèmes -. Beeing capturé ou beeing mis en cache lorsque vous utilisez la messagerie Web

Je suggère d'utiliser une image, peut-être un peu captcha comme un. Mais cela ne protège un peu plus contre les attaques automatisées, et non pas contre les attaques de l'homme.

La seule façon d'obtenir la chose sûre est d'utiliser enryption, ce qui suggère HTTPS. Ensuite, en utilisant votre site Web pour afficher peut devenir encore plus sûr que de compter sur le courrier électronique ou des solutions comme ça.

Leting l'utilisateur d'entrer un nouveau mot de passe a le même problème - maintenant, vous devez l'envoyer au serveur

.

Je suggère simplement en utilisant le protocole HTTPS pour chiffrer le trafic et le stockage de mots de passe seulement hash temporaires, de sorte que le mot de passe réel ne sont pas stockées dans la base de données. Bien sûr, vous ne pouvez pas empêcher « les pirates » physiques (comme les personnes qui cherchent derrière l'épaule) de voler un mot de passe temporaire, mais, si possible, vous pouvez demander aux utilisateurs de changer leur mot de passe à l'instant qu'ils se connectent avec un mot de passe temporaire, de sorte que les risques avec un mot de passe temporaire sont atténués.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top