CN100464314C - 一种数据透明保护的安全写系统和方法 - Google Patents

一种数据透明保护的安全写系统和方法 Download PDF

Info

Publication number
CN100464314C
CN100464314C CNB2006100659137A CN200610065913A CN100464314C CN 100464314 C CN100464314 C CN 100464314C CN B2006100659137 A CNB2006100659137 A CN B2006100659137A CN 200610065913 A CN200610065913 A CN 200610065913A CN 100464314 C CN100464314 C CN 100464314C
Authority
CN
China
Prior art keywords
data
protection
bunch
write
memory device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CNB2006100659137A
Other languages
English (en)
Other versions
CN101042681A (zh
Inventor
王晚丁
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Lenovo Beijing Ltd
Original Assignee
Lenovo Beijing Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Lenovo Beijing Ltd filed Critical Lenovo Beijing Ltd
Priority to CNB2006100659137A priority Critical patent/CN100464314C/zh
Publication of CN101042681A publication Critical patent/CN101042681A/zh
Application granted granted Critical
Publication of CN100464314C publication Critical patent/CN100464314C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

本发明公开了一种数据透明保护的安全写系统和方法,包括硬件平台,虚拟机监视器,以及至少一个操作系统,硬件平台包括存储设备,存储设备包括数据保护保留分区(2),用于保存每个数据保护点的MBR,数据分区的文件分配表和保护点状态表;虚拟机监视器包括数据保护模块(1),用于设置存储设备的保护点,并将保护点的MBR,数据分区的文件分配表和保护点状态表保存到所述数据保护保留分区(2),以及对存储设备的保护点进行变更操作;截获操作系统本身以及运行在操作系统之上的程序访问存储设备的I/O操作指令,并把所述指令根据重定向到存储设备上正确的位置读写存储设备的数据。其达到透明保护存储设备数据的目的。

Description

一种数据透明保护的安全写系统和方法
技术领域
本发明涉及数据存储安全技术领域,特别是涉及一种数据透明保护的安全写系统和方法。
背景技术
对于硬盘分区中的数据进行保护,防止故意破坏或者误删除,已经成为一种普遍需求,特别是在未知新病毒出现频度越来越高的背景下,对硬盘中安装的操作系统、应用软件和用户数据进行实时保护就有了明显的经济价值,因此最近10年以来,硬盘保护软件和硬盘保护卡从专门应用在公共计算机上,逐渐走向应用在普通办公计算机上,甚至应用在家庭计算机上。
现有的各种硬盘数据保护系统所使用的技术方案都很类似,其与现有的计算机体系架构相对应,就是在BIOS初始化后运行一个实模式程序,替换BIOS本身提供的访问硬盘的接口INT13函数,截获实模式操作系统DOS和运行在DOS上的软件通过INT13访问硬盘数据,保护硬盘已有数据不被实时修改;另外在保护模式的操作系统上运行一个硬盘访问过滤驱动,截获操作系统和运行在操作系统上的软件通过硬盘驱动访问硬盘数据,从而保护硬盘已有数据不被实时修改。
但是这种方式有三大问题,问题一是没有办法彻底阻止病毒和木马程序通过硬盘控制器本身提供的I/O指令直接修改硬盘扇区数据,因为现有技术方案并没有办法从更底层去截获I/O指令,比如现在互联网上流传的一种硬盘保护克星软件Crdisk就能破解所有的硬盘保护系统,甚至还能把整个分区的数据清除掉,硬盘保护系统软件开发商采取的对策也还只能是借鉴防已知病毒的原理,对这种已知的恶意软件进行监视,阻止其在操作系统中运行,但是软件Crdisk很容易避开这种监视。
问题二是需要在操作系统上安装一个硬盘访问过滤驱动,需要针对不同类型的操作系统开发不同的过滤驱动,这不是一种透明保护方式,其对于操作系统本身的某些直接通过I/O指令访问硬盘的功能要做限制,包括磁盘管理器,碎片整理功能,这种使用上的复杂性就阻止了这类功能在普通计算机用户群中普及推广。
问题三是这种保护软件需要占用主引导扇区(Main Boot Record,MBR)中的保留扇区sector1~sector62中的一个或几个,因此会跟操作系统中运行的某些其他也需要占用保留扇区的软件有冲突。
因此如果要把硬盘保护功能应用到数据安全要求高的计算机上的话,就必须要提供一种技术方案真正堵上这种安全漏洞。
发明内容
本发明的目的在于克服上述缺陷,提供一种数据透明保护的安全写系统和方法。其充分利用硬件虚拟化后带来的创新空间,从虚拟机监视器(VMM)这一层发出的所有对存储设备的存储I/O指令进行截获和变换处理,从而达到透明保护存储设备数据的目的。
为实现本发明目的而提供的一种数据透明保护的安全写系统,包括支持虚拟计算指令的硬件平台,运行在硬件平台上的虚拟机监视器,以及运行在虚拟机监视器上的至少一个操作系统,硬件平台包括中央处理器,存储设备以及存储设备与硬件平台交互的存储设备控制器。
所述存储设备包括数据保护保留分区,用于保存每个数据保护点的主引导扇区MBR,数据分区的文件分配表和保护点状态表,所述保护点状态表中包括有主分区和扩展分区中各个簇的簇号、各个簇是否可以写入新的数据的假损坏标志位和各个簇是否有物理损坏的真损坏标志位;
所述虚拟机监视器包括数据保护模块,用于设置存储设备的保护点,并将保护点的MBR,数据分区的文件分配表和保护点状态表保存到所述数据保护保留分区,以及对存储设备的保护点进行变更操作;截获所述操作系统本身以及运行在操作系统之上的程序访问所述存储设备的I/O操作指令,并根据保护点状态表中数据块对应的假损坏标志位和真损坏标志位,将所述指令重定向到存储设备上正确的位置读写存储设备的数据。
所述保护点状态表中每一条记录对应于存储设备中的每个数据块;保护点状态表中的每一条记录包括有一个假损坏标志位。
所述数据块为存储设备分区中的簇;
所述保护点状态表中的每一条记录还包括一个真损坏标志位。
所述硬件平台还包括功能键,通讯端口和主板,功能键通过通讯端口与主板相连,虚拟机监视器监控从所述端口传来的对存储设备读写请求操作的控制信号。
所述功能键为触发键、保存键、删除键、后退键和前进键。
为实现本发明目的还提供一种数据透明保护的安全写方法,包括下列步骤:
步骤A)初始化存储设备,在存储设备中划分出数据保护保留分区,建立并初始化保护点状态表,所述保护点状态表中包括有主分区和扩展分区中各个簇的簇号、各个簇是否可以写入新的数据的假损坏标志位和各个簇是否有物理损坏的真损坏标志位;
步骤B)设置操作系统的保护点时,数据保护模块将存储设备中已经读写数据的数据块,在保护点状态表中将该数据块对应的假损坏标志位标志为真,并将该保护点的MBR,数据分区的文件分配表和保护点状态表保存到数据保护保留分区;
步骤C)操作系统运行中,向存储设备请求进行读写数据的I/O请求操作,该请求被数据保护模块截获,并重定向到没有被保护点保护的数据块区域,在该数据块区域中读写数据,所述没有被保护点保护的数据块区域是根据所述保护点状态表中的信息确定的。
步骤D)触发保护点标志位,对存储设备的数据保护点进行读写变更操作。
所述步骤A)可以包括下列步骤:
步骤A1)在计算机启动后,存储设备被计算机程序初始化,分为主引导扇区,主分区,扩展分区和数据保护保留分区,并利用格式化程序对各个分区进行初始化;
步骤A2)当数据保护保留分区格式化完成后,在存储设备的数据保护保留分区上,建立保护点状态表,表中的每个记录对应于主分区和扩展分区每个簇的簇号,每个记录设立假损坏标志位和真损坏标志位。
所述步骤B)可以包括下列步骤:
步骤B1)当设置一个保护点时,运行在虚拟机监视器中的所述数据保护模块将数据分区的文件分配表存储到数据保护保留分区,然后将保护点中每个已经读写数据的簇对应的假损坏标志位标志为1,表示假损坏为真;将该簇对应的真损坏标志位标志为0,表示这一个簇没有物理损坏;
步骤B2)保护点没有写入新数据的簇,假损坏标志位标志为0,表示可以写入数据;如果存储设备的簇没有物理损坏,则真损坏标志位标志为0,表示可以写入数据,否则标志为1,表示真损坏,不能写入数据。
所述步骤C)可以包括下列步骤:
步骤C1)虚拟机监视器中的数据保护模块截获操作系统访问存储设备的I/O操作指令;
步骤C2)数据保护模块把这些指令重定向到正确位置读写数据;
所述步骤C2)包括下列步骤:
步骤C21)虚拟机监视器将该请求转交给数据保护模块,数据保护模块读取数据保护保留分区中保护点状态表的信息;
步骤C22)判断在存储设备中哪些簇没有受到保护点的保护,可以读写数据;
步骤C23)数据保护模块(1)将可读写数据的簇号返回给I/O请求操作,通过存储设备控制器根据返回的簇号在相应的簇中读写数据,将数据写入可用的簇中,即写入保护点状态表中假损坏标志位和真损坏标志位的标志都为0所对应的簇中。
所述步骤D)可以包括下列步骤:
步骤D1)触发保护点标志位,保存或者删除存储设备的数据保护点;
步骤D2)通过利用数据保护的功能键中的前进键或后退键,触发保护点标志位,对存储设备的数据保护点进行切换读写。
所述步骤D1)包括下列步骤:
步骤D11)当触发保护点保存标志位时,数据保护模块将存储设备的MBR,数据分区的文件分配表存储到数据保护保留区域中,并创建一个新的保护点,将该新的保护点对应的保护点状态表保存在数据保护保留区域中;
步骤D12)当触发保护点删除标志位时,数据保护模块将该操作系统中的保护点删除,并将保护点保存的对应MBR,数据分区的文件分配表删除,并将保护点状态表对应的假损坏标志位都标志为0,表示可以写入数据。
所述步骤D2)包括下列步骤:
步骤D21)当虚拟机监视器的数据保护模块接收到切换指令后,读取保护点的MBR,数据分区的文件分配表和保护点状态表,并切换到新的保护点;
步骤D22)虚拟机监视器的数据保护模块根据读取的保护点MBR,数据分区的文件分配表和保护点状态表重新构建新的存储设备分区表和文件分配表;
步骤D23)虚拟机监视器的数据保护模块关闭当前正在运行的操作系统;
步骤D24)虚拟机监视器使用新的文件分配表替换原有的MBR,数据分区的文件分配表,重新启动操作系统;
步骤D25)虚拟机监视器的数据保护模块将当前保护点的保护点状态表与保存在数据保护保留区域中的相邻保护点状态表相比较,将当前保护点读写数据的簇,该簇号相应假损坏标志位标志由1改变为0,即当前保护点已经读写的数据的簇可以继续读写数据。
所述步骤D25)包括下列步骤:
步骤D251)判断当前保护点是否为最早的保护点,即有没有前一时间保存的保护点,如果不是,则转到步骤D254);否则继续;
步骤D252)判断当前保护点是否为最后保护点,即有没有后一时间保存的保护点,如果没有,则将当前保护点的保护点状态表记录的假损坏标志为1的记录的假损坏标志全部标志为0,表示只有一个保护点,在这一保护点已经读写过数据的簇,可以继续读写数据,并结束流程;否则继续;
步骤D253)将当前保护点的保护点状态表记录的假损坏标志为1的记录,除后一时间保存的保护点状态表记录的假损坏标志为1的以外,其他的假损坏标志为1的记录全部标志为0,表示可以在除下一保护点读写的簇以外,当前保护点已经读写过数据的簇,可以继续读写数据,并结束流程;
步骤D254)判断当前保护点是否为最后保护点,即有没有后一时间保存的保护点,如果是,则将当前保护点的保护点状态表记录的假损坏标志为1的记录,除前一时间保存的保护点状态表记录的假损坏标志为1的记录外,其他的假损坏标志为1的记录全部标志为0,表示可以在除前一保护点读写的簇以外,当前保护点已经读写过数据的簇,可以继续读写数据,并结束流程;否则继续;
步骤D255:将保护点状态表记录的假损坏标志为1的记录,除前一时间和后一时间保存的保护点状态表假损坏标志为1的记录外,其他的假损坏标志为1的记录全部标志为0,表示可以在除前一保护点和后一保护点读写的簇以外,当前保护点已经读写过数据的簇,可以继续读写数据,并结束流程。
步骤D256)当触发保护点保存标志位,从当前保护点读写数据结束,退出操作系统时,设立新的保护点,保存新的MBR,数据分区的文件分配表,将当前保护点读写过的簇和本次操作读写过的簇,在对应的保护点状态表将该簇的假损坏标志重新标志为1,保存新的保护点状态表。
所述切换是从正常运行的状态切换到一个保护点;或者从一个保护点切换到前一时间的保护点;或者从一个保护点切换到后一时间的保护点。
本发明的有益效果是:用户在使用具备这种数据透明保护功能的存储装置时,就不会担心病毒破坏操作系统环境,从而导致的存储设备无法正常使用;也不用担心自己误删除重要数据文件,从而导致关键信息资产的损失。本发明的数据透明保护安全写系统和方法,由于具备了在不同保护点状态之间来回遍历切换的特性,因此与现有的存储设备保护方法而言,具备更高的可用性和安全性。
附图说明
图1为本发明数据透明保护安全写系统结构示意图;
图2为本发明数据透明保护安全写系统中存储设备分区示意图;
图3为本发明数据透明保护安全写系统中保护点状态表记录示意图;
图4为操作系统写存储设备I/O请求操作流程图;
图5为本发明数据透明保护安全写方法切换过程流程图。
具体实施方式
下面结合附图1~5进一步详细说明本发明的存储设备数据的透明保护的系统和方法。
本发明特别是以计算机数据透明保护系统和方法进行描述,但本发明同样适用除了以上提到的存储设备的任何装置,如移动通信装置的存储设备的情况。
本发明的核心要点是在硬件平台上先运行虚拟机监视器(Virtual MachineMonitor,VMM),在虚拟机监视器中驻留运行数据保护模块1,操作系统运行在虚拟机监视器(VMM)之上,数据保护模块1在CPU的支持下,截获操作系统本身以及运行在操作系统之上的程序访问计算机存储设备的所有I/O指令,并把这些指令重定向到存储设备上正确的位置去读取或者写入存储设备的数据块中,特别是写入数据块的时候并不对原来保护的存储设备数据块做真正的修改,而是把修改后的数据写入另外一个可用空间中,从而达到保护存储设备数据的目的。其在整个过程中由于不需要在操作系统之上安装任何软件模块,也不管同时运行多少个操作系统,都可以做到数据块读写重定向,因此对用户来说是一种完全透明的操作。
如图1所示,本发明实施例的存储设备数据的透明保护的系统是在计算机硬件平台上,在现有已经公开的虚拟机架构中,实现对于硬件资源的虚拟化,从而在一台计算机上可以并行地运行多个操作系统,由于这些操作系统相互之间不干扰。
在这种虚拟机架构中,通过在实际的硬件层面上增加一组专门给虚拟机监视器(VMM)使用的指令、虚拟计算资源、存储资源以及I/O资源,使得操作系统不需要任何修改就可以运行在虚拟机架构上,这就提供了一个非常广的创新应用范围。其中,常用的用户操作系统可以包括Windows98、Windows2000、WindowsXP、Linux、Unix、Mac等。
本发明实施例的计算机硬件平台中,包括与计算机通讯的端口,如COM端口、USB端口,以及存储设备,如硬盘,以及存储设备与计算机硬件平台中其他设备进行交互的存储设备控制器,如硬盘控制器,用于根据计算机操作系统的I/O操作请求,完成存储设备的I/O操作,将数据读出或者写入存储设备中。
本发明实施例的计算机硬件平台中,还包括中央处理器(CPU),其支持虚拟计算指令,当操作系统发出对存储设备的I/O操作请求时,截获该操作请求。
如图2所示,存储设备包括主引导扇区,主分区和扩展分区。本发明实施例的存储设备中,还包括数据保护保留分区2,用于存储保护点状态表和每个保护点相应的MBR,数据分区的文件分配表数据。
本发明是在支持VMM的硬件平台上,在所述的虚拟机监视器中,包括了数据保护模块1,用于设置存储设备的保护点,并将保护点的MBR,数据分区的文件分配表和保护点状态表保存到所述数据保护保留分区2,以及对存储设备的保护点进行变更操作;截获所述操作系统本身以及运行在操作系统之上的程序访问所述存储设备的I/O操作指令,并把所述指令根据重定向到存储设备上正确的位置读写存储设备的数据。
由于操作系统是基于文件系统方式访问存储设备的,而文件系统以簇为基本单位对数据进行管理,每个簇包含一定数目的扇区,因此可以对簇进行统一保护,这样就能大大减少空间的占用。
如图3所示,本发明的存储设备数据透明保护系统设置有存储设备保护点状态表,表中每一条记录对应于存储设备文件分配表中的每个簇。
保护点状态表中的每一条记录包括有一个假损坏标志位和一个真损坏标志位。
当假损坏标志位为0时,表示该记录所对应的簇可以写入新的数据;如果假损坏标志位为1时,表示该记录所对应的簇已经写入数据,并受到保护,不能写入新的数据。
当真损坏标志位为0时,表示该记录所对应的簇没有物理损坏,可以写入新的数据;如果真损坏标志位为1时,表示该簇已经物理损坏,不能写入数据。
当设置一个保护点时,虚拟机监视器(VMM)将存储设备的文件分配表存储到存储设备保留区域,然后将保护点中每个已经写入数据的簇对应的假损坏标志位被标志为1,表示假损坏,不能在该簇中写入新数据;将该真损坏标志位标志为0,表示这一个簇没有物理损坏。
而保护点没有写入新数据的簇,假损坏标志位标志为0,表示可以写入数据;如果存储设备的簇没有物理损坏,则真损坏标志位标志为0,表示可以写入数据,否则标志为1,表示真损坏,不能写入数据。
虚拟机监视器运行在硬件平台上,并可以使多个操作系统在其上运行。当操作系统发出向存储设备读写数据的I/O操作请求的时候,首先被CPU截获,CPU把该I/O操作请求转交给虚拟机监视器(VMM)中的数据保护模块1。
在支持虚拟计算指令的平台上,处理器提供了两种指令集,一种指令集专门提供给VMM使用,另一种指令集专门提供给操作系统使用,不同架构的处理器对于这种指令集以及与之相关的一些术语称呼不同,但是本质含义是相同的,下面以Intel的处理器为例来说明整个操作过程,虚拟机监视器(VMM)使用的指令集称作VMX root operation,操作系统使用的指令集称作VMX non-root operation,从操作系统状态切换到VMM状态的指令称作VM-Exit,从VMM状态切换到操作系统状态的指令称作VM-Entry,为了完成这种状态切换,需要有一个数据结构VMCS(Virtual Machine ControlStructure),处理器中有一个64位长度的VMCS指针来控制对于VMCS的访问,VMM使用VMREAD、VMWRITE和VMCLEAR。每当VMM准备启动一个操作系统时,就执行VMXON指令,在该指令中会包含VMXON Pointer参数,明确指示在内存的哪个地址开始为该虚拟机分配一个4K大小的空间,然后处理器会为该虚拟机在该内存空间中创建一个VMCS结构。VMCS的结构如表1所示:
      表1 CMCS结构表
 
