安全域和不安全实体之间的存储共享

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

阅读说明:本技术 安全域和不安全实体之间的存储共享 (Storage sharing between secure domains and non-secure entities ) 是由 L·C·海勒 F·布萨巴 J·布拉德伯里 于 2020-03-02 设计创作,主要内容包括:根据本发明的一个或多个实施例,一种计算机实现的方法包括,通过计算机系统的安全接口控制,基于页面通过页面的安全存储保护指示符被清除而被标记为不安全,使计算机系统的不安全实体能够访问在不安全实体与计算机系统的安全域之间共享的存储器页面。安全接口控制可以在允许不安全实体访问该页面之前验证该页面的安全存储保护指示符被清除。安全接口控制可以在没有对该页面的安全存储保护指示符的检查的情况下向安全域的安全实体提供对该页面的访问。(According to one or more embodiments of the invention, a computer-implemented method includes, by a secure interface control of a computer system, enabling an unsecure entity of the computer system to access a memory page shared between the unsecure entity and a secure domain of the computer system based on the page being marked as unsecure by a secure memory protection indicator of the page being cleared. The secure interface control may verify that the secure memory protection indicator of the page is clear before allowing an unsecure entity to access the page. The secure interface control may provide a secure entity of the security domain with access to the page without checking a secure memory protection indicator of the page.)

安全域和不安全实体之间的存储共享

背景技术

本发明总体上涉及计算机技术,并且更具体地涉及安全域和不安全实体之间的存储共享。

云计算和云存储为用户提供在第三方数据中心中存储和处理他们的数据的能力。云计算促进快速且容易地向客户供应VM的能力,而不需要客户购买硬件或为物理服务器提供地面空间。客户可以根据客户的变化的偏好或要求容易地扩展或收缩VM。通常,云计算提供商供应物理地驻留在提供商的数据中心处的服务器上的VM。客户通常关心VM中的数据的安全性,特别是因为计算提供者通常在同一服务器上存储多于一个客户的数据。客户可能期望他们自己的代码/数据与云计算提供者的代码/数据之间的安全,以及他们自己的代码/数据与在提供者的站点处运行的其他VM的代码/数据之间的安全。此外,客户可能期望来自提供者的管理员的安全性以及防止来自机器上运行的其他代码的潜在安全漏洞。

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

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

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

发明内容

根据本发明的一个或多个实施例,一种计算机实现的方法包括,通过计算机系统的安全接口控制,基于页面通过页面的安全存储保护指示符被清除而被标记为不安全,使所述计算机系统的不安全实体能够访问在不安全实体与计算机系统的安全域之间共享的存储器的页面。安全接口控制可以在允许不安全实体访问该页之前验证页面的安全存储保护指示符被清除。该安全接口控制可以向安全域的安全实体提供对页面的访问,而不检查页面的安全存储保护指示符。优点可以包括安全域与不安全实体之间的存储共享。

根据本发明的附加或替代实施例,在向安全实体提供对页面的访问之前,安全接口控制可以验证由不安全实体建立并且由安全实体使用的动态地址转换映射未改变。优点可以包括确保由安全实体使用的地址转换不被不安全实体修改。

根据本发明的附加或替代实施例,安全接口控制可以从安全实体接收建立对页面的共享访问的请求。该安全接口控制可以确定该页面当前是否通过该安全存储保护指示符被设置而被标识为安全的,并且该页面被注册到该安全实体的安全域。该安全接口控制可以基于确定该页面被标识为安全的并且被注册到该安全实体的安全域来将该页面注册到该安全域作为共享的。优点可以包括跟踪存储保护状态和页面注册。

根据本发明的附加或替代实施例,该安全接口控制可以基于确定该页面当前被标识为安全的、注册到该安全实体的安全域上、并且该页面当前未被锁定来锁定该页面。安全接口控制可阻止不同上下文中的安全实体或安全接口控制在该页面被锁定时访问该页面。优点可以包括在某些条件下限制对安全页面的访问。

根据本发明的附加或替代实施例,安全接口控制可以在该页面被锁定时执行对页面的一个或多个授权检查或状态更新。安全接口控制可基于完成页面的一个或多个授权检查或状态更新来解锁页面。优点可以包括管理页面的授权检查。

