2012-12-16 3 views
1

J'ai une application .net qui stocke les mots de passe hachés dans une base de données du serveur SQL.mécanisme de hachage des mots de passe

Les mots de passe sont hachés à l'aide d'un salt qui est stocké dans la base de données avec les mots de passe hachés.

Comme couche de sécurité supplémentaire, je hache le mot de passe haché avec une autre clé secrète de site qui n'est pas stockée sur le serveur de base de données pour des raisons de sécurité. Comme le système est équilibré, où dois-je stocker la clé secrète du site? Stockez-en une copie dans la configuration de chacune de mes applications .net (même valeur sur tous les serveurs).

Deuxième question est, quel est le mécanisme de hachage recommandé pour le stockage des mots de passe?

+1

Quel algorithme de hachage utilisez-vous? Il est peu probable que le hachage améliore la sécurité de manière significative; consultez [Double-hashing un mot de passe moins sécurisé ...] (http://stackoverflow.com/questions/348109/). –

+0

Est-ce important de savoir où vous stockez le sel spécifique du site tant qu'ils ne sont pas visibles (et ne peuvent jamais être) visibles sur Internet? Si un serveur tombe en panne dans votre base de données et votre serveur Web, ils peuvent facilement obtenir facilement du sel spécifique à votre site. – scottheckel

Répondre

2

J'ai tendance à utiliser des mots de passe stockant bcrypt. L'implémentation .NET est BCrypt.NET car elle ne vient pas dans le framework .NET à ce stade. Vous ne voulez pas utiliser une fonction de hachage à usage général comme MD5. Un autre algorithme commun est PBKDF2, mais je ne l'ai pas utilisé personnellement dans .NET.

Questions connexes