萤石A1互联网报警盒子破解细节分析

攻击点分析:
萤石A1互联网报警盒子使用“全无线解决方案”,传感器的报警通过433.92MHz射频信号发送给报警主机,报警主机可以通过Wi-Fi联网,将报警上传萤石云端,云端会将信息推送到手机端的“萤石云视频”APP向用户报警。
433MHz是使用非常普遍的ISM免执照频段,尤其在智能家居领域,其穿透和绕射能力强,传输距离远,但不同于Wi-Fi和zigbee具有加密功能,433MHz通常采用明文传输,其安全性较差,因而作为我们优先考虑的攻击点。
漏洞描述:
攻击者利用数字射频处理技术和软件无线电工具,重放所有报警传感器原始射频信号,并绕过系统防重放机制,造成可以推送到用户手机端的假报警信息。
漏洞详情:
抓取了报警传感器在433.92MHz的所有原始射频信号,包括门磁(开,关)、红外、烟感、遥控器(紧急呼救、在家模式、外出模式、睡眠模式、静音),并对信号格式进行了分析。
1. 每次报警会连续发送五次射频信号(烟雾报警为十次),且五次的内容相同。

2. 单次射频信号包含两个数据包。

3. 可以明显看出信号使用ASK调制,解调后可得数据包二进制内容。
4. 对信号二进制作进一步分析:第一个数据包内容不变,固定为两种(门磁、遥控器为一种,烟感、红外为一种)。第二个数据包应包含传感器序列号和种类等信息,其中序列号位于数据包开头位置。

对于同一个传感器所发出的同一种报警信号,在不同时刻记录的第二个数据包部分不同(如下图),因此推测其包含滚动码,而相同的部分为其序列号位置。

5. 滚动码在原理上可以放重放,但实验发现重放攻击仍然有效,因为主机只对信号作单次校验,即与上一次收到的有效信号作比较以防重放。但这种机制对于该产品是十分无效的,因为即使主机不报警,传感器也会经常性地发射射频信号,如门磁和红外,因为重放的信号和主机收到的上一次有效信号一样的概率极低。另外也可以简单地通过重放两段不同的有效信号以绕过该机制。
漏洞利用:
1. 利用该漏洞可以重放传感器信号实现假报警,使用户经历不必要的慌乱,进行多次重放攻击可以使用户不堪其扰,从而丧失对产品的信任,放弃使用该产品。在用户不知情的情况下可能会对品牌产生不良影响。
2. 对于窃贼也可以使用无线电进行入室盗窃,方法是重放遥控器信号使主机切换回在家模式,这样即使被门磁和红外探测到了主机也不会报警。另一种简单粗暴的方法就是直接进行无线电干扰,使所有传感器失效,实验并未发现主机对大功率无线电干扰有任何检测和报警。
萤石A1互联网报警盒子破解细节分析的更多相关文章
- HackPwn:TCL智能洗衣机破解细节分析
上周结束的Hackpwn上,黑客们脑洞大开,破解了比亚迪汽车.小米手环.乐小宝.长虹电视.TCL洗衣机和九阳豆浆机等一系列最新的智能硬件,据黑客介绍,TCL是一家把家门“砌死”的企业,由于得到了将要被 ...
- (转)Android 系统 root 破解原理分析
现在Android系统的root破解基本上成为大家的必备技能!网上也有很多中一键破解的软件,使root破解越来越容易.但是你思考过root破解的 原理吗?root破解的本质是什么呢?难道是利用了Lin ...
- 几个容易出错的css盒子模型细节
css是前端必须掌握的技能之一.其中的box模型,如图所示: 大体就是border.margin.padding和content,概念挺好理解.但当盒子模型与其他属性一块使用时产生的现象,或许您还难以 ...
- rip路由协议 细节分析及实例配置【完整版】
rip路由协议 细节分析及实例配置[完整版] RIP呢,这是一个比较重要的知识点,所以它的知识覆盖面很广泛:但是呢,我将会对碰到的问题进行一些分析解刨(主要是为了帮助自己理清思维):也希望能够从中发现 ...
- Ext.create细节分析
var win1 = Ext.create('Ext.window.Window', { //实例化方法四 : 使用 完整的 Extjs 类名 width: 800, title: 'define t ...
- Android 系统 root 破解原理分析 (续)
上文<Android系统root破解原理分析>介绍了Android系统root破解之后,应用程序获得root权限的原理.有一些网友提出对于root破解过程比较感兴趣,也提出了疑问.本文将会 ...
- uboot 顶层makefile细节分析
uboot的源文件众多,学习庞然大物首先找到脊椎--顶层的makfile,逐一破解.但是,uboot的makefile同样是一个庞然大物,所以也要找到它的主线.倘若过分专注部分细节,很难做到把握全局, ...
- Android系统root破解原理分析
http://dengzhangtao.iteye.com/blog/1543494 root破解过程的终极目标是替换掉系统中的su程序.但是要想替换掉系统中su程序本身就是需要root权限的,怎样在 ...
- Android 系统 root 破解原理分析
现在Android系统的root破解基本上成为大家的必备技能!网上也有很多中一键破解的软件,使root破解越来越容易.但是你思考过root破解的 原理吗?root破解的本质是什么呢?难道是利用了Lin ...
随机推荐
- js中可以直接使用id而不用获取id
先来看一个例子: 不获取 id 也可以使用 id 元素. <!-- Author: XiaoWen Create a file: 2017-01-11 13:58:01 Last modifie ...
- SublimeText3常用快捷键和优秀插件(亲测)
SublimeText3常用快捷键和优秀插件 SublimeText是前端的一个神器,以其精简和可DIY而让广大fans疯狂.好吧不吹了直入正题 -_-!! 首先是安装,如果你有什么软件管家的话搜一下 ...
- 下列java代码中的变量a、b、c分别在内存的______存储区存放。
class A{ private String a = "aa"; public boolean methodB(){ String b = "sb"; fin ...
- Linux内核的五大模块
Linux内核的五大模块 (转自)https://blog.csdn.net/huangjingbin/article/details/19396235 Linux内核的五大模块 1.进程调度模块 2 ...
- python enumerate用法总结--转载
enumerate()说明 enumerate()是python的内置函数 enumerate在字典上是枚举.列举的意思 对于一个可迭代的(iterable)/可遍历的对象(如列表.字符串),enum ...
- python input输入元素相加
sum= number= while True: : break number=int(input('数字0为结束程序,请输入数字: ')) sum+=number print('目前累加的结果为: ...
- 代码中特殊的注释技术 -- TODO、FIXME和XXX的用处
借鉴地址:https://www.cnblogs.com/pengyingh/articles/2445826.html 在阅读一些代码时,经常会遇到诸如:TODO.FIXME和XXX的单词,它们是有 ...
- django查询操作
查询操作是Django的ORM框架中最重要的内容之一.我们建立模型.保存数据为的就是在需要的时候可以查询得到数据.Django自动为所有的模型提供了一套完善.方便.高效的API,一些重要的,我们要背下 ...
- Maven常用dependency记录
1.servlet配置 <dependency> <groupId>junit</groupId> <artifactId>junit</arti ...
- spring boot 启动报错(spring-boot-devtools热部署后):The elements [spring.resources.cache-period] were left unbound. Update your application's configuration
详细错误代码: *************************** APPLICATION FAILED TO START *************************** Descript ...