一、定义
暴力破解(Brute - force attack)是一种针对网站登录系统、密码保护文件等安全机制的攻击方式。攻击者通过系统地尝试所有可能的字符组合来猜测密码、密钥或其他安全凭证,就像使用一把把 “万能钥匙” 不断尝试开锁一样,直到找到正确的组合从而获得访问权限。
二、工作原理
密码组合生成
攻击者会使用专门的软件工具。这些工具可以根据设定的参数,如密码长度范围、字符类型(包括字母、数字、特殊字符)等,生成大量可能的密码组合。例如,如果设定密码是由 4 位纯数字组成,那么就会有 10000 种(从 0000 - 9999)组合可能。
对于更复杂的情况,如包含字母(区分大小写)和数字,长度为 8 位的密码,可能的组合数量将是非常庞大的。其组合数量的计算公式为:(字母数量 + 数字数量 + 特殊字符数量)^ 密码长度。
尝试登录
攻击者利用生成的密码组合,通过自动化脚本或程序,向目标网站的登录接口不断发送请求。每一次请求都包含一组用户名和猜测的密码。例如,攻击者先尝试用户名 “admin”,然后依次用生成的密码组合去尝试登录,如先尝试 “1234”,再尝试 “abcd” 等,直到登录成功或者所有组合都尝试完毕。
检测与利用
网站通常会对登录请求作出响应。如果响应中包含了成功登录的信息,如返回特定的欢迎页面或授权令牌,攻击者就知道找到了正确的密码。一旦成功获取登录凭证,攻击者就可以像合法用户一样访问受保护的资源,如用户账户信息、敏感文件等。
三、常见的目标和场景
网站登录页面
这是最常见的目标。许多网站都有用户登录系统,包括电商网站、社交平台、企业内部系统等。攻击者试图通过暴力破解获取用户账户的登录密码,从而获取用户的个人信息、购物记录、聊天记录等。
加密文件或数据库备份
有些攻击者会针对加密的文件或数据库备份进行暴力破解。如果他们能够获取加密文件的密钥,就可以解密文件并获取其中的敏感数据,如企业的财务数据、客户名单等。
四、防范措施
账户锁定策略
设置在一定次数的错误登录尝试后锁定账户。例如,在连续 5 次登录失败后,锁定该账户 30 分钟。这样可以有效阻止攻击者通过不断尝试来破解密码。不过,这种方法也可能会被攻击者利用来进行拒绝服务攻击(DoS),通过大量触发账户锁定,使合法用户无法登录。
验证码机制
在登录页面添加验证码。验证码是一种人类可以识别但计算机程序难以自动识别的图形或文字信息。例如,常见的有数字字母组合的验证码、图片中选择特定物体的验证码等。这样可以防止自动化的暴力破解工具,因为这些工具通常无法自动识别验证码,从而大大增加了攻击的难度。
密码强度要求
强制要求用户设置强度较高的密码。例如,密码长度至少为 8 位,并且包含大写字母、小写字母、数字和特殊字符。这样可以极大地增加可能的密码组合数量,使暴力破解在实际操作中变得几乎不可能完成。
使用多因素认证(MFA)
除了用户名和密码之外,还要求用户提供其他认证因素。比如通过手机短信验证码、硬件令牌(如 U 盾)等。即使攻击者成功破解了密码,没有其他认证因素,仍然无法登录系统。