用于中断使能的安全接口控件高级指令拦截

文档序号:144464 发布日期:2021-10-22 浏览:34次 >En<

阅读说明:本技术 用于中断使能的安全接口控件高级指令拦截 (Advanced instruction interception for interrupt-enabled security interface controls ) 是由 C·博尔特雷格 C·英布伦达 F·布萨巴 J·布拉德伯里 L·海勒 于 2020-02-28 设计创作,主要内容包括:由计算机的安全接口控件提供了一种方法,该安全接口控件针对使能中断的指令提供了部分指令解释。安全接口控件从安全客户机存储提取程序状态字或控制寄存器值。安全接口控件向非受信实体通知客户机中断掩码更新。非受信实体在计算机的硬件上执行,并且通过安全接口控件与计算机的硬件通信,以支持在非受信实体上执行的安全实体的操作。响应于通知客户机中断掩码更新,安全接口控件从非受信实体接收对呈现最高优先级的使能客户机中断的请求。当中断的注入被确定为有效时,安全接口控件将中断信息移动到客户机前缀页中,并且将中断注入到安全实体中。(A method is provided by a secure interface control of a computer that provides a partial instruction interpretation for an interrupt-enabled instruction. The secure interface control extracts a program status word or control register value from the secure client store. The secure interface control notifies the untrusted entity of the client interrupt mask update. The untrusted entity executes on the hardware of the computer and communicates with the hardware of the computer through the secure interface control to support operations of the secure entity executing on the untrusted entity. In response to notifying the client of the interrupt mask update, the secure interface control receives a request from the untrusted entity for an enabled client interrupt that exhibits a highest priority. When the injection of the interrupt is determined to be valid, the secure interface control moves interrupt information into the client prefix page and injects the interrupt into the secure entity.)

用于中断使能的安全接口控件高级指令拦截

背景技术

本发明一般涉及计算机技术,并且更具体地,涉及用于中断使能的安全接口控件高级指令拦截。

云计算和云存储向用户提供在第三方数据中心中存储和处理他们的数据的能力。云计算促进了快速且容易地为客户供应虚拟机(VM)而无需客户购买硬件或为物理服务器提供占地面积的能力。客户可以根据客户的变化的偏好或要求来容易地扩展或收缩VM。通常,云计算提供商供应物理上驻留在提供商的数据中心处的服务器上的VM。客户通常关心VM中的数据的安全性,特别是因为计算提供商通常在同一服务器上存储一个以上客户的数据。客户可能期望在他们自己的代码/数据与云计算提供商的代码/数据之间的安全性,以及在他们自己的代码/数据与在提供商的位置处运行的其他VM的代码/数据之间的安全性。此外,客户可能期望来自提供商的管理员的安全性,以及抵御来自在机器上运行的其它代码的潜在安全性破坏。

为了处理这种敏感情形,云服务提供商可以实现安全控制以确保适当的数据隔离和逻辑存储分离。在实现云基础设施中广泛使用虚拟化导致了对云服务的客户的独特安全问题,因为虚拟化改变了操作系统(OS)与底层硬件(无论是计算、存储还是甚至联网硬件)之间的关系。这引入了虚拟化作为附加层,其本身必须被正确地配置、管理和保护。

通常,在主机管理程序的控制下作为客户机运行的VM依赖于该管理程序为该客户机透明地提供虚拟化服务。这些服务包括存储器管理、指令仿真和中断处理。

在存储器管理的情况下,VM可以将其数据从磁盘中移动(页调入(page-in))以驻留在存储器中,并且VM还可以将其数据移回(页调出(page-out))到磁盘中。当页驻留在存储器中时,VM(客户机)使用动态地址转换(DAT)来将存储器中的页从客户机虚拟地址映射到客户机绝对地址。此外,主机管理程序具有其自己的针对存储器中的客户机页的DAT映射(从主机虚拟地址到主机绝对地址),并且它可以独立地且对客户机透明地将客户机页页调入和页调出存储器。通过主机DAT表,管理程序提供两个单独客户机VM之间的客户机存储器的存储器隔离或共享。主机还能够访问客户机存储器以在必要时代表客户机模拟客户机操作。

在指令仿真和中断处理的情况下,当客户机基于由管理程序设置的控制来执行特定指令时,机器将控制返回给管理程序,使得管理程序可以代表客户机仿真该特定指令。例如,加载程序状态字(LPSW)指令或加载控制(LCTL)指令可以由管理程序仿真,使得它可以监视中断使能并且以适当的优先级向客户机呈现由管理程序维护的未处理中断。

发明内容

根据一个或多个实施例,由计算机的安全接口控件提供了一种方法,该安全接口控件针对使能中断的指令提供了部分指令解释。安全接口控件从安全客户机存储提取程序状态字或控制寄存器值。安全接口控件向非受信实体通知客户机中断掩码更新。非受信实体在计算机的硬件上执行,并且通过安全接口控件与计算机的硬件通信,以支持在非受信实体上执行的安全实体的操作。响应于通知客户机中断掩码更新,安全接口控件从非受信实体接收对呈现最高优先级的已使能客户机中断的请求。当中断的注入被确定为有效时,安全接口控件将中断信息移动到客户机前缀页中,并且将中断注入到安全实体中。本文的一个或多个实施例的技术效果和益处包括通过使该复杂代码驻留在单个位置而不允许非受信实体访问安全客户机状态或存储器来降低复杂度和风险。

根据一个或多个实施例或上述方法实施例,所述方法还可以包括由所述安全实体发布正在由所述非受信实体监视的加载程序状态字或加载控制。

根据一个或多个实施例或上述方法实施例中的任何一个,所述方法还可以包括由所述安全接口控件响应于所述提取而加载所述程序状态字或控制寄存器。

根据一个或多个实施例或以上方法实施例中的任何一个,该方法可以进一步包括由该非受信实体对未处理且已使能的中断进行优先级排序以确定最高优先级的已使能客户机中断。

根据一个或多个实施例或以上方法实施例中的任何一个,该方法可以进一步包括由非受信实体将针对最高优先级的已使能客户机中断的中断信息存储在非安全存储中。

根据一个或多个实施例或上述方法实施例中的任何一个,非受信实体可以在状态描述中提供中断信息。

根据一个或多个实施例或上述方法实施例中的任何一个,非受信实体可以发布向安全接口控件提供中断信息的指令,并且中断信息作为用于指令的参数被传递。

根据一个或多个实施例或上述方法实施例中的任何一个,该方法可以进一步包括当中断的注入被确定为无效时,由安全接口控件向非受信实体发布异常。本文的一个或多个实施例的技术效果和益处包括通过使该复杂代码驻留在单个位置而不允许非受信实体访问安全客户机状态或存储器来降低复杂度和风险。

根据一个或多个实施例或上述方法实施例中的任何一个,该方法还可以包括由安全实体响应于接收到所注入的中断而执行中断处理程序。

根据一个或多个实施例或上述方法实施例中的任何一个,安全实体可以包括安全客户机,并且非受信实体包括管理程序。

根据一个或多个实施例,上述方法实施例中的任何一个可以被实现为计算机程序产品或系统。

通过本发明的技术实现额外特征及优点。本发明的其它实施例和方面在这里详细描述,并且被认为是本发明的一部分。为了更好地理解本发明的优点和特征,请参考说明书和附图。

附图说明

在说明书的结尾处的权利要求中特别指出并清楚地要求了本文描述的专有权的细节。从下面结合附图的详细描述中,本发明的实施例的前述和其它特征和优点将变得显而易见,其中:

图1示出了根据本发明的一个或多个实施例的区域安全性的表;

图2示出了根据本发明的一个或多个实施例的用于执行DAT的虚拟地址空间和绝对地址空间;

图3示出了根据本发明的一个或多个实施例的用于支持在管理程序下运行的虚拟机(VM)的嵌套的多部分DAT;

图4示出了根据本发明的一个或多个实施例的安全客户机存储装置的映射;

图5示出了根据本发明的一个或多个实施例的动态地址转换(DAT)操作的系统示意图;

图6示出了根据本发明的一个或多个实施例的安全接口控件存储器的系统示意图;

图7示出了根据本发明的一个或多个实施例的导入操作的处理流程;

图8示出了根据本发明的一个或多个实施例的导入操作的处理流程;

图9示出了根据本发明的一个或多个实施例的被捐赠(donated)的存储器操作的过程;

图10示出了根据本发明的一个或多个实施例的将非安全管理程序页转换为安全接口控件的安全页的处理流程;

图11示出了根据本发明的一个或多个实施例的由安全接口控件进行的安全存储访问的处理流程;

图12示出了根据本发明的一个或多个实施例的由安全接口控件和由硬件进行的访问标记的处理流程;

图13示出了根据本发明的一个或多个实施例的由程序和安全接口控件支持安全和非安全访问的转换的处理流程;

图14示出了根据本发明的一个或多个实施例的具有通过程序和安全接口进行的安全存储保护的DAT的处理流程;

图15示出了根据本发明的一个或多个实施例的用于中断使能的安全接口控件高级指令拦截的处理流程;

图16示出了根据本发明的一个或多个实施例的用于中断使能的安全接口控件高级指令拦截的处理流程;

