《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 業(yè)界動態(tài) > SSL VPN記錄層協(xié)議的分析與改進

SSL VPN記錄層協(xié)議的分析與改進

2008-07-14
作者:侯 賓, 呂玉琴, 葉德信

??? 摘 要: 基于SSL協(xié)議的VPN系統(tǒng),具有簡便,、輕量級,、基于部署等優(yōu)點,可以提供安全的遠程接入和端到網(wǎng)絡(luò)邊緣的加密通道,,具有廣闊的應(yīng)用前景,。對SSL協(xié)議的記錄層協(xié)議" title="記錄層協(xié)議">記錄層協(xié)議和基于虛擬設(shè)備的SSL VPN的數(shù)據(jù)封裝和傳輸機制進行了分析,提出了一種可以更好地支持端到端" title="端到端">端到端多媒體通信" title="多媒體通信">多媒體通信等應(yīng)用的記錄層協(xié)議及數(shù)據(jù)傳輸機制的改進方案,。
??? 關(guān)鍵詞: SSL VPN? 多媒體通信? 記錄層協(xié)議

?

??? 安全套接層協(xié)議[1]SSL,,常用于建立安全的Web或電子郵件連接。隨著SSL協(xié)議的完善和網(wǎng)絡(luò)應(yīng)用的發(fā)展,,SSL協(xié)議得到了更廣泛的應(yīng)用,。SSL VPN就是SSL協(xié)議最常見的擴展應(yīng)用。
??? SSL VPN和傳統(tǒng)的Web,、EMAIL等SSL協(xié)議應(yīng)用有所不同,,SSL不再用來建立專用的端到端的安全通道,而是建立通用的,、端到網(wǎng)絡(luò)邊緣的安全隧道,,即客戶端" title="客戶端">客戶端到SSL網(wǎng)關(guān)之間的VPN連接。這種基于SSL協(xié)議的VPN技術(shù)具有靈活,、簡便,、兼容現(xiàn)有網(wǎng)絡(luò)架構(gòu)等優(yōu)點,因此得到了越來越廣泛的應(yīng)用,。本文對SSL協(xié)議在VPN應(yīng)用下的紀錄層協(xié)議進行分析,,并提出一種改進方法,,使之可以對不同的應(yīng)用實施不同的安全策略,增強端到端的多媒體通信,,如對VoIP應(yīng)用的支持,。
1 SSL VPN技術(shù)分析
??? 首先對SSL協(xié)議的結(jié)構(gòu)特別是記錄層協(xié)議的結(jié)構(gòu)進行分析,并對SSL VPN的應(yīng)用架構(gòu)和數(shù)據(jù)傳輸流程進行分析,,進而闡明SSL VPN技術(shù)的應(yīng)用優(yōu)勢和缺陷,。
1.1 SSL協(xié)議體系結(jié)構(gòu)
??? SSL協(xié)議結(jié)構(gòu)可分為以下幾個主要部分:SSL握手協(xié)議、SSL改變密碼規(guī)范協(xié)議,、SSL告警協(xié)議和SSL記錄層協(xié)議等[2],。其中,SSL握手協(xié)議負責身份認證,、建立連接,;SSL改變密碼規(guī)范協(xié)議負責數(shù)據(jù)傳輸中的協(xié)商密碼算法規(guī)范;SSL告警協(xié)議負責相關(guān)狀態(tài)的警告等,;SSL記錄層協(xié)議則負責數(shù)據(jù)傳輸過程中的數(shù)據(jù)封裝和信息標識,。
??? SSL記錄層協(xié)議規(guī)定完整的SSL數(shù)據(jù)包具有三部分:記錄頭(record header)、數(shù)據(jù)載荷(加密過的)和數(shù)據(jù)校驗(MAC),。記錄頭是SSL記錄協(xié)議中最重要部分,,負責對SSL協(xié)議版本、數(shù)據(jù)類型等信息進行標識,,其結(jié)構(gòu)如下[1]
??? Struct{
  ????? ContentType type;? ??//內(nèi)容信息結(jié)構(gòu)
????????? ProtocolVersion version;? //協(xié)議版本號信息
????????? Uint16 length;?? ??//數(shù)據(jù)長度信息
??? }RecordHeader;??? ???//記錄頭結(jié)構(gòu)定義
??? 記錄頭對SSL協(xié)議版本,、負載數(shù)據(jù)類型等信息進行說明,使得通信雙方可以對數(shù)據(jù)進行不同的處理,。SSL記錄頭在傳統(tǒng)的SSL應(yīng)用中非常重要,,然而在VPN應(yīng)用中,由于和SSL VPN應(yīng)用的架構(gòu)特點有關(guān),,記錄頭的作用被弱化了,。
1.2 基于虛擬設(shè)備的SSL VPN應(yīng)用架構(gòu)
??? 目前常見的SSL VPN應(yīng)用大多采用虛擬設(shè)備的架構(gòu)方式。即通過軟件方式實現(xiàn)具有NDIS(Network Driver Interface Specification)接口和流接口的虛擬網(wǎng)卡,,進行VPN隧道的路由和封裝過程[3],,典型例子如OPENVPN等。
??? 基于NDIS接口的虛擬網(wǎng)卡,,實際上是在正常的網(wǎng)絡(luò)處理流程中加入一個中間層,使之對上層應(yīng)用表現(xiàn)為網(wǎng)卡,,并提供虛擬網(wǎng)卡行為的NDIS接口,,而對真實網(wǎng)卡則表現(xiàn)為上層應(yīng)用,提供一個流接口,,其結(jié)構(gòu)如圖1所示,。

