捕获并重放信号
拦截并重放 RF 传输。
捕获并重放信号 是 CoddyKit 上的免费 Cyber Security Academy 课时。 这是第 4 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Cyber Security Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Cyber Security Academy 课程共包含 4 节课。
重放攻击概念
重放攻击是 RF 中最简单、最常见的弱点:捕获一次合法传输,然后稍后重新传输,以重现其效果。如果接收器接受同一信号两次,则无需解密。
这种攻击适用于命令采用固定静态传输的任何设备:
- 廉价的车库门开启器。
- 不使用滚动码的基础汽车遥控钥匙。
- 无线门铃、报警传感器和远程插座。
- 用于起重机和闸门的某些工业遥控器。
如果捕获的信号在几分钟或几天后仍然有效,就说明该系统在设计上存在漏洞。
寻找目标频率
开始捕获之前,先确定设备的发射频率。大多数消费级遥控器使用 ISM 频段:315 MHz(北美)、433.92 MHz(欧洲和世界许多地区)、868 MHz 以及 915 MHz。
使用 RTL-SDR 扫描这些频段,按下遥控器,然后观察瀑布图中是否出现能量突发。设备上印刷的 FCC ID 通常可以通过公开的监管备案信息揭示其准确的工作频率。
# Browse the 433 MHz band live and watch the waterfall
gqrx
# Or auto-identify known devices on the air
rtl_433 -f 433.92M -A捕获传输信号
确定频率后,在设备发射时记录原始 I/Q 样本。捕获一段干净且独立的突发信号,使信号易于分析和重放。
仅接收的 RTL-SDR 足以完成捕获;之后发射则需要 HackRF 或类似设备。请始终记录所使用的准确中心频率和采样率,因为您必须使用匹配的参数进行重放。
# Capture raw I/Q at 433.92 MHz, 2 Msps
rtl_sdr -f 433.92M -s 2048000 -n 4096000 remote.iq
# Capture with HackRF for later transmit on the same hardware
hackrf_transfer -r remote.iq -f 433920000 -s 2000000使用发射器进行重放
要进行重放,请使用 HackRF 等具备发射能力的硬件,以相同的频率和采样率将捕获的 I/Q 文件重新发射出去。
由于接收器会将信号与原始波形进行匹配,准确的重新传输就能重现原始命令。除非您拥有明确的授权和合法的发射许可,否则始终应在屏蔽箱内进行重放。
# Replay the captured file with HackRF
hackrf_transfer -t remote.iq -f 433920000 -s 2000000 -x 40
# -x sets TX gain; keep it minimal and use proper antennas解码而非盲目重放
盲目重放虽然有效,但解码信号能让您了解更多信息,并实现更智能的攻击。Universal Radio Hacker (URH) 等工具可以对突发信号进行解调、恢复比特流并识别其结构。
- 找出前导码和同步字。
- 确定符号率和编码方式(通常是曼彻斯特编码或 PWM)。
- 定位静态命令载荷。
解码后,您可以构造新的传输、对字段进行模糊测试,或确认消息的某些部分是否会在每次按键之间发生变化。
滚动码以及重放为何会失败
现代遥控钥匙使用滚动码(跳码)来抵御简单的重放攻击。每次按键都会使用一个由共享秘密和递增计数器共同派生的新代码。
- 发射器和接收器通过计数器保持同步。
- 一旦接收器的计数器超过某个捕获的代码,该代码就会失效。
- 重放旧代码会被直接拒绝。
KeeLoq 等系统普及了这种方法。滚动码显著提高了攻击难度,但正如下一幕所示,实现缺陷仍会造成可乘之机。
攻破滚动码:RollJam
滚动码仍可能受到捕获并干扰技术的攻击,这种技术因 RollJam 而广为人知:
- 攻击者干扰接收器,同时在干扰器未覆盖的窄频段上捕获受害者遥控钥匙的第一次按键信号。
- 遥控钥匙没有生效,因此用户再次按键。攻击者捕获第二个代码,并重放第一个代码。
- 此时攻击者手中有一个尚未使用且仍然有效的后续代码。
由于接收器从未收到第一个代码,它仍然有效。这利用的是协议的容错窗口,而不是破解密码学机制。
滥用滚动码计数器重新同步
某些滚动码接收器会接受处于一定重新同步窗口内的代码,以容忍在通信范围外意外按键。如果该窗口过大或边界设置不当,捕获多个连续代码的攻击者就可能预测代码或迫使系统重新同步。
较早的 KeeLoq 实现还存在厂商密钥恢复问题:从单个遥控钥匙中提取主密钥,就可以克隆整条产品线。这些是实现缺陷,并非滚动码理念本身的失败。
干扰与拒绝服务
干扰会用噪声淹没某个频率,使合法接收器无法接收到有效传输。它既是 RollJam 的基础手段,也是独立存在的拒绝服务威胁。
- 无线报警传感器可能被干扰,使开门事件无法到达控制面板。
- 无钥匙进入系统和遥控器可能被压制而无法工作。
在几乎所有司法管辖区,干扰都是违法行为,即使是为了测试也不例外。只有在获得明确授权的屏蔽实验室中才能进行演示。这里讨论干扰,是为了理解攻击者如何将干扰与捕获结合起来,以及系统为何必须检测信号丢失。
工具总结
实用的捕获与重放流程使用一组精简的工具:
- RTL-SDR — 扫描频段并捕获信号(仅接收)。
- HackRF One — 用于重放测试的捕获和发射。
- URH — 对信号进行解调、解码和构造。
- rtl_433 — 快速识别已知设备。
- Flipper Zero — 便于在现场捕获和重放简单的亚 GHz 信号。
Flipper 常用于演示针对静态代码遥控器的重放攻击,但正确实现的滚动码可以阻止它,这正是您希望客户理解的要点。
防御重放攻击
重放评估提出的建议包括:
- 用经过身份验证的滚动码或挑战-响应机制替换静态代码。
- 使用严格且有界的重新同步窗口以及每台设备独有的密码学密钥,绝不要使用共享主密钥。
- 加入时间戳或一次性随机数,使每条命令只能使用一次且仅在很短时间内有效。
- 实施干扰检测:报警控制面板应将传感器信号突然丢失视为篡改事件。
- 优先使用双向协议,让接收器确认每条命令。
核心原则是:能够被原样记录并重放的命令就说明系统存在缺陷。每个获授权的操作都必须在密码学意义上保持唯一。
快速检查
请检验您对滚动码重放攻击的理解。
回顾
现在,您已经能够捕获、分析和重放 RF 信号,并分析其防御措施:
- 重放攻击会重新发送捕获的静态命令,可针对固定码遥控器奏效。
- 工作流程:在ISM 频段中找到频率,使用 RTL-SDR 捕获I/Q数据,使用 HackRF 重放,并使用 URH 解码。
- 滚动码可以抵御简单的重放攻击,但RollJam(捕获并干扰)以及薄弱的重新同步窗口或共享主密钥会重新打开攻击入口。
- 在受屏蔽且经过授权的实验室之外,干扰属于违法行为,并且是拒绝服务攻击和 RollJam 攻击的基础。
- 防御需要经过身份验证且仅可使用一次的命令、受限的重新同步、每设备独立密钥以及干扰检测。
至此,RF 与无线入侵课程就完成了:内容涵盖从 SDR 基础知识到蓝牙、非接触式技术和信号重放。
用 AI 导师学习 Cyber Security Academy — 免费
在浏览器中编写并运行真实代码,获得全天候 AI 导师的即时帮助,并在网页或应用中继续学习。
- 课程
- 76
- 课程
- 303
常见问题解答
「捕获并重放信号」课时是免费的吗?
是的 — 「捕获并重放信号」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Cyber Security Academy 课程的其余内容,请升级到 CoddyKit PRO。 Cyber Security Academy 课程共包含 4 节课。
「捕获并重放信号」这节课中我会学到什么?
拦截并重放 RF 传输。 你通过在浏览器中直接运行的动手代码来练习 Cyber Security Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Cyber Security Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Cyber Security Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 4 节课,共 4 节。
「捕获并重放信号」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Cyber Security Academy 课中编写并运行代码吗?
能。每节 Cyber Security Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。