CN111638913A - 一种基于随机化索引的处理器芯片分支预测器安全增强方法及电子装置 - Google Patents

一种基于随机化索引的处理器芯片分支预测器安全增强方法及电子装置 Download PDF

Info

Publication number
CN111638913A
CN111638913A CN202010322524.8A CN202010322524A CN111638913A CN 111638913 A CN111638913 A CN 111638913A CN 202010322524 A CN202010322524 A CN 202010322524A CN 111638913 A CN111638913 A CN 111638913A
Authority
CN
China
Prior art keywords
branch predictor
branch
security
random number
index
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.)
Granted
Application number
CN202010322524.8A
Other languages
English (en)
Other versions
CN111638913B (zh
Inventor
侯锐
孟丹
赵路坦
李沛南
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Institute of Information Engineering of CAS
Original Assignee
Institute of Information Engineering of CAS
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Institute of Information Engineering of CAS filed Critical Institute of Information Engineering of CAS
Publication of CN111638913A publication Critical patent/CN111638913A/zh
Application granted granted Critical
Publication of CN111638913B publication Critical patent/CN111638913B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3804Instruction prefetching for branches, e.g. hedging, branch folding
    • G06F9/3806Instruction prefetching for branches, e.g. hedging, branch folding using address prediction, e.g. return stack, branch history buffer

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

本发明提供一种基于随机化索引的处理器芯片分支预测器安全增强方法及电子装置,其方法包括:将不同的程序划分成不同的安全域,并获取所述安全域的分支预测器原始索引;分配一个随机数给每个所述安全域,并使所述随机数作用于分支预测器原始索引的映射关系中,得到新索引值;使用所述新索引值索引安全增强的分支预测器。本发明创新地采用随机化的分支预测器索引,打破了分支指令地址和分支预测器固定的映射关系,使攻击者无法准确获知分支指令在分支预测器中历史信息的具体位置,有助于在恶意感知攻击中增加噪声和阻断基于竞争的分支预测器侧信道。

Description

一种基于随机化索引的处理器芯片分支预测器安全增强方法 及电子装置
技术领域
本发明属于处理器体系结构领域,涉及一种基于随机化索引的处理器芯片分支预测器安全增强方法及电子装置。
背景技术
当前分支预测技术是处理器提高程序执行并行性的关键技术。但是随着诸如“幽灵”漏洞和分支预测器侧信道等安全问题的曝光,显示出当前分支预测器的存在着严重的安全问题。
分支预测器设计中通常采用指令地址与分支预测器索引固定映射关系的方式查询分支预测器表。这种固定的映射关系存在两个缺点:其一,索引和分支预测表项是可预期的,攻击者可以通过反向工程掌握到分支预测器的映射规律;其二,分支预测器是不同程序共享的,攻击者可以通过训练和探测分支预测器,从而获得感知或诱使其他程序执行行为的能力。
发明内容
鉴于现有的分支预测器索引与分支指令地址映射关系固定带来的安全问题,本发明提供一种基于随机化索引的处理器芯片分支预测器安全增强方法及电子装置。本发明打破传统分支预测器固定的索引映射关系,并且仅仅需要对传统的分支预测器做很小的变动,不改变原分支预测器的预测机制,即可实现分支预测器索引的随机化。
一种基于随机化索引的处理器芯片分支预测器安全增强方法,包括以下步骤:
1)将不同的程序划分成不同的安全域,并获取所述安全域的分支预测器原始索引数;
2)分配一个随机数给每个所述安全域,并使所述随机数作用于分支预测器原始索引数的映射关系中,得到新索引数;
3)使用所述新索引数索引安全增强的分支预测器。
进一步地,所述分支预测器包括Gshare分支预测器或TAGE分支预测器。
进一步地,所述安全域依据保护场景而划分。
进一步地,所述保护场景为线程粒度、进程粒度或不同安全级。
进一步地,当所述安全域发生切换时所述随机数相应的更换。
进一步地,所述随机数的产生方法为随机数发生器或物理不可克隆函数。
进一步地,所述随机数作用于所述原始索引数的方法为所述随机数和所述原索引数进行哈希操作、所述随机数和所述原索引数进行异或操作或将所述随机数作为密钥并采用加密算法对所述原索引数进行加密。
进一步地,判断所述新索引数在分支预测器中在分支预测器中是否命中的方法为使用所述分支预测器的分支指令地址高位与所述增加的分支预测器查询的分支跳转目标地址表中的标签进行比较。
一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序执行上述方法。
一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述方法。
与现有分支预测器相比,本发明的有益效果是:
本发明创新地采用随机化的分支预测器索引,打破了分支指令地址和分支预测器固定的映射关系,使攻击者无法准确获知分支指令在分支预测器中历史信息的具体位置,有助于在恶意感知攻击中增加噪声和阻断基于竞争的分支预测器侧信道。
本发明不针对某一种分支预测器,而是分支预测器中基本的历史预测信息的存储单元的索引方式。因此,本发明适用于任何需要查询历史信息的分支预测器,应用范围包括但不限于典型的分支预测器(如Gshare、TAGE等)。
附图说明
图1是随机化索引的分支跳转目标地址表示意图。
图2是随机化索引的分支模式历史表示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清晰,下面通过具体实施例和附图对本发明进行进一步详细阐述。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本发明主要包括三个方面:1)程序安全域的划分,通过划分安全域,确定程序间隔离的方式;2)分支预测器索引随机化方法,实现不同安全域间分支预测器索引的随机化;3)随机数的产生,保证不同安全域所采用的随机化种子互不相关。
本发明解决其技术问题所采用的技术方案主要包含以下内容:
一)安全域划分
本发明需要将不同的程序或应用划分成不同的安全域,安全域的划分方式根据具体的保护场景而定,比如为了防止进程间恶意训练或者感知分支预测信息,可以采用线程或者进程的粒度划分,每个线程或者进程为一个安全域。同样的如果为了防止不同安全级的程序恶意训练或者感知分支预测器信息,也可以按照安全级的不同进行划分。
本发明通过随机化索引方法来提供安全域间的安全隔离,并不依赖于安全域具体的划分方法,可以为任何安全域划分形式提供安全增强。
二)安全域私有随机数的产生
随机数的产生可以利用现有的各种软件或者硬件的随机数生成方法,如随机数发生器或者物理不可克隆函数(Physical Unclonable Functions,PUF),包括但不限于以上具体的技术。
当有新的安全域出现时,系统将动态地分配一个随机数给该安全域。鉴于不同安全防护场景的要求不一样,安全域的私有随机数的更新策略可以灵活多变,比如为了较高的安全性,当安全域发生切换时即进行私有随机数的更换。
通过为每个安全域动态地分配私有随机数,不同安全域获得不同的分支预测器索引映射方式,并且由于不同安全域的随机数是随机的、不相关,因此安全域间索引的映射关系也是随机的、不相关的。
三)分支预测器索引随机化方法
每个安全域的程序在使用分支指令地址索引分支预测器时,将该安全域的私有随机数作用于原有固定的映射关系中,比如使用安全域的私有随机数和原索引进行简单的哈希(hash) 操作(如异或操作)得到新的索引值查询分支预测器,或者将安全域的私有随机数作为密钥,采用某种加密算法对原索引值进行加密,使用加密后的值索引分支预测器。
下面以实施例阐述具体步骤。
当前分支预测器的种类很多,各种分支预测器的核心模块主要为分支跳转目标地址表和分支模式历史表。基于随机化索引的处理器芯片分支预测器安全增强方法针对使用分支指令地址索引分支预测器的情景都可以应用,下文将以分支跳转目标地址表和分支模式历史表为例来具体介绍该方法的具体应用。
图1是随机化索引的分支跳转目标地址表示意图,为基于随机化索引的分支预测器安全增强方法应用在分支跳转目标地址表(主要用于预测分支指令的跳转目标地址)的示意图,主要工作过程包含以下几个步骤:
1)分支跳转目标地址表原始索引通常由分支指令地址的部分位产生,所选取的位数长度取决于分支跳转目标地址表的大小,如跳转目标地址表的大小为1KB,则可使用PC[11:2]位进行索引。
2)私有随机数与原始索引进行异或,得到新索引值,并使用该索引查询分支跳转目标地址表,其中私有随机数是当前正在执行程序所属安全域的私有随机数。
3)分支指令地址的高位一般用作标签,通过和分支跳转目标地址表中的标签比较来确定表中保存的目标跳转地址是否为该分支指令训练的。如果分支指令地址的高位和相应分支跳转目标地址表中的标签一致,即存在匹配项,即将该项中保存的跳转目标地址作为该分支指令预测的跳转目标地址。
4)当分支跳转目标地址表需要更新时,根据待更新指令地址得到随机化后新索引,并将跳转目标地址写入到为其分配的分支跳转目标地址表项中。
图2是随机化索引的分支模式历史表示意图,为基于随机化索引的处理器芯片分支预测器安全增强方法应用在分支模式历史表(主要用于预测分支指令是否跳转)的示意图,主要工作过程包含以下几个步骤:
1)分支模式历史表原始索引通常由分支指令地址的部分位和全局历史信息经过哈希产生,所选取的位数长度取决于分支模式历史表的大小,如跳转目标地址表的大小为1KB,则可使用PC[11:2]位进行索引。
2)私有随机数与原始索引进行异或操作,得到新索引值,并使用该索引查询分支模式历史表。其中私有随机数是当前正在执行程序所属安全域的私有随机数。
3)通过判断饱和计数器的值与阈值的关系来决定该分支指令是否需要跳转,如果饱和计数器的值大于阈值,则预测该分支指令跳转,如果饱和计数器的值小于阈值,则预测该分支指令不跳转。
4)当分支模式历史表需要更新时,根据待更新指令地址得到随机化后新索引,并依据待更新的信息改变分支模式历史表中相应的饱和计数器。
以上实施例仅用以说明本发明的技术方案而非对其进行限制,本领域的相关技术人员可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明的精神和范围,本发明的保护范围应以权利要求书所述为准。

