客户端与服务器进行握手的方法、装置及系统的制作方法

文档序号:10515450阅读:395来源:国知局
客户端与服务器进行握手的方法、装置及系统的制作方法
【专利摘要】本发明公开了一种客户端与服务器进行握手的方法、装置及系统,涉及互联网技术领域,为解决私钥部署安全性低的问题而发明。本发明的方法包括:客户端通过缓存服务器向回源服务器发送握手请求信息,回源服务器根据自身管理的私钥对证书信息进行加密,通过缓存服务器向客户端发送加密后的证书信息,客户端对证书信息进行验证,并通过缓存服务器向回源服务器发送密钥生成信息,回源服务器通过私钥对密钥生成信息进行解密,获得对称密钥。本发明主要应用于内容分发网络中。
【专利说明】
客户端与服务器进行握手的方法、装置及系统
技术领域
[0001]本发明涉及互联网技术领域,尤其涉及一种客户端与服务器进行握手的方法、装置及系统。
【背景技术】
[0002]客户端与服务器之间通常使用超文本传输协议(Hypertext Transfer Protocol,简称HTTP)进行通信,HTTP协议的特点是以明文形式进行数据传输。对于银行的网银系统或电商的支付系统而言,账号、密码等信息涉及用户的金融安全,不宜使用明文形式进行传输。
[0003]为改善数据传输的安全性,目前出现了一种新的传输协议,该协议全称为超文本传输安全协议(Hypertext Transfer Protocol Secure,简称 HTTPS)。基于 HTTPS 协议,客户端与服务器之间传输的所有数据均会被加密,第三方在未获得加密密钥的情况下无法对加密数据进行破解。由于需要在客户端和服务器两侧使用加密密钥进行数据加密,因此在基于HTTPS协议进行通信之前,首先需要客户端与服务器进行握手,通过证书认证及密钥协商等流程是双方获得加密密钥。实际应用中,握手过程涉及两套密钥,一套为非对称密钥,另一套为对称密钥。客户端和服务器之间在握手过程中传输的所有信息(例如证书信息、对称密钥等)全部使用非对称密钥加密,服务器拥有自己的私钥,用于对发出的信息进行加密或者对接收的信息进行解密;客户端拥有与该私钥对应的公钥,用于对服务器通过私钥加密的信息进行解密,或者对发出的信息进行加密,以使服务器使用私钥解密。对称密钥是客户端与服务器通过握手过程协商获得的加密密钥,用于后续传输HTTPS数据时加解密使用。
[0004]内容分发网络(Content Distribut1n Network,简称CDN)是一种区别于传统网络的新型网络架构,其特点是在客户端和服务器之间增设了一跳缓存服务器。在增设缓存服务器后,原有的服务器被称为回源服务器。当在CDN网络中使用HTTPS协议时,现有技术一般通过缓存服务器代替回源服务器与客户端进行握手,即由缓存服务器与客户端进行证书认证及密钥协商,因此需要将回源服务器的私钥部署在缓存服务器中。通常,回源服务器隶属于内容提供商,而缓存服务器则由内容分发者管理,将内容提供商的站点私钥开放给第三方使用存在较大的安全风险,一旦第三方服务器被黑客攻击导致站点私钥泄露,那么将会给内容提供商造成无法估量的损失。

【发明内容】

