业务加密、解密方法和装置与流程

文档序号:12376779阅读:551来源:国知局
业务加密、解密方法和装置与流程

本发明涉及计算机领域,具体而言,涉及一种业务加密、解密方法和装置。



背景技术:

现有技术中,在对业务进行加密时,所使用的加密方式主要包括三种:方式一、直接在代码或者配置文件里面编写固定的密钥;方式二、在共享内存中直接以明文保存或加密保存的方式保存密钥;方式三、密钥保存在特殊管理人员所管理的服务器上,业务可以定期地通过网络在该服务器中调用并获取密钥。

针对上述方式一,一般情况下,大多数公司的代码等资源都是通过密钥服务器SVN来管理,也就是说,密钥在部门内部都是几乎100%公开的。这就意味着所有人都可以“无成本,零风险”地获取密钥,具体地,可以简单通过手抄或者拍照的方法盗走,这种盗窃方式极难追查。

针对上述方式二,大多数编程人员可以通过编写某个工具来窃取密钥,该窃取方式不会被人发现,且内网的shell命令在审计时也难以审计到“一段被执行的代码是否恶意盗取密钥”的级别。

针对上述方式三,方式三的安全性高于方式一和方式二方案的安全性,但是由于网络调用无任何限制,因此,谁都可以向密钥服务器发起调用请求。并且,跨机器发起调用请求时,极难验证调用者的真实身份。其次,由于内网的网络包能轻易通过TCPDUMP抓取到,因此,抓到后分析一下就能得知密钥。同时,一般业务的内存本身就不够安全,简单写个GDB脚本,在最终的公共库的加解密函数设置一下断点,然后修改一下函数参数就可以轻松获取密钥。

针对上述的问题,目前尚未提出有效的解决方案。



技术实现要素:

本发明实施例提供了一种业务加密、解密方法和装置,以至少解决现有技术中在对业务进行加密时密钥的安全性较低的技术问题。

根据本发明实施例的一个方面,提供了一种业务加密方法,包括:密钥代理模块接收业务模块发送的加密请求,其中,所述加密请求中携带有待加密的数据;所述密钥代理模块从密钥列表中获取目标密钥,其中,所述密钥列表是预先从密钥服务器中拉取到的;所述密钥代理模块使用所述目标密钥对所述待加密的数据进行加密,得到加密后的数据;所述密钥代理模块将所述加密后的数据发送给所述业务模块。

根据本发明实施例的一个方面,还提供了一种业务解密方法,包括:密钥代理模块接收业务模块发送的解密请求,其中,所述解密请求中携带有待解密的数据;所述密钥代理模块从密钥列表中获取目标密钥,其中,所述密钥列表是预先从密钥服务器中拉取到的;所述密钥代理模块使用所述目标密钥对所述待解密的数据进行解密,得到解密后的数据;所述密钥代理模块将所述解密后的数据发送给所述业务模块。

根据本发明实施例的另一方面,还提供了一种业务加密装置,包括:接收单元,设置于密钥代理模块中,用于接收业务模块发送的加密请求,其中,所述加密请求中携带有待加密的数据;获取单元,设置于所述密钥代理模块中,用于从密钥列表中获取目标密钥,其中,所述密钥列表是预先从密钥服务器中拉取到的;加密单元,设置所述密钥代理模块中,用于使用所述目标密钥对所述待加密的数据进行加密,得到加密后的数据;发送单元,设置于所述密钥代理模块中,用于将所述加密后的数据发送给所述业务模块。

根据本发明实施例的另一方面,还提供了一种业务解密装置,包括:接收单元,设置于密钥代理模块中,用于接收业务模块发送的解密请求,其中,所述解密请求中携带有待解密的数据;获取单元,设置于所述密钥代理模块中,用于从密钥列表中获取目标密钥,其中,所述密钥列表是预先从密钥服务器中拉取到的;解密单元,设置于所述密钥代理模块中,用于使用所述目标密钥对所述待解密的数据进行解密,得到解密后的数据;发送单元,设置于所述密钥代理模块中,用于将所述解密后的数据发送给所述业务模块。

在本发明实施例中,采用密钥代理模块接收业务模块发送的加密请求,其中,所述加密请求中携带有待加密的数据;所述密钥代理模块从密钥列表中获取目标密钥,其中,所述密钥列表是预先从密钥服务器中拉取到的;所述密钥代理模块使用所述目标密钥对所述待加密的数据进行加密,得到加密后的数据;所述密钥代理模块将所述加密后的数据发送给所述业务模块的方式。通过密钥代理模块接收加密请求,然后,根据密钥请求获取目标密钥,接下来,通过目标密钥对待加密的数据进行加密,本发明实施例中提供的业务加密方式,达到了更加安全地为业务进行加密的目的,从而实现了提高了对业务进行加密时密钥安全性的技术效果,进而解决了现有技术中在对业务进行加密时密钥的安全性较低的技术问题。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是根据本发明实施例的业务加密方法的硬件环境的示意图;

图2是根据本发明实施例的一种可选的业务加密方法的流程图;

图3是根据本发明实施例的一种可选的业务解密方法的流程图;

图4是根据本发明实施例的另一种可选的业务加密方法的流程图;

图5是根据本发明实施例的另一种可选的业务加密方法的流程图;

图6是根据本发明实施例的一种可选的业务加密装置的示意图;

图7是根据本发明实施例的另一种可选的业务加密装置的示意图;以及

图8是根据本发明实施例的一种终端的结构框图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

实施例1

根据本发明实施例,提供了一种业务加密的方法实施例。

可选地,在本实施例中,上述业务加密方法可以应用于如图1所示的由服务器102和终端104所构成的硬件环境中。如图1所示,服务器102通过网络与终端104进行连接,上述网络包括但不限于:广域网、城域网或局域网,终端104并不限定于PC、手机、平板电脑等。本发明实施例的业务加密方法可以由服务器102来执行,也可以由终端104来执行,还可以是由服务器102和终端104共同执行。其中,终端104执行本发明实施例的业务加密方法也可以是由安装在其上的客户端来执行。

图1中示出的硬件环境系统的主要工作原理是:

在本发明实施例中,密钥代理模块安装在终端104中。当有业务需要进行加密时,可以通过业务模块向密钥代理模块发送携带有待加密数据的加密请求。密钥代理模块在获取到加密请求之后,将从拉取到的密钥列表中获取目标密钥,然后,使用目标密钥对待加密的数据进行加密,得到加密后的数据,最后,密钥代理模块将加密后的数据发送给业务模块。

需要说明的是,在本发明实施例中,密钥列表为密钥代理模块在首次开启时,从服务器104(例如,密钥服务器)中所拉取得到的密钥列表。

图2是根据本发明实施例的一种可选的业务加密方法的流程图,如图2所示,该方法可以包括以下步骤:

步骤S202,密钥代理模块接收业务模块发送的加密请求,其中,所述加密请求中携带有待加密的数据。

在本发明实施例中,密钥代理模块(以下均称为密钥Agent)可以采用单进程多线程的方式实现;业务模块用于向密钥Agent发送加密请求,其中,密钥Agent行业业务模块处于同一个物理单机中。

具体地,当有业务需要进行加密时,业务模块可以向密钥Agent发送携带待加密的数据的加密请求;密钥Agent在获取到加密请求之后,就可以执行下述步骤S204,即根据加密请求在密钥列表中获取目标密钥。

步骤S204,密钥代理模块从密钥列表中获取目标密钥,其中,密钥列表是预先从密钥服务器中拉取到的。

在本发明实施例中,当密钥代理模块Agent重启时,密钥Agent会向密钥服务器拉取密钥列表。需要说明的是,密钥Agent仅在重新启动时,向密钥服务器拉取密钥列表,在启动后的其他时间内不再拉取密钥列表。

密钥Agent在获取到业务模块发送的加密请求之后,就可以在预先拉取的密钥列表中获取目标密钥,其中,该目标密钥用于对待加密的数据进行加密。

步骤S206,密钥代理模块使用目标密钥对待加密的数据进行加密,得到加密后的数据。

在本发明实施例中,密钥Agent在从密钥列表中获取到目标密钥之后,就可以对使用目标密钥对待加密的数据进行加密。

步骤S208,密钥代理模块将加密后的数据发送给业务模块。

在本发明实施例中,密钥代理模块在使用目标密钥对待加密的数据进行加密,得到加密之后的数据之后,就可以将加密后的数据发送给业务模块。

通过上述步骤S202至步骤S208,通过密钥代理模块接收加密请求,然后,根据密钥请求获取目标密钥,接下来,通过目标密钥对待加密的数据进行加密,本发明实施例中提供的业务加密方式,达到了更加安全地为业务进行加密的目的,从而实现了提高了对业务进行加密时密钥安全性的技术效果,进而解决了现有技术中在对业务进行加密时密钥的安全性较低的技术问题。

