当前位置: 首页 > 专利查询>ARM有限公司专利>正文

用于控制有界指针的使用的设备及方法技术

技术编号:19075911 阅读:24 留言:0更新日期:2018-09-29 17:53
一种用于控制有界指针的使用的设备及方法。设备包括用于储存有界指针的储存器,其中每一有界指针包括指针值及相关联的属性,其中相关联的属性包括指示使用指针值时的可允许地址范围的范围信息。处理电路用于对输入有界指针执行签名操作以生成输出有界指针,其中通过签名操作所生成的签章被包括于输出有界指针内替换输入有界指针的规定位。另外,相关联的属性包括签名信息,签名信息由处理电路在输出有界指针内设置以标识已经签名该输出有界指针。方法使得在使用有界指针时增加控制流完整性攻击的复原力成为可能。

【技术实现步骤摘要】
【国外来华专利技术】用于控制有界指针的使用的设备及方法
本专利技术涉及数据处理领域。
技术介绍
一些数据处理设备可支持有界指针,其中指示特定地址的指针与指示该指针的可允许地址范围的范围信息相关联。例如,这样的指针可称为“胖指针(fatpointer)”。除范围信息以外,这样的有界指针也可具有其它相关联的属性,定义对指针的使用中的一个或多个限制/许可。因此,这样的有界指针的使用可通过对如何使用由边界指针所规定的指针值施加约束而提供强大安全性。面对软件中的一个问题为控制流完整性(controlflowintegrity,CFI)。特定而言,可尝试通过计算机程序破坏既定控制流,例如,通过尝试修改既定分支行为以便以非既定的方式将程序代码的多个部分有效地拼接在一起。例如,若一个任务可覆写待由另一任务使用的返回地址,则此可导致另一任务随后分支至非既定的程序代码区域。当使用有界指针时,此对可从该指针导出的可允许存储器地址范围施加约束,并且因此,若在CFI攻击期间一个任务可经布置以变更另一任务的返回地址,则有界指针的使用可显着地限制可对该返回地址做出的修改。然而,可期望进一步抑制这样的控制流完整性攻击。
技术实现思路
在一个示例性配置中,提供一种设备,其包括:储存器,其用于储存有界指针,每一有界指针包括指针值及相关联的属性,相关联的属性包括指示当使用该指针值时的可允许地址范围的范围信息;以及处理电路,其用于对输入有界指针执行签名操作以生成输出有界指针,其中通过签名操作所生成的签章被包括于输出有界指针内替代输入有界指针的规定位;相关联的属性包括由处理电路在输出有界指针内设置以标识输出有界指针已经签名的签名信息。在另一示例性配置中,提供一种控制有界指针的使用的方法,其包括:将有界指针储存于储存器中,每一有界指针包括指针值及相关联的属性,相关联的属性包括指示当使用该指针值时的可允许地址范围的范围信息;对输入有界指针执行签名操作以生成输出有界指针,其中通过签名操作所生成的签章被包括于输出有界指针内替代输入有界指针的规定位;以及在输出有界指针的相关联的属性内设置签名信息以标识输出有界指针已经签名。在更进一步的示例性配置中,提供一种设备,包括:储存器装置,其用于储存有界指针,每一有界指针包括指针值及相关联的属性,相关联的属性包括指示当使用该指针值时的可允许地址范围的范围信息;以及处理装置,其用于对输入有界指针执行签名操作以生成输出有界指针,其中通过签名操作所生成的签章被包括于输出有界指针内替代输入有界指针的规定位;处理装置进一步用于在输出有界指针的相关联的属性内设置签名信息以标识输出有界指针已经签名。附图说明将仅通过举例方式参考所附图式中所图示的本技术的实施例来进一步描述本技术,其中:图1为根据一个实施例的设备的框图;图2展示指令类型的示例,针对这样的指令类型,若尝试设置或访问有界指针储存组件集内的指针值,则可触发错误,其中该指针值用于规定在由相关联的范围信息所指示的范围以外的地址;图3根据一个实施例图示与有界指针相关联的标签位的使用;图4根据一个实施例示意性地图示签名操作及后续授权操作;图5根据一个实施例图示有界指针的相关联的属性内的签名信息的使用;图6为根据一个实施例的图示签名操作的流程图;图7为根据一个实施例的图示授权操作的流程图;图8图示其中相对于有界指针的指针值储存该有界指针的范围信息的示例性布置;图9为根据一个实施例的图示经执行以确保签名能力(也称为经签名有界指针)的不变性的操作的流程图;图10为根据一个实施例的图示可在许可修改签名能力的指针值时执行的操作序列的流程图;图11为图示根据一个实施例所执行的去参考操作的流程图;图12为根据一个实施例的图示可如何将签名操作的能力限制于其中尚未签名输入能力的情况的流程图;图13为图示根据一个实施例所执行的剥离(strip)操作的流程图;图14A至14C图示可在一些实施例中执行以确定是否许可剥离的各种示例性检查;图15根据一个实施例图示替代性签名能力编码;图16A及16B为在其中根据图15的方法将签章添加至边界信息的实施例中分别图示签名操作及授权操作的流程图;图17为根据一个实施例的示意性地图示可用于由保持于备份储存库中的数据重构能力的重建过程的图式;图18为图示可根据一个实施例执行的能力重建过程的流程图;且图19A至19C图示可在一些实施例中执行以确定在此能力重建过程期间是否许可签名的各种检查。具体实施方式在参考附图论述实施例之前,提供以下对实施例的描述。一些处理设备可支持有界指针的使用。指针本身可指向或用于确定例如待访问的数据值的地址或待执行的指令的地址。然而,指针也可具有指示当使用指针时的可允许地址范围的相关联的范围信息。例如,对于确保依据指针确定的地址保持在某些边界内以维持行为的安全性或功能正确性,此可为有用的。例如,吾人对其中针对给定过程定义某些能力的基于能力的架构越来越感兴趣,并且若尝试实施在定义能力以外的操作,则可触发错误。有界指针的范围信息可为针对此架构定义的能力信息的部分,并且在基于能力的架构内,此有界指针(包括其相关联的能力信息)可称为能力。因此,设备可具有有界指针储存组件,这些有界指针储存组件用于储存具有指示当使用指针时的可允许地址范围的相关联的范围信息的指针。每一有界指针储存组件可为缓存器或通用存储器中的存储器位置,例如,堆栈存储器上的位置。可使用某些指令来引用此有界指针储存组件以获得指针,指针随后用于导出在指令的操作期间所需的存储器中的地址。可直接使用指针来标识存储器地址,或可例如通过将偏移添加至指针值以使用指针来导出存储器地址。当考虑先前所提及的CFI问题时,有界指针的某些性质(诸如上文所提及的基于能力的架构中所用的这些)可使CFI问题减轻至一定程度。例如,相关联的范围信息可限制可在从储存于有界指针储存组件中的指针导出目标地址时由分支指令瞄准的地址的范围。在基于能力的架构中,也已知提供以下机制:防止将一般数据用作导出分支目标地址的能力,并且可进一步限制其中可维持某些能力的位置。然而,在这样的限制内,欺骗过程可能用可通过正被破坏的计算机程序生成所要控制流的方式操纵有界指针,例如,通过使得能够将控制传送至非预期的程序地址来操纵。因此本文所描述的技术的目的在于进一步改良这样的潜在弊端的复原力以便改良CFI。在一个实施例中,提供一种设备,此设备具有用于储存有界指针的储存器,其中每一有界指针包括指针值及相关联的属性,并且其中相关联的属性包括指示当使用指针值时的可允许地址范围的范围信息。另外,提供一种机制以允许将有界指针签名。特定而言,设备内的处理电路经布置以对输入有界指针执行签名操作以生成输出有界指针,其中通过签名操作所生成的签章被包括于输出有界指针内替代输入有界指针的规定位。另外,有界指针的相关联的属性经布置以包括签名信息,并且处理电路设置输出有界指针内的签名信息以标识输出有界指针已经签名。通过采用签名操作,可接着在允许使用该经签名有界指针之前引入签章检查过程。仅对用于生成签章的原始信息知情的实体将很容易能够通过签章检查过程,因此这可防止由非既定的使用有界指针的实体使用该有界指针。进一步地,例如,考虑其中各种实体为正在设备上执行的不同任务的情况,若任务A将其稍后用作返回地本文档来自技高网...

