基于区块链的抗勒索病毒的数据备份系统及数据存储方法与流程

文档序号:31699760发布日期:2022-10-01 07:31阅读:249来源:国知局
基于区块链的抗勒索病毒的数据备份系统及数据存储方法与流程

1.本发明属于区块链和数据存储技术领域,特别是涉及一种基于区块链的抗勒索病毒的数据备份系统及数据存储方法。


背景技术:

2.勒索病毒是一种新型网络攻击方式,与其他攻击不同,它利用操作系统漏洞,使得黑客使用系统自身密码api,生成随机加密密钥,并对系统重要数据进行加密后,删除原始数据。因此,只要系统具有漏洞,则这种攻击就成立,事实上难以防护。近年来,国内外不少政府、企业遭受到这种攻击,损失惨重。勒索病毒的对策主要有2种:第一种策略是对系统及时打补丁,使得漏洞及时被修复,然而,未知漏洞、零日漏洞、未能及时修复的系统的存在,使得这种策略不能避免所有的勒索病毒;另一种策略是将系统数据及时备份,然而,本地备份同样遭受勒索病毒的威胁,而远程备份则可能面临数据同步不及时、并可能进一步引起拒绝服务攻击等风险。


技术实现要素:

3.为了解决上述现有技术的不足,本发明提供了一种基于区块链的抗勒索病毒的数据备份系统及数据存储方法,该系统通过在目标系统与区块链系统之间加入认证网关,屏蔽了外部对于区块链系统的连接,有效保护了区块链系统数据存储的可靠性,而该方法通过对备份数据加密后进行编码,可以保证不同目标系统的数据相互不干扰,也避免了由于区块链系统产生的数据泄漏。
4.本发明的第一个目的在于提供一种基于区块链的抗勒索病毒的数据备份系统。
5.本发明的第二个目的在于提供一种基于区块链的抗勒索病毒的数据存储方法。
6.本发明的第一个目的可以通过采取如下技术方案达到:
7.一种基于区块链的抗勒索病毒的数据备份系统,所述系统包括多个目标系统、认证网关和区块链系统,用于对所述目标系统的数据进行实时、可靠地数据备份并对抗拒绝服务攻击,实现勒索病毒的数据防护,其中:
8.所述目标系统为需要进行数据备份的业务系统;
9.所述认证网关为独立系统,只对所述目标系统和区块链系统进行连接,用于对所述目标系统的身份进行认证以及通过数据标识区分不同用户的数据;
10.所述区块链系统包括上层区块链操作模块与底层区块链网络,由区块链节点组成,用于实现数据存储服务;
11.通过将多个目标系统、认证网关和区块链系统分别部署在不同的云上,实现数据安全。
12.进一步地,所述认证网关采用负载均衡的方式部署,即在网关处部署nginx或haproxy。
13.本发明的第二个目的可以通过采取如下技术方案达到:
14.一种基于区块链的抗勒索病毒的数据存储方法,所述方法包括数据备份和数据恢复,其中:
15.所述数据备份包括:
16.所述目标系统准备备份数据;
17.所述目标系统与认证网关通过连接进行双向认证,若认证不通过,则返回“失败”,并终止本次连接;否则:
18.将所述备份数据上传至认证网关;
19.所述认证网关将所述备份数据转发至区块链系统;
20.所述区块链系统将所述备份数据写入本地数据库,若写入成功,则:
21.所述区块链网络返回bi,并将本次数据备份的结果返回至认证网关,同时将所述结果和bi写入本地数据库,其中,bi为所述备份数据在本地数据库中的位置;
22.所述认证网关将所述结果写入本地数据库并返回给目标系统,所述目标系统将所述结果写入本地数据库;
23.所述数据恢复包括:
24.所述目标系统向认证网关发起数据恢复请求;
25.若所述认证网关认证请求的发起方不是合法的目标系统,或者所述认证网关的本地数据库中没有所述数据恢复请求对应的数据备份的结果,则返回“失败”,并终止本次连接,否则:
26.所述认证网关将所述数据恢复请求对应的数据备份的结果发送给区块链系统;
27.所述区块链系统检查本地数据库中是否存在所述数据恢复请求对应的数据备份的结果和bi,若存在,则根据bi查找到对应的备份数据,并将对应的备份数据返回给认证网关;
28.所述认证网关将对应的备份数据返回给目标系统,所述目标系统对其进行解码,恢复原始备份数据。
29.进一步地,所述备份数据包括数据标识与数据体,其中:
30.所述数据标识包括所述目标系统中用户的身份标识和备份时间;
31.所述数据体为所述目标系统中待备份数据的编码数据。
32.进一步地,所述编码数据为对所述目标系统中待备份数据进行加密、再将加密后的数据进行编码得到的数据。
33.进一步地,对所述目标系统中待备份数据进行加密前,对所述待备份数据进行预处理,得到预处理后待备份数据。
34.进一步地,对所述待备份数据进行预处理,得到预处理后待备份数据,包括:
35.若所述待备份数据为多个字段,则以十六进制区分字符“0000ffff”作为分割,并进行合并连接,在末尾填入“0000ffff”作为一个字符串处理,所述字符串即为预处理后待备份数据;
36.若所述待备份数据为文件,则以其二进制的编码包括eof结束字符,作为一个字符串处理,所述字符串即为预处理后待备份数据。
37.进一步地,设所述预处理后待备份数据为字符串m,长度为l;
38.所述编码数据为对所述目标系统中待备份数据进行加密、再将加密后的数据进行
编码得到的数据,包括:
39.根据字符串m生成256比特随机字符串r;
40.使用公私钥对(pk,sk)中业务系统公钥pk对r采用公钥加密算法进行加密,得到密文c0;
41.使用伪随机发生器,以r作为种子,生成l比特伪随机字符串s;
42.令c1=s xor m;
43.使用r作为密钥,对co、c1及l生成的消息认证码为c2;
44.c=c0||c1||c2||l,其中,c为编码数据,即为所述数据体,||为字符串连接符。
45.进一步地,所述公钥加密算法为国密sm2加密算法,所述消息认证码采用哈希运算消息认证码算法。
46.进一步地,所述目标系统对其进行解码,恢复原始备份数据,包括:
47.若c不满足c=c0||c1||c2||l的格式,则返回“失败”,结束解码,否则:
48.使用自身sk,对c0解密,得到字符串r;
49.若字符串r不为256比特字符串,则返回“失败”,结束解码,否则:
50.设l1为c1的比特长度;
51.使用消息认证码的验证算法,以字符串r为私钥,若c2不为c0、c1、l1的消息认证码,或者l≠l1,则返回“失败”,结束解码,否则:
52.使用字符串r作为种子,使用随机数发生器生成l1比特随机数s1;
53.m1=s1 xor c1,其中,m1为原始备份数据。
54.本发明相对于现有技术具有如下的有益效果:
55.1、本发明提供的系统,通过在目标系统与区块链系统之间加入认证网关,屏蔽了外部对于区块链系统的连接,即避免了拒绝服务攻击,有效保护了区块链系统数据存储的可靠性。
56.2、本发明中的认证网关采用负载均衡的方式部署,即使在拒绝服务攻击发生时,也可以有效保护区块链系统不被外部攻击。
57.3、本发明提供的方法,通过对备份数据加密后进行编码,可以保证不同目标系统的数据相互不干扰,也避免了由于区块链系统产生的数据泄漏;同时通过远程备份和区块链存储多点一致的特点,可以同时避免系统漏洞以及备份数据被勒索病毒侵蚀的问题,具有高安全性的优势。
附图说明
58.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图示出的结构获得其他的附图。
59.图1为本发明实施例的基于区块链的抗勒索病毒的数据备份系统的结构框架示意图。
60.图2为本发明实施例的基于区块链的抗勒索病毒的数据存储方法的流程示意图。
具体实施方式
61.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。应当理解,描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
62.实施例:
63.如图1所示,本实施例提供的基于区块链的抗勒索病毒的数据备份系统,该系统是基于多云环境下的,包括多个目标系统、认证网关和区块链系统,用于实现勒索病毒的数据防护,实现对目标系统的数据进行实时、可靠地数据备份并可以对抗拒绝服务攻击,其中:
64.目标系统为需要进行数据备份的业务系统;
65.认证网关为独立系统,只对目标系统和区块链系统进行连接(实际中可采取vpn等技术手段保证),用于对目标系统的身份进行认证,以及通过数据标识区分不同用户的数据;认证网关采用负载均衡的方式部署,即在网关处部署nginx或haproxy,若在网关处部署nginx,则使用加权轮询方法,确定发送给区块链系统各个节点的顺序;
66.区块链系统包含上层区块链操作模块与底层区块链网络,区块链网络由区块链节点组成,区块链系统用于实现数据存储服务,通过数据标识区分不同用户的数据。
67.为了实现数据安全的目标,将多个目标系统、认证网关和区块链系统分别部署在不同云上。
68.本实施例还提供一种基于区块链的抗勒索病毒的数据存储方法,基于上述系统实现,该方法包括数据备份和数据恢复两个阶段,具体过程如图2所示,其中:
69.数据备份阶段:
70.(1)目标系统准备好备份数据:备份数据由数据标识id与数据体data构成,记为《id,data》。其中id包含了用户身份标识、备份时间等数据构成,而数据体data为目标系统备份数据的编码数据。其中,数据编码方法如下:
71.(1-1)预处理:
72.(a)如数据为多个字段,则以特定十六进制区分字符“o000ffff”作为分割,合并连接,在末尾填入“o000ffff”作为一个字符串处理。
73.(b)如数据为文件,则以其二进制的编码(包括eof结束字符)作为一个字符串处理。
74.(1-2)编码:
75.(a)设输入字符串为m,其长度为l;生成256比特随机字符串r。
76.(b)另专用公私钥对(pk,sk)。使用密钥为业务系统公钥pk对r加密得到密文c0。不失一般性,公钥加密算法可以采用国密sm2加密算法。
77.(c)使用伪随机发生器,以r作为种子,生成l比特伪随机字符串s。
78.(d)令c1=s xor m,其中“xor”为“逐比特异或”操作。
79.(e)令c2为“使用r作为密钥,对co、c1及l生成的消息认证码”。不失一般性,消息认证码可以采用hmac算法(哈希运算消息认证码算法)。
80.(f)编码数据为c=c0||c1||c2||l;其中“||”为字符串连接。
81.(2)目标系统与认证网关进行双向认证后上传备份数据c,其中认证方法遵循网络认证方法(如tls、vpn、ipsec等)。如认证不通过,则返回“失败”,并终止本次连接;否则,继续执行步骤(3)。
82.(3)目标系统将备份数据转发给区块链系统。
83.(4)区块链系统将备份数据写入本地数据库,如成功,区块链网络返回bi,bi为数据在区块链网络中的记录位置(区块高度)。
84.(5)区块链系统将本次数据备份结果《suc,id》返回给认证网关,并将《suc,id,bi》写入本地数据库。
85.(6)认证网关将本次数据备份结果《suc,id》返回给目标系统,并将《suc,id》写入本地数据库。
86.数据恢复阶段:
87.(7)目标系统发起数据恢复请求id。
88.(8)认证网关认证请求的发起方为合法目标系统,且此系统此前曾经做过成功备份,即本地数据库中存在《suc,id》数据。如以上2点中任意一点不满足,则返回“失败”,并终止本次连接;否则,继续执行步骤(9)。
89.(9)认证网关将《suc,id》发送给区块链系统。
90.(10)区块链系统检查本地数据库存在《suc,id,bi》数据,则根据bi查找到id对应的数据data,将《id,data》返回给认证网关。
91.(11)认证网关将《id,data》返回给目标系统。目标系统首先对data解码,恢复原始备份数据m,其解码过程如下:
92.(11-1)c不满足c=c0||c1||c2||l的格式,如不满足,返回“失败”,结束;否则,继续执行步骤(11-2)。
93.(11-2)使用自身sk,对c0解密,得到字符串r;
94.若字符串r不为256比特字符串,则返回“失败”,结束;否则,继续执行步骤(11-3)。
95.(11-3)使用消息认证码的验证算法,以字符串r为私钥,检验c2是否为c0、c1、l1的消息认证码,并且l=l1,其中l1为c1的比特长度,如不满足以上两个条件,返回“失败”,结束;否则,继续执行步骤(11-4)。
96.(11-4)使用字符串r作为种子,使用随机数发生器生成l1比特随机数s1,其中,l1为c1的比特长度。令m1=s1 xor c1,输出m1。
97.本领域技术人员可以理解,实现上述实施例的方法中的全部或部分步骤可以通过程序来指令相关的硬件来完成,相应的程序可以存储于计算机可读存储介质中。
98.应当注意,尽管在附图中以特定顺序描述了上述实施例的方法操作,但是这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。相反,描绘的步骤可以改变执行顺序。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
99.以上所述,仅为本发明专利较佳的实施例,但本发明专利的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明专利所公开的范围内,根据本发明专利的技术方案及其发明构思加以等同替换或改变,都属于本发明专利的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1