首页
社区
课程
招聘
[分享]车钥匙与车
2023-7-5 16:14 19468

[分享]车钥匙与车

2023-7-5 16:14
19468

0x01 前言

本文中提供的所有信息仅用于教育目的。对任何信息滥用不承担任何责任。

0x02 初识汽车钥匙

1、算法

用于向汽车发送开门信号的主要算法有两种:
单一代码:汽车钥匙扣始终向汽车发送相同的代码。这是 2002 年之前生产的汽车所使用的旧实现。这种传统的实现缺乏基本的安全性,因为任何拦截信号的人都可以使用它来打开汽车(称为重放攻击)。然而至今依旧有部分汽车使用这种算法,在本田汽车上持续到 2020 年。
滚动代码:汽车钥匙使用一系列代码,每个代码只能使用一次。这种更安全的实现可以防止重放攻击,在2014年往后的汽车大部分使用了该算法。

2、频率

汽车钥匙遥控信号使用的载波频率主要是315MHz和433MHz,称为低频款子机,北美主要使用315MHz,欧洲和日本主要使用433MHz,我国则是两种都在用。当然,也有一些使用更高频率的868MHz(欧洲),915MHz(北美),称为高频款子机。
任何使用无线电频谱的设备都会向 FCC 注册。因此,如果您对设备使用的频率有疑问,您所要做的就是查看设备的背面,上面会有 FCC ID。可以访问 FCC 的网站它会准确地告诉你它的运行频率是多少,但是这个网站很难用,推荐使用 FCC IO 这个网站。

3、主被动钥匙

通过主动按按键发射遥控信号实现对车门的操作的遥控钥匙属于主动型,称之为RKE,也就是Remote Keyless Entry。
随着无线射频RFID技术的发展,由主动型的遥控进入系统发展到了“无钥匙进入系统”,出现了被动型的遥控钥匙,称之为PKE,也就是PassiveKeyless Entry。

4、信号调制

遥控的代码需要通过调制载波发射出去,安装在车内的接收机则对遥控信号进行解调,解码,解密,根据遥控代码去执行相应的动作。
RKE型的遥控钥匙通常采用ASK调制技术,具有实现简单,成本低的特点。PKE型的遥控钥匙通常采用2-FSK调制技术,具有较高的数据传输速率,更好的抗干扰性。

0x02 使用的工具

为了检测汽车钥匙中的无线电频率,需要使用能够将无线电信号从模拟信号转换为数字信号的无线电外围设备。
– HackRF One:迄今为止最好的 RFHacking 设备。处理的频率范围广,用途广泛,易于使用,在线文档相当多。它是整个研究中最常用的硬件设备。
– RTL SDR:这是一个你可以在亚马逊上购买的小设备,它允许您接收任何无线电信号。

0x03 射频信号干扰

射频信号干扰是无线攻击中最常见的手法,汽车钥匙传输的信息会有所不同,因此汽车需要在广泛的范围内进行监听频率以确保它实际捕获到汽车钥匙的具体频率,这意味着如果你知道汽车钥匙的确切频率,你可以发送噪音信号干扰频率,从而使得汽车无法监听到汽车钥匙所发出的信号。

0x04 重放攻击

当您按下车钥匙上的按钮时它通过无线电向您的汽车发送二进制代码。如果汽车识别出该代码,就会解锁。
在过去,它的工作方式是,每辆车都有一个独特的代码。如果你想解锁汽车那么你必须发送该特定代码。如果您的车钥匙没有发送该代码汽车无法解锁。这就是单一代码:汽车钥匙扣始终向汽车发送相同的代码,它很容易受到重放攻击的影响。
简单来说:当有人按下按钮解锁时。然后您记录下通过无线电发送的代码。然后在晚些时候,也许是在晚上,没人在的时候,您将该代码重播给汽车并解锁。
1、HackRF One抓包
图片描述
使用 USB 将其插入笔记本电脑,它相当于一个收音机,可以使用软件来控制它接收和发送无线电信号。
使用 Universal Radio Hacker 软件,一个用于逆向解析和攻击无线通信协议的开源工具,要记录这把车钥匙的信号,必须选择您想要的频率,也就是要hack的车钥匙的频率。选择好后靠近HackRF One天线,按下遥控器,再停止软件,这样就收集到了车钥匙的信号:
图片描述
事实上,你收到的是五条短信,你也许会发现它们实际上都是一样的。车钥匙一次性发送五次防止一次性不起作用。
如果放大,你可以开始看到:
图片描述
有无线电波,要么打开,要么关闭。所以呢,需要解调,再放大一点:
图片描述
如果它上升,它就是一,如果它下降它是零,对于重放攻击,只需取那些 1 和 0,并以相同的频率从这个东西重播它们。
当然这其中有可能遇到各种问题,需慢慢调试分析解决,逆向从不是一件简单的事。

0x05 滚动代码

1、原理

