暴力攻擊透過嘗試所有可能的組合來破解資料,就像竊賊透過嘗試密碼鎖上的所有數字來破解保險箱一樣。
閱讀本文後,您將能夠:
複製文章連結
暴力密碼破解嘗試是一種反覆試驗的方法,用來解密機密資料。暴力密碼破解嘗試最常見的應用是破解密碼和破解加密金鑰 (請繼續閱讀以進一步了解加密金鑰)。暴力密碼破解嘗試的其他常見目標是 API 金鑰和 SSH 登入。暴力密碼攻擊通常藉由針對網站登入頁面的指令碼或機器人來進行。
暴力攻擊與其他破解方法的區別在於,暴力攻擊沒有採用智慧策略;只是簡單地嘗試使用不同的字元組合,直到找到正確的組合為止。這有些類似於試圖破解保險箱的竊賊,嘗試所有可能的數字組合直到保險箱打開為止。
暴力攻擊的最大優點是執行起來相對簡單,只要給予足夠的時間並且沒有針對目標的緩解策略,它們總能得逞。所有基於密碼的系統和加密金鑰都可透過暴力攻擊來破解。實際上,暴力攻擊一個系統所需的時間是衡量這個系統安全性級別的一項實用指標。
另一方面,暴力攻擊速度非常緩慢,因為有可能必須經歷所有可能的字元組合才能達成目標。這種遲緩也隨著目標字串中字元數的增加而加劇 (字串只是字元的組合)。例如,四字元密碼的暴力破解時間比三字元密碼長得多,而五元密碼的破解時間又比四字元密碼長得多。一旦字元數超過某個點,暴力破解適當隨機化的密碼就變得不切實際。
如果目標字串足夠長,暴力攻擊者就可能需要數天、數月乃至數年時間才能解出適當隨機化的密碼。目前對密碼和加密金鑰長度的要求不斷變高,暴力攻擊的難度也在變大。如果使用了良好的密碼和加密,攻擊者通常會嘗試其他破壞代碼的方法,例如社交工程或在途攻擊。
管理授權系統的開發人員可以採取不同的防範舉措,例如鎖定產生過多失敗登入的 IP 位址,以及在密碼檢查軟體中融入延遲。即使是幾秒鐘的延遲,也能大大削弱暴力攻擊的有效性。
Web 服務的使用者可以透過選用更長、更複雜的密碼來減輕抵禦暴力攻擊的脆弱性。此外,建議啟用雙重驗證並為每個服務使用唯一的密碼。如果攻擊者能夠暴力破解使用者用於一個服務的密碼,該攻擊者可能會嘗試將同樣的登入和密碼重複用於許多其他熱門服務。這稱為憑證填充。
使用者還應避免在任何不使用強加密金鑰保護其資料的 Web 服務中輸入密碼或個人資訊,例如信用卡號或銀行資訊等。
加密金鑰是為加密和解密資料而生成的隨機位元串。資料經過加密後,它會顯示為一串凌亂的隨機字元,直到使用正確的加密金鑰對其進行解密為止。就像密碼一樣,加密金鑰也可透過暴力攻擊破解。不過,如今使用的加密金鑰要花很長時間才能被現代電腦破解,因此它們被視為牢不可破。
相比於較短的加密金鑰,較長加密金鑰的安全性呈指數級提高。例如,對於 128 位元加密金鑰,暴力攻擊者必須嘗試 2128 個可能的組合。對於 256 位元加密,攻擊者必須嘗試 2256 個不同的組合,破解所需的計算資源要比 128 位元金鑰多 2128 倍! (2128 = 340,282,366,920,938,463,463,374,607,431,768,211,456 個可能組合)。
為了讓您大致了解這些數字的含義,可以打個比方;一台強悍的電腦每秒可檢查數萬億個組合,但仍然需要 10 之 96 次方 (sexdecillion) 年才能破解 256 位元加密金鑰 (10 之 96 次方是一後面有 96 個零)。
由於高位元加密金鑰實際上對目前的暴力攻擊免疫,因此建議所有收集使用者資訊的 Web 服務都使用 256 位元加密金鑰對其資料和通訊進行加密。Cloudflare 採用同類最佳的 TLS 加密來防止暴力攻擊,而且也已投入力量到面向未來的量子計算攻擊防範中。