分享

RFID 低频卡安全分析

 流曲频阳 2018-08-03

低频非接触卡主要用于门禁丶考勤等等在日常生活中使用非常的广泛,但他也具有比较大的安全隐患,他没有一些密钥安全认证这类安全机制,所有我们只要对低频卡有所研究就可以对这些卡进行破解和复制。

基础介绍

RFID: 射频识别技术,它主要是通过无线电讯号识别特定目标,并可读写数据(单向的读取)。  

RFID 系统的频率分低频、高频、超高频和微波几种,其各自的工作频率如下:

低频(LF)     125~134kHz;

高频(HF)     13.56MHz;

超高频(UHF)   860~960MHz;

微波(MW)     2.45GHz和5.8GHz。

RFID 无源卡按载波频率分为:低频、中频和高频射频卡。

低频射频卡:频率主要包括 125kHz 和 134kHz 两种,主要用于短距离、低成本的应用中,如多数的门禁控制、校园卡、货物跟踪等。

中频射频卡:频率主要为 13.56MHz,主要用于门禁控制和需传送大量数据的应用系统。

高频射频卡:频率主要包括 433MHz、915MHz、2.45GHz、5.8GHz 等,可应用于需要较长的读写距离和高读写速度的场合,在火车监控、高速公路收费等系统中有广泛应用。

IC 和 ID 的区别

IC 卡是将微电子芯片嵌入卡基中构成的,它是一种具有信息储存、修改、管理、加密功能的卡。常用于身份认证、银行系统、公共交通、校园一卡通等领域。

ID 卡是一种不可写入的感应卡,拥有固定的编号。

ID 卡的编号是制造时就由芯片厂写入的,卡号是公开的,无加密功能。常用于门禁卡和停车场身份识别系统。

1  :低频卡简介

低频卡是指频段在 30kHz 到 300kHz 的无线电波,一般的卡的频率在 125/134kHz,主要原因是在这个频率下不存在任何功能性,也就是说不会存在 ID 识别丶读取和写入等。他具有操作简单丶快捷丶可靠丶寿命长丶不怕卡面污染等优点,一般常见的低频卡有:HID 丶T55xx 丶 EM410x 等这些型号的低频卡。

2:低频 ID 卡的编码原理

125kHzID 卡通常都是使用彻斯特编码(Manchester Encoding),也叫做相位编码 (PE),是一个同步时钟编码技术,被物理层使用来编码一个同步位流的时钟和数据。曼彻斯特编码被用在以太网媒介系统中。曼彻斯特编码提供一个简单的方式给编码简单的二进制序列而没有长的周期没有转换级别,因而防止时钟同步的丢失,或来自低频率位移在贫乏补偿的模拟链接位错误。在这个技术下,实际上的二进制数据被传输通过这个电缆,不是作为一个序列的逻辑 1 或 0 来发送的(技术上叫做反向不归零制 (NRZ))。相反地,这些位被转换为一个稍微不同的格式,它通过使用直接的二进制编码有很多的优点。

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

3 :ID卡号格式

由于厂家的 ID 卡号读卡器的译码格式不一样,在输出是读取的二进制或者十六进制的结果因该是一样的结果也是唯一的。

实验环境准备:

一部已安装 Chroot Linux 的安卓手机(支持 OTG) (也可以使用树莓派 电脑)

一根 OTG 数据线

一根 Micro USB 数据线

Proxmark III(pm3)

0x01 更新软件源并安装相关依赖

apt update && apt install p7zip git build-essential libreadline5 libreadline-dev libusb-0.1-4 libusb-dev libqt4-dev perl pkg-config wget libncurses5-dev gcc-arm-none-eabi

0x02 git clone 源码

git clone https://github.com/iceman1001/proxmark3.git

这里我已经提前下载好了

0x03 开始编译

cd proxmark3 && make clean && make all

接下来就是等待编译完成了

如图所示就已经编译完成了

0x04 烧录固件

首先把你的 PM3 和手机连接上,lsusb 查看是否已经识别

如图所示已经成功识别 PM3 设备

接下来编译客户端并升级 CDC 设备,先拔掉 PM3

cd client && make

然后按住 PM3 上的按钮不放,再次将PM3连接至手机,执行下列命令

./flasher /dev/ttyACM0 -b ../bootrom/obj/bootrom.elf

如图所示我们已经升级成功,接下来我们烧录固件。切记烧录固件时千万不要断开连接,否则会导致 PM3 变砖的!!!!

./flasher /dev/ttyACM0 ../armsrc/obj/fullimage.elf

如图所示我们的冰人固件已经升级成功!

接下来我们用客户端访问 PM3 看看

./proxmark3 /dev/ttyACM0

(为了方便起见,可以把 pm3 客户端复制进 /usr/bin 目录,以后直接 pm3 /dev/ttyACM0就行了)

可以看到已经成功连接

hw tune

接下来可以测测天线电压看看(此步骤可以忽略)

目测没有什么问题,接下来就可以进入实战篇了

0x05 实战篇

首先声明一点,我这里是拿我的饭卡做测试,但是并没有对饭卡的数据进行过任何的修改!!!任何涉及修改数据达到修改余额的目的都是违法的!!!这点请你们牢记!!!

首先我们通过客户端连接 pm3(一般这里要等 5-10 秒钟)

pm3 /dev/ttyACM0

然后把饭卡放到 PM3 上

接着我们查看一下卡的基本信息

hf 14a read

可以看到卡的 UID,记下这个 UID,留着备用( UID 是用户身份证明 (User Identification) 的缩写)

然后测试卡的默认密码

hf mf darkside

如图已经发现了这张卡的一个默认密码,接下来可以根据这个密码求算出整张卡的所有密码

hf mf nested 1 0 A 3279026bb994 d

执行这条命令将会把这张卡的所有密码 dump 出来一个 key.bin 文件

接下来就可以 dump 整张卡的数据了

hf mf dump

这条命令将会把整张卡的数据 dump 出为一个 data.bin 文件

如图所示已经成功的将这张卡的数据 dump 出来了

接下来我们可以将 dump 出来的数据恢复到另一张 UID 卡上

hf mf csetuid 3C6123AB

接下来我们把另外一张 UID 卡放到 PM3 上,首先修改 UID (就是之前记下的那个 UID 码)

设置 UID 成功

hf mf restore

接下来就可以把数据恢复到这张卡里了

如图所示已经成功的把数据恢复到新的 UID 卡上了,为了验证是否成功,我们可以读取一下扇区数据看看

hf mf rdsc 0 A 3279026bb994

可以看到已成功读取扇区数据,至此,我们已经成功的复制了一张卡!

相关链接

http://www./news/100925.html

https://www./live/view.html?id=111079

https://github.com/Proxmark/proxmark3/wiki/Kali-Linux

https://github.com/iceman1001/proxmark3/blob/master/README.md

总结 :

安全不单单局限与网络,为什么在一些重要的地方要物理隔离像人事丶财务这些都是物理隔离的重点对象,因为黑客不一定只会通过网络进行入侵和破坏他们也可以到现场进行入侵,而往往一些门禁系统确实是一些公司的最后一道防线,而门禁系统安全性能却是一些公司的疏忽的地方。安全是一个大工作需要个个部门的相互配合才能发挥出最好的防御状态。写出这篇文章希望大家不单单局限与“网络安全”,也希望大家能重视身边的一些安全设备,因为时代在变,攻击手法也在变,所谓道高一尺魔高一丈。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多