什么是暴力破解?

暴力破解也可称为穷举法、枚举法,是一种比较流行的密码破译方法,也就是将密码进行一一推算直到找出正确的密码为止。比如一个6位并且全部由数字组成的密码,可能有100万种组合,也就是说最多需要尝试100万次才能找到正确的密码,但也有可能尝试几次后就能找出正确的密码。从理论上来说,只要字典足够庞大,枚举总是能够成功的,也就是说任何密码都能被破解,只是时间的问题。

而暴力破解也是一种常见的网络安全攻击方法,它利用计算机程序自动尝试大量的密码组合来破解密码。这种攻击方法通常用于获取未经授权的访问权限,如入侵网络系统或个人账户。

力破解的原理

暴力破解利用计算机程序自动化地生成可能的密码组合,并将其提交到目标系统进行验证。

这种攻击方法基于以下几个假设:

密码是由字符集合组成的:密码通常由字母、数字和符号组成,因此暴力破解程序将根据这些字符集合生成所有可能的密码组合。

密码长度是有限的:由于密码长度有限,暴力破解程序可以尝试所有可能的密码组合,直到找到正确的密码为止。

密码是可预测的:在某些情况下,密码可能是根据常见的模式或规律生成的,因此暴力破解程序可以利用这些规律来更快地破解密码。

黑客通过暴力破解攻击能得到什么?

使用暴力破解的攻击者必须付出一些努力才能让阴谋得逞。虽然技术的进步确实让这种攻击实施起来更容易,但您仍有可能会问:为什么有人会这样做?

以下是黑客通过暴力破解攻击可以获得的好处:

  1. 通过广告或收集活动数据来获利
  2. 窃取个人数据和贵重物品
  3. 传播恶意软件,造成破坏
  4. 劫持您的系统,进行恶意活动
  5. 破坏网站声誉

通过广告或收集活动数据来获利。

黑客可以与其他人一起利用网站赚取广告佣金。常用的方法包括:

  1. 在流量大的网站上投放垃圾广告,每次访客点击或查看这些广告时,他们都能赚钱。
  2. 将网站的流量重新路由到受委托的广告网站。
  3. 使用活动跟踪恶意软件(通常是间谍软件)感染网站或其访客的设备。未经您同意便将您的数据出售给广告商以帮助其改善营销状况。

窃取个人数据和贵重物品。

入侵在线账户就像打开银行保险库:从银行账户到税务信息,一切都可以在网上找到。对于犯罪分子来说,只需成功入侵一次,即可窃取您的身份信息、金钱,或者出售您的私人凭据以非法牟利。有时,企业级数据泄露会导致整个组织的敏感数据库暴露出来。

传播恶意软件,只为造成破坏。

如果黑客想要制造麻烦或练习技能,他们可能会将正规网站的流量重定向到恶意网站,也可能会使用安装在访客电脑上的隐藏恶意软件来直接感染网站。

劫持您的系统,进行恶意活动。

当一台机器不够用时,为了加快攻击速度,黑客会控制一组受害者设备,构建一个僵尸网络。恶意软件会渗透进您的电脑、移动设备或在线账户,实施垃圾邮件钓鱼和暴力破解攻击等活动。如果您未安装反病毒系统,被感染的风险会更大。

破坏网站声誉。

如果您运营一个网站并成为恶意破坏的目标,网络犯罪分子可能会决定在您的网站上投放淫秽内容。这可能包括暴力、色情或种族歧视性质的文字、图像和音频。

暴力破解攻击的类型

每次暴力破解攻击都会使用不同的方法来窃取您的敏感数据。您可能会遇到以下任何一种常见的暴力破解方法:

  1. 简单的暴力破解攻击
  2. 字典式攻击
  3. 混合暴力破解攻击
  4. 反向暴力破解攻击
  5. 撞库攻击

简单的暴力破解攻击:黑客试图在完全不借助软件工具或其他手段的情况下,从逻辑上猜测您的凭据。这类攻击可以破解极其简单的密码和 PIN 码。例如,设置为“guest12345”的密码。

字典式攻击:在标准攻击中,黑客会选择一个目标,并针对该用户名运行可能的密码。这些方法被称为字典式攻击。字典式攻击是最基本的暴力破解攻击方法。虽然这类攻击本身不一定是暴力破解攻击,但通常被用作破解密码的一个重要手段。一些黑客会整个运行未经删减的词典,并在单词中增加特殊字符和数字,或者使用特殊的单词词典,但这种类型的顺序攻击非常繁琐。

