CN103403732B - 输入输出操作的处理方法和装置 - Google Patents

输入输出操作的处理方法和装置 Download PDF

Info

Publication number
CN103403732B
CN103403732B CN201280001960.9A CN201280001960A CN103403732B CN 103403732 B CN103403732 B CN 103403732B CN 201280001960 A CN201280001960 A CN 201280001960A CN 103403732 B CN103403732 B CN 103403732B
Authority
CN
China
Prior art keywords
virtual
secure firmware
virtual machine
memory facilities
described virtual
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.)
Active
Application number
CN201280001960.9A
Other languages
English (en)
Other versions
CN103403732A (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN103403732A publication Critical patent/CN103403732A/zh
Application granted granted Critical
Publication of CN103403732B publication Critical patent/CN103403732B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Storage Device Security (AREA)

Abstract

一种输入输出I/O操作的处理方法和装置,用以在虚拟化场景下提高数据的安全性。该方法包括:虚拟机监视器或虚拟机管理器检测来自于虚拟机用户对虚拟存储设备的I/O操作指令;若检测到所述I/O操作指令,触发与所述虚拟存储设备存在映射关系的虚拟安全固件对所述虚拟机用户进行验证;所述虚拟安全固件是对安全固件进行虚拟化获得的。

Description

输入输出操作的处理方法和装置
技术领域
本发明涉及数据存储技术领域,尤其涉及一种输入输出(I/O,Input/Output)操作的处理方法和装置。
背景技术
可信存储设备,是指可以让合法用户访问、同时能拒绝非法用户访问的数据存储设备。可信存储设备可以用来存储敏感数据,解决由于非法用户访问带来的数据被盗取、丢失、篡改等问题。
同时随着虚拟化技术的应用,使得可以基于一台物理主机的硬件资源实现多台虚拟机,同理可以基于一个存储设备实现多个虚拟存储设备,从而显著提高计算机的工作效率。
然而,发明人在实现本发明过程中发现,现有技术至少存在以下缺陷:虚拟存储设备可以挂载到同一个物理主机中的任意一个虚拟机上,现有的可信存储方案并不适用于虚拟化场景。在虚拟化场景中,虚拟机用户无需进行验证就可以访问硬盘,不能实现对用户硬盘访问操作的控制,如何甄别合法用户和非法用户对数据的访问操作,保护数据安全成为一个需要解决的问题。
发明内容
本发明实施例提供一种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操作进行认证的方案,有助于提高数据的安全性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例的主要实现原理流程图;
图2a为本发明实施例提供的I/O操作的处理方法应用场景的示意图;
图2b为本发明实施例中I/O操作指令的传输路径示意图;
图3为本发明实施例中虚拟机挂载虚拟存储设备的流程图;
图4a为本发明实施例提供的I/O操作的处理方法的流程图;
图4b为本发明实施例中用户验证方法的流程图;
图5为本发明实施例提供的另一种I/O操作的处理方法的流程图;
图6为本发明实施例提供的一种I/O操作的处理装置的结构示意图;
图7为本发明实施例提供的另一种I/O操作的处理装置的结构示意图;
图8为本发明实施例提供的一种虚拟安全固件的结构示意图;
图9为本发明实施例提供的一种主机、以及一种硬盘的示意图。
具体实施方式
下面结合各个附图对本发明实施例技术方案的主要实现原理、具体实施方式及其对应能够达到的有益效果进行详细的阐述。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
实施例一
本发明实施例提供的I/O操作的处理方法应用于在虚拟化场景下,即在一台或多台物理主机上已经通过虚拟化技术虚拟出多个虚拟机、和多个虚拟存储设备(例如虚拟硬盘),每台虚拟机上都挂载有至少一个虚拟存储设备。
如图1所示,在所述虚拟化场景下,执行步骤S10和S20,
步骤S10,对主机物理存储器(例如硬盘)中的安全固件进行虚拟化,获得至少一个虚拟安全固件,所述虚拟安全固件的数量不少于需要被设定为虚拟可信存储设备的数量。
为了描述的简便,本发明实施例中的“安全固件”是指位于主机硬盘中的物理安全固件。
可选地,可以通过硬件虚拟化技术对安全固件进行处理,从而得到多个虚拟安全固件。硬件虚拟化技术是实现虚拟机和虚拟存储设备的关键技术,也被称为硬件仿真技术或全虚拟化技术(Full Virtualization)。全虚拟化技术是指以完整模拟硬件的方式提供全部接口(同时还必须模拟特权指令的执行过程),通过I/O虚拟化的方式来复用有限的资源。将物理机真实的I/O统一管理,抽象成多个逻辑I/O以响应虚拟机的请求。在这里不再进行详述。
可选地,也可以利用软件虚拟化技术通过一个应用软件来模拟安全固件的功能,在运行多个所述应用软件的实例时,就可以实现多个虚拟安全固件。
步骤S20,建立虚拟安全固件与虚拟存储设备的映射关系。
可选地,若虚拟安全固件的数量小于虚拟存储设备的数量,则可以从虚拟存储设备中选择出数量与虚拟安全固件的数量相同的虚拟存储设备,然后将选择出的虚拟存储设备与虚拟安全固件建立一一对应的映射关系,后续这些选择出的虚拟存储设备将作为虚拟可信存储设备,而未被选择出的将作为虚拟非可信存储设备。当然在虚拟安全固件的数量与虚拟存储设备的数量不同的情况下,也可以采用更为简便的方式来处理,例如随机或顺次取出一个虚拟安全固件和一个虚拟存储设备建立一一对应的映射关系,如果有剩余的虚拟安全固件或虚拟存储设备,则不为这些剩余的虚拟安全固件或虚拟存储设备建立映射关系即可。
可选地,可以通过映射关系表、单向链表等结构来存储虚拟安全固件与虚拟存储设备的一一对应的映射关系。当然该一一对应的映射关系具体可以为虚拟安全固件的标识与虚拟存储设备的标识之间的对应关系。
在步骤S10生成的虚拟安全固件、以及步骤S20建立的映射关系的基础上,本发明实施例提供的I/O操作的处理方法的主要实现原理流程如下:
步骤S30,检测来自于虚拟机用户对虚拟存储设备的I/O操作指令。
由于虚拟机并没有权限来访问物理主机的底层硬件,虚拟机对虚拟存储设备的访问都会被虚拟机监视器(Hypervisor)或虚拟机管理器(VMM,virtualmachine manager)接收,并被转换为对物理存储设备的访问。因此,虚拟机操作系统通过驱动程序对虚拟存储设备的I/O操作指令都会发送到Hypervisor或VMM,可以通过Hypervisor或VMM中的API、驱动程序、或者特权虚拟机等机制检测、或接收到虚拟机操作系统发送的来自于虚拟机用户对虚拟存储设备的I/O操作指令。例如,在剑桥大学开发的名为Xen的开放源代码虚拟机监视器中,普通虚拟机中的客操作系统(GuestOS)都是通过其中的前端驱动程序与特权虚拟机上的后端驱动程序通信,读写虚拟存储设备。虚拟存储设备由特权虚拟机负责创建和赋给其它普通虚拟机。特权虚拟机内部包含了真实的设备驱动程序,可直接访问硬件,负责与Hypervisor提供的管理API交互。上述I/O操作指令也被称为输入/输出指令、读/写指令。
待访问的虚拟存储设备既包括在创建虚拟机时静态分配给所述虚拟机的虚拟存储设备,也包括在创建所述虚拟机之后动态挂载在所述虚拟机上的虚拟存储设备。换句话说,与物理主机用户访问物理存储设备的情况相类似,虚拟机用户对虚拟存储设备的访问可以分为两种情况,一是待访问的虚拟存储设备是创建所述虚拟机时静态分配给所述虚拟机的虚拟存储设备的情况,即待访问的虚拟存储设备是存储所述虚拟机的操作系统程序的虚拟存储设备,类似于物理主机中的本地硬盘;二是待访问的虚拟存储设备是挂载在所述虚拟机上的虚拟存储设备,类似于物理主机中的移动硬盘、通用串行总线(USB,UniversalSerial BUS)闪存卡等。
需要说明的是,虚拟机在启动虚拟操作系统时访问操作系统的引导区、读写文件、创建或删除文件等,均会发起对待访问的虚拟存储设备的I/O操作指令。
步骤S40,若检测到来自于虚拟机用户对虚拟存储设备的I/O操作指令,触发与所述虚拟存储设备存在映射关系的虚拟安全固件对所述虚拟机用户进行验证,若验证通过,则进入步骤S50,否则进入步骤S60。
在虚拟机发送到Hypervisor或VMM的I/O操作指令中,除了携带操作符(如读/写操作符)、地址信息之外,还携带有待访问的虚拟存储设备的标识。
Hypervisor或VMM可以根据接收到的I/O操作指令中携带的虚拟存储设备的标识,从虚拟安全固件与虚拟存储设备的映射关系中,查找到所述虚拟存储设备对应的虚拟安全固件,然后向查找到的虚拟安全固件发送通知指令,接收到通知指令的虚拟安全固件,对发起I/O操作指令的虚拟机用户进行验证。或者,Hypervisor或VMM在查找到所述虚拟存储设备对应的虚拟安全固件后,将所述I/O操作指令发送给所述虚拟安全固件,接收到所述I/O操作指令的虚拟安全固件,对发起I/O操作指令的虚拟机用户进行验证。
可选地,该虚拟安全固件可以通过所述虚拟机的输出设备,提示用户输入用户名、口令等验证信息,例如通过ISV软件提示用户输入用户名和密码,也可以通过基本输入输出系统(BIOS,Basic Input Output System)界面提示用户输入用户名和密码。然后将用户输入的用户名密码对等验证信息,与预先存储的合法用户的验证信息进行比对,若二者一致则验证通过,反之验证失败。
步骤S50,允许执行所述I/O操作指令。
具体地,若是Hypervisor或VMM通过向虚拟安全固件发送通知指令的方式通知虚拟安全固件进行用户验证,在验证通过后,虚拟安全固件向Hypervisor或VMM返回一个用于为所述虚拟机用户开放对所述虚拟存储设备的访问权限的应答指令,Hypervisor或VMM将所述I/O操作指令进行地址转换后发送给物理存储器,从而实现虚拟机用户访问所述虚拟存储设备。
若是Hypervisor或VMM通过向虚拟安全固件发送所述I/O操作指令通知虚拟安全固件进行用户验证,在验证通过后,虚拟安全固件也可以向Hypervisor或VMM返回该I/O操作指令,Hypervisor或VMM接收到返回的I/O操作指令后,确认虚拟安全固件为所述虚拟机用户开放对所述虚拟存储设备的访问权限,Hypervisor或VMM将所述I/O操作指令进行地址转换后发送给物理存储器,从而实现虚拟机用户访问所述虚拟存储设备。
步骤S60,阻断所述I/O操作指令。
附图2a是本发明实施例提供的I/O操作的处理方法应用场景的示意图,为了简明起见,在附图2a中仅以一个虚拟机(VM1),两个虚拟存储设备(VDisk1~VDisk2)的场景为例进行说明,在有更多虚拟机和虚拟存储设备的场景下,该方法同样适用。VM1、VDisk1~VDisk2都是基于一台物理主机的硬件资源利用硬件虚拟化技术生成的。该物理主机中还包含一个安全固件,该安全固件用于和物理存储器(如物理硬盘)结合实现可信存储。该安全固件可以位于物理硬盘中,在物理硬盘内部本身的管理固件基础上添加优化硬盘存储资源的安全代码,扩展了硬盘的功能,提供加密、散列、安全存储、解密、数字签名和随机数字生成等功能。攻击者无法修改物理硬盘中的管理固件和安全固件。
上述实施例的执行主体可以是虚拟机监视器或虚拟机管理器,更具体地,可以是在虚拟机监视器或虚拟机管理器上实现的虚拟可信存储设备管理器。虚拟可信存储设备管理器可以是位于虚拟机监视器或虚拟机管理器上的一个软件模块,用来负责虚拟存储设备的管理、映射、访问控制,从而使得一个物理存储设备可以虚拟化为多个虚拟存储设备。
更具体地,比如说是Xen架构,虚拟可信存储设备管理器可以位于domain0;如果是其他架构,可以在类似的层添加一功能模块,实现虚拟可信存储设备管理器的功能。
在Hypervisor或VMM上实现的虚拟可信存储设备管理器,用于创建和管理虚拟安全固件。可选地,虚拟可信存储设备管理器具体可以是一个运行在Hypervisor或VMM上的应用程序。
虚拟可信存储设备管理器首先利用硬件虚拟化技术对所述安全固件进行硬件虚拟化,获得两个虚拟安全固件VTM_a、VTM_b,事实上完全可以获得多于两个虚拟安全固件。然后,虚拟可信存储设备管理器为每个虚拟存储设备分配一个虚拟安全固件,建立虚拟安全固件与虚拟存储设备的一一对应的映射关系,在本实施例中建立的映射关系表如表1所示,从而实现虚拟存储设备和虚拟安全固件的绑定。
表1
虚拟安全固件标识 虚拟存储设备标识
VTM_a VDisk1
VTM_b VDisk2
…… ……
可选地,为了提高虚拟机在挂载虚拟存储设备时的安全性这一更佳的效果,虚拟可信存储设备管理器在建立虚拟安全固件与虚拟存储设备的一一映射关系之后,还包括:
为每个虚拟安全固件分配一个公钥证书和/或公私钥,所述公钥证书和/或公私钥用于虚拟机挂载该虚拟安全固件对应的虚拟存储设备时,对虚拟存储设备的身份进行认证,若认证成功,则虚拟机可以挂载该虚拟存储设备;否则虚拟机可以拒绝挂载该虚拟存储设备。公钥证书中包含公钥和颁发者(物理安全固件)的签名信息,每个虚拟安全固件的公钥证书和公私钥,存储于与该虚拟安全固件对应的虚拟存储设备的安全分区中,其中,虚拟存储设备的安全分区是指虚拟存储设备中的保留区(实际是物理硬盘中的不可寻址空间),即一段不可被用户访问和被用户所修改的存储空间。安全分区在逻辑上与虚拟存储设备中的其他存储空间相独立,在物理上也与物理存储器中的其他存储空间相独立,可以用来存储加密密钥、时间戳、日志记录等数据。只有提供正确凭证的应用程序能够访问该安全分区,而虚拟可信存储设备管理器正是这样的应用程序。虚拟存储设备的安全分区(即虚拟安全分区)的创建方式为,在对物理存储设备进行硬件虚拟化时,对用户不可寻址的物理安全分区和用户可寻址的物理存储空间进行虚拟化,其中虚拟安全分区实际映射的物理空间是物理存储设备上的安全分区。这样,虚拟存储设备中包括了用户不可寻址的安全分区和用户可寻址的存储空间。
可选地,虚拟机挂载虚拟存储设备时的认证过程如附图3所示:
S310,虚拟机向待挂载的虚拟存储设备发送一个随机数,记为rand1;
S320,待挂载的虚拟存储设备利用私钥对随机数进行加密后,将已加密的随机数rand2返回给所述虚拟机;
S330,所述虚拟机利用待挂载的虚拟存储设备的公钥,对接收到的已加密的随机数rand2进行解密,得到解密后的随机数rand3;其中,所述虚拟机可以预先从颁发者、第三方认证机构、或通过特殊指令从待挂载的虚拟存储设备中获得包含有所述待挂载的虚拟存储设备的公钥的公钥证书,公钥证书中不仅携带有公钥,还携带有所述待挂载的虚拟存储设备的一些其他相关信息,例如待挂载的虚拟存储设备的身份标识信息、以及与之对应的虚拟安全固件的标识信息等等。
S340,所述虚拟机比较向待挂载的虚拟存储设备发送的随机数rand1与解密后的随机数rand3是否一致,若是,则认证成功,说明所述待挂载的虚拟存储设备是公钥证书中身份标识信息所声称的虚拟存储设备;否则,认证失败。
需要说明的是,虚拟机和虚拟存储设备之间还可以采用其他的基于公私钥的身份认证流程,在这里不再一一列举。
在图2a所示的场景下,下面将结合图4a对本发明实施例提供的I/O操作的处理方法进行详细介绍。在该场景中,虚拟机VM1的操作系统安装于虚拟存储设备VDisk1中,虚拟机VM1由于存储用户业务数据的需求,需要通过挂载虚拟存储设备VDisk2作为VM1上的另一个逻辑硬盘。
步骤S401,VM1向虚拟可信存储设备管理器查询VDisk2对应的虚拟安全固件;并从所述虚拟可信存储设备管理器获知VDisk2对应的虚拟安全固件为VTM_b。
步骤S402,VM1根据虚拟安全固件VTM_b的公钥证书,对VDisk2的身份进行认证,若认证成功则进入步骤S403;否则,挂载失败流程结束。
VM1对VDisk2的身份进行认证的具体过程请参照前面附图3的介绍,在这里不再重复。
步骤S403,VM1挂载VDisk2。
VM1可以采用该虚拟机的操作系统提供的API或者驱动程序来实现对VDisk2的挂载。
步骤S404,VM1的操作系统检测到用户对VDisk1的I/O操作指令。具体地,虚拟机操作系统可以通过系统级API或存储器驱动程序,检测到I/O操作指令,该I/O操作指令中携带待访问的虚拟存储设备的标识,即VDisk1的标识。
步骤S405,VM1的操作系统通过通信管道,将所述I/O操作指令通过hupervisor转发到虚拟可信存储设备管理器。
步骤S406,虚拟可信存储设备管理器从表1所示的各虚拟安全固件与虚拟存储设备的映射关系表,查询到VDisk1对应的虚拟安全固件为VTM_a。
步骤S407,虚拟可信存储设备管理器将所述I/O操作指令发送到与向VDisk1对应的虚拟安全固件VTM_a,用以触发VTM_a对发起所述I/O操作指令的虚拟机用户进行验证。
步骤S408,VTM_a对发送所述I/O操作指令的虚拟机用户进行验证,若验证通过,进入步骤S409,否则进入步骤S410。
可选地,具体的验证方法包括但不限于:
方式一、VTM_a通过对应的ISV软件向用户显示一个认证界面,提示用户输入用户名和密码。ISV软件将用户在该界面中输入的用户名和密码发送给VTM_a,若VTM_a根据用户名和密码对用户认证成功,则允许硬盘执行该用户访问操作;否则,丢弃或阻断所述访问操作。其中,虚拟安全固件用以对用户进行验证的预设的合法用户的用户名和对应的密码可以存储在,该虚拟安全固件对应的虚拟存储设备的安全分区中。
方式二、VTM_a通过虚拟机的BIOS界面提示用户输入用户名和密码。BIOS将用户在该界面中输入的用户名和密码发送给VTM_a,若VTM_a根据用户名和密码对用户认证成功,则允许硬盘执行该用户访问操作;否则,丢弃或阻断所述访问操作。其中,虚拟安全固件用以对用户进行验证的预设的合法用户的用户名和对应的密码可以存储在,该虚拟安全固件对应的虚拟存储设备的安全分区中。
除了上述两种方式之外,还可以采用生物识别技术、智能卡等方式对虚拟机用户进行验证。在这里不再一一详述。
步骤S409,若验证通过,VTM_a允许在VDisk1上执行所述I/O操作指令。
具体地,VTM_a为所述虚拟机用户开放VDisk1的访问权限。所述虚拟机用户发起的I/O指令中携带有待访问数据在逻辑存储器中的逻辑地址,Hypervisor或VMM通过文件系统中逻辑存储器的配置信息,将所述I/O指令中的逻辑地址转换为逻辑区块标识,然后由物理存储器中的存储控制器(例如物理硬盘中的管理固件)将所述逻辑地址进一步转换成对应的物理区块标识,最后再转换为物理存储器中对应的扇区标识,最后通过驱动程序向物理存储器发送携带有转换得到的物理扇区标识的I/O指令,从而实现对VDisk1中数据的访问。
可选地,若验证通过,VTM_a还可以通过ISV软件或者BIOS界面提示用户验证通过。
步骤S410,若验证失败,则阻断所述I/O操作指令。
可选地,若验证失败,VTM_a还可以通过ISV软件或者BIOS界面提示用户验证失败。
同理,若VM1的操作系统检测到用户对VDisk2的I/O操作指令,则也可以执行类似于步骤S404~步骤S410的处理,在这里不再重复。
采用附图4a所示的处理方法后,附图2a所示场景中,I/O操作指令的传输路径如附图2b中的细实线箭头所示,先由虚拟机发送至虚拟可信存储设备管理器,然后由虚拟可信存储设备管理器发送给待访问的虚拟存储设备对应的虚拟安全固件,虚拟安全固件对用户验证通过后,返回虚拟可信存储设备管理器,最后Hypervisor或VMM将所述I/O操作指令进行地址转换后发送给物理存储器。虚拟可信存储设备管理器向虚拟安全固件发送的所述I/O操作指令起到了一个通知指令的作用,当然也可以设置专门的通知指令来完成该作用。
需要说明的是,为了避免每次检测到用户对虚拟存储设备的I/O指令时,都要求用户输入用户名和密码对用户造成额外负担,虚拟机操作系统可以在每个用户登录虚拟机操作系统之后、且该用户注销之前的时间段内,用户第一次访问一个虚拟存储设备时,才执行步骤S406,用以触发对应的安全固件对用户进行验证,在上述时间段内,同一用户后续对同一个虚拟存储设备访问时,虚拟机操作系统直接将I/O指令发送至Hypervisor或VMM中,执行地址转换后发送给物理存储设备。
可选地,为了确保在虚拟安全固件对用户进行验证时,虚拟机(可以是虚拟机中的ISV软件、或者虚拟机的BIOS界面或者生物识别终端等)与虚拟安全固件之间交互指令的安全性,Hypervisor或VMM中的虚拟可信存储设备管理器在转发这些交互指令时,通过为虚拟安全固件分配的公钥证书和/或公私钥实现这些交互指令的安全通信,从而保证这些交互消息不被其他虚拟机所窃取。
下面将对在虚拟机监视器或虚拟机管理器的触发下,虚拟安全固件对虚拟机用户进行验证的底层实现过程进行介绍:
若虚拟安全固件是采用硬件虚拟化技术生成的,Hypervisor或VMM向虚拟安全固件发送通知指令,在硬件层次执行时实际上仍然是Hypervisor或VMM向物理存储器中的安全固件发送通知消息,该通知指令中携带查找到的所述虚拟安全固件的标识;后续在与待访问虚拟存储设备存在映射关系的虚拟安全固件对所述虚拟机用户进行验证的过程中(即附图1中的步骤S40或附图4a中的步骤S408),虚拟机向虚拟安全固件发送用户输入的验证信息(例如,携带用户输入的用户名和密码的指令等等)先由虚拟机发送至Hypervisor或VMM(如虚拟可信存储设备管理器),Hypervisor或VMM向虚拟安全固件发送用户输入的验证信息时,也同理是将与待访问的虚拟存储设备存在映射关系的虚拟安全固件的标识携带在所述验证信息中发送给物理存储器中的安全固件。因此,需要在硬件虚拟化时对物理存储器中的安全固件进行改进,扩展安全固件接口功能,才能用于处理Hypervisor或VMM发来的上述通知消息和验证信息。
首先,与现有安全固件相比,本实施例中的安全固件所需处理的通知指令和验证信息中增加了一个虚拟安全固件的标识,安全固件需要通过扩展的接口功能识别出通知指令或验证信息中携带的虚拟安全固件的标识;然后,针对每个不同的虚拟安全固件的标识:安全固件根据预先存储的所述虚拟安全固件与虚拟存储设备安全分区地址的对应关系,得到与该虚拟安全固件存在映射关系的虚拟存储设备的安全分区地址,然后根据该安全分区地址,从虚拟存储设备的安全分区中获得该虚拟安全固件对用户进行验证时所需的合法用户的验证信息。从而通过一个安全固件模拟多个虚拟安全固件对不同虚拟存储设备的用户进行验证。具体流程如附图4b所示:
步骤420,安全固件接收Hypervisor或VMM发送的通知指令,所述通知指令中携带虚拟安全固件的标识,所述通知指令中携带的虚拟安全固件的标识用于使所述安全固件获取所述所述虚拟存储设备的合法用户的验证信息。
步骤421,安全固件通过硬件虚拟化时扩展的接口功能从所述通知指令中识别出携带虚拟安全固件的标识。例如,在本实施例中,安全固件识别出携带的安全固件的标识是VTM_a。
步骤422,所述安全固件根据所述虚拟安全固件的标识,从所述虚拟安全固件与虚拟存储设备安全分区地址的对应关系中,获得与所述虚拟安全固件存在映射关系的虚拟存储设备的安全分区地址。例如,安全固件得到VTM_a对应的虚拟存储设备VDisk1的安全分区地址。
步骤423,所述安全固件根据所述安全分区地址,获取所述虚拟存储设备的安全分区中存储的所述虚拟存储设备的合法用户的验证信息。例如,安全固件从虚拟存储设备VDisk1的安全分区地址中读取虚拟存储设备VDisk1的合法用户的验证信息。
步骤424,所述安全固件根据所述合法用户的验证信息,以及所述Hypervisor或VMM发送的用户输入的验证信息,对所述虚拟机用户进行验证。
具体地,安全固件将所述用户输入的验证信息与所述合法用户的验证信息进行比较,若所述用户输入的验证信息与所述合法用户的验证信息一致,则表明验证通过;否则说明验证失败。例如安全固件根据安全分区地址读取的合法用户的验证信息如表2所示,若用户输入的验证信息(用户名:Sam;密码:12345)在表2中,则说明二者一致。
表2
用户名 密码
Sam 12345
Alice 32145
可选地,为了使安全固件能够并行地对多个访问不同虚拟存储设备的虚拟机用户进行验证,所述Hypervisor或VMM在向所述安全固件发送用户输入的验证信息时,还可以将与待访问的虚拟存储设备存在映射关系的虚拟安全固件的标识携带在所述所述虚拟机用户输入的验证信息中发送给所述安全固件,以便所述安全固件能够选择用户待访问的虚拟存储设备的合法用户的验证信息,对所述虚拟机用户输入的验证信息进行验证。
可选地,安全固件根据验证结果分别执行不同的处理,若验证通过进行步骤425,否则进行步骤426。
步骤425,所述安全固件允许执行来自于所述虚拟机用户的目标地址在所述虚拟存储设备对应的物理地址空间中I/O操作指令。
步骤426,所述安全固件阻断自于所述虚拟机用户的目标地址在所述虚拟存储设备对应的物理地址空间中I/O操作指令。
可选地,安全固件可以把验证结果发送给虚拟机监视器或虚拟机管理器,并通过虚拟机监视器或虚拟机管理器将验证结果发送给虚拟机用户。
相应地,本发明实施例还提供了一种硬盘,该硬盘中包括安全固件,安全固件被配置执行附图4b所述的方法。
本发明实施例提供了一种I/O操作的处理方法,对物理存储设备中的安全固件进行虚拟化,获得至少一个虚拟安全固件;然后建立虚拟安全固件与虚拟存储设备的映射关系,实现虚拟安全固件与虚拟存储设备的绑定。后续当检测到虚拟机用户对虚拟存储设备的I/O操作指令时,触发与所述虚拟存储设备存在映射关系的虚拟安全固件对所述虚拟机用户进行验证,只有在验证通过时,才允许执行所述I/O操作指令;否则阻断所述I/O操作指令。通过该方案能够在虚拟化场景中,对访问虚拟存储设备的用户进行验证,从而达到甄别虚拟存储设备的合法用户和非法用户的目的,提高了数据的安全性。使得在虚拟化场景中所实现的虚拟可信存储设备具备与现有技术中可信存储设备类似的功能。
实施例二
实施例一提供的I/O操作的处理方法还可以用于实现虚拟存储设备存储容量的优化,下面将进行详细介绍。
在利用硬件虚拟化技术对主机中的物理存储器进行虚拟化获得多个虚拟存储设备之前,可以设定每个待创建的虚拟存储设备的容量上限;在创建虚拟存储设备时,为每个所述虚拟存储设备分配的存储空间的容量小于所述虚拟存储设备对应的容量上限。例如,设定需要通过硬件虚拟化技术获得2个虚拟存储设备,每个存储设备的容量上限为5G,但实际上只为每个虚拟存储设备分配了2G的存储空间。可选地,上述各虚拟存储设备的容量上限可以存储在虚拟可信存储设备管理器中,
请参照附图5所示,在附图1步骤S40对所述虚拟机用户进行验证之后,还包括以下步骤:
步骤S510,若验证通过,判断所述虚拟存储设备的当前容量是否足以执行所述I/O操作指令,若足以执行所述I/O操作指令,则进入步骤S520,否则进入步骤S530。
可选地,具体可以由hypervisor、虚拟存储设备管理软件、虚拟可信存储设备管理器、或者待访问的虚拟存储设备对应的虚拟安全固件来进行上述判断过程。
步骤S520,在所述虚拟存储设备上执行所述I/O操作指令。具体请参照附图3中步骤309的描述,在这里不再重复。
步骤S530,若不足以执行所述虚拟机用户访问操作,则为所述虚拟存储设备新分配存储空间,所述新分配存储空间的容量与新分配存储空间之前所述虚拟存储设备的容量之和不大于所述虚拟存储设备的容量上限。
步骤S540,在新分配存储空间之后的所述虚拟存储设备上,执行所述I/O操作指令。具体请参照附图3中步骤309的描述,在这里不再重复。
本发明实施例提供的I/O操作的处理方法,在实施例一的基础上,通过在虚拟安全固件对用户验证通过时,动态调整所述虚拟存储设备的存储空间,从而实现在最初虚拟化创建虚拟存储设备时分配较少存储空间,后续再按需分配的效果,节约了存储资源,有助于减轻大量存储资源的浪费现象。
实施例三
本发明实施例提供了一种I/O操作的处理装置,可选地,该装置集成于Hypervisor或VMM中,其结构示意图如附图6所示,包括:
检测模块601,用于检测来自于虚拟机用户对虚拟存储设备的I/O操作指令;
验证触发模块602,用于当检测模块601检测到所述I/O操作指令时,触发与所述虚拟存储设备存在映射关系的虚拟安全固件对所述虚拟机用户进行验证,所述虚拟安全固件是对安全固件进行虚拟化获得的。
可选地,验证触发模块602具体包括获取单元6021和发送单元6022:
所述获取单元6021,用于从虚拟安全固件与虚拟存储设备的映射关系中,获得与所述虚拟存储设备对应的所述虚拟安全固件;
所述发送单元6022,用于向所述安全固件发送通知指令,所述通知指令中携带所述获取单元获取的所述虚拟安全固件的标识,所述虚拟安全固件的标识用于使所述安全固件获取所述虚拟存储设备的合法用户的验证信息。
可选地,所述发送单元6022还用于向所述安全固件发送所述虚拟机用户输入的验证信息,以使所述安全固件根据所述合法用户的验证信息和所述虚拟机用户输入的验证信息对所述虚拟机用户进行验证。
可选地,为了进一步提高安全性,附图6中的I/O操作的处理装置还包括:
证书分配模块603,用于为所述虚拟安全固件分配公钥证书和公私钥,所述公钥证书和公私钥用于在挂载所述虚拟安全固件存在映射关系的所述虚拟存储设备时,对所述虚拟存储设备的身份进行认证。
可选地,所述证书分配模块603分配的公私钥还用于在所述虚拟安全固件对所述虚拟机用户进行验证的过程中,实现所述虚拟安全固件与所述虚拟机用户之间交互信息的安全通信,所述交互信息是由虚拟机监视器或虚拟机管理器转发的。所述公钥证书和公私钥存储在所述虚拟安全固件对应的的虚拟存储设备中的安全分区中,所述虚拟存储设备中的安全分区是指用户无法访问的存储空间。
可选地,请参照附图7,附图6中的I/O操作的处理装置还包括:
判断模块604,用于在验证通过时,判断所述虚拟存储设备的当前容量是否足以执行所述I/O操作指令;
资源分配模块605,用于若所述判断模块604判断出不足以执行所述I/O操作指令,则为所述虚拟存储设备新分配存储空间,所述新分配存储空间的容量与新分配存储空间之前所述虚拟存储设备的容量之和不大于所述虚拟存储设备的容量上限;
执行模块606,用于在资源分配模块605新分配存储空间之后的所述虚拟存储设备上,执行所述I/O操作指令。
本发明实施例提供了一种I/O操作的处理装置,当检测到虚拟机用户对虚拟存储设备的I/O操作指令时,触发与待访问的虚拟存储设备存在映射关系的虚拟安全固件,对所述虚拟机用户进行验证,只有在验证通过时,才允许执行所述I/O操作指令;否则阻断所述I/O操作指令。该处理装置可以在虚拟化场景中,对访问虚拟存储设备的用户进行验证,从而达到甄别虚拟存储设备的合法用户和非法用户的目的,提高了数据的安全性。
本发明实施例提供了一种虚拟安全固件,该虚拟安全固件是对物理安全固件进行虚拟化获得的,具体的,可以是通过硬件虚拟化技术获得的,也可以是通过软件虚拟化技术获得的。其结构示意图如附图8所示,包括:
监测模块801,用于监测来自于虚拟机监视器或虚拟机管理器的触发;
验证模块802,用于在所述虚拟机监视器或虚拟机管理器的触发下,对虚拟机用户进行验证。
可选地,上述验证模块802包括接收单元8021和获取单元8022:
所述接收单元8021,用于接收所述虚拟机监视器或虚拟机管理器发送的通知指令,所述通知指令中携带所述虚拟安全固件的标识;
所述验证单元8022,用于从所述通知指令中识别出所述虚拟安全固件的标识;根据所述虚拟安全固件的标识,从虚拟安全固件与虚拟存储设备安全分区地址的对应关系中,获得与所述虚拟安全固件对应的虚拟存储设备安全分区地址;根据所述虚拟存储设备安全分区地址,获取所述虚拟存储设备安全分区中存储的所述虚拟存储设备的合法用户的验证信息,对所述虚拟机用户进行验证。
可选地,所述验证单元8022还用于接收所述虚拟机监视器或虚拟机管理器发送的所述虚拟机用户输入的验证信息;根据所述合法用户的验证信息和所述虚拟机用户输入的验证信息对所述虚拟机用户进行验证。
本发明实施例提供的虚拟安全固件,在在所述虚拟机监视器或虚拟机管理器的触发下,对虚拟机用户进行验证,并且只要在验证通过时,才允许虚拟机用户访问与该虚拟安全固件存在映射关系的虚拟存储设备,从而提高了虚拟存储设备中数据的安全性。
实施例四
本发明实施例还提供了一种主机,其结构示意图请参照附图9,该主机中包括至少一个处理器901、以及与所述至少一个处理器连接的存储器902,所述至少一个处理器901读取所述存储器902中的代码。
所述处理器901被配置用于检测来自于虚拟机用户对虚拟存储设备的I/O操作指令;若检测到所述I/O操作指令,触发与所述虚拟存储设备存在映射关系的虚拟安全固件对所述虚拟机用户进行验证;所述虚拟安全固件是对主机硬盘中的安全固件进行虚拟化获得的。
所述处理器还可以执行方法实施例中Hypervisor或VMM所执行的步骤,在这里不再重复,具体请参照方法实施例中的介绍。
参考附图9,本发明实施例还提供了一种硬盘903,该硬盘中包括安全固件,安全固件被配置执行附图4b所示的步骤。在这里不再重复。当然附图9中的硬盘903也可以在其他场景中使用,而不仅仅是与附图9所示的场景中,并且可以独立于附图9中的处理器901和存储器902而单独使用。
本领域普通技术人员将会理解,本发明的各个方面、或各个方面的可能实现方式可以被具体实施为系统、方法或者计算机程序产品。因此,本发明的各方面、或各个方面的可能实现方式可以采用完全硬件实施例、完全软件实施例(包括固件、驻留软件等等),或者组合软件和硬件方面的实施例的形式,在这里都统称为“电路”、“模块”或者“系统”。此外,本发明的各方面、或各个方面的可能实现方式可以采用计算机程序产品的形式,计算机程序产品是指存储在计算机可读介质中的计算机可读程序代码。
计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质包含但不限于电子、磁性、光学、电磁、红外或半导体系统、设备或者装置,或者前述的任意适当组合,如随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或者快闪存储器)、光纤、便携式只读存储器(CD-ROM)。
计算机中的处理器读取存储在计算机可读介质中的计算机可读程序代码,使得处理器能够执行在流程图中每个步骤、或各步骤的组合中规定的功能动作;生成实施在框图的每一块、或各块的组合中规定的功能动作的装置。
计算机可读程序代码可以完全在用户的计算机上执行、部分在用户的计算机上执行、作为单独的软件包、部分在用户的计算机上并且部分在远程计算机上,或者完全在远程计算机或者服务器上执行。也应该注意,在某些替代实施方案中,在流程图中各步骤、或框图中各块所注明的功能可能不按图中注明的顺序发生。例如,依赖于所涉及的功能,接连示出的两个步骤、或两个块实际上可能被大致同时执行,或者这些块有时候可能被以相反顺序执行。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (13)

