当前位置: 首页 > 专利查询>东南大学专利>正文

一种面向高性能处理器的防Spectre攻击的架构优化方法技术

技术编号:30055468 阅读:26 留言:0更新日期:2021-09-15 10:59
本发明专利技术提出一种面向高性能处理器的防Spectre攻击的架构优化方法,属于处理器体系结构安全技术研究领域。本发明专利技术围绕DCache缓存数据的机制而改善现有高性能处理器的架构设计,检查所有发送到DCache的访存操作并标记危险访存、追踪该访存数据在DCache中的填充过程,并对于存储了追踪数据的缓存行开启数据倒计时以清除被推测装载的敏感数据。相比较于传统的抵御Spectre方案,本发明专利技术所提出的安全优化方案保证了高性能、高安全性以及低硬件开销。销。销。

【技术实现步骤摘要】
一种面向高性能处理器的防Spectre攻击的架构优化方法


[0001]本专利技术涉及处理器体系结构的安全技术研究领域,具体涉及一种面向高性能处理器的防Spectre攻击的架构优化方法。

技术介绍

[0002]现代高性能处理器均会采用推测执行技术来满足性能要求,但随着Spectre攻击的曝光和发展,此类处理器面领着前所未有的数据泄露和架构安全问题。ARM、英特尔(Intel)、超威半导体(AMD)和RISC

