一种国密SSL通信代理模块及其非侵入式改造系统的方法技术方案

技术编号:35265208 阅读:27 留言:0更新日期:2022-10-19 10:26
本申请提供一种国密SSL通信代理模块,包括代理连接模块和数据处理模块;所述代理连接模块用于监听固定端口接收到的通讯数据,建立连接池,所述通讯数据通过连接池中的连接进行传输;所述连接池中包括系统内部模块与国密SSL通信代理模块之间形成的HTTP连接,以及外部服务器与国密SSL通信代理模块之间形成的国密SSL连接;所述HTTP接收模块能够根据系统内部模块发来的HTTP数据获得与对应外部服务器的SSL连接;所述国密SSL发送模块用于通过所述SSL连接将加密后的HTTP数据发送给对应的外部服务器;所述国密SSL接收模块能够根据外部服务器发来的国密SSL数据,所述HTTP发送模块用于将解密后的国密SSL数据发送给对应的系统内部模块。本申请方便快捷的实现了国密SSL通讯功能。功能。功能。

【技术实现步骤摘要】
一种国密SSL通信代理模块及其非侵入式改造系统的方法


[0001]本申请涉及支持国密SSL通信改造系统领域,尤其是指一种支持国密SSL通信的非侵入式改造系统及其方法。

技术介绍

[0002]现有技术中,当前支持国密SSL通信逐渐成为国内信息安全产品的强制要求,各类信息安全产品不可避免地面临一个如何以最小代价改造现有系统支持国密SSL通信的问题。对现有系统改造普遍面临两个难点:一是由于历史原因,多数厂商的产品使用了开源软件或者商业软件,面临没有源码(主要是那些采用了第三方商业软件的信息安全产品)或者授权许可限制(包括GPL、Apache、BSD等);二是由于系统架构的复杂性,涉及到支持国密SSL通信改造的模块多,改造成本大。
[0003]为支持国密SSL通信,当前各厂商普遍采用的侵入式的改造方案,也就是需要的已有模块进行改造。这种方案的优点是代码执行效率相对较高,适合对代码执行效率高的场合,缺点是改造周期长,且存在因私自改造侵犯知识产权的风险。
[0004]例如,CN03151410.3的专利申请提出一种通过独立硬件设备作为代理网关,实现从客户端到代理网关SSL通信,代理网关到Web服务器HTTP通信的方法,虽然也有非侵入式效果,但是需要独立的硬件设备实现,成本高,没有以软件形态集成到被改造系统内部。

技术实现思路

