CN113037480A - 基于jsse的国密加密通信方法及其装置、存储介质 - Google Patents

基于jsse的国密加密通信方法及其装置、存储介质 Download PDF

Info

Publication number
CN113037480A
CN113037480A CN202110318921.2A CN202110318921A CN113037480A CN 113037480 A CN113037480 A CN 113037480A CN 202110318921 A CN202110318921 A CN 202110318921A CN 113037480 A CN113037480 A CN 113037480A
Authority
CN
China
Prior art keywords
handshake
jsse
client
information
national secret
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
Application number
CN202110318921.2A
Other languages
English (en)
Inventor
郑顺东
张创伟
孙明东
鲍宁
米坤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Thunisoft Information Technology Co ltd
Original Assignee
Beijing Thunisoft Information Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Thunisoft Information Technology Co ltd filed Critical Beijing Thunisoft Information Technology Co ltd
Priority to CN202110318921.2A priority Critical patent/CN113037480A/zh
Publication of CN113037480A publication Critical patent/CN113037480A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/168Implementing security features at a particular protocol layer above the transport layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/146Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/04Protocols for data compression, e.g. ROHC

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)
  • Computer And Data Communications (AREA)

Abstract

本申请公开了一种基于JSSE的国密加密通信方法及其装置、存储介质。其中所述方法,包括:接收客户端的握手请求;通过JSSE目标服务端解析所述握手请求,生成握手信息;匹配JSSE目标服务端中预设的国密信息和所述握手信息,得到匹配结果;当匹配结果符合国密通信条件时,通过重构的JSSE握手过程逻辑继续进行握手操作,和客户端建立握手关系;所述客户端和所述目标服务端握手,以便后续进行加密通信;其中,所述预设的国密信息包括预先在JSSE的协议版本中扩展的国密版本号和预先在JSSE密码套件中扩展的符合国密规范的密码套件。通过对客户端的握手请求进行相应的处理并返还相应的响应数据,实现了基于JSSE的国密加密通信。

Description

基于JSSE的国密加密通信方法及其装置、存储介质
技术领域
本申请涉及国密安全套接层协议技术领域,尤其涉及一种基于JSSE的国密加密通信方法及其装置、存储介质。
背景技术
随着近年来电子商务的发展,TLS加密技术也广泛运用在网络通信技术中,但是TLS标准是外国协会制定的,对于我们国家的密码安全存在一定的隐患。所以我们国家按照相关密码政策和法规,结合我国实际应用需求及产品生产厂商的实际经验,基于RFC4346TLS1.1标准,建立了自己的一套《SSL VPN技术规范》。这套规范对国密安全套接层协议规范进行了相应的指导,但是这套规范在JAVA开发领域的实现还存在问题。
发明内容
本申请实施例提供一种基于JSSE的国密加密通信的技术方案,用以解决国密安全套接层协议在JSSE中的运用实现问题。
本申请提供的一种基于JSSE的国密加密通信方法,包括:
接收客户端的握手请求;
通过JSSE目标服务端解析所述握手请求,生成握手信息;
匹配JSSE目标服务端中预设的国密信息和所述握手信息,得到匹配结果;
当匹配结果符合国密通信条件时,通过重构的JSSE握手过程逻辑继续进行握手操作,和客户端建立握手关系;
所述客户端和所述目标服务端握手,以便后续进行加密通信;
其中,所述预设的国密信息包括预先在JSSE的协议版本中扩展的国密版本号和预先在JSSE密码套件中扩展的符合国密规范的密码套件。
进一步的,在本申请提供的一种优选实施方式中,通过JSSE目标服务端解析所述握手请求,生成握手信息,具体包括:
调用JSSE目标服务端解析模型;
通过所述服务端解析模型解析所述握手请求,生成握手信息;
其中,所述握手信息包括客户端支持的SSL/TLS协议版本号、支持的密码套件、客户端随机数、会话ID和压缩方法;
客户端支持的SSL/TLS协议版本号包括国密协议版本号;
支持的密码套件包括国密标准支持的密码套件。
进一步的,在本申请提供的一种优选实施方式中,匹配JSSE目标服务端中预设的国密信息和所述握手信息,得到匹配结果,具体包括:
调用所述JSSE目标服务端中的匹配算法;
通过匹配算法匹配JSSE目标服务端中预先扩展的国密协议版本号和所述握手信息中支持的协议版本号,生成第一匹配结果;
通过匹配算法匹配JSSE目标服务端中预先扩展的符合国密规范的密码套件和所述握手信息中支持的密码套件,生成第二匹配结果;
根据第一匹配结果和第二匹配结果,得到匹配结果。
进一步的,在本申请提供的一种优选实施方式中,当匹配结果符合国密通信条件时,通过重构的JSSE握手过程逻辑继续进行握手操作,和客户端建立握手关系,具体包括:
当匹配结果符合国密通信条件时,根据所述匹配结果和所述握手信息,生成服务端握手确认参数;
向客户端发送服务端握手确认参数;
根据所述服务端确认参数,采用符合国密规范的JSSE握手过程逻辑继续进行握手操作,和客户端建立握手关系;
其中,JSSE握手过程逻辑按照国密规范预先在目标服务端重构。
进一步的,在本申请提供的一种优选实施方式中,当匹配结果符合国密通信条件时,根据所述匹配结果和所述握手信息,生成服务端握手确认参数,具体包括:
当匹配结果符合国密通信条件时,选定所述握手信息中的国密协议版本号和符合国密规范的密码套件;
提取握手信息中的会话ID和压缩方法;
调取服务端随机数;
组合所述国密协议版本号、服务端随机数、会话ID、压缩方法和密码套件,生成服务端握手确认参数。
进一步的,在本申请提供的一种优选实施方式中,根据所述服务端确认参数,采用符合国密规范的JSSE握手过程逻辑继续进行握手操作,和客户端建立握手关系,具体包括:
根据所述服务端确认参数,完成和客户端的第一握手信息交换任务;
根据所述第一握手信息和所述握手参数,生成主密钥和会话密钥;
根据重构的JSSE握手过程逻辑,完成和客户端的第二握手信息交换任务;
根据所述第二握手信息,和客户端建立握手关系。
进一步的,在本申请提供的一种优选实施方式中,根据所述服务端确认参数,完成和客户端的第一握手信息交换任务,具体包括:
根据所述服务端确认参数,向客户端发送目标服务端的证书信息;
所述证书信息发送完之后,向客户端发送第一握手完成信息;
接收客户端响应所述服务端确认参数发送的预主密钥消息,完成和客户端的第一握手信息交换任务。
进一步的,在本申请提供的一种优选实施方式中,根据重构的JSSE握手过程逻辑,完成和客户端的第二握手信息交换任务,具体包括:
接收客户端发送的即将切换到加密环境的提示消息;
接收客户端发送的握手完成消息;
响应所述客户端的提示消息,发送目标服务端即将切换到加密环境的提示消息;
响应所述客户端握手完成消息,发送目标服务端握手完成消息,完成和客户端的第二握手信息交换任务。
本申请还提供一种基于JSSE的国密加密通信装置,包括:
接收模块,用于接收客户端的握手请求;
解析模块,用于通过JSSE目标服务端解析所述握手请求,生成握手信息;
匹配模块,用于匹配JSSE目标服务端中预设的国密信息和所述握手信息,得到匹配结果;
握手模块,当匹配结果符合国密通信条件时,通过重构的JSSE握手过程逻辑继续进行握手操作,和客户端建立握手关系;
握手完成模块,用于根据所述握手关系,和所述客户端进行后续加密通信;
其中,所述预设的国密信息包括预先在JSSE的协议版本中扩展的国密版本号和预先在JSSE密码套件中扩展的符合国密规范的密码套件。
本申请还提供一种存储介质,所述存储介质存储有计算机程序,所述计算机程序被加载后,可以执行权利要求1至8中任一项所述的方法。
本申请提供的实施例,至少具有以下技术效果:
解决了在JAVA开发领域对国密安全套接层协议的支持问题。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例提供的基于JSSE的国密加密通信方法的流程图;
图2为本申请实施例提供的基于JSSE的国密加密通信装置的示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参照图1,为本申请实施例提供的基于JSSE的国密加密通信方法,具体包括以下步骤:
S100:接收客户端的握手请求。
客户端通常也可以称为用户端,是指与服务器相对应,为客户提供本地服务的程序。因特网发展以后,较常用的用户端包括了如万维网使用的网页浏览器,收寄电子邮件时的电子邮件客户端,以及即时通讯的客户端软件等。握手请求可以是使用国密安全套接层协议过程中请求建立国密加密通信的请求信息。例如有一个客户端浏览器,该浏览器支持基于国密安全套接层协议的通信功能。用户在客户端浏览器输入特定网址时,客户端会先向网址所在服务端发送连接请求。显而易见的是,此处的连接请求可以理解为握手请求。
S200:通过JSSE目标服务端解析所述握手请求,生成握手信息。
具体的,在本申请提供的一种优选实施方式中,通过JSSE目标服务端解析所述握手请求,生成握手信息,具体包括:
调用JSSE目标服务端解析模型;
通过所述服务端解析模型解析所述握手请求,生成握手信息;
其中,所述握手信息包括客户端支持的SSL/TLS协议版本号、支持的密码套件、客户端随机数、会话ID和压缩方法;
客户端支持的SSL/TLS协议版本号包括国密协议版本号;
支持的密码套件包括国密标准支持的密码套件。
JSSE是基于安全算法和握手机制之上的合成体。可以理解的是,对于客户端发送的握手请求,服务端进行解析后可以进行识别。例如一个客户端浏览器,该浏览器支持符合国密安全套接层协议的通信,具有密码套件:ECC_SM4_SM3。客户端通过该浏览器对服务端发送建立安全套接层协议通信请求。服务端解析请求,解析到客户端对服务端发送ClientHello消息,消息包括:客户端支持的SSL/TLS协议版本号、支持的密码套件、客户端随机数、会话ID和压缩方法。通过解析信息,目标服务端可以识别客户端请求中的具体信息。
S300:匹配JSSE目标服务端中预设的国密信息和所述握手信息,得到匹配结果。
可以理解的是,要用预设的国密信息时,需要预先调整JSSE目标服务端中程序对国密安全套接层协议的支持。匹配预设的国密信息和所述握手信息,当所述握手信息符合目标服务端预设的规则条件时,目标服务端和客户端建立握手连接。通过JSSE目标服务端中预设的密信息和所述握手信息的匹配结果,能够建立基于国密安全套接层协议的握手连接。
具体的,在本申请提供的一种优选实施方式中,匹配JSSE目标服务端中预设的国密信息和所述握手信息,得到匹配结果,具体包括:
调用所述JSSE目标服务端中的匹配算法;
通过匹配算法匹配JSSE目标服务端中预先扩展的国密协议版本号和所述握手信息中支持的协议版本号,生成第一匹配结果;
通过匹配算法匹配JSSE目标服务端中预先扩展的符合国密规范的密码套件和所述握手信息中支持的密码套件,生成第二匹配结果;
根据第一匹配结果和第二匹配结果,得到匹配结果。
显而易见的是,在对两项数据进行匹配时,需要调用匹配算法进行数据匹配,从而得到匹配结果。例如对于常见的TLS协议,在HTTP通信过程中都会进行SSL版本号的选择。在客户端发送支持的SSL版本号给服务端之后,服务端会根据自身支持的协议版本号以及客户端所支持的版本号进行匹配。由于国密安全套接层协议的版本号为0101,所以需要对ProtocolVersion进行扩展,用以支持国密安全套接层协议版本号。可以理解的是,JSSE目标服务端需要调整JSSE内对密码套件的支持,以支持通信过程中对加密套件的使用。国密安全套接层协议采用国家密码局颁发的商用密码规范进行加密,所以在加密算法方面也需要支持国密安全套接层协议规范内的密码套件,比如ECC_SM4_SM3等。这样,基于JSSE的目标服务端就能够进行下一步基于国密安全套接层协议的操作。
S400:当匹配结果符合国密通信条件时,通过重构的JSSE握手过程逻辑继续进行握手操作,和客户端建立握手关系。
具体的,在本申请提供的一种优选实施方式中,当匹配结果符合国密通信条件时,通过重构的JSSE握手过程逻辑继续进行握手操作,和客户端建立握手关系,具体包括:
当匹配结果符合国密通信条件时,根据所述匹配结果和所述握手信息,生成服务端握手确认参数;
向客户端发送服务端握手确认参数;
根据所述服务端确认参数,采用符合国密规范的JSSE握手过程逻辑继续进行握手操作,和客户端建立握手关系;
其中,JSSE握手过程逻辑按照国密规范预先在目标服务端重构。
可以理解的是,由于国密安全套接层协议和国际上的安全套接层协议存在区别,所以需要调整JSSE内的SSL握手过程逻辑,以便支持基于国密安全套接层协议的通信。根据国密安全套接层协议规范,需要对JSSE握手过程进行重构。例如服务端在收到客户端请求后,将会对请求参数进行解析,并发送Server Hello消息,消息内容包括:服务端选定的版本协议号、服务端随机数、会话ID、压缩方法及选定的密码套件。JSSE握手过程进行重构后,JSSE目标服务端能够支持符合国密安全套接层协议规范的握手操作。
具体的,在本申请提供的一种优选实施方式中,当匹配结果符合国密通信条件时,根据所述匹配结果和所述握手信息,生成服务端握手确认参数,具体包括:
当匹配结果符合国密通信条件时,选定所述握手信息中的国密协议版本号和符合国密规范的密码套件;
提取握手信息中的会话ID和压缩方法;
调取服务端随机数;
组合所述国密协议版本号、服务端随机数、会话ID、压缩方法和密码套件,生成服务端握手确认参数。
可以理解的是,选定所述握手信息中的国密协议版本号和符合国密规范的密码套件时,需要符合国密安全套接层协议规范。显而易见的是,协议版本和密码套件的选择模型需要根据国密安全套接层协议规范进行重构。这样,服务端握手确认参数就能符合国密安全套接层协议规范。
需要指出的是,在本申请提供的一种优选实施方式中,根据所述服务端确认参数,采用符合国密规范的JSSE握手过程逻辑继续进行握手操作,和客户端建立握手关系,具体包括:
根据所述服务端确认参数,完成和客户端的第一握手信息交换任务;
根据所述第一握手信息和所述握手参数,生成主密钥和会话密钥;
根据重构的JSSE握手过程逻辑,完成和客户端的第二握手信息交换任务;
根据所述第二握手信息,和客户端建立握手关系。
可以理解的是,根据国密安全套接层协议规范,需要对JSSE握手过程进行重构,包括对主密钥的生成算法和会话密钥的计算算法进行重构。这样,用重构之后的算法生成的主密钥和会话密钥就符合了国密安全套接层协议规范。
具体的,在本申请提供的一种优选实施方式中,根据所述服务端确认参数,完成和客户端的第一握手信息交换任务,具体包括:
根据所述服务端确认参数,向客户端发送目标服务端的证书信息;
所述证书信息发送完之后,向客户端发送第一握手完成信息;
接收客户端响应所述服务端确认参数发送的预主密钥消息,完成和客户端的第一握手信息交换任务。
可以理解的是,当客户端和服务端进行基于国密安全套接层协议的加密通信时,所述目标服务端的证书需要符合国密规范。显而易见的是,目标服务端需要调整JSSE内对SSL证书的支持,以便支持对国密安全套接层协议双证书的运用。对于SSL/TLS协议,支持的证书都是单证书。对于国密安全套接层协议规范,部分密码套件通信需要采用双证书进行通信。这里的双证书指的是加密证书和签名证书。对服务端JSSE内证书改造时,需要扩展JSSE内的证书管理器。例如服务端根据所选密码套件向客户端发送Server Certificate消息,Server Certificate消息可以理解为目标服务端的证书信息。当密码套件为ECC_SM4_SM3时,该消息携带加密证书及签名证书信息。服务端选择的密码套件为ECC_SM4_SM3时,继续发送Server Key Exchange消息,该消息携带了双方随机数和服务端加密证书的签名值。服务端继续发送Server Hello Done消息,该消息可以理解为所述第一握手完成消息,该消息表示服务端Hello消息完成。客户端收到Server Hello Done消息后,根据双方随机数以及加密算法生成预主密钥,之后用证书的公钥进行加密,加密后向目标服务端发送ClientKey Exchange消息并开始计算主密钥和会话密钥。其中Client Key Exchange消息包括客户端支持版本号和46字节随机数。服务端接收到预主密钥后进行解密,之后开始计算主密钥和会话密钥。这样,目标服务端实现了和客户端的加密参数交换。
具体的,在本申请提供的一种优选实施方式中,根据重构的JSSE握手过程逻辑,完成和客户端的第二握手信息交换任务,具体包括:
接收客户端发送的即将切换到加密环境的提示消息;
接收客户端发送的握手完成消息;
响应所述客户端的提示消息,发送目标服务端即将切换到加密环境的提示消息;
响应所述客户端握手完成消息,发送目标服务端握手完成消息,完成和客户端的第二握手信息交换任务。
可以理解的是,客户端握手完成信息是一段由客户端和服务端协商出来的算法和密钥保护的加密消息,目标服务端握手完成消息内也包含一段加密内容由客户端校验。例如客户端发送ChangeCipherSpec消息,该ChangeCipherSpec消息可以理解为客户端发送的提示消息,用以告诉服务端即将切换到加密环境。客户端发送Finished消息,该Finished消息可以理解为客户端握手完成消息。服务端接收到客户端ChangeCipherSpec消息后也发出服务端的ChangeCipherSpec消息,该ChangeCipherSpec消息可以理解为目标服务端的提示消息,用以告诉客户端即将切换到加密环境。服务端接收到客户端Finished消息后,对该Finished消息进行校验,之后发送服务端Finished消息。显而易见的是,服务端Finished消息可以理解为目标服务端握手完成消息。此时,客户端和目标服务端为下一步正式建立基于国密安全套接层协议的加密通信做好了准备工作。
S500:所述客户端和所述目标服务端握手,以便后续进行加密通信;
其中,所述预设的国密信息包括预先在JSSE的协议版本中扩展的国密版本号和预先在JSSE密码套件中扩展的符合国密规范的密码套件。
显而易见的是,客户端和目标服务端握手之后,两者之间便可以开始采用协商的算法和密钥进行加密通信。可以理解的是,预先在JSSE的协议版本中扩展国密版本号,调整JSSE内对SSL协议版本的支持,以支持国密安全套接层协议的版本号。调整后的JSSE目标服务端能够支持基于国密安全套接层协议的通信。
以上为本申请实施例提供的基于JSSE的国密加密通信方法,基于同样的思路,本申请实施例还提供一种基于JSSE的国密加密通信装置100,如图2所示。
一种基于JSSE的国密加密通信装置100,包括:
接收模块11,用于接收客户端的握手请求;
解析模块12,用于通过JSSE目标服务端解析所述握手请求,生成握手信息;
匹配模块13,用于匹配JSSE目标服务端中预设的国密信息和所述握手信息,得到匹配结果;
握手模块14,用于当匹配结果符合国密通信条件时,通过重构的JSSE握手过程逻辑继续进行握手操作,和客户端建立握手关系;
握手完成模块15,用于根据所述握手关系,和所述客户端进行后续加密通信;
其中,所述预设的国密信息包括预先在JSSE的协议版本中扩展的国密版本号和预先在JSSE密码套件中扩展的符合国密规范的密码套件。
这里的基于JSSE的国密加密通信装置的一种具体应用可以理解为一种软件产品。接收模块11、解析模块12、匹配模块13、握手模块14及握手完成模块15的一种具体应用可以理解为可以独立封装的功能函数。
进一步的,在本申请提供的一种优选实施方式中,所述解析模块12,用于通过JSSE目标服务端解析所述握手请求,生成握手信息,具体用于:
调用JSSE目标服务端解析模型;
通过所述服务端解析模型解析所述握手请求,生成握手信息;
其中,所述握手信息包括客户端支持的SSL/TLS协议版本号、支持的密码套件、客户端随机数、会话ID和压缩方法;
客户端支持的SSL/TLS协议版本号包括国密协议版本号;
支持的密码套件包括国密标准支持的密码套件。
进一步的,在本申请提供的一种优选实施方式中,所述匹配模块13,用于匹配JSSE目标服务端中预设的国密信息和所述握手信息,得到匹配结果,具体用于:
调用所述JSSE目标服务端中的匹配算法;
通过匹配算法匹配JSSE目标服务端中预先扩展的国密协议版本号和所述握手信息中支持的协议版本号,生成第一匹配结果;
通过匹配算法匹配JSSE目标服务端中预先扩展的符合国密规范的密码套件和所述握手信息中支持的密码套件,生成第二匹配结果;
根据第一匹配结果和第二匹配结果,得到匹配结果。
进一步的,在本申请提供的一种优选实施方式中,所述匹配模块14,用于当匹配结果符合国密通信条件时,通过重构的JSSE握手过程逻辑继续进行握手操作,和客户端建立握手关系,具体用于:
当匹配结果符合国密通信条件时,根据所述匹配结果和所述握手信息,生成服务端握手确认参数;
向客户端发送服务端握手确认参数;
根据所述服务端确认参数,采用符合国密规范的JSSE握手过程逻辑继续进行握手操作,和客户端建立握手关系;
其中,JSSE握手过程逻辑按照国密规范预先在目标服务端重构。
进一步的,在本申请提供的一种优选实施方式中,所述装置还用于当匹配结果符合国密通信条件时,根据所述匹配结果和所述握手信息,生成服务端握手确认参数,具体用于:
当匹配结果符合国密通信条件时,选定所述握手信息中的国密协议版本号和符合国密规范的密码套件;
提取握手信息中的会话ID和压缩方法;
调取服务端随机数;
组合所述国密协议版本号、服务端随机数、会话ID、压缩方法和密码套件,生成服务端握手确认参数。
进一步的,在本申请提供的一种优选实施方式中,所述装置还用于根据所述服务端确认参数,采用符合国密规范的JSSE握手过程逻辑继续进行握手操作,和客户端建立握手关系,具体用于:
根据所述服务端确认参数,完成和客户端的第一握手信息交换任务;
根据所述第一握手信息和所述握手参数,生成主密钥和会话密钥;
根据重构的JSSE握手过程逻辑,完成和客户端的第二握手信息交换任务;
根据所述第二握手信息,和客户端建立握手关系。
进一步的,在本申请提供的一种优选实施方式中,所述装置还用于根据所述服务端确认参数,完成和客户端的第一握手信息交换任务,具体用于:
根据所述服务端确认参数,向客户端发送目标服务端的证书信息;
所述证书信息发送完之后,向客户端发送第一握手完成信息;
接收客户端响应所述服务端确认参数发送的预主密钥消息,完成和客户端的第一握手信息交换任务。
进一步的,在本申请提供的一种优选实施方式中,所述装置还用于根据重构的JSSE握手过程逻辑,完成和客户端的第二握手信息交换任务,具体用于:
接收客户端发送的即将切换到加密环境的提示消息;
接收客户端发送的握手完成消息;
响应所述客户端的提示消息,发送目标服务端即将切换到加密环境的提示消息;
响应所述客户端握手完成消息,发送目标服务端握手完成消息,完成和客户端的第二握手信息交换任务。
本申请实施例还提供一种存储介质,所述存储介质存储有计算机程序,所述计算机程序被加载后,可以执行以下步骤:
接收客户端的握手请求;
通过JSSE目标服务端解析所述握手请求,生成握手信息;
匹配JSSE目标服务端中预设的国密信息和所述握手信息,得到匹配结果;
当匹配结果符合国密通信条件时,通过重构的JSSE握手过程逻辑继续进行握手操作,和客户端建立握手关系;
所述客户端和所述目标服务端握手,以便后续进行加密通信;
其中,所述预设的国密信息包括预先在JSSE的协议版本中扩展的国密版本号和预先在JSSE密码套件中扩展的符合国密规范的密码套件。
进一步的,在本申请提供的一种实施例中,所述存储介质存储有计算机程序,所述计算机程序被加载后,可以执行以下步骤:
接收客户端的握手请求;
调用JSSE目标服务端解析模型;
通过所述服务端解析模型解析所述握手请求,生成握手信息;
匹配JSSE目标服务端中预设的国密信息和所述握手信息,得到匹配结果;
当匹配结果符合国密通信条件时,通过重构的JSSE握手过程逻辑继续进行握手操作,和客户端建立握手关系;
所述客户端和所述目标服务端握手,以便后续进行加密通信;
其中,所述预设的国密信息包括预先在JSSE的协议版本中扩展的国密版本号和预先在JSSE密码套件中扩展的符合国密规范的密码套件,所述握手信息包括客户端支持的SSL/TLS协议版本号、支持的密码套件、客户端随机数、会话ID和压缩方法,所述客户端支持的SSL/TLS协议版本号包括国密协议版本号,所述支持的密码套件包括国密标准支持的密码套件。
进一步的,在本申请提供的一种实施例中,所述存储介质存储有计算机程序,所述计算机程序被加载后,可以执行以下步骤:
接收客户端的握手请求;
通过JSSE目标服务端解析所述握手请求,生成握手信息;
调用所述JSSE目标服务端中的匹配算法;
通过匹配算法匹配JSSE目标服务端中预先扩展的国密协议版本号和所述握手信息中支持的协议版本号,生成第一匹配结果;
通过匹配算法匹配JSSE目标服务端中预先扩展的符合国密规范的密码套件和所述握手信息中支持的密码套件,生成第二匹配结果;
根据第一匹配结果和第二匹配结果,得到匹配结果。
当匹配结果符合国密通信条件时,通过重构的JSSE握手过程逻辑继续进行握手操作,和客户端建立握手关系;
所述客户端和所述目标服务端握手,以便后续进行加密通信;
其中,所述预设的国密信息包括预先在JSSE的协议版本中扩展的国密版本号和预先在JSSE密码套件中扩展的符合国密规范的密码套件。
进一步的,在本申请提供的一种实施例中,所述存储介质存储有计算机程序,所述计算机程序被加载后,可以执行以下步骤:
接收客户端的握手请求;
通过JSSE目标服务端解析所述握手请求,生成握手信息;
匹配JSSE目标服务端中预设的国密信息和所述握手信息,得到匹配结果;
当匹配结果符合国密通信条件时,根据所述匹配结果和所述握手信息,生成服务端握手确认参数;
向客户端发送服务端握手确认参数;
根据所述服务端确认参数,采用符合国密规范的JSSE握手过程逻辑继续进行握手操作,和客户端建立握手关系;
所述客户端和所述目标服务端握手,以便后续进行加密通信;
其中,所述预设的国密信息包括预先在JSSE的协议版本中扩展的国密版本号和预先在JSSE密码套件中扩展的符合国密规范的密码套件,所述JSSE握手过程逻辑按照国密规范预先在目标服务端重构。
进一步的,在本申请提供的一种实施例中,所述存储介质存储有计算机程序,所述计算机程序被加载后,可以执行以下步骤:
接收客户端的握手请求;
通过JSSE目标服务端解析所述握手请求,生成握手信息;
匹配JSSE目标服务端中预设的国密信息和所述握手信息,得到匹配结果;
当匹配结果符合国密通信条件时,选定所述握手信息中的国密协议版本号和符合国密规范的密码套件;
提取握手信息中的会话ID和压缩方法;
调取服务端随机数;
组合所述国密协议版本号、服务端随机数、会话ID、压缩方法和密码套件,生成服务端握手确认参数;
向客户端发送服务端握手确认参数;
根据所述服务端确认参数,采用符合国密规范的JSSE握手过程逻辑继续进行握手操作,和客户端建立握手关系;
所述客户端和所述目标服务端握手,以便后续进行加密通信;
其中,所述预设的国密信息包括预先在JSSE的协议版本中扩展的国密版本号和预先在JSSE密码套件中扩展的符合国密规范的密码套件,所述JSSE握手过程逻辑按照国密规范预先在目标服务端重构。
进一步的,在本申请提供的一种实施例中,所述存储介质存储有计算机程序,所述计算机程序被加载后,可以执行以下步骤:
接收客户端的握手请求;
通过JSSE目标服务端解析所述握手请求,生成握手信息;
匹配JSSE目标服务端中预设的国密信息和所述握手信息,得到匹配结果;
当匹配结果符合国密通信条件时,根据所述匹配结果和所述握手信息,生成服务端握手确认参数;
向客户端发送服务端握手确认参数;
根据所述服务端确认参数,完成和客户端的第一握手信息交换任务;
根据所述第一握手信息和所述握手参数,生成主密钥和会话密钥;
根据重构的JSSE握手过程逻辑,完成和客户端的第二握手信息交换任务;
根据所述第二握手信息,和客户端建立握手关系;
所述客户端和所述目标服务端握手,以便后续进行加密通信;
其中,所述预设的国密信息包括预先在JSSE的协议版本中扩展的国密版本号和预先在JSSE密码套件中扩展的符合国密规范的密码套件,所述JSSE握手过程逻辑按照国密规范预先在目标服务端重构。
进一步的,在本申请提供的一种实施例中,所述存储介质存储有计算机程序,所述计算机程序被加载后,可以执行以下步骤:
接收客户端的握手请求;
通过JSSE目标服务端解析所述握手请求,生成握手信息;
匹配JSSE目标服务端中预设的国密信息和所述握手信息,得到匹配结果;
当匹配结果符合国密通信条件时,根据所述匹配结果和所述握手信息,生成服务端握手确认参数;
向客户端发送服务端握手确认参数;
根据所述服务端确认参数,向客户端发送目标服务端的证书信息;
所述证书信息发送完之后,向客户端发送第一握手完成信息;
接收客户端响应所述服务端确认参数发送的预主密钥消息,完成和客户端的第一握手信息交换任务;
根据所述第一握手信息和所述握手参数,生成主密钥和会话密钥;
根据重构的JSSE握手过程逻辑,完成和客户端的第二握手信息交换任务;
根据所述第二握手信息,和客户端建立握手关系;
所述客户端和所述目标服务端握手,以便后续进行加密通信;
其中,所述预设的国密信息包括预先在JSSE的协议版本中扩展的国密版本号和预先在JSSE密码套件中扩展的符合国密规范的密码套件,所述JSSE握手过程逻辑按照国密规范预先在目标服务端重构。
进一步的,在本申请提供的一种实施例中,所述存储介质存储有计算机程序,所述计算机程序被加载后,可以执行以下步骤:
接收客户端的握手请求;
通过JSSE目标服务端解析所述握手请求,生成握手信息;
匹配JSSE目标服务端中预设的国密信息和所述握手信息,得到匹配结果;
当匹配结果符合国密通信条件时,根据所述匹配结果和所述握手信息,生成服务端握手确认参数;
向客户端发送服务端握手确认参数;
根据所述服务端确认参数,完成和客户端的第一握手信息交换任务;
根据所述第一握手信息和所述握手参数,生成主密钥和会话密钥;
接收客户端发送的即将切换到加密环境的提示消息;
接收客户端发送的握手完成消息;
响应所述客户端的提示消息,发送目标服务端即将切换到加密环境的提示消息;
响应所述客户端握手完成消息,发送目标服务端握手完成消息,完成和客户端的第二握手信息交换任务;
根据所述第二握手信息,和客户端建立握手关系;
所述客户端和所述目标服务端握手,以便后续进行加密通信;
其中,所述预设的国密信息包括预先在JSSE的协议版本中扩展的国密版本号和预先在JSSE密码套件中扩展的符合国密规范的密码套件,所述JSSE握手过程逻辑按照国密规范预先在目标服务端重构。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (10)

