2011-11-26 41 views
0

我一直在努力工作的系統需要DPA,並詢問有關保持數據密碼安全的問題。自從他們提出了一個解決這個問題的想法之後,就是要讓數據解密存儲在數據庫中的數據庫的密碼,但要使用經過驗證的用戶密碼(存儲爲MD5密鑰)以不同類型的密碼散列。使用多個加密保持加密字符串安全

問題是,用不同的密鑰多次加密密碼(至少20個字符長,有可能的擴展名)使得在沒有事先知道或密碼信息的情況下解密變得相當容易?

+1

我已經給出了您的問題的直接答案,但請注意,如果沒有關於您的計劃的更多信息,則無法確定您的具體計劃是否存在漏洞。密鑰應該有位而不是字符,應該使用安全密碼(例如AES)和可能​​的完整性/認證。此外,密碼應該具有最小熵,並且密鑰應該使用衆所周知的密鑰導出方案(bcrypt,PBKDF2)從它們派生。 –

+0

@owlstead歡呼傢伙 – topherg

+0

a迴應md5檢查這個http://www.akkadia.org/drepper/SHA-crypt.txt – david

回答

1

不,一般來說,好的密碼應該具有即使知道明文也無法檢索數據的屬性。對數據進行加密應該沒有太大影響,可以創建一個好的密碼和足夠大的密鑰空間。

+0

所以當你說好密碼時,有沒有你會推薦的。我已經玩了一下RC4。 – topherg

0

首先,MD5不再被認爲是一種安全的加密算法。詳情請參閱http://www.kb.cert.org/vuls/id/836068。其次,數據的加密密鑰不應該存儲在數據庫本身中。它應該分開存放。這樣至少需要獲得兩件事情(數據庫文件和密鑰)來解密數據。如果密鑰本身存儲在數據庫中,那麼一旦有人擁有數據庫文件,可能不會花費很長時間才能找到它。

找到一個單獨的方法來存儲密鑰。它應該被編碼到應用程序中或存儲在以某種方式混淆的文件中。

+0

我沒有意識到md5不再安全,但是如果我改用其他一些哈希方法,可能是我自己創建的方法之一,它可以保持安全。是否有任何替代MD5的建議? – topherg

+0

你不能只是創建一個安全的散列方法,它需要很多的努力(多少?檢查SHA-3競爭)。 SHA-1仍然安全但易受攻擊,您最好使用SHA-256或SHA-512(這是令人困惑的SHA-2哈希算法,全名是SHA-2 256,但沒有人使用過) –