银行卡密码只要 6 位,为什么 Wi-Fi 密码最少得 8 位?

封面,小锁看守成堆金币的银行卡,对面巨锁铁链锁着一个小小的 Wi-Fi 信号

给朋友开手机热点,或者在家里设 Wi-Fi 密码,你大概率干过这事。

为了图省事,你随手敲了 6 个数字,123456

结果保存按钮是灰的,屏幕弹出一行红字。

「密码长度需为 8 到 63 位。」

没办法,你只能在后面硬生生补上两个数字,改成 12345678

系统满意了,提示设置成功。

这事儿你细想其实挺离谱的。

银行卡里有你的全部身家,密码是 6 位纯数字,几十年来银行从来没嫌短过。

连个破网蹭点流量,反而被卡着脖子非要 8 位起步

难道在密码学眼里,你刷的那点流量,比你银行卡里的存款还金贵?

两个数字背后,其实是两套完全相反的防守逻辑

ATM 前一个板着脸的保安竖起三根手指,另一边路由器的信号毫无遮拦地漏进空气里

先说银行卡。

6 位纯数字,一共 100 万种组合,听着确实不算多。

但问题是,谁能在 ATM 机前面把这 100 万种挨个试一遍?

根本试不了。连输错 3 次,机器咔哒一声当场吞卡,账户直接冻结。

所以银行卡的安全感,压根不在密码有多长,而在它只给 3 次机会。猜中的概率大概是三十三万分之一。

1967 年造出第一台 ATM 机的 John Shepherd-Barron,原本打算用自己的 6 位陆军编号当密码。回家跟妻子 Caroline 一商量,妻子说,6 位太长了记不住,最多 4 位。

于是全世界大部分国家的自动取款机,用了几十年的 4 位数密码。一共才 1 万种可能,但几十年过去,也没听说谁靠猜密码把 ATM 取空的。只要限制了试错次数,4 位跟 10 位区别真没那么大。

1960 年代英国厨房,丈夫举着一张纸条,妻子笑着伸出四根手指

可一转到 Wi-Fi,整个攻防逻辑彻底变了。

Wi-Fi 最大的安全死穴,在于它在架构上天然防不住**「离线字典攻击」**。

在主流的 WPA2-Personal(也就是 WPA2-PSK)协议里,设备每次连网,双方都要走一遍标准的**「四次握手」(4-Way Handshake)**。

为了不在无线信道里明文暴露密码,双方会交换各自生成的随机数(ANonceSNonce),结合密码、Wi-Fi 名字(SSID)和双方 MAC 地址,推导出一个临时通信密钥,并在握手包末尾附带一个消息完整性校验码(MIC)

只要附近有任何一张处于监听模式的无线网卡,就能原封不动把这几包 EAPOL 协议帧截获下来。

拿到这几个包含随机数与校验码的关键数据包(通常只有几 KB 大小),你的路由器就已经彻底丧失防守主动权了。

攻击者把抓到的握手包直接存入本地,挂上字典离线比对。每在本地取出一个候选密码,就用抓到的参数算一遍哈希和校验码,看看能不能对上真实握手包里的 MIC。

猜错一次,路由器不知道,猜错一千万次,路由器依然照常工作。

银行卡靠的是带有限速和锁定机制的**「在线认证」,而 WPA2 却把整个密码验证过程,拱手暴露在了毫无约束的「本地离线穷举」**面前。

那在本地离线算,速度到底有多快?

一张普通的消费级 RTX 4090 显卡,跑 WPA2 密码哈希,每秒大概 260 万次

8 位纯数字,从 0000000099999999,刚好 1 亿种组合。

1 亿除以 260 万,耗时大概 38 秒。

**不到 40 秒。**你倒杯水的功夫,8 位纯数字就全部跑完了。要是用生日,一共几万种组合,显卡只要 0.01 秒

更绝的是,很多人的 Wi-Fi 连这 38 秒都撑不过去。

因为生成密钥时用来防碰撞的「盐」,标准居然直接用了你的 Wi-Fi 名字(SSID)。早有人把常见 Wi-Fi 名(比如 TP-LINKChinaNet)配上几百万常用密码,提前算好做成了现成字典。

要是你家路由器的名字连改都没改,人家连显卡都省了,打开字典一秒对出来。平时技术人员总劝大家把默认 Wi-Fi 名字改掉,其实就是为了防止别人用现成字典查你。

一个人把发光的信件带进家门,屋里一台旧电脑正拿一大串钥匙一把一把慢慢试

那写标准的那帮专家,当年知不知道 8 位根本防不住?

心里其实门清,甚至当年就有人专门发文提醒过。

这个人叫 Robert Moskowitz,也是当年制定私网地址(就是你家路由器 192.168.x.x 开头那串)的专家之一。

2003 年 WPA 加密刚出来,Moskowitz 就发文警告,人类随手选的 8 位密码基本都在字典里,要想真挡住离线攻击,长度至少得 20 位起步

20 位。

可标准委员会最后拍板的下限,依然定在 8 位。上限 63 位倒是个纯技术限制,因为 64 位会被系统识别成底层的十六进制原始密钥。

既然 20 位才够安全,为什么标准最后还是只定了 8 位?

想想也能理解。在 2003 年,要是逼大家设 20 位长密码,很多人可能干脆就不设了。

这事一直到 2018 年才有了改观。

Wi-Fi 联盟推出新一代加密 WPA3,把协议重写了。每次试探都必须跟路由器实时交互,由守方掌管节奏。想把包抓回本地通宵穷举,这条路彻底堵死了。

兜兜转转十五年,Wi-Fi 终于学会了银行卡那一套,别人能试几次,得由防守方说了算

可惜现实里还有很多老设备,为了兼容,很多人家里依然开着老一代加密。

想给家里网络加点保障,操作其实很简单。进路由器后台看一眼,只要设备支持,优先选 WPA3。如果只能用老模式,别用纯数字和生日,挑一句只有你懂的方言或拼音短语。

银行卡敢用 6 位,是因为它只给别人 3 次机会。

Wi-Fi 要你至少 8 位,是因为它管不住别人猜多少次。

Moskowitz 二十多年前就提醒过,要真正够用的得 20 位左右。

署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)
位旅人路过 次翻阅 初次见面