摘 要: 在分析SOCKSv5代理服務(wù)協(xié)議及可擴(kuò)展認(rèn)證協(xié)議EAP的基礎(chǔ)上,設(shè)計(jì)了一種基于SOCKSv5與EAP聯(lián)合的代理認(rèn)證服務(wù)器。
關(guān)鍵詞: SOCKSv5 EAP 授權(quán)
目前大多數(shù)安全系統(tǒng)使用的SOCKSv5代理服務(wù)只能支持限定的認(rèn)證方法,且無(wú)法根據(jù)用戶(hù)的身份情況靈活地選擇認(rèn)證機(jī)制。本系統(tǒng)把SOCKSv5代理服務(wù)與可擴(kuò)展認(rèn)證協(xié)議(EAP)聯(lián)合起來(lái),形成了可擴(kuò)展的代理認(rèn)證子體系——基于SOCKSv5與EAP聯(lián)合的代理認(rèn)證服務(wù)器,從而彌補(bǔ)了防火墻代理服務(wù)在支持多種認(rèn)證機(jī)制中的不足,提高了用戶(hù)身份認(rèn)證的靈活性、訪問(wèn)控制的可靠性,并為授權(quán)管理中的鑒定權(quán)限問(wèn)題提供了有效的解決途徑。
1 SOCKSv5的結(jié)構(gòu)和原理
1.1 SOCKSv5的結(jié)構(gòu)
隨著網(wǎng)絡(luò)安全技術(shù)的不斷發(fā)展,防火墻怎樣適應(yīng)于不斷出現(xiàn)的應(yīng)用服務(wù)和安全服務(wù)成了迫切需要解決的問(wèn)題。SOCKS代理服務(wù)技術(shù)成為解決該問(wèn)題的有效途徑。SOCKS主要由運(yùn)行在防火墻系統(tǒng)上的代理服務(wù)器軟件包和鏈接到各種網(wǎng)絡(luò)應(yīng)用程序的庫(kù)函數(shù)包組成。這樣的結(jié)構(gòu)可以使用戶(hù)根據(jù)自己的需要制定代理軟件,有利于增添新的應(yīng)用,從而不斷地?cái)U(kuò)展SOCKS的功能。SOCKSv5是SOCKS協(xié)議的最新版本,它是SOCKSv4功能的延伸,它支持創(chuàng)建UDP代理,并把協(xié)議結(jié)構(gòu)擴(kuò)展為支持強(qiáng)認(rèn)證機(jī)制,把地址方案擴(kuò)展到包含域名和IPv6尋址。
1.2 協(xié)議原理
SOCKSv5在OSI模型的會(huì)話(huà)層控制數(shù)據(jù)流,它定義了非常詳細(xì)的訪問(wèn)控制。SOCKSv5在客戶(hù)機(jī)和應(yīng)用服務(wù)器主機(jī)之間建立了一條虛電路,可根據(jù)認(rèn)證對(duì)用戶(hù)進(jìn)行監(jiān)視和訪問(wèn)控制。用SOCKSv5的代理服務(wù)器可隱藏內(nèi)部網(wǎng)的網(wǎng)絡(luò)地址結(jié)構(gòu)。同防火墻結(jié)合起來(lái)使用時(shí),數(shù)據(jù)包通過(guò)惟一的防火墻端口(默認(rèn)為1080)到SOCKSv5代理服務(wù)器,然后代理服務(wù)器過(guò)濾發(fā)往目標(biāo)主機(jī)的數(shù)據(jù)。同時(shí),它能為認(rèn)證、加密和密鑰管理模塊提供插件模塊,使用戶(hù)自由地采用他們所需的技術(shù),從而為靈活、廣泛地應(yīng)用SOCKSv5協(xié)議奠定了良好的基礎(chǔ)。其協(xié)議過(guò)程如下:
(1)當(dāng)TCP的應(yīng)用客戶(hù)希望建立一個(gè)只有經(jīng)過(guò)防火墻才能到達(dá)目標(biāo)應(yīng)用服務(wù)器的連接時(shí),它打開(kāi)一個(gè)到SOCKSv5服務(wù)器系統(tǒng)上適當(dāng)端口的連接。SOCKSv5服務(wù)在TCP上的端口通常為1080。
(2)如果連接請(qǐng)求成功,即客戶(hù)連接上了SOCKSv5服務(wù)器,則客戶(hù)端發(fā)送一個(gè)消息,其中包含SOCKSv5的版本號(hào)以及一種或多種認(rèn)證方案。SOCKSv5服務(wù)器選擇客戶(hù)提供的諸多方法中的一種返回給客戶(hù)端。
(3)客戶(hù)端接收到該消息后,針對(duì)將要使用的具體認(rèn)證方法與SOCKSv5服務(wù)器協(xié)商,并用協(xié)商好的方法進(jìn)行認(rèn)證,然后發(fā)送代理請(qǐng)求。
(4)SOCKSv5服務(wù)器檢查該請(qǐng)求,據(jù)檢查結(jié)果決定是建立適當(dāng)?shù)拇砘芈愤€是拒絕該請(qǐng)求。同時(shí)給客戶(hù)發(fā)送代理回路狀態(tài)。客戶(hù)檢查代理狀態(tài)。
(5)代理服務(wù)器開(kāi)始中繼應(yīng)用協(xié)議的數(shù)據(jù)。
2 可擴(kuò)展認(rèn)證協(xié)議的內(nèi)容及應(yīng)用
2.1 協(xié)議內(nèi)容
可擴(kuò)展認(rèn)證協(xié)議是PPP認(rèn)證的一般協(xié)議,它支持多種認(rèn)證機(jī)制。EAP在連接控制階段不會(huì)選擇某種特定的認(rèn)證機(jī)制,而是在認(rèn)證階段選擇。這允許認(rèn)證者在決定特定的認(rèn)證機(jī)制之前請(qǐng)求更多的信息。同時(shí)也允許使用后端服務(wù)器來(lái)執(zhí)行各種認(rèn)證,而PPP認(rèn)證者只用來(lái)傳遞認(rèn)證的信息。協(xié)議過(guò)程如下。
(1)認(rèn)證者和對(duì)方建立連接控制。
(2)連接建立階段完成之后,認(rèn)證者發(fā)送一個(gè)或更多的認(rèn)證請(qǐng)求。請(qǐng)求的類(lèi)型包含身份、MD5-挑戰(zhàn)、一次性口令、一般的標(biāo)識(shí)卡等。MD5-挑戰(zhàn)類(lèi)型緊密地對(duì)應(yīng)于CHAP認(rèn)證協(xié)議。在典型的模式中,認(rèn)證者在發(fā)送一個(gè)或多個(gè)對(duì)認(rèn)證信息的請(qǐng)求之后,將發(fā)送一個(gè)初始的身份請(qǐng)求。但初始的身份請(qǐng)求并不是協(xié)議要求的,在身份可以推測(cè)的情況下它有可能被取消。
(3)對(duì)方發(fā)送應(yīng)答包來(lái)答復(fù)每個(gè)請(qǐng)求。應(yīng)答包的類(lèi)型域與請(qǐng)求包相同。
(4)認(rèn)證者發(fā)送認(rèn)證成功或失敗包來(lái)結(jié)束認(rèn)證階段。
在默認(rèn)的情況下,EAP以代理模式運(yùn)行,即EAP允許網(wǎng)絡(luò)訪問(wèn)服務(wù)器和后端服務(wù)器協(xié)商整個(gè)認(rèn)證過(guò)程??蛻?hù)和網(wǎng)絡(luò)接入服務(wù)器(NAS)在連接控制協(xié)議交流期間進(jìn)行EAP協(xié)議的協(xié)商,更進(jìn)一步的認(rèn)證消息均在客戶(hù)和后端服務(wù)器之間被傳輸。網(wǎng)絡(luò)接入服務(wù)器不再直接參與認(rèn)證過(guò)程,而是作為代理者在二個(gè)遠(yuǎn)端之間中繼信息。
2.2 應(yīng) 用
任意一個(gè)認(rèn)證機(jī)制都可使用EAP驗(yàn)證遠(yuǎn)程訪問(wèn)連接。在遠(yuǎn)程客戶(hù)和認(rèn)證者(遠(yuǎn)程訪問(wèn)服務(wù)器或者因特網(wǎng)認(rèn)證服務(wù)器)之間需要協(xié)商好將要使用的認(rèn)證機(jī)制。EAP可支持多種認(rèn)證機(jī)制,諸如通用標(biāo)識(shí)卡、MD5-挑戰(zhàn)、S/Key以及未來(lái)的任何認(rèn)證技術(shù)。
EAP允許遠(yuǎn)程客戶(hù)和認(rèn)證者之間自由會(huì)話(huà)。會(huì)話(huà)包含認(rèn)證者對(duì)認(rèn)證信息的請(qǐng)求和遠(yuǎn)程客戶(hù)的應(yīng)答。例如,當(dāng)EAP通過(guò)安全標(biāo)示卡來(lái)實(shí)現(xiàn)時(shí),認(rèn)證者可獨(dú)立地詢(xún)問(wèn)遠(yuǎn)程客戶(hù)的名字、PIN以及卡的標(biāo)識(shí)值,直到遠(yuǎn)程客戶(hù)回答完所有問(wèn)題,認(rèn)證才成功地結(jié)束。為了實(shí)現(xiàn)成功驗(yàn)證,遠(yuǎn)程訪問(wèn)客戶(hù)和認(rèn)證者必須支持相同的EAP類(lèi)型。
EAP-RADIUS不是一種EAP類(lèi)型,而是任何EAP類(lèi)型的信息通過(guò)認(rèn)證者(遠(yuǎn)程訪問(wèn)服務(wù)器或IAS)到達(dá)RADIUS的傳輸過(guò)程。例如,對(duì)用于支持RADIUS認(rèn)證的遠(yuǎn)程訪問(wèn)服務(wù)器來(lái)說(shuō),在遠(yuǎn)程訪問(wèn)客戶(hù)和遠(yuǎn)程訪問(wèn)服務(wù)器之間的EAP消息將被封裝和格式化為遠(yuǎn)程訪問(wèn)服務(wù)器和RADIUS服務(wù)器之間的RADIUS消息。
EAP-RADIUS適用于RADIUS作為認(rèn)證提供者的環(huán)境。使用EAP-RADIUS的優(yōu)點(diǎn)在于EAP類(lèi)型不必嵌入在每個(gè)遠(yuǎn)程訪問(wèn)服務(wù)器上,而只需嵌入到RADIUS服務(wù)器上。
在EAP-RADIUS的典型使用情況中,Windows 2000遠(yuǎn)程訪問(wèn)服務(wù)器配置為可與EAP和IAS服務(wù)器結(jié)合來(lái)用于認(rèn)證。一個(gè)連接成功創(chuàng)建后,遠(yuǎn)程訪問(wèn)客戶(hù)與遠(yuǎn)程訪問(wèn)服務(wù)器協(xié)商EAP的使用。當(dāng)客戶(hù)發(fā)送一個(gè)EAP消息給遠(yuǎn)程訪問(wèn)服務(wù)器時(shí),遠(yuǎn)程訪問(wèn)服務(wù)器把EAP消息包裝成一個(gè)RADIUS消息,并把它發(fā)送給配置好的IAS服務(wù)器。IAS服務(wù)器處理EAP消息,同時(shí)返回一個(gè)封裝了RADIUS的EAP消息給遠(yuǎn)程訪問(wèn)服務(wù)器。遠(yuǎn)程訪問(wèn)服務(wù)器把EAP消息提交給遠(yuǎn)程訪問(wèn)客戶(hù)。在這種配置中,遠(yuǎn)程訪問(wèn)服務(wù)只是一個(gè)中繼設(shè)備。遠(yuǎn)程訪問(wèn)客戶(hù)和IAS服務(wù)器負(fù)責(zé)所有EAP消息的處理。
3 SOCKSv5-EAP代理認(rèn)證服務(wù)器的設(shè)計(jì)
3.1 代理認(rèn)證模塊的結(jié)構(gòu)
EAP協(xié)議允許防火墻在SOCKSv5認(rèn)證方法階段不必預(yù)先商定具體的認(rèn)證機(jī)制。它支持所有的EAP認(rèn)證的擴(kuò)展機(jī)制,認(rèn)證服務(wù)器可根據(jù)用戶(hù)的身份來(lái)決定認(rèn)證機(jī)制的類(lèi)型。這就允許SOCKS服務(wù)器在決定之前認(rèn)證機(jī)制可以向用戶(hù)請(qǐng)求更多的信息。并且可以使用一個(gè)后端服務(wù)器來(lái)專(zhuān)門(mén)執(zhí)行各種不同的認(rèn)證,這使得支持EAP功能的RADIUS服務(wù)器可以用作后端服務(wù)器進(jìn)行各種不同的認(rèn)證。代理認(rèn)證模塊結(jié)構(gòu)如圖1所示。

3.2 SOCKSv5-EAP的協(xié)商過(guò)程
(1)SOCKSv5認(rèn)證方法協(xié)商階段,EAP并不進(jìn)行明確的認(rèn)證機(jī)制的選擇,而是在SOCKS基于認(rèn)證方法的子協(xié)商階段才選定認(rèn)證機(jī)制。SOCKS服務(wù)器除了用于傳遞認(rèn)證信息之外,還能進(jìn)行簡(jiǎn)單的訪問(wèn)控制、過(guò)濾和認(rèn)證。
(2)一旦TCP連接在客戶(hù)和SOCKS服務(wù)器間建立,客戶(hù)發(fā)送一個(gè)包含版本標(biāo)識(shí)符和方法選擇集的消息。服務(wù)器從METHODS所給的方法中選擇一種。
(3)在SOCKSv5認(rèn)證方法被協(xié)商確定后,RADIUS服務(wù)器發(fā)送一個(gè)或多個(gè)請(qǐng)求信息來(lái)認(rèn)證SOCKSv5客戶(hù)。請(qǐng)求中的類(lèi)型域用于指明被請(qǐng)求的內(nèi)容,包括身份、MD5-挑戰(zhàn)、一次性口令和一般的認(rèn)證卡等。MD5-挑戰(zhàn)類(lèi)型與挑戰(zhàn)握手協(xié)議(CHAP)相對(duì)應(yīng)。典型情況下,在請(qǐng)求更多的認(rèn)證信息之前,SOCKSv5服務(wù)器發(fā)送一個(gè)初始的身份請(qǐng)求。
(4)應(yīng)答包包含的類(lèi)型域與請(qǐng)求的類(lèi)型域相同。SOCKS或RADIUS服務(wù)器將用一個(gè)認(rèn)證成功或失敗包來(lái)結(jié)束認(rèn)證階段。
(5)SOCKSv5服務(wù)器在客戶(hù)和認(rèn)證服務(wù)器RADIUS之間不停地中繼雙方發(fā)出的EAP包。
3.3 協(xié)商過(guò)程中各種包的格式
(1)SOCKS/RADIUS服務(wù)器請(qǐng)求包以及對(duì)方應(yīng)答包的摘要如圖2所示。

VER標(biāo)識(shí)子協(xié)商的當(dāng)前版本;CODE標(biāo)識(shí)EAP請(qǐng)求(值為1)或EAP應(yīng)答(值為2);ID域負(fù)責(zé)輔助匹配請(qǐng)求和應(yīng)答;TYPE域標(biāo)識(shí)請(qǐng)求或應(yīng)答類(lèi)型(身份、通知、NAK、MD5-Challege、一次性口令和一般的認(rèn)證卡),一般來(lái)說(shuō)請(qǐng)求類(lèi)型和應(yīng)答類(lèi)型應(yīng)相同。
(2)EAP包的格式如圖3所示。

其中CODE域標(biāo)識(shí)EAP請(qǐng)求或EAP應(yīng)答;LENGTH域標(biāo)識(shí)EAP包的長(zhǎng)度;DATA域的格式由CODE域決定。
4 基于SOCKSv5-EAP代理認(rèn)證服務(wù)器的認(rèn)證系統(tǒng)
4.1 系統(tǒng)結(jié)構(gòu)
該系統(tǒng)主要由SOCKSv5-EAP代理認(rèn)證服務(wù)器、安全管理終端、應(yīng)用客戶(hù)端、資源服務(wù)器組成。系統(tǒng)結(jié)構(gòu)圖如圖4所示。

