密碼系統 - 彩虹表攻擊



什麼是彩虹表攻擊?

彩虹表攻擊是一種用於解密密碼的技術,它使用一張稱為“彩虹表”的表。密碼不會以純文字形式儲存,而是加密成雜湊值。當用戶嘗試透過輸入密碼登入時,密碼會被轉換成雜湊值,然後與伺服器上儲存的雜湊值表進行比較以驗證匹配。匹配表示使用者的身份已確認,允許他們訪問軟體。

彩虹表本身顯示了一個預先計算的密碼雜湊值表,其中包含身份驗證過程中使用的任何純文字字元。如果駭客能夠訪問密碼雜湊列表,他們可以使用彩虹表輕鬆破解所有密碼。

一種名為“加鹽”的工具極大地減少了彩虹表攻擊。加鹽是一種防止彩虹表攻擊的現代方法,它需要向每個雜湊密碼新增一個新的隨機值以建立唯一的雜湊值。大多數現代密碼認證系統都包含加鹽,以大大減少成功的彩虹表攻擊次數。

大多數程式設計師都使用加鹽,但也有一些程式設計師沒有使用,這使得他們更容易受到彩虹表的攻擊。

這是一個關於彩虹表攻擊工作原理的簡單示意圖:

Rainbow table Attack

解釋

  • 使用者輸入密碼。

  • 密碼被轉換為雜湊值(一種特殊的程式碼)。

  • 將雜湊值與伺服器上儲存的雜湊值進行比較。

  • 如果找到匹配項,則授予訪問許可權。否則,使用者可以重試。

當駭客訪問儲存的雜湊值並使用預先計算的表來快速查詢與這些雜湊值關聯的原始密碼時,就會發生彩虹表攻擊。

彩虹表攻擊是如何工作的?

要進行彩虹表攻擊,駭客首先必須獲得洩露的雜湊值。有時密碼資料庫本身安全性不高,或者他們可能訪問了 Active Directory。需要訪問密碼資料庫的使用者可以透過網路釣魚技術獲得訪問許可權。透過所有這些方式,暗網上已經有數百萬個洩露的密碼雜湊值可供駭客使用。

獲得密碼雜湊值後,可以使用彩虹表來幫助解密密碼雜湊值。只要密碼雜湊值中沒有“鹽”(如上所定義),加密密碼就可以轉換為純文字。

整個彩虹表攻擊過程有四個步驟:

  • 建立 - 彩虹表透過首先獲取潛在密碼列表並對每個密碼應用雜湊函式來生成雜湊列表。彩虹表用於儲存生成的雜湊值及其對應的明文密碼。

  • 查詢 - 駭客可以使用彩虹表查詢與他們擁有的雜湊集合匹配的明文密碼。為了找到與目標雜湊匹配的項,會從每個鏈的最後一個雜湊值開始,反向驗證彩虹表中的雜湊值。

  • 破解 - 當找到匹配的雜湊值時,表明目標雜湊的原始密碼是匹配的明文密碼。現在駭客可以使用身份驗證過程來訪問他人的帳戶。

  • 縮減 - 彩虹表中的雜湊值透過縮減函式重新處理以生成新的雜湊集。縮減函式將每個雜湊對映到一個新值,新值用作下一步的起點。此步驟重複多次以建立雜湊鏈。

彩虹表攻擊示例

下面列出了兩個彩虹表攻擊如何發生的現實世界示例:

  • 攻擊者發現一個 Web 應用程式使用了過時的密碼雜湊技術和非常糟糕的安全措施。透過獲取密碼雜湊值,攻擊者可以使用彩虹表來解密應用程式中每個使用者的密碼。

  • 駭客能夠透過搜尋公司 Active Directory 中的漏洞來訪問密碼雜湊值。獲取密碼雜湊列表後,使用彩虹表攻擊將雜湊值解密為純文字密碼。

抵禦彩虹表攻擊!

只要遵循以下指南,防禦彩虹表攻擊就相當簡單:

  • 消除密碼 − 確保防止基於密碼的攻擊的唯一方法是解決密碼問題。如果沒有要竊取的密碼雜湊列表,則無法進行彩虹表攻擊。立即瞭解無密碼身份驗證,並確保您的重要應用程式平穩執行。

  • 使用鹽值 (Salt) − 雜湊密碼絕不應在不加鹽值的情況下儲存。這使得解密密碼更加困難。但是,建議完全刪除字母數字術語。

  • 使用生物識別技術 − 當使用生物識別身份驗證機制對抗生物識別密碼時,攻擊者很難(如果不是不可能的話)成功進行彩虹表攻擊。

  • 監控您的伺服器 − 大多數現代伺服器安全軟體都會監控訪問敏感資訊的嘗試,並可以努力最大限度地減少並抓住攻擊者,然後再讓他們發現密碼資料庫。

  • 避免使用過時的雜湊演算法 − 駭客會攻擊使用過時的密碼雜湊演算法 MD5 和 SHA1 的應用程式和伺服器。如果您的應用程式使用過時的演算法,則彩虹表攻擊的可能性會大大增加。

彩虹表攻擊與字典攻擊

彩虹表攻擊和字典攻擊都是駭客用來獲取密碼的密碼破解技術。

在彩虹表攻擊中,攻擊者使用預先計算好的雜湊表來確定雜湊密碼的明文版本。與字典攻擊不同(字典攻擊中,攻擊者會嘗試字典中的每個單詞,直到找到匹配項),彩虹表攻擊允許攻擊者快速找到包含前面已計算出的表的明文字串。但建立它們需要大量時間,並且佔用大量空間。

在字典攻擊中,駭客使用預編譯的常用密碼列表(常用的單詞和符號),即字典,與雜湊密碼進行比較,找到匹配項則表示雜湊密碼已被破解。字典攻擊之所以成功,是因為許多使用者建立的密碼非常簡單易懂。此攻擊取決於計算機的速度,並使用多個可能的密碼。

總結

彩虹表攻擊是駭客使用預先計算的表格破解資料庫中儲存的雜湊密碼的一種方法。但是,透過使用鹽值(將隨機值新增到雜湊密碼)可以降低此類攻擊的有效性。為了防止彩虹表攻擊,組織應消除基於密碼的身份驗證,採用安全的密碼,例如無密碼身份驗證或生物識別技術,以及使用帶鹽值的密碼雜湊,監控伺服器上的惡意活動,並避免使用 MD5 和 SHA1 等過時的雜湊演算法。這些措施有助於降低成為彩虹表攻擊受害者的風險,並提高整體網路安全。

廣告
© . All rights reserved.