根据本发明的附加或替代实施例,可以基于在接收建立对页面的共享访问的请求之前确定页面已经被锁定来向安全实体发送繁忙指示符。优点可以包括控制通知定时。

根据本发明的附加或替代实施例,可以通过包括与该页面相关联的安全域标识符和与该页面相关联的虚拟地址映射数据的区安全表来检查和更新该安全域。优点可以包括管理多个页面和区域的状态。

根据本发明的附加或替代实施例,安全存储保护指示符可包括针对存储器的多个页面中的每一页面的计算机系统的硬件中的位。优点可以包括管理存储器的存储保护指示符。

根据本发明的附加或替代实施例,安全接口控制可以是固件、硬件、或固件与硬件的组合。不安全实体可以是管理程序。该安全实体可以是虚拟机,该虚拟机是由安全域中的管理程序托管的安全访客。优点可以包括与不安全实体共享来自安全实体的安全页面。

本发明的其他实施例在计算机系统和计算机程序产品中实现上述方法的特征。

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

附图说明

在说明书结论的权利要求书中特别指出并清楚地要求保护本文描述的独占权利的细节。从以下结合附图的详细描述中,本发明的实施例的前述和其他特征和优点是显而易见的,其中:

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

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

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

图4描绘了根据本发明的一个或多个实施例的安全访客存储的映射;

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

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

图7描绘了根据本发明的一个或多个实施例的导入操作的过程流程;

图8描绘了根据本发明的一个或多个实施例的导入操作的过程流程;

图9描绘了根据本发明的一个或多个实施例的捐赠存储器操作的过程;

图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先前被安装或已经存在的情况下)。

为了促进和支持安全访客,存在技术挑战,其中在管理程序和安全访客之间需要额外的安全性而不依赖于管理程序,使得管理程序不能访问来自VM的数据,并且因此不能以上述方式提供服务。

本文描述的安全执行提供硬件机制以确保安全存储和不安全存储之间以及属于不同安全用户的安全存储之间的隔离。对于安全访客,在“不可信的”不安全管理程序与安全访客之间提供了额外的安全性。为了做到这一点,管理程序通常代表访客所做的许多功能需要被结合到机器中。在此描述了一种新的安全接口控制(在此也被称为“UV”),用于提供管理程序与安全访客之间的安全接口。术语安全接口控制和UV在本文中可互换使用。安全接口控制与硬件协作工作以提供该附加安全性。此外,较低层管理程序可以为该不可信管理程序提供虚拟化,并且如果在可信代码中实现该较低层管理程序,则它也可以是安全接口控制的一部分。

在一个示例中,安全接口控制在内部、安全和可信的硬件和/或固件中实现。该可信固件可以包括例如处理器毫代码(Millicode)或PR/SM逻辑分区代码。对于安全访客或实体,安全接口控制提供安全环境的初始化和维护以及这些安全实体在硬件上的分派的协调。当安全访客积极地使用数据并且其驻留在主机存储中时,其在安全存储中保持“无危险(in the clear)”。安全访客存储可以由该单个安全访客访问——这由硬件严格地强制执行。即,该硬件防止任何不安全实体(包括管理程序或其他不安全访客)或不同的安全访客访问该数据。在该示例中,安全接口控制作为固件的最低级别的可信部分运行。最低级别或毫代码实际上是硬件的扩展,并且用于实现例如在来自IBM的中定义的复杂指令和功能。毫代码能够访问存储的所有部分,其在安全执行的上下文中包括其自身的安全UV存储、不安全管理程序存储、安全访客存储和共享存储。这允许它提供安全访客或管理程序支持该访客所需的任何功能。安全接口控制还具有对硬件的直接访问,其允许硬件在由安全接口控制建立的条件的控制下有效地提供安全检查。

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

类似于许多其他架构化指令,这些UVC命令可由机器固件执行。机器不进入安全接口控制模式,而是机器以其当前运行的模式执行安全接口控制功能。硬件维持固件和软件状态两者,因此没有上下文的切换以便处理这些操作。这种低开销允许软件、可信固件和硬件的不同层之间的紧密绑定协作,其方式为最小化和降低安全接口控制的复杂度,同时仍提供必要的安全级别。

