LIFX智能灯泡漏洞泄露WIFI密码
最近有安全研究人员报告LIFX灯泡存在漏洞,黑客可以在距离灯泡30米内获取灯泡连接的WIFI密码。LIFX灯泡使用aes加密wifi密码,其加密密钥是固定的,通过特殊方式获得密钥之后就可以解密wifi的密码。目前LIFX已经发布安全升级公告。
LIFX灯泡是可以由Wi-Fi控制的智能多色LED灯泡,售价99美元。LIFX曾创下Kickstarter众筹平台有史以来最成功的融资活动,在最初目标仅为10万美元的情况下,于短短六天内筹集到了130万美元。上周,该公司宣布在A轮融资中募集了1,200万美元。
LIFX灯泡会连接wifi网络,这样才可以通过手机APP控制。当有多个灯泡的时候,只有一个灯泡会连接到网络。这个控制灯泡会接受手机发来的指令,然后通过802.15.4 6LoWPAN协议广播给其他的灯泡。
当控制灯泡关闭或者掉线的时候,剩余的灯泡会选举一个新的控制灯泡连接wifi,等待接受手机端发来的命令。这样的设计保证同时只有一只灯泡连接wifi,不用说,这种设计是有很多优点的。也引起我们的研究兴趣。
分析攻击面
在灯泡的网络中主要有3个核心的通信部分:
1,智能手机到灯泡的通信。 2,灯泡WIFI的通信。 3,灯泡mesh网络的通信。
我们决定先从灯泡的 802.15.4 6LoWPAN的无线mesh网络下手,分析一下灯泡之间是如何分享 wifi 认证密码的。
协议分析
通过监控和注入LIFX的mesh网络,我们发现大部分通信都是未加密的。这样就可能轻易的分析出协议,从而构造消息控制灯泡或者重放控制指令。我们也发现了共享wifi密码的流程。当有新灯泡加入时,控制灯泡会广播消息,新灯泡回应控制灯泡,然后跟控制灯泡请求wifi的相关信息。控制灯泡会回应wifi的信息,加密之后发给新灯泡。然后新灯泡就出现在手机APP的控制列表里了。下图显示的是加密之后的wifi信息。
通过对数据的进一步分析,我们发现可以自己在灯泡的mesh网络中注入数据包来请求wifi的信息。这样就可以在没有新灯泡加入的情况下获得wifi信息,而且手机上不会有任何提示。到目前为止,还没有足够的信息来解密wifi信息,因此我们决定去分析灯泡使用的加密算法。
获得固件
理想的情况下,可以在设备官网下载到固件分析。这次由于LIFX是一家非常新兴的公司,他们还没有发布过固件。所以我们只好自己想办法提取固件。
通过对PCB的分析,我们获得了以下的信息:mesh网络使用的是德州仪器的CC2538,wifi网络使用的是意法半导体的STM32F205ZG (marked LIFX LWM-01-A)。处理器使用的ARM Cortex-M3 。而且芯片的jtag都是可以用的。我们使用开源硬件BusBlaster JTAG debugger,最后成功导出了固件。
逆向固件
现在我们有了两个二进制的文件。通过对字符串的识别,发现加密算法部分在LIFX LWM-01-A芯片中。使用IDA Pro加载固件,通过寻找一些加密常用的常量: S-Boxes, Forward和Reverse Tables和Initialization Constants,分析出LIFX采用了AES进行加密。AES是一种对称加密算法。也就是说加密和解密都需要同一个预共享的key。如果LIFX使用了固定的加密密钥的话,这就意味者我们从一个LIFX灯泡中获得了加密key,就可以使用这个key解密所有LIFX灯泡加密的wifi信息。下图是ids 反汇编的加密代码。结合对开源AES实现的分析,我们获得了aes加密使用的key,初始化向量,块模式等。
最后我们使用获得的信息解密了嗅探到的wifi信息证明了漏洞存在。由于这个攻击场景需要使用无线mesh网络,所以攻击者需要在网络覆盖的范围内进行攻击,大概是30米。目前lifx已经发布了新版固件修正这个漏洞。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/57985.html
开源相关文章
- WiFi(6)和5G的区别及比对[通俗易懂]
- 3D打印机 无线内存卡 WIFI-SD卡 开源部分
- Linux 驱动开发:USB无线wifi驱动开发(MT7601)、完成WIFI管理工具安装
- 用Python破解WiFi密码,太刺激了!
- 三大运营商网络使用频段及随身wifi选用
- gateway网关详解_天翼网关扩展wifi
- 树莓派wifi热点-树莓派连接WiFi与查找IP
- IM开发者的零基础通信技术入门(十一):为什么WiFi信号差?一文即懂!
- 惠普打印机如何更改wifi
- 电视联网怎么连接wifi
- 新版WIFIv4.47小程序源码+WIFI分销系统+流量主+独立运行版
- Android获得WIFI IP地址或者手机网络IP详解编程语言
- Linux系统无法连接WiFi烦恼(linux连不上wifi)
- 安装安装Linux:轻松驱动你的WiFi(wifi驱动linux)
- 信息Linux下查看WiFi信息的技巧(linux查看wifi)
- Linux下实现WiFi共享的简易指南(wifi共享linux)
- 如何用树莓派制作 WiFi 相框
- Ubuntu Touch或将实现WiFi Display支持,手机转PC更方便
- 存在多年的 Linux 漏洞被发现:可通过 WiFi 攻击目标计算机
- 马云又推神器,让天下没有难用的wifi
- Linux程序的WIFI连接设置(linux程序WIFI)
- Linux下wifi扫描:简单易学,让你快速连接无线网络(linuxwifi扫描)
- 轻松搞定:Linux下配置Wifi热点(linux配置wifi)
- Linux系统下WiFi快速配置指南(linux wifi配置)
- Linux下强大好用的Wifi连接软件(linux wifi软件)
- 如何在Linux系统中使用WIFI(linux使用wifi)
- Linux横扫无线世界:WiFi全面发展的新纪元(linux的wifi)
- 流量不够用?Facebook要帮你发现附近的免费WiFi
- 20 万中国产 WiFi 摄像头曝漏洞,后门大开任由黑客进入