?

?

??? 基于NDIS虛擬網(wǎng)卡的SSL VPN的工作流程如下:
??? (1) 客戶端通過真實網(wǎng)卡和VPN網(wǎng)關(guān)進行SSL協(xié)議握手,,得到“虛擬”IP地址和會話密鑰等信息,這個虛擬IP地址,,一般是VPN網(wǎng)關(guān)所在的內(nèi)網(wǎng)地址,。虛擬IP地址被賦給虛擬網(wǎng)卡,而系統(tǒng)路由表也會作相應(yīng)改動,,使得需要的IP包都發(fā)送到虛擬網(wǎng)卡,。
??? (2) 當上層應(yīng)用需要通過VPN傳輸數(shù)據(jù)時,數(shù)據(jù)先經(jīng)過TCP/IP" title="TCP/IP">TCP/IP協(xié)議棧封裝成IP包,,而這些IP包的源地址就是虛擬網(wǎng)卡的IP地址,,目的地址則可能是VPN內(nèi)網(wǎng)的應(yīng)用服務(wù)器地址等,在此將其稱為“虛擬”IP包,。這些虛擬IP包會根據(jù)路由表被送到虛擬網(wǎng)卡的NDIS接口,。
??? (3) 虛擬網(wǎng)卡獲得虛擬IP包后將其進行數(shù)據(jù)加密,加密后的包體再通過流接口發(fā)給TCP/IP協(xié)議棧進行再封裝,,封裝好的IP包具有真實的源(客戶端)地址信息和目的(VPN網(wǎng)關(guān))地址信息,,稱為“真實”IP包,真實IP包通過真實網(wǎng)卡發(fā)送到VPN網(wǎng)關(guān),。
??? (4) 與VPN網(wǎng)關(guān)連接的對外真實網(wǎng)卡收到真實IP包后,,解包得到加密后的虛擬IP包,并發(fā)送到服務(wù)器的虛擬網(wǎng)卡的流接口,,虛擬網(wǎng)卡將數(shù)據(jù)解密,,發(fā)到內(nèi)網(wǎng)接口網(wǎng)卡上,并將其作為正常IP包,,轉(zhuǎn)發(fā)到相應(yīng)的目的地址(應(yīng)用服務(wù)器,、客戶端或其他網(wǎng)關(guān)等)。
??? (5) 當VPN網(wǎng)關(guān)向客戶端發(fā)送數(shù)據(jù),,或者內(nèi)網(wǎng)用戶或內(nèi)網(wǎng)服務(wù)器通過網(wǎng)關(guān)向VPN用戶發(fā)送數(shù)據(jù)時,,流程相似。
??? 可以看出,,在以上工作流程中,,VPN操作獨立于TCP/IP協(xié)議棧操作,而且VPN通道可以向所有的上層應(yīng)用提供路由,、認證和封裝服務(wù),,因此這種應(yīng)用架構(gòu)具有良好的層次特性和對網(wǎng)絡(luò)協(xié)議的兼容性。
2 典型VPN應(yīng)用中的SSL記錄層協(xié)議分析
??? 采用虛擬設(shè)備形式的SSL VPN,,其握手協(xié)議等和SSL協(xié)議的傳統(tǒng)應(yīng)用并無很大不同,,但是在記錄層協(xié)議和數(shù)據(jù)傳輸模式上是有所區(qū)別的。
??? (1)記錄頭的作用被弱化,,甚至被取消,。所有的數(shù)據(jù)被明確地打包為虛擬IP包,,通過TCP/IP協(xié)議即可保證其路由和完整性等要求;VPN隧道只傳輸虛擬IP包,,不需要再對負載類型進行識別,,因此,傳統(tǒng)記錄頭中的type,、length等信息都可以省略,;此外,數(shù)據(jù)也不再需要TCP/IP之外的數(shù)據(jù)校驗,。
??? (2)利用SSL的傳統(tǒng)加密傳輸應(yīng)用必須通過TCP協(xié)議來進行,,而在基于虛擬設(shè)備的SSL VPN應(yīng)用中,無需特別機制來關(guān)注鏈路是否會超時,。因此,,大多數(shù)情況可用UDP協(xié)議傳輸以減少通信開銷,而丟包等情況則只要通過重發(fā)數(shù)據(jù)包等就可解決,。
??? (3)即使客戶端需要訪問多個服務(wù),,也只需要開放一個網(wǎng)關(guān)端口即可。這使得采用虛擬設(shè)備的VPN網(wǎng)關(guān)很容易和防火墻等設(shè)備相配合(只需在防火墻上開放一個端口即可實現(xiàn)全部VPN功能),。這也是SSL VPN較其他VPN方案(如IPSec VPN)的優(yōu)勢之一,。
??? 可以看出,采用虛擬設(shè)備的SSL VPN,,對傳統(tǒng)SSL協(xié)議的記錄層協(xié)議和數(shù)據(jù)傳輸模式進行了改進,,這種改進符合VPN應(yīng)用的特點,使得SSL協(xié)議能夠更有效地應(yīng)用在VPN領(lǐng)域,。無論與傳統(tǒng)的SSL應(yīng)用方式相比,,還是與IPSec等其他熱門VPN技術(shù)相比,基于虛擬設(shè)備的SSL VPN技術(shù)都有難以替代的優(yōu)點,。然而,,隨著其應(yīng)用的不斷發(fā)展,這種VPN應(yīng)用也出現(xiàn)了一些不足:
??? 首先,,SSL VPN提供了端到網(wǎng)絡(luò)邊緣的安全通道,,但是在某些情況下,用戶無法將端到端的加密通道和端到網(wǎng)絡(luò)邊緣的安全接入方案相結(jié)合,。
??? 其次,,不同的應(yīng)用可能要求不同的傳輸效率和安全性,而目前的SSL VPN提供的是通用安全服務(wù),,對上層數(shù)據(jù)一視同仁,,不能對特殊應(yīng)用進行特殊優(yōu)化,例如:當用戶進行VoIP通信時,,多媒體數(shù)據(jù)在要求安全性的同時,,對實時性要求也較高。
??? 在下面的遠程接入例子中,,SSL VPN對點對點的多媒體通信支持較差的特點就表現(xiàn)出來了,。
??? 圖2所示是一個典型的SSL VPN的應(yīng)用場景。用戶UserA,、UserB和UserC通過VPN 網(wǎng)關(guān)(Gate1,、Gate2和Gate3)建立SSL VPN遠程連接到自己的Intranet(即圖中的粗線部分),而圖中兩個Intranet具有互聯(lián)互通的關(guān)系(可設(shè)想為跨國公司在不同地域的分公司),。

?


??? 在這個場景中,,假設(shè)UserA要和UserC進行VoIP通話,這時雙方的數(shù)據(jù)通路是從UserA加密,,再到Gate1解密,,再明文經(jīng)過Intranet傳輸(兩個Intranet之間可能是專線或IPSec VPN),之后再到Gate3被加密,,最后到UserC被解密,,反之亦然??梢钥闯?,在這個場景中,多媒體數(shù)據(jù)沒有端到端的安全保障,,卻進行了多次不必要的加解密操作,,從而降低了數(shù)據(jù)傳輸?shù)膶崟r性。如果用戶有端到端的安全需求,,還需要在SSL VPN之上,,額外建立安全通道,造成安全通道的嵌套,,而單獨的端到端安全通道又無法完成經(jīng)過Intranet的路由和服務(wù)查詢等功能,。如果UserB也參與通信,計算能力較低的手持終端和帶寬較窄的無線網(wǎng)絡(luò)將使得問題更加嚴重,。
??? 因此,,為了更好地支持VoIP等點對點多媒體通信,需要對SSL VPN的數(shù)據(jù)傳輸機制和記錄層協(xié)議(數(shù)據(jù)格式和處理流程)進行改進,。
3 SSL記錄層協(xié)議和數(shù)據(jù)處理流程的改進
??? 選擇SSL記錄層協(xié)議進行改進主要是由于SSL協(xié)議處在傳輸層,,因此具有支持對上層應(yīng)用進行識別和分析的可能性。而且SSL記錄層協(xié)議中規(guī)定的記錄頭結(jié)構(gòu),,也可以在VPN應(yīng)用中進行有效的利用,。
??? 通過對SSL協(xié)議和VPN應(yīng)用場景的分析,可以進行如下改進策略:(1)改進記錄頭結(jié)構(gòu),加入上層應(yīng)用的相關(guān)信息,,例如:可以將應(yīng)用程序在客戶端VPN服務(wù)中進行注冊,,當不同的應(yīng)用調(diào)用VPN服務(wù)時,可為數(shù)據(jù)打上不同的記錄頭,。(2)對于端到端加密的數(shù)據(jù),,VPN網(wǎng)關(guān)進行識別并將數(shù)據(jù)直接轉(zhuǎn)發(fā)到目的地址,從而做到數(shù)據(jù)在原客戶端加密而在目的客戶端解密,。即對SSL記錄頭格式和VPN數(shù)據(jù)的處理流程進行改進,。
3.1 記錄頭格式的改進
??? 首先,將SSL的記錄頭加在客戶端虛擬網(wǎng)卡的加密IP包之后,;然后,,對SSL記錄頭數(shù)據(jù)結(jié)構(gòu)中的內(nèi)容作適當刪減,以減少數(shù)據(jù)冗余,,并加入路由等需要的信息,,修改后的記錄頭具有如下結(jié)構(gòu):
??? 記錄頭結(jié)構(gòu)(精簡后):
???????? Struct{
  ?????????? ProtocolVersion version;? ?//協(xié)議信息
  ?????????? VPNStruct vpn;???//VPN處理信息
???????? }RecordHeader;
??? 加入VPN路由信息結(jié)構(gòu):
 ?????? Struct{
???????? Uint16 SourceIP;?????? //源“虛擬”IP地址
???????? Uint16 Destination IP;????? //目標IP地址
???????? Uint16 SoucePort;?????? //源“虛擬”端口
???????? Uint16 Desination Port;????? //目的端口
???????? ApplicaitonInfomation appinfo;? //應(yīng)用信息
 ??? } VPNStruct
