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