駭客會使用各種方法來破解密碼,其中之一就是彩虹表攻擊。在某些情況下,這種方法可能比 字典攻擊憑證填充 還要快。

在本文中,我們將探討彩虹表攻擊的運作方式,並討論防範這些攻擊的方法。

Rainbow table 攻擊定義

Rainbow table 攻擊是一種密碼學攻擊,駭客利用它來破解系統,方法是從雜湊值中推斷出密碼,這些雜湊值就像是數位指紋。雜湊函數會將每個密碼映射到一組對應的字元字串。

與嘗試逐一測試每個可能密碼的 暴力破解攻擊 不同,Rainbow table 攻擊在表格預先計算完成後,無需進行任何猜測。這種預先計算的表格(因為若以顏色標記會呈現彩虹般的外觀,故稱為 Rainbow table)本質上是一個巨大的雜湊值對應資料庫,連結著其對應的純文字密碼。

Rainbow table 密碼攻擊的運作原理

1. 建立密碼列表

在建立 Rainbow table 時,駭客通常會鎖定最常見、容易被使用的密碼,這些密碼通常具有簡單的模式(例如 123456passwordqwerty)、詞典中的單字,或是從資料外洩中取得的密碼轉儲檔。

2. 選取雜湊函數並轉換密碼

Rainbow table 攻擊非常適用於 MD-5、SHA-1、LM Hash 或 NTLM Hash 等較簡單、快速的加密雜湊函數,因為它們不使用加鹽式(在雜湊前為每個密碼添加隨機資料)或密鑰延展(重複雜湊密碼)等安全功能。

使用 MD-5 雜湊的密碼純文字密碼
482c811da5d5b4bc6d497ffa98491e38password123

每個純文字密碼都會經過雜湊函數處理以產生其對應的雜湊值,如上述範例所示,該雜湊值是一組獨特且長度固定的字元字串。一旦所有密碼都已完成雜湊處理,駭客便能使用這些雜湊值來建立 Rainbow table。

3. 建立 Rainbow table 以揭露密碼

Rainbow table 可以被視為一個巨大的 Excel 工作表,第一欄為雜湊密碼,第二欄為純文字密碼。如果表格中存在外洩的雜湊值,這意味著旁邊的儲存格即為外洩的密碼。

Rainbow table 攻擊範例

以下是兩個假設性範例,說明 Rainbow table 攻擊可能如何發生:

  • 駭客識別出一個使用過時雜湊演算法且未加鹽的社群媒體網站。透過利用 SQL 注入漏洞,攻擊者從網站資料庫中提取了使用者密碼的雜湊值。接著,他們使用預先計算的 Rainbow table 快速將數千個雜湊值還原為純文字密碼,從而入侵使用者帳號。
  • 在常規的網路監控過程中,駭客發現某個電子商務網站在其伺服器之間以不安全的方式傳輸密碼雜湊,並使用網路監控工具擷取此資料。由於駭客現在已存取密碼雜湊,他們便利用 Rainbow table 攻擊來解碼客戶密碼,進而存取其購物帳號和個人資訊。

Rainbow table 攻擊資料外洩

Rainbow table 攻擊已在現實世界中被用於竊取數百萬筆登入詳細資料。

例如,2012 年由俄羅斯網路犯罪分子發起的 LinkedIn 入侵事件(新視窗),導致近 650 萬名使用者帳號密碼遭竊,造成嚴重資料外洩。事件最初被發現後,LinkedIn 在 2016 年又發現了另外 1 億筆與該事件相關的遭入侵電子郵件地址和密碼。這些遭竊的密碼保護極差,缺乏加鹽式等額外安全措施,使得攻擊者更容易使用標準 Rainbow table 將其解密。

如何預防 Rainbow table 攻擊

選擇使用強大雜湊函數的平台

bcrypt(新視窗)Argon2(新視窗) 等安全的雜湊函數,會使用 加鹽式(新視窗) 在建立密碼雜湊前加入隨機資料。若沒有加鹽處理,密碼的雜湊值就不會出現在 Rainbow table 中,因此攻擊將會失敗。

若要了解特定服務或應用程式使用什麼雜湊函數來儲存密碼,請查看其 隱私權政策(新視窗)、常見問題頁面、支援頁面、安全認證或 稽核報告(如有)、技術文件或 開發人員資源(新視窗)。簡單的網路搜尋通常有效,或者您可以聯繫 客戶支援服務 詢問。

如果您自行營運網站或資料庫,請透過使用能實作強大雜湊演算法的外掛程式或模組,隨時更新您的安全設定。

使用複雜的密碼

與其使用容易被猜到的密碼,不如選擇由至少 12 個字元組成的 安全密碼,其中應包含大小寫字母、數字和符號。強密碼的範例如 ?GmmM1Z[c5:Fbeht=ty]P:)Gf^c?p?+7。對於網路攻擊者來說,針對如此複雜的密碼使用 Rainbow table 攻擊的可能性極低。

開啟多重身分驗證

多重身分驗證 (MFA)(例如 雙重驗證 (2FA))會在密碼要求之外,至少新增一種驗證形式,例如來自 2FA 驗證器的代碼。如果攻擊者在 Rainbow table 攻擊後成功獲取您的密碼,他們也無法通過接下來的驗證步驟。

此外,如果您收到意料之外的額外驗證請求,這是一個明確的跡象,代表有人試圖進入您的帳號。您可以透過變更密碼來快速採取行動。

使用電子郵件別名

電子郵件別名(新視窗) 可以保護您免受可能導致 Rainbow table 攻擊的資料外洩威脅,因為它們與您的主要電子郵件地址無關。例如,您可以將主要電子郵件用於重要訊息和財務往來,同時將電子郵件別名保留給安全性較低的活動,例如註冊不受信任的服務。如果您的電子郵件別名遭到駭客攻擊,您可以直接停用它。

監控網際網路上的資料外洩

透過隨時掌握最新的資料外洩消息,您可以確定您使用的服務是否遭到入侵,以及您的 資料是否已經外洩。這使您能夠採取主動措施(例如立即變更密碼),以防止駭客利用可能暴露的資料來獲取對您帳號的未經授權存取權。

Proton Pass 如何提供協助

Proton Pass 可透過 產生強密碼(新視窗) 並將其集中管理,來保護您免受 Rainbow table 攻擊。它還支援用於 2FA 權杖 的 TOTP(基於時間的一次性密碼)驗證器。此外,該應用程式還提供 hide-my-email 別名,以防止您的主要電子郵件地址在線上暴露。

所有 Proton Pass 訂閱者都可以使用 Pass Monitor(新視窗) 來監控所有密碼的健康狀況,並使用 暗網監控 來追蹤各種資料外洩來源。我們的 安全模型 使用安全的 bcrypt 雜湊演算法,該演算法會在密碼雜湊前進行加鹽處理,以阻擋 Rainbow table 攻擊。此外,我們還執行名為 Proton Sentinel 的先進安全計畫,以偵測並預防帳號盜用攻擊。

立即註冊免費的 Proton Pass 帳號,開始保護您的帳號免受 Rainbow table 攻擊。