可选地,在密钥代理模块接收业务模块发送的加密请求之前,还可以通过密钥代理模块将第一公钥发送给密钥服务器,并从密钥服务器接收第二公钥,其中,密钥代理模块上具有一对第一公钥和第一私钥,密钥服务器上具有一对第二公钥和第二私钥;密钥代理模块向密钥服务器发送密钥列表拉取请求;密钥代理模块接收密钥服务器发送的加密后的密钥列表,其中,加密后的密钥列表是使用密钥服务器侧的第一通讯密钥对密钥列表进行加密得到的,第一通讯密钥是密钥服务器根据第一公钥和第二私钥生成得到的;密钥代理模块使用密钥代理模块侧的第二通讯密钥对加密后的密钥列表进行解密,得到密钥列表,其中,第二通讯密钥是密钥代理模块根据第一私钥和第二公钥生成得到的,第一通讯密钥与第二通讯密钥相同。

在本发明实施例中,在密钥Agent接收加密请求之前,需要从密钥服务器拉取密钥列表,其中,由于从密钥服务器拉取到的密钥列表为加密之后的密钥列表。因此,密钥Agent需要对拉取到的密钥列表进行解密。

在本发明实施例中,密钥Agent拉取到的密钥列表是使用密钥服务器侧的第一通讯密钥对密钥列表进行加密得到的,那么密钥代理模块在对密钥列表进行解密时,需使用与第一通讯密钥相同的第二通讯密钥对密钥列表进行解密。其中,第一通讯密钥是密钥服务器根据第一公钥和第二私钥生成得到的,第二通讯密钥是密钥代理模块根据第一私钥和第二公钥生成得到的。第一公钥和第二公钥是密钥Agent在向密钥服务器发送密钥列表的拉取请求之前,生成的一对公钥pubkey和密钥prikey;第一私钥和第二私是密钥服务器生成的一对公钥pubkey和密钥prikey。

需要说明的是,由于第一通讯密钥根据第一公钥和第二私钥生成得到的,第二通讯密钥是根据第一私钥和第二公钥生成得到的。因此,在密钥代理模块向密钥服务器发送密钥列表拉取请求之前,密钥Agent和密钥服务器之间需要交换双方的公钥和密钥。在交换之后,密钥代理模块就可以在向密钥服务器发送密钥列表拉取请求之后,生成用于对密钥列表进行解密的第二通讯密钥,密钥服务器也可以生成用于对密钥列表进行加密的第一通讯密钥。

其中,交换双方的公钥和密钥具体为:Agent将第一公钥发送给密钥服务器SVR,然后,Agent从密钥服务器SVR中接收第二公钥,交换之后,Agent就可以使用第一私钥和第二公钥加密后的密钥列表进行解密。

需要说明的是,在本发明实施例中,Agent和密钥服务器在进行密钥交换时,可以采用密钥交换协议(即,ECDH协议)交换双方的pubkey和各自的prikey。

通过上述描述可知,本发明中的密钥列表使用第一公钥和第二私钥进行加密,并使用第一私钥和第二公钥进行解密。然而,在现有技术中,网络上传递的只有Agent和密钥服务器的公钥pubkey,因此,采用本发明中的加密方式,即使被tcpdump也反推不出密钥,这样就避免了内网抓包导致的密钥泄漏的现象发生。

密钥Agent在从密钥服务器中拉取到密钥列表,并对密钥列表进行解密之后,密钥Agent需要验证业务进程的合法性,其中,业务进程为待加密的数据所表示的进程。

在本发明的另一个可选的实施方式中,密钥代理模块将第一公钥发送给密钥服务器,并从密钥服务器接收第二公钥包括:在密钥代理模块重启时,密钥代理模块将加密后的第一公钥发送给密钥服务器,其中,加密后的第一公钥是使用约定密钥对第一公钥进行加密得到的;密钥代理模块从密钥服务器接收加密后的第二公钥,其中,加密后的第二公钥是使用约定密钥对第二公钥进行加密得到的;密钥代理模块使用约定密钥对加密后的第二公钥进行解密,得到第二公钥;其中,约定密钥被设置为仅在密钥代理模块重启时使用。

需要说明的是,当密钥Agent重启时,在密钥Agent向密钥服务器发送第一公钥时,需使用约定密钥对第一公钥进行加密,并将使用约定密钥加密之后的第一公钥发送给密钥服务器,其中,密钥服务器在获取到第一公钥之后,就可以使用约定密钥进行解密。相同地,密钥服务器在向密钥Agent发送第二公钥时,也使用约定密钥对第二公钥进行加密,并将加密之后的第二公钥发送至密钥Agent,其中,密钥Agent在接收到加密之后的第二公钥之后,就可以使用约定密钥对第二公钥进行解密。

需要说明的是,在本发明实施例中,只有在密钥Agent重启时才会使用“约定密钥”对第一公钥和第二公钥进行加密,并互相传输。也就是说,只有密钥Agent的维护者在变更密钥Agent时重启进程才是唯一合法使用约定密钥的时机,其它任何情形都是非法使用。例如,密钥Agent的维护者在密钥Agent重启时,使用了约定密钥获取密钥列表,在此之后,如果其他使用者再次使用约定密钥获取密钥列表时,表明该使用者为滥用者。因此,在本发明实施例中,仅在密钥Agent重启时才会使用一次“约定密钥”的设置,能够快速并有效地检测出滥用者。

由于从密钥服务器中获取到的密钥列表为加密的密钥列表,因此密钥Agent在拉取到密钥列表之后,需要对密钥列表进行解密。

可选地,在密钥代理模块接收业务模块发送的加密请求之前,还可以通过密钥代理模块获取业务进程的进程PID,其中,业务进程为业务模块发送待加密的数据的进程,然后,密钥代理模块对业务进程和进程PID进行合法性校验;以及在合法性校验通过的情况下,密钥代理模块从密钥列表中获取目标密钥。

在本发明实施例中,在对业务模块中待加密的数据所表示的业务进程进行加密之前,首先需要确定该业务进程的合法性。在对业务进程的合法性进行确定时,可以通过密钥Agent获取业务进程的进程PID,然后,通过密钥Agent对进程PID和业务进程的合法性进行校验。如果进程PID和业务进程的校验结果为合法时,即校验通过的情况下,密钥代理模块就可以从密钥列表中获取目标密钥,并通过该目标密钥对待加密的数据进行加密。

需要说明的是,在本发明实施例中,密钥代理模块可以获取业务模块通过套接字SCM_RIGHTS传输的业务进程被内核所认证的进程PID,其中,套接字SCM_RIGHTS适用于unix domain socket。

进一步地,上述密钥代理模块对业务进程和进程PID进行合法性校验,具体为如下步骤:

步骤S1,密钥代理模块获取与进程PID对应的进程全路径;

步骤S2,密钥代理模块判断进程全路径是否属于预先从密钥服务器获取到的合法路径中的路径;

步骤S3,在判断出进程全路径属于合法路径中的路径的情况下,密钥代理模块对业务进程进行MD5校验操作,得到第一MD5校验结果;在判断出进程全路径不属于合法路径中的路径的情况下,判断出合法性校验不通过;

步骤S4,密钥代理模块判断第一MD5校验结果是否与预先获取的与业务进程对应的第二MD5校验结果相同;

步骤S5,若第一MD5校验结果与第二MD5校验结果相同,则判断出合法性校验通过;若第一MD5校验结果与第二MD5校验结果不同,则判断出合法性校验不通过。

具体校验过程为:密钥代理模块首先获取与进程PID对应的进程全路径,然后,将进程全路径与预先从密钥服务器中获取到的合法路径中的路径进行判断。如果判断出进程全路径属于合法路径中的路径,那么继续通过密钥代理模块对业务进程的MD5进行校验,得到第一MD5校验结果;如果判断出进程全路径不属于合法路径中的路径,那么业务进程和进程PID的合法性校验不通过。接下来,继续判断第一MD5校验结果与预先获取到的第二MD5校验结果是否相同,其中,如果相同,那么合法性校验通过,如果不相同,合法性校验不通过。

可选地,在密钥代理模块对业务进程和进程PID进行合法性校验通过的情况下,密钥代理模块获取业务模块发送的第一文件描述符,其中,第一文件描述符用于密钥代理模块将业务模块发送的数据识别为合法数据,然后,密钥代理模块生成第二文件描述符,其中,第二文件描述符用于业务模块将密钥代理模块发送的数据识别为合法数据,最后,密钥代理模块将第二文件描述符传输给业务模块。

在校验业务进程合法性通过的情况下,需要密钥代理模块和业务模块之间交换文件描述符。具体地,密钥代理模块可以首先获取业务模块的第一文件描述符,在获取到第一文件描述符之后,密钥代理模块就可以对业务模块发送的数据进行识别为合法数据。到此为止,业务模块已向密钥代理模块交换文件描述符,那么就需要密钥代理模块向业务模块交换文件描述符。此时,密钥代理模块可以将生成的第二文件描述符传输给业务模块,业务模块在接收到第二文件描述符之后,就可以对密钥代理模块发送的数据进行识别为合法数据。

在本发明实施例中,第一文件描述符和第二文件描述符对应共享内存中存储数据的数据块,其中,共享内存用于存储加密请求的待加密的数据和加密之后的待检加密的数据,将在下述实施例中进行详细描述。例如,当业务模块在共享内存存储待加密的数据时,是在第一文件描述符在共享内存中所对应的区域内存储待加密的数据。存储待加密的数据之后,密钥代理模块就能够获知业务模块在共享内存存储了待加密的数据,然后,密钥代理模块就会去该区域内获取待加密的数据。

需要说明的是,在本发明实施例中,可以一次性交换多个文件描述符eventfd,不够用时再次通过校验交换更多eventfd,这样就能明显减少校验请求的数目,发明人通过测试发现linux系统下一次性能交换的最大fd数目是255。在密钥代理模块和业务模块完成文件描述符的交换之后,就可以接收业务模块发送的加密请求,以对加密请求中的待加密的数据进行加密。

进一步地,在密钥代理模块对业务进程和进程PID进行合法性校验通过的情况下,密钥代理模块还可以为第一文件描述符设置目标权限,其中,目标权限包括以下至少之一:允许密钥代理模块对业务模块请求的待加密的数据进行加密,允许密钥代理模块对业务模块请求的待解密的数据进行解密。

具体地,在密钥代理模块对业务进程和进程PID进行合法性校验通过的情况下,密钥代理模块可以在交换文件描述符之后,为第一文件描述符设定目标权限,其中,设定的目标权限包括:允许密钥代理模块对业务模块请求的待加密的数据进行加密,允许密钥代理模块对业务模块请求的待解密的数据进行解密。

在密钥代理模块对第一文件描述符设置完成目标权限之后,密钥代理模块就可以根据接收到的加密请求对待加密的数据进行加密,然后,将加密之后的数据发送给业务模块。

其中,密钥代理模块接收业务模块发送的加密请求包括:密钥代理模块从共享内存中获取业务模块存入的待加密的数据;以及密钥代理模块将加密后的数据发送给业务模块包括:密钥代理模块将加密后的数据存入到共享内存中,以使得业务模块从共享内存中获取加密后的数据。

业务模块在向密钥代理模块发送加密请求时,会将加密请求存入到共享内存中。在此之后,密钥代理模块就可以从共享内存中获取已存储的待加密的数据。相同地,当密钥代理模块使用目标密钥对待加密的数据的进行加密处理之后,还可以将加密处理之后的待加密的数据同样存入共享内存中。使得业务模块可以从共享内存中获取加密后的数据。

通过上述描述可知,在本发明实施例中,密钥代理模块已预先为第一文件描述符设置目标权限,在此情况下,如果合法性校验通过,那么密钥代理模块从密钥列表中获取目标密钥,具体为:在目标权限包括允许密钥代理模块对业务模块请求的待加密的数据进行加密时,密钥代理模块从密钥列表中获取目标密钥包。

需要说明的是,由于目标权限可以为仅允许密钥代理模块对业务模块请求的待解密的数据进行解密或者允许密钥代理模块对业务模块请求的待加密的数据进行加密。因此,密钥代理模块只有在确定出目标权限为允许密钥代理模块对业务模块请求的待加密的数据进行加密时,才可以从密钥列表中获取目标密钥,并使用获取到的目标密钥对待加密的数据进行加密。

在本发明实施例的一个可选实施方式中,密钥代理模块获取业务进程的进程PID包括:密钥代理模块在非root运行模式下通过unix域套接字获取业务进程的进程PID;或者密钥代理模块将socket套接字的选项配置为SO_PEERCRED,并通过socket套接字获取业务进程的进程PID。

在本发明实施例中,进程PID是通过unix域套接字中的套接字SCM_RIGHTS传输。由于unix域套接字传递准确进程PID的前提是非root模式运行的进程,因此,在传递进程PID之前,必须对本机root模式的需求进行审批。也即,需要在非root运行模式下通过unix域套接字获取业务进程的进程PID。进一步地,还可以通过密钥代理模块将socket套接字的选项配置为SO_PEERCRED,并通过socket套接字获取业务进程的进程PID。

综上,在本发明实施例中,通过密钥Agent间接加解密待加密的数据;同时,业务模块和密钥Agent之间的通讯可以是任何标准linux IPC通讯手段,包括但不限于管道,unix socket pair,本地磁盘文件等,本方案采取的linux eventfd是效率最高,最适合于海量加解密请求的选择。本方法通过充分利用现代linux操作系统内核提供的标准机制来实现加解密程序,既提高了密钥的安全性,同时又最大限度的减少了加解密性能损失,确保在实践中的有效性。

图3是根据本发明实施例的一种可选的业务解密方法的流程图,如图3所示,该方法可以包括以下步骤:

步骤S302,密钥代理模块接收业务模块发送的解密请求,其中,解密请求中携带有待解密的数据。

在本发明实施例中,密钥代理模块(以下均称为Agent)可以采用单进程多线程的方式实现;业务模块用于向Agent发送解密请求,其中,Agent行业业务模块处于同一个物理单机中。

具体地,当有业务需要进行解密时,业务模块可以向Agent发送携带待解密的数据的解密请求;Agent在获取到解密请求之后,就可以执行下述步骤S304,即根据解密请求在密钥列表中获取目标密钥。

步骤S304,密钥代理模块从密钥列表中获取目标密钥,其中,密钥列表是预先从密钥服务器中拉取到的。

在本发明实施例中,当密钥代理模块Agent重启时,Agent会向密钥服务器拉取密钥列表。需要说明的是,Agent仅在重新启动时,向密钥服务器拉取密钥列表,在启动后的其他时间内不再拉取密钥列表。

Agent在获取到业务模块发送的解密请求之后,就可以在预先拉取的密钥列表中获取目标密钥,其中,该目标密钥用于对待解密的数据进行解密。

步骤S306,密钥代理模块使用目标密钥对待解密的数据进行解密,得到解密后的数据。

在本发明实施例中,Agent在从密钥列表中获取到目标密钥之后,就可以对使用目标密钥对待解密的数据进行解密。

步骤S308,密钥代理模块将解密后的数据发送给业务模块。

在本发明实施例中,密钥代理模块在使用目标密钥对待解密的数据进行解密,得到解密之后的数据之后,就可以将解密后的数据发送给业务模块。

通过上述步骤S302至步骤S308,通过密钥代理模块接收解密请求,然后,根据密钥请求获取目标密钥,接下来,通过目标密钥对待解密的数据进行解密,本发明实施例中提供的业务解密方式,达到了更加安全地为业务进行解密的目的,从而实现了提高了对业务进行解密时密钥安全性的技术效果,进而解决了现有技术中在对业务进行解密时密钥的安全性较低的技术问题。

可选地,在密钥代理模块接收业务模块发送的解密请求之前,还包括:密钥代理模块将第一公钥发送给密钥服务器,并从密钥服务器接收第二公钥,其中,密钥代理模块上具有一对第一公钥和第一私钥,密钥服务器上具有一对第二公钥和第二私钥;密钥代理模块向密钥服务器发送密钥列表拉取请求;密钥代理模块接收密钥服务器发送的加密后的密钥列表,其中,加密后的密钥列表是使用密钥服务器侧的第一通讯密钥对密钥列表进行加密得到的,第一通讯密钥是密钥服务器根据第一公钥和第二私钥生成得到的;密钥代理模块使用密钥代理模块侧的第二通讯密钥对加密后的密钥列表进行解密,得到密钥列表,其中,第二通讯密钥是密钥代理模块根据第一私钥和第二公钥生成得到的,第一通讯密钥与第二通讯密钥相同。

在本发明实施例中,在密钥Agent接收解密请求之前,需要从密钥服务器拉取密钥列表,其中,由于从密钥服务器拉取到的密钥列表为加密之后的密钥列表。因此,密钥Agent需要对拉取到的密钥列表进行解密。

在本发明实施例中,密钥Agent拉取到的密钥列表是使用密钥服务器侧的第一通讯密钥对密钥列表进行加密得到的,那么密钥代理模块在对密钥列表进行解密时,需使用与第一通讯密钥相同的第二通讯密钥对密钥列表进行解密。其中,第一通讯密钥是密钥服务器根据第一公钥和第二私钥生成得到的,第二通讯密钥是密钥代理模块根据第一私钥和第二公钥生成得到的。第一公钥和第二公钥是密钥Agent在向密钥服务器发送密钥列表的拉取请求之前,生成的一对公钥pubkey和密钥prikey;第一私钥和第二私是密钥服务器生成的一对公钥pubkey和密钥prikey。

需要说明的是,由于第一通讯密钥根据第一公钥和第二私钥生成得到的,第二通讯密钥是根据第一私钥和第二公钥生成得到的。因此,在密钥代理模块向密钥服务器发送密钥列表拉取请求之前,密钥Agent和密钥服务器之间需要交换双方的公钥和密钥。在交换之后,密钥代理模块就可以在向密钥服务器发送密钥列表拉取请求之后,生成用于对密钥列表进行解密的第二通讯密钥,密钥服务器也可以生成用于对密钥列表进行加密的第一通讯密钥。

其中,交换双方的公钥和密钥具体为:Agent将第一公钥发送给密钥服务器SVR,然后,Agent从密钥服务器SVR中接收第二公钥,交换之后,Agent就可以使用第一私钥和第二公钥加密后的密钥列表进行解密。

需要说明的是,在本发明实施例中,Agent和密钥服务器在进行密钥交换时,可以采用密钥交换协议(即,ECDH协议)交换双方的pubkey和各自的prikey。

通过上述描述可知,本发明中的密钥列表使用第一公钥和第二私钥进行加密,并使用第一私钥和第二公钥进行解密。然而,在现有技术中,网络上传递的只有Agent和密钥服务器的公钥pubkey,因此,采用本发明中的加密方式,即使被tcpdump也反推不出密钥,这样就避免了内网抓包导致的密钥泄漏的现象发生。

密钥Agent在从密钥服务器中拉取到密钥列表,并对密钥列表进行解密之后,密钥Agent需要验证业务进程的合法性,其中,业务进程为待解密的数据所表示的进程。

在本发明的一个可选实施方式中,密钥代理模块将第一公钥发送给密钥服务器,并从密钥服务器接收第二公钥包括:在密钥代理模块重启时,密钥代理模块将加密后的第一公钥发送给密钥服务器,其中,加密后的第一公钥是使用约定密钥对第一公钥进行加密得到的;密钥代理模块从密钥服务器接收加密后的第二公钥,其中,加密后的第二公钥是使用约定密钥对第二公钥进行加密得到的;密钥代理模块使用约定密钥对加密后的第二公钥进行解密,得到第二公钥;其中,约定密钥被设置为仅在密钥代理模块重启时使用。

需要说明的是,当密钥Agent重启时,在密钥Agent向密钥服务器发送第一公钥时,需使用约定密钥对第一公钥进行加密,并将使用约定密钥加密之后的第一公钥发送给密钥服务器,其中,密钥服务器在获取到第一公钥之后,就可以使用约定密钥进行解密。相同地,密钥服务器在向密钥Agent发送第二公钥时,也使用约定密钥对第二公钥进行加密,并将加密之后的第二公钥发送至密钥Agent,其中,密钥Agent在接收到加密之后的第二公钥之后,就可以使用约定密钥对第二公钥进行解密。

需要说明的是,在本发明实施例中,只有在密钥Agent重启时才会使用“约定密钥”对第一公钥和第二公钥进行加密,并互相传输。也就是说,只有密钥Agent的维护者在变更密钥Agent时重启进程才是唯一合法使用约定密钥的时机,其它任何情形都是非法使用。例如,密钥Agent的维护者在密钥Agent重启时,使用了约定密钥获取密钥列表,在此之后,如果其他使用者再次使用约定密钥获取密钥列表时,表明该使用者为滥用者。因此,在本发明实施例中,仅在密钥Agent重启时才会使用一次“约定密钥”的设置,能够快速并有效地检测出滥用者。

由于从密钥服务器中获取到的密钥列表为加密的密钥列表,因此密钥Agent在拉取到密钥列表之后,需要对密钥列表进行解密。

在本发明的一个可选实施方式中,在密钥代理模块接收业务模块发送的解密请求之前,还包括:密钥代理模块获取业务进程的进程PID,其中,业务进程为业务模块发送待解密的数据的进程;密钥代理模块对业务进程和进程PID进行合法性校验;密钥代理模块从密钥列表中获取目标密钥包括:在合法性校验通过的情况下,密钥代理模块从密钥列表中获取目标密钥。

在本发明实施例中,在对业务模块中待解密的数据所表示的业务进程进行解密之前,首先需要确定该业务进程的合法性。在对业务进程的合法性进行确定时,可以通过密钥Agent获取业务进程的进程PID,然后,通过密钥Agent对进程PID和业务进程的合法性进行校验。如果进程PID和业务进程的校验结果为合法时,即校验通过的情况下,密钥代理模块就可以从密钥列表中获取目标密钥,并通过该目标密钥对待解密的数据进行解密。

需要说明的是,在本发明实施例中,密钥代理模块可以获取业务模块通过套接字SCM_RIGHTS传输的业务进程被内核所认证的进程PID,其中,套接字SCM_RIGHTS适用于unix domain socket。

在本发明的一个可选实施方式中,密钥代理模块对业务进程和进程PID进行合法性校验包括:密钥代理模块获取与进程PID对应的进程全路径;密钥代理模块判断进程全路径是否属于预先从密钥服务器获取到的合法路径中的路径;在判断出进程全路径属于合法路径中的路径的情况下,密钥代理模块对业务进程进行MD5校验操作,得到第一MD5校验结果;在判断出进程全路径不属于合法路径中的路径的情况下,判断出合法性校验不通过;密钥代理模块判断第一MD5校验结果是否与预先获取的与业务进程对应的第二MD5校验结果相同;若第一MD5校验结果与第二MD5校验结果相同,则判断出合法性校验通过;若第一MD5校验结果与第二MD5校验结果不同,则判断出合法性校验不通过。

具体校验过程为:密钥代理模块首先获取与进程PID对应的进程全路径,然后,将进程全路径与预先从密钥服务器中获取到的合法路径中的路径进行判断。如果判断出进程全路径属于合法路径中的路径,那么继续通过密钥代理模块对业务进程的MD5进行校验,得到第一MD5校验结果;如果判断出进程全路径不属于合法路径中的路径,那么业务进程和进程PID的合法性校验不通过。接下来,继续判断第一MD5校验结果与预先获取到的第二MD5校验结果是否相同,其中,如果相同,那么合法性校验通过,如果不相同,合法性校验不通过。

在本发明的一个可选实施方式中,在密钥代理模块对业务进程和进程PID进行合法性校验之后,并在密钥代理模块接收业务模块发送的解密请求之前,还包括:在合法性校验通过的情况下,密钥代理模块获取业务模块发送的第一文件描述符,其中,第一文件描述符用于密钥代理模块将业务模块发送的数据识别为合法数据;密钥代理模块生成第二文件描述符,其中,第二文件描述符用于业务模块将密钥代理模块发送的数据识别为合法数据;密钥代理模块将第二文件描述符传输给业务模块。

在校验业务进程合法性通过的情况下,需要密钥代理模块和业务模块之间交换文件描述符。具体地,密钥代理模块可以首先获取业务模块的第一文件描述符,在获取到第一文件描述符之后,密钥代理模块就可以对业务模块发送的数据进行识别为合法数据。到此为止,业务模块已向密钥代理模块交换文件描述符,那么就需要密钥代理模块向业务模块交换文件描述符。此时,密钥代理模块可以将生成的第二文件描述符传输给业务模块,业务模块在接收到第二文件描述符之后,就可以对密钥代理模块发送的数据进行识别为合法数据。

在本发明实施例中,第一文件描述符和第二文件描述符对应共享内存中存储数据的数据块,其中,共享内存用于存储解密请求的待解密的数据和解密之后的待检解密的数据,将在下述实施例中进行详细描述。例如,当业务模块在共享内存存储待解密的数据时,是在第一文件描述符在共享内存中所对应的区域内存储待解密的数据。存储待解密的数据之后,密钥代理模块就能够获知业务模块在共享内存存储了待解密的数据,然后,密钥代理模块就会去该区域内获取待解密的数据。

需要说明的是,在本发明实施例中,可以一次性交换多个文件描述符eventfd,不够用时再次通过校验交换更多eventfd,这样就能明显减少校验请求的数目,发明人通过测试发现linux系统下一次性能交换的最大fd数目是255。在密钥代理模块和业务模块完成文件描述符的交换之后,就可以接收业务模块发送的解密请求,以对解密请求中的待解密的数据进行解密。

进一步地,在密钥代理模块对业务进程和进程PID进行合法性校验通过的情况下,密钥代理模块还可以为第一文件描述符设置目标权限,其中,目标权限包括以下至少之一:允许密钥代理模块对业务模块请求的待解密的数据进行解密,允许密钥代理模块对业务模块请求的待解密的数据进行解密。

具体地,在密钥代理模块对业务进程和进程PID进行合法性校验通过的情况下,密钥代理模块可以在交换文件描述符之后,为第一文件描述符设定目标权限,其中,设定的目标权限包括:允许密钥代理模块对业务模块请求的待解密的数据进行解密,允许密钥代理模块对业务模块请求的待解密的数据进行解密。

在密钥代理模块对第一文件描述符设置完成目标权限之后,密钥代理模块就可以根据接收到的解密请求对待解密的数据进行解密,然后,将解密之后的数据发送给业务模块。

其中,密钥代理模块接收业务模块发送的解密请求包括:密钥代理模块从共享内存中获取业务模块存入的待解密的数据;以及密钥代理模块将解密后的数据发送给业务模块包括:密钥代理模块将解密后的数据存入到共享内存中,以使得业务模块从共享内存中获取解密后的数据。

业务模块在向密钥代理模块发送解密请求时,会将解密请求存入到共享内存中。在此之后,密钥代理模块就可以从共享内存中获取已存储的待解密的数据。相同地,当密钥代理模块使用目标密钥对待解密的数据的进行解密处理之后,还可以将解密处理之后的待解密的数据同样存入共享内存中。使得业务模块可以从共享内存中获取解密后的数据。

通过上述描述可知,在本发明实施例中,密钥代理模块已预先为第一文件描述符设置目标权限,在此情况下,如果合法性校验通过,那么密钥代理模块从密钥列表中获取目标密钥,具体为:在目标权限包括允许密钥代理模块对业务模块请求的待解密的数据进行解密时,密钥代理模块从密钥列表中获取目标密钥包。

需要说明的是,由于目标权限可以为仅允许密钥代理模块对业务模块请求的待解密的数据进行解密或者允许密钥代理模块对业务模块请求的待解密的数据进行解密。因此,密钥代理模块只有在确定出目标权限为允许密钥代理模块对业务模块请求的待解密的数据进行解密时,才可以从密钥列表中获取目标密钥,并使用获取到的目标密钥对待解密的数据进行解密。

在本发明的一个可选实施方式中,密钥代理模块获取业务进程的进程PID包括:密钥代理模块在非root运行模式下通过unix域套接字获取业务进程的进程PID;或者,密钥代理模块将socket套接字的选项配置为SO_PEERCRED,并通过socket套接字获取业务进程的进程PID。

在本发明实施例中,进程PID是通过unix域套接字中的套接字SCM_RIGHTS传输。由于unix域套接字传递准确进程PID的前提是非root模式运行的进程,因此,在传递进程PID之前,必须对本机root模式的需求进行审批。也即,需要在非root运行模式下通过unix域套接字获取业务进程的进程PID。进一步地,还可以通过密钥代理模块将socket套接字的选项配置为SO_PEERCRED,并通过socket套接字获取业务进程的进程PID。

需要说明的是,在本发明实施例提供的业务解密方法中,与图2中的业务加密方法的过程相同。因此,在本发明实施例中,将不再对业务解密方法进行赘述。

下面将结合具体实施例对本发明提供的业务加密的方法进行说明。

图4是根据本发明实施例的一种可选的业务加密方法的流程图,如图4所示,密钥Agent和业务模块处于同一个物理单机中。

在本发明实施例中,在密钥Agent重启时,密钥Agent使用约定密钥对第一公钥进行加密,并将加密之后的第一公钥发送至密钥服务器,密钥代理模块还可以接收密钥服务器发送的已加密的第二公钥,其中,第二公钥也采用约定密钥进行加密。密钥Agent在获取到第二公钥之后,使用约定密钥对第二公钥进行解密,密钥服务器在获取到第一公钥之后,也使用约定密钥对第一公钥进行解密。

接下来,密钥Agent就可以向密钥服务器发送密钥列表的拉取请求,密钥服务器在接收到密钥拉取请求之后,将向密钥Agent传输加密后的密钥列表,其中,加密后的密钥列表是使用密钥服务器侧的第一通讯密钥对密钥列表进行加密得到的,第一通讯密钥是密钥服务器根据第一公钥和第二私钥生成得到的。密钥Agent在接收到加密之后的密钥列表之后,就可以使用与第一通讯密钥相同的第二通讯密钥进行解密,其中,第二通讯密钥是密钥代理模块根据第一私钥和第二公钥生成得到的。

需要说明的是,在本发明实施例中,只有在密钥Agent重启时才会使用“约定密钥”对第一公钥和第二公钥进行加密,并互相传输。

也就是说,只有Agent的维护者在变更Agent时重启进程才是唯一合法使用约定密钥的时机,其它任何情形都是非法使用。例如,Agent的维护者在Agent重启时,使用了约定密钥获取密钥列表,在此之后,如果其他使用者再次使用约定密钥获取密钥列表时,表明该使用者为滥用者。因此,在本发明实施例中,仅在密钥Agent重启时才会使用一次“约定密钥”的设置,能够快速并有效地检测出滥用者。

由于网络上传递的只有各自的公钥pubkey,然而,本发明实施例中提供的业务加密是使用第一私钥和第二公钥对加密后的密钥列表进行解密,因此,即使密钥列表被tcpdump也不会反推出密钥,这就避免了内网抓包导致的密钥泄漏的现象出现。

需要说明的是,在本发明实施例中,还可以保护密钥Agent和密钥服务器的内存。具体地,可以直接把密钥Agent和密钥服务器的二进制strip掉(即,删除一切调试信息),然后再把密钥Agent和密钥服务器的代码安全隔离保存起来,这么一来gdb几乎成了瞎子,至少想简单修改变量是不可能了。

在对密钥列表进行解密之后,密钥Agent需要对业务进程和业务进程的PID合法性进行校验。如图5所示,业务模块首先建立unix域套接字,并建立第一文件描述符,然后,使用unix域套接字中的套接字SCM_RIGHTS将第一文件描述符传输至密钥Agent,以及利用套接字SCM_CREDENTIA向密钥Agent传输进程被内核所认证的进程PID。其中,SCM_RIGHTS和SCM_CREDENTIA均适用于unix domain socket,SCM_RIGHTS用于将一个进程中的描述符传输到另一个进程中,这种方法可以让一些只能在亲缘进程间通信的IPC扩展到非亲缘进程(如linux eventfd);SCM_CREDENTIA用于传输进程被内核所认证的进程PID。

发明人通过相关实验发现,在尝试过的所有方法(例如,异步IO,本地网络socket,unix域套接字,管道,边缘触发,一次recv/send多个请求,eventfd)和看到的所有文档中,加密效率仅次于共享内存的IPC,并明显快过管道和通常的unix域套接字,更不用提网络socket,实用性最好。

此时,在获取到进程PID之后,就可以对业务进程和进程PID的合法性进行校验,具体校验过程在上述步骤S1至步骤S5中进行详细描述,此处不再赘述。

进一步地,在合法性校验通过的情况下,密钥代理模块还可以向业务模块发送第一文件描述符eventfda,密钥代理模块在获取到第一文件描述符eventfda之后,将生成第二文件描述符eventfdb,并将第二文件描述符eventfdb发送至业务模块,以实现密钥代理模块和业务模块之间文件描述符的交换。

进一步地,在合法性校验通过的情况下,密钥代理模块还可以为第一文件描述符设置目标权限,其中,目标权限包括以下至少之一:允许密钥代理模块对业务模块请求的待加密的数据进行加密,允许密钥代理模块对业务模块请求的待解密的数据进行解密。

接下来,业务模块就可以向第一文件描述符eventfda在共享内存中对应的空间中进行写数据的操作,即,将待加密的数据写入第一文件描述符eventfda在共享内存中对应的区域中(write eventfda)。在写入之后,密钥代理模块就能够获知业务模块写入了数据,此时,密钥代理模块将从共享内存中读取待加密的数据(即,读第二文件描述符,read eventfdb),并读取之前为第一文件描述符eventfda配置的目标权限。

最后,在目标权限包括允许密钥代理模块对所述业务模块请求的待加密的数据进行加密时,密钥代理模块就可以从密钥列表中获取目标密钥,进而,密钥代理模块就可以根据获取到的目标密钥对待加密的数据进行加密操作。

需要说明的是,在本发明实施例中,只能通过eventfd直接传递8Bytes的数据,所以请求包(即,请求对待加密的数据进行加密的数据包)/响应包(即,已完成加密的待加密的数据的数据包)的主体会保存在共享内存中。

进一步地需要说明的是,把密钥保存在共享内存中是不安全,但是,把明文和密文保存在共享内存确是安全的。因为eventfd的8Byte可用来传输关键部分,这样攻击者就不能获取完整的密钥信息。

进一步地,如果SCM_CREDENTIA传递的PID出现错误时,表明此时sendmsg会返回-1,errno会被设置为3(表示进程不存在)或1(表示伪造其它进程)。

即:#define ESRCH 3/*No such process*/

#define EPERM 1/*Operation not permitted*/

