安全存储器重新分区的制作方法

文档序号:9713585阅读:265来源:国知局
安全存储器重新分区的制作方法
【技术领域】
[0001]本公开涉及计算机系统,更具体地说,涉及存储在计算机系统的存储器中的数据的保护。
【背景技术】
[0002]现代处理器设计成保护存储器中的敏感数据免于硬件和软件攻击。一些处理器提供了用于加密、完整性和重放保护的密码机制。存储器加密保护了存储器驻留的数据的保密性。另一方面,完整性保护防止了攻击者引起对存储器中密文(即,加密数据,与是未加密数据的明文相对)的任何隐藏的修改,并且回放保护消除了密文的任何未检测到的时间上替换。在缺乏此类保护的情况下,对系统进行物理访问的攻击者可记录数据线的快照,并在以后时间点重放。
【附图说明】
[0003]图1是图示根据一个实施例实现用于实现安全存储器的存储器加密引擎(MEE)的计算系统的框图。
[0004]图2图示了根据一个实施例包含多个存储器范围的灵活保护范围200的概念层。
[0005]图3图示了根据一个实施例的灵活保护范围内的存储器的可转换区和存储器的不可转换区。
[0006]图4A是图示根据一个实施例的灵活保护范围的可转换页的状态转变的状态图。
[0007]图4B是图示根据一个实施例的灵活保护范围的可转换区的状态转变的状态图。
[0008]图5A是根据一个实施例的可转换页的安全存储器重新分区的方法的流程图。
[0009]图5B是根据一个实施例的可转换区的安全存储器重新分区的方法的流程图。
[0010]图6A是图示根据一个实施例的有序流水线和寄存器重命名阶段、无序发出/执行流水线的框图。
[0011]图6B图示了根据一个实施例实现安全存储器重新分区的处理器的微架构的框图。
[0012]图7图示了根据一个实施例的处理器的微架构的框图,其包含执行安全存储器重新分区的逻辑电路。
[0013]图8是根据一个实现的计算机系统的框图。
[0014]图9是根据另一实现的计算机系统的框图。图10是根据一个实现的片上系统的框图。
[0015]图11图示了计算系统的框图的另一实现。
[0016]图12图示了计算系统的框图的另一实现。
【具体实施方式】
[0017]描述了安全存储器重新分区技术。处理器包含处理器核以及耦合在处理器核与主存储器之间的存储器控制器。存储器范围包括可被转换成安全页或不安全页的可转换页的多个区。处理器上的软件执行可标识要转换的主存储器中的页,并且可使用页转换指令来转换该页。处理器核响应于页转换指令而根据该指令确定要转换的存储器范围内的可转换页,并将可转换页转换成安全页或不安全页。标识可被转换的页是系统软件(例如OS或VMM)的责任。例如,如果OS需要不安全页,则它标识安全页(如果不安全页不可用的话),并在此安全页上执行页转换指令。存储器范围还可包含可响应于本文所描述的区转换指令而转换的多个可转换区(本文也称为硬件保留区)。
[0018]存储器加密保护了存储器驻留的数据的保密性。存储器加密主要设计成保护不受被动攻击,其中当数据线移入和移出处理器管芯时,攻击者尝试默默地观察数据线。一些处理器包含加密模块,加密模块在数据被存储到存储器的保护区域中之前对敏感数据加密。在对保护区域进行存储器读取时,对数据线解密,之后馈送到处理器。加密和解密算法可基于用户需要的安全性等级选择。
[0019]本文描述的实施例可用于创建安全容器,本文称为安全飞地(enclaveXSEXSE被设计成保护第三方秘密免于硬件和软件攻击。SE可通过确保飞地秘密当驻留在平台存储器中时被加密存储来保护飞地秘密的保密性。为了提供免于硬件攻击的完全保护,SE需要提供完整性保护和重放保护。在缺乏此类保护的情况下,对系统进行物理访问的攻击者可记录飞地高速缓存线的快照,并在以后时间点重放。为了实现这些保护,SE采用存储器加密引擎(MEE),其提供了用于加密、完整性和重放保护的密码机制。MEE是实现当页在存储器中时保护它们安全的密码功能性的硬件单元。更确切地说,MEE可对被驱逐出处理器的任何高速缓存线加密,如果它属于安全页的话,并且MEE还提供对于安全页的完整性保护和重放保护。常规策略在引导时间静态保留平台存储器范围,并且仅在这个存储器范围上施加密码保护。这个安全存储器范围被称为飞地页高速缓存(EPC)。从EPC满足飞地存储器请求。
[0020]如果分区要求随时间改变,则存储器的静态分区可能产生问题。作为一个示例,数据中心在白天执行事务处理和在晚上切换到电影流播基于运行在数据中心上的这些工作负荷可对于安全存储器具有大大不同的要求。在一个实现中,128MB的系统存储器被保留为EPC。然而,为了允许安全服务器应用有效地使用SE,将需要大EPC。用当前的静态分区,这将要求系统存储器的多吉字节分区被保留为EPC,其不能被收回用于不安全使用。此外,具有有限系统存储器的移动装置可要求存储器的动态重新分区允许安全存储器被收回用于不安全用途。
[0021]本文描述的实施例提供了灵活EPC架构,该架构提供了操作系统(0S)可访问的页粒度(或区粒度)转换指令。灵活EPC架构将EPC定义为可以是安全或不安全的平台上的可转换存储器,并引入了新保护机制,诸如用于可转换存储器管理的新环0叶功能。使用灵活EPC的本文描述的实施例允许EPC存储器的动态重新分区,进行需要大量EPC存储器的服务器上和具有有限存储器系统的移动平台上的更有效SE实现。
[0022]图1是图示根据一个实施例实现用于实现安全存储器的存储器加密引擎(MEE)150的计算系统100的框图。在引导时间由基本输入输出系统(B1S)设置安全存储器范围(也称为可转换范围)。处理器110执行指令以转换由在处理器110(诸如本文所描述的操作系统
(0S)或虚拟机监视器(VMM))上执行的软件所指导的这些可转换范围内的页。还有,由MEE提供的存储器保护在处理器不必须执行用于提供保密性、完整性和重放保护的任何指令的意义上是透明的。例如,当属于安全页的任何高速缓存线被驱逐时,MEE自动向那个高速缓存线提供这些保护。处理器110可用在系统中,该系统包含但不限于台式计算机、平板计算机、膝上型计算机、上网本、笔记本计算机、个人数字助理(PDA)、服务器、工作站、蜂窝电话、移动计算装置、智能电话、因特网设施或任何其它类型的计算装置。在另一实施例中,处理器110可用在片上系统(SoC)系统中。
[0023]计算系统100表示基于从加利福尼亚圣塔克拉拉的英特尔公司可得到的PENTIUMIII ? ^PENTIUM 4 ?、Xeon ?、Itanium、XScale ? 和/或StrongARM ? 微处理器的处理系统,不过也可使用其它系统(包含具有其它微处理器的PC、工程设计工作站、机顶盒等)。在一个实施例中,样本系统100执行从华盛顿雷蒙德的微软公司可得到的WINDOWS ?操作系统的某个版本,不过也可使用其它操作系统(例如UNIX和Linux)、嵌入式软件和/或图形用户界面。从而,本发明的实施例不限于硬件电路和软件的任何特定组合。
[0024]处理器110包含执行系统指令的一个或多个处理器核140。处理器核140包含但不限于取指令的预取逻辑、解码指令的解码逻辑、执行指令的执行逻辑等。处理器110包含高速缓存指令和/或数据的高速缓存160。高速缓存160包含但不限于级1、级2和最后一级高速缓存(LLC)165或处理器110内的高速缓冲存储器的任何其它配置。在另一实施例中,计算系统100包含按照本文描述的实施例采用包含执行用于处理数据的算法的逻辑的执行单元的组件,诸如处理器110。
[0025]存储器控制器130执行使处理器110能够访问包含易失性存储器和/或非易失性存储器的主存储器120并与之通信的功能。在一个实施例中,存储器控制器130耦合到包含MEE150的系统代理180。在一个实施例中,MEE 150位于最后一级高速缓存165与存储器控制器130之间,以执行移入和移出主存储器120的保护区域125的数据线的加密、解密和认证。MEE150位于处理器管芯上,而存储器120位于处理器管芯外。
[0026]根据本发明的一个实施例,MEE 150处理多个存储器读取请求,同时改进对保护区域125的访问等待时间。MEE 150执行计数器模式加密,这要求加密种子对于数据线在时间上和空间上都是唯一的。空间唯一性可通过使用要访问的数据线的地址来实现,而时间唯一性可通过使用充当该版本数据线的计数器来实现。在一个实施例中,MEE 150还使用计数器树结构来保护主存储器120的保护区域125中的数据线,其中仅树的根被存储在管芯上并形成信任的根(即信任边界)。数据线的版本是此计数器树结构的一部分。备选地,可使用其它保护机制用于重放保护。例如,与安全高速缓存线关联的消息认证代码(MAC)可被存储在管芯上,因为成功重放攻击将需要重放数据线及其关联的MAC。然而,这个解决方案具过分高的管芯上存储要求。
[0027]对于如下描述,使用如下术语用于主存储器120:主存储器120被划分成区域,包含一个或多个保护区域125(在本文也称为安全存储器范围或MEE区域)。每个区域都具有多个区,EPC区(其在页粒度上是可转换的)、重放保护和完整性元数据的硬件保留区(其在区粒度上是可转换的)以及另一硬件保留区(其是内部实现的,并且不可用于转换)。在一个实施例中,保护区域(MEE区域)可以是固定范围,或者多个保护区域(MEE区域)可以是多个固定范围的集合。在另一实施例中,整个存储器可配置为灵活存储器,划分成多个MEE区域。在启动时,整个存储器开始作为不安全的,并且系统软件如系统上的安全存储器的需求所指导的转换它。如本文所描述的,主存储器120可包含多个安全MEE区域,并且还可包含不安全存储器范围。
[0028]在一个实施例中,处理器110包含一个或多个处理器核140。在处理器核140上执行的软件(例如OS或VMM)可标识主存储器120中的存储器范围(标记为保护区域125 )中的可转换页,并使用页转换指令来转换可转换页。处理器核140响应于页转换指令而根据页转换指令确定保护区域125中的哪个可转换页要转换,并将可转换页转换成安全页或不安全页中的至少一个。在一个实施例中,页转换指令是第一转换指令或第二转换指令中的一个。响应于第一转换指令,处理器核140将可转换页从不安全页转换成安全页。响应于第二转换指令,处理器核140将可转换页从安全页转换成不安全页。例如,在操作期间,页转换在具体时间可由对存储器系统的需求指导。如果0S/VMM确定它在不安全存储器上低速运行(例如由于大量飞地运行引起的),并且需要向非飞地应用分配存储器,则0S/VMM将确定它想要从安全转换成不安全的页,并执行本文所描述的用于转换的过程。应该指出,本文的描述互换地使用不安全和非安全。
[0029]在一个实施例中,处理器核140响应于从不安全转换到安全的第一转换指令而执行如下操作:1)确保作为参数传给指令的页的地址指向可转换成安全页的页;2)验证对应于可转换页的页高速缓存映射条目(未图示)的安全位被设置成不安全;3)使来自处理器110的高速缓存160的所高速缓存的页内容无效;4)将页高速缓存映射条目的安全位设置成安全;以及5)使处理器核140的地址的变换无效。应该指出,在具有两个线程的超线程处理器中,存在两个逻辑处理器。在此情况下,将被无效的变换用于来自当前逻辑处理器的地址。应该指出,如下描述指示,处理器核的变换可用于当前逻辑处理器的地址变换。
[0030]在一个实施例中,处理器核140响应于从安全转换到不安全的第二指令而执行如下操作:1)确保作为参数传给指令的页的地址指向可转换成不安全页的页;2)验证对应于所述可转换页的页高速缓存映射条目的安全位被设置成安全;3)验证页高速缓存映射条目的有效位被设置成无效,其中有效位指示该页当前是否映射到飞地;4)使来自所述处理器的高速缓存的所高速缓存的页内容无效;5)将页高速缓存映射条目的安全位设置成不安全;以及使所述处理器核的所述地址的变换无效。
[0031 ]在另外实施例中,安全存储器范围(保护区域125)进一步包含第二区,在本文称为硬件保留区。硬件保留区是可转换区。主存储器130还可包含不可转换的另一硬件保留区。处理器核140响应于区转换指令而配置成将硬件保留区转换成安全区或不安全区中的至少一个。在一个实施例中,区转换指令是第三转换指令或第四转换指令中的一个。响应于从不安全转换到安全的第三转换指令,处理器核140将硬件保留区从不安全区转换成安全区。响应于从安全转换到不安全的第四转换指令,处理器核140将硬件保留区从安全区转换成不安全区。硬件保留区当转换成安全时存储那个安全存储器范围的重放保护和完整性元数据(即具体MEE区域)。软件(0S/VMM)负责判定转换的区域。一旦进行了判定,0S/VMM就执行区转换指令以将该区转换成不安全或安全。处理器核140需要转换的区中的任何页的地址。
[0032]在一个实施例中,处理器核140响应于将硬件保留区从不安全转换到安全的第三指令而执行如下操作:1)确保作为参数传给指令的页的地址指向硬件保留区中的页;2)确保硬件保留区被设置为可转换,当前不安全;3)指令所述MEE安装所述硬件保留区的重放保护过滤器;以及4)指令所述MEE将所述硬件保留区置于初始化状态。应该指出,重放保护过滤器(例如重放保护树过滤器)不同于重放保护机制。例如,重放保护树包含用于提供完整性和重放保护的元数据。作为其操作的一部分,MEE高速缓存其内部高速缓存中的这个元数据。然而,当同一区被用作不安全区时,就像系统上的任何其它数据,来自这个区的数据可在处理器高速缓存中高速缓存。现在转换时,理想上,应该使在处理器高速缓存中高速缓存的不安全数据无效。然而,由于重放保护区由多页构成,因此它变得刷新来自处理器高速缓存的所有页的内容非常低效。因此,是硬件过滤器的重放保护过滤器可安装在MEE。重放保护过滤器在将重放保护区从不安全转换成安全时激活,而在转换回到不安全时去激活。当激活时,重放保护过滤器可放弃从处理器高速缓存到已经安装它的区的任何写回,由此确保现在用于存储重放保护元数据的区数据不被破坏。
[0033]在一个实施例中,处理器核140响应于将硬件保留区从安全转换到安全的第四指令而执行如下操作:1)确保作为参数传给指令的页的地址指向硬件保留区中的页;2)确保对应于被转换的硬件保留区的EPC区中的所有页都处于不安全状态;3)指令MEE卸载硬件保留区的重放保护过滤器;以及4)指令MEE刷新来自其内部高速缓存的硬件保留区(例如重放保护区)的内容。刷新来自MEE内部高速缓存的内容确保,当它被用作不安全区时,内容驱逐将不破坏该区。
[0034]应该指出,主存储器120可包含多个安全存储器范围(本文称为MEE区域)。主存储器120还可包含不安全存储器范围。下面参考图2详细描述存储器120的灵活保护范围的实施例,包含多个MEE区域和不安全存储器范围。
[0035]实施例不限于计算机系统。本发明的备选实施例可用在其它装置诸如手持装置和嵌入式应用中。手持装置的一些示例包含蜂窝电话、因特网协议装置、数字相机、个人数字助理(PDA)和手持PC。嵌入式应用可包含微控制器、数字信号处理器(DSP)、片上系统、网络计算机(NetPC)、机顶盒、网络集线器、广域网(WAN)交换机或可执行按照至少一个实施例的一个或多个指令的任何其它系统。
[0036]一个实施例可在单个处理器台式计算机或服务器系统的上下文中描述,而备选实施例可包含在多处理器系统中。系统100可以是“集线器”系统架构的示例。计算机系统100包含处理数据信号的处理器110。作为一个说明性示例,处理器110包含复杂指令集计算机(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器、实现指令集组合的处理器或其它处理装置,诸如例如数字信号处理器。处理器110耦合到处理器总线,处理器总线在处理器110与系统100中的其它组件(诸如存储指令、数据或它们的任何组合的存储器120)之间传送数据信号。系统100的其它组件可包含图形加速器、存储器控制器集线器、I/O控制器集线器、无线收发器、闪速B1S、网络控制器、音频控制器、串行扩展端口、I/o控制器等。这些元件执行本领域技术人员众所周知的它们的常规功能。
[0037]在一个实施例中,处理器110包含级1 (LI)内部高速缓存存储器160。根据该架构,处理器110可具有单个内部高速缓存或内部高速缓存的多级。其它实施例根据具体实现和需要包含内部和外部高速缓存的组合。寄存器文件将不同类型的数据存储在各种寄存器中,包含整数寄存器、浮点寄存器、向量寄存器、堆积寄存器、阴影寄存器、检查点寄存器、状况寄存器、配置寄存器和指令点寄存器。
[0038]应该指出,执行单元可具有或没有浮点单元。在一个实施例中,处理器110包含存储微代码的微代码(uCode)R0M,微代码当执行时执行用于某些宏指令的算法或处置复杂情形。在此,微代码潜在地可更新以处置处理器110的逻辑漏
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1