基于SSD安全擦除后的用户数据测试方法和装置与流程

文档序号:19992172发布日期:2020-02-22 02:23阅读:218来源:国知局
基于SSD安全擦除后的用户数据测试方法和装置与流程

本发明涉及固态硬盘存储技术领域,特别是涉及一种基于ssd安全擦除后的用户数据测试方法、装置、计算机设备和存储介质。



背景技术:

目前,ssd(固态硬盘)已经被广泛应用于各种场合,目前在pc市场,已经逐步替代传统的hdd,从可靠性和性能方面为用户提供较好的体验。

在传统技术中,当ssd被安全擦除后,ssd上的所有用户数据都应被清零,也就是说ssd每个lba上的数据都应为0,且其上的数据都不能被恢复。然而,若ssd固件设计存在缺陷,则有可能导致ssd在被安全擦除后,其上的某些,甚至绝大部分lba上的数据都没有被清零,而这些没有被清零的数据是有可能被恢复出来的,从而存在用户数据失窃的可能。然而,目前有关ssd安全擦除的测试工具或方法,仅关注ssd是否被安全擦除,但并没有关注ssd被安全擦除后,其所有lba上的用户数据是否被真正地被清除(即清零)了,导致不能有效地保障ssd用户数据的安全性。



技术实现要素:

基于此,有必要针对上述技术问题,提供一种可以实现自动判断ssd被安全擦除后,其上所有lba的用户数据是否已被清零的基于ssd安全擦除后的用户数据测试方法、装置、计算机设备和存储介质。

一种基于ssd安全擦除后的用户数据测试方法,所述方法包括:

获取基于ssd安全擦除后的用户数据测试请求;

根据所述基于ssd安全擦除后的用户数据测试请求,通过运行测试脚本利用fio读写工具对固态硬盘写满全盘两遍;

利用hdparm工具对所述固态硬盘进行安全擦除;

在安全擦除之后利用hdparm工具读取所述固态硬盘每一个lba上的用户数据,并将读取到的数据保存到对应的文件中;

判断已保存文件中用户数据的值是否为0;若不为0则所述脚本报错,脚本停止,测试结束;若为0则表示对应lba上的用户数据已被清零。

在其中一个实施例中,所述在安全擦除之后利用hdparm工具读取所述固态硬盘每一个lba上的用户数据,并将读取到的数据保存到对应的文件中的步骤还包括:

利用hdparm工具依次读取所述固态硬盘每一个lba上的用户数据,其中,所述用户数据包括从lba从0至最后一个lba上的所有用户数据;

将对应lba上的数据自动保存到以所述lba的值为名的txt文件中。

在其中一个实施例中,所述判断已保存文件中用户数据的值是否为0;若不为0则所述脚本报错,脚本停止,测试结束;若为0则表示对应lba上的用户数据已被清零的步骤还包括:

将已保存txt文件上的用户数据的值与0进行比较;

若所述已保存txt文件上的用户数据的值不为0,则脚本报错,脚本停止,测试结束;

若所述已保存txt文件上的用户数据的值为0,则表示该lba上的用户数据已被清零;

删除所述已保存的txt文件。

在其中一个实施例中,在所述若为0则表示对应lba上的用户数据已被清零的步骤之后还包括:

继续检测下一个lba上的用户数据,直至检测到某一lba上的用户数据不为0或所有lba数据都已被检测完,停止测试,退出脚本。

一种基于ssd安全擦除后的用户数据测试装置,所述装置包括:

获取模块,所述获取模块用于获取基于ssd安全擦除后的用户数据测试请求;

写满模块,所述写满模块用于根据所述基于ssd安全擦除后的用户数据测试请求,通过运行测试脚本利用fio读写工具对固态硬盘写满全盘两遍;

擦除模块,所述擦除模块用于利用hdparm工具对所述固态硬盘进行安全擦除;

读取模块,所述读取模块用于在安全擦除之后利用hdparm工具读取所述固态硬盘每一个lba上的用户数据,并将读取到的数据保存到对应的文件中;

判断模块,所述判断模块用于判断已保存文件中用户数据的值是否为0;若不为0则所述脚本报错,脚本停止,测试结束;若为0则表示对应lba上的用户数据已被清零。

在其中一个实施例中,所述读取模块还用于:

利用hdparm工具依次读取所述固态硬盘每一个lba上的用户数据,其中,所述用户数据包括从lba从0至最后一个lba上的所有用户数据;

将对应lba上的数据自动保存到以所述lba的值为名的txt文件中。

在其中一个实施例中,所述判断模块还用于:

将已保存txt文件上的用户数据的值与0进行比较;

若所述已保存txt文件上的用户数据的值不为0,则脚本报错,脚本停止,测试结束;

若所述已保存txt文件上的用户数据的值为0,则表示该lba上的用户数据已被清零;

删除所述已保存的txt文件。

在其中一个实施例中,所述装置还包括:

循环模块,所述循环模块用于继续检测下一个lba上的用户数据,直至检测到某一lba上的用户数据不为0或所有lba数据都已被检测完,停止测试,退出脚本。

一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任意一项方法的步骤。

一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项方法的步骤。

上述基于ssd安全擦除后的用户数据测试方法、装置、计算机设备和存储介质,通过运行测试脚本利用fio读写工具对固态硬盘写满全盘两遍;利用hdparm工具对所述固态硬盘进行安全擦除;在安全擦除之后利用hdparm工具读取所述固态硬盘每一个lba上的用户数据,并将读取到的数据保存到对应的文件中;判断已保存文件中用户数据的值是否为0;若不为0则所述脚本报错,脚本停止,测试结束;若为0则表示对应lba上的用户数据已被清零。本发明提供的测试方法简单高效,可自动判断ssd被安全擦除后,其上所有lba的用户数据是否已被清零,若不为0,则很有可能是由于ssd在执行安全擦除命令时出现异常所致,从而可提前暴露并解决与之相关的ssd固件设计缺陷,有效地保证了ssd用户数据的安全性,从而提升了ssd产品质量。

附图说明

图1为一个实施例中基于ssd安全擦除后的用户数据测试方法的流程示意图;

图2为另一个实施例中基于ssd安全擦除后的用户数据测试方法的流程示意图;

图3为再一个实施例中基于ssd安全擦除后的用户数据测试方法的流程示意图;

图4为一个实施例中基于ssd安全擦除后的用户数据测试装置的结构框图;

图5为另一个实施例中基于ssd安全擦除后的用户数据测试装置的结构框图;

图6为一个实施例中计算机设备的内部结构图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

通常,当ssd被安全擦除后,ssd上的所有用户数据都应被清零,也就是说ssd每个lba上的数据都应为0,且其上的数据都不能被恢复。然而,若ssd固件设计存在缺陷,则有可能导致ssd在被安全擦除后,其上的某些,甚至绝大部分lba上的数据都没有被清零,而这些没有被清零的数据是有可能被恢复出来的,从而存在用户数据失窃的可能。然而,目前有关ssd安全擦除的测试工具或方法,仅关注ssd是否被安全擦除,但并没有关注ssd被安全擦除后,其所有lba上的用户数据是否被真正地被清除(即清零)了,只有所有用户数据都被清零,ssd才算是真正实现了安全擦除的功能。

基于此,本发明旨在提供一种简单高效的测试方法可以实现自动判断ssd被安全擦除后,其上所有lba的用户数据是否已被清零。

在一个实施例中,如图1所示,提供了一种基于ssd安全擦除后的用户数据测试方法,该方法包括:

步骤102,获取基于ssd安全擦除后的用户数据测试请求;

步骤104,根据基于ssd安全擦除后的用户数据测试请求,通过运行测试脚本利用fio读写工具对固态硬盘写满全盘两遍;

步骤106,利用hdparm工具对固态硬盘进行安全擦除;

步骤108,在安全擦除之后利用hdparm工具读取固态硬盘每一个lba上的用户数据,并将读取到的数据保存到对应的文件中;

步骤110,判断已保存文件中用户数据的值是否为0;若不为0则脚本报错,脚本停止,测试结束;若为0则表示对应lba上的用户数据已被清零。

具体地,本实施例中提供的一种基于ssd安全擦除后的用户数据测试方法,其硬件需求包括:待测计算机:无强制要求;待测ssd:sata接口ssd。其软件需求:操作系统:centos7.0linux操作系统;测试脚本:自编写的shell测试脚本。可以理解的是:对于linux操作系统,在本实施例中对此并没有强制性要求。在本实施例优选为centos7.0linux操作系统。

在上述应用环境中,本实施例在linux系统下,利用fio及hdparm工具,编写shell测试脚本,该测试脚本能自动检测ssd被安全擦除后,其上所有lba的用户数据是否被清零。具体地,首先,获取基于ssd安全擦除后的用户数据测试请求。接着,根据该测试请求,通过运行测试脚本利用fio读写工具对固态硬盘写满全盘两遍。然后,利用hdparm工具对固态硬盘进行安全擦除,在安全擦除之后利用hdparm工具读取固态硬盘每一个lba上的用户数据,即从lba=0至最后一个lba上的所有用户数据,并将读取到的数据保存到对应的文件中。最后,判断已保存文件中用户数据的值是否为0;若不为0则脚本报错,脚本停止,测试结束;若为0则表示对应lba上的用户数据已被清零,继续检测下一个lba上的用户数据。

在一个实施例中,在步骤110之后还包括:继续检测下一个lba上的用户数据,直至检测到某一lba上的用户数据不为0或所有lba数据都已被检测完,停止测试,退出脚本。

