zoukankan      html  css  js  c++  java
  • 【转载】wifi一键配网smartconfig原理及应用

    物联网给我们又提供了一种窃取WiFi密码的好方式:让智能设备主动断线。

    同时也提供一种让智能设备连接到恶意WiFi的方式:设备一键配置功能时疯狂广播恶意WiFi的信息。

    转自:http://blog.csdn.net/lbaihao/article/details/74231693    原文如下:

    智能家居/家电现阶段还处于普及阶段,由于家庭wifi网络的普及,目前普遍采用wifi与路由器完成连接,与手机/云端进行数据交互.

    智能硬件,如智能插座,智能空调,智能空气净化器由于不具备人机交互界面,不能像电脑一样的搜索/选择指定路由器,输入连接密码的界面,所以必须先解决正确连接路由问题;

    目前流行的wifi配置模式一般有以下2:

    1:智能硬件处于AP模式,手机用于station模式,手机连接智能插座的AP后组成局域网,手机发送需要连接路由的SSID及密码至智能插座,智能硬件主动去连接指定路由后,完成连接

    2:一键配置(smartconfig)模式:智能硬件处于混杂模式下,监听网络中的所有报文;手机APPSSID和密码编码到UDP报文中,通过广播包或组播报发送,智能硬件接收到UDP报文后解码,得到正确的SSID和密码,然后主动连接指定SSID的路由,完成连接

    以上两种方式都可以达到让智能硬件连接至指定路由的效果,但是AP模式需要手动切换手机wifi连接的网络,先连接智能硬件的AP网络,配置完成后再恢复连接正常wifi网络.有一定的复杂性;

    但是smartconfig由于路由器品牌及手机品牌众多,存在一定的兼容性问题,所以目前一般厂家仍保留AP模式,作为smartconfig失败后的备用配网方案;

    下面重点讲解一下一键配置模式原理及应用;当前主流IOTwifi方案有:

    厂商

    芯片方案

    技术名称

    发包方式

    1

    TI 

    CC3200

    SmartConfig

    往某一固定IPudp

    2

    高通

    QCA4004/QCA4002

    SmartConnection

    3

    联发科MTK

    MTK7681

    SmartConnection

    组播地址编码

    4

    MARVELL

    MC200+8801/MW300

    EasyConnect

    组播地址编码

    5

    Reltek

    AMEBA

    SimpleConfig

    组播地址编码

    6

    乐鑫

    Esp8266

    SmartConfig

    组播,通过长度编码

    7

    新案线

    NL6621

    SmartConfig

    组播地址编码

    8

    微信

    AirKiss

    全网广播,通过长度编码

    这个功能最早是TI提出并应用于CC3200;不过从原理上讲,只要芯片驱动支持开启混杂模式(WiFi Promiscuous),就可以支持一键配网功能,只是各个厂家叫法及实现编码方式不同而已;

    手机编码发送采用有UDP组播或广播,不同的发送方式和编码,对应的解码过程也不一样.,当前测试发现,微信是通过UDP广播包实现的;TI是通过往一固定IP地址发送udp;其他芯片厂家提供的一般为UDP组播方式;

    由于无线数据传播必定是广播的,所以必然可以被监听到;如果AP没有加密的话,UDP直接可以把相关的信息发送出来.但是路由器AP一般都是加密的,而且加密方式不固定.wifi模块在无法直接解析出数据包

    我们通过分析802.11MAC帧格式,可以知道,链路层载荷数据(即网络层的头部及网络层数)在数据帧中是清晰可见的,只要接到到802.11帧就可以立刻提取出载荷数据.

    常见两种数据帧格式:

    Station to AP

     

    AP to Station

     

    DA:目标MAC地址

    SA:MAC地址

    LENGTH:表示后面数据的长度

    LLC:表示LLC

    SNAP:表示3byte的厂商代码和2byte的协议类型表示

    DATA:载荷数据

    FCS:帧检验序列


    发送端:可以采用2种不同的编码发送方式UDP广播和组播;

    :UDP广播:小规模测试,发现当前只有微信的AirKiss采用了全网广播模式,为啥微信会采用广播模式,原因未知;TI采用的是固定IP地址的UDP数据包,原理和微信基本一致;

    802.11帧格式分析中获知,无线信号监听方的角度来说,不管无线信道有没有加密,DASALENGTH LLCSNAPFCS字段总是暴露的,因此信号监听方可以从这6个字段获取有效信息.从发送方讲,由于操作系统的限制,如果采用广播只剩下LENGTH发送方可通过改变其所需要发送数据包的长度进行控制.所以只要指定出一套利用长度编码的通讯协议,就可利用数据包的Lenght字段进行数据传递;

     

    :UDP组播:

    组播地址是保留的D类地址从224.0.0.0-239.255.255.255

    IP地址与MAC地址映射关系为:MAC地址的前25位设定为01.00.5e,MAC地址的后23位对应IP地址的位;

    故发送端可以将数据编码在组播ip的后23bit,通过组播包发送,接收端进行解码即可;

     

    接收端进入一键配置功能后,wifi智能硬件从信道1开始监听路由上的数据,如当前监听信道有符合规则的数据包,就停止信道切换,停留在当前信道接收完全部数据.否则就依次切换至信道2.3.4....直到信道14后又从信道1开始继续监听依次循环;

    当然,wifi智能硬件可以在开启混杂模式之前,先行扫描当前环境下存在的AP获取所有当前AP的信道,然后只对当前扫描到的信道进行依次监听,如当前环境下只存在2个路由,分别在1.6信道,只需轮流扫描channel1channel6,这样可以提高配置效率

  • 相关阅读:
    1.造一个句子先造出 主谓宾 或主系表,或therebe 这个句子就确定了
    电脑族应每天赤脚走15分钟
    10我操介词
    2.在英语句子中,什么时候用助动词do\does ,什么时候用be动词am\is\are?
    6.英语单词末尾的——s,什么时候发S,什么时候发Z
    转 Dll创建一个"日历"窗体(一)
    2012 MultiUniversity Training Contest 2
    最大流 基础
    HDOJ 4006 The kth great number(优先队列)
    树状数组
  • 原文地址:https://www.cnblogs.com/ascii0x03/p/7280727.html
Copyright © 2011-2022 走看看