上一篇講了生活中的各個(gè)設(shè)備在無線網(wǎng)中所擔(dān)任的角色。這次就說說其內(nèi)部的鏈接過程。
SSID和BSSID
首先在說鏈接過程之前,先解釋下這兩個(gè)技術(shù)名詞。
SSID(Service Set Identifier服務(wù)集標(biāo)識(shí)符)也可以寫為ESSID,用來區(qū)分不同的網(wǎng)絡(luò),最多可以有32個(gè)字符,無線網(wǎng)卡設(shè)置了不同的SSID就可以進(jìn)入不同網(wǎng)絡(luò),SSID通常由AP或無線路由器廣播出來,通過XP自帶的掃描功能可以查看當(dāng)前區(qū)域內(nèi)的SSID。出于安全考慮可以不廣播SSID,此時(shí)用戶就要手工設(shè)置SSID才能進(jìn)入相應(yīng)的網(wǎng)絡(luò)。簡單說,SSID就是一個(gè)局域網(wǎng)的名稱,只有設(shè)置為名稱相同SSID的值的電腦才能互相通信。
SSID號(hào)實(shí)際上有點(diǎn)類似于有線的廣播或組播,他也是從一點(diǎn)發(fā)向多點(diǎn)或整個(gè)網(wǎng)絡(luò)的。一般無線網(wǎng)卡在接收到某個(gè)路由器發(fā)來的SSID號(hào)后先要比較下是不是自己配置要連接的SSID號(hào),如果是則進(jìn)行連接,如果不是則丟棄該SSID廣播數(shù)據(jù)包。
BSSID 是指站點(diǎn)的 MAC 地址,(STA)在一個(gè)接入點(diǎn),(AP)在一個(gè)基礎(chǔ)架構(gòu)模式, BSS 是由 IEEE 802.11-1999 無線局域網(wǎng)規(guī)范定義的。這個(gè)區(qū)域唯一地定義了每個(gè) BSS 。在一個(gè) IBSS 中,BSSID 是一個(gè)本地管理的 IEEE MAC 地址,從一個(gè) 46 位的任意編碼中產(chǎn)生。地址的個(gè)體/組位被設(shè)置為 0 。通用/本地地址位被設(shè)置為 1 。
將你手機(jī)的wifi打開,等待一段時(shí)間的掃描,你就能看到環(huán)境中的Wifi無線的SSID。BSSID就是指你設(shè)備的物理地址,這一點(diǎn)稍后再展開。
電腦的物理地址:
STA鏈接過程
連接三步驟
- 掃描(Probe Request、Probe Response)
- 認(rèn)證(Authentication)
- 關(guān)聯(lián)(Association Request、Association Response)
掃描階段
STA 發(fā)送 Probe Req 幀,攜帶 SSID 表明欲加入的網(wǎng)絡(luò),攜帶 Supported Rates 表明自身的能力。
AP 回復(fù) Probe Rsp 幀,這是 AP 的義務(wù),(AP 允許此 STA 連接的情況下)也攜帶 Supported Rates 表明自身的能力。
作用:STA 獲取 AP 的能力,決定要不要加入該網(wǎng)絡(luò);AP 獲取 STA 能力,并根據(jù)自身情況決定要不要讓該 STA 加入自身網(wǎng)絡(luò)。
打個(gè)比方:STA 好比應(yīng)聘者, AP 好比公司。應(yīng)聘者投簡歷表明自己想要進(jìn)入哪家公司,同時(shí)簡歷上面寫上自己的能力。公司收到簡歷后,考慮還需不需要招人以及該應(yīng)聘者能力情況,決定要不要準(zhǔn)備招收該應(yīng)聘者。如果準(zhǔn)備招收,則公司也將自身的一些能力情況介紹給該應(yīng)聘者,畢竟雙向選擇嘛。如果決定不接收,則回復(fù)拒絕,當(dāng)然公司會(huì)稍微委婉點(diǎn):回去等通知。
認(rèn)證階段
STA 收到 Probe Rsp 幀,決定要不要加入此網(wǎng)絡(luò),若決定加入,則發(fā)送 Auth 幀進(jìn)行身份認(rèn)證,否則流程接收。
STA 在 Auth 包中表明認(rèn)證算法類型,0:Open System,1:Shared Key。
Shared Key 方式即代表使用 WEP 加密方式,Open System 方式即代表使用 TKIP/WPA/WPA2 方式。
使用 Shared Key 方式,是真實(shí)的身份認(rèn)證過程,Auth 共有 4 步驟:
Auth seq#1:由 STA 發(fā)起認(rèn)證請(qǐng)求,攜帶認(rèn)證算法類型:Shared Key
Auth seq#2:AP 回復(fù)一個(gè)挑戰(zhàn)明文(challenge text )
Auth seq#3:STA 使用預(yù)設(shè)密鑰對(duì)挑戰(zhàn)銘文進(jìn)行加密,然后發(fā)送給 AP
Auth seq#4:AP 收到后,使用密鑰對(duì)收到的消息進(jìn)行解密,如果解密成功且明文一致表示認(rèn)證成功,回復(fù) successful
使用 Open System 方式,表明真正的身份認(rèn)證放到 EAPOL 階段,所以 Auth 只有兩步驟:
Auth seq#1:由 STA 發(fā)起認(rèn)證請(qǐng)求,攜帶認(rèn)證算法類型:Open System
Auth seq#2:AP 直接回復(fù) successful,因?yàn)檎嬲纳矸菡J(rèn)證會(huì)放在 EAPOL 階段
關(guān)聯(lián)階段
STA 收到認(rèn)證通過報(bào)文后,決定要加入當(dāng)前網(wǎng)絡(luò),就會(huì)發(fā)送 Assoc Req 幀。指明要加入的網(wǎng)絡(luò)的類型、自己的 Listen Interval(聆聽間隔,即 STA 多久聆聽一次 Beacon 幀,以監(jiān)聽 TIM 信息)和一些能力信息。
AP 收到 Assoc Req 幀后,最終確認(rèn) STA 的 Listen Interval 自己能不能接受,能力信息是否匹配,如果一切 OK,回復(fù) Assoc Rsp 幀,攜帶 AID(Association ID) 和 successful 信息,表明關(guān)聯(lián)成功。否則,回復(fù) Assoc Rsp 幀,攜帶 failed 信息,表明關(guān)聯(lián)失敗,同時(shí) AP 也會(huì)從 mac table 中刪除此 STA。
接上個(gè)比方:如果應(yīng)聘者收到了 offer,并且也決定要去這家公司,則該應(yīng)聘者會(huì)去公司報(bào)到,同時(shí)攜帶自身體檢報(bào)告。公司接待該應(yīng)聘者,如果體檢報(bào)告不合格,公司最終也可以決定不接收該應(yīng)聘者。如果體檢報(bào)告合格,公司則會(huì)給該應(yīng)聘者辦理入職手續(xù),并且給該應(yīng)聘者分配一個(gè)工號(hào),從此該應(yīng)聘者便是公司的一員了。
EAPOL 階段
如果采用的是 Shared Key 方式,即 WEP 加密方式,認(rèn)證已在 Auth 階段完成,完成上述關(guān)聯(lián)階段即已正式加入網(wǎng)絡(luò),后續(xù)可以通過密鑰對(duì)消息加解密和 AP 進(jìn)行正常通信了。
如果采用的是 Open System 方式,即 TKIP/WPA/WPA2 方式,在 Auth 階段其實(shí)沒有進(jìn)行身份認(rèn)證的工作,在 Auth 階段就決定把身份認(rèn)證的工作放在當(dāng)前 EAPOL 階段了。所以此種方式下,要進(jìn)行 EAPOL 步驟,常見的就是 4-way handshake,當(dāng)然還有 2-way-handshake。
關(guān)于加密方式,放到后面的篇章去討論。所以,整個(gè)鏈接過程就是上述四個(gè)主要步驟。有條件的小伙伴可以用筆記本電腦,安裝上Wireshark軟件,利用自己手機(jī)作熱點(diǎn),讓筆記本鏈接上,就能看到整個(gè)的鏈接過程了。下一篇主要介紹,Wifi的發(fā)展歷程以及各個(gè)版本的區(qū)別。