CN112805693A - 受信赖中间领域 - Google Patents

受信赖中间领域 Download PDF

Info

Publication number
CN112805693A
CN112805693A CN201980064654.1A CN201980064654A CN112805693A CN 112805693 A CN112805693 A CN 112805693A CN 201980064654 A CN201980064654 A CN 201980064654A CN 112805693 A CN112805693 A CN 112805693A
Authority
CN
China
Prior art keywords
domain
realm
given
memory
security configuration
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.)
Pending
Application number
CN201980064654.1A
Other languages
English (en)
Inventor
尼古拉斯·伍德
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ARM Ltd
Original Assignee
ARM Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ARM Ltd filed Critical ARM Ltd
Publication of CN112805693A publication Critical patent/CN112805693A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1441Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a range
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/145Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being virtual, e.g. for virtual blocks or segments before a translation mechanism
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1491Protection against unauthorised use of memory or access to memory by checking the subject access rights in a hierarchical protection system, e.g. privilege levels, memory rings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/107License processing; Key processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/151Emulated environment, e.g. virtual machine

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)
  • Medicines Containing Plant Substances (AREA)
  • Saccharide Compounds (AREA)
  • Debugging And Monitoring (AREA)

Abstract

存储器存取电路(26)基于所有权信息来控制对存储器的存取,该所有权信息针对给定存储器区域定义了从两个或更多个领域中规定的拥有者领域,每个领域对应于在处理电路(8)上执行的软件过程的至少一部分。拥有者领域有权阻止其他领域存取存储在给定存储器区域内的数据。当给定领域的安全性配置参数规定该给定领域与由安全性配置参数识别的受信赖中间领域相关联时,该受信赖中间领域可被允许执行给定领域的至少一个领域管理功能,例如,提供密钥和/或保存/恢复安全性配置参数。这可实现以下用例,其中需要在不同时间在相同系统上、或在不同系统上建立具有共享参数的相同领域的多个实例。

Description

