CN100592265C - 路由分组通信量来确保通信安全的方法、系统和计算机系统 - Google Patents
路由分组通信量来确保通信安全的方法、系统和计算机系统 Download PDFInfo
- Publication number
- CN100592265C CN100592265C CN200480040249A CN200480040249A CN100592265C CN 100592265 C CN100592265 C CN 100592265C CN 200480040249 A CN200480040249 A CN 200480040249A CN 200480040249 A CN200480040249 A CN 200480040249A CN 100592265 C CN100592265 C CN 100592265C
- Authority
- CN
- China
- Prior art keywords
- server
- pseudo
- grouping
- packet
- amount
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
公开了一种用于实现安全通信链路的系统、设备和方法,其中,在其上实现所述安全通信链路的层不同于在其上对分组进行过滤的层。在一个实施例中,计算机系统被配置为形成虚拟专用网络(“VPN”),该计算机系统包括地址检查驱动器,以用于识别寻址到目标服务器的初始目标分组通信量。此外,所述计算机系统包括伪服务器模块,以用于从所述地址检查驱动器接收被重新路由的初始目标分组通信量。所述伪服务器模块被配置为把分组再生指令传送到VPN网关。所述地址检查驱动器用于识别寻址到目标服务器的附加目标分组通信量,以及把所述附加目标分组通信量路由到该伪服务器。在一个实施例中,该伪服务器被配置为从所述附加目标分组通信量剥离报头信息以形成有效载荷,以及此后把该有效载荷路由到目标服务器。
Description
发明领域
本发明通常涉及安全的通信网络。更特别地,本发明涉及一种用于在远程设备和网关设备之间建立安全通信链路的系统、设备和方法,其中至少该远程设备(例如远程计算设备)被配置为在该远程设备处捕获和重定向分组通信量,以及修改所述分组以便对于实时应用最小化加密的分组通信量的延迟。
发明背景
因特网协议安全性(“IPsec”)和安全套接字层(“SSL”)是传统加密协议的例子,其用于在公共通信网络(诸如因特网)上建立虚拟专用网络(“VPN”),以确保只有经授权的用户可以访问VPN中的数据。虽然可以运行,但是实现这些和其它传统加密协议的传统VPN具有几个缺点。
例如,实现IPsec的一个缺点是,大多数防火墙不能以最小的努力有效地路由经IPsec加密的分组通信量,尤其那些执行网络地址变换(“NAT”)的防火墙。尽管存在用来通过NAT防火墙传递经IPsec加密的分组的NAT遍历技术,但是这些技术将经IPsec加密的分组限制到几个端口(例如端口80和443),由此形成瓶颈。另一个缺点是,实现IPsec的VPN要求被分配给远程计算设备的地址是由该远程设备所连接到的专用网络可见的,这容易造成某些安全漏洞。例如,感染专用网络中的客户端的蠕虫可以使用所述远程设备的可见地址,以便把其自身传播到包括该远程设备的专用网络中。基于IPsec的VPN的至少一些缺点起因于在网络层执行分组检查和加密二者,诸如在以太网帧级别。
实现SSL的一个缺点例如是这个协议典型地局限于web应用,由此排除了对不基于浏览器的很多其它应用的使用。另一个缺点是基于SSL的VPN支持大量的路由协议。因此,基于SSL的VPN通常不能支持实时应用,诸如语音IP(或者“VoIP”)和对等应用。基于SSL的VPN的至少一些缺点起因于在传输层(或者应用层)执行分组检查和加密二者,这将路由协议例如限制到用户数据协议(“UDP”)和传输控制协议(“TCP”)。
因此,需要有一种克服在VPN中的加密协议的上述实现方式的缺点的系统、设备和方法,特别是通过在远程设备处捕获和重定向分组通信量以及通过修改所述分组以对于实时应用至少最小化加密的分组通信量的延迟,从而建立从远程计算设备到专用网络的安全通信链路。
发明内容
公开了一种用于实现安全通信链路的系统、设备和方法,其中,在其上实现所述安全通信链路的层不同于在其上对分组进行过滤的层。在一个实施例中,计算机系统被配置为形成虚拟专用网络(“VPN”),该计算机系统包括地址检查驱动器,以用于识别寻址到目标服务器的初始目标分组通信量。此外,所述计算机系统包括伪服务器模块,以用于从所述地址检查驱动器接收被重新路由的初始目标分组通信量。所述伪服务器模块被配置为把分组再生指令传送到VPN网关。所述地址检查驱动器用于识别寻址到目标服务器的附加目标分组通信量,以及把所述附加目标分组通信量路由到伪服务器。在一个实施例中,该伪服务器被配置为从附加目标分组通信量剥离报头信息以形成有效载荷,以及此后把该有效载荷路由到目标服务器。
根据本发明的另一个实施例,公开了一种方法,其中所述方法通过建立虚拟专用网络来确保与远程客户端计算设备的通信的安全性。所述方法包括:利用运行在客户端计算设备上的通信应用产生分组通信量;在所述客户端计算设备处识别寻址到目标服务器的所述分组通信量的目标分组通信量;在所述计算设备上的伪服务器模块和所述目标服务器之间形成安全通信链路;把寻址到所述目标服务器的附加分组通信量导向所述伪服务器模块;在接收到被重新路由到所述伪服务器模块的所述附加分组通信量时发送确认到所述通信应用;以及把有效载荷路由到所述目标服务器。
在另一个实施例中,虚拟专用网络包括客户端机器,该客户端机器相对于运行在所述客户端机器上的通信应用被配置为伪服务器机器。所述通信应用被配置为从所述伪服务器机器接收分组通信量确认。其中包括虚拟专用网络网关,并且该虚拟专用网络网关适于与服务器机器一起相对于该伪服务器机器充当客户端机器,由此便于在客户端机器和服务器机器之间的安全通信。
附图简述
通过参照下面联系附图的详细说明和所附权利要求书,可以更好地理解本发明,其中:
图1是说明根据本发明一个实施例的、用于在远程计算设备和VPN网关计算设备之间建立安全通信链路的虚拟专用网络(“VPN”)系统的图示;
图2是描述根据本发明一个实施例的、在安全通信链路上传送分组的示范方法的流程图;
图3是描述根据本发明一个实施例的远程客户端计算设备的框图;
图4是说明根据本发明特定实施例的、当从远程客户端发送目标分组通信量到专用网络时在伪服务器和地址检查驱动器之间的交互作用的功能框图;
图5是说明根据本发明特定实施例的、在从专用网络接收到进入远程客户端的加密分组通信量之后在伪服务器和地址检查驱动器之间的交互作用的功能框图;以及
图6是说明根据本发明各个实施例的、用于传送针对实时应用和其它应用的加密分组的伪服务器的各个模块的框图。
示范性实施例的具体描述
图1是说明根据本发明一个实施例的、用于在远程计算设备和VPN网关计算设备之间建立安全通信链路的虚拟专用网络(“VPN”)系统的图示。虚拟专用网络100包括经由安全通信链路190耦合到专用网络150的远程客户端计算设备(“客户端”)110以用于交换加密数据。远程客户端计算设备110被配置为在网络层(即开放系统互连模型(或者“OSI”模型)的层2)上或该层附近捕获和重新路由与一个或多个虚拟专用网络(“VPN”)有关的分组通信量。通过在网络层捕获和检查分组,远程客户端计算设备110能够检验多种网络通信量,例如包括因特网协议(“IP”)、TCP、UDP、因特网控制消息协议(“ICMP”)、一般路由封装(“GRE”)技术、Apple对话、网络输入输出系统等等。此外,远程客户端计算设备110可以在传输层(即层4)上或该层附近产生安全通信链路190(或者“隧道”),由此允许加密的分组通过基于网络地址变换(“NAT”)的防火墙和网络设备。在至少一个实施例中,专用网络150为可以对于该专用网络中的各计算设备(例如目标服务器154)隐藏的远程客户端计算设备110分配地址,由此减少了远程客户端计算设备110暴露于安全威胁(诸如蠕虫)的机会。在一个特定的实施例中,远程客户端计算设备110被配置为例如通过在经由安全通信链路190进行传输之前剥离报头信息来修改分组,由此最小化在实时应用中的加密分组通信量的延迟。
尽管未示出,但是远程客户端计算设备110包括分别用于执行和存储程序指令的处理器和存储器,以用于运行各种用户级计算机软件应用(例如Microsoft Outlook)。远程客户端计算设备110包括作为中介的通信应用112,以便在各计算机软件应用和专用网络150之间交换数据。通信应用112的例子是Telnet、文件传送协议(“FTP”)、简单邮件传送协议(“SMTP”)、超文本传送协议(“HTTP”)等。
此外,远程客户端计算设备110包括隧道产生器116,其被配置为产生安全通信链路190的至少一端。隧道产生器116包括地址检查驱动器(“AID”)122、伪服务器(“PS”)120和加密器124,其中的每一个是由硬件、软件或者二者组成的。地址检查驱动器(“AID”)122被布置在网络层上或该层附近,以便遍历远程客户端计算设备110的一个或多个网络适配器来捕获和检查分组通信量,诸如网络(例如以太网)帧。例如在对所捕获分组的IP报头的检查期间,地址检查驱动器122确定所捕获的分组的目的地是否是专用网络150。如果分组不是针对专用网络150,那么地址检查驱动器122把所述分组作为未加密的分组经由路径114向外转发到因特网102中。
但是在分组通信量被识别为是针对专用网络150(即“目标分组通信量”)时,地址检查驱动器122过滤该分组通信量以防止向外传递到路径114上。地址检查驱动器122将所过滤的分组(即目标分组通信量)重新配置为“进入的分组”,以把它们重新路由到伪服务器120上的通信量端口。在一些实施例中,该通信量端口可以是远程客户端计算设备110上的“众所周知的端口”,其中众所周知的端口可以是从端口号0至1024的任一个或者类似端口。另外,地址检查驱动器122还被配置为把被封装为控制分组的控制信息随同重新路由的所过滤分组一起发送到伪服务器120。应当注意到,由于伪服务器120可以检测所述相同控制信息将适用的其它分组,因此不必为每个重新路由的所过滤分组产生控制分组。虽然可以根据网络驱动器接口规范(“NDIS”)实现地址检查驱动器122,但是其还可以以适用于任何已知操作系统(诸如UNIXLinux、Microsoft WindowsTM等等)的程序指令来实现。
伪服务器(“PS”)120被布置在传输层上或该层附近,以便从安全通信链路190接收加密的分组通信量,以及发送(即重定向)从地址检查驱动器122重新路由的加密的分组通信量。在一些实施例中,伪服务器120被配置为例如通过在经由安全通信链路190进行传输之前剥离报头信息来修改分组。在操作中,伪服务器120监视(或者“侦听”)其等待接受进入的重新路由的分组和从地址检查驱动器122传递来的任何控制分组的通信量端口。伪服务器120把控制分组与对应的重新路由的分组相关联,然后创建用于发送到专用网络150的消息帧132。消息帧132尤其包括用于在专用网络150处重建分组的再生指令。应当注意到,消息帧132通常随后被加密,并且通过安全通信链路190被发送到专用网络150。
应当注意到,当伪服务器120从安全通信链路190接收加密分组通信量而不是进行发送时,伪服务器120通过将其传递到加密器124而提供对那些分组的解密。然后,伪服务器120把解密的分组随同控制信息(如果有的话)一起传递到地址检查驱动器122。作为响应,地址检查驱动器122将那些解密的分组信号重新配置为“进入的分组”,以把它们重新路由到通信应用112。
在至少一个实施例中,伪服务器120被配置为修改输出的分组,以便形成经修改的分组。在这个例子中,伪服务器120可以从针对专用网络150的输出分组中剥离报头信息。可以被剥离的报头信息的例子包括TCP报头、IP报头、链路层报头等等。被剥离报头信息的分组的剩余数据称为“经修改的分组”,其中的每一个包括有效载荷。经修改的分组在图1中被描述为“有效载荷”138。此外,消息帧132包括再生指令来重建所剥离的报头信息,以用于在专用网络150中再生修改前的分组。在某些情况下,消息帧132可以包括认证信息。一旦消息帧132由专用网络150的至少一个实体所了解,就向隧道产生器116返回一个链路确认(“ACK”)134。在本发明的一个特定实施例中,伪服务器120把经修改的分组形成为伪UDP分组,其构成由要被传送到专用网络150的经修改的分组138所组成的附加通信量136。这样,隧道产生器116在发送经修改的分组138时产生确认130,以便防止与由TCP标准所要求的确认有关的延迟。确认130可以被实现为“错误确认(false acknowledgement)”,以使得远程客户端在发送经修改的分组138时不需要等待确认(例如TCP确认)。因此,经修改的分组138是可以起到UDP分组的作用的TCP分组。这样,由于通过链路190的分组是伪装为TCP分组的UDP分组,因此该安全通信链路190可以被称为“虚拟TCP连接”而不是标准TCP连接。在一个实施例中,隧道产生器116确定通信量目标分组包括时间敏感的(也就是说是实时应用的一部分)特定类型的数据(诸如视频或者音频数据),并且有选择地修改那些通信量目标分组以形成经修改的分组138。
加密器124被配置为建立与专用网络150的连接,以及分别加密和解密退出和进入远程客户端计算设备110的分组。例如,加密器124可以使用在安全套接字层上的超文本传送协议(“HTTPS”)、代理HTTPS和类似的连接协议建立连接。由于这些连接协议通常在传输层(或者更高层)上操作,加密器124建立适用于遍历基于NAT的防火墙和桥的连接。一旦连接(例如,HTTPS)被建立,例如使用安全套接字层(“SSL”)、传输层安全性(“TLS”)协议等来加密针对专用网络150的分组的有效载荷。加密器124可以加密包括报头信息(如果未剥离的话)的整个分组,诸如IP报头。
专用网络150包括VPN网关152和目标服务器154,其代表远程客户端计算设备110与之建立通信的任何计算设备(比如服务器或者客户端)。VPN网关152是中介计算设备,其协调与远程客户端计算设备110的安全通信链路190的建立。VPN网关152在远程客户端计算设备110和目标服务器154之间交换通信。此外,VPN网关152至少在某些方面类似于远程客户端计算设备110。也就是说,VPN网关152包括处理器、存储器和加密器(都未示出)以及地址检查驱动器(“AID”)122和伪服务器(“PS”)120。AID 122与PS 120具有如关于远程客户端计算设备110所描述的类似的功能和/或结构。
VPN网关152还包括隧道管理器160与地址变换器162。隧道管理器160被配置为下载作为软件程序的至少伪服务器120与地址检查驱动器122。此外,隧道管理器160被配置为提供配置信息。该配置信息可以包括与专用网络150有关的地址的范围,以使得远程客户端计算设备110可以选择过滤出哪些分组作为目标分组通信量。此外,隧道管理器160还被配置为接收消息帧132以及重建分组,以便例如包括IP报头信息和/或远程客户端计算设备110的所分配的地址。
地址变换器162被配置为提供NAT处理,特别地是反向NAT处理,以便对目标服务器154隐藏远程客户端计算设备110的所分配的地址。为了说明,考虑以下例子,其中创建从远程客户端计算设备110到目标服务器154的TCP连接,该目标服务器154具有192.168.1.100的目的地地址。首先,对于地址192.168.1.100产生TCP SYN分组。隧道产生器116通过安全通信链路190传递该SYN分组。VPN网关152在该分组到达时检查该分组,以及确定其是对应于192.168.1.100的SYN分组。随后,VPN网关152产生针对192.168.1.100的新的SYN(即重放或者再生该分组),其具有一个源地址,该源地址看起来表明该新的SYN分组来源于192.168.1.2,该地址是VPN网关152的专用地址。在地址192.168.1.100处的目标服务器154产生SYN-ACK分组之后,VPN网关152然后接收这个分组。然后,新的SYN-ACK分组又通过安全通信链路190被传送回到隧道产生器116,该隧道产生器116然后产生SYN-ACK分组。由远程客户端计算设备110看来,这个分组看起来是来源于地址192.168.1.100处的目标服务器154。筒而言之,VPN网关152能够通过使用VPN网关152的唯一的源端口号来反向映射应答分组、确认或者作为该协议的一部分的任何其它分组。以这种方式,远程客户端计算设备110能够连接到任何外部专用网络,并且仍然保持IP的不可见性。这种不可见性可以是在逐应用(application-by-application)的基础上。在某些情况下,VPN网关152可以通过向隧道产生器发送对应于成功建立的安全通信链路的所分配的专用地址来选择性地允许地址可见性,该隧道产生器又把该专用地址分配给其所驻留的远程客户端计算设备。但是应当注意到,远程客户端计算设备的地址的可见性不是强制性的,而是可以例如被选择性地允许以便于某些应用,诸如语音应用或者任何其它对等应用。
在一个特定的实施例中,远程客户端计算设备110可以在安全通信链路190悬而未决的同时建立到另一个专用网络(“n”)198的另一个安全通信链路192(类似于链路190的链路)。这样,远程客户端计算设备110可以同时建立到不同的专用子网或者网络的多个VPN隧道或者安全通信链路,特别是在目的地网络地址部分或者完全重叠的情况下。应当注意到,虽然因特网102被示范为通信网络(通过其可以建立根据本发明的一个实施例的安全通信链路190),远程客户端计算设备110可以采用隧道产生器116来形成到任何类型的通信网络的隧道,诸如无线网络。还应当理解的是,在不脱离本发明的范围与精神的情况下,本发明的各实施例可以使用任何路由协议(例如因特网协议版本6“IPv6”)、以任何分组交换技术(例如以太网)、通过任何通信介质(例如以太网电缆、无线、光纤等等)实现以及用于例如终端站的任何计算设备(例如无线站)。
图2是描述根据本发明一个实施例的、在安全通信链路上传送分组的示范方法的流程图200。在202,运行在远程客户端计算设备上的通信应用(比如Telnet应用)响应于用户级应用访问专用网络的请求而产生分组通信量。在204,该客户端计算设备识别针对目标服务器的目标分组通信量。在206,所述目标分组通信量被重新路由到伪服务器模块,以便至少把分组再生指令例如传送到VPN网关。该客户端计算设备在208接收从该VPN网关发送的链路确认,由此例如用信号通知:在该客户端与该专用网络之间的安全通信链路是可操作的。所述链路确认又在210被传送到所述通信应用,以便启动分组传送。在212,寻址到该目标服务器的附加分组通信量可以例如从地址检查驱动器被导向该伪服务器模块。此后,根据本发明的至少一个实施例,在214,当在发送到目标服务器之前在该伪服务器模块处接收到所述附加分组通信量时,可以向所述通信应用发送确认。在一些实施例中,在216从所述附加分组通信量中剥离报头信息以便形成有效载荷。然后,所述有效载荷在218被路由到所述VPN网关。
图3是根据本发明一个实施例的用于描述远程客户端计算设备的框图。在这个例子中的计算设备302能够经由安全通信链路380与例如位于专用网络上的另一个计算设备交换加密的分组通信量390。在图3示出的例子中,计算设备302包括耦合到网络接口卡(“NIC”)324的操作系统304,该接口卡例如可以是以太网适配器。操作系统304还包括协议栈310,其可以是用于把诸如应用层的高级别协议层绑定到诸如包括NIC 324的物理层的低级别协议层的任何网络协议组。如图所示,根据本发明的一个特定的实施例,协议栈包括伪服务器317、地址检查驱动器323和加密协议310。
协议栈310被示为至少包括传输层、网络层与链路层。传输层包括至少一个转送协议,诸如UDP处理312、TCP处理314(即TCP业务)或者可选的另一个传输协议类型(即“其它传输”协议316,诸如“ICMP”)。图3示出包括IP处理318(即IPv4或者IPv6业务)的网络层可以是在链路层之上的下一个较高层上。在这个例子中,伪服务器317被布置在传输层上,地址检查驱动器323被布置在网络层附近。特别地,地址检查驱动器323被布置在数据链路层上。诸如SSL的加密协议310可以与伪服务器317布置在一起或者可以被布置在伪服务器317之上,并且其适合于实现图1的加密器124。在图3中,加密协议310是在TCP处理314之上的层中。
根据本发明的一个实施例,协议栈310是以软件具体实现的处理的集合。在另一个实施例中,协议栈310和/或其组成部分可以以软件、硬件或者二者具体实现。协议栈310的每个处理(例如TCP 314、IP 318等等)被配置为与每个其它处理通信,比如跨越协议栈310的各层。诸如传输层的高级别层可以被配置为例如经由Winsock API 308(或者用来建立原始套接字的任何其它套接字层程序)与应用306通信。Winsock API 308提供与应用306的接口,该应用可以是Telnet应用。诸如网络层或者链路层的低级别层可以被配置为例如经由MAC驱动器322与NIC 324通信。以下在图4与图5中描述了在伪服务器317与地址检查驱动器323之间用于建立安全通信链路的示范性交互作用。
图4是说明根据本发明特定一个实施例的、当从远程客户端发送目标分组通信量到专用网络时在伪服务器和地址检查驱动器之间的交互作用的功能框图400。在这个例子中,加密器124与伪服务器120被布置在传输层404上,地址检查驱动器122被布置在网络层408上。同样应当注意到,在一些实施例中,地址检查驱动器驻留在数据链路层上。伪服务器120耦合到转发映射数据结构440的端口,该映射数据结构保持分组信息,诸如“密钥”、源地址(“SA”)、源端口(“SP”)、目的地地址(“DA”)与目的地端口(“DP”)。类似地,地址检查驱动器122保持被描述为驱动器映射表数据结构422的类似数据结构。此外,地址检查驱动器122还耦合到过滤器表420,其包括由VPN网关提供的配置信息。过滤器表420包括网络地址(诸如源地址与目的地地址(例如198.0.0.80))、可选的子网掩码(未示出)、协议(诸如TCP、UDP、ICMP等等(未示出))、端口信息(诸如源端口与目的地端口)以及唯一标识与目标分组通信量有关的目的地信息的唯一映射密钥。当对这些数据结构的其中之一做出改变时,伪服务器120和地址检查驱动器122通过交换诸如在控制分组434中的控制信息来同步这些数据结构。一个示范性控制分组434可以是UDP分组或者任何其它协议的分组,并且其典型地与被重新路由的数据分组一起被发送到伪服务器120。如果其中一些控制信息包括对条目442的更新(诸如目的地端口中的改变),则输入该改变。在某些情况下,所述控制信息包括应该如何在VPN网关处处理或者再生所述分组。
假设应用112驻留在远程客户端计算设备上并且可以由源地址10.0.0.2和源端口8678标识,目标服务器(未示出)驻留在目的地地址198.0.0.80和目的地端口445上。如果地址检查驱动器122尚未检测到分组通信量462中的目的地地址或者端口,那么对应于该目标服务器的目的地地址和目的地端口被存储在驱动器映射表数据结构422中。在这种情况下,在数据结构422中形成条目424以包括如10.0.0.2的源地址(“SA”)、如8678的源端口(“SP”)、如198.0.0.80的目的地地址(“DA”)、如445的目的地端口(“DP”)以及由地址检查驱动器122产生并分配给所述分组通信量的“密钥”。应当注意到,条目426表示应用112已经形成到另一个VPN网关的另一个安全通信链路,并且地址检查驱动器112被配置为检查与条目424和426二者有关的分组通信量。这样,可以利用应用112同时建立多个VPN。
其次,假设应用112正在产生针对目的地地址198.0.0.80和目的地端口445的目标分组通信量464。这个目标分组通信量464经过套接字层402到达伪服务器120。套接字层402可以包括Winsock API、Winsock提供者或者任何其它套接字连接提供者处理(例如,提供原始套接字的编程接口),而不管操作系统如何。伪服务器120把数据结构440的备条目与目标分组通信量464中的信息相匹配,以便确定该分组通信量是否是VPN的一部分。由于数据结构440中的条目包括分别相应于198.0.0.80和445的DA和DP,因此得到了匹配,并且伪服务器120断定分组通信量464将要经由安全通信链路被路由。伪服务器120然后将目标分组通信量466传递到地址检查驱动器122,其中目标分组通信量466由源地址(“SA”)450、源端口(“SP”)452、目的地地址(“DA”)454和目的地端口(“DP”)456表征。应当注意到,图4示出了具有选择地址和端口信息的分组466和其它分组;为了说明的目的,省略了包括有效载荷的其它分组数据。
地址检查驱动器122然后重新配置目标分组通信量466并且把其作为重新路由的分组432而重新路由回到伪服务器120。在至少一个实施例中,地址检查驱动器122将SP 452重新配置为包括“密钥”,其在这个例子中是“54321”。此外,DA和DP被分别重新配置为包括本地主机或者本地机器(“LM”)地址454和通信量端口(“TP”)456。在一个特定的实施例中,本地机器地址454是127.0.0.1,其是导致将重新路由的分组432沿着OSI协议栈向上发送的环回地址。地址检查驱动器122将重新路由的分组432发送到伪服务器120的通信量端口(“TP”)430,其中TP 430是例如用于检测TCP分组的侦听端口。在一些实施例中,重新路由的分组432被发送到伪服务器120的TCP通信量端口,而不管重新路由的分组432是否是UDP分组,诸如在伪服务器120产生作为经修改的分组的伪UDP分组的情形中就是如此。同时(或者几乎同时),控制分组434包括本地机器地址(未示出),以使其可以沿着OSI协议栈被向上发送到伪服务器120的控制端口(未示出)。在这种情况下,控制分组434包括描述为了形成重新路由的分组432对分组进行的修改的信息。此后,伪服务器120然后把重新路由的分组432重定向到加密器124,以便形成通过安全通信链路而被传递的加密的分组468。
图5是说明根据本发明一个特定实施例的、在从专用网络接收到进入远程客户端的加密分组通信量之后在伪服务器和地址检查驱动器之间的交互作用的功能框图500。为说明所述交互作用,假设加密分组502被一直传递到加密器124以用于解密。然后,解密的分组被传递到伪服务器120,该伪服务器将解密的分组的至少一些内容与数据结构(“端口转发表”)440中的数据相匹配。假设得到匹配,由此表示解密的分组是已建立的VPN的一部分。这样,伪服务器120将解密的分组504和附带控制分组505(其在这种情况下包括与分组504有关的密钥)提供到地址检查驱动器122的众所周知的端口(“WKP”)506。此后,地址检查驱动器122根据由所述密钥索引到驱动器表422中的信息重新配置解密的分组504,该驱动器表422类似于图4的数据结构。这样,重新配置的分组将包括标识应用112的目的地信息。这样,将重新路由的分组432作为“进入的”(或者所接收的)分组520而用信号通知,并且沿着协议栈将其向上传递到应用112。
图6是说明根据本发明至少一个实施例、对于实时应用修改分组的伪服务器的各个模块的框图600。如图所示,伪服务器604包括将UDP标记为TCP(flag-UDP-as-TCP)模块605、分组修改器模块607和确认产生器609,在通过本发明的安全通信链路发送分组时可以同时操作一个或多个所述模块。尽管诸如语音和视频的实时分组通信量受益于诸如UDP的无会话协议的性能优点,但是标准UDP分组通常难以跨越许多防火墙,而TCP通信量则没有这样的缺点。在本发明的至少一个特定的实施例中,伪服务器604被配置为使用经修改的TCP分组形成“伪UDP”分组。
将UDP标记为TCP模块605被配置为在IP报头中把UDP分组标记为TCP分组,其欺骗通信网络以使其认为所述分组是TCP会话的一部分。分组修改器607被配置为利用套接字层602的原始套接字连接处理603进行操作。特别地,分组修改器607剥离诸如IP报头信息的报头信息,并且通过由原始套接字连接处理603形成的原始套接字连接来发送剩余的有效载荷。这样,还发送再生指令,以便描述当这些分组在报头信息被剥离的情况下经过安全通信链路之后如何重建分组。在一个实施例中,所述再生指令包括用于在目标服务器处重建报头信息的信息,以便可以将目标分组通信量从第一格式转换成第二格式。在第一格式与传输控制协议(“TCP”)相关联并且第二格式与用户数据协议(“UDP”)相关联的情形下,第一分组被格式化为伪UDP(例如被标记为TCP分组的UDP分组),并且第二分组被格式化为例如用于实时应用传输的UDP分组。
确认产生器609被配置为响应于通过所述安全通信链路发送的UDP分组的TCP表示(即伪UDP分组)而发出“错误确认”。这允许TCP通信量的类似UDP的行为,因为如果所述TCP分组(即伪UDP分组)丢失了,VPN隧道的发送端或者接收端不试图同步序列号和重新发送该分组。因此,所述VPN把伪UDP分组的转发解释为转发TCP分组,但是在该安全通信链路的任一端上具有解释这些分组是否是承载语音(诸如RTP)或者视频的UDP分组的原始套接字。
在这里描述了用于建立诸如具有伪服务器和地址检查驱动器的安全通信链路的各种结构和方法。所述方法可以由软件处理控制或者包括软件处理,所述软件处理例如是软件程序的一部分。在一个实施例中,伪服务器模块和地址检查驱动器模块被布置在嵌入计算机可读介质中的软件程序中,其包含用于在计算机上执行以实现根据本发明的安全通信链路的指令。
本发明的一个实施例涉及一种具有计算机可读介质的计算机存储产品,所述计算机可读介质在其上具有用于执行各种由计算机实现的操作的计算机代码。所述介质和计算机代码可以是对于本发明的目的而特别设计和构造的,或者它们可以是众所周知的类型并且可以由计算机软件领域的普通技术人员利用。计算机可读介质的例子包括(但是不局限于):诸如硬盘、软盘和磁带的磁介质;诸如CD-ROM和全息设备的光学介质;诸如光盘的磁光介质;以及特别被配置为存储和执行程序代码的硬件设备,诸如专用集成电路(“ASIC”)、可编程逻辑器件(“PLD”)以及ROM和RAM设备。计算机代码的例子包括诸如由编译器产生的机器代码,以及包含由使用解释器的计算机执行的高级别代码的文件。例如,本发明的一个实施例可以使用Java、C++或者其它程序设计语言与开发工具来实现。本发明的另一个实施例可以代替、或者与机器可执行的软件指令一起实现在硬布线电路中。
为了说明的目的,前述说明使用特定命名法提供了对本发明的彻底说明。然而,对本领域技术人员来说显而易见的是,在此选择的命名法用于教导本发明的某些方面,而不欲限制各个实施例的实现方式。因此,对于本发明特定实施例的前述说明仅用于例示与说明的目的,而不意图穷尽本发明的实施例或者将本发明限制到所公开的精确形式;明显地,根据上述教导,许多修改与变化是可能的。为了最好地解释本发明的原理与其实际应用,选择并描述了所述实施例,它们由此允许所属领域的技术人员依照适合于所构想的特定用途的各种修改来最好地利用本发明及其各实施例。所附权利要求书与其等效表述限定本发明的范围。
Claims (23)
1.一种用于通过将分组通信量经伪服务器模块路由到目标服务器来确保与远程客户端计算设备的通信的安全性的方法,包括:
利用运行在客户端计算设备上的通信应用来产生分组通信量;
在所述客户端计算设备处识别寻址到目标服务器的所述分组通信量的目标分组通信量;
在所述计算设备上的伪服务器模块与所述目标服务器之间形成安全通信链路;
把寻址到所述目标服务器的附加分组通信量导向所述伪服务器模块;
在接收到被重新路由到所述伪服务器模块的所述附加分组通信量时向所述通信应用发送确认;以及
将所述附加分组通信量的有效载荷路由到所述目标服务器。
2.权利要求1的方法,其中在所述客户端计算设备处识别所述目标分组通信量包括:
在地址检查驱动器处检查所述分组通信量;
将所述分组通信量的信息与表示所述目标服务器的地址相匹配;以及
将针对表示所述目标服务器的所述地址的所述分组通信量的子集过滤为将要重新路由到所述伪服务器模块的所述分组通信量。
3.权利要求1的方法,其中在所述伪服务器和所述目标服务器之间形成所述安全通信链路包括:
把所述目标分组通信量重新路由到在所述客户端计算设备上的所述伪服务器模块,所述伪服务器模块将分组再生指令传送到所述目标服务器;
响应于在所述目标服务器处接收到所述分组再生指令,从所述目标服务器接收链路确认;以及
将所述链路确认传送到所述通信应用。
4.权利要求3的方法,其中传送所述分组再生指令包括:包括用于在所述目标服务器处再生报头信息的信息。
5.权利要求4的方法,其中包括所述信息还包括:包括用于将所述目标分组通信量从第一格式转换到第二格式的转换信息。
6.权利要求5的方法,其中包括所述转换信息包括用于把与传输控制协议“TCP”有关的所述第一格式转换到与用户数据协议“UDP”有关的第二格式的信息。
7.权利要求1的方法,其中将所述有效载荷路由到所述目标服务器包括:从所述附加分组通信量剥离报头信息,以便形成有效载荷。
8.权利要求1的方法,其中所述确认是错误确认。
9.一种用于通过将分组通信量经伪服务器模块路由到目标服务器来确保通信的安全性的计算机系统,包括:
在客户端计算设备上执行的地址检查驱动器,用于识别寻址到目标服务器的初始目标分组通信量;以及
在客户端计算设备上执行的伪服务器模块,用于从所述地址检查驱动器接收重新路由的初始目标分组通信量,所述伪服务器模块将分组再生指令传送到所述目标服务器;
其中所述地址检查驱动器识别寻址到所述目标服务器的附加目标分组通信量,并且将所述附加目标分组通信量路由到所述伪服务器;以及
其中所述伪服务器从所述附加目标分组通信量剥离报头信息以形成有效载荷,以及此后将所述有效载荷路由到所述目标服务器。
10.权利要求9的计算机系统,还包括驱动器映射数据结构,该驱动器映射数据结构被配置为包括源信息和目的地信息,所述地址检查驱动器将来自所述初始分组通信量的分组信息与所述源信息和目的地信息相比较。
11.权利要求10的计算机系统,其中所述地址检查驱动器被配置为在所述分组信息的至少一部分匹配所述目的地信息的至少一部分时,过滤所述附加目标分组通信量,以防止其未经加密地到达所述目标服务器。
12.权利要求9的计算机系统,其中所述地址检查驱动器被配置为产生控制分组,该控制分组被重新路由到与所述初始目标分组通信量相关联的所述伪服务器。
13.权利要求12的计算机系统,其中所述控制分组包括所述初始目标分组通信量的源信息和目的地信息,以用于检测源自所述目标服务器的分组通信量。
14.权利要求9的计算机系统,其中所述分组再生指令被配置为指导所述目标服务器再生所述目标分组通信量,以便形成包括再生的报头信息和所述有效载荷的再生的分组通信量。
15.权利要求9的计算机系统,还包括协议栈,其中所述地址检查驱动器驻留在网络层上或者在该网络层附近,所述伪服务器模块驻留在传输层上或者在该传输层附近,所述网络层和所述传输层是依照一开放系统互连模型的层。
16.权利要求15的计算机系统,其中所述地址检查驱动器检查并过滤在所述网络层上或者在该网络层附近的分组,由此支持用于在所述虚拟专用网络中建立安全通信链路的任何路由协议。
17.权利要求15的计算机系统,其中所述伪服务器将加密的分组传递到源自所述传输层上或在该传输层附近的安全通信链路上,由此允许所述加密的分组经过允许网络地址变换“NAT”的网络设备。
18.一种用于通过将分组通信量经伪服务器机器路由到服务器机器来确保与客户端机器的通信的安全性的系统,包括:
客户端机器,其被配置为关于运行在所述客户端机器上的通信应用的伪服务器机器,以使所述通信应用从所述伪服务器机器接收分组通信量确认,所述客户端机器识别寻址到服务器机器的目标分组通信量,和把寻址到所述服务器机器的附加分组通信量引向所述伪服务器机器;以及
与服务器机器一起操作的虚拟专用网络网关,以在所述伪服务器机器和所述服务器机器之间交换通信,以便于在所述客户端机器和所述服务器机器之间进行安全通信,所述伪服务器机器经过所述虚拟专用网络网关把所述附加分组通信量的有效负载路由到所述服务器机器。
19.权利要求18的虚拟专用网络,其中所述虚拟专用网络网关可选择地对所述服务器机器隐藏运行所述通信应用的所述客户端机器的地址。
20.权利要求18的虚拟专用网络,其中所述伪服务器机器包括确认产生器模块,以用于产生作为错误确认的所述分组通信量确认。
21.权利要求18的虚拟专用网络,其中所述伪服务器机器包括分组修改器模块,所述分组修改器模块被配置为通过从中剥离报头信息来修改表示所述安全通信的分组,从而形成经修改的分组。
22.权利要求21的虚拟专用网络,其中所述伪服务器机器被配置为在套接字层上形成原始套接字,所述原始套接字被利用来传送所述安全通信。
23.权利要求18的虚拟专用网络,其中所述伪服务器机器包括将UDP标记为TCP模块,其被配置为修改在UDP分组中的标记,以表明所述UDP分组是TCP分组,从而形成伪UDP分组。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US51830503P | 2003-11-11 | 2003-11-11 | |
US60/518,305 | 2003-11-11 | ||
US60/524,999 | 2003-11-24 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101124548A CN101124548A (zh) | 2008-02-13 |
CN100592265C true CN100592265C (zh) | 2010-02-24 |
Family
ID=39086086
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200480040249A Active CN100592265C (zh) | 2003-11-11 | 2004-11-12 | 路由分组通信量来确保通信安全的方法、系统和计算机系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100592265C (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8477718B2 (en) * | 2008-08-28 | 2013-07-02 | Alcatel Lucent | System and method of serving gateway having mobile packet protocol application-aware packet management |
CN101483594A (zh) * | 2009-02-11 | 2009-07-15 | 成都市华为赛门铁克科技有限公司 | 一种基于虚拟专用网隧道的报文发送方法及客户端 |
TWI510023B (zh) * | 2010-03-16 | 2015-11-21 | Chunghwa Telecom Co Ltd | 訊務保密重導系統及其方法 |
WO2013018940A1 (ko) * | 2011-07-29 | 2013-02-07 | 인터리젠 주식회사 | 전자상거래 불법 거래 탐지 및 차단 방법과 시스템 |
CN102984025B (zh) * | 2012-11-23 | 2015-09-30 | 华为技术有限公司 | 网关设备虚拟隧道性能的测试方法、装置及系统 |
KR102129481B1 (ko) * | 2013-06-27 | 2020-07-02 | 에스케이텔레콤 주식회사 | 컨텐츠 전송 시스템에서 데이터 처리를 위한 장치 및 이를 위한 방법 |
CN113765765B (zh) * | 2021-08-11 | 2023-04-07 | 西安四叶草信息技术有限公司 | 数据传输系统 |
-
2004
- 2004-11-12 CN CN200480040249A patent/CN100592265C/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN101124548A (zh) | 2008-02-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7978716B2 (en) | Systems and methods for providing a VPN solution | |
EP1683020B1 (en) | Virtual private network with pseudo server | |
JP4634687B2 (ja) | ローカルipアドレスと変換不可能なポートアドレスとを用いたローカルエリアネットワークのためのネットワークアドレス変換ゲートウェイ | |
JP4712861B2 (ja) | 非互換的トランスポートのセキュリティプロトコル | |
US8250643B2 (en) | Communication device, communication system, communication method, and program | |
US6816462B1 (en) | System and method to determine connectivity of a VPN secure tunnel | |
US7684414B2 (en) | System and method for using performance enhancing proxies with IP-layer encryptors | |
CN107682370B (zh) | 创建用于嵌入的第二层数据包协议标头的方法和系统 | |
US10298616B2 (en) | Apparatus and method of securing network communications | |
CN108769292A (zh) | 报文数据处理方法及装置 | |
CN104184646B (zh) | Vpn网络数据交互方法和系统及其网络数据交互设备 | |
CN110752921A (zh) | 一种通信链路安全加固方法 | |
CN109525514A (zh) | 一种信息传输方法及信息传输装置 | |
CN100592265C (zh) | 路由分组通信量来确保通信安全的方法、系统和计算机系统 | |
CN102932359B (zh) | 流媒体服务请求方法、装置和系统 | |
US7953973B2 (en) | Systems, methods, and computer program products for passively routing secure socket layer (SSL) encoded network traffic | |
JP2009055418A (ja) | 通信システム、中継装置、端末、及び中継処理方法並びにそのプログラム | |
CN113794715A (zh) | 一种虚拟点对点网络数据发送、接收、应答方法及其系统 | |
JP2002026927A (ja) | カプセリング方法及び装置並びにプログラム記録媒体 | |
KR100522090B1 (ko) | IPv6 계층에서의 패킷 보호 방법 | |
Watanabe et al. | Inserting layer-5 to provide applications with richer functions through common API | |
Pandya | Transmission control protocol/internet protocol packet analysis | |
CN117692277A (zh) | 一种数据传输方法、装置、设备及可读存储介质 | |
Al-Fedaghi | Diagrammatization of the Transmission Control Protocol | |
KR101150299B1 (ko) | 사용자와 네트워킹 행위의 동시 공증 기반 다중 방화벽 동적 통과 기법 및 이에 적합한 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
ASS | Succession or assignment of patent right |
Owner name: CITRIX SYSTEMS INC Free format text: FORMER OWNER: CITRIX GATEWAYS INC. Effective date: 20150116 |
|
C41 | Transfer of patent application or patent right or utility model | ||
TR01 | Transfer of patent right |
Effective date of registration: 20150116 Address after: American Florida Patentee after: Citrix Systems Inc Address before: American California Patentee before: Citrix Gateways Inc. |