根据本发明的一个或多个实施例,在支持安全接口控制和硬件正确维护安全访客和支持管理程序环境所需的控制块结构时,管理程序在初始化安全访客环境的同时向安全接口控制捐赠存储。因此,在准备1)初始化区域以运行安全访客)、2)创建安全访客域)和3)创建在每个域中运行的安全CPU时,管理程序发布查询UVC指令以确定捐赠所需的存储量等。一旦存储已经被捐赠,它就被标记为安全的并且被注册为属于安全接口控制;并且禁止任何不安全或安全访客实体的访问。保持这种情况,直到相关联的实体(例如,安全访客CPU、安全访客域或区域)被破坏为止。

在一个示例中,用于支持区-专用UV控制块的UV存储的第一区段作为初始化UVC的一部分被捐献给安全接口控制,且驻留在本文中称为UV2存储的部分中。用于支持基础和可变安全-访客-配置控制块(对于每个安全访客域)的UV存储的第二和第三部分作为创建-安全-访客-配置UVC的一部分被捐献,并且分别驻留在UVS和UVV存储中。用于支持安全-CPU控制块的UV存储的第四和最后一段也驻留在UVS空间中,并且作为创建-安全-访客-CPU UVC的一部分被捐赠。当这些区域中的每一个被捐赠时,安全控制接口将它们标记为安全(以防止它们被任何不安全实体访问),并且还将它们在区安全表中注册为属于安全接口控制(以防止它们被任何安全访客实体访问)。为了在UV空间内提供进一步的隔离,UV2空间(其不与任何专用的安全访客域相关联)也用唯一的UV2安全域标注,而UVS和UVV空间两者都进一步用相关联的专用的安全访客域标注。在此示例中,UVV空间驻留在主机虚拟空间中,且因此可用主机虚拟到主机绝对映射来进一步识别。

尽管安全接口控制能够访问所有存储(不安全存储、安全访客存储和UV存储),本发明的一个或多个实施例提供允许安全接口控制非常特定地访问UV存储的机制。使用在安全访客域之间提供隔离的相同硬件机制,本发明的实施例可以在UV存储内提供类似的隔离。这保证了安全接口控制仅在预期和指定时访问UV存储;仅访问用于期望的指定的安全访客的安全访客存储;以及仅当指定时访问不安全存储器。即,安全接口控制可以非常明确地指定其意图访问的存储,使得硬件可以保证其确实访问该存储。此外,还可以指定其仅旨在访问与所指定的安全访客域相关联的UV存储。

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

在该新的安全环境中,每当管理程序页面调出安全页面时,需要从安全存储(导出)UVC发布新的转换。响应于此导出UVC,安全接口控制将1)指示页面被UV“锁定”,2)加密该页面,3)将页面设置为不安全,并且4)重置UV锁。一旦导出UVC完成,管理程序现在可以页面调出加密的访客页面。

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

本发明的一个或多个实施例使安全访客能够与管理程序共享页面。安全接口控制可提供一个或多个共享命令,诸如定义-共享-存储命令或制作-共享命令。对于共享页面,安全接口控制可将该页面分配给单个安全访客配置并将该页面标记为不安全。安全访客访问可以继续验证页面尚未被管理程序重新映射或重新分配给不同的访客。安全接口控制可以提供不同安全访客配置的共享存储之间的隔离,同时允许管理程序访问。

现在转到图1,根据本发明的一个或多个实施例,总体上示出了用于区安全的表100。图1中所示的区安全表100由安全接口控制维护,并且由安全接口控制和硬件使用,来保证对由安全实体访问的任何页面的安全访问。区安全表100由主机绝对地址110索引。即,对于主机绝对存储的每个页面存在一个条目。每个条目包括用于验证该条目属于进行访问的安全实体的信息。

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

动态地址转换(DAT)用于将虚拟存储映射到真实存储。当访客VM在管理程序的控制下作为可分页面(pageable)访客运行时,访客使用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。类似地,使用ASCE B 210在两表234和236查找中分别将虚拟页面B1.V214b1和B2.V 214b2映射到绝对页面B1.A 222b1和B2.A 222b2。

