我们对银行卡到期日的直觉很朴素:卡面印的日期一过,这张卡就"死"了,芯片也罢、磁条也罢,都该随之失效。但在今年的 USENIX 安全研讨会上,美国马萨诸塞大学阿默斯特分校的研究人员演示了一种名为"僵尸卡"(Zombie Card)的攻击,证明至少对 Visa 非接触式卡而言,这道闸门更像贴在门上的一张告示——门本身并没有锁。(IT之家)
事件要点
攻击的构造并不复杂:两部支持 NFC 的安卓手机组成一对中间人中继。一部贴近目标卡片读取芯片的真实响应,另一部摆在商户 POS 终端旁模拟卡片,两机之间实时转发无线信号。对终端来说,"一张在场且有效的卡"就这样凭空出现了。研究人员用一张已过期的 Visa 非接触卡,成功完成了最高 500 美元(约合 3370 元人民币)的真实支付。
漏洞的根因在架构层面。EMV 非接触式支付的到期机制,主要由终端执行本地策略检查:终端以明文读取卡内的"应用到期日"字段,再自行判断这张卡过没过期。而芯片中用于身份认证的私钥,并不会因为塑料卡面上印刷的日期到来而失效;用于离线数据认证的证书,也可能在换卡期结束后继续有效。换句话说,"过期"是一个从未被密码学强制执行的状态。
至于 500 美元这个数字,它正是许多地区非接触交易免密免签的额度上限——本为拍卡即走的体验而设的妥协,如今成了攻击者天然的"收益天花板"。
背景:闸门为什么建在终端这一侧
要理解这个设计,得回到非接触支付的初衷:快。拍卡即走意味着交易常常不联网实时授权,终端必须能在离线状态下独立完成"读卡、验签、检查字段、放行"的全流程。于是大量校验逻辑被下沉到终端侧,而"信任卡内数据"成为这套体系运行多年的默认前提。EMV 密码学确实解决了磁条时代的伪卡问题,但"到期"这件事始终只是芯片里的一个明文字段。
中继攻击本身也不是新概念。NFC 通讯协议并不内置精确测距机制,终端无法区分"卡在我面前三厘米"与"信号从五十米外被转发过来"。学界提出过基于往返时延的测距方案,但需要卡端与终端同步改造,在全球存量的卡片和 POS 机面前,落地遥遥无期。
一个略带讽刺的对照是:手机上的数字钱包反而更安全。Apple Pay、Google Pay 这类方案使用发卡行签发的动态令牌,绑定具体设备、可远程吊销。真正"裸奔"的,恰恰是换卡后被塞进抽屉的实体过期卡。
影响与建议
对普通用户,结论朴素得近乎复古:过期卡别攒着,剪断芯片,或干脆销毁整张卡。攻击确实需要一部手机贴近你的旧卡——躺在包里、旧钱包里的那张,但"反正过期了没风险"的心理,正是这类攻击得以成立的前提。
对卡组织和收单机构,修补路径并不神秘:把到期校验挪回发卡行侧执行,对免密额度内的交易增加联网抽查,或统一推送终端固件更新。真正的难点在于全球 POS 终端存量庞大、更新缓慢,任何依赖终端改动的方案都要拖上数年。这也是此类研究公开后,行业常见的辩护——"攻击成本高于收益"。这句话在安全史上被反复说出,也被反复证伪。
简短点评
"僵尸卡"的启示不在于某个可被修补的漏洞,而在于一个系统交界处的坏习惯:到期日是印在塑料上的法律与会计概念,而支付系统真正需要的密码学事实——"这把密钥是否仍然有效"——从未与它绑定。两个体系各自运转良好,交界处却留出了"默认对方已经处理好"的缝隙。安全问题最常见的藏身之处,从来不是算法本身,而是这些没人认领的假设。