CN117807588A - 基于备份缓存的一级数据缓存侧信道攻击防御方法及系统 - Google Patents

基于备份缓存的一级数据缓存侧信道攻击防御方法及系统 Download PDF

Info

Publication number
CN117807588A
CN117807588A CN202311693095.5A CN202311693095A CN117807588A CN 117807588 A CN117807588 A CN 117807588A CN 202311693095 A CN202311693095 A CN 202311693095A CN 117807588 A CN117807588 A CN 117807588A
Authority
CN
China
Prior art keywords
cache
backup
fully
associative
backup cache
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202311693095.5A
Other languages
English (en)
Inventor
唐明
王泉成
王晗
许可
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuhan University WHU
Original Assignee
Wuhan University WHU
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Wuhan University WHU filed Critical Wuhan University WHU
Priority to CN202311693095.5A priority Critical patent/CN117807588A/zh
Publication of CN117807588A publication Critical patent/CN117807588A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明公开了一种基于备份缓存的一级数据缓存侧信道攻击防御方法及系统,通过在缓存中增加与一级数据缓存具有相同访问时延的全相联备份缓存,将一级数据缓存中被驱逐的缓存行暂存于备份缓存中,通过全相联备份缓存行替换的随机使用替换策略和全相联备份缓存动态容量调整机制,从而隐藏缓存行的驱逐行为。为了增强本防御方法的安全性,本发明引入了针对备份缓存的随机使用替换策略和动态备份缓存容量调整机制,前者通过指令集和硬件扩展优先替换攻击者已经探测过的缓存行,后者利用三个硬件寄存器防止攻击者推断备份缓存的容量。利用本发明,可以以较小的性能损失为代价对抗基于冲突的一级缓存侧信道攻击。

Description

