28. 在開發安全的應用程式時,使用者密碼應該如何安全儲存最 為適當?
(A) 儲存於設定檔,方便管理員查詢
(B) 使用 SHA-1 進行雜湊後存儲
(C) 使用鹽(Salt)與 SHA-2 雜湊演算法存儲
(D) 直接儲存不做處理
答案:登入後查看
統計: A(7), B(27), C(595), D(4), E(0) #3441073
統計: A(7), B(27), C(595), D(4), E(0) #3441073
詳解 (共 2 筆)
#7375453
為什麼選 (C)?
在資訊安全中,儲存使用者密碼的黃金法則就是絕對不能存明文,而且必須防範**彩虹表(Rainbow Table)**等預先計算好的雜湊值攻擊。
• 使用 SHA-2 雜湊(Hashing): SHA-2(如 SHA-256)是目前安全強度符合現代標準的雜湊演算法,具有不可逆性(無法從雜湊值輕易推回原本的密碼)。
• 加入「鹽(Salt)」: 「鹽」是在密碼雜湊前,隨機加入的一串字串。
• 作用: 即使兩個使用者設定了完全一樣的密碼(例如 123456),因為隨機生成的「鹽」不同,最後算出來的雜湊值也會完全不同。這能有效破解黑客利用彩虹表進行的大規模比對攻擊。
其他選項錯誤原因
• (A) 儲存於設定檔,方便管理員查詢
• 錯誤原因: 這是極度危險的做法。密碼如果以明文存在設定檔中,任何有權限讀取檔案的人(或網站被入侵時)都能直接看光所有人的密碼。此外,系統管理員也不應該知道使用者的隱私密碼。
• (B) 使用 SHA-1 進行雜湊後存儲
• 錯誤原因: SHA-1 演算法早已被證實存在**雜湊碰撞(Collision)**的漏洞,在安全性上已被淘汰,不適合用來保護現代的密碼。而且此選項缺少了加鹽(Salt)的步驟。
• (D) 直接儲存不做處理
• 錯誤原因: 這就是所謂的「明文儲存(Plaintext)」。只要資料庫不小心外洩,所有使用者的帳號密碼就會直接公諸於世,是最糟糕的開發壞習慣。
0
0