Claims (10)

1.一种基于随机化索引的处理器芯片分支预测器安全增强方法,包括以下步骤:
1)将不同的程序划分成不同的安全域,并获取所述安全域的分支预测器原始索引数;
2)分配一个随机数给每个所述安全域,并使所述随机数作用于分支预测器原始索引数的映射关系中,得到新索引数;
3)使用所述新索引数索引安全增强的分支预测器。
2.如权利要求1所述的方法,其特征在于,所述分支预测器包括Gshare分支预测器或TAGE分支预测器。
3.如权利要求1所述的方法,其特征在于,所述安全域依据保护场景而划分。
4.如权利要求3所述的方法,其特征在于,所述保护场景为线程粒度、进程粒度或不同安全级。
5.如权利要求1所述的方法,其特征在于,当所述安全域发生切换时所述随机数相应的更换。
6.如权利要求1所述的方法,其特征在于,所述随机数的产生方法为随机数发生器或物理不可克隆函数。
7.如权利要求1所述的方法,其特征在于,所述随机数作用于所述原始索引数的方法为所述随机数和所述原索引数进行哈希操作、所述随机数和所述原索引数进行异或操作或将所述随机数作为密钥并采用加密算法对所述原索引数进行加密。
8.如权利要求1所述的方法,其特征在于,判断所述新索引值在分支预测器中是否命中的方法为使用所述分支预测器的分支指令地址高位与所述增加的分支预测器查询的分支跳转目标地址表中的标签进行比较。
9.一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序执行上述权利要求1-8中任一方法。
10.一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述权利要求1-8中任一方法。
CN202010322524.8A 2019-09-19 2020-04-22 一种基于随机化索引的处理器芯片分支预测器安全增强方法及电子装置 Active CN111638913B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201910887297 2019-09-19
CN2019108872970 2019-09-19

