1. 程式人生 > >WiFi 智慧配置方案的原理介紹

WiFi 智慧配置方案的原理介紹

前言

物聯網大行其道,WiFi 模組使用的也是越來越多,在沒有顯示屏的 WiFi 裝置上,要使得其能連線 AP,就需要具有 WiFi 智慧配置功能:

即通過手機等裝置傳送帶有 WiFi 帳號和密碼的資料包,WiFi 裝置通過一定的處理來提取帳號和密碼,使其獲取 AP 的帳號和密碼,繼而連線 AP。

方案

當 WiFi 裝置與無線 AP 沒有建立連線前,因無線 AP 有加密機制(eg: wpa2、wpa、wep),所以裝置無法從資料包的負載中提取有效資料。

既然 802.11 幀的資料負載加密了,我們可以從 802.11 幀的頭部和 802.11 幀的長度中尋找可利用的線索。

1. 802.11 幀頭部中的 Sequence Control 欄位


該欄位應用層無法修改,由系統內部自動維護,每傳送一幀資料,該欄位自動加 1。可以利用這個特性來判別資料幀的連續性。

2. 802.11 幀頭部中的 Address1,Address2,Address3 三個目的地址欄位
在 AP 模式下,三個地址欄位的含義為 源 MAC 地址、BSSID(AP MAC地址)、目的 MAC 地址,詳情請檢視另一篇博文的介紹(請點選這裡)。源 MAC 地址和 BSSID 應用層是不能修改的,但目的 MAC 地址是能夠修改的

3. 802.11 幀的長度
802.11 幀的資料負載雖然加密了,但是 WiFi 裝置在接收到 802.11 幀的時候能夠獲取該幀的資料長度,可以利用這個長度的變化來攜帶資料。

以上便是尋找到的線索,哪些能夠被應用層修改,哪些能夠被充分的利用起來。
所以通過以上的線索可以粗略的得出以下幾種可行的方案,具體實現那又是另外一碼事了。

方案一:
以廣播或者組播的方式進行傳送,利用 802.11 幀長度攜帶配置資料,以 802.11 幀頭部中的 Sequence Control 欄位做為配置資料前後關聯性的序列號

方案二
以廣播或者組播的方式進行傳送,利用 802.11 幀長度攜帶配置資料前後關聯性的序列號以及配置資料。

方案三
以組播的方式進行傳送,利用組播地址特性對組播 MAC 地址的後三個位元組進行控制來攜帶資料,體現在應用層就是把配置資料轉換成指定的組播 IP 地址進行組播發送,即每次傳送配置資料就轉換一次組播地址。

上圖一目瞭然,以下是該配置方案發送的組播包:
這裡寫圖片描述
從圖中可以看出:
目的 MAC 地址的第四個位元組,表徵的應該是配置資料的型別,諸如帳號或者密碼等型別;
目的 MAC 地址的第五個位元組,表徵的應該是配置資料的序列號;
目的 MAC 地址的第六個位元組,表徵的應該是配置的資料。

AP 熱點方案
本方案跟本博文介紹的無關,即 WiFi 裝置在智慧配置階段生成一個 AP 熱點,手持裝置連線該 AP 熱點之後,傳送需要接入的 AP 帳號和密碼。

總結

方案一 和 方案二 :難點在於 WiFi 裝置如何提取有效的配置資料,一個是識別哪些是配置資料幀,二個是接收到的配置資料幀中是否存在丟失的資料幀以及重複接收的資料幀

方案三 :手持裝置構造配置資料和 WiFi 裝置提取配置資料時,看上去比較簡單易行,配置可靠。利用組播 MAC 地址的後三個位元組中填充配置資料的前後關聯性的序列號和配置資料,一幀配置包可以攜帶三個有效位元組的資料,同時裝置端可以很好的利用組播 MAC 地址的前三個固定的值 01:00:5E,過濾一些無用幀。

AP 熱點方案 :是最可靠的方案,當環境無線網路非常擁堵時,前面幾種方案配置成功的概率會大大降低,配置速度也會變慢,而 AP 熱點方案不管環境無線網路如何擁堵,只要能夠正常通訊,就能夠配置成功。