当前位置: 当前位置:首页 > 娱乐 > 滚动码加密电梯卡破解正文

滚动码加密电梯卡破解

作者:知识 来源:知识 浏览: 【大 中 小】 发布时间:2026-10-17 06:04:11 评论数:

物业给的滚动门禁卡,十块钱一张,码加密电丢了补办还要等三天。破解我手里这张电梯卡用了两年,滚动塑料边角都磨白了,码加密电某天突然刷不开单元门。破解保安拿过去往机器上一贴,滚动说消磁了,码加密电得去物业重新写。破解

写卡的滚动小伙子把卡放在一个巴掌大的读卡器上,屏幕上跳出一串十六进制。码加密电他点了几下鼠标,破解卡就活了。滚动整个过程不到十秒。码加密电我问他这卡什么原理,破解他说滚动码,每刷一次码就变,防复制的。

这话让我起了兴趣。回家翻出吃灰的Proxmark3——几年前玩RFID时买的,一直没正经用过。把电梯卡往天线上一放,hf search,识别出Mifare Classic 1K。经典的老片子,2008年就被NXP的加密算法漏洞扒得底裤不剩。

真正麻烦的是滚动码。普通IC卡里存的是静态数据,扇区0块0的UID加厂商信息,扇区1往后是金额或权限。复制就是把整个dump写进白卡,完事。滚动码不一样,卡里有个计数器,每刷一次加一,读头那边也存着上次的值。你复制一张卡,两张卡的计数器不同步,刷一次就露馅——系统直接锁卡。

但滚动码不是铁板一块。我拆过三个小区、两栋写字楼的电梯系统,发现一个规律:越老的系统,滚动码越像摆设。

某回帮朋友看他家的电梯卡,读出来发现扇区里有个32位的值,每次刷卡确实在变。但变的方式很蠢——就是简单加一。更蠢的是,读头只校验这个值是否大于上次记录,不要求严格等于上次加一。这意味着你把卡dump出来,把那个值改成一个很大的数,比如0xFFFFFF00,写进白卡,能用很久。等它涨到0xFFFFFFFF溢出归零,再改一次就行。

另一种常见做法是滚码存在卡里,但读头也存一份,两边对不上就拒绝。破解思路是嗅探。拿Proxmark3在读头和卡之间抓一次完整通信,把加密后的滚码和响应全录下来。下次你拿复制卡去刷,PM3扮演中间人,把录好的响应重放给读头。读头以为卡是真的,开门。这叫重放攻击,对没有挑战-响应机制的滚动码系统一打一个准。

最离谱的是一个2015年装的门禁,滚码算法居然是卡号加时间戳取模。我盯着反汇编出来的代码看了半小时,确认没看错。这种设计等于没设计——你知道卡号,知道时间,就能算出当前码。写个小脚本,每隔几秒生成一个新码写进卡里,比原卡还勤快。

当然也有硬骨头。去年碰到一个用DESFire EV2的,真滚动码加双向认证,每张卡有独立密钥,读头每次发随机数让卡加密后返回。这种没法复制,只能把原卡拆了取出芯片焊到另一个载体上,叫“硬改”。成本高,风险大,不是普通人玩的。

说回我自己那张电梯卡。拆开一看,Mifare Classic,扇区1里果然有个每次加一的计数器。我拿PM3把计数器改成0xFFFF0000,写进一张UID卡,下楼刷——电梯动了。物业那边系统里记录的还是旧值,但读头只比较大小,不比较差值,所以没触发告警。

这事有意思的地方在于,滚动码本身不弱,弱的是实现。开发商为了省成本,用最便宜的读头和最偷懒的固件,把一套理论上能防复制的机制做成了纸糊的锁。你拿螺丝刀捅一下,它就开了。

后来我把那张改过的卡送给朋友,让他别再用物业的原卡。他问我安全吗。我说对物业安全,对你未必——哪天读头固件升级,或者物业查刷卡记录发现你的卡号在凌晨三点刷了八十次,那就不好说了。

他想了想,还是把原卡从抽屉里翻出来,继续用。改过的那张,扔进了垃圾桶。