经由流中间重新协商的代理ssl切换的制作方法

文档序号:7616977阅读:145来源:国知局
专利名称:经由流中间重新协商的代理ssl切换的制作方法
技术领域
本发明一般涉及网络通信,更具体地但非排他地,涉及管理客户端/服务器端到端加密连接内的重新协商(renegotiation)。
背景技术
企业内越来越多的应用被通过超文本传输协议(HTTP)而提供。这些应用中的许多应用提供在客户端设备和托管(hosted)网站之间的安全通信。这些应用包括企业内部网入口、网页邮件、前台应用、后台应用等。这些应用中的许多应用也可以通过虚拟专用网 (VPN)隧道被从分公司访问、或者通过公共互联网被直接访问,等等。这些应用例如可在总公司内的服务器设备上获得。总公司和分公司包括在安全周界后方(例如在防火墙等之后)的受保护的计算设备的网络。一种提供客户端设备和服务器设备之间的安全通信的传统方法采用网络浏览器和网站来建立加密会话。加密会话可以使用各种安全通信协议来实现,这些安全通信协议包括安全套接层(SSL)协议、传输层安全协议(TSL)协议等。管理这样的加密会话有时是困难的,特别是在服务器设备没有客户端设备所需要的信息、服务器设备故障、或服务器设备不同地需要被不同的服务器设备替换的情况中尤其如此。因此,正是针对这些考虑以及其它考虑,作出本发明。

发明内容
根据本发明一个实施例,提供一种流量管理设备,其被插入在客户端设备和多个服务器设备之间,所述流量管理设备包括收发信机,用于通过网络发送和接收数据;以及处理器,该处理器可操作来执行以下动作,所述动作包括获取与在该客户端设备和所述多个服务器设备中的第一服务器设备之间所建立的端到端加密会话相关联的会话密钥;通过该端到端加密会话的端到端加密连接向该客户端设备发送重新协商请求,以请求对该端到端加密连接的重新协商;截取由该客户端设备通过该端到端加密连接所发送的第二组握手消息,其中所述第二组握手消息被寻址到该第一服务器设备,并且其中所述第二组握手消息是响应于该重新协商请求被发送的;使用基于该会话密钥生成的一个或多个连接密钥来解密所截取的第二组握手消息;以及将解密的第二组握手消息重定向至所述多个服务器设备中所选择的第二服务器设备,使得所选择的第二服务器设备替换该第一服务器设备而作为该端到端加密连接的端点。在本发明一个实施例中,获取该会话密钥还包括接收与所选择的第二服务器设备相关联的私钥;使用与所选择的第二服务器设备相关联的私钥来从所述第二组握手消息中提取与该加密会话相关联的保密数据;以及部分地基于从所述第二组握手消息中提取的保密数据来生成与该加密会话相关联的第二会话密钥。在本发明一个实施例中,所述动作还包括截取由该客户端设备通过该端到端加密连接发送的消息,其中该消息被寻址到该第一服务器设备;并且将所截取的消息重定向至所选择的第二服务器设备。在本发明一个实施例中,所述动作还包括截取由该客户端设备通过该端到端加密连接发送的消息,其中该消息被寻址到该第一服务器设备;使用基于该第二会话密钥生成的一个或多个连接密钥来解密所截取的消息内的有效载荷;修改解密的有效载荷;使用基于该第二会话密钥生成的一个或多个连接密钥来加密修改后的有效载荷;以及将加密的修改后的有效载荷通过该端到端加密连接提供至所选择的第二服务器设备。在本发明一个实施例中,该第二服务器是基于通过以下步骤确定的标准来选择的,所述步骤包括使用从该会话密钥生成的一个或多个连接密钥来从所截取的应用协议层消息中提取头;以及确定该头中所请求的内容位于该第二服务器设备上。在本发明一个实施例中,该流量管理设备包括本地地位于所选择的第二服务器设备附近的服务器侧流量管理设备,其中客户端侧流量管理设备远离所选择的第二服务器设备并且被插入在该客户端设备和该服务器侧流量管理设备之间使得该端到端加密连接流经该客户端侧流量管理设备,其中该客户端侧流量管理设备执行以下动作,所述动作包括 从该服务器侧流量管理设备接收基于该第二会话密钥生成的一个或多个连接密钥;截取从该客户端设备通过该端到端加密连接发送至该第一服务器设备的加密数据;利用基于该第二会话密钥生成的一个或多个连接密钥来解密该加密数据;修改解密的数据;利用基于该第二会话密钥生成的一个或多个连接密钥来重新加密修改后的数据;以及向该第一服务器设备发送重新加密的修改后的数据,其中该服务器侧流量管理设备截取并解密该修改后的数据,并且将该修改后的数据重定向至所选择的第二服务器设备。在本发明一个实施例中,该流量管理设备使得当该端到端加密会话被建立时,该客户端流量管理设备使用边界网关协议BGP将其自身插入在该客户端设备和该第一服务器设备之间。根据本发明另一实施例,还提供一种系统,包括多个服务器设备以及与所述多个服务器设备通信的流量管理设备,该流量管理设备本地地位于所述多个服务器设备附近,其中该流量管理设备通过网络与客户端设备通信,并且其中该流量管理设备被配置来执行以下动作,所述动作包括获取与在该客户端设备和所述多个服务器设备中的第一服务器设备之间所建立的端到端加密会话相关联的会话密钥;通过该端到端加密会话的端到端加密连接向该客户端设备发送重新协商请求,以请求对该端到端加密连接的重新协商; 截取由该客户端设备通过该端到端加密连接所发送的第二组握手消息,其中所述第二组握手消息被寻址到该第一服务器设备,并且其中所述第二组握手消息是响应于该重新协商请求被发送的;使用基于该会话密钥生成的一个或多个连接密钥来解密所截取的第二组握手消息;以及将解密的第二组握手消息重定向至所述多个服务器设备中所选择的第二服务器设备,使得所选择的第二服务器设备替换该第一服务器设备而作为该端到端加密连接的端点O在本发明一个实施例中,所述动作还包括接收与所选择的第二服务器设备相关联的私钥;使用与所选择的第二服务器设备相关联的私钥来从所述第二组握手消息中提取与该加密会话相关联的保密数据;以及部分地基于从所述第二组握手消息中提取的保密数据来生成与该加密会话相关联的第二会话密钥。在本发明一个实施例中,获取会话密钥还包括截取由该客户端设备通过该端到
7端加密连接发送的消息,其中该消息被寻址到该第一服务器设备;并且将所截取的消息重定向至所选择的第二服务器设备。在本发明一个实施例中,所述动作还包括截取由该客户端设备通过该端到端加密连接发送的消息,其中该消息被寻址到该第一服务器设备;使用基于该第二会话密钥生成的一个或多个连接密钥来解密所截取的消息内的有效载荷;修改解密的有效载荷;使用基于该第二会话密钥生成的一个或多个连接密钥来加密修改后的有效载荷;以及将加密的修改后的有效载荷通过该端到端加密连接提供至所选择的第二服务器设备。在本发明一个实施例中,该第二服务器是基于通过以下步骤确定的标准来选择的,所述步骤包括使用基于该会话密钥生成的一个或多个连接密钥来从所截取的应用层协议消息中提取头;以及确定该头中所请求的内容位于该第二服务器设备上。在本发明一个实施例中,该流量管理设备本地地位于所选择的第二服务器设备附近,并且其中客户端侧流量管理设备远离所选择的第二服务器设备并且被插入在该客户端设备和该流量管理设备之间,使得该端到端加密连接流经该客户端侧流量管理设备,其中该客户端侧流量管理设备执行以下动作,所述动作包括从该流量管理设备接收基于该第二会话密钥生成的一个或多个连接密钥;截取从该客户端设备通过该端到端加密连接发送给该所选择的第二服务器设备的加密数据;利用基于该第二会话密钥生成的一个或多个连接密钥来解密该加密数据;扩增解密的数据;利用该第二会话密钥重新加密修改后的数据;以及向该第一服务器设备发送重新加密的修改后的数据,其中该流量管理设备截取并解密该修改后的数据,并且将该修改后的数据重定向至所选择的第二服务器设备。在本发明一个实施例中,该系统使得当该端到端加密会话被建立时,该客户端流量管理设备使用边界网关协议BGP将其自身插入在该客户端设备和该第一服务器设备之间。在本发明一个实施例中,所述握手消息至少包括由所述客户端设备生成并利用与该服务器设备相关联的公钥加密的随机数。在本发明一个实施例中,该流量管理设备还执行以下动作,所述动作包括从该客户端设备接收内容请求,其中该内容请求被寻址到所选择的第二服务器设备;以及在不将该内容请求发送给所选择的第二服务器设备的情况下对该内容请求进行响应。根据本发明另一实施例,还提供一种存储处理器可读指令的处理可读存储介质, 所述处理器可读指令当被处理器执行时执行以下动作,所述动作包括获取与在该客户端设备和所述多个服务器设备中的第一服务器设备之间所建立的端到端加密会话相关联的会话密钥;通过该端到端加密会话的端到端加密连接向该客户端设备发送重新协商请求, 以请求对该端到端加密连接的重新协商;截取由该客户端设备通过该端到端加密连接所发送的第二组握手消息,其中所述第二组握手消息被寻址到该第一服务器设备,并且其中所述第二组握手消息是响应于该重新协商请求被发送的;使用基于该会话密钥生成的一个或多个连接密钥来解密所截取的第二组握手消息;以及将解密的第二组握手消息重定向至所述多个服务器设备中所选择的第二服务器设备,使得所选择的第二服务器设备替换该第一服务器设备而作为该端到端加密连接的端点。在本发明一个实施例中,获取该会话密钥还包括接收与所选择的第二服务器设备相关联的私钥;使用与所选择的第二服务器设备相关联的私钥来从所述第二组握手消息
8中提取与该加密会话相关联的保密数据;以及部分地基于从所述第二组握手消息中提取的保密数据来生成与该加密会话相关联的第二会话密钥。在本发明一个实施例中,该处理器本地地位于所选择的第二服务器设备附近,并且其中客户端侧流量管理设备远离所选择的第二服务器设备并且被插入在该客户端设备和该处理器之间使得该端到端加密连接流经该客户端侧流量管理设备,该客户端侧流量管理设备执行以下动作,所述动作包括从该处理器接收基于该第二会话密钥生成的一个或多个连接密钥;截取从该客户端设备通过该端到端加密连接发送给该第一服务器设备的加密数据;利用基于该第二会话密钥生成的一个或多个连接密钥来解密该加密数据;修改解密的数据;利用基于该第二会话密钥生成的一个或多个连接密钥来重新加密修改后的数据;以及向该第一服务器设备发送重新加密的修改后的数据,其中该处理器截取并解密该修改后的数据,并且将该修改后的数据重定向至所选择的第二服务器设备。在本发明一个实施例中,该处理器可读存储介质使得当该端到端加密会话被建立时,该客户端流量管理设备使用边界网关协议BGP将其自身插入在该客户端设备和该第一服务器设备之间。