在上述实施例中,在linux系统下,利用fio及hdparm工具,编写shell测试脚本,可自动判断ssd被安全擦除后,其上所有lba的用户数据是否已被清零,若不为0,则很有可能是由于ssd在执行安全擦除命令时出现异常所致,从而可提前暴露并解决与之相关的ssd固件设计缺陷,有效地保证了ssd用户数据的安全性,从而提升了ssd产品质量。

在一个实施例中,如图2所示,提供了一种基于ssd安全擦除后的用户数据测试方法,该方法中在安全擦除之后利用hdparm工具读取固态硬盘每一个lba上的用户数据,并将读取到的数据保存到对应的文件中的步骤还包括:

步骤202,利用hdparm工具依次读取固态硬盘每一个lba上的用户数据,其中,用户数据包括从lba从0至最后一个lba上的所有用户数据;

步骤204,将对应lba上的数据自动保存到以lba的值为名的txt文件中。

在一个实施例中,如图3所示,提供了一种基于ssd安全擦除后的用户数据测试方法,该方法中判断已保存文件中用户数据的值是否为0;若不为0则脚本报错,脚本停止,测试结束;若为0则表示对应lba上的用户数据已被清零的步骤还包括:

步骤302,将已保存txt文件上的用户数据的值与0进行比较;

步骤304,若已保存txt文件上的用户数据的值不为0,则脚本报错,脚本停止,测试结束;

步骤306,若已保存txt文件上的用户数据的值为0,则表示该lba上的用户数据已被清零;

步骤308,删除已保存的txt文件。

在本实施例中,提供了一种基于ssd安全擦除后的用户数据测试方法,其完整的实现步骤包括:

1、先用fio读写工具对ssd写满全盘两遍。

2、利用hdparm工具对ssd进行安全擦除。

3、利用hdparm工具读取ssd每一个lba上的用户数据(即从lba=0至最后一个lba上的所有用户数据),并将该lba上的数据自动保存到以该lba的值为名的.txt文件中。

4、将已保存的.txt文件上的用户数据的值与0进行比较,若值不为0,则脚本报错,脚本停止,测试结束;若值为0,则表示该lba上的用户数据已被清零,继续检测下一个lba上的用户数据。

5、删除已保存的.txt文件。

6、循环执行步骤3~步骤5,直至检测到某一lba上的用户数据不为0或所有lba数据都已被检测完,停止测试,退出脚本。

在上述实施例中,可自动判断ssd被安全擦除后,其上所有lba的用户数据是否已被清零,若不为0,则很有可能是由于ssd在执行安全擦除命令时出现异常所致,从而可提前暴露并解决与之相关的ssd固件设计缺陷,有效地保证了ssd用户数据的安全性,从而提升了ssd产品质量。

应该理解的是,虽然图1-3的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1-3中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

在一个实施例中,如图4所示,提供了一种基于ssd安全擦除后的用户数据测试装置400,该装置包括:

获取模块401,用于获取基于ssd安全擦除后的用户数据测试请求;

写满模块402,用于根据基于ssd安全擦除后的用户数据测试请求,通过运行测试脚本利用fio读写工具对固态硬盘写满全盘两遍;

擦除模块403,用于利用hdparm工具对固态硬盘进行安全擦除;

读取模块404,用于在安全擦除之后利用hdparm工具读取固态硬盘每一个lba上的用户数据,并将读取到的数据保存到对应的文件中;

判断模块405,用于判断已保存文件中用户数据的值是否为0;若不为0则脚本报错,脚本停止,测试结束;若为0则表示对应lba上的用户数据已被清零。

在一个实施例中,读取模块404还用于:

利用hdparm工具依次读取固态硬盘每一个lba上的用户数据,其中,用户数据包括从lba从0至最后一个lba上的所有用户数据;

将对应lba上的数据自动保存到以lba的值为名的txt文件中。

在一个实施例中,判断模块405还用于:

将已保存txt文件上的用户数据的值与0进行比较;

若已保存txt文件上的用户数据的值不为0,则脚本报错,脚本停止,测试结束;

若已保存txt文件上的用户数据的值为0,则表示该lba上的用户数据已被清零;

删除已保存的txt文件。

在一个实施例中,如图5所示,提供了一种基于ssd安全擦除后的用户数据测试装置400,该装置还包括:

循环模块406,用于继续检测下一个lba上的用户数据,直至检测到某一lba上的用户数据不为0或所有lba数据都已被检测完,停止测试,退出脚本。

关于基于ssd安全擦除后的用户数据测试装置的具体限定可以参见上文中对于基于ssd安全擦除后的用户数据测试方法的限定,在此不再赘述。

在一个实施例中,提供了一种计算机设备,其内部结构图可以如图6所示。该计算机设备包括通过装置总线连接的处理器、存储器以及网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作装置、计算机程序和数据库。该内存储器为非易失性存储介质中的操作装置和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于ssd安全擦除后的用户数据测试方法。

本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以上各个方法实施例中的步骤。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以上各个方法实施例中的步骤。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

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