CN112115495B - 可离线云端数据存储方法、系统、计算机设备及存储介质 - Google Patents
可离线云端数据存储方法、系统、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN112115495B CN112115495B CN202011021558.XA CN202011021558A CN112115495B CN 112115495 B CN112115495 B CN 112115495B CN 202011021558 A CN202011021558 A CN 202011021558A CN 112115495 B CN112115495 B CN 112115495B
- Authority
- CN
- China
- Prior art keywords
- data
- target
- encrypted
- space
- encryption
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 87
- 238000013500 data storage Methods 0.000 title claims abstract description 67
- 230000001360 synchronised effect Effects 0.000 claims description 41
- 238000004590 computer program Methods 0.000 claims description 16
- 238000004806 packaging method and process Methods 0.000 claims description 6
- 238000012217 deletion Methods 0.000 claims description 4
- 230000037430 deletion Effects 0.000 claims description 4
- 238000005516 engineering process Methods 0.000 abstract description 2
- 238000005192 partition Methods 0.000 description 53
- 230000008569 process Effects 0.000 description 41
- 238000010586 diagram Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 8
- 238000001514 detection method Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 238000000638 solvent extraction Methods 0.000 description 6
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000002441 reversible effect Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000005538 encapsulation Methods 0.000 description 2
- 238000012552 review Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Abstract
本发明公开了可离线云端数据存储方法、系统、计算机设备及存储介质,涉及云存储技术,包括若检测到用户可信区域内任意可信终端发送的数据存储指令,获取与数据存储指令对应的待存储数据,并获取与数据存储指令对应的目标存储空间;将待存储数据同步写入本地数据区域,将待存储数据异步写入加密数据区域;若检测到用户可信区域内任意可信终端发送的云端数据同步指令,获取与云端数据同步指令对应的目标同步空间;获取另一加密数据区域中每一加密数据及对应的数据头,将另一加密数据区域中每一加密数据及对应的数据头同步至云服务器。实现了将数据存储在用户可信区域内的数据加密终端上,用户数据隐私安全可控,提高了数据安全性。
Description
技术领域
本发明涉及云存储技术领域,尤其涉及一种可离线云端数据存储方法、系统、计算机设备及存储介质。
背景技术
目前,传统的SaaS系统(SaaS全称是Software-as-a-Service,表示软件即服务,即通过网络提供软件服务),SaaS平台供应商将应用软件统一部署在自己的服务器上,客户可以根据工作实际需求,通过互联网向厂商定购所需的应用软件服务。
传统的SaaS系统的数据交互过程是用户通过程序直接访问本地缓存数据,或是通过程序直接访问云服务器的云端数据本地程序代码与云端交互,也即通过用户端的本地程序代码直接与云端交互,实现数据互动。
但是传统的SaaS系统有以下缺陷:
1)用户数据位于SaaS平台供应商的云服务器端,用户数据隐私不可控,数据安全性低;
2)应用在离线状态下时无法使用云端数据;
3)用户端云端数据使用性能低,受制于云端服务器。
发明内容
本发明实施例提供了一种可离线云端数据存储方法、系统、计算机设备及存储介质,旨在解决现有技术中用户端与SaaS系统进行通讯时,用户数据位于SaaS平台供应商的云服务器端,用户数据隐私不可控,数据安全性低的问题。
第一方面,本发明实施例提供了一种可离线云端数据存储方法,应用于用户可信区域内的数据加密终端,其包括:
若检测到用户可信区域内任意可信终端发送的数据存储指令,获取与所述数据存储指令对应的待存储数据,并获取与所述数据存储指令对应的目标存储空间;其中,所述目标存储空间中包括本地数据区域和加密数据区域;
将所述待存储数据同步写入本地数据区域,将所述待存储数据异步写入加密数据区域;其中,所述本地数据区域中包括用于存储未加密数据的工作空间,和用于存储加密数据的加密空间;
若检测到用户可信区域内任意可信终端发送的云端数据同步指令,获取与所述云端数据同步指令对应的目标同步空间;其中,所述目标同步空间中包括另一本地数据区域和另一加密数据区域;所述另一本地数据区域中包括用于存储未加密数据的另一工作空间,和用于存储加密数据的另一加密空间;以及获取所述另一加密数据区域中每一加密数据及对应的数据头,将所述另一加密数据区域中每一加密数据及对应的数据头同步至云服务器。
第二方面,本发明实施例还提供了一种可离线云端数据存储方法,应用于用户可信区域内的可信终端,其包括:
若检测到与可信终端位于同一用户可信区域内另一可信终端发送的终端数据同步指令,接收所述另一可信终端发送的另一可信终端本地数据区域内的数据和另一可信终端加密数据区域内的数据;
将另一可信终端本地数据区域内的数据和另一可信终端加密数据区域的数据与可信终端内的数据进行合并和去重,得到合并去重结果;
将所述合并去重结果发送至所述另一可信终端。
第三方面,本发明实施例提供了一种可离线云端数据存储系统,其包括:数据加密终端以及至少一个可信终端,所述数据加密终端用于执行上述第一方面所述可离线云端数据存储方法,所述可信终端用于执行上述第二方面所述的可离线云端数据存储方法。
第四方面,本发明实施例又提供了一种计算机设备,其包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面所述的可离线云端数据存储方法,或者所述处理器执行所述计算机程序时实现上述第二方面所述的可离线云端数据存储方法。
第五方面,本发明实施例还提供了一种计算机可读存储介质,其中所述计算机可读存储介质存储有计算机程序,所述计算机程序当被处理器执行时使所述处理器执行上述第一方面所述的可离线云端数据存储方法,或者所述计算机程序当被处理器执行时使所述处理器执行上述第二方面所述的可离线云端数据存储方法。
本发明实施例提供了一种可离线云端数据存储方法、系统、计算机设备及存储介质,包括若检测到用户可信区域内任意可信终端发送的数据存储指令,获取与所述数据存储指令对应的待存储数据,并获取与所述数据存储指令对应的目标存储空间;将所述待存储数据同步写入本地数据区域,将所述待存储数据异步写入加密数据区域;若检测到用户可信区域内任意可信终端发送的云端数据同步指令,获取与所述云端数据同步指令对应的目标同步空间;获取所述另一加密数据区域中每一加密数据及对应的数据头,将所述另一加密数据区域中每一加密数据及对应的数据头同步至云服务器。实现了将数据存储在用户可信区域内的数据加密终端上,用户数据隐私安全可控,提高了数据安全性。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的可离线云端数据存储方法的应用场景示意图;
图2为本发明实施例提供的可离线云端数据存储方法的流程示意图;
图3为本发明实施例提供的可离线云端数据存储方法中数据加密终端的数据分区划分结构示意图;
图4为本发明实施例提供的可离线云端数据存储方法的另一流程示意图;
图5为本发明实施例提供的可离线云端数据存储系统的示意性框图;
图6为本发明实施例提供的计算机设备的示意性框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
为了更清楚的理解本申请的技术方案,下面结合图1的应用场景示意图对本申请所涉及到的终端进行详细介绍。本申请在数据加密终端和可信终端两个角度分别描述技术方案。
一是数据加密终端,其可以理解为一个具有数据加密和存储功能的服务器,其与若干个可信终端部署于同一用户可信区域,这样该用户可信区域内的任意一个可信终端上传的用户数据先存储在数据加密终端内,对数据加密后再同步至云服务器。
二是可信终端,其可以理解为与数据加密终端处于同一用户可信区域内的智能终端,用户操作该智能终端与数据加密终端可以进行数据交互,且智能终端上传至数据加密终端的数据可在数据加密终端中加密存储。而且处于同一用户可信区域内任意两个可信终端之间可以相互同步数据。
三是云服务器,用于同步数据加密终端中的加密数据,以对加密数据进行存储。
请参阅图1和图2,图1为本发明实施例提供的可离线云端数据存储方法的应用场景示意图;图2为本发明实施例提供的可离线云端数据存储方法的流程示意图,该可离线云端数据存储方法应用于数据加密终端中,该方法通过安装于数据加密终端中的应用软件进行执行。其中,所述数据加密终端可以是服务器;服务器可以是独立的服务器,也可以是多个服务器组成的服务器集群。
如图2所示,该方法包括步骤S110~S140。
S110、若检测到用户可信区域内任意可信终端发送的数据存储指令,获取与所述数据存储指令对应的待存储数据,并获取与所述数据存储指令对应的目标存储空间;其中,所述目标存储空间中包括本地数据区域和加密数据区域。
在本实施例中,当数据加密终端检测到用户可信区域内任意可信终端发送的数据存储指令,表示此时可信终端需将用户数据发送至数据加密终端进行存储。
为了在所述数据加密终端中对各个可信终端的数据分区进行存储,可以在所述数据加密终端中划分多个数据分区,每一数据分区对应存储一个可信终端的数据。
例如,在同一用户可信区域内包括可信终端A、可信终端B、可信终端C、可信终端D及数据加密终端,则将数据加密终端中划分4个数据分区,分别记为数据分区1-数据分区4。此时可将数据分区1用于存储可信终端A的数据,数据分区2用于存储可信终端B的数据、数据分区3用于存储可信终端C的数据、数据分区4用于存储可信终端D的数据。若数据加密终端检测到可信终端A发送的数据存储指令,此时需要在数据加密终端中获取与数据加密终端对应的数据分区1以作为目标存储空间,同时还需获取可信终端A发送的数据存储指令对应的待存储数据。
其中,在数据加密终端中任意一个数据分区中,都是将其再次细分为2个分区,分别是本地数据区域和加密数据区域。其中本地数据区域又划分为用于存储未加密数据的工作空间,和用于存储加密数据的加密空间,数据分区的具体划分结构参考图3。基于数据加密终端中的上述数据分区方式,后续步骤对待存储数据的存储过程进行详细介绍。
S120、将所述待存储数据同步写入本地数据区域,将所述待存储数据异步写入加密数据区域;其中,所述本地数据区域中包括用于存储未加密数据的工作空间,和用于存储加密数据的加密空间。
在本实施例中,继续参考上述举例的可信终端A发送待存储数据至数据分区1进行存储的实例进行数据加密存储过程进行介绍。
其中,为了将可信终端A发送的待存储数据进行存储,此时可以先将待存储数据同步存储于数据分区1的本地数据区域,然后对数据进行加密后异步存储于加密数据区域。在将待存储数据同步存储于数据分区1的本地数据区域时,逻辑简单,无需加密,无需解决冲突,数据使用性能高。在将待存储数据异步存储于数据分区1的加密数据区域时,采用后台进程,将本地数据区域中更新的内容写入到加密数据区域。
在一实施例中,步骤S120中将所述待存储数据异步写入加密数据区域的步骤,包括:
通过单例模式创建拷贝线程,并保存拷贝线程对应的当前时间戳;
通过拷贝线程获取工作空间中数据更新时时间戳小于所述当前时间戳且未加密的目标拷贝数据,将目标拷贝数据拷贝至加密空间;
同步创建多个数据加密线程,以对所述目标拷贝数据同步进行可逆加密,得到加密目标拷贝数据;
若检测到加密空间的数据条件满足预设的数据删除触发条件,将加密空间的加密目标拷贝数据拷贝至加密数据区域,删除加密空间中的加密目标拷贝数据。
在本实施例中,将所述待存储数据异步写入加密数据区域时,具体过程如下:
A1)数据加密终端中通过单例模式创建拷贝线程ct(copythread),同时记录保存下创建拷贝线程ct的当前时间戳t1;其中拷贝线程至多只能有一个,单例模式的拷贝线程有助于减少冲突等情况的发生;且为了减少系统性能开销,拷贝线程使用完成后,无需进行销毁,下次使用时,只需要更新当前时间戳t1即可;
A2)拷贝线程ct将工作空间中数据更新的时间戳小于当前时间戳t1并且未加密的目标拷贝数据,将目标拷贝数据拷贝至加密空间;其中,在创建拷贝线程ct之前,待存储数据已经先全部存储于工作空间中;
A3)拷贝线程ct完成本次拷贝任务后,加密空间中同步创建出多个数据加密线程,以对所述目标拷贝数据同步进行可逆加密(例如RSA、SM4等加密算法都是可逆加密算法),得到加密目标拷贝数据;数据加密过程相对独立,可提高效率,每个数据加密线程可以加密1个或多个数据;
A4)在数据删除触发条件下(例如,按时间轮训、工作空间数据已经全部完成加密、进行数据拷贝之前、加密空间已满等),将加密空间的加密目标拷贝数据拷贝至加密数据区域,删除加密空间中的加密目标拷贝数据。
通过上述A1)-A4)的执行过程,实现了将待存储数据异步写入加密数据区域,这样可信终端发送至数据加密终端中存储的数据,均是加密存储,提高了数据安全性。
在一实施例中,所述同步创建多个数据加密线程,以对所述目标拷贝数据同步进行可逆加密,得到加密目标拷贝数据的步骤之后,还包括:
将所述加密目标拷贝数据中各条子加密目标拷贝数据的明文数据与所述目标拷贝数据中对应的子目标拷贝数据进行比较,判断是否存在有子加密目标拷贝数据的明文数据与对应子目标拷贝数据不相同;
若存在有子加密目标拷贝数据的明文数据与对应子目标拷贝数据不相同,获取对应的目标子加密目标拷贝数据以组成待删除数据集,将所述待删除数据集从加密目标拷贝数据中删除以更新加密目标拷贝数据。
在本实施例中,例如将数据分区1的工作空间中已存储的待存储数据拷贝至加密空间时,还需判断待存储数据中是否有一条或多条数据发生的数据更新或改变。例如有一个数据加密线程完成对工作空间中数据X的加密过程后,得到对应的加密数据X’(加密数据X’是存储在加密空间中的),还需再次去工作空间中复核加密数据X’对应的明文数据是否与数据X相同。
若加密数据X’对应的明文数据与数据X相同,表示工作空间中数据X在加密过程中未受可信终端再次传输数据的影响发生改变,此时无需将加密空间中的加密数据X’删除,而且还可以将工作空间中与加密数据X’相对应的数据X增加一个已加密的加密标识。
若加密数据X’对应的明文数据与数据X不相同,表示工作空间中数据X在加密过程中受可信终端再次传输数据的影响发生改变(即此时的数据X不再是前一时刻的数据X,已经发生了数据更新),此时加密空间中的加密数据X’不能与工作空间中的一个未加密数据相对应,故需要将这一类的加密数据X’从加密空间中删除。
通过这一对加密空间中所有已加密数据的复查,能确保加密空间中存储的加密数据能在工作空间中找到与其成对的原始数据,使得加密空间中不存在冗余数据。
S130、若检测到用户可信区域内任意可信终端发送的云端数据同步指令,获取与所述云端数据同步指令对应的目标同步空间;其中,所述目标同步空间中包括另一本地数据区域和另一加密数据区域;所述另一本地数据区域中包括用于存储未加密数据的另一工作空间,和用于存储加密数据的另一加密空间。
上述的步骤S110-S120描述了将可信终端中的数据加密存储于数据加密终端中的技术方案,在本实施例中,继续描述将可信终端中的数据经过数据加密终端的处理而同步至云服务器的过程。与在数据加密终端中进行数据分区一样,在云服务器的存储区域中也能进行数据分区,每一可信终端同步至云服务器的加密数据均有一个专属存储区域。
例如,当数据加密终端接收到了可信终端B发送的云端数据同步指令,此时可以根据该云端数据同步指令在数据加密终端中定位数据分区2,以数据分区2作为目标同步空间。之后需将数据分区2中的加密数据同步至云服务器。
S140、获取所述另一加密数据区域中每一加密数据及对应的数据头,将所述另一加密数据区域中每一加密数据及对应的数据头同步至云服务器。
在本实施例中,若用户可信区域内的可信终端发送云端数据同步指令至数据加密终端之前,已默认将可信终端中的数据同步至数据加密终端,此时一旦可信终端再发送一个云端数据同步指令至数据加密终端,数据加密终端会将该可信终端之前已同步至数据加密终端内且加过密的数据同步上传至云服务器,这样使得云服务器中存储的都是加密数据(即无明文数据),用户数据隐私可控,数据安全性得到提高。
其中,数据加密终端将目标同步空间中另一加密数据区域中存储的均是已完成加密的数据,此时获取所述另一加密数据区域中每一加密数据及对应的数据头,将所述另一加密数据区域中每一加密数据及对应的数据头同步至云服务器即可完成数据同步至云端的过程。
在一实施例中,步骤S140包括:
获取每一加密数据及对应的数据头中所包括的通用唯一识别码、加密标志位、同步标志位、数据特征值、创建时间、更新时间、上一次同步的时间,将每一加密数据串接在对应的数据头的上一次同步的时间字段值,以组成与每一加密数据对应的封装数据,将每一封装数据同步至云服务器。
在本实施例中,当本地数据区域中的数据经过加密存储到了加密数据区域中后,可以每一加密数据对应增加一个数据头完成数据封装。具体可以对每一加密数据增加由通用唯一识别码、加密标志位、同步标志位、数据特征值、创建时间、更新时间、上一次同步的时间这些字段及对应字段值组成的数据头。
同样的,在本地数据区域中存储的所有未加密数据,也可以是增加上述相同格式的数据头。其中:
通用唯一识别码(英文简称为UUID)是加密数据的唯一标识,其具有全局唯一的特性;
加密标志位用于标识该数据是否为加密数据,具体字段取值为已加密、未加密、加密中的其中任意一个;
同步标志位用于标识该数据是否已同步至云服务器、可信终端或是数据加密终端中,具体字段取值为同步中、未同步的其中任意一个;
数据特征值是通过对未加密数据通过哈希算法运算得到的完整数据的特征值,用于快速比对数据是否一致;
创建时间,用于标识该数据初次创建的时间;
更新时间,用于标识该数据最近一次发生数据更新的时间;例如当本地数据区域中该条数据被另一条更新数据替代时的时间,或者是该条数据完成加密时的时间;
上一次同步的时间,用于标识该数据上一次同步至云服务器的时间。
由于加密数据或未加密的数据均是增加了上述格式的数据头,这样将数据同步至其他终端或服务器中时,能准确解析该数据的信息。
在一实施例中,步骤S140之后还包括:
生成与所述云端数据同步指令对应的云服务器信息同步信息列表,保存所述服务器信息同步信息列表;其中,所述云服务器信息同步信息列表中包括云服务器MAC地址、上一次同步状态标示值、上一次同步数据的哈希值、上一次同步的第一个数据、上一次同步时间。
在本实施例中,由于步骤S140中实现了将数据加密终端中的加密数据同步至云服务器,此时可以在数据加密终端的本地生成与所述云端数据同步指令对应的云服务器信息同步信息列表,以记录此次数据同步过程。在所述云服务器信息同步信息列表中包括云服务器MAC地址、上一次同步状态标示值、上一次同步数据的哈希值、上一次同步的第一个数据、上一次同步时间,其中:
云服务器MAC地址表示数据同步至目标云服务器所具有的MAC地址,具体实施云服务器MAC地址这一字段可由云服务器IP地址、云服务器的域名或者云服务器的设备唯一标识其中任意一种来代替;
上一次同步状态标示值用于表示最近一次同步数据至云服务器的过程是否已完成,若已完成则取值为1;
上一次同步数据的哈希值用于表示最近一次同步数据至云服务器的数据的哈希值;
上一次同步的第一个数据用于表示最近一次同步数据至云服务器的数据中第一个数据;
上一次同步时间用于表示最近一次同步数据至云服务器的同步时间。
在一实施例中,步骤S140之后或者步骤S110之前,还包括:
若检测到用户可信区域内任意可信终端发送的数据读取指令,获取与所述数据读取指令对应的目标读取空间;其中,所述目标读取空间中包括目标读取空间本地数据区域和目标读取空间加密数据区域;所述目标读取空间本地数据区域中包括用于存储未加密数据的目标读取空间工作空间,和用于存储加密数据的目标读取空间加密空间;
判断所述目标读取空间中是否存在与所述数据读取指令对应的目标读取数据;
若所述目标读取空间中存在与所述数据读取指令对应的目标读取数据,将所述目标读取数据发送至对应的可信终端;
若所述目标读取空间中不存在与所述数据读取指令对应的目标读取数据,将云服务器中与所述目标读取空间对应的数据同步至所述目标读取空间,以同步更新所述目标读取空间中的数据;
判断同步更新后的目标读取空间中是否存在与所述数据读取指令对应的目标读取数据;
若同步更新后的目标读取空间中存在与所述数据读取指令对应的目标读取数据,将所述目标读取数据发送至对应的可信终端;
若同步更新后的目标读取空间中不存在与所述数据读取指令对应的目标读取数据,将用于提示目标数据不存在的提示信息发送至对应的可信终端。
在本实施例中,对应描述的技术方案是如何将数据从数据加密设备读取至可信终端。具体实施时,是通过数据加密终端实时检测是否接收到可信终端发送的数据读取指令。
例如,当数据加密终端检测到可信终端C发送的数据读取指令,先在数据加密终端中定位与可信终端C对应的数据分区3,以数据分区3作为目标读取空间。
由于在数据读取指令中一般对应附加有程序代码以获取目标读取数据,此时在数据加密终端的目标读取空间中判断是否存在对应的目标读取数据。
若所述目标读取空间中存在与所述数据读取指令对应的目标读取数据,此时直接将目标读取数据发送至可信终端C。
若所述目标读取空间中不存在与所述数据读取指令对应的目标读取数据,可以触发数据加密终端从云服务器中同步与可信终端C对应的加密数据,即将云服务器中与所述目标读取空间对应的数据同步至所述目标读取空间,以同步更新所述目标读取空间中的数据。
在完成了云服务器中的数据同步过程之后,进一步判断同步更新后的目标读取空间中是否存在与所述数据读取指令对应的目标读取数据。若同步更新后的目标读取空间中存在与所述数据读取指令对应的目标读取数据,将所述目标读取数据发送至对应的可信终端;若同步更新后的目标读取空间中不存在与所述数据读取指令对应的目标读取数据,将用于提示目标数据不存在的提示信息发送至对应的可信终端。
请参阅图1和图4,图4为本发明另一实施例提供的可离线云端数据存储方法的流程示意图,该可离线云端数据存储方法应用于可信终端中,该方法通过安装于可信终端中的应用软件进行执行。其中,所述可信终端可以是智能手机、平板电脑、笔记本电脑、台式电脑等具有通信功能的电子设备。
如图4所示,该方法包括步骤S210~S230。
S210、若检测到与可信终端位于同一用户可信区域内另一可信终端发送的终端数据同步指令,接收所述另一可信终端发送的另一可信终端本地数据区域内的数据和另一可信终端加密数据区域内的数据;
S220、将另一可信终端本地数据区域内的数据和另一可信终端加密数据区域的数据与可信终端内的数据进行合并和去重,得到合并去重结果;
S230、将所述合并去重结果发送至所述另一可信终端。
在本实施例中,还可在可信终端的角度描述技术方案。处于同一可信区域内的任意两个可信终端之间也可以同步数据。在可信终端内的存取区域内,也参考数据加密终端中也可以划分为本地数据区域和加密数据区域,其中本地数据区域又划分为用于存储未加密数据的工作空间,和用于存储加密数据的加密空间,数据分区的具体划分结构参考图3。
例如,将步骤S210中可信终端记为可信终端A,将另一可信终端记为可信终端B,可信终端B是主动连接可信终端A并向其发送终端数据同步指令。当可信终端A接收到可信终端B发送的终端数据同步指令时,将可信终端B中的本地数据区域(可信终端B中的本地数据区域也即步骤S210中的另一可信终端本地数据区域)内的数据发送至可信终端A。
更具体的如可信终端B的本地数据区域中存储有data1、data2和date3,可信终端B的加密数据区域中存储有与data1对应的encrypt-data1、与data2对应的encrypt-data2、和与data3对应的encrypt-date3;可信终端A的本地数据区域中存储有data1和date5,可信终端A的加密数据区域中存储有与data1对应的encrypt-data1、与data5对应的encrypt-data5;可信终端A与可信终端B之间点对点的数据同步过程如下:
B1)可信终端B将data1、data2、date3、encrypt-date1、encrypt-date2、encrypt-date3发送至可信终端A;
B2)可信终端A中将data1、data2、date3存储至可信终端本地数据区域,之后与原有的data1和data5进行合并,此时可信终端A的可信终端本地数据区域中存储有data1、data5、data1、data2、date3;可信终端A中将encrypt-date1、encrypt-date2、encrypt-date3存储至可信终端加密数据区域,之后与原有的encrypt-date1和encrypt-date5进行合并,此时可信终端A的可信终端加密数据区域中存储有encrypt-date1、encrypt-date5、encrypt-date1、encrypt-date2、encrypt-date3;
B3)将可信终端A的可信终端本地数据区域中存储的data1、data5、data1、data2、date3中重复的data1进行去重处理后,可信终端A的可信终端本地数据区域中当前存储有data1、data5、data2、date3;将可信终端A的可信终端加密数据区域中存储的encrypt-date1、encrypt-date5、encrypt-date1、encrypt-date2、encrypt-date3中重复的encrypt-date1进行去重处理后,可信终端A的可信终端加密数据区域中存储有encrypt-date1、encrypt-date5、encrypt-date2、encrypt-date3。
B4)将可信终端A的可信终端本地数据区域中当前存储有data1、data5、data2、date3,以及可信终端A的可信终端加密数据区域中存储有encrypt-date1、encrypt-date5、encrypt-date2、encrypt-date3作为合并去重结果发送至可信终端B;
B5)可信终端B接收到可信终端发送的合并去重结果后,参考如步骤B2)-B3)中的合并去除过程,可信终端B中最终的数据存储结果与可信终端A中完全一致。
可见,处在同一用户可信区域内的任意两个可信终端之间可以相互同步加密数据。
其中,步骤S230之后还包括:
生成与所述终端数据同步指令对应的p2p同步信息列表,保存所述p2p同步信息列表;其中,所述p2p同步信息列表中包括可信终端设备MAC地址、终端上一次同步状态标示值、终端上一次同步数据的哈希值、终端上一次同步的第一个数据、终端上一次同步时间。
在本实施例中,p2p同步信息列表中包括的信息与云服务器信息同步信息列表中的字段格式基本相同,唯一区别在于是采用可信终端设备MAC地址而非云服务器MAC地址,其余字段表示的含义可完全参考云服务器信息同步信息列表中的字段。
在加密数据终端的角度描述技术方案时,具体说明了可信终端通过加密数据终端将数据同步至云服务器的过程。此时在可信终端的角度描述技术方案,以具体说明可信终端如何从云服务器同步数据的过程。
此处以可信终端D从云服务器中的可信设备连接状态信息与可信终端C建立点对点连接以同步新数据为例来具体说明:
C1)可信终端D接收云服务器发送的可信设备连接状态信息,例如可信终端D需从云服务器中同步到可信终端C的加密数据,此时判断可信设备连接状态信息中是否包括可信终端C的在线状态信息;
C2)若可信设备连接状态信息中包括可信终端C的在线状态信息,可信终端D直接与可信终端C建立点对点连接进行数据同步。
通过上述步骤C1)-C2)可知,将云端同步,解析为了本地同步,原因是因为云端只存有加密数据。如果通过加密数据得到原始数据,不仅性能低,而且速度慢。但上述步骤C1)-C2)对应的流程,仅适用于与云服务器通讯连接且要求同步数据的可信终端数量较少的情况。例如可信终端数量较少这一情况对应的设备数量阈值可配置,比如2(即可信终端数量不大于2则认为可信终端数量较少,一旦可信终端数量大于2则认为可信终端数量较多),当云服务器检测出所有的新增数据,所涉及的可信终端不大于2,则进行上述步骤C1)-C2)对应的流程。当所涉及的可信终端数较多时(例如涉及到3个可信终端),原本的一次云端同步将转为多次点对点同步。衡量设备数量阈值,主要根据网络通信耗时,加密解密耗时。
当可信终端如何从云服务器同步数据所涉及的可信终端数量大于设备数量阈值时,将直接采用云端同步并还原数据的流程。即可信终端D直接从云服务器中下载所有的增量数据(这些增量数据可以理解为可信终端D上一次从云服务器同步数据之后又新上传至云服务器的数据),通过解析每个数据的数据头,获取数据归属,通过数据归属,从对应的可信终端获取密钥信息,进行数据解密。例如可信终端D从云服务器中下载的其中一个增量数据Y归属于可信终端A,此时可信终端D在本地获取与可信终端A对应的密钥信息以对增量数据Y进行解密,得到对应的解密数据;若可信终端D在本地未获取到与可信终端A对应的密钥信息,此时可信终端D直接与可信终端A点对点连接获取可信终端A中的密钥信息以对增量数据Y进行解密,得到对应的解密数据。若可信终端D无法连接可信终端A,则增量数据Y标注为待解密状态,直到后续连接上可信终端A获取密钥信息后进行解密,得到增量数据Y对应的解密数据。
该方法实现了将数据存储在用户可信区域内的数据加密终端上,用户数据隐私安全可控,提高了数据安全性。
本发明实施例还提供一种可离线云端数据存储系统,该可离线云端数据存储系统包括数据加密终端以及至少一个可信终端,数据加密终端用于执行前述可离线云端数据存储方法的任一实施例,可信终端用于执行前述可离线云端数据存储方法的任一实施例。具体地,请参阅图5,图5是本发明实施例提供的可离线云端数据存储系统的示意性框图。该可离线云端数据存储系统10包括数据加密终端100以及至少一个可信终端200,数据加密终端100可以配置于服务器中,可信终端可以被配置于台式电脑、平板电脑、手提电脑、等终端中。
如图5所示,数据加密终端100包括:数据存储指令检测单元110、待存储数据写入单元120、云端数据同步指令检测单元130、云端同步单元140。
数据存储指令检测单元110,用于若检测到用户可信区域内任意可信终端发送的数据存储指令,获取与所述数据存储指令对应的待存储数据,并获取与所述数据存储指令对应的目标存储空间;其中,所述目标存储空间中包括本地数据区域和加密数据区域。
在本实施例中,当数据加密终端检测到用户可信区域内任意可信终端发送的数据存储指令,表示此时可信终端需将用户数据发送至数据加密终端进行存储。
为了在所述数据加密终端中对各个可信终端的数据分区进行存储,可以在所述数据加密终端中划分多个数据分区,每一数据分区对应存储一个可信终端的数据。
例如,在同一用户可信区域内包括可信终端A、可信终端B、可信终端C、可信终端D及数据加密终端,则将数据加密终端中划分4个数据分区,分别记为数据分区1-数据分区4。此时可将数据分区1用于存储可信终端A的数据,数据分区2用于存储可信终端B的数据、数据分区3用于存储可信终端C的数据、数据分区4用于存储可信终端D的数据。若数据加密终端检测到可信终端A发送的数据存储指令,此时需要在数据加密终端中获取与数据加密终端对应的数据分区1以作为目标存储空间,同时还需获取可信终端A发送的数据存储指令对应的待存储数据。
其中,在数据加密终端中任意一个数据分区中,都是将其再次细分为2个分区,分别是本地数据区域和加密数据区域。其中本地数据区域又划分为用于存储未加密数据的工作空间,和用于存储加密数据的加密空间,数据分区的具体划分结构参考图3。基于数据加密终端中的上述数据分区方式,后续步骤对待存储数据的存储过程进行详细介绍。
待存储数据写入单元120,用于将所述待存储数据同步写入本地数据区域,将所述待存储数据异步写入加密数据区域;其中,所述本地数据区域中包括用于存储未加密数据的工作空间,和用于存储加密数据的加密空间。
在本实施例中,继续参考上述举例的可信终端A发送待存储数据至数据分区1进行存储的实例进行数据加密存储过程进行介绍。
其中,为了将可信终端A发送的待存储数据进行存储,此时可以先将待存储数据同步存储于数据分区1的本地数据区域,然后对数据进行加密后异步存储于加密数据区域。在将待存储数据同步存储于数据分区1的本地数据区域时,逻辑简单,无需加密,无需解决冲突,数据使用性能高。在将待存储数据异步存储于数据分区1的加密数据区域时,采用后台进程,将本地数据区域中更新的内容写入到加密数据区域。
在一实施例中,所述待存储数据写入单元120,包括:
拷贝线程创建单元,用于通过单例模式创建拷贝线程,并保存拷贝线程对应的当前时间戳;
目标拷贝数据获取单元,用于通过拷贝线程获取工作空间中数据更新时时间戳小于所述当前时间戳且未加密的目标拷贝数据,将目标拷贝数据拷贝至加密空间;
拷贝数据加密单元,用于同步创建多个数据加密线程,以对所述目标拷贝数据同步进行可逆加密,得到加密目标拷贝数据;
加密拷贝数据删除单元,用于若检测到加密空间的数据条件满足预设的数据删除触发条件,将加密空间的加密目标拷贝数据拷贝至加密数据区域,删除加密空间中的加密目标拷贝数据。
在本实施例中,将所述待存储数据异步写入加密数据区域时,具体过程如下:
A1)数据加密终端中通过单例模式创建拷贝线程ct(copy thread),同时记录保存下创建拷贝线程ct的当前时间戳t1;其中拷贝线程至多只能有一个,单例模式的拷贝线程有助于减少冲突等情况的发生;且为了减少系统性能开销,拷贝线程使用完成后,无需进行销毁,下次使用时,只需要更新当前时间戳t1即可;
A2)拷贝线程ct将工作空间中数据更新的时间戳小于当前时间戳t1并且未加密的目标拷贝数据,将目标拷贝数据拷贝至加密空间;其中,在创建拷贝线程ct之前,待存储数据已经先全部存储于工作空间中;
A3)拷贝线程ct完成本次拷贝任务后,加密空间中同步创建出多个数据加密线程,以对所述目标拷贝数据同步进行可逆加密(例如RSA、SM4等加密算法都是可逆加密算法),得到加密目标拷贝数据;数据加密过程相对独立,可提高效率,每个数据加密线程可以加密1个或多个数据;
A4)在数据删除触发条件下(例如,按时间轮训、工作空间数据已经全部完成加密、进行数据拷贝之前、加密空间已满等),将加密空间的加密目标拷贝数据拷贝至加密数据区域,删除加密空间中的加密目标拷贝数据。
通过上述A1)-A4)的执行过程,实现了将待存储数据异步写入加密数据区域,这样可信终端发送至数据加密终端中存储的数据,均是加密存储,提高了数据安全性。
在一实施例中,所述所述待存储数据写入单元120,还包括:
拷贝数据比较单元,用于将所述加密目标拷贝数据中各条子加密目标拷贝数据的明文数据与所述目标拷贝数据中对应的子目标拷贝数据进行比较,判断是否存在有子加密目标拷贝数据的明文数据与对应子目标拷贝数据不相同;
拷贝数据更新单元,用于若存在有子加密目标拷贝数据的明文数据与对应子目标拷贝数据不相同,获取对应的目标子加密目标拷贝数据以组成待删除数据集,将所述待删除数据集从加密目标拷贝数据中删除以更新加密目标拷贝数据。
在本实施例中,例如将数据分区1的工作空间中已存储的待存储数据拷贝至加密空间时,还需判断待存储数据中是否有一条或多条数据发生的数据更新或改变。例如有一个数据加密线程完成对工作空间中数据X的加密过程后,得到对应的加密数据X’(加密数据X’是存储在加密空间中的),还需再次去工作空间中复核加密数据X’对应的明文数据是否与数据X相同。
若加密数据X’对应的明文数据与数据X相同,表示工作空间中数据X在加密过程中未受可信终端再次传输数据的影响发生改变,此时无需将加密空间中的加密数据X’删除,而且还可以将工作空间中与加密数据X’相对应的数据X增加一个已加密的加密标识。
若加密数据X’对应的明文数据与数据X不相同,表示工作空间中数据X在加密过程中受可信终端再次传输数据的影响发生改变(即此时的数据X不再是前一时刻的数据X,已经发生了数据更新),此时加密空间中的加密数据X’不能与工作空间中的一个未加密数据相对应,故需要将这一类的加密数据X’从加密空间中删除。
通过这一对加密空间中所有已加密数据的复查,能确保加密空间中存储的加密数据能在工作空间中找到与其成对的原始数据,使得加密空间中不存在冗余数据。
云端数据同步指令检测单元130,用于若检测到用户可信区域内任意可信终端发送的云端数据同步指令,获取与所述云端数据同步指令对应的目标同步空间;其中,所述目标同步空间中包括另一本地数据区域和另一加密数据区域;所述另一本地数据区域中包括用于存储未加密数据的另一工作空间,和用于存储加密数据的另一加密空间。
由于已描述了将可信终端中的数据加密存储于数据加密终端中的技术方案,在本实施例中,继续描述将可信终端中的数据经过数据加密终端的处理而同步至云服务器的过程。与在数据加密终端中进行数据分区一样,在云服务器的存储区域中也能进行数据分区,每一可信终端同步至云服务器的加密数据均有一个专属存储区域。
例如,当数据加密终端接收到了可信终端B发送的云端数据同步指令,此时可以根据该云端数据同步指令在数据加密终端中定位数据分区2,以数据分区2作为目标同步空间。之后需将数据分区2中的加密数据同步至云服务器。
云端同步单元140,用于获取所述另一加密数据区域中每一加密数据及对应的数据头,将所述另一加密数据区域中每一加密数据及对应的数据头同步至云服务器。
在本实施例中,若用户可信区域内的可信终端发送云端数据同步指令至数据加密终端之前,已默认将可信终端中的数据同步至数据加密终端,此时一旦可信终端再发送一个云端数据同步指令至数据加密终端,数据加密终端会将该可信终端之前已同步至数据加密终端内且加过密的数据同步上传至云服务器,这样使得云服务器中存储的都是加密数据(即无明文数据),用户数据隐私可控,数据安全性得到提高。
其中,数据加密终端将目标同步空间中另一加密数据区域中存储的均是已完成加密的数据,此时获取所述另一加密数据区域中每一加密数据及对应的数据头,将所述另一加密数据区域中每一加密数据及对应的数据头同步至云服务器即可完成数据同步至云端的过程。
在一实施例中,云端同步单元140还用于:
获取每一加密数据及对应的数据头中所包括的通用唯一识别码、加密标志位、同步标志位、数据特征值、创建时间、更新时间、上一次同步的时间,将每一加密数据串接在对应的数据头的上一次同步的时间字段值,以组成与每一加密数据对应的封装数据,将每一封装数据同步至云服务器。
在本实施例中,当本地数据区域中的数据经过加密存储到了加密数据区域中后,可以每一加密数据对应增加一个数据头完成数据封装。具体可以对每一加密数据增加由通用唯一识别码、加密标志位、同步标志位、数据特征值、创建时间、更新时间、上一次同步的时间这些字段及对应字段值组成的数据头。
同样的,在本地数据区域中存储的所有未加密数据,也可以是增加上述相同格式的数据头。其中:
通用唯一识别码(英文简称为UUID)是加密数据的唯一标识,其具有全局唯一的特性;
加密标志位用于标识该数据是否为加密数据,具体字段取值为已加密、未加密、加密中的其中任意一个;
同步标志位用于标识该数据是否已同步至云服务器、可信终端或是数据加密终端中,具体字段取值为同步中、未同步的其中任意一个;
数据特征值是通过对未加密数据通过哈希算法运算得到的完整数据的特征值,用于快速比对数据是否一致;
创建时间,用于标识该数据初次创建的时间;
更新时间,用于标识该数据最近一次发生数据更新的时间;例如当本地数据区域中该条数据被另一条更新数据替代时的时间,或者是该条数据完成加密时的时间;
上一次同步的时间,用于标识该数据上一次同步至云服务器的时间。
由于加密数据或未加密的数据均是增加了上述格式的数据头,这样将数据同步至其他终端或服务器中时,能准确解析该数据的信息。
在一实施例中,数据加密终端100还包括:
同步信息列表生成单元,用于生成与所述云端数据同步指令对应的云服务器信息同步信息列表,保存所述服务器信息同步信息列表;其中,所述云服务器信息同步信息列表中包括云服务器MAC地址、上一次同步状态标示值、上一次同步数据的哈希值、上一次同步的第一个数据、上一次同步时间。
在本实施例中,由于云端同步单元140中实现了将数据加密终端中的加密数据同步至云服务器,此时可以在数据加密终端的本地生成与所述云端数据同步指令对应的云服务器信息同步信息列表,以记录此次数据同步过程。在所述云服务器信息同步信息列表中包括云服务器MAC地址、上一次同步状态标示值、上一次同步数据的哈希值、上一次同步的第一个数据、上一次同步时间,其中:
云服务器MAC地址表示数据同步至目标云服务器所具有的MAC地址,具体实施云服务器MAC地址这一字段可由云服务器IP地址、云服务器的域名或者云服务器的设备唯一标识其中任意一种来代替;
上一次同步状态标示值用于表示最近一次同步数据至云服务器的过程是否已完成,若已完成则取值为1;
上一次同步数据的哈希值用于表示最近一次同步数据至云服务器的数据的哈希值;
上一次同步的第一个数据用于表示最近一次同步数据至云服务器的数据中第一个数据;
上一次同步时间用于表示最近一次同步数据至云服务器的同步时间。
在一实施例中,数据加密终端100还包括:
数据读取指令检测单元,用于若检测到用户可信区域内任意可信终端发送的数据读取指令,获取与所述数据读取指令对应的目标读取空间;其中,所述目标读取空间中包括目标读取空间本地数据区域和目标读取空间加密数据区域;所述目标读取空间本地数据区域中包括用于存储未加密数据的目标读取空间工作空间,和用于存储加密数据的目标读取空间加密空间;
目标读取空间第一判断单元,用于判断所述目标读取空间中是否存在与所述数据读取指令对应的目标读取数据;
目标读取数据第一发送单元,用于若所述目标读取空间中存在与所述数据读取指令对应的目标读取数据,将所述目标读取数据发送至对应的可信终端;
目标读取空间同步单元,用于若所述目标读取空间中不存在与所述数据读取指令对应的目标读取数据,将云服务器中与所述目标读取空间对应的数据同步至所述目标读取空间,以同步更新所述目标读取空间中的数据;
目标读取空间第二判断单元,用于判断同步更新后的目标读取空间中是否存在与所述数据读取指令对应的目标读取数据;
目标读取数据第二发送单元,用于若同步更新后的目标读取空间中存在与所述数据读取指令对应的目标读取数据,将所述目标读取数据发送至对应的可信终端;
提示信息发送单元,用于若同步更新后的目标读取空间中不存在与所述数据读取指令对应的目标读取数据,将用于提示目标数据不存在的提示信息发送至对应的可信终端。
在本实施例中,对应描述的技术方案是如何将数据从数据加密设备读取至可信终端。具体实施时,是通过数据加密终端实时检测是否接收到可信终端发送的数据读取指令。
例如,当数据加密终端检测到可信终端C发送的数据读取指令,先在数据加密终端中定位与可信终端C对应的数据分区3,以数据分区3作为目标读取空间。
由于在数据读取指令中一般对应附加有程序代码以获取目标读取数据,此时在数据加密终端的目标读取空间中判断是否存在对应的目标读取数据。
若所述目标读取空间中存在与所述数据读取指令对应的目标读取数据,此时直接将目标读取数据发送至可信终端C。
若所述目标读取空间中不存在与所述数据读取指令对应的目标读取数据,可以触发数据加密终端从云服务器中同步与可信终端C对应的加密数据,即将云服务器中与所述目标读取空间对应的数据同步至所述目标读取空间,以同步更新所述目标读取空间中的数据。
在完成了云服务器中的数据同步过程之后,进一步判断同步更新后的目标读取空间中是否存在与所述数据读取指令对应的目标读取数据。若同步更新后的目标读取空间中存在与所述数据读取指令对应的目标读取数据,将所述目标读取数据发送至对应的可信终端;若同步更新后的目标读取空间中不存在与所述数据读取指令对应的目标读取数据,将用于提示目标数据不存在的提示信息发送至对应的可信终端。
具体地,请再次参阅图5。该可离线云端数据存储系统10中的可信终端可以被配置于台式电脑、平板电脑、手提电脑、等终端中。
如图5所示,可信终端200包括:终端数据同步指令检测单元210、合并去重单元220、合并去重结果发送单元230。
终端数据同步指令检测单元210,用于若检测到与可信终端位于同一用户可信区域内另一可信终端发送的终端数据同步指令,接收所述另一可信终端发送的另一可信终端本地数据区域内的数据和另一可信终端加密数据区域内的数据;
合并去重单元220,用于将另一可信终端本地数据区域内的数据和另一可信终端加密数据区域的数据与可信终端内的数据进行合并和去重,得到合并去重结果;
合并去重结果发送单元230,用于将所述合并去重结果发送至所述另一可信终端。
在本实施例中,还可在可信终端的角度描述技术方案。处于同一可信区域内的任意两个可信终端之间也可以同步数据。在可信终端内的存取区域内,也参考数据加密终端中也可以划分为本地数据区域和加密数据区域,其中本地数据区域又划分为用于存储未加密数据的工作空间,和用于存储加密数据的加密空间,数据分区的具体划分结构参考图3。
例如,将终端数据同步指令检测单元210中可信终端记为可信终端A,将另一可信终端记为可信终端B,可信终端B是主动连接可信终端A并向其发送终端数据同步指令。当可信终端A接收到可信终端B发送的终端数据同步指令时,将可信终端B中的本地数据区域(可信终端B中的本地数据区域也即步骤S210中的另一可信终端本地数据区域)内的数据发送至可信终端A。
其中,可信终端200还包括:
p2p同步信息列表生成单元,用于生成与所述终端数据同步指令对应的p2p同步信息列表,保存所述p2p同步信息列表;其中,所述p2p同步信息列表中包括可信终端设备MAC地址、终端上一次同步状态标示值、终端上一次同步数据的哈希值、终端上一次同步的第一个数据、终端上一次同步时间。
在本实施例中,p2p同步信息列表中包括的信息与云服务器信息同步信息列表中的字段格式基本相同,唯一区别在于是采用可信终端设备MAC地址而非云服务器MAC地址,其余字段表示的含义可完全参考云服务器信息同步信息列表中的字段。
在加密数据终端的角度描述技术方案时,具体说明了可信终端通过加密数据终端将数据同步至云服务器的过程。此时在可信终端的角度描述技术方案,以具体说明可信终端如何从云服务器同步数据的过程。
此处以可信终端D从云服务器中的可信设备连接状态信息与可信终端C建立点对点连接以同步新数据为例来具体说明:
C1)可信终端D接收云服务器发送的可信设备连接状态信息,例如可信终端D需从云服务器中同步到可信终端C的加密数据,此时判断可信设备连接状态信息中是否包括可信终端C的在线状态信息;
C2)若可信设备连接状态信息中包括可信终端C的在线状态信息,可信终端D直接与可信终端C建立点对点连接进行数据同步。
通过上述步骤C1)-C2)可知,将云端同步,解析为了本地同步,原因是因为云端只存有加密数据。如果通过加密数据得到原始数据,不仅性能低,而且速度慢。但上述步骤C1)-C2)对应的流程,仅适用于与云服务器通讯连接且要求同步数据的可信终端数量较少的情况。例如可信终端数量较少这一情况对应的设备数量阈值可配置,比如2(即可信终端数量不大于2则认为可信终端数量较少,一旦可信终端数量大于2则认为可信终端数量较多),当云服务器检测出所有的新增数据,所涉及的可信终端不大于2,则进行上述步骤C1)-C2)对应的流程。当所涉及的可信终端数较多时(例如涉及到3个可信终端),原本的一次云端同步将转为多次点对点同步。衡量设备数量阈值,主要根据网络通信耗时,加密解密耗时。
当可信终端如何从云服务器同步数据所涉及的可信终端数量大于设备数量阈值时,将直接采用云端同步并还原数据的流程。即可信终端D直接从云服务器中下载所有的增量数据(这些增量数据可以理解为可信终端D上一次从云服务器同步数据之后又新上传至云服务器的数据),通过解析每个数据的数据头,获取数据归属,通过数据归属,从对应的可信终端获取密钥信息,进行数据解密。例如可信终端D从云服务器中下载的其中一个增量数据Y归属于可信终端A,此时可信终端D在本地获取与可信终端A对应的密钥信息以对增量数据Y进行解密,得到对应的解密数据;若可信终端D在本地未获取到与可信终端A对应的密钥信息,此时可信终端D直接与可信终端A点对点连接获取可信终端A中的密钥信息以对增量数据Y进行解密,得到对应的解密数据。若可信终端D无法连接可信终端A,则增量数据Y标注为待解密状态,直到后续连接上可信终端A获取密钥信息后进行解密,得到增量数据Y对应的解密数据。
该系统实现了将数据存储在用户可信区域内的数据加密终端上,用户数据隐私安全可控,提高了数据安全性。
上述可离线云端数据存储系统中的数据加密终端或可信终端可以实现为计算机程序的形式,该计算机程序可以在如图6所示的计算机设备上运行。
请参阅图6,图6是本发明实施例提供的计算机设备的示意性框图。该计算机设备500是服务器,服务器可以是独立的服务器,也可以是多个服务器组成的服务器集群。
参阅图6,该计算机设备500包括通过系统总线501连接的处理器502、存储器和网络接口505,其中,存储器可以包括非易失性存储介质503和内存储器504。
该非易失性存储介质503可存储操作系统5031和计算机程序5032。该计算机程序5032被执行时,可使得处理器502执行可离线云端数据存储方法。
该处理器502用于提供计算和控制能力,支撑整个计算机设备500的运行。
该内存储器504为非易失性存储介质503中的计算机程序5032的运行提供环境,该计算机程序5032被处理器502执行时,可使得处理器502执行可离线云端数据存储方法。
该网络接口505用于进行网络通信,如提供数据信息的传输等。本领域技术人员可以理解,图6中示出的结构,仅仅是与本发明方案相关的部分结构的框图,并不构成对本发明方案所应用于其上的计算机设备500的限定,具体的计算机设备500可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
其中,所述处理器502用于运行存储在存储器中的计算机程序5032,以实现本发明实施例公开的可离线云端数据存储方法。
本领域技术人员可以理解,图6中示出的计算机设备的实施例并不构成对计算机设备具体构成的限定,在其他实施例中,计算机设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。例如,在一些实施例中,计算机设备可以仅包括存储器及处理器,在这样的实施例中,存储器及处理器的结构及功能与图6所示实施例一致,在此不再赘述。
应当理解,在本发明实施例中,处理器502可以是中央处理单元(CentralProcessing Unit,CPU),该处理器502还可以是其他通用处理器、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
在本发明的另一实施例中提供计算机可读存储介质。该计算机可读存储介质可以为非易失性的计算机可读存储介质。该计算机可读存储介质存储有计算机程序,其中计算机程序被处理器执行时实现本发明实施例公开的可离线云端数据存储方法。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的设备、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的几个实施例中,应该理解到,所揭露的设备、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为逻辑功能划分,实际实现时可以有另外的划分方式,也可以将具有相同功能的单元集合成一个单元,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (6)
1.一种可离线云端数据存储方法,应用于用户可信区域内的数据加密终端,其特征在于,包括:若检测到用户可信区域内任意可信终端发送的数据存储指令,获取与所述数据存储指令对应的待存储数据,并获取与所述数据存储指令对应的目标存储空间;其中,所述目标存储空间中包括本地数据区域和加密数据区域;
将所述待存储数据同步写入本地数据区域,将所述待存储数据异步写入加密数据区域;其中,所述本地数据区域中包括用于存储未加密数据的工作空间,和用于存储加密数据的加密空间;
若检测到用户可信区域内任意可信终端发送的云端数据同步指令,获取与所述云端数据同步指令对应的目标同步空间;其中,所述目标同步空间中包括另一本地数据区域和另一加密数据区域;所述另一本地数据区域中包括用于存储未加密数据的另一工作空间,和用于存储加密数据的另一加密空间;以及获取所述另一加密数据区域中每一加密数据及对应的数据头,将所述另一加密数据区域中每一加密数据及对应的数据头同步至云服务器;
所述将所述待存储数据异步写入加密数据区域,包括:通过单例模式创建拷贝线程,并保存拷贝线程对应的当前时间戳;
通过拷贝线程获取工作空间中数据更新时时间戳小于所述当前时间戳且未加密的目标拷贝数据,将目标拷贝数据拷贝至加密空间;
同步创建多个数据加密线程,以对所述目标拷贝数据同步进行可逆加密,得到加密目标拷贝数据;
若检测到加密空间的数据条件满足预设的数据删除触发条件,将加密空间的加密目标拷贝数据拷贝至加密数据区域,删除加密空间中的加密目标拷贝数据;
所述同步创建多个数据加密线程,以对所述目标拷贝数据同步进行可逆加密,得到加密目标拷贝数据之后,还包括:将所述加密目标拷贝数据中各条子加密目标拷贝数据的明文数据与所述目标拷贝数据中对应的子目标拷贝数据进行比较,判断是否存在有子加密目标拷贝数据的明文数据与对应子目标拷贝数据不相同;
若存在有子加密目标拷贝数据的明文数据与对应子目标拷贝数据不相同,获取对应的目标子加密目标拷贝数据以组成待删除数据集,将所述待删除数据集从加密目标拷贝数据中删除以更新加密目标拷贝数据;
若检测到用户可信区域内任意可信终端发送的数据读取指令,获取与所述数据读取指令对应的目标读取空间;其中,所述目标读取空间中包括目标读取空间本地数据区域和目标读取空间加密数据区域;所述目标读取空间本地数据区域中包括用于存储未加密数据的目标读取空间工作空间,和用于存储加密数据的目标读取空间加密空间;
判断所述目标读取空间中是否存在与所述数据读取指令对应的目标读取数据;
若所述目标读取空间中存在与所述数据读取指令对应的目标读取数据,将所述目标读取数据发送至对应的可信终端;
若所述目标读取空间中不存在与所述数据读取指令对应的目标读取数据,将云服务器中与所述目标读取空间对应的数据同步至所述目标读取空间,以同步更新所述目标读取空间中的数据;
判断同步更新后的目标读取空间中是否存在与所述数据读取指令对应的目标读取数据;
若同步更新后的目标读取空间中存在与所述数据读取指令对应的目标读取数据,将所述目标读取数据发送至对应的可信终端;
若同步更新后的目标读取空间中不存在与所述数据读取指令对应的目标读取数据,将用于提示目标数据不存在的提示信息发送至对应的可信终端。
2.根据权利要求1所述的可离线云端数据存储方法,其特征在于,所述将所述另一加密数据区域中每一加密数据及对应的数据头同步至云服务器,包括:获取每一加密数据及对应的数据头中所包括的通用唯一识别码、加密标志位、同步标志位、数据特征值、创建时间、更新时间、上一次同步的时间,将每一加密数据串接在对应的数据头的上一次同步的时间字段值,以组成与每一加密数据对应的封装数据,将每一封装数据同步至云服务器。
3.根据权利要求1所述的可离线云端数据存储方法,其特征在于,所述获取所述另一加密数据区域中每一加密数据及对应的数据头,将所述另一加密数据区域中每一加密数据及对应的数据头同步至云服务器之后,还包括:生成与所述云端数据同步指令对应的云服务器信息同步信息列表,保存所述服务器信息同步信息列表;其中,所述云服务器信息同步信息列表中包括云服务器MAC地址、上一次同步状态标示值、上一次同步数据的哈希值、上一次同步的第一个数据、上一次同步时间。
4.一种可离线云端数据存储系统,其特征在于,包括数据加密终端,所述数据加密终端用于执行如权利要求1-3任一项所述可离线云端数据存储方法。
5.一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至3中任一项所述的可离线云端数据存储方法的步骤。
6.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序当被处理器执行时使所述处理器执行如权利要求1至3任一项所述的可离线云端数据存储方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011021558.XA CN112115495B (zh) | 2020-09-25 | 可离线云端数据存储方法、系统、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011021558.XA CN112115495B (zh) | 2020-09-25 | 可离线云端数据存储方法、系统、计算机设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112115495A CN112115495A (zh) | 2020-12-22 |
CN112115495B true CN112115495B (zh) | 2024-07-02 |
Family
ID=
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102055730A (zh) * | 2009-11-02 | 2011-05-11 | 华为终端有限公司 | 云处理系统、云处理方法和云计算代理装置 |
CN106487911A (zh) * | 2016-10-25 | 2017-03-08 | 广东欧珀移动通信有限公司 | 一种数据同步方法、装置和系统 |
CN114640464A (zh) * | 2022-03-09 | 2022-06-17 | 平安国际智慧城市科技股份有限公司 | 基于区块链的订阅数据传输方法、装置、设备及存储介质 |
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102055730A (zh) * | 2009-11-02 | 2011-05-11 | 华为终端有限公司 | 云处理系统、云处理方法和云计算代理装置 |
CN106487911A (zh) * | 2016-10-25 | 2017-03-08 | 广东欧珀移动通信有限公司 | 一种数据同步方法、装置和系统 |
CN114640464A (zh) * | 2022-03-09 | 2022-06-17 | 平安国际智慧城市科技股份有限公司 | 基于区块链的订阅数据传输方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8930686B2 (en) | Deduplication of encrypted data | |
US8199911B1 (en) | Secure encryption algorithm for data deduplication on untrusted storage | |
US9256499B2 (en) | Method and apparatus of securely processing data for file backup, de-duplication, and restoration | |
US10476913B2 (en) | Intercepting calls for encryption handling in persistent access multi-key systems | |
US9122882B2 (en) | Method and apparatus of securely processing data for file backup, de-duplication, and restoration | |
US9064133B2 (en) | Method and apparatus of securely processing data for file backup, de-duplication, and restoration | |
US10635642B1 (en) | Multi-cloud bi-directional storage replication system and techniques | |
US11018859B2 (en) | Deduplication of client encrypted data | |
US11755499B2 (en) | Locally-stored remote block data integrity | |
US20140143201A1 (en) | Dynamic content file synchronization | |
US20140129848A1 (en) | Method and Apparatus for Writing and Reading Hard Disk Data | |
JP2019079280A (ja) | ファイル検証装置、ファイル移行システムおよびプログラム | |
US9054864B2 (en) | Method and apparatus of securely processing data for file backup, de-duplication, and restoration | |
CN112749383A (zh) | 软件认证方法和相关产品 | |
US20210306149A1 (en) | Hardware security module proxy device for storage expansion | |
US11720270B2 (en) | Client-side compression | |
CN112115495B (zh) | 可离线云端数据存储方法、系统、计算机设备及存储介质 | |
CN110046510B (zh) | 跨云的数据迁移方法、装置和系统 | |
WO2019184741A1 (zh) | 应用程序信息的存储、处理方法及装置 | |
CN115758447A (zh) | 信息安全业务处理及集群生成方法、电子设备和存储介质 | |
CN115567212A (zh) | 文件处理方法、装置、计算机设备和计算机可读存储介质 | |
CN112115495A (zh) | 可离线云端数据存储方法、系统、计算机设备及存储介质 | |
CN111130788B (zh) | 数据处理方法和系统、数据读取方法和iSCSI服务器 | |
CN110362773B (zh) | 跨域通信方法、装置、计算机设备及存储介质 | |
CN113656817A (zh) | 数据加密方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20210201 Address after: 518000 Room 201, building A, No. 1, Qian Wan Road, Qianhai Shenzhen Hong Kong cooperation zone, Shenzhen, Guangdong (Shenzhen Qianhai business secretary Co., Ltd.) Applicant after: Shenzhen saiante Technology Service Co.,Ltd. Address before: 1-34 / F, Qianhai free trade building, 3048 Xinghai Avenue, Mawan, Qianhai Shenzhen Hong Kong cooperation zone, Shenzhen, Guangdong 518000 Applicant before: Ping An International Smart City Technology Co.,Ltd. |
|
GR01 | Patent grant |