受信赖中间领域
技术领域
本技术涉及数据处理的领域。
背景技术
已知提供用于在存储器地址空间中增强对特定存储器区域的存取权限的存储器存取控制技术。通常,这些技术可基于特权级,使得以较高特权级执行的过程可以排除特权级较低的过程对存储器区域进行存取。
发明内容
至少一些示例提供一种设备,包括:处理电路,用于响应于一个或多个软件过程而执行数据处理;以及存储器存取电路,用于基于所有权信息来控制对多个存储器区域的存取,该所有权信息针对给定存储器区域定义了从多个领域中规定的拥有者领域,每个领域与这些软件过程中的至少一个软件过程的至少一部分相对应,所述拥有者领域有权阻止其他领域存取存储在所述给定存储器区域内的数据;以及领域管理单元,用于基于与给定领域相关联的安全性配置参数控制给定领域的操作;其中:当给定领域的安全性配置参数规定给定领域与由安全性配置参数识别的受信赖中间领域相关联时,领域管理单元被配置为允许受信赖中间领域执行给定领域的至少一个领域管理功能。
至少一些示例提供一种数据处理方法,包括:响应于一个或多个软件过程而执行数据处理;基于所有权信息来实施针对多个存储器区域的的所有权权限,该所有权信息针对给定存储器区域定义了从多个领域中规定的拥有者领域,每个领域与这些软件过程中的至少一个软件过程的至少一部分相对应,所述拥有者领域有权阻止其他领域存取存储在所述给定存储器区域内的数据;以及基于与给定领域相关联的安全性配置参数控制给定领域的操作;其中:当给定领域的安全性配置参数规定给定领域与由安全性配置参数识别的受信赖中间领域相关联时,允许受信赖中间领域执行给定领域的至少一个领域管理功能。
至少一些示例提供一种用于控制主机数据处理设备来提供指令执行环境的计算机程序,包括:存储器存取程序逻辑,用于基于所有权信息来控制对模拟存储器地址空间的多个存储器区域的存取,该所有权信息针对给定存储器区域定义了从多个领域中规定的拥有者领域,每个领域与在指令执行环境中执行的多个软件过程中的至少一个软件过程的至少一部分相对应,所述拥有者领域有权阻止其他领域存取存储在所述给定存储器区域内的数据;以及领域管理程序逻辑,用于基于与给定领域相关联的安全性配置参数控制给定领域的操作;其中:当给定领域的安全性配置参数规定给定领域与由安全性配置参数识别的受信赖中间领域相关联时,领域管理程序逻辑被配置为允许受信赖中间领域执行给定领域的至少一个领域管理功能。
一种存储介质可存储计算机程序。该存储介质可为非暂时性存储介质。
附图说明
本技术的进一步的方面、特征及优点将从结合附图阅读的以下实例描述而显而易见,在附图中:
图1示意性地示出了数据处理系统,该数据处理系统包括多个处理组件,这些多个处理组件利用存储在第一存储器及第二存储器内的存储器区域;
图2示意性地示出了所执行的多个过程之间的关系、与这些过程相关联的特权级,以及与用于控制哪一过程拥有给定存储器区域并因此具有排他权限来控制对该给定存储器区域的存取的这些过程相关联的领域;
图3示意性地示出了在由领域管理单元及存储器管理单元管理下的存储器区域;
图4示出了处理组件及存储在存储器中的领域管理控制数据的更详细实例;
图5示出了其中上代(parent)领域可定义描述各种子代(child)领域的性质的领域描述符的领域层级的实例;
图6和图7示出了领域层级的两个不同实例;
图8示出了上代领域维持以记录其子代领域的领域描述符的领域描述符树的实例;
图9示出了领域描述符的内容的实例;
图10为示出不同领域生命周期状态的表;
图11为指示领域的生命周期状态的变化的状态机图表;
图12为示出用于给定存储器区域的所有权表中的条目的内容的表;
图13为示出可见性属性的表,这些可见性属性可针对给定存储器区域来设置以控制除拥有者之外的哪些领域被允许存取区域;
图14示出了用于存储器区域的不同生命周期状态的实例,这些不同生命周期状态包括对应于RMU-私有存储器区域的状态,这些RMU-私有存储器区域被保留来用于由领域管理单元互斥存取;
图15为示出用于给定存储器区域的生命周期状态的转换的状态机;
图16示出了给定存储器区域的所有权可如何在上代领域及其子代领域之间传递;
图17A示意性地示出了基于页表提供的存储器访问控制,这些页表定义存储器控制属性,这些存储器控制属性取决于特权级及领域管理单元级,这些领域管理单元级基于由拥有者领域设置的许可来提供对存储器存取的控制的正交级;
图17B示出了转换后备缓冲器的实例;
图18为示出基于页表及RMU表来控制对存储器的存取的方法的流程图;
图19示出了对子代领域的使用,这些子代领域对应于与子代领域的上代领域相关联的过程内的特定地址范围;
图20示出了参数签名的实例;
图21示出了当参数签名与期望签名不匹配时限制领域启动的方法;
图22和图23示出了其中可用于以与由一个领域使用的相同的密钥或安全性参数来启动另一领域的用例的两个实例;
图24示出了其中领域可与受信赖中间领域相关联的实例;
图25示出了使用中间领域控制针对目标领域的领域管理功能的示例性方法;
图26示出了为目标领域产生证明的方法;以及
图27示出了可使用的仿真器实例。
具体实施方式
在基于特权的存储器访问控制方案中,更具特权的过程可设定存取许可,该存取许可定义较少特权过程可存取的存储器区域。然而,这可通常意味对较少特权过程可存取的任何区域对于更具特权的区域也可存取。因此,在给定操作系统或虚拟机下执行的所有应用程序可能需要信赖与该操作系统或虚拟机相关联的软件,并且在给定管理程序下执行的所有操作系统或虚拟机可能需要信赖该管理程序。
在一些用例中,对更具特权过程的此信赖可能不是期望的。例如,在数据中心中,多个虚拟机可由多个不同方提供,每一虚拟机在由管理数据中心的云端平台提供者所提供的管理程序的控制下执行。例如,给定虚拟机(或在给定虚拟机下执行的应用程序)的提供者可能不希望将其数据暴露于管理程序或其他虚拟机。例如,银行业提供者可提供用于执行银行应用程序的虚拟机,并且可能不希望敏感的财务信息对于管理程序或共享同一实体平台的其他虚拟机可存取。
设备可具有用于支持一或多个软件过程(诸如应用程序、操作系统/虚拟机、管理程序等)的处理的处理电路。存储器存取电路可被提供以基于所有权信息来控制对存储器地址空间的多个存储器区域的存取,该所有权信息针对给定存储器区域定义了从多个领域中规定的拥有者领域。每一领域对应于软件过程的至少一者的至少一部分。给定存储器区域的拥有者领域有权阻止其他领域存取存储在给定存储器区域内的数据。因此,与其中存取许可仅定义允许哪些过程存取(读取或写入)给定存储器区域的基于特权的模型相反,对于基于领域的方法,拥有者领域具有控制哪些其他领域存取其所拥有的存储器区域的能力。因此,存在对存储器存取的分布式控制,其中地址空间的不同部分可被分配有对地址空间的该部分的存取具有控制的不同领域拥有者,而不是典型的基于特权的模型,其中单个过程定义用于由较少特权过程存取地址空间的自上而下规则。该方法使得给定领域保护其数据不被其他过程所存取,这些其他过程包括在相同特权级或在较高特权级下操作的过程。
在一些实例中,此基于领域的方法可与基于特权的方法并行地应用,以便存在对于给定存储器区域的多个重迭的存取权集合:由较高特权过程设定的基于特权的许可,及由对于存储器区域的拥有者领域设定的存取许可。若存储器存取满足许可集合两者,则可允许存储器存取。
基于与给定领域相关联的安全性配置参数,领域管理单元可被提供至给定领域的控制操作。例如,安全性配置参数可定义诸如领域类型(其可管理领域具有的性质或领域能够进行哪些操作)、与给定领域相关联的受保护地址范围(其可标记可由给定领域安全地存取的存储器区域的边界)之类的信息及其他信息,这些其他信息关于是否将准许诸如使用存储器存取电路进行调试、或从存储器保护器输出数据至由该存储器存取电路保护的边界之外的外部存储器之类的操作。此外,安全性配置参数可例如包括用于导出至少一个密钥的密钥材料,该密钥用于保护与给定领域相关联的数据。将了解,可为领域定义各种不同的安全性配置参数。
在下文论述的技术中,对于给定领域的安全性配置参数可规定给定领域与由安全性配置参数所识别的受信赖中间领域相关联。领域管理单元可允许受信赖中间领域执行给定领域的至少一个领域管理功能。提供此受信赖中间领域可用于实现多个用例,其中相同领域的各个实例需要例如在不同的时间点及/或在不同的实体平台上建立,其中相同领域的每一实例需要存取一些共享的配置参数以使得领域能够可预期地运行,而与正在建立的领域之特定实例无关。由给定领域自身或由硬件平台以可重复的方式建立这种共享配置参数,同时仍然保持安全及信赖可能是困难的。提供定义被允许执行对于给定领域的某些领域管理功能的受信赖中间领域,这可实现以下用例,例如领域从一平台至另一平台的安全迁移,或向在用于负载平衡或冗余目的的相同系统或不同实体系统上执行的相同领域的多个实例提供共享密钥。由于受信赖中间领域本身为具有由存储器存取电路提供的自有所有权保护的领域,这表示受信赖中间领域自身的安全性可被验证且证实以提供该受信赖中间领域管理的领域为安全的信赖。
领域管理功能可包括更新给定领域的安全性配置参数的至少一部分。在一些情况下,用于更新安全性配置参数的能力可限于领域生命周期的某些阶段,例如在给定领域的启动之前。领域可能不被允许由处理电路处理,直至该领域已经启动为止。
通过提供可管理某些安全性配置参数的更新的受信赖中间领域,这使得在平台之间迁移领域、或保存或恢复领域的先前版本,或者启动具有共享安全性配置的相同领域的多个实例更为简单。
在一个实例中,除了根领域之外的每个领域可与创建该领域的对应上代领域相关联。领域管理单元可支持安全性配置参数将受信赖中间领域定义为除了给定领域的上代领域之外的领域。也就是说即,尽管受信赖中间领域可被定义为上代领域(若需要),但架构还允许受信赖中间领域被定义为除了上代领域之外的领域。
因此,虽然上代领域可初始地建立领域,但是有时上代领域自身可能不被信赖以意识到对于给定领域的某些安全性配置参数,诸如用于导出用于保护将由该领域使用的数据的密钥的密钥材料。通过使得除了上代领域以外的领域能够为由中间领域管理的目标领域建立某些安全性配置参数,这可在多个领域需要具有相同安全性配置的情况下实现更大的安全性。例如,受信赖中间领域可为基于由银行业提供者、保健提供者或其他方提供的软件操作的领域,这些领域意指对某些敏感信息具有存取的受管理领域,而上代领域可为在云端平台上执行的管理程序,该云端平台可能并非由银行业/保健提供者等信赖。
在给定领域的建立期间,基于由上代领域发布的至少一个命令,领域管理单元可以设定给定领域是否与受信赖中间领域相关联。因此,上代领域及受信赖中间领域两者可在给定领域的生命周期的某些阶段处具有设定某些安全性配置参数的能力。如下文所述,参数签名方案可用于证实在启动给定领域之前是否已为该指定领域正确设定了安全性配置参数。这可用于检查上代领域在领域的建立期间是否正确配置了受信赖中间领域,以便需要确保领域具有如由受信赖中间领域定义的某些安全性配置设定的一方可核对是否涉及了正确的受信赖中间领域。这可防止恶意上代领域错误地设定对于给定领域的受信赖中间领域的识别。
领域管理单元可支持证明功能,其中响应于识别目标领域的证明命令,领域管理单元可提供证明目标领域的性质的证明。例如,该证明可包括从目标领域的配置参数导出的信息及/或由目标领域所拥有的存储器区域的内容。证明可被签署有证明其真实性的某种密钥。
对于针对其安全性配置参数规定目标领域与受信赖中间领域相关联的领域,证明可包括指示目标领域与受信赖中间领域相关联的事实的信息。此外,证明可包括中间领域证明信息,该中间领域证明信息为直接对受信赖中间领域的性质进行证明的信息,或使得能够接收证明以请求对与目标领域相关联的受信赖中间领域的进一步证明的信息中的任一者。例如,中间领域证明信息可仅为受信赖中间领域的识别符,并且随后可发布后续证明命令,该后续证明命令将受信赖中间领域识别为目标领域,以便为该受信赖中间领域产生进一步的证明。因此,通常,当证明给定领域时,领域管理单元还可提供使得验证的实体还能够证明相关联的受信赖中间领域的信息,以便其可在领域被受信赖中间领域正确配置的事实下建立信赖。
领域管理单元可防止给定领域由处理电路处理,直至已启动给定领域为止。在已启动给定领域之前,与给定领域相关联的受信赖中间领域可被允许触发生成给定领域的证明。这可用于受信赖中间领域以验证在向领域提供密钥或其他配置信息之前,对于给定领域的安全性配置参数是否已被正确地配置。这可提高安全性。相反,若证明命令是由除了与目标领域相关联的受信赖中间领域以外的领域发布的,若目标领域不在有效状态中,则可拒绝证明命令。
在一个实例中,由受信赖中间领域提供的领域管理功能可为提供给定领域的至少一个所提供的秘密。所提供的秘密可包括用于保护与给定领域相关联的数据(包括数据值及/或程序代码)的至少一个密钥;及/或用于导出该密钥的密钥材料。因此,通过定义可被信赖以提供所提供的秘密(这些秘密可用于保护另一领域的所拥有的存储器区域的内容)的受信赖中间领域,这可使得能够以安全的方式及时地在相同或不同的实体平台上或在不同的实例下建立相同领域的多个实例。领域管理单元可禁止除了受信赖中间领域以外的任何领域为给定领域提供该所提供的秘密。
为给定领域提供至少一个所提供的秘密可限于在已启动给定领域之前。在已启动给定领域之后,可禁止受信赖中间领域为给定领域提供这些所提供的秘密。这可用于提高安全性,因为可对给定领域的启动执行某些核对,并且这确保所提供的秘密可在领域被启动以使其能够被处理之前得以验证。对提供至少一个提供秘密的管理可基于密钥管理策略信息,该密钥管理策略信息可由受信赖中间领域提供。例如,密钥管理策略可规定有多少其他领域可具有由受信赖中间领域获得的给定秘密、在其之内给定版本的秘密可被提供至由受信赖中间领域管理的领域的时间段、或其他条件等,这些其他条件在秘密可被提供至受管理领域之前由受信赖中间领域验证为对于受管理领域是满足的。该策略自身可通过使用上文论述的证明机制来证明受信赖中间领域的性质而得以证明。
至少一个所提供的秘密可以不是由给定领域使用的密钥的唯一类型。还可存在其他类型的秘密,诸如从硬件的特定硬件实例的特性导出的“实例唯一的”秘密。若给定领域在特定平台上执行并且随后在相同平台上重新启动,则这些秘密可保持相同;但是若领域在不同的平台上重新启动,则这些秘密可不同。实例唯一的秘密可在无受信赖中间领域的情况下安全地导出,并且这些秘密可例如使用实体平台的硬件装置在给定领域之内操作时导出。另一类型的秘密可为“领域唯一的”根秘密,这些根秘密可例如使用由给定领域自身的软件存取的伪随机数生成器来生成,并且这些根秘密可在每次重新启动领域时不同,即使在相同系统中重新启动。
然而,在其中领域需要迁移至不同的实体平台,或若需要创建相同领域的多个实例,其中相同领域的不同实例需要存取共享秘密以便其可全部安全地存取相同数据的情况下,这些实例唯一的或领域唯一的根秘密可能并不适用。提供受信赖中间领域以管理如上所述对至少一个提供秘密的提供有助于解决此问题。
在另一实例中,领域管理单元可允许受信赖中间领域以记录安全性配置记录,该安全性配置记录指示与给定领域相关联的安全性配置参数的至少子集。通常,可能不允许除了给定领域自身以外的领域存取其安全性配置参数。在一些实施中,可允许仅领域管理单元以读取给定领域的安全性配置参数(即使可能不允许给定领域自身对其读取)。然而,通过在给定领域的安全性配置参数中定义特定受信赖中间领域,并且允许受信赖中间领域记录某些安全性配置参数的指示,这可实现领域的迁移及保存/恢复。
例如,领域管理单元可允许受信赖中间领域基于先前由受信赖中间领域记录的安全性配置记录,来更新与给定领域相关联的安全性配置参数的至少子集。因此,若领域需要从一个实体平台迁移至另一实体平台,则受信赖中间领域可被建立以在源平台及目标平台两者上操作,并且随后受信赖中间领域可记录与源平台上的给定领域相关联的安全性配置记录,使用其自有的密钥将安全性配置记录加密,并且将经加密的数据发送至目标平台上的受信赖中间领域的对应实例,其随后可将来自安全性配置记录的这些安全性配置参数解密且恢复。这使得与给定领域相关联的秘密或配置信息能够在迁移过程中生存,同时保持安全性。另一示例性使用可为对于待终止的领域,需要使处理资源可用于所有其他目的,及随后对于待稍后重新建立的相同领域,同时仍具有对共享秘密的存取。此外,类似方法可支持相关用例,诸如备份且随后恢复完整的领域,或获取允许领域稍后得以回滚至先前已知状态的领域的快照或检查点。因此,使用受信赖中间领域实现了以其他方式可能不安全的多个操作。
管理记录安全性配置记录和/或从安全性配置记录恢复安全性配置参数可基于由受信赖中间领域提供的策略信息。同样,该策略自身可通过证明受信赖中间者来证明。
给定领域的安全性配置参数可包括以下各者的至少一项:领域类型;与给定领域相关联的受保护地址范围;对是否在给定领域之内实现调试的指示;对是否允许数据从由存储器存取电路进行访问控制第一存储器输出至第二存储器的指示;以及用于导出至少一个密钥以保护与给定领域相关联的数据的密钥材料。此外,安全性配置参数还可包括对如上文论述的受信赖中间领域的识别。
领域管理单元可以不同方式实施。在一个实例中,领域管理单元可为专用硬件单元,该专用硬件单元实施由领域方案提供的安全性保护。在其他实例中,领域管理单元可包括在处理电路上执行的软件,该软件不同于与每个领域相关联的软件。
上述实例描述具了有上文讨论的存储器存取电路及领域管理单元的设备。然而,在另一实例中,可提供相应的计算机程序以用于控制主机数据处理设备来提供用于执行指令的指令执行环境。计算机程序可包括存储器存取程序逻辑及领域管理程序逻辑,上述两者在功能上对应于上文讨论的存储器存取电路及领域管理单元。例如,计算机程序可为仿真器程序,该仿真器程序可呈现给在仿真器上执行的软件,与其类似的执行环境将由实际硬件设备提供,即使可能不存在提供由正在执行仿真器计算机程序的主计算机之内的软件所期望的架构特征的任何实际硬件。确切而言,期望的硬件架构的功能(包括基于由领域的受信赖中间领域发布的命令实施所有权权限及领域管理)可通过提供程序逻辑(诸如指令或数据结构的集合)而模拟,该程序逻辑使得通用主机计算机以与如下结果兼容的方式在具有上述领域保护的设备上执行用于执行的代码,该结果将在实际具有上述存储器存取电路及领域管理单元的设备上实现。用于控制主机数据处理设备的仿真器计算机程序可存储在存储介质上,该存储介质可为非暂时性存储介质。
图1示意性地示出了数据处理系统2,该数据处理系统包括片上系统集成电路4,该片上系统集成电路连接至分离非易失性存储器6,诸如用作大容量存储装置的芯片外闪存。片上系统集成电路4包括呈(在此示例性实施例中)两个通用处理器(CPU)8、10,及图形处理单元(GPU)12的形式的多个处理组件。将了解,在实践中,可提供许多不同形式的处理组件,例如,额外的通用处理器、图形处理单元、直接存储器访问(DMA)单元、共处理器、以及用来存取存储器地址空间内的存储器区域并对存储在这些存储器区域内的数据进行数据处理操作的其他处理组件。
通用处理器8、10及图形处理单元12耦接至互连电路14,这些通用处理器及该图形处理单元经由该互连电路与芯片上存储器16及外部存储器6(经由外部存储器接口18)进行存储器事务。尽管存储器16在图1中为在芯片上,但在其他实施例中,存储器16可代替地被实施为芯片外存储器。芯片上存储器16存储对应于整体存储器地址空间内的多个存储器区域的数据。这些存储器区域对应于存储器页并经受管理操作,这些管理操作控制哪些存储器区域(页)在给定时间处存在于芯片上存储器16内,这些过程可以存取存储在这些存储器区域内的数据及与这些存储器区域相关的其他参数。更具体地,在此示例性实施例中,处理组件8、10、12中每一者包括领域管理单元20、22、24及通用存储器管理单元26、28、30。通用存储器管理单元26、28、30用来控制存储器区域的操作的方面,例如,地址映射(例如虚拟地址与中间实体地址,或实体地址之间的映射)、对能够存取给定存储器区域的过程的特权级约束、给定存储器区域内的数据的存储特性(例如可缓存性、装置存储器状态等)、及存储器的区域的其他特性。
领域管理单元20、22、24管理用来实施对多个存储器区域的所有权权限的数据,藉此给定存储器区域具有从多个过程中规定的给定拥有过程(或拥有者“领域”)(过程或领域为例如监视器程序、管理器程序、访客操作系统程序、应用程序等中一者,或此程序的特定子部分)。用于给定存储器区域的给定拥有过程(拥有者领域)具有排他权限以控制对存储在该给定存储器区域内的给定拥有数据的存取。具体地,拥有者过程具有防止由在相较于拥有者过程的较大特权级执行的过程对该拥有者过程的所拥有的存储器区域的存取的权限。
因此,多个存储器区域在多个拥有者领域之间被划分。每一领域对应于至少一个软件过程的至少一部分,且被分配多个存储器区域的所有权。拥有过程/领域具有控制对存储在它们的领域的存储器区域内的数据的存取的权限,包括阻止更多权限的过程存取该领域的拥有区域的权限。对哪些存储器区域被存储器映射至每一领域的管理及控制由除拥有者领域自身之外的过程执行。使用此布置,诸如管理器之类的过程可以控制哪些存储器区域(存储器的页)被包含在由相应访客虚拟(访客操作系统)拥有的领域内,这些相应访客虚拟机由该管理器管理,然而管理器自身可不具有实际上存取存储在该管理器已分配给给定领域的存储器区域内的数据的权限。因而,例如,访客操作系统可以保持存储在该访客操作系统的领域内的数据(即存储在由该访客操作系统拥有的存储器区域内的数据)相对于其管理管理器私有。
存储器地址空间到领域的划分以及对这些领域的所有权的控制由与处理组件8、10、12中每一者相关联的领域管理单元20、22、24管理,并且是与由通用存储器管理单元26、28、30提供的更传统控制形式正交的控制过程。领域管理单元20、22、24因此提供存储器存取电路以实施对存储器地址空间的存储器区域的所有权权限。在一些情况下,实施领域所有权权限的存储器存取电路还可包括MMU 26、28、30的部分(例如MMU 26、28、30中的TLB可包括用于基于由RMU 20、22、24提供的领域控制来控制存取的一些控制数据,以避免需要存取两个分离结构)。在此示例性实施例中,处理组件8、10、12中每一者包含其拥有领域管理单元20、22、24;着对于性能目的为有利的。然而,更一般而言,实施所有权权限的存储器存取电路可包括领域管理单元的单个实例、存在的所有领域管理单元20、22、24的组合,或存在的这些领域管理单元20、22、24的子集。因而,用于实施所有权权限的存储器存取电路可以跨与不同处理组件8、10、12相关联的片上系统集成电路4分散,或在一个位置中或在一些其他配置中收集在一起。
包括通用处理器8、10的处理组件被示出为包括相应的解码及执行电路32、34,这些相应的解码及执行电路解码且执行程序指令。这些程序指令包括用来控制存储器地址空间的不同所有权领域内的存储器区域的管理的命令(领域管理命令或RMU命令)。作为实例,所执行的程序指令可包括指定为领域管理单元命令的程序指令,且当在程序指令流内遭遇这些程序指令时,这些程序指令被引导至相关联的领域管理单元20、22、24,以便这些程序指令可由相关联的领域管理单元20、22、24执行(做动作)。领域管理单元命令的实例包括用来初始化新领域或使现有领域无效的命令、用来将存储器区域分配给特定领域、从特定领域移除存储器区域、在对输出数据进行加密及其他过程使得该输出数据在第二存储器6内受保护的情况下将被包含在存储器区域内的数据自第一存储器16输出至第二存储器6的命令。进一步的领域管理单元命令被提供以在对输入数据进行相关解密及确认操作的情况下将数据从第二存储器6输入回第一存储器16。
在数据从存储器区域的此类输出及输入的情境下,将了解,诸如芯片上存储器16之类的第一存储器由片上系统集成电路4内的领域管理单元20、22、24密切地管理,且因此这些领域管理单元20、22、24能够实施所有权权限且将对给定存储器区域内的数据的存取限制于拥有该存储器区域的过程,或拥有过程已授予存取的那些过程。然而,当该存储器区域内的数据被输出至例如作为第二存储器的外部非易失性存储器6时,由领域管理单元20、22、24提供的对存取的控制不再有效且因此数据以一些其他方式需要保护。这通过在数据被输出之前对存储器区域内的数据进行加密,且随后在该数据被输入回芯片上存储器16时用私钥进行解密来实现。
输出过程可伴随有规定输出数据的特性的元数据的产生。此元数据可单独地存储在第一存储器(芯片上存储器16)的元数据存储器区域内,其中该元数据对于领域管理单元20、22、24保持私有(即仅对此类领域管理单元20、22、24可存取且现有过程中的任何过程不可存取),使得当数据被输入回芯片上存储器16时,可针对该输入数据读取元数据且可检查在元数据中表示的数据的特性和输入数据的特性以确保该输入数据的完整性(例如校验和、数据大小、签名等)。可能是领域管理单元20、22、24的私有数据(包括表征输出区域/页的以上元数据)需要从芯片上存储器16输出至芯片外非易失性存储器6(例如以在芯片上存储器16内腾出空间)的情况,且在此情况下,RMU-私有元数据自身可经加密以用于该RMU-私有元数据的保护并且表征输出元数据的新元数据可保持在芯片上存储器16内(此保持的元数据在大小上显著地小于输出元数据),以便在加密及输出元数据被输入回芯片上存储器16以用于使用时,可检查并确认该加密及输出元数据。
描述存储器区域的特性的此元数据及存储在存储器区域内的数据可被布置为层级式结构的部分,该层级式结构例如具有分枝模式的元数据存储器区域树。此元数据存储器区域树的形式可在软件控制下确定,因为存储器地址空间的不同区域被注册为用作由领域管理单元20、22、24拥有的元数据区域。将了解,虽然控制此类存储器区域的注册的软件能够分配、解除分配且控制用来存储元数据的存储器区域之间的关系,但此软件自身在能够控制哪些过程可以存取此数据的意义上并不拥有被包含在这些存储器区域内的数据。在对于领域管理单元20、22、24(即存储器管理电路)私有的存储器区域的情况下,此类存取权限可仅限制于领域管理单元20、22、24自身且此RMU-私有数据将不与任何其他过程共享。
当存储在给定存储器区域内的给定数据被输出时,随后使所考虑的存储器区域无效,使得内容为不可存取的。为重新使用此页,通过使用清洁(Clean)命令来使该页“有效”,该清洁命令以与先前内容不相关的其他数据覆写存储器区域,以便在该给定存储器区域被释放以用于由另一过程使用时,未使此先前内容为另一过程可存取的。例如,给定存储器区域的内容可被全部写为零值,或写为固定值,或写为随机值,以此覆写存储器区域的原始内容。在其他实例中,输出存储器区域的内容的覆写可由输出命令自身而非后续清洁命令触发。总之,在使给定存储器区域为除给定拥有过程之外的过程可存取的之前,被输出的给定所拥有数据可以被与给定所拥有数据不相关的值覆写。当由给定过程拥有的给定存储器区域将被输出时,作为输出过程的一部分,正执行领域命令以执行输出的领域管理单元20、22、24从给定过程取得所考虑的存储器区域的所有权(即使区域为RMU-私有),相对于所有其他过程(及其他领域管理单元)锁定该存储器区域的存取,执行输出操作(包括加密、元数据产生及覆写),且随后解锁对该存储器区域的存取并且释放该存储器区域的所有权。因而,处于被输出,被输入的过程中的存储器区域在该命令正在执行时可对于所考虑的领域管理单元保持私有。
图2示意性地示出了多个过程(程序/线程)、多个异常级(特权级)、安全及非安全处理器域、及表示给定存储器区域的所有权的多个领域之间的关系。如所示出的,特权级的层级从异常级EL0延伸至异常级EL3(其中异常级EL3具有最高特权级)。系统的操作状态可在安全操作状态与非安全操作状态之间加以划分,该安全操作状态及该非安全操作状态如由使用
Figure BDA0003000733160000151
架构的例如处理器中的安全域及非安全域所表示,该
Figure BDA0003000733160000152
架构由
Figure BDA0003000733160000153
Limited(Cambridge,UK)提供。
如图2所示,存储器存取电路(领域管理单元20、22、24及相关联的控制软件(例如运行一个领域管理单元的毫码))管理执行环境内的多个领域。给定存储器区域(存储器页)由特定领域拥有。领域可具有该领域内之子代领域,及这些子代领域内的孙代(grandchild)领域(例如参见领域A(上代)、领域B(子代)、及领域C(孙代))。所有权被给予领域A的存储器区域可使这些存储器区域的所有权继而在由领域A拥有的过程的控制下从领域A传递至领域B。因而,上代领域能够将区域的所有权给予该上代领域的自有子代领域。这些子代领域继而可传递它们从其上代领域接收的存储器区域的所有权,以随后由这些子代领域的自有子代领域(例如领域C)拥有,这些自有子代领域为原始领域(即领域A)的孙代领域。给定领域内的过程可在相同特权级或在不同特权级执行。过程所属的领域因此为相对于过程的特权级的正交参数,但在许多实际状况下领域及特权级可对应,因为用于在领域之间移动的便利机构可涉及对自身在不同特权级(异常级)之间移动系统的异常的使用。
图3示意性地示出了领域管理单元20及通用存储器管理单元26,该领域管理单元及该通用存储器管理单元分别对存储在芯片上存储器16内的多个存储器页(存储器区域)执行不同的管理操作。如所示出的,领域管理单元24使用多个领域描述符42,其中每一描述符规定领域的性质。领域管理单元24还可维持领域区组表(或所有权表),该领域区组表包括由实体地址索引的条目,每个条目包括用于对应存储器区域的信息,包括对以下的指示:该存储器区域属哪个领域,即哪个领域具有排他权限以控制对该存储器区域内的控制数据的存取,即使该领域并不控制该领域自身实际上是否拥有该存储器区域。领域描述符及领域区组表条目可存储在存储器16中,但还可缓存在RMU自身中。因而,如图3所示,不同的存储器区域具有如由领域指定RA、RB、RC、RD及RE指示的不同的拥有领域。存储器区域中的一些还有由领域管理单元20拥有(对于该领域管理单元为私有的)且被标记为RMU-私有。此类RMU-私有区域可用来存储描述其他存储器区域的特性的元数据,暂时地存储正被输出或输入的存储器区域,或用于领域管理单元20自身的其他目的。RMU-私有区域仍可由对应拥有者领域拥有,但可以对于由拥有者领域发布的通用读取/写入存取不可存取(替代地可需要发布至RMU 20的RMU命令触发RMU 20以对RMU-私有区域做出任何变化)。
存储器区域的寻址可通过虚拟地址、中间实体地址、或实体地址,取决于所考虑的特定系统。领域管理单元20,及通用存储器管理单元26,因此可存储转换数据,该转换数据使所接收的地址(无论这些所接收的地址为虚拟存储器地址还是中间存储器地址)能够被转换为更直接地表示所考虑的芯片上存储器16内的存储器区域的地址,诸如实体地址。此地址转换数据可使用转换后备缓冲器及其他分布式控制机构来管理并分散在片上系统集成电路4内。
图4示出了图1的处理组件8、10、12中的一者及用于控制存储器存取的存储于存储器16中的控制数据的更详细实例。为便于解释,图4将CPU 0示出为处理组件8,但将了解,处理组件还可为GPU 12的CPU 110或数据处理设备2内的任何其他处理组件。如图4中所示,处理组件8包括处理电路32(该处理电路可包括以上所描述的解码及执行逻辑)、可包括用于缓存转换表的条目的一个或多个转换后备缓冲器100的存储器管理单元26(若使用共享MMU-RMU TLB结构,则该一个或多个转换后备缓冲器还可附加有来自RMU 20的基于领域的控制数据),以及用于控制数据到TLB 100的分配及触发对存储器的遍历存取以定位用来控制给定存储器存取是否被允许执行的所需要的数据的表遍历单元102。处理组件8还可包括密码单元104,该密码单元可执行用于加密或解密例如用于在以上所讨论的分页(输出/输入)操作中使用的数据的密码操作。处理组件8还包括多个缓存110,这些缓存可缓存从存储器16读取的数据或指令。若由处理电路32或由表遍历单元102触发的对存储器的存取在缓存中未命中,则可从主存储器16定位数据。
处理组件8还包括如以上所讨论的领域管理单元20。在一些实施例中,领域管理单元(RMU)20可被提供为硬件电路。然而,以下所讨论的RMU操作中的一些对于单纯地实施于硬件中可能是相对复杂的,例如若这些RMU操作需要执行对不同存储器区域的多个存取。因此,在一些实例中,RMU 20可使用程序代码来实现,该程序代码可存储在数据处理设备2内且可使用通用处理电路32来执行。不同于可被写入存储器16且可为可重写的通用软件,RMU软件(毫码)可以相对永久的方式安装于数据处理设备上使得该RMU软件不可移除,且可被视为由处理系统提供的平台的一部分。例如,RMU程序代码可存储在只读存储器(ROM)内。因此,RMU可包括硬件单元,或可包括执行领域管理软件的处理电路32,该处理电路由RMU命令触发以执行,这些RMU命令被包括在由处理电路32执行的通用软件中。在一些实例中,RMU20可使用硬件及软件的组合来实现,例如一些较简单功能可使用硬件电路来实现以用于较快处理,但较复杂功能可使用毫码来实现。因此,将了解,对RMU的后续参考可涉及硬件或软件或两者的组合。
如图4中所示,存储器16可存储由MMU 26及RMU 20用来控制对存储器的存取的多段控制信息。这包括转换表(也称为页表)120,这些转换表定义用于控制允许哪些过程存取给定存储器区域的存储器存取属性,以及用于将虚拟地址转换至实体地址的地址映射信息。转换表120可基于以上关于图2所讨论的异常级来定义,使得在较多特权异常级执行的过程可设置许可,该许可操纵是否允许在较少特权异常级执行的过程存取相应的存储器区域。
另外,多个领域管理表或领域控制信息122被提供用于以相对于MMU页表120的正交方式来控制存储器存取,以允许较少特权过程控制是否存取较多特权过程(领域控制在(对于将要服务的存储器存取请求)可能需要通过两个类型的访问控制检查的意义上正交于MMU控制)。使用领域管理表,拥有给定存储器区域的拥有者过程(领域)具有从存取该存储器区域排除在较多特权异常级执行的过程的权限。领域管理数据报括领域描述符124,该领域描述符描述给定领域的性质。每一领域对应于由处理电路32执行的至少一个软件过程的至少一部分。一些领域可对应于两个或更多个过程,而其他领域可对应于给定软件过程的仅一个子部分。领域还可被视为映射至存储器地址空间的给定区域(其中当处理电路32正执行位于存储器地址空间的对应区域内的程序指令时,该处理电路在给定领域内执行)。因此,领域可被视为软件过程的集合或软件过程的一部分,或视为存储器地址空间的区域。此两个观点为等效的。为便于解释,后续描述将领域称为至少一个软件过程的至少一部分,但作为存储器区域的收集的领域的对应观点为同样有效的(在该情况下,去往/来自领域的“进入”及“退出”可对应于到达/离开对应于领域的存储器地址的部分的程序执行)。
领域管理数据122还包括领域执行情境区域126,该领域执行情境区域可用于在领域退出或进入时保存及恢复与给定领域相关联的架构状态。领域管理数据还包括领域区组表(或所有权表)128,该领域区组表针对存储器地址空间的每一区域定义哪个领域是该存储器区域的拥有者领域。给定存储器区域的拥有者领域具有从存取存储在该存储器区域内的数据排除其他领域(包括较多特权过程)的权限。以下更详细地讨论对该领域管理数据的使用。一般而言,领域管理单元20及MMU 26可被视为存储器存取电路,该存储器存取电路实施对由用于存储器区域的拥有者领域定义的所有权权限,该存储器区域由该领域拥有。这可例如对于云端平台尤其有用,在该云端平台中,由不同方提供的多个虚拟机36可在由云端服务器操作员提供的管理器38的控制下执行。提供虚拟机之一的方可能不希望其数据及代码是管理器可存取的。通过引入其中在较少特权异常级执行的领域可从存取该领域的数据或指令排除较多特权异常级的领域概念,这使得能够提供盲管理器,该盲管理器可增加代码开发者的信心以将他们的软件安装于云端服务上,其中实体硬件可与由其他方提供的代码共享。
如图5中所示,领域由RMU 20根据领域层级管理,在该领域层级中,除根领域130之外的每一领域为子代领域,其具有相应的上代领域,上代领域通过执行初始化命令来初始化子代领域。根领域130可以例如为与在最多特权异常级EL3处执行的监视器代码或系统固件相关联的领域。为便于解释,图5的实例及以后讨论的初始实例示出中每一子代领域在相较于其上代领域的较低特权级执行的情况。然而,如以下将讨论的,还可能建立子代领域,该子代领域在其上代相同的异常级执行。
一般而言,对于由MMU 26提供的存储器访问控制的领域管理部分,子代领域具有对由其上代领域所拥有的任何存储器区域的默认存取。类似地,假设给定领域的任何后代可以存取给定领域的所拥有存储器区域。然而,因为领域管理控制正交于由转换表120基于异常级提供的控制,所以在较高特权级执行的过程仍可通过相应地设置转换表120的参数来从存取该过程的数据排除较少特权码。因此,一般而言,给定子代领域具有从存取存储在由给定子代领域拥有的给定存储器区域中的数据排除该给定子代领域的上代领域的权限。子代领域实际上是否从存取给定存储器区域排除上代领域可基于所有权表128中设置的控制属性来设置(默认情况可为上代领域不具有对子代领域的所拥有区域的存取,但子代领域可通过相应地设置可见性属性来选择将存取授予上代领域)。当存在多个同代领域(共享同一上代领域的不同子代领域)时,则给定子代领域可从存取存储在由给定子代领域拥有的给定存储器区域中的数据排除同代领域。另外,在所有权表128中设置的可见性属性可控制同代领域可存取每一其他代份领域的数据的程度。替代地,同代领域的存取可基于上代可见性属性来控制,使得若子代领域使页为其上代领域可见的,则同一页还变成对于该子代领域的同代领域及同代领域的进一步后代为可见的。在一些情况下,所有权表128可具有全局可见性属性,该全局可见性属性可允许给定拥有者过程使在任何领域下执行的任何过程能够存取该给定拥有者过程的所拥有存储器区域内的数据。
如图5中所示,每一领域140与一个或多个领域执行情境(REC)存储器区域126相关,当从给定领域退出时,该一个或多个领域执行情境存储器区域可用于存储领域的架构状态,诸如寄存器值。被提供用于给定领域的REC 126的数目可取决于多少执行的线程正在给定领域下操作。例如,领域在最初初始化时可利用单个主要REC区域126建立,但随后领域可在必要时配置由该领域拥有的其他存储器区域以用作进一步REC。REC存储器区域由其执行状态被存储至该REC的对应领域拥有。
每一领域与领域描述符124相关联,该领域描述符存储在由其性质在领域描述符124中描述的领域的上代领域拥有的存储器区域中。为了可在给定领域世代处定义的子代领域的数目的灵活性,使用称为领域描述符树(RDT)的树结构来管理领域描述符,稍后将更详细地讨论该领域描述符树。领域描述符124可用来定义领域的性质,这些性质可在进入领域或从领域退出时由RMU 20检查以确保安全。领域描述符还可贯穿各种生命周期状态跟踪领域的进展,使得领域的某些RMU命令的执行可限于特定生命周期状态,以确保以安全方式创建领域以及使领域无效。
图6及图7示出可能的领域层级的两个不同实例。在图6的实例中,图2中所示的过程中每一者定义其自有领域。因此,根领域130对应于在异常级EL3处操作的监视器软件或固件。根领域定义两个子代领域142,一个子代领域对应于在安全EL1处操作的安全操作系统并且另一个子代领域对应于在EL2处的管理器。管理器定义对应于EL1处的不同访客操作系统的孙代领域144,且这些访客操作系统中的每一者定义对应于在最少特权异常级EL0处执行的应用程序的进一步的曾孙代(great-grandchild)领域146。类似地,领域142中的安全操作系统可定义对应于不同安全应用程序的孙代领域148。层级中的上代领域可将其当前拥有的存储器页的所有权传递至新子代领域(通过使用如以下所讨论的区组.添加(Granule.add)命令),或可使该上代领域的页之一无效,将该页映射至子代的虚拟地址空间,以及通过执行页所有权(主张)命令来允许子代领域主张页的所有权。若存储器地址空间的规定的页尚未由发布命令的上代领域拥有,则可拒绝页所有权命令。
如图7中所示,每一特权级的过程具有分离领域并非必要的,且因此在图7中的虚线中所示的特权级边界中的一些可不对应于领域边界。例如,在图7中,应用程序150及该应用程序的操作系统在与在异常级EL2处操作的管理器领域142相同的领域内执行,且因此单个领域跨越EL2管理器代码、在EL1处操作的操作系统及在EL0处的应用程序。另一方面,在相同管理器下的不同应用程序152可定义该不同应用程序的自有分离领域。在该情况下,领域边界介于EL1与EL0之间且不存在EL2-EL1领域边界(管理器及操作系统两者可在相同领域中执行)。对于另一操作系统,可定义分离EL1领域154,该分离EL1领域还可具有在与操作系统相同的领域内执行的一些应用程序,以及具有自有专用领域的其他应用程序。类似地,在安全侧上,图7中的安全OS及应用程序完全在EL3根领域内执行,且因此当在安全侧上操作时不存在领域边界。因此,领域的精确配置可根据被执行的过程的需求在给定系统的运行时间确定。软件可在运行时间判定该软件仅需要较小及固定数目的子代领域(此可为用于低阶固件的状况),或需要许多领域或变化数目的领域(例如,这可用于云端平台上的管理器,该管理器可管理未知数目的访客虚拟机)。
用于给定上代领域的领域描述符124根据领域描述符树(该领域描述符树为领域管理树的实例,该领域管理树定义用于该上代领域的多个子代领域的领域管理数据)来管理。树具有可变数目的级。图8示出了由特定上代领域管理的领域描述符树160的实例。树160包括多个领域描述符树区组(RDTG)162,其各自包括多个领域描述符树条目(RDTE)164。每一RDTE 164提供指向用于上代领域的给定子代领域的领域描述符166,或用于领域描述符树的下一级的进一步的RDTG 162的指针。用于树的第一级的RDTG 162可由领域描述符树指针168识别,该领域描述符树指针可被存储为与上代领域(例如与上代领域的领域描述符)相关联的数据的一部分。因此,当上代领域发布与给定子代领域相关联的RMU命令时,该上代领域可触发RMU以遍历领域描述符树,以便定位所需要的子代领域的领域描述符166(若该领域描述符尚未缓存在RMU 20内)。每一RDTG 162可具有可变数目的条目164。
如图8中的表中所示,提供指向在树的后续级处的RDTG 162的指针的给定RDTE164可包括指示所指向的RDTG中的条目的最大数目的阶数值(order value)。例如,阶数值可指示对应于所指向的RDTG中的条目的总数的2的幂。可包括在RDTE 164中的其他信息可包括状态值,该状态值指示RDTE的状态(例如RDTE是否为空闲的以用于领域描述符树数据的分配,以及RDTE是否提供指向进一步的RDTG 162或指向子代领域描述符166的指针)。除指针之外,RDTE还可包括参考计数,该参考计数可跟踪指向RDTG的指针中的非空闲的RDTE的数目,这些RDTE可用于确定进一步的RDTE是否可被分配给该RDTG 162。由上代领域触发的RMU命令可控制RMU 20以建立树的进一步的RDTG和/或编辑现有RDTG内的RDTE的内容。
应注意,图8中所示的树示出了一个特定上代领域的子代领域。每一其他上代领域可具有跟踪该上代领域的自有子代领域的分离领域描述符树。与树相关联的数据报(包括RDTG 162及子代领域描述符166)被存储在由上代领域拥有的页内,且因此可从存取此数据排除其他领域。因此,仅上代领域可具有该上代领域配置的那些特定子代领域的可见性,使得在较高特权级执行的过程可不具有什么领域已在该过程自身已直接创建的任何子代领域以下被创建的可见性。
如图8中所示,给定上代领域的子代领域中的每一者可具有对应领域标识符(RID)168,该对应领域标识符由该上代领域用来识别特定子代领域。RID为局部领域标识符,因为该RID特定于特定上代领域。不同上代领域的子代领域可具有相同的局部RID。尽管可能使用具有由用于给定子代领域的上代领域选择的任意值的局部RID,但在图8中所示的方法中,用于给定子代领域的局部RID具有可变数目的可变长度位部分且可变长度部分中的每一者由RMU 20用来索引到领域描述符树160的给定级中。例如,图13中的具有局部RID=7的子代领域的领域描述符由后面的第一级RDTG 162的条目7中的领域描述符指针来存取。具有局部RID=3.3的子代领域的领域描述符由后面的树的第一级中的条目3及随后树的第二级中的条目3来存取。类似地,具有局部RID=1.2的子代领域的领域描述符由后面的第一层中的条目1及第二层中的条目2来存取。应注意,虽然为了简洁性图8使用十进制值7、3.3等示出了局部RID,但它们将被实施为处理设备2中的二进制数字的序连连接。
用于给定领域的RID可包括将要在领域描述符树的相应级处用来存取给定领域的领域管理数据的索引的序连连接。尽管索引以与其被用于逐步穿过树的顺序相同的顺序序列来序连连接并非必要的,但这可能是优选的,因为这使得树存取的管理更简单。序连连接自低至高还是自高至低并不重要。索引的序连连接可后跟预定终止模式,该预定终止模式可允许RMU 20确定何时不存在将要逐步穿过的树的进一步的级。
一些实施方式可将此RID构造技术应用于全局领域描述符树,该全局领域描述符树可以将用于系统内的所有领域的领域描述符存储在类似树结构中(其中RID中每一者为全局唯一值)。然而,可通过定义一个树内的给定上代的子代领域并然后使用于每一其他上代领域的分离树跟踪该上代领域的子代领域来使软件开发较简单。因此,领域描述符树可为与用于存储已由给定上代领域初始化的子代领域的领域管理数据的给定上代领域相关的局部领域描述符树。领域标识符因此可为局部领域标识符,该局部领域标识符识别由给定上代领域使用的特定子代领域。由不同上代领域初始化的子代领域可被允许具有局部领域标识符的相同值。以此方式,上代领域可在不知道有何其他领域已由其他上代领域建立的情况下选择哪些RID被用于该上代领域的子代领域,其中用于子代领域的RID根据上代领域配置其领域描述符树的方式来构造。
局部领域标识符可通过由软件过程发布的领域进入指令或RMU命令来使用。然而,硬件架构可使用给定子代领域的绝对识别来辨别由不同上代创建的领域。因此,除图8中所示的局部领域标识符之外,给定领域还可具有对于给定领域唯一的全局领域标识符(或“内部”领域标识符)。至少一个硬件结构可使用全局领域标识符(GRID)而非局部领域标识符(LRID)来识别给定领域。例如,领域区组表128和/或TLB 100可使用全局领域标识符来识别领域。
在一些实例中,任意二进制值可被分配为用于给定领域的GRID,该GRID可与由上代领域使用来参考该子代领域的LRID完全无关。相同领域架构之不同微架构实施方式可使用不同方法来分配GRID。
然而,在一个实例中,用于给定领域的GRID可基于该给定领域的先代领域的LRID来构造。此可为有用的,因为其可实现给定领域为另一领域的后代或另一领域的先代的较简单确定,该较简单确定可用于MMU 26及RMU 20的访问控制。
所有局部RID使用树索引方法的序连连接来构造并非必要的。在一些情况下,局部RID的特定值被保留用于参考某些预设领域可为有用的。规定当前领域或当前领域的上代领域的RMU命令可为相对常见的。因此,预定RID值可被保留来用于参考当前领域的上代领域。例如,所有位被设置为1的LRID(指示1之值)可被保留用于参考当前领域的上代领域。类似地,预定领域标识符值可被保留来用于参考当前领域自身。例如,0的LRID值可用来参考当前领域。
RMU可支持可由给定领域触发的某些查询命令,以便查询在该给定领域建立其领域描述符树时必须满足的约束。例如,响应于查询命令,RMU 20(或处理电路32)可返回约束值,该约束值指示允许由给定领域定义的领域描述符树160的最大数目的级、在用于给定领域的树结构的给定级处允许的最大数目的条目,和/或可由给定领域初始化的最大数目的子代领域中的至少一者。例如,系统可包括寄存器,这些寄存器可指示诸如用于特别硬件实施方式的LRID或GRID中可利用的位的数目之类的性质。RMU或处理电路可响应于查询命令,检查可用于领域标识符的位的数目(或适当响应可被硬连线以用于特定处理器实施方式),且还可检查规定标识符的多少位已由全局领域标识符中的先代领域用完的信息,以便确定多少位为可用剩余的以用于当前领域定义进一步的子代。上代领域可使用对查询命令的响应来判定如何构造该上代领域的RDT。
图9示出了用于给定领域的领域描述符166的内容的实例。领域描述符可定义领域的安全性配置参数。将了解,此仅为一个实例且其他实施方式可不包括所列表信息中的全部,或其可包括额外信息。在此实例中,领域描述符包括以下项:
·领域的全局RID。因此,通过基于局部RID遍历领域描述符树,对应的全局RID可被识别且此可用来由给定领域索引硬件结构,如TLB,或检查所有权表或基于GRID定义的其他信息。
·给定领域的生命周期状态,该生命周期状态可由RMU 20用来确定是否接受由给定领域触发的给定命令。
·给定领域的类型。例如,领域类型可指示领域为完整领域或如稍后讨论的子代领域。
·边界异常级(BEL)值,该界异常级值识别用于对应领域的边界异常级。BEL指示领域被允许执行的最大特权级。例如,图7中的领域142可具有EL2的BEL,领域152可具有EL0的BEL,且领域154可具有EL1的BEL。通过提供识别领域描述符中的BEL的显式参数,此提供领域跨越多个异常级的灵活性,因为BEL可在异常之发生时用来确定异常是否可在当前领域内取得或是否需要到上代领域的领域退出以处置异常。
·指示由领域及其后代拥有的存储器区域(领域保护区组或RPG)的总数的资源计数。此用来确保在这些存储器区域可分配给不同领域之前,使由领域其后代拥有的所有存储器页无效(及数据的最终抹除)。例如,资源计数可用来跟踪多少区域仍需要经洗涤。
·用于领域的受保护地址的开始及结束地址。例如,受保护地址范围可定义存储器地址空间范围,在该存储器地址空间范围内,页可由对应领域拥有。此可用于保护免于收回先前在试图存取子代领域数据中分配给子代领域的区域的所有权的恶意上代领域,因为通过将在领域描述符中定义的受保护地址范围与存储器存取的后续地址比较,可识别先前由领域拥有的存储器区域不再由该领域拥有的情况。
·由密码电路104用来加密或解密与给定领域相关联的数据的一个或多个加密密钥。在此实例中,提供两个分离加密密钥:用于加密/解密由领域拥有的内容及存储器的存储器密钥及用于加密/解密如以上所讨论的在存储器16至持续存储器6之间输出/输入的数据的分页密钥。然而,在其他实例中,相同密钥可用于两者目的,或进一步可被提供来用于其他特定目的。
·领域描述树条目(RDTE),其识别领域描述符树的根。领域描述符中的RDTE提供用于存取根RDTG(及定义多少位将用作该RDTG的索引的阶数值)的指标。
·指向用于保存或恢复与领域的执行相关的架构状态的主REC(领域执行情境)存储器区域的指针。
如在下文中更详细论述的,领域描述符还可包括其他信息,诸如受信赖中间领域的识别、定义是否对领域启用调试或输出的信息,以及用于在启动领域时检查领域的参数的签名的期望签名。
图10示出了给定领域可存在的生命周期状态的集合,这些生命周期状态在此实例中包括清洁状态、新状态、活动状态及无效状态。图10总结每一状态的性质,针对每一状态,指示:对应状态中的领域是否可使该领域的领域描述符166的参数由该领域的上代领域修改、针对该领域规定的加密密钥是否可被有效地使用、领域是否可拥有任何存储器区域(RPG)及与该领域相关联的代码是否为可执行的。应注意,领域描述符的参数在清洁状态中为可修改的,但在其他状态中的任一者中不可修改。此防止恶意上代领域在给定领域已变得活动之后更新该给定领域的性质。另外,领域仅在活动状态中为可执行的。
图11为示出领域的生命周期状态的允许转换的状态机图表。图11中所示的每一状态转换由向RMU 20发布领域管理命令的上代领域触发,该领域管理命令规定子代目标领域的局部RID(领域.无效(Realm.Invalidate)命令212还可由目标领域自身发布)。当无先前领域已针对该局部RID定义且领域描述符寄存器区组命令200由上代领域执行时,此触发由上代领域拥有的给定存储器区域的配置,因为用于子代领域的领域描述符具有规定的局部RID。用于子代领域的全局RID可基于上代领域的全局RID及在领域描述符寄存器区组命令200中规定的新局部RID的序连连接来设置。规定的子代领域随后进入清洁状态202。在清洁状态中,上代领域可通过更新子代领域的领域描述符的各种参数来设置子代领域的性质。这些性质可使用由上代领域发布的进一步的RMU命令来修改(若规定的子代领域并非处于清洁状态中,则此类领域描述符修改命令可被拒绝)。此外,对于与受信赖中间领域相关联的领域,若领域描述符修改命令是由目标领域(其参数正被修改)的领域描述符中识别的规定的受信赖中间领域发布的,则该领域描述符修改命令也可被接受。当上代领域已完成设置子代领域的领域描述符的参数时,该上代领域执行规定子代领域的LRID的领域初始化命令204且此触发子代领域从清洁状态202至新状态206的转换,且此时,领域描述符的参数不再可由上代领域修改。若规定的领域当前未处于清洁状态中,则领域初始化命令204将失败。
当领域处于新状态206中时,规定该领域的局部RID的领域活动命令208的执行触发自新状态206至活动状态210的转换,在该活动状态中,领域现在为可执行的,且在此刻之后,至对应领域中的领域进入将不再触发故障。领域现在为完全操作的。如下文所论述,在一些实例中,启动可取决于对参数签名的核对。由处于清洁状态202、新状态206及活动状态210中的任一者中的子代领域的上代领域触发的后续领域无效命令212导致至无效状态214的转换。为离开无效状态214且返回至清洁状态202,上代领域必须执行领域洗涤命令216。若跟踪由领域拥有的页的数目的资源计数具有除零之外的值,则领域洗涤命令216被拒绝。因此,为使领域洗涤命令216成功,上代领域首先必须针对由无效领域拥有的每个页发布区组.收回(Granule.Reclaim)命令。区组.收回命令规定目标存储器页且触发目标页的无效以使页为不可存取的,且还使页的拥有者领域的参考计数降低一。当执行区组.收回或领域洗涤命令216时,不必实际上覆写无效区域中的数据,因为当清洁命令后续被发布以使存储器页自无效转换至有效时可进行覆写(参见以下讨论的图15)。另外,响应于领域洗涤命令,还可使与无效领域相关的任何缓存数据无效,例如在处理组件8、10、12(不仅执行RMU命令的处理组件)中任一者的TLB 100或缓存110内。全局RID可用来触发缓存数据的此类无效。
因此,通过提供与给定领域标识符相关的领域的受管理生命周期,此确保在领域可返回至其中该领域的参数可被修改的清洁状态之前(及因此在给定领域标识符可被再循环以用于由不同领域使用之前),与使用相同领域标识符的先前领域相关的数据必须从存储器及任何缓存洗涤,以防止与旧领域相关的任何数据由相同领域标识符的重新使用向其他领域泄漏。当领域处于清洁状态202中时,该领域的领域描述符还可由执行领域描述符释放命令218取消,该领域描述符释放命令使存储在领域描述符中的存储器区域能够被分配用于其他目的(在此刻,不需要洗涤,因为领域为清洁的)。
图12示出了领域区组表128(或所有权表)的条目的内容的实例。每一条目对应于存储器地址空间的给定存储器区域。给定存储器区域的大小可为固定的或可变的,此取决于实施方式。所有权表128被结构化的特定方式可取决于实施方式要求而显著变化,且因此用于给定条目的对应存储器区域被识别的特定方式可变化(例如数据可存储在识别对应区域的每一条目中,或替代地,对应条目可至少部分地基于表自身内的对应所有权条目的位置来识别)。另外,图12示出了可针对给定存储器区域规定的参数的特定实例,但其他实例可提供更多信息或可省略所示信息类型中的一些。
如图12中所示,每一所有权表条目可针对对应存储器区域规定下列项:
·识别用于该存储器区域的拥有者领域的全局RID。拥有者领域可为具有设置控制哪些其他领域被允许存取存储器区域的属性的权限的领域。
·用来控制哪些RMU命令被允许在存储器区域上执行的对应存储器区域的生命周期状态。
·由MMU 26在存储器区域变得由拥有者领域拥有时映射到的映射地址。映射地址可为虚拟地址或中间实体地址。通过在所有权表中规定此地址,此可通过在领域已取得给定存储器区域的所有权之后重新映射地址转换表来防止超过由领域结构提供的安全的可能试图。
·规定除拥有者之外的哪些领域可存取存储器区域的可见性属性。例如,如图13中所示,可见性属性可规定控制当前领域的上代领域是否被允许存取区域的上代可见性位,及可规定任何领域是否可存取对应存储器区域的全局可见性位。一般而言,领域保护方案可假设始终允许当前领域的后代领域存取由该当前领域的上代或先代领域拥有的存储器区域(服从基于转换表120是否允许存取,该转换表基于特权级提供保护),但给定领域可控制该给定领域的上代或并非给定领域的直接后代的任何其他领域是否可存取存储器区域。在一些实施例中,上代可见性位及全局可见性位两者可由拥有者领域自身设置。替代地,虽然上代可见性位可由拥有者领域设置,但全局可见性位或许能够由拥有者领域的上代领域设置(前提为,用于存储器区域的上代可见性位已被设置为给予该存储器区域的上代可见性)。将了解,此为拥有者领域可如何控制哪些其他过程可存取该拥有者领域的数据的仅一个实例。
图14为示出给定存储器区域可存在的不同生命周期状态的表,且图15为示出触发相应的生命周期状态之间的转换的命令的状态机。以与图11中所示的领域生命周期状态类似的方式,存储器区域生命周期状态之间的转换被管理为确保从由一个领域的所有权传递至另一领域的所有权的存储器区域必须首先经历无效过程,其中该区域中的数据被洗涤(例如设置为零)。因此,为了从无效状态220转换至软件可存取存储器区域的有效状态222,清洁命令224必须由RMU 20执行,由在处理组件8上执行的软件触发。清洁命令224识别特定存储器区域(页)且控制RMU以逐步穿过对应存储器区域的存储器地址以使该存储器区域内的每一位置中的数据无效/归零。若目标存储器区域处于除无效之外的任何状态中,则清洁命令被拒绝(例如故障别触发)。
在一些系统中,提供有效状态222及无效状态220作为仅有的存储器区域生命周期状态可为足够的。然而,在图15的实例中,给定存储器区域还可被指定为“RMU-私有”存储器区域,其被保留用于RMU 20自身的排他存取,使得由在处理电路32上执行的软件(除任何RMU软件之外)触发的对RMU-私有存储器区域的存取将被拒绝。这对于存储领域管理数据尤其有用,例如,如以上所讨论的领域描述符、领域描述符树条目、领域执行情境及用于分页的元数据。通过提供用于将给定存储器区域指定为被保留用于RMU的排他存取的RMU-私有存储器区域的属性,可防止软件过程(包括存储器区域自身的拥有者过程在内)能够存取领域管理数据,否则可能允许软件过程规避由领域方案提供的安全保护。
因此,清洁命令224可作为该清洁命令的参数中的一者规定隐私指示,该隐私指示规定此为正常清洁命令还是私有清洁命令。替代地,两个完全分离的命令可被提供来用于这些目的。当清洁命令为正常清洁命令时,此触发至有效状态222的转换,如以上所讨论。然而,当清洁命令为私有清洁命令224时,此触发至RMU清洁状态226的转换,其中存储器区域被指定为RMU-私有存储器区域。在一些实例中,所有类型的RMU数据可被存储在对应于RMU清洁状态的单个类型的RMU-私有存储器区域内。
然而,可通过指定各自对应于特定形式的领域管理数据的多个类型的RMU-私有存储器区域来提升强健性。例如,在图14及图15中,定义各自对应于RMU私有区域的多个RMU注册状态228,这些RMU私有区域经指定来用于特定目的。在此实例中,RMU注册状态228包括RMU注册RDT(用于存储领域描述符树的RDTG)、RMU注册RD(用于存储领域描述符)、RMU注册REC(用于存储领域执行情境数据)及RMU注册MDT(用于存储在如以上所讨论的输出/输入操作期间使用的分页元数据)。不同形式的注册命令230可由用于RMU清洁状态中的存储器区域的RMU执行,以将存储器区域转换至RMU注册状态228中的对应的一者。用于将数据存储至并不对应于规定目的(RDT、RD、REC或MDT)的RMU-私有存储器区域的命令可被拒绝。因此,在RMU注册状态的第一生命周期状态中,用于存储第一类型的领域管理数据的第一类型的RMU命令可被允许,且在第二生命周期状态中,用于存储第二类型的领域管理数据的第二类型的RMU命令可被允许,其中当目标存储器区域处于第二生命周期状态中时,第一RMU命令被拒绝,且当目标存储器区域处于第一生命周期状态中时,第二RMU命令被拒绝。此可通过避免恶意上代领域来实现进一步的安全,该恶意上代领域例如试图将领域描述符条目存储至领域执行情境区域或反之亦然,以便试图使子代领域的操作分裂。根据RMU注册状态228中每一者,对应形式的释放命令232可使对应存储器区域返回至无效状态220。在区域可被重新分配来用于通用数据之前,进一步的清洁命令可触发从先前定义的RMU-私有区域的数据的洗涤。
因此,总之,可定义至少一个RMU-私有存储器区域,该至少一个RMU-私有存储器区域仍由给定拥有者领域拥有,但具有在所有权表中规定的属性,该属性意味该至少一个RMU-私有存储器区域被保留来用于RMU的互斥存取。在此实例中,控制RMU-私有状态的属性为在所有权表中的对应条目中规定的生命周期状态,但该属性还可以其他方式识别。当给定存储器区域被至少一个状态属性规定为RMU私有存储器区域时,MMU可防止由一个或多个软件过程对给定存储器区域的存取。因此,不是由RMU自身触发的任何软件触发存取在其以RMU-私有存储器区域为目标时可被拒绝。此包括防止由拥有者领域自身对RMU-私有存储器区域的存取。
技术人员可询问,若拥有者领域甚至不能存取存储器区域中的数据,则为何定义用于RMU-私有存储器区域的拥有者领域为有用的。例如,用于实施仅由RMU对数据的存取的替代性方法将定义用于RMU的特殊领域,且分配存储器地址空间的页以用于存储将对于该特殊RMU拥有者领域保持私有的数据。然而,发明人认识到,当使领域无效时,可能存在使与该领域相关的全部控制数据无效的要求,且若此控制数据与特殊RMU拥有者领域而非无效领域相关联,则此可使无效领域的数据的洗涤更复杂。
相反,通过使用RMU-私有属性,存储用于给定领域的控制数据的存储器区域仍由该领域拥有,即使拥有者不能存取该控制数据,此意味当该拥有者领域被取消时,识别哪些存储器区域需要被无效为较简单的。当使给定领域无效时,上代领域可简单地执行收回操作的序列(例如通过执行随后由RMU作用的收回命令),该收回操作的序列触发由规定的无效领域(或该规定的无效领域的后代)拥有的存储器区域以使无效,且使不可存取,并返回至触发收回命令的上代领域的所有权。收回操作不仅可以影响无效领域可存取的页,而且还包括由无效领域拥有的RMU-私有存储器区域。
将用于领域的控制数据存储在由该领域拥有的RMU-私有存储器区域中的另一优点是在执行输出操作时。为将领域的存储器覆盖区降低至零,在输出操作期间,除正常存储器之外,与该领域相关的管理结构可被输出。要求这些结构被领域拥有简化了对该输出操作的管理。
一般而言,任何种类的领域管理数据可存储在RMU-私有区域中,但具体地,领域管理数据可包括以下任一者:定义给定领域的性质的领域描述符、识别存储用于给定领域的领域描述符的存储器区域的领域描述符树条目或进一步的领域描述符树条目、指示与给定领域内执行的至少一个线程相关的架构状态的领域执行情境数据,及在与给定领域相关的预定操作的中间点处使用的暂时工作数据。
尽管通常RMU私有区域可用于存储与给定领域相关的特定领域控制数据,但还可使用这些RMU私有区域以便增加关于一旦领域为活动时所执行的某些其他操作的安全。例如,当执行数据被加密或解密的以上所讨论的分页输出或输入操作,且使用元数据的检查被执行以检查当数据再次被输入时数据仍为有效的时,此类操作可花费许多循环且此类长期运行操作更可能在中途中断。为避免需要再次重新开始操作,期望的是甚至在中断时允许元数据或与此类长期运行操作相关的其他暂时工作数据保持在缓存/存储器内,而不使此数据为其他过程(包括拥有者领域自身)可存取的。通过将存储器系统的区域暂时地指定为RMU-私有区域,可保护此暂时工作数据。因此,如图14中所示,页状态还可包括在此暂时工作数据被存储至存储器区域时可使用的RMUExporting及RMUImporting状态,且当这些状态中的一者被选择时,则仅RMU可存取该数据。
可受益于将对应存储器区域暂时地指定为RMU私有的操作的其他实例可包括:在由给定领域拥有的至少一个存储器区域与由除给定领域之外的领域拥有的至少一个存储器区域之间的数据传递期间的加密或解密数据的生成或验证;存储器区域的所有权至另一领域的传递;以及被执行以使存储在无效存储器区域中的数据不可存取的破坏性收回操作。例如,用于洗涤地址空间的给定页的全部内容的收回操作可在中途中断,且因此确保其他过程不能存取该页,直至洗涤完成为止,页可暂时地被指定为RMU-私有的。一般而言,由RMU执行的任何长延迟操作可受益于在开始长期运行操作之前将一些存储器区域的生命周期状态转换至RMU-私有状态,并然后在长期运行操作完成时再将该生命周期状态转换回来而使该长延迟操作的暂时工作数据受保护。
当区域被经指定为RMU私有的时,该区域被保留来用于由RMU 20的存取,该RMU用来执行领域管理操作。领域管理操作可包括以下中至少一者:创建新领域;更新现有领域的性质;使领域无效;分配存储器区域以用于由给定领域的所有权;改变用于给定存储器区域的拥有者领域;改变给定存储器区域的状态;更新用于响应于由用于给定存储器区域的拥有者领域触发的命令而控制对给定存储器区域的存取的访问控制信息;在一个或多个软件过程的处理期间管理领域的间的转换;管理与给定领域相关联的数据在由给定领域拥有的存储器区域与由相比于给定领域的不同领域拥有的存储器区域之间的传递;以及与给定领域相关联的数据的加密或解密。RMU可为用以执行领域管理操作之至少一部分的硬件单元,或可包括执行领域管理软件以执行领域管理操作的至少一部分的处理电路32,或可为两者的组合。
图15示出了可由给定领域触发以清洁给定页,因此该给定页可被有效存取,或使对应页无效的状态转换。图16扩展该情况以示出可用来将给定页的所有权从一个领域传递至另一个领域的进一步的命令。若该存储器区域当前处于无效状态220中且由上代领域拥有,则通过上代领域的区域主张命令230的执行使对应存储器区域能够被传递至规定子代领域。当目标存储器区域由除给定子代领域的上代领域之外的任何领域拥有时,或若存储器区域为有效的或处于RMU-私有生命周期状态226、228中的一者中,则区域主张命令230被拒绝。此防止上代领域任意地指派该上代领域自身不可存取或被RMU 20使用的页的所有权。一旦页已经指派给子代领域,则该子代领域可执行清洁命令以便以与图15中所示的相同的方式转换至有效状态222。出于简洁性,对RMU-私有区域的使用在图16中未示出,但在任何给定领域内,私有清洁命令替代地可将存储器区域转换至RMU清洁状态226,如先前所讨论。
区组主张命令230用来将所有权传递至已经建立的子代领域。另外,上代领域可执行区组添加命令232,该区组添加命令触发RMU 20以将所有权指派给处于新状态中的新子代领域,使得上代领域可将数据写入至指派给子代的区域。例如,此可用于安装新子代领域的程序代码,使得子代领域可被第一次执行。因此,就对应存储器区域被分配给子代领域的生命周期状态而言,添加命令232不同于主张命令230。只有在子代领域处于图11中所示的新状态206中时,添加命令232可被允许。通过执行触发RMU以更新所有权表128的对应条目的区组释放命令234以及更新诸如子代领域的领域描述符中的资源计数等之类的性质,子代领域可将给定存储器区域的所有权释放回至该子代领域的上代。若规定存储器区域并非由发布命令的当前领域拥有,或若区域处于除无效之外的状态中,则区组释放命令234可被拒绝(确保在数据可返回至上代领域的所有权之前需要该数据的破坏性清洁)。
使用其中上代领域初始化子代领域的以上所讨论的层级式领域结构的一个优点在于,此大大地简化领域及该领域的后代的无效。相对常见的是,若给定虚拟机领域将无效,则还可期望使用于在该虚拟机下运行的任何应用程序的领域无效。然而,可存在与将无效的过程中每一者相关联的大量程序代码、数据及其他控制信息。可期望确保此类无效以原子方式发生,使得当数据洗涤的仅部分已经实现时,不可能继续存取与无效领域相关的数据。若每一领域被完全独立于其他领域而建立而没有如以上所讨论的领域层级,则此可使此类原子无效为困难的,因为必须提供多个分离命令来单独地使由对应领域ID识别的每一领域无效。
相反,通过提供其中RMU管理领域使得除根领域之外的每一领域为回应于由上代领域触发的命令而初始化的子代领域的领域层级,当请求目标领域的无效的命令被接收时,RMU 20可用较有效的操作使目标领域及目标领域的任何后代领域为处理电路不可存取的。
具体地,响应于目标领域的无效,RMU可更新与目标领域相关联的领域管理数据(例如领域描述符)以指示目标领域为无效的,但不需要更新与目标领域的任何后代领域相关联的任何领域管理数据。与后代领域相关的领域管理数据可保持未改变。这是因为即使领域管理数据尚未改变,简单地使目标领域无效还可使任何后代领域不可有效地存取,因为对给定领域的存取由该给定领域的上代控制且因此若使上代领域无效,则此意味还不可能存取上代领域的后代。因为领域中的每一者是使用领域进入指令(以下所讨论的ERET指令)进入,该领域进入指令使用由上代领域定义来识别该上代领域的特定子代的局部RID,且此用来逐步穿过存储在由给定子代领域的上代领域拥有的存储器区域中的领域描述符,因而除上代领域之外无过程可触发RMU以存取子代领域的领域管理数据。因此,若使上代领域无效,则RMU不能存取给定子代领域的领域管理数据,从而确保给定子代领域变得不可存取。
在已使领域无效之后,该领域的上代领域可触发RMU以执行用于收回由无效目标领域拥有的每一存储器区域的收回操作。例如,如图16中所示,用于由子代领域拥有的存储器区域的收回命令236可触发存储器区域至无效状态220的返回,且还将存储器区域的所有权传递回至上代领域。然而,此收回操作可在其他领域的持续处理的背景中进行且不需要立即进行以便允许将使无效领域的任何后代领域为不可存取的。用来将给定领域的领域状态自如图11中所示的活动改变至无效的单个动作足以确保与该无效领域的任何后代领域相关的所有数据还为不可存取的。因为任何上代领域仅可将该上代领域拥有的页指派给该上代领域的子代,且子代仅可将该子代拥有的页指派给孙代领域,所以此还意味跟踪哪些页需要被无效且在给定领域的无效时被收回为相对直接的,因为在无效领域的领域描述符中定义的受保护地址范围(参见图16)可用来识别哪些页将收回,因为无效领域的任何进一步的后代领域将还拥有该范围内的页。
因此,总之,使用领域层级大大地简化了领域及无效的管理。在此类无效以及覆写存储器中的数据时,无效还可触发用于目标领域及目标领域的任何后代领域的缓存领域管理数据的无效,该缓存领域管理数据不仅保持在触发无效的处理组件8中,而且还保持在诸如另一CPU或GPU之类的其他处理组件中。因此,可存在无效至其他处理组件的广播,以确保其他处理组件不继续具有对无效领域的存取。当触发此类无效时,可为有用的是缓存领域管理数据将与唯一地识别对应领域的全局领域标识符相关联,且形成如以上所讨论的全局领域标识符,使得给定子代领域的全局RID与该给定子代领域的上代领域的全局RID共享共同前缀部分。此使位掩码或其他类似操作能够用来迅速地比较给定领域是否为规定领域ID的后代。若先代领域的无效使给定领域为不可存取的,则进入规定目标领域的试图为不可能的(因为不存在上代领域来执行用于该领域的ERET指令),但甚至在使用不同领域进入机构的其他实施方式中,若后代领域的领域描述符不再可定位,则领域进入可失败且触发故障条件。
图17A示出了由MMU 26及RMU 20执行的用于确定是否允许给定存储器存取的检查的实例。MMU 26支持地址转换的两个级段,在由给定访客操作系统设置的级段1页表120-1的控制下将虚拟地址(VA)转换至中间实体地址(IPA)的级段1,及基于由管理器38设置的级段2页表120-2将由级段1转换提供的中间实体地址转换成用来存取存储器16的实体地址(PA)的级段2地址转换。管理器可定义用于不同虚拟机的级段2页表的多个集合,且被提供存储器存取请求的虚拟机ID(VMID)250可识别使用哪些特别级段2页表。类似地,操作系统可定义用于不同应用程序之级段1页表的多个集合,且地址空间标识符(ASID)252可用来识别使用哪些级段1页表。VMID 250及ASID 252可共同地称为转换情境标识符254,其识别与存储器存取请求相关联的当前转换情境。存储器存取请求还规定各种属性256,诸如指示事务为读取(R)或写入(W)请求,或指示与发布存储器存取请求的过程相关联的异常级(X)的属性。
在接收到存储器存取时,MMU 26可基于来自级段1页表的信息确定事务属性是否有效。例如,级段1页表可规定可对于某些地址仅允许读取事务,或可允许对给定地址的读取及写入存取两者(一些实施方式还可允许仅写入将要定义的地址空间的区域)。另外,级段1页表中的属性可将存取限制于在给定异常级或更高处操作的过程。若事务属性为有效的且存取由级段1页表允许,则MMU可返回对应的中间实体地址(IPA)。IPA与VMID 250一起随后索引至级段2页表中,这些级段2页表再次验证事务之属性,且若有效,则返回实体地址。应注意,并非所有事务都需要经历地址转换的两个级段。例如,若输入存储器事务是在EL3或EL2处,或在安全域中的EL1或EL0处发布,则级段1MMU的输出可被视为实体地址且级段2MMU可被绕过。
已获得实体地址,实体地址随后可在RMU表128(领域区组表)中被查找,以确定由MMU实施的领域保护是否允许存储器存取进行。以下在图18中更详细地讨论领域检查。若级段3处的检查成功,则输出已确认实体地址且允许存储器存取进行。若级段1或级段2地址转换处的检查或在级段3处提供的RMU实施的领域保护中任一者失败,则拒绝存储器存取。因此,除基于页表120的任何现有地址转换检查之外,由领域管理单元提供的保护可被视为将要进行的检查的额外层。图17A中所示的检查可相对缓慢地进行,因为在存储器中可存在多个表,这些表需要被存取且与存储器存取请求的参数或当前转换情境或领域比较,存取是从该当前转换情境或领域做出。虽然将可能对每个存储器存取进行这些检查,但当已针对给定存储器存取请求成功地执行检查时,可更快速地缓存TLB 100内的数据,使得下一次发布类似存储器存取请求时,可在不再次重复所有检查的情况下允许该类似存储器存取请求。因此,可期望仅在TLB 100中存在未命中时执行这些许可检查,且不针对命中执行。
图17B示出了用于缓存关于已验证的存储器存取的数据的TLB结构100的实例。虽然图17B示出单个TLB,但将了解,一些系统可包括缓存层级中的TLB的多个级,其中第1级TLB存储用于较快速存取的转换条目的较小子集,且第2级或进一步的级的TLB存储在第1级TLB中存在未命中的情况下可存取的转换条目的较大集合。TLB 100(或“转换缓存”)具有多个条目260,每一条目规定用于对应存储器区域的地址转换数据。每一条目260包括虚拟寻址标签262,该虚拟寻址标签对应于虚拟地址,针对其数据提供用于该虚拟地址的对应实体地址264。在此实例中,TLB为组合级段1及级段2TLB,使得虚拟地址可使用TLB直接转换至实体地址而不必经由中间实体地址进行(尽管将对TLB未命中进行对应的级段1及级段2转换以便定位正确的实体地址,但TLB不需要存储介入IPA且可将VA直接映射至OA)。其他实例可使用分裂的级段1(S1)及级段2(S2)TLB,在该情况下,VA-PA对262、264可用VA-IPA对或IPA-PA对替换。TLB条目260还用转换情境标识符254(由ASID 252及VMID 250形成)来加标签。尽管此实例提供两个分离转换情境标识符,但在其他实例中,可使用单个统一转换情境标识符,或在分裂S1/S2 TLB的情况下,S1 TLB可使用ASID且S2 TLB可使用VMID。转换情境标识符允许规定相同虚拟地址的不同操作系统或应用程序使这些不同操作系统或应用程序的存取映射至提供不同实体地址的TLB 100的不同条目上。
TLB 100中的命中不仅需要标签262匹配针对存储器存取请求规定的地址258的对应部分,而且存储在相同条目中的转换情境标识符还应匹配当前转换情境,存储器存取是从该当前转换情境发布的。可预期,标签262及转换情境标识符254的比较可足以定位用于给定存储器存取的正确实体地址264。然而,若这些为在查找中执行的仅有比较,则若TLB中的存储器存取命中被接收而没有无领域管理单元表128的进一步检查,则存在潜在安全弱点。这是因为有可能创建新过程,该新过程具有与先前执行的过程相同的VMID 250或ASID252,以诱使MMU接受存储器存取,该存储器存取实际上来自相比于先前针对存取给定存储器区域接受的一个领域的不同领域。
为解决此问题,TLB 100可在每一TLB条目260内规定拥有对应存储器区域的拥有者领域的全局RID 270,以及由拥有者领域设置来用于控制允许哪些其他领域存取对应存储器区域的可见性属性272。当转换缓存100的给定查找响应于从当前转换情境及当前领域发布的对给定目标存储器区域的存储器存取而被执行时,若在转换缓存100中存在未命中,则TLB控制电路280可触发表遍历单元102以存取关联页表120及RMU表128以便检查是否允许存取。若页表或RMU表128从存取对应存储器区域排除转换情境、异常级及领域的当前组合,则无数据响应于该存储器存取而被分配给转换缓存。具体地,当查找未命中且当前领域由目标存储器区域的拥有者领域从存取目标存储器区域排除时,随后地址转换数据至转换缓存的分配被防止。因此,当对应存储器存取通过MMU页表120及RMU表128两者的检查时,条目被分配给TLB 100。
随后,当查找转换缓存以检查该转换缓存是否已包括提供用于给定地址的地址转换的条目260时,TLB控制电路280根据对应条目260中规定的转换情境标识符254与连同存储器存取请求一起接收的用于当前转换情境的转换情境标识符254之间的第一比较,以及由该条目260规定的全局RID 270与当前全局RID之间的第二比较,确定存储器存取是否匹配转换缓存100的给定条目,该当前全局RID与发布存储器存取请求的当前领域相关联。通过提供TLB条目仍从先前验证为允许存取存储器区域的领域存取的额外检查,此确保即使恶意监督过程重新生成具有与由拥有者领域允许存取数据的先前存在过程相同的ASID252或VMID 250的另一过程,因为全局领域标识符270在不经历如关于图18所讨论的领域洗涤命令216的情况下不可重新分配给其他处理器,所以此意味当前领域的全局RID可被信赖为有效的且不可为“假的”,如对于ASID或VMID为可能的。因此,若当前领域的全局RID仍满足由拥有者GRID 270及可见性属性272指示的许可,则此指示先前进行的领域表检查为仍然有效的。
若领域标识符的第二比较检测到不匹配,则即使标签比较及转换情境比较匹配,存取请求也被视为在TLB中未命中,因为其指示在转换情境ID 254与领域ID 270之间的映射中存在变化,因为条目被分配。此未必暗示存取将被拒绝,因为页表及RMU表的另一遍历可由表遍历单元102触发,且若领域检查为成功的,则此可导致TLB 100中的不同条目260的分配及基于来自新分配条目的信息的存储器存取的服务。
图18为示出确定给定存储器存取是否由MMU 26允许的方法的流程图。在步骤300处,存储器存取请求被接收且在TLB 100中查找此存储器存取请求。存储器存取请求至少规定将要存取的虚拟地址、指示当前转换情境的一个或多个转换情境标识符及识别当前领域的全局领域标识符。例如,全局RID可从处理组件8的状态寄存器读取,该状态寄存器可在进入领域时以当前领域的全局RID写入。
响应于存储器存取请求,TLB控制电路280这些TLB的查找。查找存取TLB的至少一些条目。一些方法可使用全关联缓存结构,且在该情况下,至少第1级TLB的所有条目可被搜寻且与当前请求的参数比较,以便识别是否存在命中或未命中。其他方法可使用集合关联缓存分配策略,且在该情况下,仅TLB的给定级的条目的子集可需要被查找,使用存储器存取的目标地址来索引。对于条目的存取集合中的每一者,TLB控制电路280这些多个比较(平行地或顺序地),包括:
·用于比较存储器存取请求的地址是否匹配存储于存取条目中的标签262之标签比较302;
·用于比较存储在存取条目中的转换情境标识符与存储器存取请求的转换情境标识符的第一(情境)比较304;以及
·用于比较存储器存取请求的全局RID与拥有者RID 270及用于条目的存取集合中的每一者的可见性属性272的第二(领域)比较306。
在步骤308处,控制电路280确定在TLB中是否存在针对全部比较302、304、306返回匹配的条目,并且若是,则命中被识别,且在步骤310处,返回在匹配条目中规定的实体地址264且允许存储器存取基于该实体地址来进行。在命中的情况下,不需要执行页表或RMU表的任何查找(用于存储器存取的所有权表查找可被省略)。由页表及RMU表提供的保护仅在未命中时被调用。
若不存在匹配比较302、304、306中的所有三个的条目,则未命中被检测到。若进一步TLB级被提供,则可在第2级或后续级TLB中进行对应查找步骤300-308。若查找在末级TLB中未命中,则进行各种页表及RMU表的遍历。因此,在步骤311处进行级段1页表遍历,且在步骤312处确定级段1页表故障是否已发生(例如因为不存在针对规定虚拟地址定义的地址映射或因为存取请求的当前参数违反针对目标虚拟地址规定的存取许可)。若级段1故障发生,则在步骤314处,拒绝存储器存取且防止作为对存储器存取的响应的地址映射数据至TLB 100的分配。
另一方面,若存取请求通过级段1页表检查,则在步骤315处,级段2页表遍历被触发以获得用于由级段1过程返回的中间实体地址的映射数据,且在步骤316处,确定级段2页表故障是否已发生(再次,因为地址映射未定义或因为存取未被级段2存取许可允许)。若级段2故障发生,则再次在步骤314处拒绝存取请求。
若无级段2故障发生,则在步骤318处,基于由级段2返回的实体地址触发RMU表查找,且在步骤320处,确定领域故障是否已被检测到。若以下事件中任一者发生,则领域故障可被触发:
·若用于对应存储器区域的生命周期状态在领域所有权表128中被指示为无效的。此确保尚未经历图15中所示的清洁操作224的存储器地址空间的页不可存取,以保护先前由另一领域存储于该存储器区域中的任何数据免于由不同领域存取。
·当前领域未由用于对应存储器区域的拥有者领域允许用于存取该存储器区域。可存在给定领域为何可未被允许以存取给定存储器区域的多个原因。若拥有者领域已规定存储器区域仅对于拥有者自身及该拥有者的后代为可见的,则另一领域可未被允许以存取彼领域。另外,若当前领域为拥有者领域的上代领域且拥有者领域尚未定义上代可见性属性以允许上代存取区域,则存储器存取可被拒绝。另外,若存储器区域当前被设置为如以上所讨论的RMU-私有的,则拥有者领域自身可被防止以免存取该存储器区域。在RMU检查级段,拥有者领域的后代领域可被允许以存取存储器区域(只要存储器区域不是RMU-私有区域)。因此,此检查实施由拥有者领域设置的存取许可。
·若实体地址由S1/S2转换针对当前存储器存取映射的虚拟地址或中间实体地址不匹配在如图12中所示的用于对应存储器区域的所有权表128中规定的映射地址,则存储器存取被拒绝。此保护免于以下情形:恶意上代领域可将给定存储器区域的所有权分配给子代领域,但然后改变页表120中的转换映射,使得由子代领域使用该子代领域先前用来参考由该子代领域拥有的页的相同虚拟地址触发的后续存储器存取现在映射至实际上并非由子代领域自身拥有的不同实体地址。通过在所有权表中提供从对应存储器区域的实体地址回至在所有权被主张时用来产生该实体地址的映射地址的反向映射,此允许由地址映射的变化引起的安全破坏被检测到,使得存储器存取将失败。
将了解,还可进行其他类型的检查。若领域检查为成功的,则在步骤322处返回实体地址,存储器存取被允许使用实体地址进行,且新条目被分配给TLB,该新条目指示从页表120获得的实体地址及对应于所请求虚拟地址及转换情境的从所有权表128获得的拥有者领域及可见性属性。
在进入领域或从领域退出时,处理组件8和/或RMU 20可需要进行用于确保领域进入或退出的安全处置的多个操作。例如,在进入领域时,多个检查可需要执行来检查目标领域处于正确生命周期状态中(以避免由试图进入不存在的领域或例如尚未经历数据从其拥有的页的洗涤的领域超过安全措施)。另外,在退出领域时,可期望屏蔽存储在处理组件的寄存器中的架构状态,使得较高特权级过程不可存取由较低特权级的领域使用的状态数据(此否则将使由领域保护提供的安全措施被超过)。用于处置领域进入及退出的一个方法可提供专用领域进入或领域退出指令,该专用领域进入或领域退出指令触发RMU 20以进行用于进入或退出领域的关联操作。
另一方法可以是已为异常进入及返回提供的重新使用机构以便进入领域和从领域退出。此降低了支持领域进入及退出所需的软件修改的量,并简化了架构及硬件。这是尤其有用的,因为通常领域边界可无论如何对应于异常级边界,且即使新指令被提供来控制进入及退出,将仍然需要用于处置异常的行为,因此总体而言,扩展异常机构以便还控制进入和退出可为较不昂贵的。
因此,将正常地使处理从在当前领域中处理的异常返回至还在当前领域中处理的另一过程(其中该另一过程可在相较于异常的相同异常级或较少特权异常级被处置)的异常返回(ERET)指令可被重新使用来触发自从当前领域至目的地领域的领域进入。响应于异常返回指令的第一变体,处理电路可将处理从当前异常级切换至较少特权异常级(在不改变领域的情况下),而响应于异常返回指令的第二变体,处理电路可将处理从当前领域切换至目的地领域,该目的地领域可在与当前领域相同的异常级或降低(较少特权)异常级操作。使用异常返回指令来触发领域进入可大大地简化架构及硬件管理负担并且降低支持领域的使用的软件修改要求。
使用异常返回指令的另一优点在于,通常在从异常返回时,处理电路可响应于异常返回指令而执行操作的原子集合。在从异常返回时需要的操作的集合可被原子地执行,使得这些操作不可在中途划分,并且因此指令失败和操作的原子集合中无一者被执行,或指令被成功地执行合操作的原子集合中的全部被执行。对于异常返回指令的第二变体,处理电路可类似地执行第二操作的原子集合,该第二操作的原子集合可不同于第一操作的原子集合。已提供在处理器中以用于确保异常返回指令原子地完成的机构可被重新使用于领域进入,以便避免领域进入可仅部分地执行的可导致安全弱点的情形。例如,第二操作的原子集合可包括使领域执行情境状态为可利用的、改变正执行的当前领域,及控制分支至在相同领域最后一次执行时处理先前经执行所在的程序计数器地址。
异常返回指令的第一变体及第二变体可具有相同指令编码。因此无异常返回指令自身的修改为必要的,以便触发领域进入。此提高了与旧有代码的兼容性。给定异常返回指令被执行为第一变体或第二变体可取决于该给定异常返回指令存储在状态寄存器中的控制值(例如控制值的第一值及第二值可分别表示异常返回指令的第一变体及第二变体)。因此,在异常返回指令被执行时的当前架构状态控制该异常返回指令将处理器返回至相同领域中的较低特权级,或触发至新领域的进入。
此方法使领域进入能够以较少软件修改加以控制,尤其在状态寄存器中的值可响应于暗示领域切换为可能的某些事件而由硬件自动地设置时(除允许响应于软件指令的控制值的自愿设置之外)。例如,当触发至给定领域的退出的异常条件发生时,处理电路可将控制值设置为用于给定领域的第二值,使得后续异常返回指令将自动地使处理返回至异常发生所在的领域,即使考虑到用于处置异常的异常处置器代码与未以领域写入的先前旧有代码相同。替代地,在一些架构中可预期,当从领域退出时,状态寄存器中的控制值将仍包含在触发至该领域的领域进入之前设置的第二值,且因此可不需要状态寄存器中的控制值的显式设置。
可提供至少一个领域标识符寄存器,且响应于异常返回指令的第二变体,处理电路可从存储在领域标识符寄存器中的领域标识符识别目的地领域。领域标识符寄存器可为成组的,使得存在各自与异常级中一者相关联的多个领域标识符寄存器,且响应于异常返回指令的第二变体,处理电路可从存储在与当前异常级相关联的领域标识符寄存器中的领域标识符识别目的地领域。通过使用领域标识符寄存器来存储目标领域标识符,不需要将此包括在ERET指令的指令编码中,这使得ERET指令的现有格式能够用来触发领域进入,从而降低所需要的软件修改的量。领域标识符寄存器中的领域标识符可为由上代领域用来参考该上代领域的子代领域的局部领域标识符,且因此领域进入可限制于从上代领域传送至子代领域,且不可能从第一领域去往并非第一领域的直接子代的另一领域。响应于异常返回指令的第二变体,当与在RID寄存器中识别的领域ID相关联的领域为无效领域(无领域描述符已被定义或领域描述符定义除活动以外的生命周期状态的RID)时,处理电路可触发故障条件。
响应于异常返回指令的第二变体,处理电路可从针对异常返回指令规定的领域执行情境(REC)存储器区域恢复与将要在目的地领域中处理的线程相关联的架构状态。状态恢复可响应于异常返回指令的第二变体而立即进行(例如作为操作的原子集合的一部分),或可稍后进行。例如,状态恢复可以迟缓方式进行,使得需要在目的地领域中开始处理的状态可被立刻恢复(例如程序计数器、处理模式信息等),但其他状态诸如通用寄存器可在稍后时间需要时,或在新领域的持续处理的背景中逐渐地恢复。因此,处理电路可在所有需要的架构状态已从REC存储器区域恢复之前开始目的地领域的处理。
响应于异常返回指令的第一变体,处理电路可分支至存储在链接寄存器中的程序指令地址。相反,对于异常返回指令的第二变体,处理电路可分支至在领域执行情境(REC)存储器区域中规定的程序指令地址。因为链接寄存器将不被用于异常返回指令的第二变体以直接识别用于新领域的任何架构状态,所以链接寄存器可被重新使用来替代地提供指向REC存储器区域的指针,新领域的架构状态将从该REC存储器区域恢复。此避免了对提供进一步的寄存器以用于存储REC指针的需要。
因此,在执行试图引起至给定领域的领域进入的异常返回指令之前,一些额外指令可被包括以便将RID寄存器设置为目的地领域的领域标识符且设置链接寄存器以存储与目的地领域相关联的REC存储器区域的指针。REC指标可由上代领域从目的地领域的领域描述符获得。
响应于异常返回指令的第二变体,当REC存储器区域与除目的地领域之外的拥有者领域相关联或针对异常返回指令规定的REC存储器区域为无效的时,故障条件可由处理电路触发。第一检查防止上代领域诱使子代领域用该子代领域并未自身创建的处理器状态进行执行,因为仅由子代领域拥有的存储器区域可存储在进入该领域时可存取的REC存储器区域(且如以上所讨论,REC存储器区域将被设置为RMU私有的)。REC存储器区域的有效性的第二检查可用于确保REC存储器区域可仅使用一次以进入领域,且之后用相同REC数据进入领域的后续尝试将经拒绝。例如,每一REC可具有可为无效或有效的生命周期状态。响应于在当前领域中的给定线程的处理期间发生的异常,该线程的架构状态可被保存至对应REC存储器区域,且该对应REC存储器区域随后可从无效转换至有效。响应于异常返回指令的第二变体的成功执行,REC存储器区域随后可从有效转换回至无效。此通过规定过时REC存储器区域的指针、与不同线程相关联的REC存储器区域,或与目的地领域相关联但并非在处领域的先前退出时用来存储架构状态的正确REC的一些其他REC,避免了上代领域恶意地使子代领域不正确地表现。
以对应方式,从领域的退出可重新使用被提供用于异常处置的机构。因此,响应于在第一领域的处理期间发生的不能由第一领域处置的异常条件,处理电路可触发至上代领域的领域退出,该上代领域初始化第一领域。在异常发生/领域退出时,可执行将对于可在相同领域内处置的异常发生不被执行的一些额外操作。例如,此可包括架构状态的屏蔽或洗涤及至REC的状态存储的触发。
然而,在一些情况下,异常可发生,该异常不可由异常发生所在的第一领域的上代领域处置。因此,在此状况下,可能必需切换至越过上代的进一步的先代领域。尽管提供直接从给定领域切换至年长超过一个世代的先代领域的能力可以是可能的,但这可能增加处置异常进入及返回或领域退出及进入所需的状态寄存器的复杂性。
替代地,当异常条件将在具有相较于第一领域的上代领域被允许执行的最多特权异常级的较大特权级的目标异常级被处理时,可执行嵌套领域退出。嵌套领域退出可包括从子代领域至上代领域的二个或更多个相继领域退出,直至到达第二领域,该第二领域被允许在发生的异常的目标异常级被处理。因此,通过一次一级地提升领域层级,此可简化架构。在每一相继领域退出处,可存在被执行以将处理器状态的子集保存至与对应领域相关联的REC的操作。
图19示出了可由上代领域初始化的子代领域的概念。如图19中所示,在特定异常级操作的给定上代领域600可初始化子代领域602,该子代领域在与该子代领域的上代相同的异常级操作。完全领域600对应于给定软件过程(或二个或更多个过程的集合),但子代领域对应于给定软件过程内的预定地址范围。因为完全领域为子代领域的上代,所以如以上所讨论,子代领域可具有存取存储在由上代完全领域拥有的存储器区域中的数据的权限,但子代领域可具有从存取存储在由子代领域602拥有的存储器区域中的数据排除该子代领域的上代完全领域的权限。此可用于允许使给定软件过程的一定部分比软件过程的其他部分更安全。例如,用于检查移动银行应用中的密码或用于处理其他敏感信息的代码的一部分可被分配给子代领域,以便防止相同应用或操作系统的其他部分存取该敏感信息。
子代领域可通常以与完全领域相同的方式来处置,其中一些差异如以下解释。至子代领域的进入及从子代领域的退出可以与以上所讨论的相同方式使用异常返回指令及异常事件来处置。因此,子代领域可具有以针对相同上代的完全子代领域的相同方式构造的子代领域ID,且可具备如以上所讨论的领域描述符树内的领域描述符。至子代领域的进入可通过执行ERET指令简单地触发,在执行ERET指令之前,该ERET指令已将适当子代子代领域RID放置于RID寄存器中。因此,相同类型的ERET指令(属第二变体)可用来触发至完全领域或子代领域的进入。
子代领域可不同于完全领域的一个方式可为子代领域可不允许初始化这些子代领域的自有子代领域。因此,若当前领域为子代领域,则用于初始化新领域的领域初始化命令可被拒绝。RMU可使用当前领域的领域描述符中的领域类型值来确定当前领域为完全领域或子代领域。通过在当前处于子代领域中时禁止领域初始化,此简化架构,因为不必提供额外状态寄存器以用于由子代领域在初始化进一步的领域中使用。
类似地,在当前处于子代领域中时,可禁止领域进入指令的执行。此简化架构,因为其意味着针对不同异常状态被复制的用于处置领域进入及退出(及异常进入及返回)的成组寄存器不需要针对每一子代领域再一次成组,此将难以管理,因为在设计时间可能不知道给定过程将创建多少子代领域。类似地,在当前领域为子代领域而非完全领域时,可禁止触发至在较低特权级操作的过程的切换的异常返回事件。尽管在以上所讨论的实例中单个类型的ERET指令用作领域进入指令及异常返回指令两者,但此对于所有实施例并非必要的,且在提供分离指令的情况下,则在当前领域为子代领域时,可禁止异常返回指令两者。
类似地,当在子代领域中时的异常发生时,处理电路可在处置异常之前触发从子代领域至初始化子代领域的上代完全领域的退出,而非直接从子代领域采取异常。因此,异常触发至上代完全领域的返回。至上代完全领域的异常返回可包括对REC的状态屏蔽、洗涤及保存操作,但通过避免异常直接从子代领域去往较高异常级的领域,此避免了对针对子代领域再一次成组例外控制寄存器的需要,从而简化架构。
对于子代领域,指示允许领域的处理的最大特权级的边界异常级等于用于该领域的上代完全领域的边界异常级。相反,对于子代完全领域,边界异常级为相较于该子代完全领域的上代领域的边界异常级的较少特权异常级。
当领域由上代领域初始化时,上代领域可选择新领域将为子代完全领域还是子代子代领域,且可因此设置领域描述符中的适当领域类型参数。一旦领域为操作的,则上代领域不再可改变领域类型,因为领域描述符的修改被以上关于图11所讨论的管理领域生命周期禁止。
总之,引入类似于完全领域而管理但异常处置、领域初始化及领域进入功能在子代领域内禁止的子代领域的能力使对应于完全领域的软件过程内的给定地址范围的代码的较小部分能够与该软件的其他部分隔离,以便为敏感代码或数据的一定片段提供额外的安全性。
参数签名
上文所述的访问控制模型保护领域不受系统上的任何其他代理的影响,包括在相同特权级的其他软件、在较高特权级的其他软件,及其他领域。当建立领域时,该领域填充有表示领域的初始内容的内容(存储器页)。测量初始内容。领域还被指定安全性配置,诸如是否在调试模式中启动领域、用于导出领域秘密的范围参数等等,这些领域秘密通常由领域使用以保护其自身的内部引导过程并且保持其数据私有。建立领域、测量领域,并且实施其安全性参数(包括领域秘密的导出)的过程由领域管理单元管理。
一旦领域建立且执行,一些外部使用者(例如,连接至在领域内部执行的服务器应用的客户端)可连接至领域并且请求证明报告。证明报告允许外部使用者验证领域是否正在可信赖的系统上执行,且领域是否初始地填充了预期的软件(领域测量),以及验证领域是否如期望地配置(例如,未以使能的调试启动)。这对于其中数据仅在成功证明之后提供或变得可用的应用很有用。
然而,在领域建立及执行之后提供证明可能不足以用于以下示例性用例:
·其中数据需要被持续地存储在系统上以使得其在重新启动领域,或系统之后保持可用,
·若需要使数据对于用于负载平衡、冗余等的“相同”领域的多个实例可用,
·若领域需要在其已经证明之前存取一些引导秘密,例如存取存储于受保护文件系统中的引导影像。包括“相同”领域、或系统的后续重新启动。
此处,“相同”领域表示以相同初始内容填充,并且使用相同安全性配置的一或多个领域实例。
这些问题可通过引入签署领域参数的概念而解决。领域的安全性参数被延伸以包括预期的测量。领域的安全性配置是由参数签署者签署的。参数签署者身份与签名一起被包括。例如,使用非对称密码,参数可使用由参数签署者拥有的私有密钥而签署,并且对应公用密钥的散列可用作参数签署者身份。
用于建立领域的规则被延伸以使得若使用经签署的参数,则实际安全性配置的签名必须在领域可启动之前匹配期望签名,并且签署者ID被包括在密钥导出中以用于导出领域秘密。这些规则由领域管理单元20实施并且无法通过件阻止。
这表示领域可仅在以下条件下被启动,并且存取其秘密:(i)其安全性配置已经正确地签署;并且(ii)签署者为正确实体。若该两个条件的任一者未满足,则任一领域将不启动,或者领域将启动但无法存取其秘密。
例如,图20示出了当启动给定领域时,使用这种参数签名以验证领域的安全性配置参数是否已经如由一方预期地设定的实例,该方请求领域被安装在给定硬件平台上。
如在图20的顶部所示,当建立领域时,需要使用领域的该方请求上代领域启动目标领域并且用领域安全性配置参数400的某些集合建立目标领域。例如,初始领域参数可在由某些外部方(例如,银行业提供者、保健提供者)或其他方发送至上代领域的命令中规定,该外部方或其他方希望硬件部分安装用于与彼提供者交互作用的安全领域。可以预期,领域安全性配置参数400的初始集合将使用领域参数更新命令由上代领域添加至目标领域的领域描述符。
例如,初始领域参数可包括上述领域描述符的一些内容(诸如领域类型402),以及其他安全性配置参数,例如,是否启用将数据从第一存储器16(进行领域所有权保护)输出至第二外部存储器6的指示406,或是否针对领域启用调试的指示408。其他领域安全性配置参数(诸如受保护的地址范围),以及用于导出根密钥的密钥数据可能未包括在给与上代领域的初始参数集中,但替代地可以在建立领域时由RMU产生,RMU由如下所述的受信赖中间领域提供至领域,或通过领域自身产生。
初始领域参数400还包括期望签名410,该期望签名410对应于期望针对领域建立的安全性配置参数的子集的签名。期望签名410由参数签署者(例如,请求领域安装的一方)基于期望的安全性配置参数来计算,并且与用于所建立的领域的安全性配置参数一起给与上代领域。初始领域参数还包括识别参数签署者的签署者ID 412的指示。当配置目标领域时,期望签名410及签署者ID 412可由上代领域记录在目标领域的领域描述符中,同时目标领域处于清洁状态。
例如,期望签名410可由参数签署者如下生成:基于期望领域参数的散列函数产生散列值,并且使用与参数签署者相关联的私有密钥来对散列函数加密。签署者ID 412可为参数签署者的公用密钥,该公用密钥对应于用于以非对称密码方案产生签名410的私有密钥。
期望签名410不仅可在期望领域安全性配置参数自身的子集上计算,而且可以基于可作为期望领域内容(数据及代码)的函数而计算的测量值,该期望领域内容预期在启动领域时被存储于目标领域拥有的存储器区域中。
期望签名410可能不覆盖领域的所有安全性配置参数。将在给定领域的领域描述符中设定的一些安全性配置参数可从期望签名410的计算中排除。这可包括期望签名410自身及签署者ID 412。此外,领域描述符中的一些领域参数可取决于特定实体平台的局部特征,而不是取决于由需要建立领域的外部方期望的安全性配置设定。例如,针对受保护地址范围定义的特定地址可取决于为给定实体实例上的领域建立的特定地址映射,或者一些硬件实例唯一的密钥可由特定实体实例的RMU 20产生,因此可不能由参数签署者预测,并且因此可不经历参数签署。
在启动目标领域以使其对于处理电路的处理可用时,RMU 20基于在领域建立时由参数签署者提供的期望签名410来验证在目标领域的领域描述符中表示的实际领域参数420。在此时,RMU根据下列项来确定参数签名422:(i)领域的实际安全性配置参数420的子集(同样排除如上所示的某些参数),以及(ii)对由目标领域拥有的存储器区域的实际领域内容的测量421。例如,某些散列函数424可应用于领域安全性配置参数420及测量值421以产生参数签名422。散列函数424可对应于这样的散列函数,该散列函数由参数签署者用于基于预期的领域参数及预期的领域内容来产生预期签名410。
RMU 20还从目标领域的领域描述符获得预期签名410及签署者ID 412,并且验证预期签名410和参数签名424是否匹配。例如,若预期签名410是由参数签署者通过使用私有密钥解密期望的参数来计算的,则RMU 10可使用如由签署者ID 412表示的签署者的公用密钥来解密期望签名410,并且随后将该解密的签名与从实际领域参数产生的参数签名422比较。替代地,其他密码技术可用于验证从实际参数420导出的参数签名422是否匹配期望签名。
通常,若在从安全性配置参数420导出的实际参数签名422与在建立领域时提供的期望签名410之间检测到匹配,则允许目标领域的启动进行(假设满足任何其他安全核对)。另一方面,若在参数签名422与期望签名410之间检测到不匹配,则通过下列项之一来限制启动:产生故障以便根本不允许领域启动,或允许启动领域但拒绝对用于保护领域内容的密钥的存取,这可防止领域不正确地运行。无论何种方式,通过使用签名验证,RMU可实施在领域启动时的实际参数与具有期望应由领域安装的参数签名的预期参数的匹配,以对上代领域警告而不恶意改变领域参数,这些领域参数来自由请求安装领域的一方给与该领域的领域参数。
签署者ID 412还包括在密钥材料中以用于导出目标领域的领域秘密。此表示若建立了给定领域并且该给定领域的领域参数基于由错误签署者提供的签名而验证为可信的,则尽管领域可被启动,但该领域将不会具有用于存取由与正确签署者相关联的密钥保护的数据的正确密钥。
使用参数签名的该方法相对不常见,因为通常密码签名将用于验证提供某些信息的一方的身份与某些已知身份匹配。然而,在图20中所示的情况中,未针对任何已知身份来验证请求领域建立的一方的实际身份。实际上,若在领域建立时给定的期望签名与在领域启动时从实际参数产生的实际签名匹配,则允许任何一方请求建立给定领域并且使其领域得以启动。因此,若攻击者提供与期望签名不同的签名,并且实际参数是以匹配该不同签名的方式建立的,则将允许启动领域。然而,在领域的密钥材料中包括签署者的公用密钥防止由攻击者配置的领域被允许存取由参数签署者保护的数据,因此仍实施了安全性。签名检查的目的不是用于验证请求安装领域的一方的身份,而是检查(无论何者已请求安装领域)在启动时定义的参数是否匹配与当请求安装领域时与签名一起提供的参数,以防止上代领域不适当地修改参数。
如图20中所示,领域参数还可选地包括时期指示430,该时期指示430可表示为给定领域安装的软件的版本。时期430由期望签名410及参数签名422覆盖。此外,时期430还包括在用于导出领域秘密的密钥材料中。这允许验证已安装的领域软件的版本,并且允许检查领域软件的哪些版本被允许导出或使用由较早或较晚领域/版本建立的秘密。因此,若以特定版本的领域软件识别的安全性弱点具有给定时期值,则修复该问题的稍后更新可被给与较后时期值。领域秘密导出可使得领域被允许导出或使用任何安全性时期(早于该领域自身的时期或与其相同)的秘密,但无法导出比该领域自身的时期更新的任何安全性时期的秘密。通过将时期包括在由领域签名覆盖的参数中,这防止上代领域试图在领域建立时被给与初始领域参数与启动领域之间更新时期。
图21是示出基于参数签名来验证领域参数的方法的流程图。在步骤440处,待启动的目标领域的上代领域发布规定目标领域的领域启动命令。在步骤442处,RMU 20检查目标领域是否处于新状态,且若不处于新状态,则在步骤444处,触发故障。若领域处于新状态,则在步骤446处,RMU检查是否启用了参数签名。在一些系统中,参数签名可对系统整体进行启用或禁用。在其他实施方式中,参数签名可对于各个领域进行启用或禁用(例如,使用上代领域不被允许更新的领域描述符的安全性配置参数)。若参数签名被禁用,则在步骤448处,允许目标领域的启动,而与任何参数签名无关。
然而,若启用参数签名,则在步骤450处,RMU从目标领域的领域描述符获得领域参数的期望签名410。在步骤452处,RMU基于在目标领域的领域描述符中定义的实际安全性配置参数420的子集,并且基于领域内容421的测量产生参数签名422。在步骤454处,RMU确定参数签名422是否匹配期望签名410,并且若匹配,则在步骤456处,允许启动并且签署者ID412及时期430被包括在密钥数据中以用于导出领域秘密。若参数签名不匹配期望签名,则在步骤458处,应用启动限制。这可以是产生故障以防止启动成功,或者替代地,可允许启动但配置设定可被规定为防止该领域存取其领域秘密。
受信赖中间领域
如图22中所示,领域可初始地在由特定实体系统管理的特定系统上建立。稍后,领域可终止并且随后在相同或不同的系统上重新启动,或者相同领域的多个实例可建立在相同或不同的系统上以用于负载平衡及冗余目的。在任一情况下,可能需要共享相同数据集,该数据集由相同领域的所有实例可导出的密钥所保护。类似地,领域的安全性配置参数可能需要跨相同领域的多个实例为一致的。需要在领域重新启动中生存,或可能在不同系统上重新建立的任何链接无法自身由实体系统的特定实例管理。
如图23中所示,相关的问题为服务提供商可能需要在数据中心的不同系统之间,或在不同数据中心之间迁移领域以跨所有可用的计算资源管理负载、冗余等。在无上述基于领域的保护的系统的情况下,迁移可例如通过暂停虚拟机、分页整个虚拟机、将虚拟机恢复于不同的机器上并且随后将其再次启动来实施。目的地通常在迁移过程的开始时并不知道,但在某个稍后时刻决定,因此迁移的虚拟机最终可能在任何系统上恢复。在一些情况下,该过程可启动,同时虚拟机仍然执行(“在线迁移”)。对于使用上述基于领域的保护的系统,该现有的迁移过程不工作,因为其将损坏基于领域的系统的基本安全性保证。例如,领域可能已在具有已知安全性属性的系统上启动且证明。因为普通的迁移过程涉及数据中心中的未信赖的系统软件,对于通过分页的此迁移,给定的实体系统上的领域或RMU 20不能实施下列项:在领域已在新的系统上启动之前,目标系统具有相同的安全性属性。
这些问题可通过定义受信赖中间领域来解决,该受信赖中间领域与给定目标领域相关联并且被允许代表与目标领域相关联的外部方来管理该目标领域。受信赖中间领域可例如被允许执行某些领域管理功能,包括注入“所提供的”秘密及/或保存且恢复安全性配置参数,以便可在不同的实体平台之间迁移领域或终止且稍后恢复领域的实例,同时具有对于“相同领域”的每一实例的密钥及安全性配置参数的一致性集合。
如图24中所示,给定领域A可在其领域安全性配置参数400中(亦即,在其领域描述符124中)规定受信赖中间领域的识别符500,该受信赖中间领域为在相同实体实例上操作的另一领域。例如,如上所述的全局领域识别符(GRID)可用于识别受信赖中间领域。在一些情况下,给定领域A的领域描述符中的安全性配置参数还可包括标志,该标志指示领域是否与受信赖中间领域相关联。替代地,若该标志可从受信赖中间领域识别符字段500中的值中推导,则该标志在一些实施中可能不是必需的。例如,若受信赖中间领域识别符500被设定为不是真实领域的允许识别符的值,则这可隐式地识别不存在与给定领域相关联的受信赖中间领域。领域可仅由一个受信赖中间领域管理,但一个受信赖中间领域可管理多个其他领域,这些其他领域各自规定与受信赖中间领域相同的领域。
受信赖中间领域可在其所拥有的存储器页502存储器储用于管理相关联的领域A的信息。例如,受信赖中间领域可存储多个所提供的秘密504以及密钥管理策略506,所提供的秘密504可作为用于导出密钥以保护领域A的数据及代码的密钥材料而注入在领域A中,且密钥管理策略506可规定关于可如何及何时注入这些密钥的信息。此外,受信赖中间领域的所拥有的页502可存储配置记录508,该配置记录508可指示可注入至领域A的领域描述符中的安全性配置参数的集合。由受信赖中间领域对领域A的安全性配置参数的更新可限于在领域启动之前。领域描述符的一些参数可并不被允许由受信赖中间领域设定(例如,受信赖中间领域自身的识别符)。
在一些实例中,安全性配置记录508可在建立受信赖中间领域时已经提供至受信赖中间领域(例如,将由受信赖中间领域管理的领域A的安全性配置记录508可被包括于在建立受信赖中间领域时提供给受信赖中间领域的上代领域的信息束中)。
替代地,安全性配置记录可作为领域A的配置参数的快照而产生,该快照是在启动领域A之后获取的。例如,受信赖中间领域可被允许发布命令至RMU 20,该命令请求返回领域A的安全性配置参数的快照并将其作为安全性配置记录而存储在由受信赖中间领域拥有的存储器区域中。若发布命令的领域为除了针对领域A定义的领域安全性配置参数400内的识别符500中规定的受信赖中间领域以外的任何领域,则该命令可被RMU拒绝。这允许有效领域的参数被备份,因此这些参数可稍后恢复,例如用于允许如图22中所示的恢复先前终止的领域,或用于如图23中所示的使领域迁移至不同的实体平台,或用于将给定领域的配置回滚至较早状态。安全性配置记录508可与迁移策略510相关联,该迁移策略510可定义用于控制如何、何时及是否允许领域迁移至不同的平台以及在哪些条件下迁移的属性。
受信赖中间领域不一定支持注入所提供的秘密以及保存和恢复安全性配置记录两者。一些中间领域(或基于领域的架构的一些实施方式的整体)可仅能处理这些功能之一。
领域建立时领域与某个受信赖中间领域的关联可由外部方或者由其他领域通过请求RMU 20产生目标领域的证明及/或受信赖中间领域的证明来验证。这些证明可包括领域的安全性配置参数的签名,或者由受信赖中间领域管理的目标领域A的领域内容。当针对领域A产生证明时,领域A与受信赖中间者相关联的事实可从领域证明为明显的。当证明目标领域A时,检查证明的验证实体还可证明相关联的受信赖中间领域,这是因为中间领域的直接证明被包括在目标领域A的证明中,或者是因为对目标领域的证明可规定受信赖中间领域的识别符,以便单独的证明产生命令可被发布以请求中间领域的单独证明。
因此,通过定义受信赖中间领域,这允许给定领域的多个实例在不同的时刻或在不同的实体平台上建立,每个实例共享对共享密钥或安全性配置参数的存取,这将难以通过仅RMU或通过领域的自身代码来安全地管理。
图25示出了处理安全性配置参数更新命令的方法,该命令用于更新与目标领域相关联的安全性配置参数。此命令可用于更新与目标领域相关联的安全性配置参数。在步骤520处,接收安全性配置参数更新命令,该命令规定其参数将被更新的目标领域。
在步骤522处,RMU 20检查由命令识别的目标领域当前是否处于清洁状态。若不是,则在步骤524处产生故障,因为一旦领域已从清洁状态传递至新状态,安全性配置参数就不可更新。若领域处于清洁状态,则在步骤524处,确定发布命令的领域是否为目标领域的上代领域。若是,则在步骤528处,RMU允许所请求的参数更新,只要该更新是针对上代领域被允许更新的安全性配置参数的子集。给定领域的领域描述符的一些内容(诸如密钥)可能对于给定领域的上代领域是不可存取的。此外,可不允许上代领域更新一些参数,例如,领域是否与受信赖中间领域相关联、受信赖中间领域的身份、期望签名410、签署者ID 412等。
若命令不是由上代领域发布的,则在步骤530处,RMU 20检查目标领域是否与受信赖中间领域相关联并且命令是否由受信赖中间领域发布。若目标领域不与任何受信赖中间领域相关联,或者命令并不是由与目标领域相关联的受信赖中间领域发布的,则在步骤532处触发故障。另外,若命令是由与目标领域相关联的受信赖中间领域发布的,则在步骤534处,允许领域描述符的参数更新。此外,可存在受信赖中间领域不被允许更新的一些参数,但这些参数可以是比上代领域不被允许更新的那些参数更少的参数。例如,可能不允许受信赖中间领域改变将哪个领域被识别为受信赖中间领域。然而,不同于上代领域,可允许受信赖中间领域更新提供的秘密,该提供的秘密为用于产生密钥以保护与领域相关联的数据/代码的密钥材料。
RMU还可支持用于触发获取安全性配置记录508的命令,该安全性配置记录508表示目标领域的安全性配置参数的子集的快照。仅当这些命令是由在目标领域的领域描述符中定义的受信赖中间领域发布时,这些命令才可被接受。
图26示出了处理证明命令的方法,该证明命令用于触发产生对目标领域的证明。在步骤550处,RMU 20接收证明命令,该证明命令识别将为其产生证明的目标领域。在步骤552处,确定是否可接受证明命令,并且若否,则在步骤554处产生故障。可执行各种检查以确定是否可接受证明命令。若由证明命令识别的目标领域无效,则可拒绝证明命令并且触发故障。此外,若证明命令系是除了与目标领域相关联的受信赖中间领域以外的领域发布的,则若目标领域处于有效状态,则可接受证明命令;若目标领域处于另一状态,则可拒绝证明命令。若证明命令是由受信赖中间领域发布的,则若目标领域处于清洁状态、新状态或有效状态中的任一者中,则可接受证明命令。
若接受证明命令,则在步骤556处,基于目标领域的安全性配置参数产生证明信息,其中证明信息提供使得验证实体能够检查目标领域是否满足某些性质的一些信息。在步骤558处,RMU 20检查目标领域是否与受信赖中间领域相关联。若是,则在步骤560处,RMU20随后在证明信息中包括指示目标领域与受信赖中间领域相关联的信息,并且还包括中间领域证明信息,该中间领域证明信息识别受信赖中间领域或者提供对中间领域的性质进行证明的证明信息。若目标领域不具有相关联的受信赖中间领域,则省略步骤560。无论何种方式,在步骤562处,证明信息被签署有对证明的有效性进行证明的密钥,并且证明被输出至请求它的一方。
因此,当目标领域与受信赖中间领域相关联时,验证方可使用证明以检查受信赖中间领域是否具有某些性质,这是通过检查目标领域自身的证明、或通过使用包括在目标领域的证明中的识别符以请求受信赖中间领域的进一步证明。以此方式,可确保信赖以下事实,即目标领域由适当运行的受信赖中间领域正确地配置。
因此,总之,受信赖中间领域被定义用于管理给定领域,该给定领域本身为与将管理的给定领域相同的领域管理方(例如,相同的银行业提供者,保健提供者等)相关联的领域,具有允许其代表该方管理其他领域的特殊性质。在最简单的实施方式中,受信赖中间领域的一个实例(每领域管理方)可存在于其中领域可存在的每个系统上。因为受信赖中间领域本身为一个领域,因此它可由领域管理方进行证明来作为调试的一部分,确保受信赖中间者可仅在具有所需的安全性属性的系统上有效/经调试。
因此,领域可在领域建立时与受信赖中间者相关联,以使得:仅经识别的受信赖中间领域可管理领域;领域与受信赖中间领域相关联的事实从领域证明中显而易见;并且当证明领域时,验证实体还可证明相关联的信赖中间。受信赖中间领域可从设备2的给定实体实例接收领域的安全性环境,并且在相同实例或不同实例上恢复领域的安全性环境。领域拥有者的迁移策略被编码在与领域拥有者相关联的受信赖中间领域内。策略自身可通过证明受信赖中间领域来证明。这包括如何以及何时在不同系统之间传送领域安全性环境的策略。作为二级使用,相同方法可支持相关用例,例如,备份/恢复完整的领域,或获取允许领域回滚至先前已知状态的领域的快照/检查点等。
受信赖中间领域可在启动领域之前证明受管理的领域。受信赖中间领域被允许在启动领域之前,在领域建立期间注入提供的根秘密。领域拥有者的密钥管理策略被编码在与领域拥有者相关联的受信赖中间领域内。策略自身可通过证明受信赖中间领域来证明。这包括在重新启动领域之后提供相同的根秘密,或提供根秘密至相同领域的多个实例,或与领域在哪一系统上启动无关地提供相同的根秘密等。
图27示出了可使用的仿真器实施方式。虽然较早描述的实施例就用于操作支持所考虑的技术的特定处理硬件的设备及方法而言实施本发明,但还可以通过使用计算机程序来根据本文所描述的提供指令执行环境。在此类计算机程序提供硬件架构的基于软件的实施方式的范围内,这些计算机程序通常称为仿真器。各种仿真器计算机程序包括仿真器、虚拟机、模型,及二进制翻译器,包括动态二进制翻译器。通常,仿真器实施方式可在主机处理器730上运行,该主机处理器任择地运行主机操作系统720,支持仿真器程序710。在一些配置中,可存在介于硬件与所提供的指令执行环境之间的仿真的多个层,和/或提供在相同主机处理器上的多个相异指令执行环境。历史上,已需要强大的处理器提供以合理速度执行的仿真器实施方式,但此方法可在某些环境中被调整,诸如当出于兼容性或重新使用原因需要运行对于另一处理器为本机的代码时。例如,仿真器实施方式可提供具有不由主机处理器硬件支持的额外功能的指令执行环境,或提供通常与不同硬件架构相关联的指令执行环境。对模拟的概述在“一些高效架构模拟技术(Some Efficient ArchitectureSimulation Techniques)”,Robert Bedichek,Winter 1990USENIX Conference,第53–63页中给出。
在先前已参考特定硬件构造或特征描述实施例的程度上,在模拟实施例中,等效功能可由适当软件构造或特征提供。例如,特定电路(如MMU 26和RMU 20)可在仿真实施例中实施为仿真器程序710中的计算机程序逻辑(例如,存储器存取程序逻辑和领域管理程序逻辑)。类似地,存储器硬件诸如寄存器或缓存可在模拟实施例中实施为软件数据结构。在先前描述的实施例中引用的硬件组件之一或多者存在于主机硬件(例如,主机处理器730)上的配置中,一些仿真实施例可在适合的情况下利用主机硬件。
仿真器程序710可存储在计算机可读存储介质(该计算机可读介质可为非暂态介质)上,且提供至目标代码700(该目标代码可包括如图2中所示的应用程操作系统及管理器)的程序接口(指令执行环境),该程序接口与由仿真器程序710模型化的硬件架构的应用程序编程接口相同。因而,目标代码700的程序指令(包括基于以上所描述的领域保护功能的存储器存取的控制)可使用仿真器程序710在指令执行环境内执行,使得实际上不具有以上所讨论的设备2的硬件特征的主计算机730可仿真这些特征。
在本申请中,词语“被配置为……”用来意味设备的组件具有能够实施所定义操作的配置。在此上下文中,“配置”意味硬件或软件的互连的配置或方式。例如,设备可具有提供所定义操作的专用硬件,或可被程序化为执行功能的处理器或其他处理装置。“被配置为”并不暗示设备组件需要以任何方式改变以便提供所定义操作。
尽管本文已参考附图详细描述本发明的说明性实施例,但将理解,本发明不限于这些精确实施例,且各种变化及修改可在不脱离如所附权利要求限定的本发明的范围及精神的情况下由本领域技术人员实现。

