在支持受保护执行环境的处理器上执行可信应用的方法和设备技术

技术编号:23774674 阅读:44 留言:0更新日期:2020-04-12 03:31
本文公开了用于执行应用的方法、设备和装置,包括在计算机存储介质上存储的计算机程序。所述方法之一包括:在处理器的第一物理处理单元中建立飞地;记录由第一应用声明的第一信任声明,该第一信任声明声明第一应用是否信任任何要在第一物理处理单元上与第一应用一起执行的应用;将第一应用分配给第一物理处理单元上承载的第一逻辑处理单元;提供飞地进入指令集,供第一逻辑处理单元执行,以使第一逻辑处理单元在满足预定义进入条件时进入该飞地;以及提供飞地退出指令集,供第一逻辑处理单元执行,以使第一逻辑处理单元在满足预定义退出条件时退出该飞地。

Methods and devices for executing trusted applications on processors supporting protected execution environments

【技术实现步骤摘要】
【国外来华专利技术】在支持受保护执行环境的处理器上执行可信应用的方法和设备
本文总体上涉及计算机技术,更具体地,涉及在支持受保护执行环境的处理器上执行可信应用的方法和设备。
技术介绍
处理器是可用于执行计算机程序中指定的指令的电路。处理器可以包括执行算术和逻辑运算的算术逻辑单元(ALU)。处理器还可以包括向ALU提供操作数并存储ALU产生的结果的寄存器。处理器还可以包括协调ALU、寄存器和其他组件的操作的控制单元,其他组件包括例如一级或多级高速缓存、一级或多级转译后备缓冲器(translationlookasidebuffers,TLB)以及一个或多个存储器控制器。多个处理器可以封装在一起以形成多核处理器。包含在多核处理器中的每个处理器可被称为物理处理单元或“核”。这些物理处理单元可以支持多线程,这意味着每个物理处理单元可以并行地执行两组或多组操作或应用。可以利用各种技术来实现多线程,包括例如时分(timesliced)多线程(其中,物理处理单元根据预定义的时间间隔(例如,每个处理周期)在物理处理单元上执行的应用之间快速切换)、同时(simultaneous)多线程(其中,每个物理处理单元可以承载多个逻辑处理单元,每个逻辑处理单元用于在该物理处理单元上执行的每个应用)、或它们的组合。超线程技术是使用时分多线程和同时多线程的组合的多线程技术。具体地说,超线程使用时分多线程来提取和解码操作,然后使用同时多线程来实施执行操作。逻辑处理单元通常被呈现给在其上执行的应用,所述逻辑处理单元逻辑上与承载它们的底层物理处理单元无关。然而,实际上,逻辑处理单元可能无法完全控制一些物理处理单元上可用的资源。例如,如果物理处理单元需要承载多个逻辑处理单元以支持多个应用的同时多线程,则通常物理处理单元可以设置逻辑处理单元以共享一些资源,例如级1(L1)高速缓存、L1TLB等。以这种方式共享资源可能会将某些类型的数据暴露给入侵者。例如,假设物理处理单元提供用于处理应用A的执行的第一逻辑处理单元和用于处理应用B的执行的第二逻辑处理单元,并且进一步假设物理处理单元将两个逻辑处理单元设置为共享L1高速缓存,应用B可以随后能够访问由应用A存储在高速缓存L1中的数据,反之亦然。对处理器的扩展,例如软件保护扩展(SGX)等,可以为应用A和B提供一些保护。但是,即使实现了这些扩展的处理器仍然容易受到攻击。近年来发现了诸如Spectre、L1终端故障(L1TF)等的安全漏洞。未来可能会发现其他潜在的漏洞。避免这些攻击的一种可能解决方案是禁用同时多线程。以这种方式,可以消除如以上示例中所述的与应用A和应用B共享L1高速缓存相关联的问题。然而,该解决方案将逻辑处理单元的数量减少为与物理处理单元的数量相同,这反过来降低了处理器的多线程能力。因此,需要提高在支持同时多线程的处理器上执行的应用的数据安全的方法。
技术实现思路
在一个方面,一种计算机实现的用于执行应用的方法,包括:在处理器的第一物理处理单元中建立飞地(enclave);记录由第一应用声明的第一信任声明,该第一信任声明声明第一应用是否信任任何要在第一物理处理单元上与第一应用一起执行的应用;将第一应用分配给第一物理处理单元上承载的第一逻辑处理单元;提供飞地进入指令集,以供第一逻辑处理单元执行,以使第一逻辑处理单元在满足预定义进入条件时进入该飞地;以及提供飞地退出指令集,以供第一逻辑处理单元执行,以使第一逻辑处理单元在满足预定义退出条件时退出该飞地。在另一方面,一种用于执行应用的设备,包括:包括一个或多个物理处理单元的处理器;以及耦接到所述一个或多个物理处理单元并在其上存储有指令的计算机可读指令代码存储器,其中,所述指令可由所述一个或多个物理处理单元执行以:在所述处理器的第一物理处理单元中建立飞地;记录由第一应用声明的第一信任声明,该第一信任声明声明第一应用是否信任任何要在第一物理处理单元上与第一应用一起执行的应用;将第一应用分配给第一物理处理单元上承载的第一逻辑处理单元;提供飞地进入指令集,以供第一逻辑处理单元执行,以使第一逻辑处理单元在满足预定义进入条件时进入该飞地;以及提供飞地退出指令集,以供第一逻辑处理单元执行,以使第一逻辑处理单元在满足预定义退出条件时退出该飞地。在另一方面,一种其中存储有指令的非暂态计算机可读介质,当所述指令由设备的处理器执行时,促使所述设备执行用于执行应用的方法。所述方法包括:在处理器的第一物理处理单元中建立飞地;记录由第一应用声明的第一信任声明,该第一信任声明声明第一应用是否信任任何要在第一物理处理单元上与第一应用一起执行的应用;将第一应用分配给第一物理处理单元上承载的第一逻辑处理单元;提供飞地进入指令集,以供第一逻辑处理单元执行,以使第一逻辑处理单元在满足预定义进入条件时进入该飞地;以及提供飞地退出指令集,以供第一逻辑处理单元执行,以使第一逻辑处理单元在满足预定义退出条件时退出该飞地。附图说明包含在本文中并构成其一部分的附图示出了实施例。在参考附图的以下描述中,除非另有说明,否则不同附图中的相同数字表示相同或相似的元件。图1是根据实施例的处理器的示意图。图2是根据实施例的处理器的示意图。图3是根据实施例的用于进入飞地(enclave)的方法的流程图。图4是根据实施例的用于退出飞地的方法的流程图。图5是根据实施例的当两个逻辑处理单元试图进入飞地时发生中断的场景的示意图。图6是根据实施例的当两个逻辑处理单元试图进入飞地时发生中断的另一场景的示意图。图7是根据实施例的用于执行应用的方法的流程图。图8是根据实施例的用于执行应用的装置的框图。图9是根据实施例的用于执行应用的设备的框图。具体实施方式本文的实施例提供用于在支持本文称为“飞地(enclaves)”的受保护执行环境的处理器上执行应用的方法和设备。所述方法和设备提供包括例如用户级应用的应用,所述应用具有声明它们是否信任任何要在同一物理处理单元上与它们一起执行的应用的能力。所述方法和设备还为处理器提供了控制应用(包括用户级应用)如何进入和退出飞地的能力。在一些实施例中,所述方法和设备利用内置于处理器中的指令代码来促进可信应用的声明。在一些实施例中,所述方法和设备利用内置于处理器中的指令代码来控制应用如何进入和退出飞地。本文中公开的实施例具有一个或多个技术效果。在一些实施例中,所述方法和设备利用内置于处理器中的指令代码来促进可信应用的声明。这提高了安全性,因为处理器可以使用它们的内置指令代码来确保在硬件级上仅可信应用才能在同一物理处理单元上执行。在一些实施例中,所述方法和设备利用内置于处理器中的指令代码来控制应用如何进入和退出飞地。这进一步提高了安全性,因为处理器可以实施进入和退出策略而不受在其上执行的任何应用的影响。实际上,所述方法和设备允许应用(包括用户应用)声明它们是否信任任何应用以在同一物理处理单元上与它们一起执行。以这种方式,仅允许可信应用在同一物理处理单元上执行,从而消除了入侵者本文档来自技高网
...

