2013-10-31 142 views
2

請不要回復如何/爲什麼嵌入密碼是一個壞主意。我知道他們的所有信息,我已經閱讀過這篇文章What's the most secure way to embed a password inside Java code?,但沒有爲我提供答案。如何保護Sql應用程序角色密碼

對我的問題。

我在我的程序中使用SQL應用程序角色。因此,最終用戶不知道角色名稱和密碼是什麼,因爲它不適用於他們,如果他們發現角色名稱和密碼,它實際上是一個安全風險。

我考慮將role/pw存儲在安全的遠程服務器中。但後來我必須授予用戶訪問權限的權限。由於解密例程將在代碼中,因此將pw加密並存儲在配置文件中不起作用。

基本上我能想到的所有東西都只能掩蓋但不能保護密碼。

+0

據我所知,您可以使用MD5哈希庫對其進行編碼,即使他們知道它使用MD5進行加密,但它們無法解密,因爲它們沒有密鑰。萬一他們可以訪問密鑰,恐怕你不能安全地存儲它,因爲總是會有一個易受攻擊的登錄名或密鑰,它們只會掩蓋你自己已經提到的對象。 – Voidpaw

+0

除了隱藏和限制用戶/卷的特權之外,沒有其他解決方案,因此妥協的密碼不會是災難性的。 –

+4

你在問一些不可能的事情。 – CodesInChaos

回答

0

「最」安全​​的方式?我不知道。有辦法使它不那麼明顯。

一個建議是使用XOR程序中的一些無害數據,比如「按任意鍵繼續」。

realPassword <- SHA256(myByteArray XOR getBytes(userMessage001)) 

這樣,實際的密碼永遠不會出現在代碼中,只是派生密碼的方法。您甚至可以將myByteArray分開保存在一個文件中,以便它永遠不會出現在代碼中。

正如@Aurand指出的那樣,你可以通過它來模糊真實密碼。有權訪問代碼的攻擊者將能夠找到它。