Claims (20)

1.一种设备,包括:
处理电路,用于响应于一个或多个软件过程而执行数据处理;
存储器存取电路,用于基于所有权信息来控制对多个存储器区域的存取,所述所有权信息针对给定存储器区域定义了从多个领域中规定的拥有者领域,每个领域与所述软件过程中的至少一个软件过程的至少一部分相对应,所述拥有者领域有权阻止其他领域存取存储在所述给定存储器区域内的数据;以及
领域管理单元,用于基于与给定领域相关联的安全性配置参数控制所述给定领域的操作;其中:
当所述给定领域的安全性配置参数规定所述给定领域与由所述安全性配置参数识别的受信赖中间领域相关联时,所述领域管理单元被配置为允许所述受信赖中间领域执行所述给定领域的至少一个领域管理功能。
2.根据权利要求1所述的设备,其中,所述领域管理功能包括更新所述给定领域的安全性配置参数的至少一部分。
3.根据权利要求1和2中任一项所述的设备,其中,除了根领域之外的每个领域与创建该领域的相应上代领域相关联;并且
所述领域管理单元被配置为:支持所述安全性配置参数将所述受信赖中间领域定义为除了所述给定领域的上代领域之外的领域。
4.根据权利要求3所述的设备,其中,所述领域管理单元被配置为:在所述给定领域的建立期间,基于由所述上代领域发布的至少一个命令,设定所述给定领域是否与所述受信赖中间领域相关联。
5.根据前述权利要求中任一项所述的设备,其中,所述领域管理单元被配置为:响应于识别目标领域的证明命令,提供证明所述目标领域的性质的证明。
6.根据权利要求5所述的设备,其中,当所述给定领域的安全性配置参数规定所述目标领域与所述受信赖中间领域相关联时,所述证明包括指示所述目标领域与所述受信赖中间领域相关联的信息。
7.根据权利要求5和6中任一项所述的设备,其中,当所述目标领域的安全性配置参数规定所述目标领域与所述受信赖中间领域相关联时,所述目标领域的证明规定中间领域证明信息,
所述中间领域证明信息证明所述受信赖中间领域的性质,或提供用于使得所述证明的接受者能够请求针对与所述目标领域相关联的所述受信赖中间领域的证明的信息。
8.根据权利要求5至7中任一项所述的设备,其中,所述领域管理单元被配置为:防止所述处理电路处理给定领域,直至所述给定领域已经启动为止;并且
所述领域管理单元被配置为:允许与所述给定领域相关联的所述受信赖中间领域在所述给定领域已经启动之前,触发产生针对所述给定领域的证明。
9.根据前述权利要求中任一项所述的设备,其中,所述领域管理单元被配置为:允许所述受信赖中间领域为所述给定领域提供至少一个所提供的秘密,所述所提供的秘密包括下列项中的至少一项:
至少一个密钥,用于保护与所述给定领域相关联的数据;以及
密钥材料,用于导出所述至少一个密钥。
10.根据权利要求9所述的设备,其中,所述领域管理单元被配置为:禁止除了所述受信赖中间领域以外的领域为所述给定领域提供所述至少一个所提供的秘密。
11.根据权利要求9和10中任一项所述的设备,其中,所述领域管理单元被配置为:防止所述处理电路处理给定领域,直至所述给定领域已经启动为止;
所述领域管理单元被配置为:允许所述受信赖中间领域在所述给定领域已经启动之前为所述给定领域提供所述至少一个所提供的秘密;以及
所述领域管理单元被配置为:防止所述受信赖中间领域在所述给定领域已经启动之后为所述给定领域提供所述至少一个所提供的秘密。
12.根据权利要求9至11中任一项所述的设备,其中,所述领域管理单元被配置为:基于由所述受信赖中间领域提供的密钥管理策略信息来管理对所述至少一个所提供的秘密的提供。
13.根据前述权利要求中任一项所述的设备,其中,所述领域管理单元被配置为:允许所述受信赖中间领域记录安全性配置记录,该安全性配置记录指示与所述给定领域相关联的安全性配置参数的至少子集。
14.根据前述权利要求中任一项所述的设备,其中,所述领域管理单元被配置为:允许所述受信赖中间领域基于先前由所述受信赖中间领域记录的安全性配置记录,来更新与所述给定领域相关联的安全性配置参数的至少子集。
15.根据权利要求13和14中任一项所述的设备,其中,所述领域管理单元被配置为:基于由所述受信赖中间领域提供的策略信息来管理记录所述安全性配置记录、或从所述安全性配置记录恢复安全性配置参数。
16.根据前述权利要求中任一项所述的设备,其中,所述给定领域的安全性配置参数包括下列项中的至少一项:
领域类型;
与所述给定领域相关联的受保护地址范围;
对是否在所述给定领域内启用调试的指示;
对是否允许数据从由所述存储器存取电路进行存取控制的第一存储器输出到第二存储器的指示;以及
用于导出至少一个密钥以保护与所述给定领域相关联的数据的密钥材料。
17.根据前述权利要求中任一项所述的设备,其中,所述拥有者领域有权阻止由在比所述拥有者领域更高的特权级执行的过程存取所述给定存储器区域。
18.一种数据处理方法,包括:
响应于一个或多个软件过程而执行数据处理;
基于所有权信息来实施针对多个存储器区域的所有权权限,所述所有权信息针对给定存储器区域定义了从多个领域中规定的拥有者领域,每个领域与所述软件过程中的至少一个软件过程的至少一部分相对应,所述拥有者领域有权阻止其他领域存取存储在所述给定存储器区域内的数据;以及
基于与给定领域相关联的安全性配置参数控制所述给定领域的操作;其中:
当所述给定领域的安全性配置参数规定所述给定领域与由所述安全性配置参数识别的受信赖中间领域相关联时,允许所述受信赖中间领域执行所述给定领域的至少一个领域管理功能。
19.一种用于控制主机数据处理设备来提供指令执行环境的计算机程序,包括:
存储器存取程序逻辑,用于基于所有权信息来控制对模拟存储器地址空间的多个存储器区域的存取,所述所有权信息针对给定存储器区域定义了从多个领域中规定的拥有者领域,每个领域与在所述指令执行环境中执行的多个软件过程中的至少一个软件过程的至少一部分相对应,所述拥有者领域有权阻止其他领域存取存储在所述给定存储器区域内的数据;以及
领域管理程序逻辑,用于基于与给定领域相关联的安全性配置参数控制所述给定领域的操作;其中:
当所述给定领域的安全性配置参数规定所述给定领域与由所述安全性配置参数识别的受信赖中间领域相关联时,所述领域管理程序逻辑被配置为允许所述受信赖中间领域执行所述给定领域的至少一个领域管理功能。
20.一种存储介质,存储根据权利要求19所述的计算机程序。
CN201980064654.1A 2018-10-19 2019-09-03 受信赖中间领域 Pending CN112805693A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB1817041.5 2018-10-19
GB1817041.5A GB2578297B (en) 2018-10-19 2018-10-19 Trusted intermediary realm
PCT/GB2019/052447 WO2020079388A1 (en) 2018-10-19 2019-09-03 Trusted intermediary realm

