2010-11-24 33 views
2

J'essaie de savoir s'il est bon de stocker les mots de passe qui sont cryptés en utilisant l'algorithme AES plutôt que de stocker les mots de passe qui sont salés et hachés avec SHA1.Est-il correct de stocker les mots de passe qui peuvent être récupérés?

La raison pour laquelle je me pose cette question est que mon entreprise est en train de mettre à jour son système d'adhésion qui est inclus avec notre système de gestion de contenu propriétaire. Actuellement, nous utilisons le cryptage AES pour les mots de passe. Cela nous permet de rechercher facilement les mots de passe Admin lorsque les clients appellent à l'assistance. Lorsque nous avons des changements de personnel, la politique est de changer tous les mots de passe administrateur. L'outil de recherche de mot de passe nous permet d'obtenir les nouveaux mots de passe facilement et notre flux de travail n'est pas interrompu. J'ai l'impression que la plupart des gens pensent que le hachage des mots de passe salés est le moyen le plus sûr de gérer les mots de passe, mais je n'arrive pas à me conformer aux opérations actuelles de l'entreprise lorsque j'utilise des mots de passe hachés. Et, le changement de culture d'entreprise requis pour changer nos opérations de mot de passe ne se produira probablement pas à moins que je puisse leur donner des raisons très convaincantes aux mots de passe de hachage.

Un mot de passe haché est-il généralement accepté comme requis par rapport à un mot de passe crypté? Pourquoi?

Répondre

3

Vous voulez dire dans une application qui stocke les mots de passe pour l'authentification de l'utilisateur.

Normalement, la motivation pour les hacher ou stocker des données chiffrées est qu'elles empêchent quelqu'un qui a volé la base de données ou empêché le serveur d'obtenir les mots de passe. Si vous les cryptez avec AES, vous devrez clairement conserver la clé quelque part, et ne pourrez jamais la changer (à moins bien sûr que vous les décryptiez tous et que vous les re-chiffriez).

Si quelqu'un compromet la machine, il peut obtenir la clé, car il est nécessairement conservé (au moins) en mémoire à un moment donné pour déchiffrer les mots de passe.

C'est soit cela, soit utiliser une PKI sophistiquée. AES est un chiffrement symétrique.

Le cryptage des mots de passe n'aidera pas vraiment l'application à défendre sa base de données contre les attaquants les plus occasionnels (car un attaquant DOIT être en mesure d'obtenir la clé). En les hachant, il est difficile d'obtenir le texte en clair si les mots de passe sont forts.

+1

Nous vous remercions de votre réponse. Sur la base de votre réponse et aussi des commentaires de theUnhandledException, j'ai été capable de convaincre le patron que nous devrions passer à des algorithmes Hashing au lieu du cryptage. – quakkels

4

Chiffrer les mots de passe avec un chiffrement réversible est de valeur douteuse.

Il est évident que le programme de recherche a accès à la clé. Cela signifie que vous devez supposer que toute personne ayant accès au programme a également accès à la clé. Si vous êtes paranoïaque, vous devez également supposer que leurs conjoints, leurs proches, leurs colocataires, etc. ont tous accès à cette clé. De plus, toute personne ayant déjà pénétré dans le réseau par le passé (puisque la clé a été utilisée) a également accès à la clé.

Le problème avec l'utilisation d'un tel système est que vous ne saurez jamais qu'il est cassé. Ai-je accès à la clé? Maintenant? Puis-je rechercher le mot de passe à tout moment? Dès que vous le changez, je sais à quoi il a été changé? L'utilisation de hachage salé (vs encyrption réversible) présente ses propres défis en implémentation, mais vous pouvez être assuré que voler la liste de mots de passe est peu utile (si correctement implémenté avec un algorithme fort, plusieurs tours, les normes de mot de passe min, et aléatoire par enregistrement sel). Votre système actuel est "se sentir bien cryptage". Même si la direction peut se sentir en sécurité, elle n'est pas en sécurité.Il est légèrement mieux que de stocker des mots de passe en texte clair ou sur une note autocollante, c'est au mieux une bosse de vitesse minimale à un attaquant déterminé. Le plus gros problème est que vous ne pouvez jamais prouver que vous êtes "en sécurité" et que vous n'avez aucun avertissement lorsque vous êtes compromis. Vous pourriez être compromis en ce moment et ne pas le savoir.

+0

Merci pour l'information! – quakkels

+0

Dans ce cas, la clé privée est juste "clé", car AES est un chiffrement symétrique. Mais oui. c'est essentiellement ce que je disais mais peut-être que vous l'expliquez mieux. – MarkR

+0

@Mark. Merci. Supprimé "privé" pour plus de clarté. –