摘要:無線局域網(wǎng)作為一種無線接入技術得到了迅速的發(fā)展,但是它的安全機制卻存在很大的安全隱患。如何保證無線局域網(wǎng)的安全性已成為目前重要的研究課題。其中,認證機制是安全機制的重要內(nèi)容。無線局域網(wǎng)采用IEEE 802.1x協(xié)議認證。本文針對IEEE802.1x協(xié)議容易受到中間人攻擊和會話截取的缺陷,提出了協(xié)議的改進方案。主要在現(xiàn)有的IEEE802.1x協(xié)議的基礎上增加客戶端和接入點AP之間的相互認證。
關鍵詞:無線局域網(wǎng);IEEE 802.1x;EAP;雙向認證
中圖分類號:TP393文獻標識碼:A文章編號:1009-3044(2008)08-00ppp-0c
1 IEEE802.1x協(xié)議的缺陷
無線局域網(wǎng)(Wireless Local Area Network,WLAN)是計算機網(wǎng)絡與無線通信技術相結合的產(chǎn)物,是在不采用傳統(tǒng)電纜線的同時,提供傳統(tǒng)有線局域網(wǎng)的所有功能。無線局域網(wǎng)在為用戶帶來方便的同時,也存在著許多安全上的問題,主要是易受竊聽。
無線局域網(wǎng)的安全威脅除了系統(tǒng)問題外,一般是通過認證、加密技術來提高其安全性。而認證方面是采用IEEE802.1x標準下的共享密鑰認證方式,但這種認證方式的主要缺陷是客戶端和AP接入點之間缺乏相互認證。
圖1所示的示意圖說明了攻擊者是如何利用IEEE802.1缺陷,通過假裝合法請求用戶來訪問網(wǎng)絡的。
圖1 IEEE802.1x協(xié)議缺陷示意圖
從圖中1可以看到,當攻擊者等待合法客戶端成功地完成認證之后,他將偽造連接的管理幀向合法用戶端發(fā)送斷開關聯(lián)消息(disassociate message )。當合法客戶端收到此消息,進入斷開關聯(lián)狀態(tài)時,而接入點AP仍然處于認證狀態(tài),攻擊者這時就可以利用合法客戶端的MAC地址來獲得對網(wǎng)絡的訪問權。
本文針對IEEE802.1x協(xié)議的這種缺陷,提出了一種新的改進方案,即通過使用一個RADIUS服務器來實現(xiàn)客戶端和AP之間的相互認證。
2 IEEE802.1x協(xié)議認證改進方案的參數(shù)設置
2.1 IEEE802.1x協(xié)議認證工作流程
IEEE802.1x協(xié)議認證工作過程分為六個步驟:
第一步:客戶端向AP接入點發(fā)送連接請求消息EAP-start,開始啟動認證過程。
第二步:AP接入點收到客戶端的連接請求消息EAP-start后,回復EAP-request消息,要求客戶端提供身份信息。
第三步:客戶端把用戶的身份信息通過EAP-response消息告知AP接入點。
第四步:AP接入點把客戶端送上來的EAP-response消息經(jīng)過封包處理成Access-Request消息后轉(zhuǎn)發(fā)給認證服務器(這里通常是RADIUS服務器)。
第五步:RADIUS認證服務器根據(jù)特定的上層認證方式(如EAP-TLS,EAP-PEAP等等)回復Access-Challenge(里邊包含了EAP-request)消息給AP接入點,AP接入點把這個消息轉(zhuǎn)發(fā)給客戶端。
第六步:如果客戶端收到認證服務器經(jīng)過AP接入點轉(zhuǎn)發(fā)的認證成功的EAP-success消息,此時AP接入點會將其受控邏輯端口打開,這樣客戶端就可以正常接入網(wǎng)絡,發(fā)送有關的消息。
2.2 IEEE802.1x協(xié)議認證改進方案的參數(shù)設置
本文的改進方案是在上述IEEE802.1x認證步驟的基礎上,對其中的第二步和第六步進行相應的改進,并添加新的第七步。
第二步驟的改進方案為:AP接入點收到客戶端的連接請求消息EAP-start后,回復EAP-Request/Identity消息,要求客戶端提供身份信息,標準的EAP-Request/Identity消息的Type-Data域是空的。在本文的改進方案里,Type-Data域?qū)⑸訋蓚€信息:一是AP接入點的序列號,用于標識AP接入點的唯一邏輯標識;二是Lasttime ,即AP接入點最后一次發(fā)送給請求連接的客戶端斷開連接的時間。改進后的Type-Data域如表1所示:
表1 改進后的Type-Data域
其中AP Serial ID域為3個字節(jié)(Octets),Lasttime域是標準的時間戳,為8個字節(jié)(Octets),這樣就同時可以保持該消息的32位對齊。
同樣,經(jīng)改進后的EAP-Request/Identity消息格式如表2所示:
表2 改進后的EAP-Request/Identity消息格式
客戶端收到AP接入點改進后的EAP-Request/Identity消息后,將AP接入點信息保存到AP信息表。
第六步驟的改進方案為:如果客戶端已經(jīng)在RADIUS認證服務器上通過之前的認證,RADIUS服務器并不立刻發(fā)送認證成功的EAP-success消息給AP接入點,而是產(chǎn)生一個128位的偽隨機數(shù)發(fā)給AP接入點,此時AP接入點也不將其受控邏輯端口打開,而是繼續(xù)進行再次認證。經(jīng)過一系列的交互步驟,實現(xiàn)了客戶端對AP接入點的身份認證。因而修改后的第六步驟可以有效阻止EAP上層協(xié)議采用單向認證的中間人攻擊。
添加新的第七步驟方案為:當上述改進后的認證步驟完成后,AP接入點將發(fā)送EAP-success消息給客戶端,該消息必須包括AP接入點的序列號(AP Serial ID)和Lasttime。當客戶端收到EAP-Success消息后,首先判斷AP MAC地址和AP序列號是否與保存在AP 信息記錄表中相應的AP MAC地址和AP序列號是否相同,如果不同則繼續(xù)發(fā)起認證請求并告知AP接入點連接異常。如果相同,再判斷Lasttime是否與AP信息表中的信息相同,如果不同則說明此時的AP接入點是攻擊者。如果相同則可判斷此消息是真實可信的,繼而進行正常的通信。一旦AP接入點收到連接異常消息,它就在一段時間間隔內(nèi)拒絕客戶端的連接請求。通過上述修改后的第二步驟和新添加的第七步驟方案,可以使客戶端有能力判斷EAP-Success消息的真實性,從而有效地阻止EAP上層協(xié)議采用雙向認證的中間人攻擊。
表3列出了改進方案中使用的相關參數(shù)及其說明。
表3 改進方案的相關參數(shù)及說明
3 IEEE802.1x協(xié)議認證改進方案的軟件實現(xiàn)
由上面的討論可知,本改進方案的實現(xiàn)是由客戶端、AP接入點,RADIUS認證服務器三個部分組成。重點是在Linux操作系統(tǒng)環(huán)境下,在客戶端和AP接入點之間軟件的實現(xiàn)。
3.1 AP接入點的軟件實現(xiàn)
3.1.1 主函數(shù)設計
主函數(shù)設計順序如圖2所示。
圖2 主函數(shù)設計順序
主函數(shù)初始從用戶界面讀入認證信息,然后等待請求,同時打開鏈路層接收包線程,并進行如下處理:如果是未經(jīng)認證用戶發(fā)送的請求EAP-Start,則進入用戶認證模塊;如果收到的數(shù)據(jù)包是EAP-Logoff類型,表示用戶想退出網(wǎng)絡;如果用戶通過標準的IEEE802.1x認證,則進入改進方案的第六步實現(xiàn)客戶端和AP之間的雙向認證。通過認證后則發(fā)送帶上AP序列號、Lasttime等EAP-Success消息,經(jīng)客戶端確認后完成認證,客戶端就可以成功登錄網(wǎng)絡。
3.1.2 認證模塊的實現(xiàn)
在標準的IEEE802.1x認證方式中,AP接入點不需要了解EAP上層協(xié)議,只需簡單作為后端服務器的透明傳輸代理,將客戶端數(shù)據(jù)包傳遞給RADIUS服務器即可,只有在本改進方案的第二步驟和第七步驟中,需要帶上AP接入點自己的序列號和Lasttime時間戳。
最后,參照IEEE802.1x協(xié)議中認證系統(tǒng)狀態(tài)機來進行程序設計。
3.2 客戶端的實現(xiàn)
由于本文提出的改進方案是基于IEEE802.1x的認證機制,所以程序主要工作在認證機制這一塊。主控模塊進行模式選擇,參數(shù)設置。接著調(diào)用認證模塊,實現(xiàn)IEEE802.1x的狀態(tài)機,其中對應狀態(tài)機中的各個狀態(tài)的功能分別用函數(shù)實現(xiàn), EXIT過程包含了收包線程的關閉,返回認證結果給主控模塊;認證成功,則進入安全連接階段??蛻舳说闹骱瘮?shù)順序圖3所示:
圖3 客戶端順序圖
AP接入點和客戶端程序都是在linux環(huán)境下用C語言實現(xiàn)。由于freeradius是開放的源代碼,并帶有很多功能函數(shù),如radius.c、rbtree. c、 md5.c、filters.c, hmac.c等等,大大提高了程序的開發(fā)效率。由于篇幅有限,本文省略了源代碼。
4 IEEE802.1x認證協(xié)議改進方案的優(yōu)缺點
IEEE802.1x認證協(xié)議改進方案的實現(xiàn),解決了客戶端和AP接入點之間的相互認證問題,有效地阻止中間人攻擊和會話截取攻擊。與原有EEE802.1x協(xié)議比較,它具有以下特點:
(1)由于采用了強制認證方式,故提高了認證安全性。
(2)過程簡單,沒有使用EAP-TLS,在客戶端和訪問控制點之間沒有公共密鑰認證。
(3)兼容性高,降低實現(xiàn)難度。
1)改進方案是建立在原有的IEEE802.1x認證協(xié)議基礎之上的,能夠和原來的IEEE802.1x很好地兼容;
2)AP接入點的序列號和時間戳Lasttime是捎帶在AP接入點發(fā)給客戶端的EAP-Request消息中的,充分利用了原來的消息流程,沒有添加額外的開銷,提高了效率,同時也增強了兼容性。
該改進方案也有以下不足之處:
(1)由于增加了協(xié)議的交互步驟,也就相應地增加了一定的時間開銷和復雜度。
(2)要求在AP接入點和客戶端分別與RADIUS服務器擁有一個共享的密鑰k1和k2,這些共享密鑰的來源必須安全可靠。
(3)要實現(xiàn)本改進方案,客戶端、AP接入點和RADIUS服務器都必須支持加密/解密算法AES-CBC和單向哈希(HASH)算法MD5,而且都能夠產(chǎn)生128位的偽隨機數(shù),對這些設備都提出了一定的要求。
(4)需要在客戶端軟件添加新的數(shù)據(jù)結構AP信息表。
參考文獻:
[1]劉蕾,張建軍.無線局域網(wǎng)的安全[J].互聯(lián)網(wǎng)世界,2002,(2).
[2]亨區(qū)峰,曾獎亨,劉乃安.無線局域網(wǎng)[M].北京:電子工業(yè)出版社,1996.
[3]曹秀英,耿嘉,沈平.無線局域網(wǎng)安全系統(tǒng)[M].北京:電子工業(yè)出版社,2004.
[4]吉建峰.基于802. 1 x的無線局域網(wǎng)的接入認證研究與應用[D].南京:河海大學,2004.