一种安全套接层连接的建立方法、装置及系统的制作方法

文档序号:7794840阅读:360来源:国知局
一种安全套接层连接的建立方法、装置及系统的制作方法
【专利摘要】一种安全套接层连接的建立方法、装置及系统,本发明适用通信安全领域,提供了SSL连接的建立方法、装置及系统,包括:客户端发送建立SSL连接请求消息;服务器向客户端返回响应消息;客户端加密验证请求消息密文并发送给CA,CA解密后获取第二密文,将第二密文发送给客户端;客户端从中得到第一密文,将第一密文发送给服务器;服务器对第一密文进行解密,生成SSL连接的第一密钥,使用第一密钥对生成的第一MAC进行加密,发送给客户端;客户端生成SSL连接的第二密钥,解密接收到的密文后对第一MAC验证成功后,将第二密钥设置为后续通信的主密钥,并生成第二MAC,服务器使用第一密钥对接收的第四密文进行解密并对第二MAC验证成功后,将第一密钥设置为后续通信的主密钥,以完成SSL连接的建立。
【专利说明】一种安全套接层连接的建立方法、装置及系统
【技术领域】
[0001]本发明属于通信安全领域,尤其涉及一种安全套接层连接的建立方法、装置及系统。
【背景技术】
[0002]安全套接层(Secure Sockets Layer, SSL)协议主要用于网页(Web)服务的数据加密方面,以保证用户和服务器之间Web通信的数据安全。SSL协议可分为两层:SSL记录协议(SSL Record Protocol):建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。SSL握手协议(SSL Handshake Protocol):建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。
[0003]现有SSL握手协议需要公钥基础设施PKI的支持,PKI的安全性依赖证书的安全性,而证书的安全性由证书的可信性和有效性来保证。使用证书前,需要检查证书撤销列表来确定证书的有效性,但事实上,通过证书撤销列表或者在线证书状态协议的有效性检测,并不能实时的提供有效性保证,客户端不能实时的得到这样的服务,因此,容易受到中间人攻击。

【发明内容】

[0004]本发明实施例的目的在于提供一种安全套接层连接的建立方法、装置及系统,旨在解决由于现有SSL协议中客户端和服务器端之间的数据通信容易受到中间人攻击,导致客户端和服务器之间通信数据安全性降低的问题。
[0005]本发明实施例是这样实现的,一方面,提供了一种安全套接层连接的建立方法,所述方法包括下述步骤:
[0006]客户端向服务器发送建立SSL连接的请求消息,所述请求消息包含生成的第一随机数;
[0007]所述服务器向所述客户端返回所述请求消息的响应消息,所述响应消息包含服务器证书以及生成的第二随机数;
[0008]所述客户端从所述服务器证书中获取所述服务器证书的证书颁发机构,获取CA证书的公钥,使用该公钥对待发送的服务器证书验证请求消息进行加密,以得到对应的验证请求消息密文,将所述验证请求消息密文发送给所述CA,所述服务器证书验证请求消息中包括所述客户端的标识、服务器的标识、第一时间戳以及生成的预备主密钥;
[0009]所述CA使用其自身证书的私钥对所述验证请求消息密文进行解密,以得到客户端的标识、服务器的标识、第一时间戳以及预备主密钥,根据所述服务器的标识获取所述服务器证书的公钥,使用该公钥对所述客户端的标识、所述服务器的标识、第一时间戳、所述CA的标识以及预备主密钥进行加密,将加密后的密文记为第一密文,使用CA证书的私钥对所述第一密文、所述客户端的标识、所述服务器的标识以及CA的标识进行加密,将加密后的密文记为第二密文,将第二密文发送给所述客户端;
[0010]所述客户端使用所述CA证书的公钥对所述第二密文进行解密,以得到所述服务器的标识、所述客户端的标识、CA的标识以及所述第一密文,对所述服务器的标识、所述客户端的标识以及CA的标识进行验证,并将所述第一密文发送给所述服务器;
[0011]所述服务器使用服务器证书的私钥对所述第一密文进行解密,以得到所述CA的标识、第一时间戳以及预备主密钥,根据所述CA的标识对所述CA进行验证,验证成功后,将第一随机数、第二随机数以及预备主密钥作为参数,使用预设的密钥生成函数生成SSL连接的第一密钥,使用预设的加密算法根据所述第一密钥、所述请求消息、所述响应消息以及第一密文生成第一 MAC,使用所述第一密钥对所述第一 MAC和第二时间戳进行加密,将加密后的密文记为第三密文,将所述第三密文发送给所述客户端;
[0012]所述客户端接收到第三密文后,将所述第一随机数、第二随机数以及预备主密钥作为参数,使用所述密钥生成函数生成所述SSL连接的第二密钥,使用所述第二密钥对所述第三密文进行解密,如果解密成功,则对所述第一 MAC进行验证,当验证成功时,使用所述预设的加密算法根据所述第二密钥、所述请求消息、所述响应消息以及第一密文生成第二 MAC,使用所述第二密钥对所述第二 MAC进行加密,将加密后的密文记为第四密文,将所述第四密文发送给所述服务器,并将所述第二密钥设置为与所述服务器进行后续通信的主密钥;
[0013]所述服务器使用所述第一密钥对所述第四密文进行解密,如果解密成功,则对所述第二 MAC进行验证,当验证成功时,将所述第一密钥设置为与所述客户端进行后续通信的主密钥,以完成所述SSL连接的建立。
[0014]一方面,提供了一种安全套接层连接的建立装置,所述装置包括:
[0015]第一客户端消息发送单元,用于客户端向服务器发送建立SSL连接的请求消息,所述请求消息包含生成的第一随机数;
[0016]第一服务器消息发送单元,用于所述服务器向所述客户端返回所述请求消息的响应消息,所述响应消息包含服务器证书以及生成的第二随机数;
[0017]客户端密文获取单元,用于所述客户端从所述服务器证书中获取所述服务器证书的证书颁发机构,获取CA证书的公钥,使用该公钥对待发送的服务器证书验证请求消息进行加密,以得到对应的验证请求消息密文,所述服务器证书验证请求消息中包括所述客户端的标识、服务器的标识、第一时间戳以及生成的预备主密钥;
[0018]第二客户端消息发送单元,用于客户端将所述验证请求消息密文发送给所述CA ;
[0019]CA加密和发送单元,用于所述CA使用其自身证书的私钥对所述验证请求消息密文进行解密,以得到客户端的标识、服务器的标识、第一时间戳以及预备主密钥,根据所述服务器的标识获取所述服务器证书的公钥,使用该公钥对所述客户端的标识、所述服务器的标识、第一时间戳、所述CA的标识以及预备主密钥进行加密,将加密后的密文记为第一密文,使用CA证书的私钥对所述第一密文、所述客户端的标识、所述服务器的标识以及CA的标识进行加密,将加密后的密文记为第二密文,将第二密文发送给所述客户端;
[0020]客户端解密与验证单元,用于所述客户端使用所述CA证书的公钥对所述第二密文进行解密,以得到所述服务器的标识、所述客户端的标识、CA的标识以及所述第一密文,对所述服务器的标识、所述客户端的标识以及CA的标识进行验证;[0021]第三客户端消息发送单元,用于客户端将解密得到的所述第一密文发送给所述服务器;
[0022]服务器密文生成单元,用于所述服务器使用服务器证书的私钥对所述第一密文进行解密,以得到所述CA的标识、第一时间戳以及预备主密钥,根据所述CA的标识对所述CA进行验证,验证成功后,将第一随机数、第二随机数以及预备主密钥作为参数,使用预设的密钥生成函数生成SSL连接的第一密钥,使用预设的加密算法根据所述第一密钥、所述请求消息、所述响应消息以及第一密文生成第一 MAC,使用所述第一密钥对所述第一 MAC和第二时间戳进行加密,将加密后的密文记为第三密文;
[0023]第二服务器消息发送单元,用于服务器将所述第三密文发送给所述客户端;
[0024]客户端主密钥设置单元,用于所述客户端接收到第三密文后,将所述第一随机数、第二随机数以及预备主密钥作为参数,使用所述密钥生成函数生成所述SSL连接的第二密钥,使用所述第二密钥对所述第三密文进行解密,如果解密成功,则对所述第一 MAC进行验证,当验证成功时,使用所述预设的加密算法根据所述第二密钥、所述请求消息、所述响应消息以及第一密文生成第二 MAC,使用所述第一密钥对所述第二 MAC进行加密,将加密后的密文记为第四密文,并将所述第二密钥设置为与所述服务器进行后续通信的主密钥;
[0025]第四客户端消息发送单元,用于客户端将所述第四密文发送给所述服务器;以及
[0026]服务器主密钥设置单元,用于所述服务器使用所述第一密钥对所述第四密文进行解密,如果解密成功,则对所述第二 MAC进行验证,当验证成功时,将所述第一密钥设置为与所述客户端进行后续通信的主密钥,以完成所述SSL连接的建立。
[0027]—方面,提供了一种安全套接层连接的建立系统,其特征在于,所述系统包括客户端、CA以及服务器,其中,
[0028]所述客户端包括:
[0029]第一客户端消息发送单元,用于客户端向服务器发送建立SSL连接的请求消息,所述请求消息包含生成的第一随机数;
[0030]客户端密文获取单元,用于客户端从接收的服务器证书中获取所述服务器证书的证书颁发机构,获取CA证书的公钥,使用该公钥对待发送的服务器证书验证请求消息进行加密,以得到对应的验证请求消息密文,所述服务器证书验证请求消息中包括所述客户端的标识、服务器的标识、第一时间戳以及生成的预备主密钥;
[0031]第二客户端消息发送单元,用于客户端将所述验证请求消息密文发送给所述CA ;
[0032]客户端解密与验证单元,用于所述客户端使用所述CA证书的公钥对所述第二密文进行解密,以得到所述服务器的标识、所述客户端的标识、CA的标识以及所述第一密文,对所述服务器的标识、所述客户端的标识以及CA的标识进行验证;
[0033]第三客户端消息发送单元,用于客户端将解密得到的所述第一密文发送给所述服务器;
[0034]客户端主密钥设置单元,用于接收到第三密文后,将所述第一随机数、第二随机数以及预备主密钥作为参数,使用预设的密钥生成函数生成所述SSL连接的第二密钥,使用所述第二密钥对接收的第三密文进行解密,如果解密成功,则对解密得到的第一 MAC进行验证,当验证成功时,使用所述预设的加密算法根据所述第二密钥、所述请求消息、接收的响应消息以及第一密文生成第二 MAC,使用所述第二密钥对所述第二 MAC进行加密,将加密后的密文记为第四密文,并将所述第一密钥设置为与所述服务器进行后续通信的主密钥;
[0035]第四客户端消息发送单元,用于客户端将所述第四密文发送给所述服务器;
[0036]所述CA包括:
[0037]CA加密和发送单元,用于所述CA使用其自身证书的私钥对所述验证请求消息密文进行解密,以得到客户端的标识、服务器的标识、第一时间戳以及预备主密钥,根据所述服务器的标识获取所述服务器证书的公钥,使用该公钥对所述客户端的标识、所述服务器的标识、第一时间戳、所述CA的标识以及预备主密钥进行加密,将加密后的密文记为第一密文,使用CA证书的私钥对所述第一密文、所述客户端的标识、所述服务器的标识以及CA的标识进行加密,将加密后的密文记为第二密文,将第二密文发送给所述客户端;
[0038]所述服务器包括:
[0039]第一服务器消息发送单元,用于所述服务器向所述客户端返回所述请求消息的响应消息,所述响应消息包含服务器证书以及生成的第二随机数;
[0040]服务器密文生成单元,用于所述服务器使用服务器证书的私钥对所述第一密文进行解密,以得到所述CA的标识、第一时间戳以及预备主密钥,根据所述CA的标识对所述CA进行验证,验证成功后,将第一随机数、第二随机数以及预备主密钥作为参数,使用所述密钥生成函数生成SSL连接的第一密钥,使用预设的加密算法根据所述第一密钥、所述请求消息、所述响应消息以及第一密文生成第一 MAC,使用所述第一密钥对所述第一 MAC和第二时间戳进行加密,将加密后的密文记为第三密文;
[0041]第二服务器消息发送单元,用于服务器将所述第三密文发送给所述客户端;
[0042]服务器主密钥设置单元,用于所述服务器使用所述第一密钥对所述第四密文进行解密,如果解密成功,则对所述第二 MAC进行验证,当验证成功时,将所述第一密钥设置为与所述客户端进行后续通信的主密钥,以完成所述SSL连接的建立。
[0043]本发明实施例通过引入可信的证书分发机构(Certificate Authority,缩写为CA),将第三方CA加入SSL连接的握手过程中,在对服务器证书的验证过程中,服务器的证书必须向CA注册才有效,从而通过CA实时获取服务器证书的公钥,保证了基于SSL连接的会话主密钥生成的安全性,避免了中间人攻击。
【专利附图】

【附图说明】
[0044]图1是本发明实施例一提供的安全套接层连接的建立方法的实现流程图;以及
[0045]图2是本发明实施例二提供的安全套接层连接的建立装置的结构图。
【具体实施方式】
[0046]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0047]以下结合具体实施例对本发明的具体实现进行详细描述:
[0048]实施例一:
[0049]图1示出了本发明实施例一提供的安全套接层连接的建立方法的实现流程,详述如下:[0050]在步骤SlOl中,客户端向服务器发送建立SSL连接的请求消息,所述请求消息包含生成的第一随机数。
[0051]在本发明实施例中,客户端可以是浏览器,也可以是其他可连接到Web服务的专用客户端。当客户端连接到服务器时,向服务器发出建立SSL连接的请求消息,该请求消息中包括客户端最高可支持的SSL协议的版本号、会话标识、客户端支持的密码套件列表、压缩算法列表和用作产生密钥的随机数等参数,在这里将该随机数记为第一随机数。
[0052]在步骤S102中,服务器向客户端返回请求消息的响应消息,该响应消息包含服务器证书以及生成的第二随机数。
[0053]在本发明实施例中,第二随机数由服务器生成,以用于后续的主密钥的生成,在具体实施例中,服务器证书和第二随机数可以分别发送。为了简化通信过程,优选地,生成的第二随机数和服务器证书在一个响应消息中发送给客户端,从而减少握手过程中的通信次数。另外,服务器消息中还可以包括服务器根据接收的SSL版本号选择的SSL版本号、从客户端的密码套件列表中选择的一个密码套件、从客户端的压缩算法列表中选择的压缩方法。
[0054]在步骤S103中,客户端从接收的响应消息中获取服务器证书,进而从服务器证书中获取服务器证书的证书颁发机构(CA),并获取CA证书的公钥,使用该公钥对待发送的客户端生成的服务器证书验证请求消息进行加密,以得到对应的验证请求消息密文,所述服务器证书验证请求消息中包括所述客户端的标识、服务器的标识、第一时间戳以及生成的预备主密钥。
[0055]在本发明实施例中,客户端接收到响应消息后,生成预备主密钥,进而根据客户端的标识、服务器的标识、第一时间戳以及预备主密钥生成服务器证书验证请求消息,其中第一时间戳为消息生成的时间,以用于防止服务器受到重放攻击。为了对服务器证书进行验证,客户端存储有可信的CA列表/数据库。客户端可以从服务器证书上获取CA的标识,根据CA的标识在客户端存储的CA列表/数据库中查找该CA,查找到该CA后获取CA的公钥,以用于加密客户端生成的服务器证书验证请求消息。在本发明实施例中,利用可信CA的公钥加密保证了服务器证书验证过程的安全。
[0056]在步骤S104中,客户端将验证请求消息密文发送给CA。
[0057]在步骤S105中,CA接收到验证请求消息密文后,使用CA证书的私钥对验证请求消息密文进行解密,以得到客户端的标识、服务器的标识、第一时间戳以及预备主密钥。接着,CA根据服务器的标识获取服务器证书的公钥,使用该公钥对客户端的标识、服务器的标识、第一时间戳、CA的标识以及预备主密钥进行加密,将加密后的密文记为第一密文,然后,CA使用其自身证书的私钥对第一密文、客户端的标识、服务器的标识以及CA的标识进行加密,将加密后的密文记为第二密文。其中,优选地,客户端的标识、服务器的标识、CA的标识可以分别为客户端的名称、服务器的名称、CA的名称,当然也可以为其它可以在Web服务过程中用于标记客户端、服务器和CA的字符串。在本发明实施例中,只有拥有CA证书私钥的真正可信CA才能解密接收到的验证请求消息密文。
[0058]在步骤S106中,CA将第二密文发送给客户端。
[0059]在步骤S107中,客户端使用CA证书的公钥对接收到的第二密文进行解密,以得到第一密文、客户端的标识、服务器的标识和CA的标识进行验证。[0060]在步骤S108中,客户端将第一密文发送给服务器。
[0061]在本发明实施例中,由于第一密文采用服务器公钥进行加密,因此,任何中间人拦截之后不能解密第一密文,没有任何作用,从而有效地保证了密文中数据的安全性,进而保证了生成的SSL连接主密钥的安全性。
[0062]在步骤S109中,服务器使用服务器证书的私钥对第一密文进行解密,以得到CA的标识和预备主密钥,根据CA的标识对CA进行验证,验证成功后,将第一随机数、第二随机数以及预备主密钥作为参数,使用预设的密钥生成函数生成SSL连接的第一密钥,使用预设的加密算法根据第一密钥、请求消息、响应消息以及第一密文生成第一消息认证码(Message Authentication Code, MAC),使用第一密钥对第一 MAC和第二时间戳进行加密,将加密后的密文记为第三密文。
[0063]在本发明实施例中,服务器接收到CA的标识后,作为示例地,可以通过查询存储的证书列表/数据库对CA进行认证。其中,生成第二密钥时,第一随机数、预备主密钥来自客户端,第一密钥是前述步骤中生成之后存储下来的,这样保证了与客户端进行SSL连接的安全性。作为示例地,在生成第一 MAC时,服务器使用预设的散列函数计算接收到的请求消息、自身发送的响应消息以及解密的第一密文的摘要值,通过预设的加密算法使用第一密钥对摘要值进行加密,以得到第一 MAC,其中,预设的加密算法为对称加密算法,第二时间戳=第一时间戳+1。
[0064]在步骤SllO中,将第三密文发送给客户端。
[0065]在步骤Slll中,客户端接收到第三密文后,将第一随机数、第二随机数以及预备主密钥作为参数,使用前述预设的密钥生成函数生成SSL连接的第二密钥,并使用第二密钥对第三密文进行解密,如果解密成功,则对第一 MAC进行验证,当验证成功时,使用预设的加密算法根据第二密钥、请求消息、响应消息以及第一密文生成第二 MAC,使用第二密钥对第二 MAC进行加密,将加密后的密文记为第四密文,并将第二密钥设置为与服务器进行后续通信的主密钥。
[0066]在本发明实施中,第一 MAC的验证过程可以采用第一 MAC生成的逆过程。作为示例地,可以通过第二密钥对第一 MAC进行解密,接着使用与服务器相同的散列函数计算客户端存储的请求消息、响应消息以及第一密文的摘要值,判断该摘要值是否与对第一 MAC解密后的值相同,相同则验证成功,继续后续步骤,否则提示建立SSL连接失败。同时,如果验证成功也表明客户端生成的第二密钥与服务器生成的第一密钥相同,没有发生中间人攻击,因此,客户端可以将第二密钥设置为与服务器进行后续通信的主密钥。
[0067]在步骤S112中,将第四密文发送给服务器。
[0068]在步骤S113中,服务器使用第一密钥对第四密文进行解密,如果解密成功,则对第二 MAC进行验证,当验证成功时,将第一密钥设置为与客户端进行后续通信的主密钥,以完成SSL连接的建立。
[0069]在本发明实施例中,与客户端一样,服务器需要对生成的第一密钥进行验证,判断是否在SSL连接建立过程中出现了中间人攻击。当认证成功时,表明服务器生成的第一密钥与客户端生成的第二密钥相同,因此,服务器可以将第一密钥设置为与服务器进行后续通信的主密钥。
[0070]在本发明实施例中,引入了可信的第三方CA、以及多个安全参数参与到SSL连接的握手过程中,保证了客户端对服务器证书进行认证时认证过程的有效性、安全性,同时,使得客户端可以从CA中实时获得服务器的实时公钥,保证了用于SSL连接的主密钥的安全生成,有效避免了中间人攻击。
[0071]本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于一计算机可读取存储介质中,所述的存储介质,如R0M/RAM、磁盘、光盘等。
[0072]实施例二:
[0073]图2示出了本发明实施例二提供的安全套接层连接的建立装置的结构,为了便于说明,仅示出了与本发明实施例相关的部分,其中,安全套接层连接的建立装置2包括下述单元:
[0074]第一客户端消息发送单元2101,用于客户端向服务器发送建立SSL连接的请求消息,所述请求消息包含生成的第一随机数;
[0075]客户端密文获取单元2102,用于客户端从接收的服务器证书中获取所述服务器证书的CA,获取CA证书的公钥,使用该公钥对待发送的服务器证书验证请求消息进行加密,以得到对应的验证请求消息密文,所述服务器证书验证请求消息中包括所述客户端的标识、服务器的标识、第一时间戳以及生成的预备主密钥;
[0076]第二客户端消息发送单元2103,用于客户端将所述验证请求消息密文发送给所述CA ;
[0077]客户端解密与验证单元2104,用于所述客户端使用所述CA证书的公钥对所述第二密文进行解密,以得到所述服务器的标识、所述客户端的标识、CA的标识以及所述第一密文,对所述服务器的标识、所述客户端的标识以及CA的标识进行验证;
[0078]第三客户端消息发送单元2105,用于客户端将解密得到的所述第一密文发送给所述服务器;
[0079]客户端主密钥设置单元2106,用于所述客户端接收到第三密文后,将所述第一随机数、第二随机数以及预备主密钥作为参数,使用预设的密钥生成函数生成所述SSL连接的第二密钥,客户端使用所述第二密钥对接收的第三密文进行解密,如果解密成功,则对解密得到的第一 MAC进行验证,当验证成功时,使用预设的加密算法根据所述第二密钥、所述请求消息、接收的响应消息以及第一密文生成第二 MAC,使用所述第二密钥对所述第二 MAC进行加密,将加密后的密文记为第四密文,并将所述第二密钥设置为与所述服务器进行后续通信的主密钥;
[0080]第四客户端消息发送单元2107,用于客户端将所述第四密文发送给所述服务器;
[0081]CA加密和发送单元2201,用于所述CA使用其自身证书的私钥对所述验证请求消息密文进行解密,以得到客户端的标识、服务器的标识、第一时间戳以及预备主密钥,根据所述服务器的标识获取所述服务器证书的公钥,使用该公钥对所述客户端的标识、所述服务器的标识、第一时间戳、所述CA的标识以及预备主密钥进行加密,将加密后的密文记为第一密文,使用CA证书的私钥对所述第一密文、所述客户端的标识、所述服务器的标识以及CA的标识进行加密,将加密后的密文记为第二密文,将第二密文发送给所述客户端;
[0082]第一服务器消息发送单元2301,用于所述服务器向所述客户端返回所述请求消息的响应消息,所述响应消息包含服务器证书以及生成的第二随机数;[0083]服务器密文生成单元2302,用于所述服务器使用服务器证书的私钥对所述第一密文进行解密,以得到所述CA的标识和预备主密钥,根据所述CA的标识对所述CA进行验证,验证成功后,将第一随机数、第二随机数以及预备主密钥作为参数,使用所述密钥生成函数生成SSL连接的第一密钥,使用预设的加密算法根据所述第一密钥、所述请求消息、所述响应消息以及第一密文生成第一 MAC,使用所述第一密钥对所述第一 MAC和第二时间戳进行加密,将加密后的密文记为第三密文;
[0084]在本发明实施例中,作为示例地,所述服务器密文生成单元2302可包括MAC获取单元,用于服务器使用预设的散列函数计算所述请求消息、所述响应消息以及第一密文的摘要值,通过所述预设的加密算法使用所述第一密钥对所述摘要值进行加密,以得到第一MAC0
[0085]第二服务器消息发送单元2303,用于服务器将所述第三密文发送给所述客户端;
[0086]服务器主密钥设置单元2304,用于所述服务器使用所述第一密钥对所述第四密文进行解密,如果解密成功,则对所述第二 MAC进行验证,当验证成功时,将所述第一密钥设置为与所述客户端进行后续通信的主密钥,以完成所述SSL连接的建立。
[0087]在本发明实施例中,安全套接层连接的建立装置2的单元位于一 SSL连接系统中的不同通信实体或应用程序中,优选地,位于客户端21、证书分发机构22、服务器23中,其中:
[0088]客户端21包括第一客户端消息发送单元2101、客户端密文获取单元2102、第二客户端消息发送单元2103、客户端解密与验证单元2104、第三客户端消息发送单元2105、客户端主密钥设置单元2106以及第四客户端消息发送单元2107。
[0089]证书分发机构22包括CA加密和发送单元2201。
[0090]服务器23包括第一服务器消息发送单元2301、服务器密文生成单元2302、第二服务器消息发送单元2303以及服务器主密钥设置单元2304。
[0091]本发明实施例通过引入可信的CA,将第三方CA加入SSL连接的握手协议过程中,在对服务器证书的验证过程中,服务器的证书必须向CA注册才有效,从而通过CA实时获取服务器证书的公钥,保证了 SSL连接主密钥生成的安全性,避免了中间人攻击,另外,通过保护预备主密钥进一步提高了主密钥生成的安全性,通过基于握手过程中的消息计算MAC值,保证了通信过程中数据的完整性,及对双方的认证,相对于现有的SSL的握手过程,具有更高的安全性。
[0092]以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种安全套接层连接的建立方法,其特征在于,所述方法包括下述步骤: 客户端向服务器发送建立SSL连接的请求消息,所述请求消息包含生成的第一随机数; 所述服务器向所述客户端返回所述请求消息的响应消息,所述响应消息包含服务器证书以及生成的第二随机数; 所述客户端从所述服务器证书中获取所述服务器证书的证书颁发机构,获取CA证书的公钥,使用该公钥对待发送的服务器证书验证请求消息进行加密,以得到对应的验证请求消息密文,将所述验证请求消息密文发送给所述CA,所述服务器证书验证请求消息中包括所述客户端的标识、服务器的标识、第一时间戳以及生成的预备主密钥; 所述CA使用其自身证书的私钥对所述验证请求消息密文进行解密,以得到客户端的标识、服务器的标识、第一时间戳以及预备主密钥,根据所述服务器的标识获取所述服务器证书的公钥,使用该公钥对所述客户端的标识、所述服务器的标识、第一时间戳、所述CA的标识以及预备主密钥进行加密,将加密后的密文记为第一密文,使用CA证书的私钥对所述第一密文、所述客户端的标识、所述服务器的标识以及CA的标识进行加密,将加密后的密文记为第二密文,将第二密文发送给所述客户端; 所述客户端使用所述CA证书的公钥对所述第二密文进行解密,以得到所述服务器的标识、所述客户端的标识、CA的标识以及所述第一密文,对所述服务器的标识、所述客户端的标识以及CA的标识进行验证,并将所述第一密文发送给所述服务器; 所述服务器使用服务器 证书的私钥对所述第一密文进行解密,以得到所述CA的标识、第一时间戳以及预备主密钥,根据所述CA的标识对所述CA进行验证,验证成功后,将第一随机数、第二随机数以及预备主密钥作为参数,使用预设的密钥生成函数生成SSL连接的第一密钥,使用预设的加密算法根据所述第一密钥、所述请求消息、所述响应消息以及第一密文生成第一 MAC,使用所述第一密钥对所述第一 MAC和第二时间戳进行加密,将加密后的密文记为第三密文,将所述第三密文发送给所述客户端; 所述客户端接收到第三密文后,将所述第一随机数、第二随机数以及预备主密钥作为参数,使用所述密钥生成函数生成所述SSL连接的第二密钥,使用所述第二密钥对所述第三密文进行解密,如果解密成功,则对所述第一 MAC进行验证,当验证成功时,使用所述预设的加密算法根据所述第二密钥、所述请求消息、所述响应消息以及第一密文生成第二MAC,使用所述第二密钥对所述第二 MAC进行加密,将加密后的密文记为第四密文,将所述第四密文发送给所述服务器,并将所述第二密钥设置为与所述服务器进行后续通信的主密钥; 所述服务器使用所述第一密钥对所述第四密文进行解密,如果解密成功,则对所述第二 MAC进行验证,当验证成功时,将所述第一密钥设置为与所述客户端进行后续通信的主密钥,以完成所述SSL连接的建立。
2.如权利要求1所述的方法,其特征在于,所述客户端的标识、服务器的标识以及所述CA的标识分别为所述客户端的名称、服务器的名称以及所述CA的名称。
3.如权利要求1所述的方法,其特征在于,所述预设的加密算法为对称加密算法。
4.如权利要求1所述的方法,其特征在于,使用预设的加密算法根据所述第一密钥、所述请求消息、所述响应消息以及第一密文生成第一 MAC的步骤包括:所述服务器使用预设的散列函数计算所述请求消息、所述响应消息以及第一密文的摘要值,通过所述预设的加密算法使用所述第二密钥对所述摘要值进行加密,以得到第一MAC0
5.一种安全套接层连接的建立装置,其特征在于,所述装置包括: 第一客户端消息发送单元,用于客户端向服务器发送建立SSL连接的请求消息,所述请求消息包含生成的第一随机数; 第一服务器消息发送单元,用于所述服务器向所述客户端返回所述请求消息的响应消息,所述响应消息包含服务器证书以及生成的第二随机数; 客户端密文获取单元,用于所述客户端从所述服务器证书中获取所述服务器证书的证书颁发机构,获取CA证书的公钥,使用该公钥对待发送的服务器证书验证请求消息进行加密,以得到对应的验证请求消息密文,所述服务器证书验证请求消息中包括所述客户端的标识、服务器的标识、第一时间戳以及生成的预备主密钥; 第二客户端消息发送单元,用于客户端将所述验证请求消息密文发送给所述CA ; CA加密和发送单元,用于所述CA使用其自身证书的私钥对所述验证请求消息密文进行解密,以得到客户端的标识、服务器的标识、第一时间戳以及预备主密钥,根据所述服务器的标识获取所述服务器证书的公钥,使用该公钥对所述客户端的标识、所述服务器的标识、第一时间戳、所述CA的标识以及预备主密钥进行加密,将加密后的密文记为第一密文,使用CA证书的私钥对所述第一密文、所述客户端的标识、所述服务器的标识以及CA的标识进行加密,将加密后 的密文记为第二密文,将第二密文发送给所述客户端; 客户端解密与验证单元,用于所述客户端使用所述CA证书的公钥对所述第二密文进行解密,以得到所述服务器的标识、所述客户端的标识、CA的标识以及所述第一密文,对所述服务器的标识、所述客户端的标识以及CA的标识进行验证; 第三客户端消息发送单元,用于客户端将解密得到的所述第一密文发送给所述服务器; 服务器密文生成单元,用于所述服务器使用服务器证书的私钥对所述第一密文进行解密,以得到所述CA的标识、第一时间戳以及预备主密钥,根据所述CA的标识对所述CA进行验证,验证成功后,将第一随机数、第二随机数以及预备主密钥作为参数,使用预设的密钥生成函数生成SSL连接的第一密钥,使用预设的加密算法根据所述第一密钥、所述请求消息、所述响应消息以及第一密文生成第一 MAC,使用所述第一密钥对所述第一 MAC和第二时间戳进行加密,将加密后的密文记为第三密文; 第二服务器消息发送单元,用于服务器将所述第三密文发送给所述客户端; 客户端主密钥设置单元,用于所述客户端接收到第三密文后,将所述第一随机数、第二随机数以及预备主密钥作为参数,使用所述密钥生成函数生成所述SSL连接的第二密钥,使用所述第二密钥对所述第三密文进行解密,如果解密成功,则对所述第一 MAC进行验证,当验证成功时,使用所述预设的加密算法根据所述第二密钥、所述请求消息、所述响应消息以及第一密文生成第二 MAC,使用所述第一密钥对所述第二 MAC进行加密,将加密后的密文记为第四密文,并将所述第二密钥设置为与所述服务器进行后续通信的主密钥; 第四客户端消息发送单元,用于客户端将所述第四密文发送给所述服务器;以及 服务器主密钥设置单元,用于所述服务器使用所述第二密钥对所述第四密文进行解密,如果解密成功,则对所述第二 MAC进行验证,当验证成功时,将所述第二密钥设置为与所述客户端进行后续通信的主密钥,以完成所述SSL连接的建立。
6.如权利要求5所述的装置,其特征在于,所述客户端的标识、服务器的标识以及所述CA的标识分别为所述客户端的名称、服务器的名称以及所述CA的名称。
7.如权利要求5所述的装置,其特征在于,所述预设的加密算法为对称加密算法。
8.如权利要求5所述的装置,其特征在于,所述服务器密文生成单元包括: MAC获取单元,用于所述服务器使用预设的散列函数计算所述请求消息、所述响应消息以及第一密文的摘要值,通过所述预设的加密算法使用所述第二密钥对所述摘要值进行加密,以得到第一 MAC。
9.一种安全套接层连接的建立系统,其特征在于,所述系统包括客户端、CA以及服务器,其中, 所述客户端包括: 第一客户端消息发送单元,用于客户端向服务器发送建立SSL连接的请求消息,所述请求消息包含生成的第一随机数; 客户端密文获取单元,用于客户端从接收的服务器证书中获取所述服务器证书的证书颁发机构,获取CA证书的公钥,使用该公钥对待发送的服务器证书验证请求消息进行加密,以得到对应的验证请求消息密文,所述服务器证书验证请求消息中包括所述客户端的标识、服务器的标识、第一时间戳以及生成的预备主密钥; 第二客户端消息发送单元,用于客户端将所述验证请求消息密文发送给所述CA ; 客户端解密与验证单元,用于所述客户端使用所述CA证书的公钥对所述第二密文进行解密,以得到所述服务器的标识、所述客户端的标识、CA的标识以及所述第一密文,对所述服务器的标识、所述客户端的标识以及CA的标识进行验证; 第三客户端消息发送单元,用于客户端将解密得到的所述第一密文发送给所述服务器; 客户端主密钥设置单元,用于接收到第三密文后,将所述第一随机数、第二随机数以及预备主密钥作为参数,使用预设的密钥生成函数生成所述SSL连接的第二密钥,使用所述第二密钥对接收的第三密文进行解密,如果解密成功,则对解密得到的第一 MAC进行验证,当验证成功时,使用所述预设的加密算法根据所述第二密钥、所述请求消息、接收的响应消息以及第一密文生成第二 MAC,使用所述第二密钥对所述第二 MAC进行加密,将加密后的密文记为第四密文,并将所述第二密钥设置为与所述服务器进行后续通信的主密钥; 第四客户端消息发送单元,用于客户端将所述第四密文发送给所述服务器; 所述CA包括: CA加密和发送单元,用于所述CA使用其自身证书的私钥对所述验证请求消息密文进行解密,以得到客户端的标识、服务器的标识、第一时间戳以及预备主密钥,根据所述服务器的标识获取所述服务器证书的公钥,使用该公钥对所述客户端的标识、所述服务器的标识、第一时间戳、 所述CA的标识以及预备主密钥进行加密,将加密后的密文记为第一密文,使用CA证书的私钥对所述第一密文、所述客户端的标识、所述服务器的标识以及CA的标识进行加密,将加密后的密文记为第二密文,将第二密文发送给所述客户端; 所述服务器包括:第一服务器消息发送单元,用于所述服务器向所述客户端返回所述请求消息的响应消息,所述响应消息包含服务器证书以及生成的第二随机数; 服务器密文生成单元,用于所述服务器使用服务器证书的私钥对所述第一密文进行解密,以得到所述CA的标识、第一时间戳以及预备主密钥,根据所述CA的标识对所述CA进行验证,验证成功后,将第一随机数、第二随机数以及预备主密钥作为参数,使用所述密钥生成函数生成SSL连接的第一密钥,使用预设的加密算法根据所述第一密钥、所述请求消息、所述响应消息以及第一密文生成第一 MAC,使用所述第一密钥对所述第一 MAC和第二时间戳进行加密,将加密后的密文记为第三密文; 第二服务器消息发送单元,用于服务器将所述第三密文发送给所述客户端; 服务器主密钥设置单元,用于所述服务器使用所述第一密钥对所述第四密文进行解密,如果解密成功,则对所述第二 MAC进行验证,当验证成功时,将所述第一密钥设置为与所述客户端进行后续通信的主密钥,以完成所述SSL连接的建立。
10.如权利要求9所述的系统,其特征在于,所述服务器密文生成单元包括: MAC获取单元,用于所述服务器使用预设的散列函数计算所述请求消息、所述响应消息以及第一密文的摘要值,通过所述预设的加密算法使用所述第二密钥对所述摘要值进行加密,以得到第一 MAC。
【文档编号】H04L29/08GK103763356SQ201410008760
【公开日】2014年4月30日 申请日期:2014年1月8日 优先权日:2014年1月8日
【发明者】段孝茹, 陈剑勇, 明仲, 陈沛 申请人:深圳大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1