在計算機安全中 哈希鏈 是一種由單個密鑰或密碼生成多個一次性密鑰或密碼的一種方法。

定義

哈希鏈 是將密碼學中的哈希函數 循環地用於一個字符串。(即將所得哈希值再次傳遞給哈希函數得至其哈希值)

例:

 

一個長度為4哈希鏈,通常記 

應用

蘭波特 [1]建議將其作為一種在非安全環境中的密碼保護方案。相比較而言,一個提供身份驗證的服務器儲存哈希字符串,比儲存純文本密碼,更能防止密碼在傳輸或儲存時被泄露。舉例來說,一個服務器一開始存儲了一個由用戶提供的哈希值 。進行身份驗證時,用戶提供給服務器 。服務器計算  ,並與已儲存的哈希值 進行比較。然後服務器將存儲 以用來對用戶進行下次驗證。

竊聽者即使嗅探到 送交服務器,也無法將 用來認證,因為現在服務器驗證的哈希值是 。由於安全的哈希函數有一種單向的加密屬性,對於想要算出前一次哈希值的竊聽者來說它的值是不可逆的。在本例中,用戶在整個哈希鏈用完前可以驗證1000次之多。每次哈希值是不同的,因此不能被攻擊者再次使用。

參見

  • 問答認證
  • 哈希表-與遞歸哈希鏈結構恰恰相反,每個哈希表的元素是相互獨立的。
  • 一次性密碼

參考文獻:

  1. ^ L. Lamport, 「Password Authentication with Insecure Communication」, Communications of the ACM 24.11 (November 1981), pp 770-772.[1]頁面存檔備份,存於網際網路檔案館[2]頁面存檔備份,存於網際網路檔案館

外部連結