資訊安全基礎
儲存密碼時,建議不要直接使用SHA-256這類快速的雜湊函數,而是使用bcrypt或Argon2這類刻意設計成需要較長計算時間的方式。理由是什麼?
- A計算時間長的方式輸出較長,因此不會發生碰撞
- B花時間計算,就只有合法使用者能從雜湊值還原原始密碼
- C當儲存的雜湊值外洩時,攻擊者每嘗試一個候選密碼的計算也會變重,使暴力攻擊與字典攻擊所需的時間大幅增加
查看答案與解析
正確答案:C. 當儲存的雜湊值外洩時,攻擊者每嘗試一個候選密碼的計算也會變重,使暴力攻擊與字典攻擊所需的時間大幅增加
密碼的雜湊值一旦外洩,攻擊者就能在自己的電腦上將候選密碼逐一雜湊,找出一致者。SHA-256這類通用雜湊函數是為了快速處理大量資料而設計,使用GPU等硬體時,每秒可以嘗試極大量的候選。bcrypt與Argon2這類為儲存密碼而設計的方式,可以調整計算的重複次數(成本),刻意讓每次計算變重。例如讓每次計算變慢100萬倍,暴力搜尋所需的時間也會變成100萬倍。合法使用者登入時只需計算一次,0.1秒左右的延遲不成問題。Argon2還能設定使用大量記憶體,讓以GPU或專用電路大量平行計算變得困難。無論哪種方式,都要搭配每位使用者各自的鹽值使用。
- A. 計算時間與輸出長度無關。目的不是防止碰撞,而是讓暴力攻擊變慢。
- B. 任何方式都無法從雜湊值還原原始密碼,合法使用者也只是重新計算輸入的密碼再比對。
- C. 正確。讓每次嘗試變重,就能大幅增加外洩後暴力攻擊所需的時間。