当前位置:首页 > 知识

安全协议爆破

去年冬天,安全我在一个老旧小区的协议门禁系统前站了十分钟。那套系统用的爆破是RFID卡,频率13.56MHz,安全加密方式是协议最原始的固定UID广播。我拿手机NFC读了一下,爆破卡号直接弹出来,安全连密码都不用猜。协议门开了。爆破物业说这套系统装了八年,安全从没升级过。协议

这就是爆破安全协议爆破的日常面孔。不是安全什么好莱坞式的黑客入侵,就是协议有人懒得换锁。

协议为什么会“爆”

安全协议的爆破本质是一套约定好的对话规则。客户端说“我是A”,服务器说“证明给我看”,客户端掏出一个凭证,服务器验证通过。问题出在“凭证”这个东西上——它可能太短、太 predictable、或者验证逻辑本身有漏洞。

WEP加密是经典案例。它用RC4流密码,但IV(初始化向量)只有24位,在一个繁忙的网络里几小时就会重复。重复的IV意味着密钥流重复,攻击者用XOR就能还原明文。2001年Fluhrer和Shamir发了论文,2004年有人用普通笔记本在公交车上跑了几分钟就破了。WEP不是被“破解”的,它是设计时就漏了底。

更近的例子是WPA2的KRACK攻击。2017年,比利时研究员Mathy Vanhoef发现WPA2的四次握手可以被重放。攻击者诱导客户端重装密钥,然后解密数据。这不是密码学被攻破,是协议状态机没处理好。Vanhoef的论文写得极其克制,但字里行间能看出他对实现者的不满——这么明显的状态漏洞,居然在标准里躺了十几年。

爆破工具箱里有什么

实际动手时,工具比理论直白得多。Aircrack-ng套件跑WEP,抓够IV就能算密钥。Hashcat跑字典,把握手包里的PMKID拎出来暴力比对。Reaver专攻WPS的PIN码,因为WPS的8位PIN分两段验证,前四位错了会返回EAP-NACK,攻击者能在一万次尝试内锁定前四位,再试一千次搞定后四位。很多路由器出厂默认开WPS,用户根本不知道。

我试过用Reaver跑一台TP-Link。PIN码前四位是“1234”,后四位试了不到两百次就中了。整个过程四十分钟,路由器就在隔壁房间,信号满格。那台路由器固件版本是2013年的,厂商早就不更新了。

蓝牙也有类似故事。BLE的配对协议在4.0和4.1版本里允许降级到Just Works模式,没有中间人保护。2019年的KNOB攻击就是强制协商弱密钥,然后暴力破解。蓝牙SIG后来改了协议,但存量设备改不了。

为什么这些漏洞能活这么久

成本。改协议要动固件、要重新认证、要通知用户。一个门禁系统厂商的固件工程师可能就两个人,忙着给新项目写代码,老系统的安全补丁排不上优先级。用户那边更简单——门能开就行,谁管它怎么开的。

我见过一个写字楼的梯控系统,用的是Mifare Classic卡。这种卡的Crypto-1算法2008年就被逆向工程了,密钥恢复只要几分钟。但写字楼物业说换系统要停梯三天,业主投诉受不了。于是继续用。安全协议爆破的门槛低到令人尴尬,但防守方的惰性更高。

有个做渗透测试的朋友跟我说,他接的活儿里七成以上是“客户知道有问题但不想动”。他写报告时会把风险等级标成“高危”,客户回邮件说“能不能改成中危,不然审计过不了”。他照改了。协议还是那个协议,漏洞还是那个漏洞。

爆破之后

我后来没再碰那个小区门禁。但每次路过,都会想一件事:那套系统里存着几百户的卡号、进出时间、甚至电梯楼层权限。这些数据在RFID广播里裸奔了八年。没人爆破它,只是因为没人想爆。一旦有人想,门就是纸糊的。

安全协议爆破不是魔法。它是一系列具体的技术选择——IV长度、密钥协商流程、状态机实现、默认配置——堆叠出来的结果。每一个选择背后都有当时的妥协:性能、成本、兼容性、开发周期。妥协积累到一定程度,协议就爆了。爆破的人只是找到了那个积累点。

下次你刷门禁卡的时候,可以想想那张卡在空气里喊了什么。它可能喊得很大声。

分享到: