码农生活 篇二:IC卡门卡模拟探秘

2019-03-26 00:10:00 228点赞 2861收藏 153评论

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


前言

现在生活中少不了各种卡,公交卡、地铁卡、银行卡、门禁卡等,它们都是什么卡?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卡和读卡机

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


IC 白卡IC 白卡

IC钥匙扣IC钥匙扣

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卡数据结构M1卡数据结构

IC卡读写

设备

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


Proxmark3Proxmark3

读取IC卡读取IC卡

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

官方网站

官方论坛

官方固件(Github)

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

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

IC卡门卡模拟探秘

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

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

读卡方法:

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

串口识别COM4串口识别COM4

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

IC卡门卡模拟探秘

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

  • hw version

已刷冰人固件已刷冰人固件

在IC卡感应位置放上IC卡

IC卡门卡模拟探秘

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

  • hf 14a info

IC卡门卡模拟探秘

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

IC卡门卡模拟探秘

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

  • hf mf ecfill A 1

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

  • hf mf esave 1 TestData

IC卡门卡模拟探秘

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

IC卡门卡模拟探秘

写卡方法:

写UID卡:

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

IC卡门卡模拟探秘

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

  • hf mf cload TestData

IC卡门卡模拟探秘

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

  • hf mf cgetsc n

IC卡门卡模拟探秘

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

IC卡门卡模拟探秘

写CUID卡:

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

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

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

......

CUID写操作脚本执行CUID写操作脚本执行

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

IC卡门卡模拟探秘

手机NFC读写卡

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

IC卡门卡模拟探秘

MCT读取的数据MCT读取的数据

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

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

IC卡门卡模拟探秘

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

IC卡门卡模拟探秘

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

IC卡门卡模拟探秘

3)保存数据至转储文件

IC卡门卡模拟探秘

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

IC卡门卡模拟探秘

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

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

IC卡门卡模拟探秘

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

IC卡门卡模拟探秘

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

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

IC卡模拟(手机、手环)

MIUI门卡

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

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

IC卡门卡模拟探秘

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

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

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

IC卡门卡模拟探秘

模拟实体门卡

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

IC卡门卡模拟探秘

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

IC卡门卡模拟探秘

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

IC卡门卡模拟探秘

手机放在IC卡感应器手机放在IC卡感应器

IC卡门卡模拟探秘

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

添加虚拟门卡

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

虚拟门卡开卡虚拟门卡开卡

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

模拟加密卡

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

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

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

第一步:获取加密卡数据

用Proxmark3获取加密卡的密钥,然后读取所有加密数据(内容违规,已删IC卡门卡模拟探秘 )

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

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

IC卡门卡模拟探秘

发送指令:

  • hf mf csetblk 0 7295B829760804000214F34CBDBE2F1D

IC卡门卡模拟探秘

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

第三步:模拟UID白卡

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

IC卡门卡模拟探秘

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

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

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

IC卡门卡模拟探秘

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

  • hf mf restore 1 u 7295B829

. . .. . .

1 ~ 63块数据成功写入1 ~ 63块数据成功写入

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

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

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

IC卡门卡模拟探秘


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

IC卡门卡模拟探秘

手环模拟

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

IC卡门卡模拟探秘

总结

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

展开 收起

HONOR 荣耀 智能体脂称2

HONOR 荣耀 智能体脂称2

89元起

毕亚兹(BIAZE) 小米手环3腕带 替换带新款三代 智能运动手环 黑色

毕亚兹(BIAZE) 小米手环3腕带 替换带新款三代 智能运动手环 黑色

18.23元起

lifesense 乐心 S11 智能体脂秤 (白色)

lifesense 乐心 S11 智能体脂秤 (白色)

105元起

Yolanda 云康宝 CS20A 智能体脂秤 (白色)

Yolanda 云康宝 CS20A 智能体脂秤 (白色)

149元起

UBTECH 优必选 Alpha Ebot 智能机器人

UBTECH 优必选 Alpha Ebot 智能机器人

2329元起

BRASPORT(巴斯波)精选意大利牛皮快拆式真皮表带 适配22mm宽平直接口手表(男款-黑色)

BRASPORT(巴斯波)精选意大利牛皮快拆式真皮表带 适配22mm宽平直接口手表(男款-黑色)

99元起

沃莱(ICOMON)i9智能体脂秤 电子秤 体重秤 人体家用称重 健身减肥脂肪秤 APP测27项数据 健康秤体脂仪 蓝白

沃莱(ICOMON)i9智能体脂秤 电子秤 体重秤 人体家用称重 健身减肥脂肪秤 APP测27项数据 健康秤体脂仪 蓝白

62.33元起

Polar 博能 OH1 心率臂带

Polar 博能 OH1 心率臂带

1249元起

Keep 智能体脂秤女蜜桃粉 电子体重秤健康家用 wifi连接 APP定制健身计划

Keep 智能体脂秤女蜜桃粉 电子体重秤健康家用 wifi连接 APP定制健身计划

194元起

准儿 PE01 智能随身翻译机 黑色

准儿 PE01 智能随身翻译机 黑色

998元起

京东京造x准儿翻译机GO 拍照翻译器离线翻译宝45种语言互译中日英语学习出国旅游翻译神器

京东京造x准儿翻译机GO 拍照翻译器离线翻译宝45种语言互译中日英语学习出国旅游翻译神器

1178元起

沃莱(ICOMON)i9u充电款智能体脂秤 电子秤 体重秤 家用称重脂肪秤 蓝牙APP测27项数据 人体减肥秤健康秤 白

沃莱(ICOMON)i9u充电款智能体脂秤 电子秤 体重秤 家用称重脂肪秤 蓝牙APP测27项数据 人体减肥秤健康秤 白

89元起

吉米有品(JIMI)黑科技智能Mug杯可连接小爱同学声控调节马克杯 情侣互动咖啡杯高档商务创意礼品男女生礼物S3

吉米有品(JIMI)黑科技智能Mug杯可连接小爱同学声控调节马克杯 情侣互动咖啡杯高档商务创意礼品男女生礼物S3

589元起

纽曼A35扫描翻译机8G大屏翻译笔小中大学生英语学习牛津电子词典离线在线实时翻译器中英日韩泰等16语言互译

纽曼A35扫描翻译机8G大屏翻译笔小中大学生英语学习牛津电子词典离线在线实时翻译器中英日韩泰等16语言互译

1019元起

京东云 金正 T20 翻译机138种语言在线翻译器离线翻译棒拍照翻译笔出国旅游翻译神器 黑色

京东云 金正 T20 翻译机138种语言在线翻译器离线翻译棒拍照翻译笔出国旅游翻译神器 黑色

599元起

魔芋AI翻译机 Pro

魔芋AI翻译机 Pro

349元起
153评论

发表评论请 登录
  • 最新
  • 最热
评论举报

请选择举报理由

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
2.8K
扫一下,分享更方便,购买更轻松