[发明专利]一种目标主机分支预测单元的安全性评估方法有效
申请号: | 201910541462.7 | 申请日: | 2019-06-21 |
公开(公告)号: | CN110336803B | 公开(公告)日: | 2020-08-11 |
发明(设计)人: | 霍天霖;赵培;岳晓萌;赵姗 | 申请(专利权)人: | 中国科学院软件研究所 |
主分类号: | H04L29/06 | 分类号: | H04L29/06;H04L12/24;G06F21/57 |
代理公司: | 北京君尚知识产权代理有限公司 11200 | 代理人: | 司立彬 |
地址: | 100190 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 目标 主机 分支 预测 单元 安全性 评估 方法 | ||
1.一种目标主机分支预测单元的安全性评估方法,其步骤包括:
1)初始化阶段,将目标主机的分支预测单元BPU由一级预测器预测模式转变为二级预测器预测模式;然后将测试分支历史序列和测试分支指令重复交替执行,用于将目标PHT项中的饱和计数器值设定为弱跳转状态;其中,测试程序中所执行过的分支历史序列称为测试分支历史序列,测试程序中与目标程序中的目标分支指令位于相同程序位置的分支指令被称为测试分支指令,目标程序中与设定私密信息相关的分支指令称为目标分支指令,目标分支指令在二级方向预测器中进行预测时所使用的PHT项称为目标PHT项;
2)执行阶段,目标主机在已执行过目标分支历史序列的基础上,执行目标程序中的目标分支指令,修改二级方向预测器中指定条目中的信息;目标程序中所执行过的分支历史序列称为目标分支历史序列;
3)探测阶段,目标主机执行测试代码中的测试分支指令,用于对二级方向预测器中目标PHT项的状态进行探测,如果探测时间超过设定阈值,则判定BPU预测错误;否则判定BPU预测正确并且目标分支指令是一个跳转指令,然后测试程序预测该目标分支指令的跳转方向,如果预测的跳转方向与目标分支指令真实执行的跳转方向一致,则判定目标主机不安全。
2.如权利要求1所述的方法,其特征在于,步骤1)中,构造诱使一级方向预测器发生预测错误的分支序列给目标主机,使得目标主机产生一级方向预测器的预测错误。
3.如权利要求1所述的方法,其特征在于,通过逆向分析出从一级方向预测器转移到二级方向预测器的算法,然后利用该算法构造诱使一级方向预测器发生预测错误的分支序列。
4.如权利要求1所述的方法,其特征在于,步骤1)中,按照BPU中一级方向预测器和二级方向预测器协同工作的机制,构造测试分支指令并发送给目标主机,从而使得目标主机产生一级方向预测器的预测错误。
5.如权利要求1所述的方法,其特征在于,所述测试分支历史序列与所述目标分支历史序列相同。
6.如权利要求1所述的方法,其特征在于,测试程序和目标程序分别运行于同一个物理核的两个不同逻辑核上,二者共享二级方向预测器中的所有PHT项。
7.如权利要求1所述的方法,其特征在于,将测试分支历史序列和测试分支指令重复执行8次,且设置测试分支指令的执行方向为不跳转,用于将二级方向预测器中目标PHT项中3位饱和计数器的值设定为强不跳转状态;将测试分支历史序列和测试分支指令重复执行4次,且设置测试分支指令的执行方向为跳转,用于将PHT项中的饱和计数器值设定为弱跳转状态。
8.如权利要求1所述的方法,其特征在于,步骤1)中,将目标PHT项中的饱和计数器值设定为弱跳转状态的方法为:将测试分支历史序列和测试分支指令重复交替执行,用于将二级方向预测器中目标PHT项中3位饱和计数器的值设定为强不跳转状态;然后将测试分支历史序列和测试分支指令重复执行,用于将目标PHT项中的饱和计数器值设定为弱跳转状态。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院软件研究所,未经中国科学院软件研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910541462.7/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种服务器的远程操作方法及装置
- 下一篇:多媒体文件的恢复方法、装置及设备