一种SSL隧道建立方法、服务端及客户端与流程

文档序号:31778873发布日期:2022-10-12 09:21阅读:35来源:国知局
一种SSL隧道建立方法、服务端及客户端与流程
一种ssl隧道建立方法、服务端及客户端
技术领域
1.本发明涉及网络安全领域,特别涉及一种ssl隧道建立方法、服务端及客户端。


背景技术:

2.ssl协议(secure sockets layer,安全套接字协议)是为网络通信提供安全及数据完整性的一种安全协议。相关技术中,该协议在进行用户身份鉴别时主要通过证书中的相关信息进行校验,然而为确保证书使用的合规性和安全性,通常需要引入运营级证书签发平台的支持,这在一定的程度上限制了证书的使用,例如对于工控领域内的嵌入式设备,证书的使用受限或者无法使用,将直接影响ssl协议在这类设备中的部署。


技术实现要素:

3.本发明的目的是提供一种ssl隧道建立方法、服务端及客户端,可使用简单的标识信息对ssl隧道建立流程中的证书进行替换,进而可有效避免现有ssl隧道建立过程对证书的依赖并降低ssl协议的部署限制。
4.为解决上述技术问题,本发明提供一种ssl隧道建立方法,应用于服务端,所述方法包括:
5.在响应客户端的隧道连接请求后,利用预设的服务端标识构造身份信息,以及利用由所述服务端标识生成的签名数据构造第一密钥交换信息;
6.向所述客户端返回所述身份信息及所述第一密钥交换信息,以使所述客户端在利用所述服务端标识确定所述签名数据有效时,利用由所述服务端标识生成的公钥构造并返回包含有加密的预主密钥的第二密钥交换信息;
7.利用由所述服务端标识生成的私钥解密所述预主密钥,并利用解密后的预主密钥完成密码规格变更,以完成ssl隧道建立。
8.优选地,所述客户端利用所述服务端标识及公钥矩阵生成所述公钥,所述利用由所述服务端标识生成的私钥解密所述预主密钥,包括:
9.向标识服务器获取由私钥矩阵及所述服务端标识生成的所述私钥;所述私钥矩阵及所述公钥矩阵用于生成一组非对称密钥对;
10.利用所述私钥解密所述预主密钥。
11.优选地,所述利用由所述服务端标识生成的签名数据构造第一密钥交换信息,包括:
12.对所述公钥进行签名得到所述签名数据,以使所述客户端利用所述公钥确定所述签名数据是否有效;
13.利用所述签名数据构造所述第一密钥交换信息。
14.优选地,所述对所述公钥进行签名得到所述签名数据,包括:
15.利用签名矩阵和所述服务端标识生成签名公钥;
16.利用所述签名公钥对所述公钥进行签名得到所述签名数据,以使所述客户端利用
所述签名公钥和所述公钥确定所述签名数据是否有效。
17.优选地,在向所述客户端返回所述身份信息及所述第一密钥交换信息之后,还包括:
18.向所述客户端发送身份请求信息,以使所述客户端返回包含预设的客户端标识的客户端身份信息;
19.确定客户端标识是否有效,并在确定所述客户端标识有效时进入利用由所述服务端标识生成的私钥解密所述预主密钥的步骤;
20.其中,所述确定客户端标识是否有效,包括:
21.通过ocsp协议与标识服务器确定所述客户端标识是否有效;和/或,
22.判断所述客户端标识是否保存于预设的标识吊销列表中;
23.若是,则确定所述客户端标识无效;
24.若否,则确定所述客户端标识有效。
25.本发明还提供一种ssl隧道建立方法,应用于客户端,所述方法包括:
26.向服务端发送隧道连接请求,并分别从所述服务端返回的身份信息和第一密钥交换信息中提取服务端标识以及由所述服务端标识生成的签名数据;
27.利用所述服务端标识确定所述签名数据是否有效,并在确定有效时利用由所述服务端标识生成的公钥构造包含有加密的预主密钥的第二密钥交换信息;
28.向所述服务端返回所述第二密钥交换信息,以使所述服务端利用由所述服务端标识生成的私钥解密所述预主密钥,并利用解密后的预主密钥完成密码规格变更,以完成ssl隧道建立。
29.优选地,所述服务端利用所述服务端标识及私钥矩阵生成所述私钥,所述利用由所述服务端标识生成的公钥构造包含有加密的预主密钥的第二密钥交换信息,包括:
30.利用公钥矩阵及所述服务端标识生成所述公钥;所述私钥矩阵及所述公钥矩阵用于生成一组非对称密钥对;
31.利用所述公钥构造包含有加密的预主密钥的第二密钥交换信息。
32.优选地,所述服务端对所述公钥进行签名得到所述签名数据,所述利用所述服务端标识确定所述签名数据是否有效,包括:
33.利用所述公钥确定所述签名数据是否有效。
34.优选地,所述服务端利用由签名矩阵和所述服务端标识生成签名公钥对所述公钥进行签名得到所述签名数据,所述利用所述公钥确定所述签名数据是否有效,包括:
35.利用所述签名公钥和所述公钥确定所述签名数据是否有效。
36.优选地,在向服务端发送隧道连接请求之后,还包括:
37.当接收到所述服务端发送的身份请求信息时,利用预设的客户端标识构造客户端身份信息;
38.向所述服务端返回所述客户端身份信息,以使所述服务端确定所述客户端标识是否有效,并在确定有效时进入所述利用由所述服务端标识生成的私钥解密所述预主密钥的步骤;
39.其中,所述服务端确定所述客户端标识是否有效,包括:
40.所述服务端通过ocsp协议与标识服务器确定所述客户端标识是否有效;和/或,
41.所述服务端判断所述客户端标识是否保存于预设的标识吊销列表中;
42.若是,则确定所述客户端标识无效;
43.若否,则确定所述客户端标识有效;
44.其中,在利用所述服务端标识确定所述签名数据是否有效之前,还包括:
45.确定所述服务端标识是否有效,并在确定有效时进入所述利用所述服务端标识确定所述签名数据是否有效的步骤。
46.本发明还提供一种服务端,包括:
47.服务端信息构造模块,用于在响应客户端的隧道连接请求后,利用预设的服务端标识构造身份信息,以及利用由所述服务端标识生成的签名数据构造第一密钥交换信息;
48.服务端信息返回模块,用于向所述客户端返回所述身份信息及所述第一密钥交换信息,以使所述客户端在利用所述服务端标识确定所述签名数据有效时,利用由所述服务端标识生成的公钥构造并返回包含有加密的预主密钥的第二密钥交换信息;
49.隧道建立模块,用于利用由所述服务端标识生成的私钥解密所述预主密钥,并利用解密后的预主密钥完成密码规格变更,以完成ssl隧道建立。
50.本发明还提供一种客户端,包括:
51.数据提取模块,用于向服务端发送隧道连接请求,并分别从所述服务端返回的身份信息和第一密钥交换信息中提取服务端标识以及由所述服务端标识生成的签名数据;
52.客户端信息构造模块,用于利用所述服务端标识确定所述签名数据是否有效,并在确定有效时利用由所述服务端标识生成的公钥构造包含有加密的预主密钥的第二密钥交换信息;
53.客户端信息返回模块,用于向所述服务端返回所述第二密钥交换信息,以使所述服务端利用由所述服务端标识生成的私钥解密所述预主密钥,并利用解密后的预主密钥完成密码规格变更,以完成ssl隧道建立。
54.本发明提供一种ssl隧道建立方法,应用于服务端,所述方法包括:在响应客户端的隧道连接请求后,利用预设的服务端标识构造身份信息,以及利用由所述服务端标识生成的签名数据构造第一密钥交换信息;向所述客户端返回所述身份信息及所述第一密钥交换信息,以使所述客户端在利用所述服务端标识确定所述签名数据有效时,利用由所述服务端标识生成的公钥构造并返回包含有加密的预主密钥的第二密钥交换信息;利用由所述服务端标识生成的私钥解密所述预主密钥,并利用解密后的预主密钥完成密码规格变更,以完成ssl隧道建立。
55.可见,本发明中的服务端在完成对客户端的隧道连接请求的操作响应后,将会利用预设的服务端标识构造身份信息,以及利用由服务端标识生成的签名数据构造第一密钥交换信息,其中服务端标识信息为可唯一标识服务端的字符串;同时,客户端也可利用服务端标识对签名数据进行验证,以及利用由服务端标识生成的公钥对预主密钥进行加密,以使服务端利用由服务端标识生成的私钥对预主密钥进行解密。换而言之,本发明可使用简单的标识信息对证书进行替换,服务端及客户端既可使用标识信息生成ssl隧道建立过程中的各类信息,也可使用由标识生成的密钥对,对ssl隧道建立过程中的预主密钥进行加密传输,进而可有效避免现有ssl隧道建立过程对证书的依赖并降低ssl协议的部署限制。本发明还提供一种应用于客户端的ssl隧道建立方法、服务端及客户端,具有上述有益效果。
附图说明
56.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
57.图1为本发明实施例所提供的一种ssl隧道建立方法的流程图;
58.图2为本发明实施例所提供的另一种ssl隧道建立方法的流程图;
59.图3为本发明实施例所提供的一种服务端的结构框图;
60.图4为本发明实施例所提供的一种客户端的结构框图。
具体实施方式
61.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
62.相关技术中,该协议在进行用户身份鉴别时主要通过证书中的相关信息进行校验,然而为确保证书使用的合规性和安全性,通常需要引入运营级证书签发平台的支持,这在一定的程度上限制了证书的使用,例如对于工控领域内的嵌入式设备,证书的使用受限或者无法使用,将直接影响ssl协议在这类设备中的部署。有鉴于此,本发明可提供一种ssl隧道建立方法,可使用简单的标识信息对ssl隧道建立流程中的证书进行替换,进而可有效避免现有ssl隧道建立过程对证书的依赖并降低ssl协议的部署限制。请参考图1,图1为本发明实施例所提供的一种ssl隧道建立方法的流程图,该方法应用于服务端,可以包括:
63.s101、在响应客户端的隧道连接请求后,利用预设的服务端标识构造身份信息,以及利用由服务端标识生成的签名数据构造第一密钥交换信息。
64.在标准的tlcp协商(transport layer cryptography protocol,传输层密码协议)过程中,客户端为了与服务端建立ssl隧道,首先会向服务端发起隧道连接请求(clienthello),以与服务端协商隧道构建过程中的相关加密算法,而服务端则会返回对应的响应信息(serverhello)。换而言之,服务端对客户端隧道连接请求的响应,即为服务端向客户端返回serverhello信息。随后,在现有的tlcp协商中,服务端将利用签名证书和加密证书生成身份信息(certificate)和第一密钥交换信息(serverkeyexchange),其中客户端可利用身份信息验证服务端的身份,并可利用第一密钥交换信息与服务端协商ssl隧道的主密钥。可见,在现有ssl隧道的建立流程依赖证书来进行身份验证及密钥生成。然而,证书通常需要由证书签发平台(certification authority)签发,即ssl协议需引入这一平台,这导致在不适合引入证书签发平台的场景,例如在工控环境中,ssl协议的部署将受到限制。也正是如此,本发明可使用标识信息替换证书,以实现相关的身份验证及密钥协商机制。具体的,现有的身份信息中通常包含多本证书信息,例如签名证书、加密证书和ca证书链等,而在本技术中,上述证书信息将由一个服务端标识进行替代,其中服务端标识为服务端的唯一身份标识;此外,现有的第一密钥交换信息中通常包含利用服务端的签名证书对服务端的加密证书签名得到的证书,而在本技术中,这一证书则可被由服务端标识生成的
签名数据替换。换而言之,本技术可利用服务端标识及其对应的签名数据构造ssl隧道建立过程中涉及证书的各类信息。应当说明的是,本发明实施例并不限定服务端标识的具体形式,只要能够唯一标记服务端即可,可根据实际应用需求进行设定。本发明实施例也不限定签名数据的生成方式,例如可采用sm2签名算法(国密椭圆曲线公钥密码算法)对服务端标识进行签名得到签名数据,而签名数据可采用sm2签名der编码(distinguished encoding rules,可辨别编码规则),并遵循sm2签名数据格式的国密标准。本发明实施例也不限定身份信息及第一密钥交换信息的具体构造及其能够包含的其他信息,可参考tlcp协议和ssl隧道的相关技术。
65.s102、向客户端返回身份信息及第一密钥交换信息,以使客户端在利用服务端标识确定签名数据有效时,利用由服务端标识生成的公钥构造并返回包含有加密的预主密钥的第二密钥交换信息。
66.在向客户端返回身份信息及第一密钥交换信息后,客户端会从这些信息中提取服务端标识以及签名数据,并利用服务端标识对签名数据进行签名验证。在确定签名有效后,客户端将生成预主密钥,并通过第二密钥交换信息(clientkeyexchange)将预主密钥返回至服务端,其中预主密钥是ssl隧道协商过程中的中间信息。需要说明的是,本发明实施例并不限定签名数据的验证过程,可参考签名验证的相关技术;本发明实施例并不限定预主密钥及第二密钥交换信息的生成方式,具体可参考tlcp协议中关于ecc模式套件的相关技术。
67.进一步,在现有的ssl隧道构建流程中,预主密钥通常采用服务端加密证书中包含的公钥进行加密,而服务端将采用加密证书中的私钥对预主密钥进行解密。而在本技术中,预主密钥则是利用由服务端标识生成的公钥进行加密,而服务端则可利用由服务端标识生成的私钥解密预主密钥。可以理解的是,由服务端标识所生成的公钥和私钥为一组非对称密钥对。需要说明的是,本发明实施例并不限定利用服务端标识生成公钥和私钥的具体方式,例如优选的,可设置一组公钥矩阵和私钥矩阵,在向这两个矩阵输入相同的标识信息后,它们可输出一组非对称密钥对。需要说明的是,本发明实施例并不限定公钥矩阵和私钥矩阵的生成方式,可参考ecc密钥(elliptic curve cryptography,椭圆加密算法)的相关技术。进一步,为防止私钥泄露,私钥矩阵可利用专用的标识服务器进行存储,当服务端需要相关私钥时,仅需将服务端标识发送至标识服务器,以使该服务器利用私钥矩阵和服务端标识推导并返回对应的私钥即可。当然,公钥矩阵也可由标识服务器存储,也可由标识服务器下发至各个需要使用公钥的设备中,可根据实际应用需求进行设定。即换而言之,客户端可预先先标识服务器获取并保存这一公钥矩阵。
68.进一步,需要说明的是,本发明实施例并不限定加密预主密钥所使用的非对称加密算法,例如可采用sm2算法进行加密,并采用der编码进行编码,可根据实际应用需求进行设定。
69.s103、利用由服务端标识生成的私钥解密预主密钥,并利用解密后的预主密钥完成密码规格变更,以完成ssl隧道建立。
70.在收到客户端返回的预主密钥之后,服务端便可利用对应的私钥进行解密,并利用解密后的预主密钥进行密码规格变更(changecipherspec),以完成ssl隧道的建立。需要说明的是,除上述实施例中详细介绍的ssl隧道构建信息外,在ssl隧道构建过程中还可能
涉及其他类型的信息,例如certificaterequest(身份信息请求)、serverhellodone(握手结束信息)、finished(ssl隧道构建完成信息)等,可参考tlcp协议及ssl隧道的相关技术,此处不再赘述。
71.进一步,根据上述论述,本发明实施例中使用的公钥和私钥可利用公钥矩阵、私钥矩阵和服务端标识推导得到,其中客户端可预先获取到这一公钥矩阵,而私钥矩阵则应当被存储在专用的标识服务器中。
72.在一种可能的情况中,客户端利用服务端标识及公钥矩阵生成公钥,利用由服务端标识生成的私钥解密预主密钥,可以包括:
73.步骤11:向标识服务器获取由私钥矩阵及服务端标识生成的私钥;私钥矩阵及公钥矩阵用于生成一组非对称密钥对;
74.步骤12:利用私钥解密预主密钥。
75.进一步,签名数据除了可由服务端标识签名得到,也可由服务端标识对应的公钥签名得到,这样客户端可直接采用公钥对签名数据进行验证,可节省客户端验证签名数据的时间。显然,服务端也可预先获取公钥矩阵,且可以理解的是,客户端与服务端所拥有的公钥矩阵为同一矩阵。
76.在一种可能的情况中,利用由服务端标识生成的签名数据构造第一密钥交换信息,包括:
77.步骤21:对公钥进行签名得到签名数据,以使客户端利用公钥确定签名数据是否有效;
78.步骤22:利用签名数据构造第一密钥交换信息。
79.当然,为进一步贴近现有ssl隧道建立过程,在对公钥进行加密时,也可首先使用专用的签名矩阵和服务端标识生成签名公钥,并利用签名公钥对由公钥矩阵和服务端标识生成的公钥进行签名,而客户端则可利用这两种公钥进行签名验证。应当指出的是,签名矩阵是不同于公钥矩阵的另一矩阵,即,本发明可采用签名矩阵和公钥矩阵对服务端标识生成两种毫无关联的公钥,以替换现有方案中的签名证书和加密证书。
80.在一种可能的情况中,对公钥进行签名得到签名数据,可以包括:
81.步骤31:利用签名矩阵和服务端标识生成签名公钥;
82.步骤32:利用签名公钥对公钥进行签名得到签名数据,以使客户端利用签名公钥和公钥确定签名数据是否有效。
83.基于上述实施例,本发明中的服务端在完成对客户端的隧道连接请求的操作响应后,将会利用预设的服务端标识构造身份信息,以及利用由服务端标识生成的签名数据构造第一密钥交换信息,其中服务端标识信息为可唯一标识服务端的字符串;同时,客户端也可利用服务端标识对签名数据进行验证,以及利用由服务端标识生成的公钥对预主密钥进行加密,以使服务端利用由服务端标识生成的私钥对预主密钥进行解密。换而言之,本发明可使用简单的标识信息对证书进行替换,服务端及客户端既可使用标识信息生成ssl隧道建立过程中的各类信息,也可使用由标识生成的密钥对,对ssl隧道建立过程中的预主密钥进行加密传输,进而可有效避免现有ssl隧道建立过程对证书的依赖并降低ssl协议的部署限制。
84.基于上述实施例,本发明中的服务端还可要求客户端同样返回身份信息,以验证
客户端的身份。在一种可能的情况中,在向客户端返回身份信息及第一密钥交换信息之后,还可以包括:
85.s301、向客户端发送身份请求信息,以使客户端返回包含预设的客户端标识的客户端身份信息。
86.按照现有tlcp协议的规定,在向客户端返回第一密钥交换信息之后,可选地,服务端还可向客户端请求客户端身份信息,即可向客户端发送身份请求信息(certificaterequest),以要求客户端将包含客户端证书的客户端身份信息(certificate)返回给服务端,进而可验证客户端的身份,以进一步提升ssl隧道的安全性。而在本发明实施例中,客户端证书同样可采用标识信息替换,即客户端也可预先设置客户端标识,并将客户端标识添加至客户端身份信息中。同服务端标识一样,本发明实施例也不限定客户端标识的具体形式,只要能够唯一标记客户端即可,可根据实际应用需求进行设定。本发明实施例也不限定身份请求信息及客户端身份信息的具体形式,可根据实际应用需求进行设定。
87.s302、确定客户端标识是否有效,并在确定客户端标识有效时进入利用由服务端标识生成的私钥解密预主密钥的步骤。
88.需要说明的是,本发明实施例并不限定验证客户端标识的具体方式,例如可在标识服务器中设置ocsp协议(online certificate status protocol,在线证书状态协议)的相关机制,而服务端将通过该协议与标识服务器在线确定客户端标识是否有效;当然可依照证书吊销列表的形式,设置一个标识吊销列表,其中该列表中存放有所有的过期标识,进而服务端可通过标识吊销列表查询客户端标识是否过期。
89.在一种可能的情况中,确定客户端标识是否有效,可以包括:
90.步骤41:通过ocsp协议与标识服务器确定客户端标识是否有效;和/或,
91.步骤51:判断客户端标识是否保存于预设的标识吊销列表中;若是,则进入步骤52;若否,则进入步骤53;
92.步骤52:确定客户端标识无效;
93.步骤53:确定客户端标识有效。
94.当然,客户端在接收到服务端标识时,也可采用上述方式对服务端标识进行验证,并在验证有效之后在于服务端进行ssl隧道协商的后续步骤。
95.基于上述实施例,本发明中的客户端也可设置客户端标识,并在服务端请求客户端身份信息时返回这一标识,以便服务端验证客户端标识的有效性,并以此提升ssl隧道的安全性。
96.基于上述实施例,下面对客户端一侧的实施方式进行详细介绍。请参考图2,图2为本发明实施例所提供的另一种ssl隧道建立方法的流程图,该方法应用于客户端,可以包括:
97.s201、向服务端发送隧道连接请求,并分别从服务端返回的身份信息和第一密钥交换信息中提取服务端标识以及由服务端标识生成的签名数据。
98.应当指出的是,隧道连接请求即为客户端的serverhello信息。关于隧道连接请求的具体形式,可参考tlcp协议和ssl隧道的相关技术。在本发明实施例中,由于服务端以分别在身份信息和第一密钥交换信息中添加了服务端标识以及由服务端标识生成的签名数
据,因此在接收到这些信息时,客户端应对服务端和签名数据进行提取。
99.s202、利用服务端标识确定签名数据是否有效,并在确定有效时利用由服务端标识生成的公钥构造包含有加密的预主密钥的第二密钥交换信息。
100.需要说明的是,本发明实施例并不限定如何利用服务端标识确定签名数据有效,可参考签名验证的相关技术。在确定签名数据有效之后,客户端将生成预主密钥,并利用由服务端标识生成的公钥加密预主密钥,进而利用第二密钥交换信息间加密的预主密钥发送至服务端;而后,服务端将利用由服务端标识生成的私钥对预主密钥进行解密,并利用解密后的预主密钥进行后续操作。根据上述实施例中的描述,本发明实施例中所涉及的公钥和私钥可采用公钥矩阵、私钥矩阵及服务端标识推导而成,其中公钥矩阵和私钥矩阵相对应,用于生成一组非对称密钥对;同时,公钥矩阵可设置在客户端中,而私钥矩阵则可设置在专用的标识服务器中。
101.在一种可能的情况中,服务端利用服务端标识及私钥矩阵生成私钥,利用由服务端标识生成的公钥构造包含有加密的预主密钥的第二密钥交换信息,可以包括:
102.步骤61:利用公钥矩阵及服务端标识生成公钥;私钥矩阵及公钥矩阵用于生成一组非对称密钥对;
103.步骤62:利用公钥构造包含有加密的预主密钥的第二密钥交换信息。
104.当然,服务端的签名数据也可由上述公钥进签名后得到,而客户端可直接利用由服务端标识生成的公钥验证签名数据是否有效。
105.在一种可能的情况中,服务端对公钥进行签名得到签名数据,利用服务端标识确定签名数据是否有效,可以包括:
106.步骤71:利用公钥确定签名数据是否有效。
107.进一步,在生成签名数据时,服务端也可利用另一签名矩阵和服务端标识生成签名公钥,并利用签名公钥对公钥矩阵和服务端标识生成的公钥进行签名,而客户端通常可利用上述两种公钥验证签名数据是否有效。
108.在一种可能的情况中,服务端利用由签名矩阵和服务端标识生成签名公钥对公钥进行签名得到签名数据,利用公钥确定签名数据是否有效,包括:
109.步骤81:利用签名公钥和公钥确定签名数据是否有效。
110.s203、向服务端返回第二密钥交换信息,以使服务端利用由服务端标识生成的私钥解密预主密钥,并利用解密后的预主密钥完成密码规格变更,以完成ssl隧道建立。
111.进一步,客户端也可设置客户端标识,而服务端也可在发送第一密钥交换信息之后,要求客户端返回包含客户端标识的客户端身份信息,以便验证客户端的身份,进而保障ssl隧道的安全。
112.在一种可能的情况中,在向服务端发送隧道连接请求之后,还可以包括:
113.步骤91:当接收到服务端发送的身份请求信息时,利用预设的客户端标识构造客户端身份信息;
114.步骤92:向服务端返回客户端身份信息,以使服务端确定客户端标识是否有效,并在确定有效时进入利用由服务端标识生成的私钥解密预主密钥的步骤。
115.需要说明的是,本发明实施例并不限定验证客户端标识的具体方式,例如可在标识服务器中设置ocsp协议(online certificate status protocol,在线证书状态协议)的
相关机制,而服务端将通过该协议与标识服务器在线确定客户端标识是否有效;当然可依照证书吊销列表的形式,设置一个标识吊销列表,其中该列表中存放有所有的过期标识,进而服务端可通过标识吊销列表查询客户端标识是否过期。
116.在一种可能的情况中,服务端确定客户端标识是否有效,可以包括:
117.步骤1001:服务端通过ocsp协议与标识服务器确定客户端标识是否有效;和/或,
118.步骤1101:服务端判断客户端标识是否保存于预设的标识吊销列表中;若是,则进入步骤1102;若否,则进入步骤1103;
119.步骤1102:确定客户端标识无效;
120.步骤1103:确定客户端标识有效。
121.当然,客户端也可利用如上方式验证服务端标识是否有效,即客户端也可通过ocsp协议与标识服务器在线验证服务端标识是否有效,或利用预设的标识吊销列表验证服务端标识是否有效。
122.在一种可能的情况中,在利用服务端标识确定签名数据是否有效之前,还可以包括:
123.步骤1201:确定服务端标识是否有效,并在确定有效时进入利用服务端标识确定签名数据是否有效的步骤。
124.下面对本发明实施例提供的服务端、客户端、电子设备及计算机可读存储介质进行介绍,下文描述的服务端、客户端、电子设备及计算机可读存储介质与上文描述的ssl隧道建立方法可相互对应参照。
125.请参考图3,图3为本发明实施例所提供的一种服务端的结构框图,该装置包括:
126.服务端信息构造模块301,用于在响应客户端的隧道连接请求后,利用预设的服务端标识构造身份信息,以及利用由服务端标识生成的签名数据构造第一密钥交换信息;
127.服务端信息返回模块302,用于向客户端返回身份信息及第一密钥交换信息,以使客户端在利用服务端标识确定签名数据有效时,利用由服务端标识生成的公钥构造并返回包含有加密的预主密钥的第二密钥交换信息;
128.隧道建立模块303,用于利用由服务端标识生成的私钥解密预主密钥,并利用解密后的预主密钥完成密码规格变更,以完成ssl隧道建立。
129.优选地,客户端利用服务端标识及公钥矩阵生成公钥,隧道建立模块303,可以包括:
130.私钥生成子模块,用于向标识服务器获取由私钥矩阵及服务端标识生成的私钥;私钥矩阵及公钥矩阵用于生成一组非对称密钥对;
131.解密子模块,用于利用私钥解密预主密钥。
132.优选地,服务端信息构造模块301,可以包括:
133.签名子模块,用于对公钥进行签名得到签名数据,以使客户端利用公钥确定签名数据是否有效;
134.第一密钥交换信息构造子模块,用于利用签名数据构造第一密钥交换信息。
135.优选地,签名子模块,可以包括:
136.签名公钥生成单元,用于利用签名矩阵和服务端标识生成签名公钥;
137.签名单元,用于利用签名公钥对公钥进行签名得到签名数据,以使客户端利用签
名公钥和公钥确定签名数据是否有效。
138.优选地,该装置还可以包括:
139.身份信息请求模块,用于向客户端发送身份请求信息,以使客户端返回包含预设的客户端标识的客户端身份信息;
140.客户端标识验证模块,用于确定客户端标识是否有效,并在确定客户端标识有效时进入利用由服务端标识生成的私钥解密预主密钥的步骤;
141.其中,客户端标识验证模块,可以包括:
142.第一验证子模块,用于通过ocsp协议与标识服务器确定客户端标识是否有效;和/或,
143.第二验证子模块,用于判断客户端标识是否保存于预设的标识吊销列表中;若是,则确定客户端标识无效;若否,则确定客户端标识有效。
144.请参考图4,图4为本发明实施例所提供的一种客户端的结构框图,该装置包括:
145.数据提取模块401,用于向服务端发送隧道连接请求,并分别从服务端返回的身份信息和第一密钥交换信息中提取服务端标识以及由服务端标识生成的签名数据;
146.客户端信息构造模块402,用于利用服务端标识确定签名数据是否有效,并在确定有效时利用由服务端标识生成的公钥构造包含有加密的预主密钥的第二密钥交换信息;
147.客户端信息返回模块403,用于向服务端返回第二密钥交换信息,以使服务端利用由服务端标识生成的私钥解密预主密钥,并利用解密后的预主密钥完成密码规格变更,以完成ssl隧道建立。
148.优选地,服务端利用服务端标识及私钥矩阵生成私钥,客户端信息构造模块402,可以包括:
149.公钥生成子模块,用于利用公钥矩阵及服务端标识生成公钥;私钥矩阵及公钥矩阵用于生成一组非对称密钥对;
150.第二密钥交换信息构造子模块,用于利用公钥构造包含有加密的预主密钥的第二密钥交换信息。
151.优选地,服务端对公钥进行签名得到签名数据,客户端信息构造模块402,可以包括:
152.签名数据验证子模块,用于利用公钥确定签名数据是否有效。
153.优选地,服务端利用由签名矩阵和服务端标识生成签名公钥对公钥进行签名得到签名数据,签名数据验证子模块,可以包括:
154.签名数据验证单元,用于利用签名公钥和公钥确定签名数据是否有效。
155.优选地,该装置还可以包括:
156.客户端身份信息构造模块,用于当接收到服务端发送的身份请求信息时,利用预设的客户端标识构造客户端身份信息;
157.客户端身份信息返回模块,用于向服务端返回客户端身份信息,以使服务端确定客户端标识是否有效,并在确定有效时进入利用由服务端标识生成的私钥解密预主密钥的步骤;
158.服务端标识验证模块,用于确定服务端标识是否有效,并在确定有效时进入利用服务端标识确定签名数据是否有效的步骤。
159.本发明实施例还提供一种电子设备,包括:
160.存储器,用于存储计算机程序;
161.处理器,用于执行计算机程序时实现如上述的ssl隧道建立方法的步骤。
162.由于电子设备部分的实施例与ssl隧道建立方法部分的实施例相互对应,因此电子设备部分的实施例请参见ssl隧道建立方法部分的实施例的描述,这里不再赘述。
163.本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述任意实施例的ssl隧道建立方法的步骤。
164.由于计算机可读存储介质部分的实施例与ssl隧道建立方法部分的实施例相互对应,因此存储介质部分的实施例请参见ssl隧道建立方法部分的实施例的描述,这里不再赘述。
165.说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
166.专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
167.结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。
168.以上对本发明所提供的一种ssl隧道建立方法、服务端及客户端进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1