利用SSL会话票证扩展的可扩缩中间网络设备的制作方法

文档序号:13352567阅读:219来源:国知局
利用SSL会话票证扩展的可扩缩中间网络设备的制作方法

本公开涉及通过中间网络设备的安全通信会话。



背景技术:

传输层安全(tls)协议包括会话票证(sessionticket)扩展,其允许两台计算机之间的安全通信会话在有限的时间内基于预先知道的状态使用简短握手恢复。会话票证扩展将对应用服务器会话状态的缓存卸载到应用客户端。中间网络设备可以被包括在tls/安全套接层(ssl)连接的路径中以提供额外服务,诸如防火墙、入侵检测/预防和/或负载平衡。

为了参与端点客户端和端点服务器之间使用tls安全协议的会话,中间设备通常会自行插入并创建两个单独的ssl/tls会话。中间设备在应用客户端和中间设备处的代理服务器之间创建一个tls会话。中间设备处的代理客户端发起与应用服务器的第二tls会话。

互联网工程任务组(ietf)征求意见(rfc)5077描述了tls协议上的tls会话票证扩展规范。rfc5077描述了在“更改密码规范消息”之前,应用服务器向应用客户端发送新的会话票证。该票证对应用客户端是不透明的,并且被用于使用简短握手建立与应用服务器的相同会话的ssl/tls连接。

附图说明

图1是示出根据示例实施例的端点服务器和端点客户端之间的中间网络设备的系统框图。

图2是根据示例实施例的中间网络设备的简化框图。

图3是示出根据示例实施例的通过中间网络设备发起安全tls会话的步骤的梯形图。

图4是示出根据示例实施例的中间网络设备封装会话状态和端点票证的系统框图。

图5是示出根据示例实施例的中间网络设备通过会话票证扩展恢复tls会话的系统框图。

图6是示出根据示例实施例中间网络设备的在代理票证中封装会话标识符以支持传统会话恢复的系统框图。

图7是示出根据示例实施例的中间网络设备封装会话状态和会话票证的操作的流程图。

具体实施方式

概述

本文提出了一种计算机实现的方法,其涉及接收针对通过中间网络设备在第一计算设备和第二计算设备之间进行安全通信会话的请求。第一计算设备和第二计算设备之间的安全通信会话被划分为第一会话和第二会话。第一会话在第一计算设备和中间网络设备之间。第二会话在中间网络设备和第二计算设备之间。中间网络设备从第一计算设备接收第一会话票证。在第一会话中代理客户端的会话状态(包括第一会话票证)被确定。在第二会话中代理服务器的会话状态也被确定。代理客户端的会话状态(包括第一会话票证)和代理服务器的会话状态的组合被封装作为第二会话票证的一部分。

示例实施例

tls协议会话票证扩展对中间网络设备提供任意额外服务的安全性和可扩缩性带来了挑战。为了支持会话恢复,每个中间网络设备通常存储代理服务器和代理客户端的会话状态以及应用票证。由于单个网络设备可以是用于多个tls会话的中间设备,所以网络设备存储每个tls会话的会话状态和票证,限制了网络服务的可扩缩性。

本文呈现的技术提供了中间网络设备,用于将与端点服务器的tls会话的会话票证封装作为针对与端点客户端的tls会话生成的代理会话票证的一部分。以这种方式,端点客户端能够缓存两个tls会话的会话票证,并且中间网络设备不需要为其协调的每个tls会话存储会话票证。中间物还将代理客户端的会话状态和代理服务器的会话状态封装在端点客户端存储的代理会话票证中。

现在参考图1,其示出了使用中间网络设备促进端点客户端和端点服务器之间的tls会话的网络系统100的简化框图。系统100包括多个端点客户端设备110、112、114和116,中间网络设备120和端点服务器130和135。为了支持tls协议,中间网络设备120使用代理客户端140来参与与端点服务器130和135进行的安全tls会话。中间网络设备120还使用代理服务器150来参与与端点客户端110、112、114和116进行的安全tls会话。

在一个示例中,端点客户端设备110、112、114和116以及端点服务器130和135可以采取各种形式,包括台式计算机、膝上型计算机、服务器、移动/蜂窝电话、平板计算机、因特网电话等。中间网络设备120可以是例如连接计算设备(例如客户端110、112、114和116以及服务器130和135)的各种类型的网络(例如,因特网、内联网、局域网(lan)、广域网(wan)、有线网络、无线网络等的任意组合)中的交换机或路由器。

