摘 要: 闡述了SSL VPN隧道技術(shù)以及它在實際項目中的應(yīng)用。介紹VPN技術(shù)的產(chǎn)生背景和采用的關(guān)鍵技術(shù),對新興的VPN解決方案——SSL VPN隧道協(xié)議原理進(jìn)行分析研究;結(jié)合實際項目情況,介紹了SSL VPN在教育城域網(wǎng)中的應(yīng)用實現(xiàn);對SSL VPN技術(shù)現(xiàn)有優(yōu)勢和適用范圍做出總結(jié)。
關(guān)鍵詞: 虛擬專用網(wǎng);隧道技術(shù);隧道協(xié)議;SSL
隨著現(xiàn)代企事業(yè)單位業(yè)務(wù)的多樣化發(fā)展和單位本身需求的不斷增長,單位總部與分部之間、出差員工之間的聯(lián)系日趨緊密。怎樣利用公共互聯(lián)網(wǎng)建立一個安全的、專用的網(wǎng)絡(luò)以實現(xiàn)單位、員工之間的信息交流和信息共享已成為時代之需。專用線路(如幀中繼、DDN、ATM等)因其成本高、不靈活且資源不能合理利用而令很多企業(yè)望而卻步,虛擬專用網(wǎng)VPN(Virtual Private Network)的出現(xiàn)可以從根本上滿足企事業(yè)用戶的低通信費(fèi)和高靈活性的雙重需求,更重要的是它可以提供與專線相媲美的通信安全保障,是一種低成本、安全、靈活的遠(yuǎn)程網(wǎng)絡(luò)接入解決方案[1]。SSL VPN作為VPN新技術(shù)的一種,因其簡潔的Web登錄模式、較低的維護(hù)管理費(fèi)用和良好的安全性逐漸被廣泛關(guān)注。
1 隧道技術(shù)
隧道技術(shù)是實現(xiàn)VPN的關(guān)鍵技術(shù)之一,也是VPN技術(shù)的核心。VPN就是依靠隧道技術(shù)跨越基于IP協(xié)議的公用網(wǎng)絡(luò)建立起來的一條透明的虛擬通道,可達(dá)到公網(wǎng)虛擬專用的目的,這個虛擬通道即稱為一個隧道。
隧道技術(shù)的核心是隧道協(xié)議[1]。為建立一個隧道,隧道兩端的客戶機(jī)和服務(wù)器必須使用相同的隧道協(xié)議。隧道協(xié)議用附加的帶有路由信息的報頭封裝數(shù)據(jù)幀,它規(guī)定了隧道建立、維護(hù)、刪除規(guī)則以及數(shù)據(jù)在隧道中的封裝及傳輸原理。隧道可以在TCP/IP網(wǎng)絡(luò)模型的任何一層上建立。按照封裝后的數(shù)據(jù)包在OSI參考模型傳輸層次的不同,隧道協(xié)議可分為第二層協(xié)議、第三層協(xié)議以及上層(Upper Layer)隧道協(xié)議。VPN技術(shù)各層隧道協(xié)議與OSI參考模型對應(yīng)關(guān)系如圖1所示[2]。
第二層隧道協(xié)議也稱數(shù)據(jù)鏈路層隧道協(xié)議,在網(wǎng)絡(luò)中的數(shù)據(jù)鏈路層運(yùn)行。先把各種網(wǎng)絡(luò)協(xié)議封裝到PPP包中,再把整個數(shù)據(jù)包裝入隧道協(xié)議中,這種經(jīng)過兩層封裝的數(shù)據(jù)包由第二層協(xié)議進(jìn)行傳輸。第二層隧道協(xié)議有L2F、PPTP、L2TP等。
第三層隧道協(xié)議也稱網(wǎng)絡(luò)層隧道協(xié)議,在網(wǎng)絡(luò)層運(yùn)行。把各種網(wǎng)絡(luò)協(xié)議直接裝入隧道協(xié)議中,形成的數(shù)據(jù)包依靠第三層協(xié)議進(jìn)行傳輸。第三層隧道協(xié)議主要有GRE和IPSec等。
上層(Upper Layer)隧道協(xié)議在傳輸層或其上層運(yùn)行。把上層傳來的數(shù)據(jù)進(jìn)行加密等處理后,由傳輸層把數(shù)據(jù)傳輸出去。在這一層工作的協(xié)議主要是安全套接協(xié)議SSL(Secure Socket Layer)。SSL是一種新興的VPN解決方案,與其他VPN相比其主要優(yōu)點(diǎn)是用戶使用網(wǎng)頁瀏覽器登錄而不需要安裝任何專門的客戶端軟件[3]。
2 SSL 隧道協(xié)議[1,4]
SSL是Netscape公司設(shè)計的主要用于Web的安全傳輸協(xié)議。SSL技術(shù)位于OSI參考模型的傳輸層和應(yīng)用層之間,最初主要是為TCP提供一個可靠的端到端的安全服務(wù)。同IPSec協(xié)議類似,它不是一個單獨(dú)的協(xié)議,而是由多個協(xié)議組成的一個兩層的協(xié)議體系,包括SSL握手協(xié)議(SSL Handshake Protoco1)、SSL修改密文規(guī)約協(xié)議(SSL Change Cipher SpecProtoco1)、SSL警告協(xié)議(SSL Alert Protoco1)和SSL記錄協(xié)議(SSL Record Protoco1)。如圖2所示。圖示體系結(jié)構(gòu)分為兩層:握手層協(xié)議層和記錄層協(xié)議層。其中握手層協(xié)議層包含3個協(xié)議,即SSL握手協(xié)議、SSL密鑰更改協(xié)議和SSL告警協(xié)議。
2.1 握手層協(xié)議
握手層協(xié)議用來在客戶端和服務(wù)器端傳輸應(yīng)用數(shù)據(jù)之前建立安全通信機(jī)制,并保持通信雙方進(jìn)行安全通信所需的安全參數(shù)及狀態(tài)信息。它使得服務(wù)器和客戶機(jī)能夠進(jìn)行雙向的身份認(rèn)證,并協(xié)商加密算法、MAC(消息認(rèn)證代碼)算法以及SSL記錄中所用的加密密鑰。
首次通信時,雙方通過握手層協(xié)議協(xié)商密鑰加密算法、數(shù)據(jù)加密算法和報文摘要算法;然后互相驗證對方身份,最后使用協(xié)商好的密鑰交換算法產(chǎn)生一個只有雙方知道的秘密信息,客戶端和服務(wù)器端各自根據(jù)這個秘密信息確定數(shù)據(jù)加密算法的參數(shù)(一般是密鑰)。
握手層協(xié)議過程分為如下4個階段:
(1)建立安全能力。主要包括協(xié)商壓縮算法、報文摘要算法、加密算法以及SSL版本、會話標(biāo)識符等安全參數(shù)與狀態(tài)信息。
(2)服務(wù)器認(rèn)證和密鑰交換。此時服務(wù)器向客戶發(fā)送其數(shù)字證書,利用該證書對服務(wù)器進(jìn)行認(rèn)證。
(3)客戶認(rèn)證和密鑰交換。此時客戶向服務(wù)器發(fā)送其數(shù)字證書,利用該證書對客戶進(jìn)行鑒別。
(4)握手結(jié)束階段。握手建立過程如圖3所示。
首先客戶端啟動握手請求,發(fā)送Client Hello消息給服務(wù)器端,消息中包括客戶端支持的各種算法。若對端服務(wù)器不能支持,則本次會話失敗,握手協(xié)議不能建立。
服務(wù)器收到客戶端發(fā)來的Hello消息后發(fā)送Server Hello消息進(jìn)行回復(fù),并向客戶端發(fā)送Server Certificate證書消息,證書類型一般為x.509v3(若此階段服務(wù)器不使用證書,或證書中提供簽名而不提供密鑰時,服務(wù)器發(fā)送密鑰交換信息Server Key Exchange)。Certificate Request消息用于服務(wù)器向客戶端要求一個客戶證書。Server Hello Done消息表示服務(wù)器端的握手請求報文已經(jīng)發(fā)送結(jié)束,正等待客戶端的回應(yīng)信息。
客戶端收到Server Hello Done消息時檢查服務(wù)器提供的證書以及其他參數(shù)是否有效。Client Certificate是客戶端對服務(wù)器Certificate Request消息的響應(yīng),只有在服務(wù)器端要求客戶證書時使用。一般該消息是客戶端收到Server Hello Done消息后所發(fā)送的第一條消息。若客戶端沒有合適的證書,則向服務(wù)器端發(fā)送No Certificate的告警消息(無證書可能導(dǎo)致握手失敗。當(dāng)客戶不使用證書,或其證書中僅提供簽名而不提供密鑰時,使用Client Key Exchange消息來交換密鑰)。Certificate Verify消息用于向服務(wù)器提供對客戶證書的驗證。
當(dāng)客戶端發(fā)出修改密鑰協(xié)議(Change Cipher Spec)消息之后,發(fā)出Finished消息,至此完整的握手消息交換已經(jīng)全部完成。
握手協(xié)議完成之后,客戶端與服務(wù)器端傳輸應(yīng)用加密數(shù)據(jù)。應(yīng)用加密數(shù)據(jù)一般為密鑰協(xié)商時確定的對稱加解密密鑰,如DES、3DE等。SSL中的握手協(xié)議將公鑰加密技術(shù)與對稱密鑰加密技術(shù)的應(yīng)用有效、巧妙地結(jié)合在一起,有機(jī)地組成了互聯(lián)網(wǎng)(或其他網(wǎng)絡(luò))上信息安全傳輸?shù)耐ǖ馈?br />
2.2 記錄層協(xié)議
記錄層協(xié)議定義了要傳輸數(shù)據(jù)的格式,它位于可靠的傳輸協(xié)議TCP之上,用于各種更高層協(xié)議的封裝。主要提供數(shù)據(jù)分塊、壓縮、添加MAC、加密以及完整性服務(wù),把應(yīng)用數(shù)據(jù)封裝成多條記錄進(jìn)行傳輸。協(xié)議數(shù)據(jù)采用SSL握手協(xié)議中協(xié)商好的加密算法及MAC算法進(jìn)行保護(hù)。記錄層協(xié)議傳送的數(shù)據(jù)包括一個序列號,這樣就可以檢測消息的丟失、改動或重放。協(xié)商好壓縮算法后,SSL記錄協(xié)議還可以執(zhí)行壓縮功能。如圖4所示。
發(fā)送數(shù)據(jù)時,將數(shù)據(jù)分成可操作的塊,對各分塊單元進(jìn)行壓縮,接著再添加上由HASH算法得出的MAC值并加密,最后加上記錄協(xié)議頭部進(jìn)行傳輸;接收方接收數(shù)據(jù)后,首先對其進(jìn)行解密,接著校驗MAC,然后對各單元解壓并重新組合,把結(jié)果提供給相應(yīng)的應(yīng)用程序協(xié)議。
3 SSL VPN技術(shù)特點(diǎn)[5-6]
SSL運(yùn)行于網(wǎng)絡(luò)體系結(jié)構(gòu)中的傳輸層和應(yīng)用層之間,它獨(dú)立于應(yīng)用,因此任何一個應(yīng)用程序都可以利用它的安全性而不必考慮執(zhí)行細(xì)節(jié)。另外,SSL本身可以被幾乎所有的Web瀏覽器支持,這意味著客戶端不需要為了支持SSL連接而安裝額外的軟件。這兩個特征就是SSL能應(yīng)用于VPN的關(guān)鍵原因。SSL VPN技術(shù)的發(fā)展是對現(xiàn)有SSL應(yīng)用的一個補(bǔ)充,它增加了企業(yè)執(zhí)行訪問控制和安全性的級別和能力。到目前為止,SSL VPN是解決遠(yuǎn)程用戶訪問單位內(nèi)部數(shù)據(jù)最簡單且安全的解決方案。與復(fù)雜的IPsec VPN 相比,SSL VPN通過簡單易用的方法實現(xiàn)了信息的遠(yuǎn)程連通。SSL VPN主要有以下技術(shù)特點(diǎn):
(1)部署與應(yīng)用:SSL VPN設(shè)備部署靈活方便,以橋接或側(cè)掛方式接入對原網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)不會造成影響。在終端,用戶可以在任何安裝了Web瀏覽器的PC上進(jìn)行SSL VPN撥號登錄訪問內(nèi)部網(wǎng)絡(luò)資源。這也是無需安裝客戶端軟件的SSL VPN的主要優(yōu)勢。
(2)訪問控制:SSL VPN能對加密隧道進(jìn)行細(xì)化,使終端用戶能夠同時接入Internet和訪問內(nèi)部企業(yè)網(wǎng)資源。另外, SSL VPN還可以對接入控制功能進(jìn)行分級,提供不同等級的用戶權(quán)限, 依據(jù)安全策略授權(quán)不同權(quán)限的用戶訪問不同的內(nèi)部網(wǎng)絡(luò)資源。
(3)安全性:SSL安全通道建立于客戶與所訪問的資源之間,客戶對資源的每一次操作都需要經(jīng)過身份驗證和數(shù)據(jù)加密,保障了遠(yuǎn)程連接過程中傳輸數(shù)據(jù)的安全。
(4)遠(yuǎn)程連接:SSL VPN工作在傳輸層之上,能夠遍歷所有的NAT/PAT設(shè)備以及防火墻設(shè)備,這使得用戶可以從任何遠(yuǎn)程網(wǎng)絡(luò)訪問到內(nèi)網(wǎng)資源,極大地方便了出差用戶的遠(yuǎn)程辦公。
4 SSL VPN應(yīng)用實例
為滿足L市教育城域網(wǎng)各校區(qū)教職工遠(yuǎn)程辦公的需要,該網(wǎng)絡(luò)建設(shè)之初便設(shè)計SSL VPN遠(yuǎn)程訪問解決方案。出差教職工利用當(dāng)?shù)豂SP提供的VPN服務(wù), 就可以與學(xué)校的VPN網(wǎng)關(guān)建立私有的隧道連接, 使遠(yuǎn)程用戶隨時隨地地以其所需的方式訪問學(xué)校內(nèi)部網(wǎng)絡(luò)資源,實現(xiàn)遠(yuǎn)程辦公或者家庭辦公。
4.1 L市教育城域網(wǎng)特點(diǎn)
L市教育城域網(wǎng)共有3個大校區(qū),分別為東區(qū)高校區(qū)、西區(qū)中學(xué)和北區(qū)中學(xué),每個區(qū)下屬15~40個中學(xué)。為實現(xiàn)各校區(qū)之間的高速互聯(lián),在核心配置了兩臺S12000系列核心路由交換機(jī),每個大校區(qū)各放置了一臺S8610交換機(jī)。全網(wǎng)采用網(wǎng)狀組網(wǎng)類型,物理接口采用萬兆或千兆光口高速互聯(lián)。L市教育城域網(wǎng)設(shè)計有兩個出口,分別為中國聯(lián)通出口和CERNET教育網(wǎng)出口。SSL VPN網(wǎng)關(guān)設(shè)備采用側(cè)掛的方式與核心交換機(jī)相連接,如圖5所示。
4.2 SSL VPN接入平臺
L市教育城域網(wǎng)建設(shè)的SSL VPN主要應(yīng)用是內(nèi)部網(wǎng)頁瀏覽、電子郵件以及文件傳輸?shù)葮I(yè)務(wù)。通過一個擁有與專用網(wǎng)絡(luò)相同策略的共享基礎(chǔ)設(shè)施,可以對校園內(nèi)網(wǎng)資源隨時隨地進(jìn)行遠(yuǎn)程訪問。能隨時使用包括如模擬撥號Modem、ISDN、數(shù)字用戶線路(xDSL)無線上網(wǎng)等撥號技術(shù),安全方便地連接遠(yuǎn)程工作者。其接入平臺拓?fù)淙鐖D6所示。
L市教育城域網(wǎng)的SSL VPN平臺由一臺高性能防火墻、VPN網(wǎng)關(guān)RG-FW1600V、線路負(fù)載均衡設(shè)備RG-NPE組成。通過網(wǎng)絡(luò)出口的負(fù)載均衡設(shè)備與電信運(yùn)營商提供的互聯(lián)網(wǎng)線路相連,出口租用聯(lián)通200 M、教育網(wǎng)100 M的線路以保障帶寬需求及鏈路熱備。通過運(yùn)營商與VPN接入平臺的接口線路構(gòu)建VPN隧道接入辦公網(wǎng)。
4.3 SSL VPN登錄
SSL VPN技術(shù)幫助用戶使用標(biāo)準(zhǔn)的Web 瀏覽器就可以通過公共網(wǎng)絡(luò)平臺接入所要訪問的遠(yuǎn)程資源。在用戶終端上,不需要安裝客戶端軟件及進(jìn)行復(fù)雜的配置,大大方便了用戶,僅僅通過一臺接入了Internet的計算機(jī)就能訪問遠(yuǎn)程資源。
用戶使用Web界面進(jìn)行SSL VPN撥號登錄,與SSL VPN 網(wǎng)關(guān)協(xié)商完畢,建立VPN 隧道后,用戶并沒有獲得校內(nèi)資源外網(wǎng)的地址,用戶所獲得的是VPN網(wǎng)關(guān)通過DHCP方式所分配的虛擬IP地址。每個用戶所獲得的虛擬IP是不同的,VPN網(wǎng)關(guān)用虛擬IP來區(qū)分不同用戶的VPN隧道。
當(dāng)多個用戶同時登錄時,VPN網(wǎng)關(guān)的支持情況如圖7所示。
用戶在獲得虛擬地址后訪問校園內(nèi)部資源時,經(jīng)過VPN網(wǎng)關(guān)時要進(jìn)行地址轉(zhuǎn)換,轉(zhuǎn)換為VPN網(wǎng)關(guān)的內(nèi)口地址,由于VPN網(wǎng)關(guān)的內(nèi)口地址只有一個,多用戶登錄轉(zhuǎn)換完畢后,不同的虛擬IP轉(zhuǎn)換成內(nèi)網(wǎng)地址并對應(yīng)不同的端口號。也就是說,在訪問校園網(wǎng)內(nèi)部資源時用VPN網(wǎng)關(guān)的內(nèi)口地址和端口號來對接入用戶進(jìn)行區(qū)分。
至此,SSL VPN連接成功。用戶可以像在單位一樣使用本地的IP地址訪問內(nèi)網(wǎng)資源,方便快捷地處理日常辦公事務(wù)。
SSL VPN技術(shù)以其簡潔、低成本和良好的網(wǎng)絡(luò)安全管理措施將逐漸成為首選的遠(yuǎn)程訪問解決方案,同時SSL協(xié)議所采用的加密算法和認(rèn)證算法也使它具有較高的安全性。但是,由于SSL VPN只對通信雙方單個應(yīng)用通道進(jìn)行加密,不是對通信雙方主機(jī)之間的整個通道加密,所以對安全性要求較高的行業(yè)遠(yuǎn)程系統(tǒng)建設(shè)建議采用IPSec VPN技術(shù)或IPSec VPN和SSL VPN混合接入的方式進(jìn)行安全防護(hù)。
參考文獻(xiàn)
[1] 王達(dá).虛擬專用網(wǎng)(VPN)精解[M].北京:清華大學(xué)出版社,2004.
[2] CARMOUCHE J H.IPsec virtual private network fundamentals[M].Cisco Press,2006.
[3] DEAL R.The complete cisco VPN configuration guide[M]. Cisco Press,2005.
[4] 張學(xué)杰,李大興.SSL技術(shù)在構(gòu)建VPN中的應(yīng)用[J].計算機(jī)應(yīng)用,2006,26(8):1827-1830.
[5] 馬淑文.SSL VPN技術(shù)在校園網(wǎng)中的應(yīng)用與研究[J].計算機(jī)工程與設(shè)計,2008(11):5137-5143.
[6] 何亞輝.基于SSL協(xié)議的VPN技術(shù)研究及在校園網(wǎng)中的應(yīng)用[J].重慶理工大學(xué)學(xué)報(自然科學(xué)版),2011,25(2):86-90.