偏移量 内容
0 VMCS的版本标识
4 VMX退出指示
8 VMCS数据
其中VMCS数据由6组数据组成:
1,Guest-State area(虚拟机状态区),当执行VM Exit的时候,把处理器状态保存在虚拟机状态区,反之当执行VM Entry的时候,就从虚拟机状态区恢复处理器状态。
2,Host-state arca(主机状态区),当执行VM Exit的时候,从主机状态区恢复处理器状态。
3,VM-execution control fields(虚拟机执行控制区),这个区域的参数控制了处理器在VMX non-root operation模式下的行为,其中包括触发VM-Exit的部分原因。
4,VM-Exit control fields,这个区域的参数控制了VM-Exit的行为。
5,VM-Entry control fields,这个区域的参数控制了VM-Entry的行为。
6,VM-Exit information fields,这个区域存放的VM-Exit触发原因等信息。
因此当操作系统发出一个磁盘操作I/O指令的时候,处理器就会根据虚拟机执行控制区的参数判断需要触发一个VM-Exit指令,并且从主机状态区恢复处理器的寄存器状态,从状态继续执行,即VMM开始获得控制权,并且从VM-Exit information fields读出I/O请求指令的信息,传递给数据保护模块1,由该模块进行转换处理后,再提交给硬盘控制器执行。
数据保护模块1根据保护点状态表中的保护点信息对该读写数据的I/O操作请求作分析处理,判断在存储设备中那些簇没有受到保护点的保护,可以读写数据,并将可读写数据的簇号返回给数据保护模块1,通过存储装置控制器提交给存储设备完成读写数据的I/O请求操作,然后再依次返回结果给操作系统。
本发明的存储设备数据透明保护系统,还包括五个专用按键:
一个是触发键,其用于触发一个保护点,在用户按下触发键,触发标志位时,数据保护模块1读取保存在数据保护保留区域中的保护点状态表,并将保护点列表显示,提供给用户选择。
一个是保存键,其用于命令虚拟机监视器(VMM)中的数据保护模块1为当前存储设备状态创建一个新的保护点,其计算MBR和各个分区的文件分配表的总大小和数据保护保留分区2的剩余空间大小,判断剩余空间是否足够,拷贝MBR到数据保护保留分区2,拷贝各个分区的文件分配表到数据保护保留分区2,修改硬盘簇状态表,把新占用的簇标记为假损坏。
一个是删除键,其用于命令虚拟机监视器(VMM)中的数据保护模块1把当前保护点删除,并将该保护点保护的存储设备存储数据区域释放,使操作系统可以在该区域读写数据,其比较所有保护点的文件分配表,判断要删除的保护点占用的簇是否被其他保护点占用,如果不被占用的话,那么就修改硬盘簇状态表,把该簇标记为完好,从数据保护保留分区2中删除该保护点MBR和各文件分配表占用的空间,然后把最新的保护点对应的MBR信息和各文件分配表信息恢复到硬盘对应位置,然后调用VMXRESUME指令重启操作系统。
一个是后退键,其用于命令虚拟机监视器(VMM)中的数据保护模块1关闭操作系统,把当前存储设备状态切换成前一个保护点,并在该保护点状态下重新启动操作系统,其从保护系统专用区域中把当前保护点之前的保护点对应的MBR信息和各文件分配表信息恢复到硬盘对应位置,然后调用VMXRESUME指令重启操作系统;
一个是前进键,其用于命令虚拟机监视器(VMM)中的数据保护模块1关闭操作系统,把存储设备状态切换成后一个保护点,并在该保护点状态下重新启动操作系统,其从保护系统专用区域中把当前保护点之后的保护点对应的MBR信息和各文件分配表信息恢复到硬盘对应位置,然后调用VMXRESUME指令重启操作系统。
对于台式计算机和笔记本计算机来说,这五个专用按键可以在键盘上,增加一个区域安装这个功能键模块,这五个键的键码可以选择键盘的保留键码。
较佳地,将该五个功能键安装在计算机主机的前面板或者顶部,通过COM端口或者USB端口与计算机硬件平台的主板相连,虚拟机监视器(VMM)专门监控从该端口传来的对存储设备读写I/O请求操作的控制信号。当操作系统在运行的时候,处理器执行的是VMX non-root operation,当功能键被按下的时候,这种Input指令同样还是被操作系统首先接收到,然后处理器触发VM-Exit指令,从VMCS中恢复处理器状态,由VMM接管控制权,然后VMM从VMCS中得到该Input指令的详细信息,判断出该指令是否来自于指定的设备,如果是的话则进一步判断该设备的键码,不同的键码对应到不同的处理操作,例如可以是键码E2 64对应到创建保护点操作,键码E259对应到删除保护点操作,键码E2 70对应到前进操作,键码E0 33对应到后退操作。
当存储设备用于手持移动设备,如手机终端时,这五个功能键可以设计在手持移动设备的两侧,这样不需要占用手持移动设备本身的面积。
下面进一步详细说明本发明的存储设备数据透明保护的方法:
步骤1:初始化存储设备,在存储设备中划分出保留区域,建立并初始化保护点状态表。
在使用存储设备读写数据前,要对存储设备进行初始化,如利用FDISK程序进行分区;并利用FORMAT程序对分区进行格式化。
步骤11:本发明实施例中,在计算机启动后,存储设备被计算机程序初始化,分为主引导扇区,主分区,扩展分区和数据保护保留分区2,并利用格式化程序对各个分区进行初始化。
主引导扇区保存文件分配表(FAT),主分区和扩展分区保存操作系统文件和操作系统上运行程序文件的数据;数据保护保留分区2保存主分区和扩展分区中各个簇的簇号及读写状态的保护点状态表,以及每个操作系统保护点的文件分配表。
步骤12:当数据保护保留分区2格式化完成后,在存储设备的数据保护保留分区2上,建立保护点状态表,表中的每个记录对应于主分区和扩展分区每个簇的簇号,每个记录设立假损坏标志位和真损坏标志位。
当数据保护保留分区2格式化后,建立保护点状态表,在保护点状态表中,根据主分区和扩展分区的大小,对应于分区中的每个簇,建立一条记录,记录中字段1表示簇号;字段2为一个比特(bit),表示假损坏标志位,当保护点中在该簇已经写入数据,在保护点之后的操作中,不能再在该簇中写入新数据时,假损坏标志位为1,当该簇中没有写入任何数据,可以在该簇中写入新数据时,假损坏标志位为0;字段3为真损坏标志位,如果该簇真正物理损坏,不能写入数据,则真损坏标志位为1,如果该簇没有物理损坏,则真损坏标志位为0。
当假损坏标志位为0时,表示该记录所对应的簇可以写入新的数据;如果假损坏标志位为1时,表示该记录所对应的簇已经写入数据,并受到保护,不能写入新的数据。
当真损坏标志位为0时,表示该记录所对应的簇没有物理损坏,可以写入新的数据;如果真损坏标志位为1时,表示该簇已经物理损坏,不能写入数据。
步骤2:用户按下保护点保存功能键,触发保护点保存标志位,设置操作系统的保护点时,数据保护模块1将存储设备中已经读写数据的簇,在保护点状态表中将该簇对应的假损坏标志位标志为1,并将该保护点的MBR,数据分区的文件分配表和保护点状态表保存到数据保护保留分区2。
步骤21:当设置一个保护点时,虚拟机监视器(VMM)中数据保护模块1将存储设备的MBR,数据分区的文件分配表存储到数据保护保留分区2,然后将保护点中每个已经读写数据的簇对应的假损坏标志位标志为1,表示假损坏,不能在该簇中写入新数据;将该真损坏标志位标志为0,表示这一个簇没有物理损坏。
步骤22:保护点没有写入新数据的簇,假损坏标志位标志为0,表示可以写入数据;如果存储设备的簇没有物理损坏,则真损坏标志位标志为0,表示可以写入数据,否则标志为1,表示真损坏,不能写入数据。
操作系统可以设立多个保护点,每个保护点按时间顺序保存,多个操作系统可以分别设立自己的保护点。
较佳地,数据保护模块1可以设定,至多可以保存10个保护点状态。如果超过10个保护点,则将较早保存的保护点删除。
步骤3:操作系统运行中,向存储设备请求进行读写数据的I/O请求操作,该请求被数据保护模块1截获,并重定向到没有被保护点保护的数据块区域,在该数据块区域中读写数据。
操作系统运行在虚拟机监视器(VMM)上,当操作系统向存储设备请求进行读写数据的I/O操作时,数据保护模块1在CPU的支持下截获操作系统访问存储设备的I/O操作指令,并重定向到没有被保护点保护的数据块区域,判断在存储设备中那些簇没有受到保护点的保护,可以读写数据,并将可读写数据的簇号返回给数据保护模块1,通过存储装置控制器提交给存储设备完成读写数据的I/O请求操作,将数据写入可用的簇中,即写入保护点状态表中假损坏标志位和真损坏标志位的标志都为0所对应的簇中,然后再依次返回结果给操作系统,从而达到保护存储设备数据的目的。
如图4所示,其包括下列步骤:
步骤31:虚拟机监视器(VMM)中的数据保护模块1截获操作系统访问存储设备的I/O操作指令;
当操作系统发出访问存储设备的I/O请求的时候,首先被虚拟机监视器(VMM)中的数据保护模块1截获。
步骤32:数据保护模块1把这些指令重定向到正确位置读写数据;
步骤321:虚拟机监视器(VMM)将该请求转交给数据保护模块1,数据保护模块1读取保护点保留分区中保护点状态表的信息;
步骤322:判断在存储设备中那些簇没有受到保护点的保护,可以读写数据;
步骤323:将可读写数据的簇号返回给数据保护模块1,通过存储装置控制器提交给存储设备完成读写数据的I/O请求操作,将数据写入可用的簇中,即写入保护点状态表中假损坏标志位和真损坏标志位的标志都为0所对应的簇中。
当向存储设备请求进行读写数据的I/O请求时,数据保护模块1在保护点状态表中,查找假损坏标志位为0的簇的簇号,并将簇号返回给I/O请求操作,存储设备控制器根据返回的簇号在相应的簇中读写数据。
步骤4:触发保护点标志位,对存储设备的数据保护点进行读写变更操作。
步骤41:通过利用数据保护的功能键,触发保护点标志位,保存或者删除存储设备的数据保护点;
步骤411:当用户按下计算机的保护点保存键,触发保护点保存标志位时,数据保护模块1将存储设备的MBR,数据分区的文件分配表存储到数据保护保留区域中,并创建一个新的保护点,将该保护点状态表保存在数据保护保留区域中。
步骤412:当用户按下计算机的保护点删除键,触发保护点删除标志位时,数据保护模块1将该操作系统中的保护点删除,并将保护点保存的对应文件分配表删除,并将保护点状态表对应的假损坏标志位都标志为0,表示可以写入数据。
数据保护模块1将该操作系统中的保护点删除,并对应地,删除在数据保护保存区域中的对应的MBR,数据分区的文件分配表,并根据保护点对应的保护点状态表中假损坏标志位为1的位置,在当前的保护点状态表中将该假损坏标志位改写为0。
步骤42:通过利用数据保护的功能键,触发保护点标志位,对存储设备的数据保护点进行切换读写。
如图5所示,切换的过程包括下列步骤:
步骤421:当虚拟机监视器(VMM)的数据保护模块1接收到切换指令后,读取保护点的MBR,数据分区的文件分配表和保护点状态表,并切换到新的保护点;
步骤422:虚拟机监视器(VMM)的数据保护模块1根据读取的MBR,数据分区的保护点文件分配表和保护点状态表重新构建新的存储设备分区表和文件分配表;
步骤423:虚拟机监视器(VMM)的数据保护模块1关闭当前正在运行的操作系统;
步骤424:虚拟机监视器(VMM)使用新的文件分配表替换原有的MBR,数据分区的文件分配表,重新启动操作系统;
步骤425:虚拟机监视器(VMM)的数据保护模块1将保护点状态表与保存在数据保护保留区域中的相邻保护点状态表相比较,将本保护点读写的数据簇号相应假损坏标志位标志由1改变为0,即本保护点已经读写的数据的簇可以继续读写数据。
步骤4251:判断该保护点状态表是否为最早的保护点,即有没有前一时间保存的保护点,如果不是,则转到步骤4254;否则继续;
步骤4252:判断该保护点状态表是否为最后保护点,即有没有后一时间保存的保护点,如果没有,则将保护点状态表记录的假损坏标志为1的记录的假损坏标志全部标志为0,表示只有一个保护点,在这一保护点已经读写过数据的簇,可以继续读写数据;否则继续;
步骤4253:将保护点状态表记录的假损坏标志为1的记录,除后一时间保存的保护点状态表记录的假损坏标志为1的以外,其他的假损坏标志为1的记录全部标志为0,表示可以在除下一保护点读写的簇以外,本保护点已经读写过数据的簇,可以继续读写数据;
步骤4254:判断该保护点状态表是否为最后保护点,即有没有后一时间保存的保护点,如果是,则将保护点状态表记录的假损坏标志为1的记录,除前一时间保存的保护点状态表记录的假损坏标志为1的记录外,其他的假损坏标志为1的记录全部标志为0,表示可以在除前一保护点读写的簇以外,本保护点已经读写过数据的簇,可以继续读写数据;否则继续;
步骤4255:将保护点状态表记录的假损坏标志为1的记录,除前一时间和后一时间保存的保护点状态表假损坏标志为1的记录外,其他的假损坏标志为1的记录全部标志为0,表示可以在除前一保护点和后一保护点读写的簇以外,本保护点已经读写过数据的簇,可以继续读写数据;
步骤4256:当触发保护点,从该保护点读写数据结束,退出操作系统时,设立新的保护点,保存新的MBR和数据分区的文件分配表,将原保护点读写过的簇和本次操作读写过的簇,在对应的保护点状态表将该簇的假损坏标志重新标志为1,保存新的保护点状态表。
保护点的切换读写,可以是通过触发键,从正常运行的状态切换到一个保护点,其在用户按下触发键,触发标志位时,数据保护模块1读取保存在数据保护保留区域中的保护点状态表,并将保护点列表显示,提供给用户选择;
也可以是从一个保护点切换到前一时间的保护点,其在用户按下后退键,触发后退标志位时,虚拟机监视器(VMM)中的数据保护模块1关闭操作系统,把当前存储设备状态切换成前一个时间保存的保护点,并在该保护点状态下重新启动操作系统;
数据保护模块1所读取的前一时间的保护点及保护点状态表,首先判断该保护点是否存在,如果没有则结束;如果该保护点存在,则读取保护点及保护点的状态表,并在该保护点状态下重新启动操作系统。
也可以是从一个保护点切换到后一时间的保护点,其在用户按下前进键,触发前进标志位时,虚拟机监视器(VMM)中的数据保护模块1关闭操作系统,把存储设备状态切换成后一个时间的保护点,并在该保护点状态下重新启动操作系统。
数据保护模块1所读取的后一时间的保护点及保护点状态表,首先判断该保护点是否存在,如果没有则结束;如果该保护点存在,则读取保护点及保护点的状态表,并在该保护点状态下重新启动操作系统。
用户使用具备这种数据透明保护功能的计算机时,就不要特别担心病毒破坏操作系统环境,导致无法正常使用计算机,也不用特别担心自己误删除重要数据文件,导致关键信息资产的损失,因为用户可以根据需要创建足够多的保护点状态,然后在碰到这类问题的时候,通过计算机上的后退键和前进键切换到自己想要的保护点状态,然后在该状态下杀毒、安装安全漏洞补丁程序、或者把某个文件拷贝到外部存储介质上,以及其他各种操作,最后把新的状态保存为一个新的保护点。由于具备了在不同保护点状态之间来回遍历切换的特性,因此这种新的存储系统相比现有的计算机而言,具备更高的可用性和安全性。
本实施例是为了更好地理解本发明进行的详细的描述,并不是对本发明所保护的范围的限定,因此,本领域普通技术人员不脱离本发明的主旨未经创造性劳动而对本明所做的改变在本发明的保护范围内。

