-
网络安全 | 普通人该如何防御暴力破解?
2025-01-13 11:30:35
暴力破解是一种简单直接的攻击方式,需要不断尝试不同的密码组合来破解密码。这种攻击方法通常使用自动化工具和脚本,以极高的速度进行密码尝试,直到找到匹配的密码为止。
例如,对于锁定的行李箱密码,我们可以使用暴力破解方法来尝试所有可能的组合。对于一个3位数的行李箱密码,需要尝试的组合有1000个,而对于4位数的密码,需要尝试10000个组合。这种攻击方法基于穷举法,通过耐心的尝试,最终有可能找到正确的密码。
然而,实际应用中,暴力破解存在一些限制和挑战。首先,破解时间取决于密码的长度和复杂性。随着密码长度和复杂性的增加,破解所需的时间将显著增加,尤其是对于使用字母、数字和特殊字符的组合密码。
其次,许多系统实施了安全措施,在连续尝试多次无效密码后,会锁定账户一段时间或暂停密码尝试,从而阻止暴力破解攻击。这些安全措施包括设置登录失败计数器、延迟响应和账户锁定等。
此外,密码学和安全技术的发展可以增加密码的强度和安全性。使用加密算法、密钥管理和多因素身份验证等安全机制,可以有效防止密码被暴力破解。
然而,为了确保密码的安全性,个人在日常生活中应遵循一些最佳实践:
-
创建足够复杂的密码,结合字母、数字和特殊字符,并避免使用常见的密码(如生日、名字等)。
-
-
使用多因素身份验证,通过第二个因素(如令牌、指纹识别等)增加登录的安全性。
-
谨慎处理个人资料,避免泄露个人信息、密码或安全问题答案。
综上所述,暴力破解虽然是一种简单直接的攻击方式,但通过采取密码安全措施和使用安全技术,可以大大提高密码的安全性和防御暴力破解的能力。
穷举法是指根据输入密码的设定长度、选定的字符集生成可能的密码全集,进行地毯式搜索。例如一个已知是四位并且全部由数字组成的密码,其可能共有10000种组合,因此最多尝试10000次就能找到正确的密码。理论上利用这种方法可以破解任何一种密码,但随着密码复杂度增加,破解密码的时间会指数级延长。
字典式攻击是将出现频率最高的密码保存到文件中,这文件就是字典,暴破时使用字典中的这些密码去猜解。
字典式攻击适用于猜解人为设定的口令,因为人为设定受人方便记忆影响不同密码出现的概率是不一样的,12345678、password作为密码的概率比fghtsaer作为密码的概率要高得多。与穷举法相比,字典式攻击虽然损失了较小的命中率但节省了较多的时间。
在上个章节中其实也已经说了弱密码的问题,例如上节中的行李箱,它只有3位数字的密码,最多只需尝试1000次,就一定能破解该密码,但只有这类的密码算弱密码吗?我用字母和数字组成的密码就不是弱密码吗?我的回答是是不是弱密码得看情况,例如你的密码是名字拼音加生日,那这就是妥妥的弱密码,如果你说我中间还加了特殊符号,这总不算是弱密码了吧!很遗憾,它依旧是弱密码,那弱密码到底是指的什么呢?接下来我们我们一起来探讨。
弱密码是指容易被猜测、破解或暴力破解的密码,这类密码通常都缺乏足够的复杂性和强度来抵抗密码破解的攻击,弱密码具有以下几个特征:
-
简单性:弱密码通常是由常见的字典词、姓名、生日、连续数字等容易猜测或推测的元素组成。这些密码通常很短、缺乏复杂性和随机性。
-
易于猜测:弱密码往往与用户的个人信息有关,使得攻击者可以通过分析用户的社交媒体、在线个人资料等来猜测密码。
-
缺乏复杂性:这种密码通常没有足够的复杂性,例如缺少字母、数字、特殊字符等组合。它们通常只包含一个类型的字符,如只有小写字母或只有数字。
-
常见的密码:弱密码通常是一些常见的和常用的密码,例如123456、password、qwerty等。由于这些密码广泛被使用,攻击者可以通过简单的暴力破解或搭配常见密码的彩虹表进行攻击。
在我看来,密码的强度在于它是否有明显的规则,例如刚刚我们说的姓名加生日,它就是一种典型的弱密码,因为它很容易被猜测到,但是我们可以通过一定的方法去增强密码的强度,在此我推荐的是古罗马凯撒大帝发明的古典密码,凯撒密码,它是一种简单的替换加密,它将密码的铭文中每一个字母向后移动偏移,将他们的位置进行替换,如果字母超过边界,则回到字头开头,
例如:’abc‘ 通过凯撒密码加密后就是’cde‘,它是以字母表为原型,但是这种方法也有缺陷,可以从密文慢慢推断出明文密码,所以也是一种具有规则的加密方式,但比不做任何措施要强。
但是我推荐的方法更为直接暴力,在凯撒密码的基础上,我们把对照物从字母表,换成其他对照物,例如键盘、喜欢的书籍等,就那键盘做例子,
例如:’w‘ 向上位移就是x,(w的键盘上方是数字键,所以到键盘最下的字母键)
-
第三位如果是字母就按字母的排序,对应键盘上1 - + 上的特殊符号位(总共13位从`开始),超过13从新从1开始,
例如:’t’ 就是 20-13 = 7 对应键盘上的^,
这样我们就能得到一份,强度非常高的密码,这只是我虚拟的一个规则,你们可以设定自己的规则,实际上我自己所用的规则比这一份更加复杂,原始信息非常简单,经过规则处理后,已经看不出任何规则。
我们在以上面密码规则举一个例子”zhongguo” 一共8位的密码,我们来看看经过规则处理后,它会变成什么样。
-
-
-
-
-
-
-
第七位:“u”转化后为 “M” (o的键盘上方是数字键,所以到键盘最下的字母键)
-
-
转化前:“zhongguo” 转化后:”aN!Bh7Ml”

如果每秒钟计算机可以尝试 1000 个组合,我们可以通过将总的组合数量除以每秒尝试的数量,来估计破解密码所需的时间:
时间 = 194,764,248,740,860 / 1000 = 194,764,248,740.86 秒
因此,假设每秒能够尝试 1000 个组合,破解该密码大约需要 5,456 年的时间。
由此转换出来的密码强度,无法使用密码字典攻击,只能使用穷举法来尝试暴力破解,但是穷举破解这个密码,需要花费大量时间,我们定期去更换规则,或者密码,让暴力破解基本无法攻击。从根本去解决的弱密码的问题,这也只是针对于我们普通的如何去防御暴力破解。