安全小课堂丨什么是暴力破解?如何防止暴力破解

什么是暴力破解?

暴力破解也可称为穷举法、枚举法,是一种比较流行的密码破译方法,也就是将密码进行一一推算直到找出正确的密码为止。比如一个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”,从而创建出一个只有您自己才能理解的字符串。还可以去掉单词中的元音字母或只使用每个单词的前两个字母来创建密码短语。

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

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/2480.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JWT原理解析

一、概述 虽然现在很多的开发框架会支持JWT的使用,但是对JWT还是没有一个详细的了解,有很多疑惑: JWT比之前的session或者token有什么好处?JWT的构成元素是什么?JWT从生成到使用的详细流程? 二、 JWT 2…

SPI Flash and External SPI RAM(基于ESP32)

主要参考资料: 乐鑫ESP-IDF资料SPI Flash API: https://docs.espressif.com/projects/esp-idf/zh_CN/v5.1/esp32s3/api-reference/peripherals/spi_flash/index.html 乐鑫ESP-IDF资料SPI Flash and External SPI RAM Configuration: https://docs.espressif.com/pro…

场景 - 分库分表

分什么 数据量大分表,并发大分库 分表字段如何选择 如果对交易订单进行分表,可以选择的东西很多,比如说商户id,用户id,地区等等 分表的时候要考虑到数据倾斜问题 数据倾斜 比如说按商户号进行分表,一共…

pnpm 安装后 node_modules 是什么结构?为什么 webpack 不识别 pnpm 安装的包?

本篇研究:使用 pnpm 安装依赖时,node_modules 下是什么结构 回顾 npm3 之前:依赖树 缺点: frequently packages were creating too deep dependency trees, which caused long directory paths issue on Windowspackages were c…

Day 20 Linux的WEB服务——apache

WEB服务简介 目前主流的web服务器软件 Linux:apache , nginx Windows-server:IIS 服务器安装nginx或apache后,叫做web服务器(又称WWW服务器) web服务器软件属于C/S框架模型 web服务器是一种被动程序只…

薄板样条插值TPS原理以及torch和opencv实现

薄板样条插值TPS原理以及torch和opencv实现 1、薄板样条插值TPS原理概述原理以及公式推导2、torch实现3、opencv实现1、薄板样条插值TPS原理 概述 薄板样条(Thin Plate Spline),简称TPS,是一种插值方法,可找到通过所有给定点的“最小弯曲”光滑曲面。因为它一般都是基于…

UE4网络图片加载库(带内存缓存和磁盘缓存)

UE4网络图片加载库,带内存缓存和磁盘缓存,支持自定义缓存大小,支持蓝图和C++代码调用 1、调用示例 2、对外暴露函数 3、源代码-网络模块 KeImageNet.h // Fill out your copyright notice in the Description page of Project Settings.#pragma once#include "CoreM…

Vue基于高德地图API封装一个地图组件

一、参考资料 高德开放平台 | 高德地图API (amap.com) 二、安装及配置 pnpm i vuemap/vue-amap --save man.ts 密钥及安全密钥需要自己到高德地图开放平台控制台获取. import { createApp } from vue import App from ./App.vue import router from ./router i…

java实现解析html获取图片或视频url

一、前言 有时在实际项目中,比如发布某篇文章,需要取文章中的某张图片作为封面,那么此时需要文章内容,获取html内容中的图片地址作为封面,下面讲下如何获取html中的图片或视频地址。 二、实现 1.先定义一个工具类&…

Python学习教程(Python学习路线+Python学习视频):Python数据结构

数据结构引言: 数据结构是组织数据的方式,以便能够更好的存储和获取数据。数据结构定义数据之间的关系和对这些数据的操作方式。数据结构屏蔽了数据存储和操作的细节,让程序员能更好的处理业务逻辑,同时拥有快速的数据存储和获取方…

android openGL ES详解

1、渲染线程与主线程的通信 两个线程之间的通信可以用如下方法: 在主线程中的 GLSurfaceView 实例可以调用 queueEvent( )方法传递一个 Runnable 给后台渲染线程,渲染线程可以调用 Activity 的 runOnUIThread()来传递事件 (event) 给主线程。 2、顶点…

Redhawk:ATE如何产生top level sta file

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧? 拾陆楼知识星球入口 相关文章链接 redhawk: create STA file 在“redhawk: create STA file”一文中介绍了ate的用法,可以应对block level的设计,但当需要做top level分析时&

构建安全高效的前端权限控制系统

✨✨谢谢大家捧场,祝屏幕前的小伙伴们每天都有好运相伴左右,一定要天天开心哦!✨✨ 🎈🎈作者主页: 喔的嘛呀🎈🎈 ✨✨ 帅哥美女们,我们共同加油!一起进步&am…

单片机学习过程

继电器光耦隔离电压转换步进电机直流电机 arduino是最好用的一种,他提供了完整的设备库文件,任何外部设备只要查找相应的库,就可以很方便的使用 , 但是如果不去学习51 或stm32 或 嵌入式玩玩还可以,如果碰到没有实现的…

使用 IPAM 解决方案简化分布式网络管理

随着组织在数字领域的全球扩张,分布式网络是不可避免的,这意味着,随着 IT 基础设施的发展,组织需要适应,这包括在不断增长的系统需求、应用程序堆栈、各种协议和安全防御中监控、现代化和简化流程和资源。在有效管理现…

盲人过马路安全:科技力量赋予“隐形守护者”

作为一名资深记者,我始终关注着社会各群体的生活现状,尤其是那些面临特殊挑战的人群。今天,我想聚焦一个看似平常却对盲人构成重大困扰的日常场景——过马路,以及一款名为蝙蝠避障的辅助应用如何成为他们的盲人过马路安全的守护者…

自制Apache-Doris 2.0.4镜像Docker部署一Fe和一Be集群及遇到的问题解决

自制Apache-Doris 2.0.4镜像Docker部署一Fe和一Be集群及遇到的问题解决 文章目录 1.前言2.doris是什么?2.1简介2.2介绍2.3使用场景2.4架构 3.官网4.构建部署4.1 构建环境4.2 doris2.0.4的fe和be镜像构建4.2.1 fe2.0.4镜像构建脚本4.2.2 be2.0.4镜像构建4.2.3 启动脚…

FebHost:科技企业如何规划并注册.AI域名?

为确保企业使用.AI域名的方式准确反映其对人工智能技术的关注,企业应考虑以下步骤: 了解法律和合规要求: 第一步是了解与 .AI 域名相关的独特法律和合规要求。由于.AI域名源于安圭拉,企业必须遵守安圭拉的限制和法律规定。这包括…

C语言 字符类型

下面 我们来说字符类型 我们来看这个 保险单 金额 和 总额 都可以用数字类型 而性别则需要字符型 字符数据的存储 – ASCI码 字符类型 char 就是专为存储字符(如字母,标点和数字)而设计的类型。 使用单引号包含单个字符或转义字符去表示一个 char 类型的常量。 …

李沐56_门控循环单元——自学笔记

关注每一个序列 1.不是每个观察值都是同等重要 2.想只记住的观察需要:能关注的机制(更新门 update gate)、能遗忘的机制(重置门 reset gate) !pip install --upgrade d2l0.17.5 #d2l需要更新import torch from tor…