技术新讯 > 计算推算,计数设备的制造及其应用技术 > 处理器防御方法、装置、计算机设备和存储介质  >  正文

处理器防御方法、装置、计算机设备和存储介质

  • 国知局
  • 2024-07-31 23:19:33

本申请涉及计算机领域,特别是涉及处理器防御方法、装置、计算机设备和存储介质。

背景技术:

1、现代超标量处理器的特殊设计不仅仅带来了性能的极大提高,也引入了新的安全风险。如,meltdown攻击模型和spectre攻击模型分别利用超标量处理器的乱序和推测执行特性,绕过相关的软件和硬件安全检查获取到用户/系统的机密数据信息。

2、自该漏洞发现以来,提出了通过invisispec(隐形推测执行)来防御spectre攻击模型及其变体的推测攻击的方法。invisispec将推测指令的执行分成两个部分,即“不可见”的数据载入部分和“暴露”的数据恢复部分。其中,invisispec通过添加类似于cache(缓存)的sb(speculative buffer,推理缓冲区)来存放推测窗口中载入的数据,sb对其他程序是不透明的。当推测指令安全之后,invisispec通过重新访问数据的形式将推测窗口内加载的数据放到cache中。

3、invisispec每次通过重新访问数据的方式将推测窗口内加载的数据重新载入到cache中,这相当于对于同一个数据读取指令,访问了两次内存,大大增加了程序的时间开支。另外,invisispec为了保证缓存数据一致性,在数据恢复的过程中区分了“曝光”和“验证”两种方式。在执行“验证”操作时,需要还需要再一次检查数据,进一步增加了性能消耗。

4、针对相关技术中存在针对处理器推测攻击的防御方法的时间成本高、性能消耗大的问题,目前还没有提出有效的解决方案。

技术实现思路

1、基于此,有必要针对上述技术问题,提供一种能够解决防御处理器推测攻击的方法的时间成本高、性能消耗大的问题的处理器防御方法、装置、计算机设备和存储介质。

2、第一个方面,在本实施例中提供了一种处理器防御方法,处理器包括第一缓存区和第二缓存区,所述第一缓存区无法被目标程序以外的其他程序访问,所述第二缓存区可以被所述目标程序以外的其他程序访问,所述方法包括:

3、判断所述目标程序是否发出瞬态指令;

4、若是,则将瞬态窗口内的第一数据请求指令发送至所述第一缓存区处理,所述瞬态窗口响应于所述瞬态指令生成,所述第一数据请求指令为所述目标程序生成的指令;

5、在所述瞬态指令预测正确的情况下,将所述第一缓存区作为新的第二缓存区,将所述第二缓存区作为新的第一缓存区;

6、复制所述新的第二缓存区中至少部分数据至所述新的第一缓存区中,使得所述新的第二缓存区中的数据与所述新的第一缓存区中的数据一致。

7、在其中的一些实施例中,所述至少部分数据为所述瞬态窗口内,响应于所述第一数据请求指令载入至所述第一缓存区的数据。

8、在其中的一些实施例中,将瞬态窗口内的第一数据请求指令发送至所述第一缓存区处理,包括:

9、响应于所述瞬态窗口内的第一数据请求指令,载入数据至所述第一缓存区;

10、获取所述第一缓存区中载入的数据的标号,将所述标号更新至缓存映射表中,所述缓存映射表用于关联存储同一数据在所述第一缓存区中的标号和第二缓存区中的标号。

11、在其中的一些实施例中,在所述瞬态指令预测错误的情况下,将所述目标程序的执行路径切换至所述第二缓存区所在的路径。

12、在其中的一些实施例中,在判断所述目标程序执行时是否发出瞬态指令之后,所述方法包括:

13、若否,则响应于所述目标程序生成的第二数据请求指令,得到所述第二数据请求指令对应的数据在所述第一缓存区或所述第一缓存区中的目标标号;

14、在缓存映射表中检索所述目标标号的映射关系;其中,所述映射关系用于指示同一数据在所述第一缓存区中的标号和第二缓存区中的标号之间的对应关系;

15、在检索到所述映射关系的情况下,命中所述第二数据请求指令。

16、在其中的一些实施例中,命中所述第二数据请求指令,包括:

17、将所述第二数据请求指令发送至所述第二缓存区处理,并由所述第一缓存区模仿所述第二缓存区的行为。

18、在其中的一些实施例中,在在缓存映射表中检索所述目标标号的映射关系之后,所述方法还包括:

19、在未检索到所述映射关系的情况下,将内存中与所述第二数据请求指令对应的数据写入至所述第一缓存区和所述第二缓存区;

20、获取所述第一缓存区中与所述第二数据指令对应的数据的第一标号,以及所述第二缓存区中与所述第二数据指令对应的数据的第二标号;

21、将所述第一标号和所述第二标号对应地输入至所述缓存映射表中。

22、第二个方面,在本实施例中提供了一种处理器防御装置,处理器包括第一缓存区和第二缓存区,所述第一缓存区无法被目标程序以外的其他程序访问,所述第二缓存区可以被所述目标程序以外的其他程序访问,所述装置包括:

23、判断模块,用于判断所述目标程序是否发出瞬态指令;

24、发送模块,用于在判断到目标程序发出瞬态指令的情况下,将瞬态窗口内的第一数据请求指令发送至所述第一缓存区处理,所述瞬态窗口响应于所述瞬态指令生成,所述第一数据请求指令为所述目标程序生成的指令;

25、状态更新模块,用于在所述瞬态指令预测正确的情况下,将所述第一缓存区作为新的第二缓存区,将所述第二缓存区作为新的第一缓存区;

26、数据更新模块,用于复制所述新的第二缓存区中至少部分数据至所述新的第一缓存区中,使得所述新的第二缓存区中的数据与所述新的第一缓存区中的数据一致。

27、第三个方面,在本实施例中提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述第一个方面所述的处理器防御方法。

28、第四个方面,在本实施例中提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述第一个方面所述的处理器防御方法。

29、上述处理器防御方法、装置、计算机设备和存储介质,通过无法被外界访问的第一缓存区处理瞬态窗口内的数据请求指令后,切换第一缓存区和可以被外界访问的第二缓存区,并通过复制数据以确保第一缓存区和第二缓存区的一致性的方法,使得外界无法通过第一缓存区窃取与瞬态指令相关数据,在保障安全性的同时,不会为目标程序的运行增加过多额外的操作,从而达到降低处理器防御所需的时间成本和性能消耗的效果。

技术特征:

1.一种处理器防御方法,其特征在于,处理器包括第一缓存区和第二缓存区,所述第一缓存区无法被目标程序以外的其他程序访问,所述第二缓存区可以被所述目标程序以外的其他程序访问,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述至少部分数据为所述瞬态窗口内,响应于所述第一数据请求指令载入至所述第一缓存区的数据。

3.根据权利要求1所述的方法,其特征在于,将瞬态窗口内的第一数据请求指令发送至所述第一缓存区处理,包括:

4.根据权利要求1所述的方法,其特征在于,包括:

5.根据权利要求1所述的方法,其特征在于,在判断所述目标程序执行时是否发出瞬态指令之后,所述方法包括:

6.根据权利要求5所述的方法,其特征在于,命中所述第二数据请求指令,包括:

7.根据权利要求5所述的方法,其特征在于,在缓存映射表中检索所述目标标号的映射关系之后,所述方法还包括:

8.一种处理器防御装置,其特征在于,处理器包括第一缓存区和第二缓存区,所述第一缓存区无法被目标程序以外的其他程序访问,所述第二缓存区可以被所述目标程序以外的其他程序访问,所述装置包括:

9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的方法的步骤。

10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。

技术总结本申请涉及一种处理器防御方法、装置、计算机设备和存储介质,处理器包括第一缓存区和第二缓存区,第一缓存区无法被目标程序以外的其他程序访问,第二缓存区可以被目标程序以外的其他程序访问。方法包括:判断目标程序是否发出瞬态指令;若是,则将瞬态窗口内的第一数据请求指令发送至第一缓存区处理,瞬态窗口响应于瞬态指令生成,第一数据请求指令为目标程序生成的指令;在瞬态指令预测正确的情况下,将第一缓存区作为新的第二缓存区,将第二缓存区作为新的第一缓存区;复制新的第二缓存区中至少部分数据至新的第一缓存区中,使得新的第二缓存区中的数据与新的第一缓存区中的数据一致。采用本方法能够降低处理器防御的时间成本和性能消耗。技术研发人员:杨坤,颜天明,任奎受保护的技术使用者:浙江大学技术研发日:技术公布日:2024/7/29

本文地址:https://www.jishuxx.com/zhuanli/20240730/197020.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。