Ssl会话重用的方法和服务器的制造方法

文档序号:10691031阅读:414来源:国知局
Ssl会话重用的方法和服务器的制造方法
【专利摘要】本发明公开了一种SSL会话重用的方法和服务器,属于通信技术领域。所述方法包括:服务器集群中的任一服务器与客户端进行握手过程中,为所述客户端生成会话标识,将所述会话标识和所述对称密钥相关信息对应存储在服务器集群中信息存储地址指向的服务器中;服务器集群中的任一服务器与所述客户端再次进行握手过程中,当所述服务器能够从所述客户端获取到所述会话标识时,从所述服务器集群中信息存储地址指向的服务器中查询得到所述会话标识对应的所述对称密钥相关信息;服务器集群中的任一服务器根据所述对称密钥相关信息生成对称密钥,利用所述对称密钥与所述客户端进行加密数据传输。本发明可在服务器集群中实现SSL会话重用。
【专利说明】
SSL会话重用的方法和服务器
技术领域
[0001]本发明涉及通信技术领域,具体涉及一种SSL会话重用的方法和服务器。
【背景技术】
[0002]SSL (Secure Sockets Layer,安全套接层)/TLS (Transport Layer Security,传输安全协议)协议是IETF (The Internet Engineering Task Force,国际互联网工程任务组)提出的安全网络传输协议,主要是为了保护在互联网中传递的机密信息,该协议包括两个过程:握手阶段和数据传输阶段。握手阶段:客户端(client)生成预主加密串(PreMasterSecret字串),用服务器(server)的公钥(public key)对预主加密串进行加密,将加密后的预主加密串发送给服务器;服务器接收加密后的预主加密串,用与公钥匹配的私钥(private key)对加密后的预主加密串进行解密,得到预主加密串,利用预主加密串生成对称秘钥相关信息(sess1n_info)(包括主密钥(master secret)、服务器随机数和客户端随机数等),利用对称秘钥相关信息生成对称秘钥。数据传输阶段:服务器利用握手阶段生成的对称秘钥对明文进行加密,将加密后的明文发送到客户端;客户端接收加密后的明文后,利用客户端的预主加密串生成对称秘钥相关信息,利用对称秘钥相关信息生成对称秘钥,利用对称秘钥对加密后的明文进行解密即可得到明文继续处理。
[0003]为了提高握手的效率,提出了 SSL会话重用(sess1n reuse)的方法,具体过程如下:在客户端首次握手阶段,客户端向服务器发送会话标识长度(SESS1N ID LENGTH)信息;服务器接收客户端会话标识长度信息后,如果支持会话重用就生成并回复客户端一个会话标识(SESS1N ID);客户端接收会话标识,用服务器的公钥对预主加密串进行加密,将加密后的预主加密串发送给服务器;服务器接收加密后的预主加密串,用与公钥匹配的私钥对加密后的预主加密串进行解密,得到预主加密串,利用预主加密串生成对称秘钥相关信息,利用对称秘钥相关信息生成对称秘钥;当客户端再次请求握手时,向服务器发送会话标识;服务器接收会话标识后,回复客户端相同的会话标识,然后直接向客户端发送结束(finish)报文;客户端和服务器利用本端的预主加密串生成对称秘钥相关信息,利用对称秘钥相关信息生成对称秘钥,双方利用对称秘钥进行数据加密传输。
[0004]通过上述过程可以看出SSL会话重用的方法,可以直接通过对称秘钥相关信息恢复出对称秘钥进行数据加密传输,将握手阶段的非对称加密过程省略,可以节约时间,加快SSL会话的速度。然而,现有SSL会话重用的方法,对称秘钥相关信息是哪个服务器生成,就由哪个服务器保存,当遇到服务器集群(由多个服务器组成)时,客户端每一次的访问可能会被定向到服务器集群中不同的服务器,例如:当客户端的一次访问被定位到服务器集群中的服务器A,由服务器A生成对称秘钥相关信息,当客户端下一次访问时,又被定位到服务器集群中的服务器B,此时服务器B无法获知由服务器A生成的对称秘钥相关信息,从而无法实现SSL会话重用。

【发明内容】

[0005]为了解决上述问题,本发明提供了一种SSL会话重用的方法和服务器,将会话标识和对称密钥相关信息对应存储在服务器集群中信息存储地址指向的服务器中,可以实现对称密钥相关信息生成和存储的分离,服务器集群中的任一服务器都可以从服务器集群中信息存储地址指向的服务器中获取到对称密钥相关信息,可以在服务器集群中实现SSL会话重用。
[0006]为了解决上述问题,本发明公开了一种SSL会话重用的方法,所述方法包括:
[0007]服务器集群中的任一服务器与客户端进行握手过程中,为所述客户端生成会话标识,将所述会话标识发送给所述客户端,根据所述客户端返回的预主加密串生成对称密钥相关信息,根据所述会话标识获取信息存储地址,将所述会话标识和所述对称密钥相关信息对应存储在服务器集群中信息存储地址指向的服务器中;
[0008]所述服务器集群中的任一服务器与所述客户端再次进行握手过程中,当所述服务器集群中的任一服务器能够从所述客户端获取到所述会话标识时,所述服务器集群中的任一服务器根据所述会话标识获取信息存储地址,从所述服务器集群中信息存储地址指向的服务器中查询得到所述会话标识对应的所述对称密钥相关信息;
[0009]所述服务器集群中的任一服务器根据所述对称密钥相关信息生成对称密钥,利用所述对称密钥与所述客户端进行加密数据传输。
[0010]进一步地,服务器集群中的任一服务器与客户端进行握手过程中,为所述客户端生成会话标识,将所述会话标识发送给所述客户端,根据所述客户端返回的预主加密串生成对称密钥相关信息,根据所述会话标识获取信息存储地址,将所述会话标识和所述对称密钥相关信息对应存储在服务器集群中信息存储地址指向的服务器中,包括:
[0011]所述服务器集群中的任一服务器接收所述客户端的SSL请求,获取所述SSL请求中携带的会话标识长度信息;
[0012]所述服务器集群中的任一服务器根据所述会话标识长度信息确定会话标识长度为零时,为所述客户端生成所述会话标识,并将所述会话标识发送给所述客户端,使得所述客户端接收会话标识,生成并将加密后的所述预主加密串发送给所述服务器集群中的任一服务器;
[0013]所述服务器集群中的任一服务器接收并对所述客户端发送的加密后的所述预主加密串进行解密得到所述预主加密串,根据所述预主加密串生成所述对称密钥相关信息,将所述会话标识和所述对称密钥相关信息对应存储在所述服务器集群中信息存储地址指向的服务器中;
[0014]所述服务器集群中的任一服务器根据所述对称密钥相关信息生成所述对称密钥,利用所述对称密钥与所述客户端进行加密数据传输。
[0015]进一步地,所述服务器集群中的任一服务器接收所述客户端的SSL请求,获取所述SSL请求中携带的会话标识长度信息之后,还包括:
[0016]所述服务器集群中的任一服务器根据所述会话标识长度信息确定所述会话标识长度不为零时,确定所述服务器集群中的任一服务器与所述客户端再次进行握手过程中;
[0017]相应地,当所述服务器集群中的任一服务器能够从所述客户端获取到所述会话标识时,所述服务器集群中的任一服务器根据所述会话标识获取信息存储地址,从所述服务器集群中信息存储地址指向的服务器中查询得到所述会话标识对应的所述对称密钥相关信息,包括:
[0018]所述服务器集群中的任一服务器判断所述SSL请求中是否携带所述会话标识;
[0019]如果所述SSL请求中携带所述会话标识,则所述服务器集群中的任一服务器获取所述SSL请求中的所述会话标识,所述服务器集群中的任一服务器根据所述会话标识获取信息存储地址,从所述服务器集群中信息存储地址指向的服务器中查询得到所述会话标识对应的所述对称密钥相关信息,将所述会话标识发送给所述客户端,并向所述客户端发送握手结束信息。
[0020]进一步地,所述服务器集群中的任一服务器判断所述SSL请求中是否携带所述会话标识之后,还包括:
[0021]如果所述SSL请求中没有携带所述会话标识,则执行为所述客户端生成所述会话标识,并将所述会话标识发送给所述客户端的步骤。
[0022]进一步地,所述服务器集群中的任一服务器根据所述会话标识获取信息存储地址,从所述服务器集群中信息存储地址指向的服务器中查询得到所述会话标识对应的所述对称密钥相关信息,包括:
[0023]所述服务器集群中的任一服务器根据所述会话标识,查询所述服务器集群中信息存储地址指向的服务器中所述会话标识对应的所述对称密钥相关信息是否存在;
[0024]如果所述服务器集群中信息存储地址指向的服务器中所述会话标识对应的所述对称密钥相关信息存在,则执行将所述会话标识发送给所述客户端,并向所述客户端发送握手结束信息的步骤;
[0025]如果所述服务器集群中信息存储地址指向的服务器中所述会话标识对应的所述对称密钥相关信息不存在,则执行为所述客户端生成所述会话标识,并将所述会话标识发送给所述客户端的步骤。
[0026]进一步地,所述对称密钥相关信息包括:主密钥master secret、服务器集群中的任一服务器随机数和客户端随机数。
[0027]进一步地,查询预设会话标识存储地址对应表,得到所述会话标识对应的所述信息存储地址,其中,所述预设会话标识存储地址对应表中保存有所述会话标识与所述信息存储地址对应关系;或
[0028]对所述会话标识进行哈希运算得到哈希值,将所述哈希值作为所述会话标识对应的所述信息存储地址。
[0029]为了解决上述问题,本发明还公开了一种SSL会话重用的服务器,所述服务器集群中的任一服务器包括:
[0030]处理模块,用于在所述服务器集群中的任一服务器与客户端进行握手过程中,为所述客户端生成会话标识,将所述会话标识发送给所述客户端,根据所述客户端返回的预主加密串生成对称密钥相关信息,根据所述会话标识获取信息存储地址,将所述会话标识和所述对称密钥相关信息对应存储在服务器集群中信息存储地址指向的服务器中;
[0031]查询模块,用于在所述服务器集群中的任一服务器与所述客户端再次进行握手过程中,当所述服务器集群中的任一服务器能够从所述客户端获取到所述会话标识时,根据所述会话标识获取信息存储地址,从所述服务器集群中信息存储地址指向的服务器中查询得到所述会话标识对应的所述对称密钥相关信息;
[0032]传输模块,用于根据所述对称密钥相关信息生成对称密钥,利用所述对称密钥与所述客户端进行加密数据传输。
[0033]进一步地,所述处理模块包括:
[0034]处理单元,用于接收所述客户端的SSL请求,获取所述SSL请求中携带的会话标识长度信息;
[0035]生成单元,用于根据所述会话标识长度信息确定会话标识长度为零时,为所述客户端生成所述会话标识,并将所述会话标识发送给所述客户端,使得所述客户端接收会话标识,生成并将加密后的所述预主加密串发送给所述服务器集群中的任一服务器;
[0036]存储单元,用于接收并对所述客户端发送的加密后的所述预主加密串进行解密得到所述预主加密串,根据所述预主加密串生成所述对称密钥相关信息,将所述会话标识和所述对称密钥相关信息对应存储在所述服务器集群中信息存储地址指向的服务器中;
[0037]传输单元,用于根据所述对称密钥相关信息生成所述对称密钥,利用所述对称密钥与所述客户端进行加密数据传输。
[0038]进一步地,所述处理模块还包括:
[0039]确定单元,用于根据所述会话标识长度信息确定所述会话标识长度不为零时,确定所述服务器集群中的任一服务器与所述客户端再次进行握手过程中;
[0040]相应地,所述查询模块包括:
[0041]判断单元,用于判断所述SSL请求中是否携带所述会话标识;
[0042]查询单元,用于如果所述SSL请求中携带所述会话标识,则获取所述SSL请求中的所述会话标识,根据所述会话标识获取信息存储地址,从所述服务器集群中信息存储地址指向的服务器中查询得到所述会话标识对应的所述对称密钥相关信息,将所述会话标识发送给所述客户端,并向所述客户端发送握手结束信息。
[0043]进一步地,所述处理模块还包括:
[0044]通知单元,用于如果所述SSL请求中没有携带所述会话标识,则通知所述生成单元执行为所述客户端生成所述会话标识,并将所述会话标识发送给所述客户端的步骤。
[0045]进一步地,所述查询单元包括:
[0046]查询子单元,用于根据所述会话标识,查询所述服务器集群中信息存储地址指向的服务器中所述会话标识对应的所述对称密钥相关信息是否存在;
[0047]第一通知子单元,用于如果所述服务器集群中信息存储地址指向的服务器中所述会话标识对应的所述对称密钥相关信息存在,则通知所述查询单元执行将所述会话标识发送给所述客户端,并向所述客户端发送握手结束信息的步骤;
[0048]第二通知子单元,用于如果所述服务器集群中信息存储地址指向的服务器中所述会话标识对应的所述对称密钥相关信息不存在,则通知所述生成单元执行为所述客户端生成所述会话标识,并将所述会话标识发送给所述客户端的步骤。
[0049]进一步地,所述对称密钥相关信息包括:主密钥master secret、服务器集群中的任一服务器随机数和客户端随机数。
[0050]进一步地,所述处理模块还包括:
[0051]第一地址获取单元,用于查询预设会话标识存储地址对应表,得到所述会话标识对应的所述信息存储地址,其中,所述预设会话标识存储地址对应表中保存有所述会话标识与所述信息存储地址对应关系;或
[0052]第二地址获取单元,用于对所述会话标识进行哈希运算得到哈希值,将所述哈希值作为所述会话标识对应的所述信息存储地址。
[0053]与现有技术相比,本发明可以获得包括以下技术效果:
[0054]I)将会话标识和对称密钥相关信息对应存储在服务器集群中信息存储地址指向的服务器中,可以实现对称密钥相关信息生成和存储的分离,服务器集群中的任一服务器都可以从服务器集群中信息存储地址指向的服务器中获取到对称密钥相关信息,可以在服务器集群中实现SSL会话重用。
[0055]2)将会话标识和对称密钥相关信息对应存储在服务器集群中信息存储地址指向的服务器中,使得对称密钥相关信息的保存时间可以完全独立,从而生成对称密钥相关信息的服务器down机或者休眠、重启等,都不会影响到对称密钥相关信息的有效期,实现了服务器集群中SSL会话重用的高可用性。
[0056]当然,实施本发明的任一产品必不一定需要同时达到以上所述的所有技术效果。
【附图说明】
[0057]此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0058]图1是本发明实施例的第一种SSL会话重用的方法流程图;
[0059]图2是本发明实施例的一种服务器和服务器集群中信息存储地址指向的服务器关系不意图;
[0060]图3是本发明实施例的第二种SSL会话重用的方法流程图;
[0061]图4是本发明实施例的第三种SSL会话重用的方法流程图;
[0062]图5是本发明实施例的另一种服务器和服务器集群中信息存储地址指向的服务器关系示意图;
[0063]图6是本发明实施例的一种SSL会话重用的服务器结构示意图。
【具体实施方式】
[0064]以下将配合附图及实施例来详细说明本发明的实施方式,藉此对本发明如何应用技术手段来解决技术问题并达成技术功效的实现过程能充分理解并据以实施。
[0065]在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
[0066]内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
[0067]计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
[0068]如在说明书及权利要求当中使用了某些词汇来指称特定组件。本领域技术人员应可理解,硬件制造商可能会用不同名词来称呼同一个组件。本说明书及权利要求并不以名称的差异来作为区分组件的方式,而是以组件在功能上的差异来作为区分的准则。如在通篇说明书及权利要求当中所提及的“包含”为一开放式用语,故应解释成“包含但不限定于”。“大致”是指在可接收的误差范围内,本领域技术人员能够在一定误差范围内解决所述技术问题,基本达到所述技术效果。此外,“耦接”一词在此包含任何直接及间接的电性耦接手段。因此,若文中描述一第一服务器耦接于一第二服务器,则代表所述第一服务器可直接电性耦接于所述第二服务器,或通过其他服务器或耦接手段间接地电性耦接至所述第二服务器。说明书后续描述为实施本发明的较佳实施方式,然所述描述乃以说明本发明的一般原则为目的,并非用以限定本发明的范围。本发明的保护范围当视所附权利要求所界定者为准。
[0069]还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种商品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的商品或者系统中还存在另外的相同要素。
[0070]实施例描沐
[0071]下面以一实施例对本发明方法的实现作进一步说明。如图1所示,为本发明实施例的一种SSL会话重用的方法流程图,该方法包括:
[0072]SlOl:服务器集群中的任一服务器与客户端进行握手过程中,为客户端生成会话标识,将会话标识发送给客户端,根据客户端返回的预主加密串生成对称密钥相关信息,根据会话标识获取信息存储地址,将会话标识和对称密钥相关信息对应存储在服务器集群中信息存储地址指向的服务器中。
[0073]具体地,根据会话标识获取信息存储地址,至少可以通过下面的方法获取到:
[0074]查询预设会话标识存储地址对应表,得到会话标识对应的信息存储地址,其中,预设会话标识存储地址对应表中保存有会话标识与信息存储地址对应关系;或
[0075]对会话标识进行哈希运算得到哈希值,将哈希值作为会话标识对应的信息存储地址。
[0076]其中,哈希运算具体可以是一致性哈希算法,如Chord算法,KAD算法等。
[0077]具体地,对称密钥相关信息(sess1n_info)包括:主密钥(master secret)、服务器集群中的任一服务器随机数和客户端随机数等。其中,主密钥是根据预主加密串(PreMaster Secret字串)、服务器集群中的任一服务器随机数和客户端随机数等生成的,具体生成过程与现有方法类似,此处不再赘述,服务器集群中的任一服务器随机数是服务器集群中的任一服务器随机生成的随机数,可以在与客户端交互过程中发送给客户端,客户端随机数是客户端随机生成的随机数,可以在与服务器集群中的任一服务器交互过程中发送给服务器集群中的任一服务器。并且,对称密钥相关信息还可以包括对称密钥相关信息的有效时间等,以便监控对称密钥相关信息是否已经过期失效。
[0078]具体地,参见图2,服务器集群中的服务器相互连通,从而服务器集群中的任一服务器可以根据会话标识获取信息存储地址,将会话标识和对称密钥相关信息对应存储在服务器集群中信息存储地址指向的服务器中,并且多个服务器可以通过负载均衡器与终端设备进行交互,以实现多个服务器之间的任务均衡。服务器集群中的任一服务器可以是能够提供SSL接入服务的服务器,包括但不限于HTTPs、POPs、SMTPs、FTPs。
[0079]需要说明的是,可以在服务器集群中的每个服务器的内部设置一个存储结构(例如:Cluster_inf0),通过存储结构记录服务器集群中所有服务器的标识(包括但不限于ip,内部域名等)。且存储结构(例如:cluster_info)在所有的服务器中都相同,相同的主要目的是为了避免根据会话标识获取信息存储地址时结果不一致。
[0080]S102:服务器集群中的任一服务器与客户端再次进行握手过程中,当服务器集群中的任一服务器能够从客户端获取到会话标识时,服务器集群中的任一服务器根据会话标识获取信息存储地址,从服务器集群中信息存储地址指向的服务器中查询得到会话标识对应的对称密钥相关信息。
[0081]具体地,参见图3,服务器集群中的任一服务器根据会话标识获取信息存储地址,从服务器集群中信息存储地址指向的服务器中查询得到会话标识对应的对称密钥相关信息,包括:
[0082]S102a:服务器集群中的任一服务器根据会话标识获取信息存储地址。
[0083]其中,根据会话标识获取信息存储地址与步骤SlOl中的一致,即如果SlOl是通过查询预设会话标识存储地址对应表获取到,则此处也是通过查询预设会话标识存储地址对应表获取到;如果SlOl是通过对会话标识进行哈希运算获取到,则此处也是通过对会话标识进行哈希运算获取到,从而使得存储和查询保持一致。
[0084]S102b:服务器集群中的任一服务器查询服务器集群中信息存储地址指向的服务器。
[0085]S102c:服务器集群从服务器集群中信息存储地址指向的服务器中查询得到会话标识对应的对称密钥相关信息。
[0086]具体地,服务器集群中的任一服务器能够从服务器集群中信息存储地址指向的服务器中查询得到会话标识对应的对称密钥相关信息,则说明对称密钥相关信息还没有过期或没有因为服务器集群中信息存储地址指向的服务器重启等原因而失效,对称密钥相关信息可以用来生成对称密钥。
[0087]S103:服务器集群中的任一服务器根据对称密钥相关信息生成对称密钥,利用对称密钥与客户端进行加密数据传输。
[0088]具体地,服务器集群中的任一服务器利用对称密钥与客户端进行加密数据传输时,客户端会根据客户端的预主加密串、服务器集群中的任一服务器随机数和客户端随机数等生成主密钥,然后根据主密钥、服务器集群中的任一服务器随机数和客户端随机数等生成对称密钥,利用对称密钥对服务器集群中的任一服务器发送过来的利用对称密钥加密后的明文进行解密,利用对称密钥对发送到服务器集群中的任一服务器的明文进行加密等,实现加密数据传输。
[0089]具体地,在本实施例的一优选实施例中,参见图4,SSL会话重用的方法包括:
[0090]S201:服务器集群中的任一服务器接收客户端的SSL请求,获取SSL请求中携带的会话标识长度信息。
[0091]具体地,客户端的SSL请求可以是客户端(Client)Hello报文。会话标识长度信息可能是 SESSOIIN ID LENGTH:0、SSESS0IIN ID LENGTH:32 等。
[0092]具体地,如果SSL请求中没有携带会话标识长度信息,服务器集群中的任一服务器没有获取到SSL请求中携带的会话标识长度信息,则证明客户端不接受SSL会话重用,则服务器集群中的任一服务器后续不会生成会话标识,服务器集群中的任一服务器和客户端之间按照现有的非SSL会话重用的方法进行握手过程和数据加密传输过程。
[0093]S202:服务器集群中的任一服务器根据会话标识长度信息判断会话标识长度是否为零,如果会话标识长度为零,则执行S203 ;如果会话标识长度不为零,则执行S206。
[0094]具体地,如果会话标识长度信息为SESSOIIN ID LENGTH: 32,则会话标识长度不为零,如果会话标识长度信息为SESSOIIN ID LENGTH: 0,则会话标识长度为零。
[0095]S203:服务器集群中的任一服务器为客户端生成会话标识,并将会话标识发送给客户端,使得客户端接收会话标识,生成并将加密后的预主加密串发送给服务器集群中的任一服务器。
[0096]具体地,根据SSL/TLS协议,会话标识(SESS1N ID)可以是一个32字节且非零的随机数、随机字符串等(SESS1N ID:token〈32*>)。
[0097]S204:服务器集群中的任一服务器接收并对客户端发送的加密后的预主加密串进行解密得到预主加密串,根据预主加密串生成对称密钥相关信息,根据会话标识获取信息存储地址,将会话标识和对称密钥相关信息对应存储在服务器集群中信息存储地址指向的服务器中。
[0098]具体地,根据会话标识获取信息存储地址,至少可以通过下面的方法获取到:
[0099]查询预设会话标识存储地址对应表,得到会话标识对应的信息存储地址,其中,预设会话标识存储地址对应表中保存有会话标识与信息存储地址对应关系;或
[0100]对会话标识进行哈希运算得到哈希值,将哈希值作为会话标识对应的信息存储地址。
[0101]其中,哈希运算具体可以是一致性哈希算法,如Chord算法,KAD算法等。
[0102]具体地,根据预主加密串生成对称密钥相关信息可以是根据预主加密串、服务器集群中的任一服务器随机数和客户端随机数等生成主密钥,然后将主密钥、服务器集群中的任一服务器随机数和客户端随机数作为对称密钥相关信息。
[0103]具体地,服务器集群中的任一服务器接收并对客户端发送的加密后的预主加密串进行解密得到预主加密串后,还可以先判断预主加密串是否完整无缺,如果预主加密串完整无缺,再根据预主加密串生成对称密钥相关信息,将会话标识和对称密钥相关信息对应存储在服务器集群中信息存储地址指向的服务器中;如果预主加密串不是完整无缺,则月艮务器集群中的任一服务器向客户端发送结束报文,断开与客户端的连接,不再进行后续操作。
[0104]S205:服务器集群中的任一服务器根据对称密钥相关信息生成对称密钥,利用对称密钥与客户端进行加密数据传输,然后结束。
[0105]S206:服务器集群中的任一服务器判断SSL请求中是否携带会话标识,如果SSL请求中携带会话标识,则执行S207 ;如果SSL请求中没有携带会话标识,则执行S203。
[0106]具体地,服务器集群中的任一服务器根据会话标识长度信息确定会话标识长度不为零时,确定服务器集群中的任一服务器与客户端可能是再次进行握手过程中,SSL请求中可能携带服务器集群中的任一服务器在初次握手过程中为客户端生成的会话标识。
[0107]S207:服务器集群中的任一服务器获取SSL请求中的会话标识。
[0108]S208:服务器集群中的任一服务器根据会话标识,查询服务器集群中信息存储地址指向的服务器中会话标识对应的对称密钥相关信息是否存在,如果服务器集群中信息存储地址指向的服务器中会话标识对应的对称密钥相关信息存在,则执行S209 ;如果服务器集群中信息存储地址指向的服务器中会话标识对应的对称密钥相关信息不存在,则执行S203o
[0109]具体地,如果服务器集群中信息存储地址指向的服务器中会话标识对应的对称密钥相关信息存在,则说明对称密钥相关信息还没有过期或没有因为服务器集群中信息存储地址指向的服务器重启等原因而失效,对称密钥相关信息可以用来生成对称密钥。如果服务器集群中信息存储地址指向的服务器中会话标识对应的对称密钥相关信息不存在,则说明对称密钥相关信息可能因为过期或服务器集群中信息存储地址指向的服务器重启等原因而失效。
[0110]S209:服务器集群中的任一服务器将会话标识发送给客户端,并向客户端发送握手结束信息,然后执行S205。
[0111]具体地,服务器集群中的任一服务器将会话标识发送给客户端,并向客户端发送握手结束信息(例如:finish报文),以告知客户端本次握手过程完成可以进行后续流程。
[0112]为了便于进一步地理解,参见图5,服务器集群中的服务器I与客户端进行握手过程中,为客户端生成会话标识,将会话标识发送给客户端,根据客户端返回的预主加密串生成对称密钥相关信息,根据会话标识获取信息存储地址,将会话标识和对称密钥相关信息对应存储在服务器集群中信息存储地址指向的服务器2中;服务器集群中的服务器3与客户端再次进行握手过程中,当服务器3能够从客户端获取到会话标识时,服务器3根据会话标识获取信息存储地址,从服务器集群中信息存储地址指向的服务器2中查询得到会话标识对应的对称密钥相关信息;服务器3根据对称密钥相关信息生成对称密钥,利用对称密钥与客户端进行加密数据传输。
[0113]本实施例所述的SSL会话重用的方法,将会话标识和对称密钥相关信息对应存储在服务器集群中信息存储地址指向的服务器中,可以实现对称密钥相关信息生成和存储的分离,服务器集群中的任一服务器都可以从服务器集群中信息存储地址指向的服务器中获取到对称密钥相关信息,可以在服务器集群中实现SSL会话重用。将会话标识和对称密钥相关信息对应存储在服务器集群中信息存储地址指向的服务器中,使得对称密钥相关信息的保存时间可以完全独立,从而服务器集群中生成对称密钥相关信息的服务器down机或者休眠、重启等,都不会影响到对称密钥相关信息的有效期,实现了服务器集群中SSL会话重用的高可用性。
[0114]如图6所示,是本发明实施例的一种SSL会话重用的服务器集群中的任一服务器结构图,该服务器集群中的任一服务器包括:
[0115]处理模块301,用于在服务器集群中的任一服务器与客户端进行握手过程中,为客户端生成会话标识,将会话标识发送给客户端,根据客户端返回的预主加密串生成对称密钥相关信息,将会话标识和所述对称密钥相关信息对应存储在服务器集群中信息存储地址指向的服务器中;
[0116]查询模块302,用于在服务器集群中的任一服务器与客户端再次进行握手过程中,当服务器集群中的任一服务器能够从客户端获取到会话标识时,根据会话标识,从服务器集群中信息存储地址指向的服务器中查询得到会话标识对应的对称密钥相关信息;
[0117]传输模块303,用于根据对称密钥相关信息生成对称密钥,利用对称密钥与客户端进行加密数据传输。
[0118]进一步地,处理模块301包括:
[0119]处理单元,用于接收客户端的SSL请求,获取SSL请求中携带的会话标识长度信息;
[0120]生成单元,用于根据会话标识长度信息确定会话标识长度为零时,为客户端生成会话标识,并将会话标识发送给客户端,使得客户端接收会话标识,生成并将加密后的预主加密串发送给服务器集群中的任一服务器;
[0121]存储单元,用于接收并对客户端发送的加密后的预主加密串进行解密得到预主加密串,根据预主加密串生成对称密钥相关信息,将会话标识和对称密钥相关信息对应存储在服务器集群中信息存储地址指向的服务器中;
[0122]传输单元,用于根据对称密钥相关信息生成对称密钥,利用对称密钥与客户端进行加密数据传输。
[0123]进一步地,处理模块301还包括:
[0124]确定单元,用于根据会话标识长度信息确定会话标识长度不为零时,确定服务器集群中的任一服务器与客户端再次进行握手过程中;
[0125]相应地,查询模块302包括:
[0126]判断单元,用于判断SSL请求中是否携带会话标识;
[0127]查询单元,用于如果SSL请求中携带会话标识,则获取SSL请求中的会话标识,根据会话标识,从服务器集群中信息存储地址指向的服务器中查询得到会话标识对应的对称密钥相关信息,将会话标识发送给客户端,并向客户端发送握手结束信息。
[0128]进一步地,处理模块301还包括:
[0129]通知单元,用于如果SSL请求中没有携带会话标识,则通知生成单元执行为客户端生成会话标识,并将会话标识发送给客户端的步骤。
[0130]进一步地,查询单元包括:
[0131]查询子单元,用于根据会话标识,查询服务器集群中信息存储地址指向的服务器中会话标识对应的对称密钥相关信息是否存在;
[0132]第一通知子单元,用于如果服务器集群中信息存储地址指向的服务器中会话标识对应的对称密钥相关信息存在,则通知查询单元执行将会话标识发送给客户端,并向客户端发送握手结束信息的步骤;
[0133]第二通知子单元,用于如果服务器集群中信息存储地址指向的服务器中会话标识对应的对称密钥相关信息不存在,则通知生成单元执行为客户端生成会话标识,并将会话标识发送给客户端的步骤。
[0134]进一步地,对称密钥相关信息包括:主密钥master secret、服务器集群中的任一服务器随机数和客户端随机数。
[0135]进一步地,服务器集群中的任一服务器为服务器集群中的任一服务器,服务器集群中信息存储地址指向的服务器独立于服务器集群中的任一服务器。
[0136]本实施例所述的SSL会话重用的服务器集群中的任一服务器,将会话标识和对称密钥相关信息对应存储在服务器集群中信息存储地址指向的服务器中,可以实现对称密钥相关信息生成和存储的分离,服务器集群中的任一服务器都可以从服务器集群中信息存储地址指向的服务器中获取到对称密钥相关信息,可以在服务器集群中实现SSL会话重用。将会话标识和对称密钥相关信息对应存储在服务器集群中信息存储地址指向的服务器中,使得对称密钥相关信息的保存时间可以完全独立,从而服务器集群中生成对称密钥相关信息的服务器down机或者休眠、重启等,都不会影响到对称密钥相关信息的有效期,实现了服务器集群中SSL会话重用的高可用性。
[0137]服务器集群中的任一服务器与前述的方法流程描述对应,不足之处参考上述方法流程的叙述,不再一一赘述。
[0138]上述说明示出并描述了本发明的若干优选实施例,但如前所述,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述发明构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。
【主权项】
1.一种SSL会话重用的方法,其特征在于,所述方法包括: 服务器集群中的任一服务器与客户端进行握手过程中,为所述客户端生成会话标识,将所述会话标识发送给所述客户端,根据所述客户端返回的预主加密串生成对称密钥相关信息,根据所述会话标识获取信息存储地址,将所述会话标识和所述对称密钥相关信息对应存储在服务器集群中信息存储地址指向的服务器中; 所述服务器集群中的任一服务器与所述客户端再次进行握手过程中,当所述服务器集群中的任一服务器能够从所述客户端获取到所述会话标识时,所述服务器集群中的任一服务器根据所述会话标识获取信息存储地址,从所述服务器集群中信息存储地址指向的服务器中查询得到所述会话标识对应的所述对称密钥相关信息; 所述服务器集群中的任一服务器根据所述对称密钥相关信息生成对称密钥,利用所述对称密钥与所述客户端进行加密数据传输。2.如权利要求1所述的方法,其特征在于,服务器集群中的任一服务器与客户端进行握手过程中,为所述客户端生成会话标识,将所述会话标识发送给所述客户端,根据所述客户端返回的预主加密串生成对称密钥相关信息,根据所述会话标识获取信息存储地址,将所述会话标识和所述对称密钥相关信息对应存储在服务器集群中信息存储地址指向的服务器中,包括: 所述服务器集群中的任一服务器接收所述客户端的SSL请求,获取所述SSL请求中携带的会话标识长度信息; 所述服务器集群中的任一服务器根据所述会话标识长度信息确定会话标识长度为零时,为所述客户端生成所述会话标识,并将所述会话标识发送给所述客户端,使得所述客户端接收会话标识,生成并将加密后的所述预主加密串发送给所述服务器集群中的任一服务器; 所述服务器集群中的任一服务器接收并对所述客户端发送的加密后的所述预主加密串进行解密得到所述预主加密串,根据所述预主加密串生成所述对称密钥相关信息,将所述会话标识和所述对称密钥相关信息对应存储在所述服务器集群中信息存储地址指向的服务器中; 所述服务器集群中的任一服务器根据所述对称密钥相关信息生成所述对称密钥,利用所述对称密钥与所述客户端进行加密数据传输。3.如权利要求2所述的方法,其特征在于,所述服务器集群中的任一服务器接收所述客户端的SSL请求,获取所述SSL请求中携带的会话标识长度信息之后,还包括: 所述服务器集群中的任一服务器根据所述会话标识长度信息确定所述会话标识长度不为零时,确定所述服务器集群中的任一服务器与所述客户端再次进行握手过程中; 相应地,当所述服务器集群中的任一服务器能够从所述客户端获取到所述会话标识时,所述服务器集群中的任一服务器根据所述会话标识获取信息存储地址,从所述服务器集群中信息存储地址指向的服务器中查询得到所述会话标识对应的所述对称密钥相关信息,包括: 所述服务器集群中的任一服务器判断所述SSL请求中是否携带所述会话标识; 如果所述SSL请求中携带所述会话标识,则所述服务器集群中的任一服务器获取所述SSL请求中的所述会话标识,所述服务器集群中的任一服务器根据所述会话标识获取信息存储地址,从所述服务器集群中信息存储地址指向的服务器中查询得到所述会话标识对应的所述对称密钥相关信息,将所述会话标识发送给所述客户端,并向所述客户端发送握手结束信息。4.如权利要求3所述的方法,其特征在于,所述服务器集群中的任一服务器判断所述SSL请求中是否携带所述会话标识之后,还包括: 如果所述SSL请求中没有携带所述会话标识,则执行为所述客户端生成所述会话标识,并将所述会话标识发送给所述客户端的步骤。5.如权利要求3所述的方法,其特征在于,所述服务器集群中的任一服务器根据所述会话标识获取信息存储地址,从所述服务器集群中信息存储地址指向的服务器中查询得到所述会话标识对应的所述对称密钥相关信息,包括: 所述服务器集群中的任一服务器根据所述会话标识,查询所述服务器集群中信息存储地址指向的服务器中所述会话标识对应的所述对称密钥相关信息是否存在; 如果所述服务器集群中信息存储地址指向的服务器中所述会话标识对应的所述对称密钥相关信息存在,则执行将所述会话标识发送给所述客户端,并向所述客户端发送握手结束信息的步骤; 如果所述服务器集群中信息存储地址指向的服务器中所述会话标识对应的所述对称密钥相关信息不存在,则执行为所述客户端生成所述会话标识,并将所述会话标识发送给所述客户端的步骤。6.如权利要求1-5任一权利要求所述的方法,其特征在于,所述对称密钥相关信息包括:主密钥master secret、服务器集群中的任一服务器随机数和客户端随机数。7.如权利要求1-5任一权利要求所述的方法,其特征在于,根据所述会话标识获取信息存储地址,包括: 查询预设会话标识存储地址对应表,得到所述会话标识对应的所述信息存储地址,其中,所述预设会话标识存储地址对应表中保存有所述会话标识与所述信息存储地址对应关系;或 对所述会话标识进行哈希运算得到哈希值,将所述哈希值作为所述会话标识对应的所述信息存储地址。8.—种SSL会话重用的服务器,其特征在于,所述服务器集群中的任一服务器包括: 处理模块,用于在所述服务器集群中的任一服务器与客户端进行握手过程中,为所述客户端生成会话标识,将所述会话标识发送给所述客户端,根据所述客户端返回的预主加密串生成对称密钥相关信息,根据所述会话标识获取信息存储地址,将所述会话标识和所述对称密钥相关信息对应存储在服务器集群中信息存储地址指向的服务器中; 查询模块,用于在所述服务器集群中的任一服务器与所述客户端再次进行握手过程中,当所述服务器集群中的任一服务器能够从所述客户端获取到所述会话标识时,根据所述会话标识获取信息存储地址,从所述服务器集群中信息存储地址指向的服务器中查询得到所述会话标识对应的所述对称密钥相关信息; 传输模块,用于根据所述对称密钥相关信息生成对称密钥,利用所述对称密钥与所述客户端进行加密数据传输。9.如权利要求8所述的服务器,其特征在于,所述处理模块包括: 处理单元,用于接收所述客户端的SSL请求,获取所述SSL请求中携带的会话标识长度信息; 生成单元,用于根据所述会话标识长度信息确定会话标识长度为零时,为所述客户端生成所述会话标识,并将所述会话标识发送给所述客户端,使得所述客户端接收会话标识,生成并将加密后的所述预主加密串发送给所述服务器; 存储单元,用于接收并对所述客户端发送的加密后的所述预主加密串进行解密得到所述预主加密串,根据所述预主加密串生成所述对称密钥相关信息,将所述会话标识和所述对称密钥相关信息对应存储在所述服务器集群中信息存储地址指向的服务器中; 传输单元,用于根据所述对称密钥相关信息生成所述对称密钥,利用所述对称密钥与所述客户端进行加密数据传输。10.如权利要求9所述的服务器,其特征在于,所述处理模块还包括: 确定单元,用于根据所述会话标识长度信息确定所述会话标识长度不为零时,确定所述服务器集群中的任一服务器与所述客户端再次进行握手过程中; 相应地,所述查询模块包括: 判断单元,用于判断所述SSL请求中是否携带所述会话标识; 查询单元,用于如果所述SSL请求中携带所述会话标识,则获取所述SSL请求中的所述会话标识,根据所述会话标识获取信息存储地址,从所述服务器集群中信息存储地址指向的服务器中查询得到所述会话标识对应的所述对称密钥相关信息,将所述会话标识发送给所述客户端,并向所述客户端发送握手结束信息。11.如权利要求10所述的服务器,其特征在于,所述处理模块还包括: 通知单元,用于如果所述SSL请求中没有携带所述会话标识,则通知所述生成单元执行为所述客户端生成所述会话标识,并将所述会话标识发送给所述客户端的步骤。12.如权利要求10所述的服务器,其特征在于,所述查询单元包括: 查询子单元,用于根据所述会话标识,查询所述服务器集群中信息存储地址指向的服务器中所述会话标识对应的所述对称密钥相关信息是否存在; 第一通知子单元,用于如果所述服务器集群中信息存储地址指向的服务器中所述会话标识对应的所述对称密钥相关信息存在,则通知所述查询单元执行将所述会话标识发送给所述客户端,并向所述客户端发送握手结束信息的步骤; 第二通知子单元,用于如果所述服务器集群中信息存储地址指向的服务器中所述会话标识对应的所述对称密钥相关信息不存在,则通知所述生成单元执行为所述客户端生成所述会话标识,并将所述会话标识发送给所述客户端的步骤。13.如权利要求8-12任一权利要求所述的服务器,其特征在于,所述对称密钥相关信息包括:主密钥master secret、服务器集群中的任一服务器随机数和客户端随机数。14.如权利要求8-12任一权利要求所述的服务器,其特征在于,所述处理模块还包括: 第一地址获取单元,用于查询预设会话标识存储地址对应表,得到所述会话标识对应的所述信息存储地址,其中,所述预设会话标识存储地址对应表中保存有所述会话标识与所述信息存储地址对应关系;或 第二地址获取单元,用于对所述会话标识进行哈希运算得到哈希值,将所述哈希值作为所述会话标识对应的所述信息存储地址。
【文档编号】H04L29/06GK106059986SQ201510195065
【公开日】2016年10月26日
【申请日】2015年4月22日
【发明人】向西西, 杨洋
【申请人】阿里巴巴集团控股有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1