What is a brute force attack?

暴力攻擊透過嘗試所有可能的組合來破解資料,就像竊賊透過嘗試密碼鎖上的所有數字來破解保險箱一樣。

學習目標

閱讀本文後,您將能夠:

  • 區分暴力攻擊與更複雜的攻擊
  • 定義暴力攻擊的優缺點
  • 說明防範暴力攻擊的最佳方法

複製文章連結

什麼是暴力攻擊?

暴力攻擊是一種反覆試驗的方法,用來解密機密資料。暴力攻擊最常見的應用是破解密碼和破解加密金鑰 (請繼續閱讀以進一步了解加密金鑰)。暴力攻擊的其他常見目標是 API 金鑰和 SSH 登入。暴力密碼攻擊通常藉由針對網站登入頁面的指令碼或傀儡程式來進行。

暴力攻擊與其他破解方法的區別在於,暴力攻擊沒有採用智慧策略;只是簡單地嘗試使用不同的字元組合,直到找到正確的組合為止。這有些類似於試圖破解保險箱的竊賊,嘗試所有可能的數字組合直到保險箱打開為止。

暴力攻擊有什麼優缺點?

暴力攻擊的最大優點是執行起來相對簡單,只要給予足夠的時間並且沒有針對目標的緩解策略,它們總能得逞。所有基於密碼的系統和加密金鑰都可透過暴力攻擊來破解。實際上,暴力攻擊一個系統所需的時間是衡量這個系統安全性級別的一項實用指標。

另一方面,暴力攻擊速度非常緩慢,因為有可能必須經歷所有可能的字元組合才能達成目標。這種遲緩也隨著目標字串中字元數的增加而加劇 (字串只是字元的組合)。例如,四字元密碼的暴力破解時間比三字元密碼長得多,而五元密碼的破解時間又比四字元密碼長得多。一旦字元數超過某個點,暴力破解適當隨機化的密碼就變得不切實際。

暴力攻擊破解時間

If the target string is sufficiently long, then it could take a brute force attacker days, months, or even years to decode a properly randomized password. As a result of the current trend of requiring longer passwords and encryption keys, brute force attacks are quite a bit more difficult. When good passwords and encryption are utilized, attackers typically try other methods of code breaking such as social engineering or on-path attacks.

如何防範暴力攻擊?

管理授權系統的開發人員可以採取不同的防範舉措,例如鎖定產生過多失敗登入的 IP 位址,以及在密碼檢查軟體中融入延遲。即使是幾秒鐘的延遲,也能大大削弱暴力攻擊的有效性。

Users of web services can decrease their vulnerability to brute force attacks by choosing longer, more complex passwords. It is also recommended to enable two-factor authentication and use unique passwords for each service. If an attacker is able to brute force a user’s password for one service, that attacker may try recycling the same login and password on many other popular services. This is known as credential stuffing.

Users should also avoid entering passwords or personal information such as credit card numbers or banking information with any web service that doesn’t protect their data with strong encryption keys.

什麼是加密金鑰?

加密金鑰是為加密和解密資料而生成的隨機位元串。資料經過加密後,它會顯示為一串凌亂的隨機字元,直到使用正確的加密金鑰對其進行解密為止。就像密碼一樣,加密金鑰也可透過暴力攻擊破解。不過,如今使用的加密金鑰要花很長時間才能被現代電腦破解,因此它們被視為牢不可破。

128 位元加密和 256 位元加密有什麼區別?

相比於較短的加密金鑰,較長加密金鑰的安全性呈指數級提高。例如,對於 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 加密來防止暴力攻擊,而且也已投入力量到面向未來的量子計算攻擊防範中。