??? 其中,,應(yīng)用信息ApplicaitonInfomation為如下枚舉類型:
??? Enum{
?????? Default(0);??? ?//默認類型
?????? VPNtype(1);?? //普通VPN類型
?????? P2Ptype(2);??? //多媒體通信,、點對點類型
?????? (255);??//保留
??? } ApplicaitonInfomation
??? VPNStruct記錄了數(shù)據(jù)的地址信息,并且在appinfo字段表明了承載的應(yīng)用類型,,指示沿途的出入網(wǎng)關(guān)應(yīng)當采取的不同處理方式,。
3.2 VPN數(shù)據(jù)處理流程的改進
??? 記錄頭的改進,使系統(tǒng)對于數(shù)據(jù)的處理可以根據(jù)應(yīng)用數(shù)據(jù)的不同而有所區(qū)別:客戶端虛擬設(shè)備會在加密完虛擬IP包后,,加入明文記錄頭,。當進行正常通信時,VPN網(wǎng)關(guān)得到數(shù)據(jù)包后,,根據(jù)appinfo字段提示,,會選擇將數(shù)據(jù)解密并正常轉(zhuǎn)發(fā),反之亦然,。
??? 而進行多媒體通信時,,客戶端之間首先進行端對端的握手流程。會話密鑰商定后,,數(shù)據(jù)發(fā)送方的虛擬設(shè)備將數(shù)據(jù)加密(采用端到端的會話密鑰),,加入明文記錄頭,以對此數(shù)據(jù)流性質(zhì)進行描述,。當VPN網(wǎng)關(guān)獲得虛擬IP包時,,可以通過明文記錄頭對數(shù)據(jù)進行識別。當發(fā)現(xiàn)數(shù)據(jù)類型為端到端加密類型(P2Ptype)時,,VPN網(wǎng)關(guān)將數(shù)據(jù)打入TCP/IP協(xié)議棧,、按P2Ptype中的源地址,、目的地址進行重新封裝和轉(zhuǎn)發(fā),整體流程如圖3所示,。

?


