数据代理方法、装置、设备及存储介质转让专利

申请号 : CN201911351815.3

文献号 : CN111131455B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 何海生

申请人 : 深信服科技股份有限公司

摘要 :

本发明公开了一种数据代理方法、装置、设备及存储介质,通过获取当前代理连接业务中目标处理数据的非对称上下文信息;对所述非对称上下文信息进行打包,获得目标数据包;将所述目标数据包发送给目标运算端,以使所述目标运算端对所述目标数据包进行处理,能够进行CPU消耗转移,提升SSL代理性能的效果,可以节约成本开支,还能把空置资源充分利用。

权利要求 :

1.一种数据代理方法,其特征在于,所述数据代理方法包括:获取当前代理连接业务中目标处理数据的非对称上下文信息;

对分离处理函数和所述非对称上下文信息进行加密并打包生成目标数据包,所述分离处理函数为不参与本地运算的处理函数;

将传递数据相同的上下文参数从所述非对称上下文信息中提取出,并生成目标上下文信息;

对所述目标上下文信息和所述分离处理函数进行序列化,获得序列化结果;

根据预设摘要值将列出的所述上下文参数进行标记,并将标记后的上下文参数并入所述序列化结果中,生成新的序列化结果;

根据预设对称密钥将所述新的序列化结果进行加密并打包生成目标数据包;

将所述目标数据包发送给目标运算端,以使所述目标运算端对所述目标数据包进行处理。

2.如权利要求1所述的数据代理方法,其特征在于,所述获取当前代理连接业务中目标处理数据的非对称上下文信息,包括:获取当前代理连接业务的目标CPU数据;

根据所述目标CPU数据获取当前代理连接业务中目标处理数据的非对称上下文信息。

3.如权利要求2所述的数据代理方法,其特征在于,所述根据所述目标CPU数据获取当前代理连接业务中目标处理数据的非对称上下文信息,包括:根据预设消耗阈值与所述目标CPU数据确定所述当前代理连接业务中安全套接层中间代理交互过程的目标处理数据;

从所述目标处理数据中获得非对称上下文信息。

4.如权利要求1所述的数据代理方法,其特征在于,所述将所述目标数据包发送给目标运算端,以使所述目标运算端对所述目标数据包进行处理,包括:根据预设配置参数将所述目标处理数据的处理函数替换为分离处理函数;

对所述分离处理函数和所述非对称上下文信息进行加密并打包生成目标数据包;

根据预设分离异步引擎将所述目标数据包发送给目标运算端,以使所述目标运算端对所述目标数据包进行处理并生成运算结果。

5.如权利要求4所述的数据代理方法,其特征在于,所述根据预设分离异步引擎将所述目标数据包发送给目标运算端,以使所述目标运算端对所述目标数据包进行处理并生成运算结果,包括:

根据预设分离异步引擎将所述目标数据包发送给目标运算端,以使所述目标运算端调用预设开源软件库的预设运算函数对所述目标数据包进行运算,并生成运算结果。

6.如权利要求5所述的数据代理方法,其特征在于,所述根据预设分离异步引擎将所述目标数据包发送给目标运算端,以使所述目标运算端调用预设开源软件库的预设运算函数对所述目标数据包进行运算,并生成运算结果之前,所述数据代理方法还包括:根据预设安装脚本对各运算端进行安装部署,并在各运算端中设置主控节点和多个计算节点,建立所述主控节点与各计算节点之间的连接;

通过预设分离异步引擎利用预设对称秘钥对所述目标数据包进行反序列化,并生成反序列化结果;

若所述反序列化结果中存在参数摘要值,则根据所述参数摘要值获得对应的当前缓存参数;

根据所述当前缓存参数获得所述计算节点的当前CPU数据和内存资源,并根据所述当前CPU数据和所述内存资源从各计算节点中挑选出不超过预设资源阈值的运算端节点作为目标运算端。

7.如权利要求4所述的数据代理方法,其特征在于,所述将所述目标数据包发送给目标运算端,以使所述目标运算端对所述目标数据包进行处理之后,所述数据代理方法还包括:将所述当前代理连接业务挂起;

若接收到所述目标运算端反馈的运算结果,则调用所述当前代理连接业务的预设处理逻辑对所述运算结果进行逻辑处理。

8.如权利要求7所述的数据代理方法,其特征在于,所述若接收到所述目标运算端反馈的运算结果,则调用所述当前代理连接业务的预设处理逻辑对所述运算结果进行逻辑处理,包括:

若接收所述目标运算端反馈的运算结果,则对所述运算结果进行解密;

若检测到所述运算结果为运算失败,则利用本地CPU重新运算所述目标数据包,并获得本地运算结果;

若检测到所述运算结果为运算成功,则根据目标协程唤醒目标任务,并获得异地运算结果;

调用所述当前代理连接业务的预设处理逻辑对所述本地运算结果或所述异地运算结果进行逻辑处理。

9.如权利要求7所述的数据代理方法,其特征在于,所述将所述当前代理连接业务挂起之前,所述数据代理方法还包括:对预设分离异步引擎进行初始化,以使所述预设分离异步引擎与进行安全套接层中间代理操作的安全套接层中间人代理端匹配。

10.如权利要求9所述的数据代理方法,其特征在于,所述对预设分离异步引擎进行初始化,包括:

获取预设运算端配置参数和地址信息;

根据安全套接层协议连接到目标运算端,根据所述预设运算端配置参数和地址信息进行所述目标运算端的接入认证;

若完成所述目标运算端的接入认证,则发送请求命令至所述目标运算端;

若接收到所述目标运算端反馈的系统常规信息,则保持与所述目标运算端的当前连接。

11.一种数据代理装置,其特征在于,所述数据代理装置包括:数据获取模块,用于获取当前代理连接业务中目标处理数据的非对称上下文信息;

打包模块,用于对分离处理函数和所述非对称上下文信息进行加密并打包生成目标数据包,所述分离处理函数为不参与本地运算的处理函数;

处理模块,用于将所述目标数据包发送给目标运算端,以使所述目标运算端对所述目标数据包进行处理;

所述打包模块,还用于将传递数据相同的上下文参数从所述非对称上下文信息中提取出,并生成目标上下文信息;对所述目标上下文信息和所述分离处理函数进行序列化,获得序列化结果;根据预设摘要值将列出的所述上下文参数进行标记,并将标记后的上下文参数并入所述序列化结果中,生成新的序列化结果;根据预设对称密钥将所述新的序列化结果进行加密并打包生成目标数据包。

12.一种数据代理设备,其特征在于,所述数据代理设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的数据代理程序,所述数据代理程序配置为实现如权利要求1‑10中任一项所述的数据代理方法的步骤。

13.一种存储介质,其特征在于,所述存储介质上存储有数据代理程序,所述数据代理程序被处理器执行时实现如权利要求1‑10中任一项所述的数据代理方法的步骤。

说明书 :

数据代理方法、装置、设备及存储介质

技术领域

[0001] 本发明涉及计算机安全领域,尤其涉及一种数据代理方法、装置、设备及存储介质。

背景技术

[0002] 安全套接层(Secure Sockets Layer,SSL)中间人代理,主要是为了解决企业单位对安全套接字层上的超文本传输协议(Hyper Text Transfer Protocol over Secure 
Socket Layer,HTTPS)、简单邮件传输协议(Simple Mail Transfer Protocol,SMTP)、因特
网信息访问协议(Internet Message Access Protocol,IAMP)等数据的审计和控制,防止
内部机密信息泄露,以及后续对泄密人员的追溯,由于SSL中间人代理使用了SSL/传输层安
全性协议(Transport Layer Security,TLS),而这些协议都需要先进行秘钥协商,最终使
用协商后的对称秘钥进行数据加密从而达到保护用户数据安全的目的;在整个SSL协议交
互的过程中,秘钥协商需要使用非对称秘钥来进行签名和校验,例如常用的非对称加密算
法(Rivest Shamir Adleman,RSA)、数字签名算法(Digital Signature Algorithm,DSA)、
被广泛应用于数字签名的加密算法(Elliptic Curve Digital Signature Algorithm,
ECDSA)等,而这些算法在运算过程中需要消耗大量的中央处理器(Central Processing 
Unit,CPU)资源;通过对一个完整的SSL短连接进行性能抽样,90%的CPU资源都消耗在秘钥
协商过程中非对称秘钥的签名、校验中,这也是当前业界所公认的结果;在当前互联网对用
户数据安全越来越重视的大前提下,HTTPS流量在国外可高达70%以上,在国内也在50%左
右并且有快速上涨趋势;因此,SSL中间人代理所面临的性能挑战会越来越严峻,低价高效
的优化方法势在必行;
[0003] 目前业界内SSL中间人加速的常规方案有如下缺点:
[0004] 1、不做任何优化的SSL中间人代理,一旦开启该功能,设备流量吞吐直接下降80%以上;
[0005] 2、设备可通过增加硬件解密卡的方式来提高运算性能,但由于硬件卡的成本很高,提高了设备的整体价格,对于中小企业来说难以接受;同时,硬件解密卡只能负责部分
秘钥算法的运算,不能有效释放本地的CPU资源;
[0006] 3、可购买单独的SSL解密设备,然后把所有的SSL流量全部引流到这台解密设备上,解密完成后再把数据传输回需要做审计控制的设备上处理,同样客户成本也会增加,而
且也会增加网络部署的复杂度,引入新的故障点。

发明内容

