摘要:本文描述了VPN技術(shù)的基本原理以及IPSec規(guī)范,在此基礎(chǔ)上介紹了VPN技術(shù)的實(shí)現(xiàn)方法和幾種典型應(yīng)用方案。最后,作者對(duì)VPN技術(shù)的推廣與應(yīng)用提出了自己的看法。
1.引言
1998年被稱作“電子商務(wù)年”,而1999年則將是“政府上網(wǎng)年”。的確,Intemet作為具有世界范圍連通性的“第四媒體”,已經(jīng)成為一個(gè)具有無(wú)限商機(jī)的場(chǎng)所。如何利用Intemet來(lái)開展商務(wù)活動(dòng),是目前各個(gè)企業(yè)討論的熱門話題。但將Internet實(shí)際運(yùn)用到商業(yè)中,還存在一些亟待解決的問(wèn)題,其中最重要的兩個(gè)問(wèn)題是服務(wù)質(zhì)量問(wèn)題和安全問(wèn)題。服務(wù)質(zhì)量問(wèn)題在有關(guān)廠商和ISP的努力下正在逐步得以解決,而VPN技術(shù)的產(chǎn)生為解決安全問(wèn)題提供了一條有效途徑。

所謂VPN(VirtualPrivate Network,虛擬私有網(wǎng)絡(luò))是指將物理上分布在不同地點(diǎn)的網(wǎng)絡(luò)通過(guò)公用骨干網(wǎng)聯(lián)接而成邏輯上的虛擬子網(wǎng),這里的公用網(wǎng)主要指Interet。為了保障信息在Internet上傳輸?shù)陌踩裕琕PN技術(shù)采用了認(rèn)證、存取控制、機(jī)密性、數(shù)據(jù)完整性等措施,,以保證了信息在傳輸中不被偷看、篡改、復(fù)制。由于使用Internet進(jìn)行傳輸相對(duì)于租用專線來(lái)說(shuō),費(fèi)用極為低廉,所以VPN的出現(xiàn)使企業(yè)通過(guò)Internet既安全又經(jīng)濟(jì)地傳輸私有的機(jī)密信息成為可能。
VPN技術(shù)除了可以節(jié)省費(fèi)用外,還具有其它特點(diǎn):
●伸縮性椂能夠隨著網(wǎng)絡(luò)的擴(kuò)張,很靈活的加以擴(kuò)展。當(dāng)增加新的用戶或子網(wǎng)時(shí),只需修改已有網(wǎng)絡(luò)軟件配置,在新增客戶機(jī)或網(wǎng)關(guān)上安裝相應(yīng)軟件并接人Internet后,新的VPN即可工作。
●靈活性棗除了能夠方便地將新的子網(wǎng)擴(kuò)充到企業(yè)的網(wǎng)絡(luò)外,由于Intemet的全球連通性,VPN可以使企業(yè)隨時(shí)安全地將信息存取到全球的商貿(mào)伙伴和顧客。
●易于管理?xiàng)椨脤>€將企業(yè)的各個(gè)子網(wǎng)連接起來(lái)時(shí),隨著子網(wǎng)數(shù)量的增加,需要的專線數(shù)以幾何級(jí)數(shù)增長(zhǎng)。而使用VPN時(shí)Internet的作用類似一個(gè)HUB,只需要將各個(gè)子網(wǎng)接入Internet即可,不需要進(jìn)行各個(gè)線路的管理。
VPN既可以用于構(gòu)建企業(yè)的Intranet,也可以用于構(gòu)建Extranet。隨著全球電子商務(wù)熱的興起,VPN應(yīng)用必將越來(lái)越廣泛。據(jù)Infonetics Reseach的預(yù)測(cè),VPN的市場(chǎng)分額將從今天的兩億美元增長(zhǎng)到2001年時(shí)的119億美元,其中VPN產(chǎn)品的銷售收入就要占其中的十分之一。
2.基于IPSec規(guī)范的VPN技術(shù)
1)IPSec協(xié)議簡(jiǎn)介
IPSec(1P Security)產(chǎn)生于IPv6的制定之中,用于提供IP層的安全性。由于所有支持TCP/IP協(xié)議的主機(jī)進(jìn)行通信時(shí),都要經(jīng)過(guò)IP層的處理,所以提供了IP層的安全性就相當(dāng)于為整個(gè)網(wǎng)絡(luò)提供了安全通信的基礎(chǔ)。鑒于IPv4的應(yīng)用仍然很廣泛,所以后來(lái)在IPSec的制定中也增添了對(duì)IPv4的支持。
最初的一組有關(guān)IPSec標(biāo)準(zhǔn)由IETF在1995年制定,但由于其中存在一些未解決的問(wèn)題,從1997年開始IETF又開展了新一輪的IPSec的制定工作,截止至1998年11月份主要協(xié)議已經(jīng)基本制定完成。不過(guò)這組新的協(xié)議仍然存在一些問(wèn)題,預(yù)計(jì)在不久的將來(lái)IETF又會(huì)進(jìn)行下一輪IPSec的修訂工作。
2)IPSec基本工作原理
IPSec的工作原理(如圖l所示)類似于包過(guò)濾防火墻,可以看作是對(duì)包過(guò)濾防火墻的一種擴(kuò)展。當(dāng)接收到一個(gè)IP數(shù)據(jù)包時(shí),包過(guò)濾防火墻使用其頭部在一個(gè)規(guī)則表中進(jìn)行匹配。當(dāng)找到一個(gè)相匹配的規(guī)則時(shí),包過(guò)濾防火墻就按照該規(guī)則制定的方法對(duì)接收到的IP數(shù)據(jù)包進(jìn)行處理。 這里的處理工作只有兩種:

丟棄或轉(zhuǎn)發(fā)。
圖1 IPSec工作原理示意圖
IPSec通過(guò)查詢SPD(Security P01icy Database安全策略數(shù)據(jù)庫(kù))決定對(duì)接收到的IP數(shù)據(jù)包的處理。但是IPSec不同于包過(guò)濾防火墻的是,對(duì)IP數(shù)據(jù)包的處理方法除了丟棄,直接轉(zhuǎn)發(fā)(繞過(guò)IPSec)外,還有一種,即進(jìn)行IPSec處理。正是這新增添的處理方法提供了比包過(guò)濾防火墻更進(jìn)一步的網(wǎng)絡(luò)安全性。
進(jìn)行IPSec處理意味著對(duì)IP數(shù)據(jù)包進(jìn)行加密和認(rèn)證。包過(guò)濾防火墻只能控制來(lái)自或去往某個(gè)站點(diǎn)的IP數(shù)據(jù)包的通過(guò),可以拒絕來(lái)自某個(gè)外部站點(diǎn)的IP數(shù)據(jù)包訪問(wèn)內(nèi)部某些站點(diǎn),.也可以拒絕某個(gè)內(nèi)部站點(diǎn)方對(duì)某些外部網(wǎng)站的訪問(wèn)。但是包過(guò)濾防火墻不能保證自內(nèi)部網(wǎng)絡(luò)出去的數(shù)據(jù)包不被截取,也不能保證進(jìn)入內(nèi)部網(wǎng)絡(luò)的數(shù)據(jù)包未經(jīng)過(guò)篡改。只有在對(duì)IP數(shù)據(jù)包實(shí)施了加密和認(rèn)證后,才能保證在外部網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)包的機(jī)密性,真實(shí)性,完整性,通過(guò)Internet進(jìn)新安全的通信才成為可能。
IPSec既可以只對(duì)IP數(shù)據(jù)包進(jìn)行加密,或只進(jìn)行認(rèn)證,也可以同時(shí)實(shí)施二者。但無(wú)論是進(jìn)行加密還是進(jìn)行認(rèn)證,IPSec都有兩種工作模式,一種是與其前一節(jié)提到的協(xié)議工作方式類似的隧道模式,另一種是傳輸模式。
傳輸模式,如圖2所示,只對(duì)IP數(shù)據(jù)包的有效負(fù)載進(jìn)行加密或認(rèn)證。此時(shí),繼續(xù)使用以前的IP頭部,只對(duì)IP頭部的部分域進(jìn)行修改,而IPSec協(xié)議頭部插入到IP頭部和傳輸層頭部之間。

圖2 傳輸模式示意圖
隧道模式,如圖3所示,對(duì)整個(gè)IP數(shù)據(jù)色進(jìn)行加密或認(rèn)證。此時(shí),需要新產(chǎn)生一個(gè)IP頭部,IPSec頭部被放在新產(chǎn)生的IP頭部和以前的IP數(shù)據(jù)包之間,從而組成一個(gè)新的IP頭部。

