在应用层,UDP协议可以发送广播包,所以,APP或者PC程序,发送一个UDP数据包,在包中放置SSID跟密码,然后插座接受到该包之后,解析包,获得SSID跟密码,就可以配置自己,链接路由器了。
花了五个小时分析了汉枫的模块SmartLink的实现细节;
协议用了UDP广播数据包,手机向本地广播地址,端口49999,发送特定编码的数据包;
显然,模块可以嗅探到该数据包,无线数据包中已经包含了SSID,以及加密方式,所以,模块仅仅需要从数据包中推算出密码,就可以成功连接本地AP了。
汉枫用了一个很傻的效率较低的协议;
将每一个密码字符编码为UDP包负载的字节数,一个回车,一个换行以及密码字节数;
一个会话发送四次,再发送仅包含smartconfig的字符串的UDP包,如果模块配置成功,则回复包含mac地址的UDP包,手机从而知道了mac地址跟IP地址。
看似复杂,但仍然很容易猜测到,所以说很傻;
其实单数据包编码所有密码发送,效率最高,smartlink速度最快。。
此次协议分析,也让我得到了一个很可怕的结论,如果明文发送密码,那即使别人不知道WIFI密码,也可以嗅探到明文数据包,很为手机软件的安全性担心
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)