感应卡消费机(码农生活 :IC卡门卡模拟探秘)

Posted

篇首语:梦想不大, 道路很长,开始了就别停下。本文由小常识网(cha138.com)小编为大家整理,主要介绍了感应卡消费机(码农生活 :IC卡门卡模拟探秘)相关的知识,希望对你有一定的参考价值。

感应卡消费机(码农生活 :IC卡门卡模拟探秘)

本文作者:Hoki87

免责声明:本文涉及的技术仅供安全学习和教学用途,禁止非法使用!!!


前言

现在生活中少不了各种卡,公交卡、地铁卡、银行卡、门禁卡等,它们都是什么卡?ID卡?IC卡?另外带NFC功能的手机也能刷卡使用,笔者通过本文科普一下关于卡的知识,另外文中还有门卡模拟等一系列干货,值友们要看到最后哦!!!

ID和IC

ID卡:全称为身份识别卡(Identification Card),是一种不可写入的感应卡,含固定的编号,主要有台湾SYRIS的EM格式、美国HIDMOTOROLA等各类ID卡,

IC卡:全称集成电路卡(Integrated Circuit Card),又称智能卡(Smart Card)。可读写,容量大,有加密功能,数据记录可靠,使用更方便,如一卡通系统,消费系统等,目前主要有PHILIPS的Mifare系列卡

主要区别:ID卡不可写入数据,其记录内容(卡号)只可由芯片生产厂一次性写入,开发商只可读出卡号加以利用,无法根据系统的实际需要制订新的号码管理制度;而IC卡不仅可由授权用户读出大量数据,而且亦可由授权用户写入大量数据(如新的卡号,用户的权限,用户资料等),IC卡所记录内容可反复擦写

IC卡由于其固有的信息安全、便于携带、比较完善的标准化等优点,在身份认证、银行、电信、公共交通、车场管理等领域正得到越来越多的应用,例如二代身份证,银行的电子钱包,电信的手机SIM卡,公共交通的公交卡、地铁卡,用于收取停车费的停车卡、小区门禁卡等

接触式和非接触式IC卡

IC卡按结构分有:接触式IC卡和非接触式IC卡

接触式IC卡,该类卡是通过IC卡读写设备的触点与IC卡的触点接触后进行数据的读写

接触式IC卡和读卡机

非接触式IC卡,该类卡与卡设备无电路接触,而是通过非接触式的读写技术进行读写(例如RFID、NFC),其内嵌芯片除了CPU、逻辑单元、存储单元外,增加了射频收发电路。该类卡一般用在使用频繁、信息量相对较少、可靠性要求较高的场合

IC 白卡

IC钥匙扣

IC滴胶卡

IC手机贴

NFC是现在主流的非接触式IC卡的读卡技术,其全称是近场通信(near field communication),是基于无线射频识别RFID(Radio Frequency Identification)技术发展起来的一种近距离无线通信技术,与RFID一样,NFC也是通过频谱中无线频率部分的电磁感应耦合方式传递,但两者之间还是存在很大的区别。NFC的传输范围比RFID小,RFID的传输范围可以达到0~1m,但由于NFC采取了独特的信号衰减技术,相对于RFID来说NFC具有成本低、带宽高、能耗低等特点。

NFC技术主要特征如下:

  • 用于近距离(10cm以内)安全通信的无线通信技术
  • 射频频率:13.56MHz
  • 射频兼容:ISO 14443,ISO 15693,Felica标准
  • 数据传输速度:106kbit/s,212 kbit/s,424kbit/s

现在手机都包含NFC功能,其主板上嵌入了NFC模块,具有三种功能模式:NFC手机作为识读设备(读写器)、NFC手机作为被读设备(卡模拟)、NFC手机之间的点对点通信应用

IC卡基础知识

IC卡中最常见的是NXP Mifare系列卡,根据卡内使用芯片的不同,分为

  • Mifare S50,简称M1卡,是最常见的卡,出厂固化UID,可存储修改数据
  • Mifare UltraLight,简称M0卡,低成本卡,出厂固化UID,可存储修改数据
  • Mifare UID Chinese magic card,简称UID卡,M1卡的变异版本,可修改UID,国外叫做中国魔术卡,可以用来完整克隆M1 S50卡的数据;但是现在新的读卡系统通过检测卡片对特殊指令的回应,可以检测出UID卡,因此可以来拒绝UID卡的访问,来达到屏蔽复制卡的功能
  • 针对UID卡被屏蔽的问题,另外还有变异版本FUID卡和CUID卡,FUID卡的UID只能修改一次,起防屏蔽作用,专门对付物业升级的防复卡和防复读头;CUID卡则是针对FUID卡做的优化,支持UID号重复擦写,无需锁卡自动起防屏蔽作用

