一卡通安全探讨
如果没有特别的说明,本文所说的“一卡通”都是北京市政交通一卡通有限公司发行的“市政交通一卡通”。
简单来说,“一卡通”就是符合 ISO14443 Type A 标准的非接触式 IC 卡,在《北京市政交通一卡通卡在轨道交通自动售检票系统中应用的技术规定(暂行)》(下载链接要把 .RAR 修改成为 .rar,此文档为公开文档,本人从互联网下载得到)中说明为:
一卡通卡规格应符合 ISO/IEC14443 TYPE A 标准和DB11/T159.1-2002 标准(《市政交通一卡通技术标准 第1部分:卡片》)。一卡通卡芯片包括 Mifare® 1(S50、S70)、Mifare® Pro、Mifare® DESFire等。
目前在北京市范围内广泛使用的是 Mifare S70 卡。由于在 20## 年麻省理工大学的学生已经成功破解 Mifare 卡,能够完成对 Mifare 卡的读取,并“克隆”Mifare 卡。相关的资料已经在 DEFCON 上公开了。同样,荷兰的地铁电子票也遭破解。从某种渠道获得的消息称,北京“一卡通”也已经遭受类似的攻击。正因为这样的原因,有消息称“公交一卡通明年升级为 CPU 卡”。
不过个人认为这样的升级将非常困难 —— 如果升级后的系统不兼容旧的存在安全问题的“一卡通”,这就必然会要求所有“一卡通”持有者进行卡片的更换,这样的成本由谁支出?“一卡通”持有者必然不愿意,并且会有较大的反对意见,而这样的成本肯定也是“一卡通”的发行公司京市政交通一卡通有限公司无法承担的。如果兼容旧的存在安全问题的“一卡通”,那相当于整个系统中的安全漏洞并没有得到修补。
目前“一卡通”除了能够作为城市交通工具上作为电子票使用以外,还能在一些商铺进行小额的消费。由于“一卡通”中保存有金额等信息,因此如果攻击者能够对数据进行修改或者复制卡片,这将意味着可以使用“一卡通”进行免费乘坐交通工具或者到相关商铺进行免费的消费。除了升级卡片之外,还有什么办法能够降低“一卡通”系统被破解带来的损失呢?我认为可以通过以下几点来实现:
第一:对“一卡通”消费情况进行日结。这里说的“日结”就是每天完成对当天的“一卡通”消费情况进行统计、结算和分析。
第二:对“一卡通”的帐号收支情况进行分析,通过财务分析发现收支异常的“一卡通”帐号。
第三:对“一卡通”的消费记录结合地理信息进行分析。例如,同一张“一卡通”在很短时间内在相聚很远的物理地点进行消费。
第四:调整“一卡通”交易程序,要求所有的交易设备在每天初始化时从“一卡通”发行公司获取异常卡清单,一旦发现异常卡停止交易,并立即进行告警。
第五:限制“一卡通”的消费金额,使其仅限于小额消费。
除此之外,还要说些题外话,在《北京市政交通一卡通卡在轨道交通自动售检票系统中应用的技术规定(暂行)》能够看到“一卡通”系统同时支持记名和非记名卡。目前,我们大家使用的都是非记名的“一卡通”,如果某天推出了记名可挂失的“一卡通”,一定要想清楚自己是不是要申请。如果申请了记名可挂失的“一卡通”,就意味着你把自己的几点坐车到哪的隐私拱手送人 ……
Posted in I.T..
4 comments
By sbilly – 2009/02/26
4 Responses
Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.
- kxlzx says
我说一些关于一卡通破解的设想。
站在软件工程师的角度,思考每次我们刷卡的流程实现。
首先,刷卡只能扣钱,不能加钱,加钱这个接口,要在地铁站实现。
公交车上的刷卡机是可以调整数额的,很明显,他不能在金额里面加“负号”。
而刷卡是否可以实时更新数据库呢?答案肯定是否定的,很明显,上海的一卡通刷卡的频率太高,我比较怀疑哪些数据库集群和网络通道(延时?)能满足这样恐怖的需求。再考虑到成本问题,我认为他们应该是每天回去后,才找时间更新数据库的,但是具体是什么时候,我就不清楚了。
那么为什么我们看到的数额总在变化呢?那是因为卡内也有个“可以修改数额的”值。
如何破解呢?
1,卡内金额变动
我们可以盗取公交车上的刷卡机,破解,其实不用完全破解,只要在里面加一个“负号”的按钮即可。。。
这种情况仅仅允许我们去即时的修改,可能会遇到一些情况,比如在地铁站里刷卡的时候“有可能”会遇到刷卡机已经同步的情况。
从实用的角度上讲,我们的使用范围,仅仅是在刷卡设备没有联网的情况下。
甚至我们可能会遇到以下情况,去地铁站刷卡,卡机有和“黑名单”系统,报警。
即使不报警,当刷卡设备的数据更新了,我们再去刷,会出问题。所以,我比较怀疑破解的卡到底能刷多少次,会不会当场被抓。
2,用卡,攻击数据库。
数据库的更新,是有一定的时限的,公交车,地铁站,轮渡,他们不一定每天都更新,也不一定频率一样。
如果我在地铁站刷了,公交站刷了,而公交车因为故障,今天没更新,那这笔钱扣不扣呢?如果没扣,而卡上扣了,很可能,他们会把最新的卡内数额放进数据库。也就是说,他们沿用了最新的数据。这样的情况,会造成,我破解了卡,改为1W,z这个数额会从地铁站的机器上,更新到数据库里。
如果不是把最新的放入数据库呢?他只能先不同步了,请注意,我卡内此时是已经刷了公交的价格,而数据库是另一个。
那我去地铁站交钱,50。交钱的时候,一定会同步数据的,他会按哪个金额给我呢?我记得这种情况是卡上的金额为准,此时我的卡,如果是1w,不知道会发生什么情况,很可能是数据库的最新值,被改了。交钱的时候,是否实时更新数据库呢?
看到作者的文章,应该是国外搞定了卡内面额的破解,以及读取,我也相信这些卡,在流程中,肯定是有问题的。
不知道作者会不会去偷个公交车的刷卡机,偷偷的试验呢?我很想知道结果呢
第二篇:家校联系卡
德润童心 爱泽课堂 乐满校园
家 校 联 系 卡
孩子姓名: 班 级:
20xx年2月11 日
体验学习魅力 共享成长快乐
学校对家长说:
家长您好!
小刘寨小学全体师生向您拜年! 按照上级要求,定于2月11日(农历腊月二十三)放假,3月9日(农历正月十九)
正式开学上课。
为孩子的终身发展奠基,是我校的办学宗旨。我们是这样想的,也一直在努力做着。本学期,我校坚持以小组合作和小组评价为抓手,以课堂40分钟为主阵地,狠抓高效课堂建设和学生学习习惯的培养,让学生学的有效率,学的开心,爱学习,会学习,教学质量一直位居我镇前列。
我校非常注重学生养成教育和德育教育,除了定期的校级活动,每周的主题班会也会对学生进行习惯培养、感恩、爱家爱校等教育。另外我们积极让学生参与学校管理,锻炼培养了一大批优秀的班级和学校小干部,让学生真正成为学校的小主人。
同时我校在坚持不懈地抓好教学质量的同时,着眼于学生综合素质的提高,我校的书法特色教育和少年宫活动,还有梦想课程的开展,我校的合唱队,书法,绘画,课本剧,体育队,都代表苟堂镇参加了新密市级比赛并获得荣誉。这些丰富多彩的活动为孩子的未来成长插上了翅膀,为孩子的精彩人生启蒙。
在全体师生的共同努力下,本学年先后荣获郑州市教育现代化学校、郑州市德育工作先进学校、新密市管理规范化学校、新密市文明学校、新密市乡村少年宫、新密市书法教育特色学校、郑州市师德师风先进校等称号。
成绩只代表过去,在新的一年里,我校在坚持不懈抓好教学质量的同时,进一步加强学校各方面的管理,让小刘寨小学成为学生学习的乐园,让每个学生有个幸福、快乐、有意义的童年!
老师对家长说: