当前位置: 首页 > 专利查询>英特尔公司专利>正文

基于区域的确定性存储器安全性制造技术

技术编号:34681518 阅读:20 留言:0更新日期:2022-08-27 16:11
本申请公开了基于区域的确定性存储器安全性。描述了涉及用于基于区域的确定性存储器安全性的技术的方法和装置。在一些实施例中,可使用一条或多条指令来对指向存储器中所存储的数据的部分的指针进行加密、解密和/或检查。该数据的部分被存储在存储器的第一区域中。存储器的第一区域包括多个尺寸相同的分配槽。还公开并要求保护其他实施例。槽。还公开并要求保护其他实施例。槽。还公开并要求保护其他实施例。

【技术实现步骤摘要】
基于区域的确定性存储器安全性
相关申请
[0001]本申请涉及并要求来自2021年2月13日提交的题为“REGION

BASED DETERMINISTIC MEMORY SAFETY(基于区域的确定性存储器安全性)”的美国临时专利申请第63/149,271号的优先权,该临时专利申请以其整体并出于一切目的而在此通过引用被合并在本文中。


[0002]本公开总体上涉及电子学领域。更具体地,一些实施例涉及用于提供基于区域的确定性存储器安全性的技术。

技术介绍

[0003]由于软件是计算的组成部分并且取决于存储器中所分配的数据来实现其正确且值得信赖的功能,存储分配的存储器的安全性是至关重要的。存储器安全性一般是指针对各种软件安全脆弱性的保护。
[0004]绝大部分的软件安全脆弱性可能由于存储器安全性违反。存在多种类型的违反,诸如时间安全性违反(例如,释放后使用(UAF))、空间安全性违反(例如,边界外(OOB)访问)和类型混淆。
附图说明
[0005]为了可详细地理解本文中陈述的当前实施例的特征的方式,可参照实施例进行对实施例的更特定的描述,在所附附图中图示实施例中的一些。然而,应注意的是,所附附图仅图示典型实施例,并且因此不应被视为限制实施例的范围。
[0006]图1图示出根据实施例的用于检查指针更新的操作的流程图。
[0007]图2图示出根据一些实施例的各种区域。
[0008]图3图示出根据实施例的、用于对指针解密并确定处理对应的存储器访问请求还是生成错误的操作的流程图。
[0009]图4A是图示根据实施例的示例性指令格式的框图。
[0010]图4B是图示根据一个实施例的指令格式中构成完整操作码字段的字段的框图。
[0011]图4C是图示根据一个实施例的指令格式中构成寄存器索引字段的字段的框图。
[0012]图4D是图示根据一个实施例的指令格式中构成扩充操作字段的字段的框图。
[0013]图5是根据一个实施例的寄存器架构的框图。
[0014]图6A是图示根据实施例的示例性有序流水线以及示例性寄存器重命名的乱序发布/执行流水线两者的框图。
[0015]图6B是图示根据实施例的要包括在处理器中的有序架构核的示例性实施例和示例性的寄存器重命名的乱序发布/执行架构核两者的框图。
[0016]图7图示根据实施例的SOC(芯片上系统)封装的框图。
[0017]图8是根据实施例的处理系统的框图。
[0018]图9是根据一些实施例的具有一个或多个处理器核的处理器的实施例的框图。
[0019]图10是根据实施例的图形处理器的框图。
具体实施方式
[0020]在下列描述中,阐述了众多特定细节以便提供对各实施例的全面理解。然而,在没有这些特定细节的情况下,也可实施各实施例。在其他实例中,未详细描述公知的方法、过程、组件和电路,以免使特定实施例变得模糊。此外,各实施例的各方面可使用各种装置来执行,诸如集成半导体电路(“硬件”)、组织成一个或多个程序的计算机可读指令(“软件”)、或硬件与软件的某种组合。出于本公开的目的,对“逻辑”的引用应当意指硬件、软件、固件或它们的某种组合。
[0021]如上文所提及,软件安全脆弱性的一个主要部分可能是由于存储器安全性违反。存在多种类型的违反,诸如时间安全性违反(例如,释放后使用(UAF))、空间安全性违反(例如,边界外(OOB)访问)和类型混淆。已经提出了各种解决方案,但是它们均无法诸如由一些实施例提供的那样将低开销与确定性保护相组合。
[0022]例如,存储器加标签向每个存储颗粒(例如,16字节)分派标签值,并检查嵌入在指针中的标签值是否与被访问的每一个存储颗粒的标签相匹配。然而,尤其由于标签值对于每一个存储器颗粒是重复的,因此存储器加标签引入了显著的存储器开销。由于需要访问冗余的标签值,因此此种方式还导致相对较高的性能开销。在此种解决方案的情况下,硬件复杂度也是额外地高的。此外,此种方式仅为一些存储器安全性违反提供概率性的保护。
[0023]另一种可能的解决方案使用“权能(capability)”,“权能”是指通过使处理器将标签位与存储器的每个字相关联以指示该字是否包含指针来保护指针免受伪造。指针可以被扩展(例如,扩展至128位)以适配诸如边界和类型信息之类的安全元数据。然而,权能可能缺乏传统软件兼容性,引入许多硬件触点,和/或由于扩展指针尺寸而降低性能。
[0024]与存储器加标签和权能相比,实施例使用64位的、与传统兼容的指针(或甚至32位或其他尺寸的指针),不引入冗余的元数据,和/或提供了确定性保护。
[0025]而且,某种主要的软件(诸如浏览器和/或存储器分配器)可转变至其中尺寸类似的分配被分组为具有相同槽尺寸的区域的模型,其中每个槽包含单个分配和任选的逐分配元数据。如本文中所讨论,“分配”可以可互换地指代“对象”。此类转变可使得包括指定逐分配边界的存储器加标签和权能的解决方案被废弃,这是由于边界可以从当前区域的分配尺寸来推断。实施例使用新的指针算术指令添加了用于为每个页指定槽尺寸并在适当的边界内保持32位和/或64位指针的指令(或指令集架构(ISA))支持。尽管一些实施例涉及32位或64位指针,但实施例不限于这些尺寸并且可利用具有不同尺寸的指针。
[0026]进一步地,存储器安全性是当前架构创新的最重要领域中的一个。在其中软件可以被重新编译以使用新的指令和统一的存储器布局的情形下,诸如在一些浏览器中,一些实施例超出了一些当前方式/特征的确保水平并规避其开销和复杂性,这可能是当今使用中的最流行的软件中的某种软件的基础(例如,以允许虚拟会议等)。
[0027]一个或多个实施例包括以下六个组成部分中的一个或多个组成部分:1

