摘要:該文簡單介紹一些與網(wǎng)絡安全方面相關的基礎知識。首先是VPN的概念,接著分析了IPSec VPN與SSL VPN的原理,最后對二者的優(yōu)缺點進行比較。
關鍵詞:虛擬專用網(wǎng);IPSec;IPSec VPN;安全套接層;SSL VPN
中圖分類號:TP393文獻標識碼:A文章編號:1009-3044(2009)04-0825-03
A Comparative Analysis of IPSec VPN and SSL VPN
LIU Yang
(Jiangnan Institute of Computing Technology, Wuxi 214083, China)
Abstract: Basic knowledge about network security are introduced in this paper. First is the concept about VPN,then the principle of IPSec VPN and SSL VPN are analysed, the advantages and disadvantages between them are compared at last.
Key words:VPN;IPSec;IPSec VPN;SSL;SSL VPN
1 引言
在制定目前因特網(wǎng)上使用的網(wǎng)絡協(xié)議標準時,設計者們把“端到端的透明性”作為互聯(lián)網(wǎng)體系架構的核心設計理念,將互聯(lián)網(wǎng)上通信相關的部分(IP網(wǎng)絡)與高層應用(端實體)分離,這種做法在大大簡化網(wǎng)絡設計的同時,也帶來了很多缺陷。例如與報文安全相關的服務,如可靠傳輸、集中控制和安全認證,都發(fā)生在進行通信的端實體上,可能造成很多數(shù)據(jù)安全隱患,比如偽造虛假源地址、信息竊聽、信息篡改等。
2 VPN簡介
虛擬專用網(wǎng)(Virtual Private Network,VPN)是一種在公共互聯(lián)網(wǎng)上建立私有安全通道來保障可靠傳輸?shù)募夹g。其本質是一種網(wǎng)絡互聯(lián)型業(yè)務,通過共享的網(wǎng)絡基礎架構滿足企業(yè)互聯(lián)需求,在共享使用網(wǎng)絡資源時保證用戶網(wǎng)絡具有專網(wǎng)一樣的安全性、可靠性、可管理性。
通常VPN的應用分為三類:實現(xiàn)企業(yè)各部門與遠程分支之間的Intranet VPN;實現(xiàn)企業(yè)網(wǎng)與遠程(移動)雇員之間遠程訪問的Remote Access VPN;實現(xiàn)企業(yè)與合作伙伴、客戶、供應商之間安全通信的Extranet VPN。
Access VPN通過一個擁有與專用網(wǎng)絡相同策略的共享基礎設施,提供對企業(yè)內部的遠程訪問。Access VPN能使遠程用戶通過公共網(wǎng)絡安全地訪問企業(yè)內部的資源。
Intranet VPN是建立在企業(yè)遠程分支機構的LAN和企業(yè)總部LAN之間的VPN。通過Internet這一公共網(wǎng)絡將企業(yè)在各地分支機構的LAN連到企業(yè)總部的LAN,以便企業(yè)內部的資源共享、文件傳遞等,可節(jié)省DDN等專線所帶來的高額費用。
Extranet VPN是建立在供應商、商業(yè)合作伙伴的LAN和企業(yè)的LAN之間的VPN。Extranet VPN將客戶、供應商、合作伙伴等連接到企業(yè)內部網(wǎng),外部網(wǎng)的連接可以使用與部署內部網(wǎng)和遠端訪問VPN相同的架構和協(xié)議進行部署。Extranet VPN能夠對外部網(wǎng)對企業(yè)內部資源的訪問權限進行部署和管理,可以根據(jù)訪問者的身份、網(wǎng)絡地址等信息來授予相應的訪問權限。
VPN涉及到的關鍵技術有隧道技術、密碼技術、身份認證技術等。
隧道技術是構建VPN的最關鍵技術,也是區(qū)分各種VPN的主要依據(jù)。安全隧道技術主要通過數(shù)據(jù)封裝技術,在公網(wǎng)上建立一條虛擬的數(shù)據(jù)通道(隧道),讓數(shù)據(jù)包通過隧道進行傳輸。通過隧道封裝后,在公網(wǎng)上傳輸過程中,只有VPN端口或者網(wǎng)關的IP地址暴露在外邊,從而能夠隱藏秘密信息,并解決了專網(wǎng)與公網(wǎng)的兼容問題。VPN采用隧道技術向用戶提供了無縫的、端到端的連接,以確保信息資源的安全。
生成隧道的協(xié)議包括二層隧道協(xié)議(PPTP、L2TP等)和三層隧道協(xié)議IPSec以及四層隧道協(xié)議SSL。VPN常見的實現(xiàn)有IPSec VPN,SSL VPN,MPLS VPN等,目前網(wǎng)絡安全領域應用最廣泛的是IPSec VPN和SSL VPN。
3 IPSec協(xié)議與IPSec VPN
在TCP/IP分層模型中,IP層是實現(xiàn)端到端安全通信的最底層,IPSec協(xié)議是定義在IP層的網(wǎng)絡安全協(xié)議,它是IETF(互聯(lián)網(wǎng)工程任務組)的IPSec工作組制訂的一個開放的標準框架,現(xiàn)在和將來的任何密碼學算法都可用于該體系結構。IPSec利用密碼技術,通過認證、完整性檢查、加密來保證數(shù)據(jù)傳輸?shù)目煽啃浴⑺接行院捅C苄浴?/p>
IPSec定義了兩種安全封裝協(xié)議,驗證頭協(xié)議(AH)和封裝安全載荷協(xié)議(ESP)。前者不提供加密服務,只提供信息源認證、有限抗重播和信息完整性保證;后者提供數(shù)據(jù)機密性、數(shù)據(jù)源認證、抗重播及數(shù)據(jù)完整性等服務。兩個IPSec實體在通信前,必須通過IKE(Internet密鑰交換協(xié)議)協(xié)商SA(安全關聯(lián)),協(xié)商過程中進行了基于公鑰密碼體制的身份認證。IPSec協(xié)議結構如圖1所示。
IPSec協(xié)議可以設置成兩種模式下運行,一種是隧道模式,另一種是傳輸模式。在隧道模式下,IPSec把IP v4數(shù)據(jù)包封裝在安全的IP幀中;在傳輸模式下,信息封裝是為了保護端到端的安全性,這種模式不會隱藏路由信息。
IPSec VPN是網(wǎng)絡層的VPN技術,具有應用無關性。一旦加密隧道建立之后,可以實現(xiàn)各種類型的連接。IPSec VPN的客戶端支持所有基于IP層的協(xié)議,對應用層協(xié)議完全透明,最適合可信的LAN與LAN之間的虛擬專用網(wǎng)。但是隨著它的應用越來越廣泛,其缺點也很明顯。IPSec VPN配置部署復雜,需要專門的客戶端軟件,而且不同提供商之間的設備很難完全兼容。維護需要專業(yè)的IT人員。
網(wǎng)絡適應性不佳,由于是網(wǎng)絡層的協(xié)議,對于防火墻等訪問控制設備不透明,對網(wǎng)絡地址轉換(NAT)和應用代理(Proxy)等穿透性差。應用層安全性不好,最多能提供IP地址和傳輸層端口這種粒度的訪問控制,對應用層協(xié)議的細粒度訪問控制無能為力,更談不上入侵檢測與防御、防病毒等深層次的安全功能。
4 SSL協(xié)議與SSL VPN
4.1 SSL協(xié)議簡介
SSL協(xié)議最初是網(wǎng)景公司提出的一種基于WEB應用的安全協(xié)議,它的后繼TLS(Transport Layer Security)協(xié)議是IETF初步標準。TLS的目的是確定SSL的Internet標準,TLS與SSL v3非常相似,僅在幾個細節(jié)上有差別。
SSL協(xié)議指定了一種在應用程序協(xié)議(如Http、Telnet、SMTP及FTP等)和TCP/IP協(xié)議之間提供數(shù)據(jù)安全性的機制,為TCP/IP連接提供數(shù)據(jù)加密、服務器認證、消息完整性驗證和可選的客戶端認證。通常SSL主要使用公開密鑰體制和X.509數(shù)字證書技術保護信息傳輸?shù)臋C密性和完整性,主要適用于點對點之間的信息傳輸。
SSL協(xié)議由兩層協(xié)議組成:底層是SSL記錄層協(xié)議,處于某些可靠傳輸協(xié)議之上,對更高層的協(xié)議數(shù)據(jù)進行分段、加密、校驗、封裝、傳輸?shù)炔僮鳎簧蠈邮荢SL握手協(xié)議,它被記錄層協(xié)議封裝,允許服務端和客戶端在應用程序收發(fā)數(shù)據(jù)之前,相互鑒別身份和協(xié)商加密算法和密鑰;上層協(xié)議還包括SSL警告協(xié)議和SSL修改密文規(guī)約協(xié)議等。SSL協(xié)議在協(xié)議棧中的位置如圖2所示。
4.2 SSL記錄層協(xié)議
用于傳輸SSL握手層的控制數(shù)據(jù)以及基于SSL通道傳輸?shù)膽脭?shù)據(jù)。上層數(shù)據(jù)被分割成若干數(shù)據(jù)塊,還可以對原始數(shù)據(jù)進行壓縮,并產(chǎn)生一個消息認證代碼(MAC),然后將結果加密并傳輸。接收方接收數(shù)據(jù)并對其解密,校驗MAC,解壓并重新組合,把結果提供給相應的應用程序協(xié)議。發(fā)送方數(shù)據(jù)在記錄層處理過程如圖3。
4.3 SSL握手協(xié)議
在SSL協(xié)議傳送任何應用協(xié)議之前,都需要握手協(xié)議來協(xié)商安全參數(shù)。握手報文有三個字段,第一個字節(jié)指示報文的類型,接下來的三個字節(jié)指示以字節(jié)為單位的報文長度,后來緊接著報文的內容。
SSL握手協(xié)議有三個目的,第一是客戶端與服務器就一組用于保護數(shù)據(jù)的算法達成一致;第二是它們需要確立一組由那些算法所使用的加密密鑰;第三,握手還可以選擇對客戶端進行認證。握手過程如圖4所示。
1) 初始化邏輯連接,客戶方先發(fā)出ClientHello消息,服務器方也應返回一個ServerHello消息,這兩個消息用來協(xié)商雙方的安全能力,包括協(xié)議版本、隨機參數(shù)、會話ID、交換密鑰算法、對稱加密算法和壓縮算法等。
2) 服務器方應發(fā)送服務器證書(包含了服務器的公鑰等)和會話密鑰,如果服務器要求驗證客戶方,則要發(fā)送CertificateRequest消息。最后服務器方發(fā)送ServerHelloDone消息,表示hello階段結束,服務器等待客戶方的響應。
3) 如果服務器要求驗證客戶方,則客戶方先發(fā)送Certificate消息,然后產(chǎn)生會話密鑰,并用服務器的公鑰加密,封裝在ClientKeyExchange消息中,如果客戶方發(fā)送了自己的證書,則再發(fā)送一個數(shù)字簽名CertificateVerify來對證書進行校驗。
4) 客戶方發(fā)送一個ChangeCipherSpec消息,通知服務器以后發(fā)送的消息將采用先前協(xié)商好的安全參數(shù)加密,最后再發(fā)送一個加密后的Finished消息。服務器在收到上述兩個消息后,也發(fā)送自己的ChangeCipherSpec消息和Finished消息。
至此,握手全部完成,雙方可以開始傳輸應用數(shù)據(jù)。
4.4 SSL VPN
SSL VPN是基于SSL協(xié)議結合強加密算法和身份認證技術,建立遠程安全訪問通道的VPN技術。近年來隨著Web的普及和電子商務、遠程辦公的興起而發(fā)展迅速。
SSL VPN通過SSL協(xié)議實現(xiàn)的“瞬時隧道技術”來構造。它基于SSL 會話(Session),通信雙方一旦建立,VPN即搭建完成;雙方會話結束時VPN隧道隨之拆除。SSL VPN通常只對通信雙方所進行的應用通道進行加密,而不是對一個主機到另一個主機的整個通道進行加密,適用于點對點的信息傳輸。
5 SSL VPN與IPSec VPN比較
從以下四個方面對SSL VPN與IPSec VPN進行比較。
1) 客戶端軟件需求方面
IPSec需要專門的客戶端工具,SSL VPN無需額外的客戶端工具。
SSL VPN通過標準網(wǎng)絡瀏覽器,用戶可以訪問幾類應用和資源。包括基于HTTP和HTTPS的應用和內部網(wǎng),以及文件和文件系統(tǒng),支持FTP和Windows網(wǎng)絡文件共享。目前大多數(shù)的操作系統(tǒng),都可以支持標準的瀏覽器,因此SSL VPN的可移植性很好。
為了將SSL VPN的支持擴展到這些資源之外,需要動態(tài)下載小巧的適配器(adaptor)和封裝器(encapsulator)軟件到用戶設備上。適配器可以通過ActiveX組件或Java小程序提供,可以擴展支持流行的C/S應用,如Microsoft Outlook和Lotus Notes、終端服務等??梢詣討B(tài)下載到用戶設備的封裝軟件能夠將用戶和網(wǎng)關之間交換的所有業(yè)務封裝到SSL隧道中。需要說明的是,用戶需要基本的管理權限(如啟用ActiveX或Java Applet的權限)才能使用這些訪問模式。
2) 與防火墻的兼容性
SSL VPN與防火墻兼容性好。SSL VPN對網(wǎng)絡設備透明,由于是在傳輸層之上進行安全處理,不存在穿越NAT等防火墻的問題,管理員只需開通防火墻的443端口即可滿足SSL VPN的訪問要求。IPSec VPN網(wǎng)絡適應性不佳,由于IPSec協(xié)議是網(wǎng)絡層的協(xié)議,對于防火墻等訪問控制設備不透明,對網(wǎng)絡地址轉換(NAT)和應用代理(Proxy)等穿透性差。
3) 訪問控制
SSL VPN能進行細粒度的訪問控制,IPSec VPN僅能進行網(wǎng)絡層的基于IP地址的包過濾。使用IPSec VPN時,如果允許用戶訪問,則用戶可以訪問所有的網(wǎng)絡資源。對于SSL VPN,網(wǎng)絡資源被作為對象,而用戶的訪問權限也是基于對象的,用戶只能訪問經(jīng)過明確授權的資源。訪問權限是自下而上的(逐個添加資源),而不是自上而下設置的(開放所有,然后逐個排除)。細粒度的訪問控制可以通過SSL VPN網(wǎng)關集中進行。
4) 應用層的安全性
在應用層建立的通道可以防止病毒、蠕蟲等經(jīng)由網(wǎng)絡層傳輸?shù)耐{。另外,由于SSL VPN還可以起到代理服務器的作用,所有客戶端訪問都是由SSL VPN網(wǎng)關轉發(fā),而不能直接訪問應用服務器,從而使服務器不易受到病毒、黑客等攻擊,減少安全威脅。
6 結束語
通過比較分析,可以看出SSL VPN與IPSec VPN相比具有部署簡單、使用靈活、維護成本低、對網(wǎng)絡設備透明、應用安全性高的優(yōu)點。SSL VPN能夠保障應用系統(tǒng)的安全,并適應移動辦公用戶和其他遠程終端隨時隨地的靈活接入,因此眾多的安全設備廠商都在研究和推出相關的SSL VPN產(chǎn)品。
但SSL VPN與IPSec VPN相比,在數(shù)據(jù)傳輸效率上有差距。IPSec VPN在源地址和目的地址只需握手一次,便能進行大數(shù)據(jù)量傳輸,適合端到端的連接;而SSL VPN在應用程序每次連接都要握手,開銷大,在連接數(shù)很大的情況下,需要SSL VPN網(wǎng)關有較強的握手能力。
參考文獻:
[1] STINSON DR.密碼學原理與實踐[M].馮登國,譯.北京:電子工業(yè)出版社,2003.
[2] Andrew Harding.SSLVirtual Private Networks[J].Computers and Security.2003,22(5):416-420.
[3] RESCORLA E.SSL and TLS:Designing and Building Secure Systcms[M].1st edition.Addison-Wesley Professional,2000.
[4] VIEGA J,MtXSIER M,P CHANDRA.Netmak Security with OpenSSL[M].1st edition.O'Rdlly Media,Inc.,2002.
[5] Carlton R.Davis.IPSec VPN的安全實施[M].周永斌,譯.北京:清華大學出版社,2002.