暴力破解:密码是如何被攻击者破解的
← 返回博客
暴力破解:密码是如何被攻击者破解的
· 8 分钟阅读
暴力破解的基本原理
暴力破解(Brute Force Attack)是最简单粗暴的密码攻击方式:穷举所有可能的字符组合,直到找到正确的密码为止。对于一个由小写字母组成的4位密码,只有 26^4 = 456,976 种可能,普通计算机在不到一秒内就能穷举完毕。但随着密码长度增加,搜索空间呈指数级增长,计算成本迅速变得不可承受。
现代攻击者很少使用纯暴力破解,因为对于足够长的随机密码,这在实际上是不可行的。相反,他们使用更聪明的策略:字典攻击、规则攻击、撞库攻击和混合攻击。了解这些攻击方法,有助于我们理解为什么"复杂"但可预测的密码仍然容易被破解。
字典攻击:攻击者最常用的武器
字典攻击使用一个预先准备的单词列表("字典")进行猜测,而不是穷举所有可能性。这个字典包含:常见密码("password"、"123456"、"qwerty");词典中的普通单词;姓名、地名、品牌名;已知数据泄露中出现过的密码。大型字典可以包含数十亿个条目,覆盖了绝大多数用户实际使用的密码。
知名的密码字典包括 RockYou(包含1400万条从真实泄露中提取的密码)、SecLists 和各种专门针对特定语言(中文、西班牙语等)的字典。攻击者通常从最可能的密码开始尝试,按照频率排序,这使得即使面对数百亿次猜测限制,字典攻击仍然能够高效找到常见密码。
规则攻击:让字典攻击更聪明
规则攻击在字典的基础上应用转换规则,大幅扩展了攻击覆盖范围。常见规则包括:首字母大写(password→Password);末尾加数字(password→password1、password123);字符替换(a→@,e→3,o→0,i→!);在两端加符号(password→!password!);反转字符串(password→drowssap);组合多个规则(password→P@ssw0rd1)。
Hashcat 是目前最强大的密码破解工具,其内置规则集包含数千种变换规则的组合。这正是为什么"P@ssw0rd"这类密码即使看起来很复杂,也会被立即识别:它遵循的所有规则都在攻击者的工具箱中。真正的随机密码之所以安全,正是因为它不遵循任何这些规则。
撞库攻击:数据泄露的蝴蝶效应
撞库攻击(Credential Stuffing)利用从已泄露网站获取的用户名-密码组合,尝试登录其他网站。这种攻击之所以有效,是因为大量用户在多个网站使用相同的密码。攻击者购买泄露的数据库(在暗网上,一个包含数百万条凭证的数据库可能只需数美元),然后使用自动化工具同时向数千个目标网站发起登录尝试。
2019年,安全研究人员发现了一个包含22亿条泄露凭证的"Collection #1-5"数据集。这意味着如果你在2019年之前的任何时间在任何一个已被攻击的网站注册过账号,你的凭证很可能已经在某个攻击者的数据库中。密码唯一性原则——每个网站使用不同密码——是对抗撞库攻击的唯一有效防御。
在线攻击 vs 离线攻击
密码攻击分为两类,理解它们的区别有助于制定正确的防御策略。在线攻击(Online Attack):攻击者通过网络直接向登录接口发送猜测请求。受到速率限制(Rate Limiting)、账号锁定、验证码等机制保护。这类攻击每秒只能尝试几次到几十次,只有极弱的密码才会受到威胁。
离线攻击(Offline Attack):攻击者获得了密码哈希数据库(通过数据泄露)后,在本地进行破解,没有任何速率限制。一块现代GPU(如RTX 4090)每秒可以尝试600亿次MD5哈希。离线攻击是真正的威胁,这也是为什么网站需要使用慢速哈希算法,以及为什么你的密码必须足够强以抵御离线破解。
GPU计算能力的提升对密码安全的影响
过去十年,GPU的密码破解速度提升了约100倍:2013年,一块高端GPU的MD5破解速度约为60亿次/秒;2023年,一块RTX 4090的破解速度超过600亿次/秒;云计算使得任何人都可以租用数百块GPU进行破解。这种计算能力的提升意味着:2013年被认为足够安全的密码长度,在2023年可能已经不够了。
然而,这种威胁有一个重要的缓解因素:现代密码存储算法(如Argon2、bcrypt)的抗破解性也在不断增强。通过增加工作因子(时间成本、内存成本),这些算法可以将GPU破解速度限制在每秒数百次,从而大幅延长破解时间。这就是为什么密码存储算法的选择与密码强度本身同样重要。
作为用户的防御策略
面对以上攻击,用户能够做到的最有效防御措施:首先是密码的高熵和唯一性——随机生成、每站独立,这可以消除字典攻击、规则攻击和撞库攻击的大部分威胁。其次是启用多因素认证——即使密码被破解,没有第二因素也无法登录。最后是监控数据泄露——使用 Have I Been Pwned 等服务,在泄露发生时立即更新受影响的密码。
重要的认识:密码攻击大多是自动化的、大规模的,而不是针对特定个人的。攻击者通常不会花时间专门破解你的密码,除非你是高价值目标。对于普通用户,简单地遵循基本最佳实践(强随机密码、唯一性、MFA)就足以在几乎所有自动化攻击面前保持安全。
立即尝试在线工具,无需安装,免费使用。
打开工具 →
立即免费使用相关工具
免费使用 →