黑客使用各种方法来破解密码,其中之一就是彩虹表攻击。在某些情况下,这种方法可能比字典攻击或撞库攻击更快。

本文将探讨彩虹表攻击的工作原理,并讨论防范方法。

彩虹表攻击的定义

彩虹表攻击是一种密码学攻击,黑客利用这种攻击从作为数字指纹的哈希中推算出密码,从而入侵系统。哈希函数将每个密码映射为对应的字符串。

与逐一尝试所有可能密码的暴力破解攻击不同,彩虹表攻击在表格预先计算好后便无需猜测。这种预计算表(因彩色编码时的外观而被称为彩虹表)本质上是一个包含哈希值对及其对应纯文本的大型数据库。

彩虹表密码攻击的工作原理

1. 创建密码列表

在创建彩虹表时,黑客通常会针对最可能且常用的简单模式密码(例如 123456、password 或 qwerty)、字典单词,或从数据泄露中获取的密码转储。

2. 选择哈希函数并转换密码

彩虹表攻击对较简单、较快速的加密哈希函数 (如 MD-5、SHA-1、LM Hash 或 NTLM Hash) 效果很好,因为这些函数不使用加盐 (在哈希之前向每个密码添加随机数据) 或密钥拉伸 (反复对密码进行哈希) 等安全功能。

使用 MD-5 哈希的密码纯文本密码
482c811da5d5b4bc6d497ffa98491e38password123

每个纯文本密码都会经过哈希函数处理,生成对应的哈希值,即如上例所示的唯一固定长度字符串。所有密码完成哈希后,黑客即可用它们创建彩虹表。

3. 创建彩虹表以破解密码

彩虹表可以看作一个大型的 Excel 工作表,第一列是哈希密码,第二列是纯文本密码。如果泄露的哈希值在此表中,那么其旁边的单元格就是泄露的密码。

彩虹表攻击示例

以下是两个假设示例,用以说明彩虹表攻击可能如何发生:

  • 黑客发现某个社交媒体网站使用过时的哈希算法且没有任何加盐。攻击者利用 SQL 注入漏洞从网站数据库中提取用户密码的哈希值,然后使用预计算的彩虹表快速将数千个哈希值还原为纯文本密码,从而危及用户帐户安全。
  • 在例行网络监控中,黑客发现某电子商务网站在其服务器之间不安全地传输密码哈希,便使用网络嗅探工具捕获这些数据。由于此时已获得密码哈希,黑客便使用彩虹表攻击破解客户密码,进而访问其购物帐户和个人信息。

彩虹表攻击导致的数据泄露事件

彩虹表攻击已在现实世界中被用于窃取数百万条登录详细信息

例如,俄罗斯网络犯罪分子发动的 2012 年 LinkedIn 遭黑客攻击事件(新窗口)导致近 6.5 百万个用户帐户密码被盗,造成重大数据泄露。在最初发现之后,LinkedIn 于 2016 年又发现了与同一事件相关的另外 100 百万个已泄露的电子邮件地址和密码。被盗密码保护不善,缺乏加盐等额外安全措施,因此攻击者更容易使用标准彩虹表将其解密

如何防范彩虹表攻击

选择使用强大哈希函数的平台

诸如 bcrypt(新窗口) 或 Argon2(新窗口) 等安全哈希函数使用加盐(新窗口),在创建哈希之前为您的密码添加随机数据。如果没有盐值,密码的哈希将不会显示在彩虹表中,因此攻击会失败。

要了解特定服务或应用使用何种哈希函数存储密码,请查看其隐私政策(新窗口)、常见问题解答部分、支持页面、安全认证或审计报告(如有)、技术文档,或开发者资源(新窗口)。简单的互联网搜索通常即可找到答案,您也可以联系客户支持进行询问。

如果您运营自己的网站或数据库,请使用实现强哈希算法的插件或模块,保持安全设置为最新。

使用复杂密码

不要使用易于猜测的密码,而应选择由至少 12 个字符组成、包含大小写字母、数字和符号的安全密码。强密码示例:?GmmM1Z[c5:F 或 beht=ty]P:)Gf^c?p?+7。网络攻击者不太可能使用彩虹表攻击来对付如此复杂的密码。

开启多重身份验证

多重身份验证 (MFA),例如双因素身份验证 (2FA),会在密码验证之外增加至少一种身份验证形式,例如 2FA 身份验证器上的一次性代码。如果攻击者在彩虹表攻击后成功获知您的密码,他们也将无法通过后续的身份验证步骤。

此外,如果您收到意外的额外验证请求,这明显表明有人正试图进入您的帐户。您可以立即更改密码作为应对。

使用别名电子邮件地址

别名电子邮件地址(新窗口)可以保护您免受可能导致彩虹表攻击的数据泄露,因为它们与您的主要电子邮件地址没有关联。例如,您可以将主邮箱用于重要消息和财务事务,而将电子邮件别名留给安全性较低的活动,例如注册不受信任的服务。如果您的别名电子邮件地址被黑客攻击,您只需将其停用即可。

监控互联网上的数据泄露

通过随时了解最新泄露事件,您可以确定所使用的服务是否已被泄露,以及您的数据是否已泄露。这样您就可以采取主动措施,例如立即更改密码,防止黑客利用可能暴露的数据未经授权访问您的帐户

Proton Pass 如何提供帮助

Proton Pass 可以通过生成强密码(新窗口)并在一个位置进行管理来保护您免受彩虹表攻击。它还支持用于 2FA 令牌的 TOTP(基于时间的一次性密码)身份验证器。此外,该应用还提供 hide-my-email 别名,防止您的主要电子邮件地址在网络上暴露。

所有 Proton Pass 订阅用户均可使用 Pass Monitor(新窗口) 监控所有密码的安全状况,并使用 暗网监测跟踪各种来源的数据泄露。我们的安全模型采用安全的 bcrypt 哈希算法,在哈希密码之前先加盐,以阻止彩虹表攻击。此外,我们运营一项名为 Proton Sentinel 的高级安全计划,用于检测和防范帐户接管攻击

立即注册免费 Proton Pass 帐户,开始保护您的帐户免受彩虹表攻击。