1.一种基于JSSE的国密加密通信方法,其特征在于,包括:
接收客户端的握手请求;
通过JSSE目标服务端解析所述握手请求,生成握手信息;
匹配JSSE目标服务端中预设的国密信息和所述握手信息,得到匹配结果;
当匹配结果符合国密通信条件时,通过重构的JSSE握手过程逻辑继续进行握手操作,和客户端建立握手关系;
所述客户端和所述目标服务端握手,以便后续进行加密通信;
其中,所述预设的国密信息包括预先在JSSE的协议版本中扩展的国密版本号和预先在JSSE密码套件中扩展的符合国密规范的密码套件。
2.根据权利要求1所述的方法,其特征在于,通过JSSE目标服务端解析所述握手请求,生成握手信息,具体包括:
调用JSSE目标服务端解析模型;
通过所述服务端解析模型解析所述握手请求,生成握手信息;
其中,所述握手信息包括客户端支持的SSL/TLS协议版本号、支持的密码套件、客户端随机数、会话ID和压缩方法;
客户端支持的SSL/TLS协议版本号包括国密协议版本号;
支持的密码套件包括国密标准支持的密码套件。
3.根据权利要求1所述的方法,其特征在于,匹配JSSE目标服务端中预设的国密信息和所述握手信息,得到匹配结果,具体包括:
调用所述JSSE目标服务端中的匹配算法;
通过匹配算法匹配JSSE目标服务端中预先扩展的国密协议版本号和所述握手信息中支持的协议版本号,生成第一匹配结果;
通过匹配算法匹配JSSE目标服务端中预先扩展的符合国密规范的密码套件和所述握手信息中支持的密码套件,生成第二匹配结果;
根据第一匹配结果和第二匹配结果,得到匹配结果。
4.根据权利要求1所述的方法,其特征在于,当匹配结果符合国密通信条件时,通过重构的JSSE握手过程逻辑继续进行握手操作,和客户端建立握手关系,具体包括:
当匹配结果符合国密通信条件时,根据所述匹配结果和所述握手信息,生成服务端握手确认参数;
向客户端发送服务端握手确认参数;
根据所述服务端确认参数,采用符合国密规范的JSSE握手过程逻辑继续进行握手操作,和客户端建立握手关系;
其中,JSSE握手过程逻辑按照国密规范预先在目标服务端重构。
5.根据权利要求4所述的方法,其特征在于,当匹配结果符合国密通信条件时,根据所述匹配结果和所述握手信息,生成服务端握手确认参数,具体包括:
当匹配结果符合国密通信条件时,选定所述握手信息中的国密协议版本号和符合国密规范的密码套件;
提取握手信息中的会话ID和压缩方法;
调取服务端随机数;
组合所述国密协议版本号、服务端随机数、会话ID、压缩方法和密码套件,生成服务端握手确认参数。
6.根据权利要求4所述的方法,其特征在于,根据所述服务端确认参数,采用符合国密规范的JSSE握手过程逻辑继续进行握手操作,和客户端建立握手关系,具体包括:
根据所述服务端确认参数,完成和客户端的第一握手信息交换任务;
根据所述第一握手信息和所述握手参数,生成主密钥和会话密钥;
根据重构的JSSE握手过程逻辑,完成和客户端的第二握手信息交换任务;
根据所述第二握手信息,和客户端建立握手关系。
7.根据权利要求6所述的方法,其特征在于,根据所述服务端确认参数,完成和客户端的第一握手信息交换任务,具体包括:
根据所述服务端确认参数,向客户端发送目标服务端的证书信息;
所述证书信息发送完之后,向客户端发送第一握手完成信息;
接收客户端响应所述服务端确认参数发送的预主密钥消息,完成和客户端的第一握手信息交换任务。
8.根据权利要求6所述的方法,其特征在于,根据重构的JSSE握手过程逻辑,完成和客户端的第二握手信息交换任务,具体包括:
接收客户端发送的即将切换到加密环境的提示消息;
接收客户端发送的握手完成消息;
响应所述客户端的提示消息,发送目标服务端即将切换到加密环境的提示消息;
响应所述客户端握手完成消息,发送目标服务端握手完成消息,完成和客户端的第二握手信息交换任务。
9.一种基于JSSE的国密加密通信装置,其特征在于,包括:
接收模块,用于接收客户端的握手请求;
解析模块,用于通过JSSE目标服务端解析所述握手请求,生成握手信息;
匹配模块,用于匹配JSSE目标服务端中预设的国密信息和所述握手信息,得到匹配结果;
握手模块,当匹配结果符合国密通信条件时,通过重构的JSSE握手过程逻辑继续进行握手操作,和客户端建立握手关系;
握手完成模块,用于根据所述握手关系,和所述客户端进行后续加密通信;
其中,所述预设的国密信息包括预先在JSSE的协议版本中扩展的国密版本号和预先在JSSE密码套件中扩展的符合国密规范的密码套件。
10.一种存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序被加载后,可以执行权利要求1至8中任一项所述的方法。
CN202110318921.2A 2021-03-25 2021-03-25 基于jsse的国密加密通信方法及其装置、存储介质 Pending CN113037480A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110318921.2A CN113037480A (zh) 2021-03-25 2021-03-25 基于jsse的国密加密通信方法及其装置、存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110318921.2A CN113037480A (zh) 2021-03-25 2021-03-25 基于jsse的国密加密通信方法及其装置、存储介质

