前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >低频ID 卡安全分析与克隆攻击

低频ID 卡安全分析与克隆攻击

作者头像
博文视点Broadview
发布2020-06-12 11:57:22
2.4K0
发布2020-06-12 11:57:22
举报

低频非接触式ID 卡主要应用于门禁、考勤等系统,使用很广泛,但是具有比较大的安全隐患,由于没有密钥安全认证的相关机制,所以只要对低频ID 卡的编码 / 解码机制有所研究,就能够很容易地对这种类型的卡进行破解和复制。

下面我们将对125kHz 射频ID 卡进行分析和信息读取,从而带领读者对低频ID 卡的安全性有进一步的了解。

低频ID 卡简介

低频(Low Frequency,LF)是指频段由30kHz 到300kHz 的无线电电波。一些无线电频率识别(RFID 技术)标签使用低频,这些标签通常被称为 LFID’s 或LowFID’s(Low Frequency Identification,低频率识别)。然而,LFID’s/LowFID’s 所常用(非唯一)的频率为125kHz/134kHz,125kHz/134kHz 只是低频RFID 所基于的频率,该频率不存在任何功能性,就是说频率本身不存在所谓的ID 识别、读取/写入等。

非接触式125kHz ID 卡主要应用于门禁卡、考勤卡、企业一卡通等领域,由于该芯片出厂固化了全球唯一的一组64 位的编码,类似于身份证号码,采用的是感应式读卡方式,读卡速度快,不受卡面污染影响;一般管理系统都会使用,具有操作方便、快捷、可靠、寿命长等优点;主要应用于食堂售饭系统、巡更系统、门禁系统、企业一卡通之类的射频识别领域,在我们身边最常见的就是门禁卡。常见的低频ID 卡有HID、T55xx、EM410x 等系列。

下图为常见的低频ID 卡的实体形式,一种为卡片式,一种为纽扣式。

卡编码原理

125kHz ID 卡的编码方式采用曼彻斯特编码(Manchester Encoding)。曼彻斯特编码也叫作相位编码(Phase Encode,PE),是一种同步时钟编码技术,被物理层使用来编码同步位流的时钟和数据。

在编码位的1/2 处,若被编码数据位为“1”,则为负跳,反之为正跳;在编码位的开始处,若被编码数据位为“1”,则为高电平,反之为低电平。由于曼彻斯特编码每一个码元的正中间会出现一次电平的转换,这对接收端的提取位同步信号是非常有利的。虽然曼彻斯特编码需要比较复杂的技术,但是可以获得比较好的抗干扰特性。

ID 卡译码原理

根据曼彻斯特的编码原则,非接触式ID 卡采用上升沿对应着位数据“0”,下降沿对应着位数据“1”,微控制器通过监测读卡头输出数据位的跳变来实现对曼彻斯特的译码。在实际应用中,数据信号会受到调制、解调、噪声等各种效应的影响,其上升沿和下降沿会存在抖动,可采用键盘消抖的方式来消除抖动的影响。

在工作状态下,只要射频基站电路不断点,非接触式ID 卡就会循环发送64 位数据,数据结构如下。

其中,连续9 位“1”作为头数据,是读取数据时的同步标识;D00~D93 是用户定义数据位;P0~P9 是行奇校验位,PC0~PC3 是列奇校验位;最后“0”是结束标识。

鉴于上述曼彻斯特码的数据结构,我们可以将“0111111111”作为数据的起始标识。在确定了数据起始标识后,采用延时大于0.5T 采样数据位的方法,去除曼彻斯特码中的空跳对数据译码造成的影响,简化译码程序。

ID 卡数据读取

ID 卡的内容可以直接用读卡器读出。

使用ID 卡读卡器时直接将其通过USB 接口插到计算机上,然后打开记事本,Windows 内部驱动会直接将读卡器的读取数据显示在记事本上。假如我们将一张低频测试卡放置到工作中的ID 卡读卡器上,记事本的显示结果如下。

ID 卡卡号格式

由于各个厂家的ID 卡卡号读卡器的译码格式不尽相同,在读卡输出时,读出的二进制或十六进制(Hex)结果应该是唯一的,但是可以通过以下几种主要换算办法,输出不同结果的十进制卡号(DEC)。

(1) ID 卡卡号格式0:10 位十六进制的ASCII 字符串,即10 Hex 格式。如某样卡读出十六进制卡号为“01026f6c3a”。

(2) ID 卡卡号格式1:将格式1 中的后8 位转换为10 位十进制卡号,即8H—10D。如将“026f6c3a”转换为“0040856634”。

(3) ID 卡卡号格式2:将格式1 中的后6 位转换为8 位十进制卡号,即6H—8D。如将“6f6c3a”转换为“07302202”。

