一种基于代理与反向代理实现国密算法通信的方法及系统技术方案

技术编号:35008516 阅读:23 留言:0更新日期:2022-09-21 14:59
本发明专利技术公开了一种基于代理与反向代理实现国密算法通信的方法及系统,采用的国密通信代理方案为国密通信的实现与部署提供了极大的方便,原有的程序基本上无需进行代码调整即可实现国密算法通信,新程序的开发也不需要考虑该所选编程语言是否可以实现国密通信以及实现国密通信的难易度,只需考虑业务逻辑的实现用何种编程语言最为合适,这样就可以简少国密通信程序的开发工作量、解偶程序、降低程序开发难度。开发难度。开发难度。

【技术实现步骤摘要】
一种基于代理与反向代理实现国密算法通信的方法及系统


[0001]本专利技术涉及数据安全与通信安全
,具体涉及一种基于代理与反向代理实现国密算法通信的方法及系统。

技术介绍

[0002]信息安全已上升到国家安全的战略地位,数据安全作为信息安全的重要组成部分,如何保障数据的传输安全是重要目标之一;而加密算法是数据传输安全的核心,需要自主、安全的加密算法来保障。
[0003]国密算法是国家商用密码算法的简称,自2012年以来,国家密码管理局以《中华人民共和国密码行业标准》的方式,陆续公布了SM2/SM3/SM4等密码算法标准及其应用规范。通过应用国密算法,来降低弱密码和错误实现带来的安全风险。支持国密算法,提供符合国密规范的数据加密、安全通信是保证通信安全的重要手段。
[0004]随着国密算法的应用与普及,在数据安全与通信安全领域越来越多应用将需要使用国密算法来通信。然而在应用程序开发时,可能会根据业务需求选择合适的编程语言,不同的编程语言实现国密算法通信的差异较大、难度不同,开发的不可控风险也就变大。同时,还有不少的应用程序已经完成项目开发,并运行稳定,在这些已部署、运行稳定的应用中来实现国密算法通信还需要再次开发。

技术实现思路

