CN103763356B - 一种安全套接层连接的建立方法、装置及系统 - Google Patents
一种安全套接层连接的建立方法、装置及系统 Download PDFInfo
- Publication number
- CN103763356B CN103763356B CN201410008760.7A CN201410008760A CN103763356B CN 103763356 B CN103763356 B CN 103763356B CN 201410008760 A CN201410008760 A CN 201410008760A CN 103763356 B CN103763356 B CN 103763356B
- Authority
- CN
- China
- Prior art keywords
- ciphertext
- server
- client
- key
- mark
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Abstract
一种安全套接层连接的建立方法、装置及系统,本发明适用通信安全领域,提供了SSL连接的建立方法、装置及系统,包括:客户端发送建立SSL连接请求消息;服务器向客户端返回响应消息;客户端加密验证请求消息密文并发送给CA,CA解密后获取第二密文,将第二密文发送给客户端;客户端从中得到第一密文,将第一密文发送给服务器;服务器对第一密文进行解密,生成SSL连接的第一密钥,使用第一密钥对生成的第一MAC进行加密,发送给客户端;客户端生成SSL连接的第二密钥,解密接收到的密文后对第一MAC验证成功后,将第二密钥设置为后续通信的主密钥,并生成第二MAC,服务器使用第一密钥对接收的第四密文进行解密并对第二MAC验证成功后,将第一密钥设置为后续通信的主密钥,以完成SSL连接的建立。
Description
技术领域
本发明属于通信安全领域,尤其涉及一种安全套接层连接的建立方法、装置及系统。
背景技术
安全套接层(Secure Sockets Layer,SSL)协议主要用于网页(Web)服务的数据加密方面,以保证用户和服务器之间Web通信的数据安全。SSL协议可分为两层:SSL记录协议(SSL Record Protocol):建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。SSL握手协议(SSL Handshake Protocol):建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。
现有SSL握手协议需要公钥基础设施PKI的支持,PKI的安全性依赖证书的安全性,而证书的安全性由证书的可信性和有效性来保证。使用证书前,需要检查证书撤销列表来确定证书的有效性,但事实上,通过证书撤销列表或者在线证书状态协议的有效性检测,并不能实时的提供有效性保证,客户端不能实时的得到这样的服务,因此,容易受到中间人攻击。
发明内容
本发明实施例的目的在于提供一种安全套接层连接的建立方法、装置及系统,旨在解决由于现有SSL协议中客户端和服务器端之间的数据通信容易受到中间人攻击,导致客户端和服务器之间通信数据安全性降低的问题。
本发明实施例是这样实现的,一方面,提供了一种安全套接层连接的建立方法,所述方法包括下述步骤:
客户端向服务器发送建立SSL连接的请求消息,所述请求消息包含生成的第一随机数;
所述服务器向所述客户端返回所述请求消息的响应消息,所述响应消息包含服务器证书以及生成的第二随机数;
所述客户端从所述服务器证书中获取所述服务器证书的证书颁发机构,获取CA证书的公钥,使用该公钥对待发送的服务器证书验证请求消息进行加密,以得到对应的验证请求消息密文,将所述验证请求消息密文发送给所述CA,所述服务器证书验证请求消息中包括所述客户端的标识、服务器的标识、第一时间戳以及生成的预备主密钥;
所述CA使用其自身证书的私钥对所述验证请求消息密文进行解密,以得到客户端的标识、服务器的标识、第一时间戳以及预备主密钥,根据所述服务器的标识获取所述服务器证书的公钥,使用该公钥对所述客户端的标识、所述服务器的标识、第一时间戳、所述CA的标识以及预备主密钥进行加密,将加密后的密文记为第一密文,使用CA证书的私钥对所述第一密文、所述客户端的标识、所述服务器的标识以及CA的标识进行加密,将加密后的密文记为第二密文,将第二密文发送给所述客户端;
所述客户端使用所述CA证书的公钥对所述第二密文进行解密,以得到所述服务器的标识、所述客户端的标识、CA的标识以及所述第一密文,对所述服务器的标识、所述客户端的标识以及CA的标识进行验证,并将所述第一密文发送给所述服务器;
所述服务器使用服务器证书的私钥对所述第一密文进行解密,以得到所述CA的标识、第一时间戳以及预备主密钥,根据所述CA的标识对所述CA进行验证,验证成功后,将第一随机数、第二随机数以及预备主密钥作为参数,使用预设的密钥生成函数生成SSL连接的第一密钥,使用预设的加密算法根据所述第一密钥、所述请求消息、所述响应消息以及第一密文生成第一MAC,使用所述第一密钥对所述第一MAC和第二时间戳进行加密,将加密后的密文记为第三密文,将所述第三密文发送给所述客户端;
所述客户端接收到第三密文后,将所述第一随机数、第二随机数以及预备主密钥作为参数,使用所述密钥生成函数生成所述SSL连接的第二密钥,使用所述第二密钥对所述第三密文进行解密,如果解密成功,则对所述第一MAC进行验证,当验证成功时,使用所述预设的加密算法根据所述第二密钥、所述请求消息、所述响应消息以及第一密文生成第二MAC,使用所述第二密钥对所述第二MAC进行加密,将加密后的密文记为第四密文,将所述第四密文发送给所述服务器,并将所述第二密钥设置为与所述服务器进行后续通信的主密钥;
所述服务器使用所述第一密钥对所述第四密文进行解密,如果解密成功,则对所述第二MAC进行验证,当验证成功时,将所述第一密钥设置为与所述客户端进行后续通信的主密钥,以完成所述SSL连接的建立。
一方面,提供了一种安全套接层连接的建立装置,所述装置包括:
第一客户端消息发送单元,用于客户端向服务器发送建立SSL连接的请求消息,所述请求消息包含生成的第一随机数;
第一服务器消息发送单元,用于所述服务器向所述客户端返回所述请求消息的响应消息,所述响应消息包含服务器证书以及生成的第二随机数;
客户端密文获取单元,用于所述客户端从所述服务器证书中获取所述服务器证书的证书颁发机构,获取CA证书的公钥,使用该公钥对待发送的服务器证书验证请求消息进行加密,以得到对应的验证请求消息密文,所述服务器证书验证请求消息中包括所述客户端的标识、服务器的标识、第一时间戳以及生成的预备主密钥;
第二客户端消息发送单元,用于客户端将所述验证请求消息密文发送给所述CA;
CA加密和发送单元,用于所述CA使用其自身证书的私钥对所述验证请求消息密文进行解密,以得到客户端的标识、服务器的标识、第一时间戳以及预备主密钥,根据所述服务器的标识获取所述服务器证书的公钥,使用该公钥对所述客户端的标识、所述服务器的标识、第一时间戳、所述CA的标识以及预备主密钥进行加密,将加密后的密文记为第一密文,使用CA证书的私钥对所述第一密文、所述客户端的标识、所述服务器的标识以及CA的标识进行加密,将加密后的密文记为第二密文,将第二密文发送给所述客户端;
客户端解密与验证单元,用于所述客户端使用所述CA证书的公钥对所述第二密文进行解密,以得到所述服务器的标识、所述客户端的标识、CA的标识以及所述第一密文,对所述服务器的标识、所述客户端的标识以及CA的标识进行验证;
第三客户端消息发送单元,用于客户端将解密得到的所述第一密文发送给所述服务器;
服务器密文生成单元,用于所述服务器使用服务器证书的私钥对所述第一密文进行解密,以得到所述CA的标识、第一时间戳以及预备主密钥,根据所述CA的标识对所述CA进行验证,验证成功后,将第一随机数、第二随机数以及预备主密钥作为参数,使用预设的密钥生成函数生成SSL连接的第一密钥,使用预设的加密算法根据所述第一密钥、所述请求消息、所述响应消息以及第一密文生成第一MAC,使用所述第一密钥对所述第一MAC和第二时间戳进行加密,将加密后的密文记为第三密文;
第二服务器消息发送单元,用于服务器将所述第三密文发送给所述客户端;
客户端主密钥设置单元,用于所述客户端接收到第三密文后,将所述第一随机数、第二随机数以及预备主密钥作为参数,使用所述密钥生成函数生成所述SSL连接的第二密钥,使用所述第二密钥对所述第三密文进行解密,如果解密成功,则对所述第一MAC进行验证,当验证成功时,使用所述预设的加密算法根据所述第二密钥、所述请求消息、所述响应消息以及第一密文生成第二MAC,使用所述第一密钥对所述第二MAC进行加密,将加密后的密文记为第四密文,并将所述第二密钥设置为与所述服务器进行后续通信的主密钥;
第四客户端消息发送单元,用于客户端将所述第四密文发送给所述服务器;以及
服务器主密钥设置单元,用于所述服务器使用所述第一密钥对所述第四密文进行解密,如果解密成功,则对所述第二MAC进行验证,当验证成功时,将所述第一密钥设置为与所述客户端进行后续通信的主密钥,以完成所述SSL连接的建立。
一方面,提供了一种安全套接层连接的建立系统,其特征在于,所述系统包括客户端、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连接的建立。
本发明实施例通过引入可信的证书分发机构(Certificate Authority,缩写为CA),将第三方CA加入SSL连接的握手过程中,在对服务器证书的验证过程中,服务器的证书必须向CA注册才有效,从而通过CA实时获取服务器证书的公钥,保证了基于SSL连接的会话主密钥生成的安全性,避免了中间人攻击。
附图说明
图1是本发明实施例一提供的安全套接层连接的建立方法的实现流程图;以及
图2是本发明实施例二提供的安全套接层连接的建立装置的结构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
以下结合具体实施例对本发明的具体实现进行详细描述:
实施例一:
图1示出了本发明实施例一提供的安全套接层连接的建立方法的实现流程,详述如下:
在步骤S101中,客户端向服务器发送建立SSL连接的请求消息,所述请求消息包含生成的第一随机数。
在本发明实施例中,客户端可以是浏览器,也可以是其他可连接到Web服务的专用客户端。当客户端连接到服务器时,向服务器发出建立SSL连接的请求消息,该请求消息中包括客户端最高可支持的SSL协议的版本号、会话标识、客户端支持的密码套件列表、压缩算法列表和用作产生密钥的随机数等参数,在这里将该随机数记为第一随机数。
在步骤S102中,服务器向客户端返回请求消息的响应消息,该响应消息包含服务器证书以及生成的第二随机数。
在本发明实施例中,第二随机数由服务器生成,以用于后续的主密钥的生成,在具体实施例中,服务器证书和第二随机数可以分别发送。为了简化通信过程,优选地,生成的第二随机数和服务器证书在一个响应消息中发送给客户端,从而减少握手过程中的通信次数。另外,服务器消息中还可以包括服务器根据接收的SSL版本号选择的SSL版本号、从客户端的密码套件列表中选择的一个密码套件、从客户端的压缩算法列表中选择的压缩方法。
在步骤S103中,客户端从接收的响应消息中获取服务器证书,进而从服务器证书中获取服务器证书的证书颁发机构(CA),并获取CA证书的公钥,使用该公钥对待发送的客户端生成的服务器证书验证请求消息进行加密,以得到对应的验证请求消息密文,所述服务器证书验证请求消息中包括所述客户端的标识、服务器的标识、第一时间戳以及生成的预备主密钥。
在本发明实施例中,客户端接收到响应消息后,生成预备主密钥,进而根据客户端的标识、服务器的标识、第一时间戳以及预备主密钥生成服务器证书验证请求消息,其中第一时间戳为消息生成的时间,以用于防止服务器受到重放攻击。为了对服务器证书进行验证,客户端存储有可信的CA列表/数据库。客户端可以从服务器证书上获取CA的标识,根据CA的标识在客户端存储的CA列表/数据库中查找该CA,查找到该CA后获取CA的公钥,以用于加密客户端生成的服务器证书验证请求消息。在本发明实施例中,利用可信CA的公钥加密保证了服务器证书验证过程的安全。
在步骤S104中,客户端将验证请求消息密文发送给CA。
在步骤S105中,CA接收到验证请求消息密文后,使用CA证书的私钥对验证请求消息密文进行解密,以得到客户端的标识、服务器的标识、第一时间戳以及预备主密钥。接着,CA根据服务器的标识获取服务器证书的公钥,使用该公钥对客户端的标识、服务器的标识、第一时间戳、CA的标识以及预备主密钥进行加密,将加密后的密文记为第一密文,然后,CA使用其自身证书的私钥对第一密文、客户端的标识、服务器的标识以及CA的标识进行加密,将加密后的密文记为第二密文。其中,优选地,客户端的标识、服务器的标识、CA的标识可以分别为客户端的名称、服务器的名称、CA的名称,当然也可以为其它可以在Web服务过程中用于标记客户端、服务器和CA的字符串。在本发明实施例中,只有拥有CA证书私钥的真正可信CA才能解密接收到的验证请求消息密文。
在步骤S106中,CA将第二密文发送给客户端。
在步骤S107中,客户端使用CA证书的公钥对接收到的第二密文进行解密,以得到第一密文、客户端的标识、服务器的标识和CA的标识进行验证。
在步骤S108中,客户端将第一密文发送给服务器。
在本发明实施例中,由于第一密文采用服务器公钥进行加密,因此,任何中间人拦截之后不能解密第一密文,没有任何作用,从而有效地保证了密文中数据的安全性,进而保证了生成的SSL连接主密钥的安全性。
在步骤S109中,服务器使用服务器证书的私钥对第一密文进行解密,以得到CA的标识和预备主密钥,根据CA的标识对CA进行验证,验证成功后,将第一随机数、第二随机数以及预备主密钥作为参数,使用预设的密钥生成函数生成SSL连接的第一密钥,使用预设的加密算法根据第一密钥、请求消息、响应消息以及第一密文生成第一消息认证码(MessageAuthentication Code,MAC),使用第一密钥对第一MAC和第二时间戳进行加密,将加密后的密文记为第三密文。
在本发明实施例中,服务器接收到CA的标识后,作为示例地,可以通过查询存储的证书列表/数据库对CA进行认证。其中,生成第二密钥时,第一随机数、预备主密钥来自客户端,第一密钥是前述步骤中生成之后存储下来的,这样保证了与客户端进行SSL连接的安全性。作为示例地,在生成第一MAC时,服务器使用预设的散列函数计算接收到的请求消息、自身发送的响应消息以及解密的第一密文的摘要值,通过预设的加密算法使用第一密钥对摘要值进行加密,以得到第一MAC,其中,预设的加密算法为对称加密算法,第二时间戳=第一时间戳+1。
在步骤S110中,将第三密文发送给客户端。
在步骤S111中,客户端接收到第三密文后,将第一随机数、第二随机数以及预备主密钥作为参数,使用前述预设的密钥生成函数生成SSL连接的第二密钥,并使用第二密钥对第三密文进行解密,如果解密成功,则对第一MAC进行验证,当验证成功时,使用预设的加密算法根据第二密钥、请求消息、响应消息以及第一密文生成第二MAC,使用第二密钥对第二MAC进行加密,将加密后的密文记为第四密文,并将第二密钥设置为与服务器进行后续通信的主密钥。
在本发明实施中,第一MAC的验证过程可以采用第一MAC生成的逆过程。作为示例地,可以通过第二密钥对第一MAC进行解密,接着使用与服务器相同的散列函数计算客户端存储的请求消息、响应消息以及第一密文的摘要值,判断该摘要值是否与对第一MAC解密后的值相同,相同则验证成功,继续后续步骤,否则提示建立SSL连接失败。同时,如果验证成功也表明客户端生成的第二密钥与服务器生成的第一密钥相同,没有发生中间人攻击,因此,客户端可以将第二密钥设置为与服务器进行后续通信的主密钥。
在步骤S112中,将第四密文发送给服务器。
在步骤S113中,服务器使用第一密钥对第四密文进行解密,如果解密成功,则对第二MAC进行验证,当验证成功时,将第一密钥设置为与客户端进行后续通信的主密钥,以完成SSL连接的建立。
在本发明实施例中,与客户端一样,服务器需要对生成的第一密钥进行验证,判断是否在SSL连接建立过程中出现了中间人攻击。当认证成功时,表明服务器生成的第一密钥与客户端生成的第二密钥相同,因此,服务器可以将第一密钥设置为与服务器进行后续通信的主密钥。
在本发明实施例中,引入了可信的第三方CA、以及多个安全参数参与到SSL连接的握手过程中,保证了客户端对服务器证书进行认证时认证过程的有效性、安全性,同时,使得客户端可以从CA中实时获得服务器的实时公钥,保证了用于SSL连接的主密钥的安全生成,有效避免了中间人攻击。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于一计算机可读取存储介质中,所述的存储介质,如ROM/RAM、磁盘、光盘等。
实施例二:
图2示出了本发明实施例二提供的安全套接层连接的建立装置的结构,为了便于说明,仅示出了与本发明实施例相关的部分,其中,安全套接层连接的建立装置2包括下述单元:
第一客户端消息发送单元2101,用于客户端向服务器发送建立SSL连接的请求消息,所述请求消息包含生成的第一随机数;
客户端密文获取单元2102,用于客户端从接收的服务器证书中获取所述服务器证书的CA,获取CA证书的公钥,使用该公钥对待发送的服务器证书验证请求消息进行加密,以得到对应的验证请求消息密文,所述服务器证书验证请求消息中包括所述客户端的标识、服务器的标识、第一时间戳以及生成的预备主密钥;
第二客户端消息发送单元2103,用于客户端将所述验证请求消息密文发送给所述CA;
客户端解密与验证单元2104,用于所述客户端使用所述CA证书的公钥对所述第二密文进行解密,以得到所述服务器的标识、所述客户端的标识、CA的标识以及所述第一密文,对所述服务器的标识、所述客户端的标识以及CA的标识进行验证;
第三客户端消息发送单元2105,用于客户端将解密得到的所述第一密文发送给所述服务器;
客户端主密钥设置单元2106,用于所述客户端接收到第三密文后,将所述第一随机数、第二随机数以及预备主密钥作为参数,使用预设的密钥生成函数生成所述SSL连接的第二密钥,客户端使用所述第二密钥对接收的第三密文进行解密,如果解密成功,则对解密得到的第一MAC进行验证,当验证成功时,使用预设的加密算法根据所述第二密钥、所述请求消息、接收的响应消息以及第一密文生成第二MAC,使用所述第二密钥对所述第二MAC进行加密,将加密后的密文记为第四密文,并将所述第二密钥设置为与所述服务器进行后续通信的主密钥;
第四客户端消息发送单元2107,用于客户端将所述第四密文发送给所述服务器;
CA加密和发送单元2201,用于所述CA使用其自身证书的私钥对所述验证请求消息密文进行解密,以得到客户端的标识、服务器的标识、第一时间戳以及预备主密钥,根据所述服务器的标识获取所述服务器证书的公钥,使用该公钥对所述客户端的标识、所述服务器的标识、第一时间戳、所述CA的标识以及预备主密钥进行加密,将加密后的密文记为第一密文,使用CA证书的私钥对所述第一密文、所述客户端的标识、所述服务器的标识以及CA的标识进行加密,将加密后的密文记为第二密文,将第二密文发送给所述客户端;
第一服务器消息发送单元2301,用于所述服务器向所述客户端返回所述请求消息的响应消息,所述响应消息包含服务器证书以及生成的第二随机数;
服务器密文生成单元2302,用于所述服务器使用服务器证书的私钥对所述第一密文进行解密,以得到所述CA的标识和预备主密钥,根据所述CA的标识对所述CA进行验证,验证成功后,将第一随机数、第二随机数以及预备主密钥作为参数,使用所述密钥生成函数生成SSL连接的第一密钥,使用预设的加密算法根据所述第一密钥、所述请求消息、所述响应消息以及第一密文生成第一MAC,使用所述第一密钥对所述第一MAC和第二时间戳进行加密,将加密后的密文记为第三密文;
在本发明实施例中,作为示例地,所述服务器密文生成单元2302可包括MAC获取单元,用于服务器使用预设的散列函数计算所述请求消息、所述响应消息以及第一密文的摘要值,通过所述预设的加密算法使用所述第一密钥对所述摘要值进行加密,以得到第一MAC。
第二服务器消息发送单元2303,用于服务器将所述第三密文发送给所述客户端;
服务器主密钥设置单元2304,用于所述服务器使用所述第一密钥对所述第四密文进行解密,如果解密成功,则对所述第二MAC进行验证,当验证成功时,将所述第一密钥设置为与所述客户端进行后续通信的主密钥,以完成所述SSL连接的建立。
在本发明实施例中,安全套接层连接的建立装置2的单元位于一SSL连接系统中的不同通信实体或应用程序中,优选地,位于客户端21、证书分发机构22、服务器23中,其中:
客户端21包括第一客户端消息发送单元2101、客户端密文获取单元2102、第二客户端消息发送单元2103、客户端解密与验证单元2104、第三客户端消息发送单元2105、客户端主密钥设置单元2106以及第四客户端消息发送单元2107。
证书分发机构22包括CA加密和发送单元2201。
服务器23包括第一服务器消息发送单元2301、服务器密文生成单元2302、第二服务器消息发送单元2303以及服务器主密钥设置单元2304。
本发明实施例通过引入可信的CA,将第三方CA加入SSL连接的握手协议过程中,在对服务器证书的验证过程中,服务器的证书必须向CA注册才有效,从而通过CA实时获取服务器证书的公钥,保证了SSL连接主密钥生成的安全性,避免了中间人攻击,另外,通过保护预备主密钥进一步提高了主密钥生成的安全性,通过基于握手过程中的消息计算MAC值,保证了通信过程中数据的完整性,及对双方的认证,相对于现有的SSL的握手过程,具有更高的安全性。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种安全套接层连接的建立方法,其特征在于,所述方法包括下述步骤:
客户端向服务器发送建立SSL连接的请求消息,所述请求消息包含生成的第一随机数;
所述服务器向所述客户端返回所述请求消息的响应消息,所述响应消息包含服务器证书以及生成的第二随机数;
所述客户端从所述服务器证书中获取所述服务器证书的证书颁发机构CA,获取CA证书的公钥,使用该公钥对待发送的服务器证书验证请求消息进行加密,以得到对应的验证请求消息密文,将所述验证请求消息密文发送给所述CA,所述服务器证书验证请求消息中包括所述客户端的标识、服务器的标识、第一时间戳以及生成的预备主密钥,其中,所述第一时间戳为所述响应消息生成的时间,以用于防止服务器受到重放攻击;
所述CA使用其自身证书的私钥对所述验证请求消息密文进行解密,以得到客户端的标识、服务器的标识、第一时间戳以及预备主密钥,根据所述服务器的标识获取所述服务器证书的公钥,使用该公钥对所述客户端的标识、所述服务器的标识、第一时间戳、所述CA的标识以及预备主密钥进行加密,将加密后的密文记为第一密文,使用CA证书的私钥对所述第一密文、所述客户端的标识、所述服务器的标识以及CA的标识进行加密,将加密后的密文记为第二密文,将第二密文发送给所述客户端;
所述客户端使用所述CA证书的公钥对所述第二密文进行解密,以得到所述服务器的标识、所述客户端的标识、CA的标识以及所述第一密文,对所述服务器的标识、所述客户端的标识以及CA的标识进行验证,并将所述第一密文发送给所述服务器;
所述服务器使用服务器证书的私钥对所述第一密文进行解密,以得到所述CA的标识、第一时间戳以及预备主密钥,根据所述CA的标识对所述CA进行验证,验证成功后,将第一随机数、第二随机数以及预备主密钥作为参数,使用预设的密钥生成函数生成SSL连接的第一密钥,使用预设的加密算法根据所述第一密钥、所述请求消息、所述响应消息以及第一密文生成第一消息认证码MAC,使用所述第一密钥对所述第一消息认证码MAC和第二时间戳进行加密,将加密后的密文记为第三密文,将所述第三密文发送给所述客户端;其中,所述预设的加密算法为对称加密算法,所述第二时间戳=所述第一时间戳+1;
所述客户端接收到第三密文后,将所述第一随机数、第二随机数以及预备主密钥作为参数,使用所述密钥生成函数生成所述SSL连接的第二密钥,使用所述第二密钥对所述第三密文进行解密,如果解密成功,则对所述第一消息认证码MAC进行验证,当验证成功时,使用所述预设的加密算法根据所述第二密钥、所述请求消息、所述响应消息以及第一密文生成第二消息认证码MAC,使用所述第二密钥对所述第二消息认证码MAC进行加密,将加密后的密文记为第四密文,将所述第四密文发送给所述服务器,并将所述第二密钥设置为与所述服务器进行后续通信的主密钥;
所述服务器使用所述第一密钥对所述第四密文进行解密,如果解密成功,则对所述第二消息认证码MAC进行验证,当验证成功时,将所述第一密钥设置为与所述客户端进行后续通信的主密钥,以完成所述SSL连接的建立。
2.如权利要求1所述的方法,其特征在于,所述客户端的标识、服务器的标识以及所述CA的标识分别为所述客户端的名称、服务器的名称以及所述CA的名称。
3.如权利要求1所述的方法,其特征在于,所述预设的加密算法为对称加密算法。
4.如权利要求1所述的方法,其特征在于,使用预设的加密算法根据所述第一密钥、所述请求消息、所述响应消息以及第一密文生成第一消息认证码MAC的步骤包括:
所述服务器使用预设的散列函数计算所述请求消息、所述响应消息以及第一密文的摘要值,通过所述预设的加密算法使用所述第二密钥对所述摘要值进行加密,以得到第一消息认证码MAC。
5.一种安全套接层连接的建立装置,其特征在于,所述装置包括:
第一客户端消息发送单元,用于客户端向服务器发送建立SSL连接的请求消息,所述请求消息包含生成的第一随机数;
第一服务器消息发送单元,用于所述服务器向所述客户端返回所述请求消息的响应消息,所述响应消息包含服务器证书以及生成的第二随机数;
客户端密文获取单元,用于所述客户端从所述服务器证书中获取所述服务器证书的证书颁发机构,获取CA证书的公钥,使用该公钥对待发送的服务器证书验证请求消息进行加密,以得到对应的验证请求消息密文,所述服务器证书验证请求消息中包括所述客户端的标识、服务器的标识、第一时间戳以及生成的预备主密钥,其中,所述第一时间戳为所述响应消息生成的时间,以用于防止服务器受到重放攻击;
第二客户端消息发送单元,用于客户端将所述验证请求消息密文发送给所述CA;
CA加密和发送单元,用于所述CA使用其自身证书的私钥对所述验证请求消息密文进行解密,以得到客户端的标识、服务器的标识、第一时间戳以及预备主密钥,根据所述服务器的标识获取所述服务器证书的公钥,使用该公钥对所述客户端的标识、所述服务器的标识、第一时间戳、所述CA的标识以及预备主密钥进行加密,将加密后的密文记为第一密文,使用CA证书的私钥对所述第一密文、所述客户端的标识、所述服务器的标识以及CA的标识进行加密,将加密后的密文记为第二密文,将第二密文发送给所述客户端;
客户端解密与验证单元,用于所述客户端使用所述CA证书的公钥对所述第二密文进行解密,以得到所述服务器的标识、所述客户端的标识、CA的标识以及所述第一密文,对所述服务器的标识、所述客户端的标识以及CA的标识进行验证;
第三客户端消息发送单元,用于客户端将解密得到的所述第一密文发送给所述服务器;
服务器密文生成单元,用于所述服务器使用服务器证书的私钥对所述第一密文进行解密,以得到所述CA的标识、第一时间戳以及预备主密钥,根据所述CA的标识对所述CA进行验证,验证成功后,将第一随机数、第二随机数以及预备主密钥作为参数,使用预设的密钥生成函数生成SSL连接的第一密钥,使用预设的加密算法根据所述第一密钥、所述请求消息、所述响应消息以及第一密文生成第一消息认证码MAC,使用所述第一密钥对所述第一消息认证码MAC和第二时间戳进行加密,将加密后的密文记为第三密文;其中,所述预设的加密算法为对称加密算法,所述第二时间戳=所述第一时间戳+1;
第二服务器消息发送单元,用于服务器将所述第三密文发送给所述客户端;
客户端主密钥设置单元,用于所述客户端接收到第三密文后,将所述第一随机数、第二随机数以及预备主密钥作为参数,使用所述密钥生成函数生成所述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和第二时间戳进行加密,将加密后的密文记为第三密文;其中,所述预设的加密算法为对称加密算法,所述第二时间戳=所述第一时间戳+1;
第二服务器消息发送单元,用于服务器将所述第三密文发送给所述客户端;
服务器主密钥设置单元,用于所述服务器使用所述第一密钥对所述第四密文进行解密,如果解密成功,则对所述第二消息认证码MAC进行验证,当验证成功时,将所述第一密钥设置为与所述客户端进行后续通信的主密钥,以完成所述SSL连接的建立。
10.如权利要求9所述的系统,其特征在于,所述服务器密文生成单元包括:
消息认证码MAC获取单元,用于所述服务器使用预设的散列函数计算所述请求消息、所述响应消息以及第一密文的摘要值,通过所述预设的加密算法使用所述第二密钥对所述摘要值进行加密,以得到第一消息认证码MAC。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410008760.7A CN103763356B (zh) | 2014-01-08 | 2014-01-08 | 一种安全套接层连接的建立方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410008760.7A CN103763356B (zh) | 2014-01-08 | 2014-01-08 | 一种安全套接层连接的建立方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103763356A CN103763356A (zh) | 2014-04-30 |
CN103763356B true CN103763356B (zh) | 2017-05-31 |
Family
ID=50530515
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410008760.7A Expired - Fee Related CN103763356B (zh) | 2014-01-08 | 2014-01-08 | 一种安全套接层连接的建立方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103763356B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108512849A (zh) * | 2018-04-02 | 2018-09-07 | 北京奇艺世纪科技有限公司 | 一种访问服务器的握手方法及系统 |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103986716B (zh) * | 2014-05-21 | 2017-02-01 | 深圳大学 | Ssl连接的建立方法以及基于ssl连接的通信方法及装置 |
CN105516066B (zh) * | 2014-09-26 | 2019-04-09 | 阿里巴巴集团控股有限公司 | 一种对中间人的存在进行辨识的方法及装置 |
CN104618362B (zh) * | 2015-01-23 | 2018-01-26 | 广州弘承持信电子商务有限公司 | 一种资源服务器和客户端交互会话消息的方法及装置 |
CN104735058B (zh) * | 2015-03-04 | 2018-03-16 | 深信服网络科技(深圳)有限公司 | 一种基于安全协议ssl的加密方法及系统 |
CN105072125B (zh) * | 2015-08-26 | 2018-03-13 | 北京京东尚科信息技术有限公司 | 一种http通信系统及方法 |
CN106169955B (zh) * | 2016-09-29 | 2019-04-19 | 广州供电局有限公司 | 配网终端无线维护的安全认证方法与系统 |
CN108259407B (zh) * | 2016-12-28 | 2020-09-11 | 航天信息股份有限公司 | 一种基于时间戳的对称加密方法及系统 |
CN107360131B (zh) * | 2017-05-27 | 2020-02-07 | 广东网金控股股份有限公司 | 一种业务请求合法性控制的方法、服务器及系统 |
CN107135233A (zh) * | 2017-06-28 | 2017-09-05 | 百度在线网络技术(北京)有限公司 | 信息的安全传输方法和装置、服务器和存储介质 |
CN107222764B (zh) * | 2017-07-06 | 2020-06-19 | 成都睿胜科技有限公司 | 利用mqtt和ssl实现双向ca安全授权的方法 |
CN109802834A (zh) * | 2017-11-16 | 2019-05-24 | 航天信息股份有限公司 | 一种对业务层数据进行加密、解密的方法及系统 |
CN108449346B (zh) * | 2018-03-22 | 2021-07-27 | 北京可信华泰科技有限公司 | 一种密钥生成客户端 |
CN108737394B (zh) * | 2018-05-08 | 2020-05-22 | 腾讯科技(深圳)有限公司 | 离线验证系统、扫码设备和服务器 |
CN109067746B (zh) * | 2018-08-10 | 2021-06-29 | 北京奇虎科技有限公司 | 客户端与服务器之间的通信方法及装置 |
CN109286500B (zh) * | 2018-09-30 | 2023-04-11 | 阿波罗智联(北京)科技有限公司 | 车辆电子控制单元ecu认证方法、装置及设备 |
CN111083706B (zh) * | 2019-12-13 | 2020-09-22 | 夏侯淑琴 | 一种在网络接入中经由二次退避指定的电子设备及相应接入方法 |
CN111327634B (zh) * | 2020-03-09 | 2023-02-03 | 深信服科技股份有限公司 | 网站访问监管方法、安全套接层代理装置、终端及系统 |
WO2021226989A1 (zh) * | 2020-05-15 | 2021-11-18 | 华为技术有限公司 | 通信的方法和通信装置 |
CN112003843A (zh) * | 2020-08-12 | 2020-11-27 | 中电科技(北京)有限公司 | 国产bmc服务器ssl认证方法及装置 |
CN112995158B (zh) * | 2021-02-09 | 2022-11-08 | 中国建设银行股份有限公司 | 通信方法、终端、服务器及通信系统 |
CN113194465B (zh) * | 2021-04-20 | 2023-11-24 | 歌尔股份有限公司 | 终端间的ble连接验证方法、装置及可读存储介质 |
CN113347010B (zh) * | 2021-08-05 | 2021-11-05 | 深圳市财富趋势科技股份有限公司 | 基于ssl-tls协议的双向认证方法、系统 |
CN113438256B (zh) * | 2021-08-26 | 2022-02-25 | 北京天空卫士网络安全技术有限公司 | 一种基于双层ssl的数据传输方法、系统和代理服务器 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1787513A (zh) * | 2004-12-07 | 2006-06-14 | 上海鼎安信息技术有限公司 | 安全远程访问系统和方法 |
CN102811224A (zh) * | 2012-08-02 | 2012-12-05 | 天津赢达信科技有限公司 | 一种ssl/tls连接的实现方法、装置及系统 |
CN103379009A (zh) * | 2012-04-20 | 2013-10-30 | 南京易安联网络技术有限公司 | 基于数据链路层的ssl vpn通信方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7085923B2 (en) * | 2001-06-05 | 2006-08-01 | International Business Machines Corporation | High volume secure internet server |
-
2014
- 2014-01-08 CN CN201410008760.7A patent/CN103763356B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1787513A (zh) * | 2004-12-07 | 2006-06-14 | 上海鼎安信息技术有限公司 | 安全远程访问系统和方法 |
CN103379009A (zh) * | 2012-04-20 | 2013-10-30 | 南京易安联网络技术有限公司 | 基于数据链路层的ssl vpn通信方法 |
CN102811224A (zh) * | 2012-08-02 | 2012-12-05 | 天津赢达信科技有限公司 | 一种ssl/tls连接的实现方法、装置及系统 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108512849A (zh) * | 2018-04-02 | 2018-09-07 | 北京奇艺世纪科技有限公司 | 一种访问服务器的握手方法及系统 |
CN108512849B (zh) * | 2018-04-02 | 2020-06-30 | 北京奇艺世纪科技有限公司 | 一种访问服务器的握手方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN103763356A (zh) | 2014-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103763356B (zh) | 一种安全套接层连接的建立方法、装置及系统 | |
CN104219228B (zh) | 一种用户注册、用户识别方法及系统 | |
WO2020087805A1 (zh) | 基于双密值和混沌加密的可信测控网络认证方法 | |
KR101237632B1 (ko) | 토큰과 검증자 사이의 인증을 위한 네크워크 헬퍼 | |
CN104735068B (zh) | 基于国密的sip安全认证的方法 | |
TWI288552B (en) | Method for implementing new password and computer readable medium for performing the method | |
CN109309565A (zh) | 一种安全认证的方法及装置 | |
CN112425136B (zh) | 采用多方计算(mpc)的物联网安全性 | |
CN108494811B (zh) | 数据传输安全认证方法及装置 | |
JP5845393B2 (ja) | 暗号通信装置および暗号通信システム | |
CN107360571B (zh) | 在移动网络中的匿名相互认证和密钥协商协议的方法 | |
CN103546289B (zh) | 一种基于USBKey的安全传输数据的方法及系统 | |
CN108243166A (zh) | 一种基于USBKey的身份认证方法和系统 | |
CN109728909A (zh) | 基于USBKey的身份认证方法和系统 | |
CN108243176B (zh) | 数据传输方法和装置 | |
KR100842267B1 (ko) | 다중 인증 수단을 가지는 시스템의 통합 사용자 인증 서버,클라이언트 및 방법 | |
CN102624740A (zh) | 一种数据交互方法及客户端、服务器 | |
CN103684798B (zh) | 一种用于分布式用户服务间认证方法 | |
JP6548172B2 (ja) | 端末認証システム、サーバ装置、及び端末認証方法 | |
CN104901935A (zh) | 一种基于cpk的双向认证及数据交互安全保护方法 | |
CN112351037B (zh) | 用于安全通信的信息处理方法及装置 | |
CN105447715A (zh) | 用于与第三方合作的防盗刷电子优惠券的方法和装置 | |
KR20110083886A (ko) | 휴대용 단말기에서 다른 휴대용 단말기를 인증하는 장치 및 방법 | |
CN107094156A (zh) | 一种基于p2p模式的安全通信方法及系统 | |
CN110635901A (zh) | 用于物联网设备的本地蓝牙动态认证方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170531 Termination date: 20220108 |
|
CF01 | Termination of patent right due to non-payment of annual fee |