一種代理認證服務(wù)器的設計
一個(gè)良好的防火墻系統應具備安全可靠性高、透明性好、能供多種高效率的服務(wù) ,且具有實(shí)現簡(jiǎn)捷、可維護性、擴充性、移植性好的特點(diǎn)。SOCKSV5基于這樣的需求提出了一定規范,主要支持用戶(hù)名與口令認證和通用安全應用程序接口 ,從而實(shí)現了Kerberos。把SOCKSv5代理服務(wù)與可擴展認證協(xié)議(EAP)聯(lián)合起來(lái),形成了基于SOCKSv5與EAP聯(lián)合的代理認證服務(wù)器,從而彌補了防火墻代理服務(wù)在支持多種認證機制中的不足,提高了用戶(hù)身份認證的靈活性、訪(fǎng)問(wèn)控制的可靠性。
本文引用地址:http://dyxdggzs.com/article/149789.htm1 SOCKSv5的結構和原理
1.1 SOCKSv5的結構
SOCKS5 是一個(gè)代理協(xié)議,它在使用 TCP/IP協(xié)議通訊的前端機器和服務(wù)器機器之間扮演一個(gè)中介角色,使得內部網(wǎng)中的前端機器變得能夠訪(fǎng)問(wèn)Internet網(wǎng)中的服務(wù)器,或者使通訊更加安全。SOCKS5 服務(wù)器通過(guò)將前端發(fā)來(lái)的請求轉發(fā)給真正的目標服務(wù)器, 模擬了一個(gè)前端的行為。在這里,前端和SOCKS5之間也是通過(guò)TCP/IP協(xié)議進(jìn)行通訊,前端將原本要發(fā)送給真正服務(wù)器的請求發(fā)送給SOCKS5服務(wù)器,然后SOCKS5服務(wù)器將請求轉發(fā)給真正的服務(wù)器。
隨著(zhù)網(wǎng)絡(luò )安全技術(shù)的不斷發(fā)展,防火墻怎樣適應于不斷出現的應用服務(wù)和安全服務(wù)成了迫切需要解決的問(wèn)題。SOCKS代理服務(wù)技術(shù)成為解決該問(wèn)題的有效途徑。SOCKS主要由運行在防火墻系統上的代理服務(wù)器軟件包和鏈接到各種網(wǎng)絡(luò )應用程序的庫函數包組成。這樣的結構可以使用戶(hù)根據自己的需要制定代理軟件,有利于增添新的應用,從而不斷地擴展SOCKS的功能。
1.2 協(xié)議原理
SOCKSv5在OSI模型的會(huì )話(huà)層控制數據流,它定義了非常詳細的訪(fǎng)問(wèn)控制。SOCKSv5在客戶(hù)機和應用服務(wù)器主機之間建立了一條虛電路,可根據認證對用戶(hù)進(jìn)行監視和訪(fǎng)問(wèn)控制。用SOCKSv5的代理服務(wù)器可隱藏內部網(wǎng)的網(wǎng)絡(luò )地址結構。同防火墻結合起來(lái)使用時(shí),數據包通過(guò)惟一的防火墻端口到SOCKSv5代理服務(wù)器,然后代理服務(wù)器過(guò)濾發(fā)往目標主機的數據。其協(xié)議過(guò)程如下:
(1)當TCP的應用客戶(hù)希望建立一個(gè)只有經(jīng)過(guò)防火墻才能到達目標應用服務(wù)器的連接時(shí),它打開(kāi)一個(gè)到SOCKSv5服務(wù)器系統上適當端口的連接。SOCKSv5服務(wù)在TCP上的端口通常為1080。
(2)如果連接請求成功,即客戶(hù)連接上了SOCKSv5服務(wù)器,則客戶(hù)端發(fā)送一個(gè)消息,其中包含SOCKSv5的版本號以及一種或多種認證方案。SOCKSv5服務(wù)器選擇客戶(hù)提供的諸多方法中的一種返回給客戶(hù)端。
(3)客戶(hù)端接收到該消息后,針對將要使用的具體認證方法與SOCKSv5服務(wù)器協(xié)商,并用協(xié)商好的方法進(jìn)行認證,然后發(fā)送代理請求。
(4)SOCKSv5服務(wù)器檢查該請求,據檢查結果決定是建立適當的代理回路還是拒絕該請求。同時(shí)給客戶(hù)發(fā)送代理回路狀態(tài)??蛻?hù)檢查代理狀態(tài)。
(5)代理服務(wù)器開(kāi)始中繼應用協(xié)議的數據。
2 可擴展認證協(xié)議的內容及應用
2.1 協(xié)議內容
可擴展認證協(xié)議是PPP認證的一般協(xié)議,它支持多種認證機制。EAP在連接控制階段不會(huì )選擇某種特定的認證機制,而是在認證階段選擇。同時(shí)也允許使用后端服務(wù)器來(lái)執行各種認證,而PPP認證者只用來(lái)傳遞認證的信息。協(xié)議過(guò)程如下。
(1)認證者和對方建立連接控制。
(2)連接建立階段完成之后,認證者發(fā)送一個(gè)或更多的認證請求。請求的類(lèi)型包含身份、MD5-挑戰、一次性口令、一般的標識卡等。MD5-挑戰類(lèi)型緊密地對應于CHAP認證協(xié)議。在典型的模式中,認證者在發(fā)送一個(gè)或多個(gè)對認證信息的請求之后,將發(fā)送一個(gè)初始的身份請求。但初始的身份請求并不是協(xié)議要求的,在身份可以推測的情況下它有可能被取消。
(3)對方發(fā)送應答包來(lái)答復每個(gè)請求。應答包的類(lèi)型域與請求包相同。
(4)認證者發(fā)送認證成功或失敗包來(lái)結束認證階段。
在默認的情況下,EAP以代理模式運行,即EAP允許網(wǎng)絡(luò )訪(fǎng)問(wèn)服務(wù)器和后端服務(wù)器協(xié)商整個(gè)認證過(guò)程??蛻?hù)和網(wǎng)絡(luò )接入服務(wù)器(NAS)在連接控制協(xié)議交流期間進(jìn)行EAP協(xié)議的協(xié)商,更進(jìn)一步的認證消息均在客戶(hù)和后端服務(wù)器之間被傳輸。網(wǎng)絡(luò )接入服務(wù)器不再直接參與認證過(guò)程,而是作為代理者在二個(gè)遠端之間中繼信息。
2.2 應 用
任意一個(gè)認證機制都可使用EAP驗證遠程訪(fǎng)問(wèn)連接。在遠程客戶(hù)和認證者(遠程訪(fǎng)問(wèn)服務(wù)器或者因特網(wǎng)認證服務(wù)器)之間需要協(xié)商好將要使用的認證機制。EAP可支持多種認證機制,諸如通用標識卡、MD5-挑戰、S/Key以及未來(lái)的任何認證技術(shù)。
EAP允許遠程客戶(hù)和認證者之間自由會(huì )話(huà)。會(huì )話(huà)包含認證者對認證信息的請求和遠程客戶(hù)的應答。例如,當EAP通過(guò)安全標示卡來(lái)實(shí)現時(shí),認證者可獨立地詢(xún)問(wèn)遠程客戶(hù)的名字、PIN以及卡的標識值,直到遠程客戶(hù)回答完所有問(wèn)題,認證才成功地結束。
EAP-RADIUS不是一種EAP類(lèi)型,而是任何EAP類(lèi)型的信息通過(guò)認證者(遠程訪(fǎng)問(wèn)服務(wù)器或IAS)到達RADIUS的傳輸過(guò)程。例如,對用于支持RADIUS認證的遠程訪(fǎng)問(wèn)服務(wù)器來(lái)說(shuō),在遠程訪(fǎng)問(wèn)客戶(hù)和遠程訪(fǎng)問(wèn)服務(wù)器之間的EAP消息將被封裝和格式化為遠程訪(fǎng)問(wèn)服務(wù)器和RADIUS服務(wù)器之間的RADIUS消息。
EAP-RADIUS適用于RADIUS作為認證提供者的環(huán)境。使用EAP-RADIUS的優(yōu)點(diǎn)在于EAP類(lèi)型不必嵌入在每個(gè)遠程訪(fǎng)問(wèn)服務(wù)器上,而只需嵌入到RADIUS服務(wù)器上。
在EAP-RADIUS的典型使用情況中,Windows 2000遠程訪(fǎng)問(wèn)服務(wù)器配置為可與EAP和IAS服務(wù)器結合來(lái)用于認證。一個(gè)連接成功創(chuàng )建后,遠程訪(fǎng)問(wèn)客戶(hù)與遠程訪(fǎng)問(wèn)服務(wù)器協(xié)商EAP的使用。當客戶(hù)發(fā)送一個(gè)EAP消息給遠程訪(fǎng)問(wèn)服務(wù)器時(shí),遠程訪(fǎng)問(wèn)服務(wù)器把EAP消息包裝成一個(gè)RADIUS消息,并把它發(fā)送給配置好的IAS服務(wù)器。IAS服務(wù)器處理EAP消息,同時(shí)返回一個(gè)封裝了RADIUS的EAP消息給遠程訪(fǎng)問(wèn)服務(wù)器。遠程訪(fǎng)問(wèn)服務(wù)器把EAP消息提交給遠程訪(fǎng)問(wèn)客戶(hù)。在這種配置中,遠程訪(fǎng)問(wèn)服務(wù)只是一個(gè)中繼設備。遠程訪(fǎng)問(wèn)客戶(hù)和IAS服務(wù)器負責所有EAP消息的處理。
3.1 代理認證模塊的結構
EAP協(xié)議允許防火墻在SOCKSv5認證方法階段不必預先商定具體的認證機制。它支持所有的EAP認證的擴展機制,認證服務(wù)器可根據用戶(hù)的身份來(lái)決定認證機制的類(lèi)型。這就允許SOCKS服務(wù)器在決定之前認證機制可以向用戶(hù)請求更多的信息。并且可以使用一個(gè)后端服務(wù)器來(lái)專(zhuān)門(mén)執行各種不同的認證,這使得支持EAP功能的RADIUS服務(wù)器可以用作后端服務(wù)器進(jìn)行各種不同的認證。
3.2 SOCKSv5-EAP的協(xié)商過(guò)程
(1)SOCKSv5認證方法協(xié)商階段,EAP并不進(jìn)行明確的認證機制的選擇,而是在SOCKS基于認證方法的子協(xié)商階段才選定認證機制。SOCKS服務(wù)器除了用于傳遞認證信息之外,還能進(jìn)行簡(jiǎn)單的訪(fǎng)問(wèn)控制、過(guò)濾和認證。
(2)一旦TCP連接在客戶(hù)和SOCKS服務(wù)器間建立,客戶(hù)發(fā)送一個(gè)包含版本標識符和方法選擇集的消息。
(3)在SOCKSv5認證方法被協(xié)商確定后,RADIUS服務(wù)器發(fā)送一個(gè)或多個(gè)請求信息來(lái)認證SOCKSv5客戶(hù)。請求中的類(lèi)型域用于指明被請求的內容,包括身份、MD5-挑戰、一次性口令和一般的認證卡等。MD5-挑戰類(lèi)型與挑戰握手協(xié)議相對應。
(4)應答包包含的類(lèi)型域與請求的類(lèi)型域相同。SOCKS或RADIUS服務(wù)器將用一個(gè)認證成功或失敗包來(lái)結束認證階段。
(5)SOCKSv5服務(wù)器在客戶(hù)和認證服務(wù)器RADIUS之間不停地中繼雙方發(fā)出的EAP包。
3.3 協(xié)商過(guò)程中各種包的格式
(1)SOCKS/RADIUS服務(wù)器請求包以及對方應答包的摘要如圖2所示。
VER標識子協(xié)商的當前版本;CODE標識EAP請求或EAP應答;ID域負責輔助匹配請求和應答;TYPE域標識請求或應答類(lèi)型,一般來(lái)說(shuō)請求類(lèi)型和應答類(lèi)型應相同。
(2)EAP包的格式如圖3所示。
其中CODE域標識EAP請求或EAP應答;LENGTH域標識EAP包的長(cháng)度;DATA域的格式由CODE域決定。
4 基于SOCKSv5-EAP代理認證服務(wù)器的認證系統
4.1 系統結構
該系統主要由SOCKSv5-EAP代理認證服務(wù)器、安全管理終端、應用客戶(hù)端、資源服務(wù)器組成。系統結構圖如圖4所示。
SOCKSv5-EAP代理認證服務(wù)器主要由SOCKSv5服務(wù)器和RADIUS服務(wù)器共同組成。其中RADIUS服務(wù)器作為后臺服務(wù)器,具有鑒權功能。安全管理終端主要由授權發(fā)布機構、證書(shū)管理中心和證書(shū)庫組成。
4.2 系統流程
(1)當客戶(hù)要訪(fǎng)問(wèn)資源時(shí),客戶(hù)通過(guò)代理認證服務(wù)器進(jìn)行身份認證。認證過(guò)程如下:
①SOCKSv5客戶(hù)向SOCKSv5服務(wù)器發(fā)送版本標識/方法選集消息,SOCKSv5服務(wù)器收到該消息,從METHODS中選擇一種方法,并回應給客戶(hù)。EAP將使用METHODS域中的下列標志:Extensible AuthenticatiON Protocol。
②方法協(xié)商結束,雙方進(jìn)入依賴(lài)方法的子協(xié)商階段。在此階段,RADIUS服務(wù)器向客戶(hù)發(fā)請求,客戶(hù)對每個(gè)請求作應答,RADIUS服務(wù)器根據客戶(hù)情況決定出一種認證機制。請求中包括請求的類(lèi)型。
③代理回路的建立階段??蛻?hù)發(fā)出代理請求,SOCKSv5服務(wù)器根據自己的規則初步判斷是否允許代理,如果允許,則建立常規的SOCKSv5代理回路。否則拒絕,不予代理。代理回路建立后,SOCKSv5服務(wù)器開(kāi)始在客戶(hù)與RADIUS服務(wù)器之間不間斷地傳送EAP包。
(2)用所決定出的認證機制認證完畢后,代理認證服務(wù)器把包含身份和權限屬性的認證結果交給授權發(fā)布機構,授權發(fā)布機構把權限證書(shū)離線(xiàn)發(fā)布給客戶(hù)。
(3)客戶(hù)把證書(shū)信息提交給SOCKSv5服務(wù)器,由SOCKSv5中轉給RADIUS服務(wù)器來(lái)鑒定證書(shū)的權限。
(4)鑒定權限通過(guò)后,RADIUS服務(wù)器發(fā)送給SOCKSv5服務(wù)器一個(gè)認證成功包,告訴它客戶(hù)通過(guò)了權限的鑒定,SOCKSv5把此消息中轉給客戶(hù),SOCKSv5服務(wù)器啟動(dòng)客戶(hù)與應用資源服務(wù)器之間的代理回路,進(jìn)行應用數據的中繼。
(5)授權發(fā)布機構根據證書(shū)的有效期撤消證書(shū),同時(shí)通知代理認證服務(wù)器證書(shū)過(guò)期。
5 結束語(yǔ)
本文在介紹SOCKSv5協(xié)議、EAP的基礎上,設計了一個(gè)代理認證服務(wù)器,在很大程度上提高了用戶(hù)身份認證和訪(fǎng)問(wèn)控制技術(shù)的靈活性。該方法解決了防火墻協(xié)議對不斷擴展的認證機制的支持問(wèn)題。該技術(shù)可與其他網(wǎng)絡(luò )安全技術(shù)諸如授權管理等相結合,形成比較完善的并可以不斷擴展的安全體系。
評論