发明内容
有鉴于此,本发明提供一种客户端服务器之间的跨协议通信方法及装置,主要目的在于利用国密通信适配器将客户端的HTTPS协议与服务器的国密通信协议进行适配,从而使得双方可以成功建立通信并正常进行业务数据交换。
为了达到上述目的,本发明主要提供如下技术方案:
本申请第一方面提供了一种客户端服务器之间的跨协议通信方法,应用于国密通信适配器,所述国密通信适配器至少包含HTTPS协议代理模块、国密协议代理模块和数据交换模块,所述国密通信适配器利用所述HTTPS协议代理模块、所述国密协议代理模块和所述数据交换模块建立客户端和目标服务器之间的数据通信,该方法包括:
当接收到所述客户端向所述目标服务器发起的访问请求时,利用所述HTTPS协议代理模块解析所述访问请求携带的请求参数信息,所述请求参数信息至少包含握手信息和目标服务器的IP地址,且所述客户端支持HTTPS协议所进行的数据通信,所述目标服务器支持国密通信协议所进行的数据通信;
根据所述握手信息,建立所述客户端和所述HTTPS协议代理模块之间的第一握手连接;
根据所述目标服务器IP地址,建立所述国密协议代理模块和所述目标服务器之间的第二握手连接;
根据所述第一握手连接和所述第二握手连接,利用所述数据交换模块将所述访问请求对应的访问信息传递到所述目标服务器。
在本申请第一方面的一些变更实施方式中,所述根据所述第一握手连接和所述第二握手连接,利用所述数据交换模块将所述访问请求对应的访问信息传递到所述目标服务器,包括:
利用所述第一握手连接对应协商的第一加密算法和第一加密密钥、所述第二握手连接对应协商的第二加密算法和第二加密密钥以及所述目标服务器IP地址,配置所述数据交换模块;
根据所述第一握手连接,利用所述数据交换模块接收所述访问请求对应的访问信息,所述访问信息是以所述第一加密算法和所述第一加密密钥执行过加密的报文信息;
根据所述第一加密算法和所述第一加密密钥,利用所述数据交换模块对所述访问信息进行解密,得到所述访问请求对应的报文信息;
根据所述第二加密算法和所述第二加密密钥,利用所述数据交换模块对所述报文信息执行加密,得到目标访问信息;
根据所述目标服务器IP地址,利用所述数据交换模块将所述目标访问信息发送到所述目标服务器。
在本申请第一方面的一些变更实施方式中,所述利用所述第一握手连接对应协商的第一加密算法和第一加密密钥、所述第二握手连接对应协商的第二加密算法和第二加密密钥以及所述目标服务器IP地址,配置所述数据交换模块,包括:
将所述第一加密算法对应的第一函数调用地址,添加到所述数据交换模块,所述第一函数调用地址用于调用所述第一加密算法的执行程序和所述第一加密算法携带的所述第一加密密钥;
将所述第二加密算法对应第二函数调用地址,添加到所述数据交换模块,所述第二函数调用地址用于调用所述第二加密算法的执行程序和所述第二加密算法携带的所述第二加密密钥;
将所述目标服务器IP地址添加到所述数据交换模块;
建立所述第一函数调用地址、所述第二函数调用地址和所述目标服务器IP地址之间的映射关系;
根据所述第一函数调用地址、所述第二函数调用地址、所述目标服务器IP地址和所述映射关系,配置所述数据交换模块。
在本申请第一方面的一些变更实施方式中,所述根据所述目标服务器IP地址,建立所述国密协议代理模块和所述目标服务器之间的第二握手连接,包括:
根据所述目标服务器IP地址,利用所述国密协议代理模块向所述目标服务器发送连接请求;
根据所述连接请求,利用所述国密协议代理模块配置国密加密套件信息,所述国密加密套件信息中至少包含协商的第二加密算法和第二加密密钥;
根据所述第二加密算法和所述第二加密密钥,建立所述国密协议代理模块和所述目标服务器之间的第二握手连接。
在本申请第一方面的一些变更实施方式中,所述根据所述握手信息,建立所述客户端和所述HTTPS协议代理模块之间的第一握手连接,包括:
利用所述HTTPS协议代理模块从所述握手信息中解析出第一SYN消息;
响应于所述第一SYN消息,利用所述HTTPS协议代理模块向所述客户端发送第二SYN消息和第一ACK消息,所述HTTPS协议代理模块是支持HTTPS协议数据通信的功能模块;
当接收到所述客户端发送的第二ACK消息时,建立所述客户端和所述HTTPS协议代理模块之间的第一握手连接,以及得到所述第一握手连接对应协商的第一加密算法。
在本申请第一方面的一些变更实施方式中,在配置所述数据交换模块之后,所述方法还包括:
利用所述HTTPS协议代理模块向所述客户端发送通知消息信息,所述通知消息信息用于通知所述客户端启动发送所述访问请求对应的访问信息操作。
在本申请第一方面的一些变更实施方式中,所述方法还包括:
在所述目标服务器响应于所述访问请求作出响应之后,根据所述第二握手连接,利用所述数据交换模块接收所述响应对应的回复数据信息;
根据所述第一握手连接,利用所述数据交换模块将所述回复数据信息发送到所述客户端。
本申请第二方面提供了一种客户端服务器之间的跨协议通信装置,应用于国密通信适配器,所述国密通信适配器至少包含HTTPS协议代理模块、国密协议代理模块和数据交换模块,所述国密通信适配器利用所述HTTPS协议代理模块、所述国密协议代理模块和所述数据交换模块建立客户端和目标服务器之间的数据通信,该装置包括:
接收单元,用于接收到所述客户端向所述目标服务器发起的访问请求,利用所述HTTPS协议代理模块解析所述访问请求携带的请求参数信息,所述请求参数信息至少包含握手信息和目标服务器的IP地址,所述客户端为支持HTTPS协议所进行的数据通信,所述目标服务器为支持国密通信协议所进行的数据通信;
第一建立单元,用于根据所述握手信息,建立所述客户端和所述HTTPS协议代理模块之间的第一握手连接;
第二建立单元,用于根据所述目标服务器IP地址,建立所述国密协议代理模块和所述目标服务器之间的第二握手连接;
传递单元,用于根据所述第一握手连接和所述第二握手连接,利用所述数据交换模块将所述访问请求对应的访问信息传递到所述目标服务器。
在本申请第二方面的一些变更实施方式中,所述传递单元包括:
配置模块,用于利用所述第一握手连接对应协商的第一加密算法和第一加密密钥、所述第二握手连接对应协商的第二加密算法和第二加密密钥以及所述目标服务器IP地址,配置所述数据交换模块;
接收模块,用于根据所述第一握手连接,利用所述数据交换模块接收所述访问请求对应的访问信息,所述访问信息是以所述第一加密算法和所述第一加密密钥执行过加密的报文信息;
解密模块,用于根据所述第一加密算法和所述第一加密密钥,利用所述数据交换模块对所述访问信息进行解密,得到所述访问请求对应的报文信息;
加密模块,用于根据所述第二加密算法和所述第二加密密钥,利用所述数据交换模块对所述报文信息执行加密,得到目标访问信息;
发送模块,用于根据所述目标服务器IP地址,利用所述数据交换模块将所述目标访问信息发送到所述目标服务器。
在本申请第二方面的一些变更实施方式中,所述配置模块包括:
添加子模块,用于将所述第一加密算法对应的第一函数调用地址,添加到所述数据交换模块,所述第一函数调用地址用于调用所述第一加密算法的执行程序和所述第一加密算法携带的所述第一加密密钥;
所述添加子模块,还用于将所述第二加密算法对应第二函数调用地址,添加到所述数据交换模块,所述第二函数调用地址用于调用所述第二加密算法的执行程序和所述第二加密算法携带的所述第二加密密钥;
所述添加子模块,还用于将所述目标服务器IP地址添加到所述数据交换模块;
建立子模块,用于建立所述第一函数调用地址、所述第二函数调用地址和所述目标服务器IP地址之间的映射关系;
配置子模块,用于根据所述第一函数调用地址、所述第二函数调用地址、所述目标服务器IP地址和所述映射关系,配置所述数据交换模块。
在本申请第二方面的一些变更实施方式中,所述第二建立单元包括:
发送模块,用于根据所述目标服务器IP地址,利用所述国密协议代理模块向所述目标服务器发送连接请求;
配置模块,用于根据所述连接请求,利用所述国密协议代理模块配置国密加密套件信息,所述国密加密套件信息中至少包含协商的第二加密算法和第二加密密钥;
建立模块,用于根据根据所述第二加密算法和所述第二加密密钥,建立所述国密协议代理模块和所述目标服务器之间的第二握手连接。
在本申请第二方面的一些变更实施方式中,所述第一建立单元包括:
解析模块,用于利用所述HTTPS协议代理模块从所述握手信息中解析出第一SYN消息;
发送模块,用于响应于所述第一SYN消息,利用所述HTTPS协议代理模块向所述客户端发送第二SYN消息和第一ACK消息,所述HTTPS协议代理模块是支持HTTPS协议数据通信的功能模块;
建立模块,用于当接收到所述客户端发送的第二ACK消息时,建立所述客户端和所述HTTPS协议代理模块之间的第一握手连接,以及得到所述第一握手连接对应协商的第一加密算法。
在本申请第二方面的一些变更实施方式中,所述传递单元还包括:
所述发送模块,还用于在配置所述数据交换模块之后,利用所述HTTPS协议代理模块向所述客户端发送通知消息信息,所述通知消息信息用于通知所述客户端启动发送所述访问请求对应的访问信息操作。
在本申请第二方面的一些变更实施方式中,所述装置还包括:
所述接收单元,还用于在所述目标服务器响应于所述访问请求作出响应之后,根据所述第二握手连接,利用所述数据交换模块接收所述响应对应的回复数据信息;
发送单元,用于根据所述第一握手连接,利用所述数据交换模块将所述回复数据信息发送到所述客户端。
本申请第三方面提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的客户端服务器之间的跨协议通信方法。
本申请第四方面提供了一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上所述的客户端服务器之间的跨协议通信方法。
借由上述技术方案,本发明提供的技术方案至少具有下列优点:
本发明提供了一种客户端服务器之间的协议通信方法及装置,本发明预先配置了一个国密通信适配器,它至少包含有HTTPS协议代理模块、国密协议代理模块和数据交换模块,那么当支持HTTPS协议的客户端向支持国密通信协议的目标服务器发起访问请求时,就可以利用客户端与HTTPS协议代理模块建立第一握手连接,以及利用国密协议代理模块与目标服务器建立第二握手连接,然后在基于这两个握手连接,利用数据交换模块实现客户端和目标服务器之间的业务数据交换。相较于现有技术,解决了因客户端和目标服务器分别支持的通信协议不同而无法协商可用加密算法导致难以建立通信连接并实现业务数据交换的问题。本发明基于上述的两个握手连接,相当于是利用国密通信适配器实现了客户端到目标服务器之间跨协议连接,将客户端的HTTPS协议与服务器的国密通信协议进行适配,从而使得双方可以成功建立通信并正常进行业务数据交换。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
具体实施方式
下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
本发明实施例提供了一种客户端服务器之间的跨协议通信方法,如图1所示,该方法是利用国密通信适配器实现了客户端和目标服务器之间的跨协议通信,使得双方可以成功建立通信并正常进行业务数据交换,对此本发明实施例提供以下具体步骤:
101、当接收到客户端向目标服务器发起的访问请求时,利用HTTPS协议代理模块解析访问请求携带的请求参数信息。
在本发明实施例中,客户端为支持HTTPS协议所进行的数据通信,目标服务器为支持国密通信协议所进行的数据通信,由于双方无法成功地协商出可用的密码算法的,从而双方建立通信失败。那么本发明实施例采用国密通信适配器实现双方之间跨协议通信的,具体的,本发明实施例例举国密通信适配器的结构示意图,如图2所示,国密通信适配器至少包含HTTPS协议代理模块、国密协议代理模块和数据交换模块,该HTTPS协议代理模块是用于支持HTTPS协议通信的,而国密协议代理模块是用于支持国密协议通信的。
进一步的,对于客户端向目标服务器发送的访问请求,是由国密通信适配器接收的,具体的,为HTTPS协议代理模块接收到该访问请求,那么HTTPS协议代理模块可以进一步解析访问请求携带的请求参数信息,该请求参数信息至少包含握手信息和目标服务器的IP地址,该握手信息用于建立客户端和HTTPS协议代理模块之间的握手连接的,目标服务器IP地址用于指向客户端想要访问的是哪个服务器。
102、根据握手信息,建立客户端和HTTPS协议代理模块之间的第一握手连接。
HTTPS协议对应于网络应用层,TCP协议对应于网络传输层,HTTPS协议是建立在TCP协议基础之上的,那么在本发明实施例中,当客户端发出访问请求(即HTTPS访问请求)时,HTTPS会通过TCP建立起一个客户端到HTTPS协议代理模块的连接通道。具体的,是利用握手信息,采用TCP的三次握手协议,建立了客户端和HTTPS协议代理模块之间的第一握手连接。
需要说明的是,本发明实施例此处采用“第一”以及后续提及的“第二”标识握手连接,主要是方便于区别指代不同的握手连接,词语“第一”和“第二”不存在其他指代先后顺序的含义。
103、根据目标服务器IP地址,建立国密协议代理模块和目标服务器之间的第二握手连接。
在本发明实施例中,根据目标服务器IP地址可以确定客户端想要访问的目标服务器是哪个,那么就可以触发国密协议代理模块向这个目标服务器发送握手请求,具体的,可以采用国密SSL协议协商该握手请求,建立国密代理模块和目标服务器之间的连接通道,得到第二握手连接。
104、根据第一握手连接和第二握手连接,利用数据交换模块将访问请求对应的访问信息传递到目标服务器。
在本发明实施例中,当成功的建立了第一握手连接之后,也就是相当于是协商出了客户端和HTTPS协议代理模块之间数据通信所使用的第一加密算法,以及当成功的建立了第二握手连接之后,也就是相当于协商出了国密代理模块和目标服务器之间的数据通信所使用的第二加密算法。
那么,数据交换模块就可以根据第一握手连接和第二握手连接而获知到两个不同的加密算法,从而当访问请求对应的访问信息传输到数据交换模块时,数据交换模块就可以将访问信息对应的原本的第一加密算法换掉,替换为第二加密算法所加密的数据信息,再将该数据信息传输到目标服务器,从而对于客户端发起访问请求对应的访问信息,利用数据交换模块将该访问信息经客户端传递到目标服务器,从而实现了客户端和目标服务器之间的跨协议通信,而不需要对客户端或目标服务器进行再次开发或修改相关代码以适应两个协议之间转换,本发明实施例给出的方法简单、高效就实现了跨协议的业务数据交换的目的。
以上,本发明实施例提供了一种客户端服务器之间的协议通信方法,本发明实施例预先配置了一个国密通信适配器,它至少包含有HTTPS协议代理模块、国密协议代理模块和数据交换模块,那么当支持HTTPS协议的客户端向支持国密通信协议的目标服务器发起访问请求时,就可以利用客户端与HTTPS协议代理模块建立第一握手连接,以及利用国密协议代理模块与目标服务器建立第二握手连接,然后在基于这两个握手连接,利用数据交换模块实现客户端和目标服务器之间的业务数据交换。相较于现有技术,解决了因客户端和目标服务器分别支持的通信协议不同而无法协商可用加密算法导致难以建立通信连接并实现业务数据交换的问题。本发明实施例基于上述的两个握手连接,相当于是利用国密通信适配器实现了客户端到目标服务器之间跨协议连接,将客户端的HTTPS协议与服务器的国密通信协议进行适配,从而使得双方可以成功建立通信并正常进行业务数据交换。
为了对上述实施例做出更加详细的说明,本发明实施例还提供了另一种客户端服务器之间的协议通信方法,如图3所示,该方法是对上述实施例的细化陈述和补充陈述,对此本发明实施例提供以下具体步骤:
201、当接收到客户端向目标服务器发起的访问请求时,利用HTTPS协议代理模块解析访问请求携带的请求参数信息。
其中,请求参数信息至少包含握手信息和目标服务器的IP地址,客户端为支持HTTPS协议所进行的数据通信,目标服务器为支持国密通信协议所进行的数据通信。
在本发明实施例中,对本步骤解释说明,参见步骤101,此处不再赘述。
202、根据握手信息,建立客户端和HTTPS协议代理模块之间的第一握手连接。
在本发明实施例中HTTPS协议是建立在TCP协议基础之上的,那么在本发明实施例中,当客户端发出访问请求(即HTTPS访问请求)时,HTTPS会通过TCP建立起一个客户端到HTTPS协议代理模块的连接通道,具体的,采用TCP的三次握手协议建立了握手连接,本步骤细化陈述可以包括如下:
首先是,利用HTTPS协议代理模块从握手信息中解析出同步序列编号(Synchronize Sequence Numbers,SYN)消息(即标识为第一SYN消息);其次是,响应于第一SYN消息,利用HTTPS协议代理模块向客户端发送第二SYN消息和确认字符(Acknowledgecharacter,ACK)消息(即标识为第一ACK消息);再者是,当接收到客户端发送的第二ACK消息时,建立客户端和HTTPS协议代理模块之间的第一握手连接。以及在建立握手连接的过程中也会协商出该握手连接对应的支持HTTPS协议传输的加密算法,标识为第一加密算法。
需要说明的是,本发明实施例采用词语“第一”和“第二”标识不同SYN消息以及标识不同的ACK消息,从而方便于区别解释SYN消息或ACK消息是由哪方发出的。
203、根据目标服务器IP地址,建立国密协议代理模块和目标服务器之间的第二握手连接。
在本发明实施例中,本步骤可以进一步细化包括:首先是,根据目标服务器IP地址,利用国密协议代理模块向目标服务器发送连接请求;其次是,根据连接请求,利用国密协议代理模块配置国密加密套件信息,国密加密套件信息中至少包含协商的第二加密算法和第二加密密钥;再者是,根据第二加密算法和第二加密密钥,建立国密协议代理模块和目标服务器之间的第二握手连接。
需要说明的是,该连接请求是用于配置国密加密套件信息,国密加密套件信息中至少包含协商的第二加密算法。具体的,本发明实施例是采用国密SSL协议内的握手协议来实现建立第二握手连接的。
示例性的,握手协议协商的会话包括:
会话标识:有服务端选取的随意的字节序列,用于识别活跃或可恢复的会话;
证书:X.509V3格式的数字证书,符合GM/T0015;
压缩方法:压缩数据的算法;
密码规格:指定的密码算法;
主密钥:客户端和服务端共享的48字节的密钥;
重用标识:标明能否用该会话发起一个新连接的标识;
利用以上数据可以产生安全参数,利用握手协议的重用特性,可以使用相同会话建立多个连接。
对于本发明实施例,通过这个握手协议建立第二握手连接的过程中就可以协商出对应的国密加密算法了,标识为第二加密算法。
204、根据第一握手连接和第二握手连接,利用数据交换模块将访问请求对应的访问信息传递到目标服务器。
在本发明实施例中,本步骤可以进一步细化包括如下:
首先是,利用第一握手连接对应协商的第一加密算法和第一加密密钥、第二握手连接对应协商的第二加密算法和第二加密密钥以及目标服务器IP地址,配置数据交换模块。
其中,配置数据交换模块的具体实施步骤可以包括如下:
第一,将第一加密算法对应的第一函数调用地址,添加到数据交换模块。第一函数调用地址用于调用第一加密算法的执行程序和第一加密算法携带的第一加密密钥。
作为并列步骤,将第二加密算法对应的第二函数调用地址,添加到数据交换模块,第二函数调用地址用于调用第二加密算法的执行程序和第二加密算法携带的第二加密密钥。
作为并列步骤,将目标服务器IP地址添加到数据交换模块。
第二,建立第一函数调用地址、第二函数调用地址和目标服务器IP地址之间的映射关系。
第三,根据第一函数调用地址、第二函数调用地址、目标服务器IP地址和映射关系,配置数据交换模块。
以上总结,在本发明实施例中,配置数据交换模块的操作主要是包括了:将协商的第一加密算法的实现程序和协商的第二加密算法的实现程序(具体为所调用函数地址)配置到数据交换模块运行上下文对象的指定字段中,使得上下文对象持有这些加密算法的调用地址,继而会在后续的客户端和服务器之间的通信过程中进行使用。
进一步的,利用第一加密算法、第二加密算法和目标服务器IP地址预先配置数据交换模块,作用是:让数据交换模块获知客户端与HTTPS协议代理模块之间建立第一握手连接所协商的第一加密算法是什么,以及获知国密协议代理模块和目标服务器之间建立第二握手连接所协商的第二加密算法是什么,以及还需要获知客户端想要访问的目标服务器的IP地址是什么。
其次是,根据第一握手连接,利用数据交换模块接收访问请求对应的访问信息,访问信息是以第一加密算法和第一加密密钥执行过加密的报文信息。
在本发明实施例,具体的,利用HTTPS协议代理模块向客户端发送通知消息信息,通知消息信息用于通知客户端启动发送访问请求对应的访问信息操作。然后,根据第一握手连接,利用数据交换模块接收访问请求对应的访问信息。
进一步的,根据第一加密算法和第一加密密钥,利用数据交换模块对访问信息进行解密,得到访问请求对应的报文信息。
以及,根据第二加密算法和第二加密密钥,利用数据交换模块对报文信息执行加密,得到目标访问信息,根据目标服务器IP地址,利用数据交换模块将目标访问信息发送到目标服务器。
需要说明的是,对于数据交换模块采用第一加密算法和第二加密算法的处理过程,这相当于是将从客户端接收到访问信息所对应的第一加密算法所执行的加密换掉,替换成由第二加密算法所执行的加密,继而相当于是利用国密通信适配器作为中间处理媒介,间接地确定了客户端和目标服务器之间可用的第一加密算法和第二加密算法,那么基于这两种可用加密算法,间接地实现了客户端和目标服务器之间的跨协议通信,实现了业务数据可以在客户端和目标服务器之间双发的交换了。
205、在目标服务器响应于访问请求作出响应之后,根据第二握手连接,利用数据交换模块接收响应对应的回复数据信息。
206、根据第一握手连接,利用数据交换模块将回复数据信息发送到客户端。
在本发明实施例中,对于客户端发起的访问请求,可以用于建立客户端和目标服务器之间的一次会话,那么对于该会话,除了由步骤204实现的客户端经由数据交换模块向目标服务器传递的访问信息之外,作为对访问请求的响应,目标服务器也可以经由数据交换模块向客户端反馈回复数据信息。
具体的,实施过程如步骤205-206,对于该访问请求,实现的会话是基于第一握手连接和第二握手连接实现的,那么对于回复数据信息的传递过程,就可以基于第二握手连接以及协商的第二加密算法,将回复数据信息加密并经由目标服务器传递到数据交换模块,以及在数据交换模块上将回复数据信息对应的第二加密算法替换为第一加密算法,得到由第一加密算法加密的回复数据信息,根据第一握手连接,数据交换模块将回复数据信息发送到客户端。以上,从而利用国密通信适配器也实现了由目标服务器向客户端的跨协议的业务数据交换。
进一步的,作为对上述图1、图3所示方法的实现,本发明实施例提供了一种客户端服务器之间的跨协议通信装置。该装置实施例与前述方法实施例对应,为便于阅读,本装置实施例不再对前述方法实施例中的细节内容进行逐一赘述,但应当明确,本实施例中的装置能够对应实现前述方法实施例中的全部内容。该装置应用于实现客户端和目标服务器之间跨协议的业务数据交换,具体如图4所示,该装置包括:
接收单元31,用于接收到客户端向目标服务器发起的访问请求,利用HTTPS协议代理模块解析所述访问请求携带的请求参数信息,所述请求参数信息至少包含握手信息和目标服务器的IP地址,所述客户端支持HTTPS协议所进行的数据通信,所述目标服务器支持国密通信协议所进行的数据通信;
第一建立单元32,用于根据所述握手信息,建立所述客户端和所述HTTPS协议代理模块之间的第一握手连接;
第二建立单元33,用于根据所述目标服务器IP地址,建立国密协议代理模块和所述目标服务器之间的第二握手连接;
传递单元34,用于根据所述第一握手连接和所述第二握手连接,利用所述数据交换模块将所述访问请求对应的访问信息传递到所述目标服务器。
进一步的,如图5所示,所述传递单元34包括:
配置模块341,用于利用所述第一握手连接对应协商的第一加密算法和第一加密密钥、所述第二握手连接对应协商的第二加密算法和第二加密密钥以及所述目标服务器IP地址,配置所述数据交换模块;
接收模块342,用于根据所述第一握手连接,利用所述数据交换模块接收所述访问请求对应的访问信息,所述访问信息是以所述第一加密算法和所述第一加密密钥执行过加密的报文信息;
解密模块343,用于根据所述第一加密算法和所述第一加密密钥,利用所述数据交换模块对所述访问信息进行解密,得到所述访问请求对应的报文信息;
加密模块344,用于根据所述第二加密算法和所述第二加密密钥,利用所述数据交换模块对所述报文信息执行加密,得到目标访问信息;
发送模块345,用于根据所述目标服务器IP地址,利用所述数据交换模块将所述目标访问信息发送到所述目标服务器。
进一步的,如图5所示,所述配置模块341包括:
添加子模块3411,用于将所述第一加密算法对应的第一函数调用地址,添加到所述数据交换模块,所述第一函数调用地址用于调用所述第一加密算法的执行程序和所述第一加密算法携带的所述第一加密密钥;
所述添加子模块3411,还用于将所述第二加密算法对应第二函数调用地址,添加到所述数据交换模块,所述第二函数调用地址用于调用所述第二加密算法的执行程序和所述第二加密算法携带的所述第二加密密钥;
所述添加子模块3411,还用于将所述目标服务器IP地址添加到所述数据交换模块;
建立子模块3412,用于建立所述第一函数调用地址、所述第二函数调用地址和所述目标服务器IP地址之间的映射关系;
配置子模块3413,用于根据所述第一函数调用地址、所述第二函数调用地址、所述目标服务器IP地址和所述映射关系,配置所述数据交换模块。
进一步的,如图5所示,所述第二建立单元33包括:
发送模块331,用于根据所述目标服务器IP地址,利用所述国密协议代理模块向所述目标服务器发送连接请求;
配置模块332,用于根据所述连接请求,利用所述国密协议代理模块配置国密加密套件信息,所述国密加密套件信息中至少包含协商的第二加密算法和第二加密密钥;
建立模块333,用于根据所述第二加密算法和所述第二加密密钥,建立所述国密协议代理模块和所述目标服务器之间的第二握手连接。
进一步的,如图5所示,所述第一建立单元32包括:
解析模块321,用于利用所述HTTPS协议代理模块从所述握手信息中解析出第一SYN消息;
发送模块322,用于响应于所述第一SYN消息,利用所述HTTPS协议代理模块向所述客户端发送第二SYN消息和第一ACK消息,所述HTTPS协议代理模块是支持HTTPS协议数据通信的功能模块;
建立模块323,用于当接收到所述客户端发送的第二ACK消息时,建立所述客户端和所述HTTPS协议代理模块之间的第一握手连接,以及得到所述第一握手连接对应协商的第一加密算法。
进一步的,如图5所示,所述传递单元34还包括:
所述发送模块345,还用于在配置所述数据交换模块之后,利用所述HTTPS协议代理模块向所述客户端发送通知消息信息,所述通知消息信息用于通知所述客户端启动发送所述访问请求对应的访问信息操作。
进一步的,如图5所示,所述装置还包括:
所述接收单元31,还用于在所述目标服务器响应于所述访问请求作出响应之后,根据所述第二握手连接,利用所述数据交换模块接收所述响应对应的回复数据信息;
发送单元35,用于根据所述第一握手连接,利用所述数据交换模块将所述回复数据信息发送到所述客户端
综上所述,本发明实施例提供了一种客户端服务器之间的协议通信方法及装置,本发明实施例预先配置了一个国密通信适配器,它至少包含有HTTPS协议代理模块、国密协议代理模块和数据交换模块,那么当支持HTTPS协议的客户端向支持国密通信协议的目标服务器发起访问请求时,就可以利用客户端与HTTPS协议代理模块建立第一握手连接,以及利用国密协议代理模块与目标服务器建立第二握手连接,然后在基于这两个握手连接,利用数据交换模块实现客户端和目标服务器之间的业务数据交换。相较于现有技术,解决了因客户端和目标服务器分别支持的通信协议不同而无法协商可用加密算法导致难以建立通信连接并实现业务数据交换的问题。本发明实施例基于上述的两个握手连接,相当于是利用国密通信适配器实现了客户端到目标服务器之间跨协议连接,将客户端的HTTPS协议与服务器的国密通信协议进行适配,从而使得双方可以成功建立通信并正常进行业务数据交换。
所述客户端服务器之间的协议通信装置包括处理器和存储器,上述接收单元、增广处理单元和保存单元等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数利用国密通信适配器将客户端的HTTPS协议与服务器的国密通信协议进行适配,从而使得双方可以成功建立通信并正常进行业务数据交换。
本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的客户端服务器之间的协议通信方法。
本发明实施例提供了一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上所述的客户端服务器之间的协议通信方法。
本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
在一个典型的配置中,设备包括一个或多个处理器(CPU)、存储器和总线。设备还可以包括输入/输出接口、网络接口等。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、***或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同***、改进等,均应包含在本申请的权利要求范围之内。