- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
M1卡被CPU卡替换
今年年初以来,一个消息的传出震惊了整个IC卡行业。最近,德国和美国的研究人员成功地破解了NXP的Mifare1芯片的安全算法。Mifare1芯片主要用于门禁系统访问控制卡,以及一些小额支付卡,应用范围已覆盖全球。因此这项“成果”引起了不小的恐慌,因为一个掌握该破解技术的小偷可以克隆任何一个门禁卡,从而自由进出政府机关大楼或公司办公室;可以批量的克隆或伪造各种储值卡大肆购物而不被发现。国内发行的这种卡,估计有几亿张在投入使用,它的安全性涉及到众多的运营单位和持卡人的利益。近日,有研究人员宣布MIFARE 系列产品的安全性存在薄弱环节,在他的研究室里,通过研究读写器和卡之间的通信数据,找到了这种卡的加密算法和认证通信的协议,并有两种方法可以得到MIFARE class逻辑加密卡的分区密码。通过这种方法,破坏者可以使用非常廉价的设备在40ms内就可以轻易获得一张M1卡的密码。面对这种灾难性的事实,有些公司宣称他们有办法弥补这一漏洞,用户可以继续使用这种卡片而不必担心。那么,M1卡的破解真的有那么大的破坏力么,目前的一些“安全”手段真的有效么。回答这一问题,我们需要先从了解Mifare1系列卡片的结构和安全认证机制开始。
Mifare系列非接触IC卡是荷兰Philips公司的经典IC卡产品(现在Philips公司IC卡部门独立为NXP公司,产品知识产权归NXP所有)。它主要包括在门禁和校园、公交领域广泛使用的Mifare one S50(1K字节)、S70(4K字节),以及简化版Mifare Light和升级版MifarePro 4种芯片型号。这几种芯片中,除Mifare Pro外都属于逻辑加密卡,即内部没有独立的CPU和操作系统,完全依靠内置硬件逻辑电路实现安全认证和保护的IC卡。其主要结构如图所示:
在Mifare 1芯片结构中,Authentication Access Control 认证与访问控制单元用于完成卡片的密码认证,控制各个数据扇区的读写权限;Crypto Unit数据加密单元就是其认证和加解密运算的算法引擎。Mifare系列IC卡是NXP公司的专利产品,它采用了一种NXP特有的加密算法来完成认证和加解密运算。由于这种算法是NXP特有且不公开的算法,Mifare系列IC卡采用了一种特殊的手段来实现在不公开算法的前提下完成认证,即将同样的算法引擎放置在NXP出产的专用Mifare读写基站芯片中(如常用的RC500和RC531),认证过程由基站芯片“代替”用户系统与Mifare芯片之间完成。这一认证过程就是常常被Mifare系列芯片宣传的“三重认证”,其实质就是基站芯片与Mifare芯片之间相互传递随机数以及随机数的密文,通过对随机数密文的解密比对实现对卡片的认证。Mifare芯片所引以为豪的“数据加密传输”也是由基站芯片加密后传送给Mifare芯片的。这个过程可以简化为下图所示:
如图所示,M1卡所宣称的三次认证及输入加密传输等安全特性指的是M1卡与RC500等NXP基站芯片(或兼容芯片)之间的认证和加密。由于NXP对M1卡与基站芯片间的通讯协议和加密认证机制严格保密,因此从这里进行破解难度很大。然而不幸的是,最终这个算法和机制还是被破解了。研究人员找出了算法和通讯协议中的漏洞,可以轻易地通过几十次试探攻击(约40ms)就能够获得一张卡片的所有密钥。事实上,在Mifare芯片的兼容产品出现的那一天起,这个秘密就已经不是秘密了,因为完全兼容,实际就意味着已经掌握了这个算法。
在Mifare1卡片安全问题暴露后,一些公司公开宣称已经有了解决的办法,其中的法宝就是所谓“一卡一密”,也就是每一张卡片的每一个扇区的密钥都不相同,使用CPU卡装载系统根密钥,根据Mifare1卡的唯一序列号计算子密钥,防止一张卡片被破解而影响整个系统。其实这种解决方案在Mifare1卡破解之前就已经出现。那么,一卡一密真的能解决Mifare1的安全问题么,我们还是要从Mifare1卡的认证机制着手进行分析。
我们已经知道,Mifare1卡的认证实质上是卡与基站芯片之间的认证。常用的RC500等基站芯片已经为业界广为熟知,它的接口和通讯协议都是公开的。在基站与Mifare1卡认证前,需要通过LoadKey命令将Mifare1卡的密码装载到基站芯片中。这一过程是一个明文写入的过程,是由终端设备(如读卡器)主控单片机传送给RC500的,并且单片机对RC500的命令传输是非加密的。如下图所示:
这样就可以通过截获单片机与RC500之间的通讯来获取M1卡的密钥。而要做到这一点,一个使用过RC500的对单片机技术稍微了解的技术人员都能够轻而易举的实现。
那么,在读卡器中安装SAM卡,通过SAM卡计算卡片密钥实现一卡一密是否就安全了呢
文档评论(0)