基于备份缓存的一级数据缓存侧信道攻击防御方法及系统
技术领域
本发明属于信息安全领域,涉及一种缓存侧信道攻击防御方法及系统,尤其是涉及一种基于备份缓存的一级数据缓存侧信道攻击防御方法及系统。
背景技术
缓存用于缩小处理器与内存之间的速度差距,从而提高现代处理器的性能和效率。尽管在硬件和软件中实施了许多安全机制来保护计算机系统安全关键信息的机密性,但仍然存在被称为缓存侧信道攻击的漏洞,攻击者可以利用这些漏洞窃取敏感信息(例如,用户活动、加密密钥等)、破坏系统安全机制(例如,内核地址随机化、可信执行环境等)以及发起各种攻击(例如,熔断攻击、幽灵攻击等)。同时,这些攻击在所有使用缓存的系统上都很容易发起,无论是小型嵌入式系统还是大型云服务器。
缓存侧信道攻击的基本原理是利用缓存命中和缓存缺失之间的缓存访问时间差异来推断受害进程的机密信息。本发明重点关注基于冲突的缓存侧信道攻击,即攻击者和受害者仅共享缓存(例如,一级数据缓存、共享末级缓存等),但在攻击者和受害者进程的执行过程中,它们并不共享相同的内存区域。在这类攻击中,攻击者首先设计一个缓存驱逐集,并填充缓存以驱逐一个或多个特定缓存组中的缓存行,这就导致了受害者访问这些缓存组时发生缓存缺失。然后,受害者执行其指令,并可能访问共享缓存行。之后,攻击者使用之前使用的相同缓存驱逐集重新访问缓存行,并测量之前被驱逐的缓存组的访问时间,从而了解受害者进程的访问模式并推断出秘密信息。
针对基于冲突的缓存侧信道攻击,现有的缓解技术主要集中在缓存分区、随机化和缓存行刷新等方面。缓存分区是一种基于硬件的技术,可防止不同进程共享缓存组,从而在攻击者和受害者之间提供空间隔离。然而,这种方法会导致延迟增加,因为每个进程的有效缓存容量减少,而且它不适用于容量较为有限的一级数据缓存。此外,随机化是另一种基于硬件的技术,它随机化了缓存组和内存地址之间的映射关系,使得缓存组的竞争变得不确定。然而,实施随机化不仅会带来昂贵的硬件和软件修改,而且研究人员还发现,这种解决方案可以被复杂的攻击绕过。此外,缓存行刷新可通过硬件或软件实现,在抢占、进程切换和系统调用时刷新缓存行,从而确保攻击者与受害者之间的时间隔离。不过,由于一级数据缓存的容量越来越大,这种方法可能会产生更大的性能开销。
一方面,已有的解决方案要么会带来巨大的性能开销,要么存在安全问题,要么不适用于一级数据缓存。因此,需要找到一种安全高效的解决方案来保留共享缓存的优势,即允许每个进程访问整个缓存并提高缓存命中率。另一方面,基于冲突的缓存侧信道攻击的根本原因是攻击者和受害者进程共享缓存组,以及内存地址与缓存组之间的确定性映射,从而导致攻击者和受害者争用同一缓存组时,缓存行被确定性地驱逐。因此,本发明的目标是打破这种确定性缓存行驱逐,即让攻击者无法得知缓存行是否被驱逐。
发明内容
本发明解决上述两方面的技术问题,本发明提供了一种基于备份缓存的一级数据缓存侧信道攻击防御方法及系统,可以以较小的性能损失为代价对抗基于冲突的一级缓存侧信道攻击。
本发明的方法所采用的技术方案是:一种基于备份缓存的一级数据缓存侧信道攻击防御方法,通过在缓存中增加与一级数据缓存具有相同访问时延的全相联备份缓存,将一级数据缓存中被驱逐的缓存行暂存于备份缓存中,通过全相联备份缓存行替换的随机使用替换策略和全相联备份缓存动态容量调整机制,从而隐藏缓存行的驱逐行为.
作为优选,所述全相联备份缓存,在指令集架构中引入刷新全相联备份缓存行使用状态的指令BUCLR、在操作系统上下文切换函数中增加BUCLR指令调用。
作为优选,所述全相联备份缓存,包括从一级数据缓存中驱逐的缓存行的存储空间、全相联备份缓存的标签扩展、和全相联备份缓存动态容量调整机制所需的硬件寄存器。
作为优选,所述全相联备份缓存的标签扩展,包含一个“使用位”和一个“启用位”。
作为优选,所述全相联备份缓存动态容量调整机制所需的硬件寄存器,包括内存访问计数寄存器、最小缓存容量寄存器和最大缓存容量寄存器。
作为优选,所述全相联备份缓存行替换的随机使用替换策略,具体实现包括以下子步骤:
(1)当从一级数据缓存中驱逐的缓存行准备放入全相联备份缓存时,全相联备份缓存会首先选择“启用位”被设置为1的缓存行;其中,所述全相联备份缓存的标签扩展,包含一个“使用位”和一个“启用位”;
(2)全相联备份缓存选择一个无效的缓存行作为要替换的受害缓存行;其中,有效位设置为0;
(3)若全相联备份缓存中没有无效的缓存行,则全相联备份缓存选择“使用位”设置为1的缓存行作为候选;若没有“使用位”设置为1的缓存行,则全相联备份缓存选择“使用位”设置为0的缓存行作为候选;
(4)全相联备份缓存生成一个随机数,然后从候选缓存行中随机选择一个受害缓存行;若没有“使用位”设置为0的缓存行,则根据最近最少使用策略进行替换,以避免替换最近使用过的缓存行;旧的缓存行被新带来的缓存行替换;
同时,在上下文切换过程中将“使用位”设置为0。
作为优选,所述全相联备份缓存动态容量调整机制,具体实现包括以下子步骤:
(1)当全相联备份缓存初始化时,全相联备份缓存的容量设置为介于最小备份缓存容量寄存器和最大备份缓存容量寄存器之间的随机值,然后将与备份缓存容量相同数目的缓存行的“启用位”设置为1;其中,所述全相联备份缓存的标签扩展,包含一个“使用位”和一个“启用位”;所述全相联备份缓存动态容量调整机制所需的硬件寄存器,包括内存访问计数寄存器、最小缓存容量寄存器和最大缓存容量寄存器;
(2)当内存访问计数寄存器的值递减到0时,全相联备份缓存的容量将再次调整为介于最小和最大备份缓存容量寄存器值之间的随机值,内存访问计数寄存器的值将重置为该随机值;
(3)判断;
若全相联备份缓存的容量没有变化,则无需更改全相联备份缓存中缓存行的“启用位”;
若全相联备份缓存的新容量大于全相联备份缓存的旧容量,则会从“启用位”设置为0的缓存行中选择新增加的缓存行,并将其“启用位”设置为1;
若全相联备份缓存的新容量小于全相联备份缓存的旧容量小,全相联备份缓存根据“随机已用替换策略”选择缓存行,找到需要替换的受害缓存行,并将其“启用位”设置为0。
作为优选,一级数据缓存与全相联备份缓存,内存访问并行执行,同时一级数据缓存和全相联备份缓存的访问延迟相同且没有额外泄漏;
当执行内存访问时,查询一级数据缓存和全相联备份缓存有四种可能的缓存命中/缺失情况,包括一级数据缓存和全相联备份缓存都出现缓存缺失、一级数据缓存缺失而全相联备份缓存命中、一级数据缓存命中而全相联备份缓存缺失、和一级数据缓存和全相联备份缓存都命中;从全相联备份缓存到一级数据缓存的行填充和从一级数据缓存到全相联备份缓存的行填充都是在数据响应到处理器之后进行;
当一级数据缓存和备份缓存都出现缓存缺失时,一级数据缓存会将内存访问请求转发给低级别的缓存或主存,并只将数据带入一级数据缓存;如果新引入的缓存行导致一级数据缓存中的缓存行被驱逐,则会根据“随机使用替换策略”将被驱逐的缓存行放入全相联备份缓存,并将“使用位”设置为0;此外,全相联备份缓存只从“启用位”设置为1的缓存行中寻找被替换的缓存行;
当一级数据缓存缺失而全相联备份缓存命中时,数据和“使用位”会在全相联备份缓存中更新,同时该缓存行也会被带入一级数据缓存;若该操作导致一级数据缓存中的缓存行被替换,则全相联备份缓存会以与“一级数据缓存和备份缓存都出现缓存缺失时”相同的方式处理行填充操作;
当一级数据缓存命中而备份缓存缺失时,处理器只更新一级数据缓存中的数据和相关元数据,不对全相联备份缓存做任何更改;
当一级数据缓存和备份缓存都命中时,处理器更新一级数据缓存和全相联备份缓存中的数据和相关元数据,同时将全相联备份缓存中对应缓存行的“使用位”设为1。
同时,为保持缓存的一致性,若收到来自下级缓存的缓存失效请求,处理器会同时失效一级数据缓存和全相联备份缓存中的相应缓存行;而当一个缓存行从一级数据缓存中被驱逐时,无论该缓存行是否被放入全相联备份缓存,都会按照回写策略向下级缓存或主内存发送回写请求。
本发明的系统采用的技术方案是:一种基于备份缓存的一级数据缓存侧信道攻击防御系统,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现所述的基于备份缓存的一级数据缓存侧信道攻击防御方法。
与现有技术相比,本发明具有以下有益效果:
(1)本发明通过在缓存中增加与一级数据缓存具有相同访问时延的全相联备份缓存,将一级数据缓存中被驱逐的缓存行暂存于备份缓存中,从而隐藏缓存行的驱逐行为。
(2)为了增强本防御方法的安全性,本发明引入了针对备份缓存的随机使用替换策略和动态备份缓存容量调整机制,前者通过指令集和硬件扩展优先替换攻击者已经探测过的缓存行,后者利用三个硬件寄存器防止攻击者推断备份缓存的容量。
(3)利用本发明,可以在只引入约7%的性能损失的代价下对抗基于冲突的一级缓存侧信道攻击。
附图说明
下面使用实施例,以及具体实施方式作进一步说明本文的技术方案。另外,在说明技术方案的过程中,也使用了一些附图。对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图以及本发明的意图。
图1为本发明实施例的方法原理图;
图2为本发明实施例的中用于全相联备份缓存行替换的随机使用替换策略的工作流程;
图3为本发明实施例的中全相联备份缓存动态容量调整机制的初始化阶段的工作流程;
图4为本发明实施例的中全相联备份缓存动态容量调整机制的容量调整阶段的工作流程;
图5为本发明实施例的一级数据缓存与全相联备份缓存内存访问的处理流程图。
具体实施方式
为了便于本领域普通技术人员理解和实施本发明,下面结合附图及实施例对本发明作进一步的详细描述,应当理解,此处所描述的实施示例仅用于说明和解释本发明,并不用于限定本发明。
请见图1,本实施例提供的一种基于备份缓存的一级数据缓存侧信道攻击防御方法,通过在缓存中增加与一级数据缓存具有相同访问时延的全相联备份缓存,将一级数据缓存中被驱逐的缓存行暂存于备份缓存中,通过全相联备份缓存行替换的随机使用替换策略和全相联备份缓存动态容量调整机制,从而隐藏缓存行的驱逐行为;
在一种实施方式中,所述全相联备份缓存,在指令集架构中引入刷新全相联备份缓存行使用状态的指令BUCLR、在操作系统上下文切换函数中增加BUCLR指令调用。
刷新全相联备份缓存行使用状态的指令BUCLR在处理器流水线中的处理方式与英特尔指令集架构中的CLFLUSH指令类似,因为这两条指令都修改了缓存行的标签。执行BUCLR指令后,备份缓存中所有缓存行的“使用位”会被清除。此外,如果设计能并行清除中所有缓存行的“使用位”,则该指令只需几个周期即可完成。此外,BUCLR指令是特权指令,只能在特权模式下执行。
操作系统负责在不同上下文之间进行切换。在本实施例中,操作系统需要在上下文切换期间清除备份缓存中所有缓存行的“使用位”。由于不需要在备份缓存中存储缓存行的“使用位”,这一步骤只需2到4个周期的缓存命中即可完成,对性能没有明显影响。
在一种实施方式中,所述全相联备份缓存,包括从一级数据缓存中驱逐的缓存行的存储空间、全相联备份缓存的标签扩展、和全相联备份缓存动态容量调整机制所需的硬件寄存器。
在一种实施方式中,所述全相联备份缓存动态容量调整机制所需的硬件寄存器,包括内存访问计数寄存器、最小缓存容量寄存器和最大缓存容量寄存器。
内存访问计数寄存器,用于计算自上次重置内存访问计数以来的内存访问次数,不管是缓存命中还是缓存缺失。
最小缓存容量寄存器,用于指示备份缓存在动态容量调整过程中允许的容量下限。
最大缓存容量寄存器,用于指示备份缓存在动态容量调整过程中允许的容量上限。
所述全相联备份缓存的标签扩展,包含一个“使用位”和一个“启用位”。
“使用位”用于指示处理器在将缓存行放入备份缓存后是否对其进行访问。当缓存行首次进入备份缓存时,“使用位”被设置为0,当再次访问该缓存行时,无论一级数据缓存中是否存在数据,“使用位”都会被设置为1。
“启用位”用于指示该缓存行是否在备份缓存中处于可用状态,并用于动态备份缓存容量调整机制。如果“启用位”设置为0,则该缓存行在备份缓存中处于禁用状态,这意味着当前无法向该缓存行存储或从该缓存行加载数据。直到“启用位”被设置为1,该缓存行才会再次可用。
请见图2,在一种实施方式中,所述全相联备份缓存行替换的随机使用替换策略,用于防止未被攻击者探测的缓存行被替换出备份缓存。具体实现包括以下子步骤:
(1)当从一级数据缓存中驱逐的缓存行准备放入备份缓存时,备份缓存会首先选择“启用位”被设置为1的缓存行。
(2)然后,备份缓存会选择一个无效的缓存行(有效位设置为0)作为要替换的受害缓存行。
(3)如果备份缓存中没有无效的缓存行,那么备份缓存会选择“使用位”设置为1的缓存行作为候选。如果没有“使用位”设置为1的缓存行,那么备份缓存会选择“使用位”设置为0的缓存行作为候选。
(4)最后,备份缓存会生成一个随机数,然后从候选缓存行中随机选择一个受害缓存行。如果没有“使用位”设置为0的缓存行,则根据最近最少使用策略(LRU)进行替换,以避免替换最近使用过的缓存行。旧的缓存行被新带来的缓存行替换。
此外,为了避免在攻击者重新访问备份缓存中的缓存行之前将其驱逐,在操作系统的帮助下,在上下文切换过程中将“使用位”设置为0。在这种情况下,即使攻击者在备份缓存中的缓存行被其他进程或攻击第一步中的同一进程访问,在攻击者重新探测该缓存行之前,“使用位”仍会被设置为0。
请见图3和图4,在一种实施方式中,所述全相联备份缓存动态容量调整机制,使得攻击者无法感知备份缓存的容量。如图3所示,全相联备份缓存动态容量调整机制的初始化阶段的工作流程为:
当缓存初始化时,备份缓存的容量被设置为介于最小备份缓存容量寄存器和最大备份缓存容量寄存器之间的随机值,然后将与备份缓存容量相同数目的缓存行的“启用位”设置为1。
如图4所示,全相联备份缓存动态容量调整机制的容量调整阶段的工作流程为:
(1)当内存访问计数寄存器的值递减到0时,备份缓存的容量将再次调整为介于最小和最大备份缓存容量寄存器值之间的随机值,内存访问计数寄存器的值将重置为该随机值。
(2)如果备份缓存的容量没有变化,则无需更改备份缓存中缓存行的“启用位”。
(3)如果备份缓存的新容量大于备份缓存的旧容量,则会从“启用位”设置为0的缓存行中选择新增加的缓存行,并将其“启用位”设置为1。
(4)如果备份缓存的新容量小于备份缓存的旧容量小,备份缓存会根据“随机已用替换策略”选择缓存行,找到需要替换的受害缓存行,并将其“启用位”设置为0。
请见图5,在一种实施方式中,本实施例中一级数据缓存与全相联备份缓存内存访问的处理流程为:
(1)一级数据缓存访问和备份缓存访问是并行执行的,同时一级数据缓存和备份缓存的访问延迟相同且没有额外泄漏。
(2)因此,当处理器执行内存访问时,查询一级数据缓存和备份缓存有四种可能的缓存命中/缺失情况:00表示两者均缓存缺失、01表示一级数据缓存缺失而备份缓存命中、10表示一级数据缓存命中而备份缓存缺失、11表示两者均缓存命中。
00:第一种情况是一级数据缓存和备份缓存都出现缓存缺失,这时一级数据缓存会将内存访问请求转发给低级别的缓存或主存,并只将数据带入一级数据缓存。如果新引入的缓存行导致一级数据缓存中的缓存行被驱逐,则会根据“随机使用替换策略”将被驱逐的缓存行放入备份缓存,并将使用位设置为0。此外,备份缓存只从“启用位”设置为1的缓存行中寻找被替换的缓存行。
01:第二种情况是一级数据缓存缺失而备份缓存命中,这意味着数据存在于备份缓存中,但不存在于一级数据缓存中。在这种情况下,数据和“使用位”会在备份缓存中更新,同时该缓存行也会被带入一级数据缓存。然后,如果该操作导致一级数据缓存中的缓存行被替换,则备份缓存会以与第一种情况相同的方式处理行填充操作。
10:第三种情况是一级数据缓存命中而备份缓存缺失,处理方式与原始一级数据缓存访问相同,这意味着数据只存在于一级数据缓存中。在这种情况下,处理器只更新一级数据缓存中的数据和相关元数据,不对备份缓存做任何更改。
11:最后一种情况是一级数据缓存和备份缓存都命中,这意味着数据同时存在于一级数据缓存和备份缓存中。在这种情况下,处理器会更新一级数据缓存和备份缓存中的数据和相关元数据,同时将备份缓存中对应缓存行的“使用位”设为1。
(3)为了避免这些分支之间访问延迟的差异,从备份缓存到一级数据缓存的行填充和从一级数据缓存到备份缓存的行填充都是在数据响应到处理器之后进行的,类似于多级缓存之间的回写机制。
此外,为了保持缓存的一致性,如果收到来自下级缓存的缓存失效请求,处理器会同时失效一级数据缓存和备份缓存中的相应缓存行。而当一个缓存行从一级数据缓存中被驱逐时,无论该缓存行是否被放入备份缓存,都会按照回写策略向下级缓存或主内存发送回写请求。
为了验证本发明的效果,在gem5模拟器上对本实施例进行了实现与评估。
本实验使用OpenSSL 1.1.1m加密库中的基于查找表的AES加密算法来测试本发明的安全性。
在该测试中,攻击者首先会用驱逐集填充受害者进程中可能用于AES加密的的缓存组。然后,在受害者访问内存后,攻击者探测潜在的秘密缓存组,以推断加密活动。
通过执行1000次重复采样,发现本发明提出的系统不易受到攻击,因为攻击者在重新访问所有缓存组时都会获得缓存命中。因此,攻击者无法得知受害者是否在访问查找表,也就无法获取足够的信息来破解AES加密算法。
使用LMBench 3.0基准测试程序来测试本发明对操作系统内核带来的性能影响,评价指标为上下文切换时延。
实验结果表明,与没有应用全相联备份缓存的基线系统相比,本发明上下文切换开销平均增加了1.33%,最佳情况下上下文切换延迟减少了12%,最差情况下上下文切换延迟增加了15%。这也表明,在某些特定情况下,本发明还会对整个系统的性能做出正向贡献。
使用Mibench基准测试程序来测试本发明的小型单线程程序性能表现,评价指标为每周期指令数(IPC)。在系统调用模拟模式下的评估表明,与没有应用全相联备份缓存的基线系统相比,本发明可以给系统带来平均7.40%的性能开销,最佳情况下开销为2.51%,最坏情况下开销为11.29%。
使用SPEC CPU 2017基准测试程序来测试本发明的大型单线程程序性能表现,评价指标为每周期指令数(IPC)。在系统调用模拟模式下的评估表明,与没有应用全相联备份缓存的基线系统相比,本发明可以给系统带来平均7.34%的性能开销,最佳情况下开销为1.83%,最坏情况下开销为10.28%。
使用PARSEC 3.0基准测试程序来测试本发明的多线程程序性能表现,评价指标为兴趣区域(POI)中代码的执行时间。在全系统模拟模式下的评估表明,与没有应用全相联备份缓存的基线系统相比,本发明可以给系统带来平均7.59%的性能开销,最佳情况下开销为3.56%,最坏情况下开销为9.36%。
上述测试结果表明,本发明在提供安全性保障的基础之上对整个计算机性能带来了较低的性能开销,从而解决实际问题。
应当理解的是,上述针对较佳实施例的描述较为详细,并不能因此而认为是对本发明专利保护范围的限制,本领域的普通技术人员在本发明的启示下,在不脱离本发明权利要求所保护的范围情况下,还可以做出替换或变形,均落入本发明的保护范围之内,本发明的请求保护范围应以所附权利要求为准。

