通过利用 Coway Airmega IconS 空气净化器通过未加密的 HTTP 下载根证书的安全疏忽,用户能够拦截设备的通信并将其重定向到私有服务器。此操作有效地将设备“去云端化”,使其能够在不依赖 Coway 官方云基础设施的情况下集成到本地家庭自动化系统中。

依赖云服务的 IoT 问题

许多现代智能家居设备,如 Coway Airmega IconS,依赖制造商托管的云服务来进行远程控制和 App 集成。虽然方便,但这种依赖性造成了单点故障:如果制造商的服务器下线、更改其 API 或停止服务,设备的各项功能可能会丢失。

该项目的作者指出,由于服务器维护、因使用第三方集成而被封号或移动端 App HTML 布局的变化,导致 Coway 的云服务失效的多次实例。为了确保长期可靠性,目标是将控制逻辑从云端转移到本地服务器。

拦截引导请求

绕过云服务的首要技术障碍是 SSL 证书的使用,它阻止设备连接到虚假服务器。然而,研究发现 Coway 设备在初始设置期间,会通过未加密的 HTTP 从 Amazon S3 存储桶下载其根证书。

通过使用 Raspberry Pi 和 mitmproxy 设置中间人(MitM)环境,用户拦截了这一特定请求。他们使用自定义插件将官方证书替换为由他们自己的实验室生成的证书,迫使设备信任用户的本地基础设施而非制造商的。

显示 AmazonRootCA1.pem 纯 HTTP GET 请求的 mitmweb 界面
用户拦截了设备通过未加密 HTTP 下载根证书的初始请求。scottjg.com

此图展示了设备通过纯 HTTP 获取根证书的特定漏洞,允许进行中间人拦截。

利用 AI 辅助映射 MQTT 命令

一旦设备信任了本地证书,用户就可以看到原始流量。虽然初始的 HTTP 请求提供了诸如 MAC 地址和证书令牌之类的元数据,但实际的操作命令是通过 8883 端口上的 MQTT 协议发送的。

用户利用 LLM 来帮助处理配置网络防火墙规则的繁琐过程。通过在与官方 App 交互时观察加密的 MQTT 流,用户可以将特定的按钮按下操作映射到消息总线上的相应消息,最终实现了设备功能的完全本地复制。

显示风扇与 AWS IoT 之间原始 MQTT 流的 mitmweb 界面
在迫使设备信任本地证书后捕获的原始 MQTT 流量。scottjg.com

此视觉效果展示了用于识别风速和其他控制具体命令的原始 MQTT 流。

显示 App 按钮按下操作映射到 MQTT 命令列表的聊天界面
使用 LLM 将特定的 App 交互映射到相应的 MQTT 消息。scottjg.com

用户利用 LLM 来处理将按钮按下操作映射到底层消息总线的复杂过程。

局限性与安全影响

虽然该项目取得了成功,但它突显了一个重大的安全缺陷:通过 HTTP 获取根证书的设备本质上容易受到拦截。这种“引导”漏洞允许攻击者——或爱好者——将设备的流量重定向到任何目的地。

作者指出,虽然此方法提供了独立于云端的自由,但它需要涉及网络路由、代理和协议分析的复杂设置。此外,风速的具体 API 调用在初始 HTTP 请求中不可见,因此用户需要进一步分析 MQTT 流才能实现完全控制。

Hacker News 读者的反应

  • 技术补充: 一位评论者指出,该设备通过纯 HTTP 不安全地处理根证书,使其容易受到中间人攻击,并暗示 AI 工具正让人们更容易地执行此类漏洞逆向工程中的繁琐工作。 评论 ↗
  • 技术补充: 另一位用户分享了他们将各种硬件组件和传感器集成到自定义家庭自动化设置中的经验,以创建一个绕过标准制造商限制的响应式环境。 评论 ↗
  • 技术补充: 一位评论者警告说,尝试通过绕过控制器来修改硬件,最终可能花费的零件和人工成本比直接购买具有原生智能功能的设备还要高。 评论 ↗

以上为 Hacker News 讨论中观点的摘要,并非经过核实的事实。 阅读完整讨论 ↗