【技术保护点】
1.一种设备,包括:储存器,用于储存有界指针,每个有界指针包括指针值及相关联的属性,所述相关联的属性包括指示当使用所述指针值时地址的允许范围的范围信息;以及处理电路,用于对输入有界指针执行签名操作以生成输出有界指针,其中通过所述签名操作所生成的签章被包括于所述输出有界指针内替代所述输入有界指针的规定位;所述相关联的属性包括由所述处理电路在所述输出有界指针内设置以标识所述输出有界指针已经签名的签名信息。

【技术特征摘要】
【国外来华专利技术】2016.02.12 GB 1602539.71.一种设备,包括:储存器,用于储存有界指针,每个有界指针包括指针值及相关联的属性,所述相关联的属性包括指示当使用所述指针值时地址的允许范围的范围信息;以及处理电路,用于对输入有界指针执行签名操作以生成输出有界指针,其中通过所述签名操作所生成的签章被包括于所述输出有界指针内替代所述输入有界指针的规定位;所述相关联的属性包括由所述处理电路在所述输出有界指针内设置以标识所述输出有界指针已经签名的签名信息。2.如权利要求1所述的设备,其中针对需要所述储存器内的有界指针的使用的至少一个请求操作,所述处理电路被布置为:依据所述相关联的属性内的所述签名信息来确定所述有界指针是经签名还是未签名的,并且依据通过所述签名信息将所述有界指针标识为经签名还是未签名的来确定待响应于所述请求操作而采取的处理步骤。3.如权利要求2所述的设备,其中所述处理电路被布置为:响应于尝试修改有界指针中的一个请求操作而依据所述签名信息确定所述有界指针是否经签名且防止在确定所述有界指针为经签名时对至少所述指针值的修改。4.如权利要求1-3中的任意项所述的设备,其中所述签名信息为签名位,所述签名位在所述相关联的属性内设置以指示所述有界指针为经签名且在所述相关联的属性内清除以指示所述有界指针为未签名。5.如权利要求1-3中的任意项所述的设备,其中所述签名信息编码于也用于标识所述有界指针的至少一个其它性质中的一个多位字段内。6.如任意前述权利要求所述的设备,其中所述处理电路被布置为在不满足规定条件时防止执行所述签名操作。7.如权利要求6所述的设备,其中当满足所述规定条件时,确保所述输出有界指针中的一个随后去签名将不生成不同于所述输入有界指针中的一个有界指针。8.如权利要求6或7所述的设备,其中所述处理电路被布置为在所述输入有界指针的所述规定位包括可从所述输入有界指针的其它位再现的信息时确定满足所述规定条件。9.如任意前述权利要求所述的设备,其中所述处理电路被布置为禁止在有界指针为经签名时使用所述有界指针来确定要在存储器中访问中的一个地址。10.如任意前述权利要求所述的设备,其中在所述签名操作的执行期间所述处理电路被布置为使用所述指针值的至少部分生成所述签章。11.如权利要求10所述的设备,其中所述处理电路被布置为使用所述指针值的所述至少部分、签名密钥及上下文数据中的一项生成所述签章。12.如任意前述权利要求所述的设备,其中所述处理电路响应于授权请求而对输入经签名有界指针执行授权操作以在被包括于所述输入经签名有界指针内的所述签章与由所述处理电路使用提供于所述经签名有界指针内的所述指针值的至少部分所生成的授权签章之间侦测到签章匹配的情况下生成输出未签名有界指针。13.如权利要求12所述的设备,其中所述处理电路被布置为使用提供于所述经签名有界指针内的所述指针值的所述至少部分、签名密钥及上下文数据中的一项生成所述授权签章。14.如权利要求12或13所述的设备,其中当侦测到所述签章匹配时,所述处理电路被布置为通过用依据所述输入经签名有界指针中的一个或多个位确定的数据替换所述签章且清除所述相关联的属性内的所述签名信息以标识所述输出有界指针为未签名来生成所述输出未签名有界指针。15.如引用权利要求6时的任意前述权利要求所述的设备,其中:所述输入有界指针的所述规定位含有所述指针值中的一部分;并且所述处理电路被布置为在所述指针值的所述部分为可从所述指针值中的一个剩余部分导出时确定满足所述规定条件。16.如权利要求15所述的设备,...

【专利技术属性】
技术研发人员:格雷姆·彼得·巴尔内斯理查德·罗伊·格里森思怀特
申请(专利权)人:ARM有限公司
类型:发明
国别省市:英国,GB

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

1