图17示出了根据本发明的一个或多个实施例的云计算环境;

图18示出了根据本发明的一个或多个实施例的抽象模型层;

图19示出了根据本发明的一个或多个实施例的系统;以及

图20示出了根据本发明的一个或多个实施例的节点。

这里描述的图是说明性的。在不脱离本发明的精神的情况下,可以对其中描述的图或操作进行许多变化。例如,可以以不同的顺序执行动作,或者可以添加、删除或修改动作。此外,术语“耦接”及其变型描述了在两个元件之间具有通信路径,并且不暗示元件之间的直接连接,而在它们之间没有中间元件/连接。所有这些变型都被认为是说明书的一部分。

具体实施方式

本文的一个或多个实施例利用软件和机器之间的高效、轻量的接口来提供附加的安全性。在这种情况下,该接口用于允许安全接口控件仿真中断使能指令的大部分(例如,加载程序状态字或加载控制),同时仍然允许非受信实体代表安全实体维护未处理中断。非受信实体需要该未处理中断结构,以基于安全实体未在硬件上被分派来处理中断的优先级排序。本文的一个或多个实施例的技术效果和益处包括通过使该复杂代码驻留在单个位置而不允许非受信实体访问安全客户机状态或存储器来降低复杂度和风险。

在主机管理程序(例如,非受信实体)的控制下作为客户机运行的虚拟机(VM)依赖于该管理程序为该客户机透明地提供虚拟化服务。这些服务可以应用于安全实体和另一个非受信实体之间的任何接口,该接口传统上允许该另一个实体访问安全资源。如前所述,这些服务可以包括但不限于存储器管理、指令仿真和中断处理。例如,对于中断和异常注入,管理程序通常读取和/或写入客户机的前缀区域(低核)。如本文所使用的术语“虚拟机”或“VM”指的是物理机(计算设备、处理器等)及其处理环境(操作系统(OS)、软件资源等)的逻辑表示。VM作为在底层主机(物理处理器或处理器组)上执行的软件来被维护。从用户或软件资源的角度来看,VM看起来是它自己的独立物理机器。这里使用的术语“管理程序”和“VM监视器(VMM)”是指管理和允许多个VM在同一主机上使用多个(有时是不同的)OS来执行的处理环境或平台服务。应当理解,部署VM包括:VM的安装过程和VM的激活(或启动)过程。在另一个示例中,部署VM包括:VM的激活(或启动)过程(例如,在VM被事先安装或已经存在的情况下)。

在当前可获得的技术方案中,管理程序(例如,或基于开源软件内核的虚拟机(KVM))通过发布使得开始解释执行(SIE)进入毫码被调用的SIE指令来分派物理处理单元或主机服务器上的新VM虚拟CPU(vCPU)。毫码是作为处理器硬件的扩展而操作的受信固件。SIE指令的操作数是控制块,被称为状态描述,其包含客户机状态。在SIE进入期间,该客户机状态(包括通用寄存器和控制寄存器、客户机指令地址和客户机程序状态字(PSW))由毫码加载到硬件中。这允许客户机vCPU在物理处理器上运行。当vCPU在硬件上运行时,客户机状态被维持在硬件中。在某一点,硬件/毫码必须将控制返回给管理程序。这通常被称为SIE退出。例如,如果该vCPU执行需要由管理程序仿真的指令,或者如果vCPU时间片(即,分配给该vCPU在物理处理器上运行的时间)到期,则可能需要这种处理。现有的管理程序依赖于使用此类接口通过SIE指令来分派vCPU。

为了促进和支持安全客户机(例如安全实体),在管理程序和安全客户机之间需要附加的安全性而不依赖于管理程序的情况下存在技术挑战,使得管理程序不能从VM访问数据,并且因此不能以如上所述的方式来提供服务。

本文描述的安全执行提供了一种硬件机制,以保证安全存储装置和非安全存储装置之间以及属于不同安全用户的安全存储装置之间的隔离。对于安全客户机,提供在“非受信”的非安全管理程序和安全客户机之间的附加安全性。为了这样做,管理程序通常代表客户机所做的许多功能需要被结合到机器中。本文描述了一种新的安全接口控件(本文也称为“UV”),以提供管理程序和安全客户机之间的安全接口。术语安全接口控件和UV在这里可互换使用。安全接口控件与硬件合作工作以提供这种附加的安全性。

在一个示例中,安全接口控件在内部、安全和受信的硬件和/或固件中实现。对于安全客户机或实体,安全接口控件提供安全环境的初始化和维护以及这些安全实体在硬件上的分派的协调。当安全客户机正在活动地使用数据并且它驻留在主机存储装置中时,它被“不受阻碍地”保持在安全存储中。安全客户机存储装置可以由该单个安全客户机访问,这由硬件严格执行。也就是说,硬件阻止任何非安全实体(包括管理程序或其它非安全客户机)或不同的安全客户访问该数据。在该示例中,安全接口控件作为最低级别的固件的受信部分运行。最低级别或毫码实际上是硬件的扩展,并且用于实现例如在来自IBM的z/体系结构中定义的复杂指令和功能。毫码可以访问存储装置的所有部分,该存储装置在安全执行的上下文中包括其自己的安全UV存储装置、非安全管理程序存储装置、安全客户机存储装置和共享存储装置。这允许它提供安全客户机或支持该客户机的管理程序所需的任何功能。安全接口控件还具有对硬件的直接访问,这允许硬件在由安全接口控件建立的条件的控制下有效地提供安全检查。

根据本发明的一个或多个实施例,在硬件中提供安全存储位以标记安全页。当该位被设置时,硬件阻止任何非安全客户机或管理程序访问该页。此外,每个安全或被共享的页被注册在区域安全表中,并且被标记有安全客户域标识(ID)。当该页是非安全的时,它在区域安全性表中被如此标记。该区域安全表由安全接口控件按分区或区域来维护。每个主机绝对页有一个条目,硬件在安全实体进行的任何DAT转换时使用该条目来验证页仅由拥有它的安全客户机或实体访问。

根据本发明的一个或多个实施例,软件使用UV调用(UVC)指令来请求安全接口控件执行特定动作。例如,UVC指令可以由管理程序用于初始化安全接口控件、创建安全客户机域(例如,安全客户机配置)以及在该安全配置内创建虚拟CPU。它也可以用于导入(解密和分配给安全客户域)和导出(加密和允许主机访问)安全客户机页,作为管理程序页调入(page-in)或页调出(page-out)操作的一部分。此外,安全客户机具有定义与管理程序共享的存储、使安全存储被共享、以及使被共享的存储安全的能力。

为了提供安全性,当管理程序透明地将安全客户机数据页调入和页调出时,与硬件一起工作的安全接口控件提供并保证数据的解密和加密。为了实现这一点,当将客户机安全数据页调入和页调出时,需要管理程序发布新的UVC。基于在这些新UVC期间由安全接口控件建立的控制,硬件将保证这些UVC确实由管理程序发布。

在这个新的安全环境中,每当管理程序页调出安全页,需要发布来自安全存储(导出)UVC的新转换。响应于该导出UVC,UV或安全接口控件将:1)指示页被UV“锁住”,2)加密页,3)将页设置为非安全,以及4)重置UV锁。在完成了导出UVC之后,管理程序现在就可以页调出已加密的客户机页。

此外,每当管理程序页调入安全页,它必须发布去往安全存储(导入)UVC的新转换。响应于该导入UVC,UV或安全接口控件将:1)在硬件中将页标记为安全的,2)指示页被UV“锁住”,3)解密页,4)设置对特定安全客户域的权限,以及5)重置UV锁。无论安全实体何时进行访问,硬件在转换期间对该页执行授权检查。这些检查包括:1)用于验证页确实属于试图访问它的安全客户域的检查,以及2)用于确保管理程序在该页已经驻留在客户机存储器中时没有改变该页的主机映射的检查。在页被标记为安全的之后,硬件阻止管理程序或非安全客户机VM访问任何安全页。附加的转换步骤阻止由另一个安全VM访问,并且阻止由管理程序重新映射。

存在管理程序代表非安全客户机来仿真指令的情况。然而,对于安全客户机,安全接口控件必须介入并提供可能允许“非受信”管理程序折中(compromise)安全客户机状态的任何功能。出于多种原因,这种干预可能是必要的。例如,对该指令的仿真可能需要访问安全客户机存储器或安全客户机设施。在一些情况下,UV将完全模拟指令。在其它情况下,安全接口控件将完成指令的仿真,但是将向管理程序通知对客户机状态的某些更新。在其他情况下,接口用于在安全接口控件和管理程序之间传递有限的信息,而不损害客户机状态。该方法利用安全接口控件和管理程序之间的轻量级接口,允许我们在这种情况下最小化安全接口控件中的未处理中断结构的复制。该未处理中断结构是。现在,将参考图1,根据本发明的一个或多个实施例,一般性地示出了用于区域安全性的表100。图1所示的区域安全性表100由安全接口控件维护,并由安全接口控件和硬件用来保证对安全实体所访问的任何页的安全访问。区域安全性表100通过主机绝对地址110来编索引。也就是说,对于主机绝对存储的每个页存在一个条目。每个条目包括用于验证该条目属于进行访问的安全实体的信息。

此外,如图1所示,区域安全性表100包括安全域ID 120(标识与该页相关联的安全域);UV位130(指示该页被捐赠给安全接口控件并且由安全接口控件拥有);禁用地址比较(DA)位140(用于在某些情况下,例如当定义为主机绝对的安全接口控件页不具有相关联的主机虚拟地址时,禁用主机地址对比较);共享(SH)位150(指示该页与非安全管理程序共享)和主机虚拟地址160(指示为该主机绝对地址注册的主机虚拟地址,其被称为主机-地址对)。注意,主机-地址对指示主机绝对和相关联的、注册的主机虚拟地址。主机-地址对表示该页的映射,在由管理程序导入之后,并且该比较保证主机在该页正由客户机使用时不重新映射该页。

动态地址转换(DAT)用于将虚拟存储映射到真实(real)存储。当客户机VM在管理程序的控制下作为可调页的客户机运行时,客户机使用DAT来管理驻留在其存储器中的页。另外,当页驻留在其存储器中时,主机独立地使用DAT来管理那些客户机页(连同其自己的页)。管理程序使用DAT来提供不同VM之间的存储的隔离和/或共享,以及阻止客户机访问管理程序存储。当客户机在非安全模式下运行时,管理程序拥有对所有客户机的存储的访问权。

DAT使一个应用能够与另一个应用隔离,同时仍然允许它们共享公共资源。而且,它允许VM的实现,VM可以用于设计和测试OS的新版本以及应用程序的并发处理。虚拟地址标识虚拟存储中的位置。地址空间是虚拟地址连同特定变换参数(包括DAT表)的连续序列,所述特定变换参数允许将每个虚拟地址转换成相关联的绝对地址,所述绝对地址利用存储中的字节位置来标识该地址。

DAT使用多表查找来将虚拟地址转换成相关联的绝对地址。该表结构通常由存储管理器定义和维护。该存储管理器通过页调出一页,例如调入另一页,在多个程序之间透明地共享绝对存储。当页被页调出时,存储管理器将例如在相关联的页表中设置无效位。当程序试图访问被页调出的页时,硬件将向存储管理器呈现程序中断,通常被称为页错误。作为响应,存储管理器将页调入所请求的页,并重置无效位。这都是对程序透明地完成的,并且允许存储管理器虚拟化存储并在各种不同用户之间共享它。

当CPU使用虚拟地址来访问主存储器时,首先通过DAT将其转换为真实地址,然后通过加前缀转换为绝对地址。用于特定地址空间的最高级别表的指定(起源和长度)被称为地址空间控制元素(ASCE),并且定义了相关联的地址空间。

现在转向图2,根据本发明的一个或多个实施例,一般地示出了用于执行DAT的示例虚拟地址空间202和204以及绝对地址空间206。在图2所示的示例中,存在两个虚拟地址空间:虚拟地址空间202(由地址空间控制元素(ASCE)A 208定义)和虚拟地址空间204(由ASCE B 210定义)。虚拟页A1.V 212a1,A2.V 212a2和A3.V 212a3由存储管理器在多表(段230和页表232a、232b)查找中使用ASCE A 208映射到绝对页A1.A 220a1,A2.A 220a2和A3.A 220a3。类似地,虚拟页B1.V 214b1和B2.V 214b2使用ASCE B 210在双表234和236查找中分别被映射到绝对页B1.A 222b1和B2.A 222b2。

现在转向图3,根据本发明的一个或多个实施例,一般地示出了用于支持在管理程序下运行的VM的嵌套的多部分DAT转换的示例。在图3所示的示例中,客户机A虚拟地址空间A 302(由客户机ASCE(GASCE)A 304定义)和客户机B虚拟地址空间B 306(由GASCEB 308定义)都驻留在被共享的主机(管理程序)虚拟地址空间325中。如图所示,属于客户机A的虚拟页A1.GV 310a1,A2.GV 310a2和A3.GV 310a3由客户机A存储管理器使用GASCEA 304分别映射到客户机绝对页A1.HV 340a1,A2.HV 340a2和A3.HV 340a3;属于客户机B的虚拟页B1.GV320b1和B2.GV 320b2由客户机B存储管理器使用GASCEB 308独立地分别映射到客户机绝对页B1.HV 360b1和B2.HV 360b2。在该示例中,这些客户机绝对页直接映射到被共享的主机虚拟地址空间325中,并且随后经历到主机绝对地址空间330的附加主机DAT转换。如图所示,主机虚拟地址A1.HV 340a1,A3.HV 340a3和B1.HV 360b1由主机存储管理器使用主机ASCE(HASCE)350映射到A1.HA 370a1,A3.HA 370a3和B1.HA 370b1。属于客户机A的主机虚拟地址A2.HV 340a2和属于客户机B的B2.HV 360b2都被映射到同一主机绝对页AB2.HA380。这使得数据能够在这两个客户机之间共享。在客户机DAT转换期间,客户机表地址中的每一个被作为客户机绝对值来对待,并经历附加的嵌套主机DAT转换。

这里描述的本发明的实施例提供了安全的客户机和UV存储保护。禁止非安全客户机和管理程序对安全存储装置的访问。管理程序规定,对于给定的驻留安全客户机页,以下情况发生。相关联的主机绝对地址仅可通过单个管理程序(主机)DAT映射来访问。也就是说,存在映射到被分配给安全客户机的任何给定主机绝对地址的单个主机虚拟地址。与给定安全客户机页相关联的管理程序DAT映射(主机虚拟到主机绝对)在其被页调入时不改变。针对单个安全客户机映射与安全客户机页相关联的主机绝对页。

根据本发明的一个或多个实施例,还禁止安全客户机之间的存储共享。在单个安全客户机和受该安全客户机控制的管理程序之间共享存储。UV存储是安全存储,并且可由安全控件接口访问,但不可由客户机/主机访问。由管理程序将存储分配给安全控件接口。根据本发明的一个或多个实施例,硬件和安全控件接口禁止对这些规则的任何尝试违反。

现在转向图4,根据本发明的一个或多个实施例一般地示出了安全客户机存储的映射的示例。图4类似于图3,除了图4的示例不允许在安全客户机A和安全客户机B之间共享存储之外。在图3的非安全示例中,属于客户机A的主机虚拟地址A2.HV 340a2和属于客户机B的B2.HV 360b2两者都被映射到同一主机绝对页AB2.HA 380。在图4的安全客户机存储示例中,属于客户机A的主机虚拟地址A2.HV 340a2映射到主机绝对地址A2.HA 490a,而属于客户机B的B2.HV 360b2映射到它自己的B2.HA 490b。在该示例中,在安全客户机之间不存在共享。

当安全客户机页驻留在磁盘上时,它被加密。当管理程序页调入安全客户机页时,它发布UV调用(UVC),这使得安全控件接口将该页标记为安全(除非是被共享的)、解密它(除非是被共享的)、以及将它注册(在区域安全性表中)为属于适当的安全客户机(例如客户机A)。此外,它将相关联的主机虚拟地址(例如,A3.HV 340a3)注册到该主机绝对页(称为主机地址对)。如果管理程序未能发布正确的UVC,则它在试图访问安全客户机页时接收到异常。当管理程序页调出客户机页时,发布类似的UVC,其在将客户机页标记为非安全并将其在区域安全性表中注册为非安全之前加密客户机页(除非是被共享的)。

在具有五个给定主机绝对页K、P、L、M和N的示例中,每个主机绝对页在管理程序将它们页调入时被安全控件接口标记为安全。这阻止了非安全客户机和管理程序访问它们。主机绝对页K、P和M在管理程序将它们页调入时被注册为属于客户机A;主机绝对页L和N在由管理程序页调入时被注册到客户机B。共享页,即在单个安全客户机和管理程序之间共享的页,在页调度期间不被加密或解密。它们没有被标记为安全的(允许管理程序访问),而是在区域安全性表中被注册有单个安全客户域。

根据本发明的一个或多个实施例,当非安全客户机或管理程序试图访问由安全客户机拥有的页时,管理程序接收安全存储访问(PIC3D)异常。不需要附加的转换步骤来确定这一点。

根据一个或多个实施例,当安全实体试图访问页时,硬件执行附加转换检查,该附加转换检查验证存储确实属于该特定安全客户机。如果不是,则向管理程序呈现非安全访问(PIC3E)异常。另外,如果正被转换的主机虚拟地址与来自区域安全性表中的所注册的主机地址对的主机虚拟地址不匹配,则识别出安全存储违规('3F'x)异常。为了能够与管理程序共享,只要转换检查允许访问,安全客户机就可以访问未被标记为安全的存储装置。

