資訊安全基礎

網路服務儲存使用者密碼時,先在密碼加上每位使用者各不相同的隨機值(鹽值),再計算雜湊值並儲存。使用鹽值的主要目的是什麼?

  1. A能以鹽值從雜湊值還原原始密碼,以便告知忘記密碼的使用者
  2. B即使有使用者使用相同的密碼,儲存的雜湊值也會不同,使利用事先計算好的雜湊值表格破解變得困難
  3. C縮短雜湊值,以節省資料庫的容量
查看答案與解析

正確答案:B. 即使有使用者使用相同的密碼,儲存的雜湊值也會不同,使利用事先計算好的雜湊值表格破解變得困難

密碼的基本原則是不直接儲存,而是儲存以雜湊函數計算出的雜湊值。登入時計算輸入密碼的雜湊值,再與儲存的值比對。然而若只儲存雜湊值,使用相同密碼的使用者會有相同的雜湊值,只要對照事先計算好常用密碼雜湊值的表格(彩虹表等),就能得知許多密碼。鹽值是為每位使用者隨機產生、加在密碼上的值,與雜湊值一起儲存。鹽值不需要保密,但因為每位使用者的值都不同,相同密碼也會得到不同的雜湊值,事先計算的表格就派不上用場。攻擊者必須針對每位使用者重新計算,所需的工夫大幅增加。

  • A. 雜湊函數無法還原,即使有鹽值也無法還原密碼。忘記密碼的使用者要走重設的程序。
  • B. 正確。每位使用者的雜湊值都不同,難以用事先計算的表格破解。
  • C. 加上鹽值不會改變雜湊值的長度,反而因為要儲存鹽值而增加資料量。
練習這個領域 前往領域頁面

相關計算工具

資訊安全基礎的其他題目

  1. 儲存密碼時,建議不要直接使用SHA-256這類快速的雜湊函數,而是使用bcrypt或Argon2這類刻意設計成需要較長計算時間的方式。理由是什麼?
  2. 以嘗試所有候選的暴力法搜尋8個字元的密碼。若每秒可嘗試1×10^10個候選,對於只以英文小寫字母(26種)組成的密碼,以及以英文大寫字母、小寫字母與數字(62種)組成的密碼,試完所有候選所需時間最接近的組合是哪一項?
  3. A在要傳給B的文件上附加數位簽章。建立與驗證簽章所用的金鑰,以及數位簽章能確認的事項,正確的組合是哪一項?
  4. 比較訊息鑑別碼(MAC)與數位簽章的說明,正確的是哪一項?
  5. 發現網頁伺服器的伺服器憑證所對應的私密金鑰可能已經外洩。憑證尚未到期。營運者最適當的處置是哪一項?