在安全处理环境中修改存储器权限的制作方法

xiaoxiao2020-10-23  12

在安全处理环境中修改存储器权限的制作方法
【专利说明】在安全处理环境中修改存储器权限
[0001] 背景
[0002] 1.领域
[0003] 本发明设及信息处理的领域,具体来说,设及信息处理系统中的安全性领域。
[0004] 2.相关技术的描述
[0005] 机密信息被许多信息处理系统存储、传输W及使用。因此,开发了用于机密信息的 安全处理和存储的技术。该些技术包括在信息处理系统内创建和维护安全的、受保护的或 隔离的容器、分区或环境的各种方法。
【附图说明】
[0006] 本发明是作为示例说明的,而不仅限于各个附图的图形。
[0007] 图1示出了根据本发明的一个实施例的用于在安全处理环境中修改存储器权限 的系统。
[000引图2示出了根据本发明的一个实施例的用于在安全处理环境中修改存储器权限 的处理器。
[0009] 图3示出了根据本发明的一个实施例的飞地页面缓存。
[0010] 图4示出了根据本发明的一个实施例的包括安全处理环境的系统架构。
[0011] 图5示出了根据本发明的一个实施例的用于在安全处理环境中扩展存储器权限 的方法。
[0012] 图6示出了根据本发明的一个实施例的用于在安全处理环境中限制存储器权限 的方法。
【具体实施方式】
[0013] 描述了用于在安全处理环境中修改存储器权限的发明的各实施例。在此描述中, 可W阐明很多具体细节,诸如组件和系统配置,W提供对本发明的更加全面的理解。然而, 本领域技术人员可W理解,本发明可W在没有该样的具体细节的情况下实施。另外,为避免 不必要地使本发明模糊,没有详细示出某些已知的结构,电路,及其他特征。
[0014] 在下面的描述中,对"一个实施例"、"实施例"、"示例实施例"、"各实施例"等等的 引用表示所描述的本发明的各实施例可包括特定特征、结构或特性,但是,一个W上的实施 例可W并且并非每一个实施例一定包括特定特征、结构或特性。进一步地,一些实施例可W 具有为其他实施例描述的某个,全部特征或没有一个特征。
[0015] 如在权利要求书中所使用的,除非另作说明,否则使用序数词"第一"、"第二"、"第 等等来描述元件,只表示一个元件的特定实例或相似元件的不同的实例正在被引用,而 不打算暗示如此所描述的元件必须按特定顺序,无论是在时间上、在空间上,在排序方面或W任何其他方式。
[0016] 此外,术语"比特"、"标志"、"字段"、"条目V指示符"等等还可W被用来描述寄存 器中的任何类型的存储位置、表、数据库或其他数据结构,无论是W硬件还是软件实现的, 但是,不旨在将本发明的各实施例限制到任何特定类型的存储位置或任何特定存储位置内 的任何特定数量的比特或其他元件。术语"清除"可W被用来指示存储或W别的方式导致 逻辑值零被存储在存储位置,而术语"置位"可W被用来指示存储或W别的方式导致逻辑值 1,所有1,或某种其他指定的值被存储在存储位置;然而,该些术语不旨在将本发明的各实 施例限制到任何特定逻辑约定,因为在本发明的各实施例内可W使用任何逻辑约定。
[0017] 如背景部分所描述,开发了在信息处理系统内创建和维护安全的、受保护的、或隔 离的容器、分区或环境的各种方法。一种该样的方法设及如2012年6月19日提交的标题为 "MethodandApparatustoProvideSecureApplicationExecution"的序号 13/527, 547 的共同待审的美国专利申请所描述的安全飞地,该申请提供了关于安全的、受保护的或隔 离的容器、分区或环境的至少一个实施例的信息。然而,此引用不旨在W任何方式限制本发 明的各实施例的范围,可W使用其他实施例,而仍保持在本发明的精神和范围之内。因此, 用于本发明的任何实施例中的任何安全的、受保护的或隔离的容器、分区,或环境的任何实 例此处可W被称为安全飞地或飞地。
[0018] 本发明的各实施例用于动态地修改访问飞地存储器的权限,而不会在修改过程中 使该存储器对在飞地中运行的应用程序无法访问。飞地使用模式可W包括软件使用权限限 制在飞地内运行,W优化"主要为读取"并行数据结构的性能,期望读取器在整个权限修改 过程中可W访问数据结构。本发明的各实施例可W使此期望在某些条件下被满足,而不要 求从飞地退出W修改权限的导致性能降低的开销。例如,当向页面的写入器必须被暂停时, 关键代码部分可W在垃圾回收过程中将堆页面复制到新的位置,但是,本发明的各实施例 可使读取器安全地继续访问。
[0019] 图1示出了根据本发明的一个实施例的系统100,用于在安全处理环境中修改存 储器权限的信息处理系统。系统100可W表示任何类型的信息处理系统,诸如服务器、台式 计算机、便携式计算机、机顶盒、手持式设备,诸如平板电脑或智能电话或嵌入式控制系统。 系统100包括处理器110、外围控制代理120、系统存储器130W及信息存储设备140。实 现本发明的系统可W包括任意数量的该些组件W及诸如外围设备W及输入/输出设备之 类的任何其他组件或其他元件中的每一个。此或任何系统实施例中的任何或全部组件或其 他元件可W通过任意数量的总线、点对点或其他有线或无线接口或连接来彼此连接、禪合 或W别的方式进行通信,除非W别的方式指定。系统100的任何组件或其他部分,无论在图 1中示出还是在图1中没有示出,都可W集成或W别的方式包括在单一巧片(片上系统或 S0C)、晶片、衬底或封装中。
[0020] 外围控制代理120可W表示外围、输入/输出或其他组件或设备可W通过其连接 或禪合到处理器110的任何组件,诸如巧片组组件。系统存储器130可W是动态随机存取 存储器或任何其他类型的可由处理器110读取的介质。信息存储设备140可W包括任何类 型的持久性或非易失性存储器或存储,诸如闪存和/或固态、磁性或光盘驱动器。
[0021] 处理器110可W表示集成在单一衬底上或封装在单一封装内的一个或多个处理 器,其中每一个处理器都可任何组合包括多个线程和/或多个执行核。表示为处理器 110的每一个处理器都可W是任何类型的处理器,包括通用微处理器,诸如Intel.底Core處 处理器系列、Intel坂A化m愈处理器系列,或来自Intel⑥Co巧oration的其他处理器系列 的处理器,或来自另一公司的另一处理器,或专用处理器或微控制器。
[0022] 处理器110可W根据指令集架构进行操作,该指令集架构包括创建安全飞地的第 一指令、向飞地添加内容的第二指令、初始化飞地的第=指令、扩展存储器权限的第四指 令、限制存储器权限的第五指令W及验证权限限制的第六指令。虽然本发明的各实施例可 W利用具有任何指令集架构的处理器来实施,该指令集架构不仅限于来自iMel瑕公司的 处理器系列的架构,但指令可W是对现有的架构的一组软件保护扩展的一部分,此处该指 令可W被分别称为ECREATE指令、EA孤指令、EINIT指令、EM孤PE指令、EM孤PR指令W及 EACCEPT指令。对于该些指令的支持可W在使用嵌入在硬件中的电路和/或逻辑、微代码、 固件,和/或如下面所描述的或根据任何其他方法配置的其他结构的任何组合的处理器中 实现,并在图1中表示为ECREATE硬件110-1、EA孤硬件110-2、EINIT硬件110-3、EM孤阳 硬件110-4、6]?孤?1?硬件110-5^及64〇:6?1'硬件110-6。
[0023] 图2示出了处理器200,其实施例可W充当系统100中的处理器110。处理器200 可W包括核210、核220W及非核230。核210可W包括存储单元212、指令单元214、执行 单元270、存储器管理单元(MMU) 216W及控制单元218。核220可W包括存储单元222、指 令单元224、执行单元280、MMU226W及控制单元228。非核230可W包括缓存单元232、 接口单元234、处理器预留的存储器范围寄存器250W及存储器访问控制单元260。处理器 200还可W包括在图2中未示出的任何其他电路、结构或逻辑。如上面介绍的并且下面进 一步描述的,ECREATE硬件110-UEA孤硬件110-2、EIN口硬件110-3、EM孤阳硬件110-4、 EM孤PR硬件110-5W及EACCEPT硬件110-6的功能可W包含在处理器200中任何一个标记 的单元中或在别处或在它们之间分布。
[0024] 存储单元212和222可W分别包括在核210和220内可用于任何用途的任何类型 的存储的任何组合;例如,它们可W包括任意数量的可读的,可写的,和/或可读写的寄存 器、缓冲器和/或缓存,它们是使用任何存储器或存储技术来实现的,用于存储能力信息、 配置信息、控制信息、状态信息、性能信息、指令、数据W及分别在核210和220的操作中可 使用的任何其他信息,W及可被用来访问该样的存储的电路。
[0025] 指令单元214和224可W包括用于获取、接收、解码、解释和/或调度诸如EM孤PE、 EMODPRW及EACCEPT指令之类的要分别由核210和220执行的指令的任何电路、逻辑、结构 和/或其他硬件。在本发明的范围内,可W使用任何指令格式;例如,指令可W包括操作码 和一个或多个操作数,其中,操作码可W被解码为用于分别由执行单元270或280执行的一 个或多个微指令或微操作。诸如上文引用的那些指令之类的指令可W是诸如有特权的安全 飞地操作码(例如,ENCL巧或无特权的安全飞地操作码(例如,ENCLU)之类的单一操作码 的叶,其中,叶指令是由处理器寄存器(例如,EA幻中的值所指定的。操作数或其他参数可 W隐式地、直接地、间接地或根据任何其他方法与指令相关联。
[0026] 执行单元270和280可W包括用于处理数据和执行指令,诸如EM孤阳、EM孤PR,W 及EACCEPT指令、微指令和/或微操作的任何电路、逻辑、结构和/或其他硬件,诸如算术单 元、逻辑单元、浮点单元、移位器等等。执行单元270和280可W分别包括加密单元272和 282,加密单元272和282可W表示使用专用于加密/解密或在执行单元270W及280内或 在处理器200中的别处共享W执行其他功能的电路、逻辑、结构和/或其他硬件来执行任何 一个或多个加密算法和对应的解密算法的任何电路、逻辑、结构,和/或其他硬件。
[0027]MMU216和226可W包括分别管理核210和220的存储器空间的任何电路、逻辑、 结构和/或其他硬件。存储器管理逻辑支持使用虚拟存储器来给软件(包括在VM中运行 的宾客软件)提供用于存储和访问大于系统中的物理存储器(例如,系统存储器130)的地 址空间的代码和数据的地址空间。核210和220的虚拟存储器空间可W仅仅由对在处理器 上运行的软件可用的地址比特的数量来限制,而核210和220的物理存储器空间进一步仅 限于系统存储器130的大小。MMU216和226支持存储器管理方案,诸如,分页,来根据需要 使正在执行的软件的代码和数据进出系统存储器130地存储。作为此方案的一部分,软件 可W利用未转换的地址来访问处理器的虚拟存储器空间,该未转换的地址由处理器转换为 已转换的地址,处理器可W使用该已转换的地址来访问处理器的物理存储器空间。
[002引相应地,MMU216和226可W分别包括转换后援缓冲器(每一个,TLB) 217和227, 来根据任何已知存储器管理技术(诸如分页)存储虚拟、逻辑、线性的,或其他未转换的地 址到物理或其他转换的地址的转换。为执行该些地址转换,MMU216和226可W引用存储 在处理器200、系统存储器130、系统100中在图1中未示出的任何其他存储位置和/或该 些位置的任何组合的一个或多个数据结构。数据结构可W包括根据Pentium液处理器系列 的架构的页面目录和页面表。
[0029] 控制单元218和228可W包括用于分别控制核210和220的单元及其他元件的操 作W及数据在核210和220内W及进出核210和220的传输的任何微代码、固件、电路、逻 辑、结构和/或其他硬件。控制单元218和228可W导致核210和220W及处理器200执 行或参与执行本发明的各实施例的方法,诸如下面所描述的方法实施例,例如,通过导致核 210和220执行由指令单元214和224接收到的指令(诸如EM孤阳、EMODPRW及EACCEPT 指令)W及从由指令单元214和224接收到的指令导出的微指令或微操作。
[0030] 缓存单元232可W在W静态随机存取存储器或任何其他存储器技术实现的信息 处理系统100的存储器层次结构中W缓存存储器的一个或多个级别包括任意数量的缓存 阵列和缓存控制器。缓存单元232可W根据信息处理系统中的任何缓存方法,在处理器200 内的任意数量的核和/或逻辑处理器之间被共享。缓存单元232还可W包括用作如下面进 一步描述的飞地页面缓存巧PC) 240的一个或多个存储器阵列。
[0031] 接口单元234可W表示使处理器200通过任何类型的总线、点对点、或其他连接, 直接或通过任何其他组件(诸如桥接器、中枢,或巧片组)与诸如系统100之类的系统中的 其他组件进行通信的任何电路、逻辑、结构和/或其他硬件,诸如链接单元、总线单元或消 息传送单元。接口单元234可W包括一个或多个集成的存储器控制器W与诸如系统存储器 130之类的系统存储器进行通信,或可W通过处理器200外部的一个或多个存储器控制器 与系统存储器进行通信。
[0032] 处理器预留的存储器范围寄存器(PRMRR) 250可W表示存储单元212和222中的 任何一个或多个存储位置,在处理器200中别处,和/或非核230中的其副本。W被,例如, 可由诸如基本输入/输出系统之类的配置固件使用PRMRR250来预留存储器的一个或多个 在物理上连续的范围,被称为处理器预留的存储器(PRM)。存储器访问控制单元260可W表 示处理器200中的任何地方的可W控制对PM的访问W便可W在被定义为PM的系统存储 器空间内创建EPC240的任何电路、结构、逻辑和/或其他硬件。
[003引在一个实施例中,PRM的大小是2的整数幕,例如,32MB、64MB或128MB,并被对齐 到是该大小的倍数的存储器地址。PRMRR250可W包括只读PRMMR有效配置寄存器252的 一个或多个实例,W指示PRM可W被配置到的有效大小,PRMRR基址寄存器254和PRMRR掩 码寄存器256的一个或多个实例,W定义PM的一个或多个基本地址和范围。
[0034] EPC240是安全储存区,其中,可W保护软件免受在任何特权级别进行操作的恶意 软件的攻击。可W创建一个或多个安全飞地,W便每一个飞地都可W包括EPC240的一个 或多个页面或其他区域,其中,W只可W被在该飞地内运行的软件访问的方式存储代码、数 据,或其他信息,但根据本发明的各实施例除外。例如,安全飞地可W被软件应用程序使用, W便只有该软件应用程序,当在该飞地内运行时,可W访问该飞地的内容,但根据本发明的 各实施例除外。除了根据本发明的各实施例,当内容被加载到EPC中时(假设飞地是生产 飞地,而不是,例如,调试飞地),没有其他软件,甚至连操作系统或虚拟机监视器也不可W 读取该飞地未加密的内容,修改该飞地的内容,或W别的方式篡改该飞地的内容。然而,飞 地的内容可W被在系统100中的任何处理器上从该飞地内执行的软件访问。该种保护是通 过根据安全飞地架构来进行操作的存储器访问控制单元260来完成的。
[0035] 在图2中,在缓存单元232中示出了EPC240,其中,它可W是共享缓存或专用存储 器的分离的一部分。在与处理器200相同的管巧内,EPC240可W实现在静态随机存取存储 器、嵌入式动态随机存取存储器或任何其他存储器技术中。EPC240还可W另外在处理器 200外部实现,例如,在系统存储器130的安全区域内。为在安全飞地的内容不存储在管巧 上时保护它,加密单元272和/或282可W被用来在内容被传输离开管巧之前加密内容,并 解密传输回到管巧上的EPC240的内容。还可W应用其他保护机制,W防止内容被重播及 其他攻击。
[0036] 图3示出了EPC300,其一个实施例可W充当图2中的EPC240。在图3中,EPC 300包括安全飞地控制结构(SEC巧310、线程控制结构(TCS)区域320W及数据区域330。 虽然图3示出了EPC300被分成S个单独的区域,但是,EPC300也可W被分成任意数量的 块、区域或页面,其中每一个都可W用于任何类型的内容。在一个实施例中,EPC300被分 成4千字节(邸)页面,并被对齐到是4邸的倍数的系统存储器130中的地址,SECS310可 W是EPC300中的4KB页面的中任何一个,TCS区域320可W是任意数量的相邻的或非相邻 的4KB页面,数据区域330可W是任意数量的邮连的或非邮连的4KB页面。此外,虽然图3 示出了对应于一个安全飞地的一个SECS,一个TCS区域W及一个数据区域,但是,EPC可W 包括任意数量的SECS和任意数量的TCS和数据区域,只要每一个飞地都具有一个且只有一 个SECS,每一个有效的TCS和有效数据区域(例如,页面)都属于一个且只属于一个一个飞 地,并且SECS、TCSW及数据页面全部都容纳在EPC内(或可W被页出(pagedout)并回到 EPC)。
[0037] SECS可W通过ECREATE指令的执行来创建,W包含要被硬件使用并且仅仅可被硬 件访问的元数据(即,不能被软件读取、写入或W别的方式访问,无论在飞地内运行还是在 飞地外面运行),W定义、维护W及保护飞地。一个或多个TCS还可W与安全飞地相关联。 TCS包含被硬件用来在进入和退出飞地时保存和恢复线程特定的信息的元数据。
[003引每一个页面的安全属性被存储在称为飞地页面缓存图巧PCM)的微架构数据结构 中,该结构被存储器访问控制单元260用来实施由安全飞地架构所提供的保护。EPCM将每 一个页面的一个条目存储到EPC中。每一个条目都包括页面所属的SECS(即,飞地)的标 识符(例如,64比特字段)。该些标识符可W被安全飞地指令引用(例如,SECS的地址可 W被存储在诸如RCX之类的寄存器中,包括SECS的地址的微架构数据结构的地址可W被存 储在诸如RBX之类的寄存器中,等等),W使SECS被硬件读取,W便执行指令。
[0039] EPCM中的每一个条目还可W包括定义对应的页面的访问权限和/或其他属性的 若干个比特或字段。读取比特化位)可W被设置为指出页面可从飞地内读取。写入比特 (W位)可W被设置为指示页面可从飞地内写入。执行比特狂位)可W被设置为指示页面 可从飞地内执行。修改的比特(M位)可W被设置为指出页面的访问权限或其他属性已经 被修改。封锁-时期化locked-epoch)字段炬EPOCH)可W被设置为指示对于要从EPC驱 逐出的页面要清空的飞地时期。
[0040] 图4示出了架构400,根据本发明的一个实施例的包括安全处理环境的系统架 构。在一个实施例中,系统410包括飞地420和飞地430,其中每一个都是通过调用和执行 ECREATE指令来创建的。应用程序422和432可各自表示应用程序软件,或加载到飞地420 和430中的指令、代码或软件的任何线程、任务、进程或其他实例;应用程序422和432中的 每一个都可W通过一个或多个EADD指令的调用和执行被加载到飞地中。飞地420和430 可W通过EINIT指令的调用和执行来初始化。应用程序422和432,例如,通过调用邸NT邸 指令 ,进入了飞地。因此,应用程序422和432分别可W被描述为在飞地420和430内执行 或运行。虽然图4示出了每个飞地一个应用程序,但是,在其他实施例中,单一应用程序可 W在一个W上的飞地内运行,和/或一个W上的应用程序可W在单一飞地内运行。
[0041] 系统410还包括一个或多个操作系统(每一个,0S),虚拟机监视器(每一个, VMM),或其他系统控制或有特权的软件,其中每一个都可W在系统410中在任何一个或多 个处理器上,在飞地内或在飞地的外面操作。为了方便起见,任何该样的有特权的软件,不 管是否是0S,在本描述中,都被称为0S412。0S412(或0S412的任何线程、任务、进程或 其他实例)可W在比应用程序422和432运行所在的处理器特权级别(例如,3级或用户模 式)更有特权的处理器特权级别(例如,0级或管理模式)运行。
[00创图4还示出了EPCM440,用于存储飞地420和420的EPC页面的安全属性,W及 EPCM440的两个代表性的条目450和460。条目450包括定义飞地420的代表性的EPC页 面424的读取、写入W及执行访问权限的读取比特452、写入比特454W及执行比特456。 条目450还包括修改的比特458,W指示对EPC页面424的权限的修改的状态,W及邸P0CH 字段459,W指示对于要从EPC300驱逐出的页面424要清空的飞地时期(enclave巧och)。 条目460包括定义飞地430的代表性的EPC页面434的读取、写入W及执行访问权限的读 取比特462、写入比特464执行比特466。条目460还包括修改的比特468,W指示对EPC页 面434的权限的修改的状态,W及BEP0CH字段469,W指示对于要从EPC300驱逐出的页面 434要清空的飞地时期。
[0043] 本发明的各实施例允许存储器权限扩展指令(例如,EM0DPE指令)被飞地中的诸 如应用程序422或432之类的应用程序用来扩展其飞地中的或(分配给它的)存储器(例 如,页面)的访问权限(即,使其更容易被访问和/或使其在增加数量的条件下被访问),W 便扩展的权限立即变得对在飞地内运行的应用程序可用。在一个实施例中,存储器权限扩 展指令可W是无特权的安全飞地指令(例如,ENCLU)的叶,W便它可W被在飞地中运行的 应用程序在比在飞地的外面运行的0S所在的处理器特权级别(例如,0级)特权较小的处 理器特权级别(例如,3级)下调用。下面将在图5的方法500的描述中进一步描述根据本 发明的一个实施例的处理器响应于存储器权限扩展指令的操作。
[0044] 本发明的各实施例还通过调用对诸如OS412之类的系统软件的系统调用,W执 行存储器权限限制指令(例如,EMODPR),允许飞地中的应用程序,诸如应用程序422或432, 限制其飞地中的(或分配给它的)存储器(例如,页面)的访问权限(即,使其不太容易 被访问和/或使其在减少数量的条件下被访问)。在一个实施例中,存储器权限限制指令 可W是有特权的安全飞地指令(例如,ENCLS)的叶,W便它可W被〇S、VMM,或在飞地的外 面运行的其他系统软件在比在飞地内部应用程序运行所在的处理器特权级别(例如,3级) 更有特权的处理器特权级别(例如,0级)调用,但是,它不能被应用程序直接地调用。在 EMODPR指令的执行时,受限制的权限立即变得有效,而不需要从调用系统调用的应用程序 提供进一步的动作;然而,应用程序可W通过调用EACCEPT指令来验证受限制的权限已经 生效,EACCEPT指令可W是ENCLU指令的叶。下面将在图6的方法600的描述中进一步描 述根据本发明的一个实施例的处理器响应于存储器权限限制指令的操作。
[0045] 图5和6示出了根据本发明的一个实施例的分别用于在安全处理环境中扩展和限 制存储器权限的方法500和600。虽然本发明的方法实施例在该一方面不受限制,但是,可 W参考图1、2、3,W及4的元件来帮助描述图5和6的方法实施例。此外,为了方便起见, 可W使用诸如EM孤PE、EM孤PRW及EACCEPT之类的特定的指令名称来描述和示出方法500 和600 ;然而,本发明的各实施例不仅限于该些专口命名的指令。
[0046] 在方法500的框510中,在用户模式特权级别,在诸如飞地420之类的飞地中运行 的诸如应用程序422之类的应用程序调用EMODPE指令,W扩展权限,根据该些权限,可W访 问EPC240中的诸如页面424之类的页面。访问权限可W包括读取访问、写访问、执行访问 和/或指出如何访问页面的任何其他权限指示符。例如,应用程序可W调用EMODPE指令, W便将被指定为只读的页面改变为读写。EMODPE指令可W具有与它相关联的例如,使用线 性的或其他地址标识页面的第一操作数,W及标识新的权限的第二操作数。可另选地,页面 的身份和/或新的权限或对现有的权限的更改可W根据任何其他方法指示。
[0047] 在框520,由诸如处理器200之类的处理器开始对EM孤阳指令作出响应。响应可 W完全由处理器硬件,诸如指令单元214和执行单元270,在诸如控制单元218之类的控制 单元的微代码或其他控制逻辑的控制下执行,无需由应用程序422或其他软件调用任何其 他指令。在一个实施例中,处理器只有在从用户模式调用的情况下才执行EMODPE指令。
[0048] 在框522,响应于EM孤阳指令,处理器,如EM孤阳指令所指定的,改变页面424的 EPC访问权限。例如,处理器改变对应于页面的EPCM条目中的一个或多个权限比特或其他 指示符(诸如EPCM条目450的R位452、W位454和/或X位456)的内容(例如,从零到 1)。此外,处理器还改变页面的访问权限,W便新的权限立即有效,例如,在不设置或改变M位458的情况下。因此,EMODPE指令的执行不同于访问权限修改指令(诸如EMOD)的执行, 响应于该EM0D,处理器设置M位458,W便页面在直到应用程序422或其他软件通过调用 EACCEPT指令来清除M位458之前不能被访问。EM孤PE指令的执行也不同于访问权限限制 指令EM孤PR的执行,因为邸P0CH字段459不是响应于EM孤阳设置的,它是响应于EM孤PR 设置的,如下面所描述的。
[0049] 在框524,处理器对EM孤阳指令的响应和/或EM孤阳指令的执行结束,W便处理 器在不使页面不可被应用程序422访问的情况下响应于和/或执行EMODPE指令。
[0化0] 在框530,飞地420中的应用程序422请求OS412 (或诸如VMM之类的其他有特 权的软件)更新页面424的权限,W匹配在框522应用的新的权限,例如,通过调用对0S 412 (或诸如VMM之类的其他有特权的软件)的系统调用,W改变通过其访问页面424的页 面目录、页面表,或其他结构中的条目中的页面424的权限。注意,在0S412 (或诸如VMM之 类的其他有特权的软件)更新页面表中的权限之前,应用程序422可W根据旧(限制性更 强的)权限来继续访问页面424。在框532中,在管理模式下在飞地420的外面运行的0S 412 (或诸如VMM之类的其他有特权的软件)更新页面表中的页面424的权限。
[0化1] 在框534,飞地420中的应用程序422试图根据新的权限,访问页面424。在框536, 如果应用程序422用来试图访问页面424的末转换的(例如,线性的)地址存储在TLB217 中,则方法500在框550继续。在框536,如果应用程序422用来试图访问页面424的末转 换的(例如,线性的)地址不被存储在TLB217中,则方法500在框538继续。在框538,飞 地420中的应用程序422根据新的权限,成功地访问页面424,而不会导致从飞地420异步 退出。
[0化2] 在框550中,访问页面424的尝试导致从飞地420异步退出(AE幻。在框552中, 在管理模式下在飞地420的外面运行的0S412 (或诸如VMM之类的其他有特权的软件)更 新或清空TLB217中的对应的条目。在框554中,0S412 (或诸如VMM之类的其他有特权 的软件)在飞地420中重新启动应用程序422。在框556中,飞地420中的应用程序422根 据新的权限,成功地访问页面424。
[0化3]转向方法600,在框610中,在用户模式特权级别,在诸如飞地430之类的飞地中运 行的诸如应用程序432之类的应用程序调用对诸如0S412之类的0S(或诸如VMM之类的 其他有特权的软件)的系统调用,W请求〇S(或诸如VMM之类的其他有特权的软件)限制 权限,根据该些权限,可W访问EPC240中的诸如页面434之类的页面。访问权限可W包括 读取访问、写访问、执行访问,和/或指出如何访问页面的任何其他权限指示符。例如,应用 程序可W调用系统调用,W便将被指定为读写的页面改变为只读。
[0化4] 在框612,响应于框610的系统调用,在管理模式特权级别,在飞地430外面运行的 0S412 (或诸如VMM之类的其他有特权的软件)调用EM0DPR指令,W限制访问EPC240中 的页面434的权限。EM0DPR指令可W具有与它相关联的例如使用线性的或其他地址标识页 面的第一操作数W及标识新的权限的第二操作数。可另选地,页面的身份和/或新的权限 或对现有的权限的更改可W根据任何其他方法指出。
[0化5] 在框620,由诸如处理器200之类的处理器开始对EM孤PR指令作出响应。响应可 W完全由处理器硬件(诸如指令单元214和执行单元270)在诸如控制单元218之类的控 制单元的微代码或其他控制逻辑的控制下执行,无需由应用程序432或其他软件调用任何 其他指令。在一个实施例中,处理器只有在从管理模式调用的情况下才执行EM0DPR指令。 [0化6] 在框622,响应于EM孤PR指令,处 理器,如EM孤PR指令所指定的,改变页面434的 EPC访问权限。例如,处理器改变对应于页面的EPCM条目中的一个或多个权限比特或其他 指示符(诸如EPCM条目460的R位462、W位464和/或X位466)的内容(例如,从1到 0)。此外,处理器还改变页面的访问权限,W便新的权限立即有效,例如,在不设置或改变 M位468的情况下。因此,EM0DPR指令的执行不同于访问权限修改指令(诸如EM0D)的执 行,响应于该EM0D,处理器设置M位468,W便页面在直到应用程序432或其他软件通过调 用EACCEPT指令来清除M位468之前不能被访问。
[0化7] 在框624中,响应于EM孤PR指令,处理器将邸POCH字段469设置为当前飞地时期 的身份,由此,下面进一步描述的,用于跟踪和清空通过权限限制使其失效的TLB条目。因 此,在属于当前飞地时期的TLB条目被清空之后,应用程序432可W安全地进行到关键代码 部分。
[0化8] 在框626中,处理器对EM孤PR指令的响应和/或EM孤PR指令的执行结束,W便处 理器在不使页面不可被应用程序432访问的情况下响应于和/或执行EMODPR指令。
[0059] 在框630中,例如,通过调用ETRACK指令,OS412 (或诸如VMM之类的其他有特权 的软件)跟踪带有通过权限限制使其失效的TLB条目的飞地线程。
[0060] 在框632中,OS412 (或诸如VMM之类的其他有特权的软件)更新页面434的权 限,W匹配在框622中应用的新的权限,例如,通过改变页面目录,页面表,或通过其访问页 面434的其他结构中的条目中的页面434的权限。注意,在OS412(或诸如VMM之类的其 他有特权的软件)更新页面表中的权限之前,应用程序432可W根据在框522中施加的新 的(限制性更强的)权限来继续访问页面434。
[0061] 在框634中,OS412(或诸如VMM之类的其他有特权的软件)发送处理器间中断 (IPI),W触发飞地线程退出(即,使用页面434的所有线程都退出飞地430)W及TLB否决 (shootdown)。在框636,例如,通过调用邸XIT指令,所有该样的线程都退出飞地430,TLB 否决清空通过权限限制使其失效的TLB条目。
[006引 在框640中,例如,通过调用EACCEPT指令,飞地430中的应用程序432验证已经 执行权限限制。然而,注意,框640的动作,包括使用EACCEPT指令,不是应用程序432根据 新的权限访问页面434所需的。此外,只有在所有相关线程都退出飞地的情况下,例如,在 框636,验证才成功。
[0063] 在框650,飞地430中的应用程序432试图根据新的权限,访问页面434。在框652, 飞地430中的应用程序432根据新的权限,成功地访问页面434,而不会导致从飞地430异 步退出。
[0064] 注意,在EPCM的更新W反映新的权限(例如,方法500的框522或方法600的框 622)和页面表的更新W反映新的权限(例如,方法500的框532或方法600的框632)之间 的时间段,页面对飞地线程可用,但是,对页面(例如,页面432或页面434)的访问受到限 制性更强的EPCM权限和页面表权限的限制。因此,在示出了扩展权限的指令的方法500中, 页面在此时间段被飞地线程根据旧权限访问,而在示出了限制权限的指令的方法600中, 页面在此时间段被飞地线程根据新的权限访问。
[0065] 在本发明的各实施例中,图5和6中所示出的方法可不同的顺序执行,组合或 省略所示出的框,添加额外的框,或重新排序、组合、省略,或额外的框的组合。此外,本发明 的方法实施例不仅限于方法500和600或其变化。此处未描述的许多其他方法实施例 及设备、系统,及其他实施例)在本发明的范围内也是可W的。
[0066] 如上文所描述的本发明的各实施例或各实施例的某些部分可W存储在任何形式 的机器可读取的介质中。例如,方法500和600的全部或一部分可存储在可由处理器 110读取的介质上的软件或固件指令来实现,该些指令,当由处理器110执行时,导致处理 器110执行本发明的实施例。此外,本发明的各方面可存储在机器可读取的介质上的 数据来实现,其中,数据表示可被用来制造处理器110的全部或一部分的设计或其他信息。
[0067] 如此,描述了用于在安全处理环境中修改存储器权限的发明的各实施例。尽管在 各个附图中描述和示出了某些实施例,但是,可W理解,该样的实施例只是说明性的,而不 对本发明形成限制,本发明不仅限于所示出的和所描述的特定结构和布局,因为所属领域 的技术人员在研究本发明时可W想到各种其他修改方案。在诸如此技术之类的技术的领 域,在增长快速并且不能轻松地预见进一步的进步的情况下,在不偏离本发明的原理或附 带权利要求的范围的情况下,所公开的各实施例可W轻松地在布局和细节方面可修改,如 通过实现技术进步所促进的。
【主权项】
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. -种用于在安全处理环境内修改存储器权限的系统,包括: 存储器;以及 处理器,包括 接收第一指令的指令单元,其中,所述第一指令将修改从所述存储器加载到安全处理 环境中的页面的访问权限;以及 执行所述第一指令的执行单元,其中,所述第一指令的执行包括在飞地页面缓存图条 目中设置新的访问权限,其中,根据所述新的访问权限,所述页面立即从所述安全处理环境 内可访问。
【专利摘要】公开了用于在安全处理环境中修改存储器权限的发明的各实施例。在一个实施例中,处理器包括指令单元和执行单元。指令单元将接收修改安全飞地中的页面的访问权限的指令。执行单元将执行指令。指令的执行包括在飞地页面缓存图条目中设置新的访问权限。此外,根据新的访问权限,页面还立即从安全飞地内可访问。
【IPC分类】G06F21/45, G06F21/53
【公开号】CN104881596
【申请号】CN201410775886
【发明人】R·勒斯列-赫德, I·埃里克山德洛维奇, I·安奈蒂, A·贝伦宗, M·戈德史密斯, S·约翰逊, F·麦克金, C·罗扎斯, U·萨瓦高恩卡, V·斯卡拉塔, V·尚伯格, W·史密斯
【申请人】英特尔公司
【公开日】2015年9月2日
【申请日】2014年12月15日
【公告号】EP2889777A2, EP2889777A3, US20150186659
转载请注明原文地址:https://www.famiwei.com/read-8138480.html

最新回复(0)