现在转到图5,根据本发明的一个或多个实施例一般地示出了DAT操作的系统示意图500。系统示意图500包括主机主要虚拟地址空间510和主机归属虚拟地址空间520,从它们中页被转换(例如,参见主机DAT转换525;注意,虚线表示通过DAT转换525的映射)到管理程序(主机)绝对地址空间530。例如,图5示出了由两个不同的主机虚拟地址空间共享主机绝对存储,以及不仅在两个客户机之间而且还与主机本身共享那些主机虚拟地址之一。在这点上,主机主要虚拟地址空间510和主机归属虚拟地址空间520是两个主机虚拟地址空间的示例,每个主机虚拟地址空间分别由单独的ASCE(主机主要ASCE(HPASCE)591和主机归属ASCE(HHASCE)592)寻址。注意,所有安全接口控件存储(虚拟和真实)都由管理程序捐赠并被标记为安全的。在被捐赠之后,安全接口控件存储仅可以由安全接口控件访问,只要存在相关联的安全实体。

如图所示,主机主要虚拟地址空间510包括客户机A绝对页A1.HV,客户机A绝对页A2.HV,客户机B绝对页B1.HV,以及主机虚拟页H3.HV。主机归属虚拟地址空间520包括安全接口控件虚拟页U1.HV,主机虚拟页H1.HV,以及主机虚拟页H2.HV。

根据本发明的一个或多个实施例,在这里描述的区域安全性表中,所有安全客户机(例如,安全客户机A和安全客户机B)存储被注册为属于安全客户机配置,并且相关联的主机虚拟地址(例如,A1.HV、A2.HV、B1.HV)也被注册为主机地址对的一部分。在一个或多个实施例中,所有安全客户机存储被映射在主机主要虚拟空间中。此外,所有安全接口控件存储也在区域安全性表中被注册为属于安全接口控件,并且可以基于相关联的安全客户域在区域安全性表中被进一步区分。根据本发明的一个或多个实施例,UV虚拟存储装置被映射在主机归属虚拟空间中,并且相关联的主机虚拟地址被注册为主机地址对的一部分。根据一个或多个实施例,UV真实存储装置不具有相关联的主机虚拟映射,并且区域安全性表中的DA位(其指示虚拟地址比较被禁用)被设置成指示这一点。主机存储装置被标记为非安全的,并且还在区域安全性表中被注册为非安全的。

因此,在‘客户机绝对=主机虚拟’的情况下,管理程序(主机)主要DAT表(由HPASCE 591定义)如下转换主机主要虚拟地址空间510的页:客户机A绝对页A1.HV被映射到属于安全客户机A的主机绝对A1.HA;客户机A绝对页A2.HV被映射到属于安全客户机A的主机绝对A2.HA;客户机B绝对页B1.HV被映射到属于安全客户机B的主机绝对B1.HA;以及主机虚拟页H3.HV被映射到主机绝对页H3.HA非安全主机(并且由于它是非安全的,所以没有主机地址对)。此外,管理程序(主机)归属DAT表(由HHASCE 592定义)如下转换主机归属虚拟地址空间520的页:安全接口控件虚拟页U1.HV被映射到被定义为安全UV虚拟的主机绝对页U1.HA;主机虚拟页H1.HV被映射到被定义为非安全的主机绝对页H1.HA;以及主机虚拟页H2.HV被映射到被定义为非安全的主机绝对页H2.HA。不存在与任一H1.HA或H2.HA相关联的主机地址对,是因为它们是非安全的。

在操作中,如果安全客户机试图访问被分配给安全接口控件的安全页,则硬件向管理程序呈现安全存储违规(‘3F’X)异常。如果非安全客户机或管理程序试图访问任何安全页(包括被分配给安全接口控件的那些页),则硬件向管理程序呈现安全存储访问(‘3D’X)异常。或者,可以针对对安全接口控件空间进行的尝试访问呈现错误状况。如果硬件在安全接口控件访问中检测到安全分配中的不匹配(例如,存储装置在区域安全性表中被注册为属于安全客户机而不是属于安全接口控件,或者在所使用的主机地址对与所注册的对之间存在不匹配),则呈现检查。

换句话说,主机主要虚拟地址空间510包括主机虚拟页A1.HV和A2.HV(属于安全客户机A)和B1.HV(属于安全客户机B),其分别映射到主机绝对A1.HA、A2.HA和B1.HA。另外,主机主要虚拟地址空间510包括主机(管理程序)页H3.HV,其映射到主机绝对H3.HA。主机归属虚拟空间520包括两个主机虚拟页H1.HV和H2.HV,其映射到主机绝对页H1.HA和H2.HA。主机主要虚拟地址空间510和主机归属虚拟地址空间520都映射到单个主机绝对530中。属于安全客户机A和安全客户机B的存储页被标记为安全的,并且在图1所示的区域安全性表100中注册有它们的安全域和相关联的主机虚拟地址。另一方面,主机存储装置被标记为非安全的。当管理程序定义安全客户机时,它必须将主机存储捐赠给安全接口控件以用于支持这些安全客户机所需的安全控件块。该存储可以在主机绝对或主机虚拟空间中定义,并且在一个示例中,具体地,在主机归属虚拟空间中定义。返回图5,主机绝对页为U1.HA和U2.HA安全UV绝对是被定义为主机绝对存储的安全接口控件存储。结果,这些页被标记为安全的,并在图1所示的区域安全性表100中被注册为属于安全接口控件并具有相关联的安全域。由于页被定义为主机绝对地址,所以不存在相关联的主机虚拟地址,因此DA位被设置在区域安全性表100中。

在转换之后,可以在图6中找到管理程序(主机)绝对地址空间530的示例。图6根据本发明的一个或多个实施例描绘了关于安全接口控件存储器的系统示意图600。系统示意图600示出了管理程序(主机)绝对地址空间630,其包括主机绝对页A2.HA安全客户机A(针对A2.HV);主机绝对页B1.HA安全客户机B(针对B1.HV);主机绝对页H1.HA非安全(主机);主机绝对页H2.HA非安全(主机);主机绝对页U3.HA安全UV真实(无HV映射);主机绝对页U1.HA安全UV虚拟(针对U1.HV);以及主机绝对页A1.HA安全客户机A(针对A1.HV)。

现在转向图7,根据本发明的一个或多个实施例,一般示出了导入操作的处理流程700。当安全客户机访问由管理程序页调出的页时,发生诸如处理流程700中所示的事件序列以便安全地将该页带回。处理流程700在框705处开始,其中,安全客户机访问客户机虚拟页。由于该页(例如)是无效的,因此硬件向管理程序呈现由程序中断码11(PIC11)指示的主机页错误(参见框715)。管理程序进而针对该客户机页标识可用的非安全主机绝对页(参见框720)以及页调入已加密的客户机页到所标识的主机绝对页(参见框725)。

在框730处,然后将主机绝对页映射到适当的(基于主机虚拟地址)主机DAT表中。然后,在框735处,管理程序主机重新分派安全客户机。在框740处,安全客户机重新访问客户机安全页。页错误不再存在,但是由于这是安全客户机访问,并且页在图100的区域安全性表100中未被标记为安全,因此在框745处,硬件向管理程序呈现非安全存储异常(PIC3E)。该PIC3E阻止客户机访问该安全页,直到发布必要的导入。接下来,处理流程700前进到“A”,其连接到图8。

现在转向图8,根据本发明的一个或多个实施例一般示出了用于执行导入操作的处理流程800。响应于PIC3E,表现良好的管理程序(例如,以预期的方式无错误地执行)将发布导入UVC(参见框805)。注意,此时,将要导入的页被标记为非安全的,并且只能由管理程序、其它非安全实体和安全接口控件访问。它不能被安全客户机访问。

作为导入UVC的一部分,充当安全接口控件的受信固件检查以查看该页是否已经被安全接口控件锁住(参见判定框810)。如果是,则处理流程800前进至框820。在框820,“忙”返回码被返回给管理程序,该返回码作为响应将延迟(见框825)并且重新发布导入UVC(处理流程800返回到框805)。如果页尚未被锁住,则处理流程800前进至判定框822。

在判决框822,安全接口控件检查以查看该页是否是与非安全管理程序共享的页。如果它是共享的(处理流程800前进到判定框824),则安全接口控件使主机绝对地址在区域安全性表中注册有相关联的安全客户域、主机虚拟地址,并且注册为共享的。此页保持标记为非安全的。这完成了导入UVC,并且页现在可用于由客户机访问。处理继续,管理程序重新分派客户机(框830)并且安全客户机成功地访问该页(框835)。

如果将要导入的主机虚拟页不与管理程序共享(处理流程800前进到框840),则安全接口控件将页标记为安全的,使得管理程序不再能够访问该页。在框845,安全接口控件锁住页,使得没有其它UVC可以修改页状态。在设置了锁(在框850处)之后,安全接口控件将验证客户机页的内容在被加密时没有改变。如果它们确实改变了,则将错误返回码返回给管理程序,否则,安全接口控件将解密该安全页。

在框855,安全接口控件解锁页,允许其它UVC访问,在区域安全性表中将页注册为安全的并且与适当的客户域和主机虚拟地址相关联的,以完成主机地址HV->HA对。这允许客户机访问并完成UVC。

现在转到图9,根据本发明的一个或多个实施例,一般地示出了关于被捐赠的存储器操作的处理流程900。处理流程900开始于框905,其中管理程序向安全接口控件发布查询-UVC。在框910处,安全接口控件返回数据(例如,查询UVC)。该数据可以包括所需的基本区域特定的主机绝对存储量;所需的基本安全客户域特定的主机绝对存储量;每MB所需的可变的安全客户域特定的主机虚拟存储量;和/或所需的基本安全客户机CPU特定的主机绝对存储量。

