安全代码跳转和执行选通的制作方法

文档序号:15446979发布日期:2018-09-14 23:29阅读:177来源:国知局

本申请涉及安全代码跳转和执行选通。



背景技术:

硅芯片在诸如移动计算机和智能电话的许多硅基系统中被使用。每个硅芯片可以包含集成电路以及被用作计算机或电子系统的组件。然而,硅芯片容易受到恶意攻击,诸如攻击方利用电压、激光或类似的破坏技术所导致的毛刺干扰(glitch)。这些毛刺干扰会影响到程序控制流程,包括导致跳转(jump)至特定代码位置从而可能使得攻击方获益。

更详细地,常规硅基系统中诸如jump指令之类的代码执行指令可以响应于具有验证所述代码的单一条件的条件if/then校验指令来执行。如果所述条件被满足,则所述指令返回true(真)并且实行代码执行操作。在所述指令为jump的情况下,通过将指令指针寄存器改变为指定代码空间而转移执行流程。如果所述条件未被满足,则所述指令返回false(假)并且不实行代码执行操作。

该简单的if/then条件操作非常容易受到攻击,这是因为if校验可以轻易地由于毛刺干扰而从false变为true,或者jump操作可以由于毛刺干扰而跳转至攻击方指定的位置从而执行恶意代码。攻击方能够愚弄系统使其相信未经验证或不良代码是合法的,或者即使所述代码是合法的,攻击方也能够使得系统跳转至不良位置并执行非期望的代码。



技术实现要素:

公开了通过创建用于在硅基系统上执行软件代码块的抗毛刺干扰过程提升硅基系统的安全性的系统、装置和方法。一种示例方法可以通过将软件代码块标记为不可执行而开始。第二,利用分级寄存器登记执行所述软件代码块的意图。第三,将所述软件代码块压缩为压缩常数。第四,使用两个比较器将所述压缩常数与第一预定值进行比较。第五,响应于所述比较器在比较之后提供了真结果,所述软件代码块被标记为可执行以允许所述软件代码执行。在另一个方面,所述示例方法可以被重复n>1次迭代,以及在每次迭代i中,第i个软件代码块被压缩为与第i个预定值相比较的第i个压缩常数。

在仅作为图示给出的附图中以及以下的描述中给出了一个或多个方面的细节。其它特征、方面和优势将由于描述、附图和权利要求而变得清楚明白。各图中相似的附图标记和名称指示相似的元素。

附图说明

图1图示了支持抗毛刺干扰软件代码块执行过程的硅基系统的功能元件的框图。

图2是通过创建用于由硅基系统执行软件代码块的抗毛刺干扰过程来提升硅基系统的安全性的示例计算机实现的方法的流程图。

图3是通过创建用于执行n>1个软件代码块来提升硅基系统的安全性的示例计算机实现的方法的流程图,其中第i个软件代码块在第i个执行层级上执行,i∈{1,…,n}。

图4是图示示例硅基系统的框图。

具体实施方式

为了防止攻击方能够对if/then条件校验操作进行毛刺干扰,安全硅基系统从用于跳转至验证代码的抗毛刺干扰方法而获益。需要一种防止if/then条件校验的毛刺干扰以及防止毛刺干扰导致系统跳转至不良位置的机制。

即使如if语句的条件语句被正确评估,jump语句也会受到毛刺干扰从而使得系统跳转至不良位置。另外,jump语句可能并不包含在条件语句块之内,这意味着它将在执行到达代码中出现jump的语句的地方时被执行。对并未包含在条件语句块之内的jump语句进行毛刺干扰会是可能的。

因此,除了防止导致条件语句的不正确评估的毛刺干扰之外,还期望防止由于导致跳转至不正确位置的毛刺干扰而执行恶意代码。

本文描述了通过提供一种用于跳转至验证代码并执行所述代码而不必在验证某些代码应当被执行的条件校验中具有单个故障点的抗毛刺干扰方法而提升硅基系统的安全性。另外,根据一个或多个方面,可以通过提供一种用于跳转至验证代码并执行所述代码而不必在指定到存储器位置的跳转的命令中具有单个故障点的抗毛刺干扰方法而提升硅基系统的安全性。

一个示例方面包括用于提升硅基系统的安全性的若干单独方面。首先,用于硅基系统上的存储的存储器能够保存可执行代码,以及所述可执行代码可以具有至少一种执行属性。如以下参考图3进一步解释的,存储器可以具有引导存储器、只读存储器、随机存取存储器、电可擦除可编程只读存储器(eeprom)以及闪存。第二,示例方面可以具有分级寄存器,所述分级寄存器向逻辑指定至少一种执行属性,所述逻辑根据所述执行属性来控制对所述存储器的访问。第三,可以有至少两个比较器来确定可执行代码是否被验证和信任。

代码执行可以被划分为不同的执行层级,其中每个执行层级涉及到单独的软件代码块。每个执行层级可以具有不同的预定值。在没有与当前执行层级期间所获得的压缩常数相匹配的与当前执行层级相关联的预定值的情况下,代码执行可以不移动至不同层级。软件代码块、包含软件代码块的存储器或者在后续时间可能包含软件代码块的存储器的执行属性可以包括以下的至少一种:可执行、不可执行或非信任。

图1图示了支持抗毛刺干扰软件代码块执行过程的硅基系统(100)的功能元件的框图。所述硅基系统可以是任意的多种形式,包括由单个硅芯片上的存储器和/或逻辑集成电路(ic)所组成的片上系统(soc)、由具有专用功能的多个分立硅芯片组成的系统封装(sip)或多芯片封装(mcp)、具有多个分立组件(每个组件具有密封/封装的芯片)的计算设备等。

软件代码块(101)可以被接收或下载至硅基系统(100)的存储器(102)。控制器(103)可以控制存储器(102)是否能够被读取。控制器可以以包围存储器(102)的至少一件硬件的形式来实施。在至少一个实施例中,在执行软件代码块(101)之前,诸如引导加载器的加载器(110)可以将新下载的软件代码块(101)标记为“不可执行”,这意味着如果存在读取来自软件代码块(101)的代码的尝试,则硅基系统(100)可以被锁定和/或可以提供错误。加载器(110)可以处于硬线连接在硅基系统(100)上的rom诸如引导rom中。一旦加载器(110)被验证并保证安全,可选的附加加载器(111)就可以被加载到存储器(102)中。

在至少一个实施例中,将软件代码块(101)标记为不可执行可以通过至少一次地包括将软件代码块(101)的存储器(102)标记为不可执行来完成。类似地,将软件代码块(101)标记为可执行可以通过至少一次地将包括软件代码块(101)的存储器(102)标记为可执行来完成。

将软件代码块(101)标记为可执行或不可执行可以通过标记存储器(102)内的起始存储器地址和结束存储器地址以便识别被接收或存储到存储器(102)中的软件代码块(101)的位置来完成。在某些实例中,这样的标记在存储器接收或存储软件代码块(101)之前进行。存储器(102)内的某些位置范围也可以默认地被标记为不可执行(以及随后在本文所描述的条件下被标记为可执行)。

当存在来自请求处理器的执行软件代码块(101)的请求(105)时,可以利用分级寄存器(104)登记执行软件代码块(101)的意图。在至少一个实施例中,登记意图可以通过在分级存储器(104)中存储具有对应于软件代码块(101)的存储器位置的加载指令来完成。控制包含软件代码块(101)的存储器(102)的控制器(103)可以基于软件代码块(101)被标记为“可执行”还是“不可执行”来确定软件代码块(101)是否可以被执行。分级寄存器(104)随后可以向请求的验证处理器(106)提供验证包含软件代码块(101)的存储器(102)可以采用如至少一个分级寄存器(104)所指定的至少一种执行属性的信息。例如,如果软件代码块(101)被认为是被信任且经验证的,则软件代码块(101)被标记为“可执行”。请求过程的执行或者所述请求过程中的线程的执行在直至接收到软件代码块(101)被标记为可执行的通知之前都不会发生。

