当前位置: 首页 > 专利查询>英特尔公司专利>正文

用于战胜边信道攻击的处理器指令支持制造技术

技术编号:23049443 阅读:24 留言:0更新日期:2020-01-07 14:40
本文详述的是用于计算机架构的系统、设备和方法,所述计算机架构具有用于缓解基于页故障和/或基于高速缓存的边信道攻击的指令集支持。在实施例中,一种设备包括用于解码第一指令的解码器,所述第一指令具有针对第一操作码的第一字段,所述第一操作码指示执行电路将在第一寄存器中设置第一标志,所述第一标志指示在事件发生时将程序流程重定向到异常处理程序的操作模式。所述设备还包括执行电路,所述执行电路用于执行所解码的第一指令以在第一寄存器中设置指示操作模式的第一标志,并将异常处理程序的地址存储在第二寄存器中。

Processor instruction support for overcoming edge channel attacks

【技术实现步骤摘要】
用于战胜边信道攻击的处理器指令支持
本专利
一般涉及计算机处理器架构,并且更具体地说,涉及当被执行时使处理器以边信道保护模式进行操作的指令。
技术介绍
某些类的基于软件的边信道攻击涉及一个软件程序(攻击者)通过利用公共底层资源(例如,中央处理单元或CPU)来获得关于另一个程序(受害者)的信息。示例性的边信道攻击包括基于页故障的攻击和基于高速缓存的攻击。基于页故障的攻击是针对在可信执行环境内执行的程序的边信道攻击,其中操作系统(OS)不在可信计算基础中。攻击者(诸如恶意OS)可以通过在程序的执行期间通过主动操纵页表或通过被动观察页表条目的控制位中的变化而观察页故障的序列来执行边信道攻击。以这种方式,攻击者可以获得在执行期间的程序的存储器存取模式。如果存储器存取模式取决于正被处理的秘密信息,则攻击者可以间接推断出秘密信息。基于高速缓存的边信道攻击是基于由被CPU执行的程序所共享的高速缓存的更一般的攻击。受害者的高速缓存未命中和高速缓存命中之间的时间差异使得攻击者(诸如恶意程序)能够推断出受害者的高速缓存存取模式(例如,哪个高速缓存位置被存取以及其何时被存取)。基于那些模式,攻击者可以推断出正由受害程序所处理的秘密信息。附图说明在附图中,通过示例而非限制的方式示出了本专利技术,其中相似的附图标记表示类似的元件。图1示出了根据一些实施例的边信道攻击缓解的高级视图。图2A-2B示出了用于处理用于支持边信道攻击缓解的指令的硬件的实施例。图3A-3D示出了在一系列示例性指令的执行期间的示例性数据高速缓存单元、示例性指令高速缓存单元、示例性指令转化后援缓冲器(translationlookasidebuffer)单元和示例性数据转化后援缓冲器。图4A-4B示出了在驱逐事件之前和之后的示例性数据高速缓存单元、示例性指令高速缓存单元、示例性指令转化后援缓冲器单元和示例性数据转化后援缓冲器。图5示出了ENBEGIN指令、ENEND指令、MOVCIP指令和PRELOAD指令的实施例。图6示出了用于处理图5中所示的示例性指令的硬件的实施例。图7示出了由处理器执行以处理ENBEGIN指令的方法的实施例。图8示出了由处理器执行以处理ENEND指令的方法的实施例。图9示出了由处理器执行以处理MOVCIP指令的方法的实施例。图10示出了由处理器执行以处理PRELOAD指令的方法的实施例。图11示出了由处理器在处于事件通知模式中时响应于发生的事件而执行的方法的实施例。图12A-B示出了更具体的示例性有序核架构的框图,该核将是芯片中几个逻辑块(包括相同类型和/或不同类型的其它核)之一。图12A是根据本专利技术的实施例的单个处理器核的框图,连同其到管芯上互连网络1202的连接以及连同其2级(L2)高速缓存的本地子集1204。图12B是根据本专利技术的实施例的图12A中的处理器核的一部分的放大视图。图13是根据本专利技术的实施例的处理器1300的框图,处理器1300可以具有多于一个核、可以具有集成存储器控制器、并且可以具有集成图形。图14-17是示例性计算机架构的框图。图14示出了根据本专利技术的一个实施例的系统的框图。图15是根据本专利技术的实施例的第一更具体示例性系统的框图。图16是根据本专利技术的实施例的第二更具体示例性系统的框图。图17是根据本专利技术的实施例的SoC的框图。图18是根据本专利技术的实施例的对照使用软件指令转换器将源指令集中的二进制指令转换成目标指令集中的二进制指令的框图。具体实施方式在以下描述中,阐述了许多具体细节。然而,应当理解,在没有这些具体细节的情况下也可以实践本专利技术的实施例。在其它情形下,没有详细示出众所周知的电路、结构和技术,以免模糊对该描述的理解。说明书中对“一个实施例”、“实施例”、“示例实施例”等的引用指示所描述的实施例可以包括特定特征、结构或特性,但是每个实施例可不一定包括所述特定特征、结构或特性。此外,这样的短语不一定指相同实施例。此外,当结合实施例来描述特定特征、结构或特性时,主张的是无论是否明确描述,结合其它实施例来影响这种特征、结构或特性是在本领域技术人员的知识范围内的。本文详述了用于检测和保护免受边信道攻击的一组指令和硬件支持的实施例。具体而言,所公开的实施例涉及一组指令,软件程序可以利用这组指令来消除攻击者获得秘密信息的能力。具体而言,指令将处理器置于边信道保护模式(称为“事件通知模式”)。在事件通知模式中,可能指示边信道攻击的某些事件使用户级别程序执行通过用户级别异常处理程序(handler)而重定向。用户级别异常处理程序允许用户级别程序通过将关键或敏感信息锁(pin)在高速缓存(以防止基于高速缓存的攻击)或转化后援缓冲器(TLB)(以防止基于页故障的攻击)中来防止攻击者观察高速缓存或存储器存取模式。通过指令和硬件支持,用户级别程序可以结合轻量保护机制来抵御边信道攻击。图1示出了根据一些实施例的边信道攻击缓解的高级视图。如图所示,用户级别应用的程序流程100包括ENBEGIN指令105、前导例程110、安全性关键例程115和ENEND指令120。在这种使用中,前导例程110和安全性关键例程115的虚线指示它们是特定于用户级别应用的,并且可以从一个应用到另一个应用而变化。前导例程110和安全性关键例程115包括与被保护的用户级别应用相关的指令。保护需要执行应用的处理器进入事件通知模式106。用户级别应用可以指示处理器进入事件通知模式106,以主动保护秘密信息免受边信道攻击。特别地,用户级别应用将前导例程110和安全性关键例程115用ENBEGIN指令105和ENEND指令120包起来(wrap)。注意,尽管图1将ENBEGIN指令105示出为与前导例程110分离,但是在一些实施例中,ENBEGIN指令早先被包括在前导例程110中。在处理器执行安全性关键代码115之前,前导代码110使处理器将所有安全性关键代码和/或数据加载到高速缓存和/或TLB中。在事件通知模式106期间没有驱逐事件125,处理器执行前导例程110、安全性关键例程115,并且然后在执行ENEND指令时退出事件通知模式106。如果在处理器正以事件通知模式106处理指令时发生驱逐事件125,则处理器引发异常,以将用户级别应用流程重定向到用户级别异常处理程序130。再次,用户级别异常处理程序130的虚线指示它是特定于用户级别应用的,并且可能从一个应用到另一个应用而变化。当重定向发生时,处理器退出事件通知模式。一旦处于用户级别异常处理程序,软件程序就可以实现各种边信道缓解措施。这种缓解措施的一个示例是使用户级别异常处理程序发出ENBEGIN指令105,并且然后调用前导例程110(如图所示)或调用前导例程110(如果前导例程包括ENBEGIN指令105的话)。前导例程110使处理器将安全性关键代码和/或数据重新加载到高速缓存和/或TLB中。以这种方式,用户本文档来自技高网...

