用于Hypervisor多域架构的加密通信方法及系统与流程

文档序号:20578378发布日期:2020-04-29 01:18阅读:256来源:国知局
本申请涉及电数字数据处理领域,尤其涉及用于hypervisor多域架构的加密通信方法及系统。
背景技术
::随着互联网技术的发展,手机等智能移动终端已经开始参与并影响着人们生活和工作的各个方面。手机等智能移动终端存储着用户越来越多的重要个人数据(包括银行账户密码及个人隐私如图片视频),使得移动终端的数据存储需要更加有效、更加安全的加解密方案来解决个人的数据存储的安全问题。目前,针对移动端的数据安全保护,存在几种安全方案,例如trustzone技术、se安全芯片以及一些透明的文件加解密技术。trustzone是arm针对电子设备设计的一种硬件架构,在概念上将硬件和软件资源划分为安全和非安全两个世界,所有需要保密的操作在安全世界执行,其余操作在非安全世界执行,安全世界和非安全世界通过一个名为monitormode的模式进行转换。trustzone以这样的机制完成对移动端数据安全的保护。se(secureelement)为安全模块,是一台微型计算机,通过安全芯片和芯片操作系统(cos)实现密钥的安全存储、数据加密运算和信息的安全存放。秘钥的安全存储可建立相对完善的密钥管理体系,保证秘钥不可被读取。se芯片应用于各种终端产品中时,被封装成各类嵌入式模块,内置于终端产品的硬件层。hypervisor是一种运行在物理服务器和操作系统之间的中间软件层,可允许多个操作系统和应用共享一套基础物理硬件,因此也可以看作是虚拟环境中的“元”操作系统,它可以协调访问服务器上的所有物理设备和虚拟机,也叫虚拟机监视器(virtualmachinemonitor)。hypervisor是所有虚拟化技术的核心。非中断地支持多工作负载迁移的能力是hypervisor的基本功能。当服务器启动并执行hypervisor时,它会给每一台虚拟机分配适量的内存、cpu、网络和磁盘,并加载所有虚拟机的客户操作系统。虚拟机的虚拟化技术可分为两大类:半虚拟化和完全虚拟化。半虚拟化技术允许虚拟机操作系统感知到自己运行在hypervisor上,也能识别出其他运行在相同环境中的客户虚拟机。虚拟机之间可以通过前后端驱动分离的方式实现通信,前端驱动负责发送本虚拟机中的请求,后端驱动负责对请求的接收和响应。然而,trustzone存在的问题在于其机制内的安全世界类似于黑盒,其中具体的安全防护措施的运作方式并不可知,而且trustzone只给特定的应用使用,灵活性差不足以完全信任。而se芯片虽然安全性高,但是效率低下、处理能力有限,无法针对每一次的读写请求进行加解密。中国专利申请cn102034046a公开了一种云计算环境中基于磁盘驱动的数据底层加密方法。包括步骤:(1)前端驱动利用授权表把内存空间中分配的页面授予后端驱动所在的设备虚拟机;(2)前端对缓冲区中的数据进行加密;(3)把对该磁盘的写请求放入一个和后端驱动共享的环形缓冲区中,并通过事件通道通知后端驱动;(4)后端驱动被唤醒后,读取共享缓冲区中的写磁盘请求,把对应授权表中授权的页面映射到自己的内存空间里,生成一个真正的磁盘访问请求;(5)磁盘写请求完成后,后端驱动释放该映射,在共享缓冲区中放入一个应答,同时通过事件通道唤醒前端驱动。然而,在前端对缓冲区中的数据进行加密,将加密模块置于用户虚拟机内,不能达到对用户透明加解密的效果,在用户虚拟机被入侵时,加解密模块也会暴露,安全性不够高。技术实现要素:为了克服现有技术中存在的不足,本发明要解决的技术问题是提供一种用于hypervisor多域架构的加密通信方法及系统,其不依赖于上层具体的操作系统以及底层的硬件设备,可移植性更强,灵活性高,加密权级更高因而更安全。为解决上述技术问题,根据本发明的第一方面,提供一种用于hypervisor多域架构的加密通信方法,其中hypervisor多域架构包括特权域和普通域,特权域具有直接访问底层硬件以及文件系统的权限,普通域的前端驱动与特权域的后端驱动之间经事件通道、i/o共享环和授权表进行通信,事件通道用于域间异步事件通知,i/o共享环用于在域间传递i/o请求和响应,授权表用于在域间传输i/o数据,所述方法包括:在i/o数据被发送到授权表时用设置于授权表中的加解密模块对i/o数据进行处理后,经由授权表转发至文件系统中存储,其中所述加解密模块用于:-确定相应i/o请求是写请求还是读请求;-响应于相应i/o请求为写请求,对i/o数据进行加密;及-响应于相应i/o请求为读请求,对i/o数据进行解密。作为本发明所述方法的改进,所述方法还包括:在普通域发起i/o请求时由前端驱动将i/o请求发送给i/o共享环存储;响应于i/o请求为写请求,前端驱动将i/o数据发送给授权表;前端驱动将i/o事件发送给事件通道;后端驱动从事件通道中读取i/o事件;后端驱动从i/o共享环中读取i/o请求;后端驱动从授权表读取i/o数据;后端驱动根据i/o请求调用底层真实硬件驱动进行处理;后端驱动将处理完成的事件返回给事件通道;普通域从事件通道中读取请求处理完成的事件通知。作为本发明所述方法的另一种改进,所述方法还包括:响应于i/o请求为读请求,只发送请求和读文件的相关信息;后端驱动将对应于读请求的i/o数据发送到授权表;前端驱动从授权表中读取i/o数据。作为本发明所述方法的又一种改进,所述加解密模块采用对称加密算法对i/o数据进行加密。为解决上述技术问题,根据本发明的第二方面,提供一种用于hypervisor多域架构的加密通信系统,其中hypervisor多域架构包括特权域和普通域,特权域具有直接访问底层硬件以及文件系统的权限,普通域的前端驱动与特权域的后端驱动之间经事件通道、i/o共享环和授权表进行通信,事件通道用于域间异步事件通知,i/o共享环用于在域间传递i/o请求和响应,授权表用于在域间传输i/o数据,所述系统包括:设置于授权表中的加解密模块,用于在i/o数据被发送到授权表时对i/o数据进行处理后,经由授权表转发至文件系统中存储,其中所述加解密模块包括:-确定子模块,用于确定相应i/o请求是写请求还是读请求;-加密子模块,用于响应于相应i/o请求为写请求,对i/o数据进行加密;及-解密子模块,用于响应于相应i/o请求为读请求,对i/o数据进行解密。为解决上述技术问题,根据本发明的第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现本发明的用于hypervisor多域架构的加密通信方法的步骤。为解决上述技术问题,根据本发明的第四方面,提供一种计算机设备,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其中所述处理器执行所述计算机程序时实现本发明的用于hypervisor多域架构的加密通信方法的步骤。本发明采用基于hypervisor架构的多域技术,利用虚拟环境下多域之间的通信机制,将加密模块置于域间通信过程中,在普通域的文件读写与存储操作都需要经过域间通信渠道交由特权域处理,继而到达底层文件系统,在进行域间通信时,完成文件的加解密操作,将读操作涉及的内容进行解密,将写操作涉及的内容进行加密,达到用户无感知的情况下,文件的透明加解密(用户域读写文件时对加解密过程不可见),既保证了安全性,又提升了用户体验,同时也一定程度上保证了虚拟机内部的精简性。将加密模块置于域间通信过程中,独立在用户虚拟机之外,对用户虚拟机透明,加密模块权级更高,不可绕过,安全性更高。本发明考虑了用户的使用体验,尽可能在用户无感知的情况下,根据文件读写操作分别进行加密和解密。相比trustzone的黑盒机制,本发明中的加解密模块对开发者可见,可信任性更高,并且适用于所有应用,灵活性高。相比于se芯片,置于域间通信过程中的加密模块对使用的业务域不可见,对软件层的保护性更强,同时无需将请求陷入芯片层处理,效率更高,处理能力更强。而加密模块置于域间通信过程,不在操作系统中也不在硬件层,相比于将加密模块置于hypervisor层的驱动级加密来说,加密模块不依赖于上层具体的操作系统以及底层的硬件设备,可移植性更强,具备高灵活性。同时,对于移动终端中的存储卡同样可以实现文件内容的加解密保护,在移动终端场景中完成加密后的文件内容存储在存储卡中,若将存储卡拔出,在其他环境下读取,只能看到密文,对存储卡内容实现了保护。结合附图阅读本发明实施方式的详细描述后,本发明的其它特点和优点将变得更加清楚。附图说明图1为hypervisor多域域间通信架构的示意图;图2为根据本发明方法的一实施例的流程图;图3为根据本发明系统的一实施例的框图。为清晰起见,这些附图均为示意性及简化的图,它们只给出了对于理解本发明所必要的细节,而省略其他细节。具体实施方式下面参照附图对本发明的实施方式和实施例进行详细说明。通过下面给出的详细描述,本发明的适用范围将显而易见。然而,应当理解,在详细描述和具体例子表明本发明优选实施例的同时,它们仅为说明目的给出。本发明采用基于hypervisor架构的多域虚拟机方案作为基础,其中hypervisor作为物理服务器和操作系统之间的中间软件层,允许多个操作系统和应用共享一套基础物理硬件。hypervisor的架构大致分为“裸机型”和“宿主型”两种,本发明所使用的架构为“裸机型”。虚拟机直接运行在系统硬件上,创建硬件全仿真实例。裸机型在虚拟化中hypervisor直接管理调用硬件资源。在多域的架构中,分别建立特权域domain0和普通域domainu,其中特权域具有直接访问底层硬件以及文件系统的权限。普通域与特权域之间的通信机制主要基于前后端驱动的方式,由前端驱动发起请求,并由后端驱动接受请求并处理,在前后端驱动通信的过程中,主要分成三部分:事件通道、i/o共享环和授权表。事件通道用于域间异步事件通知机制,i/o共享环用于在域间传递i/o请求和响应,授权表是不同域之间高效传输i/o数据的机制。图1示出了hypervisor多域架构中域间通信架构。多域架构中域间通信具体过程为:1、domainu发起i/o请求,由前端驱动将请求发送给i/o共享环存储;2、前端驱动将i/o内容发送给授权表(granttable)存储;3、前端驱动将i/o事件发送给事件通道;4、domain0中的后端驱动从事件通道中读取i/o事件;5、后端驱动从i/o共享环中读取i/o请求;6、后端驱动从授权表(granttable)中读取i/o内容;7、后端驱动根据请求调用底层真实硬件驱动进行处理;8、后端驱动将处理完成的事件返回给事件通道;9、domainu从事件通道中读取请求处理完成的事件通知;10、返回至前端驱动处理事件。图2示出了根据本发明的用于hypervisor多域架构的加密通信方法的一优选实施例的流程图。使用本发明方法,预先在授权表中置入加解密模块,加解密模块可采用对称加密算法如高级加密标准(aes)算法进行加解密,也可采用任何其它适当的加密算法。在步骤s202,在i/o数据被发送到授权表时,从i/o共享环中取得i/o请求并判断相应i/o请求是写请求还是读请求。如果是写请求,处理进行到步骤s204;否则,处理进行到步骤s206。在步骤s204,调用写函数对i/o数据进行加密。在步骤s206,调用读函数对i/o数据进行解密。在步骤s208,将加密或解密后的i/o数据经由授权表转发至文件系统中存储。在一次文件写的过程中,首先由普通域中的前端驱动发起i/o请求,请求进入i/o共享环,内容进入授权表,通过判断读写请求来确定在授权表中执行加密或解密算法,将内容封装好后,后端驱动接收i/o请求,对底层文件系统进行读写并存储,此时写入的内容是经过授权表中加密算法加密的,读出的内容也是经过授权表中解密算法解密的。这样在底层磁盘中的文件即已完成加密,若通过硬件截取的方式访问文件或者攻击普通域domainu的方式窃取文件,都只能看到密文,只有在相同的加密环境条件下才可以访问明文。在这种条件下,存储在移动终端存储卡中的文件数据同样实现加密,若将存储卡拔出,在其他环境下读取,则只能看到密文,保护了文件内容。图3示出了根据本发明的用于hypervisor多域架构的加密通信系统的一优选实施例的框图。该系统包括设置于授权表中的加解密模块300,用于在i/o数据被发送到授权表时对i/o数据进行处理后经由授权表转发至文件系统中存储,其中加解密模块包括:确定子模块302,用于确定相应i/o请求是写请求还是读请求;加密子模块304,用于响应于相应i/o请求为写请求,对i/o数据进行加密;及解密子模块306,用于响应于相应i/o请求为读请求,对i/o数据进行解密。在实施例中,本发明系统还包括:第一发送模块,用于在普通域发起i/o请求时由前端驱动将i/o请求发送给i/o共享环存储;第二发送模块,用于响应于i/o请求为写请求,前端驱动将i/o数据发送给授权表;第三发送模块,用于前端驱动将i/o事件发送给事件通道;第一读取模块,用于后端驱动从事件通道中读取i/o事件;第二读取模块,用于后端驱动从i/o共享环中读取i/o请求;第三读取模块,用于后端驱动从授权表读取i/o数据;调用模块,用于后端驱动根据i/o请求调用底层真实硬件驱动进行处理;第一返回模块,用于后端驱动将处理完成的事件返回给事件通道;第四读取模块,用于普通域从事件通道中读取请求处理完成的事件通知。在实施例中,本发明系统还包括:第四发送模块,用于响应于i/o请求为读请求,只发送请求和读文件的相关信息;第五发送模块,用于后端驱动将对应于读请求的i/o数据发送到授权表;第五读取模块,用于前端驱动从授权表中读取i/o数据。在此所述的多个不同实施方式或者其特定特征、结构或特性可在本发明的一个或多个实施方式中适当组合。另外,在某些情形下,只要适当,流程图中和/或流水处理描述的步骤顺序可修改,并不必须精确按照所描述的顺序执行。另外,本发明的多个不同方面可使用软件、硬件、固件或者其组合和/或执行所述功能的其它计算机实施的模块或装置进行实施。本发明的软件实施可包括保存在计算机可读介质中并由一个或多个处理器执行的可执行代码。计算机可读介质可包括计算机硬盘驱动器、rom、ram、闪存、便携计算机存储介质如cd-rom、dvd-rom、闪盘驱动器和/或具有通用串行总线(usb)接口的其它装置,和/或任何其它适当的有形或非短暂计算机可读介质或可执行代码可保存于其上并由处理器执行的计算机存储器。本发明可结合任何适当的操作系统使用。除非明确指出,在此所用的单数形式“一”、“该”均包括复数含义(即具有“至少一”的意思)。应当进一步理解,说明书中使用的术语“具有”、“包括”和/或“包含”表明存在所述的特征、步骤、操作、元件和/或部件,但不排除存在或增加一个或多个其他特征、步骤、操作、元件、部件和/或其组合。如在此所用的术语“和/或”包括一个或多个列举的相关项目的任何及所有组合。前面说明了本发明的一些优选实施例,但是应当强调的是,本发明不局限于这些实施例,而是可以本发明主题范围内的其它方式实现。本领域技术人员可以在本发明技术构思的启发和不脱离本
发明内容的基础上对本发明做出各种变型和修改,这些变型或修改仍落入本发明的保护范围之内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1