[0005]为此,本专利技术提供一种基于代理与反向代理实现国密算法通信的方法及系统,以解决不同的编程语言实现国密算法通信的差异较大、难度不同,开发的不可控风险也就变大,在已部署、运行稳定的应用中来实现国密算法通信还需要再次开发的技术难题。
[0006]为了实现上述目的,本专利技术提供如下技术方案:
[0007]根据本专利技术实施例的第一方面,提出了一种基于代理与反向代理实现国密算法通信的方法,所述方法包括:
[0008]通过代理方式实现客户端与服务端的国密算法通信,所述代理方式包括正向代理和反向代理;
[0009]所述正向代理是通过代理服务器代理客户端程序向服务端发起请求,从而实现与服务端的数据交互;反向代理则是通过代理服务器代理服务端程序接收来自客户端请求,实现与客户端的数据交互。
[0010]进一步地,所述方法还包括:
[0011]当采用反向代理方式时,代理服务器接收到客户端的国密通信请求后,与之创建加密通信通道,然后将接收到的数据进行解密,再将解密后的原始数据提交给服务端,同时从服务端获得响应数据后,对数据进行加密,通过已创建的国密通信通道返回给外部的客户端程序来实现国密通信。
[0012]进一步地,所述方法还包括:
[0013]当采用正向代理方式时,客户端将请求以非加密方式提交给代理服务器,代理服务器接收到请求后,与服务端创建国密通信安全通道,然后接收到的原始数据调用国密算法加密后通过已创建的安全通道提交给服务端,并将收到的加密数据调用国密算法解密后,再将响应原始数据返回给客户端实现国密通信。
[0014]进一步地,所述方法还包括:
[0015]将国密通信代理应用在不同开发语言编写的程序上,被代理程序只需要完成业务逻辑的处理,国密通信交给代理程序完成。
[0016]进一步地,所述代理服务器包括Nginx。
[0017]进一步地,所述方法还包括:
[0018]调用开源的SSL软件库TASSL来实现安全通信。
[0019]进一步地,所述方法还包括:
[0020]nginx程序基于模块化开发,客户端的安全请求通信上下文在ngx_event_openssl.c中的ngx_ssl_create()函数中创建,只需要将原有的OpenSSL的TLS_client_method()修改成TASSL的CNTLS_client_method()函数就完成客户端创建国密通信通道的代码调整。
[0021]进一步地,所述方法还包括:
[0022]Nginx的证书加载在ngx_event_openssl.c中的ngx_ssl_certificates()与ngx_ssl_certificate()函数据实现,此处同样需要调整为TASSL证书加载逻辑,实现从nginx配置文件中分别加载签名证书与加密证书,在TASSL中使用certificates_enc与certificate_enc_keys来加密证书,SSL_CTX_use_certificate_file与SSL_CTX_use_enc_PrivateKey来应用加密证书,原证书处理函数用来加载与使用签名证书。
[0023]进一步地,所述方法还包括:
[0024]反向代理服务端程序的支持密钥算法在nginx.conf配置文件进行配置限定,用来限定客户端通信能够采用的加密算法集合。
[0025]根据本专利技术实施例的第二方面,提出了一种基于代理与反向代理实现国密算法通信的系统,所述系统包括客户端、服务端以及代理服务器;
[0026]所述代理服务器用于通过代理方式实现客户端与服务端的国密算法通信,所述代理方式包括正向代理和反向代理;所述正向代理是通过代理服务器代理客户端程序向服务端发起请求,从而实现与服务端的数据交互;反向代理则是通过代理服务器代理服务端程序接收来自客户端请求,实现与客户端的数据交互。
[0027]本专利技术具有如下优点:
[0028]本专利技术提出的一种基于代理与反向代理实现国密算法通信的方法及系统,采用的国密通信代理方案为国密通信的实现与部署提供了极大的方便,原有的程序基本上无需进行代码调整即可实现国密算法通信,新程序的开发也不需要考虑该所选编程语言是否可以实现国密通信以及实现国密通信的难易度,只需考虑业务逻辑的实现用何种编程语言最为合适,这样就可以简少国密通信程序的开发工作量、解偶程序、降低程序开发难度。
附图说明
[0029]为了更清楚地说明本专利技术的实施方式或现有技术中的技术方案,下面将对实施方
式或现有技术描述中所需要使用的附图作简单地介绍。显而易见地,下面描述中的附图仅仅是示例性的,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图引伸获得其它的实施附图。
[0030]图1为本专利技术实施例1提供的一种基于代理与反向代理实现国密算法通信的方法的示意图;
[0031]图2为本专利技术实施例1提供的一种基于代理与反向代理实现国密算法通信的方法中安全通信步骤示意图。
具体实施方式
[0032]以下由特定的具体实施例说明本专利技术的实施方式,熟悉此技术的人士可由本说明书所揭露的内容轻易地了解本专利技术的其他优点及功效,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0033]实施例1
[0034]如图1所示,本实施例提出了一种基于代理与反向代理实现国密算法通信的方法,所述方法包括:
[0035]通过代理方式实现客户端与服务端的国密算法通信,所述代理方式包括正向代理和本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于代理与反向代理实现国密算法通信的方法,其特征在于,所述方法包括:通过代理方式实现客户端与服务端的国密算法通信,所述代理方式包括正向代理和反向代理;所述正向代理是通过代理服务器代理客户端程序向服务端发起请求,从而实现与服务端的数据交互;反向代理则是通过代理服务器代理服务端程序接收来自客户端请求,实现与客户端的数据交互。2.根据权利要求1所述的一种基于代理与反向代理实现国密算法通信的方法,其特征在于,所述方法还包括:当采用反向代理方式时,代理服务器接收到客户端的国密通信请求后,与之创建加密通信通道,然后将接收到的数据进行解密,再将解密后的原始数据提交给服务端,同时从服务端获得响应数据后,对数据进行加密,通过已创建的国密通信通道返回给外部的客户端程序来实现国密通信。3.根据权利要求1所述的一种基于代理与反向代理实现国密算法通信的方法,其特征在于,所述方法还包括:当采用正向代理方式时,客户端将请求以非加密方式提交给代理服务器,代理服务器接收到请求后,与服务端创建国密通信安全通道,然后接收到的原始数据调用国密算法加密后通过已创建的安全通道提交给服务端,并将收到的加密数据调用国密算法解密后,再将响应原始数据返回给客户端实现国密通信。4.根据权利要求1所述的一种基于代理与反向代理实现国密算法通信的方法,其特征在于,所述方法还包括:将国密通信代理应用在不同开发语言编写的程序上,被代理程序只需要完成业务逻辑的处理,国密通信交给代理程序完成。5.根据权利要求1所述的一种基于代理与反向代理实现国密算法通信的方法,其特征在于,所述代理服务器包括Nginx。6.根据权利要求5所述的一种基于代理与反向代理实现国密算法通信的方法,其特征在于,所述方法还包括:调用开源的SSL软件库TASSL来实现安全通信。7.根据权利要求6所述的一种基于代理与反向代理实现国密算法通信的方法,其特...

【专利技术属性】
技术研发人员:刘龙强陈国芳
申请(专利权)人:北京鼎普科技股份有限公司
类型:发明
国别省市:

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

1