【技术保护点】
1.一种用于战胜边信道攻击的设备,包括:/n解码器,所述解码器用于解码第一指令,所述第一指令至少具有针对第一操作码的第一字段,所述第一操作码用于指示执行电路将在第一寄存器中设置第一标志,所述第一标志用于指示在事件发生时将使程序流程重定向到异常处理程序的操作模式;以及/n执行电路,所述执行电路用于执行所解码的第一指令以在所述第一寄存器中设置用于指示所述操作模式的所述第一标志,并将异常处理程序的地址存储在第二寄存器中。/n

【技术特征摘要】
20180629 US 16/0247331.一种用于战胜边信道攻击的设备,包括:
解码器,所述解码器用于解码第一指令,所述第一指令至少具有针对第一操作码的第一字段,所述第一操作码用于指示执行电路将在第一寄存器中设置第一标志,所述第一标志用于指示在事件发生时将使程序流程重定向到异常处理程序的操作模式;以及
执行电路,所述执行电路用于执行所解码的第一指令以在所述第一寄存器中设置用于指示所述操作模式的所述第一标志,并将异常处理程序的地址存储在第二寄存器中。


2.根据权利要求1所述的设备,其中所述第一指令具有针对所述异常处理程序的所述地址的第二字段。


3.根据权利要求1所述的设备,进一步包括:
高速缓存,在所述高速缓存中的条目包括第二标志,所述第二标志在被设置时标识在驱逐时使所述第一寄存器中的所述第一标志被清除并使所述条目中的所述第二标志被清除的条目。