参考图2,其示出了中间网络元件120的简化框图。网络元件120包括用于处理与处理通信分组有关的指令的处理器210、和用于存储各种数据和软件指令(例如,票证封装逻辑230,通信分组等)的存储器220、以及其他可能的组件。网络元件120还包括用于处理流经网络元件120的通信分组的网络处理器专用集成电路(asic)240。网络处理器asic240处理到端口250、251、252、253、254和来自端口250、251、252、253、254的通信分组。虽然在该示例中仅示出六个端口,但是网络元件120中可以包括任意数量的端口。

存储器220可以包括只读存储器(rom)、随机存取存储器(ram)、磁盘存储介质设备、光学存储介质设备、闪存设备、电存储设备、光存储设备或其他物理/有形(例如,非暂态的)存储设备。处理器210是例如执行用于实现本文所述的处理的指令的微处理器或微控制器。因此,通常,存储器220可以包括编码有包括计算机可执行指令的软件的一个或多个有形(非暂态)计算机可读存储介质(例如,存储器设备),并且当软件被(处理器210)执行时可操作地执行本文所述的操作。

现在参考图3,其示出了根据示例实施例的中间网络设备120将tls会话划分为两个tls会话的梯形图。客户端110通过向网络设备120发送具有空会话票证扩展的客户问候(cline-hello,ch)消息310以发起tls会话来启动握手。网络设备120将ch消息310转发到服务器130。服务器130使用在消息320中包括空会话票证扩展的服务器问候(server-hello,sh)进行响应,网络设备120将其转发到客户端110。服务器130还将其实际的服务器证书330(例如,由公共证书颁发机构颁发的证书)发送到网络设备120。由于网络设备120可能需要修改该tls会话中的分组的内容,所以网络设备发起第二tls会话并且将代理服务器证书335发送到客户端110而不是将实际的服务器证书330发送到客户端110。然后,服务器130发送服务器问候完成(server-hellodone)消息340,网络设备120将其转发到客户端110。在另一示例中,网络设备120可以生成新的服务器问候完成消息以发送给客户端110。

客户端110发送客户端密钥交换(cke)消息350、更改密码规范(ccs)消息352和包括消息认证码(mac-a)的完成消息354。网络设备120转发cke消息350和ccs消息352,并且生成包括单独的消息认证码(mac-b)的完成消息356。在另一示例中,网络设备120可以生成不同于客户端110的cke消息350的新cke消息,并将新cke消息发送到服务器130。

服务器130发送新的会话票证360以使得在服务器130和网络设备120中的代理客户端之间的tls会话能够进行将来会话恢复。网络设备120将会话票证360以及代理客户端的会话状态和代理服务器的会话状态封装在代理会话票证365中。网络设备将代理会话票证365发送到客户端设备110。客户端设备110根据会话票证扩展协议缓存代理会话票证365(包括被封装的会话票证360)。由于代理会话票证对端点客户端110是不透明的,所以端点设备110仍不知道原始会话票证360也与代理会话票证365一起被存储。

服务器130通过回复ccs消息370和包括消息认证码(mac-m)的完成消息380来完成握手。网络设备120转发ccs消息370并生成其自己的包括消息认证码(mac-n)的完成消息385。握手完成后,tls通信会话的数据阶段现在能够开始。

在该示例中,网络设备120已经发起了两个安全通信信道。一个安全信道是客户端110和网络设备120之间的tls会话。第二安全信道在网络设备120和服务器130之间。

在一个示例中,原始会话票证360、代理客户端的会话状态和代理服务器的会话状态的组合在被封装在代理会话票证365中之前被加密。其加密密钥可以专用于网络设备120并且不必与端点客户端110或端点服务器130共享。替代地,当该组合被封装到代理会话票证365中时,会话状态或会话票证360中的一个或多个可以不被加密。

现在参考图4,简化框图示出了根据一个示例的中间网络设备120封装端点服务器的会话票证。中间网络设备120包括与端点服务器130通信的代理客户端410和与端点客户端110通信的代理服务器420。作为启动tls会话的tls会话握手的一部分,端点服务器130发送端点会话票证430。如果会话被中断或关闭并重新启动,则该端点票证430将被端点服务器130识别以恢复tls会话。

代理客户端410接收端点票证430,并将端点票证430和代理客户端410的tls会话状态作为消息440发送到代理服务器420。代理服务器420将其自身的tls会话状态与代理客户端410的会话状态和端点票证430合并成单个blob(二进制大对象)输入。代理服务器420可以对blob输入进行加密,并将经加密的blob封装到代理会话票证450中。代理服务器420然后将代理会话票证450发送到端点客户端110,并且端点客户端110根据tls会话票证扩展协议将代理会话票证450存储到本地缓存中。

在一个示例中,rfc5077中描述的会话票证结构用于在中间网络设备120处封装代理会话状态和端点会话票证。代理服务器420可以使用在代理会话票证450结构内的“加密_状态”字段以包括端点会话票证、代理客户端会话状态和代理服务器会话状态的加密的blob输入。

在另一示例中,多个中间网络设备可以在端点客户端110和端点服务器130之间的路径中。需要插入到安全通信会话中的每个中间设备将以类似于如上所述的网络设备120的方式进入会话。也就是说,第二中间网络设备可以接收代理会话票证450,并将其封装成第三会话票证。第三会话票证将包括代理会话票450和原始端点会话票430以及每个中间网络设备中的代理服务器和代理客户端的会话状态。以这种方式,相继的中间网络设备能继续将其接收到的会话票证封装成用于下一个中间设备或端点客户端的新会话票证。

现在参考图5,简化框图示出了使用端点客户端设备存储的代理会话票证恢复tls会话。为了恢复暂停或中断的tls会话,端点客户端110发送具有在tls会话的设置处所存储的代理会话票证的客户端问候(clienthello)消息510。代理服务器420接收客户端问候消息510并且恢复/撷取被封装在代理会话票证中的代理服务器会话状态、代理客户端状态和端点会话票证。代理服务器420使用恢复的代理服务器会话状态信息来建立与端点客户端110的恢复tls会话。

代理客户端会话状态和端点会话票证作为消息520被发送到代理客户端410。代理客户端410使用接收的代理客户端会话状态来设置其会话状态。代理客户端410然后生成包括端点会话票证的客户端问候消息530,并将客户端问候消息530发送到端点服务器130以恢复tls会话。端点服务器130解密并验证端点会话票证,并恢复端点服务器130和代理客户端410之间的tls会话。

在一个示例中,代理服务器420可以接收客户端问候消息510中的代理会话票证,代理服务器420不能解密该会话票证。在这种情况下,例如,如果中间网络设备120不是原始会话的路径,则网络设备120还将把其自身从该会话的路径中移除。

在另一个示例中,代理服务器420可以接收客户端问候消息510中的代理会话票证,代理服务器420能够成功地解密但是端点服务器130不能解密或识别封装的会话票证。在这种情况下,或者如果端点服务器130不再支持会话恢复,则端点服务器130将用服务器问候(serverhello)消息进行响应,该服务器问候消息指示全握手(fullhandshake)对于建立新的tls会话是必需的。当全握手的服务器问候消息到达网络设备120时,代理客户端410将从恢复的会话中丢弃会话状态,并继续进行全握手。

在另一示例中,当用简短握手恢复先前的会话时,端点服务器130可以包括或可以不包括另一会话票证。在端点服务器130包括新的会话票证的情况下,网络设备120将以与其处理原始会话票证相同的方式处理新的会话票证,即,网络设备120将新的会话票证、代理客户端会话状态和代理服务器会话状态封装成新的代理会话票证。

现在参考图6,简化框图示出了中间网络设备120协调与支持不同ssl/tls恢复协议的端点的会话恢复。在该示例中,端点客户端支持具有会话票证的会话恢复,但是端点服务器610不支持会话票证。端点服务器610基本上仅支持使用会话id的会话恢复。为了发起安全通信会话,端点客户端110发送包括空会话票证扩展的客户端问候消息620,该消息620指示支持会话票证恢复。替代地,可以发送客户端问候消息以尝试通过在客户端问候消息中包括非空会话票证扩展来恢复会话。网络设备接收消息620并将其转发到端点服务器610。

由于端点服务器610不支持使用会话票证的会话恢复,服务器610忽略客户端问候消息620的会话票证扩展中的任何会话票证。服务器610用包括会话id但不包括会话票证扩展的服务器问候消息630进行响应。网络设备120中的代理服务器420创建包括空会话票证的服务器问候消息640,并将其发送到端点客户端110。

网络设备120中的代理客户端410接收消息630,并在消息650中将会话id和代理客户端410的会话状态传递给代理服务器420。代理服务器420将会话id、代理客户端410的会话状态和代理服务器420的会话状态的组合封装成代理会话票证660。代理服务器420将代理会话票证660发送到端点客户端110,以使能端点客户端110恢复与代理服务器420的会话。端点客户端110将代理会话票证660存储在本地缓存中。

端点服务器610发送ccs消息670和完成消息675以完成与代理客户端410的会话握手。代理服务器420通过发送ccs消息680和完成消息685来完成与端点客户端110的会话握手。在一个示例中,ccs消息680是标记会话握手结束和安全/加密会话的开始的一字节消息。替代地,ssl扩展,诸如下一代协议协商(npn)和/或应用层协议协商(alpn),除了包括典型的一字节的ccs消息之外,可以包括ccs消息中的应用协议握手的一部分作为数据负载。影响数据负载的ssl扩展可以被确定作为扩展支持的客户端问候/服务器问候能力协商的一部分。如果端点客户端110想要恢复安全会话,则它将在会话票证扩展中发送具有代理会话票证660的客户端问候消息。代理服务器420从代理会话票证660中恢复/撷取代理服务器会话状态、代理客户端会话状态和会话id。代理服务器会话状态用于设置代理服务器420并恢复与端点客户端设备110的tls会话。代理客户端会话状态用于设置代理客户端410,代理客户端410发送具有恢复的会话id的客户端问候消息到端点服务器610。端点服务器610使用适当会话id恢复会话,并且两个tls会话被恢复。