验证处理器(106)执行实施验证过程的指令以便验证软件代码块(101)被标记为可执行。作为验证过程的一部分,验证处理器(106)识别软件代码块(101)以利用散列函数来运行元数据和软件代码块(101)以及对元数据和软件代码块(101)进行散列。软件代码块(101)可以被包含在从硅基系统(100)之外所接收的有效载荷中。所述有效载荷还可以包含元数据,所述元数据可以包含指示软件代码块(101)应当被如何验证的信息。验证处理器(106)还可以使用有效载荷是什么以及指示有效载荷应当被如何验证的位字段(bitfield)的组合。如果有效载荷和位字段表示形式并不一致,则所述有效载荷不会被验证处理器(106)所验证。

一旦验证处理器(106)已经成功完成了验证,软件代码块(101)就可以经由执行散列算法的压缩处理器(107)而被压缩为压缩常数。可以使用诸如sha2-256或sha3-256之类的安全散列算法来创建压缩常数。所述压缩常数随后可以被软件送入两个比较器(108a、108b)以便进行确认。所述两个比较器(108a、108b)将所述压缩常数与预定值相比较。所述预定值被存储在硅基系统(100)的存储器(102)或者其它硬件之中。

实施例并不局限于两个比较器。确认可以采用三个、四个或更多的可选比较器(108n)。在将压缩常数与预定值相比较以便确定软件代码块(101)并非恶意时,来自由比较器完成的比较的结果必须为同意(返回真)。

比较器(108a、108b、...、108n)可以接收相同的输入并且应当返回指示压缩结果等于预定值的相同结果。也就是说,比较器(108a、108b、...、108n)中的每一个可以接收相同的输入并且应当返回真,这指示所述压缩常数等于预定值。由比较器(108a、108b、...、108n)提供的返回结果必须为同意(返回真)以确定所测试的软件代码块(101)并非是恶意的。冗余比较器校验使得示例系统更加难以攻击,这是因为在将软件代码块(101)标记为“可执行”之前所有比较器校验必须匹配。

在示例实施例中,如果由比较器(108a、108b、...、108n)提供的返回结果同意(返回真)压缩常数等于预定值,则软件代码块(101)可以被标记为“可执行”。在另一个示例实施例中,如果由比较器(108a、108b、...、108n)提供的所有返回结果同意(返回真)压缩常数等于预定值,则软件代码块(101)可以被移动至或存储在被标记为“可执行”的存储器中。在至少一个实施例中,如果由比较器(108a、108b、...、108n)提供的返回结果并非同意,则所述软件代码块不会被标记为“可执行”,并且控制存储器(102)的控制器(103)不会允许所测试的软件代码块(101)被执行。如果至少一个比较器在确定压缩常数是否等于预定值时返回假,则软件代码块(101)会被标记为“不可执行”,或者被移动至或存储在被标记为“不可执行”的存储器中。

如果全部比较器(108a、108b、...、108n)都不同意,则软件代码块(101)可以被标记为“非信任”。在至少一个实施例中,如果软件代码块(101)被标记为“非信任”,则硅基系统(100)会被锁定(例如,可以禁止进一步的代码执行和/或可以报告错误)。

通过将分级寄存器、验证过程以及至少两个比较器进行组合,附加语句的校验能够在硬件中多次重复从而创建抗毛刺干扰性。

由硅基系统(100)执行的软件可以被划分为不同执行层级。用于特定执行层级的软件代码块(例如,软件代码块(101))必须与特定于该特定执行层级的预定值相比较。执行层级可以由软件来确定。在硅基系统(100)启动时,软件可以指示所述硅基系统正在运行哪个执行层级。

软件代码块(101)可以被锁住直至登记了分级寄存器执行所述软件代码块的意图。通过仅在比较器提供了指示比较常数等于预定值的结果之后才将软件代码块标记为“可执行”,除可忽视的概率以外,所述验证过程确保了攻击方无法将执行从软件代码块(101)跳转至硅基系统(100)中的任何地方。仅在软件代码块(101)被标记为“可执行”的情况下它才能够被执行。在软件代码块(101)被执行之后,另一个软件代码块随后被下载并经过所述处理的下一次迭代。

软件代码块(101)可以在它已经被访问之后变为无效。在这样的实例中,软件代码块(101)被标记为不可执行以及经由简单寄存器写入而被无效。软件代码块(101)随后可以在后续时间期望再次执行所述软件代码块的情况下再次被启用。

图2是通过创建用于由硅基系统执行软件代码块的抗毛刺干扰过程来提升硅基系统的安全性的示例计算机实现的方法(200)的流程图。

首先以及可选地,在(201),接收要在硅基系统上执行的软件代码块。所述硅基系统可以是图1的硅基系统(100),以及所述软件代码块可以是图1的软件代码块(101)。如果软件代码块(101)已经被加载或接收,接收要在硅基系统(100)上执行的软件代码块(101)是可选的。

其次,在(202),软件代码块(101)被标记为不可执行。第三,在(203),利用至少一个分级寄存器登记执行软件代码块(101)的意图,所述分级寄存器诸如图1的分级寄存器(104)。

可选地以及第四,在(204),执行对软件代码块(101)进行验证的验证过程。所述验证过程可以由诸如图1的验证处理器(106)的验证处理器来执行。

第五,在(205),软件代码块被压缩为压缩常数。所述压缩可以由压缩处理器来执行,所述压缩处理器诸如图1的执行散列算法的压缩处理器(107)。

第六,在(206),使用至少两个比较器将所述压缩常数与第一预定值相比较。所述比较器例如可以是图1的比较器(108a、108b、...、108n)。

第七,在(207)以及响应于所述比较器在比较之后提供了真结果,软件代码块(101)被标记为可执行以允许所述软件代码块执行。

图3是通过创建用于执行n>1个软件代码块来提升硅基系统的安全性的示例计算机实现的方法(300)的流程图,其中第i个软件代码块在第i个执行层级上执行,i∈{1,…,n}。所述方法可以由图1中所描绘的硅基系统(100)的功能元件的一个或多个组合来执行。

首先,在(301),计数器i被设置为1。所述计数器可以由诸如图1的验证处理器(106)的验证处理器或者可以存在于硅基系统中的其它逻辑电路或硬件来设置并维护。

可选地以及其次,在(302),接收第i个软件代码块。所述第i个软件代码块可以是图1的软件代码块(101),并且可以由诸如图1的存储器(102)的存储器所接收。在例如第i个软件代码块可能已经被加载或接收的情况下,接收第i个软件代码块是可选的。

第三,在(303),第i个软件代码块(例如,软件代码块(101))被标记为不可执行。所述第i个软件代码块例如可以由图1的加载器(110)标记为不可执行,所述加载器(110)在第i个软件代码块被接收到存储器(102)中时标记它的起始和结束位置。

第四,在(304),利用至少一个分级寄存器登记执行所述第i个软件代码块的意图,所述分级寄存器诸如图1的分级寄存器104。可选地以及第五,在(305),执行验证过程。所述验证过程可以至少部分由诸如图1的验证处理器(106)的验证处理器来执行。

第六,在(306),所述第i个软件代码块被压缩处理器压缩为第i个压缩常数,所述压缩处理器诸如图1的压缩处理器(107)。压缩处理器(107)可以执行散列算法以便生成第i个压缩常数。

第七,在(307),使用至少两个比较器将所述第i个压缩常数与第i个预定值相比较。所述预定值可以被存储在存储器(102)中以及使用图1的比较器(108a、108b、...、108n)进行比较。