(4) ID 卡卡号格式3:将格式1 中的倒数第5、6 位转换为3 位十进制卡号,再将后4 位转换为5 位十进制卡号,中间用“,”分开,即“2H+4H”。如将2H“6f”转换为“111”,4H“6c3a”转换为“27706”,最终将两段号连在一起输出为“111, 27706”。

(5) ID 卡卡号格式4:将格式1 中后8 位的前4 位转换为5 位十进制卡号,再将后4 位转换为5 位十进制卡号,中间用“,”分开,即“4Hex+4Hec”。照此推算,结果为“00623,27706 (4H+4H)”。

我们对一张卡面上标有两种输出格式的低频ID 卡厚卡进行读取,在读取过程中改变读卡器的输出格式,然后与卡面上的标号进行对照。

改变读卡器的输出格式,得到两种不同的读卡器输出内容,对比发现,输出内容与卡面上的标识完全一致。

低频ID 卡克隆攻击

从上面对低频ID 卡工作方式及工作机理的描述中可以得出这样一个结论,我们用来举例的常见低频ID 卡的卡内内容可以直接被任意读卡器读取,卡内数据未经过加密,能起到身份标识作用的就是卡内固化的64 位数据。而一般的低频ID 卡在出厂前,会烧断熔丝位,避免卡内数据在出厂后被修改。但是即使这些卡的熔丝位不被烧断,也不会影响卡的正常使用,这也就催生了另一个行业—低频ID 卡白卡,这种卡的熔丝位在出厂前不被烧断而直接售卖,这样购买的用户有一套写卡器即可将卡内数据修改为任意数值,从而做到克隆攻击。很多配钥匙的地方可以“克隆门禁卡”也是利用这种漏洞,配钥匙的人员对低频ID 卡使用普通读卡器读出卡内明文数据,然后将数据写入白卡内,即做到了“门禁卡克隆”。在这里我们暂时不介绍这种简单的方式,而是介绍另外几种更为万能和多用的克隆攻击方式。

下面以ID 卡门禁系统为例,给大家说说这几种攻击方式。ID 卡门禁系统是比较常见的,其安装方便、成本低、使用方便,很多中小写字楼、小区都使用该系统。

这样的门禁系统一般主要有3 部分组成:门禁控制器、门禁卡和锁系统。其原理是,门禁控制器中存储了可开锁的门禁卡数据(相当于白名单),当使门禁卡靠近门禁控制器时,门禁控制器中的读卡模块读取门禁卡数据,然后查询白名单,如果卡数据在白名单中则打开锁系统;如果遍历白名单后没有查询到结果则关闭锁系统。常见的ID 门禁卡从外形上看有3 种:薄卡、厚卡和纽扣卡,外形对比如图下。

Proxmark Ⅲ模拟攻击

要进行攻击的首要条件就是先获得ID 卡里面的数据信息。我们既可以用之前所介绍的低频ID 卡读卡器,也可以使用Proxmark Ⅲ的低频功能进行卡内信息读取。在这里我们用一张EM4100 种类的低频ID 卡来演示,打开Proxmark Ⅲ客户端,执行如下命令读取卡内信息:

lf em4x em410xwatch

得到如图所示的结果。

我们可以看到这张卡的卡号是030031fb2a,接下来就可以利用Proxmark Ⅲ的模拟功能进行低频ID 卡模拟,根据前面得到的卡内数据,执行如下命令:

lf em4x em410xsim 030031fb2a

这时Proxmark Ⅲ就开始向外部发送该卡号的数据。

可以看到Proxmark Ⅲ的指示灯颜色为黄色,即为数据模拟发送阶段。

白卡克隆攻击

读者应该清楚Proxmark Ⅲ的体积和需要上位机配合的特点,在研究中使用信号模拟的方法是比较方便的,但是在实际运用中就不是很方便了。试想你在众目睽睽之下,拿着单片机和天线在门禁上晃悠,那会是怎样的景象啊?所以,在获得了ID 卡内数据后,完全可以伪造一张卡。

使用的工具有:低频读写器和可写的ID 卡。当然,你也可以继续使用Proxmark Ⅲ来进行写卡操作,不过在实践中我们发现Proxmark Ⅲ的低频功能不是很稳定,所以推荐大家使用专门的低频读写设备。

低频卡的读卡/写卡都是非常方便的,只需要将读出的卡号输入,既可完成写卡。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2016-05-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 博文视点Broadview 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 低频ID 卡简介
  • 卡编码原理
  • ID 卡译码原理
  • ID 卡数据读取
  • ID 卡卡号格式
  • Proxmark Ⅲ模拟攻击
  • 白卡克隆攻击
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档