CN101981888B - 用于ssl vpn免客户机访问的策略驱动的细粒度url编码机制 - Google Patents

用于ssl vpn免客户机访问的策略驱动的细粒度url编码机制 Download PDF

Info

Publication number
CN101981888B
CN101981888B CN200980110433XA CN200980110433A CN101981888B CN 101981888 B CN101981888 B CN 101981888B CN 200980110433X A CN200980110433X A CN 200980110433XA CN 200980110433 A CN200980110433 A CN 200980110433A CN 101981888 B CN101981888 B CN 101981888B
Authority
CN
China
Prior art keywords
url
equipment
server
client computer
encoding scheme
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.)
Expired - Fee Related
Application number
CN200980110433XA
Other languages
English (en)
Other versions
CN101981888A (zh
Inventor
P·阿加瓦
R·N·赛库
A·K·加维尼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Citrix Systems Inc
Original Assignee
Citrix Systems Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Citrix Systems Inc filed Critical Citrix Systems Inc
Publication of CN101981888A publication Critical patent/CN101981888A/zh
Application granted granted Critical
Publication of CN101981888B publication Critical patent/CN101981888B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0272Virtual private networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/105Multiple levels of security
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/166Implementing security features at a particular protocol layer at the transport layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic

Abstract

本申请公开了用于经由代理对于免客户机安全套接字层虚拟专用网络(SSL VPN)从多个编码方案确定统一资源定位符(URL)的编码方案的方法、系统和中间设备。中间设备可以从服务器接收包括URL的响应。来自服务器的响应可以经由SSL VPN会话和经由中间设备指向客户机。中间设备可以响应于编码策略来确定用于编码URL的透明的、不透明或者加密的编码方案中的一个。中间设备可以根据确定的编码方案来重写用于传输到客户机的URL。

Description

用于SSL VPN免客户机访问的策略驱动的细粒度URL编码机制
相关申请
本申请要求2009年1月23日提交的美国非临时专利申请12/359101名称为“Policy Driven Fine Grain URL Encoding Mechanism for SSLVPN Clientless Access”的优先权,该申请要求2008年1月26日提交的美国临时申请61/023847的优先权,二者的内容通过引用全部包含于此。
技术领域
本申请总的涉及数据通信网络。更具体地,本申请涉及用于对于免客户机安全套接字层(SSL)虚拟专用网络(VPN)访问场景的细粒度配置和策略驱动的统一资源定位符(URL)编码方案的系统和方法。
背景技术
公司或者企业可以通过网络提供不同的服务来服务多个客户机。一些客户机期望请求访问专用网络上的资源。例如,用户可以从公用位置或者网络经由虚拟专用网络连接来访问企业的专用网络。用户可以访问期望保护的资源。提供者可以允许客户机访问资源但期望保护专用网络上资源的标识或者位置。例如,资源可以典型地通过统一资源定位符(URL)来识别。如果提供者提供了专用网络上的资源的URL,客户机或者用户可以尝试经由不安全装置或者直接从虚拟专用网络连接外部获取对该资源的访问。基于访问场景,提供者可以不期望直接提供专用网络上的URL给客户机。
发明内容
本申请通过允许提供者基于访问场景使用不同方案来编码URL并且选择编码方案用于不同客户机来提供对于这些问题的解决方案。在一些场景中,这样的保护可以包括遮掩或者改变资源的URL以使得客户机不能查看资源位置但允许客户机能够访问资源本身。在一些场景中,提供资源给客户机而不允许客户机查看资源的位置可以通过对客户机接收的URL进行重写、模糊化或者加密来实现。有时,提供者可以期望根据客户机的信用、关于客户机的安全程度或客户机的类型的多种方式来改变URL。
在一些方面,本申请涉及用于经由代理对于免客户机安全套接字层虚拟专用网络(SSL VPN)从多个编码方案中确定统一资源定位符(URL)的编码方案的方法和系统。中间设备或者设备可以从服务器接收包括URL的响应。来自服务器的响应可以经由SSL VPN会话并经由中间设备指向客户机。中间设备可以在客户机和服务器之间建立SSL VPN会话。中间设备可以响应于编码策略来从多个用于编码URL的编码方案中确定编码方案。中间设备还可以根据确定的编码方案来重写该URL以传输到客户机。
在一些实施例中,该策略是确定至少一个规则来触发关于所建立会话的至少一个动作的会话策略。在许多实施例中,编码方案去除URL的一部分。在许多实施例中,编码方案使用另一个URL的一部分来重写该URL的一部分。在许多实施例中,编码方案使用一个或多个加密密钥对URL的一部分进行加密。在多个实施例中,编码方案是透明的编码方案。在多个实施例中,编码方案是不透明的编码方案。在多个实施例中,编码方案使用可逆转换机制来转换URL。有时,编码方案是加密URL一部分的加密的编码方案。在许多实施例中,编码方案将URL重写为唯一的标识符,该唯一标识符唯一识别该URL。在多个实施例中,编码方案使得来自URL的有关服务器的目录结构的信息模糊化。
在一些实施例中,中间设备经由第二SSL VPN会话来接收从服务器到第二客户机的包括第二URL的第二响应。中间设备可以在第二客户机和服务器之间建立第二SSL VPN会话。该中间设备可以响应于编码策略来从多个用于编码URL的编码方案确定第二编码方案。中间设备还可以根据确定的第二编码方案来重写该第二URL以传输到第二客户机。在一些实施例中,该策略是确定至少一个规则来触发关于所建立的SSL VPN会话的至少一个动作的第二SSL VPN会话策略。
在一些方面中,本申请涉及用于经由代理对于免客户机安全套接字层虚拟专用网络(SSL VPN)从多个编码方案中确定统一资源定位符(URL)的编码方案的中间设备。在一些实施例中,中间设备还可以称为设备或者代理。中间设备可以包括用于经由SSL VPN会话接收包括从服务器到客户机的URL的响应的包引擎。中间设备可以在客户机和服务器之间建立SSL VPN会话。中间设备还可以包括响应于编码策略来从多个用于编码URL的编码方案中确定编码方案的策略引擎。中间设备还可以包括响应于策略引擎根据确定的编码方案来重写该URL以便传输到客户机的重写器。
在一些实施例中,中间设备的策略是确定至少一个规则来触发关于所建立SSL VPN会话的至少一个动作的会话策略。在许多实施例中,编码方案移除URL的一部分。有时,编码方案使用另一个URL的一部分来重写该URL的一部分。在多个实施例中,编码方案使用一个或者多个加密密钥来加密URL的一部分。编码方案可以是透明的编码方案。透明的编码方案可以修改URL使得修改的URL包括所修改的URL中原始URL的一部分或者全部。在一些实施例中,编码方案是不透明的编码方案。不透明的编码方案可以修改URL,使得修改的URL不包括所修改的URL中原始URL的一部分。
在许多实施例中,包引擎经由第二SSL VPN会话来接收包括从服务器到第二客户机的第二URL的第二响应。中间设备可以在第二客户机和服务器之间建立第二SSL VPN会话。该策略引擎可以响应于编码策略来从多个编码方案中确定第二编码方案用于编码第二URL。重写器可以响应于策略引擎根据确定的第二编码方案来重写该第二URL以便传输到客户机。在一些实施例中,该策略是确定至少一个规则来触发关于所建立的第二SSL VPN会话的至少一个动作的第二SSL VPN会话策略。
附图说明
参考结合附图的以下描述,本发明的前述和其他对象、方面、特征和优势将会变得更加明显更好理解,其中:
图1A、1B和1C是用于客户机经由一个或者多个设备来访问服务器的网络环境的实施例的框图;
图1D是经由设备来将计算环境从服务器递送到客户机的环境的实施例的框图;
图1E和1F是计算装置的实施例的框图;
图2A是处理在客户机和服务器之间的通信的设备的实施例的框图;
图2B是用于优化、加速、负载平衡和路由在客户机和服务器之间的通信的设备的另一个实施例的框图;
图3A是免客户机虚拟专用网络经由设备访问服务器的实施例的框图;
图3B是免客户机虚拟专用网络经由设备访问服务器的另一个实施例的框图;
图4B是经由设备的细粒度策略和配置驱动的统一资源定位符(URL)重写和编码的实施例的框图。
根据以下结合附图提出的详细描述,本发明的特征和优势将变得更加明显,其中相同的参考特征在全文中标识对应元件。在附图中,同样的附图标记通常指示相同的、功能类似的和/或结构类似的元件。
具体实施方式
A.网络和计算环境
在讨论设备和/或客户机的系统和方法的实施例的细节之前,讨论可以部署这样的实施例的网络和计算环境是有帮助的。现在参考图1A,描述了网络环境的一个实施例。总的来说,网络环境包括经由一个或多个网络104和104′(通常被称为网络104)与一个或多个服务器106a-106n(通常也被称为服务器106或远程机器106)通信的一个或多个客户机102a-102n(通常也被称为本地机器102或客户机102)。在一些实施例中,客户机102经由设备200与服务器106通信。
虽然图1A示出客户机102和服务器106之间的网络104和网络104′,但客户机102和服务器106可以在同一个网络104上。网络104和104′可以是相同类型的网络或不同类型的网络。网络104和/或网络104′可以是像公司内联网的局域网(LAN)、城域网(MAN)或者诸如因特网或万维网的广域网(WAN)。在一个实施例中,网络104′可以是专用网而网络104可以是公用网。在一些实施例中,网络104可以是专用网而网络104′可以是公用网。在另一个实施例中,网络104和104′可以都是专用网。在一些实施例中,客户机102可以位于公司的分支机构,经由网络104上的WAN连接来与位于公司的数据中心的服务器106进行通信。
网络104和/或104′可以是任一类型和/或形式的网络,并且可以包括下列任意一种网络:点到点网络、广播网、广域网、局域网、电信网、数据通信网、计算机网络、ATM(异步传送模式)网络、SONET(同步光网络)网络、SDH(同步数字系列)网络、无线网络和有线网络。在一些实施例中,网络104可以包括诸如红外信道或卫星频带的无线链路。网络104和/或104′的拓扑结构可以是总线型、星型或环型网络拓扑结构。网络104和/或104′以及网络拓扑结构可以是能够支持此处描述的操作的本领域内普通技术人员所知的任一种这样的网络或网络拓扑结构。
如图1A所示,在网络104和104′之间示出也可以被称为接口单元200或网关200的设备200。在一些实施例中,设备200可以位于网络104上。例如,公司的分支机构可以在所述分支机构处部署设备200。在其它实施例中,设备200可以位于网络104′上。例如,设备200可以位于公司的数据中心。在又一个实施例中,多个设备200可以部署在网络104上。在一些实施例中,多个设备200可以部署在网络104′上。在一个实施例中,第一设备200与第二设备200′相通信。在其它的实施例中,设备200可以是在与客户机102相同或不同的网络104,104′上的任一客户机102或服务器106的一部分。一个或多个设备200可以位于在客户机102和服务器106之间的网络或网络通信路径中的任一点处。
在一些实施例中,设备200包括被称为Citrix NetScaler装置的由位于Ft.Lauderdale Florida的Citrix Systems公司制造的任一网络装置。在其它实施例中,设备200包括由位于Seattle,Washington的F5Networks公司制造的被称为WebAccelerator和BigIP的任意一个产品实施例。在另一个实施例中,设备205包括由位于Sunnyvale,California的Juniper Networks公司制造的DX加速装置平台和/或诸如SA700、SA2000、SA4000和SA6000装置的SSL VPN系列装置中的任意一个。在又一个实施例中,设备200包括由位于San Jose,California的CiscoSystems公司制造的任一应用加速和/或安全相关的设备和/或软件,例如Cisco ACE应用控制引擎模块业务(Application Control Engine Moduleservice)软件和网络模块以及Cisco AVS系列应用速度系统(Application Velocity System)。
在一个实施例中,该系统可以包括多个、逻辑分组的服务器106。在这些实施例中,服务器的逻辑分组可以被称为服务器群组38。在这些实施例中的一些实施例中,服务器106可以是在地理上分散的。有时候,群组38可以被管理为单一的实体。在其它实施例中,服务器群组38包括多个服务器群组38。在一个实施例中,服务器群组代表一个或多个客户机102来执行一个或多个应用。
在每个群组38中的服务器106可以是不同种类的。一个或多个服务器106可以根据一种类型的操作系统平台(例如,由位于Redmond,Washington的微软公司出品的WINDOWS NT)来进行操作,而一个或多个其它的服务器106可以根据另一种类型的操作系统平台(例如,Unix或Linux)来进行操作。每个群组38中的服务器106不需要与同一群组38中的另一个服务器106物理上接近。因此,逻辑上被分组为群组38的服务器106的分组可以使用广域网(WAN)连接或中域网(medium-areanetwork,MAN)连接来互连。例如,群组38可以包括在物理上位于不同的洲或位于一个洲、国家、州、城市、校园或房间的不同区域的服务器106。如果使用局域网(LAN)连接或一些形式的直接连接来连接服务器106,则可以增加在群组38中的服务器106之间的数据传输速度。
服务器106可以被称为文件服务器、应用服务器、web服务器、代理服务器或网关服务器。在一些实施例中,服务器106可以有能力起到应用服务器或主应用服务器的作用。在一个实施例中,服务器106可以包括活动目录(Active Directory)。客户机102也可以被称为客户机节点或端点。在一些实施例中,客户机102有能力起到寻求访问服务器上的应用的客户机节点以及作为对于其它的客户机102a-102n提供对寄载的应用的访问的应用服务器的作用。
在一些实施例中,客户机102与服务器106进行通信。在一个实施例,客户机102直接与群组38中的服务器106的其中一个进行通信。在另一个实施例中,客户机102执行程序邻近应用以与群组38中的服务器106进行通信。在又一个实施例中,服务器106提供主节点的功能。在一些实施例中,客户机102通过网络104与群组38中的服务器106进行通信。例如,通过网络104,客户机102可以请求执行由群组38中的服务器106a-106n寄载的多个应用,并接收应用执行的输出结果用于显示。在一些实施例中,只有主节点提供所要求的识别并提供与寄载被请求的应用的服务器106′相关的地址信息的功能。
在一个实施例中,服务器106提供web服务器的功能。在另一个实施例中,服务器106a从客户机102接收请求,将请求转发到第二服务器106b,并使用来自于服务器106b的对请求的响应来对客户机102的请求进行响应。在又一个实施例中,服务器106获得客户机102可用的应用的列举以及与寄载由所述应用的列举所标识的应用的服务器106相关的地址信息。在又一个实施例中,服务器106使用web接口将对请求的响应提供给客户机102。在一个实施例中,客户机102直接与服务器106进行通信以访问所标识的应用。在另一个实施例中,客户机102接收由执行服务器106上的标识的应用所生成的诸如显示数据的应用输出数据。
现在参考图1B,描述了部署多个设备200的网络环境的实施例。第一设备200可以部署在第一网络104上,而第二设备200′部署在第二网络104′上。例如,公司可以在分支机构部署第一设备200,而在数据中心部署第二设备200′。在另一个实施例中,第一设备200和第二设备200′被部署在同一个网络104或网络104′上。例如,第一设备200可以部署用于第一服务器群组38,而第二设备200′可以部署用于第二服务器群组38′。在另一个实例中,第一设备200可以部署在第一分支机构,而第二设备200′被部署在第二分支机构′。在一些实施例中,第一设备200和第二设备200′彼此协同或联合工作,以加速客户机和服务器之间的网络业务量或应用和数据的递送。
现在参考图1C,描述了使用一个或多个其它类型的设备(例如在一个或多个WAN优化设备205,205′之间的设备),来部署设备200的网络环境的另一个实施例。例如,第一WAN优化设备205显示在网络104和104′之间,而第二WAN优化设备205′可以部署在设备200和一个或多个服务器106之间。通过示例,公司可以在分支机构部署第一WAN优化设备205,而在数据中心部署第二WAN优化设备205′。在一些实施例中,设备205可以位于网络104′上。在其它实施例中,设备205′可以位于网络104上。在一些实施例中,设备205′可以位于网络104′或网络104″上。在一个实施例中,设备205和205′在同一个网络上。在另一个实施例中,设备205和205′在不同的网络上。在另一个实例中,第一WAN优化设备205可以部署用于第一服务器群组38,而第二WAN优化设备205′可以部署用于第二服务器群组38′。
在一个实施例中,设备205是用于加速、优化或者以其他方式改善诸如往和/或返于WAN连接的业务量的任一类型和形式的网络业务量的性能、操作或服务质量的装置。在一些实施例中,设备205是一个性能提高的代理。在其它实施例中,设备205是任一类型和形式的WAN优化或加速装置,有时也被称为WAN优化控制器。在一个实施例中,设备205是由位于Ft.Lauderdale Florida的Citrix Systems公司出品的被称为WANScaler的产品实施例中的任意一种。在其它实施例中,设备205包括由位于Seattle,Washington的F5Networks公司出品的被称为BIG-IP链路控制器和WANjet的产品实施例中的任意一种。在另一个实施例中,设备205包括由位于Sunnyvale,California的Juniper NetWorks公司出品的WX和WXC WAN加速装置平台中的任意一种。在一些实施例中,设备205包括由San Francisco,California的Riverbed Technology公司出品的虹鳟(steelhead)系列WAN优化设备中的任意一种。在其它实施例中,设备205包括由位于Roseland,NewJersey的Expand Networks公司出品的WAN相关装置中的任意一种。在一个实施例中,设备205包括由位于Cupertino,California的Packeteer公司出品的任意一种WAN相关设备,例如由Packeteer提供的PacketShaper、iShared和SkyX产品实施例。在又一个实施例中,设备205包括由位于San Jose,California的Cisco Systems公司出品的任一WAN相关设备和/或软件,例如Cisco广域网应用服务软件和网络模块以及广域网引擎设备。
在一个实施例中,设备205提供用于分支机构或远程办公室的应用和数据加速业务。在一个实施例中,设备205包括广域文件服务(WAFS)的优化。在另一个实施例中,设备205加速文件的递送,例如经由通用Internet文件系统(CIFS)协议。在其它实施例中,设备205在存储器和/或存储设备中提供高速缓存来加速应用和数据的递送。在一个实施例中,设备205提供在任一级别的网络堆栈或在任一的协议或网络层的网络业务量的压缩。在另一个实施例中,设备205提供传输层协议优化、流量控制、性能增强或修改和/或管理,以加速WAN连接上的应用和数据的递送。例如,在一个实施例中,设备205提供传输控制协议(TCP)优化。在其它实施例中,设备205提供对于任一会话或应用层协议的优化、流量控制、性能增强或修改和/或管理。
在另一个实施例中,设备205将任一类型和形式的数据或信息编码成网络分组的定制或标准的TCP和/或IP报头字段或可选字段,以将存在、功能或能力通告给另一个设备205′。在另一个实施例中,设备205′可以使用在TCP和/或IP报头字段或选项中编码的数据来与另一个设备205′进行通信。例如,设备可以使用TCP选项或IP报头字段或选项来传达在执行诸如WAN加速的功能时或者为了彼此联合工作而由设备205,205′所使用的一个或多个参数。
在一些实施例中,设备200保存在设备205和205′之间传达的TCP和/或IP报头和/或可选字段中编码的任一信息。例如,设备200可以终止经过设备200的传输层连接,例如经过设备205和205′的在客户机和服务器之间的一个传输层连接。在一个实施例中,设备200识别并保存在由第一设备205通过第一传输层连接发送的传输层分组中的任一编码信息,并经由第二传输层连接来将具有编码信息的传输层分组传达到第二设备205′。
现在参考图1D,描述了用于递送和/或操作客户机102上的计算环境的网络环境。在一些实施例中,服务器106包括用于将计算环境或应用和/或数据文件递送给一个或多个客户机102的应用递送系统190。简单概述,客户机10经由网络104、104′和设备200与服务器106通信。例如,客户机102可以驻留在例如分支机构的公司的远程办公室,而服务器106可以驻留在公司的数据中心。客户机102包括客户机代理120和计算环境15。计算环境15可以执行或操作访问、处理或使用数据文件的应用。可以经由设备200和/或服务器106来递送计算环境15、应用和/或数据文件。
在一些实施例中,设备200加速将计算环境15或其任一部分递送给客户机102。在一个实施例中,设备200通过应用递送系统190来加速计算环境15的递送。例如,此处描述的实施例可以用来将可由应用处理的流应用和数据文件加速从中央的公司数据中心递送到远程用户的位置,例如公司的分支机构。在另一个实施例中,设备200加速在客户机102和服务器106之间的传输层业务量。设备200可以提供用于加速从服务器106到客户机102的任一传输层有效载荷的加速技术,例如:1)传输层连接池,2)传输层连接多路复用,3)传输控制协议缓冲,4)压缩和5)高速缓存。在一些实施例中,设备200提供响应于客户机102的请求的服务器106的负载平衡。在其它实施例中,设备200充当代理或访问服务器以提供对一个或多个服务器106的访问。在另一个实施例中,设备200提供从客户机102的第一网络104到服务器106的第二网络104′的安全虚拟专用网连接,例如SSL VPN连接。在又一些实施例中,设备200提供在客户机102和服务器106之间的连接和通信的应用防火墙安全、控制和管理。
在一些实施例中,应用递送管理系统190根据多个执行方法以及根据经由策略引擎195应用的任一验证和授权策略来提供将计算环境递送到远端或另外的用户的桌面的应用递送技术。使用这些技术,远程用户可以从任一网络连接装置100获取计算环境以及访问服务器存储的应用和数据文件。在一个实施例中,应用递送系统190可以驻留于服务器106或在服务器106上执行。在另一个实施例中,应用递送系统190可以驻留于多个服务器106a-106n上或在多个服务器106a-106n上执行。在一些实施例中,应用递送系统190可以在服务器群组38中执行。在一个实施例中,执行应用递送系统190的服务器106还可以存储或提供应用和数据文件。在另一个实施例中,第一组的一个或多个服务器106可以执行应用递送系统190,而不同的服务器106n可以存储或提供应用和数据文件。在一些实施例中,应用递送系统190、应用和数据文件中的每一个可以驻留或位于不同的服务器上。在又一个实施例中,应用递送系统190的任一部分可以驻留、执行或保存或被分配于设备200或多个设备。
客户机102可以包括用于执行使用或处理数据文件的应用的计算环境15。客户机102可以经由网络104、104′和设备200来从服务器106请求应用和数据文件。在一个实施例中,设备200可以将来自于客户机102的请求转发到服务器106。例如,客户机102可以不具有本地存储或可存取的应用和数据文件。响应于请求,应用递送系统190和/或服务器106可以递送应用和数据文件到客户机102。例如,在一个实施例中,服务器106可以以应用流的形式发送应用,以在客户机102上的计算环境15中进行操作。
在一些实施例中,应用递送系统190包括Citrix Systems公司的例如MetaFrame或Citrix表示(Presentation)服务器TM的Citrix访问套件TM的任一部分和/或由微软公司出品的任意一种微软
Figure BPA00001230876000111
Windows终端服务。在一个实施例中,应用递送系统190可以通过远程显示协议或以其它方式通过基于远程或基于服务器的计算来递送一个或多个应用到客户机102或用户。在另一个实施例中,应用递送系统190可以通过应用的流式传输来递送一个或多个应用到客户机或用户。
在一个实施例中,应用递送系统190包括用于控制和管理应用执行方法的访问、选择以及应用的递送的策略引擎195。在一些实施例中,策略引擎195确定用户或客户机102可以访问的一个或多个应用。在另一个实施例中,策略引擎195确定应用应该如何被递送给用户或客户机102,例如执行方法。在一些实施例中,应用递送系统190提供从中选择应用执行方法的多个递送技术,例如基于服务器的计算、本地流式传输或递送应用给客户机120以用于本地执行。
在一个实施例中,客户机102请求执行应用而包括服务器106的应用递送系统190选择执行应用的方法。在一些实施例中,服务器106从客户机102接收证书。在另一个实施例中,服务器106从客户机102接收列举可用的应用的请求。在一个实施例中,响应于所述请求或收到的证书,应用递送系统190列举客户机102可用的多个应用。应用递送系统190接收请求以执行所列举的应用。应用递送系统190选择预定数目的方法中的一个来执行列举的应用,例如响应于策略引擎的策略。应用递送系统190可以选择一个执行应用的方法,使得客户机102可以接收通过在服务器106上执行应用而生成的应用输出数据。应用递送系统190可以选择执行应用的方法,使得本地机器10可以在检索包括应用的多个应用文件之后本地执行所述应用。在又一个实施例中,应用递送系统190可以选择执行应用的方法以经由网络104将应用流式传输到客户机102。
客户机102可以执行、操作或以其他方式提供应用,所述应用可以是任一类型和/或形式的软件、程序或可执行指令,例如任一类型和/或形式的web浏览器、基于web的客户机、客户机-服务器应用、瘦-客户机的计算客户机、ActiveX控件、或Java小程序、或可以在客户机102上执行的任一其它类型和/或形式的可执行指令。在一些实施例中,应用可以是代表客户机102在服务器106上执行的基于服务器或基于远程的应用。在一个实施例中,服务器106可以使用任一瘦-客户机或远程显示协议来显示输出到客户机102,所述远程显示协议例如由位于Ft.Lauderdale,Florida的Citrix Systems公司出品的独立计算架构(ICA)协议或由位于Redmond,Washington的微软公司出品的远程桌面协议(RDP)。应用可以使用任一类型的协议,并且它可以是例如HTTP客户机、FTP客户机、Oscar客户机或Telnet客户机。在其它实施例中,应用包括与VoIP通信相关的任一类型的软件,例如软IP电话。在进一步的实施例中,应用包括与实时数据通信相关的任一应用,例如用于流式传输视频和/或音频的应用。
在一些实施例中,服务器106或服务器群组38可以运行一个或多个应用,例如提供瘦-客户机计算的应用或远程显示表示应用的应用。在一个实施例中,服务器106或服务器群组38作为应用而执行Citrix Systems公司的例如MetaFrame或Citrix表示服务器TM的Citrix访问套件TM的任一部分和/或由微软公司出品的任意一种微软Windows终端服务。在一个实施例中,应用是由位于Fort Lauderdale,Florida的Citrix Systems公司开发的ICA客户机。在其它实施例中,应用包括由位于Redmond,Washington的微软公司开发的远程桌面(RDP)客户机。此外,服务器106可以运行应用,例如,所述服务器106可以是提供例如由位于Redmond,Washington的微软公司出品的微软Exchange的电子邮件服务的应用服务器、web或Internet服务器、或桌面共享服务器、或协作服务器。在一些实施例中,任意一种应用可以包括任一类型的寄载服务或产品,例如由Santa Barbara,California的Citrix Online部门提供的GoToMeetingTM、由位于Santa Clara,California的WebEx公司提供的WebExTM、或由位于Redmond,Washington的微软公司提供的微软OfficeLive Meeting。
仍然参考图1D,网络环境的一个实施例可以包括监控服务器106A。监控服务器106A可以包括任一类型和形式的性能监控业务198。性能监控业务198可以包括监控、测量和/或管理软件和/或硬件,包括数据收集、集合、分析、管理和报告。在一个实施例中,性能监控业务198包括一个或多个监控代理197。监控代理197包括用于在诸如客户机102、服务器106或设备200和205的装置上执行监控、测量和数据收集活动的任一软件、硬件或其组合。在一些实施例中,监控代理197包括诸如Visual Basic脚本或Java描述语言的任一类型和形式的脚本。在一个实施例中,监控代理197相对于装置的任一应用和/或用户透明地执行。在一些实施例中,监控代理197相对于应用或客户机不引人注目地被安装和操作。在又一个实施例中,监控代理197被安装和操作而不需要用于该应用或装置的任何设备(instrumentation)。
在一些实施例中,监控代理197以预定频率监控、测量和收集数据。在其它实施例中,监控代理197基于任一类型和形式的事件的检测来监控、测量和收集数据。例如,监控代理197可以在检测到对web页面的请求或收到HTTP响应时收集数据。在另一个实例中,监控代理197可以在检测到诸如鼠标点击的任一用户输入事件时收集数据。监控代理197可以报告或提供任一所监控、测量或收集的数据给监控业务198。在一个实施例中,监控代理197根据调度或预定频率来发送信息给监控业务198。在另一个实施例中,监控代理197在检测到事件时发送信息给监控业务198。
在一些实施例中,监控业务198和/或监控代理197执行诸如客户机、服务器、服务器群组、设备200、设备205或网络连接的任一网络资源或网络基础结构元件的监控和性能测量。在一个实施例中,监控业务198和/或监控代理197执行诸如TCP或UDP连接的任一传输层连接的监控和性能测量。在另一个实施例中,监控业务198和/或监控代理197监控和测量网络等待时间。在又一个实施例中,监控业务198和/或监控代理197监控和测量带宽利用。
在其它实施例中,监控业务198和/或监控代理197监控和测量终端用户响应时间。在一些实施例中,监控业务198执行应用的监控和性能测量。在另一个实施例中,监控业务198和/或监控代理197执行到应用的任一会话或连接的监控和性能测量。在一个实施例中,监控业务198和/或监控代理197监控和测量浏览器的性能。在另一个实施例中,监控业务198和/或监控代理197监控和测量基于HTTP的事务的性能。在一些实施例中,监控业务198和/或监控代理197监控和测量IP上语音(VoIP)应用或会话的性能。在其它实施例中,监控业务198和/或监控代理197监控和测量诸如ICA客户机或RDP客户机的远程显示协议应用的性能。在又一个实施例中,监控业务198和/或监控代理197监控和测量任一类型和形式的流媒体的性能。在进一步的实施例中,监控业务198和/或监控代理197监控和测量寄载应用或软件即服务(Sof tware-As-A-Service,SaaS)递送模型的性能。
在一些实施例中,监控业务198和/或监控代理197执行与应用相关的一个或多个事务、请求或响应的监控和性能测量。在其它实施例中,监控业务198和/或监控代理197监控和测量应用层堆栈的任一部分,例如任一.NET或J2EE调用。在一个实施例中,监控业务198和/或监控代理197监控和测量数据库或SQL事务。在又一个实施例中,监控业务198和/或监控代理197监控和测量任一方法、函数或应用编程接口(API)调用。
在一个实施例中,监控业务198和/或监控代理197执行经由诸如设备200和/或设备205的一个或多个设备从服务器到客户机的应用和/或数据的递送的监控和性能测量。在一些实施例中,监控业务198和/或监控代理197监控和测量虚拟化应用的递送的性能。在其它实施例中,监控业务198和/或监控代理197监控和测量流式应用的递送的性能。在另一个实施例中,监控业务198和/或监控代理197监控和测量递送桌面应用到客户机和/或在客户机上执行桌面应用的性能。在另一个实施例中,监控业务198和/或监控代理197监控和测量客户机/服务器应用的性能。
在一个实施例中,监控业务198和/或监控代理197被设计和构建为应用递送系统190提供应用性能管理。例如,监控业务198和/或监控代理197可以监控、测量和管理经由Citrix表示服务器递送应用的性能。在该实例中,监控业务198和/或监控代理197监控单独的ICA会话。监控业务198和/或监控代理197可以测量总的以及每次的会话系统资源使用,以及应用和连网性能。监控业务198和/或监控代理197可以对于给定用户和/或用户会话来标识有效服务器。在一些实施例中,监控业务198和/或监控代理197监控在应用递送系统190和应用和/或数据库服务器之间的后端连接。监控业务198和/或监控代理197可以测量每个用户会话或ICA会话的网络等待时间、延迟和容量。
在一些实施例中,监控业务198和/或监控代理197测量和监控对于应用递送系统190的诸如总的存储器使用、每个用户会话和/或每个进程的存储器使用。在其它实施例中,监控业务198和/或监控代理197测量和监控诸如总的CPU使用、每个用户会话和/或每个进程的应用递送系统190的CPU使用。在另一个实施例中,监控业务198和/或监控代理197测量和监控登录到诸如Citrix表示服务器的应用、服务器或应用递送系统所需的时间。在一个实施例中,监控业务198和/或监控代理197测量和监控用户登录应用、服务器或应用递送系统190的持续时间。在一些实施例中,监控业务198和/或监控代理197测量和监控应用、服务器或应用递送系统会话的有效和无效的会话计数。在又一个实施例中,监控业务198和/或监控代理197测量和监控用户会话等待时间。
在又一个进一步的实施例中,监控业务198和/或监控代理197测量和监控任一类型和形式的服务器规格(metrics)。在一个实施例中,监控业务198和/或监控代理197测量和监控与系统存储器、CPU使用和磁盘存储器有关的规格。在另一个实施例中,监控业务198和/或监控代理197测量和监控和页错误有关的规格,诸如每秒页错误。在其它实施例中,监控业务198和/或监控代理197测量和监控往返时间的规格。在又一个实施例中,监控业务198和/或监控代理197测量和监控与应用崩溃、错误和/或中止相关的规格。
在一些实施例中,监控业务198和监控代理198包括由位于Ft.Lauderdale,Florida的Citrix Systems公司出品的被称为EdgeSight的任意一种产品实施例。在另一个实施例中,性能监控业务198和/或监控代理198包括由位于Palo Alto,California的Symphoniq公司出品的被称为TrueView产品套件的产品实施例的任一部分。在一个实施例中,性能监控业务198和/或监控代理198包括由位于SanFrancisco,California的TeaLeaf技术公司出品的被称为TeaLeafCX产品套件的产品实施例的任一部分。在其它实施例中,性能监控业务198和/或监控代理198包括由位于Houston,Texas的BMC软件公司出品的诸如BMC性能管理器和巡逻产品(BMC Performance Manager and Patrolproducts)的商业业务管理产品的任一部分。
客户机102、服务器106和设备200可以被部署和/或执行在任一类型和形式的计算装置上,例如可以在任一类型和形式的网络上通信并执行此处描述的操作的计算机、网络装置或设备。图1E和1F描述了可用于实施客户机102、服务器106或设备200的实施例的计算装置100的框图。如图1E和1F所示,每个计算装置100包括中央处理单元101和主存储器单元122。如图1E所示,计算装置100可以包括可视显示装置124、键盘126和/或诸如鼠标的点击装置127。每个计算装置100也可以包括另外的可选元件,例如一个或多个输入/输出装置130a-130b(通常使用附图标记130来指示)以及与中央处理单元101通信的高速缓存140。
中央处理单元101是响应并处理取自主存储器单元122的指令的任一逻辑电路。在许多实施例中,中央处理单元由微处理器单元提供,例如:由位于Mountain View,California的Intel公司出品的产品;由位于Schaumburg,Illinois的Motorola公司出品的产品;由位于SantaClara,California的Transmeta公司出品的产品;由位于WhitePlains,New York的国际商业机器公司出品的RS/6000处理器;或者由位于Sunnyvale,California的Advanced Micro Devices公司出品的产品。计算装置100可以基于任一的这些处理器、或者可以如此处所描述地操作的任一其它处理器。
主存储器单元122可以是可以保存数据并允许由微处理器101直接访问的任一存储位置的一个或多个存储芯片,例如静态随机存取存储器(SRAM)、突发式SRAM或同步突发式SRAM(BSRAM)、动态随机存取存储器(DRAM)、快速页面模式DRAM(FPM DRAM)、增强型DRAM(EDRAM)、扩展数据输出RAM(EDO RAM)、扩展数据输出DRAM(EDO DRAM)、突发式扩展数据输出DRAM(BEDO DRAM)、增强型DRAM(EDRAM)、同步DRAM(SDRAM)、JEDEC SRAM、PC100 SDRAM、双数据速率SDRAM(DDR SDRAM)、增强型SDRAM(ESDRAM)、同步链接DRAM(SLDRAM)、直接Rambus DRAM(DRDRAM)、或铁电RAM(FRAM)。主存储器122可以基于任意一种上面描述的存储芯片、或者可以如此处所描述地操作的任一其它可用的存储芯片。在图1E中所示的实施例中,处理器101通过系统总线150(在下面进行更详细的描述)与主存储器122进行通信。图1E描述了在其中处理器通过存储器端口103直接与主存储器122通信的计算装置100的实施例。例如,在图1F中,主存储器122可以是DRDRAM。
图1F描述了在其中主处理器101通过有时被称为背端总线的次级总线来直接与高速缓存140通信的实施例。在其它实施例中,主处理器101使用系统总线150与高速缓存140进行通信。高速缓存140典型地具有比主存储器122更快的响应时间,并且典型地通过SRAM、BSRAM或EDRAM来提供。在图1E中所示的实施例中,处理器101通过本地系统总线150与多个I/O装置130进行通信。多种总线可以用来将中央处理单元101连接到任意一种I/O装置130,所述总线包括VESA VL总线、ISA总线、EISA总线、微通道架构(MCA)总线、PCI总线、PCI-X总线、PCI-Express总线或NuBus。对于I/O装置是视频显示器124的实施例,处理器101可以使用高级图形端口(AGP)来与显示器124进行通信。图1F描述了在其中主处理器101通过HyperTransport、快速I/O或InfiniBand来直接与I/O装置130通信的计算机100的一个实施例。图1F还描述了混合本地总线和直接通信的一个实施例:处理器101使用本地互连总线与I/O装置130进行通信,同时直接与I/O装置130进行通信。
计算装置100可以支持任一适当的安装装置116,例如用于接收像3.5英寸、5.25英寸磁盘或ZIP磁盘这样的软盘的软盘驱动器、CD-ROM驱动器、CD-R/RW驱动器、DVD-ROM驱动器、多种格式的磁带驱动器、USB装置、硬盘驱动器或适于安装像任一客户机代理120或其部分的软件和程序的任一其它装置。计算装置100还可以包括存储装置128,例如一个或多个硬盘驱动器或独立磁盘的冗余阵列,用于保存操作系统及其它相关软件,以及用于保存诸如与客户机代理120相关的任一程序的应用软件程序。可选地,任意一种安装装置116还可以被用作存储装置128。另外,操作系统和软件可以从可引导介质中运行,所述可引导介质例如像KNOPPIX
Figure BPA00001230876000181
的可引导CD,作为来自于knoppix.net可用作GNU/Linux分发的GNU/Linux的可引导CD。
进一步地,计算装置100可以包括通过多种连接联接到局域网(LAN)、广域网(WAN)或因特网的网络接口118,所述多种连接包括但不限于标准电话线、LAN或WAN链路(例如,802.11、T1、T3、56kb、X.25)、宽带连接(例如,ISDN、帧中继、ATM)、无线连接或上述任一或所有连接的一些组合。网络接口118可以包括内置网络适配器、网络接口卡、PCMCIA网卡、插件总线网络适配器、无线网络适配器、USB网络适配器、调制解调器或适于将计算装置100连接到可以传达并执行此处所描述的操作的任一类型的网络的任一其它装置。各式各样的I/O装置130a-130n可以存在于计算装置100中。输入装置包括键盘、鼠标、轨道垫、轨道球、麦克风以及绘画板。输出装置包括视频显示器、扬声器、喷墨打印机、激光打印机和染料升华打印机。I/O装置130可以由如图1E所示的I/O控制器123控制。I/O控制器可以控制诸如键盘126和例如鼠标或光笔的点击装置127的一个或多个I/O装置。进一步地,I/O装置还可以为计算装置100提供存储装置128和/或安装介质116。还是在其它实施例中,计算装置100可以提供USB连接以接收诸如由位于LosAlamitos,California的Twintech Industry公司出品的USB闪存驱动器系列装置这样的便携USB存储装置。
在一些实施例中,计算装置100可以包括或连接到多个显示装置124a-124n,每个显示装置可以是相同或不同的类型和/或形式。因而,任意一种I/O装置130a-130n和/或I/O控制器123可以包括任一类型和/或形式的适当的硬件、软件或硬件和软件的组合,以支持、允许或提供通过计算装置100连接和使用多个显示装置124a-124n。例如,计算装置100可以包括任一类型和/或形式的视频适配器、视频卡、驱动程序和/或库,以联系、通信、连接或以其他方式使用显示装置124a-124n。在一个实施例中,视频适配器可以包括多个连接器以联接多个显示装置124a-124n。在其它实施例中,计算装置100可以包括多个视频适配器,每个视频适配器连接到一个或多个显示装置124a-124n。在一些实施例中,计算装置100的操作系统的任一部分可以被配置用于使用多个显示器124a-124n。在其它实施例中,一个或多个显示装置124a-124n可以由一个或多个诸如例如通过网络连接到计算装置100的计算装置100a和100b的其它的计算装置来提供。这些实施例可以包括被设计和构建为将另一个计算机的显示装置用作计算装置100的第二显示装置124a的任一类型的软件。本领域普通技术人员将认识和理解计算装置100可以被配置为具有多个显示装置124a-124n的多个方法和实施例。
在进一步的实施例中,I/O装置130可以是在系统总线150和外部通信总线之间的网桥170,所述外部通信总线例如USB总线、Apple Desktop总线、RS-232串行连接、SCSI总线、FireWire总线、FireWire 800总线、以太网总线、AppleTalk总线、吉比特以太网总线、异步传送模式总线、HIPPI总线、超HIPPI总线、SerialPlus总线、SCI/LAMP总线、FibreChannel总线或串行附加小型计算机系统接口总线。
图1E和1F中描述类型的计算装置100典型地在控制任务的调度和对系统资源的访问的操作系统的控制下操作。计算装置100可以运行任一操作系统,例如任意一种版本的微软
Figure BPA00001230876000191
Windows操作系统、不同版本的Unix和Linux操作系统、用于Macintosh计算机的任一版本的Mac OS
Figure BPA00001230876000192
任一的嵌入式操作系统、任一的实时操作系统、任一的开放源操作系统、任一的专用操作系统、用于移动计算装置的任一操作系统、或者可以运行在计算装置上并执行此处所描述的操作的任一其它操作系统。典型的操作系统其中包括:WINDOWS 3.x、WINDOWS 95、WINDOWS 98、WINDOWS 2000、WINDOWS NT 3.51、WINDOWS NT 4.0、WINDOWS CE和WINDOWS XP,所有这些均由位于Redmond,Washington的微软公司出品;由位于Cupertino,California的苹果计算机出品的MacOS;由位于Armonk,NewYork的国际商业机器公司出品的OS/2;以及由位于Salt Lake City,Utah的Caldera公司发布的可免费使用的Linux操作系统或者任一类型和/或形式的Unix操作系统,以及其它。
在其它实施例中,计算装置100可以具有和所述装置一致的不同的处理器、操作系统和输入装置。例如,在一个实施例中,计算机100是由Palm公司出品的Treo180、270、1060、600或650智能电话。在该实施例中,Treo智能电话在PalmOS操作系统的控制下操作,并包括指示笔输入装置以及五向导航装置。此外,计算装置100可以是任一工作站、台式计算机、膝上型或笔记本计算机、服务器、便携计算机、移动电话、任一其它计算机、或者可以通信并具有执行此处所描述的操作的足够的处理器能力和存储容量的其它形式的计算或电信装置。
B.设备架构
图2A举例说明了设备200的一个示例实施例,其还可以称为中间设备200、代理或者网络浏览器(Netscaler)。提供图2A中的设备200的架构仅仅是为了说明,并不是意于进行限制。如图2所示,设备200包括硬件层206和被分为用户空间202和内核空间204的软件层。
硬件层206提供在其上执行内核空间204和用户空间202中的程序和服务的硬件元件。硬件层206还提供允许内核空间204和用户空间202中的程序和服务关于设备200的向内和向外传递数据的结构和元件。如图2所示,硬件层206包括用于执行软件程序和服务的处理单元262、用于保存软件和数据的存储器264、用于在网络上发送和接收数据的网络端口266以及用于执行与在网络上发送和接收的数据的安全套接字层处理相关的功能的加密处理器260。在一些实施例中,中央处理单元262可以在单个的处理器中执行加密处理器260的功能。另外,硬件层206可以包括用于每个处理单元262和加密处理器260的多个处理器。处理器262可以包括如上所述的与图1E和1F有关的任一处理器101。在一些实施例中,中央处理单元262可以在单个的处理器中执行加密处理器260的功能。另外,硬件层206可以包括用于每个处理单元262和加密处理器260的多个处理器。例如,在一个实施例中,设备200包括第一处理器262和第二处理器262′。在其它实施例中,处理器262或262′包括多核处理器。
虽然通常所示设备200的硬件层206具有加密处理器260,但处理器260可以是用于执行与诸如安全套接字层(SSL)或传输层安全(TLS)协议的任一加密协议相关的功能的处理器。在一些实施例中,处理器260可以是通用处理器(GPP),并且在进一步的实施例中,可以具有用于执行任一安全相关协议的处理的可执行指令。
虽然在图2中用某些元件来说明设备200的硬件层206,但设备200的硬件部分或部件可以包括计算装置的任一类型和形式的元件、硬件或软件,诸如此处结合图1E和1F来举例说明和讨论的计算装置100。在一些实施例中,设备200可以包括服务器、网关、路由器、交换机、网桥或其它类型的计算或网络装置,并具有与此相关的任一硬件和/或软件元件。
设备200的操作系统将可用的系统存储器分配、管理或者以其他方式分离成内核空间204和用户空间204。在示例的软件架构200中,操作系统可以是任一类型和/或形式的Unix操作系统,尽管本发明并未这样限制。因而,设备200可以运行任一操作系统,例如任意一种版本的微软
Figure BPA00001230876000211
Windows操作系统、不同版本的Unix和Linux操作系统、用于Macintosh计算机的任一版本的Mac OS
Figure BPA00001230876000212
、任一的嵌入式操作系统、任一的网络操作系统、任一的实时操作系统、任一的开放源操作系统、任一的专用操作系统、用于移动计算装置或网络装置的任一操作系统、或者可以运行在设备200上并执行此处所描述的操作的任一其它操作系统。
内核空间204被保留用于运行内核230,所述内核230包括任一设备驱动程序、内核扩展或其它内核相关软件。如本领域技术人员所知,内核230是操作系统的核心,并提供对应用104的资源和硬件相关的元件的访问、控制和管理。根据设备200的实施例,内核空间204还包括和有时还被称为集成高速缓存的高速缓存管理器232一起工作的多个网络服务或进程,此处进一步详细描述其有益之处。另外,内核230的实施例将依赖于由装置200所安装、配置或者以其他方式使用的操作系统的实施例。
在一个实施例中,装置200包括诸如基于TCP/IP的堆栈的一个网络堆栈267,用于与客户机102和/或服务器106进行通信。在一个实施例中,网络堆栈267用于与诸如网络108的第一网络以及第二网络110进行通信。在一些实施例中,装置200终止诸如客户机102的TCP连接的第一传输层连接,并建立由客户机102使用的到服务器106的第二传输层连接,例如,第二传输层连接在设备200和服务器106处终止。第一和第二传输层连接可以经由单个的网络堆栈267建立。在其它实施例中,装置200可以包括例如267和267′的多个网络堆栈,并且第一传输层连接可以在一个网络堆栈267处建立或终止,而第二传输层连接在第二网络堆栈267′上建立或终止。例如,一个网络堆栈可以用于在第一网络上接收和发送网络分组,而另一个网络堆栈用于在第二网络上接收和发送网络分组。在一个实施例中,网络堆栈267包括用于由设备200发送的一个或多个网络分组排队的缓冲器243。
如图2所示,内核空间204包括高速缓存管理器232、高速层2-7集成分组引擎240、加密引擎234、策略引擎236和多协议压缩逻辑238。在内核空间204或内核模式而不是用户空间202中单独以及组合地运行这些部件或进程232、240、234、236和238改进每一个这些部件的性能。内核操作意味着这些部件或进程232、240、234、236和238运行在装置200的操作系统的核心地址空间中。例如,在内核模式中运行加密引擎234通过将加密与解密操作移到内核来改善加密性能,从而减少在内核模式中的存储空间或内核线程与用户模式中的存储空间或线程之间的转换的次数。例如,可以不需要将内核模式中获得的数据传递或复制到运行在用户模式中的进程或线程,例如从内核级的数据结构到用户级的数据结构。在另一个方面,还减少了在内核模式与用户模式之间的上下文转换的次数。另外,在内核空间204中可以更有效地执行在任意一个部件或进程232、240、235、236和238之间通信和通信的同步。
在一些实施例中,部件232、240、234、236和238的任一部分可以运行或操作在内核空间204中,而这些部件232、240、234、236和238的其它部分可以运行或操作在用户空间202中。在一个实施例中,设备200使用提供对一个或多个网络分组的任一部分的访问的内核级数据结构,例如,网络分组包括来自于客户机102的请求或来自于服务器106的响应。在一些实施例中,可以由分组引擎240经由到网络堆栈267的传输层驱动程序接口或过滤器来获得内核级数据结构。内核级数据结构可以包括可经由与网络堆栈267相关的内核空间204存取的任一接口和/或数据、由网络堆栈267接收或传送的网络业务量或分组。在其它实施例中,可以由部件或进程232、240、234、236和238中的任意一个来使用内核级数据结构,以执行部件或进程的期望的操作。在一个实施例中,部件232、240、234、236和238在使用内核级数据结构时运行于内核模式204中,而在另一个实施例中,部件232、240、234、236和238在使用内核级数据结构时运行于用户模式中。在一些实施例中,可以将内核级数据结构复制或传递到第二内核级数据结构或任一期望的用户级数据结构。
高速缓存管理器232可以包括软件、硬件或软件和硬件的任一组合,以提供对诸如由发信服务器106提供的对象或动态生成的对象的任一类型和形式的内容的高速缓存访问、控制和管理。由高速缓存管理器232处理和保存的数据、对象或内容可以包括诸如标记语言的或者通过任一协议传达的任一格式的数据。在一些实施例中,高速缓存管理器232复制存储在别处的原始数据或者以前计算、生成或发送的数据,其中原始数据也许需要相对于读取高速缓存元件来说更长的访问时间以取出、计算或者以其他方式获取。一旦数据被保存在高速缓存元件中,未来的使用可以通过访问高速缓存的拷贝而不是重新取回或再计算原始数据来进行,从而减少访问时间。在一些实施例中,高速缓存元件可以包括装置200的存储器264中的数据对象。在其它实施例中,高速缓存元件可以包括具有比存储器264更快的访问时间的存储器。在另一个实施例中,高速缓存元件可以包括诸如硬盘的一部分的装置200的任一类型和形式的存储元件。在一些实施例中,处理单元262可以提供由高速缓存管理器232使用的高速缓存。然而在进一步的实施例中,高速缓存管理器232可以使用存储器、存储装置或处理单元的任一部分和组合,以用于高速缓存数据、对象及其它内容。
进一步地,高速缓存管理器232包括任一逻辑、功能、规则或操作,以执行此处所描述的设备200的技术的任一实施例。例如,高速缓存管理器232包括根据失效时间周期的期满或一旦从客户机102或服务器106接收到失效命令来使对象无效的逻辑或功能。在一些实施例中,高速缓存管理器232可以作为在内核空间204中执行的程序、服务、进程或任务来操作,而在其它实施例中是在用户空间202中操作。在一个实施例中,高速缓存管理器232的第一部分在用户空间202中执行,而第二部分在内核空间204中执行。在一些实施例中,高速缓存管理器232可以包括任一类型的通用处理器(GPP)或者诸如现场可编程门阵列(FPGA)、可编程逻辑器件(PLD)或应用专用集成电路(ASIC)的任一其它类型的集成电路。
例如,策略引擎236可以包括智能统计引擎或者其它的可编程应用。在一个实施例中,策略引擎236提供配置机制以允许用户标识、指定、限定或配置高速缓存策略。在一些实施例中,策略引擎236还可以访问存储器以支持诸如查找表或哈希表的数据结构来启用用户选择的高速缓存策略决策。在其它实施例中,策略引擎236可以包括任一逻辑、规则、功能或操作,以便确定和提供除了由设备200执行的安全、网络业务量、网络访问、压缩或任一其它功能或操作的访问、控制和管理之外的由设备200高速缓存的对象、数据或内容的访问、控制和管理。此处进一步描述特定高速缓存策略的进一步的实例。
加密引擎234包括用于操控诸如SSL或TLS的任一安全相关协议的处理的任一逻辑、商业规则、功能或操作,或者另外的任一相关功能。例如,加密引擎234加密并解密经由设备200传递的网络分组或者其中的任一部分。加密引擎234还可以为客户机102a-102n、服务器106a-106n或设备200设置或建立SSL或TLS连接。因而,加密引擎234提供SSL处理的卸载和加速。在一个实施例中,加密引擎234使用隧道协议来在客户机102a-102n和服务器106a-106n之间提供虚拟专用网。在一些实施例中,加密引擎234与加密处理器260进行通信。在其它实施例中,加密引擎234包括运行在加密处理器260上的可执行指令。
多协议压缩引擎238包括用于压缩诸如由装置200的网络堆栈267使用的任意一种协议的一个或多个协议的网络分组的任一逻辑、商业规则、功能或操作。在一个实施例中,多协议压缩引擎238双向地在客户机102a-102n和服务器106a-106n之间压缩任一的基于TCP/IP的协议,包括消息应用编程接口(MAPI)(电子邮件)、文件传送协议(FTP)、超文本传送协议(HTTP)、通用Internet文件系统(CIFS)协议(文件传送)、独立计算架构(ICA)协议、远程桌面协议(RDP)、无线应用协议(WAP)、移动IP协议和IP上语音(VoIP)协议。在其它实施例中,多协议压缩引擎238提供基于超文本标记语言(HTML)的协议的压缩,并且在一些实施例中提供诸如可扩展标记语言(XML)的任一标记语言的压缩。在一个实施例中,多协议压缩引擎238提供诸如为设备200设计用于设备200通信的的任一协议的任一高性能协议的压缩。在另一个实施例中,多协议压缩引擎238使用修改的传输控制协议来压缩任一通信的任一有效载荷或任一通信,所述修改的传输控制协议诸如事务TCP(T/TCP)、具有选择确认的TCP(TCP-SACK)、具有大窗口的TCP(TCP-LW)、诸如TCP-Vegas协议的拥塞预测协议以及TCP欺骗协议。
因而,多协议压缩引擎238为经由桌面客户机以及甚至移动客户机访问应用的用户加速性能,所述桌面客户机例如微软Outlook以及诸如由诸如Oracle、SAP和Siebel的通用的企业应用所启动的任一客户机的非web瘦客户机,所述移动客户机例如掌上电脑。在一些实施例中,通过执行于内核模式204中以及与访问网络堆栈267的分组处理引擎240结合在一起,多协议压缩引擎238可以压缩诸如任一应用层协议的由TCP/IP协议所携带的任意一种协议。
通常也被称为分组处理引擎或分组引擎的高速层2-7集成分组引擎240负责管理由设备200经由网络端口266接收和发送的分组的内核级处理。高速层2-7集成分组引擎240可以包括用于在例如接收网络分组或发送网络分组的处理期间排队一个或多个网络分组的缓冲器。另外,高速层2-7集成分组引擎240与一个或多个网络堆栈267通信以经由网络端口266发送和接收网络分组。高速层2-7集成分组引擎240和加密引擎234、高速缓存管理器232、策略引擎236和多协议压缩逻辑238一起工作。更具体地,加密引擎234被配置为执行分组的SSL处理,策略引擎236被配置为执行诸如请求级内容交换和请求级高速缓存重定向的与业务量管理相关的功能,而多协议压缩逻辑238被配置为执行与数据的压缩和解压缩相关的功能。
高速层2-7集成分组引擎240包括分组处理定时器242。在一个实施例中,分组处理定时器242提供一个或多个时间间隔以触发输入(即,接收)或输出(即,发送)网络分组的处理。在一些实施例中,高速层2-7集成分组引擎240响应于定时器242来处理网络分组。分组处理定时器242提供任一类型和形式的信号给分组引擎240,以通知、触发或传达时间相关的事件、间隔或发生。在许多实施例中,分组处理定时器242以例如像100毫秒、50毫秒或25毫秒这样的毫秒级来进行操作。例如,在一些实施例中,分组处理定时器242提供时间间隔或者以其他方式使高速层2-7集成分组引擎240以10毫秒的时间间隔来处理网络分组,而在其它实施例中按5毫秒的时间间隔,以及甚至在更进一步的实施例中短到3、2或1毫秒的时间间隔。在操作期间,高速层2-7集成分组引擎240可以与加密引擎234、高速缓存管理器232、策略引擎236和多协议压缩引擎238交互、集成或通信。因而,可以响应于分组处理定时器242和/或分组引擎240来执行加密引擎234、高速缓存管理器232、策略引擎236和多协议压缩逻辑238的任一逻辑、功能或操作。因此,可以以例如小于或等于10毫秒的时间间隔的通过分组处理定时器242提供的时间间隔的粒度来执行加密引擎234、高速缓存管理器232、策略引擎236和多协议压缩逻辑238的任一逻辑、功能或操作。例如,在一个实施例中,高速缓存管理器232可以响应于高速层2-7集成分组引擎240和/或分组处理定时器242来执行任一高速缓存对象的失效。在另一个实施例中,可以将高速缓存对象的满期或失效时间设置为与分组处理定时器242的时间间隔相同的粒度级,例如每10毫秒。
与内核空间204不同,用户空间202是由用户模式应用或者以其他方式运行于用户模式的程序所使用的存储器区域或部分操作系统。用户模式应用可以不直接访问内核空间204而使用服务调用以访问内核服务。如图2所示,设备200的用户空间202包括图形用户界面(GUI)210、命令行接口(CLI)212、命令解释程序(shell)服务214、健康监测程序216和守护服务218。GUI 210和CLI 212提供一个装置,通过所述装置,系统管理员或其它用户可以与设备200的操作相互作用并控制设备200的操作,例如通过设备200的操作系统,并且两者之一是用户空间202或内核空间204。GUI 210可以是任一类型和形式的图形用户界面,并且可以通过文本、图形或者以其他方式通过像浏览器的任一类型的程序或应用来呈现。CLI 212可以是任一类型和形式的命令行或基于文本的接口,例如由操作系统提供的命令行。例如,CLI 212可以包括命令解释程序,所述命令解释程序是允许用户与操作系统相互作用的工具。在一些实施例中,CLI 212可以通过bash、csh、tcsh或ksh型命令解释程序来提供。命令解释程序服务214包括程序、服务、任务、进程或可执行指令以支持用户通过GUI 210和/或CLI 212与设备200或操作系统相互作用。
健康监测程序216被用于监控、检查、报告和确保网络系统在正常工作以及用户通过网络接收所请求的内容。健康监测程序216包括一个或多个程序、服务、任务、进程或可执行指令以提供用于监测设备200的任一活动的逻辑、规则、功能或操作。在一些实施例中,健康监测程序216拦截并检查经由设备200传递的任一网络业务量。在其它实施例中,健康监测程序216通过任一合适的方法和/或机制与一个或多个下列单元连接:加密引擎234、高速缓存管理器232、策略引擎236、多协议压缩逻辑238、分组引擎240、守护服务218和命令解释程序服务214。因而,健康监测程序216可以调用任一应用编程接口(API)以确定设备200的任一部分的状态、状况或健康。例如,健康监测程序216可以周期性地查验或发送一个情况查询以检测程序、进程、服务或任务是否有效以及当前正在运行。在另一个实例中,健康监测程序216可以检查由任一程序、进程、服务或任务提供的任一状态、错误或历史记录,以确定设备200的任一部分的任一情况、状态或错误。
守护服务218是连续或在后台运行并处理由设备200接收到的周期性服务请求的程序。在一些实施例中,守护服务可以将请求转发给其它程序或进程,例如酌情转发给另一个守护服务218。如本领域技术人员所知,守护服务218可以无人监护地运行以执行诸如网路控制的连续的或周期性的全系统的功能或者执行任一期望的任务。在一些实施例中,一个或多个守护服务218运行在用户空间202中,而在其它实施例中,一个或多个守护服务218运行在内核空间中。
现在参考图2B,描述了设备200的另一个实施例。总的来说,设备200提供下列服务、功能或操作中的一个或多个:用于一个或多个客户机102以及一个或多个服务器106之间的通信的SSL VPN连通性280、交换/负载平衡284、域名服务解析286、加速288和应用防火墙290。每个服务器106可以提供一个或多个网络相关的服务270a-270n(称为服务270)。例如,服务器106可以提供HTTP服务270。设备200包括一个或多个虚拟服务器或虚拟网际协议服务器,其被称为vServer、VIP服务器或仅仅称为VIP 275a-275n(此处也被称为vServer 275)。vServer 275根据设备200的配置和操作来接收、拦截或者以其他方式处理客户机102和服务器106之间的通信。
vServer 275可以包括软件、硬件或软件和硬件的任一组合。vServer275可以包括在设备200中的用户模式202、内核模式204中或其任一组合中操作的任一类型和形式的程序、服务、任务、进程或可执行指令。vServer 275包括任一逻辑、功能、规则或操作以执行此处所描述的技术的任一实施例,例如SSL VPN 280、交换/负载平衡284、域名服务解析286、加速288和应用防火墙290。在一些实施例中,vServer 275建立到服务器106的服务270的连接。服务275可以包括可以连接和通信到设备200、客户机102或vServer 275的任一程序、应用、进程、任务或可执行指令组。例如,服务275可以包括web服务器、HTTP服务器、ftp、电子邮件或数据库服务器。在一些实施例中,服务270是用于监听、接收和/或发送用于诸如电子邮件、数据库或企业应用的应用的通信的守护进程或网络驱动程序。在一些实施例中,服务270可以在一个特定IP地址或IP地址和端口上进行通信。
在一些实施例中,vServer 275将策略引擎236的一个或多个策略应用到客户机102和服务器106之间的网络通信。在一个实施例中,策略与VServer 275有关。在另一个实施例中,策略基于一个用户或一组用户。在又一个实施例中,策略是全局的并且应用到一个或多个vServers275a-275n以及经由设备200通信的任一用户或用户组。在一些实施例中,策略引擎的策略有条件,在所述条件时根据诸如网际协议地址、端口、协议类型、报头或分组中的字段的通信的任一内容或者诸如用户、用户组、vServer 275、传输层连接和/或客户机102或服务器106的标识或属性的通信上下文来应用策略。
在其它实施例中,设备200与策略引擎236通信或连接以确定对远程用户或远程客户机102访问服务器106的计算环境15、应用和/或数据文件的验证和/或授权。在另一个实施例中,设备200与策略引擎236通信或连接以确定对远程用户或远程客户机102的验证和/或授权,以使应用递送系统190递送计算环境15、应用和/或数据文件的一个或多个。在又一个实施例中,设备200根据策略引擎236对远程用户或远程客户机103的验证和/或授权来建立VPN或SSL VPN连接。在一个实施例中,设备102根据策略引擎236的策略来控制网络业务量和通信会话的流量。例如,设备200可以根据策略引擎236来控制对计算环境15、应用或数据文件的访问。
在一些实施例中,vServer 275建立诸如经由客户机代理120与客户机102的TCP或UDP连接的传输层连接。在一个实施例中,vServer 275监听并接收来自于客户机102的通信。在其它实施例中,vServer 275与客户服务器106建立诸如TCP或UDP连接的传输层连接。在一个实施例中,vServer 275建立到运行在服务器106上的服务器270的网际协议地址和端口的传输层连接。在另一个实施例中,vServer 275将到客户机102的第一传输层连接与到服务器106的第二传输层连接关联起来。在一些实施例中,vServer 275建立到服务器106的传输层连接池并多路复用经由所述池化的传输层连接的客户机请求。
在一些实施例中,设备200提供在客户机102和服务器106之间的SSL VPN连接280。例如,第一网络104上的客户机102请求建立到第二网络104′上的服务器106的连接。在一些实施例中,第二网络104′是不可从第一网络104路由的。在其它实施例中,客户机102在公用网104上,而服务器106在诸如公司网的专用网104′上。在一个实施例中,客户机代理120拦截第一网络104上的客户机102的通信,加密所述通信,并经由第一传输层连接发送所述通信到设备200。设备200将第一网络104上的第一传输层连接关联到第二网络104’上的到服务器106的第二传输层连接。设备200从客户机代理102接收被拦截的通信,解密所述通信,并经由第二传输层连接发送所述通信到第二网络104上的服务器106。第二传输层连接可以是池化的传输层连接。因而,设备200提供在两个网络104和104′之间用于客户机102的端到端安全传输层连接。
虚拟专用网络(VPN)可以是使用诸如因特网的公用电信基础架构来为远程客户机、服务器或者其它通信装置提供诸如从公用网络到专用网络的访问或者连接的任一网络。虚拟专用网络(VPN)是使用诸如因特网的公用电信基础架构来为远程用户提供对企业或者专用网络的访问的方法。在一些实施例中,该访问经由加密或者隧穿是安全的。在一些实施例中,此处描述的中间设备提供从客户机的第一网络到服务器的第二网络的安全虚拟专用网络连接。
安全套接字层(SSL)VPN可以使用SSL或者TLS或者任一其它类型和形式的安全协议来建立具有安全级的连接。在一些实施例中,SSL VPN可以使用任意类型和形式的加密用于建立或者维持安全访问。SSL VPN可以经由诸如使用HTTPS(安全超文本传输协议)的浏览器来建立和/或访问。SSL VPN可以通过支持SSL的浏览器或者应用来建立或者提供。
可以通过使用基于客户机或者免客户机的方法来建立或者提供SSLVPN连接或者会话。基于客户机的SSL VPN可以使用任一类型和形式客户机代理或者客户机102上任一软件相关的代理,来建立SSL VPN连接或者会话。例如,可以经由下载到客户机的SSL VPN客户机代理来提供基于客户机的SSL VPN,诸如从设备下载的。客户机代理可以被设计并且配置为在客户机和设备或者服务器之间建立和提供SSL VPN功能性、连接和访问。
免客户机SSL VPN可以是不使用下载并安装到客户机102的SSL VPN客户机代理、软件或者程序来建立SSL VPN连接或者会话的任一SSL VPN。在一些实施例中,免客户机SSL VPN可以是不需要客户机102来安装或者执行被设计和构成为提供SSL VPN功能性的预定软件或者可执行文件以建立和另一个网络装置的SSL VPN连接的任一SSL VPN。在一些实施例中,经由不下载或者不需要使用VPN或者SSL VPN客户机代理的SSL使能的浏览器来建立免客户机SSL VPN。免客户机SSL VPN连接或者会话可以使用标准浏览器或者应用的协议和通信,诸如SSL使能的浏览器。免客户机SSL VPN连接或者会话可以通过此处描述的在第一网络和第二网络之间翻译、重写或者转换请求和响应的内容的中间设备或者应用来提供。
在一个实施例中,设备200在虚拟专用网104上寄载客户机102的内联网网际协议或内联网IP 282地址。客户机102具有诸如第一网络104上的网际协议(IP)地址和/或主机名的本地网络标识符。当经由设备200连接到第二网络104′时,设备200在第二网络104′上为客户机102建立、分配或者以其他方式提供内联网IP,其是诸如IP地址和/或主机名的网络标识符。使用客户机建立的内联网IP 282,设备200在第二或专用网104′上监听并接收指向客户机102的任一通信。在一个实施例中,设备200在第二专用网104上充当或代表客户机102。例如,在另一个实施例中,vServer 275监听并响应到客户机102的内联网IP 282的通信。在一些实施例中,如果第二网络104′上的计算装置100发送请求,则设备200处理所述请求,就像它是客户机102一样。例如,设备200可以响应到客户机的内联网IP 282的查验。在另一个实例中,设备可以与第二网络104上的请求与客户机的内联网IP 282连接的计算装置100建立诸如TCP或UDP连接的连接。
在一些实施例中,设备200为客户机102和服务器106之间的通信提供下列一个或多个加速技术288:1)压缩;2)解压缩;3)传输控制协议池;4)传输控制协议多路复用;5)传输控制协议缓冲;以及6)高速缓存。在一个实施例中,设备200通过打开与每个服务器106的一个或多个传输层连接并维持这些连接以允许客户机经由因特网的重复数据访问来减轻服务器106的由反复打开和关闭到客户机102的传输层连接所造成的大量处理负载。这个技术在这里被称为“连接池”。
在一些实施例中,为了经由池化的传输层连接来无缝接合从客户机102到服务器106的通信,设备200通过在传输层协议级修改序号和确认号来转换或多路复用通信。这被称为“连接多路复用”。在一些实施例中,不需要应用层协议相互作用。例如,在到来分组(即,自客户机102接收的分组)的情况中,所述分组的源网络地址被改变为设备200的输出端口的网络地址,而目的网络地址被改变为目的服务器的网络地址。在发出分组(即,自服务器106接收的一个分组)的情况中,源网络地址被从服务器106的网络地址改变为设备200的输出端口的网络地址,而目的地址被从设备200的网络地址改变为请求的客户机102的网络地址。所述分组的序号和确认号也被转换为到客户机102的设备200的传输层连接上的客户机102所期待的序号和确认。在一些实施例中,传输层协议的分组校验和被重新计算以解释这些转换。
在另一个实施例中,设备200为客户机102和服务器106之间的通信提供交换或负载平衡功能284。在一些实施例中,设备200根据层4或应用层请求数据来分配业务量并将客户机请求指向服务器106。在一个实施例中,虽然网络分组的网络层或层2标识了目的服务器106,但设备200通过作为传输层分组的有效载荷而携带的应用信息和数据来确定服务器106以分配网络分组。在一个实施例中,设备200的健康监测程序216监控服务器的健康以确定为其分配客户机的请求的服务器106。在一些实施例中,如果设备200探测到服务器106不可用或具有超过预定阈值的负载,则设备200可以将客户机请求指向或分配到另一个服务器106。
在一些实施例中,设备200充当域名服务(DNS)解析器或者以其他方式提供对来自于客户机102的DNS请求的解析。在一些实施例中,设备拦截由客户机102发送的DNS请求。在一个实施例中,设备200响应具有设备200的IP地址或由设备200寄载的IP地址的客户机的DNS请求。在该实施例中,客户机102把给域名的网络通信发送到设备200。在另一个实施例中,设备200响应具有第二设备200′的IP地址或由第二设备200′寄载的IP地址的客户机的DNS请求。在一些实施例中,设备200响应具有由设备200确定的服务器106的IP地址的客户机的DNS请求。
在又一个实施例中,设备200为客户机102和服务器106之间的通信提供应用防火墙功能290。在一个实施例中,策略引擎236提供用于检测和阻塞非法请求的规则。在一些实施例中,应用防火墙290防止拒绝服务(DoS)攻击。在其它实施例中,设备检查被拦截的请求的内容以识别和阻塞基于应用的攻击。在一些实施例中,规则/策略引擎236包括用于提供对多个种类和类型的基于web或因特网的脆弱点的保护的一个或多个应用防火墙或安全控制策略,例如下列的一个或多个:1)缓冲器溢出,2)CGI-BIN参数操纵,3)格式/隐藏字段操纵,4)强制浏览,5)cookie或会话中毒,6)破译的访问控制表(ACLs)或弱的口令,7)跨站点的脚本(XSS),8)命令注入,9)SQL注入,10)错误触发敏感信息泄漏,11)加密技术的不安全使用,12)服务器误配置,13)后门和调试选择,14)web站点毁损,15)平台或操作系统的脆弱点,以及16)零天攻击。在一个实施例中,对下列情况的一种或多种,应用防火墙290以检查或分析网络通信的形式来提供HTML格式字段的保护:1)返回所需的字段,2)不允许附加字段,3)只读和隐藏字段强制(enforcement),4)下拉列表和单选按钮字段的一致,以及5)格式字段最大长度强制。在一些实施例中,应用防火墙290确保cookies不被修改。在其它实施例中,应用防火墙290通过强制实施合法URL来防止强制浏览。
还是在其它实施例中,应用防火墙290保护在网络通信中包含的任一机密信息。应用防火墙290可以根据引擎236的规则或策略来检查或分析任一网络通信以识别网络分组的任一字段中的任一机密信息。在一些实施例中,应用防火墙290在网络通信中识别信用卡号、口令、社会保险号、姓名、病人代码、联系信息和年龄的一次或多次出现。网络通信的编码部分可以包括这些出现或机密信息。在一个实施例中,根据这些出现,应用防火墙290可以对网络通信采取策略行动,例如阻止网络通信的发送。在另一个实施例中,应用防火墙290可以重写、移除或者以其他方式掩盖这样识别出的出现或机密信息。
仍然参考图2B,设备200可以包括如上面结合图1D所讨论的性能监控代理197。在一个实施例中,设备200从如图1D中所描述的监控业务198或监控服务器106中接收监控代理197。在一些实施例中,设备200在诸如磁盘的存储装置中保存监控代理197,以用于递送给与设备200通信的任一客户机或服务器。例如,在一个实施例中,设备200在接收到建立传输层连接的请求时发送监控代理197给客户机。在其它实施例中,设备200在建立与客户机102的传输层连接时发送监控代理197。在另一个实施例中,设备200在拦截或检测对web页面的请求时发送监控代理197给客户机。在又一个实施例中,设备200响应于监控服务器198的请求来发送监控代理197到客户机或服务器。在一个实施例中,设备200发送监控代理197到第二设备200′或设备205。
在其它实施例中,设备200执行监控代理197。在一个实施例中,监控代理197测量和监控在设备200上执行的任一应用、程序、进程、服务、任务或线程的性能。例如,监控代理197可以监控和测量vServers275A-275N的性能与操作。在另一个实施例中,监控代理197测量和监控设备200的任一传输层连接的性能。在一些实施例中,监控代理197测量和监控通过设备200的任一用户会话的性能。在一个实施例中,监控代理197测量和监控通过设备200的诸如SSL VPN会话的任一虚拟专用网连接和/或会话的性能。在进一步的实施例中,监控代理197测量和监控设备200的存储器、CPU和磁盘使用以及性能。在又一个实施例中,监控代理197测量和监控诸如SSL卸载、连接池和多路复用、高速缓存以及压缩的由设备200执行的任一加速技术288的性能。在一些实施例中,监控代理197测量和监控由设备200执行的任一负载平衡和/或内容交换284的性能。在其它实施例中,监控代理197测量和监控由设备200执行的应用防火墙290保护和处理的性能。
C.免客户机虚拟专用网络环境
现在参考图3A,描述了用于经由设备200或代理访问服务器的免客户机虚拟专用网络(VPN)环境的实施例。总的来说,客户机102操作在计算装置100上并且执行通过用户操作的浏览器。客户机102可以在第一网络104上,诸如公用网络。客户机102上的用户可以经由浏览器来请求对于第二网络104’上的资源的访问,诸如企业的专用网络。设备200为用户提供对于所请求资源的免客户机VPN访问。客户机可以不安装、执行或者以其他方式执行被构建和/或设计来为网络104’提供VPN连接性(称为基于客户机的VPN)的代理、部件、程序、驱动器或者应用。而是,设备或者代理可以重写来自服务器的响应和来自客户机的请求以提供VPN功能,而不需要使用对在客户机上操作的的VPN代理。例如,设备可以重写客户机和服务器之间的统一资源定位符(URL),诸如通过服务器对任一内容服务器中的URL或者客户机传送的请求中的URL进行重写。设备200可以以对于客户机和服务器的任一者或者两者透明并且无缝的方式重写服务器和客户机之间的URL。由此,客户机、浏览器或者服务器和服务器应用不需要知晓或者了解免客户机SSL VPN访问方案。
设备200可以经由之前描述的SSL VPN280模块来提供用于访问资源的功能。在一个实施例中,设备200通过在用于和设备200通信的客户机102上提供、安装或者执行SSL VPN代理来提供基于客户机的对网络的访问。在一些实施例中,设备200提供对资源(诸如http/https/文件共享)的免客户机SSL VPN访问,而不需要下载SSL VPN客户机或者代理到客户机102。例如,用户可以期望从诸如处于机房的外部机器来访问公司内的资源,在该外部机器上用户并没有特权来安装客户机或者不期望经历客户机安装过程。当装置(例如市场上的新的PDA)不支持SSL VPN客户机而装置运行的是SSL使能的浏览器,则免客户机SSL VPN特征也是有用的。在其他实施例中,设备200基于策略和任一策略规则、动作和/或条件来在对资源的基于客户机和免客户机SSL VPN访问之间选择用户。
客户机可以包括任一类型和形式的用户代理,可以是浏览器、编辑器、网络爬虫程序(web穿越自动机)或者任一其它终端用户工具或者程序。客户机102可以包括任一类型和形式的浏览器。在一个实施例中,浏览器是Washingtong Redmond的微软公司制备的任一版本的InternetExplorer(IE)。在另一个实施例中,浏览器是网景通信公司制备的任一版本的网景浏览器。在其他实施例中,浏览器是称之为Firefox并且由California的Mozilla Foundation提供的并且在www.mozilla.com可以找到的任一版本的开放源浏览器。在又一个实施例中,浏览器是NorwayOslo的Opera Software ASA制备的称之为Opera的任一版本的浏览器。在一些实施例中,客户机102执行或者包括任一类型或者形式的应用或者程序,用于显示web页面、web内容、HTML、XML、CSS(层叠式样式表)、Java脚本或者HTTP内容。
在图3A描述的实施例的操作中,用户登入设备200提供的SSL VPN站点,诸如通过设备200寄载的域名和IP地址。例如,用户经由客户机102的浏览器可以选择或者输入URL到SSL VPN站点。设备200可以验证用户并且还可以进一步确定用户访问设备200或者SSL VPN站点的授权。在成功验证之后,设备为客户机提供入口页面来经由浏览器显示给用户。入口页面可以包括导航盒(navigation box),诸如一组一个或者多个用户接口元件用于用户来选择操作或者运行应用。入口页面可以包括到用户可访问的其它页面或者URL的链接。入口页面上的URL或者链接可以索引或者识别设备200提供的SSL VPN站点的主机名或者IP地址。
用户经由入口页面可以例如通过点击有效超链接或者URL来选择一个或者多个URL。随之,浏览器或者客户机将请求传送给设备200寄载的域。例如,如图3A中描述的,用户可以经由设备请求服务器106的应用:“https://sslvpn.x.com/cvpn/http/server.x.com/app.cgi”。在一些实施例,用户发送另一个请求,诸如“https://proxy.x.com/cvpn/http/server.x.com/app.cgi”。设备200从客户机102接收请求并且重写该请求以发送给服务器。例如,如图3A中描述的,设备可以移除或者删除设备所寄载的域名诸如“sslvpn.x.com”或者“proxy.x.com”并且将请求的剩余部分转发给服务器106。
响应于该请求,服务器将内容发送给客户机。响应的内容或者体可以包括到服务器的其他页面或者到网络104’上的其他服务器的嵌入式链接或者URL,诸如到“http://server.x.com/app.cgi”的嵌入式链接。设备重写该首部和体来修改任一URL,以索引到SSL VPN站点的域名或者IP地址,使得经由客户机浏览器的任一其它URL或者链接选择将请求发送给设备200。设备发送修改后的内容给客户机102。设备200诸如经由AppFw 290(有时称之为AppSecure模块290)可以设计并且构建为基于策略引擎的策略来重写请求和响应的URL。该页面和在此SSL VPN会话期间从服务器随后接收的其他页面中的链接(URL)由设备通过指向SSL VPN站点(VPNVIP 275)的链接和初始请求URL(绝对或者相对)编码在该请求URL中的方式来进行修改。
现在参考图3B,描述用于提供VPN访问以及cookie管理的VPN环境的另一个实施例。总的来说,设备200可以包括用于处理如此处描述的基于免客户机和/或客户机的任一SSL VPN功能性的VPN模块280。设备和/或VPN模块280可以具有AAA模块来执行任一类型和形式的验证、授权和审核(AAA)和/或跟综和管理VPN会话信息。AAA模块还可以执行任一类型或者形式的VPN会话查询来确定用于任一客户机请求的VPN会话。VPN模块还可以执行URL译码并且将URL转换为服务器格式,诸如用来提交给专用网络上的服务器。VPN模块280还包括经由VPN处理器函数、逻辑或者运算的DNS查询功能性和授权。
设备可以包括用于保存、跟踪和管理客户机和服务器之间的cookie的cookie代理或者cookie管理器。Cookie可以包括用于增加或者插入cookie以及移除cookie的cookie存储装置,称之为cookie存储器(jar)。Cookie管理器或者代理可以包括在cookie存储器中通过请求和/或响应的URL、域名或者其他信息来保存和查询cookie信息的功能、逻辑或者运算。在一些实施例中,设备200代表不支持cookie、停用的cookie的客户机或者对于期望或优选不发送cookie给客户机的情况中管理cookie。
设备还可以包括AppFW 280,其在Citrix System公司制备的设备的情况下称为AppSecure。AppSecure 280模块可以包括用于执行任一类型和形式的内容重写,诸如URL重写的逻辑、功能或运算。在一些实施例中,AppSecure 280模块执行到客户机和服务器之间的请求和/或响应的任一类型和形式的内容注入。在一些实施例中,AppSecure模块280将脚本插入到对客户机的响应中,诸如Java脚本,来执行任一类型和形式的期望的功能性。
用于免客户机SSL VPN访问的设备200的任一部件可以响应于配置或者通过配置驱动,诸如经由策略引擎的任意一个或者多个策略。策略可以指导和确定通过VPN模块执行的URL编码和译码的类型和形式。在一些实施例中,策略可以指导和确定cookie代理如何并且何时管理和代理cookie。在其他实施例中,策略可以指导并且确定AppSecure模块如何并且何时执行URL重写和/或内容注入。策略可以指导用户访问专用网络和专用网络上的应用的方式。策略可根据访问方案配置,该访问方案可以包括基于用户、客户机的类型和形式、网络的类型和形式、访问资源的类型、所使用应用的类型、暂时信息以及可以通过设备经由传输到的网络业务量来确定的任一信息的任一组合的访问。
参考图3B,讨论经由设备200用于免客户机SSL VPN访问的包流。响应于成功的登入请求,VPN设备可以发送入口页面给登入请求的发送者。入口页面可以具有结合图3A描述的“vpn编码格式”的一个或者多个链接。入口页面流经以下描述的响应码路径。当用户点击入口页面中的任一URL时,包流可以以多种方式并且使用多个步骤来执行。在一些实施例中,对于步骤Q1的请求路径,设备200可以接收URL请求并且查询AAA模块中的VPN会话。在步骤Q2,设备可以将VPN编码的URL译码为期望的URL用于服务器或者网络104’。设备还可以将请求的首部(诸如首部值)修改为服务器格式或者意于通过服务器106传输和使用的格式,诸如HTTP服务器。设备可以重新解析首部,使得设备的任一其它模块以服务器格式查看该请求。在步骤Q3,在请求路径中,设备经由cookie管理器或者代理可以基于URL的域和路径来查看用于该请求的cookie。在一些情况中,如果该请求包括cookie,则该设备可以从cookie存储器插入cookie。在步骤Q4,设备可以经由设备的DNS查询功能/模块来将以URL中的服务器的域名解析为服务器的IP地址。设备可以基于AAA模块中的DNS查询来建立服务器信息。此外,可以评估授权策略来确定该请求是否可以传送给服务器。在步骤Q5,设备可以将请求发送给服务器。在一些实施例中,只有在授权成功的情况下,设备才将该请求发送给服务器。
在从服务器经由设备到客户机的响应路径中,在步骤S1,设备可以接收来自服务器的响应。VPN模块280可以处理该响应。VPN模块可以将该响应首部传递到cookie代理模块并且将响应的体传递到AppSecure模块。在步骤S2,cookie代理可以从响应的首部移除未被配置或者以其它方式识别为客户机所消耗cookie的cookie并且将它们保存在当前会话所使用的cookie存储器中。在步骤S3,AppSecure模块可以根据重写策略来重写“vpn编码形式”的任一URL。AppSecure模块还可以将任一脚本插入响应体中,诸如要在客户机侧执行的Java脚本代码。在步骤S4,设备可以发送修改后的响应给客户机。在许多实施例中,任一个Q或者S步骤以任一顺序或者以与此处所描述的任一其它步骤或者实施例的任一组合进行。
D、用于URL重写编码方案的系统和方法
现在参考图4A,讨论用于提供细粒度配置和策略驱动的统一资源定位符(URL)编码方案的系统和方法。总的来说,一个或者多个客户机102A-102N可以经由设备200建立到服务器106A-106N的SSL VPN会话。客户机102A可以经由设备200提供的SSL VPN站点来建立第一SSL VPN会话S1。客户机102B可以经由设备200建立第二SSL VPN会话S2。客户机102N还可以经由设备200建立第三SSL VPN会话S3。设备200可以使用一个或者多个会话策略420来配置,以限定任意规则来触发关于任意会话S1-S3所采用的任意动作。在一些情况中,会话策略420指导、触发或者以其他方式确定使用什么类型的URL编码方案或者机制,诸如经由URL编码策略410的任一个。例如,会话策略420可以确定URL编码策略410以用于给定的会话。
URL编码策略410可以识别多个可用编码方案的一个URL编码方案,以用于会话。设备200可以使用URL编码方案用于免客户机SSL VPN访问。例如,对于特定用户或者特定客户机102,设备200可以从多个编码方案选择和使用一个编码方案用于免客户机SSL VPN访问。设备200可以包括执行从多个编码方案选择和使用单个编码方案所必须的任意功能性。一个或者多个策略可以将URL编码方案指导为用于访问场景。例如,策略可以指导SSL VPN模块来基于对于客户机所建立会话已识别的规则或者动作使用预定类型的URL编码。由此,管理员可以配置设备基于用户的访问场景来使用多个编码方案的其中一个用于在免客户机SSL VPN会话期间重写URL。在一些其他例子中,策略可以指导SSL VPN模块基于针对客户机上所建立用户、所建立客户机或者所建立的客户机类型或者客户机组所识别出的规则或者动作来使用预定类型的URL编码。
会话策略420可以是用于管理、控制和建立会话的任意类型和形式的策略。在一些实施例中,会话策略420包括用于在客户机102和服务器106之间经由中间设备200建立会话的规则或者策略。在其他实施例中,会话策略420包括用于管理会话或者掌控所建立的该类型会话的规则或者策略。在一些实施例中,会话策略420包括用于基于有关客户机的信息对客户机102的会话建立限制或特权的规则。在一些实施例中,会话策略420可以基于客户机的配置、客户机的因特网协议地址、客户机的历史记录或者基于客户机102上的用户来在客户机102和服务器106之间建立指定的会话。在进一步的实施例中,会话策略420包括用于对基于客户机102所请求会话的类型所建立的任意会话建立限制或者特权的规则,该会话诸如免客户机SSL VPN会话或者基于客户机的SSL VPN会话。例如,会话策略420可以包括对于一类请求建立一类会话而对于另一类请求建立另一类会话的策略。类似地,会话策略420可以包括基于客户机102正在请求的服务或者资源的类型建立不同会话的策略。在一些实施例中,会话策略420包括基于客户机102正尝试访问的服务器106建立不同会话的策略。策略或者规则可以基于关于客户机102、服务器106、客户机102或者服务器106的cookie配置、客户机102正使用的网络的类型、客户机102的安全特性的任意信息或者关于客户机102或服务器106的任意其他信息来掌控会话的建立和管理。会话策略420可以建立对于一个客户机102具有特定特征的一个会话以及对于不同客户机102具有不同特征的不同的会话。会话的特定特征可以包括对于每个会话可用的特定的编码策略、用于在每个会话中重写URL的特定编码方案、特定通信协议或者会话的任意其它类似特性。
URL编码策略410可以是用于编码、修改或者转换URL的任意类型和形式的策略。URL编码策略410可以是用于选择对URL进行修改、编码或者转换的一个或者多个特定编码方案的任意类型和形式的策略。在一些实施例中,URL编码策略410包括选择用于编码、转换或者修改URL的任意数量个编码方案的规则和策略。在一些实施例中,URL编码策略410从多个编码方案中识别编码方案以用于特定URL、特定客户机102或者特定服务器106。在一些实施例中,URL编码策略410基于关于客户机102或服务器106的任意信息来识别用于修改、重写或者转换对于特定会话的URL的一个或者多个编码方案。在一些实施例中,URL编码策略410基于客户机102上的用户来识别用于转换或者重写客户机102和服务器106之间的URL的编码方案。在一些实施例中,URL编码策略410基于客户机102的安全信息来识别编码方案,诸如客户机102正使用的网络、保护或者安全级。在一些实施例中,URL编码策略410基于对于客户机102所建立的会话来识别编码方案。URL编码策略可以包括用于使用特定方式和方法来转换、修改或者重写URL的任意数量个不同的策略或者方案。URL编码策略可以包括用于转换、重写或者修改任意数量的URL的透明、不透明和加密的方案或者策略,以及这些策略或者方案的任意组合。
每个编码方案可以提供用于免客户机SSL VPN访问场景的不同级别和粒度的安全性。例如,在一些实施例中,URL编码策略可以识别以下URL编码方案的其中一个:透明、不透明和加密。透明URL方案策略可以包括用户可见的URL的可逆转换。透明URL编码方案可以将URL转换或者修改为在转换或者修改后的URL中包括原始URL的一部分。不透明URL编码方案可以使用可逆转换,其标记、隐藏或者模糊化URL的诸如主机名称和协议的任意部分。不透明URL编码方案可以转换或者修改URL使得其在转换或者修改后的URL中不可见地识别或包括原始URL的一部分。在一些实施例中,不透明URL编码方案允许用户或者客户机查看转换的URL中的原始URL的一部分。转换的URL可以包括原始URL的任意部分,其中原始URL被标记、模糊化或者隐藏。加密的URL编码方案可以使用密钥,诸如会话ID。在一些实施例中,加密的URL编码方案使用随机产生的加密密钥来加密URL。对于加密URL编码方案所使用的密钥可以从用户特定加密密钥变化到由对称加密系统所产生的任意密钥。不透明和加密URL加密方案可以模糊化URL,来提供不同级别的安全性。
在进一步的细节中,设备200可以被设计和构建为使用任意类型和形式的URL编码方案和/或机制。在一个实施例中,设备200将URL重写为对于每个URL的一些唯一标识符。在进一步的实施例中,设备200将URL重写为URL中相对于设备所寄载(host)的域/IP的路径。在一个例子中,设备200可以使用由“www.tinyurl.com”提供的服务或者功能性来将任意URL编码到其下的一些相对的URL。在进一步的例子中,“www.tinyurl.com”的功能性可以重写为URL“http://www.rediff.com/index.html”或者为该站点下的一些相对URL诸如“http://tinyurl.com/9oatj”。在进一步的实施例中,设备200可以将URL重写为可以具有不同或者相同主机名称或者路径的任意其它URL。在一些情况中,设备200将服务器提供的URL重写为设备200提供的SSL VPN站点下的相对URL。例如,设备200可以将诸如“http://www.y.com/index.html”的URL重写到“http://sslvpn.x.com/9oatj”中。在一些实施例中,“9oatj”是对于给定URL的唯一标识符。在进一步的例子中,设备200将诸如“http://rediff.com/index.html”的URL重写为“http://sslvpnsite.com/9oatj”。设备200可以将重写的URL映射、跟踪到原始的URL并保存在存储器或者存储设备中。当接收到识别重写URL的客户机的请求时,设备200查询映射到该重写URL或者与其相关的原始URL。在一些实施例中,转换的URL被转换,使得其在其中包括原始未转换URL的一部分或者全部。有时,这样的转换对于用户可以是可逆的并且透明的。在一些实施例中,这样的转换可以称之为透明URL编码方案。
在一些实施例中,设备可以使用任意类型和形式的加密来提供加密的URL编码方案。例如,设备200可以使用会话密钥来加密/解密相对于SSL VPN站点下的URL做出的响应或请求路径中的URL。会话密钥可以保存在设备上、VPN会话本身中或使用会话标识符提取。在一些实施例中,设备加密整个URL或者URL的一部分。在一个实施例中,设备对SSL VPN站点主机名称和/或文件的扩展名不加密。在其他实施例中,设备使用用于加密的任意密钥,诸如设备提供的SSL会话的密钥,或者经由网络话务量提取或者确定的任意唯一信息。在一些情况中,证书或者此处的任意信息可以用于密钥,诸如客户机或者服务器的证书。在其他情况中,公用密钥和/或专用密钥可以用于加密和解密。公用或者专用密钥可以是客户机、服务器或者设备的密钥或者这些装置之间的任意安全或者加密的会话。在一些实施例中,诸如管理员的用户可以指定或者配置密钥来用于加密和/或解密。在另一个实施例中,管理员可以配置设备来使用多个加密技术中的一个加密技术。
在一些实施例中,指向设备的SSL VPN站点并且在URL的路径部分中具有编码URL的URL可以称之为“vpn编码URL”。在一些实施例中,编码绝对URL也可以称之为“vpn编码URL”。使用vpn编码URL的优势在于这样的方法可以避免在请求路径中对于原始URL的代价高昂的查询。在一些情况中,设备使用编码URL方案来模糊化URL,使得不暴露服务器处的目录结构。使用会话密钥的对称加密/解密可以是在需要URL加密时用于URL重写的方法。设备200可以执行URL的加密和解密。在一些实施例中,使用会话密钥的对称加密/解密可以是在执行URL模糊化时用于URL重写的方法。其它类型的编码方案或者加密方案可以如期望地用于模糊化URL。
通过实例,如果在从位置“http://www.abc.com/textsite/index.html”访问的页面中呈现的相对URL是“contents/file5.html”,则设备诸如经由AppSecure模块将此URL转换为绝对URL“http://www.abc.com/testsite/contents/file5.html”。该设备使用对称密钥来加密该绝对URL“http://www.abc.com/testsite/contents/file5”并且将加密字符串布置或者置于SSL VPN站点下的相对URL的一部分,诸如svpn.mysite.com。例如如果不具有文件扩展名或者后缀的URL“http://www.abc.com/testsite/contents/file5”加密为字符串“wruiwdsym334d3434bmvc8sdsffsmds”,则用于设备提供给客户机的页面中的contents/file5.html的URL可以是“https://sslvpn.x.com/cvpn/wruiwdsym334d3434bmvc8sdsffsmds.html”。
在一些实施例中,设备可以将不透明编码或者可逆翻译或者加密(其还可以称为vpn编码)应用到URL的任意部分。在一个实施例中,设备200将vpn编码应用到URL的其他部分,诸如除了文件扩展名或者后缀的整个URL。在另一个实施例中,设备200将vpn编码应用到完全合格域名(FQDN)和URL的协议部分并且不改变相对URL。由于在诸如Java脚本的不同内容类型中出现的相对URL未改变,当嵌入不同内容类型中的相对URL难以识别时,该类编码是有用的。在一些实施例中,设备200将不透明或者可逆翻译编码应用到URL的任意部分。在一个实施例中,设备200将可逆翻译编码应用到URL的主机名称部分。在另一个实施例中,设备将可逆翻译编码应用到URL的协议部分。在另外的进一步实施例中,设备将可逆翻译编码应用到URL的主机名称和协议部分。在一个实施例中,设备200将可逆翻译应用到URL的除了主机名称和协议的部分。在一些实施例中,相对URL不改变。不透明或可逆翻译编码可用于处理客户机侧的相对请求或者支持一些脚本。
在其他实施例中,诸如对于不透明类型的URL编码,设备可以使用任意类型和形式的可逆翻译机制或者方案,诸如Base64编码。在一些情况中,术语“Base64”是指MIME内容传送编码。在其他情况中,该术语还用作对于任意类似编码方案的通用术语,该编码方案通过将其数字化处理并且翻译为64基的表示来编码二进制数据。在其他实施例中,设备可以使用任意类型和形式的二进制到文本的编码,诸如32基、uuencode编码或者任意其他方案。可逆编码方案可以使用任意类型的字符、字典或者字母。在一个实施例中,64基编码可以使用URL安全字母表:52个英文字母、10个数字和两个其他字符‘_’和‘-’并且不使用填充符(padding)。
使用可逆翻译的URL编码可以是贯穿SSL VPN会话所用的书签并且主机名称对于用户不可见,而不需要执行译码,诸如64基译码。该不透明URL编码可以用于SSL VPN免客户机访问,不需要知道使用加密技术来将主机名称强硬地隐藏在哪里并且不需要知道何时隐藏目录结构。
通过例子,对于来自URL“http://www.xyz.com/html/index.html”的页面的index.html,设备可以使用64基编码重写URL为“/cvpn/aHR0cDovL3d3dy54eXouY29t/html/index.html”。该方法允许标记的链接贯穿SSL VPN会话可用,并且仅可以重写相对根和绝对URL。相比于加密URL编码技术,不透明编码不能有效隐藏服务器名称或者服务器上的目录结构。
在一些实施例中,设备可以基于用户可见的可逆翻译使用透明URL编码方案。设备可以使用任意可逆转换功能来重写URL以使其形成到SSLVPN站点的绝对的或者相对的链接,使得原始URL更容易提取。例如,使用透明编码技术的设备可以将来自URL“http://www.xyz.com/html/index.html”的页面的index.html重写为“/cvpn/http/www.xyz.com/html/index.html”。当不需要查询时,该方法在存储器使用和计算中很有效。使用该方法,标记的URL还可以贯穿不同SSL VPN会话来使用并且易于被标记。
在又一个实施例中,设备可以执行在URL中嵌入任意类型和形式的会话信息的URL重写。例如,如果客户机的浏览器不支持cookie,则该设备可以将会话信息嵌入在编码的URL中来识别和跟踪该会话,诸如用于免客户机SSL VPN访问场景。在一个实施例中,设备在URL中保存或者编码会话ID。在另一个实施例中,设备在URL中保存或者编码唯一客户机标识符。在一些实施例中,设备在URL保存或者编码cookie或者cookie信息。设备可以使用可逆翻译,诸如所描述的透明或者不透明方法或者使用嵌入会话或者其他信息重写URL的加密方法。例如,具有会话ID的翻译的URL可以以使用对称密钥加密的“https://svpn.mysite.com/cvpns/XYZ/wruiwdsym334d3434bmvc8sdsffsmds.html”的形式或者对于可逆翻译方法的“https://svpn.mysite.com/cvpns/XYZ/http/www.y.com/html/index.html”的形式来重写,其中XYZ是用于SSL VPN的会话ID。在一些实施例中,会话ID可以翻译为URL的可逆翻译部分的一部分或者加密为URL的加密部分的一部分。
在一些实施例中,设备可以使用透明、不透明和/或加密URL编码的任意组合来用于整个URL或者其任意部分。例如,设备可以使用透明技术用于URL的第一部分,不透明技术用于URL的第二部分并且加密技术用于URL的第三部分。设备可以在URL的第一部分、第二部分或者第三部分嵌入会话信息或者任意其他设备确定的信息。
在又一个实施例中,设备可以使用任意用户限定编码功能或者翻译计算。在一些实施例中,用户经由编程语言、脚本、库或者任意其它接口可以识别设备所使用的编码方案或者机制或者编码器。在另一个实施例中,用户可以指定在URL或者其部分中保存或者编码哪个会话、cookie或者其他信息,并且如果有将使用哪种类型的编码,透明的、不透明的、加密的或者用户限定的。
在多个实施例中,基于客户机所处的环境的安全级别来确定客户机的状态。例如,一些客户机可以处于安全网络环境中而其他客户机可以处于不安全环境中。这可以导致中间设备基于客户机所处环境来选择客户机的状态。在一些实施例中,通过收集关于客户机的信息来确定客户机的状态,诸如操作系统、个人防火墙的存在和版本、病毒保护的存在和版本、浏览器的类型和版本等。例如,客户机代理可以收集关于客户机的信息。
在一些实施例中,通过服务器106或者服务器106上的用户来确定客户机的状态。在一些实施例中,通过设备200来确定客户机的状态。在多个实施例中,客户机比另一个客户机被授权更多访问或者访问更多的应用程序。在一些实施例中,特定客户机的验证用户可以访问服务器106上的软件、应用程序或者文件,而其他客户机的其他用户却不能访问。该设备200可以基于以下任意一个或者任意组合来为客户机或者客户机的用户分配状态:客户机所处网络的安全级或者安全性、客户机的类型、客户机的用户的类型、客户机的操作系统、客户机的安全系统、用户验证、用户访问和所请求URL提供访问的信息的敏感性。在一些实施例中,第二客户机具有与第一用户不同的状态、证书或者访问。在多个实施例中,由识别与第一客户机和第二客户机的通信相关的风险的规格来确定第一和第二客户机的证书或者状态。识别与第一客户机和第二客户机的通信相关的风险的规格可以是以下的任意项或者其任意组合:客户机所处网络的安全级或者安全性、客户机的类型、客户机的用户的类型、客户机的操作系统、客户机的安全系统、用户验证、用户访问和所请求URL提供访问的信息的敏感性。在许多实施例中,由策略引擎或者中间设备200或者服务器106的一个或者多个映射来确定状态和证书。
在一些实施例中,浏览器可以使用请求中的文件的扩展名来提取MIME类型。如果文件的扩展名存在于请求URL中,其可以保持不改变。在一些实施例中,不呈现扩展名。在一些实施例中,设备200检查扩展名的存在。在一些情况中,整个URL除了扩展名之外都可以重写或者编码。在进一步的实施例中,可以重写主机名称,使得主机名称为设备200提供的SSL VPN站点下的子目录。在其他情况中,仅重写主机名称和协议,使得主机名称为SSL VPN站点下的子目录。如果使用主机名称重写方法,则可以不改变页面中出现的相对URL并且可能需要重写绝对URL。
进一步查看图4A,此处描述的设备提供对URL重写编码的类型和形式的细粒度控制的实现,以用于通过设备的任意会话,诸如免客户机SSL
VPN会话。或者在全局级别或者经由策略,设备可以配置为从诸如透明、不透明、加密、用户限定或者其任意组合的多个预定类型的编码中提供一个预定类型的URL编码。经由配置或者策略,用户可以指定URL的哪部分或者元素以应用预定类型的编码。经由配置或者策略,用户可以指定基于访问场景何时应用URL编码并且应用给谁。
设备200可以使用网络包、请求和/或响应的任意部分或者各部分组合来确定URL编码方案可以使用的条件。例如,策略规则可以基于网络包的评估部分来确定预定URL编码方案应用的条件,该网络包的评估部分诸如网络堆栈的任意层或者协议的首部或者有效载荷的任意部分。在一些实施例中,设备使用HTTP首部的任意部分和/或HTTP体或者事务层的任意部分来确定所采用的动作和/或所应用的策略。在一个实施例中,设备使用结构化信息,诸如首部中限定的字段或者体中限定的元素或者结构。在一些实施例中,设备使用非结构化信息,诸如通过图案、位置或者其它搜索和识别方法所识别的体的部分。在其他实施例中,设备使用在策略中所用的结构化和非结构化信息以及对于策略指定的规则和动作。
通过例子,用户可以指定URL编码机制在全局级别,诸如经由以下命令行接口(CLI)指令:
set vpn param-ClientLessModeUrlEncoding(opaque|transparent|encrypt)
为了提供改变每用户、组或者vserver/VIP 275的URL编码的灵活性,URL编码的类型可以配置为会话策略的动作中的参数:
add vpn session action<actionName>-ClientLessModeUrlEncoding(opaque|transparent|encrypt)
基于根据评估为真的规则的条件来触发会话的动作或者其它方式触发的动作,使用动作指定的URL编码模式可以应用于重写对于该会话的URL。在一些实施例中,在不透明模式期间,仅编码协议和主机名称。在进一步的实施例中,默认为不透明模式并且仅协议和FQDN是64基编码的,使得用户不能在清晰的文本中看到主机名称或者协议。任意模式可以限定或者配置为默认URL编码模式。在透明模式的一个实施例中,不进行编码并且用户可以查看访问哪个主机以及目录结构。在加密模式的一些实施例中,使用会话密钥来加密主机名称以及路径。设备可以提供任意布置或者类型的GUI来提供用户接口以指定和配置URL编码和相关的策略。
现在参考图4B,描述用于经由中间设备200确定对于SSL VPN的URL编码方案的方法400的实施例的流程图。总的来说,在步骤405,在第一客户机和服务器之间经由中间设备建立第一SSL VPN会话。在步骤410,在第二客户机和服务器之间经由中间设备建立第二SSL VPN会话。在步骤415,中间设备的包引擎经由第一SSL VPN会话从第一客户机接收包括从服务器到客户机的第一URL的第一响应。在步骤420,中间设备的包引擎经由第二SSL VPN会话从第二客户机接收包括从服务器到客户机的第二URL的第二响应。在步骤425,策略引擎使用编码策略来从多个编码方案中确定编码第一URL的第一编码方案并从多个编码方案中确定编码第二URL的第二编码方案。在步骤430,中间设备的重写器响应于策略引擎根据所确定的第一编码方案来重写第一URL并且根据确定的第二编码方案来重写第二URL。
在进一步的细节中,在步骤405,客户机、服务器或者中间设备中的任意部件经由中间设备在第一客户机和服务器之间建立第一SSL VPN会话。在一些实施例中,第一客户机、中间设备或者服务器的任意一个在第一客户机和服务器之间建立第一SSL VPN会话。第一SSL VPN会话可以经由诸如设备200的任意中间设备来建立。所建立的SSL VPN会话可以是安全会话,诸如加密的客户机到服务器的会话。第一客户机、服务器或者中间设备可以建立第一SSL VPN会话并且分配唯一第一标识符,用于与其它SSL VPN会话唯一区分和识别第一SSL VPN会话。第一客户机、服务器和中间设备的任意一个可以经由为会话提供功能性或者安全性的通信协议来建立第一SSL VPN会话,诸如Citrix ICA协议。在一些实施例中,客户机、服务器或者中间设备的任意一个使用第一客户机、服务器和中间设备的任意两个之间的信息交换来建立SSL VPN会话。在一些实施例中,SSL VPN会话的建立包括第一客户机的授权。在一些实施例中,中间设备或者服务器需要第一客户机使用用户名、密码或者用户名和密码的组合来验证,用来建立第一会话。在许多实施例中,服务器和第一客户机使用加密密钥来建立安全加密的第一会话。
在建立第一SSL VPN会话时或会话期间,服务器或者中间设备可以使用策略和/或策略引擎来将第一客户机与访问服务器的级别或者访问服务器的功能性的级别相关联。在许多实施例中,在建立SSL VPN会话时或会话期间,服务器或者中间设备使用用户、组或者全局的一个或者多个配置策略将第一客户机与访问服务器的级别或者访问服务器的功能性的级别相关联。
在步骤410,客户机、服务器或者中间设备的任意一个经由中间设备在第二客户机和服务器之间建立第二SSL VPN会话。在一些实施例中,使用和第一会话相同步骤组来建立第二会话。在许多实施例中,第二会话基本上类似于建立第一会话的方式来建立。第二SSL VPN会话被分配唯一第二标识符,用于与其它SSL VPN会话唯一识别该第二SSL VPN会话。在许多实施例中,第二SSL VPN会话包括第一SSL VPN会话的任意部分或者任意功能性。在一些实施例中,第二SSL VPN会话使用与用来建立第一SSL VPN会话的加密密钥不同的加密密钥来建立。第二SSL VPN会话可以使用与用来建立第一SSL VPN会话的密钥相同的加密密钥来建立。在多个实施例中,第二SSL VPN会话使用来自第二客户机的验证来建立,诸如经由用户名和密码的验证。在一些实施例中,使用第二客户机、服务器或中间设备的任意两个之间的信息交换来建立第二SSL VPN会话。
在建立第二SSL VPN会话时或会话期间,服务器或者中间设备可以使用策略和/或策略引擎,将第二客户机与访问服务器的级别或者访问服务器的功能性的级别相关联。在许多实施例中,服务器或者中间设备使用用户、组或者全局的一个或者多个配置策略,将第二客户机与访问服务器的级别或者访问服务器的功能性的级别相关联。在一些实施例中,在建立SSL VPN会话时或会话期间,服务器或者中间设备使用策略或规则引擎来将第一客户机与第一客户机的安全级别或者第一客户机可能对会话产生的威胁级别相关联。在多个实施例中,服务器或者中间设备使用策略、策略引擎或者规则来确定第一客户机的合适程度,以建立和服务器的第一SSL VPN会话。
在步骤415,中间设备的包引擎经由第一SSL VPN会话从第一客户机接收包括从服务器到客户机的第一URL的第一响应。在一些实施例中,中间设备的任意部件接收第一响应。第一响应可以从服务器直接或者从服务器经由任意数量个其它中间设备传送到中间设备。中间设备的包引擎或者任意其它部件可以从服务器接收包括第一URL的任意数量个响应。在一些实施例中,由中间设备接收的第一响应包括从服务器到客户机的多个URL。由中间设备经由第一SSL VPN会话接收的第一响应可以包括通信信息、指令、数据、可执行代码、源代码、文件或者任意其它类型的信息。在一些实施例中,中间设备接收包括之前第一客户机经由第一SSLVPN会话请求的URL代码或者对第一客户机经由第一SSL VPN会话请求的URL的响应的第一响应。在多个实施例中,中间设备接收包括访问保存在服务器上的或者经由服务器可访问的应用程序、文件、数据或者资源的指令或者请求的第一响应。在多个实施例中,中间设备接收包括对于访问服务器上的应用程序、文件、数据或者资源的请求的响应的第一响应。在一些实施例中,中间设备经由第一SSL VPN会话接收包括来自第一客户机的任意数量个URL的任意数量个响应。在许多实施例中,中间设备接收包括到由服务器提供或者服务的文件、应用程序、数据、web页面、源代码、链接或者任意其他信息的路径的任意数量个URL。在多个实施例中,中间设备接收到服务器上安全web页面或者任意其它类型安全资源的URL。在一些实施例中,中间设备接收到仅可以由所选择用户、所选择客户机或者所选择用户和客户机组访问的web页面、文件或应用程序的URL。在一些实施例中,中间设备接收到仅对于从安全网络或者从中间设备或者服务器承认为安全的网络环境建立SSL VPN会话的客户机或者用户可用的资源、web页面、文件、应用程序的内容或者资源的URL路径。
在步骤420,中间设备的包引擎经由第二SSL VPN会话从第二客户机接收包括从服务器到客户机的第二URL的第二响应。第二响应可以大体类似于第一响应,并且其可以包括第一响应的所有特征、功能性、或者特性。在许多实施例中,第二URL和第一URL相同,并且在其他实施例中,第二URL和第一URL不同。在一些实施例中,中间设备的任意部件接收第二响应。第二响应可以从服务器直接或者从服务器经由任意数量个其它中间设备传送到中间设备。中间设备的包引擎或者任意其它部件可以从服务器接收包括第二URL的任意数量个响应。在一些实施例中,由中间设备接收的第二响应包括从服务器到客户机的多个URL。由中间设备经由第二SSL VPN会话接收的第二响应可以包括通信信息、指令、数据、可执行代码、源代码、文件或者任意其它类型的信息。在一些实施例中,中间设备接收包括之前第二客户机经由第二SSL VPN会话请求的URL代码或者对第二客户机经由第二SSL VPN会话URL请求的响应的第二响应。在多个实施例中,中间设备接收包括对访问保存在服务器上的或者经由服务器可访问的应用程序、文件、数据或者资源的指令或者请求的第二响应。在多个实施例中,中间设备接收包括对于访问服务器上的应用程序、文件、数据或者资源的请求的响应的第二响应。在一些实施例中,中间设备经由第二SSL VPN会话接收包括来自第二客户机的任意数量个URL的任意数量个响应。在许多实施例中,中间设备经由第二SSLVPN会话接收包括由服务器所提供或者所服务的文件、应用程序、数据、web页面、源代码、链接或者任意其他信息的路径的任意数量个URL。在多个实施例中,中间设备经由第二SSL VPN会话接收到服务器上安全web页面或者任意其它类型安全资源的URL。在一些实施例中,中间设备经由第二SSL VPN会话接收到仅可以由所选择用户、所选择客户机或者所选择用户和客户机组访问的web页面、文件或应用程序的URL。在一些实施例中,中间设备经由第二SSL VPN会话接收到仅对于从安全网络或者从中间设备或者服务器承认为安全的网络环境建立SSL VPN会话的客户机或者用户可用的资源、web页面、文件、应用程序的内容或者资源的URL路径。
在步骤425,策略引擎使用编码策略来从多个编码方案中确定第一URL的第一编码方案并从多个编码方案中确定编码第二URL的第二编码方案。在多个实施例中,编码策略确定用于加密第一URL的一部分的第一编码方案用于第一URL并且用于不修改第二URL的第二编码方案用于第二URL。在多个实施例中,编码策略确定用于重写第一URL的一部分的第一编码方案用于第一URL并且用于删除第二URL的一部分的第二编码方案用于第二URL。在多种实施例中,策略引擎确定用于使用另一个所构成的(made up)URL来覆写第一URL的一部分的第一编码方案用于第一URL,并且用于模糊化第二URL的一部分的第二编码用于第二URL。在一些实施例中,编码策略确定用于修改第一URL的一部分的第一编码方案用于第一URL并且用于修改整个第二URL的第二编码方案用于第二URL。
有时在步骤425,策略引擎可以使用客户机的信息、状态或者证书来确定用于URL的编码方案。在一些实施例中,策略引擎使用关于第一或者第二客户机的安全性的编码策略来确定用于第一客户机的第一编码方案或者用于第二客户机的第二编码方案。在许多实施例中,策略引擎使用关于第一客户机或者第二客户机所连接的网络的安全级别的编码策略来确定用于第一客户机的第一编码方案或者用于第二客户机的第二编码方案。在多个实施例中,策略引擎使用由中间设备或者服务器授权客户机访问或者使用服务器上的应用程序、文件或资源的访问级别,来确定客户机的URL的编码方案。在一些实施例中,策略引擎使用关于第一客户机用于和服务器通信的计算机或者网络装置的类型的信息来确定用于第一客户机的第一URL的第一编码方案。类似地,策略引擎使用关于第二客户机用于和服务器通信的计算机或者网络装置的类型的信息来确定用于第二客户机的第二URL的第二编码方案。
在一些实施例中,在步骤425,策略引擎基于以下任意一个或者组合来确定用于第一或者第二URL的编码方案:客户机上关于用户到服务器资源的可访问性的验证的用户的状态、客户机的因特网协议地址、客户机的历史记录或者客户机上用户的历史记录、客户机与之通信的网络的安全级别和在验证期间客户机提供的用户名和密码。在一些实施例中,策略引擎基于客户机的软件应用程序或者客户机的地理位置来确定用于第一或者第二客户机的编码方案。在一些实施例中,策略引擎基于服务器或者中间设备从与客户机的之前通信收集的统计数据来确定用于第一或者第二客户机的编码方案。在多个实施例中,策略引擎基于和第一或者第二客户机共享的信息的敏感性、机密性或者重要性来确定第一或者第二客户机的编码方案。例如,响应于第一URL被识别为包括敏感或者机密信息,策略引擎使用编码策略来确定第一编码方案对第一URL进行模糊化和加密。类似地,响应于识别第二URL不包括任意敏感或者机密信息,策略引擎使用编码引擎来确定第二方案不修改第二URL。策略引擎还可以使用编码策略来确定第一编码方案或者第二编码方案包括以下任意一个或者任意组合:使用伪URL重写第一或者第二URL、区分或模糊化第一或者第二URL的至少一部分、将第一或者第二URL转换为另一个URL并且将一个或者多个代码、码字或者随机数据部分包括到第一或者第二URL中。
在步骤430,中间设备的重写器响应于策略引擎根据所确定的第一编码方案来重写第一URL并且根据确定的第二编码方案来重写第二URL。在许多实施例中,中间设备的任意部分根据确定的第一或者第二编码方案来重写第一或者第二URL的任意一个。在一些实施例中,重写器仅重写或者修改第一URL或者第二URL。在许多实施例中,重写器响应于由中间设备选择的编码方案的类型来重写、修改、加密、编码或者模糊化第一URL和第二URL。在一些实施例中,重写器根据第一编码方案或者第二编码方案编码或者加密第一或者第二URL的一部分。在一些实施例中,重写器使用加密器或者解密器,用于使用由编码方案或者重写器选择的一个或者多个加密密钥来加密第一或者第二URL的一部分。在许多实施例中,重写器是按照策略引擎指示修改第一URL、第二URL或者第一URL和第二URL的中间设备的装置、单元、功能件或者部件。在一些实施例中,重写器按照策略引擎的第一编码方案所指示的来修改第一URL并且按照策略引擎的第二编码方案所指示的来修改第二URL。在多个实施例中,重写器从策略引擎或者编码策略接收用于修改第一URL和第二URL的指令。重写器可以按照策略引擎或者编码策略所指示的以任意方式盖写、重写、删除、加密、解密、替换、模糊化或者以其他方式修改第一URL、第二URL或者所接收的任意其它URL。

