首页 / 硬盘数据保护装置、硬盘、计算机及硬盘数据保护方法

硬盘数据保护装置、硬盘、计算机及硬盘数据保护方法有效专利 发明

技术内容

技术领域 本发明涉及保证存储数据安全的技术领域,特别是一种硬盘数据保护装 置、硬盘、计算机及硬盘数据保护方法。 背景技术 随着计算机的广泛应用,硬盘数据安全问题越来越引起人们的重视,基于 硬盘数据保护技术不断涌现。当前,为保护硬盘特定数据区,通常采用以下几 种方式:硬件加软件方式和单纯的软件方式,其中硬件加软件方式又包括:硬 盘保护卡、单硬盘隔离卡和硬盘保护装置这几种类型,而单纯的软件方式又包 括:修改BIOS以及更改、安装操作系统下的驱动程序的方式,下面对各种方 式分别进行说明。 硬盘保护卡方式采用“防写”原理,从硬件信号上隔离对保护分区的写操 作。同时随着硬盘保护卡技术的发展,进一步扩展了硬盘保护卡技术,其根据 硬盘分区情况占用一块固定大小的硬盘空间作为缓冲区来实现数据保护功能, 进行数据备份,或进行缓冲映射,然而硬盘保护卡方式需要一定的硬件成本, 或者需要消耗一定的硬盘空间资源。 单硬盘隔离卡方式通过一定硬件设备和相应软件,截取硬盘接口信号,获 取硬盘读写的地址信号,转换为逻辑地址后,对特定硬盘数据区进行保护,实 现硬盘区域间隔离,其应用较广,但也需要一定硬件成本,且因硬盘的差异, 而带来支持维护的困难。 而硬盘保护装置通过采用一些特定的处理器或电路装置,截取硬盘接口信 号,获取硬盘读写时的地址信号,转换为逻辑地址后,再控制硬盘的读写信号, 从而实现保护特定数据区的功能,而这种方法需要硬件成本,且需对现有标准 设计的计算机系统进行更改,带来不便。 从上述的描述可以看出,采用硬件结合软件的方式来实现硬盘数据保护都 需要增加硬件成本,由此也会带来相应的维护的问题,因此,出现了软件方式 的硬盘数据保护方法。 修改输入输出系统方式通过更改硬盘数据读写中断(INT13),从而对硬 盘特定数据区进行备份、保护,该方式无需额外的设备开销,但中断服务例程 易被截取更改,造成与一些应用的兼容性问题;且目前很多操作系统不依赖于 BIOS中断服务例程,需配合操作系统下的特定驱动来实现,易造成兼容性问 题,平台移植性较差。 通过更改、安装操作系统下的驱动程序的方式通过与操作系统结合,从而 实现硬盘特定数据区的保护,该方式依赖于操作系统核心,易受病毒或非法软 件、非法操作的侵袭,给安全性带来一定影响;需根据操作系统的类型进行更 改,平台移植性较差。 发明内容 本发明实施例的目的是提供一种硬盘数据保护装置、硬盘、计算机及硬盘 数据保护方法,在不增加额外硬件开销的情况下,实现可靠、安全的硬盘数据 保护。 本发明的一个实施例提供了一种硬盘保护装置,包括: 第一生成模块,用于生成具有唯一命令码的硬盘属性设置命令;所述硬盘 属性设置命令用于设置硬盘存储区域的读写属性; 发送模块,用于发送所述硬盘属性设置命令。 本发明的另一个实施例提供了一种硬盘,包括: 第一寄存器,用于接收并存储具有唯一命令码的硬盘属性设置命令; 第一硬盘属性设置模块,用于根据所述硬盘属性设置命令中的唯一命令码 对硬盘存储区域进行读写属性设置。 本发明的另一个实施例提供了一种硬盘的数据保护方法,所述方法应用于 包含有硬盘的数据系统中,包括以下步骤: 接收硬盘属性设置命令,所述硬盘属性设置命令具有唯一命令码; 根据硬盘属性设置命令中的唯一命令码对所述硬盘中的硬盘存储区域进 行读写属性设置。 本发明的另一个实施例提供了一种计算机,包括: 处理器; 显示器,与所述处理器连接; 硬盘,与所述处理器相连,用于存储数据, 其中,所述硬盘包括: 第一寄存器,用于接收并存储具有唯一命令码的硬盘属性设置命令; 第一硬盘属性设置模块,用于根据所述硬盘属性设置命令中的唯一命令码 对硬盘存储区域进行读写属性设置。 本发明的一个或多个实施例至少具有以下有益效果: 首先,由于本方案是在硬盘的固件(firmware)中,扩展一些接口命令, 用软件发送接口命令实现,故无需额外硬件开销; 其次,由于其仅依赖于ATA命令,不依赖于计算机硬件系统或操作系统, 移植性较好; 最后,只需硬盘firmware更改支持该功能,实际应用时配合一些软件控 制,如可通过计算机基本输入输出系统(BIOS)更改,或设计开发一些应用 软件,就可以方便实现,避免增加系统成本,该方案基于底层firmware,具有 较强的可靠性、安全性。 附图说明 图1为硬盘的简要结构示意图; 图2为本发明实施例的硬盘保护装置的数据保护方法的流程示意图; 图3为硬盘的存储区域划分为了存储块的示意图。 具体实施方式 本发明实施例的硬盘数据保护装置、硬盘、计算机及硬盘数据保护方法通 过更改硬盘中的固件模块(Firmware),增加硬盘设置命令(Set Command)来 实现,向硬盘发送对应的硬盘接口命令,实现硬盘逻辑地址区域的属性设置, 以保护硬盘特定区域的数据。 在对本发明的实施例进行详细描述之前,先对硬盘结构进行一定说明,使 本发明能被更好的理解。 如图1所示,硬盘一般包括存储模块、控制模块和驱动模块,其中: 存储模块,用于存储数据,数据在存储模块中的位置由LBA(Logic Block Address,逻辑块地址)来确定; 控制模块又包括固件单元和控制逻辑单元,其中该固件单元中设置有: 输入命令块寄存器(Input Command Block Register),为向硬盘端发送的寄 存器; 输出命令块寄存器(Output Command Block Register)组,为从硬盘端接收 到的寄存器; 错误代码输出寄存器(Error outputs Register),为执行命令(或未执行命令) 后硬盘设备返回的状态寄存器。 在本发明的具体实施例中以现有的ATA规范进行详细说明,当然也可以 基于其它的硬盘接口命令规范来实现。 本发明实施例的硬盘保护装置包括: 第一生成模块,用于根据用户选择,利用现有ATA规范生成硬盘属性设 置命令,所述硬盘属性设置命令用于设置硬盘存储区域的读写属性,该硬盘属 性设置命令具有唯一命令码,且发送的命令中包括需要设置的硬盘存储区域信 息和读写属性设置信息,该硬盘存储区域信息利用LBA传递; 其中,读写属性设置信息包括: 可读但不可写,只可以读取数据,写入数据无效; 不可读但可写,只可写入数据,读取数据为无效数据(0FFH); 不可读且不可写;读取数据为无效数据0FFH),写入数据无效;及 可读且可写,正常状态。 第一发送模块,用于将硬盘属性设置命令发送到硬盘端的输入命令块寄存 器。 控制模块根据硬盘属性设置命令中的命令码、读写属性设置信息和需要设 置的硬盘存储区域信息对相应的硬盘存储区域进行设置,将该硬盘存储区域读 写属性设置为:可读但不可写、不可读但可写、不可读且不可写及可读且可写。 上述的硬盘保护装置可以是集成设置于BIOS,也可以是单独设置的模块, 同时,该硬盘读写属性设置可以在硬盘上电时设置,也可以在硬盘运行过程中 进行设置。 当然,在实现本发明实施例的方法之前,先需要知道硬盘是否支持盘存储 区域读写属性设置,在此,可通过识别设备指令来获取硬盘是否支持硬盘存储 区域读写属性设置。 如通过识别设备指令获取的信息如下表所示。   Word Bit Description 83                                                           15   14   13   12   11   10   9    8    7    6    5    4    3    2    1    0        Command sets supported.                                  Shall be cleared to zero                                      Shall be set to one                                         1=FLUSH CACHE EXT command supported                       1=mandatory FLUSH CACHE command supported                 1=Device Configuration Overlay feature set supported         1=48-bit Address feature set supported                    1=Automatic Acoustic Management feature set supported      1=SET MAX security extension supported                    See Address Offset Reserved Area Boot,NCITS TR27:2001       1=SET FEATURES subcommand required to spinup after power-up  1=Power-Up In Standby feature set supported                1=Removable Media Status Notification feature set supported  1=Advanced Power Management feature set supported          1=CFA feature set supported                              1=READ/WRITE DMA QUEUED supported                        1=DOWNLOAD MICROCODE command supported                       83                                                           15   14   13   12   11   10   9    8    7    6    5    4    3    2    1    0                                                       Command set/feature supported extension.              Shall be cleared to zero                                  Shall be set to one                                      3-6 Reserved                                       Reserved                                           Reserved                                           Reserved                                           Reserved                                           Reserved                                           Reserved                                           1=SET ATTRIBUTE FEATURE supported                    1=Streaming feature set supported                    1=Media Card Pass Through Command feature set supported  1=Media serial number supported                       1=SMART self-test supported                          1=SMART error logging supported                       Word Offset 84(Command set/feature supported extension)中bit 6为1,表示 支持硬盘存储区域读写属性设置。 本发明实施例的硬盘数据保护方法如图2所示,包括: 步骤21,接收硬盘属性设置命令,所述硬盘属性设置命令具有唯一命令 码; 该硬盘属性设置命令基于ATA规范生成,具有唯一命令码,且包括需要 设置的硬盘存储区域信息和属性设置信息,该硬盘存储区域信息利用LBA传 递; 其中,所述属性设置信息包括:可读但不可写、不可读但可写、不可读且 不可写及可读且可写。 步骤22,根据硬盘属性设置命令中的唯一命令码对所述硬盘中的硬盘存 储区域进行读写属性设置。 根据硬盘属性设置命令中的命令码、属性设置信息和需要设置的硬盘存储 区域信息对相应的硬盘存储区域进行读写设置,将该硬盘存储区域读写属性设 置为:可读但不可写、不可读但可写、不可读且不可写或可读且可写。 当然,在设置上述存储区域的读写属性后,应该还可以对其进行恢复,此 时可以通过两种方式来进行,如下所述。 第一种方式,直接利用用于设置硬盘区域读写属性为可读且可写的硬盘属 性设置命令将对应的存储区域的读写属性恢复为可读且可写。 第二种方式,根据现有ATA规范生成硬盘存储区域读写属性恢复命令, 该硬盘存储区域读写属性恢复命令用于将硬盘存储区域的读写属性恢复为可 读且可写。 二者的区别在于,第一种方式和第二种方式采用的命令的命令码不同,同 时,第一种方式针对特定存储区域进行设置,而第二种方式可针对所有存储区 域进行设置。 采用图2所述的方法,由于需要获取需要设置的硬盘存储区域的LBA, 这对一般用户来讲,可能方便程度不够,因此,本发明实施例的方法中,进一 步根据现有ATA规范生成硬盘分块命令,所述硬盘分块命令用于将硬盘的存 储区域划分为连续的多个存储块,即前一存储块的结束地址(LBA)加1即为 后一存储块的起始地址,该命令至少需要包括: 唯一的命令码;及 存储块的个数。 在将硬盘分为多个存储块后,硬盘属性设置命令中需要设置的硬盘存储区 域信息利用存储块来标识。 在设置硬盘存储区域的读写属性后,应该可以读取该区域的读写属性,因 此,硬盘保护装置还包括: 第二生成模块,用于根据现有ATA规范生成硬盘属性读取命令,所述硬 盘属性读取命令用于读取硬盘存储区域的读写属性,该硬盘属性读取命令具有 唯一命令码,且包括需要读取的硬盘存储区域信息,该硬盘存储区域信息利用 LBA传递; 第二发送模块,用于发送所述硬盘分块命令。 下面以图3所示的存储块为例进行说明。 如图3所示,该硬盘的存储区域划分为了N个存储块,分别为: 第一存储块,起始地址为sLBA1,结束地址为eLBA1; 第二存储块,起始地址为sLBA2(eLBA1+1),结束地址为eLBA2; 第N-1存储块,起始地址为sLBAN-1,结束地址为eLBAN-1; 第N存储块,起始地址为sLBAN,结束地址为eLBAN。 当然,上述的存储块是连续的,当然也可以设置不连续的存储块,其区别 仅在于LBA的区别,在此不再详细描述。 如需要将第n存储块设置为可读不可写,则获取第n存储块的起始地址为 sLBAn-1,结束地址为eLBAn-1后,向硬盘端发送ATA格式的硬盘属性设置命 令,该硬盘属性设置命令中包括sLBAn-1,结束地址为sLBAn-1,且还包括: 对应的命令码;和 设置硬盘存储区域设置为可读不可写的信息。 由于现有ATA规范中,Device的第0位、第1位、第2位和第3位属于 保留位,因此,可以从该4个位置中选择两个来进行读写属性设定。 在此,假设设置硬盘存储区域的硬盘属性设置命令的命令码为B1H,则 输入命令块寄存器如下所示: 其中,na表示该位不关注,而命令码寄存器的值为B1H,而Sector Count 存储器的值标识操作所对应的存储块,Device中的DEV标识硬盘主从属性, Device的0位和1位分别用于读和写控制,其中: WRITE为1表示设置属性为可写,为0表示设置属性为不可写; READ为1表示设置属性为可读,为0表示设置属性为不可读。 当WRITE为1,而READ为0时,硬盘端可进行相应操作,设置第n存 储块(起始地址为sLBAn,结束地址为eLBAn)的属性为可写但不可读; 当WRITE为1,而READ为1时,硬盘端可进行相应操作,设置第n存 储块(起始地址为sLBAn,结束地址为eLBAn)的属性为可写且可读; 当WRITE为0,而READ为0时,硬盘端可进行相应操作,设置第n存 储块(起始地址为sLBAn,结束地址为eLBAn)的属性为不可写且不可读; 当WRITE为0,而READ为1时,硬盘端可进行相应操作,设置第n存 储块(起始地址为sLBAn,结束地址为eLBAn)的属性为不可写但可读。 通过上述的处理即可实现对特定存储区域的读写属性的设置,而在存储区 域未设置的情况,该存储区域的读写属性为可读且可写。 在对硬盘存储区域进行读写属性设置后,存储区域会返回输出命令块寄存 器一组数据,输出命令块寄存器如下表所示: 其中: na表示该位不关注,可随意填写; DEV表示硬盘主(master)从(slave)属性; BSY,标识繁忙状态,为0表示命令执行完毕; DRDY,标识设备状态,需设置为1; DF,标识设备故障,需清为0; DRQ,标识设备请求,需清为0; ERR,错误状态,需清为0。 在对支持48位的LBA的硬盘设置区域读写属性时,只需要增加HOB信 息即可,其命令码为B2H,输入命令块寄存器如下两表示: 上面的两个表分别表示对不支持48位LBA和支持48位LBA的硬盘的设 置,其中HOB控制通过硬盘IO寄存器-设备控制寄存器(Device Control Register)来控制。见下表:   Device Register 7 6 5 4 3 2 1 0 Bit HOB r r r r SRST nIEN 0 其中: r,Reserved,保留位; SRST,软件reset位; nIEN,允许硬盘设备发送INTRQ。 而输出命令块寄存器与上述相同,不再描述。 当然,在设置硬盘区域的读写属性后,应该可以读取该特定区域的读写属 性,该硬盘属性读取命令的命令码为B3H,输入命令块寄存器如下表所示: 上述的硬盘属性读取命令表示读取第n存储块的读写属性。 而对硬盘存储区域进行读写属性读取后,存储区域会返回输出命令块寄存 器一组数据,输出命令块寄存器如下表所示: 根据Device寄存器的第0位和第1位的值即可获取第n存储块的读写属 性,其中: WRITE为1表示设置属性为可写,为0表示设置属性为不可写; READ为1表示设置属性为可读,为0表示设置属性为不可读。 前面已经提到,为了方便用户设置,将硬盘分为多个存储块,在此,设置 硬盘分块命令的命令码为B4H,则输入命令块寄存器如下所示: 上述的命令表示将硬盘分为n+1个存储块。 其对应的输出命令块寄存器如下所示: 当然,在将硬盘分为多个存储区域后,用户也可以通过硬盘分块信息获取 命令来获取硬盘的分块信息。 设置硬盘分块信息获取命令的命令码为B5H,则输入命令块寄存器如下 所示: 上述的命令表示获取硬盘分块信息。 其对应的输出命令块寄存器如下所示: 其中,上述的Sector Count寄存器中的值即硬盘分块数目,即硬盘分为n+1 个存储块。 对于支持48位LBA的硬盘也可采用上述的方式,其差别仅在于是否支持 48位LBA,在此不再赘述。 在上面已经提到,本发明实施例可以采用两种方式来恢复硬盘设置,在第 二种方式中,采用硬盘读写属性恢复命令来实现,设置硬盘读写属性恢复命令 的命令码为B6H,则输入命令块寄存器如下所示: 其对应的输出命令块寄存器如下所示: 本发明实施例的计算机包括硬盘,硬盘包括: 第一寄存器,用于接收具有唯一命令码的硬盘属性设置命令; 第一硬盘属性设置模块,用于根据硬盘属性设置命令中的命令码对硬盘存 储区域进行读写属性设置。 硬盘还包括: 第二寄存器,用于接收具有唯一命令码的硬盘分块命令; 第二硬盘属性设置模块,根据硬盘分块命令中的命令码从硬盘存储区域划 分出存储块。 硬盘还包括: 第三寄存器,用于接收具有唯一命令码的硬盘属性读取命令; 第三硬盘属性设置模块,根据硬盘属性读取命令中的命令码读取硬盘存储 区域读写属性。 硬盘还包括: 第四寄存器,用于接收具有唯一命令码的硬盘读写属性恢复命令; 第四硬盘属性设置模块,用于根据硬盘读写属性恢复命令中的命令码将硬 盘存储区域的读写属性恢复为默认状态。 该硬盘属性设置模块可由现有硬盘的控制器来实现。 其中,第一寄存器、第二寄存器、第三寄存器和第四寄存器可以是相同或 者不同的寄存器; 第一硬盘属性设置模块、第二硬盘属性设置模块、第三硬盘属性设置模块、 第四硬盘属性设置模块可以是相同或者不同的模块; 同时,上述提到的第一发送模块、第二发送模块等也可以是相同或者不同 的模块。 下面利用一个实际的例子对本发明方法和装置的应用进行说明。 假设一个硬盘中安装有两个操作系统,分别用于外网和内网,当切换为外 网系统时,无法获取、更改内网数据,当使用内网系统时,可选择性实现外网 数据共享。 因此,首先将硬盘数据区域分为3个区域: A区,保护安全区,需要设置属性为不可读且不可写,用户不可见,为进 行保护的安全区,用于保存一些系统设置信息,如硬盘分区表信息; B区,内网区,供内网系统使用 C区,外网区,主要供外网系统使用。 在系统上电启动后,利用硬盘分块命令将硬盘数据区域分为3个部分:A 区、B区和C区; 发送命令码为B1H的硬盘属性设置命令,将A区设置为不可读且不可写; 判断用户启用内网系统还是外网系统; 在用户选择启用内网系统时,更改硬盘分区表信息,并发送命令码为B1H 的硬盘属性设置命令,将B区设置为可读且可写,当然也可同时设置C区; 在用户选择启用外网系统时,更改硬盘分区表信息,并发送命令码为B1H 的硬盘属性设置命令,将B区设置为不可读且不可写。 通过上述的方式,即可有效地设置硬盘存储区域的读写属性,保护硬盘存 储数据。 以上所述仅是本发明的实施方式,应当指出,对于本技术领域的普通技术 人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些 改进和润饰也应视为本发明的保护范围。