CN104881596A - 在安全处理环境中修改存储器权限 - Google Patents

在安全处理环境中修改存储器权限 Download PDF

Info

Publication number
CN104881596A
CN104881596A CN201410775886.7A CN201410775886A CN104881596A CN 104881596 A CN104881596 A CN 104881596A CN 201410775886 A CN201410775886 A CN 201410775886A CN 104881596 A CN104881596 A CN 104881596A
Authority
CN
China
Prior art keywords
instruction
page
enclave
processor
computing environment
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201410775886.7A
Other languages
English (en)
Other versions
CN104881596B (zh
Inventor
R·勒斯列-赫德
I·埃里克山德洛维奇
I·安奈蒂
A·贝伦宗
M·戈德史密斯
S·约翰逊
F·麦克金
C·罗扎斯
U·萨瓦高恩卡
V·斯卡拉塔
V·尚伯格
W·史密斯
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.)
Intel Corp
Intel IP Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN104881596A publication Critical patent/CN104881596A/zh
Application granted granted Critical
Publication of CN104881596B publication Critical patent/CN104881596B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0875Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
    • 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/1466Key-lock 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/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • 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/604Tools and structures for managing or administering access control systems
    • 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/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • 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
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices

Abstract

公开了用于在安全处理环境中修改存储器权限的发明的各实施例。在一个实施例中,处理器包括指令单元和执行单元。指令单元将接收修改安全飞地中的页面的访问权限的指令。执行单元将执行指令。指令的执行包括在飞地页面缓存图条目中设置新的访问权限。此外,根据新的访问权限,页面还立即从安全飞地内可访问。

Description

