这篇文章的名字叫:“Wirelessly Pickpocketing a Mifare ClassicCard”(可以译为无线窃取M1卡)。
此 文章的主要贡献在于阐明了M1卡在报文产生奇偶位和所谓嵌套认证两个方面的漏洞;利用此漏洞,攻击者可以通过工具仅仅研究该工具与一片M1卡之间通讯数据 便可以成功破解该卡的所有密钥,从而克隆这张卡。请注意:与以往公开的任何一种针对M1卡的攻击所需要的条件所不同的是,这次的四种攻击方案都不再需要一 个“真实的”读卡器。而以往介绍的哪些方法都是需要一个真实的应用系统中的读卡器,在攻击时要截取它与被攻击卡之间的通信报文作为分析的资料。也就是说用 以前的方法,如果你想攻击北京的公交卡,你就得抱着个仪器去公交车上或到地铁站的收费口前晃悠几下子。这难免不被警惕性高的革命职工或周围群众盯上,或被 摄像头记录下来。做贼又心虚者没准就会感到太冒险而就放弃了。从这个角度讲,这些攻击对应用系统的威胁就不难么大。而新的攻击方法就不同了,你可以买张公 交卡回家自己琢磨去,没人能知道你要干什么。对攻击者越安全,对被攻击物就越危险!所以,这样的攻击更加实用,更具危害。
文章认为:M1在产生奇偶校验位时将数据链路层和安全通信层本该分层处理的协议混为一谈,先校验后加密,并且重复使用了加密校验位的密码。这是不符合安全原则的并确实可被利用。
再就是M1卡嵌套认证的漏洞使得攻击者在得知一个扇区的密钥后可较容易的再破解其它任何扇区的密钥从而做到对该卡的全面破解。这在以前的攻击中并不容易做 到,因为一个应用系统的读卡器不一定能产生其系统中所有卡的所有扇区的密钥,如果设计系统时就没有考虑使用所有扇区的话。
文中设计了四种攻击方法,这里简单介绍一下:
1.暴力破解
即使是暴力破解,也需要先得到确切的明文和对应的码流。这大约要进行1536次认证过程,用时在一秒钟之内。不过还要进行离线暴力破解,估计在36分钟可完成。但是需要专用的硬件设备。
2. 以读卡器的挑战值做变量
这里说的读卡器实际上指的是用来模拟读卡器的攻击工具,下个攻击亦如此。这种攻击又可称选择密文攻击,想法用工具控制被攻击的卡每次在认证时产生同一挑战值,而读卡端则回应不同值。这种攻击需要大约28500次的认证过程,用时约15分钟,然后计算密钥,用时约一分钟。
3.卡的挑战值做变量
第三种攻击与攻击2类似,但需要使自己的工具的挑战值为常数,而令卡的挑战值数不断变化。需要预制一个384 GB的状态表(我怀疑384GB这个数字有误)。要进行4096次认证。大约用时2分钟。
4.嵌套认证攻击
第四种攻击假设攻击者已知了至少一个扇区的密钥,他可以根据漏洞得到其它密钥的32位,然后对其它16位进行穷举攻击。只需3次认证(时间可以忽略不计)。离线攻击计算时间约为一秒。
攻击的代数原理和过程细节我就不再妄图用几句话说清楚了。要能说清的话,人家写那么长的论文岂不是画蛇添足?有心者还是看原文吧,也别让我这半瓶子醋给误导了。
我想借此和大家讨论的问题是:怎样才叫真正破解了一款IC卡?(这里把IC卡作为密码装置看待)
我先把自己的观点亮出来找拍:
1. 破解的最终解释是卡的密钥被破解;
之 所以这么说,是因为还有一个层次的破解叫算法破解,如果这算法是保密的话。但是算法破解在整个破解过程中顶多算走了一大步(也可能只是一小步),距终点可 能还很遥远(甚至是无限遥远)。否则的话那些使用DES、AES、RSA等公开算法的卡岂不是在闹着玩?当然对于那些算法保密本身又有较大漏洞的卡,算法 破解有重大意义,M1卡就是一例。
密钥在密码学意义上的被破解意味着攻击者通过研究这个卡输出的加密信息就能够得知其明文和使用的密钥。
2. 仅用芯片解剖硬件逆向工程的方式不能真正破解IC卡
Mifare 卡是逻辑加密卡,有点常识的人就能推测出使用芯片解剖硬件逆向工程的方式就能得到它的算法。因为这些逻辑一定是“硬件”实现的,打开就能观察到。但如果说 如此得到其算法逻辑就算破解了M1卡的话,恐怕这顶桂冠该属于我们中国人了。听说我们的厂家早就能生产这款芯片了,如果不把里边的逻辑都搞清楚可怎么测试 呢?
但是逻辑是死的,密钥可是“活”的。密钥是做成卡后写入进去的,它一般被存在eeprom这类非易失性存储器里,即使打开芯片也难以观察到,或读出来。
退 一步讲,即使芯片打开后密钥能被读出来又有什么意义呢?难道破解一个卡就要把它的芯片打开?小时候看过一个笑话说一个父亲让儿子去卖火柴,嘱咐说要每根都 能划着的,儿子不久兴高采烈回来了,拿着个空火柴盒说”我买的这盒火柴每根都能划着。我都试过了!”这是不是应该叫糟践东西?
3. 算法没有问题的卡也可能被破解
其实很多加解密装置之所以能被破解是因为其算法的工程实现出了问题。一个卡的安全漏洞可能出在不同的层面和方面。譬如这次介绍的M1的漏洞,基本属于通讯和认证协议的层面,与算法本身的强弱关系不大。
另外M1卡最被人诟病的弱点是它的伪随机数发生器的序列长度太短了。这也跟它密码算法本身没什么关系。
话说回来,再好的算法-如国际公开算法或国密的算法-你在卡里实现它的时候设计不当,也可能就像M1一样在某一天被宣布破解了。
4. 现在最有效的破解智能卡方法是旁路攻击方法
尽 管我认为荷兰这个大学的破解M1卡方法是传统密码学的一次辉煌胜利。但这种方法恐怕也就是对付逻辑加密卡的这种水平才见效。对于使用那些公开算法的智能 卡,目前能说有效破解的就是能量攻击、电磁攻击、时间分析这些所谓旁路分析的方法了。相对于传统方式,它们确实是旁门左道。不过这些方法虽然有效,但很受 局限,所需技能、知识、时间和其它资源都太多,所以并不能对实际应用系统构成实实在在的威胁。它们的最主要用途是在IC卡或芯片的安全检测评估实验室里作 为实验性攻击手段来验证被测IC卡是否具有安全保障措施。
5. 智能卡的安全性是相对的
千万不要相信任何极端的吹嘘某产品如何如何安全的言论,这个世界上恐怕没人能制造出绝对安全的任何东西。就别说一张小小的IC卡了。
IC卡的安全性在某种程度上是建立在本身不值钱的基础上。也就是说卡被攻破后得到的利益远小于攻击所需成本,得不偿失,投入与产出不成正比,因而对攻击者缺乏吸引力。等等这些消极因素保证了IC卡的安全
如果某天某人被谁忽悠了,非要设计一个应用让每张卡都跟小钱庄似的能花大把银子,让攻击者有暴利可图了,你看它还安全不安全。
6.不求利的攻击也是威胁
这句话是对IC卡从生产到应用的各环节的设计者们说的。
俗 话说“不怕贼偷,就怕贼惦记”。不要以为卡不值钱就没人惦记了。这十几年来,几乎所有资料披露的对IC卡的形形色色的攻击方法都是研究机构和学者们琢磨出 来的,他们不为利,但求名!一旦被盯上了,谁也拦不住他们,M1卡就是一个最好的例子。我想经过这一事件,08年前的NXP和08年后的NXP在世人眼里 已经大不一样了。
所以设计者们不要在安全上掉以轻心,你的安全漏洞一旦被人曝光,即使没造成直接经济损失,至少也是件对公司不光彩的事,就别说间接造成的经济损失了(这是必然的)。你们头儿能饶了你吗?
不要宋仲基,只要枸杞币!安全狗积分商城为大家准备了小米电视机、索尼微单、iPad mini2等丰厚奖品。只要枸杞币满足一定数量,就可到 安全狗论坛积分商城自由兑换哦。马上点击下方阅读原文查看活动详情。
安全狗,知名互联网安全品牌,领先的云安全服务与解决方案提供商。秉承“安全狗即服务”(Safedog as a Service)的理念,安全狗依托全球领先的安全技术与完善的大数据处理平台,致力于为电商、医疗、教育、游戏、云计算服务商、政府机关等行业客户提供最具核心竞争力的云安全产品及解决方案,帮助客户实现业务平台的安全、稳定、可靠运行。
安全狗微信公众号对话框点击“安全事”获取最新最热安全资讯;
安全狗微信公众号对话框点击“安全狗”向安全狗咨询了解更多信息;
安全狗微信公众号对话框点击“更多帮助”查看更多跟安全狗相关的信息。
联系方式(大胆表白,来者不拒)
公众微信号:安全狗(safedog2013)
安全狗官网:www.safedog.cn
安全狗官方微博:@安全狗safedog
客服电话:4001000221