进一步地,unix域套接字传递准确进程PID的前提是非root模式运行的进程,所以必须对密钥Agent的root模式的需求进行审批。

密钥代理模块还可以将socket套接字的选项配置为SO_PEERCRED,并通过socket套接字获取业务进程的所述进程PID。

下面将就具体实施例对本发明实施例进行说明。

假设,测试环境为以下环境:

机器:空闲机器、48核@2.6GHZ;

业务进程:60进程,4800协程,仅和Agent打交道;

密钥Agent:10进程;其中,业务进程和密钥Agent均自由运行,没有设置CPU优先级。

测试方式:

空服务:没有任何逻辑,测试网络框架本身的基础效率;

本地解密:直接解密微信票据;

票据=主票+从票;

主票:AES+非对称加密,16Bytes;

从票:对称加密+非对称加密,12Bytes;

密钥Agent解密:直接解密微信票据;

票据=主票+从票;

主票:AES加密,16Bytes;

从票:对称加密,12Bytes;

说明:由于密钥Agent大幅度强化了密钥安全,因此不再需要非对称加密。

压力测试结果:(整体CPU峰值)。

通过测试可知,5台外部测试机对测试业务的请求均达到约30W/S,其中,空服务为17%、本地解密为31%-33%、Agent解密为33%-34%。

8台外部测试机对测试业务的请求均达到约40W/S,其中,空服务为27-28%、本地解密为55%-56%、Agent解密为60%-61%。

由此可见,在极端情形下,密钥Agent方式相对于现有业务直接验证票据的方式增加的额外CPU负载很轻,极具实战价值。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

实施例2

根据本发明实施例,还提供了一种用于实施上述业务加密方法的业务加密装置。图6是根据本发明实施例的一种可选的业务加密装置的示意图,如图6所示,该装置可以包括:第一接收单元601、第一获取单元603、第一加密单元605和第一发送单元607,其中:

第一接收单元601,设置于密钥代理模块中,用于接收业务模块发送的加密请求,其中,加密请求中携带有待加密的数据。

第一获取单元603,设置于密钥代理模块中,用于从密钥列表中获取目标密钥,其中,密钥列表是预先从密钥服务器中拉取到的。

第一加密单元605,设置密钥代理模块中,用于使用目标密钥对待加密的数据进行加密,得到加密后的数据。

第一发送单元607,设置于密钥代理模块中,用于将加密后的数据发送给业务模块。

在本发明实施例中,通过密钥代理模块接收加密请求,然后,根据密钥请求获取目标密钥,接下来,通过目标密钥对待加密的数据进行加密,本发明实施例中提供的业务加密方式,达到了更加安全地为业务进行加密的目的,从而实现了提高了对业务进行加密时密钥安全性的技术效果,进而解决了现有技术中在对业务进行解密时密钥的安全性较低的技术问题。

可选地,第二发送单元,设置在密钥代理模块中,用于在密钥代理模块接收业务模块发送的加密请求之前,将第一公钥发送给密钥服务器,并从密钥服务器接收第二公钥,其中,密钥代理模块上具有一对第一公钥和第一私钥,密钥服务器上具有一对第二公钥和第二私钥;第三发送单元,设置在密钥代理模块中,用于向密钥服务器发送密钥列表拉取请求;第二接收单元,设置在密钥代理模块中,用于接收密钥服务器发送的加密后的密钥列表,其中,加密后的密钥列表是使用密钥服务器侧的第一通讯密钥对密钥列表进行加密得到的,第一通讯密钥是密钥服务器根据第一公钥和第二私钥生成得到的;解密单元,设置在密钥代理模块中,用于使用密钥代理模块侧的第二通讯密钥对加密后的密钥列表进行解密,得到密钥列表,其中,第二通讯密钥是密钥代理模块根据第一私钥和第二公钥生成得到的,第一通讯密钥与第二通讯密钥相同。

可选地,第二发送单元包括:第一发送模块,用于在密钥代理模块重启时,将加密后的第一公钥发送给密钥服务器,其中,加密后的第一公钥是使用约定密钥对第一公钥进行加密得到的;接收模块,用于接收加密后的第二公钥,其中,加密后的第二公钥是使用约定密钥对第二公钥进行加密得到的;解密模块,用于使用约定密钥对加密后的第二公钥进行解密,得到第二公钥;其中,约定密钥被设置为仅在密钥代理模块重启时使用。

可选地,装置该包括:第二获取单元,设置于密钥代理模块中,用于在密钥代理模块接收业务模块发送的加密请求之前,获取业务进程的进程PID,其中,业务进程为业务模块发送待加密的数据的进程;校验单元,设置于密钥代理模块中,用于对业务进程和进程PID进行合法性校验;以及第一获取单元包括:第一获取模块,设置于密钥代理模块中,用于在合法性校验通过的情况下,密钥代理模块从密钥列表中获取目标密钥。

可选地,校验单元包括:第二获取模块,用于获取与进程PID对应的进程全路径;第一判断模块,用于判断进程全路径是否属于预先从密钥服务器获取到的合法路径中的路径;校验模块,用于在判断出进程全路径属于合法路径中的路径的情况下,对业务进程进行MD5校验操作,得到第一MD5校验结果;第一确定模块,用于在判断出进程全路径不属于合法路径中的路径的情况下,判断出合法性校验不通过;第二判断模块,用于判断第一MD5校验结果是否与预先获取的与业务进程对应的第二MD5校验结果相同;第二确定模块,用于在判断出第一MD5校验结果与第二MD5校验结果相同的情况下,判断出合法性校验通过;第三确定模块,用于在判断出第一MD5校验结果与第二MD5校验结果不同的情况下,判断出合法性校验不通过。

可选地,装置还包括,第三获取单元,设置于密钥代理模块中,用于在密钥代理模块对业务进程和进程PID进行合法性校验之后,并在密钥代理模块接收业务模块发送的加密请求之前,在合法性校验通过的情况下,获取业务模块发送的第一文件描述符,其中,第一文件描述符用于密钥代理模块将业务模块发送的数据识别为合法数据;生成单元,设置于密钥代理模块中,用于生成第二文件描述符,其中,第二文件描述符用于业务模块将密钥代理模块发送的数据识别为合法数据;传输单元,设置于密钥代理模块中,用于将第二文件描述符传输给业务模块。

可选地,第一接收单元包括:第三获取模块,设置于密钥代理模块中,用于接收业务模块发送的加密请求包括:密钥代理模块从共享内存中获取业务模块存入的待加密的数据;第一发送单元包括:第二发送模块,设置于密钥代理模块中,用于将加密后的数据存入到共享内存中,以使得业务模块从共享内存中获取加密后的数据。

可选地,装置还包括,设置单元,设置于密钥代理模块中,用于在密钥代理模块对业务进程和进程PID进行合法性校验之后,并在密钥代理模块接收业务模块发送的加密请求之前,在合法性校验通过的情况下,密钥代理模块为第一文件描述符设置目标权限,其中,目标权限包括以下至少之一:允许密钥代理模块对业务模块请求的待加密的数据进行加密,允许密钥代理模块对业务模块请求的待解密的数据进行解密。

可选地,第一获取模块包括:获取子模块,用于允许密钥代理模块对业务模块请求的待加密的数据进行加密时,密钥代理模块从密钥列表中获取目标密钥。

可选地,第二获取单元包括:第四获取模块,用于在非root运行模式下通过unix域套接字获取业务进程的进程PID;或者,第五获取模块,用于将socket套接字的选项配置为SO_PEERCRED,并通过socket套接字获取业务进程的进程PID。

需要说明的是,该实施例中的第一接收单元601可以用于执行本申请实施例1中的步骤S202,该实施例中的第一获取单元603可以用于执行本申请实施例1中的步骤S204,该实施例中的第一加密单元605可以用于执行本申请实施例1中的步骤S206,该实施例中的第一发送单元607可以用于执行本申请实施例1中的步骤S208。

根据本发明实施例,还提供了一种用于实施上述业务解密方法的业务加密装置。图7是根据本发明实施例的一种可选的业务加密装置的示意图,如图7所示,该装置可以包括:第一接收单元701、第一获取单元703、第一解密单元705和第一发送单元707,其中:

第一接收单元,设置于密钥代理模块中,用于接收业务模块发送的解密请求,其中,解密请求中携带有待解密的数据。

第一获取单元,设置于密钥代理模块中,用于从密钥列表中获取目标密钥,其中,密钥列表是预先从密钥服务器中拉取到的。

第一解密单元,设置密钥代理模块中,用于使用目标密钥对待解密的数据进行解密,得到解密后的数据。

第一发送单元,设置于密钥代理模块中,用于将解密后的数据发送给业务模块。

