日期:2024-08-19 18:11:20 編輯: 瀏覽:
隨著移動互聯(lián)網(wǎng)和物聯(lián)網(wǎng)技術(shù)的迅猛發(fā)展,越來越多的設(shè)備具備了無線網(wǎng)絡(luò)接入能力,推動了物聯(lián)網(wǎng)進入了一個爆發(fā)式增長階段。這些設(shè)備的共同特點是體積小、功耗低,且大多數(shù)設(shè)備沒有配備屏幕和鍵盤。因此,將設(shè)備連接到網(wǎng)絡(luò)成為一個相對棘手的問題。為了解決這個問題,AirKiss技術(shù)應(yīng)運而生。通過該技術(shù),無需借助任何外設(shè),已經(jīng)連接到AP的設(shè)備可以直接向未連接AP的設(shè)備傳輸SSID和密碼。類似的設(shè)備有智能手環(huán)、無線監(jiān)控和智能相冊等。
首先,讓我們了解一下什么是AirKiss——
AirKiss是微信硬件平臺為WiFi設(shè)備提供的一種微信配網(wǎng)、局域網(wǎng)發(fā)現(xiàn)和局域網(wǎng)通訊技術(shù)。如果開發(fā)者希望通過微信客戶端為WiFi模塊配網(wǎng)、在局域網(wǎng)發(fā)現(xiàn)WiFi設(shè)備,或者將微信客戶端內(nèi)的音樂、圖片、文件等消息通過局域網(wǎng)發(fā)送至WiFi模塊,他們需要在硬件設(shè)備中集成相應(yīng)的AirKiss靜態(tài)庫。通過這種技術(shù),可以方便地將WiFi的SSID和密碼等配網(wǎng)信息傳遞給具有WiFi功能的設(shè)備。
在嵌入式設(shè)備或沒有交互功能的智能設(shè)備需要連接網(wǎng)絡(luò)時,用戶可以通過手機將設(shè)備需要配網(wǎng)的AP信息發(fā)送到空中。一旦WiFi模塊捕獲到這些信息,它就可以通過解析獲取所需的SSID和密碼。示意圖如下所示:
WiFi模塊AirKiss配網(wǎng)的基本原理
當(dāng)WiFi模塊進入WiFi混雜模式(promiscuous mode)以監(jiān)聽并捕獲周圍的WiFi報文時,由于設(shè)備尚未聯(lián)網(wǎng),且WiFi網(wǎng)絡(luò)的數(shù)據(jù)幀已加密,設(shè)備無法直接獲取payload的內(nèi)容。然而,它可以獲取報文的一些特征數(shù)據(jù),例如每個報文的長度。同時,對于某些數(shù)據(jù)幀,如UDP廣播包或多播包,其報文的幀頭結(jié)構(gòu)較為固定,較容易識別。
此時,在手機App或小程序側(cè),用戶可以通過發(fā)送UDP廣播包或多播包,并利用報文的特征(如長度變化)進行編碼。接著,將目標WiFi路由器的SSID/PSW字符以約定的編碼方式發(fā)送出去。在設(shè)備端捕獲到UDP報文后,按照約定的方式進行解碼,即可獲得目標WiFi路由器的相關(guān)信息并實現(xiàn)聯(lián)網(wǎng)。
WiFi模塊AirKiss配網(wǎng)的基本流程如下:
1.WiFi模塊能夠以混雜模式sniffer運行;
2.用戶在手機上安裝微信客戶端或其他含有該協(xié)議的應(yīng)用;
3.WiFi模塊通過抓包獲取手機上發(fā)送的SSID和密碼,然后連接到無線WiFi網(wǎng)絡(luò)。