数据存储方法、设备及系统与流程

文档序号:19992022发布日期:2020-02-22 02:23阅读:324来源:国知局
数据存储方法、设备及系统与流程

本发明涉及数据存储领域,特别涉及一种数据存储方法、设备及系统。



背景技术:

现今,为了数据的安全性和有效性,越来越多的企业和政府机关等需要将指定时期的数据保存于不可更改的存储媒体中。其中,存储媒体需要满足一次写入多次读出(英文:writeoncereadmany;简称:worm)特性,以此避免存储后的目标数据被删除或篡改。

目前具有worm特性的数据存储系统有多种,例如,磁带系统和光盘系统,其中,磁带系统包括磁带读写设备和worm磁带等,在通过磁带系统进行目标数据的存储时,磁带读写设备将该目标数据存储在worm磁带中;光盘系统包括光盘读写设备和worm光盘,在通过光盘系统进行目标数据的存储时,光盘读写设备将该目标数据存储在worm光盘中。

但是,目前的具有worm特性的数据存储系统中,需要设置worm专有硬件设备作为数据存储设备,如worm磁带或worm光盘,其携带不便,成本较高。



技术实现要素:

本申请提供了一种数据存储方法、设备及系统,可以解决相关技术中的采用专有硬件设备作为数据存储设备所导致的携带不便,成本较高的问题。

第一方面,提供一种数据存储方法,包括:

将待存储的目标数据切分成顺序相连的m个数据段,m为正整数;

对于每个数据段,当所述数据段为首个数据段时,基于所述数据段的内容生成所述数据段的第一数据签名;

当所述数据段为非首个数据段时,基于关联的第一数据签名和所述数据段的内容生成所述数据段的第一数据签名,所述关联的第一数据签名为所述数据段的前一个数据段的第一数据签名;

存储所述m个数据段,以及所述m个数据段中每个数据段的第一数据签名,所述每个数据段的第一数据签名用于对所述数据段进行防篡改数据校验,其中,所述m个数据段存储在通用存储设备中,所述通用存储设备为非一次性写入多次写出worm专有硬件设备。

这样,通过将目标数据切分为m个数据段,并生成该每个数据段的第一数据签名,通过每个数据段的第一数据签名来对所述数据段进行防篡改数据校验,无需使用worm专有硬件设备,便可以实现防篡改数据校验,从而达到与worm专有硬件设备相同的存储效果,而由于本申请提供的数据存储方法可以使用通用存储设备进行数据存储,其携带方便,成本较低。

在所述存储所述m个数据段,以及所述m个数据段中每个数据段的第一数据签名之后,可以进行防篡改校验,该防篡改校验过程可以包括:

在接收到校验指令后,对于所述每个数据段,当所述数据段为首个数据段时,基于所述数据段的内容生成所述数据段的第二数据签名;

当所述数据段为非首个数据段时,基于所述关联的第一数据签名和所述数据段的内容生成所述数据段的第二数据签名。

对于所述每个数据段,将所述数据段的第二数据签名与所述数据段的第一数据签名进行比较,当所述数据段的第二数据签名与所述数据段的第一数据签名不同时,确定所述数据段被篡改;

当所述数据段的第二数据签名与所述数据段的第一数据签名相同时,确定所述数据段未被篡改。

本申请实施例中,m个数据段的第一数据签名可以分别存储于通用存储设备和指定存储设备中,也可以均存储于通用存储设备中,则当m个数据段的第一数据签名分别存储于通用存储设备和指定存储设备中时,所述存储所述m个数据段,以及所述m个数据段中每个数据段的第一数据签名,可以包括:

在所述通用存储设备中存储所述m个数据段,以及非末尾数据段的第一数据签名,所述非末尾数据段为所述m个数据段除位于末尾的一个末尾数据段之外的其他数据段。

在指定监管设备中存储所述末尾数据段的第一数据签名,所述指定监管设备与所述通用存储设备不同。

由于将末尾数据段的第一数据签名存储在与通用存储设备不同的指定存储设备中,减少了用于校验的第一数据签名被篡改的可能性,增强了校验的有效性,进一步提高了目标数据的安全性。

相应的,对于所述每个数据段,将所述数据段的第二数据签名与所述数据段的第一数据签名进行比较的过程,包括:

将各个非末尾数据段的第二数据签名与所述通用存储设备中存储的对应的第一数据签名进行比较。

将末尾数据段的第二数据签名与所述指定监管设备中的所述末尾数据段的第一数据签名进行比较。

当数据段为非首个数据段时,数据存储设备基于该数据段的前一个数据段的第一数据签名和该数据段的内容生成该数据段的第二数据签名,而不是基于该数据段的前一个数据段的第二数据签名和该数据段的内容生成该数据段的第二数据签名,这样一来,由于生成数据签名的依据中关联的第一数据签名并没有变更,若生成的第二数据签名与对应的第一数据签名不同,则说明是该数据段的内容发生了变化,这样使得数据段的第二数据签名与数据段的内容强相关,能够准确识别数据段的内容是否被篡改。

其中,将末尾数据段的第二数据签名与所述指定监管设备中的所述末尾数据段的第一数据签名进行比较的方式可以有多种,本申请实施例以以下两种为例进行说明:

第一种方式,向所述指定监管设备发送校验请求,所述校验请求包括所述末尾数据段的第二数据签名,所述末尾数据段的第二数据签名用于供所述指定监管设备与所述末尾数据段的第一数据签名进行比较。

第二种方式,向所述指定监管设备发送校验码获取请求,所述校验码获取请求用于请求获取所述末尾数据段的第一数据签名。

由于在进行防篡改校验时,可以基于非末尾数据段的第一数据签名进行目标数据的初步校验,基于末尾数据段的第一数据签名进行目标数据的进一步校验,实现目标数据的双重校验,提高防篡改校验的准确性,保障目标数据的安全。

接收所述指定监管设备发送的校验码获取响应,所述校验码获取响应包括所述末尾数据段的第一数据签名,

将末尾数据段的第二数据签名与所述校验码获取响应中的第一数据签名进行比较。

可选的,所述在所述通用存储设备中存储所述m个数据段,以及非末尾数据段的第一数据签名,包括:

将所述m个数据段中每个非末尾数据段的第一数据签名拼接至下一个数据段的头部,在所述通用存储设备中存储首个数据段和拼接后的数据段。

在一种可选的实现方式中,所述目标数据包括至少两个文件的数据,m>1,则在执行将待存储的目标数据切分成顺序相连的m个数据段的过程中可以先接收数据写入指令,所述数据写入指令包括:顺序排列的至少两个文件的数据;然后基于该写入指令来进行目标数据的切分,该切分方式可以有以下两种:

第一种切分方式,将所述至少两个文件的数据作为所述目标数据,将所述目标数据切分成顺序相连的m个数据段;

第二种切分方式,将每个文件的数据切分成顺序相连的至少一个数据段,按照所述数据写入指令中所述至少两个文件的排列顺序,将每个文件对应的至少一个数据段顺序排列得到所述m个数据段。

可选的,在指定监管设备中存储所述末尾数据段的第一数据签名之后,所述方法还包括:

在接收到针对所述目标数据的修改指令后,发出禁止修改响应,所述禁止修改响应用于指示禁止对所述目标数据进行修改。

可选的,所述指定监管设备包括指定服务器、指定终端和区块链系统中的设备中的至少一个。当末尾数据段的第一数据签名存储在区块链系统中时,由于区块链本身具有的防篡改功能,进一步减小了末尾数据段的第一数据签名被篡改的可能性,保证了目标数据的安全性。

可选的,所述通用存储设备为硬盘、网络附属存储nas设备、存储区域网络san设备和云存储设备中的至少一种。

第二方面,提供一种数据存储设备,该设备可以包括至少一个模块,该至少一个模块可以用于实现上述第一方面所述的数据存储方法。

第三方面,提供一种数据存储设备,包括:

处理器;

用于存储所述处理器的可执行指令的存储器;

其中,所述处理器在运行所述可执行指令时,能够实现上述第一方面任一所述的数据存储方法。

第四方面,一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,该计算机可读存储介质可以为非易失性计算机可读存储介质。当所述可读存储介质在处理组件上运行时,使得处理组件执行上述第一方面任一所述的数据存储方法。

第五方面,提供一种数据存储系统,包括:指定监管设备和第二方面或者第三方面任一所述的数据存储设备;所述指定监管设备用于监管所述数据存储设备的防篡改数据校验的结果。

本申请提供的技术方案带来的有益效果至少可以包括:

通过将目标数据切分为m个数据段,并生成该每个数据段的第一数据签名,通过每个数据段的第一数据签名来对所述数据段进行防篡改数据校验,无需使用worm专有硬件设备,便可以实现防篡改数据校验,从而达到与worm专有硬件设备相同的存储效果,而由于本申请提供的数据存储方法可以使用通用存储设备进行数据存储,其携带方便,成本较低,因此有效降低了存储成本。进一步的,若该存储程序遭到攻击或出现被卸载的情况,且存储在通用存储设备中的目标数据中的所有数据段以及对应的第一数据签名全部被篡改,此时,通过上述第一种可实现方式中的步骤3072的校验方式,通过指定监管设备中存储的第一数据签名,仍然可以校验出目标数据被篡改,进一步避免被篡改的数据作为有效数据被使用,有效提高了数据的安全性。该指定监管设备为预设监管机构的设备,将校验信息即上述末尾数据段的第一数据签名发送给监管机构保存,可以方便监管机构掌握符合规定的目标数据归档的完成情况,和检查目标数据是否被篡改,便于监管机构了解目标数据的动态。

附图说明

图1为本申请一示意性实施例涉及的一种实施环境示意图。

图2为本申请一示意性实施例涉及的另一种实施环境示意图。

图3为本申请一示意性实施例涉及的一种数据存储方法流程图。

图4为本申请一示意性实施例涉及的一种数据存储方法的实施过程示意图。

图5为本申请一示意性实施例涉及的一种签名比较过程流程图。

图6为本申请一示意性实施例涉及的一种数据存储方法流程图。

图7为本申请一示意性实施例涉及的一种a文件存储方式示意图。

图8为本申请一示意性实施例涉及的一种数据存储设备的框图。

图9为本申请一示意性实施例涉及的一种数据存储设备的框图。

图10为本申请一示意性实施例涉及的一种比较模块的框图。

图11为本申请一示意性实施例涉及的一种数据存储设备的框图。

图12为本申请一示意性实施例涉及的一种数据存储设备的结构示意图。

具体实施方式

图1是本申请各个实施例提供的数据存储方法所涉及的一种数据存储系统的实施环境示意图。如图1所示,该实施环境包括主机(英文:host)110、数据存储设备120和通用存储设备130。

其中,数据存储设备120分别与主机110和通用存储设备130建立有有线或无线的数据连接,例如,通过数据线缆建立有线数据连接,主机110用于向数据存储设备120写入数据,或者从数据存储设备120读出数据,该主机110可以为智能手机、电脑、多媒体播放器、电子阅读器或可穿戴式设备等;数据存储设备120用于进行读写数据的处理,例如,将主机110写入的数据存储至通用存储设备130中,或者从通用存储设备130中读取数据并返回给主机110,该数据存储设备120可以为智能手机、电脑、多媒体播放器、电子阅读器或可穿戴式设备等;通用存储设备130用于存储数据,该通用存储设备130为非worm专有硬件设备,示例地,该通用存储设备130为硬盘、网络附属存储(英文:networkattachedstorage;简称:nas)设备、存储区域网络(英文:storageareanetwork;简称:san)设备和云存储设备中的至少一种。

在本申请实施例中,主机110中可以安装读写程序以及存储驱动程序,主机110通过该读写程序可以进行数据的读写,通过存储驱动程序可以与数据存储设备120进行数据交互,以驱动数据存储设备120在通用存储设备读取数据和写入数据。数据存储设备120可以安装存储程序,通过该存储程序在通用存储设备读取数据和写入数据,无需改进其硬件结构。

可选的,在本申请实施例中,上述主机110和上述数据存储设备120可以集成为一体结构,也即是,两者集成在同一智能手机、电脑、多媒体播放器、电子阅读器或可穿戴式设备等上。

图2是本申请各个实施例提供的数据存储方法所涉及数据存储系统的另一种实施环境示意图。如图2所示,该实施环境还包括:指定监管设备140,该指定监管设备140与数据存储设备120建立有有线或无线的数据连接,该指定监管设备140用于监管数据存储设备130的防篡改数据校验的结果。该指定监管设备140包括指定服务器、指定终端和区块链系统中的设备中的至少一个。例如,该指定监管设备140可以为指定终端,例如,智能手机或电脑;该指定监管设备140也可以为指定服务器,例如,一台服务器,或者,由若干台服务器组成的服务器集群;该指定监管设备140还可以为区块链系统中的设备或者一个云计算服务中心。

本申请提供一种数据存储方法,将待存储的目标数据切分成m个数据段,并为每个数据段生成第一数据签名,然后存储该m个数据段,以及该m个数据段中每个数据段的第一数据签名,其中,m个数据段存储在通用存储设备中,每个数据段的第一数据签名用于对该数据段进行防篡改数据校验,这样无需使用worm专有硬件设备,便可以实现防篡改数据校验,从而达到与worm专有硬件设备相同的存储效果。

在本申请实施例中,m个数据段的第一数据签名可以分别存储于通用存储设备和指定存储设备中也可以均存储于通用存储设备中,本申请实施例以以下两种可选的实现方式为例进行说明。

在第一种可选的实现方式中,m个数据段的第一数据签名分别存储于通用存储设备和指定存储设备中,请参考图3,图3是本申请实施例提供的一种数据存储方法流程图,该数据存储方法可以应用于图2所示的实施环境中,该数据存储方法可以包括如下几个步骤:

步骤301、数据存储设备将待存储的目标数据切分成顺序相连的m个数据段,m为正整数。

在用户向主机写入待存储的目标数据后,主机可以生成数据写入指令,通过该数据写入指令,将携带该目标数据的数据写入指令发送至数据存储设备,可选的,主机可以通过其安装的存储驱动程序将数据写入指令发送至数据存储设备。上述目标数据为符合预设规则的数据,例如符合法规的存档数据,或者符合企业规定的存档数据。

数据存储设备在接收到数据写入指令后,将该目标数据切分成顺序相连的m个数据段。该m个数据段的长度可以相同也可以不同,当其长度相同时,切分和存储较为方便。示例地,可以将目标数据切分成顺序相连的10个相同长度的数据段。目标数据切分得到的数据段的数量可以根据具体场景确定,该数量可以为预先设置的数量,也可以是动态变化的数量,例如,其可以由预先规定的切分后的每个数据段的长度确定,本申请实施例对此不做限定。示例地,目标数据的长度为16k个字节,预先规定的切分后的每个数据的长度为2k个字节,则将目标数据切分为顺序相连的8个长度为2k个字节的数据段。

目标数据可以为多种类型的数据,其可以为一个整体数据,也可以由多个文件的数据组成,当数据写入指令中携带的目标数据为一个整体数据时,数据存储设备可以直接将该目标数据切分成顺序相连的m个数据段。

当该目标数据包括至少两个文件的数据时,即m>1时,接收到的数据写入指令中包括:顺序排列的至少两个文件的数据;则对应的切分方式可以有多种,本申请实施例以以下两种切分方式为例进行说明。

第一种切分方式,将每个文件的数据切分成顺序相连的至少一个数据段,按照数据写入指令中至少两个文件的排列顺序,将每个文件对应的至少一个数据段顺序排列得到m个数据段。

其中,将每个文件对应的至少一个数据段顺序排列得到m个数据段的过程可以同时执行(也称并行执行),也可以依次执行(也称串行执行)。

示例地,数据写入指令中携带有顺序排列的a和b两个文件的数据,将a文件的数据切分为m1个数据段,将b文件的数据切分为m2个数据段,m1+m2=m,按照数据写入指令中a文件位于b文件之前的顺序,将m1个数据段和m2个数据段顺序排列得到m个数据段。

第二种切分方式,将至少两个文件的数据作为目标数据,将目标数据切分成顺序相连的m个数据段。

示例地,数据写入指令中携带有顺序排列的a和b两个文件的数据,将a和b两个文件的数据作为目标数据,将目标数据切分成顺序相连的m个数据段。

步骤302、对于每个数据段,当该数据段为首个数据段时,数据存储设备基于该数据段的内容生成该数据段的第一数据签名,当该数据段为非首个数据段时,数据存储设备基于关联的第一数据签名和该数据段的内容生成数据段的第一数据签名,该关联的第一数据签名为数据段的前一个数据段的第一数据签名。

其中,当数据段为首个数据段时,也即是其为第一个数据段时,示例地,可以基于该数据段的内容采用第一密码学算法生成该数据段的第一数据签名。

例如,假设将上述目标数据切分顺序排列的a1-a10共10个数据段,则数据段a1为首个数据段,数据存储设备基该于数据段a1的内容,采用第一密码学算法生成该数据段的第一数据签名a1。

当数据段为非首个数据段,也即是其不为第一个数据段时,示例地,可以基于关联的第一数据签名和该数据段的内容,采用第二密码学算法生成该数据段的第一数据签名。

仍然以上述例子为例,对于第二个数据段a2,与其关联的第一数据签名为该数据段a2的前一个数据段a1的第一数据签名a1,则数据存储设备基于关联的第一数据签名a1和该数据段a2的内容,采用第二密码学算法生成数据段a2的第一数据签名a2,同理,对于第三个数据段a3,与其关联的第一数据签名为该数据段a3的前一个数据段a2的第一数据签名a2,则数据存储设备基于关联的第一数据签名a2和该数据段a3的内容,采用第二密码学算法生成数据段a3的第一数据签名a3。

可选的,步骤302中对于首个数据段采用的第一密码学算法和对于非首个数据段所采用的第二密码学算法均可以为安全哈希算法(英文:securehashalgorithm;简称sha)算法,例如sha256,或者,该密码学算法也可以为消息摘要算法第五版(英文:messagedigestalgorithm;简称:md5)。当然,该第一密码学算法和第二密码学算法也可以为其他签名算法,本申请实施例对此不做限定。

需要说明的是,对于非首个数据段所采用的密码学算法与对于首个数据段所采用的密码学算法可以不同也可以相同。

步骤303、数据存储设备在通用存储设备中存储m个数据段,以及非末尾数据段的第一数据签名。

其中,该非末尾数据段为m个数据段除位于末尾的一个末尾数据段之外的其他数据段。也即是该非末尾数据段不是最后一个数据段。

如前所述,该通用存储设备可以为硬盘、nas设备、san设备和云存储设备中的至少一种。

当该通用存储设备为硬盘时,数据存储设备可以通过数据连接线与该硬盘连接,将该m个数据写入该硬盘中;当该通用存储设备为nas设备时,数据存储设备可以通过有线或者无线的网络与该nas设备连接,将该m个数据写入该硬盘中;当该通用存储设备为san设备时,数据存储设备可以通过有线或者无线的网络与该san设备连接,将该m个数据写入该硬盘中;当该通用存储设备为云存储设备时,数据存储设备可以通过有线或者无线的网络与该云存储设备连接,将该m个数据写入该硬盘中。

在通用存储设备中存储m个数据段,以及非末尾数据段的第一数据签名的方式可以有多种,本申请实施例以以下两种方式为例进行说明:

第一种方式,数据存储设备将m个数据段中每个非末尾数据段的第一数据签名拼接至下一个数据段的头部,在通用存储设备中存储首个数据段和拼接后的数据段。

例如,假设将上述目标数据切分顺序排列的a1-a10共10个数据段,其中,a1至a10对应的第一数据签名分别为a1-a10,则将a1拼接至a2之前形成新的数据段c1,将a2拼接至a3之前形成新的数据段c2,…直至将a9拼接至a10之前形成新的数据段c9。则最终,数据存储设备在通用存储设备中存储首个数据段a1和拼接后的数据段:c1-c9。

需要说明的是,上述首个数据段和拼接后的数据段可以分时存储,也即是,其存储时间不同,例如,先存储首个数据段,然后每拼接得到一个拼接后的数据段,便存储该数据段,首个数据段和拼接后的数据段是按照之前对应的m个数据段的排列顺序依次存储的。上述首个数据段和拼接后的数据段也可以同时存储,也即是,在拼接得到所有拼接后的数据段后,将首个数据段和拼接后的数据段一并存储在通用存储设备中。

第二种方式,数据存储设备在m个数据段中每两个相邻的数据段之间插入该两个相邻的数据段中的第一个数据段的第一数据签名,得到处理后的目标数据,并存储该目标数据。

例如,假设将上述目标数据切分顺序排列的a1-a10共10个数据段,其中,a1至a10对应的第一数据签名分别为a1-a10,则将a1插入至a1和a2之间,将a2插入至a2和a3之间,…直至将a9插入至a9和a10之间,插入完成后得到处理后的目标数据。则最终,将该目标数据存储至通用存储设备中。

通过上述两种方式,最终存储在通用存储设备中的存储m个数据段以及非末尾数据段的第一数据签名以链式签名的形式存在。链式签名上的各个第一数据签名互相关联,这样如果想要在数据存储设备无感知的情况下修改数据段的内容时,需要把多个第一数据签名全部修改,数据篡改的难度较大,从而提高了目标数据的存储安全性。

步骤304、数据存储设备在指定监管设备中存储末尾数据段的第一数据签名,该指定监管设备与通用存储设备不同。

其中,该末尾数据段为m个数据段中位于末尾的一个末尾数据段。也即是该末尾数据段是最后一个数据段。数据存储设备将末尾数据段的第一数据签名发送给指定存储设备后,该指定存储设备将接收到的末尾数据段的第一数据签名进行存储。例如,假设末尾数据段为a10,其第一数据签名为a10,则数据存储设备将a10发送至指定存储设备,该指定存储设备将接收到的第一数据签名a10进行存储。

该指定监管设备可以包括指定终端,例如,智能手机或电脑;该指定监管设备也可以包括指定服务器,例如,一台服务器,或者,由若干台服务器组成的服务器集群;该指定监管设备还可以包括区块链系统中的设备或者一个云计算服务中心。

当指定监管设备包括指定终端时,示例地,该指定终端可以为电脑或手机,数据存储设备可以通过邮件、短消息、彩信或即时通信消息的形式将末尾数据段的第一数据签名发送至该指定终端;当指定监管设备包括指定服务器时,该指定服务器具有统一资源定位符(英文:uniformresourcelocator;简称:url),数据存储设备可以通过url与该指定服务器连接,将该末尾数据段的第一数据签名写入该指定服务器中;当指定监管设备包括区块链系统中的设备时,数据存储设备可以通过该区块链系统中网络与该设备建立连接,然后将该末尾数据段的第一数据签名写入该设备中;当指定监管设备包括云计算服务中心时,数据存储设备可以通过有线或无线网络与该云计算服务中心建立连接,将该末尾数据段的第一数据签名写入该云计算服务中心中。示例的,该云计算服务中心具有url,数据存储设备可以通过url与该云计算服务中心建立连接。

上述末尾数据段的第一数据签名也称校验信息,在本申请实施例中,校验信息的发送频率可以根据业务场景定制。例如,可以一天集中发送一次校验信息(即将该一天内生成的所有校验信息一次性发送),也可以对于每个目标数据发送一次校验信息,还可以根据监管要求自由设置发送频率。

在本申请实施例中,由于将末尾数据段的第一数据签名存储在与通用存储设备不同的指定存储设备中,减少了用于校验的末尾数据段的第一数据签名被篡改的可能性,增强了校验的有效性,进一步提高了目标数据的安全性。并且,当末尾数据段的第一数据签名存储在区块链系统中时,由于区块链本身具有的防篡改功能,进一步减小了末尾数据段的第一数据签名被篡改的可能性,保证了目标数据的安全性。

步骤305、数据存储设备在接收到针对目标数据的修改指令后,发出禁止修改响应,该禁止修改响应用于指示禁止对目标数据进行修改。

在用户想要修改目标数据时,用户可以对主机执行修改操作,例如对主机的输入输出接口执行触控操作或者按键输入操作,相应的,主机接收到该修改操作所触发的针对该目标数据的修改指令,主机可以将该修改指令发送至数据存储设备,可选的,主机可以通过其安装的存储驱动程序将数据修改指令发送至数据存储设备。数据存储设备在接收到该修改指令后,可以发出禁止修改响应,以禁止用户对目标数据进行修改。这样就可以实现目标数据只能写入一次,并且不能修改的功能,从而达到与worm专有硬件设备基本相同的存储效果。

可选的,主机在接收到该禁止修改响应后。可以在输入输出接口通过文字或语音形式呈现该禁止修改响应。例如,该输入输出接口为显示屏,主机在该显示屏的显示界面中弹出窗口,通过该窗口内的文字来呈现禁止修改响应,例如文字内容为“禁止数据修改!”。

步骤306、数据存储设备在接收到校验指令后,对于每个数据段,当数据段为首个数据段时,基于数据段的内容生成数据段的第二数据签名,当数据段为非首个数据段时,基于关联的第一数据签名和数据段的内容生成数据段的第二数据签名。

在本申请实施例中,数据存储设备可以进行防篡改数据校验,该防篡改数据校验过程可以是人工触发,也可以是设备自动执行的,例如,设备周期性执行该防篡改数据校验过程,或者,在检测到数据可能存在问题时,执行该防篡改数据校验过程。

当防篡改数据校验过程为人工触发时,在指定人员,如用户或相关人员,想要进行目标数据的防篡改数据校验时,例如,发现通用存储设备受到攻击或者需要核对目标数据时,指定人员可以对主机执行防篡改触发操作,例如对主机的输入输出接口执行触控操作或者按键输入操作,相应的,主机接收到该防篡改触发操作所触发的针对该目标数据的校验指令,主机可以将该校验指令发送至数据存储设备。数据存储设备在接收到该校验指令后,可以对目标数据进行防篡改数据校验。

当该防篡改数据校验过程为设备自动执行时,示例地,每隔预设时长,设备进行一次该防篡改数据校验,或者,设备在检测到通用存储设备或数据存储设备受到攻击或检测到针对目标数据的数据读取指令时,进行一次该防篡改数据校验。

请参考图4,图4为本申请实施例提供的数据存储方法的实施过程示意图,由于在步骤303中,数据存储设备120在通用存储设备130中存储m个数据段,以及非末尾数据段的第一数据签名,在指定监管设备140中存储末尾数据段的第一数据签名。则在进行数据校验时,可以数据存储设备120先从该通用存储设备中提取该m个数据段,以及非末尾数据段的第一数据签名,以对该m个数据段进行初步校验。

在本申请实施例中,在进行数据校验时,生成每个数据段的第二数据签名的方式与生成该数据段的第一数据签名的方式基本相同。其中,当数据段为首个数据段时,示例地,可以基于该数据段的内容采用第一密码学算法可以生成该数据段的第二数据签名。该第一密码学算法与上述步骤302中生成该数据段的第一数据签名所采用的第一密码学算法相同。

例如,假设将上述目标数据切分顺序排列的a1-a10共10个数据段,则数据段a1为首个数据段,数据存储设备基该于数据段a1的内容,采用第一密码学算法生成该数据段的第二数据签名b1。

当数据段为非首个数据段时,示例地,可以获取关联的第一数据签名,该关联的第一数据签名为前述提取的该数据段的前一个数据段的第一数据签名,然后基于关联的第一数据签名和该数据段的内容,采用第二密码学算法生成该数据段的第二数据签名。该第二密码学算法与上述步骤302中生成该数据段的第一数据签名所采用的第二密码学算法相同。

仍然以上述例子为例,对于第二个数据段a2,与其关联的第一数据签名为该数据段a2的前一个数据段a1的第一数据签名a1,则数据存储设备基于关联的第一数据签名a1和该数据段a2的内容,采用第二密码学算法生成数据段a2的第二数据签名b2,同理,对于第三个数据段a3,与其关联的第一数据签名为该数据段a3的前一个数据段a2的第一数据签名a2,则数据存储设备基于关联的第一数据签名a2和该数据段a3的内容,采用第二密码学算法生成数据段a3的第二数据签名b3。

步骤307、对于每个数据段,数据存储设备将数据段的第二数据签名与数据段的第一数据签名进行比较。

请参考上述步骤303和304,由于m个数据段的第一数据签名分别存储于通用存储设备和指定存储设备中,则进行签名比较时,也需要分别进行签名的比较。如图5所示,该签名的比较过程可以包括:

步骤3071、数据存储设备将各个非末尾数据段的第二数据签名与所述通用存储设备中存储的对应的第一数据签名进行比较。

示例地,以步骤306中的例子为例,非末尾数据段包括a1-a9共9个数据段,数据存储设备可以将a1-a9的第二数据签名b1-b9分别与a1-a9的第一数据签名a1-a9进行比较,得到比较结果。

在一种可选的实现方式中,数据存储设备按照各个非末尾数据段的存储顺序(或排列顺序)依次将各个非末尾数据段的第二数据签名与通用存储设备中存储的对应的第一数据签名分别进行比较,当任一第二数据签名与对应的第一签名不同时,即可停止比较,此时确定目标数据被篡改。这样可以快速确定目标数据是否被篡改,减少运算代价。

在另一种可选的方式中,数据存储设备按照各个非末尾数据段的存储顺序(或排列顺序)依次将各个非末尾数据段的第二数据签名与通用存储设备中存储的对应的第一数据签名分别进行比较直至所有非末尾数据段的第二数据签名与第一数据签名比较完毕。这样可以确定所有的非末尾数据段中哪些数据段被篡改,比较结果更为细化。

在又一种可选的方式中,数据存储设备可以对所有非末尾数据段中的至少一部分数据段的第二数据签名与对应的第一数据签名进行同步比较。这样可以加快比较速度,提高比较效率。

需要说明的是,在步骤306中,当数据段为非首个数据段时,数据存储设备基于该数据段的前一个数据段的第一数据签名和该数据段的内容生成该数据段的第二数据签名,而不是基于该数据段的前一个数据段的第二数据签名和该数据段的内容生成该数据段的第二数据签名,这样一来,由于生成数据签名的依据中关联的第一数据签名并没有变更,若生成的第二数据签名与对应的第一数据签名不同,则说明是该数据段的内容发生了变化,这样使得数据段的第二数据签名与数据段的内容强相关,能够准确识别数据段的内容是否被篡改。

步骤3072、数据存储设备将末尾数据段的第二数据签名与指定监管设备中的末尾数据段的第一数据签名进行比较。

可选地,将末尾数据段的第二数据签名与指定监管设备中的末尾数据段的第一数据签名进行比较的过程可以有多种实现方式,本申请实施例以以下两种实现方式为例进行说明:

在第一种实现方式中,由指定监管设备进行数据校验。

数据存储设备可以向指定监管设备发送校验请求,该校验请求包括末尾数据段的第二数据签名,末尾数据段的第二数据签名用于供指定监管设备与末尾数据段的第一数据签名进行比较。由于在步骤304中,数据存储设备在指定监管设备中存储末尾数据段的第一数据签名,则指定监管设备可以基于该校验请求,将末尾数据段的第二数据签名与该指定监管设备所存储的末尾数据段的第一数据签名进行比较。

示例地,以步骤306中的例子为例,数据存储设备可以通过网络向指定监管设备发送校验请求,该校验请求中携带末尾数据段a10的第二数据签名b10。指定监管设备在接收到校验请求后,提取该校验请求携带的末尾数据段a10的第二数据签名b10。此处,指定监管设备获取本地存储的末尾数据段a10的第二数据签名a10,将两者进行比较,得到比较结果。

需要说明的是,请参考上述步骤304,数据存储设备可以向指定监管设备发送校验请求的方式可以与数据存储设备在指定监管设备中存储末尾数据段的第一数据签名的方式相同,例如,当指定监管设备包括指定终端时,数据存储设备可以通过邮件、短消息或即时通信消息的形式向该指定终端发送校验请求;当指定监管设备包括指定服务器时,数据存储设备可以通过url与该指定服务器连接,向该指定服务器发送校验请求;当指定监管设备包括区块链系统中的设备时,数据存储设备可以通过该区块链系统中网络与该设备建立连接,然后向该设备发送校验请求,由于区块链系统中各个设备存储的数据是相同的,该数据存储设备也可以通过区块链系统中的网络向区块链系统中的任一设备发送校验请求;当指定监管设备包括云计算服务中心时,数据存储设备可以通过有线或无线网络与该云计算服务中心建立连接,向该云计算服务中心发送校验请求。

在第二种实现方式中,由数据存储设备在本地进行数据校验。

请参考图4,图4为本申请实施例提供的数据存储方法的实施过程示意图,由于在步骤304中,数据存储设备120在指定监管设备140中存储末尾数据段的第一数据签名。则在进行数据校验时,从指定监管设备140中提取该末尾数据段的第一数据签名,进行进一步数据校验。

示例地,以步骤306中的例子为例,数据存储设备可以获取末尾数据段a10的第二数据签名b10,以及之前存储的末尾数据段a10的第二数据签名a10,将两者进行比较,得到比较结果。

需要说明的是,请参考上述步骤304,数据存储设备可以提取该末尾数据段的第一数据签名的方式可以与数据存储设备在指定监管设备中存储末尾数据段的第一数据签名的方式相同,例如,当指定监管设备包括指定终端时,数据存储设备可以通过邮件、短消息或即时通信消息的形式向该指定终端发送签名获取请求,由该指定终端以相同的方式回复末尾数据段的第一数据签名;当指定监管设备包括指定服务器时,数据存储设备可以通过url与该指定服务器连接,向该指定服务器发送签名获取请求,由该指定服务器基于该url回复末尾数据段的第一数据签名;当指定监管设备包括区块链系统中的设备时,数据存储设备可以通过该区块链系统中网络与该设备建立连接,然后向该设备发送签名获取请求,由于区块链系统中各个设备存储的数据是相同的,该数据存储设备也可以通过区块链系统中的网络向区块链系统中的任一设备发送签名获取请求,由该设备通过上述网络回复末尾数据段的第一数据签名;当指定监管设备包括云计算服务中心时,数据存储设备可以通过有线或无线网络与该云计算服务中心建立连接,向该云计算服务中心发送签名获取请求,由该云计算服务中心回复末尾数据段的第一数据签名。

需要说明的是,上述步骤3071和步骤3072的顺序可以根据具体情况颠倒,本申请实施例对此不做限定。

由于在进行防篡改校验时,可以基于非末尾数据段的第一数据签名进行目标数据的初步校验,基于末尾数据段的第一数据签名进行目标数据的进一步校验,实现目标数据的双重校验,提高防篡改校验的准确性,保障目标数据的安全。

步骤308、当数据段的第二数据签名与数据段的第一数据签名不同时,数据存储设备确定数据段被篡改。

在本申请实施例中,当任一数据段被篡改,该目标数据变成了无效数据,数据存储设备可以发出告警提示信息,示例地,其可以向主机发出告警提示信息,也可以向指定监管设备发出告警提示信息。可选的,该告警提示信息可以包括被篡改的数据段的内容,或者,数据存储设备在对目标数据段进行分段时,可以为每个数据段分配唯一的数据段标识,该告警提示信息包括被篡改的数据段对应的数据段标识。

示例的,主机在接收到该告警提示信息后,可以在输入输出接口通过文字或语音形式呈现该告警提示信息。例如,该输入输出接口为显示屏,主机在该显示屏的显示界面中弹出窗口,通过该窗口内的文字来呈现告警提示信息,例如文字内容为“数据被篡改!”,或者“数据的第二段被篡改”。示例的,指定监管设备可以为终端,数据存储设备可以通过邮件、短消息、彩信或即时通信消息的形式向该指定终端发送告警提示信息。该指定终端相应呈现该告警提示信息。例如,邮件、短消息、彩信或即时通信消息中的告警提示信息的内容为“数据被篡改!”,或者“数据的第二段被篡改”。当然,若指定监管设备为其他设备,告警提示信息的传输方式可以参考上述步骤304中末尾数据段的第一数据签名的传输方式,本申请实施例对此不做赘述。

步骤309、当数据段的第二数据签名与数据段的第一数据签名相同时,数据存储设备确定数据段未被篡改。

在本申请实施例中,当数据段未被篡改,数据存储设备可以发出校验响应,该校验响应用于指示目标数据未被篡改,示例地,其可以向主机发出校验响应,也可以向指定监管设备发出校验响应。该校验响应的发送方式可以参考上述步骤308中告警提示信息的发送方式,本申请实施例对此不再赘述。

需要说明的是,本申请实施例提供的数据存储方法步骤的先后顺序可以进行适当调整,步骤也可以根据情况进行相应增减,例如步骤305可以删除,步骤308和步骤309的先后顺序可以调换。任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化的方法,都应涵盖在本发明的保护范围之内,因此不再赘述。

综上所述,本申请实施例提供的数据存储方法,通过将目标数据切分为m个数据段,并生成该每个数据段的第一数据签名,通过每个数据段的第一数据签名来对所述数据段进行防篡改数据校验,无需使用worm专有硬件设备,便可以实现防篡改数据校验,从而达到与worm专有硬件设备相同的存储效果,而由于本申请提供的数据存储方法可以使用通用存储设备进行数据存储,其携带方便,成本较低。

进一步的,由于将前m-1个数据段的第一数据签名存储于通用存储设备,最后一个数据段的第一数据签名存储于指定存储设备中,则在进行防篡改校验时,可以基于前m-1个数据段的第一数据签名进行目标数据的初步校验,基于末尾数据段的第一数据签名进行目标数据的进一步校验,实现目标数据的双重校验,提高防篡改校验的准确性,保障目标数据的安全。

在第二种可选的实现方式中,m个数据段的第一数据签名均存储于通用存储设备中,如图6所示,图6是本申请实施例提供的一种数据存储方法流程图,该数据存储方法可以应用于图1所示的实施环境中,该数据存储方法可以包括如下几个步骤:

步骤401、数据存储设备将待存储的目标数据切分成顺序相连的m个数据段,m为正整数。

步骤401可以参考上述步骤301,本申请实施例对此不再赘述。

步骤402、对于每个数据段,当该数据段为首个数据段时,数据存储设备基于该数据段的内容生成该数据段的第一数据签名,当该数据段为非首个数据段时,数据存储设备基于关联的第一数据签名和该数据段的内容生成数据段的第一数据签名,该关联的第一数据签名为数据段的前一个数据段的第一数据签名。

步骤402可以参考上述步骤302,本申请实施例对此不再赘述。

步骤403、数据存储设备在通用存储设备中存储m个数据段,以及m个数据段的第一数据签名。

如第一种可选实现方式中所述,该通用存储设备可以为硬盘、nas设备、san设备和云存储设备中的至少一种。

当该通用存储设备为硬盘时,数据存储设备可以通过数据连接线与该硬盘连接,将该m个数据写入该硬盘中;当该通用存储设备为nas设备时,数据存储设备可以通过有线或者无线的网络与该nas设备连接,将该m个数据写入该硬盘中;当该通用存储设备为san设备时,数据存储设备可以通过有线或者无线的网络与该san设备连接,将该m个数据写入该硬盘中;当该通用存储设备为云存储设备时,数据存储设备可以通过有线或者无线的网络与该云存储设备连接,将该m个数据写入该硬盘中。

在通用存储设备中存储m个数据段,以及m个数据段的第一数据签名的方式可以有多种,本申请实施例以以下两种方式为例进行说明:

第一种方式,数据存储设备将m个数据段中每个非末尾数据段的第一数据签名拼接至下一个数据段的头部;在通用存储设备中存储首个数据段、拼接后的数据段和末尾数据段的第一数据签名。

例如,假设将上述目标数据切分顺序排列的a1-a10共10个数据段,其中,a1至a10对应的第一数据签名分别为a1-a10,则将a1拼接至a2之前形成新的数据段c1,将a2拼接至a3之前形成新的数据段c2,…直至将a9拼接至a10之前形成新的数据段c9。则最终,数据存储设备在通用存储设备中存储首个数据段a1、拼接后的数据段:c1-c9和末尾数据段的第一数据签名a10。

需要说明的是,上述首个数据段、拼接后的数据段和末尾数据段的第一数据签名可以分时存储,也即是,其存储时间不同,例如,先存储首个数据段,然后每拼接得到一个拼接后的数据段,便存储该数据段,首个数据段和拼接后的数据段是按照之前对应的m个数据段的排列顺序存储的,最后存储末尾数据段的第一数据签名。上述首个数据段、拼接后的数据段和末尾数据段的第一数据签名也可以同时存储,也即是,在拼接得到所有拼接后的数据段后,将首个数据段、拼接后的数据段和末尾数据段的第一数据签名一并存储在通用存储设备中。

第二种方式,数据存储设备在m个数据段中每两个相邻的数据段之间插入该两个相邻的数据段中的第一个数据段的第一数据签名,并将末尾数据段的第一数据签名插入到末尾数据段之后,得到处理后的目标数据,并存储该目标数据。

例如,假设将上述目标数据切分顺序排列的a1-a10共10个数据段,其中,a1至a10对应的第一数据签名分别为a1-a10,则将a1插入至a1和a2之间,将a2插入至a2和a3之间,…直至将a9插入至a9和a10之间,并将末尾数据段a10的第一数据签名a10插入到末尾数据段a10之后,此时得到处理后的目标数据。则最终,将该目标数据存储至通用存储设备中。

步骤404、数据存储设备在接收到针对目标数据的修改指令后,发出禁止修改响应,该禁止修改响应用于指示禁止对目标数据进行修改。

步骤404可以参考上述步骤305,本申请实施例对此不再赘述。

步骤405、数据存储设备在接收到校验指令后,对于每个数据段,当数据段为首个数据段时,基于数据段的内容生成数据段的第二数据签名,当数据段为非首个数据段时,基于关联的第一数据签名和数据段的内容生成数据段的第二数据签名。

步骤405可以参考上述步骤306,本申请实施例对此不再赘述。

步骤406、数据存储设备将各个非末尾数据段的第二数据签名与所述通用存储设备中存储的对应的第一数据签名进行比较。

步骤406可以参考上述步骤307,本申请实施例对此不再赘述。

步骤407、当数据段的第二数据签名与数据段的第一数据签名不同时,数据存储设备确定数据段被篡改。

步骤407可以参考上述步骤308,本申请实施例对此不再赘述。

步骤408、当数据段的第二数据签名与数据段的第一数据签名相同时,数据存储设备确定数据段未被篡改。

步骤408可以参考上述步骤309,本申请实施例对此不再赘述。

需要说明的是,本申请实施例提供的数据存储方法步骤的先后顺序可以进行适当调整,步骤也可以根据情况进行相应增减,例如步骤404可以删除,步骤407和步骤408的先后顺序可以调换。任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化的方法,都应涵盖在本发明的保护范围之内,因此不再赘述。

综上所述,本申请实施例提供的数据存储方法,通过将目标数据切分为m个数据段,并生成该每个数据段的第一数据签名,通过每个数据段的第一数据签名来对所述数据段进行防篡改数据校验,无需使用worm专有硬件设备,便可以实现防篡改数据校验,从而达到与worm专有硬件设备相同的存储效果,而由于本申请提供的数据存储方法可以使用通用存储设备进行数据存储,其携带方便,成本较低。

需要说明的是,本申请实施例中上述数据存储方法可以通过在数据存储设备中安装对应的存储程序(也称worm软件)来实现。虽然上述步骤305和步骤404在接收到针对目标数据的修改指令后,会生成禁止修改响应,也即是,本申请提供的数据存储设备中存储的数据是不可更改的,但是,该存储程序可能遭到攻击或出现被卸载的情况,此时,存储在通用存储设备中的目标数据中的一个或多个数据段可能被强制篡改。则通过上述步骤306至步骤309,以及步骤405至步骤408,可以实现数据段的校验,来确定目标数据是否已被篡改,避免被篡改的数据作为有效数据被使用。进一步的,若该存储程序遭到攻击或出现被卸载的情况,且存储在通用存储设备中的目标数据中的所有数据段以及对应的第一数据签名全部被篡改,此时,通过上述第一种可实现方式中的步骤3072的校验方式,通过指定监管设备中存储的第一数据签名,仍然可以校验出目标数据被篡改,进一步避免被篡改的数据作为有效数据被使用,有效提高了数据的安全性。该指定监管设备为预设监管机构的设备,将校验信息即上述末尾数据段的第一数据签名发送给监管机构保存,可以方便监管机构掌握符合规定的目标数据归档的完成情况,和检查目标数据是否被篡改,便于监管机构了解目标数据的动态。

本申请实施例提供的数据存储方法可以应用于多种场景中,例如,为企业和政府机关提供不可改变的数据存储方式,或者,为用户的隐私信息提供安全的数据存储方式,又或者,为一些重要的密文密钥提供不可改变的数据存储方式。

为了便于读者理解,本申请实施例以上述第一种可选的实现方式所提供的数据存储方法为例,进行示意性说明。

假设数据存储设备和指定存储设备分别为电脑x和电脑y,目标数据为a和b两个文件的数据,该两个文件可以为税务文件,电脑y为企业的监管机构和/或政府税务监管人员的电脑,第一密码学算和第二密码学算法均为sha256密码学算法。则本申请实施例提供的数据存储方法在第一种可选的实现方式中可以包括:

企业的工作人员通过主机同时写入待存储的a和b两个文件的数据,相应的,主机将携带有顺序排列的a和b两个文件的数据写入指令发送至电脑x。该a和b两个文件的数据是符合企业存储规定的归档数据。电脑x在接收到该a和b两个文件的数据后,可以分别将该两个文件的数据进行切分,参考上述步骤301中的第一种切分方式,也可以将两个文件作为目标数据直接切分,参考上述步骤301中的第二种切分方式。以上述第一种切分方式为例,则请参考图7,图7为文件a的存储方式示意图。假设,电脑x将a文件的数据切分成10个长度相同数据段a1-a10;然后,电脑x将首个数据段a1存储至通用存储设备中,之后,电脑x基于数据段a1的内容,采用sha256密码学算法生成该数据段的第一数据签名a1,然后将数据段a1的第一数据签名a1拼接至数据段a2之前形成新的数据段c1,再将c1存储于通用存储设备中。之后,将第二个数据段a2,电脑x基于其前一个数据段a1的第一数据签名a1和该数据段a2的内容,采用sha256密码学算法生成该数据段的第一数据签名a2,然后将数据段a2的第一数据签名a2拼接至数据段a3之前形成新的数据段c2,再将c2存储于通用存储设备中…同理,直至末尾数据段a10生成其第一数据签名a10,然后将数据段a9的第一数据签名a9拼接至数据段a10之前形成新的数据段c9,再将c9存储于通用存储设备中。其中,a1、c1-c9以及a10为a文件对应的链式数据。

假设,电脑x将b文件的数据切分成20个长度相同数据段b1-b20,由于数据写入指令中a文件位于b文件之前,电脑x可以先将a文件的数据段a10的第一数据签名a10拼接至数据段b1之前形成新的数据段c10,再将数据段c10存储于通用存储设备中。之后,对于b文件首个数据段b1,基于a文件的数据段a10的第一数据签名a10和数据段b1的内容,采用sha256密码学算法生成该数据段的第一数据签名b1,然后将数据段b1的第一数据签名b1拼接至数据段b2之前形成新的数据段c11,再将c11存储于通用存储设备中…,同理,直至基于b文件的数据段b18的第一数据签名b18和数据段b19的内容,采用sha256密码学算法生成该数据段b19的第一数据签名b19,然后将数据段b19的第一数据签名b19拼接至数据段b20之前形成新的数据段c29,再将c29存储于通用存储设备中。最后,为目标数据的末尾数据段b20生成其第一数据签名b20。

示例的,电脑x将末尾数据段b20的第一数据签名b20通过第一邮件发送至电脑y,该电脑y获取邮件中的末尾数据段b20的第一数据签名b20,并将该第一数据签名b20进行存储。

通常的,末尾数据段b20的第一数据签名b20的信息很少,比如采用sha256的签名算法,生成的校验信息长度只有64个字符,例如,该第一数据签名b20可以为以下64个字符:

“dj55:~#sha256sum.rnd

3f2e036eadfdaa654b5b8df902670652f80e2cbd6bb4ee5354a0488460ffb152.rnd”

示例的,假设某一员工用户想把目标数据篡改,用以伪造证据或谋求利益。例如想要修改a文件的第四个数据段a4的内容时,该员工对主机执行修改操作,主机在接收到该修改操作时对该电脑x发送修改指令,电脑x在接收到针对已处理的目标数据a文件的第四个数据段a4的修改指令后,发出禁止修改响应,主机接收到该禁止修改响应后,其显示屏的显示界面中弹出窗口,该窗口内的文字为“禁止数据修改!”。

当企业的工作人员发现通用存储设备受到攻击,想要对a和b两个文件的数据进行防篡改数据校验时,该工作人员对主机通过键盘输入防篡改校验命令,主机接收到该命令触发的针对a和b两个文件的数据的校验命令时,将该校验命令发送至电脑x。该电脑x在接收到该指令后,电脑x从通用存储设备中读取由a和b两个文件的数据切分得到的数据段a1-b20共30个数据段,以及数据段a1-b19的第一数字签名a1-b19。

此时,对于首个数据段a1,电脑x基于数据段a1的内容,采用sha256密码学算法生成该数据段的第二数据签名c1。对于第二个数据段a2,电脑x基于其前一个数据段a1的第一数据签名a1和该数据段a2的内容,采用sha256密码学算法生成该数据段的第二数据签名c2。同理,对于第三个数据段a3,电脑x基于数据段a2的第一数据签名a2和该数据段a3的内容,采用sha256密码学算法生成该数据段的第二数据签名c3,…,直至末尾数据段b20生成其第二数据签名d20。

然后电脑x将各个非末尾数据段a1-b19的第二数据签名c1-d19依次与通用存储设备中存储的对应的第一数据签名a1-b19进行比较。

若任一第二数据签名与第一数据签名不同时,即可停止比较,此时确定目标数据被篡改。例如,若第四个数据段a4的第一数据签名a4与第二数据签名c4不同,停止比较,确认目标数据被篡改。此时电脑x发出告警提示信息,主机接收到该告警提示信息后,其显示屏的显示界面中弹出窗口,该窗口内的文字为“目标数据中第四数据段内容为xx的部分被篡改!”。

若所有非末尾数据段的第二数据签名与第一签名相同时,电脑x向电脑发送第二邮件,其内容为“xx公司,因xx情况,请求xx监管机构对xx年xx月xx日的a和b文件进行校验,被校验数据的末尾数据段的第二数据签名为d20。”,该电脑y可以自动提取邮件中末尾数据段的第二数据签名d20和本地存储的末尾数据段的第一数据签名b20,将末尾数据段的第二数据签名d20与末尾数据段的第一数据签名b20进行比较。或者,电脑y的管理员将第一邮件中的b20,与第二邮件中的d20进行比较。

若b20与d20相同,说明a文件和b文件的内容未被篡改,若b20与d20不同,说明a文件和b文件的内容被篡改,电脑y可以自动或者在管理员的控制下回复电脑x第三邮件,由该第三邮件指明比较结果。

示例的,若所有第二数据签名与第一数据签名相同时,电脑x发出校验响应,主机接收到该校验响应后,其显示屏的显示界面中弹出窗口,该窗口内的文字为“目标数据未被篡改!”。

假设某一人员直接通过第三方的数据修改软件,强制把通用存储设备中的数据段a1-b20中的数据段b10进行了修改,得到数据段b110,并且基于b9的第一数据签名b9和数据段b110的内容,采用sha256密码学算法生成该数据段b110的第一数据签名b110,采用该数据段b110覆盖原有的数据段b10,采用该第一数据签名b110覆盖原有的第一数据签名b10,后续的数据段均基于其关联的第一数据签名和该数据段的内容,采用sha256密码学算法生成新的第一数据签名,并采用新的第一数据签名覆盖了原有的第一数据签名,以进行链式修改。这样,对于电脑x,其在从通用存储设备提取目标数据时,提取的是数据段a1-a10,b1-b9,b110以及b11-b20,以及这些数据段对应的29个第一数据签名;由于上述某一人员将通用存储设备中的第一数据签名也进行了更新,则在数据校验时,电脑x校验的该29个第一数据签名与生成的29个第二数据签名相同,但是由于数据段b20的第一数据签名存储在远端的电脑y上,该某一人员无法修改,因此,当电脑x基于数据段b19更新后的第一数据签名与数据段b20生成的第二数据签名,将其发送给电脑y,由于电脑y之前存储的第一数据签名为电脑x基于数据段b19的原始的第一数据签名b19与数据段b20生成的,其显然与第二数据签名不同,则可以校验出目标数据被篡改。

下述为本公开装置实施例,可以用于执行本公开方法实施例。对于本公开装置实施例中未披露的细节,请参照本公开方法实施例。

本申请实施例提供一种数据存储设备50,如图8所示,包括:

切分模块501,第一生成模块502和存储模块503。

切分模块501,用于实现上述方法实施例中步骤301或步骤401所示的方法;

第一生成模块502,用于实现上述方法实施例中步骤302或步骤402所示的方法;

存储模块503,用于存储所述m个数据段,以及所述m个数据段中每个数据段的第一数据签名,例实现上述方法实施例中步骤303和步骤304,或步骤40,3所示的方法。

综上所述,本申请实施例提供的数据存储装置,通过切分模块将目标数据切分为m个数据段,并由第一生成模块生成该每个数据段的第一数据签名,并由存储模块存储m个数据段,以及m个数据段中每个数据段的第一数据签名,通过每个数据段的第一数据签名来对数据段进行防篡改数据校验,无需使用worm专有硬件设备,便可以实现防篡改数据校验,从而达到与worm专有硬件设备相同的存储效果,而由于本申请提供的数据存储方法可以使用通用存储设备进行数据存储,其携带方便,成本较低。

可选的,如图9所示,装置50在图8所示的基础上还包括:

第二生成模块504、比较模块505和确定模块506。

第二生成模块504,用于实现上述方法实施例中步骤306或步骤405所示的方法;

比较模块505,用于实现上述方法实施例中步骤307或步骤406所示的方法;

确定模块506,用于实现上述方法实施例中步骤308和步骤309,或,步骤407和步骤408所示的方法。

可选的,存储模块503,用于:

在通用存储设备中存储m个数据段,以及非末尾数据段的第一数据签名,非末尾数据段为m个数据段除位于末尾的一个末尾数据段之外的其他数据段;

在指定监管设备中存储末尾数据段的第一数据签名,指定监管设备与通用存储设备不同。

如图10所示,比较模块505,包括:

第一比较子模块5051,用于实现上述方法实施例中步骤3071所示的方法;

第二比较子模块5052,用于实现上述方法实施例中步骤3072所示的方法。

其中,第二比较子模块5052,用于:

向指定监管设备发送校验请求,校验请求包括末尾数据段的第二数据签名,末尾数据段的第二数据签名用于供指定监管设备与末尾数据段的第一数据签名进行比较;或者,

向指定监管设备发送校验码获取请求,校验码获取请求用于请求获取末尾数据段的第一数据签名,接收指定监管设备发送的校验码获取响应,校验码获取响应包括末尾数据段的第一数据签名,将末尾数据段的第二数据签名与校验码获取响应中的第一数据签名进行比较。

可选的,存储模块503,用于:

将m个数据段中每个非末尾数据段的第一数据签名拼接至下一个数据段的头部;在通用存储设备中存储首个数据段和拼接后的数据段。

可选的,目标数据包括至少两个文件的数据,m>1,

可选的,切分模块501,用于:

接收数据写入指令,数据写入指令包括:顺序排列的至少两个文件的数据;

将至少两个文件的数据作为目标数据,将目标数据切分成顺序相连的m个数据段;

或者,将每个文件的数据切分成顺序相连的至少一个数据段,按照数据写入指令中至少两个文件的排列顺序,将每个文件对应的至少一个数据段顺序排列得到m个数据段。

可选的,如图11所示,装置50在图8所示的基础上还包括:

响应模块507,用于实现上述方法实施例中步骤305或步骤404所示的方法。

可选的,指定监管设备包括指定服务器、指定终端和区块链系统中的设备中的至少一个。

可选的,通用存储设备为硬盘、网络附属存储nas设备、存储区域网络san设备和云存储设备中的至少一种。

综上所述,本申请实施例提供的数据存储设备,通过切分模块将目标数据切分为m个数据段,并由第一生成模块生成该每个数据段的第一数据签名,并由存储模块存储m个数据段,以及m个数据段中每个数据段的第一数据签名,通过每个数据段的第一数据签名来对数据段进行防篡改数据校验,无需使用worm专有硬件设备,便可以实现防篡改数据校验,从而达到与worm专有硬件设备相同的存储效果,而由于本申请提供的数据存储方法可以使用通用存储设备进行数据存储,其携带方便,成本较低。进一步的,由于将前m-1个数据段的第一数据签名存储于通用存储设备,最后一个数据段的第一数据签名存储于指定存储设备中,则在进行防篡改校验时,可以基于前m-1个数据段的第一数据签名进行目标数据的初步校验,基于末尾数据段的第一数据签名进行目标数据的进一步校验,实现目标数据的双重校验,提高防篡改校验的准确性,保障目标数据的安全。

图12是本发明实施例提供的一种数据存储设备的结构示意图,如图12所示,该服务器可以包括:处理器1201(如cpu)、存储器1202、网络接口1203和总线1204。其中,总线1204用于连接处理器1201、存储器1202和网络接口1203。存储器1202可能包含随机存取存储器(randomaccessmemory,ram),也可能包含非不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器。通过网络接口1203(可以是有线或者无线)实现服务器与通信设备之间的通信连接。存储器1202中存储有计算机程序12021,该计算机程序12021用于实现各种应用功能,处理器1201用于执行存储器1202中存储的计算机程序12021来实现上述方法实施例提供的数据存储方法。

本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当该计算机可读存储介质在处理组件上运行时,使得处理组件执行上述方法实施例提供的数据存储方法。示例地,该处理组件可以为计算机。

本发明实施例还提供了一种包含指令的计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述方法实施例提供的数据存储方法。

本申请实施例提供一种芯片,所述芯片包括可编程逻辑电路和/或程序指令,当所述芯片运行时用于实现上述方法实施例提供的数据存储方法。

本申请实施例提供一种数据存储系统,包括:指定监管设备和数据存储设备;该数据存储设备为本申请上述实施例提供的数据存储设备。所述指定监管设备用于监管所述数据存储设备的防篡改数据校验的结果。示例地,该数据存储系统可以为上述图1或图2中实施环境所提供的数据存储系统。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现,所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、计算机网络或者其他可编程装置。所述计算机指令可以存储在计算机的可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质,或者半导体介质(例如固态硬盘)等。

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