The present invention discloses a high performance speculative execution algorithm in the field of CPU security technology, which is free from Spectre attack. The specific steps of the algorithm are as follows: S1: decoding and dispatching phase; S2: renaming phase; S3: memory access request sending phase; S4: lower cache request sending phase. The scheme considers the cost of repairing hardware and security, and ensures that the speculative execution takes advantage of its original performance in a secure detection and isolation environment. Compared with the original speculative execution algorithm, the proposed scheme solves the problem of attack immunity of multiple spectrum attack variants, and fundamentally guarantees that the speculative execution will not cause user messages. Interest leakage, compared with the original scheme, will consume additional hardware to increase the detection isolation mechanism, the threat of memory access sequence, the implementation of a secure and conservative mechanism, which may have performance losses in a few scenarios.
【技术实现步骤摘要】
一种免受Spectre攻击的高性能推测执行算法
本专利技术涉及CPU安全
,具体为一种免受Spectre攻击的高性能推测执行算法。
技术介绍
近期暴露的CPU底层硬件设计缺陷包括Meltdown和Spectre,破坏用户级别和特权级别隔离机制,并提供不同用户进程之间的非法访问通道以及云端信息窃取途径。Spectre缺陷利用推测执行的副作用,诱使CPU执行不该执行的程序路径,从而在数据缓存中留下操作痕迹,最后利用侧信道攻击恢复机密数据。各大主流操作系统厂商和通用软件提供商,发布了修复性的patch,并完成了自底向上适配,以显著性的性能牺牲换取用户信息安全。现有技术的缺陷和不足:基于Spectre缺陷的攻击由于利用了绝大多数现代处理器都会使用的推测执行技术,因此影响到所有主流处理器,现有硬件设计无法通过简单的配置或是控制避免推测执行,而关闭推测执行会使CPU性能下滑严重,因此只能依靠操作系统的修复来避免被攻击,但是依然会在特定应用领域或场景下带来可观的性能损失。此外软件修复可能无法适应灵活多变的攻击变体,不能从根本上完全杜绝此类问题。
技术实现思路
本专利技术的目的 ...
【技术保护点】
1.一种免受Spectre攻击的高性能推测执行算法,其特征在于:该免受Spectre攻击的高性能推测执行算法的具体步骤如下:S1:译码、派遣阶段:通过分支预测之后的分支指令会被标记是否被预测执行,这个状态会被传递到派遣单元,Recorder结构会记录下来最近被预测执行的一笔分支指令,并把自身状态设置为busy,如果这笔最近被预测的分支指令被提交,那么recorder会切换到idle的状态,表明没有预测的分支指令在乱序执行过程中。通过这一结构,所有到达派遣单元的指令都会知道自己是否处在推测执行的状态下,从而为进一步的攻击特征提取提供最初的选定范围。S2:重命名阶段:传统意义的 ...
【技术特征摘要】
1.一种免受Spectre攻击的高性能推测执行算法,其特征在于:该免受Spectre攻击的高性能推测执行算法的具体步骤如下:S1:译码、派遣阶段:通过分支预测之后的分支指令会被标记是否被预测执行,这个状态会被传递到派遣单元,Recorder结构会记录下来最近被预测执行的一笔分支指令,并把自身状态设置为busy,如果这笔最近被预测的分支指令被提交,那么recorder会切换到idle的状态,表明没有预测的分支指令在乱序执行过程中。通过这一结构,所有到达派遣单元的指令都会知道自己是否处在推测执行的状态下,从而为进一步的攻击特征提取提供最初的选定范围。S2:重命名阶段:传统意义的重命名阶段,负责解决数据冲突问题,为指令建立关联性,其内部主体包含一个寄存器别名表,记录逻辑寄存器与物理寄存器的映射关系。Spectre的攻击程序特征是在推测执行的路径上存在一个间址寻址的指令。从派遣阶段出来以后,所有加载指令都会被标识是否处于推测执行的状态中,以及到底依赖于最近的哪一笔分支指令,这两个信息会在目标寄存器更新寄存器别名表的同时,顺便被记录在别名表里,此外如果当前指令的源寄存器在访问寄存器别名表时,发现依赖于早前的一笔推测执行的加载指令时,会把这个推测状态同样记录在自己目的寄存器在寄存器别名表对应的表项里,这样就完成了推测执行状态和依赖分支指令的传递过程,我们称之为“着色”。S3:访存请求发送阶段:从重命名阶段出来以后每条加载指令会携带是否为推测执行的间址访存指令的指示位以及依赖的分支指令,这时候考虑到设计的复杂程度和访存的保守程度,分为几种不同做法:(1)只要当前加载指令为推测执行的间址访存指令,把他设...
【专利技术属性】
技术研发人员:费晓龙,
申请(专利权)人:华夏芯北京通用处理器技术有限公司,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。