一种基于Xen的安全的虚拟磁盘的访问控制方法

文档序号:6334947阅读:228来源:国知局

专利名称::一种基于Xen的安全的虚拟磁盘的访问控制方法
技术领域
:本发明属于信息安全的访问控制领域。
背景技术
:Xen直接运行在系统硬件之上,占据处理器特权级中的Ring0,各个虚拟客户系统占据Ring1,应用程序处于Ring3。Xen将许多工作剥离出来,自己本身只负责一些特权操作。被剥离出来的工作包括创建和管理虚拟机、管理真实硬件等,都是由一个特权域Domain0来完成,它是整个架构的宿主系统。其他虚拟系统称为DomainU,它们的前端驱动将操作请求传给Domain0的后端驱动,接着后端驱动调用设备驱动程序访问硬件完成实际的操作。虚拟磁盘的主要应用领域分为两类第一是在本地电脑中虚拟出一个远程电脑的磁盘作为本地磁盘,实际上不存在于本机上,用于加大客户机硬盘容量,达到通过网络共享服务器磁盘节省硬盘容量的效果。目前的研究方向主要集中在提高系统的I/O性能和数据可用性上。还有一种虚拟磁盘是在内存中划分出一块区域作为临时磁盘使用,这样做同样是为了提高计算机的I/O性能。可见当前研究重点并不在如何保证数据的安全性上。前者依赖于网络环境,存在着诸多如数据泄密和数据窃取等不安全因素。而虚拟机中的虚拟磁盘主要用于为虚拟客户系统提供真实硬盘的体验,同时可以通过非网络方式实现虚拟客户系统之间的数据共享。与传统的IDE设备相比,它具有可以实现控制读写和动态装载的优点;而与网络设备相比,不受网络带宽的影响从而拥有更高的I/O读写速度,同时减少数据的可传播途径从而拥有更高的安全性。尽管虚拟磁盘拥有以上优势,但仍有以下几点不足由于是传统IDE磁盘的纯软件模拟,它和IDE磁盘一样具有无法控制读写和动态装载的缺点;同时它还存在不安全的因素,如缺乏必要的数据检验机制,导致共享数据的提供者可能错误地共享了机密数据。
发明内容针对前面技术背景中所述的虚拟磁盘在实现与应用中存在的安全隐患,本发明研究了Xen虚拟机中虚拟磁盘的实现方式和I/O操作请求处理原理,设计并实现了一种基于Xen的安全的虚拟磁盘访问控制方法。为了实现发明目的,采用的技术方案如下一种基于Xen的安全的虚拟磁盘的访问控制系统包括虚拟磁盘控制系统,数据共享系统以及访问控制系统三个方面。虚拟客户系统中存在多个虚拟磁盘设备,包括系统运行所必须要的虚拟磁盘和其它用户数据存储和共享的磁盘等;对于虚拟客户系统可见的磁盘存在于DomainO宿主系统中的磁盘镜像文件。这样,数据共享系统就通过共享虚拟磁盘来实现在各个虚拟客户系统之间进行数据共享。访问控制系统在宿主系统和虚拟客户系统中都有部署,所述访问控制系统分别设置全虚拟化环境下的半虚拟驱动于虚拟客户系统与宿主系统中,所述半虚拟驱动设置于虚拟客户系统的称为前端驱动,设置于宿主系统的称为后端驱动,其中由虚拟客户系统主动向宿主系统发起对共享虚拟磁盘的访问控制操作的要求,虚拟磁盘控制系统在设备驱动层添加控制模块,实现对虚拟磁盘的可控操作。根据不同安全级别将限制不同I/O操作权限。同时,根据不同的I/O操作权限,动态装载临时磁盘以替换存在隐患的磁盘,以实现安全的磁盘访问控制。上述通过共享虚拟磁盘来实现的数据共享的方法,比传统的一些共享内存方法具有更高的效率,比通过网络方式实现的数据共享具有更高的安全性。本发明所述的虚拟磁盘的访问控制方法,实现了各个虚拟客户系统之间通过共享虚拟磁盘来达到共享数据的目的。访问控制系统分别部署于宿主系统与虚拟客户系统,虚拟客户系统通过前端驱动向宿主系统发起对共享磁盘的访问操作的请求,宿主系统通过后端驱动接收虚拟客户系统的操作请求,并把此请求交给虚拟磁盘控制系统进行处理。所述的虚拟磁盘控制系统监控各个虚拟客户系统对虚拟磁盘的操作,为了防止虚拟客户系统对类似机密文件进行操作的这一类不安全行为的发生,虚拟磁盘控制系统将在设备驱动层中添加控制模块。另外,所述的虚拟磁盘控制模块根据不同的安全级别划分不同的I/O操作权限,根据这个I/O操作权限,动态转载临时磁盘以替换存在安全隐患的磁盘,以实现安全磁盘的访问控制。基于以上的描述,可以总结出本发明的优点如下一、本发明所述的虚拟磁盘访问控制方法不依赖于网络上的任何方式,所以较之于通过网络方式进行数据共享,有更高的安全性。二、通过共享虚拟磁盘来实现数据共享,可是实现大数据的快速共享访问,具有更高的效率。三、通过虚拟磁盘访问控制系统在设备驱动层添加控制模块来实现磁盘的访问控制,安全可控性更强。四、通过动态挂在磁盘来加强了虚拟磁盘访问控制的安全性。图1为本发明虚拟磁盘的访问控制中安全的I/O操作的实现结构图;图2为本发明虚拟磁盘的访问控制中不安全的I/O操作的实现结构图;图3为本发明读写控制中分析的Qemu-dm执行I/O操作的过程图;图4为本发明动态转载中分析的虚拟磁盘信息具体实施例方式下面结合附图对本发明的实现做进一步的说明。如图1和图2所示,本发明的总体结构为虚拟客户系统当中存在多个虚拟磁盘设备,其中除了系统运行所必须要的虚拟磁盘VD1,虚拟客户系统中还存在有其它用户数据存储和共享的磁盘VDn等;而这些对于虚拟客户系统可见的磁盘实际是存在于DomainO宿主系统中的磁盘镜像文件VDl.img及VDn.img等。虚拟客户系统中VDl磁盘的访问被视为安全操作,而当用于数据存储的磁盘VDn中保存有机密文件的时候,此时对该磁盘的任何读写操作将视为不安全的。虚拟客户系统中的I/O操作具体实现都是由Qemu-dm中的虚拟磁盘设备的相应驱动程序来实现。本发明考虑虚拟磁盘存在多种不同格式的驱动,提出在设备驱动层添加控制模块,实现对虚拟磁盘的可控操作。根据不同安全级别将限制不同I/O操作权限。同时,根据不同的I/O操作权限,动态装载临时磁盘以替换存在隐患的磁盘,以实现安全的磁盘访问控制。如图3所示,本发明分析了在读写控制中Qemu-dm执行I/O操作的过程。在全虚拟客户系统中,对磁盘的操作实际上是通过CPU的IN和OUT指令来完成的,指令中的地址就是IDE协议中规定的I/O映射地址。如果直接执行虚拟客户系统的这些I/O指令,将会操作到物理磁盘。所以Xen的Hypervisor借助CPU的硬件虚拟化技术捕获了I/O指令,并将其封装成一种I/O请求结构buf_ioreq_t,然后放入缓存队列buffered_i0_page中。在Qemu-dm的主循环函数main_loop()中,有一个handle_buffered_io()函数负责软件模拟处理buffered_io_page队列中缓存的I/O操作。该函数从buffered_io_page中依次取出I/O请求,然后往下逐层分发处理。最终,由CPU产生的I/O请求将会由CpU_ioreq_pio()来处理。若为虚拟磁盘的读请求,则调用ioport_read;若为写请求,则调用ioport_Write。Qemu-dm中维护了两个I/O操作表,ioport_read_table禾口ioport_write_table,来分别负责处理读和写操作,表的元素是函数指针,而索引值则是I/O端口的地址。Cpu_i0req_PioO获得一个I/O请求之后,根据其操作类型和地址,可以获得负责完成该I/O请求的处理函数。过程如错误!未找到引用源。所示,与虚拟磁盘对应的I/O请求处理函数为ide_ioport_write()禾口ide_ioport_read()。跟踪虚拟IDE设备的初始化过程,可以发现idejnitjoport()函数向上述两个I/O操作表中注册了一系列函数,其中包括与虚拟磁盘读写对应的ide_i0p0rt_read()和ide_ioport_write()。进一步跟踪其代码可以看到,这两个函数分别调用了ide_sector_read()和ide_SeCt0r_Write()来完成具体扇区的读写操作。所以,只需将检查访问权限的代码插入到这两个函数中,就可以实现在每次处理虚拟客户系统的I/O请求时对虚拟磁盘的动态读写控制。如图4所示,为实现动态装载,本发明在分析虚拟磁盘信息基础上,提出对于存在安全隐患的磁盘,需要撤销其任何操作权限并将此磁盘卸载,提供一块备用磁盘替换被卸载的磁盘,给用户保存临时文件。在每个qemu-dm守护进程中,都维护了一个DriveInfo类型的数组drivesjable,它的主要作用是模拟了真实机器的设备模型,绑定了BlockDriverState结构(bdrv)。而BlockDriverState结构实际上对应的就是虚拟磁盘镜像,它包含了虚拟磁盘的一些信息,如路径名filename等,而我们需要的读写控制开关变量正是设置在这里,磁盘的动态装载则要考虑替换BlockDriverState结构。它还绑定了BlockDriver结构,这个结构以函数指针为主,在初始化时其函数指针指向对应磁盘格式的处理函数(如IDE设备),其中包括了读写函数还有磁盘装载及卸载函数,构成了一套最底层的虚拟磁盘操作函数。如错误!未找到引用源。所示,这样就确定了每个虚拟客户系统对应的虚拟磁盘以及其对应的操作处理函数。因此,虚拟磁盘的装载及卸载可以通过设置路径名filename和调用相关已初始化的磁盘装载卸载函数实现。具体的动态装载某虚拟磁盘(路径名为filename)操作流程如下1.先遍历该虚拟客户系统的drives_table,寻找与file_name相同的filename对应的BlockDriverState结构bs;2.然后调用其BlockDriver结构里已注册好的bdrv_cl0Se函数(实际上是raw_close),动态卸载这块虚拟磁盘;3.接着调用bdrv_open函数(实际上它是通过bdrv_open2函数而最终调用了raw_open函数)对该bs结构进行一系列的封装及初始化,使其绑定了替换磁盘的信息,并最终完成动态装载。权利要求1.一种基于Xen的安全的虚拟磁盘的访问控制方法,包括虚拟磁盘控制系统,数据共享系统以及访问控制系统三个方面,所述数据共享系统设置在XEN宿主系统中,通过宿主系统创建多个虚拟客户系统对存在于宿主系统的同一虚拟磁盘进行数据共享,所述访问控制系统在宿主系统和虚拟客户系统中都有部署,其中由虚拟客户系统主动向宿主系统发起对共享虚拟磁盘的访问控制操作的要求,其特征在于,所述虚拟磁盘控制系统在设备驱动层添加控制模块,实现对虚拟磁盘的可控操作。2.根据权利要求1所述的虚拟磁盘的访问控制方法,其特征在于,所述虚拟客户系统中存在多个虚拟磁盘设备,包括系统运行所必须要的虚拟磁盘和其它用户数据存储和共享的磁盘等,对于虚拟客户系统可见的磁盘为DomainO宿主系统中的磁盘镜像文件,所述数据共享系统就通过共享虚拟磁盘来实现在各个虚拟客户系统之间进行数据共享。3.根据权利要求1所述的虚拟磁盘的访问控制方法,其特征在于,能够完成虚拟客户系统对共享的虚拟磁盘的访问控制,所述访问控制系统分别设置全虚拟化环境下的半虚拟驱动于虚拟客户系统与宿主系统中,所述半虚拟驱动设置于虚拟客户系统的称为前端驱动,设置在宿主系统的称为后端驱动,虚拟客户系统通过前端驱动向宿主系统发起对共享磁盘的访问操作的请求,宿主系统通过后端驱动接收虚拟客户系统的操作请求,并把此请求交给虚拟磁盘控制系统进行处理。4.根据权利要求3所述的虚拟磁盘的访问控制方法,其特征在于,共享数据的访问控制操作由虚拟磁盘控制系统实现,所述虚拟磁盘控制系统监控各个虚拟客户系统对虚拟磁盘的操作,为了防止虚拟客户系统对类似机密文件进行操作等不安全行为的发生,虚拟磁盘控制系统在设备驱动层中添加控制模块,根据不同安全级别将限制不同I/O操作权限。5.根据权利要求4所述的虚拟磁盘的访问控制方法,其特征在于,所述共享数据访问控制由共享虚拟磁盘的读写权限控制来实现。6.根据权利要求1或4所述的虚拟磁盘的访问控制方法,其特征在于,所述的虚拟磁盘控制模块根据不同的安全级别划分不同的I/O操作权限,根据这个I/O操作权限,动态转载临时磁盘以替换存在安全隐患的磁盘,以实现安全磁盘的访问控制。全文摘要本发明为一种基于Xen的安全的虚拟磁盘的访问控制方法。本发明通过研究基于Xen安全计算机的虚拟客户系统间通过虚拟磁盘来实现数据交互和它们的不足,分析Qemu虚拟磁盘模型,利用Xen虚拟机虚拟磁盘操作的原理,设计并实现了一种基于CPU的I/O指令以及动态装载磁盘的访问控制方法,以此在保证系统性能的前提下,使得虚拟磁盘访问控制更加安全可控,加强了计算机系统的数据安全性。文档编号G06F21/00GK102063585SQ20101052969公开日2011年5月18日申请日期2010年10月29日优先权日2010年10月29日发明者刘发贵,周海燕,张浩申请人:华南理工大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1