【技术保护点】
1.一种计算机实现的用于执行应用的方法,所述方法包括:/n在处理器的第一物理处理单元中建立飞地;/n记录由第一应用声明的第一信任声明,所述第一信任声明声明所述第一应用是否信任任何要在所述第一物理处理单元上与所述第一应用一起执行的应用;/n将所述第一应用分配给所述第一物理处理单元上承载的第一逻辑处理单元;/n提供飞地进入指令集,供所述第一逻辑处理单元执行,以使所述第一逻辑处理单元在满足预定义进入条件时进入所述飞地;以及/n提供飞地退出指令集,供所述第一逻辑处理单元执行,以使所述第一逻辑处理单元在满足预定义退出条件时退出所述飞地。/n

【技术特征摘要】
【国外来华专利技术】1.一种计算机实现的用于执行应用的方法,所述方法包括:
在处理器的第一物理处理单元中建立飞地;
记录由第一应用声明的第一信任声明,所述第一信任声明声明所述第一应用是否信任任何要在所述第一物理处理单元上与所述第一应用一起执行的应用;
将所述第一应用分配给所述第一物理处理单元上承载的第一逻辑处理单元;
提供飞地进入指令集,供所述第一逻辑处理单元执行,以使所述第一逻辑处理单元在满足预定义进入条件时进入所述飞地;以及
提供飞地退出指令集,供所述第一逻辑处理单元执行,以使所述第一逻辑处理单元在满足预定义退出条件时退出所述飞地。


