我来分享,密码学中常见的几种攻击和防御的方法

今天你的目标是眼前这座坚固的金库,里面存放着蟹老板视为命根子的银行卡密码。金库的锁是一串六位数字密码,看起来简单,却暗藏玄机。

你决定速战速决,化身闪电侠,手指在键盘上化作残影,从000000开始,以每秒数次的频率疯狂尝试。一个、两个……你心中默念:总有一个能撞上。恭喜你,这一刻你学会了暴力破解——用最直接、最笨拙却也最彻底的方式,穷尽所有可能的组合来寻找那唯一的答案。


但现实很快给你上了一课。仅仅试到第五次,金库上方突然红光闪烁,刺耳的警报声响彻房间,系统屏幕上冷冷地跳出一行字:“尝试次数过多,锁定十分钟。”恭喜你,你也见识到了什么是频率限制防御——系统通过监控并限制短时间内密码尝试的次数,让那种毫无头绪、狂轰滥炸式的猜测变得毫无用武之地。


吃一堑长一智。你意识到不能再这样蛮干,必须用上脑子。既然机器不让你乱试,那就只试那些“最有可能”的密码。你收起急躁,转而扮演起侦探的角色,悄悄潜入蟹老板的生活圈。你从他常去的餐厅、扔掉的快递单、社交媒体动态,甚至从他邻居的闲聊中,一点一点拼凑信息:蟹老板的生日、妻子的生日、儿子的学号、身份证后六位、结婚纪念日、宠物小蜗的名字、他总挂在嘴边的幸运数字777……

所有这些碎片被你仔细整理、筛选、排列组合,最终汇集成一份精心编排的清单——一本为你量身定制的“黑客字典”。你深吸一口气,按照字典里的顺序,一个个尝试输入。第一次,错误;第二次,错误;第三次,当最后一个数字输入完毕,金库内部传来一阵低沉而悦耳的机械转动声,厚重的大门缓缓向两侧滑开。恭喜你,你掌握了字典攻击——基于对目标的了解,构建针对性密码库,从而大幅提升破解效率,直击要害。


胜利的喜悦还没持续三秒,当你冲进金库,眼前的景象却让你愣在原地:金库中央没有保险柜,没有成堆的现金,只有一张陈旧泛黄的纸条,和一台外壳斑驳、正发出微弱嗡嗡声的古怪机器。

纸条上赫然写着三个大字:“哈希值”,下面是一串犹如天书的字符:`a1b2c3d4e5...`。而那台机器,外壳上刻着“哈希函数”四个字。


你好奇地撕下一张纸,写上“hello”塞进机器入口。机器一阵轻颤,吐出的纸条上是一串完全不同的乱码。你又写上“hello”,结果吐出的字符和第一次一模一样。你试着写上“hell0”(把o换成数字0),输出的字符又变得截然不同。几次实验后,你明白了:这台机器像一个具有严格规则的魔法黑箱——相同的输入,永远产生相同的输出;哪怕输入只改变一个字符,输出就会天差地别。最关键的是,这个过程是单向的:你可以轻易将文字变成那串乱码,但无论如何,都无法从那串乱码倒推出原来的文字。


你恍然大悟:蟹老板的银行卡密码根本没有直接存放在这里。金库里的这串“哈希值”,其实是密码通过这台哈希函数机器计算后留下的唯一“指纹”。就像你把不同的水果榨成汁,可以得到不同的果汁,但绝无可能从一杯苹果汁还原出原来的苹果长什么样、有多大、是红是青。哈希函数就是那台榨汁机,而哈希值就是那杯无法回溯的“果汁”。

难道这条路彻底被封死了?


不,你没有放弃。既然不能从果汁反推水果,那就换一种思路:提前准备好世界上所有可能的水果,每一种都榨成汁,把“水果–果汁”的对应关系全部记录下来。你立刻行动起来,将你的黑客字典极速扩充,囊括了一亿种最常用、最可能的密码组合。然后,你开始了浩大的工程:将这一亿个密码依次输入哈希函数,机器日夜不休地嗡嗡运转,吐出了一亿个对应的哈希值。

