2010-06-14 29 views
4

在我的Web應用程序中,我訪問存儲在Java KeyStore中的私鑰。我想知道什麼是最好/推薦的方式來存儲KeyStore和私鑰的密碼。如何存儲Java KeyStore密碼?

我已經考慮過使用屬性文件,但在生產環境(在純文本文件中存儲密碼)中使用它看起來不太安全。另外,在我的代碼中對密碼進行硬編碼並不是我願意接受的選項。

謝謝。

回答

-7

您可以使用屬性文件,因爲您提到只是散列密碼以獲得額外的安全性salt hash密碼。這就解決了必須以純文本保存密碼的問題。然後你可以使用MD5或SHA1密碼來散列它,個人選擇。

+3

如果你散列密碼,你將如何檢索密碼?散列密碼是沒有意義的。 – 2011-03-16 13:01:50

+0

你不檢索它,你再次散列它,並檢查它們是否相同。例如,如果我有你的用戶名的散列:d3a03c197da2c09307f06f8513443599 然後在應用程序中,你會散列用戶放入什麼,所以你的用戶名,看看是否是相同的。 – Dean 2011-03-16 19:19:00

+1

我必須同意Καrτhικ,您將無法使用其密碼的散列打開密鑰存儲區。使用密碼散列保護密鑰存儲不會增加任何額外的安全性。 – nihilist84 2015-06-11 09:22:07

5

這是一個棘手的引導問題。一些選項:

  • 讓你的應用程序提示用戶解鎖密鑰庫(不是很友好,但有可能)

  • 商店的所有者密碼只讀文件(0400),並用它來解鎖密鑰庫。攻擊者必須闖入您的服務器才能讀取文件。這似乎是最廣泛使用的技術
  • 使用HSM
  • 使用類似Hashicorp Vault(但它也有引導問題)。