Smart config风险分析与对策

1、简介:

         Smart config是一种将未联网设备快速连接wifi的技术,大概原理如下图所示:

2、业务需求:

         要求实现真正意义上的设备一键自动化wifi配置,不损失用户体验。

3、风险分析:

风险1:wifi密码被窃取。

由于手机使用无线通信告诉设备要连接的wifi的密码,而手机发射的无线信号具有一定覆盖范围(7-8米或更远),因此,在此过程中,存在wifi密码被窃取的问题,此问题在独栋住宅并不明显,但在商品房或群租环境中则比较明显,如下图所示:

风险2:设备被恶意添加。

         同理,在手机无线信号能够覆盖的区域内,如果存在一台待添加和绑定用户的设备,那么这台设备就有可能被恶意设置连接到攻击者指定的wifi上,然后添加到攻击者的账户,导致隐私泄露,如下图所示:

4、目前解决方案分析

方案1、使用独立唯一的设备密钥进行加密通信

         设备出厂时为每个设备分配一个足够安全的独立密钥,用户在使用一键wifi配置功能时要求输入密钥,并使用对称加密算法进行加密,由于设备本身拥有该密钥,故可以对加密信息进行解密。

         优点:能同时解决风险1和风险2。

         缺点:单向通信,用户体验差(特别是密钥复杂时),也不满足业务一键配置的需求。

衍生方案:使用固定密钥加密,但很容易遭逆向破解获取密钥。

流程图如下:

方案2:使用近场通信或信号屏蔽性好的技术。

         声波具有难穿墙的特点,NFC具有超短距离通信特点,等等。

         优点:能同时解决风险1和风险2。

         缺点:需要增加硬件或专利费用等成本。

方案3:设置时间窗口降低风险。

         为刚启动上电或刚重置的设备设置一个可以设置wifi的时间窗口(比如15分钟),超过时间窗口后,需要拔电重启或重置设备才可以再此给设备设置wifi。

         优点:能降低设备被恶意设置wifi和添加的风险,且不增加成本,用户体验损失小。

         缺点:未能解决风险1的wifi口令泄漏问题。

备注:方案1的衍生方案(即使用固定密钥)和本方案结合使用可降低风险,且不增加成本和降低用户体验。

方案4:使用softAP

         即将设备模拟成一个wifi热点,移动客户端可以连接该热点和设备直接通信,这样便可以形成双向的通信,让使用公钥加密算法(比如:ECC)成为可能,流程图如下:

优点:双向通信,可采用公开密钥体制算法(比如:ECC),解决风险1描述的数据保密性问题,同时不损失用户体验。

缺点:未能解决风险2的恶意添加的问题,同时由于softAP产生的SSID暴露了设备的存在性,可能使得该问题变得更加严重。

备注:

1、  连接设备softAP时,采用硬编码的口令,即所有设备的softAP口令都一样,这也意味着攻击者是可以逆向破解获得口令的,因此,该方案必须假设此风险的存在性。

2、  当手机客户端连接上设备softAP后,相当于手机客户端可访问设备上的端口和服务,此无形增加了风险,因此需要一些措施进行缓解防止攻击者恶意连接设备进行攻击,比如:当设备在连接wifi的状态下应关闭softAP,以及在softAP模式下,设备只接受设置wifi的请求,不响应其它服务请求等。

3、  此方案可以和方案3一起使用降低风险2。

5、ECC加解密流程:

 

