文章总结: 华东师大与上交大团队发现公交二维码密码学漏洞千里码,攻击者仅需分析一次问题码即可伪造签名并持续冒用他人电子公交卡盗刷。该漏洞影响国内部分城市,已负责任披露并修复。建议用户除乘车外切勿在社交平台分享公交码防范风险,企业可联系研究者获取检测工具排查。 综合评分: 86 文章分类: 漏洞分析,漏洞预警,应用安全
G.O.S.S.I.P 特别推荐 2026-07-24 “千里码”安全漏洞
原创
G.O.S.S.I.P G.O.S.S.I.P
安全研究GoSSIP
2026年7月24日 19:44 上海
在小说阅读器读本章
去阅读
世有伯乐,然后有千里马。千里马常有,而伯乐不常有。 --- 唐·韩愈《马说》
马,每个人都认识,但什么样的马是千里马,只有伯乐这样的相马大师才能识别。
二维码,每个人都见过,但什么样的二维码是“千里码”,你知道吗?
最近,来自华东师范大学密码学院和上海交通大学密码系统安全实验室的研究人员在北京、上海、重庆、杭州、厦门、青岛等多个城市检测到了一种特殊的“千里码”,也就是一种存在安全隐患的公交二维码。这种问题二维码虽然乍一看没有什么问题,也可以用于正常的公共交通支付,可一旦使用特殊的方式去分析二维码中的内容,就可以恢复用户的电子公交卡绑定的密码学凭据,也就能在未经用户许可的情况下,持续地构造新的公交二维码乘车,因此,我们把这种二维码称之为“千里码”。据统计,公交码目前已经覆盖了国内100余个城市的公交地铁线路,每天都有过亿用户在大江南北打开手机享受便捷的公交乘车服务。可是,“千里码”的出现,会让攻击者冒充你的电子公交卡生成“合法”的公交码,导致你的支付凭据和身份信息被别人冒用。试想一下,人在家中坐,却突然收到了公交乘车扣费的提示信息,感觉是不是很恐怖?!
要深入探讨“千里码”的安全问题,我们首先要追溯到一种“古老”的物品——实体公交卡。不知道你是否熟悉下图左边的这张小小的卡片?在智能手机尚不普及的年代,出门搭乘公交地铁,可不能忘记了它,否则你不仅要翻遍口袋去找零钱,还得在地铁站售票机或者售票窗口折腾上好半天。
在使用实体公交卡的年代,大家可能也会存在一个疑问:我的公交卡信息会不会被别人(甚至是恶意的刷卡机)复制?实际上,这种担心不无道理,因为现在很多小区门禁使用的数字门禁卡,不管是在淘宝上还是在配钥匙的老大爷那里,都可以用很便宜的价格复制一份。那么,公交卡也会有这样的安全风险吗?
答案是,不会。实体公交卡和我们日常使用的银行芯片卡、手机sim卡以及身份证一样,本质上是一种数字化的身份凭据,它的功能是向特定的读卡机证明“我是某个特定的用户身份的合法拥有者”。要做到这一点,不是简单地把用户身份存储在卡内,在使用时发送出去就行了:如果单纯只是发送用户身份的信息(例如特定的用户ID),那任何攻击者都可以轻易复制这份信息,从而实现对该身份的伪造(这也是现在大量的小区门禁卡能够被随便复制的根本安全缺陷)。想象一下,如果你的身份证在验证的过程中只是检查了一下身份证号信息,那对于造假者来说可是天大的好消息。
可是,这种被吐槽最多的“证明我是我自己”的要求,却成了现代数字系统中每时每刻都在发生的需求,到底要怎么样才能安全地实现呢?这时候就需要人类文明的瑰宝之一的现代密码学理论闪亮登场了:在所有这一类数字卡片中,都包含了一个独一无二的密钥,在每次身份认证的时候,通过使用现代密码学算法为身份ID生成一个对应的密码学证明作为补充,就可以实现“既能证明我的身份,又不会被别人伪造”的需求。
不过,在今天这个智能手机普及的时代,这种实体的公交卡也慢慢成为了“负担”:出门除了手机,谁愿意总是额外要多带一样物件在口袋里面呢?更何况这个小小的卡片不仅容易丢失,还特别容易弯折损坏,一旦出了问题,里面的余额可就和我们说再见了。于是乎,随着公交支付数字化和“刷码乘车”设备的普及,我们只需要打开手机点击几下,就能领取到一张电子公交卡。这种电子公交卡不再需要“刷卡”而是“刷码”,也就是生成“公交二维码”(简称“公交码”)就能方便快捷地支付车费。久而久之,实体公交卡也和《玩具总动员5》里面那些因为智能电子设备而被孩子们遗忘的玩具一样,慢慢地变成了中年人的抽屉里面的一份收藏品。
作为实体公交卡的替代品,电子公交卡同样也使用了现代密码学技术来防止非法复制:当你使用电子公交卡的时候,实际上手机是读取相关数据,然后生成一个一次性的公交码,这个公交码不仅包含了用户的乘车凭据身份信息,同样也包含了相关的密码学签名,可以做到“阅后即焚”,只能使用一次就再也无法使用,不管是读卡机还是攻击者,谁复制了都没法继续使用,这样就保证了每个公交码最多只能乘坐一趟公交地铁。
“千里码”安全漏洞是一种涉及到公交码的密码学安全漏洞,其核心问题在于公交码的生成过程中没有正确地使用相关密码学技术,从而导致攻击者可以通过分析这种“问题码”,继而替代电子公交卡去伪造密码学签名。实际上,我们针对“千里码”安全漏洞提出了“相码”原型安全攻击:只需要识别到一个有问题的“千里码”,即可实现签名伪造,然后持续冒用电子公交卡身份盗刷公交,制造经济损失和社会安全风险。
更重要的是,公交码这种通过视觉传输的展示方式,注定了它非常容易被拍摄,很多用户甚至会在不同的渠道进行分享:随手在小红书上搜索一把,就能看到不少用户会在相关的讨论里面把自己的公交码都贴图出来。本来公交码应该具有“只能使用一次”的安全特性,而在“千里码”安全漏洞的威胁下,存在问题的公交码一旦被公开,就会让用户的敏感身份凭据信息遭到盗用。
“千里码”的出现,不禁让我们回想起在实体公交卡时代出现的另一个影响巨大的密码学安全事件——Mifare卡密钥破解事件。2008年,德国研究人员成功地破解了荷兰恩智浦半导体的MifareOne非接触智能卡(简称Mifare卡或M1卡)芯片中使用的密码安全算法,使得攻击者在接触到特定卡片的情况下,只需要10分钟左右就可以复制该卡片的相关信息。而到了二维码时代,我们又一次见证了相关安全风险的出现。事实上这并不是我们第一次发现关于二维码的高危安全问题:在2022年,我们针对移动智能手机APP的二维码扫码安全进行了深入分析,发现了“美杜莎”安全漏洞和相应攻击,同时进行的大规模调研表明,包括工、农、中、建四大行在内的上百个APP存在严重的扫码安全隐患,并揭示了的威胁,还在当年的移动互联网APP产品安全漏洞治理优秀案例评选中入选了十大优秀案例。当时发现的“美杜莎”安全漏洞的主要问题来自于APP主动进行的扫码行为,而这一次,“千里码”安全漏洞则是用户展示的二维码内容中存在的安全问题。
幸运的是,目前并没有证据表明(即使是AI号称能够快速高效发现安全漏洞的2026年)“千里码”安全漏洞已经被不法分子获知和利用。我们在发现“千里码”安全漏洞后的第一时间就通报了相关的开发者和国家密码、安全相关主管部门,并全力协助修复这个高危安全问题。同时,我们也开发了相关的自动化分析工具,对国内所有的省会城市使用的公交码进行了全面检查,发现仅有一部分公交码受到“千里码”安全漏洞的影响。普通的用户只需要注意保护好自己的公交码,除了乘车之外不要在其他场合展示,就可以极大降低被攻击的风险。同时也欢迎相关部门和企业联系我们,我们会提供相关的自动化分析工具帮助检查“千里码”的存在。
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:安全研究GoSSIP G.O.S.S.I.P G.O.S.S.I.P《G.O.S.S.I.P 特别推荐 2026-07-24 “千里码”安全漏洞》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。






![[译苑雅集Vol.15]OwnYourWeights:企业要不要拥有自己的模型?](/images/random/titlepic/7.jpg)




评论