现在参考图7,流程图示出了过程700,其中中间网络设备插入到安全tls会话中,使得端点客户端设备存储恢复tls会话所需的会话票证。在步骤705中,网络设备接收针对第一计算设备(例如,端点服务器130)和第二计算设备(例如,端点客户端110)之间的安全通信会话的请求(例如,客户端问候消息)。为了插入到安全通信会话中,在步骤710中,网络设备将安全通信会话划分为第一会话和第二会话。第一会话是第一计算设备和网络设备中的代理客户端之间的安全通信会话。第二会话是网络设备中的代理服务器与第二计算设备之间的安全通信会话。在步骤720中,网络设备从第一计算设备接收第一会话票证。第一会话票证使能通过简短握手恢复安全通信会话。

在步骤730中,网络设备确定代理客户端的会话状态(包括第一会话票证)。在步骤740中,网络设备确定代理服务器的会话状态。在步骤750中,网络设备将包括第一会话票证的代理客户端的会话状态和代理服务器的会话状态封装成将使能端点客户端恢复与代理服务器的第二会话的第二会话票证。

总之,中间网络设备将自身插入到全握手和会话恢复握手流中。ssl/tls握手路径中的中间网络设备能够利用端点客户端的会话票证缓存能力。网络设备将端点服务器会话票证和代理会话状态信息封装在被发送到端点客户端的代理会话票证中。这消除了需要中间网络设备存储端点服务器票证、代理会话状态或它们之间的绑定的任何需要。这增加了网络设备的可扩缩性和性能,而不影响功能性、可操作性或安全性。

在一个示例中,本文呈现的技术提供了一种计算机实现的方法,包括在中间网络设备处接收针对通过中间网络设备在第一计算设备和第二计算设备之间进行安全通信会话的请求。第一计算设备和第二计算设备之间的安全通信会话在中间网络设备处被划分为第一会话和第二会话。第一会话在第一计算设备和中间网络设备之间。第二会话在中间网络设备和第二计算设备之间。中间网络设备从第一计算设备接收第一会话票证。第一会话中的代理客户端的会话状态(包括第一会话票证)被确定。第二会话中的代理服务器的会话状态也被确定。代理客户端的会话状态(包括第一会话票证)和代理服务器的会话状态的组合被封装作为第二会话票证的一部分。

在另一示例中,本文呈现的技术提供了具有网络接口单元和处理器的装置。网络接口单元被配置为通过网络发送和接收通信。处理器被配置为经由网络接口接收针对通过中间网络设备在第一计算设备和第二计算设备之间进行安全通信会话的请求。处理器被配置为将第一计算设备和第二计算设备之间的安全通信会话划分为第一会话和第二会话。第一会话在第一计算设备和代理客户端模块之间。第二会话在代理服务器模块和第二计算设备之间。处理器被配置为经由网络接口单元从第一计算设备接收第一会话票证。处理器被配置为确定代理客户端模块的会话状态(包括第一会话票证)。处理器还被配置为确定代理服务器模块的会话状态。处理器被配置为将代理客户端模块的会话状态和代理服务器模块的会话状态封装作为第二会话票证的一部分。

在又一示例中,本文呈现的技术提供了一种或多种编码有计算机可执行指令的非暂态计算机可读存储介质,该计算机可执行指令被配置为使得处理器使能利用来自第一计算设备的第一会话票证作为与第二计算设备的安全通信会话的一部分来进行会话恢复。指令还使得处理器将第一计算设备和第二计算设备之间的安全通信会话划分成第一会话和第二会话。第一会话在第一计算设备和代理客户端模块之间。第二会话在代理服务器模块和第二计算设备之间。指令还使得处理器从第一计算设备接收第一会话票证。指令使得处理器确定代理客户端模块的会话状态(包括第一会话票证)。指令还使得处理器确定代理服务器模块的会话状态。指令还使得处理器将代理客户端模块的会话状态和代理服务器模块的会话状态封装作为第二会话票证的一部分。

以上描述意欲仅通过示例的方式。在不脱离本文所描述的概念的范围并且在权利要求书的范围和等同物的范围内的情况下,可以进行各种修改和结构变化。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1