Publications (1)

Publication Number Publication Date
CN113037480A true CN113037480A (zh) 2021-06-25

Family

ID=76473633

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110318921.2A Pending CN113037480A (zh) 2021-03-25 2021-03-25 基于jsse的国密加密通信方法及其装置、存储介质

Country Status (1)

Country Link
CN (1) CN113037480A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113709111A (zh) * 2021-07-28 2021-11-26 杭州迪普科技股份有限公司 连接的建立方法及装置
CN114338844A (zh) * 2021-12-31 2022-04-12 北京升明科技有限公司 一种客户端服务器之间的跨协议通信方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103118027A (zh) * 2013-02-05 2013-05-22 中金金融认证中心有限公司 基于国密算法建立tls通道的方法
CN103338215A (zh) * 2013-07-26 2013-10-02 中金金融认证中心有限公司 基于国密算法建立tls通道的方法
CN106533689A (zh) * 2015-09-15 2017-03-22 阿里巴巴集团控股有限公司 一种在ssl/tls通信中加载数字证书的方法和装置
US9888037B1 (en) * 2015-08-27 2018-02-06 Amazon Technologies, Inc. Cipher suite negotiation
CN109040055A (zh) * 2018-07-30 2018-12-18 美通云动(北京)科技有限公司 使用国产密码实现Web安全访问的方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103118027A (zh) * 2013-02-05 2013-05-22 中金金融认证中心有限公司 基于国密算法建立tls通道的方法
CN103338215A (zh) * 2013-07-26 2013-10-02 中金金融认证中心有限公司 基于国密算法建立tls通道的方法
US9888037B1 (en) * 2015-08-27 2018-02-06 Amazon Technologies, Inc. Cipher suite negotiation
CN106533689A (zh) * 2015-09-15 2017-03-22 阿里巴巴集团控股有限公司 一种在ssl/tls通信中加载数字证书的方法和装置
CN109040055A (zh) * 2018-07-30 2018-12-18 美通云动(北京)科技有限公司 使用国产密码实现Web安全访问的方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113709111A (zh) * 2021-07-28 2021-11-26 杭州迪普科技股份有限公司 连接的建立方法及装置
CN114338844A (zh) * 2021-12-31 2022-04-12 北京升明科技有限公司 一种客户端服务器之间的跨协议通信方法及装置
CN114338844B (zh) * 2021-12-31 2024-04-05 北京升明科技有限公司 一种客户端服务器之间的跨协议通信方法及装置

