简单介绍一下PM3破解IC卡

Posted by 跳跳龙 on August 24, 2019

(文章版权归笔者跳跳龙所有,谢绝转载,请勿拾人牙慧)

最近给公司的一个科普类的公众号写了篇关于PM3的文章,由于科普类型,简单介绍了一款工具,了解了一下硬件安全,硬件方面的一些安全知识我没怎么深入研究过,也算是之前上学的时候玩了一下,临时解决任务。也算是一个安全工具的使用吧,结尾附上我司的链接。

今天来科普一下安全中的一些关于硬件安全的姿势。在现代社会中,个人资产已经慢慢从所见即所得的纸币,硬币转移到了数字经济。大家现在越来越多的消费都变成了数字消费,一方面我们在享受数字经济带来的遍历的同时,也不得不考虑这样一个问题。数字资产存储的方式,存储的介质以及数字资产的可恢复性是否安全。假如有一天,能代表你的所有财富的一个数值由于一些不可控原因变成了零,并且无法恢复,那个时候,我们又该怎么办?

不得不夸一下豹厂的福利了。小豹可以使用工卡在豹厂的咖啡厅,食堂等地进行消费,当然你也可以使用人脸识别系统。在豹厂,每个人都会分配一个独一无二的工卡。今天,安全豹就带大家来一起试验一下,这个工卡,它到底存储了什么,它到底安不安全,平时借给同事用一下到底有没有什么安全隐患。

今天安全豹要用到的设备中有Proxmark3(简称PM3)一个,数据线一个,若干张UID识别卡,工卡或者饭卡等。

我们就是通过PM3对IC卡进行破解,重写的。上一张PM3的自拍,十分小巧,和一个牛奶差不多宽。

它上面有大概2个工作区,一个是针对低频的ID卡,另外一个就是高频的IC卡。

另外在各个操作系统上,都提供了PM3的驱动和软件,可方便我们输入命令或者GUI操作。

我们的工卡一般都是IC卡,准确的说是Mifare S50(简称 M1)高频卡。每张卡独一无无二的UID号,可存储修改数据,通常用于学生卡,饭卡,公交卡,门禁卡等。由飞利浦公司旗下恩智浦(NXP)开发,这种卡片就像个小容量的U盘,天生强制加密。密码不可以取消。厂家出厂会把密码设置成大家都知道的默认密码全F。

这个是安全豹的工卡,我们发现,我的卡就是使用的默认密码,实际上PM3内置了一个非常强大的字典,收集了很多厂商的初始化密码,其中上面的数据区中,每4个块是一个扇区,一共是16个扇区。每个扇区的最后一个块用来存储密码,其余的块用来存储数据。 左边的黄颜色圈用来表示A密码,右边我们可以称之为B密码。相信很多围观的朋友肯定会问,密码那不就存着呢吗,为什么还要获取? 那是因为中间的4位用来表示标志位,控制你的可读写权限。

再说回来我的工卡,我们会发现,除了0扇区有真正意义上的一行数据之外,别的扇区都是0。那么也就说我们感兴趣的数据都在第一行里。前4个字节是UID号,这个在IC卡中是无法修改的,一般机器用此来做身份识别或者合法校验。0块数据除了UID之外都是厂家出厂内置的,包含了厂家和卡片信息。不可以修改。只能读。这里应该是一段无意义的数据串了,用来代表我的个人信息。

那既然是无意义的数据串,说明我的余额已经个人信息都服务器集中存储了,你肯定说那就很安全了!但事实并非如此,这里还存在一种场景,类似于流量的重放攻击!在某种场景下,得到了其他小豹们的卡,我可以在短时间复制出来,进行异地消费。

不对啊!!!,上面不是说0块数据很多地方都是不能修改的吗?

恩,很有道理!于是在国内,就有这样一群人,发明了一种新卡,Mifare UID(Chinese magic card) (简称UID卡)。注意这个UID卡不是低频的ID卡!UID卡是M1卡的变异版本,可修改UID,国外叫做中国魔术卡,可以用来完整克隆M1 S50的数据。

四不四很神奇,四不四很奇妙?

后来很多机器进行了升级,现在新的读卡系统,通过检测卡片对特殊指令的回应,可以检测出UID卡,因此可以来拒绝UID卡的访问,来达到屏蔽复制卡的功能。但是毕竟还是少数。

于是我们使用UID卡进行数据的克隆,复写。 然后拿到我们的小豹咖啡厅去消费!消费8元。(在行政领导的带领下,授权测试)

余额变成了73.2元。

完美通过了机器的校验!

然而,现实生活中,远有比这个危险的。这里我举个栗子! 有些外包公司,不愿意去维护数据存储这个成本,直接把个人信息,消费的余额写到卡里,这样可以通过一张卡消费前和消费后的数据进行对比,来研究真实有效数据的存储规则!下图是我之前公司食堂的饭卡,我借来分析一下(大家可只能分析,不能私自未授权测试!)。

你会发现,93.5和97这种数据。小豹推断出这是余额和上次余额,差值正好是3.5。180131值得是18年1月31日产生的消费,0C0D就是每消费一次就会加一。最后面是校验位。网上有很多分析校验位的文章,这种就太不安全了,数字直接存储在卡中,即使校验位你设定的足够安全,也避免不了使用复写这种方式来进行攻击。

数字经济、数字消费时代来临,绝对安全是没有办法实现的,安全豹想通过卡克隆,复写的小试验,告诉小豹们:“背叛”你的很可能就是你认为拥有它就拥有全世界的卡片,必须要采取一些措保护它,比如不外借,尽量少的使用它消费,防止丢失,防止复制。