首页 / 专利库 / 专利权 / 第I章 / 国际申请 / 修改 / 在安全处理环境中修改存储器权限

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

阅读:579发布:2020-05-31

专利汇可以提供在安全处理环境中修改存储器权限专利检索,专利查询,专利分析的服务。并且公开了用于在安全处理环境中 修改 存储器 权限的 发明 的各 实施例 。在一个实施例中,处理器包括指令单元和执行单元。指令单元将接收修改安全飞地中的页面的 访问 权限的指令。执行单元将执行指令。指令的执行包括在飞地页面缓存图条目中设置新的访问权限。此外,根据新的访问权限,页面还立即从安全飞地内可访问。,下面是在安全处理环境中修改存储器权限专利的具体信息内容。

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.一种用于在安全处理环境内修改存储器权限的系统,包括:
存储器;以及
处理器,包括
接收第一指令的指令单元,其中,所述第一指令将修改从所述存储器加载到所述安全处理环境中的页面的访问权限;以及
执行所述第一指令的执行单元,其中,所述第一指令的执行用于包括在不在微架构数据结构的条目中设置修改的比特的情况下在所述条目中设置对所述页面的新的访问权限,其中,所述修改的比特用于指示对所述页面的访问权限的修改的状态,其中,根据所述新的访问权限,
所述页面会立即从所述安全处理环境内可访问。
21.一种机器可读存储介质,所述机器可读存储介质包括代码,所述代码在被执行时使机器执行如权利要求9-19中的任一项所述的方法。
22.一种用于修改安全处理环境中的存储器权限的设备,包括用于执行如权利要求9-
19中的任一项所述的方法的装置。

说明书全文

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

[0001] 背景
[0002] 1.领域
[0003] 本发明涉及信息处理的领域,具体来说,涉及信息处理系统中的安全性领域。
[0004] 2.相关技术的描述
[0005] 机密信息被许多信息处理系统存储、传输以及使用。因此,开发了用于机密信息的安全处理和存储的技术。这些技术包括在信息处理系统内创建和维护安全的、受保护的或隔离的容器、分区或环境的各种方法。附图说明
[0006] 本发明是作为示例说明的,而不仅限于各个附图的图形。
[0007] 图1示出了根据本发明的一个实施例的用于在安全处理环境中修改存储器权限的系统。
[0008] 图2示出了根据本发明的一个实施例的用于在安全处理环境中修改存储器权限的处理器。
[0009] 图3示出了根据本发明的一个实施例的飞地页面缓存。
[0010] 图4示出了根据本发明的一个实施例的包括安全处理环境的系统架构。
[0011] 图5示出了根据本发明的一个实施例的用于在安全处理环境中扩展存储器权限的方法。
[0012] 图6示出了根据本发明的一个实施例的用于在安全处理环境中限制存储器权限的方法。

具体实施方式

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

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