如何存储Java KeyStore密码?

Jus*_*ble 4 java keystore private-key

在我的Web应用程序中,我访问存储在Java KeyStore中的私钥.我想知道存储KeyStore和私钥密码的最佳/推荐方法是什么.

我考虑过使用属性文件,但在生产环境中使用它似乎不太安全(在纯文本文件中存储密码).此外,在我的代码中硬编码密码不是我愿意接受的选项.

谢谢.

War*_*nge 8

这是一个棘手的引导问题.一些选择:

  • 让你的应用提示用户解锁密钥库(不是很友好,但可能)

  • 将密码存储在所有者只读文件(0400)中,并使用该密码解锁密钥库.攻击者必须闯入您的服务器才能读取该文件.这似乎是最广泛使用的技术
  • 使用HSM
  • 使用像Hashicorp Vault这样的东西(但它也有引导问题).


Dea*_*ean -8

您可以使用属性文件,正如您提到的那样,只需对密码进行哈希处理以获得额外的安全性,盐对密码进行哈希处理。这解决了必须以纯文本形式保存密码的问题。然后,您可以使用 MD5 或 SHA1 密码对其进行哈希处理,具体取决于个人选择。

  • 如果对密码进行哈希处理,您将如何检索密码?对密码进行哈希处理是没有意义的。 (7认同)
  • 这个答案对于所提出的问题毫无意义。为什么这会被接受?:/ (5认同)
  • 我必须同意 Καrτhικ,您将无法使用密码的哈希值打开密钥存储。使用密码哈希保护密钥存储不会增加任何额外的安全性。 (4认同)