第八,在(308)以及响应于所述比较器在比较之后提供了真结果,所述第i个软件代码块被标记为可执行以允许所述第i个软件代码块执行。所述第i个软件代码块(例如,软件代码块(101))例如可以由加载器(110)标记为可执行。

第九以及在(309),第i个软件代码块执行。所述第i个软件代码块(例如,软件代码块(101))可以由硅基系统(100)可用的一个或多个处理器、处理核心等来执行。可选地,第十,在(310),第i个软件代码块被标记为不可执行。

第十一,在(311),如果诸如图1的验证处理器(106)的处理器确定i=n,则所述处理器在(312)停止。如果在(311)由验证处理器(106)确定i≠n,,则在(313)i加1;开始第i个执行层级(314);以及可选地,接收要在所述硅基系统上执行的另一个(例如,第(i+1)个)软件代码块(402)。

图4是图示示例硅基系统的框图。所述示例硅基系统可以使用图1的硅基系统(100)。

在基本配置(401)中,计算设备(400)通常包括一个或多个处理器(410)以及系统存储器(420)。存储器总线(430)能够被用于在处理器(140)和系统存储器(420)之间进行通信。

根据所期望的配置,处理器(410)可以为任意类型,包括但并不局限于微处理器(μp)、微控制器(μc)、数字信号处理器(dsp),或者它们的任意组合。处理器(410)可以包括一个或多个高速缓存层级,诸如一级高速缓存(411)以及二级高速缓存(412),处理器核心(413)和寄存器(414)。处理器核心(413)可以包括算术逻辑单元(alu)、浮点单元(fpu)、数字信号处理核心(dsp核心),或者它们的任意组合。存储器控制器(415)也可以随处理器(410)一起使用,或者在一些实施方式中,存储器控制器(415)可以是处理器(410)的内部部分。

根据所期望的配置,系统存储器(420)可以是任意类型,包括但并不局限于易失性存储器(诸如ram)、非易失性存储器(诸如rom、eeprom、闪存等),或者它们的任意组合。系统存储器(420)通常包括操作系统(421)、一个或多个应用(422)、和程序数据(424)。应用(422)可以包括用于硅基系统(100)的安全性提升算法,所述安全提升算法创建用于执行诸如图1的软件代码块(101)的软件代码块的抗毛刺干扰过程。所述抗毛刺干扰过程可以依据图2和3的流程图中的一个或多个。程序数据(424)可以包括存储指令,所述存储指令在由一个或多个处理设备执行时实施通过创建抗毛刺干扰过程而提升硅基系统(100)的安全性的方法。

此外,程序数据(424)可以包括诸如图1的软件代码块(101)的一个或多个软件代码块,和/或用于压缩常数的比较的一个或多个预定值。在一些实施例中,应用(422)可以被配置成利用操作系统(421)上的程序数据(424)进行操作。

计算设备(400)可以具有附加的特征或功能,以及用于促成基本配置(401)和任意所需设备和接口之间的通信的附加接口。

系统存储器(420)是计算机存储介质的示例。计算机存储介质包括但并不局限于ram、rom、eeprom、闪存或其它存储器技术,cd-rom、数字多功能盘(dvd)或者其它光学存储,磁性卡盒、磁带、磁盘存储或者其它磁性存储设备,或者可以被用来存储所期望信息以及能够由计算设备400访问的任意其它介质。任何这样的计算机存储介质都可以是计算设备(400)的一部分。系统存储器(420)可以是图1的存储器(102)以及受制于如图2的方法200或图3的方法300所描述的方法。

存储器控制器(415)可以基于系统存储器(420)的一部分被标记为“可执行”还是“不可执行”来控制系统存储器(420)或者控制针对系统存储器(420)的访问、读取或写入。在至少一个实施例中,存储器控制器(415)可以基于取决于软件代码块(101)被标记为“可执行”还是“不可执行”的软件代码块(101)是否可以被执行,来控制系统存储器(420)或者控制针对系统存储器(420)的访问、读取或写入。

计算设备(400)的处理器(410)可以执行逻辑和/或比较功能。所述逻辑和/或比较功能可以被图2或图3的方法200支持,以及包括由图1的验证处理器(106)、压缩处理器(107)和比较器(108a、108b、...、108n)执行的功能。此外以及特别地,计算设备(400)的寄存器(314)可以执行图1的分级寄存器(104)的功能。

计算设备(400)能够被实施为小外形因子便携式(或移动)电子设备的一部分,所述电子设备诸如蜂窝电话、智能电话、个人数字助理(pda)、个人媒体播放器设备、平板计算机(平板)、无线web手表设备、个人头戴式耳机设备、专用设备,或者包括任意上述功能的混合设备。计算设备(400)也可以被实施为个人计算机,包括膝上型计算机和非膝上型计算机配置。

以上详细描述已经通过使用框图、流程图和/或示例给出了设备和/或过程的各个实施例。只要这些框图、流程图和/或示例包含一个或多个功能和/或操作,那么本领域的技术人员将会理解,这样的框图、流程图或示例内的每种功能和/或操作能够单独和/或共同地由各种各样的硬件、软件、固件或者实际上它们的任意组合来实施。依据至少一个实施例,本文所描述主题的若干部分可以经由专用集成电路(asic)、现场可编程门阵列(fpga)、数字信号处理器(dsp)或者其它集成形式来实施。然而,本领域技术人员将会认识到,本文所公开的实施例的一些方面能够整体上或作为部分在集成电路中等同地被实施为在计算机上运行的一个或多个计算机程序,被实施为在一个或多个处理器上运行的一个或多个程序,被实施为固件,或者实际上被实施为它们的任意组合,以及设计电路和/或写入用于所述软件和/或固件的代码将借助于本公开而出于本领域技术人员的范围之内。

此外,本领域技术人员将会意识到,本文所描述主题的机制能够作为各种形式的程序产品来分布,以及本文所描述主题的说明性实施例无论本用来实行所述分布的非瞬态计算机可读介质的类型如何都加以应用。非瞬态计算机可读介质的示例包括但并不局限于以下:可记录类型的介质,诸如闪存、硬盘、固态硬盘(ssd)、紧凑盘(cd)、数字视频盘(dvd)、蓝光盘(bd)、数字带、计算机存储器、电可擦除可编程只读存储器(eeprom)等的可记录类型介质。

关于基本上本文任意复数和/或单数术语的使用,本领域技术人员能够在上下文和/或应用适宜的情况下从复数转换为单数和/或从单数转换为复数。各种单数/复数置换都可以在本文中出于清楚的原因而被明确给出。

因此,已经描述了主题的特定实施例。其它实施例处于以下权利要求的范围之内。在一些情况下,权利要求中所引用的动作能够以不同顺序来执行且仍然实现所期望的结果。此外,附图中所描绘的过程并非必然要求所示出的特定次序或者顺序次序来实现所期望的结果。在某些实施方式中,多任务和并行处理会是有利的。

示例方面

通常,该说明书中所描述的主题的一个方面能够以一种通过创建用于在硅基系统上执行软件代码块的抗毛刺干扰过程来提升硅基系统的安全性的计算机实现的方法所体现,所述计算机实现的方法包括:将软件代码块标记为不可执行;利用至少一个分级寄存器登记执行所述软件代码块的意图;将所述软件代码块压缩为压缩常数;使用两个比较器将所述压缩常数与第一预定值进行比较;以及响应于所述至少两个比较器在比较之后提供了真结果,将所述软件代码块标记为可执行以允许所述软件代码执行。

这些和其它方面可选地可以包括以下一个或多个特征。在至少一个方面,所述计算机实现的方法进一步包括:响应于所述至少两个比较器中的至少一个在比较之后提供了假结果,禁止所述软件代码块执行。

