CN117014483A - Ssl会话建立方法、服务器及存储介质 - Google Patents
Ssl会话建立方法、服务器及存储介质 Download PDFInfo
- Publication number
- CN117014483A CN117014483A CN202210452665.0A CN202210452665A CN117014483A CN 117014483 A CN117014483 A CN 117014483A CN 202210452665 A CN202210452665 A CN 202210452665A CN 117014483 A CN117014483 A CN 117014483A
- Authority
- CN
- China
- Prior art keywords
- client
- server
- hello message
- ssl session
- message
- 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
- 238000000034 method Methods 0.000 title claims abstract description 59
- 230000005540 biological transmission Effects 0.000 claims abstract description 20
- 238000004590 computer program Methods 0.000 claims description 8
- 238000004891 communication Methods 0.000 claims description 6
- 238000012545 processing Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 238000012546 transfer Methods 0.000 description 4
- 239000002699 waste material Substances 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
Classifications
-
- 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/14—Session management
- H04L67/141—Setup of application sessions
-
- 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
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3263—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
-
- 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/168—Implementing security features at a particular protocol layer above the transport layer
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明实施例提供一种SSL会话建立方法、服务器及存储介质,属于互联网领域。该方法包括:根据客户端发送的Client Hello消息,向客户端发送Server Hello消息和数字证书,并获取客户端对数字证书进行认证后返回的认证结果信息;在确定认证结果信息为认证失败时,若获取到客户端发送的传输控制协议TCP重连报文,则不响应TCP重连报文,并确定TCP重连报文的数量;在TCP重连报文的数量大于预设数量阈值时,根据Client Hello消息和Server Hello消息,建立客户端与所述服务器之间的SSL会话。该SSL会话建立方法提高了客户端访问服务器的页面的速率。
Description
技术领域
本发明涉及互联网的技术领域,尤其涉及一种SSL会话建立方法、服务器及存储介质。
背景技术
超文本传输安全协议(Hyper Text Transfer Protocol over SecureSocketLayer,HTTPS)是由安全套接字协议(Secure Sockets Layer,SSL)和超文本传输协议(Hyper Text Transfer Protocol,HTTP)构建的可进行加密传输和身份认证的网络协议,可以防止数据在传输过程中被窃取与改变,提高数据传输的安全性和确保数据的完整性。
目前,HTTPS协议被广泛应用于客户端与服务器之间的数据传输,客户端与服务器之间进行数据传输之前,需要建立SSL会话,在建立SSL会话的过程中,需要用到数字证书,而现在很多企业对数字证书的安全性要求也越来越高,加密级别越高的数字证书对服务器的内存和CPU的要求也越高,如果服务器的内存较小和CPU的处理能力较低时,则需要耗费较多的时间来建立SSL会话,影响客户端访问服务器的页面的速率。
发明内容
本发明实施例提供了一种SSL会话建立方法、服务器及存储介质,旨在提高客户端访问服务器的页面的速率。
第一方面,本发明实施例提供一种SSL会话建立方法,应用于服务器,所述方法包括:
根据客户端发送的Client Hello消息,向所述客户端发送Server Hello消息和数字证书,并获取所述客户端对所述数字证书进行认证后返回的认证结果信息;
在确定所述认证结果信息为认证失败时,若获取到所述客户端发送的传输控制协议TCP重连报文,则确定所述TCP重连报文的数量;
在所述TCP重连报文的数量大于预设数量阈值时,根据所述Client Hello消息和所述Server Hello消息,建立所述客户端与所述服务器之间的SSL会话。
第二方面,本发明实施例还提供一种服务器,所述服务器包括处理器、存储器、存储在所述存储器上并可被所述处理器执行的计算机程序以及用于实现所述处理器和所述存储器之间的连接通信的数据总线,其中所述计算机程序被所述处理器执行时,实现如上所述的SSL会话建立方法。
第三方面,本发明实施例还提供一种存储介质,用于计算机可读存储,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如上所述的SSL会话建立方法。
本发明实施例提供一种SSL会话建立方法、服务器及存储介质,该SSL会话建立方法通过在建立客户端与服务器之间的SSL会话的过程中,获取客户端对服务器数字证书进行认证后返回的认证结果信息,并在认证结果信息为认证失败时,若获取到客户端发送的传输控制协议(Transmission Control Protocol,TCP)重连报文,则不响应TCP重连报文,并确定TCP重连报文的数量,然后在TCP重连报文的数量大于预设数量阈值时,根据ClientHello消息和Server Hello消息,建立客户端与服务器之间的SSL会话,由于服务器不响应大量可疑的TCP重连报文,从而可以节约响应TCP重连报文所需的内存资源和CPU资源的,使得服务器可以集中内存资源和CPU资源快速地建立服务器与客户端之间的SSL会话,以减少SSL会话的建立时间,提高客户端访问服务器的页面的速率。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为实施本发明实施例提供的SSL会话建立方法的一场景示意图;
图2为本发明实施例提供的一种SSL会话建立方法的流程示意图;
图3为图2中的SSL会话建立方法的子步骤流程示意图;
图4为本发明实施例提供的另一种SSL会话建立方法的流程示意图;
图5为本发明实施例提供的一种服务器的结构示意框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
附图中所示的流程图仅是示例说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解、组合或部分合并,因此实际执行的顺序有可能根据实际情况改变。
应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
目前,HTTPS协议被广泛应用于客户端与服务器之间的数据传输,客户端与服务器之间进行数据传输之前,需要建立SSL会话,在建立SSL会话的过程中,需要用到数字证书,而现在很多企业对数字证书的安全性要求也越来越高,加密级别越高的数字证书对服务器的内存和CPU的要求也越高,发明人发现,服务器的内存较小和CPU的处理能力较低时,如果使用加密级别高的HTTPS数字证书,需要耗费较多的时间来建立SSL会话,客户端访问服务器的页面的速度非常慢,通常打开网站首页需要50秒左右甚至更长的时间,用户的体验非常不好。
为解决上述问题,发明人通过抓取TCP报文或安全传输层协议(Transport LayerSecurity,TLS)报文分析发现,服务器在解析客户端的Client Hello消息以及处理客户端对于服务器的数字证书信任度不高的流程时会耗费大量的内存及CPU占用率,并且耗费大量的内存及CPU占用率是因为服务器响应了大量的TCP重连报文。因此,本发明实施例提供一种SSL会话建立方法,通过在建立客户端与服务器之间的SSL会话的过程中,获取客户端对服务器数字证书进行认证后返回的认证结果信息,并在认证结果信息为认证失败时,若获取到客户端发送的传输控制协议(Transmission Control Protocol,TCP)重连报文,则不响应TCP重连报文,并确定TCP重连报文的数量,然后在TCP重连报文的数量大于预设数量阈值时,根据Client Hello消息和Server Hello消息,建立客户端与服务器之间的SSL会话,由于服务器不响应大量可疑的TCP重连报文,从而可以节约响应TCP重连报文所需的内存资源和CPU资源的,使得服务器可以集中内存资源和CPU资源快速地建立服务器与客户端之间的SSL会话,以减少SSL会话的建立时间,提高客户端访问服务器的页面的速率。
下面结合附图,对本发明的一些实施例作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
请参阅图1,图1为实施本发明实施例提供的SSL会话建立方法的一场景示意图。如图1所示,该场景包括客户端11和服务器12,客户端11与服务器12通信连接,且客户端11与服务器12通过HTTPS协议建立SSL会话。其中,客户端11可以包括浏览器、智能手机、平板电脑、个人计算机(PC)、笔记本电脑等。服务器12可以是独立的服务器,也可以是由多个服务器组成的服务器集群,也可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。
在一实施例中,客户端11要访问服务器12时,客户端生成Client Hello消息,并向服务器12发送Client Hello消息;服务器12在获取到Client Hello消息时,根据ClientHello消息,向客户端11发送Server Hello消息和数字证书;客户端11使用内置的根证书记录的公钥信息对数字证书进行合法性认证,得到认证结果信息,并向服务器12发送认证结果信息,且在认证结果信息为认证失败时,客户端11断开与服务器12之间的TCP连接,然后向服务器12发送TCP重连报文;服务器12在接收到客户端11发送的认证结果信息时,确定认证结果信息是否为认证失败,在确定认证结果信息为认证失败,即客户端12不信任服务器12发送的数字证书时,若获取到客户端发送的TCP重连报文,则不响应TCP重连报文,并确定TCP重连报文的数量,然后在TCP重连报文的数量大于预设数量阈值时,根据Client Hello消息和Server Hello消息,建立客户端11与服务器12之间的SSL会话。
以下,将结合图1中的场景对本发明的实施例提供的SSL会话建立方法进行详细介绍。需知,图1中的场景仅用于解释本发明实施例提供的SSL会话建立方法,但并不构成对本发明实施例提供的SSL会话建立方法应用场景的限定。
请参阅图2,图2为本发明实施例提供的一种SSL会话建立方法的流程示意图。
如图2所示,该SSL会话建立方法包括步骤S101至步骤S103。
步骤S101、根据客户端发送的Client Hello消息,向客户端发送Server Hello消息和数字证书,并获取客户端对数字证书进行认证后返回的认证结果信息。
其中,Client Hello消息包括客户端支持的加密套件列表、随机数、SSL版本信息等,加密套件列表包括客户端支持的加密套件,每个加密套件包括密钥交换算法、加密算法、摘要算法和伪随机函数等,Server Hello消息包括SSL版本信息、随机数、SessionID、协商好的加密套件等。
在本实施例中,在客户端需要建立与服务器之间的SSL会话之前,建立客户端与服务器之间的TCP连接,在客户端与服务器之间的TCP连接建立成功后,客户端向服务器发送Client Hello消息,服务器启用监听器,当监听到客户端发送的Client Hello消息时,服务器通过消息记录模块记录Client Hello消息,并根据监听到的Client Hello消息,向客户端发送Server Hello消息,同时向客户端发送数字证书,然后获取客户端对数字证书进行认证后返回的认证结果信息。
其中,客户端存储有根证书,服务器存储有数字证书,根证书和数字证书是由CA设备生成的。例如,服务器生成第一私钥和第一公钥,并将第一公钥发送给CA设备;CA设备生成第二私钥和第二公钥,并使用第二私钥对第一公钥签名,生成数字证书,然后将数字证书发送给服务器进行存储,并将根证书和第二公钥发送给客户端进行存储。
在一实施例中,如图3所示,步骤S101包括:子步骤S1011至子步骤S1013。
子步骤S1011,根据Client Hello消息,确定客户端支持的第一加密套件列表。
示例性的,确定Client Hello消息中是否存在扩展报文;在Client Hello消息中不存在扩展报文时,将Client Hello消息中的加密套件列表确定为客户端支持的第一加密套件列表。其中,Client Hello消息包括客户端支持的加密套件列表,第一加密套件列表包括客户端支持的多个加密套件。例如,Client Hello消息中的加密套件列表包括加密套件A、加密套件B、加密套件C、加密套件D、加密套件E和加密套件F,由于Client Hello消息中不存在扩展报文,则可以将Client Hello消息中的加密套件列表确定为第一加密套件列表,即第一加密套件列表包括加密套件A、加密套件B、加密套件C、加密套件D、加密套件E和加密套件F。
示例性的,在Client Hello消息中存在扩展报文时,确定Client Hello消息中的扩展报文的个数;在扩展报文的个数大于或等于预设个数阈值时,根据Client Hello消息中的部分扩展报文确定客户端支持的扩展加密套件;根据Client Hello消息中的加密套件列表和扩展加密套件,确定客户端支持的第一加密套件列表。其中,预设个数阈值可基于实际情况进行设置,本实施例对此不做具体限定,例如,预设个数阈值为1或2。通过在ClientHello消息中存在多个扩展报文时,基于Client Hello消息中的部分扩展报文来确定客户端支持的扩展加密套件,可以进一步减少服务器的内存资源和CPU资源的浪费,也可以提高处理效率,从而可以提高SSL会话的建立速度。
示例性的,根据Client Hello消息中的部分扩展报文确定客户端支持的扩展加密套件可以包括:确定Client Hello消息中的扩展报文的排列顺序,并按照Client Hello消息中的扩展报文的排列顺序,依次从Client Hello消息中读取扩展报文,直至读取到的扩展报文的个数达到预设个数阈值;根据读取到的扩展报文确定客户端支持的扩展加密套件。
例如,Client Hello消息包括扩展报文a、扩展报文b、扩展报文c、扩展报文d和扩展报文e,且扩展报文a、扩展报文b、扩展报文c、扩展报文d和扩展报文e在Client Hello消息中的排列顺序为扩展报文d、扩展报文b、扩展报文c、扩展报文a、扩展报文e,若预设个数阈值为1,则服务器读取扩展报文d,并将扩展报文d中的加密套件J确定为客户端支持的扩展加密套件,Client Hello消息中的加密套件列表包括加密套件A、加密套件B、加密套件C、加密套件D、加密套件E和加密套件F,则在加上扩展加密套件后,第一加密套件列表包括加密套件A、加密套件B、加密套件C、加密套件D、加密套件E、加密套件F和加密套件J。
又例如,若预设个数阈值为2,则服务器依次从Client Hello消息中读取扩展报文d和扩展报文b,将扩展报文d中的加密套件J和扩展报文b中的加密套件K确定为客户端支持的扩展加密套件,Client Hello消息中的加密套件列表包括加密套件A、加密套件B、加密套件C、加密套件D、加密套件E和加密套件F,则在加上扩展加密套件后,第一加密套件列表包括加密套件A、加密套件B、加密套件C、加密套件D、加密套件E、加密套件F、加密套件J和加密套件K。
示例性的,在扩展报文的个数小于预设个数阈值时,根据Client Hello消息中的全部扩展报文确定客户端支持的扩展加密套件;根据Client Hello消息中的加密套件列表和扩展加密套件,确定客户端支持的第一加密套件列表。通过在Client Hello消息中的扩展报文的个数小于预设个数阈值时,对Client Hello消息中的全部扩展报文进行分析,以确定客户端支持的扩展加密套件,由于需要分析的扩展报文较少,可以进一步减少服务器的内存资源和CPU资源的浪费,也可以提高处理效率,从而可以提高SSL会话的建立速度。
子步骤S1012、根据服务器预先配置的第二加密套件列表,从第一加密套件列表中确定目标加密套件。
示例性的,从第一加密套件列表中选择一个加密套件与第二加密套件列表中的各加密套件进行匹配,若没有匹配到相同的加密套件,则从第一加密套件列表中的剩余加密套件中选择一个加密套件与第二加密套件列表中的各加密套件进行匹配,若匹配到相同的加密套件,则将匹配到的加密套件确定为目标加密套件。其中,第二加密套件列表包括服务器支持的多个加密套件。
例如,第一加密套件列表包括加密套件A、加密套件B、加密套件C、加密套件D、加密套件E和加密套件F,第二加密套件列表包括加密套件a、加密套件b、加密套件c、加密套件D和加密套件e,则选择加密套件A与第二加密套件列表中的加密套件a、加密套件B、加密套件c、加密套件D和加密套件e进行匹配,通过匹配发现没有相同的加密套件,则将加密套件B与第二加密套件列表中的加密套件a、加密套件B、加密套件c、加密套件D和加密套件e进行匹配,在匹配过程中,发现相同的加密套件B,则停止匹配,并将加密套件B确定为目标加密套件。
子步骤S1013、根据目标加密套件,生成Server Hello消息,并向客户端发送Server Hello消息和数字证书。
其中,生成的Server Hello消息包括目标加密套件、SSL版本信息、随机数和SessionID,目标加密套件用于定义本次SSL会话所使用的加密套件,Server Hello消息中的SSL版本信息用于确定本次SSL会话的SSL版本,Server Hello消息中的随机数与ClientHello消息中的随机数的组成相同,SessionID用于标识SSL会话。
步骤S102、在确定认证结果信息为认证失败时,若获取到客户端发送的传输控制协议TCP重连报文,则不响应TCP重连报文,并确定TCP重连报文的数量。
在本步骤中,在客户端获取到服务器发送的数字证书时,利用存储的根证书和第二公钥对数字证书进行合法性认证,得到认证结果信息,并向服务器发送认证结果信息;基于认证结果信息可以确认服务器是否可信;在认证结果信息为认证成功时,可以确定服务器可信,在认证结果信息为认证失败时,可以确定服务器不可信,此时客户端断开与服务器之间的TCP连接,然后向服务器发送TCP重连报文。
步骤S103、在TCP重连报文的数量大于预设数量阈值时,根据Client Hello消息和Server Hello消息,建立客户端与服务器之间的SSL会话。
其中,预设数量阈值可以基于实际情况进行设置,本发明实施例对此不做具体限定。例如,预设数量阈值为6条,则在TCP重连报文的数量大于6时,根据Client Hello消息和Server Hello消息,建立客户端与服务器之间的SSL会话。
示例性的,在TCP重连报文的数量大于预设数量阈值时,服务器向客户端发送Server Hello Done消息;客户端在接收到Server Hello Done消息后,按照目标加密套件中的密钥交换算法,对Client Hello消息中的随机数和Server Hello消息中的随机数进行计算,得到目标随机数pre-master,并根据Client Hello消息中的随机数、Server Hello消息中的随机数和目标随机数字pre-master,计算得到对称密钥;客户端使用服务器的公钥对目标随机数字pre-master进行加密,得到随机数密文,并将随机数密文发送给服务器;服务器使用自己的私钥对随机数密文进行解密,得到目标随机数字pre-master,并基于Client Hello消息中的随机数、Server Hello消息中的随机数和目标随机数字pre-master,计算得到对称密钥,从而完成密钥交换;再进行密钥验证,在密钥验证通过之后,客户端与服务器之间的SSL会话就建立完成,客户端与服务器之间使用对称密钥进行数据通信。
上述实施例提供的SSL会话建立方法,通过在建立客户端与服务器之间的SSL会话的过程中,获取客户端对服务器数字证书进行认证后返回的认证结果信息,并在认证结果信息为认证失败时,若获取到客户端发送的传输控制协议(Transmission ControlProtocol,TCP)重连报文,则不响应TCP重连报文,并确定TCP重连报文的数量,然后在TCP重连报文的数量大于预设数量阈值时,根据Client Hello消息和Server Hello消息,建立客户端与服务器之间的SSL会话,由于服务器不响应大量可疑的TCP重连报文,从而可以节约响应TCP重连报文所需的内存资源和CPU资源的,使得服务器可以集中内存资源和CPU资源快速地建立服务器与客户端之间的SSL会话,以减少SSL会话的建立时间,提高客户端访问服务器的页面的速率。
请参阅图4,图4为本发明实施例提供的另一种SSL会话建立方法的流程示意图。
如图4所示,该SSL会话建立方法包括步骤S201至204。
步骤S201、根据客户端发送的Client Hello消息,向客户端发送Server Hello消息和数字证书,并获取客户端对数字证书进行认证后返回的认证结果信息。
其中,Client Hello消息包括客户端支持的加密套件列表、随机数、SSL版本信息等,加密套件列表包括客户端支持的加密套件,每个加密套件包括密钥交换算法、加密算法、摘要算法和伪随机函数等,Server Hello消息包括SSL版本信息、随机数、SessionID、协商好的加密套件等。
步骤S202、在确定认证结果信息为认证失败时,若获取到客户端发送的传输控制协议TCP重连报文,则不响应TCP重连报文,并确定TCP重连报文的数量。
在本步骤中,在客户端获取到服务器发送的数字证书时,利用存储的根证书和第二公钥对数字证书进行合法性认证,得到认证结果信息,并向服务器发送认证结果信息;基于认证结果信息可以确认服务器是否可信;在认证结果信息为认证成功时,可以确定服务器可信,在认证结果信息为认证失败时,可以确定服务器不可信,此时客户端断开与服务器之间的TCP连接,然后向服务器发送TCP重连报文。
步骤S203、在TCP重连报文的数量大于预设数量阈值时,确定客户端是否申请创建新的SSL会话。
示例性的,获取服务器记录的Client Hello消息,并确定服务器记录的ClientHello消息与客户端发送的Client Hello消息中的随机数是否相同;若服务器记录的Client Hello消息中的随机数与客户端发送的Client Hello消息中的随机数不同,则确定客户端申请创建新的SSL会话;若服务器记录的Client Hello消息中的随机数与客户端发送的Client Hello消息中的随机数相同,则确定客户端未申请创建新的SSL会话。其中,服务器通过消息记录模块记录Client Hello消息,且服务器监听到Client Hello消息时,消息记录模块记录监听到的Client Hello消息。
示例性的,确定消息记录模块记录的Client Hello消息的个数是否大于1,在消息记录模块记录的Client Hello消息的个数大于1时,确定客户端申请创建新的SSL会话;在消息记录模块记录的Client Hello消息的个数等于1时,确定客户端未申请创建新的SSL会话。
步骤S204、在确定客户端申请创建新的SSL会话时,根据Client Hello消息和Server Hello消息,建立客户端与服务器之间的SSL会话。
示例性的,在确定认证结果信息为认证失败时,若获取到客户端发送的传输控制协议TCP重连报文,则在预设时长内不响应TCP重连报文,并确定TCP重连报文的数量;在TCP重连报文的数量小于或等于预设数量阈值时,响应TCP重连报文,以重新建立客户端与服务器之间的TCP连接。其中,预设时长可以基于实际情况进行设置,本实施例对此不做具体限定。通过在预设时长内不响应TCP重连报文,而是在TCP重连报文的数量小于或等于预设数量阈值时,响应TCP重连报文,可以减少服务器的内存资源和CPU资源的浪费,也可以提高处理效率,从而可以提高SSL会话的建立速度。
示例性的,在确定客户端申请创建新的SSL会话时,删除全部的TCP重连报文,并确定客户端发送的Client Hello消息可信,这样服务器与客户端可以根据Client Hello消息和Server Hello消息,建立客户端与服务器之间的SSL会话。
示例性的,在确定客户端申请创建新的SSL会话时,关闭TCP重连报文,并保留Client Hello消息;根据保留的Client Hello消息和Server Hello消息,建立客户端与服务器之间的SSL会话。其中,保留Client Hello消息是指服务器中的消息记录模块不删除Client Hello消息,而是消息记录模块继续保留Client Hello消息。通过关闭TCP重连报文以及使用保留的Client Hello消息,可以减少服务器的内存资源和CPU资源的浪费,也可以提高处理效率,从而可以提高SSL会话的建立速度。
示例性的,在TCP重连报文的数量小于或等于预设数量阈值时,删除服务器记录的Client Hello消息。其中,删除服务器记录的Client Hello消息包括将消息记录模块记录的Client Hello消息清零。
上述实施例提供的SSL会话建立方法,通过在建立客户端与服务器之间的SSL会话的过程中,获取客户端对服务器数字证书进行认证后返回的认证结果信息,并在认证结果信息为认证失败时,若获取到客户端发送的传输控制协议(Transmission ControlProtocol,TCP)重连报文,则不响应TCP重连报文,并确定TCP重连报文的数量,然后在TCP重连报文的数量大于预设数量阈值时,进一步地确定客户端是否申请创建新的SSL会话,若确定客户端申请创建新的SSL会话,则根据Client Hello消息和Server Hello消息,建立客户端与服务器之间的SSL会话,由于服务器不响应大量可疑的TCP重连报文,从而可以节约响应TCP重连报文所需的内存资源和CPU资源的,使得服务器可以集中内存资源和CPU资源快速地建立服务器与客户端之间的SSL会话,以减少SSL会话的建立时间,提高客户端访问服务器的页面的速率。
请参阅图5,图5为本发明实施例提供的一种服务器的结构示意性框图。
如图5所示,服务器300包括处理器301和存储器302,处理器301和存储器302通过总线303连接,该总线比如为I2C(Inter-integrated Circuit)总线。
具体地,处理器301用于提供计算和控制能力,支撑整个服务器的运行。处理器301可以是中央处理单元(Central Processing Unit,CPU),该处理器301还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(ApplicationSpecific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable GateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
具体地,存储器302可以是Flash芯片、只读存储器(ROM,Read-Only Memory)磁盘、光盘、U盘或移动硬盘等。
本领域技术人员可以理解,图5中示出的结构,仅仅是与本发明实施例方案相关的部分结构的框图,并不构成对本发明实施例方案所应用于其上的服务器的限定,具体的服务器可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
其中,所述处理器用于运行存储在存储器中的计算机程序,并在执行所述计算机程序时实现本发明实施例提供的任意一种所述的SSL会话建立方法。
在一实施例中,所述处理器用于运行存储在存储器中的计算机程序,并在执行所述计算机程序时实现以下步骤:
根据客户端发送的Client Hello消息,向所述客户端发送Server Hello消息和数字证书,并获取所述客户端对所述数字证书进行认证后返回的认证结果信息;
在确定所述认证结果信息为认证失败时,若获取到所述客户端发送的传输控制协议TCP重连报文,则不响应所述TCP重连报文,并确定所述TCP重连报文的数量;
在所述TCP重连报文的数量大于预设数量阈值时,根据所述Client Hello消息和所述Server Hello消息,建立所述客户端与所述服务器之间的SSL会话。
在一实施例中,所述处理器在实现根据客户端发送的Client Hello消息,向所述客户端发送Server Hello消息和数字证书时,用于实现:
根据所述Client Hello消息,确定所述客户端支持的第一加密套件列表,所述第一加密套件列表包括所述客户端支持的多个加密套件;
根据所述服务器预先配置的第二加密套件列表,从所述第一加密套件列表中确定目标加密套件,所述第二加密套件列表包括所述服务器支持的多个加密套件;
根据所述目标加密套件,生成Server Hello消息,并向所述客户端发送所述Server Hello消息和数字证书。
在一实施例中,所述处理器在实现根据所述Client Hello消息,确定所述客户端支持的第一加密套件列表时,用于实现:
确定所述Client Hello消息中是否存在扩展报文;
在所述Client Hello消息中不存在扩展报文时,将所述Client Hello消息中的加密套件列表确定为所述客户端支持的第一加密套件列表。
在一实施例中,所述处理器在实现确定所述Client Hello消息中是否存在扩展报文之后,还用于实现:
在所述Client Hello消息中存在扩展报文时,确定所述Client Hello消息中的扩展报文的个数;
在所述扩展报文的个数大于或等于预设个数阈值时,根据所述Client Hello消息中的部分扩展报文确定所述客户端支持的扩展加密套件;
在所述扩展报文的个数小于预设个数阈值时,根据所述Client Hello消息中的全部扩展报文确定所述客户端支持的扩展加密套件;
根据所述Client Hello消息中的加密套件列表和所述扩展加密套件,确定所述客户端支持的第一加密套件列表。
在一实施例中,所述处理器在实现根据所述Client Hello消息和所述ServerHello消息,建立所述客户端与所述服务器之间的SSL会话之前,还用于实现:
在所述TCP重连报文的数量大于预设数量阈值时,确定所述客户端是否申请创建新的SSL会话;
在确定所述客户端申请创建新的SSL会话时,根据所述Client Hello消息和所述Server Hello消息,建立所述客户端与所述服务器之间的SSL会话。
在一实施例中,所述处理器在实现在确定所述客户端申请创建新的SSL会话时,根据所述Client Hello消息和所述Server Hello消息,建立所述客户端与所述服务器之间的SSL会话时,用于实现:
在确定所述客户端申请创建新的SSL会话时,关闭所述TCP重连报文,并保留所述Client Hello消息;
根据保留的所述Client Hello消息和所述Server Hello消息,建立所述客户端与所述服务器之间的SSL会话。
在一实施例中,所述处理器在实现确定所述客户端是否申请创建新的SSL会话时,用于实现:
获取所述服务器记录的Client Hello消息,并确定所述服务器记录的ClientHello消息与所述客户端发送的Client Hello消息中的随机数是否相同;
若所述服务器记录的Client Hello消息中的随机数与所述客户端发送的ClientHello消息中的随机数不同,则确定所述客户端申请创建新的SSL会话;
若所述服务器记录的Client Hello消息中的随机数与所述客户端发送的ClientHello消息中的随机数相同,则确定所述客户端未申请创建新的SSL会话。
在一实施例中,所述处理器在实现确定所述TCP重连报文的数量之后,还用于实现:
在所述TCP重连报文的数量小于或等于预设数量阈值时,删除所述服务器记录的Client Hello消息。
需要说明的是,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的服务器的具体工作过程,可以参考前述SSL会话建立方法实施例中的对应过程,在此不再赘述。
本发明实施例还提供一种存储介质,用于计算机可读存储,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如本发明实施例说明书提供的任一项SSL会话建立方法。
其中,所述存储介质可以是前述实施例所述的服务器的内部存储单元,例如所述服务器的硬盘或内存。所述存储介质也可以是所述服务器的外部存储设备,例如所述服务器上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)等。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施例中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
应当理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。以上所述,仅为本发明的具体实施例,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种安全套接字协议SSL会话建立方法,应用于服务器,其特征在于,包括:
根据客户端发送的Client Hello消息,向所述客户端发送Server Hello消息和数字证书,并获取所述客户端对所述数字证书进行认证后返回的认证结果信息;
在确定所述认证结果信息为认证失败时,若获取到所述客户端发送的传输控制协议TCP重连报文,则不响应所述TCP重连报文,并确定所述TCP重连报文的数量;
在所述TCP重连报文的数量大于预设数量阈值时,根据所述Client Hello消息和所述Server Hello消息,建立所述客户端与所述服务器之间的SSL会话。
2.根据权利要求1所述的SSL会话建立方法,其特征在于,所述根据客户端发送的Client Hello消息,向所述客户端发送Server Hello消息和数字证书,包括:
根据所述Client Hello消息,确定所述客户端支持的第一加密套件列表,所述第一加密套件列表包括所述客户端支持的多个加密套件;
根据所述服务器预先配置的第二加密套件列表,从所述第一加密套件列表中确定目标加密套件,所述第二加密套件列表包括所述服务器支持的多个加密套件;
根据所述目标加密套件,生成Server Hello消息,并向所述客户端发送所述ServerHello消息和数字证书。
3.根据权利要求2所述的SSL会话建立方法,其特征在于,所述根据所述Client Hello消息,确定所述客户端支持的第一加密套件列表,包括:
确定所述Client Hello消息中是否存在扩展报文;
在所述Client Hello消息中不存在扩展报文时,将所述Client Hello消息中的加密套件列表确定为所述客户端支持的第一加密套件列表。
4.根据权利要求3所述的SSL会话建立方法,其特征在于,所述确定所述Client Hello消息中是否存在扩展报文之后,还包括:
在所述Client Hello消息中存在扩展报文时,确定所述Client Hello消息中的扩展报文的个数;
在所述扩展报文的个数大于或等于预设个数阈值时,根据所述Client Hello消息中的部分扩展报文确定所述客户端支持的扩展加密套件;
在所述扩展报文的个数小于预设个数阈值时,根据所述Client Hello消息中的全部扩展报文确定所述客户端支持的扩展加密套件;
根据所述Client Hello消息中的加密套件列表和所述扩展加密套件,确定所述客户端支持的第一加密套件列表。
5.根据权利要求1-4中任一项所述的SSL会话建立方法,其特征在于,所述根据所述Client Hello消息和所述Server Hello消息,建立所述客户端与所述服务器之间的SSL会话之前,还包括:
在所述TCP重连报文的数量大于预设数量阈值时,确定所述客户端是否申请创建新的SSL会话;
在确定所述客户端申请创建新的SSL会话时,根据所述Client Hello消息和所述Server Hello消息,建立所述客户端与所述服务器之间的SSL会话。
6.根据权利要求5所述的SSL会话建立方法,其特征在于,所述在确定所述客户端申请创建新的SSL会话时,根据所述Client Hello消息和所述Server Hello消息,建立所述客户端与所述服务器之间的SSL会话,包括:
在确定所述客户端申请创建新的SSL会话时,关闭所述TCP重连报文,并保留所述Client Hello消息;
根据所述Client Hello消息和所述Server Hello消息,建立所述客户端与所述服务器之间的SSL会话。
7.根据权利要求5所述的SSL会话建立方法,其特征在于,所述确定所述客户端是否申请创建新的SSL会话,包括:
获取所述服务器记录的Client Hello消息,并确定所述服务器记录的Client Hello消息与所述客户端发送的Client Hello消息中的随机数是否相同;
若所述服务器记录的Client Hello消息中的随机数与所述客户端发送的ClientHello消息中的随机数不同,则确定所述客户端申请创建新的SSL会话;
若所述服务器记录的Client Hello消息中的随机数与所述客户端发送的ClientHello消息中的随机数相同,则确定所述客户端未申请创建新的SSL会话。
8.根据权利要求7所述的SSL会话建立方法,其特征在于,所述确定所述TCP重连报文的数量之后,还包括:
在所述TCP重连报文的数量小于或等于预设数量阈值时,删除所述服务器记录的Client Hello消息。
9.一种服务器,其特征在于,所述服务器包括处理器、存储器、存储在所述存储器上并可被所述处理器执行的计算机程序以及用于实现所述处理器和所述存储器之间的连接通信的数据总线,其中所述计算机程序被所述处理器执行时,实现权利要求1至8中任一项所述的SSL会话建立方法。
10.一种存储介质,用于计算机可读存储,其特征在于,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现权利要求1至8中任一项所述的SSL会话建立方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210452665.0A CN117014483A (zh) | 2022-04-27 | 2022-04-27 | Ssl会话建立方法、服务器及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210452665.0A CN117014483A (zh) | 2022-04-27 | 2022-04-27 | Ssl会话建立方法、服务器及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117014483A true CN117014483A (zh) | 2023-11-07 |
Family
ID=88574818
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210452665.0A Pending CN117014483A (zh) | 2022-04-27 | 2022-04-27 | Ssl会话建立方法、服务器及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117014483A (zh) |
-
2022
- 2022-04-27 CN CN202210452665.0A patent/CN117014483A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11303431B2 (en) | Method and system for performing SSL handshake | |
US8832782B2 (en) | Single sign-on system and method | |
US9130935B2 (en) | System and method for providing access credentials | |
WO2017045552A1 (zh) | 一种在ssl或tls通信中加载数字证书的方法和装置 | |
CN109302369B (zh) | 一种基于密钥验证的数据传输方法及装置 | |
US20190180008A1 (en) | Increased security using dynamic watermarking | |
CN109510802B (zh) | 鉴权方法、装置及系统 | |
US10601831B2 (en) | Accessing local information based on a browser session | |
EP3741148B1 (fr) | Technique de détermination d'une clé destinée à sécuriser une communication entre un équipement utilisateur et un serveur applicatif | |
FR2916592A1 (fr) | Procede de securisation d'echange d'information,dispositif, et produit programme d'ordinateur correspondant | |
US20170070486A1 (en) | Server public key pinning by url | |
CN104243419A (zh) | 基于安全外壳协议的数据处理方法、装置及系统 | |
CN114338844B (zh) | 一种客户端服务器之间的跨协议通信方法及装置 | |
US20220029982A1 (en) | Automatically obtaining a signed digital certificate from a trusted certificate authority | |
FR3043870A1 (fr) | Procede de securisation et d'authentification d'une telecommunication | |
CN114553957A (zh) | 兼容国密和国际https传输的业务系统和方法 | |
CN108289074A (zh) | 用户账号登录方法及装置 | |
US10931662B1 (en) | Methods for ephemeral authentication screening and devices thereof | |
CN112637138A (zh) | 一种实现多服务器免密登录的方法及相关装置 | |
CN115190483B (zh) | 一种访问网络的方法及装置 | |
US20170163610A1 (en) | Methods, apparatuses, and systems for acquiring local information | |
US9071596B2 (en) | Securely establishing a communication channel between a switch and a network-based application using a unique identifier for the network-based application | |
CN117014483A (zh) | Ssl会话建立方法、服务器及存储介质 | |
CN114039723A (zh) | 一种共享密钥的生成方法、装置、电子设备及存储介质 | |
CN111404901A (zh) | 信息验证方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |