暴力破解法

维基百科,自由的百科全书
跳转至: 导航搜索

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

字符类型[编辑]

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

  • 数字型0、1、2、...9等(10個)
  • 大写字母A、B、C、...Z等(26個)
  • 小写字母a、b、c、...z等(26個)
  • 特殊字符~、$、#、@、&、*等(33個)一般較少用
  • 用户自定义字符。

如果一个多位数并且有可能包含以上所有字符的密码的组合方法一定多的惊人,且每增加一字元,密码组合數量會以數十倍來指數成長,例如:包含數字及字母大小寫的10字元的密码组合,就高達853,058,371,866,181,900種,要破译时间也会更长,有时可能会长达数十年(已考慮電腦性能依摩爾定律的進步),甚至更久。

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

字典[编辑]

当然如果破译一个有8位而且有可能拥有大小写数字、字母、以及符号的密码用普通的家用电脑可能会用掉几个月甚至更多的时间去计算,其组合方法可能有几千万亿种组合。这样长的时间显然是不能接受的。其解决办法就是运用字典,所谓「字典」就是给密码锁定某个范围,比如英文单词以及生日的数字组合等,所有的英文单词不过10万个左右这样可以大大缩小密码范围,很大程度上缩短了破译时间。

超级计算机与穷举法[编辑]

在一些领域为了提高密码的破译效率而专门为其制造的超级计算机也不在少数,例如IBM美国军方制造的“飓风”就是很有代表性的一个。[來源請求]

防护手段[编辑]

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

  • 增加密码的长度与复杂度
  • 在系统中限制密码试错的次数
  • 密码验证时,将验证结果不是立即返回而是延时若干秒后返回。
  • 限制允许发起请求的客户端的范围
  • 禁止密码输入频率过高的请求
  • 将密码设置为类似安全令牌那样每隔一定时间就发生变化的形式
  • 当同一来源的密码输入出错次数超过一定阈值,立即通过邮件/短信等方式通知系统管理员
  • 人为监视系统,确认有无异常的密码试错。

参考[编辑]

  1. ^ The scrypt key derivation function