Publications (1)

Publication Number Publication Date
CN112805693A true CN112805693A (zh) 2021-05-14

Family

ID=64453893

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980064654.1A Pending CN112805693A (zh) 2018-10-19 2019-09-03 受信赖中间领域

Country Status (9)

Country Link
US (1) US11481339B2 (zh)
EP (1) EP3867763B1 (zh)
JP (1) JP7431225B2 (zh)
KR (1) KR20210075064A (zh)
CN (1) CN112805693A (zh)
GB (1) GB2578297B (zh)
IL (1) IL280713B2 (zh)
TW (1) TWI813771B (zh)
WO (1) WO2020079388A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113535215A (zh) * 2021-07-20 2021-10-22 北京字节跳动网络技术有限公司 一种虚拟机热升级方法、装置、设备以及存储介质

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11429289B2 (en) * 2020-03-27 2022-08-30 Intel Corporation Memory map protection mechanism
US11645103B2 (en) * 2020-07-23 2023-05-09 EMC IP Holding Company LLC Method and system for securing the movement of virtual machines between hosts
US11615033B2 (en) * 2020-09-09 2023-03-28 Apple Inc. Reducing translation lookaside buffer searches for splintered pages
US11663030B2 (en) * 2021-10-18 2023-05-30 Sophos Limited Extending expiration of user sessions with authentication refresh

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7287140B1 (en) * 2003-07-28 2007-10-23 Massachusetts Institute Of Technology System and technique for fine-grained computer memory protection
GB201710342D0 (en) * 2017-06-28 2017-08-09 Advanced Risc Mach Ltd Invalidation of a target realm in a realm hierarchy
CN107690621A (zh) * 2015-06-16 2018-02-13 Arm 有限公司 受保护的异常处置
CN107771323A (zh) * 2015-06-16 2018-03-06 Arm 有限公司 共享页
US20180173645A1 (en) * 2015-06-16 2018-06-21 Arm Limited Secure initialisation

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6560609B1 (en) * 1999-06-14 2003-05-06 International Business Machines Corporation Delegating instance management functions to underlying resource managers
GB0212315D0 (en) * 2002-05-28 2002-07-10 Symbian Ltd Secure mobile wireless device with protected file systems
US8407704B2 (en) * 2006-09-26 2013-03-26 International Business Machines Corporation Multi-level memory architecture using data structures for storing access rights and performing address translation
US9742560B2 (en) * 2009-06-11 2017-08-22 Microsoft Technology Licensing, Llc Key management in secure network enclaves
US20110022736A1 (en) * 2009-07-21 2011-01-27 Lsi Corporation Methods and apparatus dynamic management of multiplexed phys in a serial attached scsi domain
US9952887B2 (en) * 2014-06-23 2018-04-24 Vmware, Inc. Device simulation in a secure mode supported by hardware architectures
US9710622B2 (en) * 2015-02-23 2017-07-18 Intel Corporation Instructions and logic to fork processes of secure enclaves and establish child enclaves in a secure enclave page cache
US10223289B2 (en) * 2015-07-07 2019-03-05 Qualcomm Incorporated Secure handling of memory caches and cached software module identities for a method to isolate software modules by means of controlled encryption key management
US10587411B2 (en) * 2017-04-11 2020-03-10 International Business Machines Corporation Zero-knowledge verifiably attestable transaction containers using secure processors
GB2563889B (en) * 2017-06-28 2019-10-09 Advanced Risc Mach Ltd Realm identifiers for realms for memory access control

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7287140B1 (en) * 2003-07-28 2007-10-23 Massachusetts Institute Of Technology System and technique for fine-grained computer memory protection
CN107690621A (zh) * 2015-06-16 2018-02-13 Arm 有限公司 受保护的异常处置
CN107771323A (zh) * 2015-06-16 2018-03-06 Arm 有限公司 共享页
US20180173645A1 (en) * 2015-06-16 2018-06-21 Arm Limited Secure initialisation
GB201710342D0 (en) * 2017-06-28 2017-08-09 Advanced Risc Mach Ltd Invalidation of a target realm in a realm hierarchy

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113535215A (zh) * 2021-07-20 2021-10-22 北京字节跳动网络技术有限公司 一种虚拟机热升级方法、装置、设备以及存储介质
CN113535215B (zh) * 2021-07-20 2024-05-28 抖音视界有限公司 一种虚拟机热升级方法、装置、设备以及存储介质