现在转到图3,根据本发明的一个或多个实施例,总体上示出了用于支持在管理程序下运行的VM的嵌套的多部分DAT转换的示例。在图3所示的示例中,访客A虚拟地址空间A302(由访客ASCE(GASCE)A 304定义)和访客B虚拟地址空间B 306(由GASCEB 308定义)两者都驻留在共享主机(管理程序)虚拟地址空间325中。如图所示,属于访客A的虚拟页面A1.GV310a1、A2.GV 310a2和A3.GV 310a3分别由访客A存储管理器使用GASCEA 304映射到访客绝对页面A1.HV 340a1、A2.HV 340a2和A3.HV 340a3;属于访客B的虚拟页面B1.GV 320bl和B2.GV 320b2分别由访客B存储管理器使用GASCEB 308独立地映射到访客绝对页面B1.HV360bl和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.HA 380。这使得数据能够在这两个访客之间共享。在访客DAT转换期间,每个访客表地址被视为访客绝对地址,并且经历附加的嵌套主机DAT转换。

本文所述的本发明的实施例提供安全访客和UV存储保护。禁止不安全访客和管理程序访问安全存储。管理程序规定对于给定的驻留安全访客页面,发生以下操作。相关联的主机绝对地址仅通过单个管理程序(主机)DAT映射是可访问的。即,存在映射到分配给安全访客的任何给定主机绝对地址的单个主机虚拟地址。与给定安全访客页面相关联的管理程序DAT映射(主机虚拟到主机绝对)在它被页面调入时不改变。针对单个安全访客映射与安全访客页面相关联的主机绝对页面。

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

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

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

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

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

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

现在转向图5,根据本发明的一个或多个实施例,总体上示出DAT操作的系统示意图500。系统示意图500包括主机主要虚拟地址空间510和主机归属(home)虚拟地址空间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表(由HPASCE591定义)如下转换主机主要虚拟地址空间510的页面:访客A绝对页面A1.HV被映射到属于安全访客A的主机绝对A1.HA;访客A绝对页面A2.HV被映射到属于安全访客A的主机绝对页面A2.HA;访客B绝对页面B1.HV被映射到属于安全访客B的主机绝对页面B1.HA;并且主机虚拟页面H3.HV被映射到主机绝对页面H3.HA不安全主机(并且不存在主机-地址对,因为它是不安全的)。进一步,(由HHASCE 592定义的)管理程序(主机)归属DAT表如下转换主机归属虚拟地址空间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.HA和H2.HA的两个主机虚拟页面H1.HV和H2.HV。主机主要虚拟地址空间510和主机归属虚拟地址空间520两者映射到单个主机绝对530中。属于安全访客A和安全访客B的存储页面被标记为安全的,并且利用其安全域和相关联的主机虚拟地址注册在图1所示的区安全表100中。另一方面,主机存储被标记为不安全。当管理程序定义这些安全访客时,它必须将主机存储捐献给安全接口控制,以用于支持这些安全访客所需的安全控制块。该存储可以在主机绝对或主机虚拟空间中定义,并且在一个例子中,具体地,在主机归属虚拟空间中定义。返回到图5,主机绝对页面U1.HA和U2.HA安全UV绝对是被定义为主机绝对存储的安全-接口-控制存储。因此,这些页面被标记为安全的,并且在图1所示的区安全表100中注册为属于安全接口控制并且具有相关联的安全域。因为页面被定义为主机绝对地址,所以不存在相关联的主机虚拟地址,所以在区安全表100中设置DA位。

在转换之后,可在图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(PIC 11)指示的主机页面错误

(参见框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,该初始化UVC为整个区的安全访客配置之间协调所需的UV控制块提供所捐赠的存储。初始化UVC指定基础区-专用存储来源。

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

在框930,管理程序保留存储(例如,基础和可变安全-访客-域-专用存储)。例如,管理程序保留基础和可变(例如,基于安全-访客-域存储的大小)安全-访客-域-专用存储(例如,由查询UVC返回的大小)。在框935,管理程序向安全接口控制发布创建配置。就这一点而言,管理程序可以发布创建-安全-访客-配置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)中注册为UV,没有安全访客域并且没有管理程序到主机绝对(HV->HA)映射。而是其以唯一UV2安全域注册,且将DA位设定为1。注意,安全接口控制真实存储1010可以由安全接口控制作为真实访问。

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