??? VPN對數(shù)據(jù)的處理和原有流程的區(qū)別在于:(1)入口VPN(圖2中的Gate 1)并不將虛擬IP包解密,、轉(zhuǎn)發(fā),而是將其和記錄頭作為應(yīng)用負載進行封裝后轉(zhuǎn)發(fā),。(2)出口VPN(圖2中的Gate 2),,并不對數(shù)據(jù)進行再加密,,而只是封裝轉(zhuǎn)發(fā),。(3)在軟件實現(xiàn)上,如果內(nèi)網(wǎng)用戶希望得到端到端的安全通道,,也必須采用虛擬設(shè)備機制,,處理機制和上述過程相同。
3.3 改進性能分析
?? ?在安全性方面,,改進后的應(yīng)用架構(gòu)兼顧了SSLVPN在遠程接入功能上的靈活性和安全性,,并且提供了更加高效的端對端安全服務(wù),既可以支持正常的VPN應(yīng)用,,也可以更好地支持端到端的多媒體通信應(yīng)用,。此外,由于專門的端對端安全協(xié)議無法提供遠程接入功能,,因此,,當多媒體通信的服務(wù)器(如SIP注冊服務(wù)器等)架設(shè)在內(nèi)網(wǎng)時,將無法提供用戶的安全注冊,、查詢功能,,而本文方案則可以提供安全的注冊、查詢服務(wù),。
??? 在傳輸處理效率上,,改進方案減少了不必要的數(shù)據(jù)加解密開銷,減輕了網(wǎng)關(guān)服務(wù)器負擔,,也減少了數(shù)據(jù)處理的時間,。本文方案增加了對記錄頭的識別和對網(wǎng)關(guān)進行TCP/IP協(xié)議再封裝過程,但這些流程都是線形的讀寫操作,,與對稱加解密流程的數(shù)據(jù)置換,、疊加等處理相比要簡單得多,因此開銷也小得多,。此外,,系統(tǒng)還支持對多媒體數(shù)據(jù)采用單獨加密算法的特性,例如對于普通數(shù)據(jù)進行3DES加密,,對多媒體數(shù)據(jù)采用更快速的RC4加密,。這樣使得系統(tǒng)對多媒體數(shù)據(jù)的傳輸,、處理效率更高。
??? 在對現(xiàn)有軟硬件環(huán)境的兼容上,,改進方案保持了SSL VPN的優(yōu)勢:兼容性好,、實現(xiàn)簡單。首先不需要對應(yīng)用程序,、TCP/IP協(xié)議棧和硬件設(shè)備做任何改動,,改動僅局限在SSL控制邏輯和虛擬設(shè)備驅(qū)動程序上;其次,,本文方案可部署在現(xiàn)有絕大多數(shù)的網(wǎng)絡(luò)當中,,只要開放相應(yīng)的防火墻端口即可實現(xiàn)全部應(yīng)用。
??? 綜上所述,,本文結(jié)合基于虛擬設(shè)備實現(xiàn)的SSL VPN應(yīng)用的具體特點,,通過對SSL記錄頭結(jié)構(gòu)和VPN數(shù)據(jù)處理流程的改進,可以在保持SSL VPN安全性好,、輕量級,、兼容性好等傳統(tǒng)優(yōu)勢的前提下,進一步提高SSL VPN的應(yīng)用范圍和靈活性,,特別是對多媒體通信的安全性和實時性具有更好的支持,。
參考文獻
[1] ?RFC2246: The TLS protocol version 1.0[s]. IETF,1999.
[2] ?RESCORLA E. SSL與TLS.北京:中國電力出版社,2002.
[3] ?蔣勵,張新.支持多媒體業(yè)務(wù)的VPN網(wǎng)絡(luò)[J]. 西安郵電學(xué)院學(xué)報, 2002,7(1).
[4] ?韓衛(wèi),,薛健,,白靈. 一種基于安全隧道技術(shù)的SSL VPN及其性能分析. 科學(xué)技術(shù)與工程[J], 2005,5(12).
[5] ?易光華,傅光軒,,胡艷. 一種基于SSL的VPN的研究與實現(xiàn)[J]. 貴州大學(xué)學(xué)報:自然科學(xué)版,2006,23(2).
[6] ?陳愛和,徐敬東, 劉曉欣,等.支持多路負載平衡的SSL VPN系統(tǒng)的設(shè)計與實現(xiàn)[J]. 計算機工程與設(shè)計, 2006,27(21).

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點,。轉(zhuǎn)載的所有的文章,、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有,。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認版權(quán)者,。如涉及作品內(nèi)容、版權(quán)和其它問題,,請及時通過電子郵件或電話通知我們,,以便迅速采取適當措施,避免給雙方造成不必要的經(jīng)濟損失,。聯(lián)系電話:010-82306118,;郵箱:[email protected]