Claims (26)

1.一种用于经由代理对于免客户机安全套接字层虚拟专用网络(SSL VPN)从多个编码方案中确定统一资源定位符(URL)的编码方案的方法,该方法包括:
a)中间设备经由SSL VPN会话接收从服务器到客户机的响应,中间设备在客户机和服务器之间建立SSL VPN会话,该响应包括URL;
b)中间设备响应于编码策略来从多个编码方案中确定用于编码URL的编码方案;
c)中间设备根据确定的编码方案来重写所述URL以传输到客户机。
2.权利要求1的方法,其中,该策略是确定至少一个规则来触发关于所建立的会话的至少一个动作的会话策略。
3.权利要求1的方法,其中,该编码方案移除该URL的一部分。
4.权利要求1的方法,其中,该编码方案使用另一个URL的一部分来重写该URL的一部分。
5.权利要求1的方法,其中,该编码方案使用一个或者多个加密密钥来加密该URL的一部分。
6.权利要求1的方法,其中,该编码方案是透明的编码方案。
7.权利要求1的方法,其中,该编码方案是不透明的编码方案。
8.权利要求1的方法,其中,该编码方案使用可逆转换机制来转换该URL。
9.权利要求1的方法,其中,该编码方案是加密该URL一部分的加密的编码方案。
10.权利要求1的方法,其中,该编码方案将该URL重写为唯一的标识符,该唯一标识符唯一识别该URL。
11.权利要求1的方法,其中,该编码方案将来自该URL的关于服务器的目录结构的信息模糊化。
12.权利要求1的方法,还包括如下步骤:
d)中间设备经由第二SSL VPN会话来接收从服务器到第二客户机的第二响应,中间设备在第二客户机和服务器之间建立第二SSL VPN会话,该第二响应包括第二URL;
e)该中间设备响应于编码策略来从多个编码方案中确定用于编码该URL的第二编码方案;和
f)中间设备根据确定的第二编码方案来重写所述第二URL,以传输到第二客户机。
13.权利要求12的方法,其中,该策略是确定至少一个规则来触发关于所建立的SSL VPN会话的至少一个动作的第二SSL VPN会话策略。
14.一种用于经由代理对于免客户机安全套接字层虚拟专用网络(SSLVPN)从多个编码方案中确定统一资源定位符(URL)的编码方案的中间设备,该中间设备包括:
包引擎,用于经由SSL VPN会话接收从服务器到客户机的响应,中间设备在客户机和服务器之间建立SSL VPN会话,该响应包括URL;
策略引擎,用于响应于编码策略来从多个编码方案确定用于编码URL的编码方案;和
重写器,用于响应于策略引擎根据确定的编码方案来重写所述URL,以传输到客户机。
15.权利要求14的中间设备,其中,该策略是确定至少一个规则来触发关于所建立SSL VPN会话的至少一个动作的会话策略。
16.权利要求14的中间设备,其中,该编码方案移除URL的一部分。
17.权利要求14的中间设备,其中,该编码方案使用另一个URL的一部分来重写该URL的一部分。
18.权利要求14的中间设备,其中,该编码方案使用一个或者多个加密密钥来加密URL的一部分。
19.权利要求14的中间设备,其中,该编码方案是透明的编码方案。
20.权利要求14的中间设备,其中,该编码方案是不透明的编码方案。
21.权利要求14的中间设备,其中,该编码方案使用可逆转换机制来转换该URL。
22.权利要求14的中间设备,其中,该编码方案是加密该URL一部分的加密的编码方案。
23.权利要求14的中间设备,其中,该编码方案将该URL重写为唯一的标识符,该唯一标识符唯一识别该URL。
24.权利要求14的中间设备,其中,该编码方案将来自该URL的关于服务器的目录结构的信息模糊化。
25.权利要求14的中间设备,还包括:
所述包引擎经由第二SSL VPN会话接收从服务器到第二客户机的第二响应,所述中间设备在第二客户机和服务器之间建立第二SSL VPN会话,该第二响应包括第二URL;
所述策略引擎响应于编码策略来从多个编码方案中确定用于编码第二URL的第二编码方案;和
所述重写器响应于该策略引擎根据确定的第二编码方案来重写所述第二URL以传输到客户机。
26.权利要求25的中间设备,其中,该策略是确定至少一个规则来触发关于所建立的第二SSL VPN会话的至少一个动作的第二SSL VPN会话策略。
CN200980110433XA 2008-01-26 2009-01-26 用于ssl vpn免客户机访问的策略驱动的细粒度url编码机制 Expired - Fee Related CN101981888B (zh)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US2384708P 2008-01-26 2008-01-26
US61/023,847 2008-01-26
US61/023847 2008-01-26
US12/359,101 2009-01-23
US12/359101 2009-01-23
US12/359,101 US8646067B2 (en) 2008-01-26 2009-01-23 Policy driven fine grain URL encoding mechanism for SSL VPN clientless access
PCT/US2009/032043 WO2009094655A1 (en) 2008-01-26 2009-01-26 Policy driven fine grain url encoding mechanism for ssl vpn clientless access