参考以下附图来描述非限制性和非穷尽性实施例。在附图中,除非另外指明,否则,相似的标号表示各个示图中相似的部分。为了更好地理解所描述的实施例,将参考以下供结合附图阅读的具体实施方式
, 附图中图1图示出示出用于实行各个实施例的环境的功能框图;图2图示出可被包括在实现多个实施例的系统中的网络设备的一个实施例;图3图示出可被包括在实现多个实施例的系统中的服务器设备的一个实施例;图4图示出一般地示出用于替换端到端加密连接中的端点的过程的概览的一个实施例的逻辑流程图;图5图示出一般地示出用于生成与端到端加密会话相关联的会话密钥的过程的一个实施例的逻辑流程图;图6图示出一般地示出用于用第二服务器设备替换端到端加密连接中的端点的过程的一个实施例的逻辑流程图;图7图示出一般地示出用于增强通过加密连接在客户端侧TMD和服务器侧TMD之间发送的数据的过程的一个实施例的逻辑流程图;图8图示出一般可与图4的过程一起使用的信号流程图的一个实施例;以及图9图示出示出用于利用边界网关协议(BGP)来将流量路由至用于加密会话的客户端侧流量管理设备的环境的功能框图。
具体实施例方式在以下对示例性实施例的详细描述中,参考附图,附图形成此详细描述的一部分并通过图解的方式示出可以用来实行所描述的实施例的示例。提供了充分的细节来使得本领域技术人员能够实行所描述的实施例,并且应当理解,在不偏离本精神和范围的情况下,可以利用其它实施例,并且可以进行其它更改。此外,对“一个实施例”的提及不必涉及同一或单一实施例,尽管其可以如此。因此,以下详细描述不应以限制性意义理解,并且所描述的实施例的范围仅由所附权利要求限定。贯穿本说明书和权利要求书,除非上下文清楚地另外指明,否则,以下术语采用这里明确关联的含义。除非上下文清楚地另外指明,否则,这里使用的术语“或”是包含性的 “or”运算符,并且等于术语“和/或”。除非上下文清楚地另外指明,否则,术语“基于”不是排他性的并且允许是基于未描述的另外的因素的。另外,贯穿本说明书,“一个(a)”、“一个 (an)”和“该(the)”的含义包括复数指代。“在……中(in) ”的含义包括“在……中(in),, 和“在……上(on)”。这里所使用的应用层是指由ISO-OSI (国际标准化组织-开放式系统互联)架构所定义的7层协议栈的层5到层7。术语“网络连接”是指使得计算设备能够通过网络与另一计算设备通信的链路和/ 或软件元件的集合。一个这样的网络连接可以是TCP连接。TCP连接是两个网络节点之间的虚拟连接,并且通常是通过TCP握手协议而建立的。在可从互联网工程任务组(IETF)获得并通过引用被全部结合于此的请求注解(RFC) 793中详细描述了 TCP协议。“通过(over) ” 指定路径或链路的网络连接是指采用指定路径或链路来建立和/或维护通信的网络连接。 术语“节点”是指通常互连一个或多个设备或甚至网络的网络元件。在这里使用包括也在权利要求中使用的术语“SSL”是指SSL、TLS、DTLS以及从中导出的所有安全通信协议。SSL协议被记载在Netscape Communications Corp, Secure Socket Layer (SSL) version 3 (November 1996)(网景通信公司的安全套接层(SSL)版本 3 (1996年11月))中,并且TLS协议是从SSL导出的并被记载在可从IETF获得的Dierks, Τ. ,and Allen,C. ,"The TLS Protocol Version 1. 0, "RFC 2246 (January 1999) (Dierks, T和Allen,C. “TLS协议版本1. 0”,RFC 2M6 (1996年1月))中。数据报传输层安全 (DTLS)协议基于TLS协议,并且被记载在可从IETF获得的Rescorla, E.,and Modadugu, N. , "Datagram Transport Layer Security,,,RFC 4347 (April 2006) (Rescorla, E.禾口 Modadugu,N.,“数据报传输层安全”,RFC 4347 (2006年4月))中。这些文件中的每个文件都通过引用被全部结合于此。SSL连接是被从SSL协议导出的加密信息所保护的网络连接。 SSL协议在应用层(诸如OSI层5-7的一层或多层)和传输层(诸如OSI层4)之间操作。 SSL协议可以为应用层协议提供安全性,应用层协议例如是超文本传输协议(HTTP)、轻量级目录访问协议(LDAP)、互联网消息访问协议(IMAP)等。例如,通过SSL的HTTP (HTTPS) 利用SSL协议来保护HTTP数据。SSL协议可以代表应用层协议来利用TCP/IP传送安全数据。SSL协议也可以采用证书。在一个实施例中,证书是X. 509证书,例如可从IETF获得的 RFC 2459中记载的那些。在这里使用也在权利要求书中使用的术语“服务器设备”是指物理服务器设备或在物理服务器设备上执行的虚拟服务器。SSL会话通过两个端点之间的网络来建立安全连接。一个SSL会话可以与0个或更多个SSL连接相关联。SSL协议使用SSL握手协议来开始SSL会话和/或SSL连接。SSL 会话与主密钥相关联,主密钥是SSL握手协议的一个结果。SSL握手协议也包括用于重新协商SSL连接的SSL重新握手协议。重新协商的SSL连接可以与当前SSL会话相关联或与另一 SSL会话相关联。简要而言,SSL支持至少 4 种内容类型application_data、alert、handshake 和 change_cipher_spec。alert、handshake 禾口 change_cipher_spec 内容类型与用于管理 SSL 协议的消息相关联。例如,SSL alert是警告内容类型并且用于以信号通知错误状况等。 SSL规定其它内容类型,但是这些能力通常不被使用。SSL握手协议包括一系列消息的交换和处理,这些消息可以是alert、handshake 和/或change_cipher_spec内容类型之一。一个或多个SSL握手消息被封装在handshake 内容类型的一个或多个网络记录中。SSL握手消息还包括相关联的SSL handshake类型和一个或多个数据字段。SSL握手协议通常以客户端设备在CLIENT-HELLO消息(例如,具有相关联的 “CLIENT-HELLO”的SSL握手类型的SSL握手消息)中向服务器设备发送随机生成的数据等而开始。服务器设备在SERVER-HELLO消息中以随机生成的数据等对CLIENT-HELLO消息进行响应。另外,服务器可以提供服务器证书,客户端可以用服务器证书来认证服务器。另外,服务器可以请求或要求客户端证书,服务器可以用客户端证书来认证客户端。客户端设备使用在CLIENT-HELLO消息和SERVER-HELLO消息中所交换的随机生成的数据,来为SSL会话生成预备主密码(pre-master secret) 0在一个实施例中,客户端设备也可以在此预备主密码中包括另一随机数,即通常还没有被通过公共网络无负担地 (in the clear)发送的随机数。然后客户端设备在SSL握手消息中将预备主密码发送给服务器设备。在一个实施例中,预备主密码可以是被使用与服务器相关联的(从服务器的 SERVER-HELLO消息中获得的)公钥而加密的。通常,包括预备主密码的SSL握手消息是 CLIENT-KEY-EXCHANGE握手消息。客户端设备和服务器设备中的每一个分别地执行一系列步骤来使用预备主密码生成主密码。此主密码与SSL会话相关联。然后,分别地,客户端设备和服务器设备中的每一个使用主密码来生成连接密钥,连接密钥可以包括但不限于用来加密和解密通过相关联的SSL连接传送的数据的加密密钥(cipher key)和/或用来认证通过相关联的SSL连接接收的消息的认证密钥。客户端设备和服务器设备随后可以使用它们各自的(一个或多个)连接密钥的实例来生成包含加密的有效载荷的消息并相互发送。在这里使用也在权利要求书中使用的术语“加密会话”是指两个端点设备之间的0 个或更多个加密连接。示例的加密会话连接包括SSL、TLS和DTLS会话。这里使用的术语 “加密连接”是指受加密信息保护的任意网络连接,例如SSL、TLS和DTLS连接,但是也可以类似地构想到其它加密连接。加密连接包括用来加密和解密通过加密连接传送的数据的加密密钥以及对底层传输协议接口(例如,TCP接口)的引用。这里使用的短语“加密会话/连接”是指加密会话和加密连接中的任一者。这里使用的短语“端到端加密会话/连接”是指两个端点设备之间的会话/连接, 其中两个端点设备在建立加密会话/连接时都知道另一端点设备的身份。这里使用的短语“终结(terminate)加密会话”是指是加密会话的两个端点之一。 类似地,短语“终结加密连接”是指是加密连接的两个端点之一。加密会话/连接的端点是加密数据可在其间传送的设备,通常称为客户端设备和服务器设备。客户端设备和服务器设备的示例可以是SSL客户端和SSL服务器。这里使用的短语“加密会话/连接客户端”是指客户端设备,并且短语“加密会话/连接服务器”是指服务器设备。
这里使用的短语“建立加密会话”是指参与加密会话握手协议。短语“建立加密连接”是指基于加密会话的会话密钥(也称为加密会话的主密钥)生成加密会话内的加密连接。在一个实施例中,两个设备建立加密会话/连接,变成此加密会话/连接的端点。另外的设备也可以可选地,要么与端点之一或两个端点协力,要么在不知道一个端点或这两个端点的情况下,参与建立加密会话/连接。加密会话握手协议的一个示例是SSL握手协议。这里使用的短语“带外”(out-of-band)是指在当前加密会话/连接的外面发送数据,例如通过与在客户端设备和服务器设备之间所建立的端到端加密会话/连接不同的连接来发送数据。这里使用的短语“保密数据,,是指使能两个设备之间的加密会话握手的数据。保密数据例如包括以上提及的在RFC 2264中有记载的主密钥和预备主密码。这里使用的术语“有效载荷”是指分组中所包括的与分组的分组头不同的数据。贯穿本公开,当诸如“CLIENT-HELLO”之类的具体消息类型被列出时,可以理解,这些是用来说明消息类型的示例。这些具体的消息仅仅是一个实施例,并且可以类似地构想到用来建立和/或维护加密会话/连接的其它类似的消息。简要描述了一种用于重新建立加密连接的机制,其使得已经在客户端设备和第一服务器设备处终结的加密连接被终结于该客户端设备和第二服务器设备处。本领域技术人员将了解,诸如SSL会话之类的加密会话,以及加密会话内所包含的任意加密连接,被设计为在会话/连接期间保护每个端点的身份。因此,所公开的使得所建立的加密连接的端点被替换的实施例一直是意想不到的。如上所述,流量管理设备(TMD)被插入在客户端设备和第一服务器设备之间。在客户端设备和第一服务器设备之间的端到端加密会话/连接的建立期间,插入的TMD访问有关加密会话/连接的保密信息。这样的信息例如包括预备主密码,预备主密码可用来确定用于加密和解密跨越端到端加密会话内的加密连接而传送的数据的连接密钥。通过访问用于端到端加密会话/连接的保密信息,TMD能够读取、截取、扩增、删除、延迟、剪除、压缩、 增强、加速、调换或以其他方式修改通过加密连接发送的数据。在某些实施例中,TMD可以向客户端设备发送重新协商端到端加密连接的请求。重新协商请求例如可以包括SSL HELLO REQUEST消息。从客户端设备的角度看,看起来就像是第一服务器设备已经要求客户端设备重新协商现有的加密连接一样——客户端设备通常不知道TMD开始重新协商。响应于重新协商请求,客户端设备可以通过加密连接发送寻址到第一服务器设备的CLIENT-HELLO消息。在一个实施例中,TMD可以截取CLIENT-HELLO 消息,对其解密、并将其重定向(redirect)至第二服务器设备。由客户端设备发送的随后的消息可以被类似地重定向至第二服务器设备。结果,从客户端设备的角度看,原来的加密连接已经利用第二服务器设备被重新建立。从第一服务器设备的角度看,其与客户端设备的加密连接已结束。从TMD的角度看,客户端设备和第一服务器设备之间的现有加密连接已被此客户端设备与第二服务器设备之间的新的加密连接所替换。在一个实施例中,客户端设备不知道其与不同的服务器共用加密连接。另外地或者可替换地,如果一个或多个客户端证书或服务器证书包括在加密会话握手消息中,或与加密会话握手消息包括在一起, 则这些证书可被客户端和服务器用来认证彼此的身份,从而保持如果TMD还未被插入在客户端和服务器之间则将存在的信任关系。
在一个实施例中,上述TMD是服务器侧TMD,并且服务器侧TMD可以与客户端侧 TMD协力使用来增强或以其他方式修改在一个或多个客户端设备和一个或多个服务器设备之间发送的数据。在一个实施例中,客户端侧TMD可以不被直接地插入在客户端设备和服务器设备之间,这使得难以进行一些最优化。在该实施例中,客户端侧TMD可以利用边界网关协议(BGP)来使得互联网路由器将寻址到此服务器设备的流量路由经过客户端侧TMD。 以这种方式,使客户端侧TMD能够变得被插入在客户端设备和服务器设备之间从而增强或以其他方式修改在客户端设备和服务器设备之间被转送的数据。在一个实施例中,TMD可以通过基于HTTP请求类型、一天中的时间、访问策略信息或其它标准来在多个服务器设备之间切换加密连接的服务器侧端点来代理(proxy)客户端设备与这多个服务器设备之间的一个或多个加密连接。在一个实施例中,TMD可以位于地理上邻近客户端设备的位置,而在另一实施例中,TMD可以位于地理上邻近服务器设备的位置。另外地或可替换地,TMD可以类似地基于HTTP请求类型、一天中的时间、访问策略信息或其它标准来代理服务器设备与多个客户端设备之间的连接。说明件操作环境图1示出可以实行所描述的实施例的说明性环境100。并不需要全部组件来实行所描述的实施例,并且在不偏离所描述的实施例的精神或范围的情况下,可以对这些组件的布置和类型进行变化。图1图示出客户端设备102-104、客户端侧流量管理设备 (TMD) 106、分公司107、网络108、服务器侧流量管理设备110、通过网络108的端到端加密会话(A)、安全隧道(B)、私钥111 (1)至111 (η)、服务器设备112至114,认证服务器设备115、 保密数据116、第三方内容提供商118和总公司120。服务器设备112-114(服务器设备113 未被示出)和认证服务器设备115在这里被统称为服务器设备112-115。一般,客户端设备102-104可以包括几乎任何能够连接到另一计算设备并接收信息的计算设备。客户端设备102-104可以位于分公司107内,但是可替换地,客户端设备 102-104可以位于分公司107外面。这样的设备可以包括个人计算机、多处理器系统、基于微型处理器的或可编程消费电子设备、网络设备等。客户端设备102-104也可以包括便携式设备,例如蜂窝电话、智能手机、显示传呼机、射频(RF)设备、红外(IR)设备、个人数字助理(PDA)、手持式计算机、可佩带计算机、平板计算机、组合前述设备中的一个或多个的集成设备等。这样,客户端设备102-104在能力和特征方面范围很广。客户端设备102-104还可以包括被配置来管理各种动作的一个或多个客户端应用。此外,客户端设备102-104也可以包括被配置来使得端用户能够通过网络108与其它设备和应用交互的网络浏览器应用。网络108被配置来将诸如客户端设备102-104、TMD 106和110、认证服务器设备 112-114、认证服务器设备115和第三方内容提供商118之类的使能网络的设备与其它使能网络的设备相耦接。在一个实施例中,客户端设备102可以通过客户端侧TMD 106、网络108 和服务器侧TMD 110来与服务器设备112通信。另外地或可替换地,客户端设备102、客户端侧TMD 106、服务器侧TMD 110和服务器设备112可以全被直接连接到网络108。在一个实施例中,网络108可以使能客户端设备102-104与服务器设备112-115之间的加密会话, 诸如端到端加密会话(A)。网络108被使得能够采用任意形式的计算机可读介质以用于将信息从一个电子设备传送至另一电子设备。在一个实施例中,网络108可以包括互联网,并且可以包括局域网(LAN)、广域网(WAN)、例如通过通用串行总线(USB)端口的直接连接、其它形式的计算机可读介质,或者它们的任意组合。在包括基于不同体系架构和协议的LAN的互连LAN集合上,路由器可以充当LAN之间的链路来使得消息能够从一个LAN发送至另一个LAN。此夕卜, LAN内的通信链路通常包括光纤、双绞线、同轴线缆,而网络之间的通信链路可以利用模拟电话线路、包括T1、T2、T3和Τ4的完全或部分专用数字线路、综合业务数字网络(ISDN)、数字订户线路(DSL)、包括卫星链路的无线链路或本领域技术人员已知的其它通信链路。网络108还可以采用多种无线接入技术,包括但不限于用于蜂窝系统、无线-LAN、 无线路由器(WR)网格等的第二代(2G)、第三代(3G)、第四代0G)无线电接入。诸如2G、 3G、4G之类的接入技术以及将来的接入网络可以以不同的移动性程度使能对诸如客户端设备102-104等的大面积覆盖。例如,网络108可以通过无线电网络接入使能无线电连接,无线电接入网络例如是全球移动通信系统(GSM)、通用分组无线业务(GPRS)、增强型数据GSM 环境(EDGE)、宽带码分多址(WCDMA)等。此外,远程计算机和其它有关的电子设备可以经由调制解调器和临时电话线路、 DSL调制解调器、线缆调制解调器、光纤调制解调器、802. Il(Wi-Fi)接收机等被远程地连接到LAN或WAN。实质上,网络108包括可用来在一个网络设备和另一网络设备之间传送信息的任意通信方法。通过网络108的安全隧道(B)包括用于在网络设备之间传送信息的任意隧道。通常,安全隧道(B)是被加密的。这里使用的“隧道”或“隧道连接”是在开放式系统互联(OSI) 网络栈的相同或更低层协议上封装网络分组或帧的网络机制。隧道传送可被用来取得来自一个网络系统的分组或帧并将它们放置(例如,封装)于来自另一网络系统的帧内。隧道传送协议的示例包括但不限于IP隧道传送、层2隧道传送协议(L2TP)、层2转发(L2F)、VPN、 IP SECurity(IPSec)、点对点隧道传送协议(PPTP)、GRE、MBone和SSL/TLS。如图所示,安全隧道(B)被创建用于客户端侧TMD 106和服务器侧TMD 110之间通过网络108的安全连接。以下结合图2更详细地描述可用作客户端侧TMD 106或服务器侧TMD 110的网络设备的一个实施例。然而,简要而言,客户端侧TMD 106和服务器侧TMD 110每一个都包括几乎任何管理网络流量的网络设备。这样的服务例如包括路由器、代理、防火墙、负载平衡器、缓存设备、应用加速器、执行网络地址转换的设备、以及之前的设备的任意组合,等等。 这样的设备可以单独以硬件实现或以硬件和软件实现。例如,这样的设备可以包括耦合到一个或多个微处理器的一些专用集成电路(ASIC)。ASIC可以用来提供高速交换光纤,同时微处理器可以执行高层的分组处理。在一个实施例中,服务器侧TMD 110通常位于总公司120内,并且这样被认为是物理上安全的并且在中央管理员的直接管理之下。相应地,服务器侧TMD 110也可以称为可信(trusted) TMD。服务器侧TMD 110例如可以控制数据分组被递送至诸如服务器设备 112-115之类的服务器设备阵列或被从其转发的流程。在一个实施例中,在服务器侧TMD 110和服务器设备112-115之间发送的消息可以是安全信道的一部分,安全信道例如是在客户端设备102-104之一和服务器设备112-115之一之间形成的端到端加密会话(A)。在另一实施例中,服务器侧TMD 110可以代表服务器设备终结加密连接,并且采用另一种类型的加密,例如IPkc,来将分组递送到服务器设备或从其转发分组。可替换地,当服务器侧TMD 110代表服务器设备终结加密连接时,递送分组至服务器设备或从其转发分组可以被无加密地(或“无负担地”)执行。在一个实施例中,客户端侧TMD 106通常驻留在物理上在中央管理员的控制之外的分公司107中,因此可能遭受物理篡改。相应地,客户端侧TMD 106可以称为不可信TMD。 在一个实施例中,客户端侧TMD 106可以将来自源的数据向目的地转发。例如,客户端侧 TMD 106可以转发客户端设备102-104之一和服务器设备112-115之一之间的一个或多个加密会话握手消息。可替换地,客户端侧TMD可以驻留在总公司120中。可替换地,客户端侧TMD可以和服务器侧TMD —起被包括在单个设备中,使得单个设备能够基于通过TMD发送数据的设备的类型和位置来提供客户端侧TMD和服务器侧TMD两者的服务。可替换地或另外地,TMD可以充当用于单个连接的客户端侧TMD和服务器侧TMD两者。例如,TMD可以通过将请求路由到在另一公司的服务器侧的TMD而充当客户端侧TMD。然而,服务器侧TMD 可以将请求重新路由到在地理上邻近“客户端侧”TMD的服务器设备。在该情况中,“客户端侧”TMD会将客户端设备连接到本地服务器设备。当将客户端设备连接到本地服务器设备时,开始作为“客户端侧” TMD的TMD可以执行“服务器侧” TMD的角色。如以下更详细地描述的,客户端侧TMD 106通常可以从服务器侧TMD 110接收保密数据116,保密数据116使得其能够对在客户端设备102-104之一和服务器设备112-115 之一之间发送的加密连接消息执行不同的附加动作。例如,客户端侧TMD 106可被使得能够读取、截取、扩增、删除、延迟、剪除、压缩、增强、调换或以其他方式修改加密连接消息中的数据。在一个实施例中,服务器设备私钥111可被集中在总公司120、联邦信息处理标准 (FIPS)边界等内。服务器侧TMD 110可被使得能够通过各种机制访问私钥111等。服务器设备112-115可以包括能够将分组传送至另一网络设备的任意计算设备。 每个分组可以传递一条信息。分组可以被发送以用于握手,例如以便建立连接或以便确认数据的接收。分组可以包括诸如请求、响应等的信息。一般,被服务器设备112-115所接收到的分组将被根据TCP/IP格式化,但是它们也可以使用另一协议被格式化,所述协议例如是SCTP、X. 25、NetBEUI、IPX/SPX、令牌环、类似的IPv4/6协议等。此外,分组可以采用HTTP、 HTTPS等在服务器设备112-115、服务器侧TMD 110和客户端设备102-104之一之间传送。在一个实施例中,服务器设备112-115被配置来用作网站服务器。然而,服务器设备112-115不限于网络服务器设备,并且也可以操作消息传送服务器、文件传输协议(FTP) 服务器、数据库服务器、内容服务器等。另外,服务器设备112-115的每一个可以被配置来执行不同的操作。因此,例如,服务器设备112可被配置为消息传送服务器,而服务器设备 114可被配置为数据库服务器。此外,尽管服务器设备112-115可以用作网站以外的设备, 但是它们还能够被使得能够接收HTTP通信。可用作服务器设备112-115的设备包括个人计算机、台式计算机、多处理器系统、 基于微型处理器的或可编程的消费电子设备、网络PC、服务器设备等。如上所述,保密数据116通常包括预备主密码和/或主密码。在一个实施例中,客户端设备和服务器设备可以在它们各自的HELLO消息中交换立即数(nonce)(使用一次的数)以用于在生成会话密钥(也称为主密钥)中使用。另外地或可替换地,保密数据116可以包括被客户端设备生成并被客户端设备使用服务器设备的公钥数字加密的另一立即数 (与HELLO消息中所包含的立即数不同)。在一个实施例中,保密数据116被客户端设备、 服务器侧TMD 110和服务器设备中的一者或几者用来生成会话密钥。第三方内容提供商118可以可选地用来提供将被服务器侧TMD 110或客户端侧 TMD 106插入到加密连接中的内容,例如广告。然而,第三方内容不限于此,并且可以另外还包括由附属商业合作方、协作的IT部门等提供的内容。还应当注意,诸如客户端和服务器之类的术语可以是指设备内的功能。这样,几乎任何设备可以被配置来用作客户端、服务器或甚至包括客户端和服务器两者的功能。此外, 在采用两个或多个对等方的情况中,它们中的任一个可以被指定为客户端或服务器,并且被配置为遵循本发明的教导。说明件网络设备环境图2示出根据本发明一个实施例的网络设备的一个实施例。网络设备200可以包括比所显示的组件多得多或少得多的组件。然而,所示出的组件已经足以公开用于实行本发明的说明性实施例。网络设备200例如可以表示图1的服务器侧TMD 110和/或客户端侧 TMD 106。网络设备200包括处理单元212、视频显示适配器214和大容量存储器,它们全部经由总线222相互通信。大容量存储器一般包括RAM 216、ROM 232以及一个或多个永久大容量存储设备,例如硬盘驱动器228、磁带驱动器、⑶-R0M/DVD-R0M驱动器2 和/或柔性盘驱动器。大容量存储器存储用于控制网络设备200的操作的操作系统220。网络设备 200还包括加密会话管理器252、边界网关协议(BGP)模块256和其它应用258。如图2中所示,网络设备200还经由网络接口单元210与互联网或一些其它通信网络通信,网络接口单元210被构建用于与包括TCP/IP协议的各种通信协议一起使用。网络接口单元210有时称为收发信机,收发设备或网络接口卡(OTC)。如上所述的大容量存储器图示出另一种计算机可读介质,即计算机存储介质。计算机存储介质可以包括在用于信息存储的任意方法和技术中实现的易失性的、非易失性的、可移除的和不可移除的介质,所述信息例如是计算机可读指令、数据结构、程序模块或其它数据。计算机存储介质的示例包括RAM、ROM、EEPR0M、闪存或其它存储技术、CD-ROM、数字通用盘(DVD)或其它光学存储装置、盒式磁带、磁带、磁盘存储装置或其它磁存储设备, 或可用来存储希望的信息并且可被计算设备访问的任意其它物理介质。大容量存储器还存储程序代码和数据。一个或多个应用258被装载到大容量存储器中并且在操作系统220上运行。应用程序的示例可以包括电子邮件程序、路由选择程序、 调度器、日程器、数据库程序、文字处理程序、HTTP程序、流量管理程序、安全程序等。网络设备200还可以包括虚拟地支持包括TLS、TTLS、EAP、SSL、IPSec等的任意连接的应用。这样的应用可以包括例如加密会话管理器252和BGP协议模块256。在一个实施例中,加密会话管理器252可以执行加密会话处理,包括管理加密会话握手、管理密钥、证书、认证、授权等。此外,在一个实施例中,加密会话管理器252可以建立加密会话和/或连接,终结加密会话和/或连接,将自己建立为加密会话和/或连接的中间人,等等。此外,在一个实施例中,加密会话管理器252可以为了将加密会话的服务器端点替换为另一服务器端点的目的而开始加密连接重新协商。
16
另外,网络设备200可以包括支持诸如VPN、PPP、L2TP等的各种隧道传送机制的应用。网络设备200也可以包括用于与外部设备通信的输入/输出接口 224,外部设备例如是图2中未示出的鼠标、键盘、扫描仪或其它输入设备。通用,网络设备200还可以包括另外的大容量存储设施,例如⑶-R0M/DVD-R0M驱动器2 和硬盘驱动器228。硬盘驱动器 2 可以被利用来存储应用程序、数据库、证书、公钥或私钥、保密数据等。在一个实施例中,网络设备200包括至少一个耦接到总线222的专用集成电路 (ASIC)芯片(未示出)。ASIC芯片可以包括执行网络设备200的某些动作的逻辑。例如, 在一个实施例中,ASIC芯片可以执行用于进入的和/或外出的分组的许多分组处理功能。 在一个实施例中,ASIC芯片可以执行此逻辑的至少一部分来使能加密会话管理器252和/ 或BGP模块256的操作。 在一个实施例中,网络设备200除了包括ASIC芯片以外,或者替代ASIC芯片,还可以包括一个或多个现场可编程门阵列(FPGA)(未示出)。网络设备的许多功能可通过 ASIC芯片、FPGA、CPU利用存储器中所存储的指令来执行,或者通过ASIC芯片、FPGA、CPU的任意组合来执行。在一个实施例中,诸如客户端设备102的一些客户端设备可以不通过LAN或其它直接连接被连接到客户端侧TMD 106。例如,客户端设备102可以不位于具有客户端侧TMD 的分公司中。另外地或可替换地,客户端设备102可以是移动设备。当客户端设备未被直接连接到客户端侧TMD时,客户端设备可以建立加密会话或以其他方式发送数据给服务器 112-115之一,而客户端侧TMD不截取和处理数据。然而,客户端侧TMD截取并增强这样的通信常常是有益的。为此目的,在一个实施例中,边界网关协议(BGP) 256可以使得从一个或多个客户端设备源发的网络流量能够被路由经过客户端侧TMD 106。在一个实施例中,BGP模块256 通过向互联网上的路由器广播BGP协议消息来确保该路由选择,该消息指示客户端侧TMD 106知道用于寻址到服务器设备112-115的数据的最佳路由。结果,已经接收到此BGP协议消息的路由器通常会将寻址到服务器设备112-115之一的网络流量路由经过客户端侧 TMD 106。结果,未被直接耦接到客户端侧TMD的客户端设备可以将它们的到服务器设备 112-115的连接(包括加密会话)路由经过客户端侧TMD 106。以这种方式,客户端侧TMD 106被使得能够执行提高网络效率的各种动作,例如压缩、加速或以其他方式修改数据。说明件服各器设备环境图3示出根据本发明一个实施例的服务器设备的一个实施例。服务器设备300可以包括比所示出的组件多得多的组件。然而,所示出的组件足以公开用于实行本发明的说明性实施例。服务器设备300例如可以表示图1的服务器112-115和认证服务器115。服务器设备300包括处理单元312、视频显示适配器314和大容量存储器,它们全部经由总线322彼此通信。大容量存储器一般包括RAM 316,ROM 332以及一个或多个永久大容量存储设备,例如硬盘驱动器328、磁带驱动器、⑶-R0M/DVD-R0M驱动器3 和/或柔性盘驱动器。大容量存储器存储用于控制服务器设备300的操作的操作系统320。可以采用任意通用操作系统。基本输入/输出(“BIOS”)318也被提供用于控制服务器设备300 的低级操作。如图3中所示,服务器设备300可以经由网络接口单元310与互联网或一些其它通信网络通信,网络接口单元310被构建用于与包括TCP/IP协议的各种通信协议一起使用。网络接口单元310有时称为收发信机,收发设备或网络接口卡(NIC)。如上所述的大容量存储器图示出另一种计算机可读介质,即计算机存储介质。计算机存储介质可以包括在用于信息存储的任意方法和技术中实现的易失性的、非易失性的、可移除的和不可移除的介质,所述信息例如是计算机可读指令、数据结构、程序模块或其它数据。计算机存储介质的示例包括RAM、ROM、EEPR0M、闪存或其它存储技术、CD-ROM、数字通用盘(DVD)或其它光学存储装置、盒式磁带、磁带、磁盘存储装置或其它磁存储设备, 或可用来存储希望的信息并且可被计算设备访问的任意其它物理介质。一个或多个应用350可被装载到大容量存储器中并在操作系统320上运行。应用程序的示例可以包括代码转换器、调度表、日程器、数据库程序、文字处理程序、HTTP程序、 可定制用户接口程序、IPSec应用、加密程序、安全程序、VPN程序、网络服务器、账户管理等等。应用350可以包括加密会话模块360。加密会话模块360可以建立与其它网络设备的加密会话和/或连接,所述其它网络设备包括以上所讨论的任意网络设备。在一个实施例中,加密会话模块360可以与图1的TMD 110或TMD 106协同工作。另外地或可替换地,加密会话模块360可以独立于任意TMD来与其它网络设备通信。应用360也可以包括被配置来通过网络向另一计算设备提供包括消息在内的内容的各种网络服务。这些网络服务例如包括网络服务器、消息传送服务器、文件传输协议 (FTP)服务器、数据库服务器、内容服务器等。这些网络服务可以使用多种格式中的任一种格式通过网络来提供包括消息在内的内容,所述多种格式包括但不限于WAP、HDML、WML, SMGL、HTML、XML、cHTML、xHTML 等。一般化操作现在将参考图4-8来描述某些方面的操作。图4-7提供图示出某些方面的逻辑流程图,而图8提供信号流程图。图4图示出一般地示出用于替换端到端加密连接中的端点的过程的一个实施例的逻辑流程图。在一个实施例中,过程400可以被服务器侧TMD 110 实现。在开始框之后,过程400开始于框402,由被插入在客户端设备和第一服务器设备之间的服务器侧TMD开始。在一个实施例中,服务器侧TMD确定与在客户端设备和第一服务器设备之间的端到端加密会话相关联的会话密钥。以下结合图5更详细地描述会话密钥的确定。在框404处,服务器侧TMD检测用来替换作为与端到端加密会话相关联的端到端连接中的端点的第一服务器设备的标准。在一个实施例中,该检测标准可以包括检测被客户端设备所请求的数据的类型。另外地或可替换地,这些标准可以包括周期性的调度、服务设备的系统升级、管理员的请求等。在框406处,服务器侧TMD用第二服务器设备替换作为此加密连接中的端点的第一服务器设备。在一个实施例中,服务器侧TMD利用对加密连接的重新协商来将第二服务器设备建立为端点。以下结合图6来更详细地描述用第二服务器设备替换服务器设备。在框408处,服务器侧TMD可以读取、截取、扩增、删除、延迟、剪除、压缩、增强、加速、调换或以其他方式修改通过加密连接发送的数据。在一个实施例中,服务器侧TMD可以与客户端侧TMD协力工作来进一步增强通过加密连接发送的数据。以下结合图7来更详细地描述对通过加密连接发送的数据的增强。该处理随后终结于返回框。图5图示出一般地示出用于生成与端到端加密会话相关联的会话密钥的过程的一个实施例的逻辑流程图。在一个实施例中,过程500可以被服务器侧TMD实现。在开始框之后,过程500在框502处,通过接收与第一服务器设备相关联的私钥而开始。在一个实施例中,第一服务器设备可以包括图1中所图示出的服务器设备112-115 之一。在一个实施例中,第一服务器设备的私钥可以由系统管理员提供。另外地或可替换地,私钥可以由本地域控制器、LDAP服务器或第二网络设备自身提供。在框504处,与加密会话相关联的第一组握手消息被截取。在一个实施例中,加密会话的创建可由客户端设备(例如,客户端设备102-104之一)开始。在一个实施例中,第一组握手消息包括由客户端设备向第一服务器设备发送的“CLIENT-HELLO”消息。在被截取并被存储之后,“CLIENT-HELLO”消息可进而被转发至第一服务器。在一个实施例中,通过存储所截取的诸如“CLIENT-HELLO”消息之类的握手消息,服务器侧TMD被使得能够在对应的加密会话的生命周期期间中的任意时刻执行在此描述的动作。响应于“CLIENT-HELLO”,第一服务器设备可以发送“SERVER-HELLO”消息,使得客户端设备能够识别第一服务器设备的“SERVER CERTIFICATE”消息、包括第一服务器设备的公钥的“SERVICE KEY EXCHANGE”消息、请求客户端发送其使得服务器设备能够识别此客户端设备的证书的“CERTIFICATE REQUEST”消息,以及“ SERVICE HELLO DONE”消息,所有这些消息都被截取并被存储在第一组握手消息中并进而被转发到客户端设备。响应于“SERVICE HELLO DONE”消息,在一个实施例中,客户端设备可以发送 "CLIENT KEY EXCHANGE”消息,其包括被客户端设备生成并利用第一服务器设备的公钥加密的随机数(例如立即数)。在一个实施例中,“CLIENT KEY EXCHANGE”消息可被截取、 被存储在第一组握手消息中,并进而被转发至第一服务器设备。另外地或可替换地,第一组握手消息可以包括在建立加密会话的同时在客户端设备和第一服务器设备之间交换的任意另外的消息,例如包含使得服务器设备能够识别客户端设备的客户端设备证书的 “CERTIFICATE”消息。在一个实施例中,在完成握手消息的该交换之后,客户端设备和第一服务器设备已建立端到端加密会话。接下来处理进行到框506,其中保密数据被从所截取的第一组握手消息提取出。在一个实施例中,接收到的第一服务器设备的私钥可被用来通过对“CLIENT KEY EXCHANGE” 的有效载荷进行解密来提取保密数据,其包括被客户端设备生成并被利用第一服务器设备的公钥加密的随机数。另外地或可替换地,服务器侧TMD提取“预备主密码”。接着,处理进行到框508,其中在一个实施例中,解密的随机数被与在客户端设备和第一服务器设备之间交换的一个或多个其它随机数组合使用来生成会话密钥。在一个实施例中,会话密钥可以是“主密钥”。在一个实施例中,会话密钥被与在加密会话握手期间所交换的一个或多个随机数组合来生成连接密钥。连接密钥可被用来加密和解密通过加密连接发送的数据。在一个实施例中,客户端设备和第一服务器设备还基于所交换的握手消息来独立地计算会话密钥。在一个实施例中,客户端设备和第一服务器设备也独立地计算连接密钥。 在一些实施例中,服务器侧TMD可以基于所截取的握手消息中的信息来计算会话密钥。可替换地,不是独立地计算会话密钥,而是服务器侧TMD可以从第一服务器、客户端、另一网络设备或系统管理员中的一者接收会话密钥和/或(一个或多个)连接密钥。不论连接密钥被如何生成或获得,连接密钥都使得在客户端设备和第一服务器设备之间发送的加密数据能够被解密。在一个实施例中,服务器侧TMD可以使用连接密钥解密数据,并且随后可以扩增、删除、增强或以其他方式修改加密数据。在一个实施例中,服务侧TMD可以使用连接密钥来重新加密修改后的数据,并将将修改后的数据发送给客户端设备和第一服务器设备中的另一个。该过程随后终结于返回框。图6图示出一般地示出用第二服务器设备替换端到端加密连接中的端点的过程的一个实施例的逻辑流程图。在一个实施例中,过程600可以由服务器侧TMD 110实现。过程600在开始框之后,在框602处开始,其中在一个实施例中,服务器侧TMD将重新协商请求通过端到端加密连接发送至客户端设备。在一个实施例中,服务器侧TMD响应于提取出被客户端设备或者第一服务器设备所发送的HTTP头而发送重新协商请求消息,并且确定HTTP头包括对位于第二服务器设备上的内容的请求。服务器侧TMD 110可以基于网络流量、网络拓扑、服务器设备的容量、所请求的内容以及大量其它流量分发机制来将对资源的请求定向至特定服务器设备。此外,服务器侧TMD 110可以识别作为同一通信、 流(flow)和/或传输流(stream)的一部分的分组,并且可以对这样的分组执行特殊处理, 例如将它们定向至相同服务器设备。在一个实施例中,服务器侧TMD通过产生“SSL HELLO REQUEST”并将其通过端到端加密连接发送至客户端设备来请求或以其他方式开始重新协商。在一个实施例中,服务器侧TMD利用利用加密连接重新协商来用一个或多个第二服务器设备替换第一服务器设备, 作为端到端加密连接的端点。如以上所讨论的,在一个实施例中,客户端(或服务器)设备可以不知道不同的服务器(或客户端)设备已经变成端点。以这种方式,服务器侧TMD的功能对于此服务器(或客户端)设备可以是透明的。接下来处理继续到框604,其中服务器侧TMD截取响应于“SSL HELLO REQUEST”而发送的第二组握手消息。在一个实施例中,第二组握手消息被使用连接密钥加密并被客户端设备通过端到端加密连接而发送。在一个实施例中,第二组握手消息被寻址到第一服务器设备。接着处理继续到框606,其中服务器侧TMD使用连接密钥解密第二组握手消息。接着处理继续到框608,其中服务器侧TMD将解密后的第二组握手消息重定向至第二服务器设备,从而使得第二服务器设备能够变成端到端加密连接中的端点。在一个实施例中,通过将第二组握手消息定向至第二服务器设备,被客户端设备通过端到端加密连接做出的请求可以被服务器侧TMD重新分发给多于一个的服务器设备。在一个实施例中, 已在服务器侧TMD和第一服务器设备之间建立的现有连接被服务器侧TMD设法终结。可替换地,在服务器侧TMD和第一服务器设备之间的现有连接可以被缓存、汇集或以其他方式维护以备将来使用。另外地或者可替换地,不是将第二服务器设备建立为端点,而是,服务器侧TMD可以利用加密连接重新协商来使其自身作为加密连接的端点。在此实施例中,服务器侧TMD 可以充当加密连接加速器接收来自客户端设备的加密内容,解密接收到的内容,将解密的内容转发给服务器设备以供处理,并且加密服务器设备的响应。在这样的情形中,TMD可以无负担地与第一服务器设备通信或与第一服务器设备建立另一连接。在另一实施例中,服
20务器侧TMD本身可以生成加密内容,而不是转发来自另一服务器的内容,例如缓存的数据或生成的数据。在另一实施例中,客户端侧TMD可以类似地利用加密连接重新识别来使其自身作为加密连接的端点,充当加密连接加速器、生成诸如缓存数据之类的内容等。另外地或可替换地,服务器侧TMD可以忽略客户端设备和第一服务器设备之间的后续重新协商, 使得服务器侧TMD停止解密和修改通过端到端加密连接发送的内容。服务器侧TMD可以改为将通过重新协商的加密连接所发送的数据路由至第一服务器设备,就像经由任意其它网络连接一样。类似地,在其它实施例中,客户端侧TMD也可以利用加密连接重新协商来忽略后续重新协商,“离开”加密连接。另外地或可替换地,服务器侧TMD可以终结到客户端设备的加密连接以及到服务器设备的另一加密连接。服务器侧TMD可以将这一对加密连接转换成该客户端与该服务器设备之间的单个端到端加密连接。在一个实施例中,服务器侧TMD可以通过利用在客户端设备和服务器设备之间转发的加密连接重新协商和握手消息来执行这样的转换。在这样的实施例中,TMD随后可以对通过端到端加密连接所发送的数据执行这里所描述的任意操作。接着处理继续到框610,其中第二服务器设备的私钥被服务器侧TMD接收到。另外地或可替换地,服务器侧TMD可以在发送重新协商请求之前接收第二服务器设备的私钥。 在一个实施例中,服务器侧TMD以以上关于接收第一服务器设备的私钥所讨论的任意方式来接收第二服务器设备的私钥。接着处理继续到框612,其中第二服务器设备的私钥被用来从第二组握手消息中提取保密数据。在一个实施例中,服务器侧TMD以与以上关于框506讨论的从第一组握手消息中提取保密数据相似的方式,从第二组握手消息中提取保密数据。接着处理继续到框614,其中服务器侧TMD至少基于从第二组握手消息中提取的保密数据来生成第二会话密钥。在一个实施例中,以与以上关于框508所讨论的第一会话密钥的生成的类似方式生成第二会话密钥。在一个实施例中,所生成的第二会话密钥被用来创建第二组连接密钥、定义客户端设备和第二服务器设备之间的加密连接。接着处理继续到框616,其中通过重新协商的端到端加密会话的端到端加密连接所发送的消息被服务器侧TMD截取和处理。在一个实施例中,所截取的消息被客户端设备发送并被寻址到第一服务器设备,因为客户端设备可以不知道第二网络设备现在是重新协商的端到端加密会话的另一端点。另外地或可替换地,第二服务器设备可以发送被服务器侧TMD截取和处理的消息。在任一情况中,服务器侧TMD可以可选地与客户端侧TMD和/ 或第三方内容提供商118相协力来执行另外的处理以便扩增、删除、减除、延迟、加速或以其他方式修改所截取的消息。例如,广告或其它内容可以由第三方内容提供商118提供,其随后可被嵌入到在第二服务器设备和客户端设备之间发送的数据中。接着处理继续到框618,其中,在服务器侧TMD截取被客户端设备发送并被寻址到第一服务器设备的消息的实施例中,服务器侧TMD将所截取的消息重定向至第二服务器设备。该过程随后结束于返回框。在一个实施例中,图6中所图示的处理使得现有端到端加密连接能够被切换 (hand off)到新的服务器设备,同时从客户端设备的角度看,服务器的身份并未改变。在一个实施例中,重新协商发生在现有加密会话隧道内。图7图示出一般地示出用于增强在客户端侧TMD和服务器侧TMD之间通过加密连接发送的数据的过程的一个实施例的逻辑流程图。在一个实施例中,过程700可以由服务器侧TMD 110实现。过程700在开始框之后开始于框702,其中服务器侧TMD 110将第二组连接密钥发送至客户端侧TMD 106。在一个实施例中,第二组连接密钥可以通过端到端加密会话被发送。可替换地,第二组连接密钥可以通过单独的加密会话/连接(例如安全隧道(B))被发送。接着,处理继续到框704,其中在一个实施例中,客户端侧TMD 106截取从客户端设备通过端到端加密连接所发送的加密数据。在一个实施例中,通常当客户端设备不知道第二服务器设备现在是端到端加密连接的端点时,由客户端设备发送的加密数据可以被寻址到第一服务器设备。另外地或可替换地,当客户端设备知道第二服务器设备701现在是端到端加密连接的端点时,由客户端设备发送的加密数据可以被寻址到第二服务器设备 701。接着,处理继续到框706,其中在一个实施例中,客户端侧TMD 106使用接收到的第二组连接密钥来解密所截取的数据。接着,处理继续到框708,其中在一个实施例中,客户端侧TMD 106处理加密数据。 在一个实施例中,加密数据可被扩增、删除、加速或以其他方式修改。接着,处理继续到框710,其中在一个实施例中,客户端侧TMD使用第二组连接密钥重新加密处理后的数据并且将重新加密后的处理后的数据发送给第二服务器设备701。 在该实施例中,处理继续到框712处。另外地或可替换地,客户端侧TMD 106可以明确地与服务器侧TMD 110协力来在客户端设备和第二服务器设备170之间发送数据。在该情况中,客户端侧TMD 106可以使用单独的隧道,例如安全隧道(B),通过网络108将处理后的数据发送至服务器侧TMD 110。 在该实施例中,安全隧道(B)可以利用单独的除与端到端加密连接之外的加密连接。换而言之,客户端侧TMD 106可以使用单独一组连接密钥来与服务器侧TMD 110通信以便加密处理后的数据,或者完全使用另一种加密。在接收到通过安全隧道(B)发送的数据之后,服务器侧TMD 110通常解密并对解密的数据执行进一步的处理。例如,如果客户端侧TMD 106 压缩处理后的数据来减少传输时间,则服务器侧TMD 110通常将解压缩数据,并且可选地执行本公开中所讨论的另外的处理。然后,处理继续到框714。在一个实施例中,客户端侧TMD 106和服务器侧TMD 110可以利用两个级别的加密——用于在客户端设备和第二服务器设备701之间建立的端到端加密连接的加密,以及另外的被安全隧道(B)使用的加密。该实施例为通过诸如互联网之类的公共网络发送的数据提供两层安全性,增强所发送的数据的安全性。接着处理继续到框712,其中服务器侧TMD 110截取被客户端侧TMD 106发送的处理后的数据。在一个实施例中,服务器侧TMD 110使用第二组连接密钥来解密所截取的数据。在一个实施例中,服务器侧TMD 110对所截取和所解密的数据执行进一步的处理。在一个实施例中,服务器侧TMD 110扩增、删除、解压缩或以其他方式修改被截取并被解密的数据。接着处理继续到框714,其中,服务器侧TMD 110使用第二组连接密钥加密被进一步处理后的数据,并且将重新加密的数据发送给第二服务器设备701。在一个实施例中,不论数据是否被截取、被解密、被修改、被重新加密等,从客户端设备和第二服务器设备701 的角度来看,端到端加密连接(例如,图1中示出的安全会话(A)中所包含的连接)是原封不动的。接着处理继续到框716,其中第二服务器设备701接收、解密和处理被服务器侧 TMD 110发送的数据。该过程随后终结于返回框。图8图示出一般地示出图4至图6的过程的一个实施例的信号流程图。过程800开始于802,如以上关于框504所讨论的,客户端设备发送“ CLIENT HELLO”握手消息。处理继续到框804,其中还是如以上关于框504所讨论的,服务器侧TMD 110截取并转发握手消息。处理继续到806,其中如以上关于框504所讨论的,第一服务器接收“CLIENT HELLO”握手消息等。处理继续到808和812,其中如以上关于框504所讨论的,其它握手消息在客户端设备和第一服务器设备之间被交换。处理继续到810,其中如以上关于框508所讨论的,保密数据,例如被客户端设备生成并被客户端设备利用第一服务器设备的公钥加密的随机数,被服务器侧TMD 110使用第一服务器设备的公钥从其他握手消息中提取出。处理继续到813,其中诸如810中所生成的保密数据之类的保密数据被客户端侧 TMD 106接收到。在一个实施例中,此保密数据可被用来生成连接密钥。另外地或可替换地,连接密钥可被客户端侧TMD 106接收到。在一个实施例中,保密数据和连接密钥中的任一者可被服务器侧TMD 110发送给客户端侧TMD 106。一旦客户端侧TMD 106已经接收到或生成了连接密钥,则客户端侧TMD 106被使得能够在加密数据被通过连接而发送时,截取和增强加密数据。处理继续到814,其中如以上关于框602所讨论的,重新协商请求被服务器侧TMD 110发送给客户端设备。处理继续到816和820,其中如以上关于框412所讨论的,响应于接收到重新协商
请求,客户端设备开始交换第二组握手消息。处理继续到618,其中如以上关于框604和606所讨论的,服务器侧TMD 110截取、
解密第二组握手消息并将其重定向至第二服务器。处理继续到822,其中如以上关于图7所讨论的,服务器侧TMD 110将第二组连接密钥发送至客户端侧TMD 106。处理继续到拟4和826,其中作为所请求的重新协商的结果,一开始在客户端设备和第一服务器设备之间建立的端到端连接已经改变,导致在客户端设备和第二服务器设备之间重新建立加密连接。用于基于边界网关协i义(BGP)Γ播的g各由洗择的i兑日射牛t藥作环Jt图9示出边界网关协议(BGP)可被用来将来自客户端设备902、904和906的流量定向为经过客户端侧流量管理设备910的说明性环境900。在一个实施例中,客户端设备 902、904和906在地理上位于远程区域901中,客户端设备902、904和906通常不通过客户端侧TMD连接到互联网。结果,客户端设备902、904和906将通常分别通过路由器912.、 914和916来发送数据,路由器912.、914和916通过网络920与总公司903直接通信。此连接被图示为路由器912和网络920之间的虚线。然而,常常希望将来自客户端设备902、904和906中的一个或全部的流量定向为经过单个客户端侧流量管理设备,例如客户端侧TMD 910。例如,为远程区域901中的每个分公司提供客户端侧TMD可能是没什么成本效益的,但是为远程区域901中的一些或全部分公司提供单个客户端侧TMD将是有成本效益的。在某些实施例中,客户端侧TMD 910可以被认为是如图9中所示的远程TMD,因为其可能远离总公司903。在一个实施例中,客户端侧TMD可被配置为使用BGP协议来广播消息。在一个实施例中,客户端侧TMD 910可以广播一 BGP协议消息,该消息指示其知道到总公司903的最佳路由。这样,在此BGP消息传播到路由器912.、914和916之后,这些路由器将客户端设备902、904和906的请求路由通过网络908而到达客户端侧TMD 910。一旦被客户端侧TMD 910接收到,客户端设备和服务器设备之间的通信可以如以上关于图7所讨论的那样被优化。将理解,示图以及类似流程图的图解中的步骤的组合可以用计算机程序指令实现。这些程序指令可被提供给处理器以便产生一机器,使得在处理器上执行的指令创建用于实现一个或多个流程框中所指定的动作。计算机程序指令可以被处理器执行来使得一系列操作步骤被处理器执行来产生计算机实现的过程,使得在处理器上执行的指令提供用于实现一个或多个流程框中所指定的动作的步骤。这些程序指令可被存储在计算机可读介质或机器可读介质上,例如计算机可读存储介质。相应地,图解支持用于执行指定动作的装置的组合、用于执行指定动作的步骤的组合以及用于执行指定动作的程序指令装置。将理解,流程图中的每个框,以及流程图中的框的组合可用模块实现,所述模块例如是执行指定动作或步骤的基于专用硬件的系统,或者专用硬件和计算机指令的组合。以上说明、示例和数据提供对所述实施例的构成的制造和使用的完整描述。由于在不偏离本发明的精神和范围的情况下可以做出许多实施例,因此这些实施例在所附权利要求以内。
2权利要求
1.一种流量管理设备,其被插入在客户端设备和多个服务器设备之间,所述流量管理设备包括收发信机,用于通过网络发送和接收数据;以及处理器,该处理器可操作来执行以下动作,所述动作包括获取与在该客户端设备和所述多个服务器设备中的第一服务器设备之间所建立的端到端加密会话相关联的会话密钥;通过该端到端加密会话的端到端加密连接向该客户端设备发送重新协商请求,以请求对该端到端加密连接的重新协商;截取由该客户端设备通过该端到端加密连接所发送的第二组握手消息,其中所述第二组握手消息被寻址到该第一服务器设备,并且其中所述第二组握手消息是响应于该重新协商请求被发送的;使用基于该会话密钥生成的一个或多个连接密钥来解密所截取的第二组握手消息;以及将解密的第二组握手消息重定向至所述多个服务器设备中所选择的第二服务器设备, 使得所选择的第二服务器设备替换该第一服务器设备而作为该端到端加密连接的端点。
2.根据权利要求1所述的流量管理设备,其中获取该会话密钥还包括 接收与所选择的第二服务器设备相关联的私钥;使用与所选择的第二服务器设备相关联的私钥来从所述第二组握手消息中提取与该加密会话相关联的保密数据;以及部分地基于从所述第二组握手消息中提取的保密数据来生成与该加密会话相关联的第二会话密钥。
3.根据权利要求1所述的流量管理设备,所述动作还包括截取由该客户端设备通过该端到端加密连接发送的消息,其中该消息被寻址到该第一服务器设备;并且将所截取的消息重定向至所选择的第二服务器设备。
4.根据权利要求1所述的流量管理设备,所述动作还包括截取由该客户端设备通过该端到端加密连接发送的消息,其中该消息被寻址到该第一服务器设备;使用基于该第二会话密钥生成的一个或多个连接密钥来解密所截取的消息内的有效载荷;修改解密的有效载荷;使用基于该第二会话密钥生成的一个或多个连接密钥来加密修改后的有效载荷;以及将加密的修改后的有效载荷通过该端到端加密连接提供至所选择的第二服务器设备。
5.根据权利要求1所述的流量管理设备,其中该第二服务器是基于通过以下步骤确定的标准来选择的,所述步骤包括使用从该会话密钥生成的一个或多个连接密钥来从所截取的应用协议层消息中提取头;以及确定该头中所请求的内容位于该第二服务器设备上。
6.根据权利要求1所述的流量管理设备,其中该流量管理设备包括本地地位于所选择的第二服务器设备附近的服务器侧流量管理设备,其中客户端侧流量管理设备远离所选择的第二服务器设备并且被插入在该客户端设备和该服务器侧流量管理设备之间使得该端到端加密连接流经该客户端侧流量管理设备,其中该客户端侧流量管理设备执行以下动作,所述动作包括从该服务器侧流量管理设备接收基于该第二会话密钥生成的一个或多个连接密钥; 截取从该客户端设备通过该端到端加密连接发送至该第一服务器设备的加密数据; 利用基于该第二会话密钥生成的一个或多个连接密钥来解密该加密数据; 修改解密的数据;利用基于该第二会话密钥生成的一个或多个连接密钥来重新加密修改后的数据;以及向该第一服务器设备发送重新加密的修改后的数据,其中该服务器侧流量管理设备截取并解密该修改后的数据,并且将该修改后的数据重定向至所选择的第二服务器设备。
7.根据权利要求6所述的流量管理设备,使得当该端到端加密会话被建立时,该客户端流量管理设备使用边界网关协议BGP将其自身插入在该客户端设备和该第一服务器设备之间。
8.一种系统,包括多个服务器设备以及与所述多个服务器设备通信的流量管理设备,该流量管理设备本地地位于所述多个服务器设备附近,其中该流量管理设备通过网络与客户端设备通信,并且其中该流量管理设备被配置来执行以下动作,所述动作包括获取与在该客户端设备和所述多个服务器设备中的第一服务器设备之间所建立的端到端加密会话相关联的会话密钥;通过该端到端加密会话的端到端加密连接向该客户端设备发送重新协商请求,以请求对该端到端加密连接的重新协商;截取由该客户端设备通过该端到端加密连接所发送的第二组握手消息,其中所述第二组握手消息被寻址到该第一服务器设备,并且其中所述第二组握手消息是响应于该重新协商请求被发送的;使用基于该会话密钥生成的一个或多个连接密钥来解密所截取的第二组握手消息;以及将解密的第二组握手消息重定向至所述多个服务器设备中所选择的第二服务器设备, 使得所选择的第二服务器设备替换该第一服务器设备而作为该端到端加密连接的端点。
9.根据权利要求8所述的系统,所述动作还包括 接收与所选择的第二服务器设备相关联的私钥;使用与所选择的第二服务器设备相关联的私钥来从所述第二组握手消息中提取与该加密会话相关联的保密数据;以及部分地基于从所述第二组握手消息中提取的保密数据来生成与该加密会话相关联的第二会话密钥。
10.根据权利要求9所述的系统,其中获取会话密钥还包括截取由该客户端设备通过该端到端加密连接发送的消息,其中该消息被寻址到该第一服务器设备;并且将所截取的消息重定向至所选择的第二服务器设备。
11.根据权利要求9所述的系统,所述动作还包括截取由该客户端设备通过该端到端加密连接发送的消息,其中该消息被寻址到该第一服务器设备;使用基于该第二会话密钥生成的一个或多个连接密钥来解密所截取的消息内的有效载荷;修改解密的有效载荷;使用基于该第二会话密钥生成的一个或多个连接密钥来加密修改后的有效载荷;以及将加密的修改后的有效载荷通过该端到端加密连接提供至所选择的第二服务器设备。
12.根据权利要求8所述的系统,其中该第二服务器是基于通过以下步骤确定的标准来选择的,所述步骤包括使用基于该会话密钥生成的一个或多个连接密钥来从所截取的应用层协议消息中提取头;以及确定该头中所请求的内容位于该第二服务器设备上。
13.根据权利要求8所述的系统,其中该流量管理设备本地地位于所选择的第二服务器设备附近,并且其中客户端侧流量管理设备远离所选择的第二服务器设备并且被插入在该客户端设备和该流量管理设备之间,使得该端到端加密连接流经该客户端侧流量管理设备,其中该客户端侧流量管理设备执行以下动作,所述动作包括从该流量管理设备接收基于该第二会话密钥生成的一个或多个连接密钥; 截取从该客户端设备通过该端到端加密连接发送给该所选择的第二服务器设备的加密数据;利用基于该第二会话密钥生成的一个或多个连接密钥来解密该加密数据; 扩增解密的数据;利用该第二会话密钥重新加密修改后的数据;以及向该第一服务器设备发送重新加密的修改后的数据,其中该流量管理设备截取并解密该修改后的数据,并且将该修改后的数据重定向至所选择的第二服务器设备。
14.根据权利要求13所述的系统,使得当该端到端加密会话被建立时,该客户端流量管理设备使用边界网关协议BGP将其自身插入在该客户端设备和该第一服务器设备之间。
15.根据权利要求8所述的系统,其中所述握手消息至少包括由所述客户端设备生成并利用与该服务器设备相关联的公钥加密的随机数。
16.根据权利要求8所述的系统,其中该流量管理设备还执行以下动作,所述动作包括从该客户端设备接收内容请求,其中该内容请求被寻址到所选择的第二服务器设备;以及在不将该内容请求发送给所选择的第二服务器设备的情况下对该内容请求进行响应。
17.一种存储处理器可读指令的处理可读存储介质,所述处理器可读指令当被处理器执行时执行以下动作,所述动作包括获取与在该客户端设备和所述多个服务器设备中的第一服务器设备之间所建立的端到端加密会话相关联的会话密钥;通过该端到端加密会话的端到端加密连接向该客户端设备发送重新协商请求,以请求对该端到端加密连接的重新协商;截取由该客户端设备通过该端到端加密连接所发送的第二组握手消息,其中所述第二组握手消息被寻址到该第一服务器设备,并且其中所述第二组握手消息是响应于该重新协商请求被发送的;使用基于该会话密钥生成的一个或多个连接密钥来解密所截取的第二组握手消息;以及将解密的第二组握手消息重定向至所述多个服务器设备中所选择的第二服务器设备, 使得所选择的第二服务器设备替换该第一服务器设备而作为该端到端加密连接的端点。
18.根据权利要求17所述的处理器可读存储介质,其中获取该会话密钥还包括 接收与所选择的第二服务器设备相关联的私钥;使用与所选择的第二服务器设备相关联的私钥来从所述第二组握手消息中提取与该加密会话相关联的保密数据;以及部分地基于从所述第二组握手消息中提取的保密数据来生成与该加密会话相关联的第二会话密钥。
19.根据权利要求17所述的处理器可读存储介质,其中该处理器本地地位于所选择的第二服务器设备附近,并且其中客户端侧流量管理设备远离所选择的第二服务器设备并且被插入在该客户端设备和该处理器之间使得该端到端加密连接流经该客户端侧流量管理设备,该客户端侧流量管理设备执行以下动作,所述动作包括从该处理器接收基于该第二会话密钥生成的一个或多个连接密钥; 截取从该客户端设备通过该端到端加密连接发送给该第一服务器设备的加密数据; 利用基于该第二会话密钥生成的一个或多个连接密钥来解密该加密数据; 修改解密的数据;利用基于该第二会话密钥生成的一个或多个连接密钥来重新加密修改后的数据;以及向该第一服务器设备发送重新加密的修改后的数据,其中该处理器截取并解密该修改后的数据,并且将该修改后的数据重定向至所选择的第二服务器设备。
20.根据权利要求17所述的处理器可读存储介质,使得当该端到端加密会话被建立时,该客户端流量管理设备使用边界网关协议BGP将其自身插入在该客户端设备和该第一服务器设备之间。
全文摘要
本发明涉及经由流中间重新协商的代理SSL切换,其中SSL指安全套接层,其公开了一种流量管理设备(TMD)、系统和处理器可读存储介质,针对重新建立加密会话的加密连接,使得加密连接终结于第二服务器设备处,其中加密连接一开始被建立在客户端设备和第一服务器设备之间。如上所述,流量管理设备(TMD)被插入在客户端设备和第一服务器设备之间。在一些实施例中,TMD可以请求客户端设备重新协商加密连接。TMD可以将对重新协商请求的响应重定向至第二服务器设备,使得重新协商的加密连接被建立在客户端设备和第二服务器设备之间。以这种方式,单个现有的端到端加密连接可被用来提供来自多于一个的服务器设备的内容。
文档编号H04L12/56GK102195878SQ20111007035
公开日2011年9月21日 申请日期2011年3月21日 优先权日2010年3月19日
发明者乔纳森·米尼·霍索恩, 大卫·A·施密特, 大卫·艾兰·汉森, 本·波莱 申请人:F5网络公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1