在 eWeLink 移动应用(Android 版至 4.9.2,iOS 版至 4.9.1)的二维码配对模式中,对设备私有加密密钥的无限制 Web 访问,使得物理邻近的攻击者能够通过监听设备配对过程中的 Wi-Fi 频谱,窃听 Wi-Fi 凭据及其他敏感信息。
从用户角度来看,通过 eWeLink 应用实现的物联网设备与用户 Wi-Fi 之间的基于二维码的配对过程如下:
配套设备(来自 ITEAD 的 Sonoff Micro)的二维码标签编码了以下 URL:https://api.coolkit.cn:8080/add-ap-device?brand=ewelink\&ssid=ITEAD-device_id,其中:
在第一步中,应用连接到 eu-api.coolkit.cc:8080/api/user/fdbaseinfo?deviceid=device_id&other_parameters 端点,从中获取设备密钥以及其他设备信息。根据上述流程,应用调用的服务返回一个密钥,该密钥随后使用 AES 算法加密用户 Wi-Fi 凭据,再通过专用软 AP Wi-Fi 网络发送至物联网设备。
一条加密的 JSON 消息通过 HTTP POST 请求发送至开放的设备 HTTP 服务器。
原始负载结构如下所示:
{"ssid" : "Test-Network", "password" : "Test-Password", "serverName" : "eu-disp.coolkit.cc", "port" : 443}
其中 "Test-Network" 和 "Test-Password" 参数是我们测试环境配置的网络凭据,eu-disp.coolkit.cc 是为欧洲地区提供服务的云平台。
我们进行了多次测试,注意到在配对过程中,Wi-Fi 软 AP 附近的任何人都可以获取 device_id 参数,因为它包含在设备的软 AP Wi-Fi SSID 中。 要获取特定设备的密钥,只需:
因此,仅需知道设备 ID,即可轻松获取对应的设备密钥。 这使得附近的恶意用户能够通过监听用户智能手机发送至物联网设备的配置消息,窃取用户的 Wi-Fi 凭据。请注意,设备软 AP Wi-Fi 默认是开放且无保护的,因此监听是可能的。
在从云服务获取密钥(连同已知的 device_id 参数)后,恶意用户可以解密配置消息并提取用户的 Wi-Fi 凭据。 因此,客户的整个家庭网络将受到威胁。
该漏洞已在 eWeLink 移动应用的 Android(v4.11.0 及更早版本)和 iOS(v4.9.1 及更早版本)版本上测试。
[1] Daniele Granata, Massimiliano Rak, Giovanni Salzillo, Umberto Barbato. "Security in IoT Pairing & Authentication protocols, a Threat Model and a Case Study Analysis", ITASEC 2021.
MIT