在至少一个方面,所述计算机实现的方法进一步包括:响应于将所述软件代码块标记为可执行,执行所述软件代码块;以及在执行所述软件代码块之后,将所述软件代码块标记为不可执行。

在至少一个方面,所述计算机实现的方法进一步包括:将第二软件代码块标记为不可执行;利用至少一个分级寄存器登记执行所述第二软件代码块的意图;将所述第二软件代码块压缩为第二压缩常数;使用所述至少两个比较器将所述第二压缩常数与不同于所述第一预定值的第二预定值相比较;以及响应于所述至少两个比较器在比较之后提供了真结果,将所述第二软件代码块标记为可执行以允许所述第二软件代码块执行。这样的计算机实现的方法可以进一步包括接收要在所述硅基系统上执行的软件代码块以及从验证过程接收针对所述第二软件代码块的验证。

在至少一个方面,所述计算机实现的方法进一步包括:响应于在所述软件代码块被标记为不可执行时读取所述软件代码块的尝试,提供错误或者锁定所述硅基系统而使得所述软件代码块不执行。

在所述计算机实现的方法的至少一个方面,将所述软件代码块标记为不可执行包括将所述软件代码块存储在已经被标记为不可执行的存储器中。

在所述计算机实现的方法的至少一个方面,加在存储所述软件代码块之前载器将可以包含所述软件代码块的存储器标记为不可执行。

在至少一个方面,所述计算机实现的方法进一步包括:响应于所述至少两个比较器中的至少一个在比较之后提供了假结果,将所述软件代码块标记为非信任;以及提供错误或者锁定所述硅基系统而使得进一步的代码执行被禁止。

通常,该说明书中所描述主题的一个方面能够以一种提供用于执行软件代码块的抗毛刺干扰过程的装置来体现,所述装置包括:分级寄存器;两个比较器;以及处理器,其中所述处理器被配置成执行操作,所述操作包括:将软件代码块标记为不可执行;利用所述分级寄存器登记执行所述软件代码块的意图;将所述软件代码块压缩为压缩常数;使用所述两个比较器将所述压缩常数与第一预定值进行比较;以及响应于所述两个比较器在比较之后提供了真结果,将所述软件代码块标记为可执行以允许所述软件代码执行。

在至少一个方面,所述装置被配置成从验证处理器接收针对所述软件代码块的验证。

在至少一个方面,所述装置进一步被配置成对所述软件代码块以及与所述软件代码块相关的元数据进行散列。

在至少一个方面,所述装置被配置成执行进一步的操作,包括:响应于所述两个比较器在比较之后提供了假结果,禁止所述软件代码块执行。

在至少一个方面,所述装置被配置成执行进一步的操作,包括:响应于将所述软件代码块标记为可执行,执行所述软件代码块;以及在执行所述软件代码块之后,将所述软件代码块标记为不可执行。

在至少一个方面,所述装置进一步包括:存储器;以及加载器,其中所述加载器被配置成在将软件代码块存储在被标记为不可执行的存储器中之前把将要包含所述软件代码块的存储器标记为不可执行。

在至少一个方面,所述装置的处理器进一步被配置成执行进一步的操作,包括:将第二软件代码块标记为不可执行;利用至少一个分级寄存器登记执行所述第二软件代码块的意图;将所述第二软件代码块压缩为第二压缩常数;使用所述两个比较器将所述第二压缩常数与不同于所述第一预定值的第二预定值相比较;以及响应于所述两个比较器在比较之后提供了真结果,将所述第二软件代码块标记为可执行以允许所述第二软件代码块执行。

在至少一个方面,所述装置的处理器进一步被配置成执行进一步的操作,包括:响应于所述两个比较器在比较之后提供了假结果,将所述软件代码块标记为非信任;以及提供错误或者锁定所述装置而使得进一步的代码执行被禁止。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1