用于建立虚拟专用网络的系统和方法

文档序号:6656667阅读:260来源:国知局
专利名称:用于建立虚拟专用网络的系统和方法
技术领域
本发明一般涉及数据通信网络。更具体来说,本发明涉及在例 如因特网的公共数据通信网络上的实体之间建立虚拟专用网络
(VPN )。
背景技术
企业越来越多地被要求向位于企业网络的周边之外的雇员和伙 伴提供对专有应用程序和数据的访问。为了以有效率的方式做到这 一点,企业尝试平衡使用如因特网的公众网络来提供远程访问。但 是,因为因特网是公众可访问的网络,所以产生网络安全性问题。
有多种技术可用于实现安全因特网通信,包括但不限于依赖于 安全套接字层(SSL)加密或因特网协议安全性(IPSes)加密的那 些技术。SSL加密被结合到目前因特网用户使用的大多数Web浏览 器中,而IPSec目前则没有被结合。
但是,SSL技术在提供对专用网络的远程访问的能力上是有限 的,其中SSL加密的客户机无法直接访问域名服务器、Windows因 特网命名服务(WINS)服务器或专用网络上的其他资源,它们从企 业网络外部是不可见的但是对于达到该网络上的资源是必需的。此 外,防火墙通常自动阻止经由多种端口的某些业务并限制对多种因 特网协议(IP)地址的访问,由此妨碍了 SSL加密的客户机访问企 业网络上的某些目的地。最后,例如多种客户机-服务器e-mail程序 和其他企业应用程序的重要应用程序不固有地支持SSL加密,因此 限制SSL在提供对这些资源的安全远程访问的有效性。
虚拟专用网络(VPN)连接允许远程用户和客户机程序(换言之,不直接连接的那些)经由/>众互联网(例如因特网)对专用数
据网络的加密远程访问。建立VPN的常规方法包括了使用预先安装 的"胖"客户机建立远程访问,这种胖客户机基于IPSec标准或SSL 和基于Web浏览器的动态SSL VPN技术的早期版本。下文更详细地 解释每个概念。
基于IPSec技术的VPN胖客户机涉及以加密的形式在因特网上 传输整个分组。虽然鲁棒且安全,但IPSec技术具有显著的局限。这 些局限其中包括为远程访问用户展开、管理和维护VPN客户机软件 中的管理难题,因为每个用户必须在他或她的计算机上下载和安装 IPSec软件。此外,利用IPSec VPN技术,用户无法从备选端点(换 言之,用户尚未安装相关软件的任何设备)访问关键资源。而且, 对防火墙保护的站点的用户访问受到限制,在一些情况中这些站点 是不存在的。
胖客户机的的常规SSL版本使用防火墙一般保持打开的标准SSL 端口来避开IPSec胖客户机的防火墙限制。但是,这种实现仍导致任 何地方只要发生访问就需要预先安装客户机软件的缺点。这些缺点 包括管理复杂以及无法在无需安装特殊软件的情况下提供从配备有 标准Web浏览器的任何客户机计算机的访问。
常规动态端口代理(proxy)方法保留SSL胖客户机的防火墙遍历 能力,并利用Web浏览器的内置加密功能来解决IPSec和SSL胖客 户机的局限,由此免去了安装特殊客户机软件的需要。根据这种方 法,网关装置或访问服务器上的程序会下载Java applet来监视用于 加密业务的端口。如果检测到加密业务,则将发送加密数据的客户 机配置为将其业务重定向经由合适的安全端口。但是这种技术的问 题在于它仅对于具有名称的地址有效。换言之,它将对静态IP地址 或服务器的IP地址和/或端口动态变化的情况无效。因此,这些实现 无法处理使用动态指定的IP地址、动态变化端口或使用硬编码的IP 地址来到达未命名的资源的应用程序。因此需要一种系统和方法,用于通过例如因特网的公共数据通 信网络提供对企业网络中的应用程序和数据的安全远程访问,它们 针对常规解决方案的前述缺点进^f于了改进并解决了这些缺点。

发明内容
在其最广泛的应用中,本发明的目的在于提出一种系统和方法,
用于在客户机和专用数据通信网络之间建立虚拟专用网络(VPN ), 其中客户机以安全方式经公共数据通信网络连接到专用数据通信网 络。根据本发明的实施例,专用数据通信网络包括其上驻留有专用 于企业的应用程序和数据的企业网络,公共数据通信网络包括因特 网。
根据本发明实施例的方法,通过公共数据通信网络在网关或访 问服务器上的程序与客户机之间建立加密数据通信会话。可以通过 多种方法来加密通信会话,这些方法包括但不限于安全套接字层 (SSL)协议、因特网协议安全性(IPSec)或其他加密方法。
响应加密数据通信会话的建立,网关或访问服务器上的程序将 程序发送回客户机。在一个实施例中,该程序包括由客户机Web浏 览器自动安装并执行的控制或编程组件(即,可以在整个网络环境 中运行的自备程序)。在一个实施例中, 一旦安装在客户机上,该程 序作为操作拦截器动态拦截来自客户机应用程序且目的地为指定的 专用数据通信网络上的资源的通信,该拦截器安装为客户机上的操 作系统的传输层上的"钩子"。
在 一 个实施例中,该程序还可以通过提供用于此类拦截的通信 的端点作为用于拦截的通信的连接代理。该程序还可以引入作为加 密数据通信会话中的加密端点的功能,并可以经由加密数据通信系 统将此类通信送往网关或访问月l务器。在备选实施例中,该程序可 以分成两个或多个分开的程序- 一个执行客户机上的拦截功能而 第二个其中执行网络代理和加密功能。本发明的实施例包括由程序拦截名称转换和连接请求。根据此
类实施例通过VPN通信的客户机和服务器自由地使用它们选择的任 何IP地址,以及在运行时动态地更改那些地址,因为这种实施例不
依赖于静态名称至地址的转换。
当网关或访问服务器经由加密数据通信会话从客户机接收到加 密的通信时,它将加密的通信解密,并将其提供给专用数据通信网 络上的适合目的地资源。在一个实施例中,网关端接(terminate)业务
(作为代理),然后还能够按如下描述的处理请求,而非仅仅直接沿 途将其发送到专用网络上的目的地。在该实施例中,网关可以对连
接执行附加的处理,包括但不限于后端加密、为来自高速緩存的响 应提供服务、本地网络负载平衡、全局服务负载平衡或压缩。
如果有来自目的地资源的任何响应通信,则将它们送往网关(并 潜在地执行加密,其中按下文描述的利用后端加密),以便经由加密 数据通信会话传输到安装的客户机程序。安装的客户机程序将响应 通信解密,并将它们传递到适合的客户机应用程序。
在根据本发明实施例的特定方法中,通过公共数据通信网络在 网关与客户机之间建立如安全套接字层(SSL)会话的加密数据通信 会话。然后网关响应加密数据通信会话的建立而将第 一程序发送到 客户机。在一个实施例中,该笫一程序包括动态交付的程序组件、 例如由客户机Web浏览器自动安装并执行的Active X控件。其他此 类组件可以是Java applet、 Java脚本、动态共享库或其他此类程序组 件。
当笫 一程序被客户机执行时,其中它在该客户机上安装第二程 序。第二程序用于拦截来自客户机应用程序且目的地为专用数据通 信网络上的资源的通信。第二程序还用于将所拦截的通信提供给第 一程序,用于经由加密数据通信会话发送到网关,而不是直接发送 到专用数据通信网络上的资源。在一个实施例中,第二程序包括动 态拦截器、例如过滤设备驱动程序,它作为"钩子"安装在客户机的操作系统的传输层上。
在一个实施例中,第一程序作为连接代理,提供用于拦截的通
信的端点。其他非预先安装的SSL VPN (包括端口代理)不能作为 每个连接的代理,而仅能够作为预先配置端口代理所支持的那些命 名的资源和端口的端点。
当网关经由这些程序组件建立的加密数据通信会话从客户机接 收到加密的通信时,它将该加密的通信解密并将其提供给专用数据 通信网络上的适合目的地资源。
在另一个实施例中,该网关可以作为经由VPN发送的应用业务 的中间代理,则还能够处理应用请求而不仅仅将它们直接沿途发送 到专用网络上的目的地。该实施例允许网关对连接执行进一步处理、 例如后端加密,其中在将业务交付到专用数据通信网络上的适合目 的地之前网关将业务再次加密,从而允许用户实现附加的网络安全 性。而且,这种处理可以允许网关为来自高速緩存的响应提供服务, 而无需目的地资源完成附加的工作。作为备选或附加方式,该网关 可以对连接数据执行本地网络负载平衡、全局服务负载平衡或压缩。
如果有 来自目的地资源的任何响应通信,则将它们提供给网关 (并在一个实施例中,在传送到网关之前潜在地由目的地资源加密, 该实施例中利用后端加密提供端到端网络安全性)以便经由加密数 据通信会话传送到第一程序。该第一程序将响应通信解密,并经由 第二程序将它们传递到适合的客户机应用程序。
根据本发明一个实施例,用户无需预先在客户机系统或设备上 安装任何软件。相反,作为登录到网关的结果,动态地将必要的组 件安装在客户机上,而在随后退出时将其移除。这具有显著的优点 优于安全远程访问的常规解决方案、例如基于IPSec技术的解决方 案,其中用户必须将软件预先安装在客户机上。
而且,根据本发明的实施例,将从客户机应用程序到驻留在专 用数据通信网络上的资源的通信基于对这些通信的拦截被重定向到网关。这显著地区别于常规VPN代理,常规VPN代理利用动态端 口代理,并因此需要客户机上的名称至地址的转换才能工作。因为 本发明的实施例基于名称转换和连接请求的拦截,而非端口代理, 所以根扭本发明实施例通过VPN进行通信的客户机和服务器自由地 使用它们选择的任何IP地址,以及在运行时动态地更改那些地址, 因为实施例不依赖于静态的名称至地址转换。因此,本发明的实施 例允许4吏用-更编码的IP地址、动态IP地址和动态端口 。
此外,本发明的实施例还提供基于代理设置连接的VPN解决方 案。例如,本发明的实施例提供基于连接代理设置的加密隧道用于 安全远程访问,该加密隧道端接连接,因此能够提取原始连接的TCP 有效负载,并将此类应用有效负载封装到经由分离的TCP连接传送 的新TCP有效负载中。常规IPSec解决方案加密所有分组并使用网 络分组层上建立的隧道来实现设备之间的通信。在其他常规SSL解 决方案中,可以通过在端口代理或其他解决方案建立的新TCP连接 内以隧道传送包括所有TCP头的完整TCP分组来传送来自多个应用 的业务。封装连接是第二 TCP连接,该TCP连接完整无缺地将原始 连接、包括所有头无修改地交付到网关,该网关从封装TCP连接解 开原始连接的有效负载,并同样不修改地完成至最终专用网络目的 地的交付。
将完整TCP连接线程化在其他连接内的这种方法产生问题的可 能性。因为在分组丢失或分组延迟或者察觉到分组丟失或延迟之后, TCP协议生成降速、重新传输和确认,所以随着TCP协议生成附加 的降速、重新传输和确认,隧道传输解决方案下的双层TCP将任何 此类分组丢失或分组延迟放大。由此,延迟和重新传输的新级别显 著地加重了原有降速,而成为经由TCP上TCP连接隧道交付多个TCP 有效负载的重大限制。
相比之下,在本发明的一个实施例中,为每个应用程序连接建 立单独的加密会话隧道。因为此类实施例中的每个连接被端接或被代理且TCP有效负载分拆到它自己新创建的TCP连接上并经由该连 接交付,所以该实施例可以通过避免TCP上TCP问题来更容易地避 免级联的连接延迟。因为应用程序有效负载经由一组分离的TCP连 接发送,所以网络中的分组丢失或延迟仅影响一个连接,而不像实 施隧道的情况,不会引起级联的重新传输。这种实施例还可以容易 地与隧道中的应用内容业务的附加连接专用处理结合
因为本发明的实施例提供一种作为代理的VPN解决方案,其中 该代理在加密此类数据并在SSL或其他会话隧道上发送它之前在客 户机处端接连接,所以可以更有效的执行此类拦截的分组的附加处 理。此类处理可以包括此类业务的DNS名称解析,以1更使客户机应 用程序能够使用它们选择的任何IP地址以及如上所述在运行时动态 更改那些地址。此类附加处理还使本发明能够有效地与其他技术结
实现更大的可用性和更大的效率。由此上文的实施例和连接处理还 使得本发明能够保存有关分组的详细日志记录和统计数字。
通过使应用数据的进一 步的连接专用内容处理成为可能,本发 明实施例还使VPN能力(例如SSL VPN能力)能够与网关可提供 给企业网络的其他有益功能结合。例如,本发明的实施例能够在网 关处结合应用层优化、切换和安全性功能特征。具体来说,根据本 发明实施例的针对连接的隧道建立能使VPN功能特征容易地与请求 切换技术结合(如2002年6月25日提交的美国专利号6,411,986 、 标题为"因特网客户机-服务器复用器"(Internet Client-Server Multiplexer)以及2000年10月18日提交的共同未决的美国专利申 请号09/690,437、标题为"有效率地在客户机与服务器之间池化连接 的设备、方法和计算机程序产品"(Apparatus, Method and Computer
Servers),通过引用将它们的每一个结合于本文,如同本文中充分提 出 一样),请求切换技术能够以非常高的吞吐量将此类应用数据处理能力同时应用于多个交织的数据流。本发明实施例的VPN功能特征 还可以容易地与请求级负载平衡、超文本传输协议(HTTP)动态应 用高速緩存、HTTP压缩、传输控制协议(TCP )压缩、对TCP和HTTP 分布式服务拒绝攻击的预防、HTTP病毒预防扫描等结合。
最后,在本发明的实施例中,通过如下方式扩充了 VPN功能特 征的结合将上文描述的SSL解密和端点处理与网关处要执行的连 接的其他处理同步,连接的其他处理包括上文描述的那些,如负载 平衡、HTTP动态应用高速缓存、HTTP压缩、TCP压缩、对TCP和 HTTP分布式服务拒绝攻击的预防、HTTP病毒预防扫描等。因此, 本发明的实施例能够实现此类结合处理的一些好处,其中包括通 过避免必须将多个不同系统互连来按特定次序提供处理功能的组合 (例如先压缩再高速緩存再加密)以简化网络;通过检查应用层数 据 一次并对它执行多次操作来加速处理;使用统 一 的策略系统来表 示要执行的操作以简化管理等。
下文参考附图详细描述本发明的其他特征和优点以及本发明多 种实施例的结构和操作。注意本发明并不局限于本文描述的特定实 施例。此类实施例在本文中仅出于说明性目的来给出。本领域技术 人员基于本文所含的技术将显见到附加的实施例。