1、滚动码是一个周期很长的伪随机码。例如有240,意思就是码的长度有40个bit。现在大部分车钥匙的码长都比40bit长;
2、车钥匙里存有当前的滚动码。当车钥匙按下时,滚动码加上功能码(比如是开锁,解锁,还是开后备箱)一起发送给汽车;
3、汽车也存有当前的滚动码。当汽车收到同样的滚动码时,它就执行相应的开锁之类的操作。如果收到的码不匹配,它就不做任何动作;
4、车钥匙和汽车里的滚动码是保持同步的;
5、当车钥匙距离车很远的时候,有人不小心按了几次车钥匙,车钥匙的随机码就会前进好几步,此时跟车内的码就不同步了。为了解决这个问题,汽车允许接收当前码之后的几百个码。只要车钥匙发送的码在这个窗口之内,汽车都认为是有效的;
6、如果车钥匙被误按超过设定的几百次,车钥匙和车就会彻底失去同步,这时候你就只能找办法恢复同步了。
从上面这个原理可以看出来,如果我们能得到汽车当前滚动码“之后”的一个码,只要在窗口之内,就可以把车打开。
首要的一点就是需要与车钥匙足够近,并能够录制其中的信号,所以这并不是那么容易的事。

2、hack 方案一

执行滚动堵塞攻击,你实际上需要两个HackRF One,第一个无线电正在发送干扰信号,这样汽车就听不到车钥匙的声音了,第二台收音机正在记录车钥匙。
试想一下:你走到车​​前按下车钥匙按钮,汽车接受不到车钥匙信号,因此无法解锁,如果你的车没有解锁,你再试一次,于是你第二次按下车钥匙。
黑客干扰了信号,所以汽车听不到,这时黑客已经记录下了第一个信号。你觉得是车钥匙失灵了,你第二次按下了解锁按钮,黑客正在记录第二个信号,但紧接着黑客就停止干扰,并向你的汽车发送第一个信号,汽车解锁,而黑客已经拥有了下一次开门的密钥信号。

3、hack 方案二:

汽车钥匙的滚动代码不是随机的,而是准随机的,这意味着在经过一定数量的密码后,滚动码会重复。
例如:滚动代码列表在使用不同的密码代码 600 次后会重复。专业窃贼在你不知情的情况下将接收器安装到你的汽车上,记录你汽车的所有滚动代码并将其存储在接收器中,然后将这些代码复制到发射器中以完全控制您的汽车。所以,当您的汽车的蓝牙不断断开和重新连接或者您的手机有时会中断时,你就要注意你的汽车上是否被安装了一些东西。


[培训]二进制漏洞攻防(第3期);满10人开班;模糊测试与工具使用二次开发;网络协议漏洞挖掘;Linux内核漏洞挖掘与利用;AOSP漏洞挖掘与利用;代码审计。

最后于 2023-7-5 16:57 被行简编辑 ,原因:
收藏
点赞9
打赏
分享
最新回复 (7)
雪    币: 20099
活跃值: (5465)
能力值: (RANK:445 )
在线值:
发帖
回帖
粉丝
胡一米 3 2023-7-5 16:35
2
0
文章比较基础,有些地方看着有点像翻译。
读者可以从中学到一些东西,收录文库中。
雪    币: 185
活跃值: (222)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
遵龙 2023-7-6 09:06
3
0
我淘宝买的hackrf,我只知道他能释放伪造的GPS信号做欺骗,和文中截获无线电信号的是一个东西吗?还是我只要下个软件插USB就能用呢?
雪    币: 2671
活跃值: (3839)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
行简 2023-7-6 09:12
4
0
遵龙 我淘宝买的hackrf,我只知道他能释放伪造的GPS信号做欺骗,和文中截获无线电信号的是一个东西吗?还是我只要下个软件插USB就能用呢?
usb链接,打开软件,选择频率,开始捕获,按下钥匙开门按键,捕获到信号后结束捕获,靠近车后重放该信号。你需要确定你的车钥匙采用的是哪种算法。
雪    币: 19349
活跃值: (28971)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
秋狝 2023-7-6 11:05
5
1
mark
雪    币: 1419
活跃值: (512)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
kizab 2023-7-7 00:01
6
0
好的,这就去搞一个flipper zero
雪    币: 487
活跃值: (224)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
CpuDbg 2023-7-9 22:11
7
0
2、hack 方案一
亲测, 无效.
我是在车子摇控范围之外录制的, 然后到车子面前重放,没有效果.
雪    币: 61
活跃值: (290)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
mb_roxiutde 2023-7-10 08:37
8
0
CpuDbg 2、hack 方案一 亲测, 无效. 我是在车子摇控范围之外录制的, 然后到车子面前重放,没有效果.
可能存在以下情况导致无效:
1、你的车使用的是uwb技术
2、车厂使用rfid技术加了应对策略(较低可能性)
3、你在遥控范围内录制了但是并不知情
4、你的钥匙离车近时会和车使用低频交互做滚码同步
游客
登录 | 注册 方可回帖
返回