SOCKSv5-EAP代理認(rèn)證服務(wù)器主要由SOCKSv5服務(wù)器和RADIUS服務(wù)器共同組成。其中RADIUS服務(wù)器作為后臺(tái)服務(wù)器,具有鑒權(quán)功能。安全管理終端主要由授權(quán)發(fā)布機(jī)構(gòu)、證書(shū)管理中心和證書(shū)庫(kù)組成。
4.2 系統(tǒng)流程
(1)當(dāng)客戶(hù)要訪問(wèn)資源時(shí),客戶(hù)通過(guò)代理認(rèn)證服務(wù)器進(jìn)行身份認(rèn)證。認(rèn)證過(guò)程如下。
①SOCKSv5客戶(hù)向SOCKSv5服務(wù)器發(fā)送版本標(biāo)識(shí)/方法選集消息,SOCKSv5服務(wù)器收到該消息,從METHODS中選擇一種方法,并回應(yīng)給客戶(hù)。EAP將使用METHODS域中的下列標(biāo)志:(TDB)Extensible Authentication Protocol。
?、诜椒▍f(xié)商結(jié)束,雙方進(jìn)入依賴(lài)方法的子協(xié)商階段。在此階段,RADIUS服務(wù)器向客戶(hù)發(fā)請(qǐng)求,客戶(hù)對(duì)每個(gè)請(qǐng)求作應(yīng)答,RADIUS服務(wù)器根據(jù)客戶(hù)情況決定出一種認(rèn)證機(jī)制。請(qǐng)求中包括請(qǐng)求的類(lèi)型。
?、鄞砘芈返慕㈦A段。客戶(hù)發(fā)出代理請(qǐng)求,SOCKSv5服務(wù)器根據(jù)自己的規(guī)則初步判斷是否允許代理,如果允許,則建立常規(guī)的SOCKSv5代理回路。否則拒絕,不予代理。代理回路建立后,SOCKSv5服務(wù)器開(kāi)始在客戶(hù)與RADIUS服務(wù)器之間不間斷地傳送EAP包。認(rèn)證在進(jìn)行中。
(2)用所決定出的認(rèn)證機(jī)制認(rèn)證完畢后,代理認(rèn)證服務(wù)器把包含身份和權(quán)限屬性的認(rèn)證結(jié)果交給授權(quán)發(fā)布機(jī)構(gòu),授權(quán)發(fā)布機(jī)構(gòu)把權(quán)限證書(shū)離線(xiàn)發(fā)布給客戶(hù)。
(3)客戶(hù)把證書(shū)信息提交給SOCKSv5服務(wù)器,由SOCKSv5中轉(zhuǎn)給RADIUS服務(wù)器來(lái)鑒定證書(shū)的權(quán)限。
(4)鑒定權(quán)限通過(guò)后,RADIUS服務(wù)器發(fā)送給SOCKSv5服務(wù)器一個(gè)認(rèn)證成功包,告訴它客戶(hù)通過(guò)了權(quán)限的鑒定,SOCKSv5把此消息中轉(zhuǎn)給客戶(hù),SOCKSv5服務(wù)器啟動(dòng)客戶(hù)與應(yīng)用資源服務(wù)器之間的代理回路,進(jìn)行應(yīng)用數(shù)據(jù)的中繼。
(5)授權(quán)發(fā)布機(jī)構(gòu)根據(jù)證書(shū)的有效期撤消證書(shū),同時(shí)通知代理認(rèn)證服務(wù)器證書(shū)過(guò)期。
5 結(jié)束語(yǔ)
本文在介紹SOCKSv5協(xié)議、EAP的基礎(chǔ)上,設(shè)計(jì)了一個(gè)代理認(rèn)證服務(wù)器,在很大程度上提高了用戶(hù)身份認(rèn)證和訪問(wèn)控制技術(shù)的靈活性。同時(shí),它也為授權(quán)管理提供了一種靈活驗(yàn)證授權(quán)的技術(shù)方法。該方法解決了防火墻協(xié)議對(duì)不斷擴(kuò)展的認(rèn)證機(jī)制的支持問(wèn)題。該技術(shù)可與其他網(wǎng)絡(luò)安全技術(shù)諸如授權(quán)管理等相結(jié)合,形成比較完善的并可以不斷擴(kuò)展的安全體系。
參考文獻(xiàn)
1 楚狂,梁寧,吳永義等.網(wǎng)絡(luò)安全與防火墻技術(shù).北京:人民郵電出版社,2000
2 江學(xué)爭(zhēng),王亞弟.基于RADIUS的身份認(rèn)證系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn).電子技術(shù)學(xué)院學(xué)報(bào),2002;12(4)
3 Otenko O.PMI Components.http://sec.isi.salfordac.uk/,2002-12-02