[0007] 本发明的主要目的在于提供一种数据代理方法、装置、设备及存储介质,旨在解决现有技术中SSL中间人加速不能有效释放本地的CPU资源,会增加网络部署的复杂度、客户
成本和新的故障的技术问题。
[0008] 为实现上述目的,本发明提供一种数据代理方法,所述数据代理方法包括以下步骤:
[0009] 获取当前代理连接业务中目标处理数据的非对称上下文信息;
[0010] 对所述非对称上下文信息进行打包,获得目标数据包;
[0011] 将所述目标数据包发送给目标运算端,以使所述目标运算端对所述目标数据包进行处理。
[0012] 优选地,所述获取当前代理连接业务中目标处理数据的非对称上下文信息,包括:
[0013] 获取当前代理连接业务的目标CPU数据;
[0014] 根据所述目标CPU数据获取当前代理连接业务中目标处理数据的非对称上下文信息。
[0015] 优选地,所述根据所述目标CPU数据获取当前代理连接业务中目标处理数据的非对称上下文信息,包括:
[0016] 根据预设消耗阈值与所述目标CPU数据确定所述当前代理连接业务中安全套接层中间代理交互过程的目标处理数据;
[0017] 从所述目标处理数据中获得非对称上下文信息。
[0018] 优选地,所述将所述目标数据包发送给目标运算端,以使所述目标运算端对所述目标数据包进行处理,包括:
[0019] 根据预设配置参数将所述目标处理数据的处理函数替换为分离处理函数,所述分离处理函数为不参与本地运算的处理函数;
[0020] 对所述分离处理函数和所述非对称上下文信息进行加密并打包生成目标数据包;
[0021] 根据预设分离异步引擎将所述目标数据包发送给目标运算端,以使所述目标运算端对所述目标数据包进行处理并生成运算结果。
[0022] 优选地,所述对所述分离处理函数和所述非对称上下文信息进行加密并打包生成目标数据包,包括:
[0023] 获取所述目标处理数据对应的非对称上下文信息;
[0024] 将所述非对称上下文信息和所述分离处理函数进行序列化,获得序列化结果;
[0025] 根据预设对称密钥将所述序列化结果进行加密并打包生成目标数据包。
[0026] 优选地,所述将所述非对称上下文信息和所述分离处理函数进行序列化,获得序列化结果,包括:
[0027] 将传递数据相同的上下文参数从所述非对称上下文信息中提取出,并生成目标上下文信息;
[0028] 对所述目标上下文信息和所述分离处理函数进行序列化,获得序列化结果;
[0029] 根据预设摘要值将列出的所述上下文参数进行标记,并将标记后的上下文参数并入所述序列化结果中,生成新的序列化结果。
[0030] 优选地,所述根据预设分离异步引擎将所述目标数据包发送给目标运算端,以使所述目标运算端对所述目标数据包进行处理并生成运算结果,包括:
[0031] 根据预设分离异步引擎将所述目标数据包发送给目标运算端,以使所述目标运算端调用预设开源软件库的预设运算函数对所述目标数据包进行运算,并生成运算结果。
[0032] 优选地,所述根据预设分离异步引擎将所述目标数据包发送给目标运算端,以使所述目标运算端调用预设开源软件库的预设运算函数对所述目标数据包进行运算,并生成
运算结果之前,所述数据代理方法还包括:
[0033] 根据预设安装脚本对各运算端进行安装部署,并在各运算端中设置主控节点和多个计算节点,建立所述主控节点与各计算节点之间的连接;
[0034] 通过预设分离异步引擎利用预设对称秘钥对所述目标数据包进行反序列化,并生成反序列化结果;
[0035] 若所述反序列化结果中存在参数摘要值,则根据所述参数摘要值获得对应的当前缓存参数;
[0036] 根据所述当前缓存参数获得所述计算节点的当前CPU数据和内存资源,并根据所述当前CPU数据和所述内存资源从各计算节点中挑选出不超过预设资源阈值的运算端节点
作为目标运算端。
[0037] 优选地,所述将所述目标数据包发送给目标运算端,以使所述目标运算端对所述目标数据包进行处理之后,所述数据代理方法还包括:
[0038] 将所述当前代理连接业务挂起;
[0039] 若接收到所述目标运算端反馈的运算结果,则调用所述当前代理连接业务的预设处理逻辑对所述运算结果进行逻辑处理。
[0040] 优选地,所述若接收到所述目标运算端反馈的运算结果,则调用所述当前代理连接业务的预设处理逻辑对所述运算结果进行逻辑处理,包括:
[0041] 若接收所述目标运算端反馈的运算结果,则对所述运算结果进行解密;
[0042] 若检测到所述运算结果为运算失败,则利用本地CPU重新运算所述目标数据包,并获得本地运算结果;
[0043] 若检测到所述运算结果为运算成功,则根据所述目标协程唤醒所述目标任务,并获得异地运算结果;
[0044] 调用所述当前代理连接业务的预设处理逻辑对所述本地运算结果或所述异地运算结果进行逻辑处理。
[0045] 优选地,所述将所述当前代理连接业务挂起之前,所述数据代理方法还包括:
[0046] 对预设分离异步引擎进行初始化,以使所述预设分离异步引擎与进行安全套接层中间代理操作的安全套接层中间人代理端匹配。
[0047] 优选地,所述对预设分离异步引擎进行初始化,包括:
[0048] 获取预设运算端配置参数和地址信息;
[0049] 根据安全套接层协议连接到目标运算端,根据所述预设目标运算端配置参数和地址信息进行所述目标运算端的接入认证;
[0050] 若完成所述目标运算端的接入认证,则发送请求命令至所述目标运算端;
[0051] 若接收到所述目标运算端反馈的系统常规信息,则保持与所述目标运算端的当前连接。
[0052] 此外,为实现上述目的,本发明还提出一种数据代理设备,所述数据代理设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的数据代理程序,所述
数据代理程序配置为实现如上文所述的数据代理方法的步骤。
[0053] 此外,为实现上述目的,本发明还提出一种存储介质,所述存储介质上存储有数据代理程序,所述数据代理程序被处理器执行时实现如上文所述的数据代理方法的步骤。
[0054] 此外,为实现上述目的,本发明还提供一种数据代理装置,所述数据代理装置包括:
[0055] 数据获取模块,用于获取当前代理连接业务中目标处理数据的非对称上下文信息;
[0056] 打包模块,用于对所述非对称上下文信息进行打包,获得目标数据包;
[0057] 处理模块,用于将所述目标数据包发送给目标运算端,以使所述目标运算端对所述目标数据包进行处理。
[0058] 本发明提出的数据代理方法,通过获取当前代理连接业务中目标处理数据的非对称上下文信息;对所述非对称上下文信息进行打包,获得目标数据包;将所述目标数据包发
送给目标运算端,以使所述目标运算端对所述目标数据包进行处理,能够进行CPU消耗转
移,提升SSL代理性能的效果,可以节约成本开支,还能把空置资源充分利用。

附图说明

