CN105453034A - 在管理器控制的系统中处理客户事件 - Google Patents
在管理器控制的系统中处理客户事件 Download PDFInfo
- Publication number
- CN105453034A CN105453034A CN201480036373.2A CN201480036373A CN105453034A CN 105453034 A CN105453034 A CN 105453034A CN 201480036373 A CN201480036373 A CN 201480036373A CN 105453034 A CN105453034 A CN 105453034A
- Authority
- CN
- China
- Prior art keywords
- customer
- client
- memory
- manager
- firmware
- 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.)
- Granted
Links
- 238000012545 processing Methods 0.000 title claims abstract description 28
- 230000015654 memory Effects 0.000 claims abstract description 163
- 238000000034 method Methods 0.000 claims abstract description 137
- 230000008569 process Effects 0.000 claims abstract description 75
- 238000004590 computer program Methods 0.000 claims description 12
- 238000004891 communication Methods 0.000 claims description 10
- 230000005540 biological transmission Effects 0.000 claims description 9
- 230000000052 comparative effect Effects 0.000 claims description 6
- 230000002093 peripheral effect Effects 0.000 claims description 4
- 238000009826 distribution Methods 0.000 claims description 3
- 238000005192 partition Methods 0.000 claims description 2
- 230000004048 modification Effects 0.000 abstract description 3
- 238000012986 modification Methods 0.000 abstract description 3
- 238000003860 storage Methods 0.000 description 19
- 238000010586 diagram Methods 0.000 description 15
- 230000006870 function Effects 0.000 description 14
- 230000005291 magnetic effect Effects 0.000 description 5
- 230000009471 action Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000035772 mutation Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45587—Isolation or security of virtual machine instances
Abstract
本发明涉及在管理器控制的系统(10)中用于处理客户事件的方法,包括步骤:(i)客户事件触发固件(70)中专用于客户事件的第一固件服务,所述客户事件与客户(20)、使用客户密钥(24)加密的客户状态(52)和客户存储器(22)相关联;(ii)所述固件(70)处理与所述客户事件相关联的信息,包括所述客户状态(52)和所述客户存储器(22)的信息,并且向管理器(30)只展示以解密形式的所述客户状态(52)和所述客户存储器(22)的信息的子集,其中所述信息的子集被选择以满足所述管理器(30)处理所述客户事件的需要;(iii)所述固件(70)保留所述客户状态(52)和所述客户存储器(22)的没有发送给所述管理器(30)的部分信息;(iv)所述管理器(30)基于所述接收到的所述客户状态(52)和所述客户存储器(22)的信息的子集处理所述客户事件,并且向所述固件发送处理结果(70),所述固件(70)触发专用于所述客户事件的第二固件服务;(v)所述固件(70)处理所述接收到的处理结果以及没有被发送给所述管理器(30)的所述客户状态(52)和所述客户存储器(22)的部分信息,生成状态和/或存储器的修改;(vi)所述固件(70)在以加密形式的所述客户存储器(22)上执行与所述客户事件相关的所述状态和/或存储器的修改。
Description
技术领域
本发明通常涉及数据处理系统,尤其是涉及用于在管理器控制的系统中处理客户事件的方法和系统。
背景技术
公共云的客户接受度被限制于非任务关键数据。核心业务数据经常是客户的重要资产,数据的保密性对企业的成功至关重要。只要客户不信任云环境,这些业务敏感环境的云接受度就会停留在最小。其中客户的主要关注点是对云供应商和云的安全缺乏信任。
对云供应商的信任是至关重要的,因为供应商的管理员能够完全监视客户的负载和数据。这种可能的用于刺探的违约是许多客户不愿意的原因。
对云安全的信任涉及管理器违约的威胁,即如果黑客获得对虚拟机管理器的访问,客户的负载和数据就再次处于风险中了。
保证机密性和隐私的方法这时受限于输入/输出(I/O):网络加密技术如安全套接字层(SSL)可以用来加密套接字连接并且磁盘加密工具如Linux上的dm-crypt可用于加密磁盘设备上的数据。
已经开发了可信平台模块(TPM),以保证在客户运行其负载时,引导链是有效的,但它不是部署在云环境。而且,TPMS不保证隐私而是充其量保证安装的完整性。
所有这些技术,即使使用,也不能解决管理器可以总是能全面监视客户,并用使用运行在客户机上的映像的潜在的敏感数据读取存储器内容的问题,其中客户通常可以是在管理器控制的系统上的虚拟机。上述提到的问题不能由这些技术消除。
US0302400/2011A1描述了一种方法,其通常包括由在具有多个处理核的中央处理单元(CPU)上的信任锚接收虚拟机(VM)映像。一旦接收到,虚拟机的映像被使用虚拟机映像加密密钥加密。该方法还包括获得虚拟机映像加密密钥,并使用虚拟机映像加密密钥配置第一加密/解密块。该方法还包括生成一个存储器会话密钥,并使用存储器会话密钥配置一个第二加密/解密块。该方法还包括将该虚拟机映像中的一个或多个页面抓取到多个处理内核可访问的存储器中。每个抓取的页面由第一加密/解密块使用虚拟机映像加密密钥解密,并且随后由第二加密/解密块使用存储器会话密钥加密。
发明内容
本发明的一个目的是提供一种在不可信的云环境中安全地处理客户数据的方法。
另一个目的是提供一种在不可信的云环境中安全地处理客户数据的系统。
这些目的是由独立权利要求的特征来实现的。其它权利要求,附图和说明书公开了本发明的优选的实施例。
根据本发明的方法的第一个方面,提出了一种在管理器控制的系统中处理客户事件的方法,包括步骤:(i)客户事件触发固件中专用于客户事件的第一固件服务,所述客户事件与客户、使用客户密钥加密的客户状态和客户存储器相关联;(ii)所述固件处理与所述客户事件相关联的信息,包括所述客户状态和所述客户存储器的信息,并且向管理器只展示以解密形式的所述客户状态和所述客户存储器的信息的子集,其中所述信息的子集被选择以满足所述管理器处理所述客户事件的需要;(iii)所述固件保留所述客户状态和所述客户存储器的没有发送给所述管理器的部分信息;(iv)所述管理器基于所述接收到的所述客户状态和所述客户存储器的信息的子集处理所述客户事件,并且向所述固件发送处理结果,所述固件触发专用于所述客户事件的第二固件服务;(v)所述固件处理所述接收到的处理结果以及没有被发送给所述管理器的所述客户状态和所述客户存储器的部分信息,生成状态和/或存储器的修改;(vi)所述固件在以加密形式的所述客户存储器上执行与所述客户事件相关的所述状态和/或存储器的修改。
第一个固件服务优选可以包括步骤(ii)和(iii),即步骤(ii)固件处理与客户事件相关的信息,包括;客户状态和客户存储器的信息,以及并且向管理器只展示处于加密形式的所述客户状态和所述客户存储器的信息的子集,其中所述信息的子集被选择以满足所述管理器处理所述客户事件的需要;以及(iii)所述固件保留所述客户状态和所述客户存储器的没有发送给所述管理器的部分信息。
第二固件服务优选地可以包括步骤(V)和(Vi),即(v)所述固件处理所述接收到的处理结果以及没有被发送给所述管理器的所述客户状态和所述客户存储器的部分信息,生成状态和/或存储器的修改;以及(vi)所述固件在以加密形式的所述客户存储器上执行与所述客户事件相关的所述状态和/或存储器的修改。
特别是,提到用于在管理器控制的系统中处理客户事件的方法展示了保护客户保密性的优势。因此,根据本发明的方法一般描述了安全管理虚拟机,同时保持虚拟机的内容对管理器的隐私,包括一个或者多个虚拟机,每个虚拟机具有包括加密的存储器和语境数据的资源,管理虚拟机资源和虚拟机状态的管理器,通过固件服务管理器执行对虚拟机的状态/存储器/语境的限制的访问的CPU辅助的虚拟化。
特别是,根据本发明的方法描述了在管理器控制的系统中处理客户事件,其中客户数据被使用管理器不能访问的客户密钥加密,并且其中CPU和固件被认为可信的,且当在客户语境中运行时能够访问客户密钥。在该语境中的固件,特别指在基于硬件环境中实现的系统软件。
由于根据本发明的方法描述了从为虚拟机加密的存储器运行虚拟机。然而,该方法防止管理器能够总是充分监视其客户,即虚拟机/映像,以及读取具有可能敏感数据的存储器的内容。优点是,所描述的方法不使用流程,如对具有(客户)秘钥服务的信任锚的认证,或者当从磁盘加载加密图像到存储器时,虚拟机映像的重加密(使用第二密钥)。该方法不需要使用不安全的普通计数器(CRT)模式加密,而是建议使用CRT模式加密的变种,像使用安全的密文窃取(XTS)模式加密的基于异或(XEX)调整的码书模式,它能处理中断或管理器拦截。该方法能够保护非加密的高速缓存内容,防止非授权访问并且能够处理I/O。所描述的方法不需要在CPU上的认证模块(例如TPM)。
特别用于扩展CPU架构的虚拟环境,优选地该方法还包括步骤:(i)如果CPU运行在客户语境中,由所述CPU解密或者加密所述客户存储器(22);(ii)允许所述客户通过非加密的存储器范围与外部通信;(iii)由所述管理器对所述客户存储器的加密页面分页。可以扩展CPU架构的虚拟化机制,使得客户的存储器总是被加密。这可以在CPU处理期间操作并且防止管理器以明文读取存储器或者注册内容。为有效处理,高速缓存器可以不被加密。然而,当客户的数据离开CPU时,该内容可以被加密。在客户执行过程中,客户存储器的加密可以通过CPU透明地发生,但只有当CPU正运行客户语境时才发生。
特别是对虚拟机的安全部署和执行,该方法优选地可以进一步地包括步骤(i)为所述客户提供所述客户密钥,该客户密钥被使用所述CPU的私钥相关联的所述公钥加密,以传输给所述CPU的所述密钥存储器;(ii)为所述CPU提供所述私钥,该私钥被存储在所述CPU中并被用于解密所述加密的密钥;(iii)当在客户语境中由所述CPU运行客户或者固件代码时,所述客户密钥被用于加密和解密所述客户存储器(22)。因此,在管理器控制的系统中可以使能虚拟机的安全部署和执行。
每个CPU可以得到一个密钥对,它的私钥可以只被存储在CPU中,并且可以用来解密客户密钥。CPU的公钥可用于加密(和传输)客户私钥到CPU,在该CPU中,客户密钥可以被安全地存储和使用。
客户也可以产生密钥。客户密钥在传送给CPU之前可以被使用CPU的公钥进行加密。CPU可以使用该客户密钥来加密客户的存储器(但只有当在CPU虚拟化功能的语境中运行客户时)。客户密钥也可以被用于布署来自云环境中的客户的映像。
尤其是对引导映像生成和部署,根据本发明的方法优选地可以进一步包括步骤:(i)由客户端或客户生成引导映像;(ii)使用所述客户密钥加密所述引导映像;(iii)将所述加密的映像传输给引导盘;(iv)由所述管理器将客户的所述加密的引导映像加载到所述客户存储器中;(v)启动客户作为在所述CPU级别的虚拟机的执行。其中客户是被加密的存储器区域、未加密的存储区域和加密的客户密钥定义的。客户密钥可以只由客户端、客户以及在客户语境的CPU分别知道,为了传输到CPU,客户密钥可以被使用与CPU的私钥相关联的公钥加密。不需要知道云操作者或者管理器。客户密钥可以为一个或者多个系统或者CPU被加密。
尤其对于引导镜像的引导过程,该方法优选地可以进一步包括步骤(i)当所述CPU在客户(20)语境中时,将执行在所述启动映像上的虚拟机内的执行线程解密为明文;(ii)当所述CPU在客户语境和所述客户状态时,解密所述客户存储器,所述客户语境和所述客户状态被保护防止所述管理器和其他客户访问。管理器可将引导映像的内容从引导盘读取到客户存储器而不重定位,其中引导盘的内容可以包括内核、参数、初始RAM磁盘。加载引导图像也可以包括安装常规加密(例如通过dm-crypt,一种通用的Linux加密工具)根文件系统。引导盘的内容可以进一步包括从常规加密的目标引导装置加载一个新内核的内核执行(kexec)环境。
特别是对虚拟机执行,该方法优选地可以包括步骤(i)扩展所述CPU的虚拟化功能,以当所述客户存储器的所述加密区域以客户(20)语境被写入时,加密所述客户存储器;(ii)当客户存储器的所述加密区域在客户(20)语境下被读出时,解密所述客户存储器;(iii)保持所述客户存储器和客户寄存器的所述加密区域能够被所述管理器只以加密的形式访问。可以扩展该CPU架构以提供定义好的装置来访问客户状态,其中访问方法可以只向管理器提供必要的信息来执行其任务(例如处理陷阱)。然而,所述访问方法之外不可以访问客户存储器和寄存器文件。这样可以保护客户的秘密,因为管理器完全无法读取客户的状态或客户的数据。寄存器文件可能不能被管理器直接访问,但可以被存储起来,通过管理器的服务恢复。其他非客户本身的情况,可能只看到加密的存储器内容,因为管理器可能看不到未加密的客户存储器。为了与管理器或I/O设备交换数据,客户的存储器区域可以保持不加密。I/O划痕区域可以在加密存储器区域以外。
在一个优选的实施方案中,特别是针对虚拟机和管理器之间的交互,该方法可以进一步包括步骤(i)保持与所述客户事件相关的所述客户存储器或寄存器的所述加密范围不被所述管理器以解密的形式访问;(ii)通过与所述客户事件相关的特定客户数据的访问方法,扩展所述CPU的虚拟化功能。这一步骤对于管理器操作可以是优选的,但可以不显示客户的数据或代码(而不是原因以及陷阱指令的相关参数),并且使客户事件继续执行。有些陷阱可以被完全禁用因为当管理器能能完全访问客户时其才可以是有意义的(例如,单步)。
特别是对客户的I/O流程,该方法优选地可以进一步包括步骤(i)为所述客户存储器的所述加密区域之外的所述客户的I/O缓冲区和I/O控制结构定义非加密存储器区域;(ii)由客户使用所述客户存储器的非加密区域启动所述I/O处理;(iii)所述CPU的所述虚拟化功能生成客户事件;(iv)所述管理器读取所述客户事件的原因并执行所述I/O处理。通过将I/O缓冲器放在加密的客户存储器之外,管理器和I/O设备可以访问I/O控制结构和数据。
尤其是对由管理器的分页过程,该方法优选地可以进一步包括步骤(i)由所述管理器页出(paging-out)所述客户存储器的页面;(ii)一旦试图访问页出页面,提供页面错误,其向所述管理器指示是否所述管理器的页出操作引起该页面错误;(iii)触发所述管理器以对所述客户管理器执行页入(page-in)处理。管理器可在管理器拥有的交换设备存储页面,其中页面内容仍然可以被加密。CPU的虚拟化功能可以设置陷阱,而管理器可以读取陷阱的原因(如,,页错误”),并且可以读客户的地址。然后管理器可把页面回到相同的客户地址,从而当加密结果保持非重定位时保持客户数据的一致性。然后管理器可以重启客户。
在优选的实施例中,尤其针对在所描述的方法中建立信任,该方法可以进一步包括使用知道客户密钥的检查过程检查客户的一致性,所述检查过程包括:(i)所述客户以明文从所述客户存储器读入存储器内容,并通过安全通信路经传输所述客户存储器的任意范围到所述检查过程;(ii)从所述管理器请求所述客户存储器的相同的存储器范围,并将其传输给所述检查过程;(iii)将从所述客户得到的所述存储器的内容与从所述管理器得到的解密所述存储器内容的结果进行比较;(iv)根据所述两个存储器范围的内容分发比较结果;(v)如果所述比较结果等于0,返回所述检查过程的结果为正,否则为负。这些方法步骤可以是特别有利的,因为管理器由于其不为客户存储器解密/加密提供密钥,不能读取/注入代码或者数据。
根据本发明的进一步的优选的方面,提供了用于在数据处理系统中执行的、数据处理程序,包括当所述数据处理程序在计算机上运行时,用于执行上述描述的方法的指令集的实现。
进一步提出了包括计算机可用介质的计算机程序产品,所述计算机可用介质包括计算机可读程序,其中当所述计算机可读程序在计算机上执行时,使得所述计算机执行在管理器控制的系统中用于处理客户事件的方法,包括步骤:(i)客户事件触发固件中专用于客户事件的第一固件服务,所述客户事件与客户、使用客户密钥加密的客户状态和客户存储器相关联;(ii)所述固件处理与所述客户事件相关联的信息,包括所述客户状态和所述客户存储器的信息,并且向管理器只展示以解密形式的所述客户状态和所述客户存储器的信息的子集,其中所述信息的子集被选择以满足所述管理器处理所述客户事件的需要;(iii)所述固件保留所述客户状态和所述客户存储器的没有发送给所述管理器的部分信息;(iv)所述管理器基于所述接收到的所述客户状态和所述客户存储器信息的子集处理所述客户事件,并且向所述固件发送处理结果,所述固件触发专用于所述客户事件的第二固件服务;(v)所述固件处理所述接收到的处理结果以及没有被发送给所述管理器的所述客户状态和所述客户存储器的部分信息,生成状态和/或存储器的修改;(vi)所述固件在以加密形式的所述客户存储器上执行与所述客户事件相关的所述状态和/或存储器的修改。
所属技术领域的技术人员知道,本发明的各个方面可以实现为系统、方法或计算机程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明的各个方面还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
下面将参照根据本发明实施例的方法、装置(系统)和计算机程序产品的框图描述本发明。应当理解,流程图和/或框图的每个方框以及框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些计算机程序指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、其它可编程数据处理装置、或其他设备以特定方式工作,从而,存储在计算机可读介质中的指令就产生出包括实现框图中的一个或多个方框中规定的功能/动作的指令的制造品(articleofmanufacture)。
计算机程序指令也可以被装载在计算机、其它可编程数据处理设备或其它设备上,使得在计算机、其它可编程设备或其它设备上执行一系列操作步骤以生成计算机实现过程,例如在计算机或其它可编程设备上执行的指令,提供用于实现一个或者多个框图中指定的功能/行为的流程。
由于本发明的进一步的方面,提出了一种用于数据处理程序的执行的数据处理系统,包括用于执行上述描述的方法的软件代码部分。
附图说明
本发明与上述提到的和其他对象和优点可以从以下实施例的详细描述中被更好地理解,但不局限于这些实施例,其中所示:
图1示出了根据现有技术的管理器控制的系统中的一堆组件;
图2示出了根据本发明的实施例,在不安全的环境中用于客户的安全执行的方法的一般概述;
图3示出了根据本发明的一个实施例在不安全的环境中用于客户的安全执行的管理器控制的系统的系统框图;
图4示出了根据本发明的实施例用于运行加密的客户的一般流程图;
图5示出了根据本发明的实施例拦截处理加密的客户的运行的详细流程图;
图6示出了数据处理系统的一个示例实施例,用于执行根据本发明的方法。
具体实施方式
在附图中,相同元素使用相同的参考数字参考。附图仅仅是示意性的表达,不意图用来描述本发明的具体参数。此外,附图的意图是仅仅描述本发明的典型实施例,因此不应被认为限制本发明的范围。
图1示出了根据现有技术的在管理器控制的系统中的一堆组件。不同的组件包括作为一个虚拟机实现的一个或多个客户20,作为虚拟服务器系统运行在管理器控制的系统上,包括固件70,作为例如一个或多个CPU的硬件72,存储器,存储网络的I/O设备74。管理器30管理硬件72和I/O设备74的资源并将这些资源的适当部分分配给客户20。在云环境中,客户虚拟机20是由客户端或客户操作,而管理器30是由云提供方操作,其对客户端可能是不可信的。固件70,以及硬件72,是由硬件供应方生产,其可能被认为是值得信赖的。本发明的目的是提供一种在云环境中安全处理客户虚拟机20的方法,其中云供应方可能不被信任。
总之,根据本发明的用于在管理器控制的系统10中处理客户事件的方法包括步骤:(i)客户事件触发固件70中专用于客户事件的第一固件服务,所述客户事件与客户20、使用客户密钥24加密的客户状态52和客户存储器22相关联;(ii)所述固件70处理与所述客户事件相关联的信息,包括所述客户状态52和所述客户存储器22的信息,并且向管理器30只展示以加密形式的所述客户状态52和所述客户存储器22的信息的子集,其中所述信息的子集被选择以满足所述管理器30处理所述客户事件的需要;(iii)所述固件70保留所述客户状态52和所述客户存储器22的没有发送给所述管理器30的部分信息;(iv)所述管理器30基于所述接收到的所述客户状态52和所述客户存储器22的信息的子集处理所述客户事件,并且向所述固件发送处理结果70,所述固件70触发专用于所述客户事件的第二固件服务;(v)所述固件70处理所述接收到的处理结果以及没有被发送给所述管理器30的所述客户状态52和所述客户存储器22的部分信息,生成状态和/或存储器的修改;(vi)所述固件70在以加密形式的所述客户存储器(22)上执行与所述客户事件相关的所述状态和/或存储器的修改。在下面的附图中的实施例的描述中引用这些步骤。
在一个实施例中,第一固件服务优选地可以包括上述描述的步骤(ii)和(iii)的至少一个步骤,其中在步骤(ii)固件70信息处理与客户事件相关的信息,包括客户的状态52和客户存储器22的信息,并向管理器30只展示以加密形式的客户的状态52和客户存储器22的信息的子集,其中选择信息的子集来满足管理器30处理客户事件的需求。步骤(iii)包括固件70保留客户状态52和客户存储器22的部分信息,该部分信息没有被发送到管理器30。
在一个实施例中,第二固件服务优选地可以包括以上描述的步骤(v)及(vi)中的至少一个步骤,其中步骤(V)包括固件70处理接收的处理结果以及没有被发送给所述管理器的所述客户状态和所述客户存储器的部分信息,生成状态和/或存储器的修改;其中在步骤(vi)固件70在以加密形式的所述客户存储器上执行与所述客户事件相关的所述状态和/或存储器的修改。
图2给出根据本发明的一个实施例,在管理器控制的系统10中的不安全的环境中用于客户的安全执行的方法的一般概述。这可能类似于安全套接字层实现,其中安全操作(即消息)也通过不安全的介质实现。被认为是不可信的管理器30,在同一时间和同一系统可以控制安全客户20和不安全的客户40。运行管理器30和客户20,40的CPU216分别为每个安全客户20维护特定的语境42,为每个不安全的客户40维护特定的语境44、为管理器30维护语境46。安全客户20的每个语境42包含根据安全客户20相关的客户密钥24。每个安全客户20的存储器被使用根据安全客户20的客户密钥24加密。这些客户20,40以及管理器30可以运行在CPU216上在自己的语境中42,44,46中。同样在CPU216有管理器30运行在它自己的语境46中。当CPU216运行在一个语境中时,它无法访问另一个语境维护的信息。当CPU216运行在安全客户20的客户语境42中时,它可以访问该客户20的客户密钥24,以对该客户20的数据加密和解密。进一步只有处理客户20、40、或管理器30的代码,CPU216才分别进入客户20、40、管理器30的语境中。
图3示出了根据本发明的实施例的在不安全的环境中用于客户20的安全执行的管理器控制的系统10的系统框图。在下面的描述中引用的数字,在图3、图1和图2的参考对象中没有显示。
根据本发明的一个实施例,在讨论用于处理由于客户事件的中断或拦截的管理器控制的系统的行为之前,将使用图3中的框图解释在不安全的环境中客户20的加密执行的第一通用功能。
图3的框图显示一个或多个客户20,称为客户1到客户n(由管理器30控制),所有的组件运行在连接到存储器230的CPU216上。CPU216包括访问装置50用于访问CPU的虚拟化功能34客户语境的状态,其中访问是基于CPU216所在的语境而被控制的。这些访问装置50可以从存储的客户状态52读客户状态52和/或虚拟CPU状态,存储的客户状态包含可以对管理器30隐藏的语境信息和/或控制块。存储的客户状态52包含来自虚拟化功能34的执行的客户状态52。指令执行单元54从存储器230获取代码到高速缓存器56中并执行代码。结果是可能触发通过指令执行单元54执行存储器取出和存储。当高速缓存器56处理这些存储器取出和存储请求时,在这些取出和存储请求中涉及的数据,是以纯文本展示的。为了使存储器取出送到存储器230中加密的客户存储器区域22,当虚拟化功能34正运行在使用客户钥匙24的对应的客户20的语境中时,数据在传输到高速缓存器56时会被加密单元58加密。当高速缓存行被推到存储器230时,加密单元58将对要传输出存储器230的高速缓存行使用正由虚拟化功能34执行的对应客户20的客户密钥24加密。
加密单元58位于高速缓存56和连接到存储器230的CPU216的存储器接口60之间。如果CPU216运行在安全客户20的语境中,虚拟化功能34控制64加密单元58,并从客户密钥存储器28提供加密单元58安全客户20的加密的客户密钥24。CPU216有私钥26用于解密加密的客户密钥24,其存储在密钥存储器28中并被送入加密单元58。客户密钥存储器28可以包含用于传输到CPU216的加密的客户密钥24以及用于指令执行的解密客户钥匙。高速缓存56可以包含纯文本数据,但是不在客户语境下运行的进程,可能无法访问这些纯文本数据。因此,高速缓存器56可以将数据与数据属于的客户语境相关联。存储器230可以包含加密的客户存储区域22、以及用于通过I/O与外部系统通信客户数据的纯文本区域、以及属于管理器30和不安全的客户的存储器区域。
因为存在使用客户密钥加密的范围以及其他对管理器30可见的范围,管理器30在存储器230中对数据和/或代码只有有限的访问。
以下解释了根据本发明的实施例的作为服务在固件70中实现的由固件服务装置处理中断或拦截的实现。在简短的描述中,在管理器控制的系统10中处理客户事件包括步骤:(i)触发第一固件服务;(ii)固件70处理与客户的事件相关联的信息,向管理器30只展示以解密形式的信息的子集;(III)固件保留不被发送到管理器30的部分信息;(iv)管理器30触发第二固件服务;(v)固件产生客户状态52和/或客户存储器22的修改;(vi)固件执行客户状态52和/或客户存储器22的修改。
以下更详细地描述这种通用方法的具体特征。
如果发生与客户20、使用客户密钥24加密的客户状态52和客户存储器22相关的中断或指令截取,与该中断或该指令截取相关的第一和第二固件服务,将访问二者均使用客户密钥24加密并且在高速缓存器56中解密的客户状态52和客户存储器22,以及(未加密)的管理器存储器。两个服务都能够通过使该存储器22传输到高速缓存器56从而使用客户钥匙24解密存储器22来读取客户20的客户存储器22。固件服务可以从高速缓存器56将未加密的数据传输到固件服务私有的存储器或到管理器30。当使用客户密钥24加密高速存储区域的内容时,第二固件服务能够从其私有存储器或管理器的存储器将未加密的数据传输到与加密的客户存储器22相关的高速缓存区域,然后传输高速存储区域的内容到加密的客户存储器22。
如果CPU216运行在客户20的语境中,CPU216的虚拟化环境被CPU216扩展到解密或加密客户存储器22,允许客户20通过非加密的存储器范围与外部通信;通过管理器30对客户存储器22的加密页分页。
客户20的安全的部署和执行包括为客户20提供使用与CPU216的私钥26相关的公钥32加密的客户密钥24,以传输到CPU216的密钥存储器28,为CPU216提供私钥26,其存储在CPU216中并被用于解密加密的客户密钥24,客户密钥当由CPU216在客户20的语境中运行客户或者固件代码时,被用于加密和解密客户存储器22。
引导映像生成和部署过程包括由客户20的客户端或客户生成引导映像;使用客户钥匙24加密引导映像;将加密的引导映像传输到引导盘;由管理器30加载客户20的加密的引导映像到客户存储器22;启动作为在CPU216的级别的虚拟机的客户20的执行。
引导映像的引导过程包括:当CPU216在客户20的语境中时,在执行在客户存储器22上的虚拟机中执行的线程,被解密为明文。当CPU216在客户20语境中时,客户存储器22和客户状态52两者被解密,客户存储器22和客户状态52被保护防止被管理器30或者其他客户访问。
客户20进一步的执行包括扩展CPU216的虚拟化功能34以当客户存储器22的加密区域被写入到客户20的语境中时加密客户存储器22;当客户存储器22的加密区域是从客户20的语境中读取的时,解密客户存储器22;对管理器30来说只以加密的形式访问客户存储器22和客户寄存器的加密区域。
客户20和管理器30之间的交互进一步包括与客户事件相关的、对管理器30来说以加密的形式不能访问的客户存储器22或寄存器的加密范围;通过对与客户事件相关的特定客户数据的访问方法扩展CPU216的虚拟化功能34。
客户20的I/O过程进一步包括在客户存储器22加密区域以外为客户20的I/O缓冲区和I/O控制结构定义非加密存储器区域;使用客户存储器22的非加密区域由客户20启动I/O的处理;CPU216的虚拟化功能34生成客户事件;管理器30读取客户事件的原因和执行I/O过程。
分页过程进一步特征化为由管理器30页出(paging-out)客户存储器22的页面;一旦尝试访问页出的页面,提供页面错误,其指示管理器30是否管理器30的页出操作引起页面错误;触发管理器30对客户存储器22执行页入(page-in)过程。
进一步使用检查过程来检查客户的一致性,检查过程包括步骤:检查过程知道客户秘钥24;客户20以明文的形式从客户存储器22读取存储器的内容,该客户存储器22通过安全的通信路传输客户存储器22的随机范围到检查过程,从管理器30请求请求客户存储器22的相同的存储器的范围并传输给检查过程;将从客户20得到的存储器内容,与从管理器30得到的解密存储器内容的结果进行比较;根据两个存储器范围的内容,分发比较结果;如果比较结果等于零,检查过程的结果为正,否则为负。
图4示出了根据本发明的一个实施例的从管理器30和CPU216的视角的用于执行加密的客户运行的一般流程图。图4和图5在流程图中引用在图2和图3的框图中定义的对象,所以使用的参考标号也引用这些图的对象。从步骤S410起运行加密的客户20,其中管理器30从初始程序装载器(IPL)装置读取加密的客户映像以及加密的客户钥匙24。然后,在步骤S420,管理器30将加密的客户映像存储到客户存储器22。在步骤S430管理器30准备包括加密的客户钥匙24的初始客户状态52。因此,步骤S410至S430用于在管理器控制的系统10中初始化客户20。在步骤s440,安全客户20的虚拟机根据目前的客户状态52启动。接着在步骤S450,CPU216在由当前客户状态52描述的安全客户语境42中运行安全客户20。在步骤S460,如果发生以中断或指令截取的形式的客户事件,由于该中断或拦截,客户20使用更新的客户状态52离开客户语境42。在步骤S470,管理器30现在通过使用第一个固件服务从安全客户20读数据或使用第二固件服务写数据到安全客户20,能够处理中断或拦截。
一般来说,第一个固件服务可以被触发,这意味着(ii)固件70正在处理与客户事件相关的信息并向管理器30仅呈现以解密形式的客户状态52和客户存储器22的信息的子集,及(iii)固件70正保留不发送到管理器30的部分信息。此外,(iv)基于接收的信息的子集,管理器30可能触发第二固件服务;(V)用于生成客户20的状态和/或存储器的修改,以及(vi)用于执行在客户存储器22以加密形式与客户事件关联的状态和/或存储器的修改。
如果完成安全客户20,在分支S480整个过程结束。如果安全客户20还没有完成,步骤S440的循环结束并且管理器30再次启动安全客户20。
在图5中描述了根据本发明的一个实施例用于对加密客户运行的中断处理的详细流程图。步骤S510从客户事件开始,这意味着安全客户20正发出要求中断或管理器30支持的指令,例如,存储系统环境参数指令,其通常由管理器30提供。在下一步步骤S520,虚拟功能34的执行之处脱离客户语境42,并将启动传递给CPU内的虚拟化代码。然后在步骤S530,CPU内部的虚拟化代码检测到客户20离开的原因,例如,确定存储系统环境参数的指令。在步骤S540,CPU内部的虚拟化代码根据客户20离开的原因为管理器30准备句柄来访问输入和输出参数,例如,将请求的信息存储的位置与句柄关联。然后在步骤S550,CPU内部的虚拟化代码对不需要处理中断的执行状态部分进行掩码并且返回到管理器的指示客户离开的启动点,以及对输入输出参数句柄的提示,例如对管理器30隐藏寄存器和语境数据(例如通过加密它们)。在步骤S520到S550,CPU内部的虚拟化代码可以替换地作为第一固件服务实现。接着,在步骤S560,管理器30通过阅读来自CPU内部虚拟化代码的原因指示,例如,读取原因代码以确定虚拟服务器请求来存储系统环境参数,来检测客户20离开的原因。在步骤S570(如果必要的话,重复)管理器30触发固件服务(例如第一固件服务)以与输入和输出参数一起工作来处理客户20的离开。要执行这点,管理器30使用先前建立的句柄作为引用需要处理的存储器230和寄存器的内容的设备,例如,管理器30利用接收到的句柄通过固件服务(例如第二固件服务),将系统环境参数存储在虚拟服务器的存储器。
通过这种方式,在对图5中加密的客户的拦截处理的详细流程图中,描述了如何使用第一和第二固件服务以用于处理在管理器控制的系统10中的客户事件,(ii)固件70如何处理与客户事件相关的信息以及向管理器30只展示以加密形式的信息的子集,以及(iii)固件70保留信息的一部分以及(iv)基于接收的信息的子集,第二固件服务可能被触发。
下一步,在步骤S580,管理器30通过发出相应的CPU的指令来重新启动虚拟化功能34的执行,直到步骤S590,CPU内部的虚拟化代码从客户20以前的离开中清除句柄,为虚拟化功能34的执行暴露虚拟服务器语境并且启动虚拟服务器的执行。
因此,可以生成客户20的状态和/或存储器修改并在客户存储器22以加密的形式执行。
现在参考图6,示出了数据处理系统210的例子的示意图。数据处理系统210仅是合适的数据处理系统的一个例子,并不意图对此处描述的发明的实施例的使用或者功能的范围施加任何限制。不论怎样,数据处理系统210能够被实现和/或执行上面列出的任何功能。
在数据处理系统210中有计算机系统/服务器212,其可被许多其他通用或专用的计算系统环境或配置操作。可适用于计算机系统/服务器212的著名的计算系统、环境、和/或配置的例子包括,但不限于,个人计算机系统、服务器计算机系统,瘦客户机、胖客户机、手持或便携式设备、多处理器系统、基于微处理器的系统、机顶盒、可编程电子消费品、网络PC、微计算机系统、主机计算机系统、以及分布式云计算环境,包括上述的任何系统或设备的组合,等等。
可以在计算机系统可执行的指令的通用语境下(如由一个计算机系统执行的程序模块)描述计算机系统/服务器212。一般来说,程序模块可以包括执行特定的任务或实现特定的抽象数据类型的例程、程序、对象、组件、逻辑、数据结构等。计算机系统/服务器212可以在分布式的云计算环境中实现,其中由通过通信网络连接的远程处理设备执行任务。在分布式的云计算环境中,程序模块可以位于包括存储设备的本地和远程计算机系统存储介质中。
如图6所示,数据处理系统210中的计算机系统/服务器212以一种通用计算设备的形式显示。计算机系统/服务器212的组件可以包括,但不限于,一个或多个处理器或处理单元216,系统存储器228,以及连接不同系统组件(包括系统存储器228和处理单元216)的总线218。
总线218表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
计算机系统/服务器212典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机系统/服务器212访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器228可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)230和/或高速缓存存储器232。计算机系统/服务器212可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统234可以用于读写不可移动的、非易失性磁介质(未显示,通常称为“硬盘驱动器”)。尽管未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线218相连。存储器228可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块242的程序/实用工具240,可以存储在例如存储器228中,这样的程序模块242包括——但不限于——操作系统、一个或者多个应用程序、其它程序模块以及程序数据,操作系统、一个或者多个应用程序、其它程序模块以及程序数据中的每一个或某种组合中可能包括网络环境的实现。程序模块242通常执行本发明所描述的实施例中的功能和/或方法。计算机系统/服务器212也可以与一个或多个外部设备214(例如键盘、指向设备、显示器224等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器212交互的设备通信,和/或与使得该计算机系统/服务器212能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口222进行。并且,计算机系统/服务器212还可以通过网络适配器220与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器220通过总线218与计算机系统/服务器212的其它模块通信。应当明白,尽管图中未示出,可以结合计算机系统/服务器212使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
附图中的框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图中的每个方框、以及框图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
Claims (13)
1.一种用于在管理器控制的系统(10)中处理客户事件的方法,包括步骤:
(i)客户事件触发固件(70)中专用于客户事件的第一固件服务,所述客户事件与客户(20)、使用客户密钥(24)加密的客户状态(52)和客户存储器(22)相关联;
(ii)所述固件(70)处理与所述客户事件相关联的信息,包括所述客户状态(52)和所述客户存储器(22)的信息,并且向管理器(30)只展示以解密形式的所述客户状态(52)和所述客户存储器(22)的信息的子集,其中所述信息的子集被选择以满足所述管理器(30)处理所述客户事件的需要;
(iii)所述固件(70)保留所述客户状态(52)和所述客户存储器(22)的没有发送给所述管理器(30)的部分信息;
(iv)所述管理器(30)基于所述接收到的所述客户状态(52)和所述客户存储器(22)的信息的子集处理所述客户事件,并且向所述固件发送处理结果(70),所述固件(70)触发专用于所述客户事件的第二固件服务;
(v)所述固件(70)处理所述接收到的处理结果以及没有被发送给所述管理器(30)的所述客户状态(52)和所述客户存储器(22)的部分信息,生成状态和/或存储器的修改;
(vi)所述固件(70)在以加密形式的所述客户存储器(22)上执行与所述客户事件相关的所述状态和/或存储器的修改。
2.根据权利要求1所述的方法,进一步包括步骤:
(i)如果CPU(216)运行在客户机(20)语境中,由所述CPU(216)解密或者加密所述客户存储器(22);
(ii)允许所述客户(20)通过非加密的存储器范围与外部通信;
(iii)由所述管理器(30)对所述客户存储器(22)的加密页面分页。
3.根据权利要求1或2所述的方法,进一步包括步骤:
(i)为所述客户(20)提供所述客户密钥(24),该客户密钥被使用所述CPU(216)的私钥(26)相关联的所述公钥(32)加密,以传输给所述CPU(216)的所述密钥存储器(28);
(ii)为所述CPU(216)提供所述私钥(26),该私钥被存储在所述CPU(216)中并被用于解密所述加密的客户密钥(24);
(iii)当在客户(20)语境中由所述CPU(216)运行客户或者固件代码时,所述客户密钥(24)被用于加密和解密所述客户存储器(22)。
4.根据上述权利要求中的任意一个所述的方法,进一步包括步骤:
(i)由客户端生成引导映像;
(ii)使用所述客户密钥(24)加密所述引导映像;
(iii)将所述加密的映像传输给引导盘;
(iv)由所述管理器(30)将客户(20)的所述加密的引导映像加载到所述客户存储器(22)中;
(v)启动客户(20)作为在所述CPU(216)级别的虚拟机的执行。
5.根据上述权利要求中的任意一个所述的方法,进一步包括步骤:
(i)当所述CPU(216)在客户(20)语境中时,将执行在所述客户存储器(22)上的虚拟机内的执行线程解密为明文;
(ii)当所述CPU(216)在客户(20)语境和所述客户状态(52)时,解密所述客户存储器(22),所述客户(20)语境和所述客户状态(52)被保护防止被所述管理器(30)和其他客户访问。
6.根据上述权利要求中的任意一个所述的方法,进一步包括步骤:
(i)扩展所述CPU(216)的虚拟化功能,以当所述客户存储器(22)的所述加密区域在客户(20)语境被写入时,加密所述客户存储器(22);
(ii)当客户存储器(22)的所述加密区域在客户(20)语境下被读出时,解密所述客户存储器(22);
(iii)保持所述客户存储器(22)和客户寄存器的所述加密区域能够只以加密的形式被所述管理器(30)访问。
7.根据上述权利要求中的任意一个所述的方法,进一步包括步骤:
(i)保持与所述客户事件相关的所述客户存储器(22)或寄存器的所述加密范围不被所述管理器(30)以加密的形式访问;
(ii)通过与所述客户事件相关的特定客户数据的访问方法,扩展所述CPU(216)的虚拟化功能。
8.根据上述权利要求中的任意一个所述的方法,进一步包括步骤:
(i)为所述客户存储器(22)的所述加密区域之外的所述客户(20)的I/O缓冲区和I/O控制结构定义非加密存储器区域;
(ii)由所述客户(20)使用所述客户存储器(22)的非加密区域启动所述I/O处理;
(iii)所述CPU(216)的所述虚拟化功能(34)生成客户事件;
(iv)所述管理器(30)读取所述客户事件的原因并执行所述I/O处理。
9.根据上述权利要求中的任意一个所述的方法,进一步包括步骤:
(i)由所述管理器(30)页出(paging-out)所述客户存储器(22)的页面;
(ii)一旦试图访问页出页面,提供页面错误,其向所述管理器(30)指示是否所述管理器(30)的页出操作引起该页面错误;
(iii)触发所述管理器(30)以对所述客户管理器(22)执行页入(page-in)处理。
10.根据上述权利要求中的任意一个所述的方法,进一步使用知道所述客户密钥(24)的检查过程检查客户的一致性,所述检查过程包括:
(i)所述客户(20)从所述客户存储器(22)以明文读入存储器内容,并通过到所述检查过程的安全通信路经传输所述客户存储器(22)的任意范围;
(ii)从所述管理器(30)请求所述客户存储器(22)的相同的存储器范围,并将其传输给所述检查过程;
(iii)将从所述客户(20)得到的所述存储器的内容与从所述管理器(30)得到的解密所述存储器内容的结果进行比较;
(iv)根据所述两个存储器范围的内容分发比较结果;
(v)如果所述比较结果等于0,返回所述检查过程的结果为正,否则为负。
11.一种用于在数据处理系统(210)中执行的数据处理程序(240),包括当所述数据处理程序(240)在计算机(212)上运行时,用于执行根据权利要求1-10中任意一个的方法的指令集的实现。
12.一种包括计算机可用介质的计算机程序产品,所述计算机可用介质包括计算机可读程序,其中当所述计算机可读程序在计算机(212)上执行时,使得所述计算机(212)执行用于在管理器控制的系统(10)中处理客户事件的方法,包括步骤:
(i)客户事件触发固件(70)中专用于客户事件的第一固件服务,所述客户事件与客户(20)、使用客户密钥(24)加密的客户状态(52)和客户存储器(22)相关联;
(ii)所述固件(70)处理与所述客户事件相关联的信息,包括所述客户状态(52)和所述客户存储器(22)的信息,并且向管理器(30)只展示以解密形式的所述客户状态(52)和所述客户存储器(22)的信息的子集,其中所述信息的子集被选择以满足所述管理器(30)处理所述客户事件的需要;
(iii)所述固件(70)保留所述客户状态(52)和所述客户存储器(22)的没有发送给所述管理器(30)的部分信息;
(iv)所述管理器(30)基于所述接收到的所述客户状态(52)和所述客户存储器(22)的信息的子集处理所述客户事件,并且向所述固件发送处理结果(70),所述固件(70)触发专用于所述客户事件的第二固件服务;
(v)所述固件(70)处理所述接收到的处理结果以及没有被发送给所述管理器(30)的所述客户状态(52)和所述客户存储器(22)的部分信息,生成状态和/或存储器的修改;
(vi)所述固件(70)在以加密形式的所述客户存储器(22)上执行与所述客户事件相关的所述状态和/或存储器的修改。
13.一种用于执行数据处理程序(240)的数据处理系统(210),包括用于执行根据权利要求1-10中任意一个的方法软件代码部分。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1311430.1 | 2013-06-27 | ||
GB1311430.1A GB2515536A (en) | 2013-06-27 | 2013-06-27 | Processing a guest event in a hypervisor-controlled system |
PCT/IB2014/059780 WO2014207581A2 (en) | 2013-06-27 | 2014-03-14 | Processing a guest event in a hypervisor-controlled system |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105453034A true CN105453034A (zh) | 2016-03-30 |
CN105453034B CN105453034B (zh) | 2018-11-16 |
Family
ID=48999042
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480036373.2A Expired - Fee Related CN105453034B (zh) | 2013-06-27 | 2014-03-14 | 在管理器控制的系统中处理客户事件 |
Country Status (6)
Country | Link |
---|---|
US (1) | US9690947B2 (zh) |
JP (1) | JP6347831B2 (zh) |
CN (1) | CN105453034B (zh) |
DE (1) | DE112014000965T5 (zh) |
GB (2) | GB2515536A (zh) |
WO (1) | WO2014207581A2 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107240408A (zh) * | 2017-05-11 | 2017-10-10 | 中国科学院信息工程研究所 | 针对cd‑rom光盘介质的读写管控系统 |
CN110785748A (zh) * | 2017-06-28 | 2020-02-11 | Arm有限公司 | 领域管理单元-私有存储器区域 |
CN111833108A (zh) * | 2020-07-17 | 2020-10-27 | 上海国际技贸联合有限公司 | 一种信息采集分析处理系统、方法以及存储介质 |
Families Citing this family (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015026336A1 (en) * | 2013-08-21 | 2015-02-26 | Intel Corporation | Processing data privately in the cloud |
GB2532415A (en) * | 2014-11-11 | 2016-05-25 | Ibm | Processing a guest event in a hypervisor-controlled system |
US9875047B2 (en) * | 2015-05-27 | 2018-01-23 | Red Hat Israel, Ltd. | Exit-less host memory locking in a virtualized environment |
GB2539429B (en) | 2015-06-16 | 2017-09-06 | Advanced Risc Mach Ltd | Address translation |
GB2539435B8 (en) | 2015-06-16 | 2018-02-21 | Advanced Risc Mach Ltd | Data processing memory access control, in which an owning process for a region of memory is specified independently of privilege level |
GB2539433B8 (en) * | 2015-06-16 | 2018-02-21 | Advanced Risc Mach Ltd | Protected exception handling |
GB2539428B (en) | 2015-06-16 | 2020-09-09 | Advanced Risc Mach Ltd | Data processing apparatus and method with ownership table |
US9767318B1 (en) * | 2015-08-28 | 2017-09-19 | Frank Dropps | Secure controller systems and associated methods thereof |
CN105184154B (zh) * | 2015-09-15 | 2017-06-20 | 中国科学院信息工程研究所 | 一种在虚拟化环境中提供密码运算服务的系统和方法 |
US9894061B2 (en) * | 2015-10-16 | 2018-02-13 | International Business Machines Corporation | Method for booting and dumping a confidential image on a trusted computer system |
US10102151B2 (en) | 2015-11-06 | 2018-10-16 | International Business Machines Corporation | Protecting a memory from unauthorized access |
US10019279B2 (en) | 2015-12-17 | 2018-07-10 | International Business Machines Corporation | Transparent secure interception handling |
US9841987B2 (en) | 2015-12-17 | 2017-12-12 | International Business Machines Corporation | Transparent secure interception handling |
US9898326B2 (en) * | 2016-02-23 | 2018-02-20 | Red Hat Israel, Ltd. | Securing code loading in a virtual environment |
US11188651B2 (en) * | 2016-03-07 | 2021-11-30 | Crowdstrike, Inc. | Hypervisor-based interception of memory accesses |
US10348500B2 (en) * | 2016-05-05 | 2019-07-09 | Adventium Enterprises, Llc | Key material management |
US10243746B2 (en) * | 2017-02-27 | 2019-03-26 | Red Hat, Inc. | Systems and methods for providing I/O state protections in a virtualized environment |
US10686605B2 (en) * | 2017-09-29 | 2020-06-16 | Intel Corporation | Technologies for implementing mutually distrusting domains |
US10757082B2 (en) * | 2018-02-22 | 2020-08-25 | International Business Machines Corporation | Transforming a wrapped key into a protected key |
US10949547B2 (en) * | 2018-10-05 | 2021-03-16 | Google Llc | Enclave fork support |
US11443040B2 (en) * | 2019-03-08 | 2022-09-13 | International Business Machines Corporation | Secure execution guest owner environmental controls |
US11308215B2 (en) | 2019-03-08 | 2022-04-19 | International Business Machines Corporation | Secure interface control high-level instruction interception for interruption enablement |
US11354421B2 (en) * | 2019-03-08 | 2022-06-07 | International Business Machines Corporation | Secure execution guest owner controls for secure interface control |
US11403409B2 (en) | 2019-03-08 | 2022-08-02 | International Business Machines Corporation | Program interruptions for page importing/exporting |
US10956188B2 (en) | 2019-03-08 | 2021-03-23 | International Business Machines Corporation | Transparent interpretation of guest instructions in secure virtual machine environment |
WO2021167659A1 (en) * | 2019-11-14 | 2021-08-26 | Trideum Corporation | Systems and methods of monitoring and controlling remote assets |
US11475167B2 (en) | 2020-01-29 | 2022-10-18 | International Business Machines Corporation | Reserving one or more security modules for a secure guest |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030084346A1 (en) * | 2001-11-01 | 2003-05-01 | Kozuch Michael A. | Apparatus and method for unilaterally loading a secure operating system within a multiprocessor environment |
CN1954288A (zh) * | 2004-05-08 | 2007-04-25 | 英特尔公司 | 固件接口运行时环境保护字段 |
CN102208001A (zh) * | 2010-03-30 | 2011-10-05 | 微软公司 | 硬件支持的虚拟化密码服务 |
CN102289627A (zh) * | 2010-06-11 | 2011-12-21 | 英特尔公司 | 固件映象的多拥有者部署 |
Family Cites Families (50)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5404563A (en) * | 1991-08-28 | 1995-04-04 | International Business Machines Corporation | Scheduling normally interchangeable facilities in multiprocessor computer systems |
US5371867A (en) * | 1992-11-10 | 1994-12-06 | International Business Machines Corporation | Method of using small addresses to access any guest zone in a large memory |
JP2003051819A (ja) * | 2001-08-08 | 2003-02-21 | Toshiba Corp | マイクロプロセッサ |
US8627315B2 (en) * | 2004-12-31 | 2014-01-07 | Intel Corporation | Apparatus and method for cooperative guest firmware |
US7299337B2 (en) * | 2005-05-12 | 2007-11-20 | Traut Eric P | Enhanced shadow page table algorithms |
US20080059556A1 (en) * | 2006-08-31 | 2008-03-06 | Egenera, Inc. | Providing virtual machine technology as an embedded layer within a processing platform |
US8615643B2 (en) * | 2006-12-05 | 2013-12-24 | Microsoft Corporation | Operational efficiency of virtual TLBs |
US7788464B2 (en) * | 2006-12-22 | 2010-08-31 | Microsoft Corporation | Scalability of virtual TLBs for multi-processor virtual machines |
JP2008181228A (ja) * | 2007-01-23 | 2008-08-07 | Sony Corp | 管理システムおよび管理方法、端末装置、管理サーバ、並びにプログラム |
US8688920B2 (en) * | 2007-05-14 | 2014-04-01 | International Business Machines Corporation | Computing system with guest code support of transactional memory |
US8127292B1 (en) * | 2007-06-22 | 2012-02-28 | Parallels Holdings, Ltd. | Virtualization system with hypervisor embedded in bios or using extensible firmware interface |
JP4678396B2 (ja) * | 2007-09-25 | 2011-04-27 | 日本電気株式会社 | 仮想マシンモニタをモニタするコンピュータとその方法、および仮想マシンモニタモニタプログラム |
US8156298B1 (en) * | 2007-10-24 | 2012-04-10 | Adam Stubblefield | Virtualization-based security apparatuses, methods, and systems |
US20090113111A1 (en) * | 2007-10-30 | 2009-04-30 | Vmware, Inc. | Secure identification of execution contexts |
CN101179379A (zh) | 2007-12-11 | 2008-05-14 | 中兴通讯股份有限公司 | 用于微波接入全球互通系统的固件安全管理方法 |
CN101470783B (zh) * | 2007-12-25 | 2010-09-01 | 中国长城计算机深圳股份有限公司 | 一种基于可信平台模块的身份识别方法及装置 |
US8261028B2 (en) * | 2007-12-31 | 2012-09-04 | Intel Corporation | Cached dirty bits for context switch consistency checks |
US8364983B2 (en) * | 2008-05-08 | 2013-01-29 | Microsoft Corporation | Corralling virtual machines with encryption keys |
US8381032B2 (en) * | 2008-08-06 | 2013-02-19 | O'shantel Software L.L.C. | System-directed checkpointing implementation using a hypervisor layer |
JP4643702B2 (ja) * | 2008-10-27 | 2011-03-02 | 株式会社東芝 | マイクロプロセッサ |
US20100146267A1 (en) * | 2008-12-10 | 2010-06-10 | David Konetski | Systems and methods for providing secure platform services |
US8738932B2 (en) * | 2009-01-16 | 2014-05-27 | Teleputers, Llc | System and method for processor-based security |
US10437865B1 (en) * | 2009-01-21 | 2019-10-08 | Vmware, Inc. | Computer storage deduplication |
US8538919B1 (en) * | 2009-05-16 | 2013-09-17 | Eric H. Nielsen | System, method, and computer program for real time remote recovery of virtual computing machines |
US20110041126A1 (en) * | 2009-08-13 | 2011-02-17 | Levy Roger P | Managing workloads in a virtual computing environment |
US9703586B2 (en) * | 2010-02-17 | 2017-07-11 | Microsoft Technology Licensing, Llc | Distribution control and tracking mechanism of virtual machine appliances |
JP5484117B2 (ja) * | 2010-02-17 | 2014-05-07 | 株式会社日立製作所 | ハイパーバイザ及びサーバ装置 |
US20110202765A1 (en) * | 2010-02-17 | 2011-08-18 | Microsoft Corporation | Securely move virtual machines between host servers |
WO2011101972A1 (ja) * | 2010-02-18 | 2011-08-25 | 株式会社東芝 | プログラム |
US8793439B2 (en) * | 2010-03-18 | 2014-07-29 | Oracle International Corporation | Accelerating memory operations using virtualization information |
US8671405B2 (en) * | 2010-03-31 | 2014-03-11 | Microsoft Corporation | Virtual machine crash file generation techniques |
JP5574230B2 (ja) * | 2010-04-28 | 2014-08-20 | 株式会社日立製作所 | 障害処理方法および計算機 |
US8555377B2 (en) * | 2010-04-29 | 2013-10-08 | High Cloud Security | Secure virtual machine |
US8812871B2 (en) * | 2010-05-27 | 2014-08-19 | Cisco Technology, Inc. | Method and apparatus for trusted execution in infrastructure as a service cloud environments |
CN102971740B (zh) * | 2010-07-01 | 2016-01-27 | 惠普发展公司,有限责任合伙企业 | 计算设备上的用于多个环境的用户管理框架 |
US8239620B2 (en) * | 2010-09-27 | 2012-08-07 | Mips Technologies, Inc. | Microprocessor with dual-level address translation |
EP2668608A4 (en) * | 2011-01-27 | 2017-07-05 | L-3 Communications Corporation | Internet isolation for avoiding internet security threats |
JP5770840B2 (ja) * | 2011-05-16 | 2015-08-26 | 株式会社日立製作所 | 計算機システム及びノード探索方法 |
JP5365664B2 (ja) * | 2011-06-20 | 2013-12-11 | 富士通セミコンダクター株式会社 | セキュアプロセッサ |
US8984478B2 (en) * | 2011-10-03 | 2015-03-17 | Cisco Technology, Inc. | Reorganization of virtualized computer programs |
US9256552B2 (en) * | 2011-11-21 | 2016-02-09 | Cisco Technology, Inc. | Selective access to executable memory |
US9146847B2 (en) * | 2011-12-14 | 2015-09-29 | Vmware, Inc. | Optimizing for page sharing in virtualized java virtual machines |
US8918608B2 (en) * | 2012-01-09 | 2014-12-23 | Ravello Systems Ltd. | Techniques for handling memory accesses by processor-independent executable code in a multi-processor environment |
US8959577B2 (en) * | 2012-04-13 | 2015-02-17 | Cisco Technology, Inc. | Automatic curation and modification of virtualized computer programs |
US10152409B2 (en) * | 2012-04-30 | 2018-12-11 | Vmware, Inc. | Hybrid in-heap out-of-heap ballooning for java virtual machines |
US10063380B2 (en) * | 2013-01-22 | 2018-08-28 | Amazon Technologies, Inc. | Secure interface for invoking privileged operations |
US9503268B2 (en) * | 2013-01-22 | 2016-11-22 | Amazon Technologies, Inc. | Securing results of privileged computing operations |
JP6072084B2 (ja) * | 2013-02-01 | 2017-02-01 | 株式会社日立製作所 | 仮想計算機システムおよび仮想計算機システムのデータ転送制御方法 |
US9606818B2 (en) * | 2013-03-14 | 2017-03-28 | Qualcomm Incorporated | Systems and methods of executing multiple hypervisors using multiple sets of processors |
US9880773B2 (en) * | 2013-03-27 | 2018-01-30 | Vmware, Inc. | Non-homogeneous disk abstraction for data oriented applications |
-
2013
- 2013-06-27 GB GB1311430.1A patent/GB2515536A/en not_active Withdrawn
-
2014
- 2014-03-14 WO PCT/IB2014/059780 patent/WO2014207581A2/en active Application Filing
- 2014-03-14 JP JP2016522898A patent/JP6347831B2/ja not_active Expired - Fee Related
- 2014-03-14 DE DE112014000965.2T patent/DE112014000965T5/de active Pending
- 2014-03-14 GB GB1600172.9A patent/GB2530225B/en active Active
- 2014-03-14 US US14/899,166 patent/US9690947B2/en not_active Expired - Fee Related
- 2014-03-14 CN CN201480036373.2A patent/CN105453034B/zh not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030084346A1 (en) * | 2001-11-01 | 2003-05-01 | Kozuch Michael A. | Apparatus and method for unilaterally loading a secure operating system within a multiprocessor environment |
CN1685297A (zh) * | 2001-11-01 | 2005-10-19 | 英特尔公司 | 在多处理器环境中单方地加载安全操作系统的装置和方法 |
CN1954288A (zh) * | 2004-05-08 | 2007-04-25 | 英特尔公司 | 固件接口运行时环境保护字段 |
CN102208001A (zh) * | 2010-03-30 | 2011-10-05 | 微软公司 | 硬件支持的虚拟化密码服务 |
CN102289627A (zh) * | 2010-06-11 | 2011-12-21 | 英特尔公司 | 固件映象的多拥有者部署 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107240408A (zh) * | 2017-05-11 | 2017-10-10 | 中国科学院信息工程研究所 | 针对cd‑rom光盘介质的读写管控系统 |
CN107240408B (zh) * | 2017-05-11 | 2019-05-10 | 中国科学院信息工程研究所 | 针对cd-rom光盘介质的读写管控系统 |
CN110785748A (zh) * | 2017-06-28 | 2020-02-11 | Arm有限公司 | 领域管理单元-私有存储器区域 |
CN110785748B (zh) * | 2017-06-28 | 2023-09-12 | Arm有限公司 | 领域管理单元-私有存储器区域 |
US11874778B2 (en) | 2017-06-28 | 2024-01-16 | Arm Limited | Realm management unit-private memory regions |
CN111833108A (zh) * | 2020-07-17 | 2020-10-27 | 上海国际技贸联合有限公司 | 一种信息采集分析处理系统、方法以及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN105453034B (zh) | 2018-11-16 |
GB201311430D0 (en) | 2013-08-14 |
JP2016523421A (ja) | 2016-08-08 |
GB201600172D0 (en) | 2016-02-17 |
GB2530225A (en) | 2016-03-16 |
JP6347831B2 (ja) | 2018-06-27 |
DE112014000965T5 (de) | 2015-12-03 |
US20160148001A1 (en) | 2016-05-26 |
US9690947B2 (en) | 2017-06-27 |
WO2014207581A3 (en) | 2015-04-09 |
WO2014207581A2 (en) | 2014-12-31 |
GB2530225B (en) | 2016-10-19 |
GB2515536A (en) | 2014-12-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105453034A (zh) | 在管理器控制的系统中处理客户事件 | |
US10599489B2 (en) | Processing a guest event in a hypervisor-controlled system | |
US9934407B2 (en) | Apparatus for and method of preventing unsecured data access | |
CN101661544B (zh) | 在主显示器内提供安全显示窗口的方法和设备 | |
CN102271037B (zh) | 基于在线密钥的密钥保护装置 | |
CN103069428A (zh) | 不可信云基础设施中的安全虚拟机引导 | |
US7496768B2 (en) | Providing secure input and output to a trusted agent in a system with a high-assurance execution environment | |
US10083128B2 (en) | Generating memory dumps | |
KR20160097892A (ko) | 가상화 기반의 보안 서비스 제공 장치 및 제공 방법 | |
US8782798B2 (en) | Method and apparatus for protecting data using a virtual environment | |
US20230236870A1 (en) | Safe entropy source for encrypted virtual machines | |
Anitha et al. | Secure virtual machine migration in virtualized environment | |
KR101069500B1 (ko) | 네크워크 시스템에서 가상화 및 신뢰 플랫폼 모듈을 이용한데이터 보안 처리 방법 및 기록매체 | |
KR102565414B1 (ko) | 데이터 처리 가속기에 사용되는, 난독화 유닛에 의해 난독화 를 진행하는 데이터 전송 | |
EP4174694A1 (en) | Method for securely executing an application | |
Zegzhda et al. | Ensuring Secure Data Input/Output Operations for SGX ENCLAVE | |
KR101205513B1 (ko) | 가상화를 이용한 키보드 보안 방법 및 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20181116 |
|
CF01 | Termination of patent right due to non-payment of annual fee |