第三代无漏洞卡解密
第三代无漏洞卡,第代洞说白了就是无漏把Mifare Classic那套被摸透的加密逻辑整个换掉。前两代卡被Proxmark3按在地上摩擦了十几年,解密nested attack、第代洞darkside、无漏hardnested,解密随便挑一个都能在几分钟内把密钥揪出来。第代洞第三代卡不是无漏打补丁,是解密换地基。
我第一次拿到这种卡是第代洞在一个做门禁系统的朋友那儿。他递给我一张白卡,无漏说“你试试”。解密Proxmark3接上,第代洞mfoc跑起来,无漏十分钟过去,解密一个扇区都没出来。这不对劲。以前再硬的卡,至少能嗅探到一些交互痕迹,这张卡安静得像块石头。
它到底改了什么
核心变化在认证环节。Mifare Classic用的是CRYPTO1流密码,密钥48位,被逆向得连底裤都不剩。第三代卡换成了一套基于AES的挑战应答机制,每次认证的随机数由卡端生成,密钥不在空中明文传输,也不参与线性运算。你抓到的交互数据,每次都不一样,重放攻击直接废掉。
更狠的是密钥管理。老卡的密钥存在扇区尾部,读出来就完事。新卡把密钥存在独立的安全元件里,外部接口只暴露认证结果,不暴露密钥本身。暴力穷举?AES-128的密钥空间是3.4×10³⁸,拿什么穷。
实际破解尝试
我试过几种路子。中间人攻击——在读卡器和卡之间插一个透明桥接,截获认证过程。问题是挑战应答的随机数由卡端生成,你截获了也没法伪造下一次的响应。重放?每次随机数不同,重放等于自报家门。
侧信道攻击倒是有理论可能。功耗分析或者电磁分析,理论上能从AES运算的功耗曲线里抠出密钥。但这需要物理接触卡芯片,拆开卡、打磨、探针台,一套下来成本够买一箱新卡。而且现在的第三代卡芯片做了功耗均衡,曲线平得像心电图停了。
还有一种思路是攻击读卡器端。很多门禁系统的读卡器固件写得稀烂,认证逻辑在MCU里跑,密钥可能存在Flash里。撬开读卡器读固件,比啃卡本身容易。但这属于打不过人就打他队友,跟卡本身的安全性没关系了。
我的判断
第三代无漏洞卡这个叫法,严格说不是“无漏洞”,是“没有已知的、可在合理成本内实施的漏洞”。密码学上没有绝对安全的系统,只有攻击成本高于收益的系统。AES-128加上随机挑战应答,把攻击成本从“一台Proxmark3加一个下午”拉高到了“专业实验室加数周”,这个跨度足够让99%的人放弃。
但别高兴太早。我见过太多系统,卡是第三代,读卡器还在用十年前的固件,后台数据库明文存密钥。卡再硬,链路上一环软了,整个系统就是纸糊的。安全从来不是单点问题。
那张白卡我最后没打开。不是打不开,是算了一下投入产出比,觉得不值。这大概就是第三代卡想要的效果——让你觉得不值。
(责任编辑:娱乐)














