最近公司项目又用到了RFID相关的东西,整理资料想起来更一篇。

RFID

RFID简介

无线射频识别即射频识别技术(Radio Frequency Identification,RFID),是自动识别技术的一种,通过无线射频方式进行非接触双向数据通信,利用无线射频方式对记录媒体(电子标签进行读写,从而达到识别目标和数据交换的目的,其被认为是21世纪最具发展潜力的信息技术之一。


RFID组成部分

完整的RFID系统由读写器(Reader)电子标签(Tag)数据管理系统三部分组成。

1、关于阅读器

阅读器是将标签中的信息读出,或将标签所需要存储的信息写入标签的装置。

根据使用的结构和技术不同,阅读器可以是读/写装置,是RFID系统信息控制和处理中心

在RFID系统工作时,由阅读器在一个区域内发送射频能量形成电磁场,区域的大小取决于发射功率。

在阅读器覆盖区域内的标签被触发,发送存储在其中的数据,或根据阅读器的指令修改存储在其中的数据,并能通过接口与计算机网络进行通信。

阅读器的基本构成通常包括:收发天线频率产生器锁相环调制电路微处理器存储器解调电路外设接口组成

(1)收发天线:发送射频信号给标签,并接收标签返回的响应信号及标签信息。

(2)频率产生器:产生系统的工作频率。

(3)锁相环:产生所需的载波信号。

(4)调制电路:把发送至标签的信号加载到载波并由射频电路送出。

(5)微处理器:产生要发送往标签的信号,同时对标签返回的信号进行译码,并把译码所得的数据回传给应用程序,若是加密的系统还需要进行解密操作。

(6)存储器:存储用户程序和数据。

(7)解调电路:解调标签返回的信号,并交给微处理器处理。

(8)外设接口:与计算机进行通信。

2、关于电子标签

电子标签由收发天线、AC/DC电路、解调电路、逻辑控制电路、存储器和调制电路组成。

(1)收发天线:接收来自阅读器的信号,并把所要求的数据送回给阅读器。

(2)AC/DC电路:利用阅读器发射的电磁场能量,经稳压电路输出为其它电路提供稳定的电源。

(3)解调电路:从接收的信号中去除载波,解调出原信号。

(4)逻辑控制电路:对来自阅读器的信号进行译码,并依阅读器的要求回发信号。

(5)存储器:作为系统运作及存放识别数据的位置。

(6)调制电路:逻辑控制电路所送出的数据经调制电路后加载到天线送给阅读器。


RFID分类

射频识别技术依据其标签的供电方式可分为三类,即无源RFID有源RFID,与半有源RFID

1、无源RFID

在三类RFID产品中,无源RFID出现时间最早,最成熟,其应用也最为广泛。在无源RFID中,电子标签通过接受射频识别阅读器传输来的微波信号,以及通过电磁感应线圈获取能量来对自身短暂供电,从而完成此次信息交换。因为省去了供电系统,所以无源RFID产品的体积可以达到厘米量级甚至更小,而且自身结构简单,成本低,故障率低,使用寿命较长。但作为代价,无源RFID的有效识别距离通常较短,一般用于近距离的接触式识别。无源RFID主要工作在较低频段125KHz13.56MKHz等,其典型应用包括:公交卡、二代身份证、食堂餐卡等。

2、有源RFID

有源RFID兴起的时间不长,但已在各个领域,尤其是在高速公路电子不停车收费系统中发挥着不可或缺的作用。有源RFID通过外接电源供电,主动向射频识别阅读器发送信号。其体积相对较大。但也因此拥有了较长的传输距离与较高的传输速度。一个典型的有源RFID标签能在百米之外与射频识别阅读器建立联系,读取率可达1,700read/sec。有源RFID主要工作在900MHz2.45GHz5.8GHz等较高频段,且具有可以同时识别多个标签的功能。有源RFID的远距性、高效性,使得它在一些需要高性能、大范围的射频识别应用场合里必不可少。

3、半有源RFID

无源RFID自身不供电,但有效识别距离太短。有源RFID识别距离足够长,但需外接电源,体积较大。而半有源RFID就是为这一矛盾而妥协的产物。半有源RFID又叫做低频激活触发技术。在通常情况下,半有源RFID产品处于休眠状态,仅对标签中保持数据的部分进行供电,因此耗电量较小,可维持较长时间。当标签进入射频识别阅读器识别范围后,阅读器先现以125KHz低频信号在小范围内精确激活标签使之进入工作状态,再通过2.4GHz微波与其进行信息传递。也即是说,先利用低频信号精确定位,再利用高频信号快速传输数据。其通常应用场景为:在一个高频信号所能所覆盖的大范围中,在不同位置安置多个低频阅读器用于激活半有源RFID产品。这样既完成了定位,又实现了信息的采集与传递。


Mifare卡

MIFARE是恩智浦半导体公司(NXP Semiconductors)拥有的一系列非接触式智能卡和近傍型卡技术的注册商标。

MIFARE包括一系列依循ISO/IEC 14443-A规格,利用无线射频识别(频率为13.56MHz)的多种非接触式智能卡专有解决方案。这项技术是最早是1994年由米克朗集团(Mikron Group)开发,在1998年转售给飞利浦电子公司(2006年更名为恩智浦半导体公司)。


Mifare卡分类

MIFARE卡根据芯片不同分为M1、M2、M3卡。mifare卡主要芯片有 philip mifare1 S50S70等。 所谓的M1芯片,是指菲利浦下属子公司恩智浦出品的芯片缩写,全称为NXP Mifare1系列,常用的有S50S70两种型号。常见的有卡式和钥匙扣式。


数据存储结构

我们常见的M1卡通常型号是MIFARE Classic 1k, NXP, ISO/IEC 14443, Type A这种,也就是内存只有1024 byte里面有16个扇区这种,他的数据结构是这样的:

M1卡存储结构

当然还有一种有64个扇区4kb这种M1卡,我大学头几年水卡就用的这种,为什么说头几年呢?

溜了溜了

这种4k卡存储结构跟1k一模一样的,就是多了几十个扇区而已。。。


M1卡工作原理

M1卡工作原理


破解?修改?学习!

大概在14年的时候,博主接触到了这方面的知识。
15年夏天大学里拿着学校的水卡把玩,打开手机的NFC一扫,M1 4k卡,跳下床跑到宿舍厕所仔细检查水表除了电源线还有没有其他的线比如——网线,没有。
分析平时使用的业务逻辑,要先去食堂充钱,再到宿舍楼下读卡器自助转换余额到水卡里,于是猜测水卡部分是离线的。
来研究一下。

工欲善其事必先利其器。
先介绍一下我当时用的工具,其实当时用的工具很局限,那个年头就那么几款软硬件,网上很多帖子也都有说,不像现在五花八门的硬件软件,这部分其实可以略过,这里就是记录个过程

硬件

  • ACR122U 读卡器 (穷,当时买不起几千块的PM3,但是这个操作M1卡也足够了)
  • 自己以及朋友的一卡通,还有捡到的

软件

  • RadioEye
  • mfocgui_lite (M1服务程序)
  • WinHexXp (16进制编辑器,任意一款都可以)
  • ACR122U DRIVER/SDK (读卡器驱动与SDK)
  • 系统计算器
  • fixdump (修复dump文件的,当时没用到)
  • MIFARE经典工具.apk(因为后来懒得开电脑直接用手机改查所以有这个需求,手机上最老的MIFARE 1卡相关APP了,国外作者软件免费,感谢。现在很多国内的优秀APP例如M TOOLS全家桶等,以前酷安上架过现在只能谷歌商店获取)

ACR122U
ACR122U
ACR122U DRIVER
ACR122U DRIVER
ACR122U SDK
ACR122U SDK
RadioEye
RadioEye
RadioEye
RadioEye
mfocgui_lite
mfocgui_lite
HexEditXp
HexEditXp
一些手机工具-M Calc
一些手机工具-M Calc
一些手机工具-M Tools
一些手机工具-M Tools
一些手机工具-RFID Tools
一些手机工具-RFID Tools
一些手机工具-MIFARE经典工具
一些手机工具-MIFARE经典工具

过程

  1. 装好软件,插上读卡器,掏出卡,放。
  2. 打开mfocgui_lite(M1服务程序),暴破每个扇区的密码,如同之前介绍的数据结构中一样,每个扇区有key akey b两组密码,每组密码12位的16进制字符,从000000000000到FFFFFFFFFFFF,穷举爆破就完事了,用ACR122U这个设备当时跑完4k的卡大约需要40分钟。之后我们得到了三个dump文件,分别是key akey b以及我们需要的卡片内容。
  3. 多找几张卡继续跑,当然跑之前要知道原先的数据,比如水卡就先插到机器上看下余额,方便以后计算。然后得到N张卡的数据。或者你如果不嫌累的话只用一张卡改变几次余额再跑出dump进行不同余额的比对也可以,反正就那么个道理。
  4. 打开你安装的16进制编辑器,我用的是HexEditXp,把dump拖进来可以看到数据内容,通过跟别人的数据比对或者通过同一张卡不同金额的数据比对定位到要修改的数据所在位置,再联系之前记录的原本的10进制数字金额进行推算 ,时隔好多年我已没有当时数据了,网上去freebuf或者csdn一搜就有很多精彩的推算例子,不同的卡加密计算方式不同,校验位还有通过异或、求和等方式,自己去探索的过程其实很有趣的。
  5. 修改,保存。
  6. 打开RadioEye软件,选择你刚刚改好的dump文件,选择连接的ACR122U,写入烧录进去,去试试成功了吗?

当时我测试完水卡,同样离线验证的洗衣机卡扇区也测试通过了。

仅供技术学习,违法的事情不要干

下个学期学校升级了系统,换成了现在很普遍的跟银行合作的IC卡,不过终端硬件没换,理论上用老卡还是可以继续。。。

别搞事


总结

公司用到了AndroidNFCRFID相关的技术,并且很多是跟厂家合作集成的东西,以后有时间觉得有必要在更新一篇更深入讨论应用技术的,溜了先

仅供技术学习,违法的事情不要干

最后修改:2020 年 07 月 02 日 09 : 48 PM
如果觉得我的文章对你有用,请随意赞赏