混合暴力破解攻击:黑客将外部手段与自己合乎逻辑的猜测相结合,试图入侵目标账户。混合攻击通常是将字典式攻击和暴力破解攻击结合起来。这类攻击被用于破解由常见单词与随机字符组合而成的密码。像 NewYork1993 或 Spike1234 这样的密码就属于这种性质的暴力破解攻击。

反向暴力破解攻击:顾名思义,反向暴力破解攻击将攻击策略反向执行,从已知密码开始。然后,黑客会搜索数百万个用户名,直至找到匹配的那一个。使用这种手段的很多犯罪分子都是从因数据泄露而被公布到网上的密码开始的。

撞库攻击:如果黑客知道了一个网站的用户名和密码组合,他们也会用这个组合在很多其他网站上尝试。很多用户习惯在很多不同的网站上重复使用相同的登录信息,因而容易沦为这种攻击的专属目标。

使用工具进行暴力破解

猜测特定用户或网站的密码可能需要很长时间,因此,黑客开发出了工具以更快完成这一任务。

自动化工具为暴力破解攻击提供了有效辅助。这种工具可以快速执行猜测程序,旨在创建所有可能的密码并尝试使用它们。暴力破解软件能在一秒内破解由一个字典单词组成的密码。

这些工具中都编入了变通方法,以便:

  1. 妨碍多种计算机协议(如 FTP、MySQL、SMPT 和 Telnet)
  2. 让黑客可以破解无线调制解调器。
  3. 识别弱密码
  4. 解密加密存储中的密码。
  5. 将单词转换为黑客语,例如,“don'thackme”变成“d0n7H4cKm3”。
  6. 运行所有可能的字符组合。
  7. 实施词典式攻击。

有些工具会扫描预计算的彩虹表,以获取已知散列函数的输入和输出。这些“散列函数”是基于算法的加密方法,可以将密码转换为较长且长度固定的字母和数字序列。换句话说,彩虹表去除了暴力破解攻击中最难的部分,加快了攻击过程。

GPU 加快暴力破解尝试

运行暴力破解密码的软件需要大量算力。不幸的是,黑客已经找到了硬件解决方案,使这部分工作变得更加容易。

CPU 和图形处理单元 (GPU) 结合使用可加快计算速度。通过将数千个计算核心添加到 GPU 中执行处理操作,系统能够同时处理多个任务。GPU 处理用于分析、工程和其他计算密集型应用。黑客使用这种方法破解密码的速度比单独使用 CPU 要快 250 倍。

那么,破解一个密码需要多长时间?例如,由 6 个字符组成、包含数字的密码大约有 20 亿种可能的组合。功能强大的 CPU 每秒可尝试 30 个密码,破解它需要两年以上。如果在这台计算机上添加一块强大的 GPU 卡,每秒就能尝试 7,100 个密码,只需 3.5 天就能破解该密码。

如何防止暴力破解?

为了保护自己和网络的安全,您需要采取预防措施并帮助他人也这样做。用户行为和网络安全系统都需要加强。

无论是 IT 专家还是普通用户,都需要牢记以下几条一般建议:

  1. 使用高级用户名和密码。为了有效抵御攻击,应使用比 admin 和 password1234 强度更高的凭据来保护自己。这种组合的强度越高,破解难度就越大。
  2. 删除任何闲置不用的高权限账户。这些账户在网络上相当于锁很容易撬开的大门。账户不维护就会形成漏洞,将您置于风险之中。应尽快删除这些账户。

一旦您掌握了基本知识,您就会想要增强自己的安全,同时也让用户这样去做。

我们将从您可以在后端执行的操作开始,然后向您分享培养安全习惯的建议。

利用被动式后端防护措施来保护密码

高加密率:要使暴力破解攻击更难成功,系统管理员应确保其系统密码的加密方法使用尽可能最高的加密率,例如 256 位加密。加密方案中的位数越多,密码就越难破解。

在散列中加盐:管理员还应该在密码本身中添加一个随机的字母和数字字符串(称为盐),以使密码散列实现随机化。此字符串应存储在一个单独的数据库中,并在散列之前检索并添加到密码中。通过在散列中加盐,用户就能通过相同的密码实现不同的散列。

双重身份验证 (2FA):此外,管理员还可以要求进行双重身份验证,并且安装入侵检测系统以检测暴力破解攻击。这需要用户使用第二个身份验证因子来跟踪登录尝试,如物理 USB 密钥或指纹生物识别扫描。