Claims (9)

1.一种基于备份缓存的一级数据缓存侧信道攻击防御方法,其特征在于:通过在缓存中增加与一级数据缓存具有相同访问时延的全相联备份缓存,将一级数据缓存中被驱逐的缓存行暂存于备份缓存中,通过全相联备份缓存行替换的随机使用替换策略和全相联备份缓存动态容量调整机制,从而隐藏缓存行的驱逐行为。
2.根据权利要求1所述的基于备份缓存的一级数据缓存侧信道攻击防御方法,其特征在于:所述全相联备份缓存,包括从一级数据缓存中驱逐的缓存行的存储空间、全相联备份缓存的标签扩展、和全相联备份缓存动态容量调整机制所需的硬件寄存器。
3.根据权利要求2所述的基于备份缓存的一级数据缓存侧信道攻击防御方法,其特征在于:所述全相联备份缓存的标签扩展,包含一个“使用位”和一个“启用位”。
4.根据权利要求2所述的基于备份缓存的一级数据缓存侧信道攻击防御方法,其特征在于:所述全相联备份缓存动态容量调整机制所需的硬件寄存器,包括内存访问计数寄存器、最小缓存容量寄存器和最大缓存容量寄存器。
5.根据权利要求2所述的基于备份缓存的一级数据缓存侧信道攻击防御方法,其特征在于:所述全相联备份缓存行替换的随机使用替换策略,具体实现包括以下子步骤:
(1)当从一级数据缓存中驱逐的缓存行准备放入全相联备份缓存时,全相联备份缓存会首先选择“启用位”被设置为1的缓存行;其中,所述全相联备份缓存的标签扩展,包含一个“使用位”和一个“启用位”;
(2)全相联备份缓存选择一个无效的缓存行作为要替换的受害缓存行;其中,有效位设置为0;
(3)若全相联备份缓存中没有无效的缓存行,则全相联备份缓存选择“使用位”设置为1的缓存行作为候选;若没有“使用位”设置为1的缓存行,则全相联备份缓存选择“使用位”设置为0的缓存行作为候选;
(4)全相联备份缓存生成一个随机数,然后从候选缓存行中随机选择一个受害缓存行;若没有“使用位”设置为0的缓存行,则根据最近最少使用策略进行替换,以避免替换最近使用过的缓存行;旧的缓存行被新带来的缓存行替换;
同时,在上下文切换过程中将“使用位”设置为0。
6.根据权利要求2所述的基于备份缓存的一级数据缓存侧信道攻击防御方法,其特征在于:所述全相联备份缓存动态容量调整机制,具体实现包括以下子步骤:
(1)当全相联备份缓存初始化时,全相联备份缓存的容量设置为介于最小备份缓存容量寄存器和最大备份缓存容量寄存器之间的随机值,然后将与备份缓存容量相同数目的缓存行的“启用位”设置为1;其中,所述全相联备份缓存的标签扩展,包含一个“使用位”和一个“启用位”;所述全相联备份缓存动态容量调整机制所需的硬件寄存器,包括内存访问计数寄存器、最小缓存容量寄存器和最大缓存容量寄存器;
(2)当内存访问计数寄存器的值递减到0时,全相联备份缓存的容量将再次调整为介于最小和最大备份缓存容量寄存器值之间的随机值,内存访问计数寄存器的值将重置为该随机值;
(3)判断;
若全相联备份缓存的容量没有变化,则无需更改全相联备份缓存中缓存行的“启用位”;
若全相联备份缓存的新容量大于全相联备份缓存的旧容量,则会从“启用位”设置为0的缓存行中选择新增加的缓存行,并将其“启用位”设置为1;
若全相联备份缓存的新容量小于全相联备份缓存的旧容量小,全相联备份缓存根据“随机已用替换策略”选择缓存行,找到需要替换的受害缓存行,并将其“启用位”设置为0。
7.根据权利要求1所述的基于备份缓存的一级数据缓存侧信道攻击防御方法,其特征在于:所述全相联备份缓存,在指令集架构中引入刷新全相联备份缓存行使用状态的指令BUCLR、在操作系统上下文切换函数中增加BUCLR指令调用。
8.根据权利要求1-7任意一项所述的基于备份缓存的一级数据缓存侧信道攻击防御方法,其特征在于:一级数据缓存与全相联备份缓存,内存访问并行执行,同时一级数据缓存和全相联备份缓存的访问延迟相同且没有额外泄漏;
当执行内存访问时,查询一级数据缓存和全相联备份缓存有四种可能的缓存命中/缺失情况,包括一级数据缓存和全相联备份缓存都出现缓存缺失、一级数据缓存缺失而全相联备份缓存命中、一级数据缓存命中而全相联备份缓存缺失、和一级数据缓存和全相联备份缓存都命中;从全相联备份缓存到一级数据缓存的行填充和从一级数据缓存到全相联备份缓存的行填充都是在数据响应到处理器之后进行;
当一级数据缓存和备份缓存都出现缓存缺失时,一级数据缓存会将内存访问请求转发给低级别的缓存或主存,并只将数据带入一级数据缓存;如果新引入的缓存行导致一级数据缓存中的缓存行被驱逐,则会根据“随机使用替换策略”将被驱逐的缓存行放入全相联备份缓存,并将“使用位”设置为0;此外,全相联备份缓存只从“启用位”设置为1的缓存行中寻找被替换的缓存行;
当一级数据缓存缺失而全相联备份缓存命中时,数据和“使用位”会在全相联备份缓存中更新,同时该缓存行也会被带入一级数据缓存;若该操作导致一级数据缓存中的缓存行被替换,则全相联备份缓存会以与“一级数据缓存和备份缓存都出现缓存缺失时”相同的方式处理行填充操作;
当一级数据缓存命中而备份缓存缺失时,处理器只更新一级数据缓存中的数据和相关元数据,不对全相联备份缓存做任何更改;
当一级数据缓存和备份缓存都命中时,处理器更新一级数据缓存和全相联备份缓存中的数据和相关元数据,同时将全相联备份缓存中对应缓存行的“使用位”设为1。
同时,为保持缓存的一致性,若收到来自下级缓存的缓存失效请求,处理器会同时失效一级数据缓存和全相联备份缓存中的相应缓存行;而当一个缓存行从一级数据缓存中被驱逐时,无论该缓存行是否被放入全相联备份缓存,都会按照回写策略向下级缓存或主内存发送回写请求。
9.一种基于备份缓存的一级数据缓存侧信道攻击防御系统,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1至8中任一项所述的基于备份缓存的一级数据缓存侧信道攻击防御方法。
CN202311693095.5A 2023-12-08 2023-12-08 基于备份缓存的一级数据缓存侧信道攻击防御方法及系统 Pending CN117807588A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311693095.5A CN117807588A (zh) 2023-12-08 2023-12-08 基于备份缓存的一级数据缓存侧信道攻击防御方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311693095.5A CN117807588A (zh) 2023-12-08 2023-12-08 基于备份缓存的一级数据缓存侧信道攻击防御方法及系统