[0005]为解决上述问题,本申请提供一种国密SSL通信代理模块,包括代理连接模块和数据处理模块;
[0006]其中,所述代理连接模块用于监听固定端口接收到的通讯数据,同时建立连接池,所述通讯数据通过连接池中的连接进行传输;
[0007]其中,接收到的通讯数据包括系统内部模块发送的HTTP数据和外部服务器发送的国密SSL数据;
[0008]所述连接池中包括系统内部模块与国密SSL通信代理模块之间形成的HTTP连接,以及外部服务器与国密SSL通信代理模块之间形成的国密SSL连接;
[0009]所述代理连接模块将接收到的通讯数据发送给数据处理模块,
[0010]所述数据处理模块包括判断模块和执行模块;
[0011]其中,所述判断模块用于判断对接收到的通讯数据所使用的执行模块;其中,所述执行模块包括数据发送模块和数据接收模块;
[0012]其中所述数据发送模块包括HTTP接收模块和国密SSL发送模块,其中,所述HTTP接收模块能够根据系统内部模块发来的HTTP数据获得与对应外部服务器的SSL连接;所述国密SSL发送模块用于通过所述SSL连接将加密后的HTTP数据发送给对应的外部服务器;
[0013]所述数据接收模块包括国密SSL接收模块和HTTP发送模块;其中,所述国密SSL接收模块能够根据外部服务器发来的国密SSL数据,获得与对应的系统内部模块的HTTP连接,
所述HTTP发送模块用于将解密后的国密SSL数据发送给对应的系统内部模块。
[0014]其中,优选的,所述连接池中存储有HTTP数据中的套接字以及国密SSL连接的BIO字段,以所述套接字表示系统内部模块与国密SSL通信代理模块之间形成的HTTP连接,以所述BIO字段表示外部服务器与国密SSL通信代理模块之间形成的国密SSL连接。
[0015]本申请提供一种使用上述的国密SSL通信代理模块对系统进行非侵入式改造的方法,包括:
[0016]S10,国密SSL通信代理模块监听并接收固定端口的通讯数据,获得通讯数据的数据源和数据目标,同时创建连接池,将HTTP数据通过连接池中的连接进行传输;
[0017]当数据源为系统内部模块,数据目标为外部服务器时,进入数据发送步骤S21;
[0018]数据发送步骤S21包括HTTP接收步骤S211和国密SSL发送步骤S212;
[0019]其中,HTTP接收步骤S211包括:由系统内部模块发出的明文数据通过系统内部模块与国密SSL通信代理模块之间的HTTP连接发送到国密SSL通信代理模块,将所述HTTP连接保存在连接池中;
[0020]根据HTTP数据的套接字获得数据目标所在的外部服务器,检查连接池中是否存在国密SSL通信代理模块与所述外部服务器之间的国密SSL连接;
[0021]若存在,则进入国密SSL发送步骤S212;
[0022]若不存在,则建立国密SSL通信代理模块与数据目标所在的外部服务器之间的国密SSL连接,并保存在连接池中;再进入国密SSL发送步骤S212;
[0023]国密SSL发送步骤S212包括:通过国密SSL连接将加密后的HTTP数据通过国密SSL连接发送到对应的外部服务器;
[0024]当数据源为外部服务器,数据目标为系统内部模块时,进入数据接收步骤S22;
[0025]所述数据接收步骤S22包括国密SSL接收步骤S221和HTTP发送步骤S222;
[0026]国密SSL接收步骤S221包括:由外部服务器发出的加密数据通过国密SSL通信代理模块与外部服务器之间的国密SSL连接,发送到国密SSL通信代理模块,将所述国密SSL连接保存在连接池中;
[0027]根据国密SSL数据的BIO字段,获得数据目标所在的系统内部模块,建立所述系统内部模块与国密SSL通信代理模块之间的HTTP连接;进入HTTP发送步骤S222;
[0028]HTTP发送步骤S222包括:通过系统内部模块与国密SSL通信代理模块之间的HTTP连接,国密SSL通信代理模块将解密后的明文数据发送到对应的系统内部模块上。
[0029]其中,在步骤S10中,国密SSL通信代理模块接收到通讯数据时,创建对应的epoll事件,其中,所述epoll事件的事件类型包括EPOLLIN和EPOLLOUT;
[0030]当epoll事件使用国密SSL通信代理模块与系统内部模块之间的HTTP连接进行传输时,epoll事件标记为SOCK;在epoll事件使用国密SSL通信代理模块与外部服务器之间的国密SSL连接进行传输时,epoll事件标记为SSL。
[0031]其中,在HTTP接收步骤S211中,当国密SSL通信代理模块建立与外部服务器之间的国密SSL连接时,将国密SSL连接的epoll类型设置为EPOLLOUT;
[0032]在国密SSL发送步骤S212中,当国密SSL通信代理模块通过国密SSL连接向外部服务器发送数据时,设置对应的HTTP连接和国密SSL连接的epoll类型都设置为EPOLLIN;
[0033]在国密SSL接收步骤S221中,当国密SSL通信代理模块获得由国密SSL连接发来的
国密SSL数据并获得对应的HTTP连接后,设置对应的HTTP连接和国密SSL连接的epoll类型都为EPOLLOUT;
[0034]在HTTP发送步骤S222中,当国密SSL通信代理模块向系统内部模块发送数据时,设置对应的HTTP连接和国密SSL连接的epoll类型都为EPOLLIN。
[0035]其中,当epol本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种国密SSL通信代理模块,其特征在于,包括代理连接模块和数据处理模块;其中,所述代理连接模块用于监听固定端口接收到的通讯数据,同时建立连接池,所述通讯数据通过连接池中的连接进行传输;其中,接收到的通讯数据包括系统内部模块发送的HTTP数据和外部服务器发送的国密SSL数据;所述连接池中包括系统内部模块与国密SSL通信代理模块之间形成的HTTP连接,以及外部服务器与国密SSL通信代理模块之间形成的国密SSL连接;所述代理连接模块将接收到的通讯数据发送给数据处理模块,所述数据处理模块包括判断模块和执行模块;其中,所述判断模块用于判断对接收到的通讯数据所使用的执行模块;其中,所述执行模块包括数据发送模块和数据接收模块;其中所述数据发送模块包括HTTP接收模块和国密SSL发送模块,其中,所述HTTP接收模块能够根据系统内部模块发来的HTTP数据获得与对应外部服务器的SSL连接;所述国密SSL发送模块用于通过所述SSL连接将加密后的HTTP数据发送给对应的外部服务器;所述数据接收模块包括国密SSL接收模块和HTTP发送模块;其中,所述国密SSL接收模块能够根据外部服务器发来的国密SSL数据,获得与对应的系统内部模块的HTTP连接,所述HTTP发送模块用于将解密后的国密SSL数据发送给对应的系统内部模块。2.如权利要求1所述的国密SSL通信代理模块,其特征在于,所述连接池中存储有HTTP数据中的套接字以及国密SSL连接的BIO字段,以所述套接字表示系统内部模块与国密SSL通信代理模块之间形成的HTTP连接,以所述BIO字段表示外部服务器与国密SSL通信代理模块之间形成的国密SSL连接。3.一种使用如权利要求1或2所述的国密SSL通信代理模块对系统进行非侵入式改造的方法,其特征在于,包括:S10,国密SSL通信代理模块监听并接收固定端口的通讯数据,获得通讯数据的数据源和数据目标,同时创建连接池,将HTTP数据通过连接池中的连接进行传输;当数据源为系统内部模块,数据目标为外部服务器时,进入数据发送步骤S21;数据发送步骤S21包括HTTP接收步骤S211和国密SSL发送步骤S212;其中,HTTP接收步骤S211包括:由系统内部模块发出的明文数据通过系统内部模块与国密SSL通信代理模块之间的HTTP连接发送到国密SSL通信代理模块,将所述HTTP连接保存在连接池中;根据HTTP数据的套接字获得数据目标所在的外部服务器,检查连接池中是否存在国密SSL通信代理模块与所述外部服务器之间的国密SSL连接;若存在,则进入国密SSL发送步骤S212;若不存在,则建立国密SSL通信代理模块与数据目标所在的外部服务器之间的国密SSL连接,并保存在连接池中;再进入国密SSL发送步骤S212;国密SSL发送步骤S212包括:通过国密SSL连接将加密后的HTTP数据...

【专利技术属性】
技术研发人员:孙振鹏刘超柏宗梅王然柴忠王飞黄晓东
申请(专利权)人:北京网御星云信息技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1