專利名稱:具有偽服務器的虛擬專用網(wǎng)絡的制作方法
具有偽服務器的虛擬專用網(wǎng)絡發(fā)明領域本發(fā)明通常涉及安全的通信網(wǎng)絡。更特別地,本發(fā)明涉及一種用 于在遠程設備和網(wǎng)關設備之間建立安全通信鏈路的系統(tǒng)、設備和方 法,其中至少該遠程設備(例如遠程計算設備)被配置為在該遠程設 備處捕獲和重定向分組通信量,以及修改所述分組以便對于實時應用 最小化加密的分組通信量的延遲。發(fā)明背景因特網(wǎng)協(xié)議安全性("IPsec")和安全套接字層("SSL")是 傳統(tǒng)加密協(xié)議的例子,其用于在公共通信網(wǎng)絡(諸如因特網(wǎng))上建立 虛擬專用網(wǎng)絡("VPN"),以確保只有經(jīng)授權的用戶可以訪問VPN 中的數(shù)據(jù)。雖然可以運行,但是實現(xiàn)這些和其它傳統(tǒng)加密協(xié)議的傳統(tǒng) VPN具有幾個缺點。例如,實現(xiàn)IPsec的一個缺點是,大多數(shù)防火墻不能以最小的努力 有效地路由經(jīng)IPsec加密的分組通信量,尤其那些執(zhí)行網(wǎng)絡地址變換 ("NAT")的防火墻。盡管存在用來通過NAT防火墻傳遞經(jīng)IPsec 加密的分組的NAT遍歷技術,但是這些技術將經(jīng)IPsec加密的分組限 制到幾個端口 (例如端口80和443),由此形成瓶頸。另一個缺點是, 實現(xiàn)IPsec的VPN要求被分配給遠程計算設備的地址是由該遠程設備 所連接到的專用網(wǎng)絡可見的,這容易造成某些安全漏洞。例如,感染 專用網(wǎng)絡中的客戶端的蠕蟲可以使用所述遠程設備的可見地址,以便 把其自身傳播到包括該遠程設備的專用網(wǎng)絡中?;贗Psec的VPN的 至少一些缺點起因于在網(wǎng)絡層執(zhí)行分組檢查和加密二者,諸如在以太 網(wǎng)幀級別。實現(xiàn)SSL的一個缺點例如是這個協(xié)議典型地局限于web應用,由 此排除了對不基于瀏覽器的很多其它應用的使用。另一個缺點是基于 SSL的VPN支持大量的路由協(xié)議。因此,基于SSL的VPN通常不能 支持實時應用,諸如語音IP (或者"VoIP")和對等應用?;赟SL 的VPN的至少一些缺點起因于在傳輸層(或者應用層)執(zhí)行分組檢查
和加密二者,這將路由協(xié)議例如限制到用戶數(shù)據(jù)協(xié)議("UDP")和 傳輸控制協(xié)議("TCP")。因此,需要有一種克服在VPN中的加密協(xié)議的上述實現(xiàn)方式的缺 點的系統(tǒng)、設備和方法,特別是通過在遠程設備處捕獲和重定向分組 通信量以及通過修改所述分組以對于實時應用至少最小化加密的分組 通信量的延遲,從而建立從遠程計算設備到專用網(wǎng)絡的安全通信鏈 路。發(fā)明內(nèi)容公開了一種用于實現(xiàn)安全通信鏈路的系統(tǒng)、設備和方法,其中, 在其上實現(xiàn)所述安全通信鏈路的層不同于在其上對分組進行過濾的 層。在一個實施例中,計算機系統(tǒng)被配置為形成虛擬專用網(wǎng)絡 ("VPN"),該計算機系統(tǒng)包括地址檢查驅動器,以用于識別尋址 到目標服務器的初始目標分組通信量。此外,所述計算機系統(tǒng)包括偽 服務器模塊,以用于從所述地址檢查驅動器接收被重新路由的初始目 標分組通信量。所述偽服務器模塊被配置為把分組再生指令傳送到 VPN網(wǎng)關。所述地址檢查驅動器用于識別尋址到目標服務器的附加目 標分組通信量,以及把所述附加目標分組通信量路由到偽服務器。在 一個實施例中,該偽服務器被配置為從附加目標分組通信量剝離報頭 信息以形成有效栽荷,以及此后把該有效載荷路由到目標服務器。根據(jù)本發(fā)明的另一個實施例,公開了一種方法,其中所述方法通 過建立虛擬專用網(wǎng)絡來確保與遠程客戶端計算設備的通信的安全性。 所述方法包括利用運行在客戶端計算設備上的通信應用產(chǎn)生分組通信量;在所述客戶端計算設備處識別尋址到目標服務器的所述分組通 信量的目標分組通信量;在所述計算設備上的偽服務器模塊和所述目 標服務器之間形成安全通信鏈路;把尋址到所述目標服務器的附加分組通信量導向所述偽服務器模塊;在接收到被重新路由到所述偽服務 器模塊的所述附加分組通信量時發(fā)送確認到所述通信應用;以及把有 效載荷路由到所述目標服務器。在另一個實施例中,虛擬專用網(wǎng)絡包括客戶端機器,該客戶端機 器相對于運行在所述客戶端機器上的通信應用被配置為偽服務器機 器。所述通信應用被配置為從所述偽服務器機器接收分組通信量確 認。其中包括虛擬專用網(wǎng)絡網(wǎng)關,并且該虛擬專用網(wǎng)絡網(wǎng)關適于與服 務器機器一起相對于該偽服務器機器充當客戶端機器,由此便于在客 戶端機器和服務器機器之間的安全通信。附圖簡述通過參照下面聯(lián)系附圖的詳細說明和所附權利要求書,可以更好地理解本發(fā)明,其中
圖1是說明根據(jù)本發(fā)明 一 個實施例的、用于在遠程計算設備和VPN 網(wǎng)關計算設備之間建立安全通信鏈路的虛擬專用網(wǎng)絡("VPN")系 統(tǒng)的圖示;圖2是描述根據(jù)本發(fā)明一個實施例的、在安全通信鏈路上傳送分 組的示范方法的流程圖;圖3是描述根據(jù)本發(fā)明一個實施例的遠程客戶端計算設備的框圖;圖4是說明根據(jù)本發(fā)明特定實施例的、當從遠程客戶端發(fā)送目標 分組通信量到專用網(wǎng)絡時在偽服務器和地址檢查驅動器之間的交互作 用的功能框圖;圖5是說明根據(jù)本發(fā)明特定實施例的、在從專用網(wǎng)絡接收到進入 遠程客戶端的加密分組通信量之后在偽服務器和地址檢查驅動器之間 的交互作用的功能框圖;以及圖6是說明根據(jù)本發(fā)明各個實施例的、用于傳送針對實時應用和 其它應用的加密分組的偽服務器的各個模塊的框圖。示范性實施例的具體描述圖1是說明根據(jù)本發(fā)明 一個實施例的、用于在遠程計算設備和VPN 網(wǎng)關計算設備之間建立安全通信鏈路的虛擬專用網(wǎng)絡("VPN")系 統(tǒng)的圖示。虛擬專用網(wǎng)絡100包括經(jīng)由安全通信鏈路190耦合到專用 網(wǎng)絡150的遠程客戶端計算設備("客戶端")IIO以用于交換加密數(shù) 據(jù)。遠程客戶端計算設備110被配置為在網(wǎng)絡層(即開放系統(tǒng)互連模 型(或者"OSI"模型)的層2)上或該層附近捕獲和重新路由與一個 或多個虛擬專用網(wǎng)絡("VPN")有關的分組通信量。通過在網(wǎng)絡層 捕獲和檢查分組,遠程客戶端計算設備110能夠檢驗多種網(wǎng)絡通信量,
例如包括因特網(wǎng)協(xié)議("IP" ) 、 TCP、 UDP、因特網(wǎng)控制消息協(xié)議 ("ICMP")、 一般路由封裝("GRE")技術、Apple對話、網(wǎng)絡 輸入輸出系統(tǒng)等等。此外,遠程客戶端計算設備110可以在傳輸層(即 層4)上或該層附近產(chǎn)生安全通信鏈路190 (或者"隧道"),由此允 許加密的分組通過基于網(wǎng)絡地址變換("NAT")的防火墻和網(wǎng)絡設 備。在至少一個實施例中,專用網(wǎng)絡l50為可以對于該專用網(wǎng)絡中的 各計算設備(例如目標服務器154 )隱藏的遠程客戶端計算設備110分 配地址,由此減少了遠程客戶端計算設備110暴露于安全威脅(諸如 蠕蟲)的機會。在一個特定的實施例中,遠程客戶端計算設備110被 配置為例如通過在經(jīng)由安全通信鏈路190進行傳輸之前剝離報頭信息 來修改分組,由此最小化在實時應用中的加密分組通信量的延遲。盡管未示出,但是遠程客戶端計算設備110包括分別用于執(zhí)行和 存儲程序指令的處理器和存儲器,以用于運行各種用戶級計算機軟件 應用(例如Microsoft Outlook )。遠程客戶端計算設備110包括作為 中介的通信應用112,以便在各計算機軟件應用和專用網(wǎng)絡150之間交 換數(shù)據(jù)。通信應用112的例子是Telnet、文件傳送協(xié)議("FTP")、 簡羊郵件傳送協(xié)議("SMTP")、超文本傳送協(xié)議("HTTP")等。此外,遠程客戶端計算設備110包括隧道產(chǎn)生器116,其被配置為 產(chǎn)生安全通信鏈路l卯的至少一端。隧道產(chǎn)生器116包括地址檢查驅 動器("AID" ) 122、偽服務器("PS" ) 120和加密器124,其中的 每一個是由硬件、軟件或者二者組成的。地址檢查驅動器("AID") 122被布置在網(wǎng)絡層上或該層附近,以便遍歷遠程客戶端計算設備110的一個或多個網(wǎng)絡適配器來捕獲和檢查分組通信量,諸如網(wǎng)絡(例如 以太網(wǎng))幀。例如在對所捕獲分組的IP報頭的檢查期間,地址檢查驅 動器122確定所捕獲的分組的目的地是否是專用網(wǎng)絡150.如果分組不 是針對專用網(wǎng)絡150,那么地址檢查驅動器122把所述分組作為未加密 的分組經(jīng)由路徑114向外轉發(fā)到因特網(wǎng)102中。但是在分組通信量被識別為是針對專用網(wǎng)絡150 (即"目標分組通 信量")時,地址檢查驅動器122過濾該分組通信量以防止向外傳遞 到路徑114上。地址檢查驅動器122將所過濾的分組(即目標分組通 信量)重新配置為"進入的分組",以把它們重新路由到偽服務器120 上的通信量端口。在一些實施例中,該通信量端口可以是遠程客戶端
計算設備110上的"眾所周知的端口",其中眾所周知的端口可以是 從端口號0至1024的任一個或者類似端口 。另外,地址檢查驅動器122 還被配置為把被封裝為控制分組的控制信息隨同重新路由的所過濾分 組一起發(fā)送到偽服務器120。應當注意到,由于偽服務器120可以檢測 所述相同控制信息將適用的其它分組,因此不必為每個重新路由的所 過濾分組產(chǎn)生控制分組。雖然可以根據(jù)網(wǎng)絡驅動器接口規(guī)范("NDIS") 實現(xiàn)地址檢查驅動器122,但是其還可以以適用于任何已知搮作系統(tǒng) (諸如UNIX⑧、Linux、 Microsoft WindowsTM等等)的程序指令來實 現(xiàn)。偽服務器("PS" ) 120被布置在傳輸層上或該層附近,以便從安 全通信鏈路190接收加密的分組通信量,以及發(fā)送(即重定向)從地 址檢查驅動器122重新路由的加密的分組通信量。在一些實施例中, 偽服務器120被配置為例如通過在經(jīng)由安全通信鏈路190進行傳榆之 前剝離報頭信息來修改分組。在操作中,偽服務器120監(jiān)視(或者"偵 聽")其等待接受進入的重新路由的分組和從地址檢查驅動器122傳 遞來的任何控制分組的通信量端口。偽服務器120把控制分組與對應 的重新路由的分組相關聯(lián),然后創(chuàng)建用于發(fā)送到專用網(wǎng)絡150的消息 幀132。消息幀132尤其包括用于在專用網(wǎng)絡150處重建分組的再生指 令。應當注意到,消息幀132通常隨后被加密,并且通過安全通信鏈 路l卯被發(fā)送到專用網(wǎng)絡150。應當注意到,當偽服務器120從安全通信鏈路190接收加密分組 通信量而不是進行發(fā)送時,偽服務器120通過將其傳遞到加密器124 而提供對那些分組的解密。然后,偽服務器120把解密的分組隨同控 制信息(如果有的話) 一起傳遞到地址檢查驅動器122.作為響應,地 址檢查驅動器122將那些解密的分組信號重新配置為"進入的分組", 以把它們重新路由到通信應用112。在至少一個實施例中,偽服務器120被配置為修改輸出的分組, 以便形成經(jīng)修改的分組。在這個例子中,偽服務器120可以從針對專 用網(wǎng)絡150的輸出分組中剝離報頭信息.可以被剝離的報頭信息的例 子包括TCP報頭、IP報頭、鏈路層報頭等等。被剝離報頭信息的分組 的剩余數(shù)據(jù)稱為"經(jīng)修改的分組",其中的每一個包括有效栽荷。經(jīng) 修改的分組在圖1中被描述為"有效栽荷"138.此外,消息幀132包 括再生指令來重建所剝離的報頭信息,以用于在專用網(wǎng)絡150中再生 修改前的分組。在某些情況下,消息幀132可以包括認證信息。 一旦 消息幀132由專用網(wǎng)絡150的至少一個實體所了解,就向隧道產(chǎn)生器 116返回一個鏈路確認("ACK" )134.在本發(fā)明的一個特定實施例 中,偽服務器1加把經(jīng)修改的分組形成為偽UDP分組,其構成由要被 傳送到專用網(wǎng)絡150的經(jīng)修改的分組138所組成的附加通信量136.這 樣,隧道產(chǎn)生器116在發(fā)送經(jīng)修改的分組138時產(chǎn)生確認130,以便防 止與由TCP標準所要求的確認有關的延遲。確認130可以被實現(xiàn)為"錯 誤確認(false acknowledgement)",以使得遠程客戶端在發(fā)送經(jīng)修改 的分組138時不需要等待確認(例如TCP確認)。因此,經(jīng)修改的分 組138是可以起到UDP分組的作用的TCP分組。這樣,由于通過鏈路 190的分組是偽裝為TCP分組的UDP分組,因此該安全通信鏈路190 可以被稱為"虛擬TCP連接"而不是標準TCP連接。在一個實施例中, 隧道產(chǎn)生器116確定通信量目標分組包括時間敏感的(也就是說是實 時應用的一部分)特定類型的數(shù)據(jù)(諸如視頻或者音頻數(shù)據(jù)),并且 有選擇地修改那些通信量目標分組以形成經(jīng)修改的分組138。加密器124被配置為建立與專用網(wǎng)絡150的連接,以及分別加密 和解密退出和進入遠程客戶端計算設備110的分組。例如,加密器124 可以使用在安全套接字層上的超文本傳送協(xié)議("HTTPS")、代理 HTTPS和類似的連接協(xié)議建立連接。由于這些連接協(xié)議通常在傳輸層 (或者更高層)上操作,加密器124建立適用于遍歷基于NAT的防火 墻和橋的連接。 一旦連接(例如,HTTPS)被建立,例如使用安全套 接字層("SSL")、傳輸層安全性("TLS")協(xié)議等來加密針對專 用網(wǎng)絡150的分組的有效栽荷。加密器124可以加密包括報頭信息(如 果未剝離的話)的整個分組,諸如IP報頭。專用網(wǎng)絡150包括VPN網(wǎng)關152和目標服務器154,其代表遠程 客戶端計算設備110與之建立通信的任何計算設備(比如服務器或者 客戶端)。VPN網(wǎng)關152是中介計算設備,其協(xié)調(diào)與遠程客戶端計算 設備110的安全通信鏈路190的建立。VPN網(wǎng)關152在遠程客戶端計 算設備110和目標服務器154之間交換通信。此外,VPN網(wǎng)關152至 少在某些方面類似于遠程客戶端計算設備110。也就是說,VPN網(wǎng)關 152包括處理器、存儲器和加密器(都未示出)以及地址檢查驅動器 ("AID" ) 122和偽服務器("PS" ) 120, AID 122與PS 120具有 如關于遠程客戶端計算設備110所描述的類似的功能和/或結構。VPN網(wǎng)關152還包括隨道管理器WO與地址變換器162.隨道管理 器160被配置為下栽作為軟件程序的至少偽服務器120與地址檢查驅 動器122。此外,隧道管理器160被配置為提供配置信息。該配置信息可以包括與專用網(wǎng)絡iso有關的地址的范圍,以使得遠程客戶端計算設備110可以選擇過濾出哪些分組作為目標分組通信量.此外,隧道 管理器160還被配置為接收消息幀132以及重建分組,以便例如包括 IP報頭信息和/或遠程客戶端計算設備110的所分配的地址。地址變換器162被配置為提供NAT處理,特別地是反向NAT處 理,以便對目標服務器154隱藏遠程客戶端計算設備110的所分配的 地址。為了說明,考慮以下例子,其中創(chuàng)建從遠程客戶端計算設備IIO 到目標服務器154的TCP連接,該目標服務器154具有192.168.1.100 的目的地地址。首先,對于地址192.168.1.100產(chǎn)生TCP SYN分組,隨 道產(chǎn)生器116通過安全通信鏈路190傳遞該SYN分組。VPN網(wǎng)關152 在該分組到達時檢查該分組,以及確定其是對應于192.168.1.100的 SYN分組。隨后,VPN網(wǎng)關152產(chǎn)生針對192.168.1.100的新的SYN(即 重放或者再生該分組),其具有一個源地址,該源地址看起來表明該 新的SYN分組來源于192.168.1.2,該地址是VPN網(wǎng)關152的專用地 址。在地址192.168.1.100處的目標服務器154產(chǎn)生SYN-ACK分組之 后,VPN網(wǎng)關152然后接收這個分組。然后,新的SYN-ACK分組又 通過安全通信鏈路l卯被傳送回到隧道產(chǎn)生器116,該隧道產(chǎn)生器116 然后產(chǎn)生SYN-ACK分組。由遠程客戶端計算設備110看來,這個分組 看起來是來源于地址192.168.1.100處的目標服務器154.簡而言之, VPN網(wǎng)關152能夠通過使用VPN網(wǎng)關152的唯一的源端口號來反向映 射應答分組、確認或者作為該協(xié)議的一部分的任何其它分組。以這種 方式,遠程客戶端計算設備110能夠連接到任何外部專用網(wǎng)絡,并且 仍然保持IP的不可見性。這種不可見性可以是在逐應用 (application-by-a卯lication)的基礎上。在某些情況下,VPN網(wǎng)關152 可以通過向隧道產(chǎn)生器發(fā)送對應于成功建立的安全通信鏈路的所分配 的專用地址來選擇性地允許地址可見性,該隧道產(chǎn)生器又把該專用地 址分配給其所駐留的遠程客戶端計算設備。但是應當注意到,遠程客 戶端計算設備的地址的可見性不是強制性的,而是可以例如被選擇性 地允許以便于某些應用,諸如語音應用或者任何其它對等應用.在一個特定的實施例中,遠程客戶端計算設備110可以在安全通 信鏈路190懸而未決的同時建立到另一個專用網(wǎng)絡("n" )198的另 一個安全通信鏈路192 (類似于鏈路190的鏈路).這樣,遠程客戶端 計算設備110可以同時建立到不同的專用子網(wǎng)或者網(wǎng)絡的多個VPN隧 道或者安全通信鏈路,特別是在目的地網(wǎng)絡地址部分或者完全重疊的 情況下。應當注意到,雖然因特網(wǎng)102被示范為通信網(wǎng)絡(通過其可 以建立根據(jù)本發(fā)明的一個實施例的安全通信鏈路190),遠程客戶端計 算設備110可以采用隧道產(chǎn)生器116來形成到任何類型的通信網(wǎng)絡的 隧道,諸如無線網(wǎng)絡。還應當理解的是,在不脫離本發(fā)明的范圍與精 神的情況下,本發(fā)明的各實施例可以使用任何路由協(xié)議(例如因特網(wǎng) 協(xié)議版本6 "IPv6")、以任何分組交換技術(例如以太網(wǎng))、通過任 何通信介質(zhì)(例如以太網(wǎng)電纜、無線、光纖等等)實現(xiàn)以及用于例如 終端站的任何計算設備(例如無線站)。圖2是描述根據(jù)本發(fā)明一個實施例的、在安全通信鏈路上傳送分 組的示范方法的流程圖200。在202,運行在遠程客戶端計算設備上的 通信應用(比如Telnet應用)響應于用戶級應用訪問專用網(wǎng)絡的請求 而產(chǎn)生分組通信量。在204,該客戶端計算設備識別針對目標服務器的 目標分組通信量。在206,所述目標分組通信量被重新路由到偽服務器 模塊,以便至少把分組再生指令例如傳送到VPN網(wǎng)關。該客戶端計算 設備在208接收從該VPN網(wǎng)關發(fā)送的鏈路確認,由此例如用信號通 知在該客戶端與該專用網(wǎng)絡之間的安全通信鏈路是可搮作的。所述 鏈路確認又在210被傳送到所述通信應用,以便啟動分組傳送。在212, 尋址到該目標服務器的附加分組通信量可以例如從地址檢查驅動器被 導向該偽服務器模塊。此后,根據(jù)本發(fā)明的至少一個實施例,在214, 當在發(fā)送到目標服務器之前在該偽服務器模塊處接收到所述附加分組 通信量時,可以向所述通信應用發(fā)送確認。在一些實施例中,在216 從所述附加分組通信量中剝離報頭信息以便形成有效載荷。然后,所 述有效載荷在218被路由到所述VPN網(wǎng)關。圖3是根據(jù)本發(fā)明一個實施例的用于描述遠程客戶端計算設備的 框圖。在這個例子中的計算設備302能夠經(jīng)由安全通信鏈路380與例
如位于專用網(wǎng)絡上的另 一個計算設備交換加密的分組通信量390。在圖 3示出的例子中,計算設備302包括耦合到網(wǎng)絡接口卡("NIC" )324 的操作系統(tǒng)304,該接口卡例如可以是以太網(wǎng)適配器。操作系統(tǒng)304還 包括協(xié)議棧310,其可以是用于把諸如應用層的高級別協(xié)議層綁定到諸 如包括NIC 324的物理層的低級別協(xié)議層的任何網(wǎng)絡協(xié)議組。如圖所 示,根據(jù)本發(fā)明的一個特定的實施例,協(xié)議棧包括偽服務器317、地址 檢查驅動器323和加密協(xié)議310.協(xié)議棧310被示為至少包括傳輸層、網(wǎng)絡層與鏈路層。傳榆層包 括至少一個轉送協(xié)議,諸如UDP處理312、 TCP處理314 (即TCP業(yè) 務)或者可選的另一個傳輸協(xié)議類型(即"其它傳輸"協(xié)議316,諸如 "ICMP")。圖3示出包括IP處理318 (即IPv4或者IPv6業(yè)務)的 網(wǎng)絡層可以是在鏈路層之上的下一個較高層上。在這個例子中,偽服 務器3H被布置在傳輸層上,地址檢查驅動器323被布置在網(wǎng)絡層附 近。特別地,地址檢查驅動器323被布置在數(shù)據(jù)鏈路層上。諸如SSL 的加密協(xié)議310可以與偽服務器317布置在一起或者可以被布置在偽 服務器3H之上,并且其適合于實現(xiàn)圖1的加密器124。在圖3中,加 密協(xié)議310是在TCP處理314之上的層中。根據(jù)本發(fā)明的一個實施例,協(xié)議棧310是以軟件具體實現(xiàn)的處理 的集合。在另一個實施例中,協(xié)議棧310和/或其組成部分可以以軟件、 硬件或者二者具體實現(xiàn)。協(xié)議棧310的每個處理(例如TCP 314、 IP 318 等等)被配置為與每個其它處理通信,比如跨越協(xié)議棧310的各層。 諸如傳輸層的高級別層可以被配置為例如經(jīng)由WinsockAPI308 (或者 用來建立原始套接字的任何其它套接字層程序)與應用306通信。 Winsock API 308提供與應用306的接口 ,該應用可以是Telnet應用. 諸如網(wǎng)絡層或者鏈路層的低級別層可以被配置為例如經(jīng)由MAC驅動 器322與NIC 324通信。以下在圖4與圖5中描述了在偽服務器317 與地址檢查驅動器323之間用于建立安全通信鏈路的示范性交互作 用。圖4是說明根據(jù)本發(fā)明特定一個實施例的、當從遠程客戶端發(fā)送 目標分組通信量到專用網(wǎng)絡時在偽服務器和地址檢查驅動器之間的交 互作用的功能框圖400。在這個例子中,加密器124與偽服務器120被 布置在傳輸層404上,地址檢查驅動器122被布置在網(wǎng)絡層408上。同 上。偽服務器120耦合到轉發(fā)映射數(shù)據(jù)結構440的端口,該映射數(shù)據(jù) 結構保持分組信息,諸如"密鑰"、源地址("SA")、源端口 ( "SP")、 目的地地址("DA")與目的地端口 ( "DP")。類似地,地址檢查 驅動器122保持被描述為驅動器映射表數(shù)據(jù)結構422的類似數(shù)據(jù)結 構.此外,地址檢查驅動器122還耦合到過濾器表420,其包括由VPN 網(wǎng)關提供的配置信息。過濾器表420包括網(wǎng)絡地址(諸如源地址與目 的地地址(例如198.0.0.80))、可選的子網(wǎng)掩碼(未示出)、協(xié)議(諸 如TCP、 UDP、 ICMP等等(未示出))、端口信息(諸如源端口與 目的地端口 )以及唯一標識與目標分組通信量有關的目的地信息的唯 一映射密鑰。當對這些數(shù)據(jù)結構的其中之一做出改變時,偽服務器120 和地址檢查驅動器122通過交換諸如在控制分組434中的控制信息來 同步這些數(shù)據(jù)結構。 一個示范性控制分組434可以是UDP分組或者任 何其它協(xié)議的分組,并且其典型地與被重新路由的數(shù)據(jù)分組一起被發(fā) 送到偽服務器120。如果其中一些控制信息包括對條目442的更新(諸 如目的地端口中的改變),則輸入該改變。在某些情況下,所述控制 信息包括應該如何在VPN網(wǎng)關處處理或者再生所述分組。假設應用112駐留在遠程客戶端計算設備上并且可以由源地址 10.0.0.2和源端口 8678標識,目標服務器(未示出)駐留在目的地地 址198.0.0.80和目的地端口 445上。如果地址檢查驅動器122尚未檢測 到分組通信量462中的目的地地址或者端口,那么對應于該目標服務 器的目的地地址和目的地端口被存儲在驅動器映射表數(shù)據(jù)結構422 中。在這種情況下,在數(shù)據(jù)結構422中形成條目424以包括如10.0.0.2 的源地址("SA")、如8678的源端口 ( "SP")、如198.0.0.80的 目的地地址("DA")、如445的目的地端口 ( "DP")以及由地址 檢查驅動器122產(chǎn)生并分配給所述分組通信量的"密鑰"。應當注意 到,條目426表示應用112已經(jīng)形成到另一個VPN網(wǎng)關的另一個安全 通信鏈路,并且地址檢查驅動器112被配置為檢查與條目424和426 二者有關的分組通信量。這樣,可以利用應用112同時建立多個VPN。其次,假設應用112正在產(chǎn)生針對目的地地址198.0.0.80和目的地 端口 445的目標分組通信量464。這個目標分組通信量464經(jīng)過套接字 層402到達偽服務器120。套接字層402可以包括Winsock API、Winsock
提供者或者任何其它套接字連接提供者處理(例如,提供原始套接字的編程接口 ),而不管操作系統(tǒng)如何。偽服務器120把數(shù)據(jù)結構440 的各條目與目標分組通信量464中的信息相匹配,以便確定該分組通 信量是否是VPN的一部分。由于數(shù)據(jù)結構440中的條目包括分別相應 于198.0.0.80和445的DA和DP,因此得到了匹配,并且偽服務器120 斷定分組通信量464將要經(jīng)由安全通信鏈路被路由。偽服務器120然 后將目標分組通信量466傳遞到地址檢查驅動器122,其中目標分組通 信量466由源地址("SA,, ) 450、源端口 ( "SP" ) 452、目的地地 址("DA" ) 454和目的地端口 ( "DP" ) 456表征。應當注意到, 圖4示出了具有選擇地址和端口信息的分組466和其它分組;為了說 明的目的,省略了包括有效栽荷的其它分組數(shù)據(jù)。地址檢查驅動器122然后重新配置目標分組通信量466并且把其 作為重新路由的分組432而重新路由回到偽服務器120。在至少一個實 施例中,地址檢查驅動器122將SP 452重新配置為包括"密鑰",其 在這個例子中是"54321"。此外,DA和DP被分別重新配置為包括本 地主機或者本地機器("LM")地址454和通信量端口 ( "TP" ) 456. 在一個特定的實施例中,本地機器地址454是127.0.0.1,其是導致將 重新路由的分組432沿著OSI協(xié)議棧向上發(fā)送的環(huán)回地址。地址檢查 驅動器122將重新路由的分組432發(fā)送到偽服務器120的通信量端口 ("TP" ) 430,其中TP 430是例如用于檢測TCP分組的偵聽端口, 在一些實施例中,重新路由的分組432被發(fā)送到偽服務器120的TCP 通信量端口,而不管重新路由的分組432是否是UDP分組,諸如在偽 服務器120產(chǎn)生作為經(jīng)修改的分組的偽UDP分組的情形中就是如此。 同時(或者幾乎同時),控制分組434包括本地機器地址(未示出), 以使其可以沿著OSI協(xié)議棧被向上發(fā)送到偽服務器120的控制端口(未 示出)。在這種情況下,控制分組434包括描述為了形成重新路由的 分組432對分組進行的修改的信息。此后,偽服務器120然后把重新 路由的分組432重定向到加密器124,以便形成通過安全通信鏈路而被 傳遞的加密的分組468。圖5是說明根據(jù)本發(fā)明一個特定實施例的、在從專用網(wǎng)絡接收到 進入遠程客戶端的加密分組通信量之后在偽服務器和地址檢查驅動器 之間的交互作用的功能框圖500。為說明所述交互作用,假設加密分組502被一直傳遞到加密器124以用于解密。然后,解密的分組被傳遞到 偽服務器120,該偽服務器將解密的分組的至少一些內(nèi)容與數(shù)據(jù)結構 ("端口轉發(fā)表")"0中的數(shù)據(jù)相匹配。假設得到匹配,由此表示解 密的分組是已建立的VPN的一部分。這樣,偽服務器120將解密的分 組504和附帶控制分組505 (其在這種情況下包括與分組504有關的密 鑰)提供到地址檢查驅動器122的眾所周知的端口 ( "WKP" ) 506。 此后,地址檢查驅動器122根據(jù)由所述密鑰索引到驅動器表422中的 信息重新配置解密的分組504,該驅動器表422類似于圖4的數(shù)據(jù)結 構。這樣,重新配置的分組將包括標識應用112的目的地信息。這樣, 將重新路由的分組432作為"進入的"(或者所接收的)分組520而 用信號通知,并且沿著協(xié)議棧將其向上傳遞到應用112.圖6是說明根據(jù)本發(fā)明至少一個實施例、對于實時應用修改分組 的偽服務器的各個模塊的框圖600。如圖所示,偽服務器604包括將 UDP標記為TCP (flag-UDP-as-TCP)模塊605、分組修改器模塊607 和確認產(chǎn)生器609 ,在通過本發(fā)明的安全通信鏈路發(fā)送分組時可以同時操作一個或多個所述模塊。盡管諸如語音和視頻的實時分組通信量受 益于諸如UDP的無會話協(xié)議的性能優(yōu)點,但是標準UDP分組通常難 以跨越許多防火墻,而TCP通信量則沒有這樣的缺點.在本發(fā)明的至 少一個特定的實施例中,偽服務器604被配置為使用經(jīng)修改的TCP分 組形成"偽UDP"分組.將UDP標記為TCP模塊605被配置為在IP報頭中把UDP分組標 記為TCP分組,其欺騙通信網(wǎng)絡以使其認為所述分組是TCP會話的一 部分。分組修改器607被配置為利用套接字層602的原始套接字連接 處理603進行操作。特別地,分組修改器607剝離諸如IP報頭信息的 報頭信息,并且通過由原始套接字連接處理603形成的原始套接字連 接來發(fā)送剩余的有效載荷。這樣,還發(fā)送再生指令,以便描述當這些 分組在報頭信息被剝離的情況下經(jīng)過安全通信鏈路之后如何重建分 組。在一個實施例中,所述再生指令包括用于在目標服務器處重建報 頭信息的信息,以便可以將目標分組通信量從第 一格式轉換成笫二格 式。在笫一格式與傳輸控制協(xié)議("TCP")相關聯(lián)并且第二格式與 用戶數(shù)據(jù)協(xié)議("UDP")相關聯(lián)的情形下,第一分組被格式化為偽 UDP (例如被標記為TCP分組的UDP分組),并且第二分組被格式 化為例如用于實時應用傳輸?shù)腢DP分組。確認產(chǎn)生器609被配置為響應于通過所述安全通信鏈路發(fā)送的 UDP分組的TCP表示(即偽UDP分組)而發(fā)出"錯誤確認"。這允 許TCP通信量的類似UDP的行為,因為如果所述TCP分組(即偽UDP 分組)丟失了, VPN隧道的發(fā)送端或者接收端不試圖同步序列號和重 新發(fā)送該分組。因此,所述VPN把偽UDP分組的轉發(fā)解釋為轉發(fā)TCP 分組,但是在該安全通信鏈路的任一端上具有解釋這些分組是否是承 載語音(諸如RTP)或者視頻的UDP分組的原始套接字。在這里描述了用于建立諸如具有偽服務器和地址檢查驅動器的安 全通信鏈路的各種結構和方法。所述方法可以由軟件處理控制或者包 括軟件處理,所述軟件處理例如是軟件程序的一部分。在一個實施例中,偽服務器模塊和地址檢查驅動器模塊被布置在嵌入計算機可讀介 質(zhì)中的軟件程序中,其包含用于在計算機上執(zhí)行以實現(xiàn)根據(jù)本發(fā)明的 安全通信鏈路的指令。本發(fā)明的一個實施例涉及一種具有計算機可讀介質(zhì)的計算機存儲 產(chǎn)品,所述計算機可讀介質(zhì)在其上具有用于執(zhí)行各種由計算機實現(xiàn)的操作的計算機代碼。所述介質(zhì)和計算機代碼可以是對于本發(fā)明的目的 而特別設計和構造的,或者它們可以是眾所周知的類型并且可以由計 算機軟件領域的普通技術人員利用。計算機可讀介質(zhì)的例子包括(但 是不局限于)諸如硬盤、軟盤和磁帶的磁介質(zhì);諸如CD-ROM和全 息設備的光學介質(zhì);諸如光盤的磁光介質(zhì);以及特別被配置為存儲和 執(zhí)行程序代碼的硬件設備,諸如專用集成電路("ASIC")、可編程 邏輯器件("PLD")以及ROM和RAM設備。計算機代碼的例子包 括諸如由編譯器產(chǎn)生的機器代碼,以及包含由使用解釋器的計算機執(zhí) 行的高級別代碼的文件。例如,本發(fā)明的一個實施例可以使用Java、 0++或者其它程序設計語言與開發(fā)工具來實現(xiàn)。本發(fā)明的另一個實施例 可以代替、或者與機器可執(zhí)行的軟件指令一起實現(xiàn)在硬布線電路中。為了說明的目的,前述說明使用特定命名法提供了對本發(fā)明的徹 底說明。然而,對本領域技術人員來說顯而易見的是,在此選擇的命 名法用于教導本發(fā)明的某些方面,而不欲限制各個實施例的實現(xiàn)方 式。因此,對于本發(fā)明特定實施例的前述說明僅用于例示與說明的目 的,而不意圖窮盡本發(fā)明的實施例或者將本發(fā)明限制到所公開的精確
形式;明顯地,根據(jù)上述教導,許多修改與變化是可能的。為了最好 地解釋本發(fā)明的原理與其實際應用,選擇并描述了所述實施例,它們 由此允許所屬領域的技術人員依照適合于所構想的特定用途的各種修 改來最好地利用本發(fā)明及其各實施例。所附權利要求書與其等效表述 限定本發(fā)明的范圍。
權利要求
1. 一種用于通過建立虛擬專用網(wǎng)絡來確保與遠程客戶端計算設備的通信的安全性的方法,包括利用運行在客戶端計算設備上的通信應用來產(chǎn)生分組通信量; 在所述客戶端計算設備處識別尋址到目標服務器的所述分組通信量的目標分組通信量;在所述計算設備上的偽服務器模塊與所述目標服務器之間形成安 全通信鏈路;把尋址到目標服務器的附加分組通信量導向所述偽服務器模塊;在接收到被重新路由到所述偽服務器模塊的所述附加分組通信量 時向所述通信應用發(fā)送確認;以及將有效載荷路由到所述目標服務器。
2. 權利要求l的方法,其中在所述客戶端計算設備處識別所述目 標分組通信量包括在地址檢查驅動器處檢查所述分組通信量; 將所述分組通信量的信息與表示所述目標服務器的地址相匹配;以及將針對表示所述目標服務器的所述地址的所述分組通信量的子集 過濾為將要重新路由到所述偽服務器模塊的所述分組通信量。
3. 權利要求l的方法,其中在所述偽服務器和所述目標服務器之 間形成所述安全通信鏈路包括把所述目標分組通信量重新路由到在所述客戶端計算設備上的所 述偽服務器模塊,所述偽服務器模塊將分組再生指令傳送到所述目標 服務器;響應于在所述目標服務器處接收到所述分組再生指令,從所述目 標服務器接收鏈路確認;以及將所述鏈路確認傳送到所述通信應用。
4. 權利要求3的方法,其中傳送所述分組再生指令包括包括用 于在所述目標服務器處再生報頭信息的信息。
5. 權利要求4的方法,其中包括所述信息還包括包括用于將所 述目標分組通信量從第一格式轉換到第二格式的轉換信息.
6. 權利要求5的方法,其中包括所述轉換信息包括用于把與傳輸 控制協(xié)議("TCP")有關的所述笫一格式轉換到與用戶數(shù)據(jù)協(xié)議 ("UDP")有關的第二格式的信息.
7. 權利要求1的方法,其中將所述有效栽荷路由到所述目標服務 器包括從所述附加分組通信量剝離報頭信息,以便形成有效載荷。
8. 權利要求l的方法,其中所述確認是錯誤確認。
9. 一種用于形成虛擬專用網(wǎng)絡的計算機系統(tǒng),包括 地址檢查驅動器,用于識別尋址到目標服務器的初始目標分組通信量;以及偽服務器模塊,用于從所述地址檢查驅動器接收重新路由的初始 目標分組通信量,所述偽服務器模塊將分組再生指令傳送到所述目標 服務器;其中所述地址檢查驅動器識別尋址到所述目標服務器的附加目標 分組通信量,并且將所述附加目標分組通信量路由到所述偽服務器; 以及其中所述偽服務器從所述附加目標分組通信量剝離報頭信息以形 成有效栽荷,以及此后將所述有效載荷路由到所述目標服務器.
10. 權利要求9的計算機系統(tǒng),還包括驅動器映射數(shù)據(jù)結構,該驅 動器映射數(shù)據(jù)結構被配置為包括源信息和目的地信息,所述地址檢查 驅動器將來自所述初始分組通信量的分組信息與所述源信息和目的地 信息相比較。
11. 權利要求9的計算機系統(tǒng),其中所述地址檢查驅動器被配置為 在所述分組信息的至少一部分匹配所述目的地信息的至少一部分時, 過濾所述附加目標分組通信量,以防止其未經(jīng)加密地到達所述目標服 務器。
12. 權利要求9的計算機系統(tǒng),其中所述地址檢查驅動器被配置為 產(chǎn)生控制分組,該控制分組被重新路由到與所述初始目標分組通信量 相關聯(lián)的所述偽服務器。
13. 權利要求12的計算機系統(tǒng),其中所述控制分組包括所述初始 目標分組通信量的源信息和目的地信息,以用于檢測源自所述目標服 務器的分組通信量。
14. 權利要求9的計算機系統(tǒng),其中所述分組再生指令被配置為指 導所述目標服務器再生所述目標分組通信量,以便形成包括再生的報 頭信息和所述有效載荷的再生的分組通信量。
15. 權利要求9的計算機系統(tǒng),還包括協(xié)議棧,其中所述地址檢查 驅動器駐留在網(wǎng)絡層上或者該層附近,所述偽服務器模塊駐留在所迷 傳輸層上或者該層附近,所述網(wǎng)絡層和傳輸層是依照所述開放系統(tǒng)互 連模型的層。
16. 權利要求15的計算機系統(tǒng),其中所述地址檢查驅動器檢查并過濾在所述網(wǎng)絡層上或者該層附近的分組,由此支持用于在所述虛擬 專用網(wǎng)絡中建立安全通信鏈路的任何路由協(xié)議。
17. 權利要求17的計算機系統(tǒng),其中所述偽服務器將加密的分組 傳遞到源自所述傳輸層上或該層附近的安全通信鏈路上,由此允許所 述加密的分組經(jīng)過允許網(wǎng)絡地址變換("NAT")的網(wǎng)絡設備。
18. —種虛擬專用網(wǎng)絡,包括客戶端機器,其被配置為關于運行在所述客戶端機器上的通信應 用的偽服務器機器,以使得所述通信應用從所述偽服務器機器接收分 組通信量確認;以及與服務器機器一起操作來充當關于所述偽服務器機器的客戶端機 器的虛擬專用網(wǎng)絡網(wǎng)關,以便于在所述客戶端機器和所述服務器機器 之間的安全通信。
19. 權利要求17的虛擬專用網(wǎng)絡,其中所述虛擬專用網(wǎng)絡網(wǎng)關可 選擇地對所述服務器機器隱藏運行所述通信應用的所述客戶端機器的 地址。
20. 權利要求17的虛擬專用網(wǎng)絡,其中所述偽服務器機器包括確 認產(chǎn)生器模塊,以用于產(chǎn)生作為錯誤確認的所述分組通信量確認。
21. 權利要求17的虛擬專用網(wǎng)絡,其中所述偽服務器機器包括分 組修改器模塊,其被配置為通過從中剝離報頭信息來修改表示所述安 全通信的分組,從而形成經(jīng)修改的分組。
22. 權利要求21的虛擬專用網(wǎng)絡,其中所述偽服務器機器被配置 為在套接字層上形成原始套接字,所述原始套接字被利用來傳送所述 安全通信。
23. 權利要求17的虛擬專用網(wǎng)絡,其中所述偽服務器機器包括將 UDP標記為TCP模塊,其被配置為修改在UDP分組中的標記,以表 明所述UDP分組是TCP分組,從而形成偽UDP分組。
全文摘要
公開了一種用于實現(xiàn)安全通信鏈路的系統(tǒng)、設備和方法,其中,在其上實現(xiàn)所述安全通信鏈路的層不同于在其上對分組進行過濾的層。在一個實施例中,計算機系統(tǒng)被配置為形成虛擬專用網(wǎng)絡(“VPN”),該計算機系統(tǒng)包括地址檢查驅動器,以用于識別尋址到目標服務器的初始目標分組通信量。此外,所述計算機系統(tǒng)包括偽服務器模塊,以用于從所述地址檢查驅動器接收被重新路由的初始目標分組通信量。所述偽服務器模塊被配置為把分組再生指令傳送到VPN網(wǎng)關。所述地址檢查驅動器用于識別尋址到目標服務器的附加目標分組通信量,以及把所述附加目標分組通信量路由到該偽服務器。在一個實施例中,該偽服務器被配置為從所述附加目標分組通信量剝離報頭信息以形成有效載荷,以及此后把該有效載荷路由到目標服務器。
文檔編號G06F12/14GK101124548SQ200480040249
公開日2008年2月13日 申請日期2004年11月12日 優(yōu)先權日2003年11月11日
發(fā)明者E·布呂格曼, G·P·勞, R·羅德里格斯 申請人:塞特里克斯網(wǎng)關公司