RFID是Radio Frequency Identification的缩写,术语为射频识别,俗称电子标签。按照工作频率的不同,RFID标签可以分为低频(LF)、高频(HF)、超高频(UHF)和微波等不同种类。目前国际上广泛采用的频率分布于4种波段,低频(125KHz)、高频(13.54MHz)、超高频(850MHz~910MHz)和微波(2.45GHz)。
目前在实际应用中,比较常用的是13.56MHz、860MHz~960MHz、2.45GHz等频段。近距离RFID系统主要使用125KHz、13.56MHz等LF和HF频段,技术最为成熟;远距离RFID系统主要使用433MHz、860MHz~960MHz等UHF频段,以及2.45GHz、5.8GHz等微波频段,目前还多在测试当中,没有大规模应用。
低频段射频标签,简称为低频标签,其工作频率范围为30kHz~300kHz。典型工作频率有125KHz和133KHz。
低频标签一般为无源标签,其工作能量通过电感耦合方式从阅读器耦合线圈的辐射近场中获得。低频标签与阅读器之间传送数据时,低频标签需位于阅读器天线辐射的近场区内。
低频标签的阅读距离一般情况下小于1米。
中高频段射频标签的工作频率一般为3MHz~30MHz。典型工作频率为13.56MHz。根据无线电频率的一般划分,这一工作频段又称为高频,所以也常将其称为高频标签。
中频标签的阅读距离一般情况下也小于1米。中频标签由于可方便地做成卡状,广泛应用于电子车票、电子遥控门锁控制器、小区物业管理、大厦门禁系统等。
首先从频率上可以分为高频(13.56MHZ)和低频两种类型的卡,在这两个频率上又会分为多种类型的卡。常见的卡的有:
全称为身份识别卡(Identification Card),,内部芯片的全名叫做EM4100或EM41XX是一种只读不可写入的感应卡,频率是125KHz,含固定的编号.卡号在封卡前写入后不可再更改,绝对确保卡号的唯一性和安全性.ID卡在弱电系统中一般作为门禁或停车场系统的使用者身份识别,因ID卡无密钥安全认证机制,且不能写卡,现在行业内的基本共识是ID卡不适合做成一卡通,也不合适做消费系统。
T5577 卡是一种可以写入数据可以加密的低频卡。最特别之处是,写入ID号可以变身成为ID卡,写入HID号可以变身HID卡,写入Indala卡号,可以变身Indala卡。T5577一共有8个块,每个块只能存8位数。第0块是用来设置卡片类型和调制方式的,决定了卡片是ID卡还是HID卡,如果随意修改会导致读不到卡。最后一个块,在没有加密时是数据区,加密后,其数据就变成了密码。
又称集成电路卡,一般可读可写,频率是13.56MHz,它是在大小和普通信用卡相同的塑料卡片上嵌置一个或多个集成电路构成的。集成电路芯片可以是存储器或向处理器。带有存储器的IC卡又称为记忆卡或存储卡,带有微处理器的IC卡又称为智能卡或智慧卡。记忆卡可以存储大量信息;智能卡则不仅具有记忆能力,而且还具有处理信息的功能。IC卡可以十分方便地存汽车费、电话费、地铁乘车费、食堂就餐费、公路付费以及购物旅游、贸易服务等。
M1卡是IC卡的一种,是目前较为常见的,一般是指菲利浦下属子公司恩智浦出品的芯片缩写,国内的复旦F08,达华的TKS50等兼容飞利浦S50的卡片都有可以称为M1卡,属于非接触式IC卡,M1卡储存的数据大小为8k位,相当于1KB的容量。M1卡分为16个数据存储区,通常我们称为“扇区”,编号是“0”到“15”。每个扇区又分为4个存储单元,我们称为“块”,在M1卡中数据存储的最小单位就是“块”。每一块有16字节(16B),用来存放数据。。每个扇区都有独立的一组密码及访问控制,每张卡有唯一的一个32位的序列号。每个扇区的0,1,2块为数据块,用来存储数据,第3块为控制块,包括了密A、存取控制、密码B。每张卡的第0扇区的第0块用来存放厂商代码,不可更改。M1卡是可读可写的多功能卡,具有可加密的存储空间,适合非定额消费系统、停车场系统、门禁考勤系统等。
UID卡可以修改任意扇区,作为M1复制的子卡,主要应用在IC卡复制上。该卡片完全兼容mifare 1k卡片。卡片的block0(UID所在的block)可以任意修改,重复修改,不需要密码即可读写卡,同时不怕写坏卡,即使写错0块,写坏扇区控制字,也可以随时修复回来,不影响后续使用。适用于多种领域,比如一卡通、门禁、停车场、写字楼等各行业中非接触式IC卡应用。
FUID卡是针对UID卡做的优化。新的读卡系统,通过检测卡片对特殊指令的回应,可以检测出UID卡,因此可以来拒绝UID卡的访问,来达到屏蔽复制卡的功能。FUID可以修改0块,但只可以修改一次,写错也没办法更改,也不能重复利用。修改后和M1卡完全一样,很难被屏蔽检测。
CUID卡是针对FUID卡做的优化。CUID卡可以重复修改0块,但是它和UID卡的区别是,UID卡是通过指令修改0块,CUID使用的是常规密码验证的方法写0块,其他扇区和标准M1卡相同。缺点是,还是有可能会被检测出来,而且如果不小心写错了UID号的校验位导致无法读卡,没办法修复只能报废。
卡片内有一个LC串联谐振电路,其频率与读写器发射的频率相同,这样在电磁波激励下,LC谐振电路产生共振,从而使电容内有了电荷;在这个电容的另一端。
接有一个单向导通的电子泵,将电容内的电荷送到另一个电容内存储,当所积累的电荷达到2V时,此电容可作为电源为其它电路提供工作电压,将卡内数据发射出去或接受读写器的数据。
ID卡阅读器将载波信号经天线向外发送,ID卡进入卡阅读器的工作区域后,由阅读器中电感线圈和电容组成的谐振回路接收阅读器发射的载波信号,卡中芯片的射频接口模块由此信号产生出电源电压、复位信号及系统时钟,使芯片“激活”。
芯片读取控制模块将存储器中的数据经调相编码后调制在载波上,经卡内天线回送给卡阅读器;卡阅读器对接收到的卡回送信号进行解调、解码后送至后台计算机;后台计算机根据卡号的合法性,针对不同应用做出相应的处理和控制。
M1卡收到一组固定频率的电磁波,卡片内有一个LC串联谐振电路,其频率与读写器发射的频率相同,在电磁波的激励下,LC谐振电路产生共振,从而使电容内有了电荷。在这个电容的另一端,接有一个单向导通的电子泵,将电容内的电荷送到另一个电容内储存,当所积累的电荷达到2V时,此电容可做为电源为其它电路提供工作电压,将卡内数据发射出去或接取读写器的数据。
T5557 是非接触式 R/ W 辨识集成电路(IDIC),适用于 125 KHz 频率范围。被连接到芯片的单一天线线卷, 被视为集成电路的电力驱动补给和双向信息的沟通接口。天线和芯片一起构成应答卡片或标签。在芯片上有330 bit 的 E2PROM(分布为10个区块, 每个区块 33 bit)能从一个读写器上被读和写。区块 0 是被保留用于设置 T5557 的操作模式的标签块。区块 7 可能包含一组密码,用于避免未经认可的写。数据的传送,利用 IDIC 加载调制完成。它是在2个终端1和2 的线圈中感生出一个RF抵抗场强,这IC接收到 扫描场,再以100%的振幅进行解码调制,从而得到基站或读写器的编译码信息。
IC卡已是当今国际电子信息产业的热点产品之一,除了在商业、医疗、保险、交通、能源、通讯、安全管理、身份识别等非金融领域得到广泛应用外,在金融领域的应用也日益广泛,影响十分深远。
ID卡在弱电系统中一般作为门禁或停车场系统的使用者身份识别,由于其无须内置电源,使用时无接触且寿命长,因此在弱电系统中有广泛的应用。
主要用于公交、轮渡、地铁的自动收费系统,也应用在门禁管理、身份证明和电子钱包。
存储器卡、逻辑加密卡、CPU卡、超级智能卡、接触式IC卡、非接触式IC卡、双界面卡。
ISO标准ID卡的规格为:85.6x54x0.80±0.04mm(高/宽/厚),市场上也存在一些厚、薄卡或异型卡。
ID厚卡:厚度>0.9mm,标准卡的尺寸大小标准卡:85.6x54x0.80±0.04mm尺寸大小,可以胶印、丝网印刷、打印照片等;异型卡:尺寸大小形状等不一,可以胶印、丝网印刷、打印照片等;
常用的有S50及S70两种型号,常见的有卡式和钥匙扣式。
PRNG安全缺陷
PRNG安全缺陷,国外的安全研究人员发现,MIFARE Classic采用的是Crypto-1私有加密算法,其算法的特点就是对称式的密码算法或者说是私钥密码系统。其主要组成部分是伪随机数发生器(PRNG)、48位的线性反馈移位寄存器(LFSR)以及非线性函数。由于算法当中的Filter Function的设计出现缺陷,导致改变线性反馈移位寄存器的后8位数值就有可能得到所对应的Keystream。这个缺陷类似于802.11b WEP算法,不同的明文有极高的可能性被相同的Keystream,使得整个加密算法出现了漏洞,而Proxmark3就是基于PRNG的安全缺陷进行的随机数碰撞,利用PRNG的安全缺陷我们可以很快速地得到对应的密钥,从而进行进一步的破解操作。
已知密钥穷举
已知密钥穷举,从多次针对算法的破解得出的Key列表中发现,很多使用MIFARE Classic的用户都会将其默认的密钥延续使用,意思就是很多人宁可贪图一时方便继续使用出厂时的密钥,也不会根据自身的安全需求而进行改变,以至我们可以不需要花费太多的时间就可以进行破解从而得到卡类的信息。综合上述,我们知道如果要处理任何MIFARE Classic卡的数据都需要利用密钥进行识别,从而读取对应的数据。不破解就不可能读取其内容。
暴力破解
暴力破解,从WEP到 WPA/WPA2的密钥破解我们可以知道,暴力破解已经从浪费时间、成功率低到现在GPU暴力破解时间短、成功率高转变,MIFARE Classic也是如此,我们可以利用GPU等高速暴力破解手段进行破解,从而得到我们所需要的密钥。
如下两图所示,图一为不带PM3及功能介绍,图二为带外壳的PM3功能及极少(感觉还是上个版本的好看),此外我对以下测试过程中的数据做了一些修改,如key、data等。
硬件说明:
变色龙电源开关
变色龙切换键
变色龙电源键
变色龙USB口
PM3 停止键
连接设备
1、使用PM3指令台,如下图所示:现有PM3GUI一键破解缺少分析过程(不够装x)
默认密码扫描
2、对默认密码进行扫描:
hf mf chk *1 ? t
默认密码扫描
发现默认密码:
PRNG漏洞获取0扇区密钥
3、若默认密码未扫描成功,可使用以下命令进行PRNG破解:
hf mf mifare
注意: PRNG漏洞破解密码,成功率低,486固件 不掉线外,630之后的固件,有些卡可以破,有卡些会 掉线并出现can’t slect card,此处不再演示,因为我就是那些掉线并出现can’t slect card的人且我的密码成功了。
查询密码是否正确
4、以下命令查询密码是否正确,密码错误,不会返回Found vaild key:XX。
hf mf chk 0 A ffffffffffff
导出密钥
5、以下命令导出密钥
hf mf nested 1 0 A ffffffffffff d
winhex查看导出的密钥文件
导出数据
6、使用以下命令导出数据
hf mf dump
分析数据
7、用pm3Gui打开扇数据,对数据进行查看,发现9、10扇区存在数据,查看其数据结构,发现其密码快开头为474X,该格式为金X电梯厂商,也可以用IC客栈等工具识别厂商,如下图所示:
通过获取到的该厂信息查询其卡数据结构,发现该卡控制为在9扇区2块,该数据格式为下图所示:9扇区包含了电梯卡的信息包括楼号、楼层、卡有效期等控制位。
更改数据
8、已知控制位所代表的含义,下面对数据位进行更改达到通刷的效果。
写入数据
9、将数据保存写入空卡内 Proxmark3不能识别、使用bin文件,需要转换成eml格式,使用以下命令将数据转换成以卡片ID值命名的eml格式文件:script run dumptoemul.lua 然后将卡片中导出的数据用下列命令加载到PM3设备中去,后面字符串为卡片值 hf mf eload BA2E2714
最后使用以下命令克隆到白卡里:hf mf cload e 测试一下结果,滴,通了~
完成
以上的内容只是简单提供一个破解的思路及复制卡的流程练习,当前很多Pm3Gui的界面及自动化程序已经较为成熟,在流程熟练的情况下推荐使用更为方便的Proxmark Tool及Proxmark3_EASY_GUI等可视化工具进行操作。
文中提及的部分技术可能带有一定攻击性,仅供安全学习和教学用途,禁止非法使用!
E
N
D
关
于
我
们
Tide安全团队正式成立于2019年1月,是新潮信息旗下以互联网攻防技术研究为目标的安全团队,团队致力于分享高质量原创文章、开源安全工具、交流安全技术,研究方向覆盖网络攻防、系统安全、Web安全、移动终端、安全开发、物联网/工控安全/AI安全等多个领域。
团队作为“省级等保关键技术实验室”先后与哈工大、齐鲁银行、聊城大学、交通学院等多个高校名企建立联合技术实验室。团队公众号自创建以来,共发布原创文章370余篇,自研平台达到26个,目有15个平台已开源。此外积极参加各类线上、线下CTF比赛并取得了优异的成绩。如有对安全行业感兴趣的小伙伴可以踊跃加入或关注我们。