當 CPU 不夠快,就讓 GPU 來
John the Ripper 是密碼破解工具裡的經典,但它主要依賴 CPU 進行運算。在現代的計算環境下,這個設計的速度上限是有限的。 Hashcat 採用了完全不同的策略,它把密碼破解的運算工作交給 GPU 處理。 GPU 最初是為了圖形渲染設計的,它的核心架構是同時處理大量平行運算任務,一張現代的消費級顯示卡可以同時執行幾千個運算核心,而密碼雜湊的計算恰好是可以完全平行化的任務類型。這讓 Hashcat 在相同硬體上的破解速度,可以比傳統 CPU 工具快上幾個數量級。 一張 2023 年的中階 GPU,每秒可以嘗試超過一百億個 MD5 雜湊值的組合。在這個速度面前,一個八位元的純數字密碼可以在幾毫秒內被窮舉完畢。
Hashcat 支援的攻擊模式
Hashcat 提供了多種攻擊模式,針對不同類型的密碼弱點: 直線攻擊 從字典檔案或密碼清單直接嘗試,速度最快,對常見密碼最有效。Hashcat 官方和資安社群維護了大量的密碼字典,其中最廣為人知的是 RockYou 字典,包含了從多個資料外洩事件中蒐集到的真實使用者密碼清單,超過一千四百萬筆。 組合攻擊 把兩個字典檔案中的詞彙兩兩組合,嘗試密碼是由兩個常見詞彙拼接而成的情況,例如 sunflower 和 2023 組合成 sunflower2023。 遮罩攻擊 針對已知密碼結構的情況,例如知道目標密碼格式是四個小寫字母加上四個數字,可以定義這個遮罩並只嘗試符合這個結構的組合,大幅縮小搜尋空間。 混合攻擊 結合字典和遮罩的方式,對字典中的每個詞彙加上特定的前綴或後綴,應對人們在基本詞彙後面加數字或符號的常見密碼設定習慣。 延伸閱讀:John the Ripper 是什麼?資安人員用它測試密碼強度,攻擊者用它做的是同一件事
在資安工作中的實際應用
在合法授權的滲透測試環境中,Hashcat 最常出現在以下幾個情境。 當測試人員取得了一個系統的密碼雜湊資料庫,需要評估這些密碼在真實攻擊情境下有多少比例可以在合理時間內被破解,Hashcat 提供了這個評估所需的工具。這個測試的結果,直接用來支撐企業調整密碼政策的建議,例如強制要求最低密碼長度、禁止常見密碼,或是縮短密碼有效期限。 企業的資安紅隊演練中,Hashcat 也是標準工具之一。紅隊的目標是模擬真實攻擊者的行為,在一個模擬的入侵場景中,取得密碼雜湊後嘗試破解,是評估企業整體安全狀態的重要環節。
這個工具告訴我們的密碼現實
Hashcat 的存在和它的計算速度,對一般使用者來說有一個非常直接的意義。 很多人在設定密碼時,會選擇一個有意義的詞彙加上幾個數字和一個符號,例如 Summer@2023,覺得這樣已經夠複雜了。但 Summer 這個詞存在於所有主流的字典檔案裡,2023 是常見的年份後綴,@符號是最常見的符號替換之一,整個密碼在一個配備了規則引擎的 Hashcat 工作階段裡,可能只需要幾分鐘就能找到。 真正對 Hashcat 這類工具有抵抗力的密碼,特徵是長度超過十六個字元、使用真正隨機的字元組合、不包含任何可預測的結構。這樣的密碼人類幾乎不可能記住,這也是密碼管理器真正的價值所在,讓每個帳號都使用一組只有機器才能產生的強密碼,不需要人腦去記。
關於 Hashcat 與 GPU 密碼破解,資安學習者最常問的幾個問題
Hashcat 和 John the Ripper 應該如何選擇?兩者有什麼根本差異?
兩者的核心差異在於運算架構和使用情境的側重點。John the Ripper 以 CPU 為主要運算資源,歷史悠久,支援的平台和格式範圍廣,在沒有獨立 GPU 的環境下或是需要快速開始一個基本破解任務時,仍然是很實用的工具。Hashcat 的設計核心是 GPU 加速,在有獨立顯示卡的環境下速度優勢非常明顯,支援超過三百種雜湊格式,攻擊模式的組合也更靈活。 在實際的資安工作環境中,兩個工具並不是互斥的選擇,資安人員常常根據任務的性質和手邊的硬體環境,決定在哪個情境下使用哪個工具,有時候也會搭配使用。對於剛開始學習的人,John the Ripper 的入門門檻略低,Hashcat 在掌握了基本概念之後能提供更強的實作能力。
雲端運算可以讓 Hashcat 的速度更快嗎?
可以,而且這是目前資安研究和部分滲透測試環境中實際使用的方式。AWS、Google Cloud 和 Azure 都提供了配備高端 GPU 的雲端運算實例,可以按需租用。相比個人硬體,雲端 GPU 叢集可以把 Hashcat 的運算速度提升到另一個數量級,讓原本需要幾天才能完成的破解任務縮短到幾個小時甚至更短。 這個現實從另一個角度說明了為什麼密碼長度如此重要,隨著可用的計算資源持續增加,曾經被認為足夠安全的密碼長度門檻,也在持續往上移動。
使用 Hashcat 需要什麼樣的硬體環境?
Hashcat 支援 NVIDIA 和 AMD 的主流 GPU,以及部分 Intel 整合顯示卡。在有獨立顯示卡的環境下效能最好,NVIDIA 的 CUDA 平台和 AMD 的 ROCm 平台都受到支援。如果沒有獨立顯示卡,Hashcat 也可以在 CPU 模式下運行,但速度會大幅降低,接近 John the Ripper 的 CPU 效能水準。 Hashcat 可以在 Windows、Linux 和 macOS 上運行,官方提供了預編譯的二進位檔案,可以直接從 Hashcat 官方網站 hashcat.net 下載,不需要自行編譯。在 Kali Linux 環境中,Hashcat 同樣是預裝工具之一,可以直接使用。
One Key Takeaway: Hashcat 用 GPU 的平行運算能力,讓密碼破解的速度達到了普通人很難直觀理解的規模,它最重要的啟示不是工具有多強大,而是在這個計算能力面前,我們對密碼強度的直覺判斷,往往比實際情況樂觀得多。