通过结合于本文且构成本i兌明书一部分的附图以及描述来说明 本发明,还解释本发明的原理以使本领域技术人员能够实施和使用 本发明。
图1图示根据本发明实施例用于建立虚拟专用网络(VPN)的系统。
图2说明才艮据本发明实施例用于建立VPN的方法的流程图。 图3说明根据本发明实施例、客户机与专用数据通信网络上的 访问资源通信所用的方法的流禾呈图。图4说明根据本发明实施例、客户机、服务器和/或网关的示例 基于计算机系统的实现。
当结合附图理解时,从下文给出的详细描述将使本发明的特征 和优点更显而易见,其中所有附图中相似的参考号标识对应的元素。 在这些附图中,相似的引用编号一般指示完全相同的、功能上相似 的和/或结构上相似的元素。元素第 一次出现的附图由对应的参考编 号中的最左边数字指示。
具体实施例方式
A.根据本发明实施例用于建立虚拟专用网络的系统
图1图示根据本发明实施例用于建立虚拟专用网络(VPN)的 示范系统的基本元素。如图1所示,系统100包括专用数据通信网 络106和多个客户机102a至102n,这些客户机经由公共数据通信网 络104以远程和通信方式连接到专用数据通信网络106。在一个实施 例中,专用数据通信网络106包括其上驻留专用于企业(如私人商 业机构)的应用程序和数据的企业网络,并且公共数据通信网络104 包括因特网,当然本发明并不局限于此。
再如图1所示,专用数据通信网络106包括网关108和多个服 务器110a至110n。网关108是作为公共数据通信网络104上的实体 与专用数据通信网络106上的资源之间的接口的系统或设备。具体 来说,以及如下文将详细描述的,网关108配置为协助客户机102a-102n的任何一个对服务器110a-110n上运行或存储的例如应用程序和 数据的资源进行远程安全访问。
在一个实施例中,网关108包括网络服务器,该网络服务器配 置为除了执行与基于Web和/或客户机-服务器应用、业务管理和安全 性的优化相关的多种网络任务外还执行本发明的功能特征。但是, 本发明并不局限于此,网关108可以包括配置为执行本发明的功能 特征的任何网络系统或设备。每个客户机102a-102n包括适于与公共数据通信网络104上的其 他实体(包括但不限于网关108)通信的系统或设备。正如本领域技 术人员将认识到,可以使用多种常规通信协议来实现每个客户机 102a-102n与公共数据通信网络104上的其他实体之间的通信。例如, 在一个实施例中,传输控制协i义/因特网协议(TCP/IP)组用于建立 链路并传输数据,同时使用超文本传输协议(HTTP )或文件传输协 议(FTP)应用层来实现客户机-服务器通信。但是,这些示例是说 明性的。本发明不意味着局限于特定通信协议或应用,还可以使用
其他专有或非专有的网络通信协议和应用。
在一个实施例中,每个客户机102a-102n包括在才喿作系统控制下 运行并执行商业购买的Web浏览器来进行网络通信的个人计算机 (PC)。例如,每个客户机102a-102n可以包4舌运4亍Microsoft Windows⑧才喿作系统并扭^f亍Microsoft Internet Explorer Web浏览器的 PC。或者,每个客户机102a-102n可以包括运行Macintosh⑧操作系 统并执行Netscape Navigator Web浏览器的PC。但是,本发明不局 限于这些示例,还可以使用其他操作系统和浏览器。此外,本发明 不局限于个人计算机,以及每个客户机102a-102n可以包括能够在公 共数据通信网络104上通信的任何设备或系统,包括但不限于桌上 型计算机、平板计算机、机顶盒和网络功能的电视机、手持计算机 和移动电话。
B.根据本发明实施例用于建立虚拟专用网络的方法 图2说明4艮据本发明实施例用于建立VPN的方法的流程图200。 但是本发明并不局限于流程图200提供的描述。相反,本领域技术 人员根据本文提供的原理显见的其他功能流程也在本发明的范围和 精神内。参考图i,将通过连续引用上文描述的示范系统100来描述 流程图200。但是,本发明不局限于该实施例。
流程图200的方法开始于步骤202,其中客户机102a-102n (下 文通称为客户机102)的每一个执行登录过程并建立经由公共数据通信网络104与网关108的加密数据通信会话。如本文更详细描述的, 该加密数据通信会话被用作隧道以桥接从客户机102到驻留在专用 数据通信网络106中网关108之后的服务器110a至110n的任何一个 的业务。在一个实施例中,客户机102使用商业购买的Web浏览器、 ^口 Microsoft Internet Explorer 或Netscape Navigator⑧登录并4吏用安 全套接字层(SSL)或包括IPSec或其他的其他加密方法建立与网关 108的数据通信会话。可以使用如基于安全套接字层的超文本传输协 议(HTTPS)的协议来发起加密数据通信会话。
响应登录和加密数据通信会话的建立,网关108在公共数据通 信网络104上将第一程序发送到客户机102,如图步骤204所示。该 第一程序配置为作为用于在加密数据通信会话上通信的隧道端点。 在一个实施例中,该第一程序包括插件应用程序,它由客户机Web 浏览器自动安装和执行。例如,该第一程序可以包括作为由Microsoft Internet Explorer Web浏览器执行的插件来提供的ActiveX控件。或 者,该第一程序可以包括作为由Netscape Navigator Web浏览器执 行的插件来提供的Java applet或在整个网络环境上工作的另 一种控 件或编程组件。
在步骤206,客户机102安装并执行第一程序,其中执行第一程 序包括在客户机102上安装第二程序。该第二程序部分地配置为拦 截来自客户机102上运行的应用程序且目的地为专用数据通信网络 上的资源的通信,并且将拦截的通信提供给第 一程序以便经由加密 数据通信会话发送到网关108。该第二程序还配置为提供内联网网络 名称解析服务和可选地拆分网络业务。通过拆分业务,本发明的实 施例能够确定将什么业务导入(channeled)到SSL隧道并允许继续 由传输层栈执行什么常规处理。
在一个实施例中,第二程序包括动态拦截器(例如过滤设备驱 动程序),它作为"钩子"插入到客户机102的操作系统中。例如, 该第二程序可以包括过滤设备驱动程序,它附着于客户机操作系统的传输层栈,例如Microsoft Windows⑧操作系统的传输层栈。
如图步骤208所示, 一旦安装了第一和第二程序,客户机102 上运行的应用程序就可以经由建立的加密数据通信会话与专用数据 通信网络106上的访问资源(例如应用程序和数据)通信。下文将 参考图3详细地论述此通信发生的方式。注意,在备选实施例中, 上文描述的第一程序和第二程序的功能由客户机102自动安装并执 行的一个控件或编程组件(即可以在网络环境上运行的自备程序) 来执行。
如图步骤210,客户机102执行退出过程以断开与专用数据通信 网络106的连接,这样终止与网关108的加密数据通信会话。在一 个实施例中,在退出时,第一程序自动清除对客户机操作系统的修 改以将操作系统返回到它原始的状态。
图3说明根据本发明实施例、客户机与专用数据通信网络上的 访问资源通信所用的方法的流程图300。具体来说,流程图300的方 法表示流程图200的步骤208纟丸行的一个方法。
流程图300的方法开始于步骤302,其中客户机应用程序建立至 客户机操作系统的传输层栈的新连接或解析至客户机操作系统的传 输层栈的域名。当发生此操作时,在发起任何传输层功能之前自动 调用第二程序的功能,如图步骤304所示。如上所述,在一个实施 例中,该第二程序包括附着于客户机操作系统的传输层栈的动态拦 截器(例如过滤设备驱动程序)。
在步骤306,该第二程序拦截来自客户机应用程序且目的地为专 用数据通信网络106上的资源的通信,并将它们重新路由到第一程 序,在一个实施例中该第一程序包括ActiveX控件插件、Java applet 或在网络环境上工作的其他控件或编程组件。
在步骤308,每个拦截的连接被端接或被代理,该第一程序将有 效负载分出并将有效负载封装到新连接中,以便经由建立的加密数 据通信会话来交付。在一个实施例中,有效负载是TCP有效负载,并被封到新的TCP连接中。
在步骤310,该第一程序经由预先建立的加密数据通信会话将拦 截的通信通过公共数据通信网络104发送到专用数据通信网络106 中的网关,其中包括将拦截的通信加密并将加密的拦截的通信发送 到网关108。在一个实施例中,根据SSL协议执行力口密。
在步骤312,网关108作为代理,端接第一程序发送的连接并将 从客户机102上的第一程序接收到的通信解密,并经由网关108与 专用网络106上目的地资源建立的不同连接将解密的通信传递到专 用网络106上适合的目的地资源。在一个实施例中,根据SSL协议 或其他适用的加密和解密协议来执行解密。在步骤314,目的地资源 处理解密的通信。
如果解密的通信包含存在响应的请求,则目的地资源向网关108 发送响应通信,如图步骤316所示。在步骤318,网关108经由预先 建立的加密数据通信会话通过/^共数据通信网络104将响应通信发 送到客户机102上的第一程序,其中包括将响应通信加密并将加密 的响应通信发送到第一程序。在一个实施例中,根据SSL协议或其 他适用的加密和解密协议来执4亍加密。
在步骤320,第一程序将响应通信解密,并经由第二程序将它们 传递到适合的客户机应用程序,其中第二程序附着于客户机操作系 统的传输层栈。
根据本发明的备选实施例,客户机102在步骤308在公共数据 通信网络104上发送拦截的通信之前执行拦截的通信的附加处理。 因为本发明的实施例提供作为代理的VPN解决方案,该代理在加密 此类数据并在预先建立的加密ft据通信会话上发送它之前在客户机 处端接连接,所以可以更有效地执行此类附加处理。此类处理可以 包括拦截的通信的DNS名称解析,以便使客户机应用程序能够使用 它们选择的任何IP地址以及在运行时动态更改那些地址。此类附加 处理使本发明的实施例能够有效地与其他技术结合,例如与全局服务负载平衡结合以在分布式的网关或服务器中间实现更大的可用性 和更大的效率。附加连接处理还可能保存有关拦截的通信的详细日 志记录和统计数字。
在本发明的另 一个备选实施例中,网关108端接从客户机102(作 为代理)上的第一程序接收到的通信,进一步处理其中所含的一个 或多个请求,而非如图步骤312所示仅仅将这些通信直接沿途发送 到专用数据通信网络106上的目的地。此进一步处理可以包括后端 加密,其中在交付到专用数据通信网络106上的适合目的地之前由 网关108将通信再次加密,由此提供端到端网络安全性。下文将描 述将业务解密和适当地响应。而且,此类处理还可以允许网关108
能够为来自高速緩存的响应提供服务而不是要求由目的地服务器进 行附加的工作,对这些通信执行本地网络负载平衡、全局服务负载 平衡和/或压缩,以增强专用数据通信网络106的效率和响应。
根据上文描述的方法,在客户机102与专用数据通信网络106 之间建立基于加密数据通信会话的VPN。例如,在一个实施例中, 经由HTTPS来建立安全VPN。此后,通过这种加密数据通信会话, 将从客户机102到专用数据通信网络106的所有通信经第一程序路 由到网关108,以及反之亦然。
应该注意虽然加密数据通信会话可以使用HTTPS来建立,但是 通过加密数据通信会话的通信无需是HTTPS分组数据或甚至无需是 HTTP分组数据。例如,这些通信还可以包括传输控制协议/用户数 据报协议(TCP/UDP)或因特网控制消息协议(ICMP)分组数据, 当然这些示例并不意味着限定。
还应该注意虽然本发明实施例的多种客户端功能在上文中描述 为由第一程序和第二程序来执-f亍,但是本领域技术人员容易地认识
到这些功能还可以由 一个程序或多个程序来执行。
而且,虽然参考图3描述的方法描述了客户机102上的应用程 序与专用数据通信网络106上的资源之间的请求-响应型通信,但是根据本发明的加密的通信不一定是基于请求-响应的。相反,这些通
信可以是任何类型的。由此,可建立如UDP会话的连接或通信会话信。
上文描述用于建立VPN的方法是连接代理,其中通过端接连接 并将原始连接的TCP有效负载封装在新TCP连接中来为每个应用连 接创建加密数据通信会话。与常规IPSec方法相对的是,在网络分组 级上设置加密隧道,因此不会束縛于任何特定的应用或通信会话。
上文描述的方法还与如端口代理方法的其他常失见SSL解决方案 相区别,端口代理方法中将每个连接作为包含所有TCP头的完整实 体封装在端口代理建立的新加密的TCP连接内。封装连接是第二、 会话范围的TCP连接,该TCP连接完整无缺地将包括所有头且无修 改的原始连接交付到网关,该网关从封装TCP连接解开原始连接的 有效负载,无修改地完成至最终专用网络目的地的交付。上文描述 的端口代理方法将TCP连接线程化到在SSL连接上隧道化的其他连 接内,这可能遇到问题,因为分组丢失的情况下TCP协议产生降速 和重新传输和确认,以及在多个完整TCP有效负载经由一个SSL TCP 连接隧道来传送的情况中,那些延迟和传输被显著放大。本发明实 施例经分开建立的至网关的新连接仅将分出并交付的端接或代理的 连接的TCP有效负载传送来避免这些延迟。
因为本发明的实施例提供作为代理的VPN解决方案,该代理在 加密此类数据并在SSL会话隧道上发送它之前在客户机处端接连 接,该程序能够更好地以允许对此类拦截的分组的附加处理的方式 管理基于连接的分组流。此类附加处理^使本发明能够有效地与其他 技术结合,例如与全局服务负载平衡结合以在分布式的网关或服务 器中间实现更大的可用性和更大的效率。上文的实施例和附加连接 处理还使本发明能够保存有关分组的详细日志记录和统计数字。
此外通过实现基于连接代理的VPN,其中经由安全VPN仅将原始连接的TCP有效负载传送到网关,上文描述的方法还能够在网关 处将VPN与高速緩存技术结合,这种高速緩存技术监视Web对象请 求并存储它从服务器检索的那些对象的某一些以便提高网络性能。 而且,通过在网关处代理连接并由此创造在网关处进一步处理连接 的机会,上文描述的方法允许将SSL VPN成功地结合到包括负载平 衡和TCP緩冲的其他联网技术中。
因为上文描述建立VPN的方法是基于连接代理的,所以它允许 以较常规VPN方法更兼容于认i正、授权和记账(AAA)策略、高速 緩存、压缩、切换、连接的复用、抵御SYN流和其他形式攻击以及 分拆隧道实施的方式来传送应用数据。为了说明作为前面段落描述 的基于连接代理的VPN的优点,可以简单且有效率地执行可在网关 处执行对此类连接的附加处理的上文描述的方法(包括前面段落中 描述的每种方法),因为网关用作加密的会话的代理端点。更确切地 来说,在一个实施例中,网关能够执行一种或多种形式的此类处理, 因为上文描述的方法中的网关已经端接了连接,因此此类网关能够 只需访问和操作TCP有效负载来执行此类处理。相比之下,其他方 法(包括连接隧道实施方法)自然不在网关处端接连接(而是它们 仅代理加密的隧道会话),并因此该方法需要第二级别的处理来端接 在加密的会话内实施隧道的TCP连接。由于网关对连接执4亍进一步 处理的要求,所以这些方法固有地更加复杂且往往在网关处对任何 此类连接执行附加的功能处理效率不高。
最后,在实施例中,可以通过如下方式扩充本发明的VPN功能 特征的结合将上文描述的SSL解密和端点处理与网关处要执行的 连接的其他处理同步,连接的其他处理包括上文描述的那些,如负 载平衡、HTTP动态应用高速緩存、HTTP压缩、TCP压缩、对TCP 和HTTP分布式服务拒绝攻击的预防、HTTP病毒预防扫描等。
除了上文描述的处理效率外,本发明的实施例为与客户机或客 户机控件的每个连接创建单独的TCP连接,并在网关处分别端接每个此类连接,因此提供简单且有效率地将对每个此类连接的附加处 理排序的能力。
在其他方法中(包括连接隧道实施方法),网关面对前面段落描 述的涉及必须执行的附加连接处理的附加处理问题,相比之下本发 明的方法更有效率。因为在这种效率不高的方法下可以通过一个加
密的会话隧道来以隧道实施多个应用,所以网关处对内部TCP连接 的处理变得较为复杂且在使用网关处理器资源方面较不经济。由此, 本发明的实施例提高了在网关处将加密会话的处理与其他形式的处 理结合的效率。
虽然上文描述的方法是参考由客户机发起通信的实施例来描述 的,但是本发明还涵盖由专用数据通信网络106上的实体发起的通 信的实施例。根据此类实施例,网关108作为虚拟客户机和专用通 信网络106上的实体(例如服务器110a-110n)发起与驻留在客户机 102a-102n的任何一个上的应用程序的通信。在此类实施例中,以与 上文参考图3描述的相同方式建立VPN会话,但是在建立会话之后, 客户机或服务器可以发起连接或通信会话(如UDP会话)来彼此发 送通信。
C.根据本发明实施例的示范客户机/服务器/网关 客户机102a-102n、服务器110a-llOn和网关108n的每一个分别 执行的本发明功能可以通过使用硬件、软件或它们的组合来实现, 并且可以在一个或多个计算机系统或其他处理系统中实现。例如, 图4说明根据本发明实施例可以用来实现客户机102a-102n、服务器 110a-110n和/或网关108n的任一f可一个的示范计算机系统400。
如图4所示,示范计算机系统400包括用于执行根据本发明实 施例的软件例行程序的处理器404。虽然出于简化起见示出一个处理 器,但是计算机系统400还可以包括多处理器系统。处理器404连 接到用于与计算机系统400的其他组件通信的通信基础设施406 。通 信设施406可以包括例如通信总线、交叉开关或网络。计算机系统400还包括主存储器408,如随机存取存储器 (RAM))和辅助存储器410。辅助存储器410可以包括例如硬盘驱 动器412和/或可移动存储驱动器414,它可以包括软盘驱动器、》兹 带驱动器、光盘驱动器等。可移动存储驱动器414以公知的方式从 可移动存储单元418读取和/或向其中写入。可移动存储单元418可 以包括软盘、磁带、光盘等,可移动存储单元418被可移动存储驱 动器414读取或写入。如本领^i支术人员将认识到的,可移动存储 单元418包括其中存储计算机软件和/或数据的计算机可用存储媒 体。
在备选实施例中,辅助存4诸器410可以包括用于使计算机程序 或其他指令能够加载到计算机系统400的其他相似装置。此类装置 可以包括例如,可移动存储单元422和接口 420。可移动存储单元422 和接口 420的示例包括程序盒式存储器和盒式接口 (例如视频游戏 控制设备中可见到的)、可移动存储器芯片(例如EPROM或PROM) 和相关的槽、以及允使软件和^t据能够从可移动存储单元422传送 到计算机系统400的其他可移动存储单元422和接口 420。
计算机系统400还包括显示器接口 402,显示器接口 402将转发 来自通信基础设施406或帧緩冲器(未示出)的图形、文本和其他 数据以便在显示单元430上显示给用户。
计算机系统400还包括至少一个通信接口 424。通信接口 424使 软件和数据能够经由通信路径426在计算机系统400和外部设备之 间传送。在本发明的实施例中,通信接口 424允许数据能够在计算 机系统400与数据通信网络(例如公共数据通信网络104或专用数 据通信网络106)之间传送。通信接口 424的示例可以包括调制解调 器、网络接口 (例如以太网卡)、通信端口等。经由通信接口 424传 送的软件和数据采用信号的形式,这些信号可以是电信号、电磁信 号、光信号或能够被通信接口 424接收的其他信号。这些信号经由 通信路径426被提供给通信接口 。如本文所使用的,术语"计算机程序产品,,可以部分指可移动
存储单元418、可移动存储单元422、安装在硬盘驱动器412中的硬 盘或在通信路径426 (无线链路或电缆)上将软件载送到通信接口 424 的载波。计算机可用媒介可以包括磁媒体、光媒体或其他可记录媒 体或传送载波或其他信号的媒体。这些计算机程序产品是提供用于 将软件提供给计算机系统400的装置。
计算机程序(也称为计算机控制逻辑)存储在主存储器408和/ 或辅助存储器410中。还可以经由通信接口 424接收计算机程序。 此类计算机程序在执行时能使计算机系统400执行如本文论述的本 发明的一个或多个功能特征。具体来说,计算机程序在执行时能使 处理器404执行本发明的功能特征。因此,此类计算机程序表示计 算机系统400的控制器。
本发明能以软件、固件、硬件或它们的任何组合的形式实现为 控制逻辑。在使用软件实现本发明的实施例中,可以将软件存储在 计算机程序产品中并使用可移动存储驱动器414、硬盘驱动器412或 接口 420加载到计算机系统400中。或者,可以在通信路径426上 将计算机程序产品下载到计算机系统400。在软件由处理器404执行 时使处理器404执行本文描述的本发明的功能。
D.总结
虽然上文描述了本发明的多种实施例,但是应该理解它们仅通过 示例而非限定形式提出。因此,本领域技术人员将理解在不背离所 附权利要求中定义的本发明精神和范围的前提下可以进行多种形式 和细节上的更改。因此,本发明的宽度和范围不应由上文描述的示 范实施例来限定,而仅应该根据下文权利要求及其等效物来定义。
权利要求
1. 一种用于在客户机和专用数据通信网络之间建立加密的虚拟专用网络的方法,其中所述客户机经由公共数据通信网络连接到所述专用数据通信网络,所述方法包括通过所述公共数据通信网络建立与客户机的加密数据通信会话;以及响应所述加密数据通信会话的建立将编程组件发送到所述客户机用于在其上自动安装并执行;其中所述编程组件配置为拦截来自客户机应用程序且目的地为所述专用数据通信网络上的资源的通信,并经由所述加密数据通信会话将所拦截的通信发送到网关而非发送到所述专用数据通信网络上的资源。
2. 如权利要求1所述的方法,其特征在于,建立与客户机的加 密数据通信会话的步骤包括建立与客户机的安全套接字层数据通信 会话。
3. 如权利要求1所述的方法,其特征在于,将编程组件发送到 所述客户机的步骤包括将第一程序发送到所述客户机,所述第一程序配置为在所述客 户机上安装第二程序;其中所述第二程序配置为拦截来自客户机应用程序且目的地为 所述专用数据通信网络上的资源的通信,并将所拦截的通信提供给 所述第 一程序用于经由所述加密数据通信会话发送到网关而非发送 到所述专用数据通信网络上的资源。
4. 如权利要求3所述的方法,其特征在于,将第一程序发送到 所述客户机的步骤包括将ActiveX控件发送到所述客户机。
5. 如权利要求3所述的方法,其特征在于,将第一程序发送到 所述客户机的步骤包括将Java applet发送到所述客户机。
6. 如权利要求1所述的方法,其特征在于,将配置为在所述客 户机上安装第二程序的第 一程序发送到所述客户机包括将配置为把动态拦截器安装在所述客户机的操作系统的层上的 第 一程序发送到所述客户机。
7. 如权利要求1所述的方法,还包括经由所述加密数据通信会^"从所述客户机接收加密的通信; 将所述加密的通信解密;以及将所解密的通信提供给所述专用数据通信网络上的资源。
8. 如权利要求7所述的方法,还包括在将所解密的通信提供给所述专用数据通信网络上的资源之 前,处理所解密的通信。
9. 如权利要求8所述的方法,其特征在于,处理所解密的通信 的步骤包括执行如下操作的至少其中之一 再次力口密; 数据压缩;负载平tf;认证、授:权和记账;或 高速緩存。
10. 如权利要求1所述的方法,还包括接收来自所述专用数据通信网络上的资源且目的地为所述客户 才几的通信;以及经由所述加密数据通信会话将所述通信从所述专用数据通信网 络上的资源发送到所述客户机。
11. 一种用于在客户机和专用数据通信网络之间建立虚拟专用网 络的方法,其中所述专用数据通信网络经由公共数据通信网络连接 到所述客户才几,所述方法包括通过所述公共数据通信网络建立与网关的加密数据通信会话; 拦截来自客户机应用程序且目的地为所述专用数据通信网络上的资源的通信;以及将所拦截的通信发送到所述网关而非发送到所述专用数据通信网络上的资源,其中经由所述加密数据通信会话将所拦截的通信发 送到所述网关。
12. 如权利要求11所述的方法,其特征在于,建立与网关的加 密数据通信会话的步骤包括建立与网关的安全套接字层数据通信会 话。
13. 如权利要求11所述的方法,其特征在于,经由所述加密数据通信会话将所拦截的通信发逸到所述网关的步骤包括 将所拦截的通信加密;以及通过所述公共数据通信网络将所加密的拦截的通信发送到所述 网关。
14. 如权利要求11所述的方法,还包括 响应所述加密数据通信会话的建立从所述网关接收编程组件;以及执行所述编程组件,其中所述编程组件配置为拦截来自客户机 应用程序且目的地为所述专用数据通信网络上的资源的通信,并将 所拦截的通信发送到所述第一程序用于经由所述加密数据通信会话 发送到所述网关。
15. 如权利要求14所述的方法,其特征在于,接收并执行所述 编^f呈組件包括从所述网关接收第一程序;以及执行所述第 一程序,其中执行所述第 一程序包括安装第二程序; 其中所述第二程序配置为拉截来自客户机应用程序且目的地为 所述专用数据通信网络上的资源的通信,并将所拦截的通信发送到 所述第 一程序用于经由所述加密数据通信会话发送到所述网关。
16. 如权利要求15所述的方法,其特征在于,从所述网关接收 第 一程序的步骤包括从所述网关接收ActiveX控件。
17. 如权利要求15所述的方法,其特征在于,从所述网关接收 第 一程序的步骤包括从所述网关接收Java applet。
18. 如权利要求15所述的方法,其特征在于,安装第二程序的 步骤包括将动态拦截器安装在所述客户机的操作系统的层上。
19. 如权利要求11所述的方法,还包括经由所述加密数据通信会话从所述网关接收加密的通信;其中 所述加密的通信包括源自所述专用数据通信网络上的资源的通信; 将来自所述网关的所述加密的通信解密;以及 将解密的通信提供给客户机应用程序。
20. 如权利要求11所述的方法,还包括 在将所拦截的通信发送到所述网关之前,处理所拦截的通信。
21. 如权利要求20所述的方法,其特征在于,处理所拦截的通 信的步骤包括执行域名服务器(DNS)名称解析。
22. —种网关,包括用于通过公共数据通信网络建立与客户机的加密数据通信会话 的部4牛;以及用于响应所述加密数据通信会话的建立将编程组件发送到所述 客户机用于在其上自动安装并执行的部件;其中所述编程组件配置为拦截来自客户机应用程序且目的地为 所述专用数据通信网络上的资源的通信,并经由所述加密数据通信 会话将所拦截的通信发送到网关而非发送到所述专用数据通信网络上的资源。
23. 如权利要求22所述的网关,其特征在于,用于建立与客户 机的加密数据通信会话的部件包括用于建立与客户机的安全套接字 层lt据通信会话的部件。
24. 如权利要求22所述的网关,其特征在于,用于将编程组件 发送到所述客户机的部件包括用于将第 一程序发送到所述客户机的 部件,其中所述第一程序配置为在所述客户机上安装第二程序;其中所述第二程序配置为拦截来自客户机应用程序且目的地为 所述专用数据通信网络上的资源的通信,并将所拦截的通信发送到 所述第 一程序用于经由所述加密数据通信会话发送到所述网关而非 发送到所述专用数据通信网络上的资源。
25. 如权利要求24所述的网关,其特征在于,用于将第一程序 发送到所述客户机的部件包括用于将ActiveX控件发送到所述客户机 的部件。
26. 如权利要求24所述的网关,其特征在于,用于将第一程序 发送到所述客户机的部件包括用于将Java applet发送到所述客户机 的部件。
27. 如权利要求24所述的网关,其特征在于,用于将配置为在 所述客户机上安装第二程序的第 一程序发送到所述客户机的部件包 括用于将第 一程序发送到所述客户机的部件,其中所述第 一程序配 置为将动态拦截器安装在所述客户机的搡作系统的层上。
28. 如权利要求22所述的网关,还包括用于经由所述加密数据通信会话从所述客户机接收加密的通信 的部件;用于将所述加密的通信解密的部件;以及 用于将所解密的通信提供给所述专用数据通信网络上的资源的 部件。
29. 如权利要求28所述的网关,还包括用于在将所解密的通信提供给所述专用数据通信网络上的资源 之前处理所解密的通信的部件。
30. 如权利要求29所述的网关,其特征在于,用于处理所解密 的通信的部件包括用于执行如下操作的至少其中之一 的部件再次力口密; 数据压缩; 负载平衡;认证、授^又和记账;或 高速緩存。
31. 如权利要求22所述的网关,还包括用于接收来自所述专用数」據通信网络上的资源且目的地为所述 客户机的通信的部件;以及用于经由所述加密数据通信会话将来自所述专用数据通信网络 上的资源的通信发送到所述客户机的部件。
32. —种客户机,包括用于通过公共数据通信网络建立与网关的加密数据通信会话的部件;用于拦截来自客户机应用程序且目的地为专用数据通信网络上 的资源的通信的部件;以及用于将所拦截的通信发送到所述网关而非发送到所述专用数据 通信网络上的资源的部件,其中经由所述加密数据通信会话将所拦 截的通信发送到所述网关。
33. 如权利要求32所述的客户机,其特征在于,用于建立与网 关的加密数据通信会话的部件包括用于建立与网关的安全套接字层 数据通信会话的部件。
34. 如权利要求32所述的客户机,其特征在于,用于经由所述 加密数据通信会话将所拦截的通信发送到所述网关的部件包括用于将所拦截的通信加密的部件;以及用于通过所述公共数据通信网络将所加密的拦截的通信发送到所述网关的部件。
35.如权利要求32所述的客户机,还包括 用于响应所述加密数据通^f言会话的建立从所述网关接收编程组件的部件;以及用于执行所述编程组件的部件,其中所述编程组件配置为拦截 来自客户机应用程序且目的地为所述专用数据通信网络上的资源的通信,并将所拦截的通信发送到所述第 一程序用于经由所述加密数 据通信会话发送到所述网关。
36. 如权利要求35所述的客户机,其特征在于,用于从所述网 关接收编程组件的部件包括用于从所述网关接收第一程序的部件, 以及其中用于执行所述编程组件的部件包括用于执行所述第一程序 的部件,其中执行所述第一程序的步骤包括安装第二程序,所述第 二程序配置为拦截来自客户机应用程序且目的地为所述专用数据通 信网络上的资源的通信,并将所拦截的通信提供给所述第 一程序用 于经由所述加密数据通信会话发送到所述网关。
37. 如权利要求36所述的客户机,其特征在于,用于从所述网 关接收第一程序的部件包括用于从所述网关接收ActiveX控件的部 件。
38. 如权利要求36所述的客户机,其特征在于,用于从所述网 关接收第一程序的部件包括用于从所述网关接收Java applet的部件。
39. 如权利要求36所述的客户机,其特征在于,安装第二程序 的步骤包括将动态拦截器安装在所述客户机的操作系统的层上。
40. 如权利要求32所述的客户机,还包括用于经由所述加密数据通信会话从所述网关接收加密的通信的 部件,其中所述加密的通信包括来自所述专用数据通信网络上的资 源的通信;用于将来自所述网关的所述加密的通信解密的部件;以及用于将所解密的通信提供给客户机应用程序的部件。
41. 如权利要求32所述的客户机,还包括 用于在将所拦截的通信发送到所述网关之前处理所拦截的通信的部件。
42. 如权利要求41所述的客户机,其特征在于,用于处理所拦 截的通信的部件包括用于执行域名服务器(DNS)名称解析的部件。
全文摘要
一种用于在客户机和专用数据通信网络之间建立虚拟专用网络(VPN)的系统和方法。在网关与公共数据通信网络上的客户机之间建立加密数据通信会话,例如安全套接字层(SSL)数据通信会话。网关然后将编程组件发送到客户机以便在其上自动安装并执行。该编程组件执行操作以拦截来自客户机应用程序且以专用数据通信网络上的资源为目的地的通信,并经由所述加密数据通信会话将拦截的通信发送到网关而非发送到专用数据通信网络上的资源。
文档编号G06F17/00GK101416171SQ200580028535
公开日2009年4月22日 申请日期2005年6月24日 优先权日2004年6月30日
发明者A·库马, A·索尼, J·贺, P·森达拉彦, S·南永达斯瓦米 申请人:塞特里克斯网络应用有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1