一种基于消息队列的数据安全传输方法与系统转让专利

申请号 : CN202210353716.4

文献号 : CN114553595B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 杨剑南

申请人 : 重庆伏特猫科技有限公司

摘要 :

本发明公开了一种基于消息队列的数据安全传输方法与系统,涉及数据传输技术领域,解决了现有技术在基于消息队列进行数据传输的过程中,没有对数据本身进行加密,导致数据传输安全性低的技术问题;本发明对若干子数据的顺序进行重排,进而获取数据重排序列和数据发送顺序,根据数据发送数据将若干子数据依次发送至消息队列中,并将数据重排序列穿插在若干子数据之间,以实现对目标数据的加密传输,保证数据传输的安全性;本发明还通过不同的加密算法对若干子数据进行分别加密,以及将数据重排序列穿插在消息队列中若干子数据之间,降低了传输过程中目标数据泄露的可能性,进而提高目标数据的安全传输。

权利要求 :

1.一种基于消息队列的数据安全传输系统,包括生产端、消息队列服务端和消费端,且消息队列服务端分别与生产端、消费端通信和/或电气连接,其特征在于:通过所述消息队列服务端对所述生产端和所述消费端进行身份验证;

所述生产端生产消息数据并发送至所述消息队列服务端,所述消息队列服务端根据所述消费端的数据请求从所述消息数据中筛选目标数据;

所述消息队列服务端对所述目标数据进行划分获取若干子数据,对若干所述子数据的顺序进行重排,结合若干子数据重排前后的顺序生成数据重排序列,同时确定若干所述子数据的数据发送顺序;

将若干所述子数据按照所述数据发送顺序发送至消息队列,同时将所述数据重排序列穿插在消息队列中的若干所述子数据中间发送至所述消费端;

所述消息队列服务端对若干所述子数据进行重排,获取数据重排序列,包括:

在重排之前,随机生成若干个不重复的自然数,每个自然数与一个所述子数据关联;

按照自然数由大到小或者由小到大的顺序对关联的所述子数据进行重排,获取数据重排序列;其中,所述数据重排序列包括若干自然数以及若干所述自然数在对应所述子数据重排之前的位置编号;

所述消息队列服务端对若干所述子数据的顺序进行重排时,通过加密方式对若干所述子数据进行加密;以及将所述加密方式的加密标签添加进所述数据重排序列中;其中,数据重排序列穿插在消息队列中若干子数据之间,只有在获取到全部子数据,以及数据重排序列才能获取完整的目标数据。

2.根据权利要求1所述的一种基于消息队列的数据安全传输系统,其特征在于,所述消息队列服务端通过分发方式将若干所述子数据发送至所述消费端;其中,分发方式包括点对点模式和发布/订阅模式;

消息队列服务端在接收到消息数据时,根据所述分发方式生成数据请求。

3.根据权利要求1所述的一种基于消息队列的数据安全传输系统,其特征在于,所述消息队列服务端根据所述目标数据的数据量确定划分方式,根据所述划分方式将所述目标数据划分成若干所述子数据;其中,所述划分方式包括按照预设份数或者按照预设数据量。

4.根据权利要求3所述的一种基于消息队列的数据安全传输系统,其特征在于,所述消息队列服务端按照预设份数对所述目标数据进行划分,获取若干所述子数据,包括:计算所述目标数据的数据量;当所述目标数据的数据量小于数据量阈值时,则获取预设份数,并按照所述预设份数将所述目标数据划分成若干所述子数据;其中,所述数据量阈值根据实际经验设定。

5.根据权利要求4所述的一种基于消息队列的数据安全传输系统,其特征在于,当所述目标数据的数据量大于等于数据量阈值时,则获取预设数据量,并按照所述预设数据量将所述目标数据划分成若干所述子数据;

6.一种基于消息队列的数据安全传输方法,基于权利要求1至5任意一项所述的一种基于消息队列的数据安全传输系统运行,其特征在于,包括:通过消息队列服务端对生产端和消费端进行身份验证;所述消息队列服务端根据所述消费端的数据请求从所述生产端发送的消息数据中筛选目标数据;

所述消息队列服务端对所述目标数据进行划分获取若干子数据,对若干所述子数据的顺序进行重排,结合若干子数据重排前后的顺序生成数据重排序列,同时确定若干所述子数据的数据发送顺序;

将若干所述子数据按照所述数据发送顺序发送至消息队列,同时将所述数据重排序列穿插在消息队列中的若干所述子数据中间发送至所述消费端。

说明书 :

一种基于消息队列的数据安全传输方法与系统

技术领域

[0001] 本发明属于数据传输技术领域,涉及数据安全传输技术,具体是一种基于消息队列的数据安全传输方法与系统。

背景技术

[0002] 消息队列是分布式系统中重要的组件,可以理解为是在消息传输过程中保存消息的容器,在很多需要控制并发量的场景下都能够用到;因此基于消息队列的数据安全传输非常重要。
[0003] 现有技术(公开号为CN107454186A的发明专利)公开了一种基于消息队列的数据安全传输方法,通过将内外网之间的强隔离装置替换成正反向网闸设备,并结合ToprowMQ实现正反向网闸设备的消息管理,以提高数据传输效率和安全性。现有技术在进行数据传输的过程中,仅仅加强了内外网之间的数据传输管理,而没有对数据本身进行加密,一旦数据泄露,则会导致数据安全问题;因此,亟须一种基于消息队列的数据安全传输方法与系统。

发明内容

[0004] 本发明旨在至少解决现有技术中存在的技术问题之一;为此,本发明提出了一种基于消息队列的数据安全传输方法与系统,用于解决现有技术在基于消息队列进行数据传输的过程中,没有对数据本身进行加密,导致数据传输安全性低的技术问题。
[0005] 本发明通过设置的消息队列服务端对目标数据进行划分获取若干子数据,对若干子数据的顺序进行重排,进而获取数据重排序列和数据发送顺序,根据数据发送数据将若干子数据依次发送至消息队列中,并将数据重排序列穿插在若干子数据之间,以实现对目标数据的加密传输,保证数据传输的安全性。
[0006] 为实现上述目的,本发明的第一方面提供了一种基于消息队列的数据安全传输系统,包括生产端、消息队列服务端和消费端,且消息队列服务端分别与生产端、消费端通信和/或电气连接;
[0007] 通过所述消息队列服务端对所述生产端和所述消费端进行身份验证;
[0008] 所述生产端生产消息数据并发送至所述消息队列服务端,所述消息队列服务端根据所述消费端的数据请求从所述消息数据中筛选目标数据;
[0009] 所述消息队列服务端对所述目标数据进行划分获取若干子数据,对若干所述子数据的顺序进行重排,结合若干子数据重排前后的顺序生成数据重排序列,同时确定若干所述子数据的数据发送顺序;
[0010] 将若干所述子数据按照所述数据发送顺序发送至消息队列,同时将所述数据重排序列穿插在消息队列中的若干所述子数据中间发送至所述消费端。
[0011] 优选的,所述消息队列服务端通过分发方式将若干所述子数据发送至所述消费端;其中,分发方式包括点对点模式和发布/订阅模式;
[0012] 所述消息队列服务端在接收到消息数据时,根据所述分发方式生成数据请求。
[0013] 优选的,所述消息队列服务端根据所述目标数据的数据量确定划分方式,根据所述划分方式将所述目标数据划分成若干所述子数据;其中,所述划分方式包括按照预设份数或者按照预设数据量。
[0014] 优选的,所述消息队列服务端按照预设份数对所述目标数据进行划分,获取若干所述子数据,包括:
[0015] 计算所述目标数据的数据量;
[0016] 当所述目标数据的数据量小于数据量阈值时,则获取预设份数,并按照所述预设份数将所述目标数据划分成若干所述子数据;其中,所述数据量阈值根据实际经验设定。
[0017] 优选的,当所述目标数据的数据量大于等于数据量阈值时,则获取预设数据量,并按照所述预设数据量将所述目标数据划分成若干所述子数据。
[0018] 优选的,所述消息队列服务端对若干所述子数据进行重排,获取数据重排序列,包括:
[0019] 在重排之前,随机生成若干个不重复的自然数,每个自然数与一个所述子数据关联;
[0020] 按照自然数由大到小或者由小到大的顺序对关联的所述子数据进行重排,获取数据重排序列;其中,所述数据重排序列包括若干自然数以及若干所述自然数在对应所述子数据重排之前的位置编号。
[0021] 优选的,所述消息队列服务端对若干所述子数据的顺序进行重排时,任选两种加密方式对若干所述子数据进行加密;以及
[0022] 将两种所述加密方式的加密标签添加进所述数据重排序列中。
[0023] 本发明的第二方面提供了一种基于消息队列的数据安全传输方法,包括:
[0024] 通过消息队列服务端对生产端和消费端进行身份验证;所述消息队列服务端根据所述消费端的数据请求从所述生产端发送的消息数据中筛选目标数据;
[0025] 所述消息队列服务端对所述目标数据进行划分获取若干子数据,对若干所述子数据的顺序进行重排,结合若干子数据重排前后的顺序生成数据重排序列,同时确定若干所述子数据的数据发送顺序;
[0026] 将若干所述子数据按照所述数据发送顺序发送至消息队列,同时将所述数据重排序列穿插在消息队列中的若干所述子数据中间发送至所述消费端。
[0027] 与现有技术相比,本发明的有益效果是:
[0028] 1、本发明通过设置的消息队列服务端对目标数据进行划分获取若干子数据,对若干子数据的顺序进行重排,进而获取数据重排序列和数据发送顺序,根据数据发送数据将若干子数据依次发送至消息队列中,并将数据重排序列穿插在若干子数据之间,以实现对目标数据的加密传输,保证数据传输的安全性。
[0029] 2、本发明还通过不同的加密算法对若干子数据进行分别加密,同时将加密算法对应的加密标签记录在数据重排序列中,以及将数据重排序列穿插在消息队列中若干子数据之间,降低了传输过程中目标数据泄露的可能性,进而提高目标数据的安全传输。

附图说明

[0030] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0031] 图1为本发明的工作步骤示意图。

具体实施方式

[0032] 下面将结合实施例对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
[0033] 现有技术(公开号为CN107454186A的发明专利)公开了一种基于消息队列的数据安全传输方法,通过将内外网之间的强隔离装置替换成正反向网闸设备,并结合ToprowMQ实现正反向网闸设备的消息管理,以提高数据传输效率和安全性。现有技术在进行数据传输的过程中,仅仅加强了内外网之间的数据传输管理,而没有对数据本身进行加密,一旦数据泄露,则会导致数据安全问题。
[0034] 本发明通过设置的消息队列服务端对目标数据进行划分获取若干子数据,对若干子数据的顺序进行重排,进而获取数据重排序列和数据发送顺序,根据数据发送数据将若干子数据依次发送至消息队列中,并将数据重排序列穿插在若干子数据之间,以实现对目标数据的加密传输,保证数据传输的安全性。
[0035] 请参阅图1,本申请第一方面实施例提供了一种基于消息队列的数据安全传输系统,包括生产端、消息队列服务端和消费端,且消息队列服务端分别与生产端、消费端通信和/或电气连接;
[0036] 通过消息队列服务端对生产端和消费端进行身份验证;
[0037] 生产端生产消息数据并发送至消息队列服务端,消息队列服务端根据消费端的数据请求从消息数据中筛选目标数据;
[0038] 消息队列服务端对目标数据进行划分获取若干子数据,对若干子数据的顺序进行重排,结合若干子数据重排前后的顺序生成数据重排序列,同时确定若干子数据的数据发送顺序;
[0039] 将若干子数据按照数据发送顺序发送至消息队列,同时将数据重排序列穿插在消息队列中的若干子数据中间发送至消费端。
[0040] 本申请中生产端和消费端通过消息队列服务端连接起来;生产端用于生成和发布消息数据,消费端用于订阅消息数据,而消息队列服务端依据相应的数据传输规则实现生产端和消费端之间的数据交互;生产端和消费端均是如智能手机、电脑等智能终端。
[0041] 本申请中在进行生产端和消费端之间的数据交互之前,需要对二者进行身份验证;身份验证主要是验证生产端和消费端的合法性,避免通过不合法的智能终端产生非法数据。
[0042] 本申请中消息队列服务端通过分发方式将若干子数据发送至消费端;消息队列服务端在接收到消息数据时,根据分发方式生成数据请求。
[0043] 可以理解的是,分发方式包括点对点模式和发布/订阅模式;在消息队列服务端接收到消息数据之后,及时根据分发方式生成数据请求。可以理解的是,在生成数据请求之前,还需对消费端的权限进行校验,保证数据请求所请求的消息数据与消费端的权限一致。
[0044] 在一个优选的实施例中,消息队列服务端根据目标数据的数据量确定划分方式,根据划分方式将目标数据划分成若干子数据。
[0045] 将目标数据完整发送时,一旦目标数据泄露,则相当于目标数据完全被窃取;本实施例在对数据进行传输之前,将目标数据划分成若干子数据,某一子数据的泄露并不会导致整条目标数据被窃取,能够提高数据传输的安全性。
[0046] 在一个具体的实施例中,消息队列服务端按照预设份数对目标数据进行划分,获取若干子数据,包括:
[0047] 计算目标数据的数据量;
[0048] 当目标数据的数据量小于数据量阈值时,则获取预设份数,并按照预设份数将目标数据划分成若干子数据。
[0049] 本实施例按照预设份数对目标数据进行划分时,需要先计算目标数据的数据量,如果数据量过大,则会导致每个子数据的数据量也大,影响传输效率。
[0050] 通过举例说明本实施例:
[0051] 假设目标数据的数据量为5k,数据量阈值为10k,预设份数为5份;
[0052] 则根据本实施例技术方案,应该按照预设份数将目标数据划分成5份,则每个子数据大小为1k。
[0053] 在另外一些优选的实施例中,目标数据可以是多条消息数据,在进行数据量判断时,则应该对多条消息数据综合判断,如果目标数据中的多条消息数据的数据总量小于数据量阈值,则按照预设份数对目标数据进行划分。
[0054] 可以理解的是,当目标数据中包含多条消息数据时,则按照预设份数对目标数据进行划分时,目标数据中的多条消息数据可以并列划分,也可以首尾相连完成划分。
[0055] 在另外一个具体的实施例中,当目标数据的数据量大于等于数据量阈值时,则获取预设数据量,并按照预设数据量将目标数据划分成若干子数据。
[0056] 可以理解的是,按照预设数据量划分出来的子数据,对应的数据量应不大于预设数据量,且预设数据量的设置应能够有助于消息队列进行数据传输。
[0057] 在一个优选的实施例中,消息队列服务端对若干子数据进行重排,获取数据重排序列,包括:
[0058] 在重排之前,随机生成若干个不重复的自然数,每个自然数与一个子数据关联;
[0059] 按照自然数由大到小或者由小到大的顺序对关联的子数据进行重排,获取数据重排序列。
[0060] 本实施例是将划分之后的若干子数据打乱重排,以实现子数据的安全传输;通过举例说明本实施例:
[0061] 假设有5个子数据,以及5个不重复的自然数[6,5,3,2,1];自然数6与第一个子数据关联,自然数5与第二个子数据关联,类推……
[0062] 将自然数按照从小到大的顺序重排,重排之后的顺序为[1,2,3,5,6],关联的子数据也按照这个顺序重排;
[0063] 根据自然数重排前后的顺序生成的数据重排序列[[1,5],[2,4],[3,3],[5,2],[6,1]];其中的[1,5]是指自然数1对应的子数据在原目标数据中处于5号位置。
[0064] 可以理解的是,数据发送顺序即为重排之后的顺序,如上述的[1,2,3,5,6]。
[0065] 在另外一个优选的实施例中,消息队列服务端对若干子数据的顺序进行重排时,任选两种加密方式对若干子数据进行加密;以及
[0066] 将两种加密方式的加密标签添加进数据重排序列中。
[0067] 在该实施例中,消费端接收到数据重排序列之后,调整子数据顺序获取目标数据的正确顺序,再通过数据重排序列中加密标签对子数据进行解密,即可获取完整可读的目标数据。可以理解的是,消费端和生产端之间的加密标签与加密算法之间的映射关系是共享的。
[0068] 值得注意的是,数据重排序列是穿插在消息队列中若干子数据之间的,即只有在获取到全部子数据,以及数据重排序列才能获取完整的目标数据,保证了在数据传输过程中,不会因数据重排序列或者个别子数据的泄露而导致数据传输安全问题。
[0069] 本申请第二方面实施例提供了一种基于消息队列的数据安全传输方法,包括:
[0070] 通过消息队列服务端对生产端和消费端进行身份验证;消息队列服务端根据消费端的数据请求从生产端发送的消息数据中筛选目标数据;
[0071] 消息队列服务端对目标数据进行划分获取若干子数据,对若干子数据的顺序进行重排,结合若干子数据重排前后的顺序生成数据重排序列,同时确定若干子数据的数据发送顺序;
[0072] 将若干子数据按照数据发送顺序发送至消息队列,同时将数据重排序列穿插在消息队列中的若干子数据中间发送至消费端。
[0073] 本发明的工作原理:
[0074] 通过消息队列服务端对生产端和消费端进行身份验证;消息队列服务端根据消费端的数据请求从生产端发送的消息数据中筛选目标数据。
[0075] 消息队列服务端对目标数据进行划分获取若干子数据,对若干子数据的顺序进行重排,结合若干子数据重排前后的顺序生成数据重排序列,同时确定若干子数据的数据发送顺序。
[0076] 将若干子数据按照数据发送顺序发送至消息队列,同时将数据重排序列穿插在消息队列中的若干子数据中间发送至消费端。
[0077] 以上实施例仅用以说明本发明的技术方法而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方法进行修改或等同替换,而不脱离本发明技术方法的精神和范围。