Publications (2)

Publication Number Publication Date
CN111638913A true CN111638913A (zh) 2020-09-08
CN111638913B CN111638913B (zh) 2023-05-12

Family

ID=72333218

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010322524.8A Active CN111638913B (zh) 2019-09-19 2020-04-22 一种基于随机化索引的处理器芯片分支预测器安全增强方法及电子装置

Country Status (1)

Country Link
CN (1) CN111638913B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112231695A (zh) * 2020-12-16 2021-01-15 北京智芯微电子科技有限公司 基于分支预测机制的攻击方法及系统、存储介质
CN112613039A (zh) * 2020-12-10 2021-04-06 海光信息技术股份有限公司 一种针对幽灵漏洞的性能优化方法及装置
CN113761540A (zh) * 2021-09-07 2021-12-07 中国科学院上海高等研究院 BranchScope及其编译器防护方法的验证方法
CN114372299A (zh) * 2022-01-09 2022-04-19 北京航空航天大学杭州创新研究院 基于物理不可克隆函数的安全分支预测器抗Spectre攻击的方法

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5938761A (en) * 1997-11-24 1999-08-17 Sun Microsystems Method and apparatus for branch target prediction
CN104423929A (zh) * 2013-08-21 2015-03-18 华为技术有限公司 一种分支预测方法及相关装置
CN106528049A (zh) * 2016-11-17 2017-03-22 上海兆芯集成电路有限公司 在多存储体条件分支预测器中用于更新事件的随机数产生
CN107690618A (zh) * 2015-06-26 2018-02-13 英特尔公司 用于提供向量紧缩直方图功能的方法、装置、指令和逻辑
CN108351839A (zh) * 2015-12-24 2018-07-31 英特尔公司 用来挂起/恢复安全飞地页面高速缓存中飞地的迁移的指令和逻辑
CN109522736A (zh) * 2018-12-13 2019-03-26 中国科学院信息工程研究所 一种在操作系统中进行密码运算的方法和系统
US20190227802A1 (en) * 2018-01-19 2019-07-25 Cavium, Inc. Managing obscured branch prediction information
CN110232031A (zh) * 2018-03-05 2019-09-13 三星电子株式会社 保护缓存免受侧信道攻击的方法、系统和存储介质

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5938761A (en) * 1997-11-24 1999-08-17 Sun Microsystems Method and apparatus for branch target prediction
CN104423929A (zh) * 2013-08-21 2015-03-18 华为技术有限公司 一种分支预测方法及相关装置
CN107690618A (zh) * 2015-06-26 2018-02-13 英特尔公司 用于提供向量紧缩直方图功能的方法、装置、指令和逻辑
CN108351839A (zh) * 2015-12-24 2018-07-31 英特尔公司 用来挂起/恢复安全飞地页面高速缓存中飞地的迁移的指令和逻辑
CN106528049A (zh) * 2016-11-17 2017-03-22 上海兆芯集成电路有限公司 在多存储体条件分支预测器中用于更新事件的随机数产生
US20190227802A1 (en) * 2018-01-19 2019-07-25 Cavium, Inc. Managing obscured branch prediction information
CN110232031A (zh) * 2018-03-05 2019-09-13 三星电子株式会社 保护缓存免受侧信道攻击的方法、系统和存储介质
CN109522736A (zh) * 2018-12-13 2019-03-26 中国科学院信息工程研究所 一种在操作系统中进行密码运算的方法和系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
张宇等: "一种适应GPU的混合OLAP查询处理模型" *
王国澎等: "BTB索引散列算法的研究与设计" *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112613039A (zh) * 2020-12-10 2021-04-06 海光信息技术股份有限公司 一种针对幽灵漏洞的性能优化方法及装置
CN112231695A (zh) * 2020-12-16 2021-01-15 北京智芯微电子科技有限公司 基于分支预测机制的攻击方法及系统、存储介质
CN112231695B (zh) * 2020-12-16 2021-03-05 北京智芯微电子科技有限公司 基于分支预测机制的攻击方法及系统、存储介质
CN113761540A (zh) * 2021-09-07 2021-12-07 中国科学院上海高等研究院 BranchScope及其编译器防护方法的验证方法
CN114372299A (zh) * 2022-01-09 2022-04-19 北京航空航天大学杭州创新研究院 基于物理不可克隆函数的安全分支预测器抗Spectre攻击的方法
CN114372299B (zh) * 2022-01-09 2024-05-07 北京航空航天大学杭州创新研究院 基于物理不可克隆函数的安全分支预测器抗Spectre攻击的方法

