2010-06-14 15 views
4

Dans mon application Web, j'accède à une clé privée stockée dans un KeyStore Java. Je voudrais savoir quelle est la meilleure/recommandée pour stocker le mot de passe pour le KeyStore et la clé privée.Comment stocker un mot de passe Java KeyStore?

J'ai envisagé d'utiliser un fichier de propriétés mais cela ne semble pas très sûr pour une utilisation dans un environnement de production (stockage du mot de passe dans un fichier texte). De plus, coder en dur le mot de passe dans mon code n'est pas une option que je suis prêt à recevoir.

Merci.

Répondre

-7

Vous pouvez utiliser un fichier de propriétés comme vous le mentionnez juste hacher le mot de passe pour plus de sécurité, hacher le mot de passe. Cela évite d'avoir à garder un mot de passe en texte brut. Vous pouvez alors utiliser le mot de passe MD5 ou SHA1 pour le hacher, choix personnel.

+3

Si vous avez le mot de passe, comment allez-vous récupérer le mot de passe? Cela n'a aucun sens de hacher le mot de passe. –

+0

Vous ne le récupérez pas, vous le réessayez et vérifiez qu'ils sont identiques. Par exemple, si j'ai le hash de votre nom d'utilisateur: d3a03c197da2c09307f06f8513443599 Ensuite, dans l'application vous devez hacher ce que l'utilisateur a mis ainsi votre nom d'utilisateur pour voir si c'était pareil. – Dean

+1

Je suis d'accord avec Καrτhικ, vous ne serez pas en mesure d'ouvrir le magasin de clés avec le hachage de son mot de passe. Protéger le magasin de clés avec un hachage de mot de passe n'ajoute aucune sécurité supplémentaire. – nihilist84

5

Il s'agit d'un problème d'amorçage difficile. Certaines options:

  • Demandez à votre application invite l'utilisateur pour déverrouiller le keystore (pas très sympathique, mais possible)

  • Mémorisez le mot de passe dans un propriétaire fichier en lecture seule (0400) et l'utiliser pour déverrouiller le fichier de clés L'attaquant doit pénétrer dans votre serveur pour lire le fichier. Cela semble être la technique la plus utilisée
  • Utiliser un HSM
  • En utilisant quelque chose comme Hashicorp Vault (mais il a aussi le problème de bootstrapping).
Questions connexes