蛮力攻击

蛮力攻击英語:[1],又稱為穷举攻击英語:)或暴力破解,是一种密碼分析的方法,即将密码进行逐个推算直到找出真正的密码为止。例如:一个已知是四位數并且全部由阿拉伯数字组成的密碼,其可能共有10000种组合,因此最多尝试9999次就能找到正確的密码。理論上除了具有完善保密性的密码以外,利用这种方法可以破解任何一種密码,問題只在於如何縮短試誤时间。有些人运用计算机来增加效率,有些人透過字典攻擊來縮小密碼組合的範圍。[2]

字符类型

字符类型一般可以分为以下5种:

  • 阿拉伯數字:0、1、2、...9等(10個)
  • 大写字母:A、B、C、...Z等(26個)
  • 小写字母:a、b、c、...z等(26個)
  • 特殊字符:!、#、$、%、~等等(33個),一般較少使用。
  • 用户自定义字符

如果一个多位数并且包含以上所有可能字元的密码,其组合方法一定多的惊人,且每增加一位數,密码组合數量會以數十倍指數成長(例如:包含數字及字母大小寫,共62個字元的10位數的密码,共有,大約種組合),破译时间也会更长,有时可能长达数十年(即便考慮電腦性能依摩爾定律的進步),甚至更久。

由于穷举法破解所消耗的时间不小于完成破解所需要的多项式时间,故从密码学角度考虑,不认为穷举法是有效的破解方法。

字典攻擊

破譯一個相當長度並且包含各種可能字元的密碼所耗費的時間相當長,其中一個解决办法就是运用字典。所谓「字典攻擊」就是使用預先製作好的清單,例如:英文單字、生日的数字组合、以及各種常被使用的密碼,等等,利用一般人習慣設定過短或過於簡單的密碼進行破譯,很大程度上缩短了破译时间。

超级计算机与穷举法

在一些领域为了提高密码的破译效率而专门为其制造的超级计算机也不在少数,例如:用於破解DES加密法的「深譯」及IBM美国军方制造的“飓风”。

防护手段

最重要的手段是在构建系统时要将系统设计目标定为即便受到暴力破解的攻击也难以被攻破。以下列举了一些常用的防护手段:

  • 增加密码的长度与复杂度。
  • 在系统中限制密码嘗試的次数。
  • 密码验证时,将验证结果不是立即返回而是延时若干秒后返回。
  • 限制允许发起请求的客户端的范围。
  • 禁止密码输入频率过高的请求。
  • 将密码设置为类似安全令牌那样每隔一定时间就发生变化的形式。
  • 当同一来源的密码输入出错次数超过一定阈值,立即通过邮件或短信等方式通知系统管理员。
  • 人为监视系统,确认有无异常的密码试错。
  • 使用雙因子認證,例如使用者登入帳號密碼時,系統同時發送簡訊到使用者的手機,使用者需輸入簡訊內的認證碼。

参考文献

  1. 中华人民共和国国家标准《GB/T 25069-2010 信息安全技术 术语》
  2. The scrypt key derivation function
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.