王思涵, 郭淵博, 劉 偉
(解放軍信息工程大學(xué) 電子技術(shù)學(xué)院,河南 鄭州 450004)
MESH是一種新型的無線網(wǎng)絡(luò)技術(shù),由于其自身具有多跳、自配置、自愈合、高帶寬[1]等特點,彌補了傳統(tǒng)無線局域網(wǎng)(WLAN)絡(luò)在這些方面的不足,因此成為目前人們所關(guān)注的一項焦點無線技術(shù)。當(dāng)前,WLAN MESH網(wǎng)絡(luò)技術(shù)仍處于理論研究和驗證階段,相關(guān)技術(shù)尚未完全成熟。有關(guān)WLAN MESH網(wǎng)絡(luò)的安全接入認(rèn)證問題,一直沒有很好的定義或規(guī)范。
WLAN MESH網(wǎng)絡(luò)主要存在簡單客戶端(Simple Station ,STA)和MESH節(jié)點(Mesh Point, MP)兩種網(wǎng)絡(luò)實體。其中WLAN MESH網(wǎng)絡(luò)的MP,是對WLAN網(wǎng)絡(luò)節(jié)點(AP)功能的擴展。當(dāng)客戶端實施安全接入時,不管是前期的認(rèn)證還是認(rèn)證后的數(shù)據(jù)通信,都需要經(jīng)由多跳,通過其它節(jié)點使用公開的、自由傳播的無線信道來傳輸信號,因此對越權(quán)存取和竊聽的行為更不容易防備,易遭受信息竊取和拒絕服務(wù)攻擊。
IEEE802.11sMESH工作組提議利用IEEE802.11i機制下802.1x協(xié)議框架來實現(xiàn)WLAN MESH網(wǎng)絡(luò)中的安全接入控制,但對此并沒有給出詳細(xì)規(guī)范。本文提出一種基于802.1x認(rèn)證協(xié)議下的 EAP-TLS 認(rèn)證方式來實現(xiàn)WLAN MESH網(wǎng)絡(luò)的安全接入認(rèn)證。首先對EAP可擴展協(xié)議下的TLS協(xié)議進(jìn)行分析,然后對基于WLAN MESH網(wǎng)絡(luò)中節(jié)點認(rèn)證角色進(jìn)行劃分,在此基礎(chǔ)之上研究了 EAP-TLS協(xié)議在 WLAN MESH網(wǎng)絡(luò)中的接入認(rèn)證過程,最后對EAP-TLS認(rèn)證協(xié)議進(jìn)行安全性分析。
EAP-TLS是在TLS協(xié)議的基礎(chǔ)上經(jīng)過EAP封裝得到的,它采用 TLS(傳輸層安全協(xié)議)的認(rèn)證方法,實現(xiàn)了兩個通信實體之間傳輸?shù)谋C苄院蛿?shù)據(jù)完整性。
TLS協(xié)議包括TLS記錄協(xié)議(TLS Record)和TLS握手協(xié)議(TLS Handshake) 兩個協(xié)議層,其中記錄協(xié)議建立在可靠的傳輸協(xié)議TCP之上,為較高層協(xié)議提供封裝、壓縮、加密等基本功能的支持;較高層握手協(xié)議建立在記錄協(xié)議之上實現(xiàn)了數(shù)據(jù)傳輸開始前,通訊雙方進(jìn)行身份認(rèn)證、協(xié)商加密算法-交換加密密鑰等功能。
記錄協(xié)議為上層的握手協(xié)議服務(wù)。在發(fā)送端,它從高層協(xié)議接收到要發(fā)送的數(shù)據(jù)后,對它們進(jìn)行數(shù)據(jù)分段、壓縮、形成 MAC、加密,最后傳輸;在接收端,處理解密、校驗MAC、解壓縮、重組工作,最后傳遞給協(xié)議的高層客戶。
記錄協(xié)議是通過將數(shù)據(jù)流分割成一系列的片段并加以傳輸?shù)?,其中對每個片段單獨進(jìn)行保護(hù)和傳輸。在接收方,對每條記錄單獨進(jìn)行解密和驗證這種方案使得數(shù)據(jù)可以從連接的一端傳送到另一端,并在接收后即刻加以處理。
在傳輸片段之前,為了防止所遭到的攻擊可以通過計算數(shù)據(jù)的 MAC來提供完整性保護(hù)。MAC與片段一起進(jìn)行傳輸,并由接收實現(xiàn)加以驗證將MAC付加到片段的尾部,并對數(shù)據(jù)與MAC整合在一起的內(nèi)容進(jìn)行加密,形成經(jīng)過加密的負(fù)載(Pay Load),最后給負(fù)載裝上頭信息,頭信息與經(jīng)過加密的負(fù)載的連結(jié)稱作記錄,記錄是實際傳輸?shù)膬?nèi)容。傳輸過程如圖1所示。
握手協(xié)議位于記錄協(xié)議之上,主要由3個子協(xié)議組構(gòu)成--握手(Handshake)協(xié)議、警告(Alert)協(xié)議、改變密碼規(guī)格(Change Cipher Spec)協(xié)議,允許對等雙方在記錄層的安全參數(shù)上達(dá)成一致、自我認(rèn)證、初始化協(xié)商安全參數(shù)、互相報告錯誤條件。TLS握手協(xié)議用來使服務(wù)器與客戶在傳輸應(yīng)用層數(shù)據(jù)之前交換TLS協(xié)議版本信息、協(xié)商加密算法、進(jìn)行身份認(rèn)證并交換密鑰。
TLS握手協(xié)議主要包括下面幾個步驟:
① 交換問候(Hello)信息以協(xié)商密碼一致性,交換隨機值并檢查會話是否可重用;
② 交換必要的加密參數(shù)供客戶端和服務(wù)器端使用,協(xié)商Premaster Secret以達(dá)成預(yù)加密一致性;
③ 交換鑒權(quán)證書與加密信息,供客戶端和服務(wù)器端互相鑒權(quán)認(rèn)證使用;
④ 按指定的密鑰交換協(xié)議產(chǎn)生 Premaster Secret,再通過密鑰導(dǎo)出函數(shù)(KDF)計算客戶端和服務(wù)器端相應(yīng)的加密密鑰、MAD密鑰和IV;
⑤ 向記錄層加密參數(shù);
⑥ 允許客戶端和服務(wù)器檢查對方是否以相同的加密參數(shù)進(jìn)行計算,以及確定認(rèn)證過程是否成功。
WLAN MESH網(wǎng)絡(luò)的多跳通信方式不可避免地面臨著很多安全威脅,而安全接入認(rèn)證是保護(hù)網(wǎng)絡(luò)不被非法節(jié)點侵入的第一層防護(hù)。在 WLAN MESH網(wǎng)絡(luò)中,客戶端接入WLAN MESH網(wǎng)絡(luò)可以看作是WLAN終端接入網(wǎng)絡(luò),WLAN MESH網(wǎng)絡(luò)中的Mesh路由器可以充當(dāng)WLAN的AP,來對客戶端進(jìn)行驗證。不同之處在于客戶端接入 WLAN MESH網(wǎng)絡(luò)采用的是多跳形式,需經(jīng)多跳節(jié)點之間的無線信道傳輸[2],節(jié)點的自私或惡意行為會嚴(yán)重導(dǎo)致網(wǎng)絡(luò)性能和安全下降,要保證節(jié)點傳輸數(shù)據(jù)的安全和隱私不受外界攻擊是一個巨大的安全挑戰(zhàn)。
EAP-TLS協(xié)議提供通信實體之間的雙向認(rèn)證[3],又提供動態(tài)會話密鑰分發(fā),并且在通信雙方都要求持有公鑰證書,有效防止了竊聽的被動攻擊和中間人、會話劫持、重放、報文篡改等主動攻擊, 保證了通信實體間數(shù)據(jù)傳輸?shù)耐暾院桶踩?。原有的EAP-TLS認(rèn)證方式是基于WLAN的接入方法,在WLAN網(wǎng)絡(luò)中只定義了STA、AP、AS三種角色,并且通過一些機制來強化這些節(jié)點的功能:安全的 STA-AS相互認(rèn)證、安全的AP-AS信道都保證了整個認(rèn)證過程的安全性。但這并不能滿足WLAN MESH網(wǎng)絡(luò)的安全接入認(rèn)證需求,在WLAN MESH網(wǎng)絡(luò)中則定義了更多角色的節(jié)點:MP、MAP、MPP、STA和AS。當(dāng)一個MAP接入到WLAN MESH網(wǎng)絡(luò)中時,首先需要和WLAN MESH網(wǎng)絡(luò)中的一跳范圍內(nèi)的可信節(jié)點MP進(jìn)行第一次認(rèn)證后,該MAP就可作為可信節(jié)點,與其它要接入的客戶進(jìn)行認(rèn)證?;?WLAN MESH網(wǎng)絡(luò)中接入認(rèn)證所需的節(jié)點功能定義如下:
① Mesh Point(MP):在 Mesh網(wǎng)絡(luò)中,使用 IEEE 802.11MAC和PHY協(xié)議進(jìn)行無線通信,并且支持Mesh功能的節(jié)點。該節(jié)點支持自動拓?fù)洹⒙酚傻淖詣影l(fā)現(xiàn)、數(shù)據(jù)包的轉(zhuǎn)發(fā)等功能;
② Mesh AP (MAP):任何支持 AP 功能的 Mesh Point;
③ MP/MAP with Mesh Portal(MPP):連接 WLAN Mesh和其它類型的網(wǎng)絡(luò)并轉(zhuǎn)發(fā)通信的MP/MAP節(jié)點。這個節(jié)點具有 Portal功能,通過這個節(jié)點,Mesh 內(nèi)部的節(jié)點可以和外部網(wǎng)絡(luò)通信;
④ 簡單客戶端(Simple Station,STA):即為802.11無線局域網(wǎng)中的客戶端;
⑤ 認(rèn)證服務(wù)器(AS):通常為 RADIUS 服務(wù)器,該服務(wù)器可以存儲有關(guān)用戶的信息. 當(dāng)用戶通過認(rèn)證后,AS會把用戶的相關(guān)信息傳遞給認(rèn)證者,由認(rèn)證者構(gòu)建動態(tài)的訪問控制列表,用戶的后續(xù)數(shù)據(jù)流就將接受上述參數(shù)的監(jiān)管。
在一個WLAN MESH 網(wǎng)絡(luò)中,MP可以擔(dān)任申請者和認(rèn)證者兩種角色,同時AS可以被綁定在一個MP中,也可以位于遠(yuǎn)端,和認(rèn)證者M(jìn)P之間建立安全連接。
在WLAN MESH網(wǎng)絡(luò)環(huán)境中,WLAN MESH作為EAP的傳輸網(wǎng)絡(luò),采用TLS認(rèn)證方式,在客戶端與認(rèn)證者之間使用EAPOL協(xié)議[4]傳送認(rèn)證信息,認(rèn)證者與認(rèn)證服務(wù)器之間通過RASIUS協(xié)議[4]傳送認(rèn)證信息,EAPOL和RASIUS數(shù)據(jù)包中封裝了 EAP-TLS協(xié)議,在客戶端和認(rèn)證服務(wù)器直接傳遞EAP-TLS協(xié)議。基于EAP-TLS的認(rèn)證協(xié)議棧如圖2所示。
EAP-TLS認(rèn)證方案實現(xiàn)了客戶端與認(rèn)證服務(wù)器的雙向認(rèn)證并對認(rèn)證雙方采用了加密解密算法并對生成的密鑰達(dá)成了共識。EAP-TLS認(rèn)證方式要求客戶端與認(rèn)證服務(wù)器必須提供由認(rèn)證中心CA簽發(fā)的用于證明用戶和公開密鑰之間關(guān)聯(lián)的證書,在提供證書的同時,必須提供有關(guān)能夠讓客戶端與認(rèn)證服務(wù)器雙方對認(rèn)證中心的權(quán)威性達(dá)成共識的證明材料,即在交換證書的同時,客戶端與認(rèn)證服務(wù)器要協(xié)商出一個會話基于會話的密鑰,一旦認(rèn)證通過,服務(wù)器將會話密鑰傳給認(rèn)證者允許該客戶端訪問網(wǎng)絡(luò)。
圖3 基于WLAN MESH 網(wǎng)絡(luò)的EAP-TLS 認(rèn)證流程
基于WLAN MESH網(wǎng)絡(luò)中EAP-TLS認(rèn)證方式的具體過程如圖3所示。
① MAP→MP :MAP向MP發(fā)送EAPOL-Start幀開始雙向認(rèn)證;
② MP→MAP:MP接受MAP發(fā)送的幀后通過EAP請求要求MAP提供身份標(biāo)識;
③ MAP→MP→AS:MAP向 MP發(fā)送 EAP-Response/Identity幀,提供身份標(biāo)識;MP將身份標(biāo)識信息封裝成RADIUS Access Repuest幀轉(zhuǎn)發(fā)給服務(wù)器AS;
④ AS→MP→MAP:AS收到MP轉(zhuǎn)發(fā)的信息后,將核查用戶,找到匹配項,進(jìn)行加密處理,在獲知采用 EAP-TLS為認(rèn)證協(xié)議后,向MAP發(fā)送一個啟用TLS認(rèn)證過程的EAP請求報文,并有MP傳送;
⑤ MAP→AS:MAP收到MP傳送的信息后,并對信息進(jìn)行加密解密處理,通過發(fā)送客戶的Hello消息開始TLS認(rèn)證過程,由MP轉(zhuǎn)發(fā)AS;
⑥ AS→MAP:AS發(fā)送服務(wù)器Hello消息、密鑰消息、服務(wù)器證書、證書請求,這些消息被封裝在EAP報文中傳輸給MAP;
⑦ MAP→AS:MAP收到報文后,首先對AS提供的證書進(jìn)行鑒別,然后發(fā)送客戶證書消息、密鑰消息、證書證明、密鑰切換、結(jié)束消息;
⑧ AS→MAP:如果AS成功認(rèn)證MAP,則解密預(yù)主密鑰PMK,然后執(zhí)行一系列步驟產(chǎn)生主密鑰MK,向MAP發(fā)送密鑰切換消息和結(jié)束消息,否則會話終止;
⑨ MAP→AS:MAP對收到服務(wù)器計算的主密鑰進(jìn)行求證,如果和自己計算的相同,認(rèn)證過程正常結(jié)束,并向 AS發(fā)送EAP響應(yīng)報文,否則終止認(rèn)證;
⑩ AS→MAP:A向MP發(fā)送RADIUS允許接入報文,并在報文中給出MAP和AS確定的MK(主密鑰),隨后MP向MAP發(fā)送EAP成功報文,認(rèn)證過程完成。
從上面的認(rèn)證過程可以看出,MAP首先作為客戶端訪問WLAN MESH網(wǎng)絡(luò)時,需要與網(wǎng)絡(luò)中一跳范圍內(nèi)的鄰近節(jié)點MP進(jìn)行認(rèn)證,并且在認(rèn)證前作為客戶端的MAP和服務(wù)器都需要生成各自的證書,然后通過MAP訪問網(wǎng)絡(luò)開始它與AS的EAP-TLS雙向認(rèn)證過程。如果認(rèn)證成功,該MAP就可作為WLAN MESH網(wǎng)絡(luò)中的可信節(jié)點同時也可作為認(rèn)證者與STA進(jìn)行認(rèn)證。
針對 WLAN MESH網(wǎng)絡(luò)中存在的安全隱患可對EAP-TLS的認(rèn)證過程做以下安全性分析:
① 客戶和服務(wù)器雙方都是基于公鑰證書前提下進(jìn)行雙向認(rèn)證[5],并且通信雙方可以使用公鑰密碼RSA算法進(jìn)行認(rèn)證,該算法使得通信雙方事先不需要通過保密信道交換密鑰;
② 通信實體雙方共享密鑰的協(xié)商是保密、可靠的,即使攻擊者能發(fā)起中間人攻擊,協(xié)商的密鑰也不可能被竊聽者獲得,也不能隨意的篡改協(xié)商通信消息。因為 EAP-TLS協(xié)議實現(xiàn)客戶和AS服務(wù)器的雙向認(rèn)證,有效保證通信雙方身份的真實性;并且認(rèn)證服務(wù)器和客戶生成的共享會話密鑰,傳送時分別采用認(rèn)證服務(wù)器和客戶機的共享密鑰、公鑰相互加密傳送,從而保證了會話密鑰的機密性;
③ EAP-TLS雙向認(rèn)證可以防止中間人攻擊和“流氓”服務(wù)器攻擊[6]。EAP-TLS提供了客戶和服務(wù)器雙方雙向認(rèn)證使的中間人攻擊無法得逞,因為當(dāng)客戶向認(rèn)證服務(wù)器提出認(rèn)證請求時,攻擊者由于不知道預(yù)先共享密鑰或會話密鑰,所以無法假冒認(rèn)證服務(wù)器。
同樣的道理,“流氓”服務(wù)器攻擊也只能對單向認(rèn)證而言,即只有認(rèn)證服務(wù)器對用戶進(jìn)行認(rèn)證有效,對雙向認(rèn)證無效。
WLAN MESH網(wǎng)絡(luò)中的安全接入認(rèn)證是WLAN MESH網(wǎng)絡(luò)中需首要解決的安全問題。本文在分析 EAP-TLS協(xié)議的基礎(chǔ)之上,提出一種基于EAP-TLS的WLAN MESH網(wǎng)絡(luò)安全接入認(rèn)證方案,針對WLAN MESH網(wǎng)絡(luò)的特點對原有WLAN中EAP-TLS協(xié)議進(jìn)行擴展,并分析了EAP-TLS在WLAN MESH網(wǎng)絡(luò)中的應(yīng)用流程, EAP-TLS協(xié)議為WLAN MESH網(wǎng)絡(luò)中的兩個通信實體之間提供了數(shù)據(jù)的保密性和完整性,該協(xié)議采取了數(shù)據(jù)加密、數(shù)字簽名、報文驗證等密碼技術(shù),較好地解決了在WLAN MESH網(wǎng)絡(luò)接入認(rèn)證過程中端到端的安全通信問題。
[1] 徐穎.無線Mesh網(wǎng)的接入控制和密鑰管理[D].西安: 西安電子科技大學(xué),2007.
[2] 李娜.802.11mesh網(wǎng)的研究及其安全分析[J].技術(shù)分析,2008, 28(02):48-50.
[3] 柳瑞蕓,彭宇,張旭平.基于EAP的WLAN認(rèn)證技術(shù)[J].電信技術(shù),2004,3(02):56-58.
[4] 羅丹,陳常嘉. 802.1x協(xié)議及其應(yīng)用[J].網(wǎng)絡(luò)與信息安全,2007,22(01):49-52.
[5] 褚麗莉.無線局域網(wǎng)安全分析[J].通信技術(shù),2009, 42(07):34-36.
[6] 張芳,蔣秦芹.無線局域網(wǎng)安全機制增強技術(shù)研究[J].通信技術(shù),2008, 41(05):116-124.