System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于随机化索引的细粒度处理器芯片分支预测器内容隔离方法及电子装置制造方法及图纸_技高网

一种基于随机化索引的细粒度处理器芯片分支预测器内容隔离方法及电子装置制造方法及图纸

技术编号:42655158 阅读:2 留言:0更新日期:2024-09-10 12:15
本发明专利技术涉及一种基于随机化索引的细粒度处理器芯片分支预测器内容隔离方法及电子装置。它包括:单位程序块随机密钥配置法和分支预测器内容锁定机制,通过进程密钥分配和块密钥指令生成实现单位程序块随机密钥配置,通过分支跳转目标地址表和分支模式历史表的条目锁定实现分支预测器内容锁定。同时,通过软件或硬件的随机数实现进程密钥分配、生成进程密钥;通过源代码分析和可执行文件分析,识别存在安全风险的程序块生成块密钥指令;通过生成块密钥的代码片段或指令基于密码学算法和程序块上下文信息的计算生成块密钥。本发明专利技术还具有密钥管理更加灵活、内容锁定机制方便、随机化索引更有效、攻击性训练难度大和分支预测安全可靠的优点。

【技术实现步骤摘要】

本专利技术涉及处理器体系架构领域,特别是一种基于随机化索引的细粒度处理器芯片分支预测器内容隔离方法及电子装置


技术介绍

1、中国专利公开cn111638913a提出了一种基于随机化索引的处理器芯片分支预测器安全增强方法及电子装置,为了增加处理器体系架构中分支预测器的安全性,该方法将不同程序划分成不同的安全域,为每个安全域分配一个密钥,密钥作用到分支预测器原始索引中进而生成新索引,将传统分支预测器的固定索引映射关系改变为随机化索引,这样,虽然增加了攻击者跨线程或跨特权级恶意训练的难度,避免了系统发起错误分支预测的风险,但是攻击者仍然能够通过暴力破解的方式寻找到实施恶意训练的等价分支指令集。


技术实现思路

1、本专利技术的目的是要提供一种基于随机化索引的细粒度处理器芯片分支预测器内容隔离方法,它能够有效地对分支预测器实施内容隔离,可靠地防止针对分支预测器的暴力破解和恶意训练。

2、设计一种基于随机化索引的细粒度处理器芯片分支预测器内容隔离方法,包括单位程序块随机密钥配置法和分支预测器内容锁定机制,所述单位程序块随机密钥配置法包括:进程密钥分配和块密钥指令生成;所述分支预测器内容锁定机制包括:分支跳转目标地址表和分支模式历史表的条目锁定。

3、进程密钥分配时,当新的进程被创建时,为进程分配一个密钥,即进程密钥,该秘钥可以通过现有的各种软件或硬件的随机数生成方法生成,可以像arm pa机制一样,由操作系统或虚拟机管理器管理,也可由诸如trustzone等可信执行环境管理,也可以由处理器硬件管理;处理器硬件需要增加一个寄存器,用于存储当进程密钥,该寄存器不能被软件读取,当程序运行时,进程密钥将被写入到该寄存器;块密钥指令生成时,通过源代码分析和可执行文件分析,识别存在安全风险的程序块。并在进入程序块时,插入生成块密钥的代码片段或指令。生成块密钥的指令可以类似于arm pa机制的pac*/aut*指令,也可以类似于intel aes-ni指令,不同的是,所述块密钥生成指令的结果保存在软件不可读的寄存器中;当执行到安全域程序块时,生成块密钥的代码片段或指令基于密码学算法和程序块的上下文信息计算并生成块密钥,其中程序块的上下文信息包括担不限于当前进程号或线程号、程序块的虚拟地址、程序块号、当前软件栈位置等;块密钥生成为保存在软件不可读的硬件寄存器中,供后续分支预测器索引随机化使用;多个程序块可共享相同的块密钥,多个程序块是否共享块密钥,可以通过分析程序执行特征确定。

4、分支跳转目标地址表和分支模式历史表的条目锁定时,分支预测器的种类很多,各种分支预测器的核心模块主要为分支跳转目标地址表和分支模式历史表。分支预测器内容锁定机制通过对分支指令进行验证,防止攻击者通过恶意训练修改被攻击分支指令对应分支跳转目标地址表和分支模式历史表条目。为了锁定前述分支指令在分支跳转目标地址表和分支模式历史表中的内容,本专利技术增加分支条目状态表和锁定条目记录表。当分支跳转目标地址表和分支模式历史表所包含的条目数相同和索引相同时,或者当分支跳转目标地址表和分支模式历史表的深度或条目数不一样时,相应地可以为它们分别分配独立的分支条目状态表和锁定条目记录表;分支条目状态表为1位的向量,其索引与分支跳转目标地址表和分支模式历史表相同,每一位表示分支跳转目标地址表和分支模式历史表相应条目是否被锁定。

5、分支跳转目标地址表和分支模式历史表的条目锁定时,锁定条目记录表由瞬态执行保护分支指令标签、锁定条目向量、及该表条目状态三部分内容构成,前者用于验证可以更新或删除锁定条目内容的分支指令,锁定条目向量的位数与分支跳转目标地址表和分支模式历史表中条目数相等,用于表示该瞬态执行保护分支指令对应哪些条目,表条目状态则表示锁定条目记录表中此条目是否已被使用。

6、分支跳转目标地址表和分支模式历史表的条目锁定时,当需瞬态执行保护的分支指令第一次执行时,分支跳转目标地址表和分支模式历史表中没有其对应条目;处理器硬件基于其所在块的块密钥及其上下文信息,为该指令计算一个信息授权码,需要瞬态执行保护分支指令的上下文信息包括但不限于进程号、代码块号、分支指令地址。

7、分支跳转目标地址表和分支模式历史表的条目锁定时,当该分支指令执行完毕,需将其执行结果更新到分支跳转目标地址表和分支模式历史表中;分支跳转目标地址表原始索引通常由分支指令地址的部分位产生,所选取的位数长度取决于分支跳转目标地址表的大小;分支模式历史表原始索引通常由分支指令地址的部分位和全局历史信息经过哈希算法产生,所选取的位数长度取决于分支模式历史表的大小;代码块密钥分别与分支跳转目标地址表原始索引和分支模式历史表原始索引异或,便得到新索引值,即前述需瞬态执行保护的分支指令对应分支跳转目标地址表和分支模式历史表条目的位置;处理器硬件将前述分支指令的目标地址和分支是否跳转按新索引值,分别更新到分支跳转目标地址表和分支模式历史表。

8、分支跳转目标地址表和分支模式历史表的条目锁定时,所述分支指令执行结果更新到分支跳转目标地址表和分支模式历史表后,根据所述新索引值,将分支条目状态表中对应位置1,表示分支跳转目标地址表和分支模式历史表中对应位已分配给需瞬态执行保护的分支指令,处于锁定状态;同时,处理器硬件为该指令在锁定条目记录表中分配一个条目,基于所述分支指令上下文信息,为该指令计算一个信息校验码,将其保存在分配条目分支指令标签域,同时基于所述新索引值,将锁定条目向量对应位置1,将分配条目状态对应位置1。

9、分支跳转目标地址表和分支模式历史表的条目锁定时,当所述需瞬态执行保护的分支指令再次执行时,将其对应代码块密钥分别与分支跳转目标地址表原始索引和分支模式历史表原始索引异或,便得到新索引值,基于新索引查找分支跳转目标地址表和分支模式历史表,实现分支目标地址和分支方向预测。

10、分支跳转目标地址表和分支模式历史表的条目锁定时,当所述需瞬态执行保护的分支指令再次执行完时,处理器硬件基于上述分支指令上下文信息,为其计算一个信息校验码,将其与保存在锁定条目记录表中的标签比较;若匹配,可以将其结果更新到分支跳转目标地址表和分支模式历史表中被锁定的条目中;因为分支跳转目标地址表原始索引和分支模式历史表原始索引也可由分支指令地址的部分位和全局历史信息经过哈希算法产生,所以分支指令再次执行时的新索引与之前的索引可能不同,些时需将前述分支指令执行结果更新到分支跳转目标地址表和分支模式历史表其它条目中,此时,需要基于所述新索引值,将分支条目状态表中对应位置1,将锁定条目记录表中该分支指令对应条目锁定条目向量对应位置1。