以标准M1卡为例,其容量为1K字节,总共分为16个扇区,每个扇区分为4个数据块,每个数据块16个字节

每个扇区中的块按照0 ~ 3编号,第3个块中包含KEYA(密钥A)、控制位、KEYB(密钥B),每个扇区可以通过它包含的密钥A或者密钥B单独加密

0扇区0块是特殊的数据块,用于存放制造商代码,包括芯片序列号UID,ATQA和SAK

非加密卡和加密卡的区别就是,非加密卡中所有扇区的KEYA和KEYB数值都是默认值FFFFFFFFFFFF;而加密卡中,其中有扇区的KEYA和KEYB不等于FFFFFFFFFFFF,部分扇区加密的卡称半加密卡,所有扇区都加密的卡称全加密卡

M1卡数据结构

IC卡读写

设备

如果想读取IC卡中的数据,需要通过支持读卡技术(RFID、NFC)的硬件设备支持了,比如pn532、acr122u、proxmark3等,笔者使用的是Proxmark3,忽略性价比因素,相比于其它傻瓜式设备,proxmark3的功能更全面些,可玩性也更高,另外集成NFC模块的手机也支持IC卡片的读取

Proxmark3

读取IC卡

Proxmark3是由Jonathan Westhues设计并且开发的开源硬件,其主要用RFID的嗅探、读取以及克隆等的操作

官方固件更新记录:最近更新2019/03/15

除了官方软件,还有其它大神的软件:Proxbrute、EMV、Iceman

笔者用的是冰人(iceman)固件

冰人固件更新记录:最近更新2019/03/06

读卡方法:

用USB连接proxmark3后,安装完驱动,可以在设备管理器中查看设备串口号

串口识别COM4

打开PM3 Universal GUI软件,选择 COM4 连接proxmark3

查看Proxmark3的固件版本,发送指令:

  • hw version

已刷冰人固件

在IC卡感应位置放上IC卡

然后读取卡片信息,发送指令:

  • hf 14a info

其实Proxmark3最重要的功能还支持获取扇区的密钥,从而获取所有扇区的数据,这部分内容笔者本来有写,而且是本文的主要内容,无奈值得买平台对敏感信息审核比较严格,笔者第一次的文章提交未通过,只好把大部分违规内容给删除了,关于Proxmark3获取密钥的方法,值友们可以搜索其它平台,有类似方法介绍

在已知密钥的情况下,通过密钥将卡片数据读出,保存在仿真器内存中,发送指令:

  • hf mf ecfill A 1

最后将仿真器内存中的卡片数据保存位文件TestData.eml,发送指令:

  • hf mf esave 1 TestData

打开TestData.eml文件,可以看到所有扇区的数据都成功读取

写卡方法:

写UID卡:

准备一张UID卡,读取卡片信息,其中Answers to magic commands: Yes表示这张卡是中国魔术卡(UID卡)

写数据到UID卡中,发送指令:

  • hf mf cload TestData

读出UID卡每个扇区中数据,以确认是否成功写入,发送指令:

  • hf mf cgetsc n

cloadcgetsc命令是专门针对UID卡的,换成其它类型卡比如CUID卡则无效

写CUID卡:

那么写CUID卡该如何操作呢?现在大部分门禁系统都加入了屏蔽系统,使用复制的UID卡会出现只能使用一次,下次刷卡无效的情况,而CUID卡防屏蔽解决了这个问题,所以笔者继续研究如何写CUID卡,写CUID卡需要指令:

  • hf mf wrbl blknum A/B KEYA/KEYB 000102030405060708090A0B0C0D0E0F

麻烦的是该指令每次只写1个块的数据,而卡中总共64块,所以需要执行64条指令,手动执行肯定比较耗时耗力,因此笔者写了lua脚本(cuidwrite.lua)自动执行写64块的操作

...

CUID写操作脚本执行

读取CUID卡片信息,其中Answers to magic commands: NO,只有UID卡才会返回YES

手机NFC读写卡

手机中安装MCT(mifare classic tool),无需root,可读取mifare系列IC卡的数据

MCT读取的数据

MCT写卡需要数据和密钥,可以只添加密钥,然后利用密钥直接读取卡片数据

1)编辑/增加密钥 :新建密钥文件TestKey,进入密钥编辑页面,将密钥数据从电脑上复制然后粘贴进来

