开学了,看到新生军训绿油油的衣服,特殊的味道,唤起了我好多的回忆啊,三年前我也有他们般稚嫩的脸庞,对一切充满好奇和憧憬,但也有很多的回忆已经模糊了。
现在的状态不太好,感觉学不动,有点想摆烂。下午还有课,随便写两笔吧。学校的一卡通我已经摸透了,一张CPU模拟卡(SAK28),CPU卡部分我自然是不会破解,但是M1卡部分已经解开了。
先讲讲基础知识吧,非接触式卡大约分为IC卡和ID卡,这二者的区别是IC卡工作在13.56MHZ下,ID卡是低频卡,频率是125KHZ。ID卡在出厂时卡号已经固定,内部也没有其他的信息,所以比较好复制,安全性也比较低,但需要注意的是一般的手机是读不了ID卡的,因为手机的NFC功能只提供13.56MHZ频段的电磁波。这次主要研究IC卡,IC卡,普通的IC卡一般使用的是M1卡(或者叫做国产兼容卡),M1卡是指菲利浦下属子公司恩智浦出品的芯片缩写,全称为NXP Mifare1系列。由于IC卡的加密,在不知道密码的时候就不能对卡片的数据进行读写,所以如何知道密码呢,那对于M1卡片(SAK08)来说,是存在漏洞的,对于CPU卡(SAK20)来说,因为卡片内部已经有了信息处理功能,不同于M1卡的被动接收、修改数据,CPU卡具有更高的安全性,就不好解了。(身份证,银行卡都是CPU卡)
M1 S50卡分为16个扇区,每个扇区4块(块0~3),共64块,按块号编址为0~63。第0扇区的块0(即绝对地址0块)用于存放厂商代码,已经固化,不可更改。其他各扇区的块0、块1、块2为数据块,用于存贮数据;块3为控制块,存放密码A、存取控制、密码B。IC卡的0块前八位就是卡号,每张卡都是不一样的,学校的门禁就是通过这八位卡号识别的。0块后八位是厂商号,一般的IC卡修改不了,于是就出现了特殊的IC复制卡,它的特点就是全扇区可修改,完美复制原来的卡片,这叫UID卡,这种卡容易被读卡器识别出来,被发现了不就G了吗,所以又有一个升级版CUID卡,它不会响应读卡器的漏洞探测,更能不被读卡器发现,另外还有FUID,CFUID卡,都是复制卡的进阶,各有特点。
对M1卡的漏洞我简单说一下(毕竟我也没有探究深层次的代码和机制),最简单的漏洞,知一解全:有一些IC卡并不是所有的扇区都被加密,那些没有被加密的扇区就是默认密码,很容易知道,这个漏洞的原理就是利用已知的密钥去把未知的密钥去爆破出来,也叫nested漏洞,但魔高一尺道高一丈,漏洞可能被修复,这就是无漏洞卡,在nested漏洞解不了的时候可以用hardnested试一试,这时候就只能一个一个解了,我就是用这种方法解出来的校园卡,花了大概一下午的时间吧。那如果是全加密的卡呢,hardnested漏洞需要已知的密钥,如果没有一个密钥知道,那还咋玩?可以试试darkside漏洞,引用别的文章的话(实际上经过研究人员大量的测试之后,发现算法还存在这样一个漏洞,当读卡器发送的加密数据中的某8bit全部正确的时候tag会给读卡器发送一个加密的4bit的数据回复NACK,其他任何情况下tag都会直接停止户。那么这个4bit的加密的NACK就相当于把tag中的key带出来了,然后再结合算法的漏洞破解出key,如果一个扇区的key破解出来,就可以再使用nested authentication 攻击破解其他扇区密码。)
但是再次魔高一尺道高一丈,如果卡片修复了darkside漏洞,成为了真正意义上的无漏洞卡呢?这时候也不是不能解,就是成本往上提一提了,采用PM3和变色龙(这两个都是设备的名称),在刷卡的时候放上PM3或变色龙,嗅探密码,貌似直接拿着设备刷刷卡机也可以,他们会截获卡片和读卡器之间的的密码,密码直接就出来了呀(虽然我没有试过,木有钱555~)
好啦就讲这么多啦,我没有去深入了解他们的通讯协议,也没有特意去DIY一个设备然后编程刷固件。仅仅达到了我的目的:把饭卡破解出来。实测在食堂可以刷,以上的知识都是我自己的理解,如果有不对的地方请见谅,也欢迎大佬指正。
放两片关于IC破解的文章链接,有兴趣可以看一看。
第一篇
第二篇
最近在搞USB功率表,等做好了再更新咯。