[发明专利]一种基于缓存随机无效的处理器瞬态攻击防御方法有效
申请号: | 202010053213.6 | 申请日: | 2020-01-17 |
公开(公告)号: | CN111259384B | 公开(公告)日: | 2022-06-14 |
发明(设计)人: | 武成岗;王喆;唐博文;贾力陈;谢梦瑶 | 申请(专利权)人: | 中国科学院计算技术研究所 |
主分类号: | G06F21/55 | 分类号: | G06F21/55;G06F12/0808;G06F12/0811;G06F12/084;G06F12/0842 |
代理公司: | 北京泛华伟业知识产权代理有限公司 11280 | 代理人: | 王勇 |
地址: | 100190 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 缓存 随机 无效 处理器 瞬态 攻击 防御 方法 | ||
本发明实施例提供了一种缓存管理方法,包括:响应于访存请求,将包含投机的访存装载指令所需数据的数据块装载到普通缓存,在缓存的普通缓存的数据块被投机的访存装载指令装载进来的数据块踢出普通缓存时,执行以下操作:将被踢出的数据块装入同级缓存的影子缓存;从普通缓存的所有缓存行中随机选择干扰缓存行,将干扰缓存行的数据块写到下一级存储介质后将干扰缓存行无效。本发明可以防止攻击者利用投机的访存装载指令将特定的数据块踢出某级缓存而造成其访问速度的改变,而且还随机选择干扰缓存行,将干扰缓存行的数据块设置为无效,使干扰缓存行的数据块的访问速度发生改变,以干扰攻击者,能有效防止被侧信道攻击探测到秘密的值。
技术领域
本发明涉及计算机技术领域,具体来说涉及改善处理器安全性的机制和技术,更具体地说,涉及一种基于缓存随机无效的处理器瞬态攻击防御方法。
背景技术
为了让处理器获得最佳性能,存储器的速度必须能够跟上处理器的速度。也就是说,当处理器在执行指令时,我们并不期望它因为等待指令或者操作数而暂停执行。因此,现代处理器的寄存器和主存之间引入了高速缓存(Cache)。这样,计算机的存储器被组织成层次结构。最顶层(最靠近处理器的一层)是处理器内的寄存器,接下来是一级或者多级高速缓存,当使用多级缓存时,通常第一、第二、第三级高速缓存等依次被标记为L1、L2、L3等,再往下则是主存(通常也称主存储器或者内存),它通常由动态随机存取存储器(DRAM)构成,例如,参见图1,该图示出了现代处理器的一种常见的架构。沿着存储器层次结构自上到下,存储器成本也逐层下降,容量在变大,但存取时间在变长。全都使用最快的存储器的思路固然好,但是这样的成本也是最昂贵的,难以让大众能够消费,因此,通过使用更多较慢的存储器,以便达到存取时间和成本之间的均衡。并且,在存储器中恰当的组织程序和数据,使需要存取的数据通常在较快的存储器中,以避免处理器长时间等待数据,导致计算效率不高。
除了高速缓存的设置,为了进一步提高计算效率,现代处理器还采用了投机执行(Speculative execution)。通常,一条普通的计算指令1拍结束,一条访存指令如果缓存命中(Hit),需要10到100拍;如果缓存未命中(Miss,也称缺失),到主存里取,需要上万拍甚至更多。如果上一条指令被访存卡了十万拍,后面其他的指令只能等着上一条指令执行完再执行,则会严重影响计算效率。因此,现代处理器普遍使用投机执行的设计,其是一种用于提升程序性能的有效机制。简单地说,投机执行是指根据现有信息,利用空转时间投机执行一些指令,即,提前执行一些将来可能用得上,也可能用不上的指令。如果投机成功,则可以立即提交,提高计算效率,如果投机失败,指令执行完成后发现用不上,处理器会抛弃计算结果,并回退执行期间造成的副作用。但是,回退执行期间造成的副作用仅是针对处理器内的寄存器,而已经被投机的访存加载指令加载到缓存中的数据块是不会被处理的。
2018年,熔断(Meltdown)攻击和幽灵(Spectre)攻击的披露,让投机执行实现机制中隐藏的巨大安全漏洞逐渐受到各领域开发者的广泛关注。
熔断攻击由Google Project Zero团队提出。熔断攻击利用处理器中乱序执行时访存权限检查延迟以及异常现场恢复不彻底的漏洞,绕过操作系统中各种数据隔离机制,偷取内核等敏感区域的数据。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院计算技术研究所,未经中国科学院计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010053213.6/2.html,转载请声明来源钻瓜专利网。