蛮力攻击(英語: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. ^ 1.0 1.1 brute-force attack - 蠻力攻擊;蠻攻. terms.naer.edu.tw. [2022-04-18]. (原始内容存档于2022-06-11). 
  2. ^ 9 types of password hacking attacks and how to avoid them. Gadgets Now. [2022-04-18]. (原始内容存档于2022-06-11) (英语). 
  3. ^ The scrypt key derivation function. [2014-02-13]. (原始内容存档于2017-12-15). 
  4. ^ BiddleMay 11 2017, Sam BiddleSam. NYU Accidentally Exposed Military Code-breaking Computer Project to Entire Internet. The Intercept. [2022-04-18]. (原始内容存档于2022-06-09) (英语). 
  5. ^ Military Encryption-Breaking Project from Department of Defense Found Unencrypted on Backup Server. Hot for Security. [2022-04-18]. (原始内容存档于2022-06-16) (英语).