2)读取原卡数据:将原卡放在手机NFC感应区域,在MCT中选择正确的密钥TestKey,所有扇区数据就能成功读取

如果选择不正确的密钥,则无法读取完整数据

3)保存数据至转储文件

4)数据写入新卡:准备一张空白UID卡,识别卡片后,选择密钥文件和转储文件,选择扇区,等待写入完成即可

这么简单就完事了,还是太天真?

重新读取卡片数据确认,在MCT里选择比较转储功能,发现卡中0扇区0块的数据与转储文件不同,这说明0扇区0块的数据没有成功写入

后来笔者研究了下,原来需要在写转储时勾选 “高级:使能厂商块写入”选项,勾上这个选项后另外单独写一次0扇区

但是反复尝试了UID卡,这种方法也无法写入0扇区;尝试了CUID卡,这种方法可以写入0扇区

注:MCT方式只能写CUID卡,用MCT写卡没有Proxmark3稳定,有时会出现写坏锁死CUID卡的情况

IC卡模拟(手机、手环)

MIUI门卡

小米MIUI推出了门卡模拟的功能,不仅可以将卡数据写入到手机中,而且手环也可以,当然需要写特殊手段,但是为了安全考量,小米官方都不支持加密卡的模拟

笔者的小米MIX2板载NFC芯片是NXP 80T19

NXP 80T19芯片其模拟的卡类型属于NXP JCOP系列,Proxmark3的官方固件是不支持JCOP卡,后来笔者是刷了冰人固件才能正常识别MIX2模拟的门卡

NXP JCOP系列芯片卡是恩智浦NXP公司在高安全性的解决方案高性能产品。广泛应用如银行与金融,移动通信,公共交通,访客访问和网络接入等领域。支持接触式、非接触式、支持接触式与非接触式读写,内含有一个JCOP版本操作系统,并提供40 k-80K字节EEPROM存储器。NXP JCOP系列芯片卡出厂带传输密钥(Transport Key),需要经过初始化后,方可访问卡片内置的COS系统,因为此类芯片卡的安全系列非常高。

小米MIUI推出的门卡功能有两个模式:模拟实体门卡和添加虚拟门卡

模拟实体门卡

这个功能是将实体卡中的数据读取出来,然后通过手机模拟实体卡,将卡模拟到手机后,可以只带手机在刷卡机处刷卡,无需再另外带实体卡,轻便出行。可读取的门卡包括普通白卡、钥匙扣之类的IC卡

但是模拟的卡中不包括加密卡,如果卡被识别为加密卡,则会提示“加密卡不支持模拟”

非加密卡,可以成功模拟,模拟过程中需要证件和密码认证,这功能必须进行安全因素的考量

手机放在IC卡感应器

Proxmark3读出的模拟门卡信息,UID与实体IC卡的相同

添加虚拟门卡

虚拟门卡可以根据场景开卡,选择自定义空白卡,相当于由MIUI自动生成一张0扇区不可更改的IC卡,剩下的扇区数据可以随意写入。如果物业允许,在物业处开通虚拟门卡的权限即可,不过一般小区物业不会同意的

虚拟门卡开卡

Proxmark3读取到的虚拟门卡信息,UID由MIUI自动分配

模拟加密卡

现实中有个需求就是,想把手上的IC卡写到手机中,虚拟门卡是因其UID是由MIUI自动分配的,且生成后不可更改,虚拟门卡没条件开通门禁系统权限的条件下,只能选择模拟实体卡的功能了,但是模拟实体卡有个问题,前文中也提到过,现在使用的IC卡基本都是加密卡,模拟实体卡功能又不支持加密卡,那就没有办法了吗?

答案是肯定的,可以模拟加密卡,前方高能!!!真正的干货来了!!!

模拟加密卡的思路:获取加密卡数据 --> 只写UID信息到实体UID白卡中 --> 模拟UID白卡 --> 往模拟卡中写入加密数据

第一步:获取加密卡数据

