《一种基于XEN的安全的虚拟磁盘的访问控制方法.pdf》由会员分享,可在线阅读,更多相关《一种基于XEN的安全的虚拟磁盘的访问控制方法.pdf(9页完整版)》请在专利查询网上搜索。
1、10申请公布号CN102063585A43申请公布日20110518CN102063585ACN102063585A21申请号201010529695422申请日20101029G06F21/00200601G06F3/0620060171申请人华南理工大学地址510640广东省广州市天河区五山路381号72发明人刘发贵张浩周海燕74专利代理机构广州粤高专利商标代理有限公司44102代理人何淑珍54发明名称一种基于XEN的安全的虚拟磁盘的访问控制方法57摘要本发明为一种基于XEN的安全的虚拟磁盘的访问控制方法。本发明通过研究基于XEN安全计算机的虚拟客户系统间通过虚拟磁盘来实现数据交互和它们的。
2、不足,分析QEMU虚拟磁盘模型,利用XEN虚拟机虚拟磁盘操作的原理,设计并实现了一种基于CPU的I/O指令以及动态装载磁盘的访问控制方法,以此在保证系统性能的前提下,使得虚拟磁盘访问控制更加安全可控,加强了计算机系统的数据安全性。51INTCL19中华人民共和国国家知识产权局12发明专利申请权利要求书1页说明书4页附图3页CN102063595A1/1页21一种基于XEN的安全的虚拟磁盘的访问控制方法,包括虚拟磁盘控制系统,数据共享系统以及访问控制系统三个方面,所述数据共享系统设置在XEN宿主系统中,通过宿主系统创建多个虚拟客户系统对存在于宿主系统的同一虚拟磁盘进行数据共享,所述访问控制系统在。
3、宿主系统和虚拟客户系统中都有部署,其中由虚拟客户系统主动向宿主系统发起对共享虚拟磁盘的访问控制操作的要求,其特征在于,所述虚拟磁盘控制系统在设备驱动层添加控制模块,实现对虚拟磁盘的可控操作。2根据权利要求1所述的虚拟磁盘的访问控制方法,其特征在于,所述虚拟客户系统中存在多个虚拟磁盘设备,包括系统运行所必须要的虚拟磁盘和其它用户数据存储和共享的磁盘等,对于虚拟客户系统可见的磁盘为DOMAIN0宿主系统中的磁盘镜像文件,所述数据共享系统就通过共享虚拟磁盘来实现在各个虚拟客户系统之间进行数据共享。3根据权利要求1所述的虚拟磁盘的访问控制方法,其特征在于,能够完成虚拟客户系统对共享的虚拟磁盘的访问控制。
4、,所述访问控制系统分别设置全虚拟化环境下的半虚拟驱动于虚拟客户系统与宿主系统中,所述半虚拟驱动设置于虚拟客户系统的称为前端驱动,设置在宿主系统的称为后端驱动,虚拟客户系统通过前端驱动向宿主系统发起对共享磁盘的访问操作的请求,宿主系统通过后端驱动接收虚拟客户系统的操作请求,并把此请求交给虚拟磁盘控制系统进行处理。4根据权利要求3所述的虚拟磁盘的访问控制方法,其特征在于,共享数据的访问控制操作由虚拟磁盘控制系统实现,所述虚拟磁盘控制系统监控各个虚拟客户系统对虚拟磁盘的操作,为了防止虚拟客户系统对类似机密文件进行操作等不安全行为的发生,虚拟磁盘控制系统在设备驱动层中添加控制模块,根据不同安全级别将限。
5、制不同I/O操作权限。5根据权利要求4所述的虚拟磁盘的访问控制方法,其特征在于,所述共享数据访问控制由共享虚拟磁盘的读写权限控制来实现。6根据权利要求1或4所述的虚拟磁盘的访问控制方法,其特征在于,所述的虚拟磁盘控制模块根据不同的安全级别划分不同的I/O操作权限,根据这个I/O操作权限,动态转载临时磁盘以替换存在安全隐患的磁盘,以实现安全磁盘的访问控制。权利要求书CN102063585ACN102063595A1/4页3一种基于XEN的安全的虚拟磁盘的访问控制方法技术领域0001本发明属于信息安全的访问控制领域。背景技术0002XEN直接运行在系统硬件之上,占据处理器特权级中的RING0,各个。
6、虚拟客户系统占据RING1,应用程序处于RING3。XEN将许多工作剥离出来,自己本身只负责一些特权操作。被剥离出来的工作包括创建和管理虚拟机、管理真实硬件等,都是由一个特权域DOMAIN0来完成,它是整个架构的宿主系统。其他虚拟系统称为DOMAINU,它们的前端驱动将操作请求传给DOMAIN0的后端驱动,接着后端驱动调用设备驱动程序访问硬件完成实际的操作。0003虚拟磁盘的主要应用领域分为两类第一是在本地电脑中虚拟出一个远程电脑的磁盘作为本地磁盘,实际上不存在于本机上,用于加大客户机硬盘容量,达到通过网络共享服务器磁盘节省硬盘容量的效果。目前的研究方向主要集中在提高系统的I/O性能和数据可用。
7、性上。还有一种虚拟磁盘是在内存中划分出一块区域作为临时磁盘使用,这样做同样是为了提高计算机的I/O性能。可见当前研究重点并不在如何保证数据的安全性上。前者依赖于网络环境,存在着诸多如数据泄密和数据窃取等不安全因素。而虚拟机中的虚拟磁盘主要用于为虚拟客户系统提供真实硬盘的体验,同时可以通过非网络方式实现虚拟客户系统之间的数据共享。与传统的IDE设备相比,它具有可以实现控制读写和动态装载的优点;而与网络设备相比,不受网络带宽的影响从而拥有更高的I/O读写速度,同时减少数据的可传播途径从而拥有更高的安全性。0004尽管虚拟磁盘拥有以上优势,但仍有以下几点不足由于是传统IDE磁盘的纯软件模拟,它和ID。
8、E磁盘一样具有无法控制读写和动态装载的缺点;同时它还存在不安全的因素,如缺乏必要的数据检验机制,导致共享数据的提供者可能错误地共享了机密数据。发明内容0005针对前面技术背景中所述的虚拟磁盘在实现与应用中存在的安全隐患,本发明研究了XEN虚拟机中虚拟磁盘的实现方式和I/O操作请求处理原理,设计并实现了一种基于XEN的安全的虚拟磁盘访问控制方法。0006为了实现发明目的,采用的技术方案如下0007一种基于XEN的安全的虚拟磁盘的访问控制系统包括虚拟磁盘控制系统,数据共享系统以及访问控制系统三个方面。虚拟客户系统中存在多个虚拟磁盘设备,包括系统运行所必须要的虚拟磁盘和其它用户数据存储和共享的磁盘等。
9、;对于虚拟客户系统可见的磁盘存在于DOMAIN0宿主系统中的磁盘镜像文件。这样,数据共享系统就通过共享虚拟磁盘来实现在各个虚拟客户系统之间进行数据共享。访问控制系统在宿主系统和虚拟客户系统中都有部署,所述访问控制系统分别设置全虚拟化环境下的半虚拟驱动于虚拟客户系统与宿主系统中,所述半虚拟驱动设置于虚拟客户系统的称为前端驱动,设置于宿主系统的称说明书CN102063585ACN102063595A2/4页4为后端驱动,其中由虚拟客户系统主动向宿主系统发起对共享虚拟磁盘的访问控制操作的要求,虚拟磁盘控制系统在设备驱动层添加控制模块,实现对虚拟磁盘的可控操作。根据不同安全级别将限制不同I/O操作权限。
10、。同时,根据不同的I/O操作权限,动态装载临时磁盘以替换存在隐患的磁盘,以实现安全的磁盘访问控制。0008上述通过共享虚拟磁盘来实现的数据共享的方法,比传统的一些共享内存方法具有更高的效率,比通过网络方式实现的数据共享具有更高的安全性。0009本发明所述的虚拟磁盘的访问控制方法,实现了各个虚拟客户系统之间通过共享虚拟磁盘来达到共享数据的目的。访问控制系统分别部署于宿主系统与虚拟客户系统,虚拟客户系统通过前端驱动向宿主系统发起对共享磁盘的访问操作的请求,宿主系统通过后端驱动接收虚拟客户系统的操作请求,并把此请求交给虚拟磁盘控制系统进行处理。0010所述的虚拟磁盘控制系统监控各个虚拟客户系统对虚拟。
11、磁盘的操作,为了防止虚拟客户系统对类似机密文件进行操作的这一类不安全行为的发生,虚拟磁盘控制系统将在设备驱动层中添加控制模块。另外,所述的虚拟磁盘控制模块根据不同的安全级别划分不同的I/O操作权限,根据这个I/O操作权限,动态转载临时磁盘以替换存在安全隐患的磁盘,以实现安全磁盘的访问控制。0011基于以上的描述,可以总结出本发明的优点如下0012一、本发明所述的虚拟磁盘访问控制方法不依赖于网络上的任何方式,所以较之于通过网络方式进行数据共享,有更高的安全性。0013二、通过共享虚拟磁盘来实现数据共享,可是实现大数据的快速共享访问,具有更高的效率。0014三、通过虚拟磁盘访问控制系统在设备驱动层。
12、添加控制模块来实现磁盘的访问控制,安全可控性更强。0015四、通过动态挂在磁盘来加强了虚拟磁盘访问控制的安全性。附图说明0016图1为本发明虚拟磁盘的访问控制中安全的I/O操作的实现结构图;0017图2为本发明虚拟磁盘的访问控制中不安全的I/O操作的实现结构图;0018图3为本发明读写控制中分析的QEMUDM执行I/O操作的过程图;0019图4为本发明动态转载中分析的虚拟磁盘信息图;具体实施方式0020下面结合附图对本发明的实现做进一步的说明。0021如图1和图2所示,本发明的总体结构为虚拟客户系统当中存在多个虚拟磁盘设备,其中除了系统运行所必须要的虚拟磁盘VD1,虚拟客户系统中还存在有其它用。
13、户数据存储和共享的磁盘VDN等;而这些对于虚拟客户系统可见的磁盘实际是存在于DOMAIN0宿主系统中的磁盘镜像文件VD1IMG及VDNIMG等。虚拟客户系统中VD1磁盘的访问被视为安全操作,而当用于数据存储的磁盘VDN中保存有机密文件的时候,此时对该磁盘的任何读写操作将视为不安全的。虚拟客户系统中的I/O操作具体实现都是由QEMUDM中的虚拟磁盘设备的相应驱动程序来实现。本发明考虑虚拟磁盘存在多种不同格式的驱动,提出在设说明书CN102063585ACN102063595A3/4页5备驱动层添加控制模块,实现对虚拟磁盘的可控操作。根据不同安全级别将限制不同I/O操作权限。同时,根据不同的I/O。
14、操作权限,动态装载临时磁盘以替换存在隐患的磁盘,以实现安全的磁盘访问控制。0022如图3所示,本发明分析了在读写控制中QEMUDM执行I/O操作的过程。在全虚拟客户系统中,对磁盘的操作实际上是通过CPU的IN和OUT指令来完成的,指令中的地址就是IDE协议中规定的I/O映射地址。如果直接执行虚拟客户系统的这些I/O指令,将会操作到物理磁盘。所以XEN的HYPERVISOR借助CPU的硬件虚拟化技术捕获了I/O指令,并将其封装成一种I/O请求结构BUF_IOREQ_T,然后放入缓存队列BUFFERED_IO_PAGE中。在QEMUDM的主循环函数MAIN_LOOP中,有一个HANDLE_BUFF。
15、ERED_IO函数负责软件模拟处理BUFFERED_IO_PAGE队列中缓存的I/O操作。该函数从BUFFERED_IO_PAGE中依次取出I/O请求,然后往下逐层分发处理。最终,由CPU产生的I/O请求将会由CPU_IOREQ_PIO来处理。若为虚拟磁盘的读请求,则调用IOPORT_READ;若为写请求,则调用IOPORT_WRITE。QEMUDM中维护了两个I/O操作表,IOPORT_READ_TABLE和IOPORT_WRITE_TABLE,来分别负责处理读和写操作,表的元素是函数指针,而索引值则是I/O端口的地址。CPU_IOREQ_PIO获得一个I/O请求之后,根据其操作类型和地址,。
16、可以获得负责完成该I/O请求的处理函数。过程如错误未找到引用源。所示,与虚拟磁盘对应的I/O请求处理函数为IDE_IOPORT_WRITE和IDE_IOPORT_READ。0023跟踪虚拟IDE设备的初始化过程,可以发现IDE_INIT_IOPORT函数向上述两个I/O操作表中注册了一系列函数,其中包括与虚拟磁盘读写对应的IDE_IOPORT_READ和IDE_IOPORT_WRITE。进一步跟踪其代码可以看到,这两个函数分别调用了IDE_SECTOR_READ和IDE_SECTOR_WRITE来完成具体扇区的读写操作。所以,只需将检查访问权限的代码插入到这两个函数中,就可以实现在每次处理虚拟。
17、客户系统的I/O请求时对虚拟磁盘的动态读写控制。0024如图4所示,为实现动态装载,本发明在分析虚拟磁盘信息基础上,提出对于存在安全隐患的磁盘,需要撤销其任何操作权限并将此磁盘卸载,提供一块备用磁盘替换被卸载的磁盘,给用户保存临时文件。在每个QEMUDM守护进程中,都维护了一个DRIVEINFO类型的数组DRIVES_TABLE,它的主要作用是模拟了真实机器的设备模型,绑定了BLOCKDRIVERSTATE结构BDRV。而BLOCKDRIVERSTATE结构实际上对应的就是虚拟磁盘镜像,它包含了虚拟磁盘的一些信息,如路径名FILENAME等,而我们需要的读写控制开关变量正是设置在这里,磁盘的动。
18、态装载则要考虑替换BLOCKDRIVERSTATE结构。它还绑定了BLOCKDRIVER结构,这个结构以函数指针为主,在初始化时其函数指针指向对应磁盘格式的处理函数如IDE设备,其中包括了读写函数还有磁盘装载及卸载函数,构成了一套最底层的虚拟磁盘操作函数。如错误未找到引用源。所示,这样就确定了每个虚拟客户系统对应的虚拟磁盘以及其对应的操作处理函数。因此,虚拟磁盘的装载及卸载可以通过设置路径名FILENAME和调用相关已初始化的磁盘装载卸载函数实现。0025具体的动态装载某虚拟磁盘路径名为FILE_NAME操作流程如下00261先遍历该虚拟客户系统的DRIVES_TABLE,寻找与FILE_NA。
19、ME相同的FILENAME对应的BLOCKDRIVERSTATE结构BS;00272然后调用其BLOCKDRIVER结构里已注册好的BDRV_CLOSE函数实际上是RAW_说明书CN102063585ACN102063595A4/4页6CLOSE,动态卸载这块虚拟磁盘;00283接着调用BDRV_OPEN函数实际上它是通过BDRV_OPEN2函数而最终调用了RAW_OPEN函数对该BS结构进行一系列的封装及初始化,使其绑定了替换磁盘的信息,并最终完成动态装载。说明书CN102063585ACN102063595A1/3页7图1说明书附图CN102063585ACN102063595A2/3页8图2说明书附图CN102063585ACN102063595A3/3页9图3图4说明书附图CN102063585A。