硬盘数据加密备份及还原方法

文档序号:6566699阅读:573来源:国知局
专利名称:硬盘数据加密备份及还原方法
技术领域
本发明涉及一种用于保障数据安全性的硬盘数据加密备份及还原方法。
背景技术
目前,电脑病毒和网上黑客的危害性越来越大,往往直接威胁到计算机用户的数据安全和正常的使用。所以电脑用户对计算机及计算机数据、特别是硬盘数据的安全性要求也越来越高。于是出现了杀毒软件和防火墙等计算机安全软件。但是,到目前为止,尚未有理论模型表明杀毒软件可以对清除所有的未知病毒或黑客程序,因此杀毒软件虽然可以清除大部分病毒,但是它有一定的滞后性,用户还需要经常到网站上升级病毒代码,升级不便,并且上网时还有可能感染新的病毒或成为黑客攻击的对象;而且,不能保证清除所有病毒及黑客程序。
而防火墙对于网络的安全有一定的作用,但也不是十分可靠(特别是对防范黑客)。而且杀毒软件、防火墙软件安装后一般都有实时监控程序在系统中运行,会占用一部分的系统资源,降低计算机的性能。并且因为同是系统监控程序,有时还会有兼容性的问题,会与其它软件发生冲突并造成系统瘫痪等更严重的后果(例如将KV3000、瑞星、KILL和NORTON等杀病毒软件安装在同一台计算机上,就会使计算机经常蓝屏)。同时这两类软件对用户的误操作造成的损失或系统崩溃造成的文件丢失是没有办法来避免的。
所以,既提高计算机安全性、又不影响计算机性能的办法之一就是把系统和重要数据进行备份。现有的备份技术主要有以下几种一种方法是,将数据备份到一个普通文件中(如Symentic公司的Ghost),该方法的缺点是普通文件不安全,用户可能因为误操作而将备份文件删除,或者备份文件被一些恶意的程序破坏。所以通常需要把备份文件转移到其他备份介质(CDRW或磁带)以保证安全。另一种方法是,把备份数据写到隐藏分区中(如PowerQuest公司的Drive image)。还有一种方法是,在硬盘上创建一个镜向分区,把要备份的分区的数据在镜向分区中作一个备份。该方法的缺点是一次只能有一个镜向备份,如果用户希望备份多个分区,那么通过这种方法是不能实现的。
上述几种方法共同的缺点就是必须在Dos环境下实现。用户备份数据首先需要多次重新启动计算机,切换操作系统。这样做会给用户操作带来很多不便,而且系统切换浪费大量时间。特别是在从Windows系统到DOS系统切换时,需要中止Windows系统中其他正常运行的程序,如果用户正在运行非常重要的应用程序、而该程序不能中止,则无法实现备份。同时这些软件主要的功能是分区备份,但对于用户来说最常用的功能是将自己重要的数据备份,而不是整个分区甚至整个硬盘。所以以上方法都有一定的局限性。