4.根据权利要求1所述的设备,所述解码器还用于解码第二指令,所述第二指令具有针对第二操作码的第二字段,所述第二操作码用于指示所述执行电路将清除所述第一寄存器中的所述第一标志,并且所述执行电路还将执行所解码的第二指令以清除所述第一寄存器中的所述第一标志。


5.根据权利要求1所述的设备,所述解码器还用于解码第二指令,所述第二指令具有针对第二操作码的第二字段,所述第二操作码用于指示所述执行电路将把存储在第一指令指针寄存器中的值存储到存储器中的位置,并且所述执行电路还将执行所解码的第二指令以将存储在所述第一指令指针寄存器中的所述值存储到所述存储器中的所述位置。


6.根据权利要求1所述的设备,所述解码器还用于解码第二指令,所述第二指令具有针对第二操作码的第二字段,所述第二操作码用于指示执行电路将利用在存储器中的位置处的数据来加载通过值所标识的高速缓存,并且所述执行电路还将执行所解码的第二指令以利用在所述存储器中的所述位置处的数据来加载通过所述值所标识的所述高速缓存。


7.根据权利要求1所述的设备,所述执行电路还用于将第一指令指针寄存器中的地址复制到第二指令指针寄存器中,并用于将所述异常处理程序的所述地址复制到所述第一指令指针寄存器中。


8.一种用于战胜边信道攻击的方法,包括:
解码第一指令,所述第一指令具有针对第一操作码的第一字段,所述第一操作码指示执行电路将在第一寄存器中设置第一标志,所述第一标志指示在事件发生时将程序流程重定向到异常处理程序的操作模式;以及
执行所解码的第一指令以在所述第一寄存器中设置指示所述操作模式的所述第一标志,并将异常处理程序的地址存储在第二寄存器中。


9.根据权利要求8所述的方法,其中所述第一指令具有针对所述异常处理程序的所述地址的第二字段。


10.根据权利要求8所述的方法,进一步包括:
在高速缓存中的条目中设置第二标志;以及
当从所述高速缓存驱逐所述条目时,清除所述第一寄存器中的所述第一标志以及所述第二标志。

...

【专利技术属性】
技术研发人员:刘芳菲B邢M施泰纳M维吉C罗扎斯F麦克金M奥兹索伊M弗南德斯K朱姆青斯基M沙纳汉
申请(专利权)人:英特尔公司
类型:发明
国别省市:美国;US

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

1