摘? 要: 以IEEE802.11協(xié)議教學(xué)為例,闡述了計(jì)算機(jī)網(wǎng)絡(luò)原理教學(xué)過程中如何使用Wireshark協(xié)議分析軟件,讓學(xué)生直觀地理解網(wǎng)絡(luò)協(xié)議原理。簡略地介紹了IEEE802.11協(xié)議,以及無線鏈路層幀的基本捕獲方法。在分析幀結(jié)構(gòu)的基礎(chǔ)上,展示了AP信標(biāo)幀、用戶認(rèn)證和關(guān)聯(lián)過程的相關(guān)鏈路層幀的組成。通過觀察主機(jī)和AP熱點(diǎn)之間的數(shù)據(jù)交換過程,幫助學(xué)生學(xué)習(xí)AP熱點(diǎn)發(fā)現(xiàn)、認(rèn)證和關(guān)聯(lián)的基本原理。實(shí)踐表明,在課堂教學(xué)中使用協(xié)議分析工具能加強(qiáng)學(xué)生對(duì)協(xié)議的理解,同時(shí)提高教學(xué)效果。
關(guān)鍵詞: 教學(xué); Wireshark; IEEE802.11; 認(rèn)證; 關(guān)聯(lián)
中圖分類號(hào):TP393.1? ? ? ? ? 文獻(xiàn)標(biāo)志碼:A? ? ?文章編號(hào):1006-8228(2019)04-79-04
Abstract: Taking the teaching of IEEE802.11 protocol as an example, this paper expounds how to use Wireshark protocol analysis software in the teaching of computer network principle, letting students understand the network protocol principle intuitively. The IEEE802.11 protocol and the capture method of wireless link layer frame, including AP beacon frame, user authentication and association, and the composition of related link layer frame are briefly introduced. Practice shows that the use of protocol analysis tools in classroom teaching can enhance students' understanding of the protocol and also improve the teaching effect.
Key words: teaching; Wireshark; IEEE802.11; authentication; association
0 引言
Wifi(IEEE802.11)網(wǎng)絡(luò)已經(jīng)是Internet的重要組成部分[1-2]。理解IEEE802.11的工作原理是計(jì)算機(jī)網(wǎng)絡(luò)學(xué)習(xí)過程中的重要一環(huán)。但是在教學(xué)過程中,網(wǎng)絡(luò)協(xié)議的講解有別于計(jì)算機(jī)語言類和其他傳統(tǒng)專業(yè)課程,沒有直觀、形象的知識(shí)點(diǎn)介紹或者軟件操作,不能讓學(xué)生有比較具體的認(rèn)識(shí)。本文嘗試將網(wǎng)絡(luò)報(bào)文分析技術(shù)引入課堂,使學(xué)生在學(xué)習(xí)計(jì)算機(jī)網(wǎng)絡(luò)內(nèi)容時(shí)有一個(gè)較為直觀的認(rèn)識(shí)。根據(jù)教學(xué)規(guī)律可知,學(xué)生在可視化環(huán)境中接收到的知識(shí)印象是深刻的。因此,使用報(bào)文分析技術(shù)可以幫助學(xué)生深刻理解IEEE802.11[3]的工作過程。
1 協(xié)議分析軟件與技術(shù)
協(xié)議分析軟件是一種利用計(jì)算機(jī)網(wǎng)絡(luò)接口,捕獲流經(jīng)該網(wǎng)絡(luò)接口的數(shù)據(jù)報(bào)的應(yīng)用程序。這種技術(shù)被廣泛應(yīng)用于網(wǎng)絡(luò)的故障檢測(cè)和管理維護(hù)。例如Wireshark[5]就是一個(gè)非常方便的網(wǎng)絡(luò)分析工具。利用該工具可以捕捉網(wǎng)絡(luò)中的數(shù)據(jù)包,通過分析數(shù)據(jù)包為用戶提供關(guān)于網(wǎng)絡(luò)和相關(guān)協(xié)議的各種信息。
Wireshark使用WinPCAP網(wǎng)絡(luò)函數(shù)庫來進(jìn)行數(shù)據(jù)包的捕獲。它的主要優(yōu)勢(shì)是:安裝方便;具有簡單易用的界面;功能豐富。
但是無線網(wǎng)卡的工作方式有別于有線網(wǎng)卡,它有多種工作模式[4]。例如主機(jī)和Wifi連接的時(shí)候,它的無線網(wǎng)卡工作于被管理模式(Managed Mode);當(dāng)主機(jī)開啟熱點(diǎn),給朋友提供Wifi服務(wù)的時(shí)候,它工作于主模式(Master Mode)。另外還有兩種類型的模式AdHoc模式和監(jiān)聽模式(Monitor Mode)或RFMON (Radio Frequency MONitor)模式。
如果使用一般的筆記本電腦無線網(wǎng)卡進(jìn)行抓包,會(huì)發(fā)現(xiàn)不能捕獲802.11數(shù)據(jù)流。這是由于Wireshark此時(shí)處理的都是鏈路層以上的數(shù)據(jù)。理解802.11協(xié)議的工作過程,需要捕獲鏈路層及以下的802.11幀數(shù)據(jù),需要網(wǎng)卡開啟監(jiān)聽模式。監(jiān)聽模式,是指無線網(wǎng)卡可以接收所有經(jīng)過它的數(shù)據(jù)流的工作方式。而在Windows環(huán)境下開啟無線網(wǎng)卡的監(jiān)聽模式需要特殊的硬件和驅(qū)動(dòng)程序,例如配置AirPCap工具。另外一個(gè)方法是在一些支持監(jiān)聽模式的操作系統(tǒng)環(huán)境中進(jìn)行802.11幀捕獲。例如在MAC系統(tǒng)中,可以開啟支持網(wǎng)卡監(jiān)聽模式,和Wireshark一起完成802.11數(shù)據(jù)幀的捕獲實(shí)驗(yàn)。如果沒有MAC系統(tǒng),可以使用Linux系統(tǒng)的發(fā)布版本進(jìn)行相同的實(shí)驗(yàn)。
2 IEEE802.11協(xié)議分析教學(xué)案例
2.1 教學(xué)思路
在介紹802.11協(xié)議基本原理以后,使用Wireshark報(bào)文分析軟件現(xiàn)場(chǎng)捕獲信標(biāo)幀、認(rèn)證過程和關(guān)聯(lián)過程產(chǎn)生的數(shù)據(jù)幀。讓學(xué)生直觀的觀察到主機(jī)和AP熱點(diǎn)之間的數(shù)據(jù)交換過程,理解AP熱點(diǎn)發(fā)現(xiàn)、認(rèn)證和關(guān)聯(lián)的基本原理。
2.2 IEEE802.11協(xié)議工作原理簡介
IEEE802.11協(xié)議[3]是802.11a、802.11b、802.11g和802.11bn等的統(tǒng)稱。這些標(biāo)準(zhǔn)的共同特征是它們都使用相同的介質(zhì)訪問控制協(xié)議CSMA/CA,都具有類似的鏈路層幀格式、都允許使用“基礎(chǔ)設(shè)施模式”和“自組織模式”。
無線路由通常指配備了無線AP的路由器。無線路由在安裝時(shí)管理員會(huì)指定這個(gè)設(shè)備的名字,或者叫服務(wù)集標(biāo)識(shí)(SSID,Service Set Identifier)。當(dāng)主機(jī)在“查看可用的無線網(wǎng)絡(luò)時(shí)”,就會(huì)顯示一定范圍內(nèi)所有AP的SSID。
802.11標(biāo)準(zhǔn)要求每個(gè)AP周期性地發(fā)送信標(biāo)幀(Beacon Frame),信標(biāo)幀包含AP的SSID和MAC地址。這是“查看可用的無線網(wǎng)絡(luò)時(shí)”,就會(huì)顯示無線網(wǎng)絡(luò)的一個(gè)原因。大部分無線路由在用戶請(qǐng)求關(guān)聯(lián)的時(shí)候會(huì)進(jìn)行認(rèn)證。802.11有幾種認(rèn)證方式:開放系統(tǒng)認(rèn)證、共享密鑰認(rèn)證、WPA(WPA和WPA2)等等。認(rèn)證通過以后,AP和無線主機(jī)才會(huì)進(jìn)行關(guān)聯(lián),分配IP地址。
802.11數(shù)據(jù)幀與以太網(wǎng)幀有許多不同,它包含了許多特定的用于無線鏈路的字段。它的幀結(jié)構(gòu)如圖1所示,在圖1中每個(gè)字段上面的數(shù)字代表該字段的長度,單位是字節(jié)。在幀控制字段中,每個(gè)字段上的數(shù)字代表字段的比特長度。
802.11幀其實(shí)是從Preamble前導(dǎo)標(biāo)識(shí)開始的,用于接收設(shè)備識(shí)別802.11幀。由圖1可以看到,一個(gè)802.11幀基本由MAC頭部、幀體部分和CRC校驗(yàn)組成。
在802.11協(xié)議基礎(chǔ)模式中當(dāng)一個(gè)無線主機(jī)需要發(fā)送幀時(shí),使用CSMA/CA機(jī)制協(xié)調(diào)信道的訪問。首先檢測(cè)信道是否空閑。如果檢測(cè)到信道空閑,則隨機(jī)等待一段時(shí)間后,才送出數(shù)據(jù)。如果接收端正確收到此幀,則經(jīng)過一段時(shí)間間隔后,向發(fā)送端返回確認(rèn)幀ACK。當(dāng)發(fā)送端收到確認(rèn)幀,才確定數(shù)據(jù)正確傳輸。如果檢測(cè)到信道繁忙。主機(jī)使用二進(jìn)制指數(shù)退避算法調(diào)整競(jìng)爭窗口(再次競(jìng)爭的等待時(shí)間),在競(jìng)爭窗口關(guān)閉后再次嘗試發(fā)送。802.11也可以使用RTS/CTS( Request To Send/Clear To Send)模式。
2.3 信標(biāo)幀的捕獲
無線主機(jī)掃描信道和監(jiān)聽信標(biāo)幀的過程稱為被動(dòng)掃描。無線主機(jī)也能夠執(zhí)行主動(dòng)掃描,這是通過向位于無線主機(jī)范圍內(nèi)的所有AP廣播探測(cè)幀完成的。AP用響應(yīng)幀應(yīng)答無線主機(jī)的探測(cè)請(qǐng)求。無線主機(jī)則在響應(yīng)的AP中選擇一個(gè)AP與之關(guān)聯(lián)。在家用無線路由中只要進(jìn)行設(shè)置,把SSID廣播關(guān)閉,AP就不再會(huì)廣播信標(biāo)幀。這時(shí),只有知道這個(gè)無線路由SSID的用戶才可以連接。Wireshark信標(biāo)幀的顯示過濾器如下:
wlan.fc.type == 0 && wlan.fc.subtype == 8
圖2顯示了一個(gè)信標(biāo)幀的詳細(xì)信息。大家若打開Wireshark進(jìn)行數(shù)據(jù)包捕獲,會(huì)發(fā)現(xiàn)這種類型的數(shù)據(jù)包太多了。從數(shù)據(jù)包的Info字段也非常容易就能發(fā)現(xiàn)Beacon frame關(guān)鍵字,從而判定這是一個(gè)信標(biāo)幀。信標(biāo)幀包含的重要信息是SSID,AP支持的傳輸速率、信道等信息。從圖中不難發(fā)現(xiàn),這是一個(gè)Tenda公司的無線路由器,支持的最高傳輸速率為54Mbps。
2.4 用戶認(rèn)證過程
802.11有開放系統(tǒng)認(rèn)證和共享密鑰認(rèn)證兩種方式。IEEE制定的802.11i協(xié)議主要解決WEP(Wired Equivalent Privacy)加密機(jī)制缺乏機(jī)密性的問題,包含WPA(Wi-Fi Protected Access)和WPA2。Wireshark認(rèn)證幀的顯示過濾器如下:
wlan.fc.type == 0 && wlan.fc.subtype == 11
開放式系統(tǒng)認(rèn)證過程中,無線主機(jī)發(fā)送認(rèn)證請(qǐng)求,AP會(huì)判斷主機(jī)是否通過認(rèn)證,然后決定是否允許接入。申請(qǐng)主機(jī)發(fā)送Authentication幀,認(rèn)證序號(hào)為0x01。認(rèn)證者收到后,先是反饋表示接收正確的ACK幀。然后同樣發(fā)送Authentication報(bào)文,認(rèn)證序號(hào)為0x02,并在Status code字段置0,表示認(rèn)證成功。一般在開放式系統(tǒng)認(rèn)證中,所有請(qǐng)求都會(huì)通過。當(dāng)AP不需要對(duì)訪問的無線主機(jī)進(jìn)行控制時(shí)才會(huì)采用此類認(rèn)證。
與開放式系統(tǒng)認(rèn)證相比,共享密鑰認(rèn)證提供了更高的安全級(jí)別。共享密鑰需要無線主機(jī)和AP配置相同的密鑰,同時(shí)支持WEP協(xié)議。表1顯示了開放系統(tǒng)認(rèn)證過程中的802.11幀。
2.5 用戶關(guān)聯(lián)過程
無線主機(jī)要接入無線網(wǎng)絡(luò),必須與特定的AP建立關(guān)聯(lián)。當(dāng)主機(jī)通過指定SSID選擇無線網(wǎng)絡(luò),并經(jīng)過AP認(rèn)證后,就會(huì)立即向AP發(fā)送關(guān)聯(lián)請(qǐng)求(Association Request)幀。AP會(huì)對(duì)關(guān)聯(lián)請(qǐng)求幀攜帶的主機(jī)信息進(jìn)行檢測(cè),最終確定該主機(jī)是否具備接入網(wǎng)絡(luò)的能力。并向主機(jī)回復(fù)關(guān)聯(lián)響應(yīng)(Association Response)幀以告知鏈路是否關(guān)聯(lián)成功。通常,無線主機(jī)只能與一個(gè)AP建立關(guān)聯(lián)鏈路。且關(guān)聯(lián)請(qǐng)求總是由無線主機(jī)發(fā)起。
關(guān)聯(lián)操作一般有二個(gè)步驟。其中所用到的兩個(gè)幀:關(guān)聯(lián)幀及響應(yīng)幀被歸類為關(guān)聯(lián)管理幀。關(guān)聯(lián)過程如下:
⑴ AP完成身份驗(yàn)后無線主機(jī)發(fā)送關(guān)聯(lián)請(qǐng)求幀。未經(jīng)過身份驗(yàn)證的無線主機(jī)會(huì)從AP處收到一個(gè)Deauthentication響應(yīng)幀。
⑵ AP隨后會(huì)對(duì)關(guān)聯(lián)請(qǐng)求進(jìn)行處理,返還響應(yīng)幀。
3 結(jié)束語
在計(jì)算機(jī)網(wǎng)絡(luò)課程的教學(xué)中,將協(xié)議分析軟件引入教學(xué)過程,是數(shù)據(jù)包的流動(dòng)過程變得清晰可見。這種方法解決了傳統(tǒng)教學(xué)內(nèi)容抽象、難以理解、無法操作和缺乏實(shí)踐的問題。本文結(jié)合Wireshark協(xié)議分析工具,介紹了IEEE802.11鏈路層幀的一般捕獲技術(shù),包括AP發(fā)現(xiàn)、認(rèn)證和用戶關(guān)聯(lián)的過程。直觀的向?qū)W生展示了IEEE802.11協(xié)議的工作原理,讓學(xué)生對(duì)于Wifi網(wǎng)絡(luò)技術(shù)有了更深入的理解。
參考文獻(xiàn)(References):
[1] J.F.Kurose,K.W.Ross著,陳鳴譯.計(jì)算機(jī)網(wǎng)絡(luò):自頂向下方法(第6版)[M].機(jī)械工業(yè)出版社,2014.
[2] A.S.Tanenbaum, D.J.Wetherall著,嚴(yán)偉,潘愛民譯.計(jì)算機(jī)網(wǎng)絡(luò)(第5版)[M].清華大學(xué)出版社,2012.
[3] IEEE802.11, http://www.ieee802.org/11/[OL].
[4] C.Sanders著,諸葛建偉,陳霖,許偉林譯.Wireshark數(shù)據(jù)包分析實(shí)戰(zhàn)(第2版)[M].人民郵電出版社,2013.
[5] https://www.wireshark.org[OL].
[6] 徐建編著.計(jì)算機(jī)組網(wǎng)及Wireshark實(shí)驗(yàn)教程[M].西安電子科技大學(xué)出版社,2018.