在箭头1045处,从管理程序(不安全)页面C发布创建-SG-配置UVC,其将该页面转换到与安全访客域(UVV)相关联的安全接口控制虚拟存储1050。安全接口控制虚拟存储1050可以被标记为安全,并且在区安全表(例如,图1中所示的区安全表100)中注册为UV,具有安全访客域和管理程序到主机绝对(HV->HA)映射。注意,安全接口控制虚拟存储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,访问可被标注为虚拟的。一旦访问在框1240被标注为真实而DAT关闭,或者在框1245被标注为虚拟而DAT开启,硬件就准备好在框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处呈现为错误,而不是如在框1425处针对安全访客违背所做的那样在框1435处向管理程序呈现异常(安全-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向管理程序呈现异常。

对于在框1420处注册到指定安全域的、在框1440和框1410处对存储的安全访问,如果虚拟地址检查被禁用,即,在框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向管理程序呈现异常。如果DA位=0并且在框1475处访问是真实访问(虚拟=否),则对于在框1425的安全-UV访问,在框1430给出错误,并且对于在框1425的安全-访客访问(安全-UV=否),在框1435向管理程序呈现异常;可替代地,转换可在框1450成功完成。在框1480处由I/O子系统进行的任何访问可检查以查看在框1445处页面是否被标记为安全,并且如果页面是安全的,则在框1435处可向管理程序呈现异常;如果页面未被标记为安全,则在框1450处转换成功。

可以通过区安全表接口1485来共同管理对存储注册和映射的不同检查。例如,框1410、1420、1455、1470和1475可以与关联于相同区的区安全表对接以管理不同访问。

现在转向图15,根据本发明的一个或多个实施例总体上示出了用于共享访问存储保护的处理流程1500。在框1505处,如果计划共享存储器页面但内容是秘密的,例如作为存储器管理的部分而不是共享数据内容,那么安全实体(例如安全访客)可加密存储器的页面。加密可以作为安全接口控制的服务提供,或者安全访客可以选择实施单独的加密过程。

在图15的示例中,在框1510,安全实体可以向安全接口控制发布设置-共享-访问命令。可以在安全接口控制处接收设置-共享-访问命令,作为来自安全实体的建立对页面的共享访问的请求。在框1515处,安全接口控制可确定该页面当前是否通过安全存储保护指示符被设置(例如,SSP=1)而被标识为安全的,并且在框1520处,确定该页面是否被注册到发布该命令的安全实体的安全域。安全接口控制可以基于在框1515处确定该页面被标识为安全的并且在框1520处注册到安全实体的安全域来将该页面注册到安全域作为共享的。在框1530处,基于确定该页面当前被标识为安全(框1515)、被注册到安全实体的安全域(框1520)并且该页面尚未被锁定(框1525),安全接口控制可以锁定该页面。安全接口控制可防止尝试管理同一安全页面的安全实体或安全接口控制在该页面被锁定时访问该页面。例如,安全接口控制可防止安全实体和/或安全接口控制在不同处理器上和/或在不同上下文中进行页面注册的改变尝试在该页面被锁定时访问该页面。当该页面被锁定时,该页面的一个或多个授权检查和/或状态更新可由该安全接口控制来执行。授权检查和状态更新可以包括例如与机器的完整性状态相关的检查和更新,该机器用于在管理程序将内容页面调入和调出存储器时维护和检测对加密内容的改变。在框1535处,可以基于完成对该页面的一个或多个授权检查来对该页面进行解锁,并且可以将该页面注册到安全域作为共享。在框1540处,可将所述页面标记为不安全。

在一些实施例中,如果需要加密,那么可在锁定页面之后但在共享页面且将页面标记为不安全之前的点处在过程流程1500中稍后执行框1505。在框1545处,可以基于确定在接收建立对页面的共享访问的请求之前页面已经被锁定(框1525=是)来向安全实体发送繁忙指示符。繁忙指示符可在框1550处被延迟,例如以便为先前发布的命令提供附加时间来完成和减慢重试速率。该延迟可由安全接口控制或安全访客来执行。如果该页面未注册到安全域(框1520=否)或该页面不安全(框1515=否)并且该页面被共享(框1560=是),则可以在框1555处报告错误。如果该页面不安全(框1515=否)并且该页面不被共享(框1560=否),则在框1555处可以向不安全实体提出异常。

现在转向图16,根据本发明的一个或多个实施例总体上示出了用于在安全域与不安全实体之间进行存储共享的过程流程1600。过程流程1600是图15的过程流程1500的变型。

在框1605处,计算机系统的安全接口控制可以基于页面通过页面的安全存储保护指示符被清除(例如,SSP=0)而被标记为不安全而使得计算机系统的不安全实体能够访问在不安全实体与计算机系统的安全域之间共享的存储器的页面。在框1610处,安全接口控制可以在允许不安全实体访问该页面之前验证该页面的安全存储保护指示符被清除。安全存储保护指示符可以是针对存储器的多个页面中的每一页面的计算机系统的硬件中的位。不安全实体可以是管理程序,并且安全实体可以是虚拟机,该虚拟机是由管理程序托管在安全域中的安全访客。在框1615处,安全接口控制可以向安全域的安全实体提供对该页面的访问,而不检查该页面的安全存储保护指示符(例如,不检查SSP)。

主机地址的存储器映射测试仍可作为访问验证的一部分来执行,但避免SSP的检查可进一步增强处理速度,同时确保不安全实体不能访问安全存储。安全接口控制可以验证由不安全实体建立并且由安全实体使用的动态地址转换映射在向安全实体提供对页面的访问之前未改变。可以通过包括与该页面相关联的安全域标识符和与该页面相关联的虚拟地址映射数据的区安全表(如图1的区安全表100)来检查和更新该安全域。

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

云计算是一种服务交付模型,用于实现对可配置计算资源(例如,网络、网络带宽、服务器、处理、存储器、存储、应用、虚拟机和服务)的共享池的方便、按需的网络访问,所述可配置计算资源可以用最小的管理努力或与服务提供商的交互来快速配置和释放。该云模型可以包括至少五个特性、至少三个服务模型和至少四个部署模型。

特性如下:

按需自助服务:云消费者可按需自动地单方面供应计算能力,诸如服务器时间和网络存储,而无需与服务提供商进行人工交互。

广泛的网络接入:通过网络提供功能,并通过标准机制进行访问,所述标准机制促进由异构的瘦客户端或厚客户端平台(例如,移动电话、膝上型计算机和PDA)的使用。

资源池化:提供者的计算资源被汇集起来以使用多租户模型来服务于多个消费者,不同的物理和虚拟资源根据需要被动态分配和重新分配。存在位置独立性的意义,因为消费者通常对所提供资源的确切位置不具有控制权或知识,但可能能够指定更高抽象层级的位置(例如,国家、州或数据中心)。

快速弹性:在某些情况下,可以快速且弹性地配置功能,以快速扩展缩小并迅速释放以快速收缩。对于消费者而言,可用于配置的功能通常似乎是无限的,可以在任何时间以任何数量购买。

度量的服务:云系统通过利用与服务类型(例如,存储、处理、带宽和活动用户帐户)相适应的某种抽象层级的计量能力,自动控制和优化资源使用。可以监视、控制和报告资源使用情况,为所使用服务的提供者和使用者提供透明性。

服务模型如下:

软件即服务(SaaS):向消费者提供的能力是使用在云基础设施上运行的提供者的应用。这些应用可通过诸如web浏览器(例如,基于web的电子邮件)的瘦客户端接口从不同客户端设备访问。消费者不管理或控制包括网络、服务器、操作系统、存储或甚至个体应用功能的底层云基础结构,可能的例外是有限的用户特定的应用配置设置。

平台即服务(PaaS):向消费者提供的能力是在云基础结构上部署消费者创建或获取的应用,所述应用是用提供者所支持的编程语言和工具创建的。消费者不管理或控制包括网络、服务器、操作系统或存储的底层云基础结构,但是具有对所部署的应用以及可能的应用托管环境配置的控制。

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

部署模型如下:

私有云:云基础结构仅为组织运营。它可以由组织或第三方管理,并且可存在于场所内或场所外。

社区云:云基础结构由多个组织共享,并支持具有共同关注点(例如,任务、安全要求、策略和合规性考虑)的特定社区。它可以由组织或第三方管理,并且可存在于场所内或场所外。

公共云:云基础结构可供公众或大型行业团体使用,并由销售云服务的组织拥有。

混合云:云基础结构是由两个或更多个云(私有、社区或公共的)组成的,这些云仍然是唯一性实体,但通过标准化或专有技术来绑定在一起,这些技术实现数据和应用的可移植性(例如,用于云之间的负载平衡的云突发)。

云计算环境是面向服务的,着重于无状态性、低耦合、模块化和语义互操作性。云计算的核心是包括互连节点网络的基础架构。

现在参见图17,描绘说明性云计算环境50。如图所示,云计算环境50包括一个或多个云计算节点10,云消费者使用的本地计算设备(诸如个人数字助理(PDA)或蜂窝电话54A、台式计算机54B、膝上型计算机54C和/或汽车计算机系统54N)可与云计算节点10通信。节点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包括例如经由网络165与一个或多个客户端设备20A-20E直接或间接通信的示例节点10(例如,托管节点)。节点10可以是云计算提供商的数据中心或主机服务器。节点10执行管理程序12,其促进部署一个或多个VM 15(15A-15N)。节点10还包括硬件/固件层13,其包括安全接口控制11。安全接口控制11包括促进管理程序12向虚拟机15提供一个或多个服务的一个或多个硬件模块和固件。在管理程序12与安全接口控制11之间;安全接口控制11和一个或多个VM 15之间;管理程序12和一个或多个VM 15之间;以及管理程序12通过安全接口控制11到VM15存在通信。为了促进安全VM环境,根据本发明的一个或多个实施例的托管节点10不包括管理程序12与一个或多个VM15之间的任何直接通信。

例如,托管节点10可促进客户端设备20A部署VM 15A-15N中的一个或多个。可响应于来自不同客户端设备20A-20E的相应请求部署VM 15A-15N。例如,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)特征来覆盖VM15A-15N。这些特征(诸如PR/SM LPAR)提供分区之间的隔离,因此促进节点10在不同的逻辑分区中为同一物理节点10上的不同实体部署两个或更多个VM 15A-15N。PR/SM LPAR管理程序在具有特定硬件的可信的内部固件中实现以提供这种隔离。

