作为普通人该如何防御暴力破解

作为普通人该如何防御暴力破解

什么是暴力破解

暴力破解是一种简单直接的攻击方式,需要不断尝试不同的密码组合来破解密码。这种攻击方法通常使用自动化工具和脚本,以极高的速度进行密码尝试,直到找到匹配的密码为止。

例如,对于锁定的行李箱密码,我们可以使用暴力破解方法来尝试所有可能的组合。对于一个3位数的行李箱密码,需要尝试的组合有1000个,而对于4位数的密码,需要尝试10000个组合。这种攻击方法基于穷举法,通过耐心的尝试,最终有可能找到正确的密码。

然而,实际应用中,暴力破解存在一些限制和挑战。首先,破解时间取决于密码的长度和复杂性。随着密码长度和复杂性的增加,破解所需的时间将显著增加,尤其是对于使用字母、数字和特殊字符的组合密码。

其次,许多系统实施了安全措施,在连续尝试多次无效密码后,会锁定账户一段时间或暂停密码尝试,从而阻止暴力破解攻击。这些安全措施包括设置登录失败计数器、延迟响应和账户锁定等。

此外,密码学和安全技术的发展可以增加密码的强度和安全性。使用加密算法、密钥管理和多因素身份验证等安全机制,可以有效防止密码被暴力破解。

然而,为了确保密码的安全性,个人在日常生活中应遵循一些最佳实践:

  • 创建足够复杂的密码,结合字母、数字和特殊字符,并避免使用常见的密码(如生日、名字等)。
  • 定期更改密码,避免长时间使用相同的密码。
  • 使用多因素身份验证,通过第二个因素(如令牌、指纹识别等)增加登录的安全性。
  • 谨慎处理个人资料,避免泄露个人信息、密码或安全问题答案。

综上所述,暴力破解虽然是一种简单直接的攻击方式,但通过采取密码安全措施和使用安全技术,可以大大提高密码的安全性和防御暴力破解的能力。

暴力破解的方法

穷举法

穷举法是指根据输入密码的设定长度、选定的字符集生成可能的密码全集,进行地毯式搜索。例如一个已知是四位并且全部由数字组成的密码,其可能共有10000种组合,因此最多尝试10000次就能找到正确的密码。理论上利用这种方法可以破解任何一种密码,但随着密码复杂度增加,破解密码的时间会指数级延长。

字典攻击法

字典式攻击是将出现频率最高的密码保存到文件中,这文件就是字典,暴破时使用字典中的这些密码去猜解。

字典式攻击适用于猜解人为设定的口令,因为人为设定受人方便记忆影响不同密码出现的概率是不一样的,12345678、password作为密码的概率比fghtsaer作为密码的概率要高得多。与穷举法相比,字典式攻击虽然损失了较小的命中率但节省了较多的时间。

什么是弱密码

在上个章节中其实也已经说了弱密码的问题,例如上节中的行李箱,它只有3位数字的密码,最多只需尝试1000次,就一定能破解该密码,但只有这类的密码算弱密码吗?我用字母和数字组成的密码就不是弱密码吗?我的回答是是不是弱密码得看情况,例如你的密码是名字拼音加生日,那这就是妥妥的弱密码,如果你说我中间还加了特殊符号,这总不算是弱密码了吧!很遗憾,它依旧是弱密码,那弱密码到底是指的什么呢?接下来我们我们一起来探讨。

究竟什么是弱密码?

弱密码是指容易被猜测、破解或暴力破解的密码,这类密码通常都缺乏足够的复杂性和强度来抵抗密码破解的攻击,弱密码具有以下几个特征:

  1. 简单性:弱密码通常是由常见的字典词、姓名、生日、连续数字等容易猜测或推测的元素组成。这些密码通常很短、缺乏复杂性和随机性。
  2. 易于猜测:弱密码往往与用户的个人信息有关,使得攻击者可以通过分析用户的社交媒体、在线个人资料等来猜测密码。
  3. 缺乏复杂性:这种密码通常没有足够的复杂性,例如缺少字母、数字、特殊字符等组合。它们通常只包含一个类型的字符,如只有小写字母或只有数字。
  4. 常见的密码:弱密码通常是一些常见的和常用的密码,例如123456、password、qwerty等。由于这些密码广泛被使用,攻击者可以通过简单的暴力破解或搭配常见密码的彩虹表进行攻击。

弱密码防御

在我看来,密码的强度在于它是否有明显的规则,例如刚刚我们说的姓名加生日,它就是一种典型的弱密码,因为它很容易被猜测到,但是我们可以通过一定的方法去增强密码的强度,在此我推荐的是古罗马凯撒大帝发明的古典密码,凯撒密码,它是一种简单的替换加密,它将密码的铭文中每一个字母向后移动偏移,将他们的位置进行替换,如果字母超过边界,则回到字头开头,

例如:’abc‘ 通过凯撒密码加密后就是’cde‘,它是以字母表为原型,但是这种方法也有缺陷,可以从密文慢慢推断出明文密码,所以也是一种具有规则的加密方式,但比不做任何措施要强。

但是我推荐的方法更为直接暴力,在凯撒密码的基础上,我们把对照物从字母表,换成其他对照物,例如键盘、喜欢的书籍等,就那键盘做例子,

  • 第一位按照键盘的上方向位移并小写,
    • 例如:’w‘ 向上位移就是x,(w的键盘上方是数字键,所以到键盘最下的字母键)
  • 第二位向下位移并大写,
    • 例如:’j’向下位移就是‘N’,
  • 第三位如果是字母就按字母的排序,对应键盘上1 - + 上的特殊符号位(总共13位从`开始),超过13从新从1开始,
    • 例如:’t’ 就是 20-13 = 7 对应键盘上的^,
  • 第四位向左位移一位 并大写,
  • 第五位向右位移一位 并小写,
  • 第六位为字母顺序的数字,
  • 第七位回归到第一位的循环,大小写顺序轮换。

这样我们就能得到一份,强度非常高的密码,这只是我虚拟的一个规则,你们可以设定自己的规则,实际上我自己所用的规则比这一份更加复杂,原始信息非常简单,经过规则处理后,已经看不出任何规则。
我们在以上面密码规则举一个例子”zhongguo” 一共8位的密码,我们来看看经过规则处理后,它会变成什么样。

  • 第一位:“z” 转化后为 “a”
  • 第二位:“h” 转化后为 ”N“
  • 第三位:“o” 转化后为 “!”
  • 第四位:“n”转化后为 “B”
  • 第五位:“g”转化后为 “h”
  • 第六位:“g” 转化后为 ”7“
  • 第七位:“u”转化后为 “M” (o的键盘上方是数字键,所以到键盘最下的字母键)
  • 第八位:“o”转化后为 ”l“
  • 转化前:“zhongguo” 转化后:”aN!Bh7Ml”

“aN!Bh7Ml” 这个密码总共有 8 个字符,其中包括大写字母、小写字母、数字和特殊字符。
我们可以为每个字符计算出其可能的选择数量:

  • 字母:26个大写字母和26个小写字母,共 52 个选择。
  • 数字:共 10 个选择(0到9)。
  • 特殊字符:例如!、@、#、$等,有许多特殊字符可供选择,假设有 30 种不同的特殊字符选择。

因此,总的组合方式可以计算为每个字符的可能选择数量的乘积:
总组合方式 = (52 + 52 + 10 + 30)^8 = 194,764,248,740,860

如果每秒钟计算机可以尝试 1000 个组合,我们可以通过将总的组合数量除以每秒尝试的数量,来估计破解密码所需的时间:

时间 = 总的组合数量 / 每秒尝试的组合数量

时间 = 194,764,248,740,860 / 1000 = 194,764,248,740.86 秒

将秒转换为更易读的单位:

时间 ≈ 2,866,829,008 分钟
时间 ≈ 47,780,483 小时
时间 ≈ 1,991,686 天
时间 ≈ 5,456 年

因此,假设每秒能够尝试 1000 个组合,破解该密码大约需要 5,456 年的时间。

由此转换出来的密码强度,无法使用密码字典攻击,只能使用穷举法来尝试暴力破解,但是穷举破解这个密码,需要花费大量时间,我们定期去更换规则,或者密码,让暴力破解基本无法攻击。从根本去解决的弱密码的问题,这也只是针对于我们普通的如何去防御暴力破解。

猜你喜欢

转载自blog.csdn.net/weixin_44369049/article/details/132073128
今日推荐