Publications (1)

Publication Number Publication Date
CN117807588A true CN117807588A (zh) 2024-04-02

Family

ID=90422610

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311693095.5A Pending CN117807588A (zh) 2023-12-08 2023-12-08 基于备份缓存的一级数据缓存侧信道攻击防御方法及系统

Country Status (1)

Country Link
CN (1) CN117807588A (zh)

Similar Documents

Publication Publication Date Title
Vila et al. Theory and practice of finding eviction sets
KR102287758B1 (ko) 부채널 공격으로부터 캐시를 보호하는 시스템
Kiriansky et al. DAWG: A defense against cache timing attacks in speculative execution processors
US10725992B2 (en) Indexing entries of a storage structure shared between multiple threads
Zhang et al. Pthammer: Cross-user-kernel-boundary rowhammer through implicit accesses
US20210365590A1 (en) Systems and Methods for Random Fill Caching and Prefetching for Secure Cache Memories
Yan et al. Secdir: a secure directory to defeat directory side-channel attacks
Guo et al. Adversarial prefetch: New cross-core cache side channel attacks
US11783032B2 (en) Systems and methods for protecting cache and main-memory from flush-based attacks
Zhang et al. Implicit hammer: Cross-privilege-boundary rowhammer through implicit accesses
Thoma et al. {ClepsydraCache}--Preventing Cache Attacks with {Time-Based} Evictions
Guo et al. Leaky way: a conflict-based cache covert channel bypassing set associativity
Guo et al. Ivcache: Defending cache side channel attacks via invisible accesses
Saileshwar et al. Lookout for zombies: Mitigating flush+ reload attack on shared caches by monitoring invalidated lines
CN116055146A (zh) 一种基于数据隐藏的缓存侧信道攻击防御方法
Bao et al. Reducing timing side-channel information leakage using 3D integration
CN117807588A (zh) 基于备份缓存的一级数据缓存侧信道攻击防御方法及系统
Lipp Cache attacks on arm
Ramkrishnan et al. New attacks and defenses for randomized caches
Chen et al. New cross-core cache-agnostic and prefetcher-based side-channels and covert-channels
WO2020047258A1 (en) Systems and methods for preventing side-channel attacks
Chen et al. PrefetchX: Cross-core cache-agnostic prefetcher-based side-channel attacks
Wang et al. BackCache: Mitigating contention-based cache timing attacks by hiding cache line evictions
Guo New Cache Attacks and Defenses
Khoshavi et al. A Survey on Side Channel Attacks in Processor-Memory Chip Stack

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination