CN112134889A - 一种基于ssl的通信方法、装置及系统 - Google Patents
一种基于ssl的通信方法、装置及系统 Download PDFInfo
- Publication number
- CN112134889A CN112134889A CN202011010225.7A CN202011010225A CN112134889A CN 112134889 A CN112134889 A CN 112134889A CN 202011010225 A CN202011010225 A CN 202011010225A CN 112134889 A CN112134889 A CN 112134889A
- Authority
- CN
- China
- Prior art keywords
- ssl
- client
- handshake information
- server
- information
- 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.)
- Pending
Links
- 238000004891 communication Methods 0.000 title claims abstract description 98
- 238000000034 method Methods 0.000 title claims abstract description 72
- 238000004590 computer program Methods 0.000 claims description 13
- 230000008569 process Effects 0.000 abstract description 22
- 238000012545 processing Methods 0.000 description 24
- 230000006870 function Effects 0.000 description 16
- 238000010586 diagram Methods 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 9
- 230000005540 biological transmission Effects 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000008520 organization Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000012795 verification Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0823—Network architectures or network communication protocols for network security for authentication of entities using certificates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/16—Implementing security features at a particular protocol layer
- H04L63/166—Implementing security features at a particular protocol layer at the transport layer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请实施例提供一种基于SSL的通信方法、装置及系统,涉及网络安全技术领域,该基于SSL的通信方法包括:在进行SSL握手过程中,先接收客户端发送的SSL握手信息;然后再根据SSL握手信息判断客户端是否为专用客户端,以及当客户端为专用客户端时,则确定与SSL握手信息相匹配的目标虚拟主机;最后根据目标虚拟主机和SSL握手信息,建立服务端与客户端之间的专用SSL安全通信通道。可见,该方法能够通过虚拟主机来实现服务端与客户端之间SSL安全通道的建立,不需要预先部署多个服务端,效率高,通用性好。
Description
技术领域
本申请涉及网络安全技术领域,具体而言,涉及一种基于SSL的通信方法、装置及系统。
背景技术
SSL(Secure Sockets Layer安全套接层)及其继任者传输层安全(TransportLayer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。随着对网络通信安全的要求不断提升,服务端需要支持的安全协议也不断增加,现有的基于SSL的通信方法中,通常通过预先部署仅支持国际协议的服务器或者仅支持国密协议的服务器,然后再确定客户端的类型,然后通过相应的服务器,来实现与专用客户端之间SSL安全通道的建立。然而,在实践中发现,现有的基于SSL的通信方法,需要预先部署不同的服务器,效率低,通用性低。
发明内容
本申请实施例的目的在于提供一种基于SSL的通信方法、装置及系统,能够通过虚拟主机来实现服务端与客户端之间SSL安全通道的建立,不需要预先部署多个服务端,效率高,通用性好。
本申请实施例第一方面提供了一种基于SSL的通信方法,应用于服务端,包括:
接收客户端发送的SSL握手信息;
根据所述SSL握手信息判断所述客户端是否为专用客户端;
当所述客户端为所述专用客户端时,确定与所述SSL握手信息相匹配的目标虚拟主机;
根据所述目标虚拟主机和所述SSL握手信息,建立所述服务端与所述客户端之间的专用SSL安全通信通道。
在上述实现过程中,在进行SSL握手过程中,先接收客户端发送的SSL握手信息;然后再根据SSL握手信息判断客户端是否为专用客户端,以及当客户端为专用客户端时,则确定与SSL握手信息相匹配的目标虚拟主机;最后根据目标虚拟主机和SSL握手信息,建立服务端与客户端之间的专用SSL安全通信通道。可见,该方法能够通过虚拟主机来实现服务端与客户端之间SSL安全通道的建立,不需要预先部署多个服务端,效率高,通用性好。
进一步地,所述根据所述SSL握手信息判断所述客户端是否为专用客户端包括:
判断所述SSL握手信息是否包括SNI扩展信息;
如果包括,确定所述客户端为专用客户端,并执行所述的确定与所述SSL握手信息相匹配的目标虚拟主机。
在上述实现过程中,在接收到客户端发来的SSL握手信息时,通过判断SSL握手信息是否携带SNI扩展信息,能够灵活的切换国际协议处理流程(即通用客户端处理流程)或国密协议处理流程(即专用客户端处理流程)。
进一步地,所述确定与所述SSL握手信息相匹配的目标虚拟主机,包括:
获取所述SSL握手信息中携带的加密协议标识;
获取所述SNI扩展信息中携带的加密证书标识;
从预先配置的多套虚拟主机中确定与所述加密证书标识和所述加密协议标识相匹配的目标虚拟主机。
在上述实现过程中,根据加密协议标识和加密证书标识确定目标虚拟主机,该目标虚拟主机上绑定有与加密协议标识相对应的加密协议以及与加密证书标识相应的加密证书,通过目标虚拟主机能够实现服务端与客户端之间SSL安全通道的建立,不需要预先部署多个服务端,效率高,通用性好。
进一步地,所述多套虚拟主机中,每台虚拟主机绑定唯一一套加解密证书以及与每套所述加解密证书相对应的加解密协议。
在上述实现过程中,一台服务端可以预选配置多套虚拟主机,不同虚拟主机上绑定的一套协议和证书可以各不相同,进而实现一台服务端同时支持多套不同版本的通信协议,不需要再次配置,适用性好。
进一步地,所述方法还包括:
当判断出所述SSL握手信息不包括SNI扩展信息,确定所述客户端为通用客户端,根据所述SSL握手信息建立所述服务端与所述客户端之间的通用SSL安全通信通道。
在上述实现过程中,当判断出SSL握手信息不包括SNI扩展信息时,则采用通用客户端处理流程,根据相应的预先配置,提供缺省服务流程,进而完成服务端与所述客户端之间通用SSL安全通信通道的建立。
本申请实施例第二方面提供了一种基于SSL的通信装置,应用于服务端,所述基于SSL的通信装置包括:
信息接收模块,用于接收客户端发送的SSL握手信息;
判断模块,用于根据所述SSL握手信息判断所述客户端是否为专用客户端;
虚拟主机确定模块,用于当所述客户端为所述专用客户端时,确定与所述SSL握手信息相匹配的目标虚拟主机;
通信建立模块,用于根据所述目标虚拟主机和所述SSL握手信息,建立所述服务端与所述客户端之间的专用SSL安全通信通道。
在上述实现过程中,在进行SSL握手过程中,信息接收模块先接收客户端发送的SSL握手信息;然后判断模块再根据SSL握手信息判断客户端是否为专用客户端,以及虚拟主机确定模块在判断出客户端为专用客户端时,则确定与SSL握手信息相匹配的目标虚拟主机;最后通信建立模块根据目标虚拟主机和SSL握手信息,建立服务端与客户端之间的专用SSL安全通信通道。可见,该方法能够通过虚拟主机来实现服务端与客户端之间SSL安全通道的建立,不需要预先部署多个服务端,效率高,通用性好。
进一步地,所述判断模块包括:
判断子模块,用于判断所述SSL握手信息是否包括SNI扩展信息;
确定子模块,用于在判断出包括所述SNI扩展信息时,确定所述客户端为专用客户端,并执行所述的确定与所述SSL握手信息相匹配的目标虚拟主机。
在上述实现过程中,判断子模块在接收到客户端发来的SSL握手信息时,通过判断SSL握手信息是否携带SNI扩展信息,能够通过确定子模块灵活的确定是使用国际协议处理流程(即通用客户端处理流程)还是使用国密协议处理流程(即专用客户端处理流程)。
进一步地,所述基于SSL的通信系统包括服务端和客户端,其中,
所述客户端,用于发送SSL握手信息至所述服务端;
所述服务端,用于接收所述SSL握手信息;以及根据所述SSL握手信息判断所述客户端是否为专用客户端;以及当所述客户端为所述专用客户端时,确定与所述SSL握手信息相匹配的目标虚拟主机;以及根据所述目标虚拟主机和所述SSL握手信息,建立所述服务端与所述客户端之间的专用SSL安全通信通道。
在上述实现过程中,在进行SSL握手过程中,客户端先发送的SSL握手信息;然后服务端再根据SSL握手信息判断客户端是否为专用客户端,以及当客户端为专用客户端时,则确定与SSL握手信息相匹配的目标虚拟主机;最后根据目标虚拟主机和SSL握手信息,建立服务端与客户端之间的专用SSL安全通信通道。可见,该方法能够通过虚拟主机来实现服务端与客户端之间SSL安全通道的建立,只需要一次握手,且不需要预先部署多个服务端,效率高,通用性好。
本申请实施例第三方面提供了一种电子设备,包括存储器以及处理器,所述存储器用于存储计算机程序,所述处理器运行所述计算机程序以使所述电子设备执行本申请实施例第一方面中任一项所述的基于SSL的通信方法。
本申请实施例第四方面提供了一种计算机可读存储介质,其存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行本申请实施例第一方面中任一项所述的基于SSL的通信方法。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例一提供的一种基于SSL的通信方法的流程示意图;
图2为本申请实施例二提供的一种基于SSL的通信方法的流程示意图;
图3为本申请实施例三提供的一种基于SSL的通信装置的结构示意图;
图4为本申请实施例四提供的一种基于SSL的通信装置的结构示意图;
图5为本申请实施例五提供的一种基于SSL的通信系统的信息交互流程示意图。
图标:500-客户端,600-服务端。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
实施例1
请参看图1,图1为本申请实施例提供了一种基于SSL的通信方法的流程示意图。其中,该基于SSL的通信方法包括:
S101、接收客户端发送的SSL握手信息。
本申请实施例中,该方法应用于服务端,具体应用于一个服务端同时支持不同加解密协议的通信场景中。
本申请实施例中,该客户端可以为计算机、智能手机、平板电脑等通信装置,对此本实施例中不作任何限定。
本申请实施例中,安全套接层(Secure Socket Layer,SSL)是一种在网络两端设备之间提供安全通道的协议,它具有保护传输数据以及识别两端通信设备的功能。在构建服务端与客户端之间的SSL安全通道时,需要客户端发送SSL握手信息值服务端,然后服务端和客户端之间根据SLL握手信息进行SSL握手步骤,进而建立服务端和客户端之间的SSL安全通道。
本申请实施例中,在实施步骤S101之前,需要对客户端进行改造使其能够支持SNI技术、支持国际协议和国际算法以及支持国密协议和国密算法;改造后的客户端引入相关根证书,且在一次SSL握手过程就可以构建使用国际或国密协议的SSL安全通道,不需要多次SSL握手。
本申请实施例中,客户端在请求SSL服务时,可以选择使用国密证书或国际证书。
本申请实施例中,在实施步骤S101之前,还需要对服务端进行改造,服务端需要通过配置文件进行预先配置,在配置文件中,添加国际通用的SNI技术所需的配置;同时将该配置做改造,增加国密算法套件,以支持国密证书、国密协议。
本申请实施例中,改造后的服务端能够支持SNI技术的同时支持国密协议。
本申请实施例中,服务端可以同时支持使用国际证书和国密证书,仅需要启动单SSL服务。
本申请实施例中,服务端具有分析国密相关的配置文件、分析国际相关的配置文件的功能。
本申请实施例中,在实施步骤S101之前,还需要对相关协议进行改造,原有的国际及国密协议本身具有处理SSL/TLS服务的功能,在不改变原有的国际协议功能及实现逻辑上,将国际及国密协议做兼容。
本申请实施例中,通过改造SSL协议、客户端和服务端,对应用层的数据不做任何变动,不影响网络业务,及网络业务的性能和稳定性。
在步骤S101之后,还包括以下步骤:
S102、根据SSL握手信息判断客户端是否为专用客户端,如果是,执行步骤S103~步骤S104;如果否,执行步骤S105。
本申请实施例中,当客户端为专用客户端时,该客户端支持使用国密算法及国密协议;当客户端不为专用客户端时,即为通用客户端,该客户端则仅支持使用仅支持国际算法和国际协议。
本申请实施例中,国际协议,即国际标准SSL协议,SSL及TLS协议等,构成国际标准SSL协议。
本申请实施例中,TLS协议,即传输层安全(Transport Layer Security,TLS)协议,是SSLv3协议之后的一种安全通道协议,为网络通信提供安全及数据完整性的一种安全协议。
本申请实施例中,国密协议,即国密标准SSL协议,是使用国家密码局认定的国产密码算法(即商用密码)为网络通信提供安全及数据完整性的一种增强的安全协议。
本申请实施例中,国际证书就是遵守国际标准SSL协议,由受信任的数字证书颁发机构,在验证申请机构身份后颁发,具有身份验证和数据传输加密功能的一种电子证照。
本申请实施例中,国密证书就是遵守国密标准SSL协议,由受信任的数字证书颁发机构,在验证申请机构身份后颁发,具有身份验证和数据传输加密功能的一种电子证照。
在步骤S102之后,还包括以下步骤:
S103、确定与SSL握手信息相匹配的目标虚拟主机。
本申请实施例中,虚拟主机的关键技术在于,即使在同一台硬件、同一个操作系统上,运行着为多个用户打开的不同的服务端程式,也互不干扰。而各个用户拥有自己的一部分系统资源(IP地址、文档存储空间、内存、CPU等)。各个虚拟主机之间完全独立,在外界看来,每一台虚拟主机和一台单独的主机的表现完全相同。所以这种被虚拟化的逻辑主机被形象地称为“虚拟主机”。
本申请实施例中,服务端和虚拟主机是不一样的,服务端包含了虚拟主机,但虚拟主机无法成为服务端。服务端通过虚拟化技术,划分出很多个虚拟主机,每个虚拟主机拥有一定的服务端功能。虚拟主机仅能实现部分服务端功能。
本申请实施例中,服务端中预先配置多套虚拟主机,每套虚拟主机绑定唯一一套证书以及相应的协议。
本申请实施例中,一台服务端可以预选配置多套虚拟主机,不同虚拟主机上绑定的一套协议和证书可以各不相同,在实际使用中,只要预先配置好绑定不同协议版本和证书的虚拟主机,能够实现一台服务端同时支持多套不同版本的通信协议,不需要再次配置,适用性好。
在步骤S103之后,还包括以下步骤:
S104、根据目标虚拟主机和SSL握手信息,建立服务端与客户端之间的专用SSL安全通信通道,并结束本流程。
本申请实施例中,在确定出目标虚拟主机之后,根据目标虚拟主机和SSL握手信息,执行后继的SSL握手步骤,进而建立服务端与客户端之间的专用SSL安全通信通道。
本申请实施例中,根据目标虚拟主机和SSL握手信息,建立服务端与客户端之间的专用SSL安全通信通道,包括:
根据SSL握手信息确定目标算法套件;
根据目标算法套件通过目标虚拟主机建立服务端与客户端之间的专用SSL安全通信通道。
作为一种可选的实施方式,当判断出客户端不为专用客户端时,还可以包括以下步骤:
S105、根据SSL握手信息建立服务端与客户端之间的通用SSL安全通信通道。
本申请实施例中,当客户端为通用客户端时,该客户端则仅支持使用仅支持国际算法和国际协议,此时服务端采用通用客户端处理流程,根据相应的预先配置,提供缺省服务流程,进而完成服务端与客户端之间通用SSL安全通信通道的建立。
可见,实施本实施例所描述的基于SSL的通信方法,能够通过虚拟主机来实现服务端与客户端之间SSL安全通道的建立,不需要预先部署多个服务端,效率高,通用性好。
实施例2
请参看图2,图2为本申请实施例提供的一种基于SSL的通信方法的流程示意图。如图2所示,其中,该基于SSL的通信方法包括:
S201、接收客户端发送的SSL握手信息。
本申请实施例中,客户端在SSL握手过程中ClientHello阶段发出SSL握手信息至服务端。
S202、判断SSL握手信息是否包括SNI扩展信息,如果否,执行步骤S203;如果是,执行步骤S204~步骤S207。
本申请实施例中,用户可以通过客户端发送携带SNI扩展信息(或者不携带SNI扩展信息)的SSL握手信息,该SSL握手信息并非页面请求信息。
本申请实施例中,通过对客户端进行改造,可以实现客户端选择使用SNI扩展功能。首先客户端进行CA证书的加载,以加载相关根证书。然后再在客户端使用SNI扩展,使得需要支持国密协议进行通信时,发送的SSL握手信息可以携带SNI扩展项(即SNI扩展信息)。在对客户端进行配置时,对客户端进行通用客户端的初始化配置,以使其支持国际协议的host信息,同时支持SSL/TLS协议、国际算法及国际证书;或者对客户端进行专用客户端的初始化配置,以使其支持国密协议的host信息,同时支持国密协议、国密算法及国密证书。
本申请实施例中,配置好的客户端,能够支持国密算法及其相应的国密协议,或者支持国际算法及其相应的国际协议,进而实现专用客户端(支持国密协议及算法)和通用客户端(仅支持国际协议和算法)。
当客户端需要向服务端请求SSL/TLS或国密协议服务时,发送包括SNI扩展信息的SSL握手信息至客户端,进而实现支持SSL/TLS或国密协议服务的SSL安全通信通道的建立。
本申请实施例中,CA证书又称为数字证书,是一串能够表明网络用户身份信息的数字,提供了一种在计算机网络上验证网络用户身份的方式,因此数字证书又称为数字标识。数字证书对网络用户在计算机网络交流中的信息和数据等以加密或解密的形式保证了信息和数据的完整性和安全性。CA证书可以对互联网上所传输的各种信息进行加密、解密、数字签名与签名认证等各种处理,同时也能保障在数字传输的过程中不被不法分子所侵入,或者即使受到侵入也无法查看其中的内容。
本申请实施例中,SNI(Server Name Indication)定义在RFC 4366,是一项用于改善SSL/TLS的技术,在SSLv3/TLSv1中被启用。它允许客户端在发起SSL握手请求时(具体说来,是客户端发出SSL握手请求中的ClientHello阶段),就提交请求的Host信息,使得服务端能够切换到正确的域并返回相应的证书。要使用SNI,需要客户端和服务端同时支持SNI技术。
本申请实施例中,SNI扩展信息能够指明客户端需要访问的host信息以及客户端采用国密或者国际协议的标识。
本申请实施例中,host信息至少包括IP地址和主机标识等,对比本申请实施例不作限定。
本申请实施例中,国际协议有多个版本,不同的版本对应唯一的版本标识。
本申请实施例中,根据SSL握手信息是否携带SNI扩展信息选择通用客户端处理流程或专用客户端处理流程。
本申请实施例中,在实施本方法之前,还需要对相关协议进行改造,原有的国际及国密协议本身具有处理SSL/TLS服务的功能,在不改变原有的国际协议功能及实现逻辑上,将国际及国密协议做兼容。
本申请实施例中,在接收到客户端发来的SSL握手信息时,通过判断SSL握手信息是否携带SNI扩展信息,能够灵活的切换国际协议处理流程(即通用客户端处理流程)或国密协议处理流程(即专用客户端处理流程),切换相应的算法套件等。
在步骤S202之后,还包括以下步骤:
S203、确定客户端为通用客户端,并根据SSL握手信息建立服务端与客户端之间的通用SSL安全通信通道,并结束本流程。
本申请实施例中,当客户端为通用客户端时,其SSL握手信息内携带SSL/TLS协议的加密协议标识、国际证书标识以及国际算法套件信息等,对此本申请实施例不作限定。
S204、确定客户端为专用客户端,并获取SSL握手信息中携带的加密协议标识。
本申请实施例中,当客户端为专用客户端时,则该客户端则需要支持使用国密协议,可以根据SSL握手信息确定出加密协议标识(即国密协议版本标识)。
S205、获取SNI扩展信息中携带的加密证书标识。
作为一种可选的实施方式,在确定出加密协议标识和国密证书标识之后,服务端先根据加密协议标识和国密证书标识确定相应的算法套件,然后再执行步骤S205。
本申请实施例中,服务端在确定算法套件时,根据自身算法优先级确定算法套件,不受客户端影响。
本申请实施例中,服务端能够根据SSL握手信息所携带的加密协议标识及SNI扩展信息,自动选择是使用国际的处理流程(即通用客户端处理流程)还是国密的处理流程(即专用客户端处理流程)。
在步骤S205之后,还包括以下步骤:
S206、从预先配置的多套虚拟主机中确定与加密证书标识和加密协议标识相匹配的目标虚拟主机。
本申请实施例中,多套虚拟主机中,每台虚拟主机绑定唯一一套加解密证书以及与每套加解密证书相对应的加解密协议。
本申请实施例中,可以从SSL握手信息内所携带的SNI扩展信息中,获取相应的国密证书标识(即加密证书标识),然后根据国密协议版本标识和国密证书标识,从预先配置的多套虚拟主机中确定出相匹配的目标虚拟主机,该目标虚拟主机唯一绑定目标加解密证书以及与该目标加解密证书相对应的目标加解密协议,实际上,该目标加解密协议的协议版本标识即为SSL握手信息内携带的国密协议版本标识,该目标加解密证书的证书标识即为该国密证书标识。
本申请实施例中,实施上述步骤S204~步骤S206,能够确定与SSL握手信息相匹配的目标虚拟主机。
在步骤S206之后,还包括以下步骤:
S207、根据目标虚拟主机和SSL握手信息,建立服务端与客户端之间的专用SSL安全通信通道。
本申请实施例中,根据目标虚拟主机和SSL握手信息,建立服务端与客户端之间的专用SSL安全通信通道,包括:
确定与加密协议标识和国密证书标识相匹配的目标算法套件;
根据目标算法套件通过目标虚拟主机建立服务端与客户端之间的专用SSL安全通信通道。
可见,实施本实施例所描述的基于SSL的通信方法,能够通过虚拟主机来实现服务端与客户端之间SSL安全通道的建立,不需要预先部署多个服务端,效率高,通用性好。
实施例3
请参看图3,图3为本申请实施例提供的一种基于SSL的通信装置的结构示意图。如图3所示,该基于SSL的通信装置应用于服务端,该基于SSL的通信装置包括:
信息接收模块310,用于接收客户端发送的SSL握手信息。
判断模块320,用于根据SSL握手信息判断客户端是否为专用客户端。
虚拟主机确定模块330,用于当客户端为专用客户端时,确定与SSL握手信息相匹配的目标虚拟主机。
通信建立模块340,用于根据目标虚拟主机和SSL握手信息,建立服务端与客户端之间的专用SSL安全通信通道。
本申请实施例中,对于基于SSL的通信装置的解释说明可以参照实施例1或实施例2中的描述,对此本实施例中不再多加赘述。
可见,实施本实施例所描述的基于SSL的通信装置,能够通过虚拟主机来实现服务端与客户端之间SSL安全通道的建立,不需要预先部署多个服务端,效率高,通用性好。
实施例4
请一并参阅图4,图4是本申请实施例提供的一种基于SSL的通信装置的结构示意图。其中,图4所示的基于SSL的通信装置是由图3所示的基于SSL的通信装置进行优化得到的。如图4所示,判断模块320包括:
判断子模块321,用于判断SSL握手信息是否包括SNI扩展信息;
确定子模块322,用于在判断出包括SNI扩展信息时,确定客户端为专用客户端,并触发虚拟主机确定模块330确定与SSL握手信息相匹配的目标虚拟主机。
本申请实施例中,虚拟主机确定模块330包括:
标识获取子模块331,用于获取SSL握手信息中携带的加密协议标识以及获取SNI扩展信息中携带的加密证书标识。
主机确定子模块332,用于从预先配置的多套虚拟主机中确定与加密证书标识和加密协议标识相匹配的目标虚拟主机。
本申请实施例中,多套虚拟主机中,每台虚拟主机绑定唯一一套加解密证书以及与每套加解密证书相对应的加解密协议。
本申请实施例中,确定子模块322,还用于当判断出SSL握手信息不包括SNI扩展信息,确定客户端为通用客户端。
通信建立模块340,还用于在确定子模块322确定出客户端为通用客户端之后,根据SSL握手信息建立服务端与客户端之间的通用SSL安全通信通道。
本申请实施例中,对于基于SSL的通信装置的解释说明可以参照实施例1或实施例2中的描述,对此本实施例中不再多加赘述。
可见,实施本实施例所描述的基于SSL的通信装置,能够通过虚拟主机来实现服务端与客户端之间SSL安全通道的建立,不需要预先部署多个服务端,效率高,通用性好。
实施例5
请参看图5,图5为本申请实施例提供的一种基于SSL的通信系统的结构示意图。如图5所示,该基于SSL的通信系统包括服务端和客户端。
S401、客户端500发送SSL握手信息至服务端600。
本申请实施例中,该基于SSL的通信系统基于对客户端500的改造,客户端500能够支持SNI技术、支持国际协议和国际算法以及支持国密协议和国密算法;改造后的客户端500引入相关根证书,且在一次SSL握手过程就可以构建使用国际或国密协议的SSL安全通道,不需要多次SSL握手。
本申请实施例中,客户端500在请求SSL服务时,可以选择使用国密证书或国际证书。
S402、服务端600接收SSL握手信息。
S403、服务端600根据SSL握手信息判断客户端500是否为专用客户端,如果是,执行步骤S404~步骤S405;如果否,执行步骤S406。
本申请实施例中,当客户端500为专用客户端时,该客户端500支持使用国密算法及国密协议;当客户端500不为专用客户端时,即为通用客户端500,该客户端500则仅支持使用仅支持国际算法和国际协议。
S404、服务端600确定与SSL握手信息相匹配的目标虚拟主机。
S405、服务端600根据目标虚拟主机和SSL握手信息,建立服务端600与客户端500之间的专用SSL安全通信通道,并结束本流程。
作为一种可选的实施方式,当判断出客户端500不为专用客户端时,还可以包括以下步骤:
S406、根据SSL握手信息并按照通用客户端500处理流程建立服务端600与客户端500之间的通用SSL安全通信通道。
本申请实施例中,当客户端500为通用客户端500时,该客户端500则仅支持使用仅支持国际算法和国际协议,此时服务端600采用通用客户端500处理流程,根据相应的预先配置,提供缺省服务流程,进而完成服务端600与客户端500之间通用SSL安全通信通道的建立。
本申请实施例中,该基于SSL的通信系统同时基于对服务端600的改造,服务端600需要通过配置文件进行预先配置,在配置文件中,添加国际通用的SNI技术所需的配置;同时将该配置做改造,增加国密算法套件,以支持国密证书、国密协议。
本申请实施例中,可以实现服务端600支持SNI技术的同时支持国密协议。
本申请实施例中,服务端600可以同时支持使用国际证书和国密证书,仅需要启动单SSL服务。
本申请实施例中,服务端600具有分析国密相关的配置文件、分析国际相关的配置文件的功能。
本申请实施例中,服务端600中预先配置多套虚拟主机,每套虚拟主机绑定唯一一套证书以及相应的协议。
本申请实施例中,一台服务端600可以预选配置多套虚拟主机,不同虚拟主机上绑定的一套协议和证书可以各不相同,在实际使用中,只要预先配置好绑定不同协议版本和证书的虚拟主机,能够实现一台服务端600同时支持多套不同版本的通信协议,不需要再次配置,适用性好。
本申请实施例中,在进行该基于SSL的通信系统的部署时,所需的硬件设备(即客户端500和服务端600)无差别,仅需普通的网络设备即可(例如NG-TopSSL、安全认证网关等)。
本申请实施例中,通过改造SSL协议、客户端500和服务端600,对应用层的数据不做任何变动,不影响网络业务,及网络业务的性能和稳定性。
本申请实施例中,对于基于SSL的通信系统的解释说明可以参照实施例1或实施例2中的描述,对此本实施例中不再多加赘述。
可见,实施本实施例所描述的基于SSL的通信系统,能够通过虚拟主机来实现服务端600与客户端500之间SSL安全通道的建立,不需要预先部署多个服务端600,效率高,通用性好。
本申请实施例提供了一种电子设备,包括存储器以及处理器,所述存储器用于存储计算机程序,所述处理器运行所述计算机程序以使所述电子设备执行本申请实施例1或实施例2中任一项基于SSL的通信方法。
本申请实施例提供了一种计算机可读存储介质,其存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行本申请实施例1或实施例2中任一项基于SSL的通信方法。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (10)
1.一种基于SSL的通信方法,其特征在于,应用于服务端,包括:
接收客户端发送的SSL握手信息;
根据所述SSL握手信息判断所述客户端是否为专用客户端;
当所述客户端为所述专用客户端时,确定与所述SSL握手信息相匹配的目标虚拟主机;
根据所述目标虚拟主机和所述SSL握手信息,建立所述服务端与所述客户端之间的专用SSL安全通信通道。
2.根据权利要求1所述的基于SSL的通信方法,其特征在于,所述根据所述SSL握手信息判断所述客户端是否为专用客户端包括:
判断所述SSL握手信息是否包括SNI扩展信息;
如果包括,确定所述客户端为专用客户端,并执行所述的确定与所述SSL握手信息相匹配的目标虚拟主机。
3.根据权利要求2所述的基于SSL的通信方法,其特征在于,所述确定与所述SSL握手信息相匹配的目标虚拟主机,包括:
获取所述SSL握手信息中携带的加密协议标识;
获取所述SNI扩展信息中携带的加密证书标识;
从预先配置的多套虚拟主机中确定与所述加密证书标识和所述加密协议标识相匹配的目标虚拟主机。
4.根据权利要求3所述的基于SSL的通信方法,其特征在于,所述多套虚拟主机中,每台虚拟主机绑定唯一一套加解密证书以及与每套所述加解密证书相对应的加解密协议。
5.根据权利要求2所述的基于SSL的通信方法,其特征在于,所述方法还包括:
当判断出所述SSL握手信息不包括SNI扩展信息,确定所述客户端为通用客户端,根据所述SSL握手信息建立所述服务端与所述客户端之间的通用SSL安全通信通道。
6.一种基于SSL的通信装置,其特征在于,应用于服务端,所述基于SSL的通信装置包括:
信息接收模块,用于接收客户端发送的SSL握手信息;
判断模块,用于根据所述SSL握手信息判断所述客户端是否为专用客户端;
虚拟主机确定模块,用于当所述客户端为所述专用客户端时,确定与所述SSL握手信息相匹配的目标虚拟主机;
通信建立模块,用于根据所述目标虚拟主机和所述SSL握手信息,建立所述服务端与所述客户端之间的专用SSL安全通信通道。
7.根据权利要求6所述的基于SSL的通信装置,其特征在于,所述判断模块包括:
判断子模块,用于判断所述SSL握手信息是否包括SNI扩展信息;
确定子模块,用于在判断出包括所述SNI扩展信息时,确定所述客户端为专用客户端,并执行所述的确定与所述SSL握手信息相匹配的目标虚拟主机。
8.一种基于SSL的通信系统,其特征在于,所述基于SSL的通信系统包括服务端和客户端,其中,
所述客户端,用于发送SSL握手信息至所述服务端;
所述服务端,用于接收所述SSL握手信息;以及根据所述SSL握手信息判断所述客户端是否为专用客户端;以及当所述客户端为所述专用客户端时,确定与所述SSL握手信息相匹配的目标虚拟主机;以及根据所述目标虚拟主机和所述SSL握手信息,建立所述服务端与所述客户端之间的专用SSL安全通信通道。
9.一种电子设备,其特征在于,所述电子设备包括存储器以及处理器,所述存储器用于存储计算机程序,所述处理器运行所述计算机程序以使所述电子设备执行权利要求1至5中任一项所述的基于SSL的通信方法。
10.一种可读存储介质,其特征在于,所述可读取存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行权利要求1至5任一项所述的基于SSL的通信方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011010225.7A CN112134889A (zh) | 2020-09-23 | 2020-09-23 | 一种基于ssl的通信方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011010225.7A CN112134889A (zh) | 2020-09-23 | 2020-09-23 | 一种基于ssl的通信方法、装置及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112134889A true CN112134889A (zh) | 2020-12-25 |
Family
ID=73841655
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011010225.7A Pending CN112134889A (zh) | 2020-09-23 | 2020-09-23 | 一种基于ssl的通信方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112134889A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113992432A (zh) * | 2021-12-24 | 2022-01-28 | 南京中孚信息技术有限公司 | 消息处理方法、消息总线系统、计算机设备及存储介质 |
CN114024745A (zh) * | 2021-11-04 | 2022-02-08 | 格尔软件股份有限公司 | 安全传输层协议检测方法、装置、计算机设备和存储介质 |
CN114189493A (zh) * | 2021-11-08 | 2022-03-15 | 深圳市酷开网络科技股份有限公司 | 分布式信令通信方法、计算机设备、信令系统及存储介质 |
CN114531272A (zh) * | 2022-01-10 | 2022-05-24 | 网宿科技股份有限公司 | 基于国密和国际算法的https请求的处理方法和装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102546572A (zh) * | 2010-12-31 | 2012-07-04 | 上海格尔软件股份有限公司 | 一种ssl服务端动态选择证书的实现方法 |
CN108156160A (zh) * | 2017-12-27 | 2018-06-12 | 杭州迪普科技股份有限公司 | 连接建立方法和装置 |
CN109257349A (zh) * | 2018-09-14 | 2019-01-22 | 北京天融信网络安全技术有限公司 | 一种单ssl服务支持多协议的方法及装置 |
-
2020
- 2020-09-23 CN CN202011010225.7A patent/CN112134889A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102546572A (zh) * | 2010-12-31 | 2012-07-04 | 上海格尔软件股份有限公司 | 一种ssl服务端动态选择证书的实现方法 |
CN108156160A (zh) * | 2017-12-27 | 2018-06-12 | 杭州迪普科技股份有限公司 | 连接建立方法和装置 |
CN109257349A (zh) * | 2018-09-14 | 2019-01-22 | 北京天融信网络安全技术有限公司 | 一种单ssl服务支持多协议的方法及装置 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114024745A (zh) * | 2021-11-04 | 2022-02-08 | 格尔软件股份有限公司 | 安全传输层协议检测方法、装置、计算机设备和存储介质 |
CN114189493A (zh) * | 2021-11-08 | 2022-03-15 | 深圳市酷开网络科技股份有限公司 | 分布式信令通信方法、计算机设备、信令系统及存储介质 |
CN114189493B (zh) * | 2021-11-08 | 2024-04-12 | 深圳市酷开网络科技股份有限公司 | 分布式信令通信方法、计算机设备、信令系统及存储介质 |
CN113992432A (zh) * | 2021-12-24 | 2022-01-28 | 南京中孚信息技术有限公司 | 消息处理方法、消息总线系统、计算机设备及存储介质 |
CN114531272A (zh) * | 2022-01-10 | 2022-05-24 | 网宿科技股份有限公司 | 基于国密和国际算法的https请求的处理方法和装置 |
CN114531272B (zh) * | 2022-01-10 | 2024-02-23 | 网宿科技股份有限公司 | 基于国密和国际算法的https请求的处理方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111177686B (zh) | 一种身份认证方法、装置及相关设备 | |
US9917829B1 (en) | Method and apparatus for providing a conditional single sign on | |
US10630489B2 (en) | Apparatus and method for managing digital certificates | |
EP2991268B1 (en) | Data processing method and apparatus | |
CN112134889A (zh) | 一种基于ssl的通信方法、装置及系统 | |
CN109417545B (zh) | 下载网络接入简档的方法、安全模块、移动终端和介质 | |
US9954834B2 (en) | Method of operating a computing device, computing device and computer program | |
US20090327696A1 (en) | Authentication with an untrusted root | |
US20200162245A1 (en) | Method and system for performing ssl handshake | |
WO2014044170A1 (zh) | 本地服务单元认证安卓客户端应用程序的方法 | |
JP2020526146A (ja) | 第1のアプリケーションと第2のアプリケーションとの間の対称型相互認証方法 | |
US20200382305A1 (en) | Systems and methods for enhanced mobile device authentication | |
US10298388B2 (en) | Workload encryption key | |
CN113614691A (zh) | 供传统虚拟交付器件使用的连接租用系统和相关方法 | |
US20140237627A1 (en) | Protecting data in a mobile environment | |
JP2022533520A (ja) | 接続リース交換および相互信頼プロトコルを提供するコンピューティングシステムおよび関連の方法 | |
US11070978B2 (en) | Technique for authenticating a user device | |
WO2018018419A1 (zh) | 一种配置文件批量获取、下载方法、服务器及终端 | |
US11032708B2 (en) | Securing public WLAN hotspot network access | |
CN114390027B (zh) | 一种网络通信方法、装置、设备及介质 | |
US20140032897A1 (en) | Securely establishing a communication channel between a switch and a network-based application using a unique identifier for the network-based application | |
Danilchenko et al. | Bootstrapping security configuration for IoT devices on networks with TLS inspection | |
US11977620B2 (en) | Attestation of application identity for inter-app communications | |
CN114257437A (zh) | 远程访问方法、装置、计算设备及存储介质 | |
CN117896433A (zh) | 远程连接方法、装置、设备、系统和介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20201225 |
|
RJ01 | Rejection of invention patent application after publication |