11、分支跳转目标地址表和分支模式历史表的条目锁定时,若后续所述需瞬态执行保护的分支指令不会再执行时,通过执行解锁指令,该指令将瞬态执行保护的分支指令的虚拟地址作为参数,基于所述分支指令的上下文信息计算一个信息校验码;当该信息校验码与锁定条目记录表中某一条目的标签匹配时,则将该条目中锁定条目向量域对应分支跳转目标地本文档来自技高网...

【技术保护点】

1.一种基于随机化索引的细粒度处理器芯片分支预测器内容隔离方法,包括单位程序块随机密钥配置法和分支预测器内容锁定机制,其特征在于:所述单位程序块随机密钥配置法包括:进程密钥分配和块密钥指令生成;所述分支预测器内容锁定机制包括:分支跳转目标地址表和分支模式历史表的条目锁定;

2.根据权利要求1所述的方法,其特征是:分支跳转目标地址表和分支模式历史表的条目锁定时,当分支跳转目标地址表和分支模式历史表所包含的条目数相同和索引相同时,或者当分支跳转目标地址表和分支模式历史表的深度或条目数不一样时,相应地可以为它们分别分配独立的分支条目状态表和锁定条目记录表;分支条目状态表为1位的向量,其索引与分支跳转目标地址表和分支模式历史表相同,每一位表示分支跳转目标地址表和分支模式历史表相应条目是否被锁定。

3.根据权利要求1所述的方法,其特征是:分支跳转目标地址表和分支模式历史表的条目锁定时,锁定条目记录表由瞬态执行保护分支指令标签、锁定条目向量、及该表条目状态三部分内容构成,前者用于验证可以更新或删除锁定条目内容的分支指令,锁定条目向量的位数与分支跳转目标地址表和分支模式历史表中条目数相等,用于表示该瞬态执行保护分支指令对应哪些条目,表条目状态则表示锁定条目记录表中此条目是否已被使用。

4.根据权利要求1所述的方法,其特征是:分支跳转目标地址表和分支模式历史表的条目锁定时,当需瞬态执行保护的分支指令第一次执行时,分支跳转目标地址表和分支模式历史表中没有其对应条目;处理器硬件基于其所在块的块密钥及其上下文信息,为该指令计算一个信息授权码,需要瞬态执行保护分支指令的上下文信息包括但不限于进程号、代码块号、分支指令地址。

5.根据权利要求1所述的方法,其特征是:分支跳转目标地址表和分支模式历史表的条目锁定时,当该分支指令执行完毕,需要将其执行结果更新到分支跳转目标地址表和分支模式历史表中;分支跳转目标地址表原始索引通常由分支指令地址的部分位产生,所选取的位数长度取决于分支跳转目标地址表的大小;分支模式历史表原始索引通常由分支指令地址的部分位和全局历史信息经过哈希算法产生,所选取的位数长度取决于分支模式历史表的大小;代码块密钥分别与分支跳转目标地址表原始索引和分支模式历史表原始索引异或,便得到新索引值,即前述需瞬态执行保护的分支指令对应分支跳转目标地址表和分支模式历史表条目的位置;处理器硬件将所述分支指令的目标地址和分支是否跳转按新索引值,分别更新到分支跳转目标地址表和分支模式历史表。

6.根据权利要求1所述的方法,其特征是:分支跳转目标地址表和分支模式历史表的条目锁定时,所述分支指令执行结果更新到分支跳转目标地址表和分支模式历史表后,根据所述新索引值,将分支条目状态表中对应位置1,表示分支跳转目标地址表和分支模式历史表中对应位已分配给需瞬态执行保护的分支指令,处于锁定状态;同时,处理器硬件为该指令在锁定条目记录表中分配一个条目,基于所述分支指令上下文信息,为该指令计算一个信息校验码,将其保存在分配条目分支指令标签域,同时基于所述新索引值,将锁定条目向量对应位置1,将分配条目状态对应位置1。

7.根据权利要求1所述的方法,其特征是:分支跳转目标地址表和分支模式历史表的条目锁定时,当所述需瞬态执行保护的分支指令再次执行时,将其对应代码块密钥分别与分支跳转目标地址表原始索引和分支模式历史表原始索引异或,便得到新索引值,基于新索引查找分支跳转目标地址表和分支模式历史表,实现分支目标地址和分支方向预测。

8.根据权利要求1所述的方法,其特征是:分支跳转目标地址表和分支模式历史表的条目锁定时,当需要瞬态执行保护的分支指令再次执行完时,处理器硬件基于上述分支指令上下文信息,为其计算一个信息校验码,将其与保存在锁定条目记录表中的标签比较;若匹配,可以将其结果更新到分支跳转目标地址表和分支模式历史表中被锁定的条目中;因为分支跳转目标地址表原始索引和分支模式历史表原始索引也可由分支指令地址的部分位和全局历史信息经过哈希算法产生,所以分支指令再次执行时的新索引与之前的索引可能不同,此时需要将前述分支指令执行结果更新到分支跳转目标地址表和分支模式历史表其它条目中,需要基于所述新索引值,将分支条目状态表中对应位置1,将锁定条目记录表中该分支指令对应条目,锁定条目向量对应位置1。

9.根据权利要求1所述的方法,其特征是:分支跳转目标地址表和分支模式历史表的条目锁定时,若后所需瞬态执行保护的分支指令不会再执行时,通过执行解锁指令,该指令将瞬态执行保护的分支指令的虚拟地址作为参数,基于所述分支指令的上下文信息计算一个信息校验码;当该信息校验码与锁定条目记录表中某一条目的标签匹配时...

【技术特征摘要】

1.一种基于随机化索引的细粒度处理器芯片分支预测器内容隔离方法,包括单位程序块随机密钥配置法和分支预测器内容锁定机制,其特征在于:所述单位程序块随机密钥配置法包括:进程密钥分配和块密钥指令生成;所述分支预测器内容锁定机制包括:分支跳转目标地址表和分支模式历史表的条目锁定;

2.根据权利要求1所述的方法,其特征是:分支跳转目标地址表和分支模式历史表的条目锁定时,当分支跳转目标地址表和分支模式历史表所包含的条目数相同和索引相同时,或者当分支跳转目标地址表和分支模式历史表的深度或条目数不一样时,相应地可以为它们分别分配独立的分支条目状态表和锁定条目记录表;分支条目状态表为1位的向量,其索引与分支跳转目标地址表和分支模式历史表相同,每一位表示分支跳转目标地址表和分支模式历史表相应条目是否被锁定。

3.根据权利要求1所述的方法,其特征是:分支跳转目标地址表和分支模式历史表的条目锁定时,锁定条目记录表由瞬态执行保护分支指令标签、锁定条目向量、及该表条目状态三部分内容构成,前者用于验证可以更新或删除锁定条目内容的分支指令,锁定条目向量的位数与分支跳转目标地址表和分支模式历史表中条目数相等,用于表示该瞬态执行保护分支指令对应哪些条目,表条目状态则表示锁定条目记录表中此条目是否已被使用。

4.根据权利要求1所述的方法,其特征是:分支跳转目标地址表和分支模式历史表的条目锁定时,当需瞬态执行保护的分支指令第一次执行时,分支跳转目标地址表和分支模式历史表中没有其对应条目;处理器硬件基于其所在块的块密钥及其上下文信息,为该指令计算一个信息授权码,需要瞬态执行保护分支指令的上下文信息包括但不限于进程号、代码块号、分支指令地址。

5.根据权利要求1所述的方法,其特征是:分支跳转目标地址表和分支模式历史表的条目锁定时,当该分支指令执行完毕,需要将其执行结果更新到分支跳转目标地址表和分支模式历史表中;分支跳转目标地址表原始索引通常由分支指令地址的部分位产生,所选取的位数长度取决于分支跳转目标地址表的大小;分支模式历史表原始索引通常由分支指令地址的部分位和全局历史信息经过哈希算法产生,所选取的位数长度取决于分支模式历史表的大小;代码块密钥分别与分支跳转目标地址表原始索引和分支模式历史表原始索引异或,便得到新索引值,即前述需瞬态执行保护的分支指令对应分支跳转目标地址表和分支模式历史表条目的位置;处理器硬件将所述分支指令的目标地址和分支是否跳转按新索引值,分别更新到分支跳转目标地址表和分支模式历史表。

6.根据权利要求1所述的方法,其特征...

【专利技术属性】
技术研发人员:张军张鹏超杭波
申请(专利权)人:湖北文理学院
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1