用Proxmark3获取加密卡的密钥,然后读取所有加密数据(内容违规,已删

第二步:只写UID信息到实体UID白卡中

Proxmark3上更换一张UID空白卡,然后写0扇区0块数据

发送指令:

  • hf mf csetblk 0 7295B829760804000214F34CBDBE2F1D

只写了0扇区0块的UID卡,因为未写加密数据,这张UID卡目前还是一张非加密卡

第三步:模拟UID白卡

手机上使用MIUI门卡的标准功能,模拟写了0扇区0块的UID卡

这一步相当于已将加密卡的0扇区写入到手机中

第四步:往模拟卡中写入加密数据

手机切换到卡模式,然后放在Proxmark3感应区域

用Proxmark3往手机的模拟门卡里写入加密数据,发送指令:

  • hf mf restore 1 u 7295B829

. . .

1 ~ 63块数据成功写入

这一步写入了1 ~ 63块数据,但是0扇区0块数据无法写入,没关系因为0扇区0块数据已经在第三步中写入了

至此,所有扇区数据已写入到手机中,加密卡模拟成功完成

手机中可以设定刷卡方式设置,选择默认快捷卡片,只要靠近读卡器,手机自动唤醒切换到卡模式,并且首选默认快捷卡片

笔者模拟了公司门禁卡、小区物业门禁卡,加上MI Pay绑定的信用卡用于刷公交地铁,出行基本就不用带一堆卡了,一个手机全搞定

手环模拟

小米手环3 NFC版也可以通过相同方法模拟加密卡

总结

关于模拟加密卡功能,科技方便生活,笔者只尝试了小米系产品,另外华为系也有类似的门卡功能,等笔者手上有华为手机了另做尝试,苹果系则是要等iOS开方NFC权限,不知道红年马月了。

相关参考

游乐场消费机(游乐园IC卡消费管理系统)

系统设计原则:“一卡在手,游遍全景区”。本系统旨在建设一个以感应式IC卡代币的模式,实现游乐园各个设施档口的消费收入管理,明细统计管理等;实现对游乐园管委会的:收入管理、查询管理、会员管理、客户资料管理...

游乐场消费机(游乐园IC卡消费管理系统)

系统设计原则:“一卡在手,游遍全景区”。本系统旨在建设一个以感应式IC卡代币的模式,实现游乐园各个设施档口的消费收入管理,明细统计管理等;实现对游乐园管委会的:收入管理、查询管理、会员管理、客户资料管理...

没有门禁卡怎么开门(NFC手机手环模拟加密门禁卡简单易懂教学,出入小区不用门禁卡)

...连回个家都得先把门卡翻出来,各种各样的卡,方便我们生活的同时也为我们的生活带来一点点不便。

感应射频ID卡(IC卡是接触式还是非接触式的好?)

...非接触式电梯IC卡:非接触式IC卡又称射频卡,由IC芯片、感应天线组成,封装在一个标准的PVC卡片内,芯片及天线无任何外露部分。是世界上最近几年发展起来的一项新技术,它成功的将射频识别技术和IC卡技术结合起来,结束...

感应式水表怎么刷卡没反应(IC卡智能暖通阀怎么使用?)

...将第一次购暖后或者已经购过暖的用户卡放到水表的射频感应区就会有相

手机连接读卡器没反应(将手机变成读卡器)

...连回个家都得先把门卡翻出来,各种各样的卡,方便我们生活的同时也为我们的生活带来一点点不便。其实NFC手机不仅可以模拟公交卡和银行卡,还能瞬间秒变以

手机怎么靠近读卡器(将门禁卡考勤卡会员卡停车卡电梯卡等各种卡模拟进手机里)

...连回个家都得先把门卡翻出来,各种各样的卡,方便我们生活的同时也为我们的生活带来一点点不便。其实NFC手机不仅可以模拟公交卡和银行卡,还能瞬间秒变以上各

感应平开门(感应式IC卡幼儿园门禁系统方案)

第一章幼儿园对门禁的需求分析1.1市场需求幼儿是祖国的未来,是父母的希望。幼儿安全问题是全社会安全工作的一个十分重要的组成部分。它直接关系到幼儿能否安全、健康地成长,关系到千千万万个家庭的幸福安宁和社会和...

感应式IC卡智能门禁机(一学就会,加密门禁卡怎么弄到手机上,手机变门禁卡(建议分享))

#活水计划#我是IT悟道,点击右上方“关注”,每天分享IT、科技、数码方面的干货。知其要者,一言而终;不知其要,流散无穷,此之谓也。——《黄帝内经》意思:知道它的关键点,一句话就把它概括完了。不知道它的关键...

微耕读卡器(感应式IC卡幼儿园门禁系统方案)

第一章幼儿园对门禁的需求分析1.1市场需求幼儿是祖国的未来,是父母的希望。幼儿安全问题是全社会安全工作的一个十分重要的组成部分。它直接关系到幼儿能否安全、健康地成长,关系到千千万万个家庭的幸福安宁和社会和...