射频安全-记一次无线钥匙射频信号分析(未果)

记一次无线钥匙射频信号的分析(未果)

用同事的电动车钥匙,我们进一步学习射频信号的分析
在对射频信号进行逆向操作之前,先了解一些无线电的基础知识和工具

数字调制模式

射频通信常用的调制模式有三种,PSK、ASK和FSK,其中ASK和FSK较为常用。
抗干扰模式:PSK>FSK>ASK

振幅键控(ASK):

用数字调制信号控制,可以通过改变幅度本身,也可以通过简单地关闭、打开信号形成能量脉冲(开关键:OOK)。

OOK的调制原理就是用来控制把一个幅度取为0,另一个幅度为非0,就是OOK。又名二进制振幅键控(2ASK),它是以单极性不归零码序列来控制正弦载波的开启与关闭。
ASK
在这里插入图片描述

频率键控(FSK):

FSK用二进制数据调制载波的频率,形成具有明显变化的频率来表示数据位。

FSK

移相键控(PSK):

用数字调制信号的正负控制载波相位,如,数字信号的振幅为正时,载波起始相位取180°,为负时,相位取0°。

在这里插入图片描述

编码方式

无线钥匙在发了一串1和0后, 还需要正确的编码方式, 收发双方才能正常交互。其中NRZ, PWM 和Manchester 是较为常见的编码格式。

PWM(脉冲宽度调制)

通过对一系列脉冲的宽度进行调制,等效出所需要的波形(包含形状以及幅值),对模拟信号电平进行数字编码。

NRZ(不归零编码)

二进制数据0和1分别用高电平和低电平来表示,当一位数据传输完成后,信号电平,不返回0所以称为不归零编码

Manchester编码

编码方式利用电平的跳变来表示二进制数据“0”和“1”,比如信号的上身沿表示“1”,下降沿表示“0”,而这种跳变一般发生在位帧的中间。

在这里插入图片描述

工具

开源工具Universal Radio Hacker(URH),可配合常见的软件无线电设备如Hackrf来对无线私有协议开展协议逆向分析,实现了信号解调、可定制的解码、协议模糊测试和仿真功能。
总体来看,URH将协议逆向分析工作分成了以下几个阶段,即信号解析、信号分析、信号生成、信号仿真四个阶段。四个阶段中,上一个阶段的产出可以输入给下一个阶段使用。URH聚焦协议逻辑的分析,而不是仅仅关注对高频信号和数字信号解析过程。

信号解析的主要目的是从接收到的信号中提取出二进制的比特数据。为此,接收信号需要进行正确的解调。在解调方面,虽然每个已调信号可能有幅度、频率和相位不同的调制方法,但是URH希望能够提供一种尽可能通用的解调方法。因此,URH不得不针对已调信号进行一些预处理。URH针对ASK、PSK和FSK三种调制,分别实现了预处理算法。无论已调信号用的是什么调制方式,URH都是将已调信号预处理成一种矩形信号,如下图所示。

安装

sudo apt-get update
sudo apt-get install python3-numpy python3-psutil python3-zmq python3-pyqt5 g++ libpython3-dev python3-pip cython3
sudo pip3 install urh

利用Gqrx或者Urh自带的分析器可以得到射频信号的一个工作频段(或者可以通过无线电发射设备型号核准码相关文档获取),然后利用该频率通过URH录制电动车的开锁和关锁信号

在这里插入图片描述

录制完成后点击保存后,URH会自动对录制到的信号进行解析转换

这部分比较疑惑的是,同样的信号录制多次,发现部分信号并不是像大多数信号解析完的二进制字段那么规整,并不是像大多数的信号量124位,或多或少,可能是因为失真或者其他干扰的缘故?

这里对于部分参数的选择也不知道如何下手,如symbol,error tolerance只能进行尝试,得到一个似乎让信号解析出来更加符合常规字段的配置。

从射频信号分析的情况来看,我们可以看到大多数的信号都是以100001000011101000010000111开头,我们可以猜测一下
有效数据都是以100001000011101000010000111作为sync-word

在这里插入图片描述

解析为二进制来看能够更加清楚的看出每一位的变动

1000010000111010000100001111010000100001111011110100001000010000111011101000010000100001000010000111101000010000100001

1000010000111010000100001110100001000011101110100001000010000111011101000010000100001000010000111101000010000100001
1000010000111010000100001111010000100001110111010000100001000011101110100001000010000100001000011101000010000100001
10000100001110100001000011101000010000111011101000010000100001111011101000010000100001000010000111101000010000100001

除此之外,也可以解析为16进制,这里会因为上面选择参数不同解析出不同的结果

在这里插入图片描述

射频信号的逆向关键之处在于分析有效数据对应的逻辑,哪部分是有效位,设备码,功能码,滚动码?如星舆实验室研究对2015年福特汽车上的钥匙信号的研究来看,他们推断出信号1-26字节是值为0的引导码。从27-39 的值也都相同, 这里我们可以假设其为设备ID。很明显的是从40-43字节为开关车门的操作, 其值从ebdc 转换成了f3dc, 所以我们可以推测其跟操作指令相关。而44字节有规律的递减, 这很可能是计数器。最后的45-53字节各不相同, 则大概率为滚动码。
在这里插入图片描述

参考他们的研究,我还有一部分不理解的是,同样的信号经过多次录制解析,呈现出来的信号差异性较大,如上面所示,第一次信号初步呈现是ABAB的模式,后面可能是AABB,AAAA,ABBB甚至还有一些C的状况,对于进一步的分析和解析造成了比较大的困扰。

参考:
https://blog.csdn.net/ljm1995/article/details/101540576
https://bbs.pediy.com/thread-269716.html
https://bbs.pediy.com/thread-271406-1.html
https://bbs.pediy.com/thread-271880.html
https://forum.butian.net/share/866

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值