在框915处,管理程序保留基本主机绝对区域特定的存储(例如,基于由查询UVC返回的大小)。在框920处,管理程序向安全接口控件发布初始化。在这点上,管理程序可以发布初始化UVC,其为UV控制块提供被捐赠的存储,该UV控制块需要在整个区域的安全客户机配置之间协调。初始化UVC指定基本区域特定的存储起源。

在框925处,安全接口控件通过将被捐赠的存储注册到UV并标记为安全的来实现初始化(例如初始化UVC)。对于初始化UVC,安全接口控件可以将被捐赠的存储标记为安全的;针对区域安全性表分配被捐赠的存储中的一些;以及使得供UV使用的被捐赠的存储在区域安全性表中注册有唯一的安全域,但是没有相关联的安全客户域,并且没有相关联的主机虚拟地址对。

在框930处,管理程序保留存储(例如,基本和可变的安全客户域特定的存储)。例如,管理程序保留基本和可变的(例如,基于安全客户域存储的大小)安全客户域特定的存储(例如,由查询UVC返回的大小)。在框935处,管理程序向安全接口控件发布创建配置。在这点上,管理程序可以发布指定基本和可变的安全客户域特定的存储起源的创建安全客户机配置(create-secure-guest-config)的UVC。此外,创建安全客户机配置的UVC为支持这种安全客户机配置所需的UV控制块提供了被捐赠的存储。

在框940处,安全接口控件实现创建配置(例如,创建安全客户机配置的UVC)。对于创建安全客户机配置的UVC,安全接口控件可将被捐赠的存储标记为安全的;在区域安全性表中注册供UV使用的被捐赠的存储;以及使得被捐赠的存储注册有相关联的安全客户域。被捐赠的基本(主机绝对)存储被注册为没有相关联的主机虚拟地址对。被捐赠的可变(主机虚拟)存储被注册有相关联的主机虚拟地址对。

在框945处,管理程序保留基本安全客户机CPU特定的存储(例如,由查询UV返回的大小)。在框950处,管理程序指定存储起源。例如,管理程序向UV发布指定基本安全客户机CPU特定的存储起源的创建安全客户机CPU。在框955处,安全接口控件实现创建CPU(例如,创建安全客户机CPU UVC)。对于创建安全客户机CPU UVC,安全接口控件可以将被捐赠的存储标记为安全,并且在区域安全性表中注册供UV使用的被捐赠的存储,但是没有相关联的安全客户域并且没有相关联的主机虚拟地址对。

现在转到图10,根据本发明的一个或多个实施例,一般性地示出了关于将非安全管理程序页转换到安全接口控件的安全页的处理流程1000。在处理流程1000中,示出了三个管理程序页(例如,非安全管理程序页A、非安全管理程序页B和非安全管理程序页C)。

管理程序(非安全)页A、B和C可由非安全实体(包括管理程序)访问。此外,管理程序(非安全)页A、B和C被标记为非安全的(NS),并在区域安全性表(例如,图1所示的区域安全性表100)中被注册为非安全和非共享的。在箭头1005处,发布初始化UVC,其将客户机页A转换为与整个区域相关联的安全接口控件真实存储页1010(UV2)。安全接口控件真实存储1010可被标记为安全的,并在区域安全性表(例如,图1所示的区域安全性表100)中被注册为没有安全客户域和管理程序到主机绝对(HV->HA)的映射的UV。相反,它被注册有唯一的UV2安全域,并且DA比特被设置为1。注意,安全接口控件真实存储1010可以如真实的由安全接口控件来访问。

在箭头1025处,从管理程序(非安全)页B发布创建SG配置或创建SG CPU的UVC,其将该页转移到与安全客户域相关联的安全接口控件真实存储1030(UVS)。安全接口控件真实存储1030可被标记为安全的,并在区域安全性表(例如,图1所示的区域安全性表100)中被注册为具有相关联的安全客户域但没有管理程序到主机绝对(HV->HA)的映射(即,DA位=1)的UV。注意,安全接口控件真实存储1010可以如真实的由安全接口控件代表安全客户域来访问。

在箭头1045处,从管理程序(非安全)页C发布创建SG配置的UVC,其将该页转移到与安全客户域(UVV)相关联的安全接口控件虚拟存储1050。安全接口控件虚拟存储1050可被标记为安全的,并在区域安全性表(例如,图1所示的区域安全性表100)中被注册为具有安全客户域和管理程序到主机绝对(HV->HA)的映射的UV。注意,安全接口控件虚拟存储1050可如UV虚拟的代表安全客户域来访问。

现在转向图11,根据一个或多个实施例描绘了关于由程序或安全接口控件进行的安全存储访问的处理流程1100。这代表了其中安全接口控件将要访问客户机存储或安全接口控件存储并且必须正确标记该访问以便允许硬件验证该访问的安全性的情况。1100描述了由安全接口控件对存储访问的这种标记。处理流程1100开始于框1110,其中安全接口控件确定其是否正在对安全接口控件存储进行访问。

如果这不是对安全接口控件存储的访问,则处理流程1100前进到判定框1112(如由“否”箭头所示)。在判定框1112处,安全接口控件确定它是否正在对安全客户机存储进行访问。如果这不是对安全客户机存储的访问,则处理流程1100前进到“B”(其连接到图12的处理流程1200),其将使用默认设置用于非安全访问。如果这是对安全客户机存储的访问,则处理流程1100前进到判定框1113,在该处,安全接口控件确定是否正在使用默认安全客户域。如果是,则处理流程1100前进到“B”(其连接到图12的处理流程1200),其将使用默认设置用于安全客户机访问。如果否,则处理流程1100前进到框1114。在框1114处,将适当的安全客户域加载到SG安全域寄存器中(并且前进到“B”,其连接到图12的处理流程1200)。

如果这是对安全接口控件存储的访问,则处理流程1100前进到框1120(如“是”箭头所示)。在框1120处,访问被标记为安全UV的(例如,使用UV安全域寄存器)。

然后,处理流程1100前进到判定框1130,在此安全接口控件确定这是否是对UVV空间(例如SG配置的变量表)的访问。如果是对UVV空间的访问,则处理流程1100前进到框1134(如“是”箭头所示)。在框1134处,访问被标记为虚拟的。在框1136处,将适用的安全客户域加载到UV安全域寄存器中。在框1138处,DAT转换和访问存储准备好开始。返回到判定框1130,如果这不是对UVV空间的访问,则处理流程1100前进到框1140(如由“否”箭头所示)。在框1140处,访问被标记为真实的。

在判定框1150处,安全接口控件确定这是否是对UVS空间(例如SG配置或CPU表)的访问。如果这是对UVS空间的访问,则处理流程1100前进到框1136(如“是”箭头所示)。如果这不是对UVS空间的访问,则处理流程1100前进到框1170(如“否”箭头所示)。然后,该访问将是对UV2空间(例如,区域安全性表)的访问。在框1170处,将唯一的UV2安全域加载到UV安全域寄存器中。

图12描绘了根据本发明的一个或多个实施例的处理流程1200。当客户机被分派时,SIE条目固件可以向硬件指示客户机正在运行(例如,客户机模式活动),并且可以指示客户机是否是安全的。如果客户机是安全的,则相关联的安全客户域可以被加载到硬件中(例如,在SG安全域寄存器中)。当程序正在访问存储装置时,硬件可以基于在访问时程序的当前状态来标记访问。图12示出了处理流程1200中的该处理的示例。在框1205处,硬件可以确定机器当前是否运行在客户机模式下,并且如果不是,则可以在框1210处将访问标记为主机访问,并且在框1215处将访问标记为非安全访问。如果在框1205处机器正在客户机模式下运行,则在框1220处可以将该访问标记为客户机访问,并且在框1225处进一步确定当前客户机是否是安全客户机。如果客户机是非安全的,则在框1215处,可以将访问标记为非安全的。如果客户机是安全的,则在框1230处,硬件可以将客户机标记为安全的,这可以将安全客户机与当安全客户机被分派时加载的SG安全域寄存器相关联。对于非安全客户机和安全客户机两者,在框1235处可检查DAT状态。如果DAT关闭,则在框1240处,访问可以被标记为真实的。如果DAT开启,则在框1245处,访问可以被标记为虚拟的。在DAT关闭的情况下在框1240处访问被标记为真实的之后,或者在DAT开启的情况下在框1245处访问被标记为虚拟的之后,在框1250处硬件准备好开始转换和访问存储,如图13中进一步描述的。