Publications (2)

Publication Number Publication Date
CN101981888A CN101981888A (zh) 2011-02-23
CN101981888B true CN101981888B (zh) 2013-10-30

Family

ID=40900604

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200980110433XA Expired - Fee Related CN101981888B (zh) 2008-01-26 2009-01-26 用于ssl vpn免客户机访问的策略驱动的细粒度url编码机制

Country Status (4)

Country Link
US (2) US8646067B2 (zh)
EP (1) EP2241083B1 (zh)
CN (1) CN101981888B (zh)
WO (1) WO2009094655A1 (zh)

Families Citing this family (149)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6839759B2 (en) 1998-10-30 2005-01-04 Science Applications International Corp. Method for establishing secure communication link between computers of virtual private network without user entering any cryptographic information
ES2760905T3 (es) 1998-10-30 2020-05-18 Virnetx Inc Un protocolo de red agile para comunicaciones seguras con disponibilidad asegurada de sistema
US6502135B1 (en) 1998-10-30 2002-12-31 Science Applications International Corporation Agile network protocol for secure communications with assured system availability
US7418504B2 (en) 1998-10-30 2008-08-26 Virnetx, Inc. Agile network protocol for secure communications using secure domain names
US10511573B2 (en) 1998-10-30 2019-12-17 Virnetx, Inc. Agile network protocol for secure communications using secure domain names
US7343413B2 (en) 2000-03-21 2008-03-11 F5 Networks, Inc. Method and system for optimizing a network by independently scaling control segments and data flow
US8274909B2 (en) * 2009-03-26 2012-09-25 Limelight Networks, Inc. Conditional protocol control
US7840996B1 (en) * 2006-08-03 2010-11-23 Juniper Networks, Inc. Remote directory browsing through a secure gateway of a virtual private network
US8028072B2 (en) * 2008-03-03 2011-09-27 International Business Machines Corporation Method, apparatus and computer program product implementing session-specific URLs and resources
CN102597993B (zh) * 2009-09-25 2014-03-12 国际商业机器公司 利用统一资源标识符管理应用状态信息
US9262544B2 (en) * 2009-09-29 2016-02-16 Sap Se Translating between address representations
US10721269B1 (en) 2009-11-06 2020-07-21 F5 Networks, Inc. Methods and system for returning requests with javascript for clients before passing a request to a server
US20110131408A1 (en) * 2009-12-01 2011-06-02 International Business Machines Corporation Document link security
US9055064B2 (en) 2009-12-28 2015-06-09 Citrix Systems, Inc. Systems and methods for a VPN ICA proxy on a multi-core system
US8990610B2 (en) * 2010-03-12 2015-03-24 International Business Machines Corporation Preferred resource selector
US10015286B1 (en) 2010-06-23 2018-07-03 F5 Networks, Inc. System and method for proxying HTTP single sign on across network domains
US8347100B1 (en) 2010-07-14 2013-01-01 F5 Networks, Inc. Methods for DNSSEC proxying and deployment amelioration and systems thereof
US8626853B2 (en) * 2010-07-28 2014-01-07 Unwired Planet, Llc Method and system for link-triggered link-translating proxying
US20120124372A1 (en) * 2010-10-13 2012-05-17 Akamai Technologies, Inc. Protecting Websites and Website Users By Obscuring URLs
US9554276B2 (en) 2010-10-29 2017-01-24 F5 Networks, Inc. System and method for on the fly protocol conversion in obtaining policy enforcement information
US8699499B2 (en) * 2010-12-08 2014-04-15 At&T Intellectual Property I, L.P. Methods and apparatus to provision cloud computing network elements
ES2630014T3 (es) * 2011-01-20 2017-08-17 Nec Corporation Sistema de comunicación, dispositivo de control, dispositivo de gestión de políticas, método de comunicación, y programa
US10135831B2 (en) 2011-01-28 2018-11-20 F5 Networks, Inc. System and method for combining an access control system with a traffic management system
CN102801574B (zh) * 2011-05-27 2016-08-31 阿里巴巴集团控股有限公司 一种网页链接的检测方法、装置和系统
KR101889761B1 (ko) * 2011-06-09 2018-09-21 삼성전자주식회사 컨텐츠 이름 기반의 네트워크 장치 및 컨텐츠 보호 방법
CN103139185A (zh) * 2011-12-02 2013-06-05 中科信息安全共性技术国家工程研究中心有限公司 一种实现安全反向代理服务的方法
US9270766B2 (en) 2011-12-30 2016-02-23 F5 Networks, Inc. Methods for identifying network traffic characteristics to correlate and manage one or more subsequent flows and devices thereof
CN102594557A (zh) * 2012-01-10 2012-07-18 深圳市汉普电子技术开发有限公司 对url加密的方法及装置、url验证的方法及装置
US10230566B1 (en) 2012-02-17 2019-03-12 F5 Networks, Inc. Methods for dynamically constructing a service principal name and devices thereof
US9231879B1 (en) 2012-02-20 2016-01-05 F5 Networks, Inc. Methods for policy-based network traffic queue management and devices thereof
US10097616B2 (en) 2012-04-27 2018-10-09 F5 Networks, Inc. Methods for optimizing service of content requests and devices thereof
US9032506B2 (en) * 2012-08-09 2015-05-12 Cisco Technology, Inc. Multiple application containerization in a single container
US9166979B2 (en) * 2012-10-01 2015-10-20 International Business Machines Corporation Protecting online meeting access using secure personal universal resource locators
US10375155B1 (en) 2013-02-19 2019-08-06 F5 Networks, Inc. System and method for achieving hardware acceleration for asymmetric flow connections
US20140283038A1 (en) 2013-03-15 2014-09-18 Shape Security Inc. Safe Intelligent Content Modification
US9338143B2 (en) 2013-03-15 2016-05-10 Shape Security, Inc. Stateless web content anti-automation
US9225737B2 (en) 2013-03-15 2015-12-29 Shape Security, Inc. Detecting the introduction of alien content
US8869281B2 (en) 2013-03-15 2014-10-21 Shape Security, Inc. Protecting against the introduction of alien content
US8739243B1 (en) 2013-04-18 2014-05-27 Phantom Technologies, Inc. Selectively performing man in the middle decryption
US9021575B2 (en) 2013-05-08 2015-04-28 Iboss, Inc. Selectively performing man in the middle decryption
US9160718B2 (en) 2013-05-23 2015-10-13 Iboss, Inc. Selectively performing man in the middle decryption
US9009461B2 (en) 2013-08-14 2015-04-14 Iboss, Inc. Selectively performing man in the middle decryption
US9633210B2 (en) 2013-09-13 2017-04-25 Microsoft Technology Licensing, Llc Keying infrastructure
GB201317538D0 (en) * 2013-10-03 2013-11-20 Gage Networks Llp A telecommunication system
US10187317B1 (en) 2013-11-15 2019-01-22 F5 Networks, Inc. Methods for traffic rate control and devices thereof
US9270647B2 (en) 2013-12-06 2016-02-23 Shape Security, Inc. Client/server security by an intermediary rendering modified in-memory objects
US8954583B1 (en) 2014-01-20 2015-02-10 Shape Security, Inc. Intercepting and supervising calls to transformed operations and objects
US9225729B1 (en) 2014-01-21 2015-12-29 Shape Security, Inc. Blind hash compression
US8893294B1 (en) 2014-01-21 2014-11-18 Shape Security, Inc. Flexible caching
US9489526B1 (en) 2014-01-21 2016-11-08 Shape Security, Inc. Pre-analyzing served content
US10284677B2 (en) * 2014-01-31 2019-05-07 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for obtaining content from a media server
US10474729B2 (en) 2014-03-12 2019-11-12 Instart Logic, Inc. Delayed encoding of resource identifiers
US11314834B2 (en) 2014-03-12 2022-04-26 Akamai Technologies, Inc. Delayed encoding of resource identifiers
US10148735B1 (en) 2014-03-12 2018-12-04 Instart Logic, Inc. Application layer load balancer
US11134063B2 (en) * 2014-03-12 2021-09-28 Akamai Technologies, Inc. Preserving special characters in an encoded identifier
US11341206B2 (en) * 2014-03-12 2022-05-24 Akamai Technologies, Inc. Intercepting not directly interceptable program object property
US10747787B2 (en) 2014-03-12 2020-08-18 Akamai Technologies, Inc. Web cookie virtualization
US9544329B2 (en) 2014-03-18 2017-01-10 Shape Security, Inc. Client/server security by an intermediary executing instructions received from a server and rendering client application instructions
US9854001B1 (en) * 2014-03-25 2017-12-26 Amazon Technologies, Inc. Transparent policies
US9680872B1 (en) 2014-03-25 2017-06-13 Amazon Technologies, Inc. Trusted-code generated requests
US9130996B1 (en) 2014-03-26 2015-09-08 Iboss, Inc. Network notifications
US9477836B1 (en) 2014-04-23 2016-10-25 Shape Security, Inc. Content modification in served code
US9411958B2 (en) * 2014-05-23 2016-08-09 Shape Security, Inc. Polymorphic treatment of data entered at clients
US9858440B1 (en) * 2014-05-23 2018-01-02 Shape Security, Inc. Encoding of sensitive data
US9083739B1 (en) 2014-05-29 2015-07-14 Shape Security, Inc. Client/server authentication using dynamic credentials
US9210171B1 (en) 2014-05-29 2015-12-08 Shape Security, Inc. Selectively protecting valid links to pages of a web site
US10038712B2 (en) 2014-06-02 2018-07-31 Paypal, Inc. Method and apparatus for dynamic detection of geo-location obfuscation in client-server connections through an IP tunnel
US9405910B2 (en) 2014-06-02 2016-08-02 Shape Security, Inc. Automatic library detection
GB2526818B (en) * 2014-06-03 2021-01-13 Arm Ip Ltd Methods of accessing and providing access to a remote resource from a data processing device
US10015143B1 (en) 2014-06-05 2018-07-03 F5 Networks, Inc. Methods for securing one or more license entitlement grants and devices thereof
US10089216B2 (en) 2014-06-30 2018-10-02 Shape Security, Inc. Automatically determining whether a page of a web site is broken despite elements on the page that may change
US9075990B1 (en) 2014-07-01 2015-07-07 Shape Security, Inc. Reliable selection of security countermeasures
US11838851B1 (en) 2014-07-15 2023-12-05 F5, Inc. Methods for managing L7 traffic classification and devices thereof
CN104079583A (zh) * 2014-07-17 2014-10-01 南京铱迅信息技术有限公司 一种基于从服务器端到客户端字符转换的网站防护方法
US9003511B1 (en) 2014-07-22 2015-04-07 Shape Security, Inc. Polymorphic security policy action
US10122630B1 (en) 2014-08-15 2018-11-06 F5 Networks, Inc. Methods for network traffic presteering and devices thereof
CN105354451B (zh) * 2014-08-20 2020-10-16 腾讯科技(深圳)有限公司 访问鉴权的方法及系统
US9438625B1 (en) 2014-09-09 2016-09-06 Shape Security, Inc. Mitigating scripted attacks using dynamic polymorphism
US9602543B2 (en) 2014-09-09 2017-03-21 Shape Security, Inc. Client/server polymorphism using polymorphic hooks
US10097513B2 (en) * 2014-09-14 2018-10-09 Microsoft Technology Licensing, Llc Trusted execution environment extensible computing device interface
US10298599B1 (en) 2014-09-19 2019-05-21 Shape Security, Inc. Systems for detecting a headless browser executing on a client computer
US9954893B1 (en) 2014-09-23 2018-04-24 Shape Security, Inc. Techniques for combating man-in-the-browser attacks
US9112900B1 (en) 2014-09-30 2015-08-18 Shape Security, Inc. Distributed polymorphic transformation of served content
US9325734B1 (en) 2014-09-30 2016-04-26 Shape Security, Inc. Distributed polymorphic transformation of served content
US9800602B2 (en) 2014-09-30 2017-10-24 Shape Security, Inc. Automated hardening of web page content
US10225317B2 (en) * 2014-10-30 2019-03-05 Be-Bound Inc. Asynchronous application data access system and method
JP6507572B2 (ja) * 2014-10-31 2019-05-08 富士通株式会社 管理サーバの経路制御方法、および管理サーバ
US9398047B2 (en) 2014-11-17 2016-07-19 Vade Retro Technology, Inc. Methods and systems for phishing detection
US10182013B1 (en) 2014-12-01 2019-01-15 F5 Networks, Inc. Methods for managing progressive image delivery and devices thereof
WO2016118131A1 (en) * 2015-01-22 2016-07-28 Hewlett Packard Enterprise Development Lp Session key repository
US11895138B1 (en) 2015-02-02 2024-02-06 F5, Inc. Methods for improving web scanner accuracy and devices thereof
US9608975B2 (en) 2015-03-30 2017-03-28 Shape Security, Inc. Challenge-dynamic credential pairs for client/server request validation
US10834065B1 (en) 2015-03-31 2020-11-10 F5 Networks, Inc. Methods for SSL protected NTLM re-authentication and devices thereof
US11350254B1 (en) 2015-05-05 2022-05-31 F5, Inc. Methods for enforcing compliance policies and devices thereof
US10505818B1 (en) 2015-05-05 2019-12-10 F5 Networks. Inc. Methods for analyzing and load balancing based on server health and devices thereof
US9582666B1 (en) 2015-05-07 2017-02-28 Shape Security, Inc. Computer system for improved security of server computers interacting with client computers
US9813440B1 (en) 2015-05-15 2017-11-07 Shape Security, Inc. Polymorphic treatment of annotated content
US9986058B2 (en) 2015-05-21 2018-05-29 Shape Security, Inc. Security systems for mitigating attacks from a headless browser executing on a client computer
WO2017007705A1 (en) 2015-07-06 2017-01-12 Shape Security, Inc. Asymmetrical challenges for web security
US10230718B2 (en) 2015-07-07 2019-03-12 Shape Security, Inc. Split serving of computer code
CN105187397A (zh) * 2015-08-11 2015-12-23 北京思特奇信息技术股份有限公司 一种web系统页面集成防盗链方法及系统
US10122718B2 (en) 2015-08-21 2018-11-06 Arm Ip Limited Data access and ownership management
US9807113B2 (en) 2015-08-31 2017-10-31 Shape Security, Inc. Polymorphic obfuscation of executable code
US20170093917A1 (en) * 2015-09-30 2017-03-30 Fortinet, Inc. Centralized management and enforcement of online behavioral tracking policies
US10212130B1 (en) 2015-11-16 2019-02-19 Shape Security, Inc. Browser extension firewall
US11757946B1 (en) 2015-12-22 2023-09-12 F5, Inc. Methods for analyzing network traffic and enforcing network policies and devices thereof
US10404698B1 (en) 2016-01-15 2019-09-03 F5 Networks, Inc. Methods for adaptive organization of web application access points in webtops and devices thereof
US10797888B1 (en) 2016-01-20 2020-10-06 F5 Networks, Inc. Methods for secured SCEP enrollment for client devices and devices thereof
US11178150B1 (en) 2016-01-20 2021-11-16 F5 Networks, Inc. Methods for enforcing access control list based on managed application and devices thereof
US9917850B2 (en) 2016-03-03 2018-03-13 Shape Security, Inc. Deterministic reproduction of client/server computer state or output sent to one or more client computers
US10567363B1 (en) 2016-03-03 2020-02-18 Shape Security, Inc. Deterministic reproduction of system state using seeded pseudo-random number generators
WO2017156158A1 (en) 2016-03-09 2017-09-14 Shape Security, Inc. Applying bytecode obfuscation techniques to programs written in an interpreted language
US10129289B1 (en) 2016-03-11 2018-11-13 Shape Security, Inc. Mitigating attacks on server computers by enforcing platform policies on client computers
CA3017936A1 (en) 2016-03-15 2017-09-21 Carbon Black, Inc. System and method for reverse command shell detection
EP3430783B1 (en) 2016-03-15 2022-03-30 Carbon Black, Inc. Multi-host threat tracking
EP3430560B1 (en) * 2016-03-15 2021-06-02 Carbon Black, Inc. Using private threat intelligence in public cloud
EP3430556B1 (en) 2016-03-15 2021-01-20 Carbon Black, Inc. System and method for process hollowing detection
US10142366B2 (en) 2016-03-15 2018-11-27 Vade Secure, Inc. Methods, systems and devices to mitigate the effects of side effect URLs in legitimate and phishing electronic messages
CN105871827A (zh) * 2016-03-28 2016-08-17 乐视控股(北京)有限公司 防盗链方法及系统
US9680801B1 (en) 2016-05-03 2017-06-13 Iboss, Inc. Selectively altering references within encrypted pages using man in the middle
US10484336B2 (en) * 2016-05-13 2019-11-19 Citrix Systems, Inc. Systems and methods for a unique mechanism of providing ‘clientless SSLVPN’ access to a variety of web-applications through a SSLVPN gateway
US10791088B1 (en) 2016-06-17 2020-09-29 F5 Networks, Inc. Methods for disaggregating subscribers via DHCP address translation and devices thereof
US10277701B2 (en) * 2016-07-08 2019-04-30 Facebook, Inc. Methods and Systems for Rewriting Scripts to Direct Requests
US10505792B1 (en) 2016-11-02 2019-12-10 F5 Networks, Inc. Methods for facilitating network traffic analytics and devices thereof
US20180131525A1 (en) * 2016-11-07 2018-05-10 International Business Machines Corporation Establishing a secure connection across secured environments
CN108075888B (zh) * 2016-11-15 2021-01-26 北京京东尚科信息技术有限公司 动态url生成方法及装置、存储介质、电子设备
US11349816B2 (en) 2016-12-02 2022-05-31 F5, Inc. Obfuscating source code sent, from a server computer, to a browser on a client computer
US10601777B2 (en) * 2017-02-17 2020-03-24 Corrata Limited Data inspection system and method
US10812266B1 (en) 2017-03-17 2020-10-20 F5 Networks, Inc. Methods for managing security tokens based on security violations and devices thereof
US10972453B1 (en) 2017-05-03 2021-04-06 F5 Networks, Inc. Methods for token refreshment based on single sign-on (SSO) for federated identity environments and devices thereof
US11122042B1 (en) 2017-05-12 2021-09-14 F5 Networks, Inc. Methods for dynamically managing user access control and devices thereof
US11343237B1 (en) 2017-05-12 2022-05-24 F5, Inc. Methods for managing a federated identity environment using security and access control data and devices thereof
US11070513B2 (en) * 2017-06-26 2021-07-20 Zedly, Inc. DNS-based method of transmitting data
US11122083B1 (en) 2017-09-08 2021-09-14 F5 Networks, Inc. Methods for managing network connections based on DNS data and network policies and devices thereof
US10530746B2 (en) 2017-10-17 2020-01-07 Servicenow, Inc. Deployment of a custom address to a remotely managed computational instance
US10972434B2 (en) * 2018-06-19 2021-04-06 Cisco Technology, Inc. Proxy-based clientless VPN with web browser proxy auto-configuration (PAC) file and extension
US10831836B2 (en) * 2018-07-26 2020-11-10 Palo Alto Networks, Inc. Browser storage for clientless VPN
US11093574B2 (en) 2018-07-26 2021-08-17 Palo Alto Networks, Inc. Encoding-free javascript stringify for clientless VPN
US10951588B2 (en) 2018-07-26 2021-03-16 Palo Alto Networks, Inc. Object property getter and setter for clientless VPN
US10924468B2 (en) * 2018-07-27 2021-02-16 Citrix Systems, Inc. Remote desktop protocol proxy with single sign-on and enforcement support
US10742712B2 (en) 2018-10-30 2020-08-11 Citrix Systems, Inc. Web adaptation and hooking for virtual private integration systems and methods
US11741197B1 (en) 2019-10-15 2023-08-29 Shape Security, Inc. Obfuscating programs using different instruction set architectures
US11356423B2 (en) * 2020-01-14 2022-06-07 Cisco Technology, Inc. Managing encrypted server-name-indication (ESNI) at proxy devices
CN111901218A (zh) * 2020-06-23 2020-11-06 北京天融信网络安全技术有限公司 报文传输方法、sslvpn代理服务器、电子设备以及存储介质
CN112260991B (zh) * 2020-09-16 2023-08-22 厦门网宿有限公司 一种鉴权管理方法和装置
US11223652B1 (en) * 2021-01-27 2022-01-11 BlackCloak, Inc. Deception system
US11956219B2 (en) * 2021-06-24 2024-04-09 Citrix Systems, Inc. Systems and methods to detect and prevent bots from random access by randomized HTTP URLs in real time in distributed systems
US20230015697A1 (en) * 2021-07-13 2023-01-19 Citrix Systems, Inc. Application programming interface (api) authorization
US20230012787A1 (en) * 2021-07-19 2023-01-19 Citrix Systems, Inc. Accessing internal network resources using application custom tab

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6694431B1 (en) * 1999-10-12 2004-02-17 International Business Machines Corporation Piggy-backed key exchange protocol for providing secure, low-overhead browser connections when a server will not use a message encoding scheme proposed by a client
US7340499B1 (en) * 1999-12-03 2008-03-04 Sun Microsystems, Inc. Dynamic embedding of literal object data in supplied instance of information object
US7610400B2 (en) * 2004-11-23 2009-10-27 Juniper Networks, Inc. Rule-based networking device
US8151323B2 (en) * 2006-04-12 2012-04-03 Citrix Systems, Inc. Systems and methods for providing levels of access and action control via an SSL VPN appliance
KR100940525B1 (ko) * 2007-11-21 2010-02-10 한국전자통신연구원 소켓 레벨 가상 사설망 통신 장치 및 방법