2.如权利要求1所述的方法,其中,当所述第一物理处理单元上承载的所有逻辑处理单元加载有应用并且所有加载的应用被所述第一应用声明为可信时,满足所述预定义进入条件。


3.如前述任一权利要求所述的方法,其中,所述飞地进入指令集指示所述第一逻辑处理单元通过执行包括以下的步骤来确定是否满足所述预定义进入条件:
更新进入状态记录以指示所述第一逻辑处理单元加载有所述第一应用并且正在等待进入所述飞地;
确定所述第一物理处理单元上承载的所有逻辑处理单元是否加载有应用;以及
响应于确定不是所述第一物理处理单元上承载的所有逻辑处理单元都加载有应用,重复确定所述第一物理处理单元上承载的所有逻辑处理单元是否加载有应用。


4.如权利要求3所述的方法,其中,所述飞地进入指令集指示所述第一逻辑处理单元通过进一步执行包括以下的步骤来确定是否满足所述预定义进入条件:
响应于确定所述第一物理处理单元上承载的所有逻辑处理单元都加载有应用,基于所述第一信任声明确定所有加载的应用是否被所述第一应用声明为可信;以及
响应于确定不是所有加载的应用都被所述第一应用声明为可信,重复确定所有加载的应用是否被所述第一应用声明为可信。


5.如权利要求4所述的方法,其中,所述飞地进入指令集指示所述第一逻辑处理单元通过进一步执行包括以下的步骤来确定是否满足所述预定义进入条件:
响应于基于所述第一信任声明确定所有加载的应用被所述第一应用声明为可信,执行与进入所述飞地相关联的处理。


6.如前述任一权利要求所述的方法,其中,所述飞地进入指令集指示所述第一逻辑处理单元通过进一步执行包括以下的步骤来确定是否满足所述预定义进入条件:
确定是否达到超时限制;以及
响应于确定达到所述超时限制,执行所述飞地退出指令集。


7.如前述任一权利要求所述的方法,其中,所述飞地进入指令集指示所述第一逻辑处理单元通过进一步执行包括以下的步骤来确定是否满足所述预定义进入条件:
确定退出条件是否被触发;以及
响应于确定达到所述退出条件,执行所述飞地退出指令集。


8.如前述任一权利要求所述的方法,其中,当所述第一物理处理单元上承载的所有逻辑处理单元已加载有被所述第一应用声明为可信的应用并开始执行所述飞地退出指令集时,满足所述预定义退出条件。


9.如前述任一权利要求所述的方法,其中,所述飞地退出指令集指示所述第一逻辑处...

【专利技术属性】
技术研发人员:刘晓建
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛;KY

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

1