蔣 華 張樂乾 阮玲玲
(桂林電子科技大學(xué)計算機科學(xué)與工程學(xué)院 廣西 桂林 541004)
?
基于公鑰密碼體制的802.1x雙向認證研究
蔣華張樂乾阮玲玲
(桂林電子科技大學(xué)計算機科學(xué)與工程學(xué)院廣西 桂林 541004)
摘要針對申請者和認證者間認證的不平等以及控制幀和管理幀的明文傳輸問題,通過分析802.1x/EAP認證過程,提出一種基于公鑰密碼體制的802.1x雙向認證改進方案。該方案利用引入的公鑰密碼體制的認證性實現(xiàn)申請者與認證服務(wù)器的雙向認證,同時利用對稱密鑰實現(xiàn)申請者、認證者和認證服務(wù)器三者之間的兩兩雙向認證并對控制幀和管理幀中的敏感域加密。該方案能夠保護認證進程的機密性,對AP身份進行認證,有效阻止了中間人攻擊和拒絕服務(wù)攻擊。通過仿真實驗證明,該方案比原協(xié)議認證成功率平均高約13.1%,接入的STA數(shù)量有顯著增加,約增加STA總數(shù)的26%,在攻擊次數(shù)達到50次以上時,接入STA數(shù)量下降速率平穩(wěn)緩慢。
關(guān)鍵詞802.1x雙向認證公鑰密碼中間人攻擊拒絕服務(wù)攻擊
STUDY ON PUBLIC KEY CRYPTOGRAPHY-BASED 802.1X BIDIRECTIONAL AUTHENTICATION
Jiang HuaZhang LeqianRuan Lingling
(School of Computer Science and Engineering,Guilin University of Electronic Technology,Guilin 541004,Guangxi,China)
AbstractIn order to solve the problems of the unequal authentication between applicant and authenticator and the plaintext transmission of the control frame and management frame, according to the analysis on 802.1x/EAP authentication process, we proposed an improved scheme of 802.1x/EAP bidirectional authentication which is based on public key cryptosystem. The scheme uses the authentication property of the introduced public key cryptosystem to achieve bidirectional authentication between applicant and authentication server. Meanwhile it uses symmetric key cryptosystem to achieve the bidirectional authentication between each pair of supplicant, authenticator and authentication server and encrypts the sensitive domains of control frame and management frame. The scheme can protect the confidentiality of authentication process, authenticates the identity of AP, and effectively prevents the man-in-the-middle attacks and denial of service attacks. It was proved by simulation experiments that in average the scheme was about 13.1% higher in successful authentication than the original protocol, the number of the successful STA access had the significant increase, roughly about 26% of total STA numbers, and the descending rate of STA access number was slow and stable while the number of attacks was more than 50.
Keywords802.1xBidirectional authenticationPublic key cryptographyMan-in-the-middle attackDenial of service attacks
0引言
無線局域網(wǎng)因其網(wǎng)絡(luò)空間的開放性和用戶的移動接入性,使得網(wǎng)絡(luò)在各種便攜式終端上的應(yīng)用越來越方便。用戶接入網(wǎng)絡(luò)的不確定性和頻繁移動性使得我們必須要建立更加強健和完善的身份認證和訪問控制機制來保障無線網(wǎng)絡(luò)用戶的合法性。
在IEEE 802.11i標準中802.1x協(xié)議認證框架的基礎(chǔ)上,本文通過分析802.1x/EAP認證機制的過程及其安全性,提出一種基于公鑰密碼體制的802.1x認證改進方案。配合可擴展認證協(xié)議EAP來實現(xiàn)認證,加入公鑰密碼體制實現(xiàn)客戶端與認證者之間的雙向認證,對管理幀和控制幀中的部分敏感域進行加密保護,實現(xiàn)申請者、認證者和認證服務(wù)器三者間的兩兩雙向認證,有效防御對認證過程的中間人攻擊和DoS攻擊等。
1802.1X/EAP認證協(xié)議及其安全性
1.1802.1X/EAP認證過程
根據(jù)RSNA建立過程,在網(wǎng)絡(luò)連接過程結(jié)束后進入802.1x認證階段。802.1x是基于端口的網(wǎng)絡(luò)接入控制協(xié)議,在開始認證前,端口默認設(shè)置為未授權(quán)狀態(tài),此時除了802.1x的EAPOL報文之外的其他一切來自客戶端的消息均無法通過端口。在認證過程結(jié)束后,客戶端身份被確認合法,端口狀態(tài)切換為授權(quán),此時客戶端被允許和認證者傳輸信息[1]。
申請者端與認證端的通信在數(shù)據(jù)鏈路層進行,并采用EAPOL格式進行封裝,而認證者和認證服務(wù)器之間采用RADIUS協(xié)議來封裝申請者發(fā)送給認證者的EAP認證信息[2,3]。具體的認證方式則是在認證過程中由認證服務(wù)器和申請者動態(tài)協(xié)商來決定,這就體現(xiàn)了802.1x/EAP認證的靈活性和動態(tài)性,給惡意攻擊者帶來一定的攻擊困難,增強了認證機制的防御性能。
1.2存在問題
802.1x提供了認證框架,EAP提供靈活多變的認證方法。雖然802.1x具有實現(xiàn)簡單、認證和業(yè)務(wù)分離、擴展性好等優(yōu)點,但協(xié)議本身仍然存在設(shè)計缺陷:
特殊幀的明文傳輸:傳輸過程中管理幀和控制幀都是明文傳輸?shù)?,沒有保密措施保護,這樣就非常容易被攻擊者探測到[4]。在802.1x協(xié)議中,這樣的幀有EAPOL-Start、EAP-Success、EAP-Failure以及EAPOL-Logoff等,當攻擊者通過監(jiān)聽獲得這些幀信息后,再選取適當?shù)臅r機偽裝成客戶端或者認證者,即可在兩方之間傳遞虛假信息;
認證者對申請者的單向認證性協(xié)議:假定認證者AP是安全可靠的,只是實現(xiàn)了申請者和認證服務(wù)器之間的雙向認證,申請者并沒有對認證者AP進行充分的認證[5,6]。但在實際情況中,隨著無線網(wǎng)絡(luò)的廣泛應(yīng)用,惡意攻擊者發(fā)現(xiàn)并利用其漏洞假冒認證者AP的現(xiàn)象越來越多。
針對802.1x/EAP的攻擊威脅有下面幾種:
1) 中間人攻擊
在802.1x/EAP協(xié)議中,雖然實現(xiàn)了客戶端與認證服務(wù)器間的雙向認證,但是基于端口的802.1x認證原理規(guī)定,當客戶端通過認證服務(wù)器的認證之后,認證者才會打開對客戶端的認證端口,而對于認證者客戶端的端口是始終打開的,這樣就造成了客戶端與認證者間的不平等狀態(tài)[4,7]。這種認證者對客戶端的單向認證的缺陷,就使得攻擊者很容易進行中間人攻擊。
2) 拒絕服務(wù)攻擊
拒絕服務(wù)攻擊就是服務(wù)器拒絕向合法客戶端提供正常訪問服務(wù)。攻擊者破壞客戶端與服務(wù)器的連接過程,使合法客戶端與網(wǎng)絡(luò)半連接或者認證失敗,容易造成客戶端或服務(wù)器計算和存儲資源耗盡或合法客戶端無法正常接入網(wǎng)絡(luò)[8]。實施過程簡單,后果嚴重,預(yù)防和追查困難,在網(wǎng)絡(luò)安全問題中拒絕服務(wù)攻擊最常見也最具威脅性。
2改進方案
本文根據(jù)上文中所述兩個漏洞,提出了一種基于公鑰密碼體制的802.1x認證改進方案,方案中通過加入公鑰密碼體制實現(xiàn)客戶端與認證者之間的雙向認證,同時對于一些管理幀和控制幀中的部分敏感域進行加密保護,從而使其被竊聽分析以及偽造的難度加大。
1) 加密管理幀與控制幀中的敏感域
從802.1x認證流程我們可以看到,在客戶端與認證者之間發(fā)送的消息封裝的格式有兩種類型:EAP格式和EAPOL格式[9]。通過對EAP幀和EAPOL幀格式的分析我們可知,EAP幀中Code域和EAPOL幀中Type域用來標識幀類型,然而通常情況下,幀中數(shù)據(jù)域的內(nèi)容和幀格式密切相關(guān)且相互對應(yīng)。我們采用對稱加密算法來加密這兩個域,對稱密鑰通過安全通道發(fā)布給雙方,這樣攻擊者在短時間內(nèi)無法獲取密鑰,無法知道幀類型,也就無法在合適的時間找到攻擊機會,從而達到保護這些敏感數(shù)據(jù)包的目的,在一定程度上能夠預(yù)防針對這些數(shù)據(jù)包的中間人攻擊和DoS攻擊。
2) 基于公鑰密碼體制的雙向認證
在802.1x/EAP認證系統(tǒng)中,認證者對客戶端的單向認證,使得客戶端與認證者之間出現(xiàn)了不平等狀態(tài),攻擊者可以通過偽造認證者,從而在兩者之間實現(xiàn)中間人攻擊。改進方案中,我們引入公鑰密碼體制,公鑰密碼的數(shù)字簽名功能正好能夠解決通信雙方的認證問題。我們假定在認證前客戶端和認證服務(wù)器的公鑰已公布,且雙方均已知,同時認證者與其他兩方的共享密鑰也通過安全通道分發(fā)成功。這樣在認證過程中,對于客戶端和認證服務(wù)器發(fā)送的消息可以用自己的私鑰先簽名,在接收方再使用對方公鑰驗證,若能成功解密則可以確認發(fā)送者身份,這樣也就實現(xiàn)了客戶端與服務(wù)器的雙向認證。同時方案中也加入了客戶端和認證者各自生成的隨機數(shù),而這些隨機數(shù)通過雙方共享密鑰加密,然而我們確信共享密鑰只有雙方知道,這樣通過加密隨機數(shù)實現(xiàn)了客戶端與認證者的雙向認證。
根據(jù)以上兩部分改進,我們在改進方案中對所有EAP消息的Code域和EAPOL消息的Type域與Code域均使用對稱加密算法加密;同時在認證過程中加入申請者和認證服務(wù)器公鑰,在傳輸消息過程中利用私鑰對部分消息進行數(shù)字簽名,以認證發(fā)送者身份合法。改進方案的認證流程如圖1所示。
圖1 改進方案認證過程
流程圖中所使用的符號標記如下:
符號說明
IS申請者身份信息
NS申請者隨機數(shù)
NA認證者隨機數(shù)
KS-A申請者與認證者共享密鑰,用于對稱加密算法
KA-AS認證者與認證服務(wù)器共享密鑰,用于對稱加密
假設(shè)認證者和認證服務(wù)器之間已經(jīng)建立了安全連接,申請者和認證服務(wù)器雙方互相擁有對方的公鑰,認證者與申請者、認證服務(wù)器均已通過安全通道共享對稱密鑰。
詳細步驟如下:
(1) 申請者首先生成EAPOL-Start消息,并選用AES算法來加密Type域和Code域,密鑰為128位KS-A,然后使用RSA算法簽名后發(fā)送給認證者發(fā)起認證過程;
(2) 認證者收到請求消息后,向申請者發(fā)送EAP- Request/ Identity消息要求申請者提供其身份信息,其中Code域被加密,加密方法同步驟(1);
(3) 申請者收到身份請求消息后,生成EAP-Response/ Identity消息響應(yīng)認證者,生成具體方法如圖2所示。其中,{IS}KS-1為申請者對身份信息進行數(shù)字簽名。
圖2 EAP-Response/Identity消息生成過程
(4) 認證者收到身份響應(yīng)消息后,生成Radius-Access Request消息發(fā)送給認證服務(wù)器請求驗證身份信息,具體生成方法如圖3所示。
圖3 Radius-Access Request消息生成過程
圖4 Radius-Access-Challenge消息生成過程
(6) 認證者收到數(shù)據(jù)包后,向申請者發(fā)送挑戰(zhàn)響應(yīng)請求EAP-Request消息,具體生成過程如圖5所示。其中,NA-1的對比為認證者通過對稱密鑰KA-AS驗證認證服務(wù)器身份。{NS-1}C(KS-A)為認證者通過對稱密鑰KS-A驗證申請者身份。
圖5 EAP-Request消息生成過程
(7) 申請者收到請求消息后,首先處理請求消息,并且查看RADIUS所選擇的的認證機制,如果申請者支持該認證機制則向認證者發(fā)送挑戰(zhàn)響應(yīng)EAP-Response消息,具體過程如圖6所示。其中,{NS-1}D(KAS)為申請者驗證認證服務(wù)器身份,{NS-1}D(KS-A)為申請者驗證認證者身份。{NS}C(KAS)為響應(yīng)認證服務(wù)器的挑戰(zhàn)。
圖6 EAP-Response消息生成過程
(8) 認證者將收到的EAP消息重新封裝成RADIUS格式并轉(zhuǎn)發(fā)給認證服務(wù)器。
(9) 認證服務(wù)器收到挑戰(zhàn)響應(yīng)消息后,如果能夠成功驗證申請者數(shù)字簽名以及解密出NS,說明可以確認申請者身份合法,并向認證者發(fā)送認證成功消息;否則告知認證失敗。
(10) 若認證者收到認證成功消息,則打開受控端口,并向申請者發(fā)送EAP-Success消息,告知其認證成功;否則向申請者發(fā)送EAP-Failure消息,通知其認證失敗。
(11) 當申請者將要離線時,需要向認證者發(fā)送EAPOL-Logoff消息(Type域和Code域被加密),告知其將要離線,此時認證者關(guān)閉受控端口。
3方案安全性分析與仿真
3.1方案安全性分析
基于公鑰密碼體制的802.1x雙向認證改進方案不僅實現(xiàn)了客戶端和服務(wù)器之間的雙向認證,同時也實現(xiàn)了客戶端與認證者之間的雙向認證;另一方面,對于客戶端與認證者之間傳輸?shù)腅AP消息幀中的關(guān)鍵域,使得攻擊者無法在短時間內(nèi)知道幀類型,這樣就無法在合適的時機實施攔截或者偽造。改進方案的特點和解決問題如下:
(1) 利用客戶端與認證者之間的共享密鑰加密EAP幀的Code域和EAPOL幀的Type域以及Code域,這樣攻擊者無法知道發(fā)送幀的準確類型,也就無法在合適的時間實施攻擊,如EAPOL-Start、EAPOL-Logoff、EAP-Success和EAP-Failure等,在攻擊者監(jiān)聽過程中,無法確定幀類型,也就無法知道認證進程的發(fā)展。如攻擊者希望攔截客戶端認證成功消息,由于無法判斷哪一條消息為EAP-Success,那么攻擊也就變得無從下手;
(2) 引入公鑰密碼體制,加入客戶端和認證服務(wù)器的公鑰和私鑰,利用公鑰密碼體制的數(shù)字簽名功能加密兩者傳遞消息,從而實現(xiàn)客戶端與認證服務(wù)器之間的雙向認證;
(3) 在密鑰體制中加入客戶端與服務(wù)器的共享密鑰,以及客戶端與認證者的共享密鑰,利用對稱密鑰體制的認證性實現(xiàn)客戶端與認證者之間的雙向認證,這樣就解決了原始802.1x/EAP認證中客戶端對認證者的身份確認問題,從而就能夠有效地抵御由于單向認證引發(fā)的中間人攻擊。
3.2實驗仿真分析
為了研究并驗證該方案的可行性和有效性,本文通過仿真平臺OMNeT++實現(xiàn)了WLAN環(huán)境下802.11i的仿真過程,并且在該環(huán)境中針對802.1x/EAP認證過程的漏洞實施相應(yīng)攻擊。
首先我們需要建立一個802.11i網(wǎng)絡(luò)仿真平臺,并在其上實現(xiàn)以下攻擊:(1) 監(jiān)聽認證過程,在適當時機攔截EAP-Success數(shù)據(jù)包,使得客戶端連續(xù)多次重新認證,造成雙方系統(tǒng)資源消耗;(2) 在客戶端認證之后,偽造EAPOL-Logoff或者EAP-Failure消息發(fā)送給認證者,使得合法客戶端強制下線或者認證失敗,實現(xiàn)拒絕服務(wù)攻擊[10,11];(3) 假冒合法客戶端,偽造大量的EAPOL-Start發(fā)送給認證者,使得認證人數(shù)達到同時認證的上限,以此實現(xiàn)DoS攻擊;(4) 攻擊者攔截EAP-Success數(shù)據(jù)包,然后偽裝合法認證者發(fā)送認證成功幀給客戶端,從而在合法認證者和客戶端之間竊聽偽造傳遞消息[12]。然后我們在該實驗平臺上改進802.1x/EAP認證過程,實現(xiàn)本文提出的基于公鑰密碼體制的認證改進方案,隨后實施同樣的攻擊,對比原始方案與改進方案中網(wǎng)絡(luò)情況。
實驗中建立的網(wǎng)絡(luò)模型如下:50個工作站平均分布在200×200的區(qū)域內(nèi),同時擁有一個接入點AP和一個認證服務(wù)器Radius,以及一個惡意攻擊工作站。
仿真實驗中我們以攻擊者攻擊次數(shù)作為自變量,考慮成功接入網(wǎng)絡(luò)的STA數(shù)量以及STA認證成功率。
圖7為攻擊次數(shù)逐步增加時成功接入的STA數(shù)量。由圖我們可以看出,本文提出方案中接入的STA數(shù)量有顯著增加,當攻擊次數(shù)達到100時,連接STA數(shù)比原協(xié)議要多近15個,同時在攻擊次數(shù)達到50以上時原協(xié)議STA數(shù)下降加快,而改進方案中則一直平穩(wěn)減少,波動不大。
圖7 成功接入網(wǎng)絡(luò)的STA數(shù)量隨攻擊次數(shù)變化情況
圖8為STA認證成功率隨攻擊次數(shù)的變化情況,當攻擊次數(shù)逐漸增加時STA認證成功的概率下降,但改進方案要比原協(xié)議成功率平均高約13.1%。
圖8 STA認證成功率隨攻擊次數(shù)變化情況
4結(jié)語
本文首先分析了802.1x/EAP的認證流程,針對其管理幀和控制幀明文傳輸以及申請者和認證者間單向認證這兩個問題,提出了基于公鑰密碼體制的802.1x雙向認證方案。該方案中我們引入公鑰密碼體制利用申請者和認證服務(wù)器的公私鑰實現(xiàn)兩種雙向認證,同時利用認證者與申請者和認證服務(wù)器之間的對稱密鑰實現(xiàn)兩兩間雙向認證以及對申請者和認證者之間傳輸EAP幀中敏感域的加密,使得攻擊者不能通過偵聽獲得當前認證進程,也不能夠冒充合法AP偽造消息破壞認證成功,有效防御中間人攻擊和拒絕服務(wù)攻擊。實驗結(jié)果表明,該方案中STA認證成功率明顯提高,網(wǎng)絡(luò)成功接入STA數(shù)量增加。
參考文獻
[1] Aboba B,Blunk L,Vollbrecht J,et al.Extensible Authentication Protocol (EAP)[S].RFC 3748.2004-06.
[2] Brown E L.802.1X Port-Based Authentication[M].Auerbach Publications,2007:42-43.
[3] 孔凡錚.IEEE802.1x/EAP-TLS認證方式的研究與改進[D].河北工程大學(xué),2011.
[4] 李永強,汪海航.針對802.1X-EAP安全認證協(xié)議的中間人攻擊[J].計算機工程,2008,34(22):192-194,197.
[5] 汪定,馬春光,翁臣,等.強健安全網(wǎng)絡(luò)中的中間人攻擊研究[J].計算機應(yīng)用,2012,32(1):42-44,65.
[6] 周濤.802.11i中EAP-TLS認證分析與應(yīng)用研究[D].中南大學(xué),2013.
[7] 李小山.無線局域網(wǎng)協(xié)議的安全性研究[D].電子科技大學(xué),2012.
[8] Kol Phanna.Security Analysis of IEEE802.11i in Wireless Local Area Network[D].中南大學(xué),2012.
[9] 周超,周城,郭亮.IEEE 802.1X的安全性分析及改進[J].計算機應(yīng)用,2011,31(5):1265-1270.
[10] 李愛玲,郭建林,韋潛.一種基于802.1x的雙向認證方法及其形式語義分析[J].計算機應(yīng)用與軟件,2011,28(8):146-148,151.
[11] International Information Technology & Applications Association (IITAA).2011國際信息技術(shù)與應(yīng)用論壇論文集[C].中國廣東廣州,計算機科學(xué),2011.
[12] 高峰,禹龍.改進的基于IPv6的802.1x認證方法[J].新疆大學(xué)學(xué)報:自然科學(xué)版,2013,30(2):207-210.
中圖分類號TP309
文獻標識碼A
DOI:10.3969/j.issn.1000-386x.2016.02.067
收稿日期:2014-07-02。國家自然科學(xué)基金重點項目(61262074);桂林電子科技大學(xué)研究生教育創(chuàng)新計劃資助項目(GDYCSZ201422)。蔣華,教授,主研領(lǐng)域:數(shù)據(jù)庫系統(tǒng)與信息安全技術(shù)。張樂乾,碩士生。阮玲玲,碩士生。