Also Published As

Publication number Publication date
US8646067B2 (en) 2014-02-04
EP2241083A1 (en) 2010-10-20
US9009813B2 (en) 2015-04-14
EP2241083B1 (en) 2018-12-05
US20090193513A1 (en) 2009-07-30
US20140157358A1 (en) 2014-06-05
WO2009094655A1 (en) 2009-07-30
CN101981888A (zh) 2011-02-23

Similar Documents

Publication Publication Date Title
CN101981888B (zh) 用于ssl vpn免客户机访问的策略驱动的细粒度url编码机制
CN101981887B (zh) 用于配置和细粒度策略驱动web内容检测和重写的系统和方法
CN101984778B (zh) 用于细粒度策略驱动的cookie代理的系统和方法
CN102292961B (zh) 用于对由域名服务(dns)获得的ip地址进行转换的系统和方法
CN102292708B (zh) 用于策略的http调出的系统和方法
CN102292955B (zh) 用于负载平衡实时流传输协议的系统和方法
CN102577302B (zh) 用于在具有流量管理的连接中使用端点审计的系统和方法
CN102301338B (zh) 用于基于健康的溢出的系统和方法
CN102224722B (zh) 用于对象速率限制的系统和方法
CN102763368B (zh) 用于跨站点伪造保护的方法和系统
CN102292960B (zh) 用于基于ssl vpn用户进行全局服务器负载平衡的系统和方法
CN102246489B (zh) 对通过http的异步消息通信进行连接管理的系统和方法
CN102301677B (zh) 用于全局服务器负载平衡站点持续的系统和方法
CN101636998B (zh) 用于ssl/vpn业务的基于应用的拦截和授权的系统和方法
CN102549985B (zh) 用于为互联网协议加速设备提供多核结构的系统和方法
CN101632067B (zh) 用于终端用户体验监控的系统和方法
CN104054316A (zh) 用于通过网络中的字典压缩短文本的系统和方法
CN103560905A (zh) 用于配置、应用和管理网络装置的面向对象策略表达式的系统和方法
CN103384250A (zh) 用于ssl/vpn业务的基于应用的拦截和授权的系统和方法

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20131030

CF01 Termination of patent right due to non-payment of annual fee