1.一种输入输出I/O操作的处理方法,其特征在于,包括:
虚拟机监视器或虚拟机管理器检测来自于虚拟机用户对虚拟存储设备的I/O操作指令;
若检测到所述I/O操作指令,触发与所述虚拟存储设备存在映射关系的虚拟安全固件对所述虚拟机用户进行验证;所述虚拟安全固件是对安全固件进行虚拟化获得的;
若验证通过,则判断所述虚拟存储设备的当前容量是否足以执行所述I/O操作指令;
若不足以执行所述I/O操作指令,则为所述虚拟存储设备新分配存储空间,所述新分配存储空间的容量与新分配存储空间之前所述虚拟存储设备的容量之和不大于所述虚拟存储设备的容量上限;
在新分配存储空间之后的所述虚拟存储设备上,执行所述I/O操作指令。
2.如权利要求1所述的方法,其特征在于,所述触发与所述虚拟存储设备存在映射关系的虚拟安全固件对所述虚拟机用户进行验证,具体包括:
所述虚拟机监视器或虚拟机管理器从虚拟安全固件与虚拟存储设备的映射关系中,获得与所述虚拟存储设备对应的所述虚拟安全固件;
所述虚拟机监视器或虚拟机管理器向所述安全固件发送通知指令,所述通知指令中携带所述虚拟安全固件的标识,所述虚拟安全固件的标识用于使所述安全固件获取所述虚拟存储设备的合法用户的验证信息。
3.如权利要求2所述的方法,其特征在于,所述触发与所述虚拟存储设备存在映射关系的虚拟安全固件对所述虚拟机用户进行验证,还包括:
所述虚拟机监视器或虚拟机管理器向所述安全固件发送所述虚拟机用户输入的验证信息,以使所述安全固件根据所述合法用户的验证信息和所述虚拟机用户输入的验证信息对所述虚拟机用户进行验证。
4.如权利要求1至3中任一所述的方法,其特征在于,还包括:
所述虚拟机监视器或虚拟机管理器还用于为所述虚拟安全固件分配公钥证书和/或公私钥,所述公钥证书和/或公私钥用于在挂载与所述虚拟安全固件存在映射关系的所述虚拟存储设备时,对所述虚拟存储设备的身份进行认证。
5.如权利要求4所述的方法,其特征在于,所述公私钥还用于在所述虚拟安全固件对所述虚拟机用户进行验证的过程中,实现所述虚拟安全固件与所述虚拟机用户之间交互信息的安全。
6.如权利要求4所述的方法,其特征在于,所述公钥证书和/或公私钥存储在所述虚拟存储设备中的安全分区中,所述虚拟存储设备中的安全分区是指所述虚拟机用户无法访问的存储空间。
7.一种输入输出I/O操作的处理方法,包括:
在虚拟机监视器或虚拟机管理器的触发下,虚拟安全固件对虚拟机用户进行验证;所述虚拟安全固件是对安全固件进行虚拟化获得的;
所述虚拟安全固件是对所述安全固件进行硬件虚拟化获得的,所述安全固件通过所述硬件虚拟化具有扩展的接口功能;
所述在虚拟机监视器或虚拟机管理器的触发下,虚拟安全固件对虚拟机用户进行验证,具体包括:
所述安全固件接收所述虚拟机监视器或虚拟机管理器发送的通知指令,所述通知指令中携带所述虚拟安全固件的标识;
所述安全固件通过所述扩展的接口功能从所述通知指令中识别出所述虚拟安全固件的标识;
所述安全固件根据所述虚拟安全固件的标识,从虚拟安全固件与虚拟存储设备安全分区地址的对应关系中,获得与所述虚拟安全固件对应的虚拟存储设备安全分区地址;
所述安全固件根据所述虚拟存储设备安全分区地址,获取所述虚拟存储设备安全分区中存储的所述虚拟存储设备的合法用户的验证信息,对所述虚拟机用户进行验证。
8.如权利要求7所述的方法,所述虚拟安全固件对虚拟机用户进行验证,还包括:
所述安全固件接收所述虚拟机监视器或虚拟机管理器发送的所述虚拟机用户输入的验证信息;
所述安全固件根据所述合法用户的验证信息和所述虚拟机用户输入的验证信息对所述虚拟机用户进行验证。
9.一种输入输出I/O操作的处理装置,其特征在于,包括:
检测模块,用于检测来自于虚拟机用户对虚拟存储设备的I/O操作指令;
验证触发模块,用于当所述检测模块检测到所述I/O操作指令时,触发与所述虚拟存储设备存在映射关系的虚拟安全固件对所述虚拟机用户进行验证;所述虚拟安全固件是对安全固件进行虚拟化获得的;
判断模块,用于在验证通过时,判断所述虚拟存储设备的当前容量是否足以执行所述I/O操作指令;
资源分配模块,用于若所述判断模块判断出不足以执行所述I/O操作指令,则为所述虚拟存储设备新分配存储空间,所述新分配存储空间的容量与新分配存储空间之前所述虚拟存储设备的容量之和不大于所述虚拟存储设备的容量上限;
执行模块,用于在资源分配模块新分配存储空间之后的所述虚拟存储设备上,执行所述I/O操作指令。
10.如权利要求9所述的装置,其特征在于,所述验证触发模块包括获取单元和发送单元:
所述获取单元,用于从虚拟安全固件与虚拟存储设备的映射关系中,获得与所述虚拟存储设备对应的所述虚拟安全固件;
所述发送单元,用于向所述安全固件发送通知指令,所述通知指令中携带所述获取单元获取的所述虚拟安全固件的标识,所述虚拟安全固件的标识用于使所述安全固件获取所述虚拟存储设备的合法用户的验证信息。
11.如权利要求10所述的装置,其特征在于,所述发送单元还用于向所述安全固件发送所述虚拟机用户输入的验证信息,以使所述安全固件根据所述合法用户的验证信息和所述虚拟机用户输入的验证信息对所述虚拟机用户进行验证。
12.如权利要求9至11任一所述的装置,其特征在于,还包括:
证书分配模块,用于为所述虚拟安全固件分配公钥证书和/或公私钥,所述公钥证书和/或公私钥用于在挂载与所述虚拟安全固件存在映射关系的所述虚拟存储设备时,对所述虚拟存储设备的身份进行认证。
13.一种主机,其特征在于,包括至少一个处理器、以及与所述至少一个处理器连接的存储器,所述至少一个处理器读取所述存储器中的代码;
所述处理器被配置执行如权利要求1至6任一所述的方法。
CN201280001960.9A 2012-10-15 2012-10-15 输入输出操作的处理方法和装置 Active CN103403732B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2012/082953 WO2014059575A1 (zh) 2012-10-15 2012-10-15 输入输出操作的处理方法和装置

