游客发表
去年冬天,黑客一个做运维的软件朋友给我看了一段日志。某台服务器在凌晨三点被登录了十七次,密码每次密码都不一样。破解他以为是黑客撞库,查了源IP,软件发现来自一台被入侵的密码家用路由器。攻击者没用什么高深漏洞,破解只是黑客跑了一个密码破解器,字典里装着三千万条常见密码组合。软件
密码破解器不是密码电影里那种绿字黑屏的魔法工具。它本质上是破解自动化尝试程序,把猜测过程从手动敲键盘变成每秒几千次。黑客最常见的软件三类:字典攻击、暴力破解、密码彩虹表。字典攻击最省事——拿泄露的密码库当弹药,比如“123456”“password”“qwerty”这类。暴力破解是穷举所有字符组合,八位纯数字几小时能跑完,但八位大小写字母加符号,用普通显卡得跑上几百年。彩虹表是预计算哈希值的查找表,牺牲存储换时间。
我试过用Hashcat跑一个六位纯数字的ZIP密码。笔记本的集成显卡,每秒大约二十万次尝试。六位数字总共一百万种可能,五秒就出来了。换成八位混合字符,理论上是六万亿种组合,按这个速度要跑九年。所以真实攻击者不会硬碰硬,他们用规则引擎——比如知道目标喜欢用生日加感叹号,就把“19900101!”这类模式优先排进队列。
有个细节很多人忽略:密码破解的速度不取决于软件,取决于硬件。一台装了八张RTX 4090的机器,跑NTLM哈希每秒能到三万亿次。云服务按小时租GPU,花几十美元就能跑完一个中等强度的字典。去年有个案例,某公司数据库泄露,六位以下密码的用户在四十八小时内全部被攻破,八位以上的撑了三个月——不是因为算法强,是因为攻击者觉得不划算,转去撞其他库了。
防御手段其实很朴素。加盐——每个密码存哈希前混入随机字符串,让彩虹表失效。慢哈希——用bcrypt或argon2,故意让每次计算耗时零点几秒,暴力破解的性价比直接崩掉。还有一条:别复用密码。我见过一个用户,邮箱密码和网银密码一样,邮箱被撞开后,攻击者用“忘记密码”重置了网银。破解器没直接破网银,但绕过去了。
说回那个运维朋友。他后来查清楚了,那台家用路由器用的是出厂默认密码“admin”。攻击者扫到开放端口,试了三次就进去了。三千万条字典根本没用上。最坚固的加密算法,往往败给一个懒得改的默认值。
密码破解器不会消失,因为密码本身就是一个妥协方案。只要人还在用“名字+年份”当密码,字典攻击就永远有效。真正的问题不是工具多强,而是我们总在便利和安全之间选便利。下次设置密码时,想想那台凌晨三点被登录的服务器——它本可以不被攻破,如果那个路由器主人花三十秒改掉默认密码。
```友情链接