Claims (11)

1.一种数据透明保护的安全写系统,包括支持虚拟计算指令的硬件平台,运行在硬件平台上的虚拟机监视器,以及运行在虚拟机监视器上的至少一个操作系统,硬件平台包括中央处理器,存储设备以及存储设备与硬件平台交互的存储设备控制器,其特征在于:
所述存储设备包括数据保护保留分区(2),用于保存每个数据保护点的主引导扇区MBR,数据分区的文件分配表和保护点状态表,所述保护点状态表中包括有主分区和扩展分区中各个簇的簇号、各个簇是否可以写入新的数据的假损坏标志位和各个簇是否有物理损坏的真损坏标志位;
所述虚拟机监视器包括数据保护模块(1),用于设置存储设备的保护点,并将保护点的MBR,数据分区的文件分配表和保护点状态表保存到所述数据保护保留分区(2),以及对存储设备的保护点进行变更操作;截获所述操作系统本身以及运行在操作系统之上的程序访问所述存储设备的写操作指令,并根据保护点状态表中各个簇对应的假损坏标志位和真损坏标志位,将所述操作指令重定向到存储设备上正确的位置写存储设备的数据。
2.根据权利要求1所述的数据透明保护的安全写系统,其特征在于,所述硬件平台还包括功能键,通讯端口和主板,功能键通过通讯端口与主板相连,虚拟机监视器监控从所述端口传来的对存储设备读写请求操作的控制信号。
3.根据权利要求2所述的数据透明保护的安全写系统,其特征在于,所述功能键为触发键、保存键、删除键、后退键和前进键。
4.一种数据透明保护的安全写方法,其特征在于,包括下列步骤:
步骤A)初始化存储设备,在存储设备中划分出数据保护保留分区(2),建立并初始化保护点状态表,所述保护点状态表中包括有主分区和扩展分区中各个簇的簇号、各个簇是否可以写入新的数据的假损坏标志位和各个簇是否有物理损坏的真损坏标志位;
步骤B)设置操作系统的保护点时,数据保护模块(1)将存储设备中已经写数据的簇,在保护点状态表中将该簇对应的假损坏标志位标志为真,并将该保护点的主引导扇区MBR,数据分区的文件分配表和保护点状态表保存到数据保护保留分区(2);
步骤C)操作系统运行中,向存储设备请求进行写数据的写请求操作,该请求操作被数据保护模块(1)截获,并重定向到没有被保护点保护的簇区域,在该簇区域中写数据,所述没有被保护点保护的簇区域是根据所述保护点状态表中的信息确定的。
5.根据权利要求4所述的数据透明保护的安全写方法,其特征在于,还包括下列步骤:
步骤D)触发保护点标志位,对存储设备的数据保护点进行读写变更操作。
6.根据权利要求4或5所述的数据透明保护的安全写方法,其特征在于,所述步骤A)包括下列步骤:
步骤A1)在计算机启动后,存储设备被计算机程序初始化,分为主引导扇区,主分区,扩展分区和数据保护保留分区(2),并利用格式化程序对各个分区进行初始化;
步骤A2)当数据保护保留分区(2)格式化完成后,在存储设备的数据保护保留分区(2)上,建立保护点状态表,表中的每个记录对应于主分区和扩展分区每个簇的簇号,每个记录设立假损坏标志位和真损坏标志位。
7.根据权利要求4或5所述的数据透明保护的安全写方法,其特征在于,所述步骤B)包括下列步骤:
步骤B1)当设置一个保护点时,运行在虚拟机监视器中的数据保护模块(1)将数据分区的文件分配表存储到数据保护保留分区(2),然后将保护点中每个已经写数据的簇对应的假损坏标志位标志为1,表示假损坏为真;将该簇对应的真损坏标志位标志为0,表示这一个簇没有物理损坏;
步骤B2)保护点没有写入新数据的簇,假损坏标志位标志为0,表示可以写入数据;如果存储设备的簇没有物理损坏,则真损坏标志位标志为0,表示可以写入数据,否则标志为1,表示真损坏,不能写入数据。
8.根据权利要求7所述的数据透明保护的安全写方法,其特征在于,所述步骤C中,所述重定向到没有被保护点保护的簇区域包括下列步骤:
步骤C1)虚拟机监视器将该请求操作转交给数据保护模块(1),数据保护模块(1)读取数据保护保留分区中保护点状态表的信息;
步骤C2)判断在存储设备中哪些簇没有受到保护点的保护,可以读写数据;
步骤C3)数据保护模块(1)将可写数据的簇号返回给写请求操作,通过存储设备控制器根据返回的簇号在相应的簇中写数据,将数据写入可用的簇中,即写入保护点状态表中假损坏标志位和真损坏标志位的标志都为0所对应的簇中。
9.根据权利要求5所述的数据透明保护的安全写方法,其特征在于,所述步骤D)包括下列步骤:
步骤D1)触发保护点标志位,保存或者删除存储设备的数据保护点;
步骤D2)通过利用数据保护的功能键中的前进键或后退键,触发保护点标志位,对存储设备的数据保护点进行切换读写。
10.根据权利要求9所述的数据透明保护的安全写方法,其特征在于,所述步骤D1)包括下列步骤:
步骤D11)当触发保护点保存标志位时,数据保护模块(1)将存储设备的MBR,数据分区的文件分配表存储到数据保护保留区域中,并创建一个新的保护点,将该新的保护点对应的保护点状态表保存在数据保护保留区域中;
步骤D12)当触发保护点删除标志位时,数据保护模块(1)将该操作系统中的保护点删除,并将保护点保存的对应MBR,数据分区的文件分配表删除,并将保护点状态表对应的假损坏标志位都标志为0,表示可以写入数据。
11.根据权利要求9所述的数据透明保护的安全写方法,其特征在于,所述切换是从正常运行的状态切换到一个保护点;或者从一个保护点切换到前一时间的保护点;或者从一个保护点切换到后一时间的保护点。
CNB2006100659137A 2006-03-23 2006-03-23 一种数据透明保护的安全写系统和方法 Expired - Fee Related CN100464314C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2006100659137A CN100464314C (zh) 2006-03-23 2006-03-23 一种数据透明保护的安全写系统和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2006100659137A CN100464314C (zh) 2006-03-23 2006-03-23 一种数据透明保护的安全写系统和方法

Publications (2)

Publication Number Publication Date
CN101042681A CN101042681A (zh) 2007-09-26
CN100464314C true CN100464314C (zh) 2009-02-25

Family

ID=38808202

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2006100659137A Expired - Fee Related CN100464314C (zh) 2006-03-23 2006-03-23 一种数据透明保护的安全写系统和方法

Country Status (1)

Country Link
CN (1) CN100464314C (zh)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9152636B2 (en) * 2008-03-07 2015-10-06 Leadcom Technology Co., Ltd. Content protection system in storage media and method of the same
US20090327750A1 (en) * 2008-06-29 2009-12-31 Tse-Hong Wu Security system for code dump protection and method thereof
US8195929B2 (en) * 2009-08-27 2012-06-05 Hewlett-Packard Development Company, L.P. Controlling file systems sharing among two or more operating system
CN102194064B (zh) * 2010-03-12 2013-07-10 中国长城计算机深圳股份有限公司 一种i/o监控方法
WO2013095572A1 (en) * 2011-12-22 2013-06-27 Intel Corporation User controllable platform-level trigger to set policy for protecting platform from malware
US9916454B2 (en) 2011-12-22 2018-03-13 Intel Corporation User controllable platform-level trigger to set policy for protecting platform from malware
CN103729601B (zh) * 2012-10-11 2016-08-03 中天安泰(北京)信息技术有限公司 数据安全互联系统及数据安全互联系统建立方法
CN103905394B (zh) * 2012-12-27 2018-09-07 腾讯科技(深圳)有限公司 一种保护用户信息的方法和装置
CN103473512B (zh) * 2013-08-26 2016-06-15 北京明朝万达科技股份有限公司 一种移动存储介质管理方法和装置
CN104298918B (zh) * 2014-09-12 2018-08-21 北京云巢动脉科技有限公司 一种在虚拟机中基于数据块的病毒扫描方法和系统
KR101592782B1 (ko) * 2014-11-05 2016-02-12 플러스기술주식회사 전가상화 시스템에서 자원을 감시하는 장치 및 방법
US9578054B1 (en) * 2015-08-31 2017-02-21 Newman H-R Computer Design, LLC Hacking-resistant computer design
US9898307B2 (en) * 2015-12-21 2018-02-20 Intel Corporation Starting application processors of a virtual machine
CN107015894A (zh) * 2016-01-28 2017-08-04 胡敏 一种通用存储硬盘定位方法
CN106934281A (zh) * 2017-03-30 2017-07-07 兴华永恒(北京)科技有限责任公司 一种基于硬件虚拟化技术的虚拟机对抗技术的建立方法
TWI741271B (zh) * 2018-10-02 2021-10-01 智微科技股份有限公司 資料保護方法以及相關儲存裝置
CN111158955B (zh) * 2019-12-30 2023-08-25 南京壹进制信息科技有限公司 一种基于卷复制的高可用系统以及多服务器数据同步方法
CN111240898B (zh) * 2020-01-09 2023-08-15 中瓴智行(成都)科技有限公司 一种基于Hypervisor的黑匣子实现方法及系统
CN113792299B (zh) * 2021-11-15 2022-02-15 南京鼎岩信息科技有限公司 一种基于ftrace技术的Linux系统保护方法
CN115048681B (zh) * 2022-05-10 2024-02-20 黄建邦 数据安全保护方法、装置、目标设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1225476A (zh) * 1999-01-12 1999-08-11 李增胜 计算机硬盘数据快速保护与恢复方法
US20020023225A1 (en) * 2000-08-08 2002-02-21 Lomnes Randy Keith Method and system for automatically preserving persistent storage
CN1338751A (zh) * 2001-07-05 2002-03-06 刘海全 一种计算机硬盘数据的保护方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1225476A (zh) * 1999-01-12 1999-08-11 李增胜 计算机硬盘数据快速保护与恢复方法
US20020023225A1 (en) * 2000-08-08 2002-02-21 Lomnes Randy Keith Method and system for automatically preserving persistent storage
CN1338751A (zh) * 2001-07-05 2002-03-06 刘海全 一种计算机硬盘数据的保护方法

Also Published As

Publication number Publication date
CN101042681A (zh) 2007-09-26

Similar Documents

Publication Publication Date Title
CN100464314C (zh) 一种数据透明保护的安全写系统和方法
US7917689B2 (en) Methods and apparatuses for nonvolatile memory wear leveling
CN107092441B (zh) 虚拟盘存储技术
US11429416B2 (en) Memory deduplication based on guest page hints
US7519806B2 (en) Virtual partition for recording and restoring computer data files
CN101211289B (zh) 恢复操作管理系统和方法
US9164787B2 (en) Methods and systems for running multiple operating systems in a single mobile device
US6480919B2 (en) Method and apparatus for providing seamless hooking and intercepting of selected kernel and hal exported entry points
US20150074058A1 (en) Container-based processing method, apparatus, and system
CN100389408C (zh) 硬盘数据加密备份及还原方法
Zhang et al. Fast and scalable VMM live upgrade in large cloud infrastructure
WO2014138411A1 (en) System and method for tiered caching and storage allocation
CN105164657A (zh) 程序数据至非易失性存储器的选择性备份
CN103544090B (zh) 虚拟机进程监控方法和装置
CN106020932B (zh) 一种用于kvm虚拟机系统的安全防护方法及系统
EP0602869B1 (en) Updating processor control code
CN104598170A (zh) 确定读写路径的方法和装置
US20200073832A1 (en) Systems And Methods For Hiding Operating System Kernel Data In System Management Mode Memory To Thwart User Mode Side-Channel Attacks
US9535915B2 (en) Immediate recovery of virtual machine using deduplication device and snapshots
CN109101323A (zh) 虚拟机运行状态下基于qcow2格式的快照实现方法
CN100514305C (zh) 实现操作系统安全控制的系统及方法
US20170053118A1 (en) Changed Block Tracking Driver for Agentless Security Scans of Virtual Disks
US11210024B2 (en) Optimizing read-modify-write operations to a storage device by writing a copy of the write data to a shadow block
CN113282246A (zh) 数据处理方法及装置
CN116540929A (zh) 磁盘阵列的虚拟化读取方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20090225

Termination date: 20210323

CF01 Termination of patent right due to non-payment of annual fee