蛮力攻击
蛮力攻击(英语: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) (英语).