術(shù)語
術(shù)語 | 英文 | 中文 |
---|---|---|
WLAN | Wireless Local Area Networks | 無線局域網(wǎng)絡(luò) |
Wi-Fi | 無意義(Hi-Fi 雙關(guān)) | 無線網(wǎng)絡(luò) |
WPA | Wi-Fi Protected Access | Wi-Fi 網(wǎng)絡(luò)安全存取 |
Wi-Fi Alliance | Wi-Fi Alliance | Wi-Fi 聯(lián)盟 |
MAC | media access control | - |
WPS(AOSS/QSS) | Wi-Fi Protected Setup | Wi-Fi 保護設(shè)置 |
PBC | Push Button Configuration | 按鈕配置 |
PIN | Personal Information Number | PIN 碼 |
UFD | USB Flash Device | 存儲在USB接口的閃存設(shè)備上的信息 |
NFC | Near Field Communication | 近距離無線通信(通過刷卡) |
AP | Access Point | (無線)接入點 / 基站 |
STA | Station | 站點 / 工作站 |
Wi-Fi P2P | Wi-Fi peer-to-peer | 點對點() |
Wi-Fi Direct | Wi-Fi 直連 | |
SSID | Service Set Identifier | 服務(wù)集標識(無線網(wǎng)絡(luò)名字) |
[wpa_supplicant | wpa_supplicant 后端 | wpa 請求者(ap, p2p) |
wpa_cli | wpa_supplicant 前端 | wpa 客戶端面 |
Beacon | Beacon | 信標幀 |
WEP | Wired Equivalent Privacy | 有線等效保密 |
WEP:
Wired Equivalency Protection,一種Wi-Fi連接的安全標準,類似的安全標準還包括下面的WPA,WPA2纳像。它可以使用64/128bit的ASCII/HEX(0-9,A-F)的Password飒炎,它的密鑰是由Password和一個IV(初始化向量)組成刹勃,加密算法是stream cipher RC4兑凿,并使用 CRC-32校驗和確保完整性。加密解密過程如下:AP發(fā)送的數(shù)據(jù)包(包括IV和加密過的數(shù)據(jù))–>無線客戶端收到此數(shù)據(jù)包–>提取其中的IV旅挤,用于和本地的Password形成密鑰–>解密數(shù)據(jù)包。它有兩種鑒權(quán)方式:Open System, Shared Key.
Open System:
這種鑒權(quán)方式不需要客戶端提供任何credentials伞鲫,因此谦铃,實際上任何客戶端都可以嘗試與AP進行鑒權(quán)和連接,這其中并不存在實際意義上的鑒權(quán)榔昔。鑒權(quán)連接結(jié)束驹闰,AP用WEP密鑰加密數(shù)據(jù)瘪菌,這時,客戶端就需要正確的Password形成密鑰來解密
Shared Key:
通過四次握手并使用WEP加密來完成鑒權(quán)嘹朗。詳細區(qū)別請參閱:opensystem_vs_sharedkey.txt
WPA:
Wi-Fi Protected Access师妙,實現(xiàn)了802.11i的大部分標準,它和下面的WPA2有兩種鑒權(quán)方式,一是使用802.1x屹培,一種是使用Pre-Shared Key
WPA2:
Wi-Fi Protected Access默穴,完全實現(xiàn)802.11i標準
WPA個人版/WPA-PSK:
使用Pre-Shared Key鑒權(quán)方式的WPA,設(shè)計給負擔(dān)不起 802.1X 驗證服務(wù)器的成本和復(fù)雜度的家庭和小型公司網(wǎng)絡(luò)使用褪秀。同WPA2個人版/WPA2-PSK
WPA企業(yè)版:
使用802.1x鑒權(quán)方式給WPA蓄诽。同WPA2企業(yè)版
802.1X:
802.1協(xié)議族中的一部分,它是一種基于端口的網(wǎng)絡(luò)接入控制機制媒吗,它給希望接入LAN的設(shè)備提供了一種鑒權(quán)機制仑氛,它是基于EAP的.擴展閱讀:http://en.wikipedia.org/wiki/802.1x
EAP:
Extensible Authentication Protocol,一種普遍使用的認證機制,它是一個認證框架闸英,并不是一種特殊的認證機制锯岖。EAP提供一些公共的功能,并且允許協(xié)商所希望的認證機制甫何。這些機制被叫做EAP方法出吹,現(xiàn)在大約有40種不同的方法。當EAP被基于802.1x的網(wǎng)絡(luò)接入設(shè)備(諸如802.11a/b/g 辙喂,無線接入點)調(diào)用時捶牢,現(xiàn)代的EAP方法可以提供一個安全認證機制,并且在用戶和網(wǎng)絡(luò)接入服務(wù)器之間協(xié)商一個安全的PMK(Pairwise Master Key)巍耗。該PMK可以用于使用TKIP和AES加密的無線會話叫确。在Pre-Shared Key驗證方式中,PMK=PSK芍锦。
PMKSA:
PMK Security Association竹勉,參考:pmksa.txt
TKIP:
Temporal Key Integrity Protocol,數(shù)據(jù)傳輸加密算法(類似于WEP加密的 RC4 算法)
AES:
Advanced Encryption Standard娄琉,數(shù)據(jù)傳輸加密算法(類似于WEP加密的 RC4 算法)
CCMP:
Counter Mode with Cipher Block Chaining Message Authentication Code Protocol次乓,數(shù)據(jù)完整性編碼校驗算法(類似于WEP中 CRC32 算法)
MIC:
數(shù)據(jù)完整性編碼校驗算法(類似于WEP中 CRC32 算法)
總結(jié)Wifi連接過程大致如下:
客戶端與AP的鑒權(quán),與AP建立連接孽水,若使用加密票腰,AP發(fā)送并加密數(shù)據(jù)包驱闷,無線客戶端接收并解密數(shù)據(jù)包者娱。密碼學(xué)中有兩個概念:加密算法和密鑰琉历,通過這兩個東西來解加密過的數(shù)據(jù)包。 密鑰析恢,對于WEP咙轩,WPA/WPA2個人版來說眶明,總是由一個Pre-Shared Key惩坑,加上其他元素,經(jīng)過一系列過程產(chǎn)生而來朝扼,這個Pre-shared Key就是我們平時接入Wi-Fi時需要輸入的密碼赃阀。對于WPA/WPA2企業(yè)版,這個Pre-Shared Key叫做PMK擎颖,形成密鑰的過程原理相似榛斯。 目前,EAP方法基本上是與802.1x一起使用
目前Wi-Fi的加密模式主要有:WEP搂捧,WPA驮俗,WPA2-PSK。
2.4G 與 5G
隨著無線設(shè)備數(shù)的增加. 2.4GWi-Fi 已滿足不了人們的日常需求, 5GWi-Fi應(yīng)運而生, 先看下標準定義
IEEE802.11協(xié)議對2.4GHz頻段的規(guī)定:
頻率范圍:2.4GHz~2.4835GHz允跑;14個信道王凑,信道帶寬20M(相鄰多個信道頻率重疊)。下面你看到的頻率范圍包含22M吮蛹,是因為有2M被用作強制隔離頻帶,不參與數(shù)據(jù)傳輸拌屏。
在中國潮针,2.4G這條高速公路上一共有13條車道(信道)。
雖然一共有13條車道倚喂,但由于資源有限每篷。所以,不同車道之間端圈,便會存在共用“路面”的問題焦读。13條車道中,最多只有3條車道可以不相互影響舱权,例如1矗晃、6、11車道互不相互干擾宴倍。
IEEE802.11協(xié)議對5GHz頻段的規(guī)定:
頻率范圍:5.150-5.250GHz张症、5.250-5.350GHz、5.470-5.725GHz鸵贬、5.745-5.825GHz俗他;共201個信道,信道帶寬40M/80M/160M(可選擇阔逼,相鄰多個信道頻率重疊)兆衅。
雖然中國5G車道只有 4 個,但每個相鄰的車道間距有20MHz(2.4G車道間距是5MHz),在20MHz時羡亩,車道之間不會有干擾摩疑。如果為了提升速率,把兩個20MHz的車道合在一起夕春,就形成了40MHz未荒。以此類推,中國5G頻段最多可以提供80MHz的超大車道及志,所以5G的速率自然快樂片排。
wpa_supplicant
wpa_supplicant本是開源項目源碼,被谷歌修改后加入android移動平臺速侈,它主要是用來支持WEP率寡,WPA/WPA2和WAPI無線協(xié)議和加密認證的,而實際上的工作內(nèi)容是通過socket(不管是wpa_supplicant與上層還是wpa_supplicant與驅(qū)動都采用socket通訊)與驅(qū)動交互上報數(shù)據(jù)給用戶倚搬,而用戶可以通過socket發(fā)送命令wpa_supplicant調(diào)動驅(qū)動來對WiFi芯片操作冶共。
簡單的說,wpa_supplicant就是WiFi驅(qū)動和用戶的中轉(zhuǎn)站外加對協(xié)議和加密認證的支持每界。
wpa_supplicant是支持WPA和WPA2(IEEE 802.11i / RSN)的Linux捅僵,BSD,Mac OS X和Windows的WPA請求者眨层。它適用于臺式機/筆記本電腦和嵌入式系統(tǒng)庙楚。請求者是在客戶站中使用的IEEE 802.1X / WPA組件。
它實現(xiàn)與WPA身份驗證器的密鑰協(xié)商趴樱,并控制WLAN驅(qū)動程序的漫游和IEEE 802.11身份驗證/關(guān)聯(lián)馒闷。wpa_supplicant被設(shè)計成一個在后臺運行的“守護程序”程序,并作為控制無線連接的后端組件叁征。
wpa_supplicant支持單獨的前端程序纳账,包含基于文本的前端(wpa_cli)和GUI(wpa_gui)。
wifi 的 concurrent mode
所謂wifi的共存模式捺疼,有以下幾種:
- station mode + station mode
- station mode + ap mode
- station mode + p2p mode
- p2p mode + ap mode
目前android自從JB version后疏虫,就開始支持station + p2p的共存,但其他的共存模式目前在android上都還未支持∑『簦現(xiàn)在市面上的wifi驅(qū)動主要是支持前三種共存议薪,目前第四種共存模式,暫未見到媳友;而station+ap mode,目前我們有在BXXX項目中使用斯议,使用場景就是:
做Ap供其他的mid或phone來連接,同時自己又做station mode來連接外面可以上網(wǎng)的路由器醇锚,這樣在mid或phone上哼御,就可以在訪問BXXX的同時坯临,還可以上網(wǎng)。BXXX自己當然也可以上網(wǎng)了恋昼。
但需要主要的是看靠,以上各模式中的station,ap液肌,p2p在驅(qū)動中都需要對應(yīng)的網(wǎng)絡(luò)接口的挟炬,所以如果要支持concurrent mode,你的驅(qū)動insmod后嗦哆,必須吐出兩個網(wǎng)絡(luò)接口才行谤祖,如果只有一個網(wǎng)絡(luò)接口,那肯定是不支持concurrent mode的老速,見下圖粥喜,加載驅(qū)動后就會出現(xiàn)wlan0,p2p0兩個網(wǎng)絡(luò)接口橘券。
另外需要注意额湘,這兩個網(wǎng)絡(luò)接口,都是在驅(qū)動中虛擬出來的旁舰,共享同一個物理硬件锋华,因此他們也共享物理硬件所能達到的throughput,由于他們共同一個物理硬件箭窜,所以wlan0和p2p0必須在同一個channel上毯焕,因此跟wlan0和p2p0連接的網(wǎng)絡(luò)都在同一個channel上,這樣這個大網(wǎng)絡(luò)里所有的設(shè)備共同參與這個信道的載波偵聽/沖突檢測绽快,即同一時間只能有一個站在空氣中發(fā)送無線包芥丧。如果剛開始出現(xiàn)ap/p2p跟wlan0的channel不一致的情況紧阔,那一般都是ap/p2p斷開之前的鏈接坊罢,重新調(diào)頻到wlan0的信道建立新的鏈接。
wlan0擅耽,p2p0都是在linux下的wifi驅(qū)動中創(chuàng)建的活孩,譬如進來一個數(shù)據(jù)包是根據(jù)什么標準來判斷,該路由到wlan0還是該路由到p2p0乖仇,
這是一個很趣的問題憾儒;另外wlan0接口和p2p0接口他們的發(fā)送數(shù)據(jù)包是如何調(diào)度和管理的,也是一個值得關(guān)注的問題乃沙。
2:station mode + ap mode
本節(jié)介紹station+ap的concurrent mode是如何建立的起趾。先上一張整體的框架圖:
在調(diào)試階段,為了驗證ap+sta是否正常工作警儒,我們最好是step by step的先驗證sta mode是ok的训裆,然后驗證ap
mode是ok的眶根,最后才是sta+ap mode是否ok。
#define WPA_DRIVER_FLAGS_P2P_CONCURRENT 0x00000200 //Wifi驅(qū)動支持STA和P2P的并發(fā)運行