在本发明实施例中,通过密钥代理模块接收解密请求,然后,根据密钥请求获取目标密钥,接下来,通过目标密钥对待解密的数据进行解密,本发明实施例中提供的业务解密方式,达到了更加安全地为业务进行解密的目的,从而实现了提高了对业务进行解密时密钥安全性的技术效果,进而解决了现有技术中在对业务进行解密时密钥的安全性较低的技术问题。

可选地,第二发送单元,设置在密钥代理模块中,用于在密钥代理模块接收业务模块发送的解密请求之前,将第一公钥发送给密钥服务器,并从密钥服务器接收第二公钥,其中,密钥代理模块上具有一对第一公钥和第一私钥,密钥服务器上具有一对第二公钥和第二私钥;第三发送单元,设置在密钥代理模块中,用于向密钥服务器发送密钥列表拉取请求;第二接收单元,设置在密钥代理模块中,用于接收密钥服务器发送的加密后的密钥列表,其中,加密后的密钥列表是使用密钥服务器侧的第一通讯密钥对密钥列表进行加密得到的,第一通讯密钥是密钥服务器根据第一公钥和第二私钥生成得到的;第二解密单元,设置在密钥代理模块中,用于使用密钥代理模块侧的第二通讯密钥对加密后的密钥列表进行解密,得到密钥列表,其中,第二通讯密钥是密钥代理模块根据第一私钥和第二公钥生成得到的,第一通讯密钥与第二通讯密钥相同。

可选地,第二发送单元包括:第一发送模块,用于在密钥代理模块重启时,将加密后的第一公钥发送给密钥服务器,其中,加密后的第一公钥是使用约定密钥对第一公钥进行加密得到的;接收模块,用于从密钥服务器接收加密后的第二公钥,其中,加密后的第二公钥是使用约定密钥对第二公钥进行加密得到的;解密模块,用于密钥代理模块使用约定密钥对加密后的第二公钥进行解密,得到第二公钥;其中,约定密钥被设置为仅在密钥代理模块重启时使用。

可选地,装置该包括:第二获取单元,设置于密钥代理模块中,用于在密钥代理模块接收业务模块发送的解密请求之前,获取业务进程的进程PID,其中,业务进程为业务模块发送待解密的数据的进程;校验单元,设置于密钥代理模块中,用于对业务进程和进程PID进行合法性校验;第一获取单元包括:第一获取模块,设置于密钥代理模块中,用于在合法性校验通过的情况下,密钥代理模块从密钥列表中获取目标密钥。

可选地,校验单元包括:第二获取模块,用于获取与进程PID对应的进程全路径;第一判断模块,用于判断进程全路径是否属于预先从密钥服务器获取到的合法路径中的路径;校验模块,用于在判断出进程全路径属于合法路径中的路径的情况下,对业务进程进行MD5校验操作,得到第一MD5校验结果;第一确定模块,用于在判断出进程全路径不属于合法路径中的路径的情况下,判断出合法性校验不通过;第二判断模块,用于判断第一MD5校验结果是否与预先获取的与业务进程对应的第二MD5校验结果相同;第二确定模块,用于在判断出第一MD5校验结果与第二MD5校验结果相同的情况下,判断出合法性校验通过;第三确定模块,用于在判断出第一MD5校验结果与第二MD5校验结果不同的情况下,判断出合法性校验不通过。

可选地,装置还包括,第三获取单元,设置于密钥代理模块中,用于在密钥代理模块对业务进程和进程PID进行合法性校验之后,并在密钥代理模块接收业务模块发送的解密请求之前,在合法性校验通过的情况下,获取业务模块发送的第一文件描述符,其中,第一文件描述符用于密钥代理模块将业务模块发送的数据识别为合法数据;生成单元,设置于密钥代理模块中,用于生成第二文件描述符,其中,第二文件描述符用于业务模块将密钥代理模块发送的数据识别为合法数据;传输单元,设置于密钥代理模块中,用于将第二文件描述符传输给业务模块。

可选地,第一接收单元包括:第三获取模块,设置于密钥代理模块中,用于接收业务模块发送的解密请求包括:密钥代理模块从共享内存中获取业务模块存入的待解密的数据;第一发送单元包括:第二发送模块,设置于密钥代理模块中,用于将解密后的数据存入到共享内存中,以使得业务模块从共享内存中获取解密后的数据。

可选地,装置还包括,设置单元,设置于密钥代理模块中,用于在密钥代理模块对业务进程和进程PID进行合法性校验之后,并在密钥代理模块接收业务模块发送的解密请求之前,在合法性校验通过的情况下,密钥代理模块为第一文件描述符设置目标权限,其中,目标权限包括以下至少之一:允许密钥代理模块对业务模块请求的待加密的数据进行加密,允许密钥代理模块对业务模块请求的待解密的数据进行解密。

可选地,第一获取模块包括:获取子模块,用于允许密钥代理模块对业务模块请求的待解密的数据进行解密时,密钥代理模块从密钥列表中获取目标密钥。

可选地,第二获取单元包括:第四获取模块,用于在非root运行模式下通过unix域套接字获取业务进程的进程PID;或者,第五获取模块,用于将socket套接字的选项配置为SO_PEERCRED,并通过socket套接字获取业务进程的进程PID。

需要说明的是,该实施例中的第一接收单元701可以用于执行本申请实施例1中的步骤S302,该实施例中的第一获取单元703可以用于执行本申请实施例1中的步骤S304,该实施例中的第一加密单元705可以用于执行本申请实施例1中的步骤S306,该实施例中的第一发送单元707可以用于执行本申请实施例1中的步骤S308。

此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现。

通过上述模块,可以解决了现有技术中在对业务进行解密时密钥的安全性较低的技术问题,从而实现了提高了对业务进行加密时密钥安全性的技术效果。

此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现,其中,硬件环境包括网络环境。

实施例3

根据本发明实施例,还提供了一种用于实施上述业务加密(或业务解密)方法的服务器或终端。

图8是根据本发明实施例的一种终端的结构框图,如图8所示,该终端可以包括:一个或多个(图中仅示出一个)处理器801(如上述实施例中的密钥代理模块)、存储器803、以及传输装置805(如上述实施例中的发送装置),如图8所示,该终端还可以包括输入输出设备807。

其中,存储器803可用于存储软件程序以及模块,如本发明实施例中的业务加密(或业务解密)方法和装置对应的程序指令/模块,处理器801通过运行存储在存储器803内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的业务加密(或业务解密)方法。存储器803可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器803可进一步包括相对于处理器801远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

上述的传输装置805用于经由一个网络接收或者发送数据,还可以用于处理器与存储器之间的数据传输。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置805包括一个网络适配器(Network Interface Controller,NIC),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置805为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。

其中,具体地,存储器803用于存储应用程序。

处理器801可以通过传输装置805调用存储器803存储的应用程序,以执行下述步骤:

处理器801还用于执行本发明提供的业务加密方法中的下述步骤:

接收业务模块发送的加密请求,其中,加密请求中携带有待加密的数据;从密钥列表中获取目标密钥,其中,密钥列表是预先从密钥服务器中拉取到的;使用目标密钥对待加密的数据进行加密,得到加密后的数据;密钥代理模块将加密后的数据发送给业务模块。

处理器801还用于执行下述步骤:将第一公钥发送给所述密钥服务器,并从所述密钥服务器接收第二公钥,其中,所述密钥代理模块上具有一对所述第一公钥和第一私钥,所述密钥服务器上具有一对所述第二公钥和第二私钥;向所述密钥服务器发送密钥列表拉取请求;所述密钥代理模块接收所述密钥服务器发送的加密后的密钥列表,其中,所述加密后的密钥列表是使用所述密钥服务器侧的第一通讯密钥对所述密钥列表进行加密得到的,所述第一通讯密钥是所述密钥服务器根据所述第一公钥和所述第二私钥生成得到的;使用所述密钥代理模块侧的第二通讯密钥对所述加密后的密钥列表进行解密,得到所述密钥列表,其中,所述第二通讯密钥是所述密钥代理模块根据所述第一私钥和所述第二公钥生成得到的,所述第一通讯密钥与所述第二通讯密钥相同。

处理器801还用于执行下述步骤:在所述密钥代理模块重启时,将加密后的所述第一公钥发送给所述密钥服务器,其中,所述加密后的所述第一公钥是使用约定密钥对所述第一公钥进行加密得到的;从所述密钥服务器接收加密后的所述第二公钥,其中,所述加密后的所述第二公钥是使用所述约定密钥对所述第二公钥进行加密得到的;使用所述约定密钥对所述加密后的第二公钥进行解密,得到所述第二公钥;其中,所述约定密钥被设置为仅在所述密钥代理模块重启时使用。

处理器801还用于执行下述步骤:在密钥代理模块接收业务模块发送的加密请求之前,获取业务进程的进程PID,其中,业务进程为业务模块发送待加密的数据的进程;对业务进程和进程PID进行合法性校验;从密钥列表中获取目标密钥包括:在合法性校验通过的情况下,密钥代理模块从密钥列表中获取目标密钥。

处理器801还用于执行下述步骤:获取与进程PID对应的进程全路径;判断进程全路径是否属于预先从密钥服务器获取到的合法路径中的路径;在判断出进程全路径属于合法路径中的路径的情况下,对业务进程进行MD5校验操作,得到第一MD5校验结果;在判断出进程全路径不属于合法路径中的路径的情况下,判断出合法性校验不通过;判断第一MD5校验结果是否与预先获取的与业务进程对应的第二MD5校验结果相同;若第一MD5校验结果与第二MD5校验结果相同,则判断出合法性校验通过;若第一MD5校验结果与第二MD5校验结果不同,则判断出合法性校验不通过。

处理器801还用于执行下述步骤:在密钥代理模块对业务进程和进程PID进行合法性校验之后,并在密钥代理模块接收业务模块发送的加密请求之前,且在合法性校验通过的情况下,获取业务模块发送的第一文件描述符,其中,第一文件描述符用于密钥代理模块将业务模块发送的数据识别为合法数据;生成第二文件描述符,其中,第二文件描述符用于业务模块将密钥代理模块发送的数据识别为合法数据;将第二文件描述符传输给业务模块。

处理器801还用于执行下述步骤:接收业务模块发送的加密请求包括:从共享内存中获取业务模块存入的待加密的数据;将加密后的数据发送给业务模块包括:将加密后的数据存入到共享内存中,以使得业务模块从共享内存中获取加密后的数据。

处理器801还用于执行下述步骤:在密钥代理模块对业务进程和进程PID进行合法性校验之后,并在密钥代理模块接收业务模块发送的加密请求之前,且在合法性校验通过的情况下,为第一文件描述符设置目标权限,其中,目标权限包括以下至少之一:允许密钥代理模块对业务模块请求的待加密的数据进行加密,允许密钥代理模块对业务模块请求的待解密的数据进行解密。

处理器801还用于执行下述步骤:在合法性校验通过的情况下,在目标权限包括允许密钥代理模块对业务模块请求的待加密的数据进行加密时,密钥代理模块从密钥列表中获取目标密钥。

处理器801还用于执行下述步骤:密钥代理模块在非root运行模式下通过unix域套接字获取业务进程的进程PID;或者,密钥代理模块将socket套接字的选项配置为SO_PEERCRED,并通过socket套接字获取业务进程的进程PID。

处理器801还用于执行本发明提供的业务解密方法中的下述步骤:

接收业务模块发送的解密请求,其中,解密请求中携带有待解密的数据;从密钥列表中获取目标密钥,其中,密钥列表是预先从密钥服务器中拉取到的;使用目标密钥对待解密的数据进行解密,得到解密后的数据;密钥代理模块将解密后的数据发送给业务模块。

处理器801还用于执行下述步骤:将第一公钥发送给所述密钥服务器,并从所述密钥服务器接收第二公钥,其中,所述密钥代理模块上具有一对所述第一公钥和第一私钥,所述密钥服务器上具有一对所述第二公钥和第二私钥;向所述密钥服务器发送密钥列表拉取请求;所述密钥代理模块接收所述密钥服务器发送的加密后的密钥列表,其中,所述加密后的密钥列表是使用所述密钥服务器侧的第一通讯密钥对所述密钥列表进行加密得到的,所述第一通讯密钥是所述密钥服务器根据所述第一公钥和所述第二私钥生成得到的;使用所述密钥代理模块侧的第二通讯密钥对所述加密后的密钥列表进行解密,得到所述密钥列表,其中,所述第二通讯密钥是所述密钥代理模块根据所述第一私钥和所述第二公钥生成得到的,所述第一通讯密钥与所述第二通讯密钥相同。

处理器801还用于执行下述步骤:在所述密钥代理模块重启时,将加密后的所述第一公钥发送给所述密钥服务器,其中,所述加密后的所述第一公钥是使用约定密钥对所述第一公钥进行加密得到的;从所述密钥服务器接收加密后的所述第二公钥,其中,所述加密后的所述第二公钥是使用所述约定密钥对所述第二公钥进行加密得到的;使用所述约定密钥对所述加密后的第二公钥进行解密,得到所述第二公钥;其中,所述约定密钥被设置为仅在所述密钥代理模块重启时使用。

处理器801还用于执行下述步骤:在密钥代理模块接收业务模块发送的解密请求之前,获取业务进程的进程PID,其中,业务进程为业务模块发送待解密的数据的进程;对业务进程和进程PID进行合法性校验;从密钥列表中获取目标密钥包括:在合法性校验通过的情况下,密钥代理模块从密钥列表中获取目标密钥。

处理器801还用于执行下述步骤:获取与进程PID对应的进程全路径;判断进程全路径是否属于预先从密钥服务器获取到的合法路径中的路径;在判断出进程全路径属于合法路径中的路径的情况下,对业务进程进行MD5校验操作,得到第一MD5校验结果;在判断出进程全路径不属于合法路径中的路径的情况下,判断出合法性校验不通过;判断第一MD5校验结果是否与预先获取的与业务进程对应的第二MD5校验结果相同;若第一MD5校验结果与第二MD5校验结果相同,则判断出合法性校验通过;若第一MD5校验结果与第二MD5校验结果不同,则判断出合法性校验不通过。

处理器801还用于执行下述步骤:在密钥代理模块对业务进程和进程PID进行合法性校验之后,并在密钥代理模块接收业务模块发送的解密请求之前,且在合法性校验通过的情况下,获取业务模块发送的第一文件描述符,其中,第一文件描述符用于密钥代理模块将业务模块发送的数据识别为合法数据;生成第二文件描述符,其中,第二文件描述符用于业务模块将密钥代理模块发送的数据识别为合法数据;将第二文件描述符传输给业务模块。

处理器801还用于执行下述步骤:接收业务模块发送的解密请求包括:从共享内存中获取业务模块存入的待解密的数据;将解密后的数据发送给业务模块包括:将解密后的数据存入到共享内存中,以使得业务模块从共享内存中获取解密后的数据。

处理器801还用于执行下述步骤:在密钥代理模块对业务进程和进程PID进行合法性校验之后,并在密钥代理模块接收业务模块发送的解密请求之前,且在合法性校验通过的情况下,为第一文件描述符设置目标权限,其中,目标权限包括以下至少之一:允许密钥代理模块对业务模块请求的待解密的数据进行解密,允许密钥代理模块对业务模块请求的待解密的数据进行解密。

处理器801还用于执行下述步骤:在合法性校验通过的情况下,在目标权限包括允许密钥代理模块对业务模块请求的待解密的数据进行解密时,密钥代理模块从密钥列表中获取目标密钥。

处理器801还用于执行下述步骤:密钥代理模块在非root运行模式下通过unix域套接字获取业务进程的进程PID;或者,密钥代理模块将socket套接字的选项配置为SO_PEERCRED,并通过socket套接字获取业务进程的进程PID。

采用本发明实施例,提供了一种业务加密(或业务解密)的方案。通过密钥代理模块接收加密(或解密)请求,然后,根据密钥请求获取目标密钥,接下来,通过目标密钥对待加密(或待解密)的数据进行加密,本发明实施例中提供的业务加密(或解密)方式,达到了更加安全地为业务进行加密(或解密)的目的,从而实现了提高了对业务进行加密(或解密)时密钥安全性的技术效果,进而解决了现有技术中在对业务进行解密时密钥的安全性较低的技术问题。

可选地,本实施例中的具体示例可以参考上述实施例1和实施例2中所描述的示例,本实施例在此不再赘述。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(Random Access Memory,RAM)、磁盘或光盘等。

实施例4

本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于执行业务加密方法的程序代码。

可选地,在本实施例中,上述存储介质可以位于上述实施例所示的网络中的多个网络设备中的至少一个网络设备上。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:

S11,密钥代理模块接收业务模块发送的加密请求,其中,加密请求中携带有待加密的数据;

S12,密钥代理模块从密钥列表中获取目标密钥,其中,密钥列表是预先从密钥服务器中拉取到的;

S13,密钥代理模块使用目标密钥对待加密的数据进行加密,得到加密后的数据;

S14,密钥代理模块将加密后的数据发送给业务模块。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:

S21,密钥代理模块接收业务模块发送的解密请求,其中,解密请求中携带有待解密的数据;

S22,密钥代理模块从密钥列表中获取目标密钥,其中,密钥列表是预先从密钥服务器中拉取到的;

S23,密钥代理模块使用目标密钥对待解密的数据进行解密,得到解密后的数据;

S24,密钥代理模块将解密后的数据发送给业务模块。

可选地,本实施例中的具体示例可以参考上述实施例1和实施例2中所描述的示例,本实施例在此不再赘述。

可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。

在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1