[0005]本发明提供了一种客户端与服务器进行握手的方法、装置及系统,能够解决私钥部署安全性低的问题。
[0006]为解决上述问题,第一方面,本发明提供了一种客户端与服务器进行握手的方法,所述方法包括:
[0007]缓存服务器向回源服务器转发客户端发送的握手请求信息,所述握手请求信息用于请求与回源服务器建立握手流程;
[0008]向客户端转发回源服务器发送的证书信息,所述证书信息由回源服务器根据私钥进行加密;
[0009]在客户端对证书信息进行验证后,向回源服务器转发客户端发送的密钥生成信息,以便回源服务器根据私钥解密后获得对称密钥。
[0010]第二方面,本发明还提供了一种客户端与服务器进行握手的方法,所述方法包括:
[0011]回源服务器通过缓存服务器接收客户端发送的握手请求信息,所述握手请求信息用于请求与回源服务器建立握手流程;
[0012]根据自身管理的私钥对证书信息进行加密;
[0013]通过缓存服务器向客户端发送加密后的证书信息,以便客户端对证书信息进行验证;
[0014]通过缓存服务器接收客户端发送的密钥生成信息;
[0015]根据私钥对密钥生成信息进行解密,获得对称密钥。
[0016]第三方面,本发明还提供了一种客户端与服务器进行握手的装置,所述装置位于缓存服务器一侧,所述装置包括:
[0017]第一转发单元,用于向回源服务器转发客户端发送的握手请求信息,所述握手请求信息用于请求与回源服务器建立握手流程;
[0018]第二转发单元,用于向客户端转发回源服务器发送的证书信息,所述证书信息由回源服务器根据私钥进行加密;
[0019]第三转发单元,用于在客户端对证书信息进行验证后,向回源服务器转发客户端发送的密钥生成信息,以便回源服务器根据私钥解密后获得对称密钥。
[0020]第四方面,本发明还提供了一种客户端与服务器进行握手的装置,所述装置位于回源服务器一侧,所述装置包括:
[0021]接收单元,用于通过缓存服务器接收客户端发送的握手请求信息,所述握手请求信息用于请求与回源服务器建立握手流程;
[0022]处理单元,用于根据自身管理的私钥对证书信息进行加密;
[0023]发送单元,用于通过缓存服务器向客户端发送加密后的证书信息,以便客户端对证书信息进行验证;
[0024]所述接收单元还用于通过缓存服务器接收客户端发送的密钥生成信息;
[0025]所述处理单元还用于根据私钥对密钥生成信息进行解密,获得对称密钥。
[0026]第五方面,本发明还提供了一种客户端与服务器进行握手的系统,所述系统包括客户端、缓存服务器及回源服务器,其中:
[0027]所述客户端,用于通过所述缓存服务器向所述回源服务器发送握手请求信息,所述握手请求信息用于请求与所述回源服务器建立握手流程;
[0028]所述回源服务器,用于根据自身管理的私钥对证书信息进行加密,通过所述缓存服务器向所述客户端发送加密后的证书信息;
[0029]所述客户端还用于对证书信息进行验证,并通过所述缓存服务器向所述回源服务器发送密钥生成信息;
[0030]所述回源服务器还用于通过私钥对所述密钥生成信息进行解密,获得所述对称密钥。
[0031]本发明提供的客户端与服务器进行握手的方法、装置及系统,能够由回源服务器直接与客户端进行握手,缓存服务器仅对两者交互的握手信息进行代理转发。由于转发不涉及对往来信息的加解密,因此缓存服务器无需使用回源服务器的私钥。与现有技术中由缓存服务器与客户端进行握手相比,本发明无需向缓存服务器开放回源服务器的私钥,因此可以消除通过第三方泄露站点私钥的隐患,由此提高私钥部署的安全性。
【附图说明】
[0032]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0033]图1为本发明实施例提供的一种客户端与服务器进行握手的方法流程图;
[0034]图2为本发明实施例提供的另一种客户端与服务器进行握手的方法流程图;
[0035]图3为本发明实施例提供的又一种客户端与服务器进行握手的方法流程图;
[0036]图4为本发明实施例提供的再一种客户端与服务器进行握手的方法流程图;
[0037]图5为本发明实施例提供的一种客户端与服务器进行握手的装置的组成框图;
[0038]图6为本发明实施例提供的另一种客户端与服务器进行握手的装置的组成框图;
[0039]图7为本发明实施例提供的又一种客户端与服务器进行握手的装置的组成框图;
[0040]图8为本发明实施例提供的再一种客户端与服务器进行握手的装置的组成框图;
[0041]图9为本发明实施例提供的一种客户端与服务器进行握手的系统的示意图。
【具体实施方式】
[0042]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0043]本发明实施例提供了一种客户端与服务器进行握手的方法,该方法应用于缓存服务器侧。如图1所示,该方法包括:
[0044]101、缓存服务器向回源服务器转发客户端发送的握手请求信息。
[0045]该握手请求信息由客户端发出,用于请求与回源服务器建立握手流程。在⑶N网络中,客户端与回源服务器之间的一切信息交互全部通过缓存服务器转发。本步骤中,客户端向回源服务器发送的握手请求信息发送给缓存服务器。
[0046]缓存服务器接收到握手请求信息后,将该信息转发给相应的回源服务器。所谓相应的回源服务器是指客户端请求建立握手连接的回源服务器。
[0047]按照现有的安全套接层(Secure Sockets Layer,简称SSL)协议规定,在建立HTTPS连接之前,客户端或服务器向对方发送任意信息,即表示向对方请求握手,因此本实施例中握手请求信息中可以携带任意数据,本实施例不对握手请求信息的内容进行限制。在本实施例的一种实现方式中,客户端发送的握手请求信息可以是“Hello”。
[0048]本步骤中,客户端无需对握手请求信息进行加密,这是由于:握手请求信息仅用于向对端表达希望进行握手的意愿,其信息内容不具有实际含义,更不涉及敏感信息,因此客户端无需对其进行加密。
[0049]102、缓存服务器向客户端转发回源服务器发送的证书信息。
[0050]回源服务器接收到握手请求信息后向客户端返回证书信息,该证书信息中携带有回源服务器在第三方证书管理部门注册申请的数字证书。缓存服务器将回源服务器发送的证书信息转发给客户端,以便客户端根据该证书信息对回源服务器的可靠性进行验证。
[0051]本实施例中,回源服务器通过自身保存管理的私钥对证书信息进行加密,客户端使用对应该私钥的公钥对接收到的证书信息进行解密。回源服务器的公钥保存在第三方站点,网络中的任何设备都可以向该第三方节点请求获取该公钥。客户端可以根据回源服务器的域名向第三方站点请求相应的公钥,也可以接收与证书信息一同发送的公钥。对于后者方式,回源服务器需要将自己的公连同证书信息发送给客户端。
[0052]103、在客户端对证书信息进行验证后,缓存服务器向回源服务器转发客户端发送的密钥生成信息。
[0053]客户端通过回源服务器的公钥对证书信息进行解密,查看其中记录的域名是否与客户端请求的域名一致。如果两者一致,则说明客户端请求的域名是回源服务器的真实域名,客户端信赖回源服务器,完成对证书信息的验证。如果两者不一致,客户端不信任回源服务器,终止图1中的后续步骤,握手连接失败。
[0054]在通过验证后,客户端将秘钥生成信息发送给缓存服务器,由缓存服务器将该信息转发给回源服务器。秘钥生成信息用于使回源服务器获得与客户端在后续通信过程中使用的加密密钥,该加密密钥是区别于前述私钥、公钥的另一个密钥。由于客户端和回源服务器在通信过程中使用相同的加密密钥对HTTPS数据进行加密,因此这个加密密钥又称为对称密钥。
[0055]本步骤中,客户端可以自己生成这个对称密钥,并将生成的对称密钥以密钥生成信息的形式发送回源服务器。此外,客户端也可以通过密钥生成信息将生成对称密钥的必要信息(例如随机数)发送给回源服务器,由回源服务器根据该必要信息自己生成对称密钥。
[0056]本实施例中,客户端可以使用回源服务器的公钥对密钥生成信息进行加密。回源服务器在接收到密钥生成信息后,通过自身保存管理的私钥对密钥生成信息进行解密,获得对称密钥。
[0057]至此,客户端与回源服务器之间完成了握手流程,建立了 HTTPS连接,此后两者即可以使用对称秘钥对传输的HTTPS信息进行加解密了。
[0058]本实施例中,回源服务器的私钥由回源服务器自己保存管理,与客户端之间的握手流程也由回源服务器亲自参与,而第三方的缓存服务器仅扮演数据转发的角色,在握手过程中对双方交互的握手信息进行传递。由于缓存服务器无需知道握手信息中的具体内容,不必使用回源服务器的私钥对握手信息进行加解密,因此可以不将回源服务器的私钥开放给缓存服务器,由此提高了私钥部署的安全性。
[0059]本发明实施例还提供了一种客户端与服务器进行握手的方法,该方法应用于回源服务器侧。如图2所示,该方法包括:
[0060]201、回源服务器通过缓存服务器接收客户端发送的握手请求信息。
[0061]客户端发送的握手请求信息经由缓存服务器转发给回源服务器,该握手请求信息与图1步骤101中的握手请求信息相同。
[0062]202、回源服务器根据自身管理的私钥对证书信息进行加密。
[0063]在接收到握手请求信息后,回源服务器获取自身的证书信息,并使用私钥对其加
LU O
[0064]本实施例中,回源服务器的私钥保存在回源服务器本地,而不开放给缓存服务器。因此需要回源服务器使用私钥对证书信息进行加密。
[0065]203、回源服务器通过缓存服务器向客户端发送加密后的证书信息。
[0066]回源服务器将加密后的证书信息发送缓存服务器,由缓存服务器转发给客户端进行验证。
[0067]如前所述,客户端可以通过第三方站点或者回源服务器获取对应该私钥的公钥。客户端使用对应的公钥对加密的证书信息进行解密,然后对证书信息进行验证。当验证通过时,客户端生成秘钥生成信息,并通过缓存服务器发送给回源服务器,而当验证失败时,不再执行后续步骤,握手流程终止。
[0068]本实施例中,客户端使用回源服务器的公钥对密钥生成信息进行加密,然后将加密后的密钥生成信息发送给缓存服务器进行转发。
[0069]204、回源服务器通过缓存服务器接收客户端发送的密钥生成信息。
[0070]205、回源服务器根据私钥对密钥生成信息进行解密,获得对称密钥。
[0071]由于密钥生成信息是通过与私钥对应的公钥加密的,因此可以通过私钥解密。回源服务器在使用私钥对密钥生成信息进行解密后,获得对称密钥。
[0072]本实施例中,密钥生成信息中可以直接携带客户端生成的对称密钥,也可以仅携带生成加密密钥的必要信息(例如随机数),由回源服务器根据随机数自行生成与客户端侧相同的对称密钥。
[0073]至此,客户端与回源服务器之间完成了握手流程,建立了 HTTPS连接,此后两者即可以使用对称秘钥对传输的HTTPS信息进行加解密了。
[0074]本实施例中,回源服务器的私钥由回源服务器自己保存管理,与客户端之间的握手流程也由回源服务器亲自参与,而第三方的缓存服务器仅扮演数据转发的角色,在握手过程中对双方交互的握手信息进行传递。由于缓存服务器无需知道握手信息中的具体内容,不必使用回源服务器的私钥对握手信息进行加解密,因此可以不将回源服务器的私钥开放给缓存服务器,由此提高了私钥部署的安全性。
[0075]进一步的,作为对图1和图2所示方法的细化,本发明实施例还提供了一种客户端与服务器进行握手的方法,该方法依赖于客户端、缓存服务器及回源服务器三者实现。如图3所示,该方法包括:
[0076]301、缓存服务器根据握手请求信息中的域名向回源服务器转发握手请求信息。
[0077]客户端在向缓存服务器上报握手请求信息时,将回源服务器的域名一同发送给缓存服务器。缓存服务器将该域名发送给域名系统(Domain Name System,简称DNS)服务器进行解析,获得回源服务器的网间协议(Internet Protocol,简称IP)地址,然后以该IP地址作为目的IP地址,将握手请求信息发送给回源服务器。
[0078]302、回源服务器根据自身管理的私钥对证书信息进行加密。
[0079]证书信息可以包括下述具体内容:第三方电子签证机关的信息、公钥用户信息、权威机构的签字和证书有效期,其中,公钥用户信息具体可以是回源服务器的域名信息。本实施例中,证书的格式和验证方法可以遵循X.509国际标准执行。
[0080]本实施例中,对证书信息加密的目的有二:第一,防止非法第三方截获并篡改证书信息,特别是对回源服务器域名的篡改,能够直接导致客户端验证失败,终止握手流程。第二,侧面验证客户端侧使用的公钥是否与回源服务器使用的私钥匹配。在非对称加密算法中,一对匹配的公钥和私钥之间能够相互进行数据加解密,即通过私钥加密的数据可以使用公钥解密,通过公钥加密的数据也可以使用私钥解密。但是相互加解密的前提是公私钥是匹配的,不匹配的公私钥之间无法成功解密。如果客户端使用的公钥能够对回源服务器使用私钥加密的证书信息进行解密,那么可以确定客户端使用的公钥与回源服务器使用的私钥匹配。
[0081]303、缓存服务器将加密后的证书信息转发给客户端进行验证。
[0082]按照现有协议规定,客户端在通过域名定位到作为握手对象的服务器后,客户端与服务器之间即建立了握手连接,服务器可以通过该连接直接向发起握手请求的客户端返回数据,而无需对客户端进行查找。本步骤中,回源服务器可以通过缓存服务器直接将证书信息发送给发起握手请求的客户端。
[0083]304、客户端使用公钥对证书信息进行解密并验证。
[0084]客户端使用公钥对证书信息进行解密,从中获取经由第三方认证机构认证的域名信息,然后与自身的请求的域名进行比对。当两者一致时验证通过。
[0085]305、在验证通过后,客户端生成第一随机数,并使用公钥对第一随机数进行加密。
[0086]实际应用中,客户端可以使用伪随机数发生器生成第一随机数。
[0087]本实施例中,客户端向回源服务器提供生成对称密钥的必要信息,即提供步骤305中生成的第一随机数。
[0088]306、缓存服务器将加密的第一随机数转发给回源服务器。
[0089]307、回源服务器生成第二随机数,并根据第一随机数和第二随机数生成对称密钥。
[0090]回源服务器使用私钥对接收到的第一随机数进行解密,并生成一个第二随机数,然后以第一随机数和第二随机数为基础,通过预设算法生成对称密钥。实际应用中,回源服务器可以使用伪随机数发生器生成第二随机数。
[0091]308、回源服务器通过缓存服务器将第二随机数发送给客户端。
[0092]回源服务器通过私钥对生成的第二随机数进行加密,通过缓存服务器将其发送给客户端。客户端使用公钥对加密的第二随机数进行解密,然后结合自身生成的第一随机数,使用于回源服务器侧相同的预设算法,生成相同的对称密钥。由此,客户端和回源服务器两侧就分别获得了根据第一随机数和第二随机数生成的对称密钥。由于两侧生成对称密钥的基础都是第一随机数和第二随机数,而且使用了相同的预设算法,因此客户端和回源服务器两侧生成的对称密钥是相同的。
[0093]进一步的,作为对图1和图2所示方法的细化,本发明实施例还提供了一种客户端与服务器进行握手的方法,该方法依赖于客户端、缓存服务器及回源服务器三者实现。如图4所示,该方法包括:
[0094]401、缓存服务器根据握手请求信息中的域名向回源服务器转发握手请求信息。
[0095]本步骤的实现方式与图3步骤301的实现方式相同,此处不再赘述。
[0096]402、回源服务器根据自身管理的私钥对证书信息进行加密。
[0097]本实施例中,由客户端根据第一随机数和第二随机数生成对称密钥,然后发送给回源服务器使用。因此在本步骤中,回源服务器需要生成一个第二随机数,并且将第二随机数添加到证书信息中发送给客户端。
[0098]403、缓存服务器将加密后的证书信息转发给客户端进行验证。
[0099]404、客户端使用公钥对证书信息进行解密并验证。
[0100]405、客户端根据第一随机数和第二随机数生成对称密钥,并通过公钥对对称密钥进行加密。
[0101]客户端使用伪随机数发生器生成一个第一随机数,然后结合证书信息中的第二随机数,通过预设算法生成对称密钥,并将对称密钥发送给回源服务器使用。
[0102]406、缓存服务器向回源服务器转发客户端生成对称密钥。
[0103]回源服务器使用私钥解密获得对称密钥,由此完成握手流程,客户端与回源服务器两侧均获得了相同的对称密钥。
[0104]进一步的,作为对上述方法的实现,本发明实施例还提供了一种客户端与服务器进行握手的装置。该装置位于缓存服务器中,或者独立于缓存服务器但是与缓存服务器之间建立有数据交互关系,用以对上述方法进行实现。如图5所示,该装置包括:
[0105]第一转发单元51,用于向回源服务器转发客户端发送的握手请求信息,握手请求信息用于请求与回源服务器建立握手流程。
[0106]该握手请求信息由客户端发出,用于请求与回源服务器建立握手流程。在⑶N网络中,客户端与回源服务器之间的一切信息交互全部通过缓存服务器转发。客户端向回源服务器发送的握手请求信息发送给缓存服务器。缓存服务器接收到握手请求信息后,将该信息转发给相应的回源服务器。所谓相应的回源服务器是指客户端请求建立握手连接的回源服务器。
[0107]第二转发单元52,用于向客户端转发回源服务器发送的证书信息,证书信息由回源服务器根据私钥进行加密。
[0108]回源服务器接收到握手请求信息后向客户端返回证书信息,该证书信息中携带有回源服务器在第三方证书管理部门注册申请的数字证书。缓存服务器将回源服务器发送的证书信息转发给客户端,以便客户端根据该证书信息对回源服务器的可靠性进行验证。
[0109]本实施例中,回源服务器通过自身保存管理的私钥对证书信息进行加密,客户端使用对应该私钥的公钥对接收到的证书信息进行解密。回源服务器的公钥保存在第三方站点,网络中的任何设备都可以向该第三方节点请求获取该公钥。客户端可以根据回源服务器的域名向第三方站点请求相应的公钥,也可以接收与证书信息一同发送的公钥。对于后者方式,回源服务器需要将自己的公连同证书信息发送给客户端。
[0110]第三转发单元53,用于在客户端对证书信息进行验证后,向回源服务器转发客户端发送的密钥生成信息,以便回源服务器根据私钥解密后获得对称密钥。
[0111]客户端通过回源服务器的公钥对证书信息进行解密,查看其中记录的域名是否与客户端请求的域名一致。如果两者一致,则说明客户端请求的域名是回源服务器的真实域名,客户端信赖回源服务器,完成对证书信息的验证。如果两者不一致,客户端不信任回源服务器,握手连接失败。
[0112]在通过验证后,客户端将秘钥生成信息发送给缓存服务器,由缓存服务器将该信息转发给回源服务器。秘钥生成信息用于使回源服务器获得与客户端在后续通信过程中使用的加密密钥,该加密密钥是区别于前述私钥、公钥的另一个密钥。由于客户端和回源服务器在通信过程中使用相同的加密密钥对HTTPS数据进行加密,因此这个加密密钥又称为对称密钥。
[0113]客户端可以自己生成这个对称密钥,并将生成的对称密钥以密钥生成信息的形式发送回源服务器。此外,客户端也可以通过密钥生成信息将生成对称密钥的必要信息(例如随机数)发送给回源服务器,由回源服务器根据该必要信息自己生成对称密钥。
[0114]本实施例中,客户端可以使用回源服务器的公钥对密钥生成信息进行加密。回源服务器在接收到密钥生成信息后,通过自身保存管理的私钥对密钥生成信息进行解密,获得对称密钥。
[0115]进一步的,第一转发单元51用于根据握手请求信息中的域名向回源服务器转发握手请求信息。
[0116]客户端在向缓存服务器上报握手请求信息时,将回源服务器的域名一同发送给缓存服务器。缓存服务器将该域名发送给DNS服务器进行解析,获得回源服务器的IP地址,然后以该IP地址作为目的IP地址,将握手请求信息发送给回源服务器。
[0117]进一步的,第三转发单元53用于向回源服务器转发客户端生成的第一随机数,以便回源服务器根据第一随机数以及自身生成的第二随机数,生成对称密钥;
[0118]进一步的,如图6所示,该装置还包括:
[0119]第四转发单元54,用于向客户端转发回源服务器生成的第二随机数,以便客户端根据第一随机数和第二随机数生成与回源服务器相同的对称密钥。
[0120]实际应用中,客户端可以使用伪随机数发生器生成第一随机数。回源服务器使用私钥对接收到的第一随机数进行解密,并生成一个第二随机数,然后以第一随机数和第二随机数为基础,通过预设算法生成对称密钥。实际应用中,回源服务器可以使用伪随机数发生器生成第二随机数。
[0121]回源服务器通过私钥对生成的第二随机数进行加密,通过缓存服务器将其发送给客户端。客户端使用公钥对加密的第二随机数进行解密,然后结合自身生成的第一随机数,使用于回源服务器侧相同的预设算法,生成相同的对称密钥。由此,客户端和回源服务器两侧就分别获得了根据第一随机数和第二随机数生成的对称密钥。由于两侧生成对称密钥的基础都是第一随机数和第二随机数,而且使用了相同的预设算法,因此客户端和回源服务器两侧生成的对称密钥是相同的。
[0122]进一步的,第二转发单元52转发的证书信息中携带有回源服务器生成的第二随机数;
[0123]第三转发单元53用于向回源服务器转发客户端生成的对称密钥,对称密钥为客户端根据自身生成的第一随时数以及接收的第二随机数生成的对称密钥。
[0124]本实施例中,由客户端根据第一随机数和第二随机数生成对称密钥,然后发送给回源服务器使用。因此回源服务器需要生成一个第二随机数,并且将第二随机数添加到证书信息中发送给客户端。客户端使用伪随机数发生器生成一个第一随机数,然后结合证书信息中的第二随机数,通过预设算法生成对称密钥,并将对称密钥发送给回源服务器使用。回源服务器使用私钥解密获得对称密钥,由此完成握手流程,客户端与回源服务器两侧均获得了相同的对称密钥。
[0125]进一步的,作为对上述方法的实现,本发明实施例还提供了一种客户端与服务器进行握手的装置。该装置位于回源服务器中,或者独立于回源服务器但是与回源服务器之间建立有数据交互关系,用以对上述方法进行实现。如图7所示,该装置包括:接收单元71、处理单元72及发送单元73。其中,
[0126]接收单元71,用于通过缓存服务器接收客户端发送的握手请求信息,握手请求信息用于请求与回源服务器建立握手流程;
[0127]处理单元72,用于根据自身管理的私钥对证书信息进行加密;
[0128]本实施例中,回源服务器的私钥保存在回源服务器本地,而不开放给缓存服务器。因此需要回源服务器使用私钥对证书信息进行加密。
[0129]发送单元73,用于通过缓存服务器向客户端发送加密后的证书信息,以便客户端对证书信息进行验证;
[0130]如前所述,客户端可以通过第三方站点或者回源服务器获取对应该私钥的公钥。客户端使用对应的公钥对加密的证书信息进行解密,然后对证书信息进行验证。当验证通过时,客户端生成秘钥生成信息,并通过缓存服务器发送给回源服务器,而当验证失败时,握手流程终止。
[0131]本实施例中,客户端使用回源服务器的公钥对密钥生成信息进行加密,然后将加密后的密钥生成信息发送给缓存服务器进行转发。
[0132]回源服务器将加密后的证书信息发送缓存服务器,由缓存服务器转发给客户端进行验证。
[0133]接收单元71还用于通过缓存服务器接收客户端发送的密钥生成信息;
[0134]处理单元72还用于根据私钥对密钥生成信息进行解密,获得对称密钥。
[0135]由于密钥生成信息是通过与私钥对应的公钥加密的,因此可以通过私钥解密。回源服务器在使用私钥对密钥生成信息进行解密后,获得对称密钥。
[0136]本实施例中,密钥生成信息中可以直接携带客户端生成的对称密钥,也可以仅携带生成加密密钥的必要信息(例如随机数),由回源服务器根据随机数自行生成与客户端侧相同的对称密钥。
[0137]进一步的,接收单元71接收的密钥生成信息为客户端生成的第一随机数;
[0138]如图8所示,该装置进一步包括:
[0139]生成单元74,用于根据第一随机数和自身生成的第二随机数生成对称密钥;
[0140]发送单元73,用于在获得对称密钥之后,通过缓存服务器将第二随机数发送给客户端,以便客户端根据第一随机数和第二随机数生成相同的对称密钥。
[0141]实际应用中,客户端可以使用伪随机数发生器生成第一随机数。回源服务器使用私钥对接收到的第一随机数进行解密,并生成一个第二随机数,然后以第一随机数和第二随机数为基础,通过预设算法生成对称密钥。实际应用中,回源服务器可以使用伪随机数发生器生成第二随机数。
[0142]回源服务器通过私钥对生成的第二随机数进行加密,通过缓存服务器将其发送给客户端。客户端使用公钥对加密的第二随机数进行解密,然后结合自身生成的第一随机数,使用于回源服务器侧相同的预设算法,生成相同的对称密钥。由此,客户端和回源服务器两侧就分别获得了根据第一随机数和第二随机数生成的对称密钥。由于两侧生成对称密钥的基础都是第一随机数和第二随机数,而且使用了相同的预设算法,因此客户端和回源服务器两侧生成的对称密钥是相同的。
[0143]进一步的,发送单元73发送的证书信息中携带有回源服务器生成的第二随机数;
[0144]接收单元71用于通过缓存服务器接收客户端发送的对称密钥,对称密钥为客户端根据自身生成的第一随机数以及证书信息中的第二随机数生成的对称密钥。
[0145]本实施例中,由客户端根据第一随机数和第二随机数生成对称密钥,然后发送给回源服务器使用。因此回源服务器需要生成一个第二随机数,并且将第二随机数添加到证书信息中发送给客户端。客户端使用伪随机数发生器生成一个第一随机数,然后结合证书信息中的第二随机数,通过预设算法生成对称密钥,并将对称密钥发送给回源服务器使用。回源服务器使用私钥解密获得对称密钥,由此完成握手流程,客户端与回源服务器两侧均获得了相同的对称密钥。
[0146]进一步的,作为对上述方法的实现,本发明实施例还提供了一种客户端与服务器进行握手的系统。如图9所示,该系统包括客户端91、缓存服务器92以及回源服务器93。其中,缓存服务器92包含如前图5或图6所示的装置,或者独立于该装置但是与该装置具有数据交互关系;回源服务器93包含如前图7或图8所示的装置,或者独立于该装置但是与该装置具有数据交互关系。
[0147]客户端91,用于通过缓存服务器92向回源服务器93发送握手请求信息,握手请求信息用于请求与回源服务器93建立握手流程;
[0148]该握手请求信息由客户端91发出,用于请求与回源服务器93建立握手流程。在⑶N网络中,客户端91与回源服务器93之间的一切信息交互全部通过缓存服务器92转发。客户端91向回源服务器93发送的握手请求信息发送给缓存服务器92。缓存服务器92接收到握手请求信息后,将该信息转发给相应的回源服务器93。所谓相应的回源服务器93是指客户端91请求建立握手连接的回源服务器93。
[0149]回源服务器93,用于根据自身管理的私钥对证书信息进行加密,通过缓存服务器92向客户端91发送加密后的证书信息;
[0150]回源服务器93接收到握手请求信息后向客户端91返回证书信息,该证书信息中携带有回源服务器93在第三方证书管理部门注册申请的数字证书。缓存服务器92将回源服务器93发送的证书信息转发给客户端91,以便客户端91根据该证书信息对回源服务器93的可靠性进行验证。
[0151]客户端91还用于对证书信息进行验证,并通过缓存服务器92向回源服务器93发送密钥生成信息;
[0152]回源服务器93还用于通过私钥对密钥生成信息进行解密,获得对称密钥。
[0153]客户端91通过回源服务器93的公钥对证书信息进行解密,查看其中记录的域名是否与客户端91请求的域名一致。如果两者一致,则说明客户端91请求的域名是回源服务器93的真实域名,客户端91信赖回源服务器93,完成对证书信息的验证。如果两者不一致,客户端91不信任回源服务器93,握手连接失败。
[0154]在通过验证后,客户端91将秘钥生成信息发送给缓存服务器92,由缓存服务器92将该信息转发给回源服务器93。秘钥生成信息用于使回源服务器93获得与客户端91在后续通信过程中使用的加密密钥,该加密密钥是区别于前述私钥、公钥的另一个密钥。由于客户端91和回源服务器93在通信过程中使用相同的加密密钥对HTTPS数据进行加密,因此这个加密密钥又称为对称密钥。
[0155]本实施例提供的客户端与服务器进行握手的装置及系统,能够由回源服务器直接与客户端进行握手,缓存服务器仅对两者交互的握手信息进行代理转发。由于转发不涉及对往来信息的加解密,因此缓存服务器无需使用回源服务器的私钥。与现有技术中由缓存服务器与客户端进行握手相比,本实施例无需向缓存服务器开放回源服务器的私钥,因此可以消除通过第三方泄露站点私钥的隐患,由此提高私钥部署的安全性。
[0156]以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
[0157]通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如R0M/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
[0158]最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
【主权项】
1.一种客户端与服务器进行握手的方法,其特征在于,所述方法包括: 缓存服务器向回源服务器转发客户端发送的握手请求信息,所述握手请求信息用于请求与回源服务器建立握手流程; 向客户端转发回源服务器发送的证书信息,所述证书信息由回源服务器根据私钥进行加密; 在客户端对证书信息进行验证后,向回源服务器转发客户端发送的密钥生成信息,以便回源服务器根据私钥解密后获得对称密钥。2.根据权利要求1所述的方法,其特征在于,所述向回源服务器转发客户端发送的握手请求信息,包括: 根据握手请求信息中的域名向回源服务器转发握手请求信息。3.根据权利要求1所述的方法,其特征在于,所述向回源服务器转发客户端发送的密钥生成信息,包括: 向回源服务器转发客户端生成的第一随机数,以便回源服务器根据第一随机数以及自身生成的第二随机数,生成对称密钥; 所述方法进一步包括: 向客户端转发回源服务器生成的第二随机数,以便客户端根据第一随机数和第二随机数生成与回源服务器相同的对称密钥。4.根据权利要求1所述的方法,其特征在于,所述证书信息中携带有回源服务器生成的第二随机数; 所述向回源服务器转发客户端发送的密钥生成信息,包括: 向回源服务器转发客户端生成的对称密钥,所述对称密钥为客户端根据自身生成的第一随时数以及接收的第二随机数生成的对称密钥。5.一种客户端与服务器进行握手的方法,其特征在于,所述方法包括: 回源服务器通过缓存服务器接收客户端发送的握手请求信息,所述握手请求信息用于请求与回源服务器建立握手流程; 根据自身管理的私钥对证书信息进行加密; 通过缓存服务器向客户端发送加密后的证书信息,以便客户端对证书信息进行验证; 通过缓存服务器接收客户端发送的密钥生成信息; 根据私钥对密钥生成信息进行解密,获得对称密钥。6.根据权利要求5所述的方法,其特征在于,所述密钥生成信息为客户端生成的第一随机数; 所述方法进一步包括: 根据第一随机数和自身生成的第二随机数生成对称密钥; 在所述获得对称密钥之后,所述方法进一步包括: 通过缓存服务器将第二随机数发送给客户端,以便客户端根据第一随机数和第二随机数生成相同的对称密钥。7.根据权利要求5所述的方法,其特征在于,所述证书信息中携带有回源服务器生成的第二随机数; 所述通过缓存服务器接收客户端发送的密钥生成信息,包括: 通过缓存服务器接收客户端发送的对称密钥,所述对称密钥为客户端根据自身生成的第一随机数以及证书信息中的第二随机数生成的对称密钥。8.一种客户端与服务器进行握手的装置,所述装置位于缓存服务器一侧,其特征在于,所述装置包括: 第一转发单元,用于向回源服务器转发客户端发送的握手请求信息,所述握手请求信息用于请求与回源服务器建立握手流程; 第二转发单元,用于向客户端转发回源服务器发送的证书信息,所述证书信息由回源服务器根据私钥进行加密; 第三转发单元,用于在客户端对证书信息进行验证后,向回源服务器转发客户端发送的密钥生成信息,以便回源服务器根据私钥解密后获得对称密钥。9.根据权利要求8所述的装置,其特征在于,所述第一转发单元用于根据握手请求信息中的域名向回源服务器转发握手请求信息。10.根据权利要求8所述的装置,其特征在于,所述第三转发单元用于向回源服务器转发客户端生成的第一随机数,以便回源服务器根据第一随机数以及自身生成的第二随机数,生成对称密钥; 所述装置还包括: 第四转发单元,用于向客户端转发回源服务器生成的第二随机数,以便客户端根据第一随机数和第二随机数生成与回源服务器相同的对称密钥。11.根据权利要求8所述的装置,其特征在于,所述第二转发单元转发的所述证书信息中携带有回源服务器生成的第二随机数; 所述第三转发单元用于向回源服务器转发客户端生成的对称密钥,所述对称密钥为客户端根据自身生成的第一随时数以及接收的第二随机数生成的对称密钥。12.—种客户端与服务器进行握手的装置,所述装置位于回源服务器一侧,其特征在于,所述装置包括: 接收单元,用于通过缓存服务器接收客户端发送的握手请求信息,所述握手请求信息用于请求与回源服务器建立握手流程; 处理单元,用于根据自身管理的私钥对证书信息进行加密; 发送单元,用于通过缓存服务器向客户端发送加密后的证书信息,以便客户端对证书信息进行验证; 所述接收单元还用于通过缓存服务器接收客户端发送的密钥生成信息; 所述处理单元还用于根据私钥对密钥生成信息进行解密,获得对称密钥。13.根据权利要求12所述的装置,其特征在于,所述接收单元接收的所述密钥生成信息为客户端生成的第一随机数; 所述装置进一步包括: 生成单元,用于根据第一随机数和自身生成的第二随机数生成对称密钥; 所述发送单元,用于在获得对称密钥之后,通过缓存服务器将第二随机数发送给客户端,以便客户端根据第一随机数和第二随机数生成相同的对称密钥。14.根据权利要求12所述的装置,其特征在于,所述发送单元发送的所述证书信息中携带有回源服务器生成的第二随机数; 所述接收单元用于通过缓存服务器接收客户端发送的对称密钥,所述对称密钥为客户端根据自身生成的第一随机数以及证书信息中的第二随机数生成的对称密钥。15.一种客户端与服务器进行握手的系统,其特征在于,所述系统包括客户端、缓存服务器及回源服务器,其中: 所述客户端,用于通过所述缓存服务器向所述回源服务器发送握手请求信息,所述握手请求信息用于请求与所述回源服务器建立握手流程; 所述回源服务器,用于根据自身管理的私钥对证书信息进行加密,通过所述缓存服务器向所述客户端发送加密后的证书信息; 所述客户端还用于对证书信息进行验证,并通过所述缓存服务器向所述回源服务器发送密钥生成信息; 所述回源服务器还用于通过私钥对所述密钥生成信息进行解密,获得所述对称密钥。
【文档编号】H04L29/08GK105871797SQ201510802482
【公开日】2016年8月17日
【申请日】2015年11月19日
【发明人】孙国良
【申请人】乐视云计算有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1