Similar Documents

Publication Publication Date Title
KR100319256B1 (ko) 통신 프로토콜 운용 방법
US7996358B2 (en) Method for transmitting syncML synchronization data
WO2016107320A1 (zh) 网站安全信息的加载方法和浏览器装置
WO2016107318A1 (zh) 一种安全通信***
JP5411204B2 (ja) 情報処理装置及び情報処理方法
WO2016107322A1 (zh) 安全浏览器的实现方法和安全浏览器装置
CN112714053B (zh) 通信连接方法及装置
CN108768979B (zh) 企业内网访问的方法、用于企业内网访问的装置及其***
WO2022111102A1 (zh) 建立安全连接的方法、***、装置、电子设备和机器可读存储介质
WO2019178942A1 (zh) 一种进行ssl握手的方法和***
CN113037480A (zh) 基于jsse的国密加密通信方法及其装置、存储介质
CN110839240B (zh) 一种建立连接的方法及装置
CN110708304A (zh) 信息处理方法和装置
CN111970109A (zh) 一种数据传输方法及***
CN114553957B (zh) 兼容国密和国际https传输的业务***和方法
CN110690969A (zh) 一种多方协同完成双向ssl/tls认证的方法和***
CN113709111B (zh) 连接的建立方法及装置
CN105471896B (zh) 基于ssl的代理方法、装置及***
CN114390524A (zh) 一键登录业务的实现方法和装置
JP5614465B2 (ja) 暗号通信装置、代行サーバ、暗号通信装置プログラム及び代行サーバプログラム
WO2015104567A1 (en) Secure communication between a server and a client web browser
CN114158046B (zh) 一键登录业务的实现方法和装置
CN112235240B (zh) 一种基于序列号的sip认证方法、装置、设备和介质
CN114390027A (zh) 一种网络通信方法、装置、设备及介质
CN107911214B (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: 20210625

RJ01 Rejection of invention patent application after publication