CN111241551B - 基于缓存命中状态的处理器芯片假安全依赖冲突的识别方法 - Google Patents
基于缓存命中状态的处理器芯片假安全依赖冲突的识别方法 Download PDFInfo
- Publication number
- CN111241551B CN111241551B CN202010025958.1A CN202010025958A CN111241551B CN 111241551 B CN111241551 B CN 111241551B CN 202010025958 A CN202010025958 A CN 202010025958A CN 111241551 B CN111241551 B CN 111241551B
- Authority
- CN
- China
- Prior art keywords
- cache
- access operation
- security
- current
- current access
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 26
- 230000007123 defense Effects 0.000 claims abstract description 7
- 230000001419 dependent effect Effects 0.000 claims description 6
- 230000007246 mechanism Effects 0.000 abstract description 3
- 230000008859 change Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 3
- 230000015556 catabolic process Effects 0.000 description 2
- 238000006731 degradation reaction Methods 0.000 description 2
- 230000004888 barrier function Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000008092 positive effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Advance Control (AREA)
Abstract
本发明提供一种基于缓存命中状态的处理器芯片假安全依赖冲突的识别方法,属于处理器微体系结构设计领域,为了在保证防御基于缓存侧信道的推测执行漏洞的前提下,降低推测执行机制中引入安全特性带来的性能损失,本方法通过区分攻击中缓存状态变化的原因,利用缓存结构的局部性,仅仅需要在缓存做很小的改动中,无需操作系统或软件系统的信息,对于软件透明,同时攻击者无法利用软件来干预此类假安全依赖的判断。
Description
技术领域
本发明属于处理器微体系结构设计领域,涉及一种基于缓存命中状态识别假安全依赖冲突的安全处理器微体系结构设计方法。
背景技术
推测执行是高性能处理器中提升指令并行能力的基本性能优化措施之一。然而,“幽灵”类漏洞的披露揭示了现有高性能处理器中,推测执行技术存在安全隐患。从移动端至云端等不同的应用场景下,几乎所有商业高性能处理器都面临着被攻击者在错误推测的窗口期内窃取敏感信息的风险。
“幽灵”类漏洞的产生依赖于两点。1)处理器采用推测执行降低由未被解析的指令导致的流水线堵塞引起的性能损失。但预测机制很难保证完全准确。因此在错误预测时,后续的指令仍然执行,在确定错误预测后,会将体系结构状态恢复至正确状态,重新执行。然而,在错误预测期间对微体系结构上的改变却不会被恢复。2)在计算机体系结构设计中,缓存的初衷即利用程序执行过程中具有显著的空间局部性。考虑到时序、布局布线的影响,靠近核内的缓存不宜过大,故当前处理器采用多级缓存来保证程序的局部性。访问不同级别的缓存延迟不同,越靠近处理器访存管理模块的部分延迟越小。因此,在错误推测执行阶段,对访存内容所处缓存层级的改变有可能被攻击者通过分析延迟差距,反推出敏感程序执行期间的私密信息。
针对这些漏洞,一种解决方法是在发生推测执行时插入栅栏指令,触发推测执行的指令未被解析前,阻止后续访存指令的执行。然而,在正常程序执行过程中,大部分访存操作是安全的。这种方法堵塞所有访存操作,必然会引起严重的性能下降。另一种解决方法是更新微码,在人工或者编译器的帮助下,分析程序执行时可疑的片段,进行定点防御。然而静态分析很难保证覆盖面,动态分析则需要消耗大量的时间。为进一步刻画推测执行侧信道与推测执行指令的联系,安全依赖为触发推测执行操作与超前推测执行指令之间建立了依赖关系,但是简单地堵塞根据依赖关系分析被标记为可疑的访存操作同样会带来严重的性能下降。
发明内容
为了在保证防御基于缓存侧信道的推测执行漏洞的前提下,降低推测执行机制中引入安全特性带来的性能损失,本发明通过区分攻击中缓存状态变化的原因,利用缓存结构的局部性,提出一种基于缓存命中状态的处理器芯片假安全依赖冲突的识别方法,动态识别假安全依赖。本方法仅仅需要在缓存做很小的改动,无需操作系统或软件系统的信息,对于软件透明,同时攻击者无法利用软件来干预此类假安全依赖的判断。
安全依赖在未被解析的指令与后续超前推测执行的指令之间建立了依赖关系,并对存在安全依赖的访存指令添加标记,流水线后端可以通过分析依赖关系,采取相应的防御措施。
基于此,本发明采用如下技术方案:
一种基于缓存命中状态的处理器芯片假安全依赖冲突的识别方法,包括以下步骤:
1)在访问缓存单元时,根据当前访存操作请求的安全依赖标签,判断当前访存操作是否在缓存中命中,进而确定当前访存操作的安全依赖的真假;
2)如果当前访存操作的安全依赖为真,则执行防御策略;如果当前访存操作的安全依赖为假,则执行当前访存操作,并将当前从缓存中读取的数据返回到流水线,从而达到安全与性能的平衡。
与现有技术相比,本发明的积极效果为:
本发明采用在程序执行过程中,根据访存操作是否标签(Tag)命中,动态地从被判定为存在安全依赖关系的访存操作中识别出假安全依赖的。由于程序执行时往往具备良好的空间局部性,大部分访存操作将在缓存命中。因此,本发明将识别出大量的假安全依赖。允许这些假安全依赖操作正常执行,可以保证性能。对于真相关依赖,阻止其对缓存内容的改变,保证安全性。最终达到安全性与性能的平衡。
附图说明
图1是基于缓存命中状态的假安全依赖冲突识别方法应用示意图。
具体实施方式
为使本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合所附图作详细说明如下。
本发明提出的基于缓存命中状态的处理器芯片假安全依赖冲突的识别方法,其所采用的技术方案主要包含以下内容:
一)动态判断假安全依赖
在访问缓存单元时,根据当前访存操作请求的安全依赖标签,并依据当前访存操作是否在该级缓存中标签(Tag)命中,即Tag数组中是否已经记录当前访存操作请求的内容,来判断该当前访存操作的安全依赖的真假:
如果当前访存操作在缓存中未命中,则当前操作需要从低级缓存或内存中读取新的缓存行至当前缓存。此次操作不仅仅会引入新的缓存行,而且可能会将原有的缓存行替换出去。这些变化都有可能被攻击者利用,反推出敏感信息,则判定当前访存操作的安全依赖为真。
如果当前访存操作在缓存中命中,则说明当前访存操作不会读取新的缓存行,即不会改变缓存内容的状态。此时,判定当前访存操作的安全依赖为假。
二)选择性地执行访存操作
当当前访存操作的安全依赖为真时,则执行防御策略,例如可以阻止该访存操作的执行;当发现安全依赖为假时,则允许该访存操作正常地执行,并将此次从缓存中读取的数据返回到流水线。
针对上述基于缓存命中状态的动态检测假安全依赖冲突识别方法,现列举一实施例,其示意图如图1所示,其主要工作过程包含以下几项内容:
1)安全依赖信息的传递
在仍保留程序执行序的阶段甄别出访存操作是否安全依赖于之前的指令后,需要将标注的安全依赖标签信息伴随访存请求共同传递至缓存单元。安全依赖标签信息可以通过在指令中附加位或者通过单独的表等方法提供给缓存单元。安全依赖标签以一位可以表示是否存在安全依赖,也可以通过多位区分不同级别的安全级别,以进行不同的处理方式。
2)缓存中对安全依赖标签的检查
在缓存的标签(Tag)比较结束后,得到当前访存是否在缓存中命中的信息。依据此信息,若此访存操作命中,且1)中传递的安全依赖标签为真,那么此次访存操作的安全依赖为真,否则,此访存操作不存在安全依赖或存在假安全依赖。
3)缓存对访存请求的处理
对于真安全依赖,则阻止其后续的访存操作,直到其安全依赖解决之后,再次从保留当前访存请求的队列中重新发起访存操作。但本发明不限于采用阻止执行的防御方法。对于假安全依赖和不存在安全依赖的访存操作,允许其正常执行,将访存信息返回给流水线,例如读写单元、寄存器等。考虑到缓存中存储的一致性状态也可能存在信息泄露,可以在被依赖的指令解析后,再更新这些信息,或者采用不更新的方法。本发明包括但不限于这两种实现方式。
以上实施例仅用以说明本发明的技术方案而非对其进行限制,本领域的普通技术人员可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明的精神和范围,本发明的保护范围应以权利要求书所述为准。
Claims (10)
1.一种基于缓存命中状态的处理器芯片假安全依赖冲突的识别方法,其特征在于,包括以下步骤:
在访问缓存单元时,根据当前访存操作请求的安全依赖标签,并根据当前访存操作是否在该级缓存中标签命中,判断当前访存操作是否在缓存中命中,进而确定当前访存操作的安全依赖的真假;
如果当前访存操作的安全依赖为真,则执行防御策略;如果当前访存操作的安全依赖为假,则执行当前访存操作,并将当前从缓存中读取的数据返回到流水线。
2.如权利要求1所述的方法,其特征在于,在判断出安全依赖关系的真假后,将标注的安全依赖标签信息同访存请求一起传递给缓存单元。
3.如权利要求2所述的方法,其特征在于,所述安全依赖标签信息通过在指令中附加位或者通过单独的表传递给缓存单元。
4.如权利要求2所述的方法,其特征在于,安全依赖标签为一位或多位,为一位时用来表示是否存在安全依赖,为多位时用来区分不同安全级别。
5.如权利要求1所述的方法,其特征在于,如果当前访存操作在缓存中未命中,则当前访存操作从低级缓存或内存中读取新的缓存行至当前缓存,引入新的缓存行,并判定当前访存操作的安全依赖为真;如果当前访存操作在缓存中命中,则判定当前访存操作的安全依赖为假。
6.如权利要求1或5所述的方法,其特征在于,命中是指命中缓存中标签,此时标签数组中会记录当前访存操作请求的内容。
7.如权利要求1所述的方法,其特征在于,所述防御策略包括:阻止当前访存操作的执行,直到安全依赖解除,再次从保留当前访存请求的队列中重新发起访存操作。
8.如权利要求1所述的方法,其特征在于,在程序执行序的阶段甄别出当前访存操作是否安全依赖于之前的指令。
9.如权利要求8所述的方法,其特征在于,甄别出之前的被依赖的指令后,选择更新访存信息或者不更新访存信息。
10.如权利要求1所述的方法,其特征在于,流水线包括读写单元、寄存器。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2019108896477 | 2019-09-19 | ||
CN201910889647 | 2019-09-19 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111241551A CN111241551A (zh) | 2020-06-05 |
CN111241551B true CN111241551B (zh) | 2022-01-25 |
Family
ID=70870802
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010025958.1A Active CN111241551B (zh) | 2019-09-19 | 2020-01-10 | 基于缓存命中状态的处理器芯片假安全依赖冲突的识别方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111241551B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102841857A (zh) * | 2012-07-25 | 2012-12-26 | 龙芯中科技术有限公司 | 缓存预测执行的处理器与装置及方法 |
CN106130719A (zh) * | 2016-07-21 | 2016-11-16 | 中国科学院信息工程研究所 | 一种抵抗内存泄漏攻击的密码算法多核实现方法及装置 |
CN108427576A (zh) * | 2018-02-12 | 2018-08-21 | 华夏芯(北京)通用处理器技术有限公司 | 一种免受Spectre攻击的高性能推测执行算法 |
CN108628751A (zh) * | 2018-05-17 | 2018-10-09 | 北京三快在线科技有限公司 | 一种无用依赖项检测方法及装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104298677B (zh) * | 2013-07-16 | 2017-10-10 | 中国移动通信集团浙江有限公司 | 一种关注点依赖关系识别方法及系统 |
US9223985B2 (en) * | 2013-10-09 | 2015-12-29 | Sap Se | Risk assessment of changing computer system within a landscape |
CN104834528B (zh) * | 2015-05-25 | 2018-06-22 | 北京京东尚科信息技术有限公司 | 依赖版本处理插件及采用其对依赖版本进行处理的方法 |
US10452552B2 (en) * | 2017-04-17 | 2019-10-22 | Intel Corporation | Memory-based dependency tracking and cache pre-fetch hardware for multi-resolution shading |
CN108733409B (zh) * | 2017-04-24 | 2022-10-25 | 华为技术有限公司 | 执行推测线程的方法以及片上多核处理器 |
-
2020
- 2020-01-10 CN CN202010025958.1A patent/CN111241551B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102841857A (zh) * | 2012-07-25 | 2012-12-26 | 龙芯中科技术有限公司 | 缓存预测执行的处理器与装置及方法 |
CN106130719A (zh) * | 2016-07-21 | 2016-11-16 | 中国科学院信息工程研究所 | 一种抵抗内存泄漏攻击的密码算法多核实现方法及装置 |
CN108427576A (zh) * | 2018-02-12 | 2018-08-21 | 华夏芯(北京)通用处理器技术有限公司 | 一种免受Spectre攻击的高性能推测执行算法 |
CN108628751A (zh) * | 2018-05-17 | 2018-10-09 | 北京三快在线科技有限公司 | 一种无用依赖项检测方法及装置 |
Non-Patent Citations (3)
Title |
---|
Adaptive TTL-Based Caching for Content Delivery;Soumya Basu 等;《IEEE/ACM Transactions on Networking》;20180412;第26卷(第3期);全文 * |
一种基于Trace精度改进的内存系统模拟器优化方法;卢天越 等;《计算机研究与发展》;20141215;第2014卷(第s1期);全文 * |
基于缓存命中的DPI系统预处理方法;马跃鹏 等;《信息网络安全》;20161130;第2016卷(第10期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111241551A (zh) | 2020-06-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210173931A1 (en) | Speculative side-channel attack mitigations | |
JP7228592B2 (ja) | 投機的キャッシュ記憶領域 | |
KR101835250B1 (ko) | 트랜잭셔널 메모리를 사용한 비인가 메모리 수정 및 액세스의 검출 | |
US8095741B2 (en) | Transactional memory computing system with support for chained transactions | |
CN111936980A (zh) | 用于控制将数据分配到缓存存储中的装置和方法 | |
CN110032867B (zh) | 一种主动切断隐蔽通道应对缓存侧信道攻击的方法及系统 | |
US11733972B2 (en) | Processor that mitigates side channel attacks by providing random load data as a result of execution of a load operation that does not have permission to access a load address | |
US11734426B2 (en) | Processor that mitigates side channel attacks by prevents cache line data implicated by a missing load address from being filled into a data cache memory when the load address specifies a location with no valid address translation or no permission to read from the location | |
US11907369B2 (en) | Processor that mitigates side channel attacks by preventing cache memory state from being affected by a missing load operation by inhibiting or canceling a fill request of the load operation if an older load generates a need for an architectural exception | |
US11853424B2 (en) | Processor that mitigates side channel attacks by refraining from allocating an entry in a data TLB for a missing load address when the load address misses both in a data cache memory and in the data TLB and the load address specifies a location without a valid address translation or without permission to read from the location | |
JP7377211B2 (ja) | 投機的サイド・チャネル・ヒント命令 | |
US20150277914A1 (en) | Lock elision with binary translation based processors | |
KR102344010B1 (ko) | 벡터 명령들에 대한 요소간 어드레스 해저드들의 처리 | |
JP7443641B2 (ja) | 命令の機密としての動的な指定 | |
CN111241010B (zh) | 一种基于缓存划分及回滚的处理器瞬态攻击防御方法 | |
CN110851836A (zh) | 一种面向Meltdown攻击的主动防御方法 | |
KR20200139709A (ko) | 명령들의 명령 캐시 스토리지에의 할당을 제어하는 장치 및 방법 | |
CN111259384B (zh) | 一种基于缓存随机无效的处理器瞬态攻击防御方法 | |
CN111241599B (zh) | 一种处理器芯片安全依赖的动态识别及维护方法 | |
CN111241551B (zh) | 基于缓存命中状态的处理器芯片假安全依赖冲突的识别方法 | |
CN110889147B (zh) | 一种利用填充缓存抵御Cache边信道攻击的方法 | |
US11294828B2 (en) | Apparatus and method for controlling allocation of information into a cache storage | |
CN111274573B (zh) | 一种基于访存请求序列的处理器芯片假安全依赖冲突的识别方法 | |
Smith et al. | Security vulnerabilities in microprocessors | |
Meng et al. | Execute on Clear (EoC): Enhancing Security for Unsafe Speculative Instructions by Precise Identification and Safe Execution |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |