Smart config风险分析与对策
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风险分析与对策的更多相关文章
- Webduino Smart 从入门到起飞
前言 原创文章,转载引用务必注明链接.水平有限,如有疏漏,欢迎指正. 试用了一下,感觉这板子+WebduinoBlockly在线开发环境,下限低.上限也低,以后肯定要刷其他固件的.举个简单的例子,WB ...
- 物联网(莹石云)WIFI一键配置原理分析(zz)
最近打算做一款自己的无线传输模块用来实现光伏电站的数据接入,希望可以尽量简化接入流程,其中wifi密码的配置就是一个比较麻烦的事情,想到最近使用萤石摄像头时,wifi密码配置似乎很简单,他们是怎么做到 ...
- WIFI接入Internet配置过程
转载请注明出处:http://club.gizwits.com/thread-256-1-1.html AirLink模式GoKit2代配置路由SSID和密码方法如下:1.GoKit2上电2.长按Ke ...
- app配置智能硬件的解决方案
随着越来越多的智能硬件产品上市,越来越多的硬件都戴上了智能的帽子,什么智能插座,智能音箱,智能称等等.凡是所谓的智能,都是通过wifi或者蓝牙来连接互联网,其中蓝牙也只能算是手机的附属品吧.主要还是硬 ...
- esp-12e折腾
寒假前就从x宝买了esp-12e以及esp32s,当时似乎是想给自己的蓝牙开门升级换代?esp32s拿来过度linux? 寒假放在书包拿回去以为有时间会玩玩,没想到一直耽搁到现在.前两天才拿出来,网上 ...
- ESP8266 01S WIFI 网络
ESP8266是一款超低功耗的UART-WiFi 透传模块,拥有业内极富竞争力的封装尺寸和超低能耗技术,专为移动设备和物联网应用设计,可将用户的物理设备连接到Wi-Fi 无线网络上,进行互联网或局域网 ...
- 开发快平台(M302I小e开发板系列教程)
开发快平台(M302I小e开发板系列教程) 开发块平台ESP8266模块相关理解 一. M302I小e开发板源码注释,源码基于:v1.4.0.8-u34.zip 1. user_main.c /*** ...
- Arduino Core For ESP8266
如果选择纯C作为ESP8266的开发,有两个途径: 使用乐鑫官方原生的 RTOS-SDK或者NONOS-SDK 使用Arduino IDE 使用PlatformIO 作为一个"Arduino ...
- RealTek WiFi 模块 RTL8710AF RTL8711AF RTL8711AM RTL8195AM
瑞昱 8710 是一个完整且自成体系的 WiFi 网络解决方案, 能够独立运行,也可以作为从机搭载于其他主机 MCU 运行. 瑞昱 8710 在搭载应用并作为设备中唯⼀的应⽤处理器时,能够直接从外接闪 ...
随机推荐
- 2015多校第6场 HDU 5361 并查集,最短路
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5361 题意:有n个点1-n, 每个点到相邻点的距离是1,然后每个点可以通过花费c[i]的钱从i点走到距 ...
- VPS速度测试(4):上传下载速度、服务器带宽、Ping响应时间
1.VPS的速度好坏经常是我们选择某一个VPS商家的重要参考指标,对于国外的VPS主机我们可以执行以下命令来测试VPS入口带宽是多少. wget https://cachefly.cachefly.n ...
- vue 计算属性 实例选项 生命周期
vue 计算属性: computed:{} 写在new vue()的属性,只要参与运算,数据不发生变化时,次计算只会执行一次,结果缓存,之后的计算会直接从缓存里去结果.如果其中的值发生变化(不管几个) ...
- leetcode 之Implement strStr()(27)
字符串的匹配,返回匹配开始的位置,直接用暴力方式求解.为了更快的匹配,定义一个指针表示待匹配的字符串的长度,当长度不足时,可 直接停止匹配. char *strStr(char *haystack, ...
- hrbust - 2239
影子模仿术 Time Limit: 500 MS Memory Limit: 32768 K Total Submit: 7(5 users) Total Accepted: 2(2 users) R ...
- 【转载】viewLoad、viewDidLoad的一些事
viewLoad和viewDidLoad都可以用来在视图载入的时候,初始化一些内容 viewDidLoad此方法只有当view从nib文件初始化的时候才被调用.viewDidLoad用于初始化,加载时 ...
- Django Ajax学习二之csrf跨站请求伪造
方式1 $.ajaxSetup({ data: {csrfmiddlewaretoken: '{{ csrf_token }}' }, }); 方式2 # html文件from表单中<form& ...
- 微信小程序实战篇-下拉刷新与加载更多
下拉刷新 实现下拉刷新目前能想到的有两种方式 1. 调用系统的API,系统有提供下拉刷新的API接口 2. 监听scroll-view,自定义下拉刷新,还记得scroll-view里面有一个binds ...
- 六十 数据库访问 使用SQLAlchemy
数据库表是一个二维表,包含多行多列.把一个表的内容用Python的数据结构表示出来的话,可以用一个list表示多行,list的每一个元素是tuple,表示一行记录,比如,包含id和name的user表 ...
- 【剑指offer】面试题 49. 丑数
面试题 49. 丑数 题目描述 题目:把只包含因子2.3和5的数称作丑数(Ugly Number).例如6.8都是丑数,但14不是,因为它包含因子7. 习惯上我们把1当做是第一个丑数.求按从小到大的顺 ...