在安全处理环境中修改存储器权限
背景
1.领域
本发明涉及信息处理的领域,具体来说,涉及信息处理系统中的安全性领域。
2.相关技术的描述
机密信息被许多信息处理系统存储、传输以及使用。因此,开发了用于机密信息的安全处理和存储的技术。这些技术包括在信息处理系统内创建和维护安全的、受保护的或隔离的容器、分区或环境的各种方法。
附图说明
本发明是作为示例说明的,而不仅限于各个附图的图形。
图1示出了根据本发明的一个实施例的用于在安全处理环境中修改存储器权限的系统。
图2示出了根据本发明的一个实施例的用于在安全处理环境中修改存储器权限的处理器。
图3示出了根据本发明的一个实施例的飞地页面缓存。
图4示出了根据本发明的一个实施例的包括安全处理环境的系统架构。
图5示出了根据本发明的一个实施例的用于在安全处理环境中扩展存储器权限的方法。
图6示出了根据本发明的一个实施例的用于在安全处理环境中限制存储器权限的方法。
具体实施方式
描述了用于在安全处理环境中修改存储器权限的发明的各实施例。在此描述中,可以阐明很多具体细节,诸如组件和系统配置,以提供对本发明的更加全面的理解。然而,本领域技术人员可以理解,本发明可以在没有这样的具体细节的情况下实施。另外,为避免不必要地使本发明模糊,没有详细示出某些已知的结构,电路,及其他特征。
在下面的描述中,对“一个实施例”、“实施例”、“示例实施例”、“各实施例”等等的引用表示所描述的本发明的各实施例可包括特定特征、结构或特性,但是,一个以上的实施例可以并且并非每一个实施例一定包括特定特征、结构或特性。进一步地,一些实施例可以具有为其他实施例描述的某个,全部特征或没有一个特征。
如在权利要求书中所使用的,除非另作说明,否则使用序数词“第一”、“第二”、“第三”等等来描述元件,只表示一个元件的特定实例或相似元件的不同的实例正在被引用,而不打算暗示如此所描述的元件必须按特定顺序,无论是在时间上、在空间上,在排序方面或以任何其他方式。
此外,术语“比特”、“标志”、“字段”、“条目”、“指示符”等等还可以被用来描述寄存器中的任何类型的存储位置、表、数据库或其他数据结构,无论是以硬件还是软件实现的,但是,不旨在将本发明的各实施例限制到任何特定类型的存储位置或任何特定存储位置内的任何特定数量的比特或其他元件。术语“清除”可以被用来指示存储或以别的方式导致逻辑值零被存储在存储位置,而术语“置位”可以被用来指示存储或以别的方式导致逻辑值1,所有1,或某种其他指定的值被存储在存储位置;然而,这些术语不旨在将本发明的各实施例限制到任何特定逻辑约定,因为在本发明的各实施例内可以使用任何逻辑约定。
如背景部分所描述,开发了在信息处理系统内创建和维护安全的、受保护的、或隔离的容器、分区或环境的各种方法。一种这样的方法涉及如2012年6月19日提交的标题为“Method and Apparatus to Provide SecureApplication Execution”的序号13/527,547的共同待审的美国专利申请所描述的安全飞地,该申请提供了关于安全的、受保护的或隔离的容器、分区或环境的至少一个实施例的信息。然而,此引用不旨在以任何方式限制本发明的各实施例的范围,可以使用其他实施例,而仍保持在本发明的精神和范围之内。因此,用于本发明的任何实施例中的任何安全的、受保护的或隔离的容器、分区,或环境的任何实例此处可以被称为安全飞地或飞地。
本发明的各实施例用于动态地修改访问飞地存储器的权限,而不会在修改过程中使该存储器对在飞地中运行的应用程序无法访问。飞地使用模式可以包括软件使用权限限制在飞地内运行,以优化“主要为读取”并行数据结构的性能,期望读取器在整个权限修改过程中可以访问数据结构。本发明的各实施例可以使此期望在某些条件下被满足,而不要求从飞地退出以修改权限的导致性能降低的开销。例如,当向页面的写入器必须被暂停时,关键代码部分可以在垃圾回收过程中将堆页面复制到新的位置,但是,本发明的各实施例可使读取器安全地继续访问。
图1示出了根据本发明的一个实施例的系统100,用于在安全处理环境中修改存储器权限的信息处理系统。系统100可以表示任何类型的信息处理系统,诸如服务器、台式计算机、便携式计算机、机顶盒、手持式设备,诸如平板电脑或智能电话或嵌入式控制系统。系统100包括处理器110、外围控制代理120、系统存储器130以及信息存储设备140。实现本发明的系统可以包括任意数量的这些组件以及诸如外围设备以及输入/输出设备之类的任何其他组件或其他元件中的每一个。此或任何系统实施例中的任何或全部组件或其他元件可以通过任意数量的总线、点对点或其他有线或无线接口或连接来彼此连接、耦合或以别的方式进行通信,除非以别的方式指定。系统100的任何组件或其他部分,无论在图1中示出还是在图1中没有示出,都可以集成或以别的方式包括在单一芯片(片上系统或SOC)、晶片、衬底或封装中。
外围控制代理120可以表示外围、输入/输出或其他组件或设备可以通过其连接或耦合到处理器110的任何组件,诸如芯片组组件。系统存储器130可以是动态随机存取存储器或任何其他类型的可由处理器110读取的介质。信息存储设备140可以包括任何类型的持久性或非易失性存储器或存储,诸如闪存和/或固态、磁性或光盘驱动器。
处理器110可以表示集成在单一衬底上或封装在单一封装内的一个或多个处理器,其中每一个处理器都可以以任何组合包括多个线程和/或多个执行核。表示为处理器110的每一个处理器都可以是任何类型的处理器,包括通用微处理器,诸如处理器系列、处理器系列,或来自Corporation的其他处理器系列的处理器,或来自另一公司的另一处理器,或专用处理器或微控制器。
处理器110可以根据指令集架构进行操作,该指令集架构包括创建安全飞地的第一指令、向飞地添加内容的第二指令、初始化飞地的第三指令、扩展存储器权限的第四指令、限制存储器权限的第五指令以及验证权限限制的第六指令。虽然本发明的各实施例可以利用具有任何指令集架构的处理器来实施,该指令集架构不仅限于来自公司的处理器系列的架构,但指令可以是对现有的架构的一组软件保护扩展的一部分,此处该指令可以被分别称为ECREATE指令、EADD指令、EINIT指令、EMODPE指令、EMODPR指令以及EACCEPT指令。对于这些指令的支持可以在使用嵌入在硬件中的电路和/或逻辑、微代码、固件,和/或如下面所描述的或根据任何其他方法配置的其他结构的任何组合的处理器中实现,并在图1中表示为ECREATE硬件110-1、EADD硬件110-2、EINIT硬件110-3、EMODPE硬件110-4、EMODPR硬件110-5以及EACCEPT硬件110-6。
图2示出了处理器200,其实施例可以充当系统100中的处理器110。处理器200可以包括核210、核220以及非核230。核210可以包括存储单元212、指令单元214、执行单元270、存储器管理单元(MMU)216以及控制单元218。核220可以包括存储单元222、指令单元224、执行单元280、MMU 226以及控制单元228。非核230可以包括缓存单元232、接口单元234、处理器预留的存储器范围寄存器250以及存储器访问控制单元260。处理器200还可以包括在图2中未示出的任何其他电路、结构或逻辑。如上面介绍的并且下面进一步描述的,ECREATE硬件110-1、EADD硬件110-2、EINIT硬件110-3、EMODPE硬件110-4、EMODPR硬件110-5以及EACCEPT硬件110-6的功能可以包含在处理器200中任何一个标记的单元中或在别处或在它们之间分布。
存储单元212和222可以分别包括在核210和220内可用于任何用途的任何类型的存储的任何组合;例如,它们可以包括任意数量的可读的,可写的,和/或可读写的寄存器、缓冲器和/或缓存,它们是使用任何存储器或存储技术来实现的,用于存储能力信息、配置信息、控制信息、状态信息、性能信息、指令、数据以及分别在核210和220的操作中可使用的任何其他信息,以及可被用来访问这样的存储的电路。
指令单元214和224可以包括用于获取、接收、解码、解释和/或调度诸如EMODPE、EMODPR以及EACCEPT指令之类的要分别由核210和220执行的指令的任何电路、逻辑、结构和/或其他硬件。在本发明的范围内,可以使用任何指令格式;例如,指令可以包括操作码和一个或多个操作数,其中,操作码可以被解码为用于分别由执行单元270或280执行的一个或多个微指令或微操作。诸如上文引用的那些指令之类的指令可以是诸如有特权的安全飞地操作码(例如,ENCLS)或无特权的安全飞地操作码(例如,ENCLU)之类的单一操作码的叶,其中,叶指令是由处理器寄存器(例如,EAX)中的值所指定的。操作数或其他参数可以隐式地、直接地、间接地或根据任何其他方法与指令相关联。
执行单元270和280可以包括用于处理数据和执行指令,诸如EMODPE、EMODPR,以及EACCEPT指令、微指令和/或微操作的任何电路、逻辑、结构和/或其他硬件,诸如算术单元、逻辑单元、浮点单元、移位器等等。执行单元270和280可以分别包括加密单元272和282,加密单元272和282可以表示使用专用于加密/解密或在执行单元270以及280内或在处理器200中的别处共享以执行其他功能的电路、逻辑、结构和/或其他硬件来执行任何一个或多个加密算法和对应的解密算法的任何电路、逻辑、结构,和/或其他硬件。
MMU 216和226可以包括分别管理核210和220的存储器空间的任何电路、逻辑、结构和/或其他硬件。存储器管理逻辑支持使用虚拟存储器来给软件(包括在VM中运行的宾客软件)提供用于存储和访问大于系统中的物理存储器(例如,系统存储器130)的地址空间的代码和数据的地址空间。核210和220的虚拟存储器空间可以仅仅由对在处理器上运行的软件可用的地址比特的数量来限制,而核210和220的物理存储器空间进一步仅限于系统存储器130的大小。MMU 216和226支持存储器管理方案,诸如,分页,来根据需要使正在执行的软件的代码和数据进出系统存储器130地存储。作为此方案的一部分,软件可以利用未转换的地址来访问处理器的虚拟存储器空间,该未转换的地址由处理器转换为已转换的地址,处理器可以使用该已转换的地址来访问处理器的物理存储器空间。
相应地,MMU 216和226可以分别包括转换后援缓冲器(每一个,TLB)217和227,来根据任何已知存储器管理技术(诸如分页)存储虚拟、逻辑、线性的,或其他未转换的地址到物理或其他转换的地址的转换。为执行这些地址转换,MMU 216和226可以引用存储在处理器200、系统存储器130、系统100中在图1中未示出的任何其他存储位置和/或这些位置的任何组合的一个或多个数据结构。数据结构可以包括根据处理器系列的架构的页面目录和页面表。
控制单元218和228可以包括用于分别控制核210和220的单元及其他元件的操作以及数据在核210和220内以及进出核210和220的传输的任何微代码、固件、电路、逻辑、结构和/或其他硬件。控制单元218和228可以导致核210和220以及处理器200执行或参与执行本发明的各实施例的方法,诸如下面所描述的方法实施例,例如,通过导致核210和220执行由指令单元214和224接收到的指令(诸如EMODPE、EMODPR以及EACCEPT指令)以及从由指令单元214和224接收到的指令导出的微指令或微操作。
缓存单元232可以在以静态随机存取存储器或任何其他存储器技术实现的信息处理系统100的存储器层次结构中以缓存存储器的一个或多个级别包括任意数量的缓存阵列和缓存控制器。缓存单元232可以根据信息处理系统中的任何缓存方法,在处理器200内的任意数量的核和/或逻辑处理器之间被共享。缓存单元232还可以包括用作如下面进一步描述的飞地页面缓存(EPC)240的一个或多个存储器阵列。
接口单元234可以表示使处理器200通过任何类型的总线、点对点、或其他连接,直接或通过任何其他组件(诸如桥接器、中枢,或芯片组)与诸如系统100之类的系统中的其他组件进行通信的任何电路、逻辑、结构和/或其他硬件,诸如链接单元、总线单元或消息传送单元。接口单元234可以包括一个或多个集成的存储器控制器以与诸如系统存储器130之类的系统存储器进行通信,或可以通过处理器200外部的一个或多个存储器控制器与系统存储器进行通信。
处理器预留的存储器范围寄存器(PRMRR)250可以表示存储单元212和222中的任何一个或多个存储位置,在处理器200中别处,和/或非核230中的其副本。以被,例如,可由诸如基本输入/输出系统之类的配置固件使用PRMRR 250来预留存储器的一个或多个在物理上连续的范围,被称为处理器预留的存储器(PRM)。存储器访问控制单元260可以表示处理器200中的任何地方的可以控制对PRM的访问以便可以在被定义为PRM的系统存储器空间内创建EPC 240的任何电路、结构、逻辑和/或其他硬件。
在一个实施例中,PRM的大小是2的整数幂,例如,32MB、64MB或128MB,并被对齐到是该大小的倍数的存储器地址。PRMRR 250可以包括只读PRMMR有效配置寄存器252的一个或多个实例,以指示PRM可以被配置到的有效大小,PRMRR基址寄存器254和PRMRR掩码寄存器256的一个或多个实例,以定义PRM的一个或多个基本地址和范围。
EPC 240是安全储存区,其中,可以保护软件免受在任何特权级别进行操作的恶意软件的攻击。可以创建一个或多个安全飞地,以便每一个飞地都可以包括EPC 240的一个或多个页面或其他区域,其中,以只可以被在该飞地内运行的软件访问的方式存储代码、数据,或其他信息,但根据本发明的各实施例除外。例如,安全飞地可以被软件应用程序使用,以便只有该软件应用程序,当在该飞地内运行时,可以访问该飞地的内容,但根据本发明的各实施例除外。除了根据本发明的各实施例,当内容被加载到EPC中时(假设飞地是生产飞地,而不是,例如,调试飞地),没有其他软件,甚至连操作系统或虚拟机监视器也不可以读取该飞地未加密的内容,修改该飞地的内容,或以别的方式篡改该飞地的内容。然而,飞地的内容可以被在系统100中的任何处理器上从该飞地内执行的软件访问。这种保护是通过根据安全飞地架构来进行操作的存储器访问控制单元260来完成的。
在图2中,在缓存单元232中示出了EPC 240,其中,它可以是共享缓存或专用存储器的分离的一部分。在与处理器200相同的管芯内,EPC240可以实现在静态随机存取存储器、嵌入式动态随机存取存储器或任何其他存储器技术中。EPC 240还可以另外在处理器200外部实现,例如,在系统存储器130的安全区域内。为在安全飞地的内容不存储在管芯上时保护它,加密单元272和/或282可以被用来在内容被传输离开管芯之前加密内容,并解密传输回到管芯上的EPC 240的内容。还可以应用其他保护机制,以防止内容被重播及其他攻击。
图3示出了EPC 300,其一个实施例可以充当图2中的EPC 240。在图3中,EPC 300包括安全飞地控制结构(SECS)310、线程控制结构(TCS)区域320以及数据区域330。虽然图3示出了EPC 300被分成三个单独的区域,但是,EPC 300也可以被分成任意数量的块、区域或页面,其中每一个都可以用于任何类型的内容。在一个实施例中,EPC 300被分成4千字节(KB)页面,并被对齐到是4KB的倍数的系统存储器130中的地址,SECS 310可以是EPC 300中的4KB页面的中任何一个,TCS区域320可以是任意数量的相邻的或非相邻的4KB页面,数据区域330可以是任意数量的毗连的或非毗连的4KB页面。此外,虽然图3示出了对应于一个安全飞地的一个SECS,一个TCS区域以及一个数据区域,但是,EPC可以包括任意数量的SECS和任意数量的TCS和数据区域,只要每一个飞地都具有一个且只有一个SECS,每一个有效的TCS和有效数据区域(例如,页面)都属于一个且只属于一个一个飞地,并且SECS、TCS以及数据页面全部都容纳在EPC内(或可以被页出(paged out)并回到EPC)。
SECS可以通过ECREATE指令的执行来创建,以包含要被硬件使用并且仅仅可被硬件访问的元数据(即,不能被软件读取、写入或以别的方式访问,无论在飞地内运行还是在飞地外面运行),以定义、维护以及保护飞地。一个或多个TCS还可以与安全飞地相关联。TCS包含被硬件用来在进入和退出飞地时保存和恢复线程特定的信息的元数据。
每一个页面的安全属性被存储在称为飞地页面缓存图(EPCM)的微架构数据结构中,该结构被存储器访问控制单元260用来实施由安全飞地架构所提供的保护。EPCM将每一个页面的一个条目存储到EPC中。每一个条目都包括页面所属的SECS(即,飞地)的标识符(例如,64比特字段)。这些标识符可以被安全飞地指令引用(例如,SECS的地址可以被存储在诸如RCX之类的寄存器中,包括SECS的地址的微架构数据结构的地址可以被存储在诸如RBX之类的寄存器中,等等),以使SECS被硬件读取,以便执行指令。
EPCM中的每一个条目还可以包括定义对应的页面的访问权限和/或其他属性的若干个比特或字段。读取比特(R位)可以被设置为指出页面可从飞地内读取。写入比特(W位)可以被设置为指示页面可从飞地内写入。执行比特(X位)可以被设置为指示页面可从飞地内执行。修改的比特(M位)可以被设置为指出页面的访问权限或其他属性已经被修改。封锁-时期(blocked-epoch)字段(BEPOCH)可以被设置为指示对于要从EPC驱逐出的页面要清空的飞地时期。
图4示出了架构400,根据本发明的一个实施例的包括安全处理环境的系统架构。在一个实施例中,系统410包括飞地420和飞地430,其中每一个都是通过调用和执行ECREATE指令来创建的。应用程序422和432可各自表示应用程序软件,或加载到飞地420和430中的指令、代码或软件的任何线程、任务、进程或其他实例;应用程序422和432中的每一个都可以通过一个或多个EADD指令的调用和执行被加载到飞地中。飞地420和430可以通过EINIT指令的调用和执行来初始化。应用程序422和432,例如,通过调用EENTER指令,进入了飞地。因此,应用程序422和432分别可以被描述为在飞地420和430内执行或运行。虽然图4示出了每个飞地一个应用程序,但是,在其他实施例中,单一应用程序可以在一个以上的飞地内运行,和/或一个以上的应用程序可以在单一飞地内运行。
系统410还包括一个或多个操作系统(每一个,OS),虚拟机监视器(每一个,VMM),或其他系统控制或有特权的软件,其中每一个都可以在系统410中在任何一个或多个处理器上,在飞地内或在飞地的外面操作。为了方便起见,任何这样的有特权的软件,不管是否是OS,在本描述中,都被称为OS 412。OS 412(或OS 412的任何线程、任务、进程或其他实例)可以在比应用程序422和432运行所在的处理器特权级别(例如,3级或用户模式)更有特权的处理器特权级别(例如,0级或管理模式)运行。
图4还示出了EPCM 440,用于存储飞地420和420的EPC页面的安全属性,以及EPCM 440的两个代表性的条目450和460。条目450包括定义飞地420的代表性的EPC页面424的读取、写入以及执行访问权限的读取比特452、写入比特454以及执行比特456。条目450还包括修改的比特458,以指示对EPC页面424的权限的修改的状态,以及BEPOCH字段459,以指示对于要从EPC 300驱逐出的页面424要清空的飞地时期(enclaveepoch)。条目460包括定义飞地430的代表性的EPC页面434的读取、写入以及执行访问权限的读取比特462、写入比特464执行比特466。条目460还包括修改的比特468,以指示对EPC页面434的权限的修改的状态,以及BEPOCH字段469,以指示对于要从EPC 300驱逐出的页面434要清空的飞地时期。
本发明的各实施例允许存储器权限扩展指令(例如,EMODPE指令)被飞地中的诸如应用程序422或432之类的应用程序用来扩展其飞地中的或(分配给它的)存储器(例如,页面)的访问权限(即,使其更容易被访问和/或使其在增加数量的条件下被访问),以便扩展的权限立即变得对在飞地内运行的应用程序可用。在一个实施例中,存储器权限扩展指令可以是无特权的安全飞地指令(例如,ENCLU)的叶,以便它可以被在飞地中运行的应用程序在比在飞地的外面运行的OS所在的处理器特权级别(例如,0级)特权较小的处理器特权级别(例如,3级)下调用。下面将在图5的方法500的描述中进一步描述根据本发明的一个实施例的处理器响应于存储器权限扩展指令的操作。
本发明的各实施例还通过调用对诸如OS 412之类的系统软件的系统调用,以执行存储器权限限制指令(例如,EMODPR),允许飞地中的应用程序,诸如应用程序422或432,限制其飞地中的(或分配给它的)存储器(例如,页面)的访问权限(即,使其不太容易被访问和/或使其在减少数量的条件下被访问)。在一个实施例中,存储器权限限制指令可以是有特权的安全飞地指令(例如,ENCLS)的叶,以便它可以被OS、VMM,或在飞地的外面运行的其他系统软件在比在飞地内部应用程序运行所在的处理器特权级别(例如,3级)更有特权的处理器特权级别(例如,0级)调用,但是,它不能被应用程序直接地调用。在EMODPR指令的执行时,受限制的权限立即变得有效,而不需要从调用系统调用的应用程序提供进一步的动作;然而,应用程序可以通过调用EACCEPT指令来验证受限制的权限已经生效,EACCEPT指令可以是ENCLU指令的叶。下面将在图6的方法600的描述中进一步描述根据本发明的一个实施例的处理器响应于存储器权限限制指令的操作。
图5和6示出了根据本发明的一个实施例的分别用于在安全处理环境中扩展和限制存储器权限的方法500和600。虽然本发明的方法实施例在这一方面不受限制,但是,可以参考图1、2、3,以及4的元件来帮助描述图5和6的方法实施例。此外,为了方便起见,可以使用诸如EMODPE、EMODPR以及EACCEPT之类的特定的指令名称来描述和示出方法500和600;然而,本发明的各实施例不仅限于这些专门命名的指令。
在方法500的框510中,在用户模式特权级别,在诸如飞地420之类的飞地中运行的诸如应用程序422之类的应用程序调用EMODPE指令,以扩展权限,根据这些权限,可以访问EPC 240中的诸如页面424之类的页面。访问权限可以包括读取访问、写访问、执行访问和/或指出如何访问页面的任何其他权限指示符。例如,应用程序可以调用EMODPE指令,以便将被指定为只读的页面改变为读写。EMODPE指令可以具有与它相关联的例如,使用线性的或其他地址标识页面的第一操作数,以及标识新的权限的第二操作数。可另选地,页面的身份和/或新的权限或对现有的权限的更改可以根据任何其他方法指示。
在框520,由诸如处理器200之类的处理器开始对EMODPE指令作出响应。响应可以完全由处理器硬件,诸如指令单元214和执行单元270,在诸如控制单元218之类的控制单元的微代码或其他控制逻辑的控制下执行,无需由应用程序422或其他软件调用任何其他指令。在一个实施例中,处理器只有在从用户模式调用的情况下才执行EMODPE指令。
在框522,响应于EMODPE指令,处理器,如EMODPE指令所指定的,改变页面424的EPC访问权限。例如,处理器改变对应于页面的EPCM条目中的一个或多个权限比特或其他指示符(诸如EPCM条目450的R位452、W位454和/或X位456)的内容(例如,从零到1)。此外,处理器还改变页面的访问权限,以便新的权限立即有效,例如,在不设置或改变M位458的情况下。因此,EMODPE指令的执行不同于访问权限修改指令(诸如EMOD)的执行,响应于该EMOD,处理器设置M位458,以便页面在直到应用程序422或其他软件通过调用EACCEPT指令来清除M位458之前不能被访问。EMODPE指令的执行也不同于访问权限限制指令EMODPR的执行,因为BEPOCH字段459不是响应于EMODPE设置的,它是响应于EMODPR设置的,如下面所描述的。
在框524,处理器对EMODPE指令的响应和/或EMODPE指令的执行结束,以便处理器在不使页面不可被应用程序422访问的情况下响应于和/或执行EMODPE指令。
在框530,飞地420中的应用程序422请求OS 412(或诸如VMM之类的其他有特权的软件)更新页面424的权限,以匹配在框522应用的新的权限,例如,通过调用对OS 412(或诸如VMM之类的其他有特权的软件)的系统调用,以改变通过其访问页面424的页面目录、页面表,或其他结构中的条目中的页面424的权限。注意,在OS 412(或诸如VMM之类的其他有特权的软件)更新页面表中的权限之前,应用程序422可以根据旧(限制性更强的)权限来继续访问页面424。在框532中,在管理模式下在飞地420的外面运行的OS 412(或诸如VMM之类的其他有特权的软件)更新页面表中的页面424的权限。
在框534,飞地420中的应用程序422试图根据新的权限,访问页面424。在框536,如果应用程序422用来试图访问页面424的末转换的(例如,线性的)地址存储在TLB 217中,则方法500在框550继续。在框536,如果应用程序422用来试图访问页面424的末转换的(例如,线性的)地址不被存储在TLB 217中,则方法500在框538继续。在框538,飞地420中的应用程序422根据新的权限,成功地访问页面424,而不会导致从飞地420异步退出。
在框550中,访问页面424的尝试导致从飞地420异步退出(AEX)。在框552中,在管理模式下在飞地420的外面运行的OS 412(或诸如VMM之类的其他有特权的软件)更新或清空TLB 217中的对应的条目。在框554中,OS 412(或诸如VMM之类的其他有特权的软件)在飞地420中重新启动应用程序422。在框556中,飞地420中的应用程序422根据新的权限,成功地访问页面424。
转向方法600,在框610中,在用户模式特权级别,在诸如飞地430之类的飞地中运行的诸如应用程序432之类的应用程序调用对诸如OS 412之类的OS(或诸如VMM之类的其他有特权的软件)的系统调用,以请求OS(或诸如VMM之类的其他有特权的软件)限制权限,根据这些权限,可以访问EPC 240中的诸如页面434之类的页面。访问权限可以包括读取访问、写访问、执行访问,和/或指出如何访问页面的任何其他权限指示符。例如,应用程序可以调用系统调用,以便将被指定为读写的页面改变为只读。
在框612,响应于框610的系统调用,在管理模式特权级别,在飞地430外面运行的OS 412(或诸如VMM之类的其他有特权的软件)调用EMODPR指令,以限制访问EPC 240中的页面434的权限。EMODPR指令可以具有与它相关联的例如使用线性的或其他地址标识页面的第一操作数以及标识新的权限的第二操作数。可另选地,页面的身份和/或新的权限或对现有的权限的更改可以根据任何其他方法指出。
在框620,由诸如处理器200之类的处理器开始对EMODPR指令作出响应。响应可以完全由处理器硬件(诸如指令单元214和执行单元270)在诸如控制单元218之类的控制单元的微代码或其他控制逻辑的控制下执行,无需由应用程序432或其他软件调用任何其他指令。在一个实施例中,处理器只有在从管理模式调用的情况下才执行EMODPR指令。
在框622,响应于EMODPR指令,处理器,如EMODPR指令所指定的,改变页面434的EPC访问权限。例如,处理器改变对应于页面的EPCM条目中的一个或多个权限比特或其他指示符(诸如EPCM条目460的R位462、W位464和/或X位466)的内容(例如,从1到0)。此外,处理器还改变页面的访问权限,以便新的权限立即有效,例如,在不设置或改变M位468的情况下。因此,EMODPR指令的执行不同于访问权限修改指令(诸如EMOD)的执行,响应于该EMOD,处理器设置M位468,以便页面在直到应用程序432或其他软件通过调用EACCEPT指令来清除M位468之前不能被访问。
在框624中,响应于EMODPR指令,处理器将BEPOCH字段469设置为当前飞地时期的身份,由此,下面进一步描述的,用于跟踪和清空通过权限限制使其失效的TLB条目。因此,在属于当前飞地时期的TLB条目被清空之后,应用程序432可以安全地进行到关键代码部分。
在框626中,处理器对EMODPR指令的响应和/或EMODPR指令的执行结束,以便处理器在不使页面不可被应用程序432访问的情况下响应于和/或执行EMODPR指令。
在框630中,例如,通过调用ETRACK指令,OS 412(或诸如VMM之类的其他有特权的软件)跟踪带有通过权限限制使其失效的TLB条目的飞地线程。
在框632中,OS 412(或诸如VMM之类的其他有特权的软件)更新页面434的权限,以匹配在框622中应用的新的权限,例如,通过改变页面目录,页面表,或通过其访问页面434的其他结构中的条目中的页面434的权限。注意,在OS 412(或诸如VMM之类的其他有特权的软件)更新页面表中的权限之前,应用程序432可以根据在框522中施加的新的(限制性更强的)权限来继续访问页面434。
在框634中,OS 412(或诸如VMM之类的其他有特权的软件)发送处理器间中断(IPI),以触发飞地线程退出(即,使用页面434的所有线程都退出飞地430)以及TLB否决(shootdown)。在框636,例如,通过调用EEXIT指令,所有这样的线程都退出飞地430,TLB否决清空通过权限限制使其失效的TLB条目。
在框640中,例如,通过调用EACCEPT指令,飞地430中的应用程序432验证已经执行权限限制。然而,注意,框640的动作,包括使用EACCEPT指令,不是应用程序432根据新的权限访问页面434所需的。此外,只有在所有相关线程都退出飞地的情况下,例如,在框636,验证才成功。
在框650,飞地430中的应用程序432试图根据新的权限,访问页面434。在框652,飞地430中的应用程序432根据新的权限,成功地访问页面434,而不会导致从飞地430异步退出。
注意,在EPCM的更新以反映新的权限(例如,方法500的框522或方法600的框622)和页面表的更新以反映新的权限(例如,方法500的框532或方法600的框632)之间的时间段,页面对飞地线程可用,但是,对页面(例如,页面432或页面434)的访问受到限制性更强的EPCM权限和页面表权限的限制。因此,在示出了扩展权限的指令的方法500中,页面在此时间段被飞地线程根据旧权限访问,而在示出了限制权限的指令的方法600中,页面在此时间段被飞地线程根据新的权限访问。
在本发明的各实施例中,图5和6中所示出的方法可以以不同的顺序执行,组合或省略所示出的框,添加额外的框,或重新排序、组合、省略,或额外的框的组合。此外,本发明的方法实施例不仅限于方法500和600或其变化。此处未描述的许多其他方法实施例(以及设备、系统,及其他实施例)在本发明的范围内也是可以的。
如上文所描述的本发明的各实施例或各实施例的某些部分可以存储在任何形式的机器可读取的介质中。例如,方法500和600的全部或一部分可以以存储在可由处理器110读取的介质上的软件或固件指令来实现,这些指令,当由处理器110执行时,导致处理器110执行本发明的实施例。此外,本发明的各方面可以以存储在机器可读取的介质上的数据来实现,其中,数据表示可被用来制造处理器110的全部或一部分的设计或其他信息。
如此,描述了用于在安全处理环境中修改存储器权限的发明的各实施例。尽管在各个附图中描述和示出了某些实施例,但是,可以理解,这样的实施例只是说明性的,而不对本发明形成限制,本发明不仅限于所示出的和所描述的特定结构和布局,因为所属领域的技术人员在研究本发明时可以想到各种其他修改方案。在诸如此技术之类的技术的领域,在增长快速并且不能轻松地预见进一步的进步的情况下,在不偏离本发明的原理或附带权利要求的范围的情况下,所公开的各实施例可以轻松地在布局和细节方面可修改,如通过实现技术进步所促进的。

Claims (20)

1.一种用于修改安全处理环境中的存储器权限的处理器,包括:
接收第一指令的指令单元,其中,所述第一指令修改安全处理环境中对页面的访问权限;以及
执行所述第一指令的执行单元,其中,所述第一指令的执行包括在飞地页面缓存图条目中设置新的访问权限,其中,根据所述新的访问权限,所述页面立即从所述安全处理环境内可访问。
2.如权利要求1所述的处理器,其特征在于,在不在所述飞地页面缓存图条目中设置修改的比特的情况下,执行所述第一指令。
3.如权利要求1所述的处理器,其特征在于,所述第一指令将扩展至少一个访问权限。
4.如权利要求3所述的处理器,其特征在于,所述第一指令从所述安全处理环境内可执行。
5.如权利要求4所述的处理器,其特征在于,所述第一指令只从所述安全处理环境内可执行。
6.如权利要求1所述的处理器,其特征在于,所述第一指令将限制至少一个访问权限。
7.如权利要求6所述的处理器,其特征在于,所述第一指令只在管理模式下可执行。
8.如权利要求6所述的处理器,其特征在于,所述第一指令的执行还包括将飞地时期值存储在所述飞地页面缓存图条目中。
9.一种用于修改安全处理环境中的存储器权限的方法,包括:
发出修改安全处理环境中的页面的访问权限的第一指令;以及
执行所述第一指令,其中,所述第一指令的执行包括在飞地页面缓存图条目中设置新的访问权限,其中,根据所述新的访问权限,所述页面立即从所述安全处理环境内可访问。
10.如权利要求9所述的方法,其特征在于,执行所述第一指令包括在不在所述飞地页面缓存图条目中设置修改的比特的情况下,执行所述第一指令。
11.如权利要求9所述的方法,其特征在于,所述第一指令被执行以扩展至少一个访问权限。
12.如权利要求9所述的方法,其特征在于,进一步包括:
根据所述新的访问权限,由应用程序从所述安全处理环境内访问所述页面,以及
由操作系统从所述安全处理环境外面更新页面表以反映所述新的访问权限。
13.如权利要求9所述的方法,其特征在于,进一步包括:
由应用程序从所述安全处理环境内试图在所述第一指令的执行之后访问所述页面;
由所述处理器确定在转换后援缓冲器中存在所述页面的映射;以及
由所述处理器导致页面错误以及从所述安全处理环境的异步退出。
14.如权利要求13所述的方法,其特征在于,进一步包括:
由操作系统从所述安全处理环境外面处理所述页面错误;以及
由所述操作系统在所述安全处理环境中重新启动所述应用程序。
15.如权利要求9所述的方法,其特征在于,进一步包括,由应用程序从所述安全处理环境内调用所述安全处理环境外面的操作系统,以调用限制至少一个访问权限的所述第一指令。
16.如权利要求15所述的方法,其特征在于,执行所述第一指令还包括将飞地时期值存储在所述飞地页面缓存图条目中。
17.如权利要求16所述的方法,其特征在于,进一步包括,由所述操作系统,跟踪带有由所述新的访问权限使其失效的转换后援缓冲器条目的飞地线程。
18.如权利要求17所述的方法,其特征在于,进一步包括,由所述操作系统,发送处理器间中断以触发飞地线程退出和转换后援缓冲器否决。
19.如权利要求9所述的方法,其特征在于,进一步包括,由所述应用程序从所述安全处理环境内验证,所述新的访问权限已经被设置。
20.一种用于在安全处理环境内修改存储器权限的系统,包括:
存储器;以及
处理器,包括
接收第一指令的指令单元,其中,所述第一指令将修改从所述存储器加载到安全处理环境中的页面的访问权限;以及
执行所述第一指令的执行单元,其中,所述第一指令的执行包括在飞地页面缓存图条目中设置新的访问权限,其中,根据所述新的访问权限,所述页面立即从所述安全处理环境内可访问。
CN201410775886.7A 2013-12-27 2014-12-15 在安全处理环境中修改存储器权限 Expired - Fee Related CN104881596B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/141,941 US9355262B2 (en) 2013-12-27 2013-12-27 Modifying memory permissions in a secure processing environment
US14/141,941 2013-12-27

Publications (2)

Publication Number Publication Date
CN104881596A true CN104881596A (zh) 2015-09-02
CN104881596B CN104881596B (zh) 2019-06-04

Family

ID=51951664

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410775886.7A Expired - Fee Related CN104881596B (zh) 2013-12-27 2014-12-15 在安全处理环境中修改存储器权限

Country Status (4)

Country Link
US (1) US9355262B2 (zh)
EP (1) EP2889777B1 (zh)
CN (1) CN104881596B (zh)
RU (1) RU2602793C2 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108334400A (zh) * 2017-01-18 2018-07-27 英特尔公司 为安全飞地管理存储器
CN109643283A (zh) * 2016-08-31 2019-04-16 英特尔公司 管理飞地存储器页
CN109690546A (zh) * 2016-09-30 2019-04-26 英特尔公司 支持对客户机飞地存储器页的超额订阅
CN111259380A (zh) * 2017-08-22 2020-06-09 海光信息技术有限公司 内存页转移方法和函数调用方法
CN113139175A (zh) * 2020-01-19 2021-07-20 阿里巴巴集团控股有限公司 处理单元、电子设备以及安全控制方法

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9705892B2 (en) * 2014-06-27 2017-07-11 Intel Corporation Trusted time service for offline mode
CN106161384A (zh) * 2015-04-15 2016-11-23 伊姆西公司 用于在移动设备中提供对数据的安全访问的方法和系统
US9875189B2 (en) 2015-06-12 2018-01-23 Intel Corporation Supporting secure memory intent
US9710401B2 (en) 2015-06-26 2017-07-18 Intel Corporation Processors, methods, systems, and instructions to support live migration of protected containers
US10664179B2 (en) 2015-09-25 2020-05-26 Intel Corporation Processors, methods and systems to allow secure communications between protected container memory and input/output devices
US9678687B2 (en) * 2015-09-25 2017-06-13 Mcafee, Inc. User mode heap swapping
CN107203715B (zh) * 2016-03-18 2021-03-19 斑马智行网络(香港)有限公司 执行系统调用的方法及装置
US10511598B2 (en) * 2016-03-29 2019-12-17 Intel Corporation Technologies for dynamic loading of integrity protected modules into secure enclaves
US10824572B2 (en) * 2016-09-09 2020-11-03 Cylance Inc. Memory space protection
US10884952B2 (en) 2016-09-30 2021-01-05 Intel Corporation Enforcing memory operand types using protection keys
US11443033B2 (en) 2017-01-24 2022-09-13 Microsoft Technology Licensing, Llc Abstract enclave identity
US10931652B2 (en) * 2017-01-24 2021-02-23 Microsoft Technology Licensing, Llc Data sealing with a sealing enclave
US10530777B2 (en) * 2017-01-24 2020-01-07 Microsoft Technology Licensing, Llc Data unsealing with a sealing enclave
US10867092B2 (en) * 2017-12-16 2020-12-15 Intel Corporation Avoiding asynchronous enclave exits based on requests to invalidate translation lookaside buffer entries
US10795679B2 (en) * 2018-06-07 2020-10-06 Red Hat, Inc. Memory access instructions that include permission values for additional protection
US11500969B2 (en) 2020-01-03 2022-11-15 Microsoft Technology Licensing, Llc Protecting commercial off-the-shelf program binaries from piracy using hardware enclaves
JP7330157B2 (ja) * 2020-09-18 2023-08-21 株式会社東芝 情報処理装置および更新処理方法
US20220114265A1 (en) * 2020-10-08 2022-04-14 Google Llc Unified viewing of roles and permissions in a computer data processing system

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080016315A1 (en) * 2006-07-12 2008-01-17 Microsoft Corporation Tagged translation lookaside buffers in a hypervisor computing environment
US20110231593A1 (en) * 2010-03-19 2011-09-22 Kabushiki Kaisha Toshiba Virtual address cache memory, processor and multiprocessor
US20120110348A1 (en) * 2010-11-01 2012-05-03 International Business Machines Corporation Secure Page Tables in Multiprocessor Environments
US20120159184A1 (en) * 2010-12-17 2012-06-21 Johnson Simon P Technique for Supporting Multiple Secure Enclaves
CN102804677A (zh) * 2009-06-11 2012-11-28 微软公司 安全网络包围区的发现

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8139593B2 (en) * 2006-03-31 2012-03-20 Qualcomm Incorporated Memory management for high speed media access control
JP4939387B2 (ja) 2007-12-06 2012-05-23 ルネサスエレクトロニクス株式会社 データ処理装置及びアドレス空間保護方法
WO2010057065A2 (en) 2008-11-14 2010-05-20 Intel Corporation Method and apparatus to provide secure application execution
US9405700B2 (en) * 2010-11-04 2016-08-02 Sonics, Inc. Methods and apparatus for virtualization in an integrated circuit
US8832452B2 (en) 2010-12-22 2014-09-09 Intel Corporation System and method for implementing a trusted dynamic launch and trusted platform module (TPM) using secure enclaves

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080016315A1 (en) * 2006-07-12 2008-01-17 Microsoft Corporation Tagged translation lookaside buffers in a hypervisor computing environment
CN102804677A (zh) * 2009-06-11 2012-11-28 微软公司 安全网络包围区的发现
US20110231593A1 (en) * 2010-03-19 2011-09-22 Kabushiki Kaisha Toshiba Virtual address cache memory, processor and multiprocessor
US20120110348A1 (en) * 2010-11-01 2012-05-03 International Business Machines Corporation Secure Page Tables in Multiprocessor Environments
US20120159184A1 (en) * 2010-12-17 2012-06-21 Johnson Simon P Technique for Supporting Multiple Secure Enclaves

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109643283A (zh) * 2016-08-31 2019-04-16 英特尔公司 管理飞地存储器页
CN109643283B (zh) * 2016-08-31 2023-07-11 英特尔公司 用于管理飞地存储器页的设备、方法和装置
CN109690546A (zh) * 2016-09-30 2019-04-26 英特尔公司 支持对客户机飞地存储器页的超额订阅
CN109690546B (zh) * 2016-09-30 2024-04-05 英特尔公司 支持对客户机飞地存储器页的超额订阅
CN108334400A (zh) * 2017-01-18 2018-07-27 英特尔公司 为安全飞地管理存储器
CN108334400B (zh) * 2017-01-18 2024-01-12 英特尔公司 为安全飞地管理存储器
CN111259380A (zh) * 2017-08-22 2020-06-09 海光信息技术有限公司 内存页转移方法和函数调用方法
CN113139175A (zh) * 2020-01-19 2021-07-20 阿里巴巴集团控股有限公司 处理单元、电子设备以及安全控制方法

Also Published As

Publication number Publication date
US9355262B2 (en) 2016-05-31
CN104881596B (zh) 2019-06-04
EP2889777A8 (en) 2016-02-24
RU2014147953A (ru) 2016-06-20
EP2889777B1 (en) 2018-12-26
US20150186659A1 (en) 2015-07-02
EP2889777A3 (en) 2015-08-12
EP2889777A2 (en) 2015-07-01
RU2602793C2 (ru) 2016-11-20

Similar Documents

Publication Publication Date Title
CN104881596A (zh) 在安全处理环境中修改存储器权限
TWI705353B (zh) 用於容許安全通訊之積體電路、方法及製造物件
CN101187902B (zh) 在虚拟机环境中的客户机之间共享信息
JP6584823B2 (ja) メモリ管理装置、プログラム、及び方法
TWI697805B (zh) 載入和虛擬化密碼金鑰
JP5981845B2 (ja) 仮想計算機システム、仮想計算機制御方法、仮想計算機制御プログラム、及び半導体集積回路
US9298894B2 (en) Cache structure for a computer system providing support for secure objects
CN104813295A (zh) 安全区域内的日志记录
CN104798053B (zh) 安全区域内的存储器管理
CN106687938B (zh) 跨电源周期维护安全处理环境的方法及系统
US11847225B2 (en) Blocking access to firmware by units of system on chip
KR101323858B1 (ko) 가상화 시스템에서 메모리 접근을 제어하는 장치 및 방법
CN103383667A (zh) 存储器保护电路、处理单元和存储器保护方法
CN104798054A (zh) 安全区域内的分页
US10049048B1 (en) Method and system for using processor enclaves and cache partitioning to assist a software cryptoprocessor
US11641272B2 (en) Seamless one-way access to protected memory using accessor key identifier
EP3841477B1 (en) An apparatus and method for controlling use of bounded pointers
CN112256396B (zh) 内存管理方法、系统及安全处理装置、数据处理装置
EP4156008A1 (en) Seamless access to trusted domain protected memory by virtual machine manager using transformer key identifier
CN108139909B (zh) 存储器访问指令
EP4202740A1 (en) Process object re-keying during process creation in cryptographic computing
US11573911B2 (en) Memory access control
CN117708832A (zh) 高性能异构可信执行环境实现方法及系统
CN116635855A (zh) 基于执行上下文管理可执行代码对数据内存的访问的装置和方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
EXSB Decision made by sipo to initiate substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20190604

Termination date: 20191215