我是靠谱客的博主 虚拟纸飞机,最近开发中收集的这篇文章主要介绍一卡通(M1卡)破解过程记录——准备篇,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

前些日子在研究学校的一卡通安全,在此记录一下一卡通破解的全过程,仅用作学习交流,切勿用于违法用途

 其他几篇: 一卡通(M1卡)破解过程记录——理论篇               获取扇区密钥            数据分析篇

首先认识一下一卡通的类型,市面上常见的一卡通是IC卡的一种,IC卡即集成电路卡,也是广义上的智能卡,准备篇介绍一些智能卡的基础知识,帮助我们确定卡的类型和使用的设备,目前淘宝上提供了设备和全套软件,确定好方法就可以自动化破解,下面的内容比较详细,不用全部看完也能破解,但了解一下可以提高效率

按照使用方式分类:

·接触式IC卡:符合ISO 7816标准,卡片表面包含金属触点,读写需要IO线路接触,即需要插卡使用,如手机的SIM卡模块

·非接触式IC卡:符合ISO/IEC 14443标准,由IC芯片、感应天线组成,封装在一个标准的PVC卡片内,芯片及天线无任何外露部分,通过RFID感应使用,校园卡及身份证都是这一类型。

·双界面卡IC:又称组合卡/双端口卡,是同时兼备接触和非接触两种界面通信的多功能卡,将非接触IC卡的方便性和接触IC卡的安全性融为一体,使之成为一卡多用的极佳载体,代表着未来IC卡的主要发展方向,银行卡就是这一类型。

需要注意的是我们平时见到的某些门禁卡虽然也是通过感应使用,但不一定是IC卡,现在有相当一部分便宜的门禁使用的是磁卡和ID卡,ID卡使用RFID射频技术,但其频率一般较低,一般为125KHz,如爱特梅尔的T5577卡,不可写入用户数据,其记录内容仅限卡号只可由芯片厂一次性写入,开发商只可读出卡号加以利用,所以只用于身份识别,不能用于消费,其成本相对非接触式IC卡较低,一般使用字典攻击的方式就能复制。

智能卡按照工作频率分类:

区分ID卡和IC卡——读卡判断法

读卡判断法是判断卡智能卡类型最准确的方法,这需要可识别多类型卡的设备支持,例如手机NFC或者pn532开发板、ACR122U读卡器以及Proxmark3。使用手机NFC是最为便捷的方法,在支持全功能NFC的手机上下载MIFARE Classic Tools,给予权限后将卡片贴在NFC感应区根据提示读取标签后查看标签信息。下面是两种不同容量的IC卡的显示,如果RF技术这栏显示ISO/IEC 14443,说明就是典型的13.56MHz的非接触式IC卡,这也是生活中使用最多的类型。

                                       

绝大多数的高校一卡通都属于M1卡这种类型,M1卡式恩智浦公司(现在已经被飞利浦收购)根据ISO14443-A非接触式智能卡标准设计的一种IC卡,是目前世界上使用量最大的非接触式IC卡,在2013年前它被广泛应用于一些国家和地区的交通系统,如香港的八达通、台湾的悠游卡、伦敦的牡蛎卡和荷兰的OV卡等。2007年12月K.Nohl和H.Plot利用显微镜观察M1卡逻辑电路并对其逆向工程,从而发现其加密算法的设计缺陷。而在2008年3月,荷兰内梅亨大学的三位工程师自制了读卡设备并利用其Crypto-1算法的缺陷成功复制了一张M1卡,所以现在M1卡一般用于对安全需求不是特别高的场景中,如校园和企业一卡通,社区门禁等。

可以看到上图中标签类型为MIFARE Classic的就是M1卡,左边的为S50型号,右边的为S70型号,对应的SAK分别为08和18,知道这些参数一般就可以确定攻击方案了。

如果有其他读卡设备的话也可以通过相应的输出结果判断卡的类型,但一般最好先用手机NFC判断好卡的类型,这些读卡器不一定适用于所有类型的卡。

区分ID卡和IC卡——经验判断法

一般来说,判断电子标签是接触式卡还是非接触卡可以观察卡片表面是否包含触点,如果有一小块裸露在外的金属区域,则说明该卡是接触式卡或双界面卡;没有金属触点且可与读卡器感应识别的为非接触式卡。在没有读卡设备情况下我们可对非接触式薄卡使用强光穿透卡片观察,ID(身份识别)卡芯片周围一般为线径为3-8mm的粗圆线圈,IC卡通常是1-2mm宽的细圆线圈或方形线圈。我们也可通过电子标签的功能来区分这两种卡,ID卡的芯片只能读不能写,一般只用于身份识别,IC卡可反复擦写,既能身份识别也可用于小额支付,所以校园一卡通显然为IC卡。经验判断法不一定准确,但能帮助我们在有限的条件下判断电子标签类型,迅速确定攻击方法及所需设备。下图来自淘宝的IC卡商品介绍,结合卡的使用类型,一般可以判断出是IC卡还是ID卡。

 

银行卡和身份证虽然都可以感应使用,但其不是M1卡,M1卡是逻辑加密卡,使用私有加密算法Crypto-1,而银行卡和身份证是CPU卡,内置一个微型CPU,可以进行多种加解密运算,有些银行卡和身份证还使用了国密算法,相比Crypto-1更新,尚未爆出安全漏洞,目前很难破解,如图是银行卡的标签信息,可以看到其SAK为28,只要SAK为28的都为CPU卡,有些学校比较变态使用了CPU卡这种解决方案,看到是这种卡的可以放弃了,暂时还没有对应的破解方案。

                                                  

M1卡的特性和存储结构

M1卡即NXP推出的MIFARE Classic卡,内部由一个卷绕天线和特定用途的集成电路模块组成,其中模块由一个高速(106KB波特率)的RF接口一个控制单元和一个EEPROM组成。读卡器向M1卡发出一组固定频率的电磁波,片内有一个LC串联谐振电路,其频率与读写器发射的频率相同,在电磁波的激励下,LC谐振电路产生共振,从而使谐振电容内有了电荷,在这个电容的另一端,接有一个单向导通的电子泵,将电容内的电荷送到模块存储电容内储存,当所积累的电荷达到2V以上时,此电容可作为电源向模块电路提供工作电压,将卡内数据发射出去或接收读写器的数据

 

常见的M1卡多为S50型号的1k卡,EEPROM的存储容量为8k位,分成16个扇区,每个扇区为4块,每块16个字节,以块为存取单位;还有更大容量的S70型号4k卡,EEPROM容量为32k位,分为40个扇区,前32个扇区为小扇区,每个扇区为4块,每块16个字节,后8个扇区为大扇区,每个扇区有16块,每块16个字节。

                                            

第0扇区相比其他扇区稍有特殊,块0为绝对地址块,在卡片出厂时被锁死不可更改,前4个字节为整个RFID系统中唯一的UID号,第5个字节为BCC校验位,数值由UID的4个字节异或运算得出,第6字节为卡片的SAK值,第7到8字节时智能卡的ATQA值,剩余的部分时制造商出厂时设定好的信息,不会影响到卡的使用。块2和块3一般为空,不存放用户数据,在大部分RFID系统中读卡器需首先验证0扇区0块数据的正确性,如果验证失败将不会访问其他扇区。

选择合适的白卡和读卡器

确定好卡的类型后,现在要去购买对应的白卡和设备了,目前淘宝卖的比较多的有以下几种卡:

ID白卡:一般为125KHz的低频卡,针对低频门禁系统,读取原卡有效的10位或18位识别码,将其复制后写入白卡中一般即可通过门禁验证。

IC标准白卡:一般为M1卡,这类卡是严格按照M1卡标准制作,0扇区0块发卡时便锁死不可修改,其他扇区可自由操作,不推荐购买,如果你需要4Kb的读写容量那只能购买标准的S70卡,目前淘宝还没有S70型号的其他版本卡。

UID卡:国人魔改的M1 S50卡,又名中国魔术卡,是最常见的IC复制卡,与标准白卡不同的是可以反复擦写0扇区。

CUID卡:UID卡的升级版本,UID卡出现的比较早,会响应后门指令,可被使用后门指令检测是否为克隆卡的机器发现,而CUID卡不会响应,一般可绕过读卡器防火墙,推荐购买这种卡。

FUID卡:CUID卡复制没有用的情况下的备选,只能改写0块1次,改写后就锁死该块,针对一些更高级的读卡器防火墙。

UFUID卡:UID卡和FUID卡的结合版,可以手动控制0块锁死,0块锁死前为UID卡,锁死后就变成了FUID卡。我们一般使用CUID卡即可,不必购买更高成本的FUID和UFUID,除非你确信自己操作无误且CUID卡无法通过验证。

在购买设备之前先确定好需求,如果仅仅复制只用于门禁的M1卡,可以先不用购买设备,因为一般门禁的原理是验证0扇区的UID号,如果该UID在系统中存在,则验证通过,而有些发卡商为了便利让0扇区使用了默认密钥FFFFFFFFFFFF,所以可以先用手机NFC测试复制0扇区0块,这里可以使用前面读卡用的MCT,但推荐国产的MTools https://github.com/whywilson/mtools

按照软件的帮助文档尝试读取原卡0扇区,如果成功了直接把UID号复制到CUID白卡通常就能通过门禁验证了,这款软件也可以OTG读卡器使用,手机没有NFC又没电脑的可以用它。

目前淘宝可以用来破解的读卡设备主要有3种:

PN532:最廉价的方案,30多块钱就可以搞定,仅仅一块单薄的电路板,但可以满足常规的M1卡的读写操作,但是配套软件较差,配合mfoc和mfcuk软件使用,在Linux下bug比较少,目前也有国产的GUI软件,但功能能比较单一,可以用于破解M1卡中1K容量的S50卡,不能破解全加密卡(找不到使用默认密钥的扇区),适合搞定门禁,钥匙扣型的卡去小区物业办一般要20块,如果你想做很多张门禁卡的还是自己制作更划算,不用看这篇文章根据淘宝客服的教程来成功率都很高。

ACR122U:读写的主芯片为PN532,相对PN532软件更加完善,使用稍微简单一些,厂家还提供了一款官方的M1卡破解软件,配合mfoc和mfcuk使用更加稳定,但同样不能用来破解全加密卡,对于加密了部分扇区的S70卡也较难破解,性价比一般,卖一百多块适合小白使用,能找到比较多的教程。

Proxmark3:我主要使用的设备,是Jonathan Westhues 在2007年就读硕士期间设计并开发的RFID读卡器,它是一款开源的RFID研究平台,设计图被公布在Proxmark3官方网站,在GitHub上可以找到配套的软件及WIKI,另有社区可获取对应的固件及技术支持,同时支持Linux、Windows、Mac OS多平台。最新版本的pm3整合了nested authentication攻击,darkside攻击,PRNG漏洞扫描,以及随机数采集和无卡嗅探功能,能够有效破解M1卡扇区密钥,可破解低频卡、S50和S70全加密卡和部分特殊卡,可以说相当强大,但是价格比较贵,目前淘宝山寨的pm3都要200多块。

变色龙侦测卡:可以用来模拟M1卡,也可配合其他读卡器侦测获取扇区密钥来破解卡,主要针对全加密卡,但是价格也要100多块,所以一般购买pm3即可,pm3还有一款RDV2升级版本就是集成了变色龙侦测卡,嗅探的能力更强并且可以模拟卡,用于一些比较变态的M1卡系统。

购买好白卡和设备就可以直接开干了,想一下把一卡通数据复制进钥匙扣和手机岂不是又方便又有逼格【手动滑稽】,破解一卡通需要耐心,要反复试错,千万不要轻易放弃

 

最后

以上就是虚拟纸飞机为你收集整理的一卡通(M1卡)破解过程记录——准备篇的全部内容,希望文章能够帮你解决一卡通(M1卡)破解过程记录——准备篇所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(38)

评论列表共有 0 条评论

立即
投稿
返回
顶部