限制登录重试次数:限制尝试登录的次数也可以降低遭到暴力破解攻击的风险。例如,要求在三次尝试内输入正确的密码,否则将用户锁定几分钟,这样会造成明显的延迟,使黑客转向更容易得手的目标。

多次登录尝试后锁定账户:如果黑客可以无限制地继续重试密码,即使在短暂锁定之后,他们也可以再次尝试。锁定账户并要求用户联系 IT 团队进行解锁,可以阻止黑客的行为。短暂锁定对用户来说更方便,但方便可能意味着漏洞。为了达到平衡,如果短暂锁定后尝试失败次数过多,您可以考虑使用长期锁定。

限制重复登录的速率:您可以通过在每次登录尝试之间设置一定的间隔,进一步减慢攻击者的攻击速度。一旦登录失败,计时器可以拒绝登录,经过一小段时间再允许重试。这让您的实时监控团队能够有时间发现并采取措施来阻止这种威胁。如果不值得等待,一些黑客可能会停止尝试。

重复登录尝试后需要验证码:手动验证可阻止机器人通过暴力破解窃取您的数据。验证码有多种类型,包括重新输入图像中的文字、选中复选框或识别图片中的对象。您可以在首次登录之前和每次登录尝试失败之后,使用任意类型的验证码来加强保护。

使用 IP 黑名单阻止已知的攻击者。确保管理人员持续更新此名单。

利用主动式 IT 支持防护措施来保护密码

密码安全宣传教育:用户行为对密码安全至关重要。对用户进行安全实践和工具方面的宣传教育,帮助他们管理好自己的密码。由于用户往往为图方便而不顾安全,因此一定要帮助他们学会使用方便的工具来保护自己的安全。

实时监控账户以发现异常活动:奇怪的登录位置、过多的登录尝试等等。试着找出异常活动的趋势,并采取措施实时阻止任何潜在攻击者。注意 IP 地址阻止情况、账户锁定,并联系用户以确定账户活动是否合法(如果看起来可疑)。

用户如何增强密码以抵御暴力破解攻击

作为用户,您可以采取很多措施来加强在数字世界中的自我保护。抵御密码攻击的最好方法是尽可能提高密码的强度。

暴力破解密码需要时间。因此,您的目标是确保自己的密码尽可能延长这些攻击得逞所需的时间,因为所需时间太长而不值得,大多数黑客便会放弃攻击并转向其他目标。

以下是增强密码以抵御暴力破解攻击的几种方法:

设置包含不同字符类型的较长密码。如果有可能,用户应选择 10 个字符的密码,并且包含符号或数字。这样会产生 171.3 个一百万的三次方 (1.71 x 1020) 种可能性。如果使用 GPU 处理器每秒尝试 103 亿个散列值,破解密码大约需要 526 年。然而,超级计算机可以在几周内完成破解。按照这种逻辑,密码包含的字符越多,破解难度就越大。

复杂的密码短语。但是,并非所有网站都接受这么长的密码,因此用户应该选择复杂的密码短语,而不是单个单词。字典式攻击专门针对单个单词的短语构建,几乎不费吹灰之力就可以破解。密码短语是由多个单词或片段组成的密码,应在其中加入额外字符和特殊的字符类型。

密码的创建规则。最安全的密码是那些您自己能记住但别人看不懂的密码。在使用密码短语时,请考虑使用截短词,比如用“wd”代替“wood”,从而创建出一个只有您自己才能理解的字符串。还可以去掉单词中的元音字母或只使用每个单词的前两个字母来创建密码短语。

不要选择常用密码。重要的是避免使用最常见的密码,并且经常更改。

为您使用的每个网站设置唯一密码。为了避免成为撞库攻击的受害者,切勿重复使用密码。要提高安全等级,可以针对每个网站设置不同的用户名,这样即使一个账户被入侵,也可以防止其他账户受到攻击。

使用密码管理器。安装密码管理器可以自动创建并跟踪您的在线登录信息。只要先登录密码管理器,即可访问所有账户。这样一来,您就可以针对自己访问的所有网站创建极长且复杂的密码,并且安全地存储,而您只需要记住密码管理器的一个密码就够了。

总之,暴力破解是一种非常危险的攻击方式,可以对个人、企业和组织造成严重的后果。为了保护自己免受暴力破解攻击,我们应该采取一系列的安全措施,例如使用强密码、多因素身份验证和网络安全设备,以及实施访问控制策略和安全培训和意识提高活动。

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