Also Published As

Publication number Publication date
CN111638913B (zh) 2023-05-12

Similar Documents

Publication Publication Date Title
CN111638913B (zh) 一种基于随机化索引的处理器芯片分支预测器安全增强方法及电子装置
EP3718004B1 (en) Encoding of input to storage circuitry
Ren et al. Design space exploration and optimization of path oblivious ram in secure processors
US10684945B2 (en) System, apparatus and method for providing key identifier information in a non-canonical address space
Anwar et al. Cross-VM cache-based side channel attacks and proposed prevention mechanisms: A survey
US10116441B1 (en) Enhanced-security random data
US10528486B2 (en) Techniques for crypto-aware cache partitioning
US20120297110A1 (en) Method and apparatus for improving computer cache performance and for protecting memory systems against some side channel attacks
US20120260106A1 (en) System and method for binary layout randomization
JP2012529114A5 (zh)
Mushtaq et al. Winter is here! A decade of cache-based side-channel attacks, detection & mitigation for RSA
US11042480B2 (en) System, method and apparatus for secure functions and cache line data
CN111638912B (zh) 一种轻量级的处理器芯片分支预测器内容隔离方法及电子装置
CN113711194A (zh) 基于密钥更新的高效侧信道攻击抵抗存储器加密器
US8055848B2 (en) Method and system for securing instruction caches using substantially random instruction mapping scheme
US10496825B2 (en) In-memory attack prevention
US11121867B2 (en) Encryption methods based on plaintext length
Giner et al. Scatter and split securely: Defeating cache contention and occupancy attacks
US10942856B2 (en) System, method and apparatus for secure functions and cache line data
Zhang et al. Seeds of SEED: H 2 Cache: Building a Hybrid Randomized Cache Hierarchy for Mitigating Cache Side-Channel Attacks
Chen et al. Lightweight and secure branch predictors against Spectre attacks
Liu et al. Can randomized mapping secure instruction caches from side-channel attacks?
US10007522B2 (en) System and method for selectively allocating entries at a branch target buffer
Haider et al. Revisiting definitional foundations of oblivious RAM for secure processor implementations
WO2020217043A1 (en) System, method and apparatus for secure functions and cache line data

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