[0059] 图1为本发明实施例方案涉及的硬件运行环境的数据代理设备结构示意图;
[0060] 图2为本发明数据代理方法第一实施例的流程示意图;
[0061] 图3为本发明数据代理方法第二实施例的流程示意图;
[0062] 图4为本实施例数据代理方法中间代理流程图;
[0063] 图5为本发明数据代理方法第三实施例的流程示意图;
[0064] 图6为本发明数据代理方法第四实施例的流程示意图;
[0065] 图7为本发明数据代理装置第一实施例的功能模块图;
[0066] 图8为本发明数据代理装置第二实施例的功能模块图;
[0067] 图9为本发明数据代理装置第三实施例的功能模块图。
[0068] 本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

[0069] 应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0070] 本发明实施例的解决方案主要是:本发明通过获取当前代理连接业务中目标处理数据的非对称上下文信息;对所述非对称上下文信息进行打包,获得目标数据包;将所述目
标数据包发送给目标运算端,以使所述目标运算端对所述目标数据包进行处理,能够进行
CPU消耗转移,提升SSL代理性能的效果,可以节约成本开支,还能把空置资源充分利用,解
决了现有技术中SSL中间人加速不能有效释放本地的CPU资源,会增加网络部署的复杂度、
客户成本和新的故障的技术问题。
[0071] 参照图1,图1为本发明实施例方案涉及的硬件运行环境的数据代理设备结构示意图。
[0072] 如图1所示,该数据代理设备可以包括:处理器1001,例如中央处理器(Central Processing Unit,CPU),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,
通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括标准的有线接
口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真
(WIreless‑FIdelity,WI‑FI)接口)。存储器1005可以是高速的随机存取存储器(Random 
Access Memory,RAM)存储器,也可以是稳定的存储器(Non‑volatile Memory,NVM),例如磁
盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
[0073] 本领域技术人员可以理解,图1中示出的数据代理设备结构并不构成对该数据代理设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布
置。
[0074] 如图1所示,作为一种存储介质的存储器1005中可以包括操作装置、网络通信模块、用户端接口模块以及数据代理程序。
[0075] 本发明数据代理设备通过处理器1001调用存储器1005中存储的数据代理程序,并执行本申请实施例提供的数据代理方法对应的步骤。
[0076] 基于上述硬件结构,提出本发明数据代理方法实施例。
[0077] 参照图2,图2为本发明数据代理方法第一实施例的流程示意图。
[0078] 在第一实施例中,所述数据代理方法包括以下步骤:
[0079] 步骤S10、获取当前代理连接业务中目标处理数据的非对称上下文信息。
[0080] 需要说明的是,所述当前代理连接业务为当前正在进行的代理连接业务,所述目标处理数据为所述当前代理连接业务过程中产生的相关处理数据,所述非对称上下文信息
为从所述目标处理数据筛选出来的非对称计算上下文对应的信息。
[0081] 进一步地,所述步骤S10具体包括以下步骤:
[0082] 获取当前代理连接业务的目标CPU数据;
[0083] 根据所述目标CPU数据获取当前代理连接业务中目标处理数据的非对称上下文信息。
[0084] 需要说明的是,安全套接层中间代理交互过程中会产生对应的CPU消耗数据,在整个SSL协议交互的过程中,秘钥协商需要使用非对称秘钥来进行签名和校验,例如常用的
RSA、DSA、ECDSA等,而这些算法在运算过程中需要消耗大量的CPU资源;一般可以通过对一
个完整的SSL短连接进行性能抽样,获取目标CPU数据。
[0085] 进一步地,所述步骤根据所述目标CPU数据获取当前代理连接业务中目标处理数据的非对称上下文信息包括以下步骤:
[0086] 根据预设消耗阈值与所述目标CPU数据确定所述当前代理连接业务中安全套接层中间代理交互过程的目标处理数据;
[0087] 从所述目标处理数据中获得非对称上下文信息。
[0088] 可以理解的是,所述目标CPU数据为当前代理连接业务中安全套接层中间代理交互过程产生的CPU消耗数据,当然也可以通过其他方式获取目标CPU数据,本实施例对此不
加以限制;所述预设消耗阈值为预先设置的用于判断CPU消耗数据高低的阈值,通过所述预
设消耗阈值可以将所述目标CPU数据超过所述预设消耗阈值对应的运算部分作为目标处理
数据,进而可以获得与所述目标处理数据对应的非对称上下文信息。
[0089] 步骤S20、对所述非对称上下文信息进行打包,获得目标数据包。
[0090] 可以理解的是,通过对所述非对称上下文信息进行打包,获得对应的目标数据包,可以提高原设备整体SSL代理吞吐的效果。
[0091] 步骤S30、将所述目标数据包发送给目标运算端,以使所述目标运算端对所述目标数据包进行处理。
[0092] 应当理解的是,通过对所述非对称上下文信息进行打包,可以将所述目标数据包发送给目标运算端,进而可以通过目标运算端对所述目标数据包进行处理,即通过所述目
标运算端对所述目标数据包中的相关数据进行计算,获得相应的计算结果。
[0093] 本实施例通过上述方案,通过获取当前代理连接业务中目标处理数据的非对称上下文信息;对所述非对称上下文信息进行打包,获得目标数据包;将所述目标数据包发送给
目标运算端,以使所述目标运算端对所述目标数据包进行处理,能够进行CPU消耗转移,提
升SSL代理性能的效果,可以节约成本开支,还能把空置资源充分利用。
[0094] 进一步地,图3为本发明数据代理方法第二实施例的流程示意图,如图3所示,基于第一实施例提出本发明数据代理方法第二实施例,在本实施例中,所述步骤S30包括以下步
骤:
[0095] 步骤S31、根据预设配置参数将所述目标处理数据的处理函数替换为分离处理函数,所述分离处理函数为不参与本地运算的处理函数。
[0096] 需要说明的是,所述预设配置参数为预先设置的配置参数,通过所述预设配置参数可以将所述目标处理数据中的处理函数替换为不直接进行处理的分离处理函数。
[0097] 在具体实现中,可以依照OPENSSL提供的引擎开发方式,在程序初始化时,根据用户配置,把需要进行算法分离的处理函数替换为分离处理函数,所述分离处理函数为不参
与本地运算的处理函数,例如RSA_sign、RSA_verify等函数替换为RSA_sign_remote、RSA_
verify_remote,替换方式通过OPENSSL提供的函数替换接口实现。
[0098] 步骤S32、对所述分离处理函数和所述非对称上下文信息进行加密并打包生成目标数据包。
[0099] 可以理解的是,通过对所述分离处理函数和所述非对称上下文信息进行加密并打包生成目标数据包,能够为后续目标运算端的运算提供方便,且确保信息安全。
[0100] 进一步地,所述步骤S32具体包括以下步骤:
[0101] 获取所述目标处理数据对应的非对称上下文信息;
[0102] 将所述非对称上下文信息和所述分离处理函数进行序列化,获得序列化结果;
[0103] 根据预设对称密钥将所述序列化结果进行加密并打包生成目标数据包。
[0104] 需要说明的是,所述预设对称密钥为预先设置的用于对序列化结果进行加密的密钥,通过对所述非对称上下文信息和所述分离处理函数进行序列化,可以降低CPU的消耗,
减少目标运算端的运算量,通过将序列化结果进行加密打包生成目标数据包,能够加快运
算转移的过程,缩减运算时间,提高了SSL协议处理的速度和效率。
[0105] 进一步地,所述步骤所述非对称上下文信息和所述分离处理函数进行序列化,获得序列化结果,包括以下步骤:
[0106] 将传递数据相同的上下文参数从所述非对称上下文信息中提取出,并生成目标上下文信息;
[0107] 对所述目标上下文信息和所述分离处理函数进行序列化,获得序列化结果;
[0108] 根据预设摘要值将列出的所述上下文参数进行标记,并将标记后的上下文参数并入所述序列化结果中,生成新的序列化结果。
[0109] 可以理解的是,通过将传递数据相同的上下文参数单独提取出,生成对应的目标上下文信息能够进一步提高SSL协议处理的速度和效率,避免每次传递不变的上下文参数
进行不必要的序列化处理,减少了后续运算的运算量;所述预设摘要值为预先设置的摘要
值,用于对所述上下文参数进行标记,从而可以在目标数据包生成时,直接纳入进去,即将
标记后的上下文参数并入所述序列化结果中。
[0110] 在具体实现中,参见图4,图4为本实施例数据代理方法中间代理流程图,图4中用户通过检测设备连接网关,网关连接着服务器,用户与网关之间通过SSL‑MITM与网关相连,
即通过安全套接层SSL进行当前代理连接业务,被攻击者完全控制的通讯的两端(Man In 
The Middle attack,MITM)(MITM在密码学和处理机安全领域中是指攻击者与通讯的两端
分别创建独立的联系,并交换其所收到的数据,使通讯的两端认为他们正在通过一个私密
的连接与对方直接对话,但事实上整个会话都被攻击者完全控制)代理程序接受到一个新
的连接后,SSL‑MITM通过RSA、DSA及ECDSA等算法通过把需要进行算法分离的处理函数替换
为分离处理函数,与算法运算端(Remote Algorithm Decrypt,RAD)引擎建立连接,算法运
算端引擎与算法运算端主机相连,所述算法运算端主机用于对运算端资源进行分发调度,
并记录各运算端的负载情况,所述算法运算端主机下发多个运算端电脑,每个运算端电脑
可以进行不同加密算法的加密和解密过程;相应的,所述算法运算端引擎对应有引擎核心,
所述算法运算端主机对应有运算端核心,所述运算端电脑对应有电脑核心,所述引擎核心
与所述运算端核心之间通过交互通道互相传输数据,所述运算端核心与所述电脑核心之间
通过交互通道互相传输数据。
[0111] 在做SSL协议协商过程中,一旦OPENSSL(一个开放源代码的软件库包,应用程序可以使用这个包来进行安全通信,避免窃听,同时确认另一端连线者的身份,其主要库是以C
语言所写成,实现了基本的加密功能,实现了SSL与TLS协议)握手逻辑里调用了步骤1中已
替换的处理函数时,新的函数不再直接进行本地运算,而是把所有运算所需要的参数以及
整个函数调用的上下文进行保存,生成一个和这个连接对应的任务job,这里的参数就是密
码学函数的输入,根据步骤1中替换的运算函数的不同会有不同的参数;然后把算法需要的
上下文信息、参数进行序列化,再使用步骤1中获取到的高级加密标准(Advanced 
Encryption Standard,AES)对称秘钥进行加密打包;其中,参数的序列化包括了秘钥、向量
的序列化,也就是把C语言的数据类型转化为可以用于网络传输的字符串格式而不丢失任
何信息的一种常用方式,序列号后的字符串可以通过反序列化还原为原来的C语言数据类
型;如果运算端是由第三方提供并且是商业化的,这里就需要对序列化打包进行优化,这是
由于序列化后包的大小直接影响到网络带宽的使用,需要尽可能降低数据包大小来降低带
宽成本;经过对算法上下文的详细分析可知,有部分参数(例如私钥大数结构体),每一次传
递都是一样的,通过对每个算法进行详细的分析后可以获得这部分不变的参数,接着在每
次需要序列化时先不把这部分加入序列化,而是加入一个4字节的摘要值;运算端在反序列
化把网络传输过来的字符串数据还原为C语言的数据结构后,优先提取这个摘要值,从本地
缓存查询如果存在那么直接获取并进行处理,如果不存在那么发起一个更新参数请求,代
理端收到请求后重新把这些参数序列化后传输给运算端,运算端接收到后进行缓存并把摘
要值作为哈希值;优化前,序列化后的数据包大小平均为1260字节左右,优化后数据包只有
250字节左右,节约了80%的传输带宽,大大降低带宽成本。
[0112] 步骤S33、根据预设分离异步引擎将所述目标数据包发送给目标运算端,以使所述目标运算端对所述目标数据包进行处理并生成运算结果。
[0113] 可以理解的是,通过所述预设分离异步引擎将所述目标数据包发送给目标运算端,进而使目标运算端对所述目标数据包进行处理处理,进而生成相应的运算结果。
[0114] 进一步地,所述步骤S33具体包括以下步骤:
[0115] 根据预设分离异步引擎将所述目标数据包发送给目标运算端,以使所述目标运算端调用预设开源软件库的预设运算函数对所述目标数据包进行运算,并生成运算结果。
[0116] 应当理解的是,所述预设分离异步引擎主要作用于SSL中间人代理端,负责把SSL协议处理过程中CPU高消耗的运算进行截获,替换原始的运算函数,然后把算法上下文进行
打包发送给算法运算端处理,所述预设开源软件库为预先设置的开放源代码的软件库包,
应用程序可以使用这个包来进行安全通信,避免窃听,同时确认另一端连线者的身份,其主
要库是以C语言所写成,实现了基本的加密功能,实现了SSL与TLS协议;通过所述预设开源
软件库中的预设运算函数可对所述目标数据包进行运算进而生成运算结果。
[0117] 在具体实现中,所述目标运算端会通过协商的AES对称秘钥进行解密,接着对数据包进行反序列化,如果存在参数摘要值,那么先根据摘要值查找当前的缓存是否存在对应
的参数;如果参数不存在,那么需要向用户反馈一个参数请求信息,当前已序列化后的数据
先临时存放起来直到参数请求回复;在算法上下文信息都齐全后,主控节点会根据处理节
点当前的CPU、内存资源来选择一个低负载的节点,把算法运算请求交给节点进行处理;处
理节点在收到运算请求后,调用OPENSSL库的运算函数进行处理,运算完成后把结果反馈给
主控节点,主控节点在接受到处理节点的运算结果后,通过步骤1的AES对称秘钥进行加密
并返回给用户;至此,一个完整的用户处理请求就结束了;当然还可以有其他扩展功能,例
如,针对商用运算端,可增加用户解密次数、接入时长、解密流量等功能,并根据这些统计信
息进行计费,本实施例对此不加以限制。
[0118] 进一步地,所述步骤根据预设分离异步引擎将所述目标数据包发送给目标运算端,以使所述目标运算端调用预设开源软件库的预设运算函数对所述目标数据包进行运
算,并生成运算结果之前,所述数据代理方法还包括以下步骤:
[0119] 根据预设安装脚本对各运算端进行安装部署,并在各运算端中设置主控节点和多个计算节点,建立所述主控节点与各计算节点之间的连接;
[0120] 通过预设分离异步引擎利用预设对称秘钥对所述目标数据包进行反序列化,并生成反序列化结果;
[0121] 若所述反序列化结果中存在参数摘要值,则根据所述参数摘要值获得对应的当前缓存参数;
[0122] 根据所述当前缓存参数获得所述计算节点的当前CPU数据和内存资源,并根据所述当前CPU数据和所述内存资源从各计算节点中挑选出不超过预设资源阈值的运算端节点
作为目标运算端。
[0123] 需要说明的是,所述预设安装脚本为预先设置的用于部署安装运算端的脚本,通过所述预设安装脚本可以对各运算端进行安装部署,可以理解为整个运算端程序为一个通
用的Linux程序安装包,通过执行安装脚本即可一键安装部署;部署后,还需要进行简单的
配置,设置当前节点是主控节点还是计算节点,如果配置为计算节点还需要填写主控节点
的IP信息,即在各运算端中设置主控节点和多个计算节点,建立所述主控节点与各计算节
点之间的连接。
[0124] 在具体实现中,建立所述主控节点与各计算节点之间的连接后,然后开始接受来自用户的请求,如果当前接入用户尚未认证,那么需要对用户名和密码进行校验,认证功能
多用于商用运算端场景;首次接入后,运算端会反馈当前的CPU资源、内存资源以及后续传
输计算数据的AES对称秘钥,接受到一个用户运算请求后,先通过协商的AES对称秘钥进行
解密,接着对数据包进行反序列化,如果存在参数摘要值,那么先根据摘要值查找当前的缓
存是否存在对应的参数;如果参数不存在,那么需要向用户反馈一个参数请求信息,当前已
序列化后的数据先临时存放起来直到参数请求回复,若所述反序列化结果中存在参数摘要
值,则根据所述参数摘要值获得对应的当前缓存参数;根据所述当前缓存参数获得所述计
算节点的当前CPU数据和内存资源,并根据所述当前CPU数据和所述内存资源从各计算节点
中挑选出不超过预设资源阈值的运算端节点作为目标运算端。
[0125] 本实施例通过上述方案,通过预设配置参数将所述目标运算部分的计算函数替换为分离计算函数,所述分离计算函数为不参与本地运算的计算函数;对所述分离计算函数
和所述非对称上下文信息进行加密并打包生成目标数据包;从预设运算端节点信息列表中
挑选出当前负载最低或当前延迟最低的运算端节点作为目标运算端;根据预设分离异步引
擎将所述目标数据包发送给目标运算端,以使所述目标运算端对所述目标数据包进行运算
并生成运算结果,能够加快运算转移的过程,缩减运算时间,提高了SSL协议处理的速度和
效率。
[0126] 进一步地,图5为本发明数据代理方法第三实施例的流程示意图,如图5所示,基于第一实施例提出本发明数据代理方法第三实施例,在本实施例中,所述步骤S30之后,所述
数据代理方法还包括以下步骤:
[0127] 步骤S40、将所述当前代理连接业务挂起。
[0128] 需要说明的是,通过将当前代理连接业务挂起可以等结果反馈回来后重新调用当前连接的处理逻辑,使得处理流程能够还原并继续下去,从而达到运算转移、节约本地CPU
资源的效果,一般的可以在检测到所述目标数据包发送成功后,将所述当前代理连接业务
的目标任务保存,并将所述目标任务通过目标协程挂起。
[0129] 步骤S50、若接收到所述目标运算端反馈的运算结果,则调用所述当前代理连接业务的预设处理逻辑对所述运算结果进行逻辑处理。
[0130] 可以理解的是,若接收到所述目标运算端反馈的运算结果,这可以调用预先设置的预设处理逻辑对所述运算结果进行逻辑处理,不同的运算结果对应不同的逻辑处理流
程。
[0131] 进一步地,所述步骤S50具体包括以下步骤:
[0132] 若接收所述目标运算端反馈的运算结果,则对所述运算结果进行解密;
[0133] 若检测到所述运算结果为运算失败,则利用本地CPU重新运算所述目标数据包,并获得本地运算结果;
[0134] 若检测到所述运算结果为运算成功,则根据所述目标协程唤醒所述目标任务,并获得异地运算结果;
[0135] 调用所述当前代理连接业务的预设处理逻辑对所述本地运算结果或所述异地运算结果进行逻辑处理。
[0136] 需要说明的是,在接收到运算结果后,会对所述运算结果进行解密,根据解密结果可以得到相应的运算结果,若运算失败,则利用本地CPU重新运算所述目标数据包,并获得
本地运算结果;若运算成功,则根据所述目标协程唤醒所述目标任务,并获得异地运算结
果;然后调用所述当前代理连接业务的预设处理逻辑对所述本地运算结果或所述异地运算
结果进行逻辑处理;在实际操作中,一般通过对称秘钥进行解密,读取结果数据找到对应的
job,如果运算结果失败,那么会重新使用当前CPU来运算得到结果,如果成功那么直接通过
协程来唤醒挂起的连接,进行后续的SSL流程,唤醒后的SSL连接正常交互,直到连接正常关
闭,至此一个连接的完整处理过程结束。
[0137] 在具体实现中,所述目标运算端主要是负责把用户传输过来的序列化数据包进行解密并反序列化,然后通过本地处理节点的CPU或者硬件资源进行高强度的算法运算,最后
把处理结果加密后返回给对应的用户;运算端可以是一台独立的处理机,也可以由一个处
理机集群组成,可以是闲置的处理资源,也可以由企业构建并商业化;如果作为商业化来构
建,不仅可以充分利用CPU资源,还可以增加常用的硬件解密卡,最大化压榨解密卡性能。
[0138] 本实施例通过上述方案,通过将所述当前代理连接业务挂起;若接收到所述目标运算端反馈的运算结果,则调用所述当前代理连接业务的预设处理逻辑对所述运算结果进
行逻辑处理,能够进行CPU消耗转移,提升SSL代理性能的效果,可以节约成本开支,还能把
空置资源充分利用。
[0139] 进一步地,图6为本发明数据代理方法第四实施例的流程示意图,如图6所示,基于第三实施例提出本发明数据代理方法第四实施例,在本实施例中,所述步骤S40之前,所述
数据代理方法还包括以下步骤:
[0140] 步骤S401、对预设分离异步引擎进行初始化,以使所述预设分离异步引擎与进行安全套接层中间代理操作的安全套接层中间人代理端匹配。
[0141] 可以理解的是,通过对预设分类异步引擎进行初始化,能够使所述预设分离异步引擎与进行安全套接层中间代理操作的安全套接层中间人代理端匹配,从而提高SSL处理
的速度和效率。
[0142] 进一步地,所述步骤S401具体包括以下步骤:
[0143] 获取预设运算端配置参数和地址信息;
[0144] 根据安全套接层协议连接到目标运算端,根据所述预设目标运算端配置参数和地址信息进行所述目标运算端的接入认证;
[0145] 若完成所述目标运算端的接入认证,则发送请求命令至所述目标运算端;
[0146] 若接收到所述目标运算端反馈的系统常规信息,则保持与所述目标运算端的当前连接。
[0147] 需要说明的是,所述预设运算端配置参数和地址信息为预先设置的用于确定对应的运算端的查找匹配信息,通过安全套接层协议链接到目标运算端,可以通过所述预设目
标运算端配置参数和地址信息进行所述目标运算端的接入认证;若完成所述目标运算端的
接入认证,即认证成功,则发送请求命令至所述目标运算端;若接收到所述目标运算端反馈
的系统常规信息,即认证失败,则保持与所述目标运算端的当前连接。
[0148] 在具体实现中,所述预设分离异步引擎可以采用epoll异步IO模型,通过读取用户配置好的所有运算端配置项并获取域名或IP等信息,接着使用SSL协议连接到这些运算端,
发送账号、密码信息完成接入认证后,发送请求命令去请求运算端的系统常规信息,例如运
算端当前的负载指数、可用的CPU、内存资源、以及后续交互的AES对称秘钥等并保存到本地
内存中,最后这个SSL连接除非断开重连,否者一直保持存活状态,并定时获取上述信息;至
此,引擎的初始化工作结束。
[0149] 本实施例通过上述方案,通过对预设分离异步引擎进行初始化,以使所述预设分离异步引擎与进行安全套接层中间代理操作的安全套接层中间人代理端匹配,能够进一步
提高SSL处理的速度和效率。
[0150] 基于上述数据代理方法的实施例,本发明进一步提供一种数据代理装置。
[0151] 参照图7,图7为本发明数据代理装置第一实施例的功能模块图。
[0152] 本发明数据代理装置第一实施例中,该数据代理装置包括:
[0153] 数据获取模块10,用于获取当前代理连接业务中目标处理数据的非对称上下文信息。
[0154] 需要说明的是,所述当前代理连接业务为当前正在进行的代理连接业务,所述目标处理数据为所述当前代理连接业务过程中产生的相关处理数据,所述非对称上下文信息
为从所述目标处理数据筛选出来的非对称计算上下文对应的信息。
[0155] 打包模块20,用于对所述非对称上下文信息进行打包,获得目标数据包。
[0156] 可以理解的是,通过对所述非对称上下文信息进行打包,获得对应的目标数据包,可以提高原设备整体SSL代理吞吐的效果。
[0157] 处理模块30,用于将所述目标数据包发送给目标运算端,以使所述目标运算端对所述目标数据包进行处理。
[0158] 应当理解的是,通过对所述非对称上下文信息进行打包,可以将所述目标数据包发送给目标运算端,进而可以通过目标运算端对所述目标数据包进行处理,即通过所述目
标运算端对所述目标数据包中的相关数据进行计算,获得相应的计算结果。
[0159] 其中,数据代理装置的各个功能模块实现的步骤可参照本发明数据代理方法的各个实施例,此处不再赘述。
[0160] 进一步地,本发明数据代理装置第一实施例,提出本发明数据代理装置第二实施例,参照图8,图8为本发明数据代理装置第二实施例的功能模块图,基于本发明数据代理装
置第一实施例,该数据代理装置还包括:
[0161] 挂起模块40,用于将所述当前代理连接业务挂起。
[0162] 需要说明的是,通过将当前代理连接业务挂起可以等结果反馈回来后重新调用当前连接的处理逻辑,使得处理流程能够还原并继续下去,从而达到运算转移、节约本地CPU
资源的效果,一般的可以在检测到所述目标数据包发送成功后,将所述当前代理连接业务
的目标任务保存,并将所述目标任务通过目标协程挂起。
[0163] 调用模块50,用于若接收到所述目标运算端反馈的运算结果,则调用所述当前代理连接业务的预设处理逻辑对所述运算结果进行逻辑处理。
[0164] 可以理解的是,若接收到所述目标运算端反馈的运算结果,这可以调用预先设置的预设处理逻辑对所述运算结果进行逻辑处理,不同的运算结果对应不同的逻辑处理流
程。
[0165] 其中,数据代理装置的各个功能模块实现的步骤可参照本发明数据代理方法的各个实施例,此处不再赘述。
[0166] 进一步地,基于本发明数据代理装置第一实施例,提出本发明数据代理装置第三实施例,参照图9,图9为本发明数据代理装置第三实施例的功能模块图,基于本发明数据代
理装置第一实施例,该数据代理装置中的处理模块30包括:
[0167] 替换模块31、根据预设配置参数将所述目标处理数据的处理函数替换为分离处理函数,所述分离处理函数为不参与本地运算的处理函数。
[0168] 需要说明的是,所述预设配置参数为预先设置的配置参数,通过所述预设配置参数可以将所述目标处理数据中的处理函数替换为不直接进行处理的分离处理函数。
[0169] 在具体实现中,可以依照OPENSSL提供的引擎开发方式,在程序初始化时,根据用户配置,把需要进行算法分离的处理函数替换为分离处理函数,所述分离处理函数为不参
与本地运算的处理函数,例如RSA_sign、RSA_verify等函数替换为RSA_sign_remote、RSA_
verify_remote,替换方式通过OPENSSL提供的函数替换接口实现。
[0170] 加密模块32、对所述分离处理函数和所述非对称上下文信息进行加密并打包生成目标数据包。
[0171] 可以理解的是,通过对所述分离处理函数和所述非对称上下文信息进行加密并打包生成目标数据包,能够为后续目标运算端的运算提供方便,且确保信息安全。
[0172] 生成模块33、根据预设分离异步引擎将所述目标数据包发送给目标运算端,以使所述目标运算端对所述目标数据包进行处理并生成运算结果。
[0173] 可以理解的是,通过所述预设分离异步引擎将所述目标数据包发送给目标运算端,进而使目标运算端对所述目标数据包进行处理处理,进而生成相应的运算结果。
[0174] 其中,数据代理装置的各个功能模块实现的步骤可参照本发明数据代理方法的各个实施例,此处不再赘述。
[0175] 此外,本申请实施例还提出一种存储介质,本申请的存储介质可以为非易失性计算机可读存储介质,所述存储介质上存储有计算机可读指令,所述计算机可读指令被处理
器执行时实现数据代理的步骤。
[0176] 需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而
且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有
的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该
要素的过程、方法、物品或者装置中还存在另外的相同要素。
[0177] 上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
[0178] 以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技
术领域,均同理包括在本发明的专利保护范围内。