对汽车钥匙扣信号进行逆向工程(第 1 部分)·0x44.cc

  • 作者背景与目的:几年前开始用 RTL-SDR 探索无线电通信协议,目标是弄清楚遥控(特别是车钥匙)中数据的传输方式、尝试重放攻击等,本文旨在分享去年成功逆向工程和重放汽车钥匙信号的历程,还想证明大多数车不易被重放攻击窃取。
  • 硬件介绍

    • RTL-SDR:2016 年开始接触,是一种廉价的 USB 电视/收音机天线,可通过 RTL2832U 芯片变成多用途射频接收器,能接收、可视化和保存几乎任何 24 到 1750 MHz 范围内的原始信号,直接访问原始 I/Q 数据,无需知道传输的射频配置细节。
    • Flipper Zero:最近引起关注的电子设备,有多种无线硬件模块,其中的 Sub-GHz 模块基于 CC1101 芯片,支持 1GHz 以下的频率,可与 Arduino/Raspberry Pi 或 USB-to-TTL 适配器配合使用,与 RTL-SDR 的 RTL2832U 芯片不同,CC1101 是收发模块,可发送信号但不支持 SDR。
    • CC1101 与 RTL2832U 对比:CC1101 是收发模块可发送和接收信号,RTL2832U 只能接收信号;CC1101 不支持 SDR,需设置正确的射频配置才能发送回处理后的数据;收发器 SDR 设备通常价格昂贵。
  • 射频信号基础知识

    • 无线电频率传输使用无线电波,为确保数据传输可靠性,通常将原始信号调制到高频载波波上,载波波会根据原始信号进行修改。
    • 频率:每秒载波波出现的次数,影响波长,通常用于定义通信通道。
    • 调制:信号在无线电波中的表示方式,常见的有 AM(幅度调制)和 FM(频率调制),AM 是在幅度上调制信号,FM 是在频率上调制信号。
    • 带宽:调制射频信号占用的频率范围,决定信号可携带的数据量。
  • 可视化分析

    • 使用 SDR#软件,通过 RTL-SDR 天线调谐到 433.92 MHz 频率,可观察到大多数遥控器的活动,车钥匙按下时会产生 3 个连续短脉冲,信号在 433.92 MHz 频率两侧有两个主要峰值,通过研究常见调制方案,发现是 2-FSK 调制,两个峰值分别对应 0 和 1。
  • 实际分析

    • 使用 Universal Radio Hacker(URH)软件,可轻松解调信号并自动检测调制参数,记录信号后 URH 可尝试找出正确的配置,作者通过多次录制同一信号让 URH 找出正确配置为 50 samples/symbol、FSK,观察信号可发现 3 个脉冲,每个脉冲可提取出比特序列并转换为十六进制,通过手动检查和比较不同捕获,注意到每个按钮按下的信号特征,包括长脉冲、3 个相似脉冲和最后一个较短脉冲,还发现中间 3 个脉冲中有增量 ID,通过研究滚动码机制,确定增量 ID 是滚动码系统的计数器,还找出了负责命令的字节(8 = 解锁,4 = 锁),并猜测最后两个字节的作用,通过异或测试确定最后一个字节是校验和,前两个字节可能是同步字,最初的长脉冲用于唤醒接收器,发送 3 个数据包是为了保证可靠性。
  • 最终结果:作者对信号的其他字节进行标注,成功逆向工程了汽车钥匙信号,下次将分享在 Flipper Zero 上集成支持此信号格式的内容。
阅读 13
0 条评论