Publications (2)

Publication Number Publication Date
CN103403732A CN103403732A (zh) 2013-11-20
CN103403732B true CN103403732B (zh) 2015-07-08

Family

ID=49565849

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280001960.9A Active CN103403732B (zh) 2012-10-15 2012-10-15 输入输出操作的处理方法和装置

Country Status (2)

Country Link
CN (1) CN103403732B (zh)
WO (1) WO2014059575A1 (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104660578B (zh) * 2014-04-22 2017-12-19 董唯元 一种实现数据安全存储及数据访问控制的系统及其方法
CN103927489B (zh) * 2014-04-22 2017-01-18 陈幼雷 一种数据可信存储的系统及其方法
GB2532415A (en) * 2014-11-11 2016-05-25 Ibm Processing a guest event in a hypervisor-controlled system
CN106033369A (zh) * 2015-03-10 2016-10-19 杭州华三通信技术有限公司 存储设备使用方法及装置
CN105262735B (zh) * 2015-09-24 2019-05-28 浪潮(北京)电子信息产业有限公司 一种云平台数据安全保护的方法及系统
CN105825136B (zh) * 2016-03-24 2020-04-03 珠海泰坦软件系统有限公司 一种软硬件结合实现电子文件安全传递的方法及装置
CN106874795B (zh) * 2017-01-16 2020-12-08 北京安云世纪科技有限公司 一种移动终端的防拆机方法、装置及移动终端
CN107239681A (zh) * 2017-06-08 2017-10-10 山东超越数控电子有限公司 一种加密移动硬盘上位机软件结构
CN108345803B (zh) * 2018-03-22 2021-01-08 北京可信华泰科技有限公司 一种可信存储设备的数据存取方法及装置
CN112947866A (zh) * 2021-04-06 2021-06-11 苏州菲瑞斯信息技术有限公司 全闪存超融合阵列高性能存储系统及电子设备
CN113918251B (zh) * 2021-09-18 2022-10-28 中标慧安信息技术股份有限公司 一种设备隔离的用户访问控制方法和装置
CN117992157A (zh) * 2022-11-01 2024-05-07 深圳市中兴微电子技术有限公司 一种虚拟机的图像显示方法及装置
CN117412059B (zh) * 2023-12-12 2024-04-16 北京象帝先计算技术有限公司 基于虚拟化的视频编解码系统、设备及方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110154023A1 (en) * 2009-12-21 2011-06-23 Smith Ned M Protected device management
CN102271037A (zh) * 2010-06-03 2011-12-07 微软公司 基于在线密钥的密钥保护装置
CN102420846A (zh) * 2010-10-15 2012-04-18 微软公司 企业用户对主存的虚拟机的远程访问

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100547515C (zh) * 2005-07-15 2009-10-07 联想(北京)有限公司 支持可信计算的虚拟机系统及在其上实现可信计算的方法
US7962738B2 (en) * 2007-12-20 2011-06-14 Intel Corporation Hypervisor runtime integrity support
US8042190B2 (en) * 2007-12-31 2011-10-18 Intel Corporation Pre-boot protected memory channel
CN101272242A (zh) * 2008-02-29 2008-09-24 中兴通讯股份有限公司 基于网络的移动存储系统和方法
CN101599025B (zh) * 2009-07-07 2012-07-18 武汉大学 可信密码模块安全虚拟化方法
CN101808139B (zh) * 2010-03-31 2013-04-24 重庆索伦互联网信息服务有限公司 云环境中的数据存储系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110154023A1 (en) * 2009-12-21 2011-06-23 Smith Ned M Protected device management
CN102271037A (zh) * 2010-06-03 2011-12-07 微软公司 基于在线密钥的密钥保护装置
CN102420846A (zh) * 2010-10-15 2012-04-18 微软公司 企业用户对主存的虚拟机的远程访问

Also Published As

Publication number Publication date
CN103403732A (zh) 2013-11-20
WO2014059575A1 (zh) 2014-04-24

Similar Documents

Publication Publication Date Title
CN103403732B (zh) 输入输出操作的处理方法和装置
US11741230B2 (en) Technologies for secure hardware and software attestation for trusted I/O
US11429733B2 (en) Sharing secret data between multiple containers
JP4410821B2 (ja) 保護された処理システムへの初期トラステッド・デバイスのバインディングの検証
CN109840430A (zh) Plc的安全处理单元及其总线仲裁方法
US20160219041A1 (en) Sharing usb key by multiple virtual machines located at different hosts
CN104866778A (zh) 一种基于Linux内核的文档安全访问控制方法和装置
CN103119560A (zh) 用于服务处理器复合体中的数据存储的基于需求的usb代理
CN105354493A (zh) 基于虚拟化技术的终端可信增强方法及系统
US10255438B2 (en) Operating system agnostic validation of firmware images
CN109995523B (zh) 激活码管理方法及装置、激活码生成方法及装置
TW201539240A (zh) 目標裝置中資料抹除技術
CN110798310A (zh) 使用准许的区块链向IoT中枢的组件委托
US10482278B2 (en) Remote provisioning and authenticated writes to secure storage devices
CN104268477A (zh) 一种安全控制方法及网络设备
CN108400875B (zh) 基于键值的授权认证方法、系统、电子设备、存储介质
CN115344871A (zh) 基于arm架构的机密计算环境构建方法和系统
EP3848802A1 (en) Data management method and apparatus, and server
CN111158857A (zh) 数据加密方法、装置、设备及存储介质
JP2007299400A (ja) ランタイム・メモリー実行可能分離のための方法、コンピュータ・プログラム、及びデータ処理システム(ランタイム・メモリー実行可能分離のための方法及び装置)
TWI789291B (zh) 用於認證在儲存裝置和主機裝置之間的資料傳輸之模組和方法
RU2633098C1 (ru) Компьютерная система с удаленным управлением сервером и устройством создания доверенной среды и способ реализации удаленного управления
Huang et al. Research on Linux trusted boot method based on reverse integrity verification
CN116954825A (zh) 用户管理方法、装置、电子设备、存储介质及程序产品
CN117632352A (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