蠻力攻擊
蠻力攻擊(英語:Brute-force attack)[1],又稱為蠻攻[1]、窮舉攻擊(英語:Exhaustive attack)或暴力破解,是一種密碼分析的方法,主要透過軟體逐一測試可能的密碼,直到找出真正的密碼為止[2]。例如:一個已知是四位數,全部由阿拉伯數字組成的密碼共有10,000個組合,因此最多嘗試9,999次就能找到正確的密碼。理論上除了具有完善保密性的密碼以外,利用這種方法可以破解任何一種密碼,技術成分在於如何縮短試誤時間。有些人運用電腦來增加效率,有些人透過字典攻擊來縮小密碼組合的範圍。[3]
字元類型
字元類型一般可以分為以下5種:
- 阿拉伯數字:0、1、2、...9等(10個)
- 大寫字母:A、B、C、...Z等(26個)
- 小寫字母:a、b、c、...z等(26個)
- 特殊字元:!、#、$、%、~等等(33個),一般較少使用。
- 使用者自訂字元
如果一個多位數並且包含以上所有可能字元的密碼,其組合方法一定多的驚人,且每增加一位數,密碼組合數量會以數十倍指數成長(例如:包含數字及字母大小寫,共62個字元的10位數的密碼,共有,大約種組合),破譯的時間也會更長,有時可能長達數十年(即便考慮電腦效能依摩爾定律會有所進步),甚至更久。
由於窮舉法破解所消耗的時間不小於完成破解所需要的多項式時間,故從密碼學角度考慮,不認為窮舉法是有效的破解方法。可以通過為每個在線帳戶建立唯一密碼來避免這些情況。
字典攻擊
破譯一個相當長度並且包含各種可能字元的密碼所耗費的時間相當長,其中一個解決辦法就是運用字典。所謂「字典攻擊」就是使用預先製作好的清單,例如:英文單字、生日的數字組合、以及各種常被使用的密碼,等等,利用一般人習慣設定過短或過於簡單的密碼進行破譯,很大程度上縮短破譯時間。
超級電腦與窮舉法
為提高密碼的破譯效率,有些領域會專門為其製造超級電腦,例如:用於破解DES加密法的「深譯」、IBM為紐約大學及美國軍方製造的「WindsorGreen」。[4][5]
防護手段
最重要的手段是在構建系統時,將系統設計目標定為即便受到暴力破解的攻擊也難以被攻破。以下列舉了一些常用的防護手段:
- 增加密碼的長度與複雜度。
- 在系統中限制密碼嘗試的次數。
- 密碼驗證時,將驗證結果不是立即返回而是延時若干秒後返回。
- 限制允許發起請求的客戶端的範圍。
- 禁止密碼輸入頻率過高的請求。
- 將密碼設定為類似安全權杖那樣每隔一定時間就發生變化的形式。
- 當同一來源的密碼輸入出錯次數超過一定閾值,立即通過郵件或簡訊等方式通知系統管理員。
- 人為監視系統,確認有無異常的密碼試錯。
- 使用兩步驟認證,例如使用者登入帳號密碼時,系統同時傳送簡訊到使用者的手機,使用者需輸入簡訊內的認證碼。
參考文獻
- ^ 1.0 1.1 brute-force attack - 蠻力攻擊;蠻攻. terms.naer.edu.tw. [2022-04-18]. (原始內容存檔於2022-06-11).
- ^ 9 types of password hacking attacks and how to avoid them. Gadgets Now. [2022-04-18]. (原始內容存檔於2022-06-11) (英語).
- ^ The scrypt key derivation function. [2014-02-13]. (原始內容存檔於2017-12-15).
- ^ BiddleMay 11 2017, Sam BiddleSam. NYU Accidentally Exposed Military Code-breaking Computer Project to Entire Internet. The Intercept. [2022-04-18]. (原始內容存檔於2022-06-09) (英語).
- ^ Military Encryption-Breaking Project from Department of Defense Found Unencrypted on Backup Server. Hot for Security. [2022-04-18]. (原始內容存檔於2022-06-16) (英語).