手把手教你做一個天貓精靈(五、嘗試抓取智慧家居數據)
- 2022 年 10 月 7 日
- 筆記
- 手把手教你做一個天貓精靈
之前的章節講了利用fubuki-iot做了一個智慧終端,但是苦於沒有良好的開源生態所以只停留在DIY階段。本章介紹一種獲取智慧家居數據的方式,有條件的可以嘗試一下。
硬體準備
- 路由器(需要帶鏡像功能)
- RJ45(水晶頭)數據線
搭建環境
首先在連接路由器WiFi的環境下登陸路由器控制端,一般是192.168開頭的網頁,選擇高級配置,打開鏡像開關。
源埠默認,這樣可以鏡像所有接入設備的流量。輸出埠選擇LAN1,這樣通過RJ45數據線將路由器的LAN1埠於電腦相連,就可以實現本地電腦網卡接收路由器的鏡像數據了。
抓包
既然要抓包,必不可少的工具就是Wireshark,點這裡下載。按照步驟安裝好以後選擇抓取乙太網的數據包,這時候應該可以看到抓取的結果了。
如果是TLS/SSL協議加密過的數據也可以通過以下步驟解密:
- 新建兩個文件debug.log和key.txt
- 設置環境變數SSLKEYLOGFILE的值為debug.log的路徑
- 配置Wireshark的TLS協議:點擊「編輯」-「首選項」,選擇「Protocols」-「TLS」,按下圖填寫對應的debug.log和key.txt的路徑
重啟電腦,再打開Wireshark抓包就可以抓TLS/SSL加密之後的數據了。
Wireshark也能抓取MQTT協議的包,只要在過濾器中輸入mqtt即可:
然而並沒有發現MQTT的數據包,然後登陸路由器終端,找到智慧家居的IP,比如這個海爾洗衣機的IP是192.168.2.102:
然後在Wireshark過濾器中搜索對應的IP:
結果這個洗衣機是通過UDP協議傳輸的,而這個UDP協議的上層協議很有可能是廠家自己封裝的協議。。
思考
目前物聯網智慧家居的生態還不是很開放。有能力的大廠家甚至都自己實現了智慧語音功能,再加上市場競爭激烈,即使小廠家也不願意將傳輸的數據分享給外部。所以當下環境真正實現萬物聯網還是很遙遠的,賽博朋克的世界甚至更是遙不可及。我認為當前能夠願意聯網的家居可能僅限於電燈、開關之類的小電器。因為它們本身沒有科技創新點,而加入聯網特性能成為它們的買點。因此以後可能會出一期有關藍牙接入的文章。
本章介紹了本地抓取智慧家居數據包的一種方案,如果抓取到數據後也可以通過sniff等方法將流量複製給我們的MQTT伺服器,從而實現我們對家居的智慧控制。下一章將介紹一種軟體接入MQTT的例子——將QQ接入物聯網功能。