![]()
圖3隧道模式示意圖
3)IPSec中的三個(gè)主要協(xié)議
前面已經(jīng)提到IPSec主要功能為加密和認(rèn)證,為了進(jìn)行加密和認(rèn)證IPSec還需要有密鑰的管理和交換的功能,以便為加密和認(rèn)證提供所需要的密鑰并對(duì)密鑰的使用進(jìn)行管理。以上三方面的工作分別由AH,ESP和IKE三個(gè)協(xié)議規(guī)定。為了介紹這三個(gè)協(xié)議,需要先引人一個(gè)非常重要的術(shù)語(yǔ)棗SA(Securlty Association安全關(guān)聯(lián))。所謂安全關(guān)聯(lián)是指安全服務(wù)與它服務(wù)的載體之間的一個(gè)“連接”。AH和ESP都需要使用SA,而IKE的主要功能就是SA的建立和維護(hù)。只要實(shí)現(xiàn)AH和ESP都必須提供對(duì)SA的支持。
通信雙方如果要用IPSec建立一條安全的傳輸通路,需要事先協(xié)商好將要采用的安全策略,包括使用的加密算法、密鑰、密鑰的生存期等。當(dāng)雙方協(xié)商好使用的安全策略后,我們就說(shuō)雙方建立了一個(gè)SA。SA就是能向其上的數(shù)據(jù)傳輸提供某種IPSec安全保障的一個(gè)簡(jiǎn)單連接,可以由AH或ESP提供。當(dāng)給定了一個(gè)SA,就確定了IPSec要執(zhí)行的處理,如加密,認(rèn)證等。SA可以進(jìn)行兩種方式的組合,分別為傳輸臨近和嵌套隧道。
1)ESP(Encapsulating Secuity Fayload)
ESP協(xié)議主要用來(lái)處理對(duì)IP數(shù)據(jù)包的加密,此外對(duì)認(rèn)證也提供某種程度的支持。ESP是與具體的加密算法相獨(dú)立的,幾乎可以支持各種對(duì)稱密鑰加密算法,例如DES,TripleDES,RC5等。為了保證各種IPSec實(shí)現(xiàn)間的互操作性,目前ESP必須提供對(duì)56位DES算法的支持。
ESP協(xié)議數(shù)據(jù)單元格式三個(gè)部分組成,除了頭部、加密數(shù)據(jù)部分外,在實(shí)施認(rèn)證時(shí)還包含一個(gè)可選尾部。頭部有兩個(gè)域:安全策略索引(SPl)和序列號(hào)(Sequencenumber)。使用ESP進(jìn)行安全通信之前,通信雙方需要先協(xié)商好一組將要采用的加密策略,包括使用的算法、密鑰以及密鑰的有效期等。“安全策略索引”使用來(lái)標(biāo)識(shí)發(fā)送方是使用哪組加密策略來(lái)處理IP數(shù)據(jù)包的,當(dāng)接收方看到了這個(gè)序號(hào)就知道了對(duì)收到的IP數(shù)據(jù)包應(yīng)該如何處理。“序列號(hào)”用來(lái)區(qū)分使用同一組加密策略的不同數(shù)據(jù)包。加密數(shù)據(jù)部分除了包含原IP數(shù)據(jù)包的有效負(fù)載,填充域(用來(lái)保證加密數(shù)據(jù)部分滿足塊加密的長(zhǎng)度要求)包含其余部分在傳輸時(shí)都是加密過(guò)的。其中“下一個(gè)頭部(Next Header)”用來(lái)指出有效負(fù)載部分使用的協(xié)議,可能是傳輸層協(xié)議(TCP或UDP),也可能還是IPSec協(xié)議(ESP或AH)。
通常,ESP可以作為IP的有效負(fù)載進(jìn)行傳輸,這JFIP的頭UKB指出下廣個(gè)協(xié)議是ESP,而非TCP和UDP。由于采用了這種封裝形式,所以ESP可以使用舊有的網(wǎng)絡(luò)進(jìn)行傳輸。
前面已經(jīng)提到用IPSec進(jìn)行加密是可以有兩種工作模式,意味著ESP協(xié)議有兩種工作模式:傳輸模式(Transport Mode)和隧道模式(TunnelMode)。當(dāng)ESP工作在傳輸模式時(shí),采用當(dāng)前的IP頭部。而在隧道模式時(shí),侍整個(gè)IP數(shù)據(jù)包進(jìn)行加密作為ESP的有效負(fù)載,并在ESP頭部前增添以網(wǎng)關(guān)地址為源地址的新的IP頭部,此時(shí)可以起到NAT的作用。
2)AH(Authentication Header)
AH只涉及到認(rèn)證,不涉及到加密。AH雖然在功能上和ESP有些重復(fù),但AH除了對(duì)可以對(duì)IP的有效負(fù)載進(jìn)行認(rèn)證外,還可以對(duì)IP頭部實(shí)施認(rèn)證。主要是處理數(shù)據(jù)對(duì),可以對(duì)IP頭部進(jìn)行認(rèn)證,而ESP的認(rèn)證功能主要是面對(duì)IP的有效負(fù)載。為了提供最基本的功能并保證互操作性,AH必須包含對(duì)HMAC?/FONT>SHA和HMAC?/FONT>MD5(HMAC是一種SHA和MD5都支持的對(duì)稱式認(rèn)證系統(tǒng))的支持。
AH既可以單獨(dú)使用,也可在隧道模式下,或和ESP聯(lián)用。
3)IKE(Internet Key Exchange)
IKE協(xié)議主要是對(duì)密鑰交換進(jìn)行管理,它主要包括三個(gè)功能:
●對(duì)使用的協(xié)議、加密算法和密鑰進(jìn)行協(xié)商。
●方便的密鑰交換機(jī)制(這可能需要周期性的進(jìn)行)。
●跟蹤對(duì)以上這些約定的實(shí)施。
3.VPN系統(tǒng)的設(shè)計(jì)
如圖4所示,VPN的實(shí)現(xiàn)包含管理模塊、密鑰分配和生成模塊、身份認(rèn)證模塊、數(shù)據(jù)加密/解密模塊、數(shù)據(jù)分組封裝/分解模塊和加密函數(shù)庫(kù)幾部分組成。

管理模塊負(fù)責(zé)整個(gè)系統(tǒng)的配置和管理。由管理模塊來(lái)決定采取何種傳輸模式,對(duì)哪些IP數(shù)據(jù)包進(jìn)行加密/解密。