来自客户端设备20A-20e的客户端设备20A是通信设备,诸如计算机、智能电话、平板计算机、台式计算机、膝上型计算机、服务器计算机或请求由节点10的管理程序12部署VM的任何其他通信设备。客户端设备20A可以经由网络165发送由管理程序接收的请求。来自VM 15A-15N的VM 15A是管理程序12响应于来自客户端设备20A-20e中的客户端设备20A的请求而部署的VM映像。管理程序12是VM监视器(VMM),其可以是创建和运行VM的软件、固件或硬件。管理程序12促进VM 15A使用节点10的硬件组件来执行程序和/或存储数据。利用适当的特征和修改,管理程序12可以是Oracle的VM Server、Citrix的XenServer、Vmware的ESX、Microsoft的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-21所描述的过程)。数据2009包括以不同数据结构组织以支持软件2008的操作和由软件2008的操作使用的定性或定量变量的一组值。

图20的节点10包括互连和支持处理器2001、系统存储器2003、硬盘2007和节点10的其他组件(例如,外围设备和外部设备)之间的通信的一个或多个适配器(例如,硬盘控制器、网络适配器、图形适配器等)。在本发明的一个或多个实施例中,一个或多个适配器可以连接到经由中间总线桥连接到系统总线2002的一个或多个I/O总线,并且一个或多个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的内部迭代,作为平台即服务、软件即服务、和/或基础设施即服务(例如,作为分布式系统中的web应用)。

本文描述的实施例必然以计算机技术为根源,并且具体地以托管VM的计算机服务器为根源。进一步,本发明的一个或多个实施例通过促进托管VM的计算机服务器托管安全VM来促进对计算技术本身(特别是托管VM的计算机服务器)的操作的改进,其中即使管理程序被禁止访问与安全VM相关联的存储器、寄存器和其他这样的数据。此外,本发明的一个或多个实施例通过使用包括硬件、固件(例如,毫码)或其组合的安全接口控制(在此也被称为“UV”),向改进VM托管计算服务器提供重要步骤,促进安全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条留言

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

精彩留言,会给你点赞!

技术分类