发明内容
本发明提供一种基于TLS协议的通信握手方法、装置、电子设备及介质,用于解决现有技术中存在的技术问题。
本发明提供一种基于TLS协议的通信握手方法,包括:
基于初始TLS协议向服务器发送通信握手请求;
接收所述服务器发来的响应信息,当所述响应信息为握手请求失败时,更换所述初始TLS协议,并基于更换后的TLS协议向所述服务器重新发送通信握手请求。
根据本发明提供的基于TLS协议的通信握手方法,所述方法还包括:当所述响应信息为握手请求成功时,发送通信握手请求的客户端与所述服务器建立通信连接。
根据本发明提供的基于TLS协议的通信握手方法,所述TLS协议为以下协议版本中的任意一种:TLS1.0版本、TLS1.1版本、TLS1.2版本以及TLS1.3版本。
根据本发明提供的基于TLS协议的通信握手方法,
所述更换所述初始TLS协议,包括:
更换所运行的TLS协议的版本;
调整所运行的TLS协议的运行参数;其中,所述运行参数包括加密套件信息和扩展信息。
本发明还提供一种基于TLS协议的通信握手装置,包括:
请求模块,用于基于初始TLS协议向服务器发送通信握手请求;
重试模块,用于接收所述服务器发来的响应信息,当所述响应信息为握手请求失败时,更换所述初始TLS协议,并基于更换后的TLS协议向所述服务器重新发送通信握手请求。
根据本发明提供的基于TLS协议的通信握手装置,所述TLS协议为以下协议版本中的任意一种:TLS1.0版本、TLS1.1版本、TLS1.2版本以及TLS1.3版本。
根据本发明提供的基于TLS协议的通信握手装置,
所述重试模块在用于更换所述初始TLS协议时,具体用于:所述更换所述初始TLS协议,包括:
更换所运行的TLS协议的版本;
调整所运行的TLS协议的运行参数;其中,所述运行参数包括加密套件信息和扩展信息。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述基于TLS协议的通信握手方法的步骤。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述基于TLS协议的通信握手方法的步骤。
本发明还提供一种计算机程序产品,所计算机程序产品包括有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述基于TLS协议的通信握手方法的步骤。
本发明提供的基于TLS协议的通信握手方法、装置、电子设备及介质,通过在客户端采用动态TLS协议版本的做法,以最大可能性去匹配服务器对TLS协议版本的适配需求,确保了客户端和服务器之间通信握手请求的成功率。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1是本发明提供的基于TLS协议的通信握手方法的流程示意图,如图1所示,所述方法包括:
S110,基于初始TLS协议向服务器发送通信握手请求;
S120,接收所述服务器发来的响应信息,当所述响应信息为握手请求失败时,更换所述初始TLS协议,并基于更换后的TLS协议向所述服务器重新发送通信握手请求。
根据本发明提供的基于TLS协议的通信握手方法,在本发明中,所述方法还包括:当所述响应信息为握手请求成功时,发送通信握手请求的客户端与所述服务器建立通信连接。
需要说明的是,TLS协议即为安全传输层协议,用于在两个通信应用程序之间提供保密性和数据完整性,本质上属于在HTTP协议基础上的安全通信标准,当客户端需要与服务器建立通信连接时,客户端需要先基于该TLS协议向服务器发送通信握手请求,具体为发送Client Hello报文。
服务器在接收到客户端发送的Client Hello报文后,会向客户端发送一个响应信息,且当该响应信息为握手请求成功时,即服务器向客户端响应应答报文Server HelloDone时,说明客户端与服务器之间成功建立通信连接;而当服务器不能向客户端响应应答报文Server Hello Done时,则说明客户端向服务器发送通信握手请求失败。对于客户端向服务器发送通信握手请求失败的原因在于客户端上的TLS协议版本无法与服务器实现兼容,基于此,在本发明中,当客户端基于初始TLS协议向服务器发送通信握手请求失败时,客户端更换TLS协议的版本,并基于更换后的TLS协议重新向服务器发送通信握手请求,直到服务器向客户端响应通信握手请求成功的信息时,客户端不再向服务器发送通信握手请求,此时客户端与服务器成功建立通信连接。
本发明提供的基于TLS协议的通信握手方法,通过在客户端采用动态TLS协议版本的做法,以最大可能性去匹配服务器对TLS协议版本的适配需求,确保了客户端和服务器之间通信握手请求的成功率。
根据本发明提供的基于TLS协议的通信握手方法,在本发明中,所述TLS协议为以下协议版本中的任意一种:TLS1.0版本、TLS1.1版本、TLS1.2版本以及TLS1.3版本。
需要说明的是,目前TLS协议存在的几种主要版本有TLS1.0版本、TLS1.1版本、TLS1.2版本以及TLS1.3版本,举例来说,当初始TLS协议为TLS1.2版本时,客户端基于TLS1.2版本向服务器发送通信握手请求,且响应信息为握手请求失败时,客户端会依次基于TLS1.0版本、TLS1.1版本以及TLS1.3版本重复向服务器发送通信握手请求,直到响应信息为握手请求成功时,则客户端停止向服务器发送握手请求,且此时客户端与服务器建立通信连接。
本发明提供的基于TLS协议的通信握手方法,通过将当前TLS协议所有可能的版本均纳入客户端对于TLS协议的选择范围,基于此,确保对TLS协议版本动态调整的完整性,进而确保客户端和服务器建立通信连接的可靠性。
根据本发明提供的基于TLS协议的通信握手方法,在本发明中,
所述更换所述初始TLS协议,包括:
更换所运行的TLS协议的版本;
调整所运行的TLS协议的运行参数;其中,所述运行参数包括加密套件信息和扩展信息。
需要说明的是,加密套件是TLS加密通信中的一组加密算法。一般一个套件至少包含非对称加密算法、摘要算法以及对称加密算法。TLS握手时客户端与服务器会交换一个加密套件列表,列表中包含多组加密套件组合方案。扩展信息是TLS中附带的附加信息,用于客户端与服务器双方了解对方的特性,例如对于服务器所兼容的TLS协议版本信息。
本发明提供的基于TLS协议的通信握手方法,通过令客户端在执行更换TLS协议版本的同时,调整运行参数,确保客户端可以基于更换后的TLS协议与服务器成功建立通信连接。
图2是本发明提供的基于TLS协议的通信握手装置的结构示意图,如图2所示,所述装置包括:
请求模块210,用于基于初始TLS协议向服务器发送通信握手请求;
重试模块220,用于接收所述服务器发来的响应信息,当所述响应信息为握手请求失败时,更换所述初始TLS协议,并基于更换后的TLS协议向所述服务器重新发送通信握手请求。
本发明提供的基于TLS协议的通信握手装置,通过在客户端采用动态TLS协议版本的做法,以最大可能性去匹配服务器对TLS协议版本的适配需求,确保了客户端和服务器之间通信握手请求的成功率。
根据本发明提供的基于TLS协议的通信握手装置,在本发明中,所述装置还包括:通信连接模块,用于当所述响应信息为握手请求成功时,发送通信握手请求的客户端与所述服务器建立通信连接。
本发明提供的基于TLS协议的通信握手装置,通过通信连接模块确保客户端与服务器之间完成通信连接过程,保证二者之间后续数据传输过程的稳定进行。
根据本发明提供的基于TLS协议的通信握手装置,在本发明中,所述TLS协议为以下协议版本中的任意一种:TLS1.0版本、TLS1.1版本、TLS1.2版本以及TLS1.3版本。
本发明提供的基于TLS协议的通信握手装置,通过将当前TLS协议所有可能的版本均纳入客户端对于TLS协议的选择范围,基于此,确保对TLS协议版本动态调整的完整性,进而确保客户端和服务器建立通信连接的可靠性。
根据本发明提供的基于TLS协议的通信握手装置,在本发明中,
所述重试模块在用于更换所述初始TLS协议时,具体用于:所述更换所述初始TLS协议,包括:
更换所运行的TLS协议的版本;
调整所运行的TLS协议的运行参数;其中,所述运行参数包括加密套件信息和扩展信息。
本发明提供的基于TLS协议的通信握手装置,通过令客户端在执行更换TLS协议版本的同时,调整运行参数,确保客户端可以基于更换后的TLS协议与服务器成功建立通信连接。
图3示例了一种电子设备的实体结构示意图,如图3所示,该电子设备可以包括:处理器(processor)310、通信接口(Communications Interface)320、存储器(memory)330和通信总线340,其中,处理器310,通信接口320,存储器330通过通信总线340完成相互间的通信。处理器310可以调用存储器330中的逻辑指令,以执行基于TLS协议的通信握手方法,该方法包括:基于初始TLS协议向服务器发送通信握手请求;接收所述服务器发来的响应信息,当所述响应信息为握手请求失败时,更换所述初始TLS协议,并基于更换后的TLS协议向所述服务器重新发送通信握手请求。
此外,上述的存储器330中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法所提供的基于TLS协议的通信握手方法,该方法包括:基于初始TLS协议向服务器发送通信握手请求;接收所述服务器发来的响应信息,当所述响应信息为握手请求失败时,更换所述初始TLS协议,并基于更换后的TLS协议向所述服务器重新发送通信握手请求。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各提供的基于TLS协议的通信握手方法,该方法包括:基于初始TLS协议向服务器发送通信握手请求;接收所述服务器发来的响应信息,当所述响应信息为握手请求失败时,更换所述初始TLS协议,并基于更换后的TLS协议向所述服务器重新发送通信握手请求。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。