发明内容
为了解决现有NTFS数据保护方法中的文件***依赖性强和权限控制不严密、实用性差的问题,本发明提供了一种独立于文件***的NTFS数据备份、还原方法,并配合此方法给出了能严格控制机密文件访问的安全管理方法。这种保护方法能通过很简单的几个操作实现在短时间内对大量NTFS数据的备份还原和权限控制。
本发明的技术方案分为三个部分,分别是NTFS数据备份方法、NTFS数据还原方法、NTFS数据安全管理方法。NTFS数据备份方法、NTFS数据还原方法是要解决用户因出现误操作使得重要的数据丢失的问题,而NTFS数据安全管理方法是要解决硬盘NTFS文件***中的机密数据被他人非法访问的问题。
1、本发明的NTFS数据备份方法,具体包括以下几个步骤:
(1)分析需要备份的NTFS数据量和本地硬盘的使用状况,在硬盘的高端地址中划分出一个区域,用来作为NTFS数据备份保护区;
(2)取出NTFS分区中待备份的有效数据,对其压缩后按照一定规则复制到NTFS数据保护区形成备份档案,以整个NTFS分区为单位备份有效数据;
(3)完成备份操作后对保护区加锁,使得NTFS数据备份保护区与硬盘低端地址空间隔离。
本发明的NTFS数据备份方法需要在硬盘划出一个独立的区域作为保护区,这是通过硬盘ATA接口规范中定义的主机区域保护指令集(Host Protected Area feature set)实现的。Host Protected Area featureset中有两条ATA的命令:“读硬盘实际最大地址(READ NATIVE MAX ADDRESS EXT)”和“设置硬盘读写最大地址(SET MAX ADDRESS EXT)”。“读硬盘实际最大地址”命令返回硬盘在出厂时由生产商设定的硬盘实际最大扇区地址,这一地址是硬盘地址的物理极限。“设置硬盘读写最大地址”是设置软件读写访问可到达的最大扇区地址,这条指令设定后硬盘控制器会拒绝任何对大于设定值地址的读写访问。如果“硬盘读写最大地址”小于“硬盘实际最大扇区地址”则会在最高端地址处形成一段空间。这段空间由ATA接口规范保证是独立于操作***控制的,在不重新使用设定“硬盘读写最大地址”的前提下这段空间不会受到任何软件、病毒操作的影响,所以通过使用SET MAX ADDRESS EXT命令划分的保护区是不依赖于任何操作***和文件***的,有稳定的可靠保障。
保护区具体的划分操作大致是首先使用READ NATIVE MAX ADDRESS EXT命令得到本机“硬盘实际最大扇区地址”,再用“硬盘实际最大扇区地址”减去保护区所需要的容量大小即得保护区得起始地址,从所得的起始地址开始到“硬盘实际最大扇区地址”之间就是划分的保护区,但此时的保护区还没有加锁。完成数据备份操作后再将保护区起始地址作为SET MAX ADDRESS EXT的命令参数来设定“硬盘读写最大地址”,即可完成保护区的加锁。
本发明的NTFS数据备份方法是针对NTFS文件***中已使用的有效数据进行备份的,而不是将NTFS分区中的所有扇区内容都进行备份。本发明根据NTFS文件***的设计原理,解析NTFS的***结构,判断分区中具体的有效扇区。此判断涉及到的***结构有三个:分区引导扇区、主文件表(MFT)、位图表(bitmap)。首先根据分区引导扇区找到MFT,然后根据MFT中的记录找到bitmap,最后分析bitmap中的信息即可判断NTFS文件***中有效数据的分布。将各个NTFS分区的有效数据总量相加,即得备份保护区所需的容量。
本发明在备份有效数据时,有效数据记录的地址是有效数据在所在分区的相对地址。
有效数据的扇区一般是连续分布的,所以可以使用硬盘DMA等操作加快硬盘读写,对于压缩的处理可以使用扩展内存来增大吞吐量。
2、本发明的NTFS数据还原方法,具体包括以下几个步骤:
(1)对NTFS备份保护区解锁,使得可以访问保护区的数据;
(2)分析NTFS数据保护区中的内容,找到需还原的NTFS分区备份档案;
(3)根据需还原的NTFS分区数据大小和当前硬盘各个分区实际大小选择还原的目标分区;
(4)解压缩NTFS分区的备份档案,覆盖到目标分区。
本发明的NTFS数据还原首先要打开备份保护区使得软件可以访问备份的内容。因为保护区是划分在硬盘的最高端空间,所以只要利用SET MAX ADDRESS EXT指令将“硬盘读写最大地址”设置为“硬盘实际最大扇区地址”即可保证软件能够访问到硬盘的最高端空间,也即实现了保护区解锁。
本发明在备份保护区中会在距离“硬盘实际最大扇区地址”固定位置保存备份保护区的起始地址等重要参数。在对备份保护区解锁后,通过解析这个固定位置即可找到保护区的起始位置。
本发明的NTFS数据还原可以实现将某个备份分区还原到任何一个符合容量大小要求的分区中,其中容量大小要求是指备份分区档案经过解压缩后,全部有效数据的容量小于目标分区的容量。因为本发明在备份有效数据时,记录的是有效数据所在分区的相对地址,还原数据时也是按照相对地址写入目标分区,所以只要容量大小符合要求,将有效数据回复到任何分区都是可以的。
3、本发明的NTFS数据安全管理方法,具体包括以下几个步骤:
(1)硬盘管理员设定硬盘访问的用户名及虚拟密码;
(2)根据用户权限设定真实密码锁定硬盘,禁止一切读写硬盘的请求,并记录用户名、虚拟密码、硬盘序列号;
(3)每次开机访问硬盘前验证用户名、虚拟密码及硬盘序列号正确性,验证正确后使用真实密码对硬盘密码解锁,否则硬盘保持密码锁定。
本发明的NTFS数据安全管理方法通过控制对整个硬盘的访问权限来保证NTFS文件***中的机密数据不被他人非法访问。硬盘ATA接口规范中定义了安全模式特色指令集(Security Mode featureset),安全模式特色指令集中定义了若干指令专门用来实现硬盘访问权限控制。根据ATA接口规范的定义,硬盘管理员可以使用密码对硬盘锁定,具体指令是SECURITY SET PASSWORD,锁定后的硬盘在每次上电后都需要解锁,否则硬盘控制器拒绝任何防问请求,在被拒绝的请求命令中也包括主机区域保护指令集(Host Protected Area feature set),所以在使用安全模式特色指令对硬盘锁定后,硬盘上的备份保护区一定是无法解锁,不可访问的。对硬盘密码解锁的具体指令是SECURITY UNLOCK,并且解锁操作是需要提供用户密码的,所以锁定的硬盘即使遗失也不用担心非法用户会使用SET MAX等指令打开硬盘的备份保护区。解锁后的硬盘可以完成正常的读写请求,但关机后硬盘会自动回复锁定状态,在下一次开机时又必须通过用户密码解锁。利用ATA接口规范中安全模式特色指令集可以很好地解决安全管理的问题。
本发明的NTFS数据安全管理方法其核心就是利用安全模式特色指令集实现NTFS硬盘的密码锁定,但SECURITY SET PASSWORD等指令只能设置两个级别的两个密码用来加锁、解锁,分别是Masterpassword和User password,仅两个密码不利于NTFS硬盘全面的安全管理。本发明的NTFS数据安全管理方法通过设置虚拟密码对密码的级别、用户个数提供了扩展。
在安全管理设计中,往往要求管理员能够设置多种权限级别、多个用户,本发明将这些用户设置的密码都作为虚拟密码。在本发明的NTFS数据安全管理方法中,通过SECURITY SET PASSWORD等指令对硬盘控制器设置的密码并不是虚拟密码,而是由本发明的实现软件决定的两个独立的密码,独立的意思是实际设置的两个密码之间及与虚拟密码之间均不同。本发明的实现软件只是根据NTFS硬盘用户的不同设置要求、权限做相应操作。对于级别较低的用户设置的密码,本发明的实现软件将其转换成一个独立密码作为User password设置硬盘控制器。对于级别较高的用户设置的密码,本发明的实现软件将其转换成一个独立密码作为Master password设置硬盘控制器。在实际设置Master password、Use rpassword后,用户名、用户设置的虚拟密码、硬盘序列号会被记录。在NTFS硬盘管理员使用硬盘前,本发明的实现软件将要求管理员提供自己的用户名和以前对此硬盘设置的虚拟密码,软件在核对虚拟密码、硬盘序列号及用户名后,才使用真实的独立密码对硬盘进行密码解锁。本发明的虚拟密码的安全管理方法理论上可以将密码的级别、个数做任意的扩展。
用户名、虚拟密码及硬盘序列号记录在硬盘以外的介质上,比如专用USB加密U盘设备等,这些设置了虚拟密码的专用USB加密U盘对相应的硬盘来说就是一把密码解锁的钥匙。
本发明的有益效果是,对于重要的NTFS数据可以实现方便的大批量备份,而且备份的数据不会受到任何软件如fdisk的破坏,不受任何操作***和文件***的制约;其中备份的机密NTFS数据通过设置安全密码可以实现彻底的数据保护,能在很方便的操作下保证NTFS硬盘数据的绝对安全,即使在硬盘被盗窃的情况下也不用担心数据泄漏。
具体实施方式
下面结合附图和具体实施对本发明进一步说明。
图1是本发明备份保护区内的一个设计实施例,分三个部分:“档案集存储信息区”、“保护区数据存储区”、“保护区***信息区”。
“保护区数据存储区”用来存放压缩过的NTFS分区有效数据,即“档案集”。本发明在写入保护区时,是将每一个分区全部有效数据压缩后连续地存储在保护区中,形成一个“档案集”,一个“档案集”就记录了一个NTFS分区的全部有效数据;“档案集存储信息区”用来记录保护区数据存储区的占用情况,其中有数据结构记录了每个NTFS分区档案集的基本信息,基本信息可以在还原操作时用来供管理员鉴别“档案集”;“保护区***信息区”用来保存备份保护区的“硬盘读写最大地址”等重要参数,位置实际是“硬盘实际最大扇区地址”指定的最后一个扇区。
本发明的方法可以备份多个NTFS的分区,每个分区对应一个“档案集”,在“档案集存储信息区”记录了保护区数据存储区中存在的多个“档案集”的相应存储信息。通过档案集存储信息区的记录可以定位每一个“档案集”,并且通过修改集存储信息区的信息可以完成修改、删除“档案集”等功能。还原时找到备份保护区后,通过分析保护区开头的“档案集存储信息区”可以了解到保护区各个“档案集”的情况,逐一查询就得到所备份的各个NTFS分区内容信息。管理员根据得到的NTFS分区内容信息选择要还原的“档案集”。
图3给出了针对图2所示的具体硬盘结构使用本发明的一种实现方案。在图2显示的硬盘结构中硬盘有5个分区,其中有3个FAT文件***(分别是C:分区、E:分区、G:分区)和2个NTFS文件***的分区(分别是D:分区、F:分区)。
若要备份图2中的两个NTFS分区,本发明实施例首先建立备份保护区,包含以下步骤:(1)、根据图2硬盘的分区表找到各个分区,并从分区中的BPB表找到分区文件***标识。(2)、在硬盘管理员确认要备份两个NTFS分区后,分别扫描D:分区和F:分区的NTFS文件***信息以计算有效数据容量,具体涉及的***结构有三个:分区引导扇区、主文件表(MFT)、位图表(bitmap)。首先根据分区引导扇区找到MFT,然后根据MFT中的记录找到bitmap,最后分析bitmap中的信息即可判断C:和F:分区NTFS文件***中有效数据的分布。将各个NTFS分区的有效数据总和相加,即得到D:分区和F:分区所需的总容量。(3)、分析硬盘高端地址占用情况,若硬盘高端地址存在没有分区占用的剩余空间且剩余空间可以容纳有效数据的总量,则直接以剩余空间的首地址作为备份保护区的首地址,这个首地址减1即是“硬盘读写最大地址”。如果硬盘高端没有剩余空间或是剩余空间不够大,则可以删除最后一个分区来释放高端地址。在图2所示的硬盘结构中,高端地址处没有剩余空间所以本实施例会提示管理员将删除G:分区为备份保护区释放空间。待管理员确认后即可将G:分区首地址作为备份保护区的首地址,这个首地址减1即是“硬盘读写最大地址”。
本发明建立备份保护区最好在划分硬盘分区时完成,一般重要的NTFS分区在硬盘分区时已经有规划,结合各个分区的规划预留高端的地址,可以避免将来对最后一个分区强制占用。
在确定备份保护区的首地址后,建立备份保护区的三个区域:“档案集存储信息区”、“保护区数据存储区”、“保护区***信息区”。建立的方法是将三个区域的首尾地址、区域大小等信息写入硬盘最后一个扇区,即“保护区***信息区”。
针对图2中的两个NTFS分区建立备份保护区以后,根据本实施例将分别读取两个分区的有效NTFS数据,并压缩生成两个“档案集”然后依次存入“保护区数据存储区”。“档案集”在存入“保护区数据存储区”前后都会将D:分区和F:分区对应“档案集”的起始地址、容量大小、备份日期、文件***表示、“档案集”代号等信息存入“档案集存储信息区”。
在完成全部备份操作后对备份保护区进行锁定,即将保护区首地址作为SET MAX ADDRESS EXT的命令参数设定“硬盘读写最大地址”。
完成锁定后,硬盘内容由图2所示结构变成图3。
对于图3实施例的NTFS数据还原操作如下:首先解锁,即使用READ NATIVE MAX ADDRESSEXT命令得到图3“硬盘实际最大扇区地址”,并将“硬盘实际最大扇区地址”作为SET MAX ADDRESSEXT的命令参数设定“硬盘读写最大地址”,此后“硬盘读写最大地址”与“硬盘实际最大扇区地址”相等,即硬盘的备份保护区完全打开。
读取“硬盘实际最大扇区地址”指定的最后一个扇区,即备份保护区的“保护区***信息区”,找到备份保护区中“档案集存储信息区”的信息,再在“档案集存储信息区”中查询“保护区数据存储区”中D:和F:分区“档案集”的情况。假设需还原D:分区的以前NTFS的有效数据,则根据“档案集存储信息区”中D:“档案集”记录的有效数据还原后的大小选择目标分区,要求目标分区容量大于有效数据还原后的大小。若D:分区是图3中最小的分区那么目标分区可以是C:D:E:F:中的任何一个。假设选定E:分区作为还原的目标分区。
取出D:“档案集”记录,解压缩后覆盖E:目标分区,在完成覆盖后再使用SET MAX ADDRESS EXT命令对备份保护区锁定。
从图3实施例的NTFS数据还原过程来看,如果没有安全控制,任何软件都可以通过SET MAXADDRESS EXT的命令将备份保护区解锁。
图4是本发明安全管理一个设施例,图4提供了三级权限控制,分别是个人用户权限、企业用户权限、企业主管权限。个人用户只能对某一个NTFS硬盘进行解锁并正常使用,不能更改、删除、添加个人用户密码,也不能解除硬盘受密码保护的属性。每次开机个人用户使用硬盘前必须输入用户名和密码,用户名、密码将与硬盘唯一的序列号组成一个唯一的口令,在核对口令正确无误后硬盘方可访问。个人用户密码可以有许多个,提供给不同的一般用户使用;企业用户可以对硬盘设置密码锁定保护,也可以解除硬盘密码锁定保护的属性,解除密码保护后硬盘在每次启动时无需密码即可访问,对于加锁后的硬盘企业用户不但有个人用户的所有使用权限而且可以对个人用户进行管理,可以更改、删除、添加个人用户密码。企业用户在设置密码锁定保护时,将同时记录硬盘的序列号、个人用户密码、企业用户密码,也就是说个人用户密码、企业用户密码是对于唯一的硬盘起作用的。企业用户密码也可以有多个,提供给不同的企业管理员:企业主管是唯一的,用来防止企业用户忘记密码时无法对硬盘解除密码锁定保护。企业主管一般只用来删除对硬盘的所有密码保护设置。
在图4所示的实施例中,A是企业主管,B1和B2是企业用户,C1~C2是个人用户。这10个NTFS硬盘管理员管理着5个硬盘,分别是硬盘1~硬盘5。在本实施例中5个硬盘均有同一个企业主管密码,企业主管密码作为权限较高的密码会对应于Master passwordd,但实际写入硬盘控制器的Masterpassword不是企业主管设置的密码而是一个独立的密码。这样即使企业主管密码遗失软件也有办法挽救。企业用户密码和个人用户密码会对应于User password,同样实际写入硬盘控制器的User password不是用户设置的密码而是分别独立的密码,但5个硬盘之间实际设置的User password都不同。图4实施例中,每个硬盘管理员都有一个usb加密U盘,记录每个管理员的用户名、设置的虚拟密码和管辖的硬盘序列号,每次管理员在操作硬盘前必须输入自己的用户名和设定的密码,此用户名、密码和读出的硬盘序列号与usb加密U盘中的信息比较,校验正确后硬盘才被密码解锁,运行访问。