Also Published As

Publication number Publication date
IL280713A (en) 2021-03-25
IL280713B2 (en) 2024-02-01
US11481339B2 (en) 2022-10-25
TW202034175A (zh) 2020-09-16
GB2578297B (en) 2021-07-14
JP7431225B2 (ja) 2024-02-14
GB201817041D0 (en) 2018-12-05
TWI813771B (zh) 2023-09-01
IL280713B1 (en) 2023-10-01
EP3867763A1 (en) 2021-08-25
WO2020079388A1 (en) 2020-04-23
KR20210075064A (ko) 2021-06-22
JP2022503972A (ja) 2022-01-12
GB2578297A (en) 2020-05-06
EP3867763B1 (en) 2023-10-25
US20210334222A1 (en) 2021-10-28

Similar Documents

Publication Publication Date Title
JP7149298B2 (ja) レルム階層における目標レルムの無効化
TWI813771B (zh) 資料處理方法,以及其設備、電腦程式,及儲存媒體
TWI818079B (zh) 使用用於領域安全性配置參數的參數簽名的設備、方法、電腦程式以及儲存媒體
US11263155B2 (en) Managing fusion of memory regions and ownership attributes for fused memory regions
TWI787289B (zh) 用於轉譯快取查找的領域識別符比較
CN110785746B (zh) 存储器区域锁定
CN110832467A (zh) 领域执行情境屏蔽和保存
CN110785745A (zh) 中断存储器区域的输出
US11237957B2 (en) Scrub-commit state for memory region
CN110785748A (zh) 领域管理单元-私有存储器区域

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination