书签 分享 收藏 举报 版权申诉 / 9

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

  • 上传人:大师****2
  • 文档编号:1032925
  • 上传时间:2018-03-27
  • 格式:PDF
  • 页数:9
  • 大小:470.59KB
  • 摘要
    申请专利号:

    CN201010529695.4

    申请日:

    2010.10.29

    公开号:

    CN102063585A

    公开日:

    2011.05.18

    当前法律状态:

    驳回

    有效性:

    无权

    法律详情:

    发明专利申请公布后的驳回IPC(主分类):G06F 21/00申请公布日:20110518|||实质审查的生效IPC(主分类):G06F 21/00申请日:20101029|||公开

    IPC分类号:

    G06F21/00; G06F3/06

    主分类号:

    G06F21/00

    申请人:

    华南理工大学

    发明人:

    刘发贵; 张浩; 周海燕

    地址:

    510640 广东省广州市天河区五山路381号

    优先权:

    专利代理机构:

    广州粤高专利商标代理有限公司 44102

    代理人:

    何淑珍

    PDF完整版下载: PDF下载
    内容摘要

    本发明为一种基于Xen的安全的虚拟磁盘的访问控制方法。本发明通过研究基于Xen安全计算机的虚拟客户系统间通过虚拟磁盘来实现数据交互和它们的不足,分析Qemu虚拟磁盘模型,利用Xen虚拟机虚拟磁盘操作的原理,设计并实现了一种基于CPU的I/O指令以及动态装载磁盘的访问控制方法,以此在保证系统性能的前提下,使得虚拟磁盘访问控制更加安全可控,加强了计算机系统的数据安全性。

    权利要求书

    1: 一种基于 Xen 的安全的虚拟磁盘的访问控制方法, 包括虚拟磁盘控制系统, 数据共 享系统以及访问控制系统三个方面, 所述数据共享系统设置在 XEN 宿主系统中, 通过宿主 系统创建多个虚拟客户系统对存在于宿主系统的同一虚拟磁盘进行数据共享, 所述访问控 制系统在宿主系统和虚拟客户系统中都有部署, 其中由虚拟客户系统主动向宿主系统发起 对共享虚拟磁盘的访问控制操作的要求, 其特征在于, 所述虚拟磁盘控制系统在设备驱动 层添加控制模块, 实现对虚拟磁盘的可控操作。
    2: 根据权利要求 1 所述的虚拟磁盘的访问控制方法, 其特征在于, 所述虚拟客户系统 中存在多个虚拟磁盘设备, 包括系统运行所必须要的虚拟磁盘和其它用户数据存储和共享 的磁盘等, 对于虚拟客户系统可见的磁盘为 Domain0 宿主系统中的磁盘镜像文件, 所述数 据共享系统就通过共享虚拟磁盘来实现在各个虚拟客户系统之间进行数据共享。
    3: 根据权利要求 1 所述的虚拟磁盘的访问控制方法, 其特征在于, 能够完成虚拟客户 系统对共享的虚拟磁盘的访问控制, 所述访问控制系统分别设置全虚拟化环境下的半虚拟 驱动于虚拟客户系统与宿主系统中, 所述半虚拟驱动设置于虚拟客户系统的称为前端驱 动, 设置在宿主系统的称为后端驱动, 虚拟客户系统通过前端驱动向宿主系统发起对共享 磁盘的访问操作的请求, 宿主系统通过后端驱动接收虚拟客户系统的操作请求, 并把此请 求交给虚拟磁盘控制系统进行处理。
    4: 根据权利要求 3 所述的虚拟磁盘的访问控制方法, 其特征在于, 共享数据的访问控 制操作由虚拟磁盘控制系统实现, 所述虚拟磁盘控制系统监控各个虚拟客户系统对虚拟磁 盘的操作, 为了防止虚拟客户系统对类似机密文件进行操作等不安全行为的发生, 虚拟磁 盘控制系统在设备驱动层中添加控制模块, 根据不同安全级别将限制不同 I/O 操作权限。
    5: 根据权利要求 4 所述的虚拟磁盘的访问控制方法, 其特征在于, 所述共享数据访问 控制由共享虚拟磁盘的读写权限控制来实现。
    6: 根据权利要求 1 或 4 所述的虚拟磁盘的访问控制方法, 其特征在于, 所述的虚拟磁盘 控制模块根据不同的安全级别划分不同的 I/O 操作权限, 根据这个 I/O 操作权限, 动态转载 临时磁盘以替换存在安全隐患的磁盘, 以实现安全磁盘的访问控制。

    说明书


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

        【技术领域】
         本发明属于信息安全的访问控制领域。背景技术 Xen 直接运行在系统硬件之上, 占据处理器特权级中的 Ring 0, 各个虚拟客户系 统占据 Ring 1, 应用程序处于 Ring 3。Xen 将许多工作剥离出来, 自己本身只负责一些特 权操作。被剥离出来的工作包括创建和管理虚拟机、 管理真实硬件等, 都是由一个特权域 Domain 0 来完成, 它是整个架构的宿主系统。其他虚拟系统称为 Domain U, 它们的前端驱 动将操作请求传给 Domain 0 的后端驱动, 接着后端驱动调用设备驱动程序访问硬件完成 实际的操作。
         虚拟磁盘的主要应用领域分为两类 : 第一是在本地电脑中虚拟出一个远程电脑的 磁盘作为本地磁盘, 实际上不存在于本机上, 用于加大客户机硬盘容量, 达到通过网络共享 服务器磁盘节省硬盘容量的效果。目前的研究方向主要集中在提高系统的 I/O 性能和数据 可用性上。还有一种虚拟磁盘是在内存中划分出一块区域作为临时磁盘使用, 这样做同样 是为了提高计算机的 I/O 性能。可见当前研究重点并不在如何保证数据的安全性上。前者 依赖于网络环境, 存在着诸多如数据泄密和数据窃取等不安全因素。而虚拟机中的虚拟磁 盘主要用于为虚拟客户系统提供真实硬盘的体验, 同时可以通过非网络方式实现虚拟客户 系统之间的数据共享。与传统的 IDE 设备相比, 它具有可以实现控制读写和动态装载的优 点; 而与网络设备相比, 不受网络带宽的影响从而拥有更高的 I/O 读写速度, 同时减少数据 的可传播途径从而拥有更高的安全性。
         尽管虚拟磁盘拥有以上优势, 但仍有以下几点不足 : 由于是传统 IDE 磁盘的纯软 件模拟, 它和 IDE 磁盘一样具有无法控制读写和动态装载的缺点 ; 同时它还存在不安全的 因素, 如缺乏必要的数据检验机制, 导致共享数据的提供者可能错误地共享了机密数据。
         发明内容 针对前面技术背景中所述的虚拟磁盘在实现与应用中存在的安全隐患, 本发明研 究了 Xen 虚拟机中虚拟磁盘的实现方式和 I/O 操作请求处理原理, 设计并实现了一种基于 Xen 的安全的虚拟磁盘访问控制方法。
         为了实现发明目的, 采用的技术方案如下 :
         一种基于 Xen 的安全的虚拟磁盘的访问控制系统包括虚拟磁盘控制系统, 数据共 享系统以及访问控制系统三个方面。虚拟客户系统中存在多个虚拟磁盘设备, 包括系统运 行所必须要的虚拟磁盘和其它用户数据存储和共享的磁盘等 ; 对于虚拟客户系统可见的磁 盘存在于 Domain0 宿主系统中的磁盘镜像文件。这样, 数据共享系统就通过共享虚拟磁盘 来实现在各个虚拟客户系统之间进行数据共享。 访问控制系统在宿主系统和虚拟客户系统 中都有部署, 所述访问控制系统分别设置全虚拟化环境下的半虚拟驱动于虚拟客户系统与 设置于宿主系统的称 宿主系统中, 所述半虚拟驱动设置于虚拟客户系统的称为前端驱动,
         为后端驱动, 其中由虚拟客户系统主动向宿主系统发起对共享虚拟磁盘的访问控制操作的 要求, 虚拟磁盘控制系统在设备驱动层添加控制模块, 实现对虚拟磁盘的可控操作。 根据不 同安全级别将限制不同 I/O 操作权限。同时, 根据不同的 I/O 操作权限, 动态装载临时磁盘 以替换存在隐患的磁盘, 以实现安全的磁盘访问控制。
         上述通过共享虚拟磁盘来实现的数据共享的方法, 比传统的一些共享内存方法具 有更高的效率, 比通过网络方式实现的数据共享具有更高的安全性。
         本发明所述的虚拟磁盘的访问控制方法, 实现了各个虚拟客户系统之间通过共享 虚拟磁盘来达到共享数据的目的。访问控制系统分别部署于宿主系统与虚拟客户系统, 虚 拟客户系统通过前端驱动向宿主系统发起对共享磁盘的访问操作的请求, 宿主系统通过后 端驱动接收虚拟客户系统的操作请求, 并把此请求交给虚拟磁盘控制系统进行处理。
         所述的虚拟磁盘控制系统监控各个虚拟客户系统对虚拟磁盘的操作, 为了防止虚 拟客户系统对类似机密文件进行操作的这一类不安全行为的发生, 虚拟磁盘控制系统将在 设备驱动层中添加控制模块。另外, 所述的虚拟磁盘控制模块根据不同的安全级别划分不 同的 I/O 操作权限, 根据这个 I/O 操作权限, 动态转载临时磁盘以替换存在安全隐患的磁 盘, 以实现安全磁盘的访问控制。 基于以上的描述, 可以总结出本发明的优点如下 :
         一、 本发明所述的虚拟磁盘访问控制方法不依赖于网络上的任何方式, 所以较之 于通过网络方式进行数据共享, 有更高的安全性。
         二、 通过共享虚拟磁盘来实现数据共享, 可是实现大数据的快速共享访问, 具有更 高的效率。
         三、 通过虚拟磁盘访问控制系统在设备驱动层添加控制模块来实现磁盘的访问控 制, 安全可控性更强。
         四、 通过动态挂在磁盘来加强了虚拟磁盘访问控制的安全性。
         附图说明
         图 1 为本发明虚拟磁盘的访问控制中安全的 I/O 操作的实现结构图 ; 图 2 为本发明虚拟磁盘的访问控制中不安全的 I/O 操作的实现结构图 ; 图 3 为本发明读写控制中分析的 Qemu-dm 执行 I/O 操作的过程图 ; 图 4 为本发明动态转载中分析的虚拟磁盘信息图 ;具体实施方式
         下面结合附图对本发明的实现做进一步的说明。
         如图 1 和图 2 所示, 本发明的总体结构为 : 虚拟客户系统当中存在多个虚拟磁盘设 备, 其中除了系统运行所必须要的虚拟磁盘 VD1, 虚拟客户系统中还存在有其它用户数据存 储和共享的磁盘 VDn 等 ; 而这些对于虚拟客户系统可见的磁盘实际是存在于 Domain0 宿主 系统中的磁盘镜像文件 VD1.img 及 VDn.img 等。虚拟客户系统中 VD1 磁盘的访问被视为安 全操作, 而当用于数据存储的磁盘 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_io_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_ioreq_ pio() 获得一个 I/O 请求之后, 根据其操作类型和地址, 可以获得负责完成该 I/O 请求的处 理函数。过程如错误!未找到引用源。所示, 与虚拟磁盘对应的 I/O 请求处理函数为 ide_ ioport_write() 和 ide_ioport_read()。
         跟踪虚拟 IDE 设备的初始化过程, 可以发现 ide_init_ioport() 函数向上述两个 I/O 操作表中注册了一系列函数, 其中包括与虚拟磁盘读写对应的 ide_ioport_read() 和 ide_ioport_write()。进一步跟踪其代码可以看到, 这两个函数分别调用了 ide_sector_ read() 和 ide_sector_write() 来完成具体扇区的读写操作。 所以, 只需将检查访问权限的 代码插入到这两个函数中, 就可以实现在每次处理虚拟客户系统的 I/O 请求时对虚拟磁盘 的动态读写控制。
         如图 4 所示, 为实现动态装载, 本发明在分析虚拟磁盘信息基础上, 提出对于 存在安全隐患的磁盘, 需要撤销其任何操作权限并将此磁盘卸载, 提供一块备用磁盘替 换被卸载的磁盘, 给用户保存临时文件。在每个 qemu-dm 守护进程中, 都维护了一个 DriveInfo 类型的数组 drives_table, 它的主要作用是模拟了真实机器的设备模型, 绑定 了 BlockDriverState 结构 (bdrv)。 而 BlockDriverState 结构实际上对应的就是虚拟磁盘 镜像, 它包含了虚拟磁盘的一些信息, 如路径名 filename 等, 而我们需要的读写控制开关 变量正是设置在这里, 磁盘的动态装载则要考虑替换 BlockDriverState 结构。它还绑定了 BlockDriver 结构, 这个结构以函数指针为主, 在初始化时其函数指针指向对应磁盘格式的 处理函数 ( 如 IDE 设备 ), 其中包括了读写函数还有磁盘装载及卸载函数, 构成了一套最底 层的虚拟磁盘操作函数。如错误!未找到引用源。所示, 这样就确定了每个虚拟客户系统 对应的虚拟磁盘以及其对应的操作处理函数。因此, 虚拟磁盘的装载及卸载可以通过设置 路径名 filename 和调用相关已初始化的磁盘装载卸载函数实现。
         具体的动态装载某虚拟磁盘 ( 路径名为 file_name) 操作流程如下 :
         1. 先遍历该虚拟客户系统的 drives_table, 寻找与 file_name 相同的 filename 对应的 BlockDriverState 结构 bs ;
         2. 然后调用其 BlockDriver 结构里已注册好的 bdrv_close 函数 ( 实际上是 raw_close), 动态卸载这块虚拟磁盘 ;
         3. 接着调用 bdrv_open 函数 ( 实际上它是通过 bdrv_open2 函数而最终调用了 raw_open 函数 ) 对该 bs 结构进行一系列的封装及初始化, 使其绑定了替换磁盘的信息, 并 最终完成动态装载。

    关 键  词:
    一种 基于 XEN 安全 虚拟 磁盘 访问 控制 方法
      专利查询网所有文档均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    0条评论

    还可以输入200字符

    暂无评论,赶快抢占沙发吧。

    关于本文
    本文标题:一种基于XEN的安全的虚拟磁盘的访问控制方法.pdf
    链接地址:https://www.zhuanlichaxun.net/p-1032925.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
    经营许可证编号:粤ICP备2021068784号-1