- 全部
- 企业新闻
- 行业动态
- 前沿技术

总机: 010-8250-9710
热线: 400-1066-819


黑客的钥匙:无线门禁攻防实战
返回2025-03-04 公司原创
1、概述
无线门禁系统是一种利用无线技术进行门禁控制的安全系统。它通常由门禁控制器、无线遥控器、接收模块、门锁、以及其他辅助设备(如传感器和报警装置)组成。系统的工作原理是通过无线通信技术(例如红外、RF、Wi-Fi等)将遥控器发出的信号传输到接收模块,接收模块根据接收到的信号控制门锁的开关状态,从而实现门禁的管理和控制。它广泛应用于安防领域,作为企业、社区、数据中心等场景的第一道物理防线,承担着身份认证与区域管控的核心职责。然而,近年来针对门禁系统的攻击技术快速迭代——如Proxmarks3 RFID嗅探解密、Flipper Zero协议模拟、信号窃取重放、加密芯片漏洞等等近源攻击手段,传统门禁已从“安全屏障”退化为“高危入口”。
本文将深入讨论无线门禁系统的安全性,针对无线门禁信号解码分析,解码还原信号,然后基于真实无线门禁,通过自制门禁遥控器以及开发云端控制系统,最终扩建出一套完整场景用于攻防研究。
2、信号分析
2.1.无线通信原理
无线通信是指通过电磁波传输信息的通信方式。在无线通信系统中,信息通过无线信号在传输介质中进行传播,而不依赖于物理介质。
无线通信主要分为几个部分:信号生成、信号调制、信号传输、接收和解调。
● 信号生成:信息源产生原始的信号,例如音频信号、视频信号或数字数据。
● 信号调制:信息需要通过调制的方式转换为模拟信号,即电磁波。在调制过程中,信息会被叠加到载波信号上,载波信需要一个频率,例如常提到的433MHz、2.4GHz等。
● 信号传输:无线信号通过空间传播,从发射端到接收端。
● 接收和解调:在接收端,天线接收到经过空间传播的无线信号后,需要进行解调。解调的过程是调制的逆过程,即从载波信号中提取出原始信息。
2.2.工具介绍
2.2.1.频谱仪
在对无线信号采集时,需要知道工作频率,通常有几种方式,通过FCCID网站查询、芯片手册、以及使用频谱仪等。
频谱仪有很多种,如KEYSIGHT的N9000B,手持便携式的tinySA等等。根据设备性能、支持的频段范围不同,其价格也不尽相同。
2.2.2.SDR
SDR全称是软件定义无线电,它是一种无线设备,通常包括一个可配置的射频前端和一个用于执行数字功能的FPGA 或可编程的片上系统(SoC),可以通过自定义数据来发射和接收不同频率的无线信号。
HackRF One(以下简称HackRF)是安全研究者常用的一款SDR硬件设备,广泛用于无线通信研究、安全测试和信号分析领域,其频率范围覆盖1MHz至6GHz。
Universal Radio Hacker(以下简称URH)是一款开源的图形化无线信号分析工具,专为逆向工程和无线通信研究设计。同时它支持多种SDR设备(如 HackRF、RTL-SDR),提供从信号捕获到协议解码的全流程功能。
GNU Radio Companion(以下简称GNU Radio)是一款开源软件工具,广泛应用于无线通信、信号处理以及软件定义无线电系统的开发与实验。它通过图形化界面,简化了用户对无线信号的生成、处理与分析过程。
2.3.寻找工作频率
确定设备工作频率通常会使用频谱仪,也可以使用HackRF结合SDR软件,例如URH。点击URH左上角File中的Spectrum Analyzer进行频谱扫描,设置好对应设备(选择HackRF)与参数。
可按照常用频段逐一尝试,选择频段后,启动扫描并按下遥控器按钮,此时如果工具中显示了一条波形,那我们就找到了正确的频率。经过检测,此遥控器工作频率在433HMz附近。
2.4.信号录制
检测出工作频率之后,点击File里Record Signal来进行信号录制,按下门禁遥控器的开门按钮,出现如下波形,软件会保存录制下来的波形。
关闭录制窗口,信号将会自动加载到URH工具中。
2.5.信号解析
2.5.1.信号调制
首先了解下二进制数据如何转换为模拟信号,二进制数据(可能加密)首先通过编码算法转换,每个比特被转换为一组电平,以弥补少量的传输和定时错误。
接下来,编码后的数据会进行调制,将数字信息转换为模拟信号进行传输。反之亦然,模拟信号转换为二进制数据会经过解调、解码这两个过程。
常见的调制方式主要有三种:
●ASK:幅移键控调制,把二进制符号0和1分别用不同的幅度来表示。
●FSK :频移键控调制,即用不同的频率来表示不同的符号。如2KHz表示0,3KHz表示1。
●PSK:相移键控调制,通过二进制符号0和1来判断信号前后相位。如1时用π相位,0时用0相位。
在URH这款软件中,实现了调制参数的自动检测。我们在Interpretation选项中点击Autodetect parameters自动检测参数,工具分析信号使用的是ASK调制,经过对ASK特性(更准确为OOK调制)的对比验证,结果是正确的。
2.5.2.数据分析
接着我们着重对解调后的二进制数据进行分析,形式如下:
从该段数据中不难发现:每行序列由97位组成,对应的数据相同且都以数字1结尾,由此可以推断数据应该不存在动态加密。
选择一条完整的数据进行解码分析(URH也提供了相应功能),如下所示:
从上文得知,该二进制数据为97位,并且存在一个前导位或尾随位。许多433HMz遥控器发送的是24位信号,至此推断出有一个编码算法将1位信息编码为4个解调位(总共96位)。将上面的数据进行4位一组的划分,如下所示:
通过观察,每组数据只有1000与1110两种形式,经过与常见编码算法对比分析,我们找到了它的编码算法为:EV1527。EV1527是一片由CMOS设计制造的可预烧内码的学习码编码IC,由软件解码,每次发4帧,每帧24位加一个同步码。此24位中,前20位为芯片内码,后4位是按键值,其编码图形如下所示:
其中逻辑1是一个长高电平加一个短低电平,逻辑0是一个短高电平加一个长低电平。第97位是异常位,它是下一个序列前导序列的一部分(一个高信号后跟31个低信号),被工具误检测为上一个序列的一部分。
2.5.3.信号解码
在得知编码算法后,我们使用URH的自定义解码功能,点击Decoding的浏览按钮,接着点击Substitution,将1110替换为1,1000替换为0。
保存好编码,并将之应用到我们测试的数据中,接着使用其标签功能来区分不同功能区。对于第25位的转换,在OOK调制中,低既可以表示信号缺失也可以表示零。而尾部的1和尾部的1后跟三个零是没有区别的,所以在定义了编码算法之后,工具很可能认为后续前导序列的三个“低”是零,并解码‘1000’为‘0’。
若单个遥控器有多个功能按键,我们在截取到其中一个功能点信号后,可以使用该工具对Data区域进行Fuzz,从而找到其他按键值(本文测试的门禁遥控器只有单个按键,此处省略)。
至此,我们完成了对模拟信号到原始数据的逆向,最终解码得到完整的开门信号。
利用HackRF与GNU Radio(也可使用URH)来发送信号。经过测试,门正常开启,表明还原信号成功。
3、攻击场景
在真实环境中,攻击者可能通过社工手段实施近源渗透,窃听无线信号,从而实现非法开门。如果门禁系统依赖云端控制,攻击者则可能入侵后台系统,进而获得对门禁系统的控制权限。
基于这一现实威胁,我们在真实厂商门禁系统的基础上,增加了门控系统的云端控制功能,内部攻防人员利用SDR窃取信号、克隆门禁遥控器完成近源渗透。并利用MQTT协议及云端漏洞,成功实现了对门禁系统的控制,在模拟攻防对抗过程,进一步揭示了当前门禁系统在安全防护上的薄弱环节,对于企业安全研究及场景建设至关重要。
攻击过程不再赘述,我们简述场景建设的两个关键过程:
3.1.克隆门禁遥控器
PCB采用了STM8S003F3P6TR开发板,发射模块选择了H34S。在设计时,提供了两种供电模式:电池供电、Type-C口接入电源供电,Type-C是为手机OTG供电做准备。以下是PCB原理图以及实物图:
PCB打板完成,焊接好各种元器件后,使用Keil编写代码,逻辑如下:
在烧录完程序后,将自制的遥控器插上手机供电,按下按钮后,门成功打开。
3.2.云端控制场景