V旗下诸多高性能处理器均受到攻击,故面向高性能处理器的安全问题成为不可忽略的一大挑战之一。
[0003]当前工业界所提出的面向高性能处理器的防Spectre攻击的方法主要分为两类:创建可信执行环境和增添软件补丁。针对创建可信执行环境而言,该类方案虽有效保护了不同安全隔离区间的数据访问,但忽略了Spectre攻击可利用同个安全隔离区内受害者程序并窃取该区域内数据信息;同时该方案的实施较为复杂,依赖操作系统的支持来进行分区数据存储、提取、管理等。针对增添软件补丁而言,该类方案从信息流的角度出发去约束数据信息的执行方向与时间来保护处理器的数据安全,但是该类方案需要指定的编译器来支持修改后的指令集架构(ISA),缺乏普遍性。虽然上述方案可有效地缓解处理器的安全问题,多数缓解方案均基于软件层面去提高代码或数据的安全执行度,但基于软件的解决方案通过引入冗余操作牺牲了性能,其次绕开直击Spectre攻击问题的本质:推测执行对缓存机制的影响,可能无法抵御多变的Spectre攻击变体。
专利技术内
[0004]本专利技术的目的是为了克服现有技术所存在的不足而提出了一种面向高性能处理器的防Spectre攻击的架构优化方法。本专利技术围绕DCache缓存数据的机制而改善现有处理器架构设计,检查所有发送到DCache的访存操作并标记危险访存、追踪该访存数据在DCache中的填充过程并对于存储了被追踪数据的缓存行开启数据倒计时以清除被推测装载的数据。
[0005]为实现上述目的,本专利技术的一种面向高性能处理器的防Spectre攻击的架构优化方法具体步骤如下:
[0006]步骤1,检查访存操作的安全性
[0007]由于当引发推测执行的分支指令获取到真实的分支跳转结果时,推测执行将面临两种情况。第一种情况是当预测的分支跳转方向、目的地址与真实情况一致,则推测执行的指令能够提交结果,转换成架构层面可见状态。而另一种情况下,预测方向、目的跳转地址与真实执行情况向不一致时,处理器需要撤销所有由该分支引发的被推测执行的指令。但是那些被瞬态指令改变过的微架构状态却未得以妥善处理,为Spectre攻击创造了数据泄露的契机。
[0008]因此,为了帮助微架构状态在瞬态执行结束时完成恢复工作,本专利技术在DCache中
设计了两个检查模块来对检查访存操作的安全性,两个检查模块分别为第一检查模块和第二检查模块;
[0009]所述第一检查模块用于对所有发送到DCache的访存操作进行检查,判断当前的访存操作是否为处于推测执行状态;
[0010]当前访存操作处于推测执行状态时,通过第二检查模块跟踪处于推测执行的访存操作,判断当前访存操作是否在DCache中产生数据缺失,如果当前访存操作在DCache中产生数据缺失,进入步骤2;反之,当前访存操作不属于危险操作,不进入步骤2;
[0011]Spectre攻击会利用推测执行该危险访存操作并企图在DCache中缓存一个危险数据,由于该危险数据处于未缓存状态,故该危险访存操作必然导致DCache产生数据缺失信号并等待危险数据的填充。故第二检查模块将严格限制推测执行的访存操作引发的DCache数据缺失。一旦产生数据缺失的信号,第二检查模块侦测并追踪该缺失。
[0012]步骤2,跟踪缺失数据的填充
[0013]设置缺失状态处理寄存器MSHR,用于处理数据缺失;缺失状态处理寄存器MSHR包括多个硬件寄存器,其中每个寄存器记录缺失数据的地址信息、缺失数据的有效位、返回数据标志位、以及危险标记位。
[0014]对产生DCache数据缺失的访存操作标记为危险访存,危险访存产生数据缺失请求;MSHR中危险标记位用于标记来自于危险访存操作产生的数据缺失请求;
[0015]所述缺失状态处理寄存器MSHR按数据缺失请求先后顺序将危险数据填充回DCache中缺失数据的数据缓存行,同时对缺失状态处理寄存器MSHR中的返回数据标志位进行置位,进入步骤3;
[0016]所述DCache中包括Tag阵列和数据阵列,其中数据阵列由若干缓存行组成,Tag阵列由若干Tag组成,缓存行与Tag一一对应,DCache数据缺失就是指DCache中的缓存行中数据缺失。
[0017]步骤3,在每个Tag行中增加两个额外的位域,分别是清除位域和清除倒计时位域;所述清除倒计时位域的宽度可调;清除位占用一位,用于标记当前缓存行是否存储了被标记为危险的访存数据,当缺失状态处理寄存器MSHR将被标记为危险的数据填充回DCache中缺失数据的数据缓存行时,对该数据所在缓存行对应的标记Tag阵列中的清除位做置位处理,清除倒计时随着系统时钟开始从预设值做自减操作,当清除倒计时数值减到0时,DCache将清除该缓存行的数据。以保证该危险数据不成为信息泄露的媒介。
[0018]进一步的,步骤1中第一检查模块判断当前的访存操作是否为处于推测执行状态,具体方法为:通过检查DCache接收到的访存操作的分支掩码是否有效来确定访存操作是否处于推测执行状态。
[0019]由于经过译码后所有分支指令或者跳转指令将会被分配一个分支标记,且所有被推测执行的指令均会携带一个分支掩码brmask,其中每位都与一个未获取到执行结果的分支指令相关。当该分支或跳转指令获取执行结果时,这些掩码自动失效。
[0020]所以,如果当前访存操作存在分支掩码,与0异或的结果将为1,则该访存操作仍处于推测执行状态。反之,如果当前访存操作不存在分支掩码,则当前操作属于正常的访存操作。
[0021]进一步的,步骤1中,第二检测模块判断当前访存操作是否在DCache中产生数据缺
失,具体方法为:来自CPU的虚拟地址被同时发送到DCache和内存管理单元MMU。当内存管理单元MMU将虚地址转换成实地址时,DCache也通过哈希算法从虚拟地址得到索引开始查找操作,DCache读取被索引到的缓存行的内容;当内存管理单元MMU将虚地址转换成实地址后,就把所述实地址发送给DCache。随后,DCache把所述实地址和缓存行对应的Tag阵列里保存的地址进行比较:相匹配时则缓存命中,不匹配时则缓存缺失。
[0022]如果当前访存数据在缓存行中命中,本专利技术对该类操作不做任何追踪。反之,当缓存行不存在任何相匹配的标记Tag时,当前访存操作在Cache中产生数据缺失。
[0023]进一步的,步骤2中,所述缺失状态处理寄存器MSHR按数据缺失请求先后顺序将危险数据填充回DCache中缺失数据的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种面向高性能处理器的防Spectre攻击的架构优化方法,其特征在于,所述优化方法主要针对DCache进行优化设计,具体包括如下步骤:步骤1,检查访存操作的安全性设置两个检查模块用于检查访存操作的安全性,两个检查模块分别为第一检查模块和第二检查模块;所述第一检查模块用于对所有发送到DCache的访存操作进行检查,判断当前的访存操作是否为处于推测执行状态;当前访存操作处于推测执行状态时,通过第二检查模块跟踪处于推测执行的访存操作,判断当前访存操作是否在DCache中产生数据缺失,如果当前访存操作在DCache中产生数据缺失,进入步骤2;反之,当前访存操作不属于危险操作,不进入步骤2;步骤2,跟踪缺失数据的填充设置缺失状态处理寄存器MSHR用于处理数据缺失;缺失状态处理寄存器MSHR包括多个硬件寄存器,其中每个寄存器记录缺失数据的地址信息、缺失数据的有效位、返回数据标志位、以及危险标记位;对产生DCache数据缺失的访存操作标记为危险访存,危险访存产生数据缺失请求;MSHR中危险标记位用于标记来自于危险访存操作产生的数据缺失请求;所述缺失状态处理寄存器MSHR按数据缺失请求先后顺序将危险数据填充回DCache中缺失数据的数据缓存行,同时对缺失状态处理寄存器MSHR中的返回数据标志位进行置位,进入步骤3;步骤3,在每个Tag行中增加两个额外的位域,分别是清除位域和清除倒计时位域;清除位域占用一位,用于标记当前缓存行是否存储了被标记为危险的访存数据,当缺失状态处理寄存器MSHR将被标记为危险的数据填充回DCache中缺失数据的数据缓存行时,对该数据所在缓存行对应的标记Tag阵列中的清除位域做置位处理,清除倒计时随着系统时钟开始从预设值做自减操作,当清除倒计时数值减到0时,DCache将清除该缓存行的数据。2.根据权利要求1所述一种面向高性能处理器的防Spectre攻击的架构优化方法,其特征在于,步骤1中第一检查模块判断当前的访存操作是否为处于推测执行状态,具体方法为:通过检查DCache接收到的访存操作的分支掩码是否有效来确定访存操作是否处于推测执行状态;如果当前...

【专利技术属性】
技术研发人员:凌明曾琴刘昊
申请(专利权)人:东南大学
类型:发明
国别省市:

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

1