为每个页指定槽尺寸。
2

对指针进行加密,以防止其被伪造。3

检查指针更新,以防止这些指针更新出边界(例如,临时地除了兼容性原因)。4

检查存储器访问,以阻拦边界外访问。5

更新并检查引用计数器,以缓解时间安全性违反。6

检查类型元数据,以缓解类型混淆。
[0028]在下文中更详细地讨论这些领域中的每一个。1.指定区域特定的槽尺寸
[0029]实施例将页表条目(PTE)或某种其他逐页结构扩展为包括槽尺寸指定符,并且任选地包括如下文所描述的其他页属性。对于其他类型的页属性(例如,许可),这些扩展的属性可被高速缓存在处理器内,例如被高速缓存在一个或多个转换后备缓冲器(TLB)或另一高速缓存中。范围寄存器是用于在范围内指定页的属性的替代方案。
[0030]槽尺寸可根据某个最小粒度(例如,8B(其中,“B”是指字节),以简化实现方式并节省PTE中的空间。替代地,可能存在可指定的所支持槽尺寸的某个集合。该集合可以可由操作系统(OS本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用于提供基于区域的确定性存储器安全性的装置,所述装置包括:存储器,用于存储数据;解码电路系统,用于对指令进行解码,所述指令包括源操作数;以及执行电路系统,用于根据所述源操作数来执行经解码的指令,以对指向所述存储器中所存储的所述数据的部分的指针进行加密,其中,所述数据的所述部分用于被存储在所述存储器的第一区域中,其中,所述存储器的所述第一区域包括多个尺寸相同的分配槽。2.如权利要求1所述的装置,其中,所述执行电路系统用于确定所述指针是否在引用的分配的空间边界内。3.如权利要求1所述的装置,其中,所述解码电路系统用于对第二指令进行解码,所述第二指令包括至少一个源操作数,其中,所述执行电路系统用于根据所述至少一个源操作数来执行经解码的第二指令,以对经加密的指针进行解密。4.如权利要求3所述的装置,其中,所述执行电路系统用于执行经解码的第二指令以确定经解密的指针是否为正则的。5.如权利要求1所述的装置,其中,所述多个尺寸相同的分配槽中的每个槽用于存储单个分配。6.如权利要求1所述的装置,其中,所述多个尺寸相同的分配槽中的每个槽用于存储单个分配和逐分配元数据。7.如权利要求6所述的装置,其中,所述逐分配元数据包括以下各项中的一项或多项:分配类型信息、分配边界信息以及引用计数器。8.如权利要求6所述的装置,其中,所述逐分配元数据包括分配类型标识符,其中,所述分配类型标识符的比较用于缓解类型混淆。9.如权利要求1所述的装置,其中,所述执行电路系统用于查阅页表条目,以确定页上的所述多个尺寸相同的分配槽的尺寸和偏移。10.一种用于提供基于区域的确定性存储器安全性的装置,所述装置包括:存储器,用于存储数据;解码电路系统,用于对指令进行解码,所述指令包括源操作数;以及执行电路系统,用于根据所述源操作数来执行经解码的指令,以对指向所述存储器中所存储的所述数据的部分的指针进行解密,其中,所述数据的所述部分用于被存储在所述存储器的第一区域中,其中,所述存储器的所述第一区域包括多个尺寸相同的...

【专利技术属性】
技术研发人员:M
申请(专利权)人:英特尔公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1