图13描绘了根据本发明的一个或多个实施例的处理流程1300中的由硬件完成的用于支持安全和非安全访问的转换的示例。在框1305处,硬件可以确定访问是否被标记为客户机转换,如果是,并且在框1310处访问是虚拟的,则可以在框1315执行客户机DAT。在客户机DAT转换期间,可以存在针对客户机DAT表的嵌套的中间提取。如果原始转换被标记为安全的,则表提取可以被标记为客户真实的和安全的。表提取也可遵循处理流程1300的转换过程。在框1315处对被标记为客户机虚拟的访问以及在框1310处对被标记为客户机真实(虚拟的=否)的任何访问执行客户机DAT之后,在框1320处可应用客户机加前缀和客户机存储器偏移量。在完成客户机转换过程时,如果在框1325处原始客户机转换被标记为安全的,则所得地址可被标记为主机虚拟且安全的。过程1300可以针对被标记为主机虚拟的任何访问而继续。如果在框1305处原始访问是主机访问(客户机=否)并且在框1330处主机访问是虚拟的,则在框1335处可以执行主机DAT。在框1335处,可将主机表提取标记为非安全的。在框1335处执行主机DAT之后,或者如果在框1330处将原始主机访问标记为真实的(虚拟的=否),则可以在框1340处应用主机加前缀。在框1345处,所得地址可为主机绝对地址。

图14描绘了根据本发明的一个或多个实施例的处理流程1400中的可以由硬件执行的具有安全存储保护的DAT转换的示例。从图13的框1345继续,如果在框1405处识别安全UV访问,则硬件可以在框1410处验证存储是否被注册为安全UV存储,并且如果否,则在框1415处呈现错误。当访问UV存储时,安全UV访问可以由安全控件接口进行。如果在框1410处存储装置被注册为安全UV存储,则保护检查可以继续,如可以对除了UV安全域寄存器的任何安全访问执行的那样(在进行安全UV访问之前由安全控件接口设置)可以在框1420处被用作指定安全域以用于域检查,在该处处理继续。另外,在框1425处针对UV访问检测到的任何违反(进入点D)可以在框1430处呈现为错误,而不是在框1435处呈现为对管理程序的异常,如在框1425处对于安全客户机违反所做的那样(安全UV=否)。

对于在框1405处未被标记为安全UV访问的访问,硬件在框1440处确定该访问是否是安全客户机访问,如果不是,并且如果该页在框1445处被标记为安全的,则在框1435处可向管理程序呈现异常。否则,如果在框1440处该访问不是安全客户机访问,并且在框1445处该页未被标记为安全的,则在框1450处转换是成功的。

如果在框1440处访问是安全客户机访问,或者在框1410处访问是对被注册为安全UV存储的存储的安全UV访问,则在框1420处硬件可以检查以确保存储被注册到与访问相关联的安全实体。如果这是安全UV访问,则可以从UV安全域寄存器获得指定的安全域(基于被访问的安全UV存储而由安全控件接口加载),并且对于安全客户访问,从SG安全域寄存器获得指定的安全域(当安全实体被分派时加载)。如果在框1420处,正被访问的存储装置未被注册到指定的安全域,则对于在框1425处的安全UV访问,在框1430处发送错误,并且对于在框1425处的安全客户机访问(安全UV=否),在框1435处向管理程序呈现异常。

对于在框1440和框1410处对存储(该存储在框1420处注册到指定安全域)的安全访问,如果在框1455处禁用虚拟地址检查,即DA位=1,并且在框1460处访问是真实的,则在框1450处完成转换。然而,如果在框1455处DA位=1,但是在框1460处访问是虚拟的(真实=否),则对于在框1425的安全UV访问,在框1430处发送错误,并且对于在框1425处的安全客户机访问(安全UV=否),在框1435向管理程序呈现异常。如果在框1455处DA位=0并且在框1475处访问是虚拟访问,则硬件可以在框1470处确定访问的主机虚拟到主机绝对映射是否与针对该主机绝对地址注册的映射匹配。如果是,则在框1450处转换成功完成。如果在框1470映射不匹配,则对于在框1425处的安全UV访问,在框1430发生错误,并且对于在框1425处的安全客户机访问(安全UV=否),在框1435处向管理程序呈现异常。如果在框1475处DA位=0并且访问是真实访问(虚拟的=否),则对于在框1425处的安全UV访问,在框1430处发生错误,并且对于在框1425处的安全客户机访问(安全UV=否),在框1435处向管理程序呈现异常;或者,在框1450处,转换可成功完成。在框1480处I/O子系统的任何访问可以检查以查看在框1445处页是否被标记为安全的,并且如果页是安全的,则在框1435处可以向管理程序呈现异常;如果页未被标记为安全的,则在框1450处转换是成功的。

可以通过区域安全性表接口1485来集中管理存储注册和映射的各种检查。例如,框1410、1420、1455、1470和1475可以与关联于相同区域的区域安全性表进行接口连接,以管理各种访问。

如本文所讨论的,本文的一个或多个实施例利用软件和机器之间的高效、轻量的超级监视器接口来提供这种附加的安全性。在这种情况下,该接口用于允许超级监视器仿真中断使能指令(例如,加载程序状态字或加载控制)的大部分,同时仍然允许管理程序代表客户机维护未处理中断。当安全客户机没有在硬件上被分派时,管理程序需要该未处理中断结构来处理中断的优先级排序。本文的一个或多个实施例的技术效果和益处包括通过使该复杂代码驻留在单个位置而不允许管理程序访问安全客户机状态或存储器来降低复杂性和风险。

鉴于以上内容,关于图15-图16论述用于中断使能的安全接口控件高级指令拦截的操作。现在转到图15,根据本发明的一个或多个实施例来描述用于中断使能的安全接口控件高级指令拦截的处理流程1500。处理流程1500覆盖安全实体1502(例如,安全客户机或容器)、安全接口控件1504、以及非受信实体1506(例如,管理程序或OS),以示出哪个操作正在由安全环境的组件执行。

处理流程1500在框1510开始,其中安全实体1502发布可以使能中断的指令(例如,LPSW和LCTL),其由非受信实体1506监视。在框1520,安全接口控件1504从安全客户机存储提取新的PSW(例如,针对LPSW)或控制寄存器值(例如,针对LCTL)。在框1530处,安全接口控件1504将新的PSW或控制寄存器加载到安全实体状态中,这可以是响应于该提取。

在框1540处,安全接口控件1504向非受信实体1506通知客户机中断使能更新。在框1550处,非受信实体1506对未处理且已使能的中断进行优先级排序,以确定最高优先级的已使能客户机中断。在框1560处,非受信实体1506将针对最高优先级中断(例如,最高优先级的已使能客户机中断)的中断信息存储在非安全存储中。在一个示例中,该非安全存储可以是与该客户机中断相关联的状态描述。在另一个例子中,该非安全存储是参数块,其将被用作对注入中断UVC指令的输入。处理流程1500进行到圆圈Z,其连接到图16和处理流程1600。

现在转到图16,根据本发明的一个或多个实施例描绘了用于中断使能的安全接口控件高级指令拦截的处理流程1600。处理流程1600覆盖安全实体1602、安全接口控件1604和非受信任实体1606,以示出哪个操作正由安全环境的组件执行。注意,图16的安全实体1602、安全接口控件1604和非受信任实体1606类似于图16的安全实体1502、安全接口控件1504和非受信任实体1506。

处理流程1600在框1610处开始,其中非受信实体1606请求安全接口控件1604呈现最高优先级的已使能客户机中断。该请求可以响应于该通知。在一个示例中,该请求可以是SIE分派,其具有中断应当被注入的指示以及关于该中断的信息。在另一示例中,该请求可以是注入中断UVC指令,其具有中断信息和与UVC相关联的参数块中的相关联客户机的指示。在判定框1620处,安全接口控件1604确定中断注入是否有效。例如,安全接口控件1604确定是否针对正在注入的中断使能相关联的客户机。如果中断注入无效,则处理流程1600进行到框1640(如“否”箭头所示)。在框1640处,安全接口控件1604向非受信实体1606发布异常。

如果中断注入有效,则处理流程1600进行到框1660(如由“是”箭头所示)。在框1660处,安全接口控件1604将中断信息移动到客户机前缀页中,并且将中断注入到安全实体1602中(例如,更新客户机状态)。在框1670处,安全实体1602响应于接收到所注入的中断而执行中断处理程序。

应理解,尽管本公开包括关于云计算的详细描述,但本文中所述的教导的实现不限于云计算环境。相反,本发明的实施例能够结合现在已知或以后开发的任何其它类型的计算环境来实现。

云计算是服务交付的模型,用于对共享的可配置计算资源池进行方便、按需的网络访问。可配置计算资源(例如,网络、网络带宽、服务器、处理、存储器、存储、应用、VM和服务)能够以最小的管理成本或与服务提供商进行最少的交互来快速部署和释放。这种云模型可以包括至少五个特征,至少三个服务模型和至少四个部署模型。

特征如下:

按需自助式服务:云的消费者在无需与服务提供商进行人为交互的情况下,能够单方面自动地按需部署计算能力,诸如服务器时间和网络存储。

广泛的网络接入:计算能力通过网络获得,并通过标准机制访问,该标准机制促进了通过不同种类的瘦客户机平台或厚客户机平台(例如,移动电话,膝上型电脑和PDA)的使用。

资源池:提供商的计算资源被归入资源池,以使用多租户模式为多个消费者提供服务,其中根据需求动态分配和重新分配不同的实体资源和虚拟资源。通常消费者不能控制或者并不知晓所提供的资源的确切位置,但是可能能够在更高抽象级别(例如,国家,州或数据中心)指定位置,因此具有位置无关性。

迅速弹性:可以迅速、有弹性地(有时是自动地)部署计算能力,以快速扩展,并且能迅速释放来快速缩小。对于消费者来说,用于部署的可用计算能力通常显得是无限的,并能在任意时候都能获取任意数量的计算能力。

可测量的服务:云系统通过利用适于服务类型(例如,存储,处理,带宽和活跃用户帐户)的某种抽象级别的计量能力来自动控制和优化资源使用。可以监视,控制和报告资源使用,从而为所使用的服务的提供者和消费者提供透明度。

服务模型如下:

软件即服务(SaaS):提供给消费者的能力是使用提供商在云基础架构上运行的应用。可以通过诸如网络浏览器(例如,基于网络的电子邮件)的瘦客户机接口从各种客户机设备访问应用。消费者既不管理也不控制底层云基础架构,包括网络、服务器、操作系统、存储、甚至单个应用能力,可能的例外是有限的特定于用户的应用配置设置。

平台即服务(PaaS):提供给消费者的能力是在云基础架构上部署消费者创建或获得的应用,这些应用利用由提供商支持的编程语言和工具创建。消费者既不管理也不控制底层云基础架构,包括网络、服务器、操作系统或存储,但可以控制已部署的应用以及可能的应用托管环境配置。

基础架构即服务(IaaS):提供给消费者的能力是部署处理、存储、网络和其它基础计算资源,其中消费者能够部署和运行任意软件,该软件可以包括操作系统和应用。消费者既不管理也不控制底层云基础设施,而是具有对操作系统,存储,部署的应用的控制,以及具有可能的对选择的网络组件(例如,主机防火墙)的有限控制。

部署模型如下:

私有云:云基础架构单独为组织运行。它可以由组织或第三方管理,可以存在于该组织内部或外部。

共同体云:云基础架构由多个组织共享,并支持具有共同利害关系(例如,任务使命,安全要求,策略和合规考虑)的特定共同体。它可能由组织或第三方管理,并且可能存在于该共同体内部或外部。

公共云:云基础架构向公众或大型产业群提供,并由销售云服务的组织所有。

混合云:云基础架构由两个或多个云(私有云,共同体云或公共云)组成,这些云仍然是独特的实体,但通过使数据和应用能够移植的标准化或私有技术(例如,用于云之间的负载平衡的云突发流量分担技术)绑定在一起。

云计算环境是面向服务的,特点集中在无状态,低耦合性,模块性和语意的互操作性。云计算的核心是包含互连节点网络的基础设施。

现在参考图17,描绘了示意性的云计算环境50。如图所示,云计算环境50包括云的消费者使用本地计算设备可以与其通信的一个或多个云计算节点10,本地计算设备例如是个人数字助理(PDA)或蜂窝电话54A,台式计算机54B,膝上型计算机54C和/或汽车计算机系统54N。节点10可以彼此通信。它们可以在一个或多个网络中物理地或虚拟地分组(未示出),例如如上所述的私有云,共同体云,公共云或混合云,或其组合。这样,云的消费者无需维护本地计算设备上的资源就能够允许云计算环境50提供基础架构即服务、平台即服务和/或软件即服务。应该理解,图17中所示的计算设备54A-N的类型仅仅是示意性的,而计算节点10和云计算环境50可以(例如,使用网络浏览器)通过任何类型的网络和/或网络可寻址连接与任何类型的计算设备通信。

现在参考图18,示出了由云计算环境50(图17)提供的一组功能抽象层。应该事先理解图18中所示的组件、层和功能仅仅是示意性的,并且本发明的实施例不限于此。如图所示,提供了以下层和相应的功能:

硬件和软件层60包括硬件和软件组件。硬件组件的示例包括主机61;基于RISC(精简指令集计算机)体系结构的服务器62;服务器63;刀片服务器64;存储设备65;网络和网络组件66。在一些实施例中,软件组件包括网络应用服务器软件67和数据库软件68。

虚拟层70提供抽象层,从该抽象层可以提供以下虚拟实体的示例:虚拟服务器71;虚拟存储72;虚拟网络73(包括虚拟私有网络);虚拟应用和操作系统74;和虚拟客户端75。

在一个示例中,管理层80可以提供下面描述的功能。资源供应功能81提供用于在云计算环境内执行任务的计算资源和其它资源的动态获取。计量和定价功能82在云计算环境内对资源的使用进行成本跟踪,并且提供用于消费这些资源的帐单或发票。在一个示例中,这些资源可以包括应用软件许可。安全功能为云的消费者和任务提供身份认证,以及为数据和其它资源提供保护。用户门户功能83为消费者和系统管理员提供对云计算环境的访问。服务水平管理功能84提供云计算资源的分配和管理,以满足所需的服务水平。服务水平协议(SLA)计划和履行功能85为根据SLA预测的对云计算资源未来需求提供预先安排和供应。

工作负载层90提供可以利用云计算环境的功能的示例。可以从该层提供的工作负载和功能的示例包括:地图绘制与导航91;软件开发和生命周期管理92;虚拟教室的教学提供93;数据分析处理94;交易处理95;和针对中断使能的高级指令拦截96。可以理解,这些仅仅是一些示例,并且在其它实施例中,这些层可包括不同的服务。

现在转向图19,根据本发明的一个或多个实施例描绘了系统1900。系统1900包括示例节点10(例如,托管节点),其例如经由网络165与一个或多个客户端设备20A-20E直接或间接通信。节点10可以是云计算提供商的数据中心或主机服务器。节点10执行管理程序12,其便于部署一个或多个VM 15(15A-15N)。节点10还包括硬件/固件层11,其提供对VM15A-N和管理程序12所需的功能的直接支持,以及便于管理程序12向VM 15提供一个或多个服务,在当前的实现中,在硬件/固件层11和管理程序12之间、在硬件/固件层11和VM 15之间、在管理程序12和VM 15之间、以及在管理程序12和VM 15之间经由硬件/固件层11提供通信。

例如,节点10可以促进客户端设备20A部署VM 15A-15N中的一个或多个。VM 15A-15N可以响应于来自不同客户端设备20A-20E的相应请求而被部署。例如,VM 15A可由客户端设备20A部署,VM 15B可由客户端设备20B部署,并且VM 15C可由客户端设备20C部署。节点10还可以促进客户端提供物理服务器(而不作为VM运行)。这里描述的示例将节点10中的资源供应具体化为VM的一部分,然而,所描述的技术方案也可以应用于将资源供应为物理服务器的一部分。

在一个示例中,客户端设备20A-20E可以属于同一实体,诸如个人、企业、政府机构、公司内的部门或任何其他实体,并且节点10可以作为实体的私有云来操作。在这种情况下,节点10单独地托管由属于该实体的客户端设备20A-20E部署的VM 15A-15N。在另一个示例中,客户端设备20A-20E可以属于不同的实体。例如,第一实体可以拥有客户端设备20A,而第二实体可以拥有客户端设备20B。在这种情况下,节点10可以作为托管来自不同实体的VM的公共云来操作。例如,VM 15A-15N可以以其中VM 15A不促进对VM 15B的访问的受遮蔽方式来部署。例如,节点10可以使用IBM z系统处理器资源/系统管理器(PR/SM)逻辑分区(LPAR)特征来覆盖VM 15A-15N。这些特征,例如PR/SM LPAR提供分区之间的隔离,从而促进节点10在不同的逻辑分区中针对同一物理节点10上的不同实体部署两个或更多个VM 15A-15N。

来自客户端设备20A-20e的客户端设备20A是通信设备,例如计算机、智能电话、平板计算机、台式计算机、膝上型计算机、服务器计算机或请求由节点10的管理程序12部署VM的任何其它通信装置。客户端设备20A可以经由网络165发送请求以由管理程序接收。VM15A-15N中的VM 15A是管理程序12响应于来自客户端设备20A-20e中的客户端设备20A的请求而部署的VM镜像。管理程序12是VM监视器(VMM),其可以是创建并运行VM的软件、固件或硬件。管理程序12促进VM 15A使用节点10的硬件组件来执行程序和/或存储数据。通过适当的特征和修改,管理程序12可以是IBM z系统甲骨文的VM服务器、Citrix的XenServer、Vmware的ESX、微软Hyper-V管理程序或任何其它管理程序。管理程序12可以是直接在节点10上执行的本机管理程序,或者是在另一管理程序上执行的被托管的管理程序。

现在转到图20,根据本发明的一个或多个实施例示出了用于实现这里的教导的节点10。节点10可以是电子的计算机框架,其包括和/或采用任何数量的如本文所述的计算设备和利用各种通信技术的网络及其组合。节点10可以是容易地可缩放、可扩展的和模块化的,具有改变到不同服务或独立于其它特征重新配置一些特征的能力。

在该实施例中,节点10具有处理器2001,其可以包括一个或多个中央处理单元(CPU)2001a、2001b、2001c等。处理器2001,也被称为处理电路、微处理器、计算单元,其经由系统总线2002耦接到系统存储器2003和各种其它组件。系统存储器2003包括只读存储器(ROM)2004和随机存取存储器(RAM)2005。ROM 2004耦接到系统总线2002,并且可以包括基本输入/输出系统(BIOS),其控制节点10的某些基本功能,RAM是耦接到系统总线2002以供处理器2001使用的读写存储器。

图20的节点10包括硬盘2007,其是可由处理器2001执行的有形存储介质的示例。硬盘2007存储软件2008和数据2009。软件2008被存储为由处理器2001在节点10上执行的指令,以执行诸如参考图1-图19描述的处理的处理。数据2009包括以各种数据结构组织的一组定性或定量变量的值,以支持软件2008的操作并由其使用。

图20的节点10包括一个或多个适配器(例如,硬盘控制器、网络适配器、图形适配器等),其互连和支持处理器2001、系统存储器2003、硬盘2007和节点10的其他组件(例如,外围和外部设备)之间的通信。在本发明的一个或多个实施例中,一个或多个适配器可以连接到一个或多个I/O总线,该一个或多个I/O总线经由中间总线桥连接到系统总线2002,并且该一个或多个I/O总线可以利用公共协议,例如外围部件互连(PCI)。

如图所示,节点10包括将键盘2021、鼠标2022、扬声器2023和麦克风2024互连到系统总线2002的接口适配器2020。节点10包括将系统总线2002互连到显示器2031的显示器适配器2030。显示适配器2030(和/或处理器2001)可以包括图形控制器,以提供图形性能,例如GUI 2032的显示和管理。通信适配器2041将系统总线2002与网络2050互连,使得节点10能够与诸如服务器2051和数据库2052的其它系统、设备、数据和软件通信。在本发明的一个或多个实施例中,软件2008和数据2009的操作可由服务器2051和数据库2052在网络2050上实现。例如,网络2050、服务器2051和数据库2052可以组合以提供软件2008和数据2009的内部迭代作为平台即服务、软件即服务和/或基础设施即服务(例如,作为分布式系统中的网络应用)。

本文描述的实施例必然根植于计算机技术,尤其是托管VM的计算机服务器。此外,本发明的一个或多个实施例通过促进托管VM的计算机服务器托管安全VM来促进对计算技术本身的操作的改进,特别是托管VM的计算机服务器,其中甚至管理程序也被禁止访问与安全VM相关联的存储器、寄存器和其他此类数据。此外,本发明的一个或多个实施例通过使用安全接口控件(本文也称为“超级监视器”或“UV”)来提供朝向对托管计算服务器的VM的改进的重要步骤,所述安全接口控件包括硬件、固件(例如,毫码)或其组合以促进安全VM和管理程序的分离,并且因此维持由计算服务器托管的VM的安全性。安全接口控件提供轻量级中间操作以促进安全性,而不增加如本文所述的在VM的初始化/退出期间保护VM状态的实质开销。

本文公开的本发明的实施例可以包括实现用于中断使能的安全接口控件高级指令拦截的系统、方法和/或计算机程序产品(本文为系统)。注意,对于每个说明,对于不同附图的其他类似元件,元件的标识符被重复使用。

在此参考相关附图描述本发明的各种实施例。在不偏离本发明的范围的情况下,可以设计本发明的替代实施例。在以下描述和附图中,在元件之间阐述了各种连接和位置关系(例如,上方、下方、相邻等)。除非另有说明,这些连接和/或位置关系可以是直接的或间接的,并且本发明并不旨在在这方面进行限制。因此,实体的耦接可以指直接或间接耦接,并且实体之间的位置关系可以是直接或间接位置关系。此外,本文所述的各种任务和过程步骤可被并入具有本文未详细描述的额外步骤或功能性的更综合的程序或过程中。

以下定义和缩写用于解释权利要求和说明书。如本文所用,术语“包含”、“包括”、“具有”、“含有”或其任何其它变型旨在涵盖非排他性的包括。例如,包括一系列元素的组合物、混合物、工艺、方法、制品或装置不一定仅限于那些元素,而是可以包括未明确列出的或此类组合物、混合物、工艺、方法、制品或装置固有的其他元素。

另外,术语“示例性”在本文中用于表示“用作示例、实例或说明”。在此描述为“示例性”的任何实施例或设计不一定被解释为比其它实施例或设计更优选或有利。术语“至少一个”和“一个或多个”可以被理解为包括大于或等于一的任何整数,即,一、二、三、四等。术语“多个”可以被理解为包括大于或等于二的任何整数,即二、三、四、五等。术语“连接”可以包括间接“连接”和直接“连接”两者。

术语“约”、“基本上”、“大约”及其变体旨在包括与基于提交本申请时可用的设备的特定量的测量相关联的误差度。例如,“约”可以包括给定值的±8%或5%或2%的范围。

本发明可以是任何可能的技术细节集成级别的系统、方法和/或计算机程序产品。该计算机程序产品可以包括一个计算机可读存储介质(或多个计算机可读存储介质),其上具有计算机可读程序指令,用于使处理器执行本发明的各方面。

计算机可读存储介质可以是有形设备,其可以保留和存储指令以供指令执行设备使用。计算机可读存储介质可以是例如但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述的任何合适组合。计算机可读存储介质的更具体示例的非详尽列表包括以下内容:便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式光盘只读存储器(CD-ROM)、数字通用光盘(DVD)、记忆棒、软盘、诸如在其上记录有指令的打孔卡或凹槽内凸起结构的机械编码装置、以及前述的任何合适的组合。这里使用的计算机可读存储介质不应被解释为瞬时信号本身,诸如无线电波或其它自由传播的电磁波、通过波导或其它传输介质传播的电磁波(例如,通过光纤电缆传递的光脉冲)或通过电线传输的电信号。

本文描述的计算机可读程序指令可以从计算机可读存储介质下载到相应的计算/处理设备,或者经由网络(例如,因特网,局域网,广域网和/或无线网络)下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器卡或网络接口从网络接收计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。

用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路配置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括诸如Smalltalk,C++等的面向对象的编程语言,以及诸如“C”编程语言或类似编程语言的过程编程语言。计算机可读程序指令可以完全在用户的计算机上执行、部分地在用户计算机上执行、作为独立的软件包执行、部分地在用户计算机上并且部分地在远程计算机上执行、或完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过任何类型的网络(包括局域网(LAN)或广域网(WAN))连接到用户的计算机,或者,可以连接到外部计算机(例如,利用互联网服务提供商来通过互联网连接)。在一些实施例中,包括例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA)的电子电路可以通过利用计算机可读程序指令的状态信息来个性化定制电子电路,该电子电路执行计算机可读程序指令,以便执行本发明的各方面。

本文参考根据本发明的实施例的方法、装置(系统)和计算机程序产品的流程图图示和/或框图来描述本发明的各方面。将理解,流程图图示和/或框图中的每个框以及流程图图示和/或框图中的框的组合可以由计算机可读程序指令实现。

这些计算机可读程序指令可以被提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器来生产出机器,以使得通过计算机的处理器或其它可编程数据处理装置执行的指令创建用于实现流程图和/或一个框图块或多个框图块中所指定的功能/动作的装置。这些计算机可读程序指令还可以存储在计算机可读存储介质中,这些计算机可读程序指令可以使得计算机、可编程数据处理装置和/或其它设备以特定方式工作,以使得具有存储在其中的指令的计算机可读存储介质包括制品,该制品包括实现流程图和/或一个框图块或多个框图块中指定的功能/动作的各方面的指令。

计算机可读程序指令还可以被加载到计算机,其它可编程数据处理装置或其它设备上,以使得在计算机、其它可编程装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,这样在计算机、其它可编程装置或其它设备上执行的指令实现在流程图和/或一个框图块或多个框图块中指定的功能/动作。

附图中的流程图和框图示出根据本发明的各种实施例的系统,方法和计算机程序产品的可能实施方式的体系结构,功能和操作。在这方面,流程图或框图中的每个框可以表示模块、程序段或指令的一部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些替代实施方式中,框中所标注的功能可以不按图中所示的顺序发生。例如,连续示出的两个框实际上可以基本上并行地执行,或者这些框有时可以以相反的顺序执行,这取决于所涉及的功能。还应注意,框图和/或流程图图示中的每个框以及框图和/或流程图图示中的框的组合可以由执行特定功能或动作,或执行专用硬件和计算机指令的组合的专用的基于硬件的系统来实现。

本文使用的术语仅出于描述特定实施例的目的,并不意图限制本发明。如这里所使用的,单数形式“一”,“一个”和“该”旨在也包括复数形式,除非上下文另有明确说明。将进一步理解,当在本说明书中使用时,术语“包括”和/或“包含”指定所述特征、整数、步骤、操作、元素和/或组件的存在,但不排除存在或者添加一个或多个其它特征、整数、步骤、操作、元素、组件和/或它们的组合。

本文已经出于说明的目的呈现了对各种实施例的描述,但其并非旨在是穷尽性的或限于所公开的实施例。在不背离所描述的实施例的范围和精神的情况下,许多修改和变化对于本领域的普通技术人员将是显而易见的。本文所使用的术语被选择为最好地解释实施例的原理、实际应用或对市场上存在的技术的技术改进,或使本领域的其他普通技术人员能够理解本文所公开的实施例。

45页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:利用工作证明对资源受限环境中的可信代理的测量的执行

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类