36 votes

Meilleures pratiques de gestion de mot de passe (soupe aux noix, pas seulement le stockage ou la génération)

Nous avons un site avec des informations personnelles sur l'utilisateur. J'ai besoin de connaître les meilleures pratiques pour la gestion des mots de passe.

  1. Ce sont des utilisateurs moyens. Devrais-je imposer des mots de passe «difficiles»?
  2. L'utilisation de l'adresse électronique de l'utilisateur en tant qu'id utilisateur présente-t-elle un inconvénient?
  3. Comment dois-je gérer les demandes de mot de passe oublié? De toute évidence, je ne peux pas les envoyer par courrier électronique à l'utilisateur.
  4. Comment les mots de passe doivent-ils être stockés, cryptés? Devrais-je aussi chiffrer les userid?

35voto

Adam Liss Points 27815
  • Dur de mots de passe, en général, sont terribles. Ils forcent l'utilisateur moyen de les écrire, ou pire, tapez-les dans un fichier texte afin de les mémoriser. Bon pour faire respecter un minimum de caractéristiques (par exemple, au moins un chiffre ou capital) et de faire quelques vérifications de base (longueur minimale, doit différer d'ID utilisateur, au moins à quelques personnages différents), mais vous voulez quelque chose de vos utilisateurs peuvent s'en souvenir.

  • Hachage des mots de passe avec un algorithme sécurisé (voir SHA-1), comme il n'y a pas de raison de les récupérer. Lorsqu'un utilisateur se connecte, hachage de l'entrée et de la comparer à la hash stocké.

  • Adresse e-mail comme nom d'utilisateur est raisonnable, que vos utilisateurs seront probablement en souvenir (surtout si votre invite de connexion dit: "Entrez l'adresse de courriel"). Pas nécessaire pour les utilisateurs à mettre à jour si leurs changements d'adresse, sauf si vous l'utiliser pour autre chose (comme la réinitialisation de mot de passe). Mieux vaut avoir un champ distinct pour le mot de passe de récupération de l'information.

  • Chiffrer les Id d'utilisateur, car vous aurez besoin de les récupérer. Stocker non chiffrés dit un attaquant dont les comptes sont valides, l'élimination de la moitié de la rupture dans la bataille.

  • Ne jamais envoyer de l'oubli du mot de passe à quiconque. (C'est plus facile à respecter si vous hachage de mots de passe, que vous n'aurez plus le texte en clair.) Une pratique raisonnable est de e-mail un lien à l'utilisateur de pré-adresse e-mail enregistrée, de diriger l'utilisateur vers une "réinitialisation du mot de passe de la page. Selon le niveau de sécurité requis, vous pouvez demander une sorte de renseignements permettant d'identifier, puis de leur demander d'entrer un nouveau mot de passe.

Comme toujours, adapter votre mise en œuvre pour adapter le niveau de sécurité requis: ce qui est en jeu si la données est compromise, et à ce que les longueurs si vous et vos utilisateurs passent pour les protéger? En cas de doute, suivez le modèle d'une banque en ligne. En général, où l'argent est en cause, beaucoup de recherches ont été investis dans les meilleures pratiques pour la sécurité.

7voto

J.C. Inacio Points 2522

Dur de mots de passe

Je suis assez d'aversion lorsque les sites essaient d'imposer ce genre de mot de passe que je devrais utiliser, mais tout dépend du site... cependant, les sites doivent toujours respecter un minimum absolu de qualité du mot de passe (au moins 6 à 8 caractères, différent du nom d'utilisateur)

Stockage des mots de passe:

Comme dit dans la première réponse, stocker les mots de passe en utilisant une fonction de hachage. pour comparer entre eux vient de hacher le mot de passe de nouveau.

Pour plus de sécurité lors du stockage des mots de passe hachés, ajouter un "sel" chaîne à eux: au lieu de stocker sha1("mot de passe"), le magasin de sha1("somesalt":"mot de passe"). Ce sera fait de craquage de mot de passe de façon exponentielle plus difficile si par hasard le hachage est obtenu par un utilisateur malveillant, et facilite la nécessité pour les mots de passe forts.

Mot de passe oublié demandes

Pour gérer les demandes de mots de passe, créer un nouveau mot de passe jeton et envoyer un "régénérer le mot de passe" à la demande de l'email de l'utilisateur. lorsque ce lien est accessible, de créer (ou de permettre à l'utilisateur de choisir) un nouveau mot de passe, et d'annuler (supprimer) le jeton. Aussi, les jetons doivent pas être deviner ou brute forcé (utiliser au moins 8 random hex/base64 caractères)

D'autres

Évidemment, chaque aspect de la sécurité sera le maillon le plus faible de manière spécifique des détails de mise en œuvre doit prendre la sécurité en compte, comme l'utilisation de https pour les connexions, etc...

4voto

David Thornley Points 39051

Soyez permissif quant aux caractères que vous autorisez dans les mots de passe. J'ai vu suffisamment de champs de mot de passe qui voulaient me limiter à un nombre de lettres assez court et exclure les caractères spéciaux. Un peu comme s'ils essayaient d'imposer des mots de passe faibles, même si je veux utiliser un mot de passe fort.

2voto

Tom Ritter Points 44352

1) il s'agit de la moyenne des utilisateurs - dois-je imposer 'dur' les mots de passe?

Êtes-vous un forum? Pas de. Protection des données bancaires? Le stockage de leurs enfants, des adresses? Maaaybe. Dépend de ce que vous êtes en permettant à l'utilisateur de le faire, et ce qu'il obtient l'accès.

2) Est-il un inconvénient à l'utilisation de l'adresse électronique de l'utilisateur comme un nom d'utilisateur?

Ce sujet quand j'ai changer mon adresse e-mail?

3) Comment dois-je gérer mot de passe oublié demandes? Évidemment, je ne peux pas les envoyer par courriel à l'utilisateur.

C'est académique, mais je vais souligner un livre blanc par un ami qui a étudié cette question et a écrit un livre appelé la Quantification de la Sécurité, de préférence à base d'Authentification. Fondamentalement, il utilise des préférences au lieu de questions idiotes comme "la Mère nom de jeune fille".

4) Comment les mots de passe stockés, chiffré? Dois-je crypter les identifiants ainsi?

Je vais vous donner mon conserve lien de bcrypt de hachage

1voto

staticsan Points 14435

Les mots de passe «difficiles» sont un problème épineux. J'ai trouvé que beaucoup d'algorithmes de vérification de mot de passe ont des règles trop inflexibles - et c'est ce à quoi les gens s'opposent. Ce que j’ai trouvé réussi, c’est de marquer un nouveau mot de passe avec les règles et d’avoir un score minimum accepté. Cela permet aux utilisateurs finaux de faire des choses comme avoir un mot de passe (beaucoup) plus long au lieu d’inclure à la fois des chiffres et des casse mixtes.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X