- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
计算机应用之无线射频
随着科技的不断发展,NFC技术开始越来越多的走入我们的生活。坐公交时刷公交卡、购物时刷NFC手机,让我们的生活更加便捷。然后便捷的同时,也带来了一定的安全隐患。从本质上讲,NFC是一种无线通信技术,只要有合适的设备,就可以很容易的进行窃听。如何保证RFID使用的安全性,也成为了安全领域的一大研究热点。
1、什么是无线射频
无线射频译自英文Radio Frequency Identification,简称为RFID,是20世纪90年代兴起的一种非接触式的自动识别技术。射频技术(RFID)相对于传统的磁卡及IC卡技术具有非接触、阅读速度快、无磨损等特点。无线射频技术在阅读器和射频卡之间进行非接触双向数据传输,以达到目标识别和数据交换的目的。与传统的条型码、磁卡及IC卡相比,射频卡具有非接触、阅读速度快、无磨损、不受环境影响、寿命长、便于使用的特点和具有防冲突功能,能同时处理多张卡片。
我们日常使用的无线射频技术主要涉及到以下两个概念。进场通信技术(Near Field Communication,NFC)是一种短距离的无线通讯技术,可允许电子设备之间进行非接触式点对点资料传输。射频识别技术使用无线通信技术识别特定目标,NFC技术就是在RFID的基础上发展出来的。
早期的RFID卡功能简单,仅包含目标表示,所以又称为标签(tag),其外形也不固定,常用于物联网等需要进行目标的识别和跟踪等场合。而日常生活中使用的信用卡大小的RFID卡,本文称之为非接触智能卡,功能更加强大,也是本文主要探析的对象。
射频技术主要用于生产流水线管理、仓储管理、销售管理、商品防伪、证件防伪、汽车防盗、物品防盗、包裹管理、物品跟踪、运输工具和货架识别等。如香港的车辆自动识别系统采用的就是无线射频技术,当装有电子标签的车辆通过装有射频扫描器的专用隧道、桥梁、高速公路、停车场时,无需停车缴费,大大提高了行车速度,提高了运输效率。
典型的无线射频技术系统一般由电子标签、读写器、数据交换和管理系统等组成。电子标签也叫射频卡,具有发射、接收无线信号的功能并带有可擦除只读存储器的小芯片,有智能读写和加密通信的功能。读写器由无线收发模块、天线、控制模块及接口电路组成,基本功能提供数据传输的途径。而车载MP3就是在普通的MP3上加一个无线射频。
无线射频的工作流程主要是阅读器通过发射天线发送一定频率的射频信号,当射频卡进入发射天线工作区域时产生感应电流,射频卡获得能量被激活;射频卡将自身编码等信息通过卡内置发送天线发送出去;系统接收天线接收到从射频卡发送来的载波信号,经天线调节器传送到阅读器,阅读器对接收的信号进行解调和解码然后送到后台主系统进行相关处理;主系统根据逻辑运算判断该卡的合法性,针对不同的设定做出相应的处理和控制,发出指令信号控制执行机构动作。目前常用的非接触智能卡分为存储卡(MemoryCard)和CPU卡;前者又分为无加密型和有逻辑加密型两种。
2、存储卡安全性
为了保护卡里的信息不被恶意读取或篡改,逻辑加密卡加入了密钥认证这一步骤。逻辑加密卡加入了密钥认证这一步骤。MiFareclassic卡是较常见的一种逻辑加密卡,在国际市场上占有和使用率很高,但是它也有它自身的缺陷。
2.1 MiFareclassic卡介绍及其缺陷
MIFAREclassic(以下简称mfc卡)卡是目前世界上使用量最大、技术最成熟、性能最稳定、内存容量最大的一种感应式智能IC卡。
MIFARE经常被认为是一种智能卡的技术,这是因为它可以在卡片上兼具读写的功能。事实上,MIFARE仅具备记忆功能,必须搭配处理器卡才能达到读写功能。
MIFARE的非接触式读写功能是设计来处理大众运输系统中的付费交易部分,其与众不同的地方是具备执行升幂和降序的排序功能,简化资料读取的过程。尽管接触性智能卡也能够执行同样的动作,但非接触性智能卡的速度更快且操作更简单,而且卡片阅读机几乎不需要任何维修,卡片也较为耐用。
MIFARE非接触智能卡之卡片阅读机的标准读卡距离是1.0吋至3.9吋(亦即2.5至10公分)。在北美,由于FCC(电力)的限制,读卡距离则在2.5公分左右。
mfc卡的存取区分为数个扇区,每个扇区结尾保存有两个6字节的密钥,用于对本扇区的读写操作。mfc卡结构简单,读写速度快,市场普及率很高,旧版北京公交卡使用的就是这个卡。
mfc卡的加密算法是私有的,只有硬件实现,在2008年遭到逆向破解。研究组织通过对硬件的逆向分析,将加密算法还原。算法包括一个“线性反馈移位寄存器”(linear feed-backshift register,LFSR)和非线性滤波器f。
当读卡器需要读取mfc卡的内容时,其认证过程首先是读卡器(Reader)首先发送认证命令(auth)给卡片(tag),卡片生成随机数nT并发送给读卡器。读卡器回复加密后nT(aT),同时也发送一个随机数nR。最后卡片根据nR回复应答(aR)给读卡器。通过对加密算法的分析,发现通过nT、aT、nR和aR就能还原出加密算法使用的密钥。
由于存在安全问题,目前mfc卡已逐渐退出有安全要求的消费领域。MiFare的设计厂商也该改进了原有的卡设计,推出了使用公开加密算法的升级版MiFare系列。同时一种新型的智能卡----CPU卡也开始被越来越多的使用。
2.2 无加密存储卡
无加密的存储卡由于安全性较低,现在使用的并不多。还有一种和无加密存储卡类似的卡片,也就是低频门禁卡。这种卡通常只能一次性写入,多次读取,存储的数据量较小,主要用于目标标识。就安全性而言,对卡中的数据可直接读取,克隆卡也十分容易。使用pM3,只需要输入若干命令即可。
3、Proxmark3
3.1 Proxmark3功能简介
Proxmark3(PM3)是有JonathanWesthues设计并且开发的开源硬件,可以在高频(13.56MHz)以及低频(125K-134KHZ)波段工作,主要有RFID的嗅探、读取以及克隆等功能。
以SVN528般般的firmware为例,PM3的主要功能如下表所示:
低频(lf) 读取/解调/模拟EM4X,FlexPass,Indala,VeriChip
高频(hf) 读取/窃听/模拟ISO14443A,ISO14443B;读取/模拟ISO15693;读取LEGICRFID
数据分析 ASK、FSK、Manchester解调,画图、数据保存等。
PM3的强大之处在于其分析能力,当拿到一个位置的非接触卡时,可以通过PM3来判断是高频卡还是低频卡,然后在尝试相应的命令来分析卡的具体种类。
3.2 PM3模拟低频卡
以用的门卡为例,通过“hwtune”命令可以确认门卡为低频卡。然后输入命令
Proxmark3>ifread
Proxmark3>datasamples1024
Proxmark3>dataplot
运行的结果可以得出,dt=128,即64个采样。PM3的采样率为载波频率即125kHZ,于是dt=64*1/(125k)=0.000512s。从后面相邻的部分波形可以才出512μs可能是4bit,也就是128μs/bit,每个16个采样1bit。
使用indala卡模式解调:
Proxmarks>ifindalademod
得到门卡的64bitUID;然后用PM3模拟门禁卡;
Proxmarks>ifsim
等PM3的指示灯常亮后,就可以拿着PM3刷门禁了。
3.3PM3破解mfc卡
PM3也提供了对mfc卡的破解工具。首先使用PM3对读卡器和卡之间的交互进行嗅探,命令如下:proxmark3>hf14asnoop,然后嗅探得到数据的命令如下:Proxmarks>hf14alist,然后在使用PM3的小工具就可以破解mfc卡的密钥并且复制出来。
4、小结
从上述内容不难看出,非接触智能卡并非如我们想象的那样安全,尤其是对于低频卡和mfc卡,在使用像PM3这样的工具时,嗅探、克隆,都是很简单的事情。国外更是有研究者对各个层次的RFID攻击进行了分类。目前和消费有段的非接触卡大都已经采用CPU卡,就是为了应对逻辑加密卡易于被克隆的风险。虽然目前暂时还没有公开发现CPU卡的安全漏洞,但是还是希望大家养成良好的用卡习惯,尤其不要外接自己的门禁卡或饭卡,以免被克隆复制。