你将这一亿对“密码–哈希值”精心编目,建成一张庞大无比的映射关系表,并为它起了一个浪漫又危险的名字:彩虹表。接着,你拿起金库中那张纸条上的哈希值,开始在彩虹表的海洋里进行检索……匹配成功!一条记录赫然对应。通过它,你反向查到了那个唯一的原始密码。恭喜你,你领悟了彩虹表攻击——通过预先计算并存储海量哈希映射,在需要时实现闪电般的反向查询,绕过哈希的单向保护。


但蟹老板显然不是省油的灯。他早就料到有人会用预计算表这一招,于是给那台哈希函数机器进行了一次关键升级:现在,每次计算哈希之前,机器都会自动生成一串随机的、毫无规律的字符,把它混入你的原始密码中,再进行计算。这段随机字符,被称为“盐”。

这样一来,即便用户的原始密码相同,由于“盐”不同,最终生成的哈希值也完全不同。你辛苦制备的那张针对无盐哈希的彩虹表,面对这“加了盐”的哈希值,瞬间变成了一堆废纸。恭喜你,你也见识到了哈希加盐算法——通过引入随机性,让每个密码的哈希值都独一无二,彻底粉碎了预计算表的攻击效率。


技术的攻防似乎陷入了僵局。然而,聪明的你决定不再正面强攻这把“咸味十足”的超级锁,而是去寻找一把能开很多锁的“wàn néng yào shi”。你想到,大多数人都有惰性,为了记忆方便,往往会在不同的网站、APP使用同一套用户名和密码。

于是,你的目光从铜墙铁壁的银行系统移开,投向了网络世界边缘一个不起眼的角落:一个名为“四三三九小游戏”的网站。它的安全防护形同虚设,你几乎没费什么力气,就突破了其脆弱的登录系统,从中提取出了蟹老板在该网站注册的账号和密码。

你用这套凭证,尝试登录蟹老板的银行账户——成功了!恭喜你,你学会了旁站攻击——通过攻击安全防护薄弱的相关或次要站点,获取用户凭证,再利用人们密码复用(撞库)的习惯,攻破其更重要的核心账户。


接连失守的蟹老板,终于祭出了他自认的终极防线:双重验证。现在,即便你知道正确的密码,登录时系统还会向他的手机发送一个一次性的、动态变化的验证码。没有这个码,账户依然固若金汤。

真的无计可施了吗?

你露出了微笑。你早就注意到,蟹老板的家人在短视频平台上非常活跃,经常发布生活片段。你从中收集了几段蟹老板随口说话的音频:“今天天气不错”、“嗯,就这样吧”、“好的,再见”。

你将这几段音频投喂给一个先进的AI语音克隆模型。短短三秒钟,AI便学习并完美复刻了蟹老板的声纹特征。你用一个伪装成银行客服的号码,拨通了蟹老板的电话。电话接通后,听筒里传出了与蟹老板本人几乎毫无二致的声音,语气焦急而真实:“喂,是我!我手机刚才不小心丢了,现在急用钱转账,快把银行刚刚发到你手机上的验证码念给我一下!”

电话那头的家人丝毫没有起疑,迅速报出了那串六位数字。随着验证码的输入,最后一道防线土崩瓦解,整个系统向你彻底敞开。


所以,你看,在AI技术日新月异、愈发强大的今天,最脆弱、最容易突破的环节,往往不再是系统本身的加密算法、验证机制或防火墙。那个最关键的漏洞,常常就是坐在屏幕前、依靠习惯和信任行事的人。安全从来都不只是一个纯粹的技术问题,它更是一场关于人性、心理与信任的复杂博弈。

发表于:2026-02-10 13:32
0个回复
  • 消灭零回复
您还没有登录,登录后才可回复。 登录 注册