【技术实现步骤摘要】
【国外来华专利技术】用于控制对有界指针的使用的装置和方法
[0001]本技术涉及数据处理的领域。
技术介绍
[0002]一些数据处理装置可以支持有界指针,其中,指示特定地址的指针与指示该指针的允许地址范围的范围信息相关联。例如,这样的指针可以被称为“胖指针”。
[0003]除了范围信息之外,这样的有界指针还可以具有其他相关联的属性,其定义对指针的使用的一个或多个限制/许可。因此,通过对如何使用由边界指针指定的指针值施加约束,使用此类有界指针可以提供强大的安全性。
[0004]当在存储器中分配存储器区域时,例如,以使得该存储器区域能够被特定处理使用,可以建立一个或多个有界指针以与所分配的存储器区域关联使用。这样的有界指针可以包括范围信息,其标识所分配的存储器区域的地址范围。当处理试图使用有界指针生成存储器储器地址时,它将被限制为仅生成落入所分配的存储器区域的地址范围内的存储器地址。
[0005]可能出现的问题是,当稍后解除分配存储器区域时,释放了该存储器空间以用于重新分配,有界指针可能仍可用于处理电路。在相关联的存储器区域已被解除分配之后对这种有界指针的潜在使用被称为“释放后使用(use-after-free)”问题。具体地,如果由于编程错误而发生在解除分配相关联的存储器区域之后使用有界指针,则可能引起软件的未定义行为。此外,当有界指针的这种使用作为由安全攻击者有意引起的动作而发生时,这可能潜在地导致信息的安全性泄漏、和/或远程代码执行。
[0006]因此,期望提供一种减轻释放后使用问题的技术。
专 ...
【技术保护点】
【技术特征摘要】
【国外来华专利技术】1.一种装置,包括:存储器分配电路,用于分配存储器中的存储器区域;以及有界指针生成电路,用于生成有界指针,所述有界指针至少包括用于访问所述存储器区域的可撤销有界指针,所述可撤销有界指针提供指针值以及标识所述存储器区域的地址范围的范围信息;其中,所述存储器分配电路被布置为在所述存储器中的头部位置处提供所述存储器区域的头部,所述头部具有第一令牌字段,所述第一令牌字段的存储值被初始化为与所述存储器区域相关联的第一令牌值,所述头部位置是从所述可撤销有界指针所提供的所述范围信息中导出的,并且其中,所述存储器分配电路响应于所述存储器区域的后续解除分配,来修改所述头部的所述第一令牌字段中的所述存储值;并且其中,响应于对使用所述可撤销有界指针来生成存储器地址的请求,使用认证检查被布置为在确定所述第一令牌字段中的所述存储值已被改变时,防止生成所述存储器地址。2.根据权利要求1所述的装置,其中,所述使用认证检查被布置为当确定所述第一令牌字段中的所述存储值已被改变时,使所述可撤销有界指针无效。3.根据权利要求2所述的装置,其中:所述可撤销有界指针被布置为存储所述第一令牌值;并且响应于对使用所述可撤销有界指针来生成存储器地址的请求,所述使用认证检查被布置为采用所述范围信息来确定所述头部位置,并且在存储在所述可撤销有界指针中的所述第一令牌值与所述头部的所述第一令牌字段中的所述存储值之间不匹配的情况下,使所述可撤销有界指针无效。4.根据权利要求1至3中任一项所述的装置,还包括令牌生成电路,用于生成所述第一令牌值。5.根据权利要求4所述的装置,其中,所述令牌生成电路是伪随机数生成器。6.根据任一前述权利要求所述的装置,其中,所述有界指针生成电路还被布置为在每个所生成的有界指针中提供可撤销字段,所述可撤销字段在所生成的有界指针是所述可撤销有界指针时被设置。7.根据任一前述权利要求所述的装置,还包括:一组有界指针寄存器,每个有界指针寄存器被布置为存储用于生成存储器地址的有界指针。8.根据权利要求7在引用权利要求3时所述的装置,其中:所述头部还包括第二令牌字段,所述第二令牌字段被布置为存储与所述存储器区域相关联的第二令牌值,所述第二令牌值不在由所述有界指针生成电路生成的所述可撤销有界指针中;并且所述使用认证检查还被布置为当确定所述第二令牌值已被改变时,使所述可撤销有界指针无效。9.根据权利要求8所述的装置,还包括:附加存储装置,所述附加存储装置与该组有界指针寄存器相关联地被提供,其中,当所述可撤销有界指针被存储在所选择的有界指针寄存器中时,所述附加存储装置被布置为与所述所选择的有界指针寄存器相关联地标识如在所述头部的所述第二令牌字段中初始化
的所述第二令牌值;其中,所述使用认证检查进一步响应于对使用如存储在所述所选择的有界指针寄存器中的所述可撤销有界指针来生成存储器地址的请求,来在存储在所述头部中的所述第二令牌值与存储在与所述所选择的有界指针寄存器相关联的所述附加存储器装置中的所述第二令牌值之间不存在匹配的情况下,使所述可撤销有界指针无效。10.根据权利要求9所述的装置,其中,所述附加存储装置对于在所述装置上执行的一种或多种类型的软件是不可访问的。11.根据权利要求8所述的装置,还包括通知机制,所述通知机制用于标识何时已经对所述头部的所述第一令牌字段和所述第二令牌字段中的至少一个进行了写入操作,从而使得所述使用认证检查能够在所述第一令牌值或所述第二令牌值已被改变的情况下,使所述可撤销有界指针无效。12.根据权利要求8至11中任一项所述的装置,其中,所述存储器分配电路响应于所述存储器区域的后续解除分配,修改存储在所述头部的所述第二令牌字段中的值。13.根据权利要求8至12中任一项在引用权利要求4时所述的装置,其中,所述令牌生成电路还被布置为生成所述第二令牌值。14.根据权利要求8至13中任一项所述的装置,其中:所述头部被布置为存储所述可撤销有界指针的一部分的副本;并且所述装置包括编码控制电路,所述编码控制电路被布置为当所述可撤销有界指针从所述所选择的有界指针寄存器被存储到所述存储器时,执行编码操作,以如下方式通过使用所述第二令牌值对所述可撤销有界指针的该部分进行编码来创建经编码的可撤销有界指针:所述方式允许使用所述第二令牌值和所述经编码的可撤销有界指针来重新创建所述可撤销有界指针的该部分,此后,所述经编码的可撤销有界指针被存储到所述存储器。15.根据权利要求14所述的装置,其...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。