发明内容
本发明的目的在于一种安全性能高、使用方便的硬盘数据加密备份及还原方法,使备份在本机硬盘中的数据安全可靠,用户可以非常方便地在Windows操作系统下进行数据备份及还原。
本发明的技术方案如下根据本发明的一种硬盘数据隐藏加密备份及还原方法,包括以下步骤(1)分区设置步骤,在硬盘内设置一个分区;(2)分区隐藏步骤,隐藏该分区,使得该分区及其数据不能被操作系统或其他基于文件系统的程序访问;(3)数据备份步骤,将用户指定的需备份的硬盘数据存储在该分区;(4)数据还原步骤,将隐藏分区中的数据还原到可被访问的硬盘分区中。
在本发明中所述的分区设置步骤,可由用户根据需备份的数据量设置该隐藏分区的大小。这使得用于备份数据的分区之容量得以成分利用。
在本发明中,所述的分区隐藏步骤可以是在硬盘分区表中为该分区定义一个特定的类型值,该类型值不同于其它可被用户访问的分区之类型值。
在本发明中,所述的数据备份步骤可以是将用户指定的需备份数据以扇区的形式写入该隐藏分区。
在本发明中,所述的数据备份步骤还可进一步包括以下步骤(1)由用户指定需备份的文件或文件目录;(2)将备份节点信息写入该备份数据区的第一区域,每一个备份节点含有若干个备份数据文件,该备份节点信息表示备份文件的基本信息,包括关于该备份节点的文件类型、名称、偏移位置、长度、创建时间、备份文件的数据和属性在该备份节点中的长度;(3)将备份数据文件以扇区的形式写入该备份数据区的第二区域;(4)将备份文件的属性信息写入该备份文件的第三区域,其中包括备份文件的文件名、长度、创建时间、访问时间及其在备份数据区中的相对位置和长度。
在本发明中,在将备份数据文件写入隐藏分区之前,可先将备份数据文件进行压缩。
在本发明所述的数据备份步骤和数据还原步骤中,对隐藏分区的扇区进行读写访问可以是通过一套对硬盘物理扇区操作的接口函数实现的,该接口函数是根据Windows操作系统的硬盘访问接口而建立的。
在本发明中所述的数据还原步骤可以是将隐藏分区中的备份数据以扇区形式读出,再将所读取的数据还原为所备份的数据文件。
在本发明中,所述的数据备份步骤及数据还原步骤可以是利用Windows操作系统下的虚拟设备驱动程序实现的。
在本发明的一个实施例中,所述的Windows操作系统包括Windows 9x系统(例如Windows 95及Windows 98系统),所述的虚拟设备驱动程序是由Windows 9x系统的虚拟设备驱动程序的开发工具实现的,包括以下步骤(1)保存当前虚拟机的寄存器状态;(2)转入虚拟86方式;(3)调用INT 13中断;(4)退出虚拟86方式;(5)恢复当前虚拟机的寄存器状态。
在本发明中,所述的Windows操作系统可包括Windows 2000操作系统和Windows XP操作系统,所述的虚拟设备驱动程序可以是由Windows 2000操作系统或Windows XP操作系统提供的SYS格式的驱动程序。
在本发明中,所述的方法可以是在Windows操作系统下实现的。在本发明的实施例中,本发明是通过Windows操作系统下的一个软件实现的。
利用本发明,用户可以在Windows操作系统(如Windows98,Windows 2000,Windows XP等操作系统)下,以尽量短的时间、尽量少的空间占用和尽量简单的操作过程,直接将重要数据备份到很安全的隐藏分区中,同时保证系统中同时运行的其他程序不受该备份过程的影响,用户不需要中止其他正在运行的程序。
利用本发明,可以在Windows下实现隐藏分区的创建、删除等管理;在Windows操作系统中可以直接将用户的数据备份存放在隐藏分区,或将隐藏分区中的备份数据还原。所有这些功能在Windows下的实现可以大大的方便用户,使用户可以在工作的间隙轻松地完成对重要数据的备份。
本发明是深入系统内核、可基于Windows系统开发的深层次专业数据安全保护工具,它可在硬盘上利用独有的方式开辟一个非常安全的隐藏分区,用于备份数据。由于通常病毒和黑客程序都是基于文件系统的,因此在文件系统上计算机数据的安全是很难保证的。而本发明所设置的隐藏分区的操作低于文件系统这一层,使得Windows系统不能识别该隐藏分区,一般的程序也不能访问到该隐藏分区,所以,病毒和黑客程序也通常不能访问到该隐藏分区,即使能够访问到,它也不知道隐藏分区中的数据格式,这样就可以保证隐藏分区中数据的安全。所备份的数据不会受到病毒、系统崩溃、程序冲突的影响,只要硬盘不是物理损坏,隐藏分区中的所有信息就可安全还原。用户可任意选择保护硬盘上的操作系统、重要目录或文件,可对硬盘进行任意设置、任意修改、任意格式化或重新分区而不会影响备份分区。
由于目前计算机的硬盘通常具有很大的容量,用户可以根据自己要备份数据的多少创建一个大小合适的隐藏分区,用隐藏分区来备份重要数据,这样就可以不用购买其他存储设备,从而为用户节省有关的费用。
利用本发明可以实现高速高效的数据备份软件。例如DMA66双硬盘间备份时可达每分钟200兆字节,数据还原时可以达到接近每分钟400兆的速度。本发明之软件运行时间快、操作方便。用户备份时不用重新启动计算机、切换到DOS下;也就节省的启动电脑的时间,从需要几分钟、甚至十几分钟的备份时间变为短短的几十秒种!同时这种备份是随时可以进行,随时可以结束的,备份的同时,用户还可以用电脑进行其他工作,备份不会干扰用户运行的其他重要程序,更不会中止这些程序的运行。此外,用户也不用在DOS下进行任何操作,省去学习和熟悉DOS操作的的麻烦。因此十分方便。
以下结合附图进一步本发明的实施例。


图1是本发明之方法的总流程图;图2是本发明之实施例的数据备份方法之流程图;图3是本发明之实施例的数据备份方法之程序界面图;图4是本发明之实施例的数据还原方法之流程图;图5是本发明之实施例的数据还原方法之程序界面图。
如图1所示,在Windows操作系统下,用户可随时调用实现本发明之方法的程序,进入相应的用户界面。用户可以根据需要对隐藏分区进行管理,通过虚拟设备驱动程序访问硬盘的参数和物理扇区,结合分区表操作模块,创建一个隐藏分区,从而在硬盘上构成一个数据安全区域用于备份数据。用户也可以删除该隐藏分区,并可以调整该隐藏分区的大小而无损备份数据。
在本发明中,对硬盘分区表和隐藏分区的全部访问操作是在硬盘的物理扇区这一层。实现方法与操作系统密切相关。在本发明的实施例中,实现了在Windows系统下对硬盘物理扇区的访问,具体说明如下。
在Dos系统下PC机上存取硬盘的接口有三层,它们分别是操作系统层、基本输入输出系统(BIOS)层和输入输出端口(I/O Port)层。操作系统层提供各种高级的功能调用,其中关于硬盘存取的功能包括生成文件、删除文件、更改文件名、写入和读取文件等。在这层中也可以对逻辑磁盘分区的读写。但是在该层中不能读取硬盘分区表。操作系统层对磁盘的操作非常容易,但是功能有限。BIOS(Basic Input/Output System)中提供相当完备的磁盘服务,如读写扇区、格式化单一磁道等。在这一层中没有文件的概念,磁盘的读取是与扇区为单位的,所以速度比操作系统层快很多。I/O Port层是很低级的接口,它直接给控制卡下命令,所以功能非常强大,并且读取速度最快。但是它与控制卡连接紧密,如果换用另一种类型的控制卡,那么它就没有作用。Windows9x中,仍有DOS虚拟机环境,支持DOS程序运行,这些程序可以使用BIOS/DOS中断对硬盘访问,但已不能使用ATAPI接口访问硬盘。据我们分析发现,DOS虚拟机提供了DPMI(DOS保护模式接口),原DOS程序在使用BIOS中断INT 13或DOS中断INT 21时,实际是通过DPMI接口对硬盘进行访问的,但这些访问受Windows保护的限制,不能对所有的硬盘扇区的数据进行读写;同时为了安全,ATAPI访问已被禁止使用了。而32位Windows程序只能在Windows 9x及Windows 2000/XP操作系统中运行,更因安全原因,而被禁止使用上述硬盘访问接口对硬盘进行访问。不能使用上述方式对硬盘进行直接访问,因此,很多备份软件是DOS程序,或者主要程序是DOS程序,在DOS系统下运行。在本发明的实施例中,通过采用设备驱动程序可以实现直接对硬盘之物理扇区的访问。
Windows是一个运行在最高级特权,第0层级别的多线程操作系统。所有的应用程序都运行在最低级特权,第3层级别上。这样就限制了应用程序对系统的操作。它们不能使用CPU特权指令,不能直接访问I/O端口,硬盘的物理扇区等等。系统的控制实权掌握在设备驱动程序手中。Windows9x是一个兼容性非常好的操作系统,它可以运行绝大多数Dos程序,但是因为Dos程序和Windows程序有本质的不同,Dos程序认为它们拥有系统的一切键盘,CPU,内存,硬盘等等。Dos程序不知道怎样和其他程序合作,而Windows程序是多任务合作系统。也就是每个Windows程序都必须通过GetMessage或PeekMessage来和其他程序进行交流。为了解决这个问题,Windows9x在一个8086虚拟机上运行所有的Dos程序,而在另一个叫做系统虚拟机的虚拟机上运行其他所有的Windows程序。Windows9x负责把CPU运算时间轮流的分给每个虚拟机。虚拟机是被软件创建的一个假象。一个虚拟机和在它上面运行的程序交互,就像这个程序是在真正的机器上运行一样。这样,一个程序不知道也不关心自己是否是在虚拟机上运行。只要虚拟机准确的像一个真的机器一样响应程序,它就可以被当成是一个真正的机器。
Windows 9x下设备驱动程序的格式为VxD(Virtual X Driver)。x代表各种设备的名字,如虚拟键盘驱动程序(vkd),虚拟鼠标驱动程序(vmd)等等。VxD程序是硬件成功初始化的途径。VxD程序通常虚拟一些硬件设备,所以,例如当一个Dos程序认为它在同键盘通讯时,实际是虚拟键盘驱动程序在和Dos程序通讯。一个VxD程序通常控制真正的硬件设备并对该设备在各个虚拟机之间的共享进行管理。尽管如此,并不是说每个VxD程序必须和一个硬件设备相连。虽然VxD程序是用来虚拟硬件设备的,但是也可以把VxD程序看作是在第0级别的dll。例如,如果需要做一些只有在第0级别才能做的工作,就可以设计一个VxD程序来完成这个工作。这样,由于此VxD程序并没有虚拟任何设备,可以把它仅仅看作是用户程序的扩展。
VxD的开发工具可以采用Windows 9x DDK或VToolsD。它的实现步骤大致如下1.保存当前虚拟机的寄存器状态2.使用Begin_Nest_V86_Exec转入虚拟86(V86)方式
3.使用Exec_Int(0x13)来调用int 13中断。
4.使用End_Nest_Exec()退出虚拟86方式5.恢复当前虚拟机的寄存器状态VxD程序是Windows 9x特有的驱动程序,它在Windows NT、2000下不能运行。它能够获得CPU的0级权限,并能够直接访问计算机硬件。在WindowsNT/2000/XP平台上的设备驱动程序为SYS格式,它的原理和目的与VxD类似,都是为了获得CPU的最高级权限,并直接访问计算机硬件。
运行实施本发明之方法的软件,需要同时运行在Windows9x和Windows2000/XP下,所以VxD和SYS格式的驱动程序都需要。在windows9x下可以按上述方法开发一个VxD驱动程序,而Windows2000/XP操作系统已经提供一个可以访问硬盘参数和物理扇区的驱动程序。
本发明以在Windows的设备驱动程序作为基础,建立了一组对隐藏分区操作的接口函数,这些函数用于得到硬盘的参数(硬盘扇区的总大小、物理磁头数、物理柱面数、物理扇区数、逻辑磁头数、逻辑柱面数、逻辑扇区数等)以及提供访问(读写)硬盘物理扇区功能。通过这组函数我们可以实现对隐藏分区中的备份文件存取的功能,从而建立了一套完整的Windows开发环境,直接对隐藏分区及其备份文件进行操作。
在本发明中,实现备份数据区的隐藏是保证备份数据安全性的关键,这样可以禁止任何基于文件系统的访问和基于操作系统的访问,从而防止因用户误操作或病毒导致数据破坏。
隐藏分区实现的原理是在硬盘的0磁道0柱面1扇区位置是MBR(MAIN BOOT RECORD),即主引导记录区,它包括硬盘引导程序和分区表。引导程序完成的任务就是检查分区表是否正确以及确定哪个分区可以被操作系统引导。分区表位于本扇区的最末端,在MBR的偏移位置0x1BE,以80H或00H为开始标志,共0x40字节,每0x10字节记录分区的信息,共可记录四个分区的信息。后续的2个字节的内容为55AAH,表示MBR的数据是合法可用的。值得一提的是,MBR是由分区程序(例如DOS的FDISK.EXE)产生的,它不依赖于任何操作系统,而且硬盘引导程序也不是一成不变的,可以由用户进行改变,只要它能完成前述的任务。这也是为什么能实现多系统启动的原因。在MBR中最多可以记录4个分区,为了突破这个限制,扩展分区的概念被引入。用户可以在MBR中创建一个扩展分区(被称为主扩展分区),在该主扩展分区中又可以创建再扩展分区和逻辑分区,(它们的存储格式于MBR中分区项相同),而再扩展分区又可以继续划分下去。这样就可以构造多于4个分区的分区表。操作系统是通过分区表访问硬盘的。通过分析分区表结构,可以实现分区表的创建、删除、修改、提取、还原等操作。在分区表的每一项中的0x10个字节中有一个字节表示分区的类型,如FAT32的类型值是0xb,NTFS类型值是0x7。
在本发明中定义一个与当前所有分区类型值不同的数值为一个分区的类型值,因此,操作系统就不能识别该分区,这样就可以定义出一个特殊的分区,作为一个对操作系统隐藏的分区,并且可以对该隐藏分区进行操作。
在实现隐藏分区创建、删除等操作的同时,本发明定义隐藏分区中数据的储存方式,即它的文件系统结构,并且实现操作隐藏分区中数据的全部方法,这样,本发明就实现了对隐藏分区进行管理的技术。
隐藏分区中的数据的基本结构如下1、在隐藏分区的第一区域内记录备份文件的基本信息。如备份文件的类型、名称、偏移位置、长度、创建时间、备份文件的数据和属性在该备份中的长度等等信息。这个区域称为备份节点区。在一个实施例中,该区域为隐藏分区的第一个扇区。
2、在隐藏分区的第二区域存储备份文件的数据。这些数据压缩(用户选择压缩)或不压缩(用户选择不压缩)顺序存放到该区域。该区域被称为备份数据区。
3、隐藏分区的第三区域保存的是备份文件的属性信息。如文件名、长度、创建和访问时间以及它的数据在第二部分中的相对位置和长度等等文件的属性。该区域被称为备份目录区。
在本发明的一个实施例中,如图2和图3所示,硬盘数据备份的过程如下1、用户选择要备份的目录(文件)和备份方法(是否压缩、压缩方法)后,本程序通过Windows提供的文件访问函数(MFC的CFile、CFileFinder类以及一些Windows API函数)依次打开这些文件。
2、把所有打开的文件的内容读入内存,并把它们压缩(如果用户选择压缩)到另一个内存块中,并且构造一个文件属性列表,把所有文件的所有属性加入该列表中。然后以扇区的形式写入隐藏分区中备份数据区。
3、把上面所有的文件的属性(文件名、长度等)(通过文件属性列表)以及它们的数据在隐藏分区中的偏移位置、大小等写入隐藏分区备份目录区。
4、上面所以步骤完成之后,在隐藏分区的备份节点记录备份节点信息。这样就完成备份操作。
如图3所示,在“备份”属性页的左边的树形窗口中选择要备份的文件,图中为C\My Documents目录,单击“开始备份”按钮就就开始把C\MyDocuments目录的文件备份到隐藏分区。
在本发明的一个实施例中,如图4和图5所示,硬盘数据还原的过程如下1、在用户选择要还原的备份后,本程序定位到备份节点区,根据该区的信息初始化备份节点的基本信息,如备份数据区和目录区的位置和大小。
2、定位到备份目录区,读出目录区的数据,根据存储的格式得到所有备份文件的所有属性和它们在数据区中的位置,然后用Windows的文件访问函数创建这些文件,设置它们的属性,并把它们在数据区中的数据解压(如果压缩)或直接写入相对应的文件。这样就完成还原操作。
如图5所示,在“还原”属性页的左边的树形窗口中选择要还原的备份,图中为“隐藏分区1\1\基本备份”,单击“还原备份”或“还原到...”按钮就开始还原隐藏分区中的选中的备份。
权利要求
1.一种硬盘数据隐藏加密备份及还原方法,包括以下步骤(1)分区设置步骤,在硬盘内设置一个分区;(2)分区隐藏步骤,隐藏该分区,使得该分区及其数据不能被操作系统或其他基于文件系统的程序访问;(3)数据备份步骤,将用户指定的需备份的硬盘数据存储在该分区;(4)数据还原步骤,将隐藏分区中的数据还原到可被访问的硬盘分区中。
2.根据权利要求1所述的方法,其中,在所述的分区设置步骤,由用户根据需备份的数据量设置该隐藏分区的大小。
3.根据权利要求1所述的方法,其中,所述的分区隐藏步骤是在硬盘分区表中为该分区定义一个特定的类型值,该类型值不同于其它可被用户访问的分区之类型值。
4.根据权利要求1所述的方法,其中,所述的数据备份步骤是将用户指定的需备份数据以扇区的形式写入该隐藏分区。
5.根据权利要求1所述的方法,其中,所述的数据备份步骤进一步包括以下步骤(1)由用户指定需备份的文件或文件目录;(2)将备份节点信息写入该备份数据区的第一区域,每一个备份节点含有若干个备份数据文件,该备份节点信息表示备份文件的基本信息,包括关于该备份节点的文件类型、名称、偏移位置、长度、创建时间、备份文件的数据和属性在该备份节点中的长度;(3)将备份数据文件以扇区的形式写入该备份数据区的第二区域;(4)将备份文件的属性信息写入该备份文件的第三区域,其中包括备份文件的文件名、长度、创建时间、访问时间及其在备份数据区中的相对位置和长度。
6.根据权利要求1所述的方法,其中,在将备份数据文件写入隐藏分区之前,先将备份数据文件进行压缩。
7.根据权利要求1所述的方法,其中,在所述的数据备份步骤和数据还原步骤中,对隐藏分区的扇区进行读写访问是通过一套对硬盘物理扇区操作的接口函数实现的,该接口函数是根据Windows操作系统的硬盘访问接口而建立的。
8.根据权利要求1所述的方法,其中,所述的数据还原步骤是将隐藏分区中的备份数据以扇区形式读出,再将所读取的数据还原为所备份的数据文件。
9.根据权利要求1所述的方法,其中,所述的数据备份步骤及数据还原步骤是基于Windows操作系统下的虚拟设备驱动程序实现的。
10.根据权利要求9所述的方法,其中,所述的Windows操作系统包括Windows 9x系统,所述的虚拟设备驱动程序是由Windows 9x系统的虚拟设备驱动程序的开发工具实现的,包括以下步骤(1)保存当前虚拟机的寄存器状态;(2)转入虚拟86方式;(3)调用INT 13中断;(4)退出虚拟86方式;(5)恢复当前虚拟机的寄存器状态。
11.根据权利要求9所述的方法,其中,所述的Windows操作系统包括Windows 2000操作系统和Windows XP操作系统,所述的虚拟设备驱动程序是由Windows 2000操作系统或Windows XP操作系统提供的SYS格式的驱动程序。
12.根据权利要求1至11中任一项所述的方法,其中,所述的方法是在Windows操作系统下实现的。
全文摘要
一种硬盘数据隐藏加密备份及还原方法,包括以下步骤在硬盘内设置一个分区;隐藏该分区,使得该分区不能被操作系统或其他基于文件系统的程序访问;将用户指定的备份数据存储在该分区;将隐藏分区中的数据还原到可被访问的硬盘分区中。利用本发明使得备份在硬盘中的数据安全可靠,备份数据不会因用户误操作、计算机病毒或黑客程序而被破坏,用户可以非常方便地在Windows操作系统下进行硬盘数据备份及还原。
文档编号G06F12/14GK1417689SQ0113457
公开日2003年5月14日 申请日期2001年11月8日 优先权日2001年11月8日
发明者王卫, 杜宾, 杨文兵, 李鹏 申请人:联想(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1