iT邦幫忙

6

開發人員如何有效保護用戶密碼

Best practicing for password protection這篇文章裡,介紹了幾種常見儲存密碼的方式,從明碼到各種加密手段,最後作者從安全和效能的平衡上,也給出了他的建議。
根據文章介紹,常見的密碼儲存方法有下面幾種:

  1. 明碼(plaintext)
  2. 簡易雜湊法 (Pure Hash)
  3. 加料式雜湊法 (Salted Hash)
  4. 加密方法 (Encrypted Password)
  5. 複合式雜湊法
    a. "亂定數" 使用兩次以上
    b. 使用兩種以上的加料式雜湊演算法
  6. HMAC 加料式演算法

作者建議可採用「加料式雜湊法」、「複合式雜湊法之使用兩種以上的加料式雜湊演算法」或 「HMAC 加料式演算法」,這三者,越後面安全度越高,但所需的效能也越高。

加料式雜湊法是用 Hash(亂定值 + 明碼) 的方法,來避開單純用Hash編碼時,仍可能遭到字典式攻擊的風險(以MD5來說,把常用的密碼用MD5加密後拿來試,就跟明碼一樣了)。

複合式雜湊法是由「加料式雜湊法」衍生而來,有不同的變形,像是:
a. "亂定數" 使用兩次以上-亂定數 + Hash(亂定數 + 明碼)
b. 使用兩種以上的加料式雜湊演算法-MD5(SHA1(亂定數 + 明碼))

HMAC 加料式演算法則,其中一種的使用方式如:HMAC(SHA1, 亂定數 + 明碼, 金鑰值)

作者在文章中有更進一步的釋解和實作的說明,有興趣的可以進一步去了解。

最後,奉送一個警世網站「我的密碼沒加密」,希望大家的網站不要上榜。


2 則留言

0
0
pqr0007
iT邦研究生 1 級 ‧ 2012-07-02 19:35:32

confirm with "個人資料保護法"!!...

我要留言

立即登入留言