Smart config风险分析与对策的更多相关文章

  1. Webduino Smart 从入门到起飞

    前言 原创文章,转载引用务必注明链接.水平有限,如有疏漏,欢迎指正. 试用了一下,感觉这板子+WebduinoBlockly在线开发环境,下限低.上限也低,以后肯定要刷其他固件的.举个简单的例子,WB ...

  2. 物联网(莹石云)WIFI一键配置原理分析(zz)

    最近打算做一款自己的无线传输模块用来实现光伏电站的数据接入,希望可以尽量简化接入流程,其中wifi密码的配置就是一个比较麻烦的事情,想到最近使用萤石摄像头时,wifi密码配置似乎很简单,他们是怎么做到 ...

  3. WIFI接入Internet配置过程

    转载请注明出处:http://club.gizwits.com/thread-256-1-1.html AirLink模式GoKit2代配置路由SSID和密码方法如下:1.GoKit2上电2.长按Ke ...

  4. app配置智能硬件的解决方案

    随着越来越多的智能硬件产品上市,越来越多的硬件都戴上了智能的帽子,什么智能插座,智能音箱,智能称等等.凡是所谓的智能,都是通过wifi或者蓝牙来连接互联网,其中蓝牙也只能算是手机的附属品吧.主要还是硬 ...

  5. esp-12e折腾

    寒假前就从x宝买了esp-12e以及esp32s,当时似乎是想给自己的蓝牙开门升级换代?esp32s拿来过度linux? 寒假放在书包拿回去以为有时间会玩玩,没想到一直耽搁到现在.前两天才拿出来,网上 ...

  6. ESP8266 01S WIFI 网络

    ESP8266是一款超低功耗的UART-WiFi 透传模块,拥有业内极富竞争力的封装尺寸和超低能耗技术,专为移动设备和物联网应用设计,可将用户的物理设备连接到Wi-Fi 无线网络上,进行互联网或局域网 ...

  7. 开发快平台(M302I小e开发板系列教程)

    开发快平台(M302I小e开发板系列教程) 开发块平台ESP8266模块相关理解 一. M302I小e开发板源码注释,源码基于:v1.4.0.8-u34.zip 1. user_main.c /*** ...

  8. Arduino Core For ESP8266

    如果选择纯C作为ESP8266的开发,有两个途径: 使用乐鑫官方原生的 RTOS-SDK或者NONOS-SDK 使用Arduino IDE 使用PlatformIO 作为一个"Arduino ...

  9. RealTek WiFi 模块 RTL8710AF RTL8711AF RTL8711AM RTL8195AM

    瑞昱 8710 是一个完整且自成体系的 WiFi 网络解决方案, 能够独立运行,也可以作为从机搭载于其他主机 MCU 运行. 瑞昱 8710 在搭载应用并作为设备中唯⼀的应⽤处理器时,能够直接从外接闪 ...

随机推荐

  1. (十九)git版本管理软件——搭建git服务器

    创建管理员git 为管理员用户添加sudo权限 生成管理员秘钥 设置管理员git提交账号和邮箱 下载安装gitolite 启动gitolite 添加项目版本库 添加项目成员 项目成员下载项目 gito ...

  2. SQL中char、nchar、varchar、nvarchar、text概述【转】

    1. char char是定长的,也就是当你输入的字符小于你指定的数目时,char(8),你输入的字符小于8时,它会再后面补空值.当你输入的字符大于指定的数时,它会截取超出的字符. 2. nchar ...

  3. MYSQL5.5源码安装 linux下

    /* 首先安装必要的库 */ yum -y install gcc* ###### 安装 MYSQL ###### 首先安装camke 一.支持YUM,则 yum install -y cmake 二 ...

  4. C++——初识C++

    1. C关键字 auto int double long char float short signed unsigned struct union enum static switch case d ...

  5. Request对象与Response对象

    1.Request对象 Request对象是来获取请求消息的,是由服务器(Tomcat)创建的. Request对象继承体系结构: ServletRequest        --    接口     ...

  6. 关于Free的override不能省略的问题,切记,虚方法是可以被覆盖的方法。

     

  7. POJ-1681

    Painter's Problem Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 4839   Accepted: 2350 ...

  8. Django-form組件

    Django的Form主要具有一下几大功能: 生成HTML标签 验证用户数据(显示错误信息) HTML Form提交保留上次提交数据 初始化页面显示内容 一.创建Form类 1 2 3 4 5 6 7 ...

  9. hdu 1547(BFS)

    Bubble Shooter Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)To ...

  10. Qt笔记——多线程

    这个例子是,点击开始按钮,数字累加,点击停止按钮,数字不动. 1,新建一个类,里面是子线程的内容 #ifndef MYTHREAD_H #define MYTHREAD_H #include < ...