安全代码跳转和执行选通制造技术

技术编号:18941526 阅读:37 留言:0更新日期:2018-09-15 11:16
本申请涉及安全代码跳转和执行选通。公开了通过创建用于在硅基系统上执行软件代码块的抗毛刺干扰过程来提升硅基系统的安全性的系统、装置和方法。一种示例方法可以通过将软件代码块标记为不可执行而开始。第二,利用分级寄存器登记执行所述软件代码块的意图。第三,将所述软件代码块压缩为压缩常数。第四,使用两个比较器将所述压缩常数与第一预定值进行比较。第五,响应于所述比较器在比较之后提供了真结果,所述软件代码块被标记为可执行以允许所述软件代码执行。在另一个方面,所述示例方法可以被重复n>1次迭代,以及在每次迭代i中,第i个软件代码块被压缩为与第i个预定值相比较的第i个压缩常数。

Security code jump and execution strobe

This application involves security code jumps and execution strobe. Systems, apparatus and methods for enhancing the security of silicon-based systems by creating anti-burr interference processes for executing software code blocks on silicon-based systems are disclosed. An example method can start by marking software block as non executable. Second, register the execution of the intent of the software block with hierarchical registers. Third, the software block is compressed to a compression constant. Fourth, using the two comparators, the compression constant is compared with the first predetermined value. Fifth, in response to the comparator providing a true result after comparison, the software code block is marked as executable to allow the software code to execute. In another aspect, the example method can be repeated N > 1 iteration, and i n each iteration i, the first software code block is compressed into the first compression constant compared with the first predetermined value of I.

【技术实现步骤摘要】
安全代码跳转和执行选通
本申请涉及安全代码跳转和执行选通。
技术介绍
硅芯片在诸如移动计算机和智能电话的许多硅基系统中被使用。每个硅芯片可以包含集成电路以及被用作计算机或电子系统的组件。然而,硅芯片容易受到恶意攻击,诸如攻击方利用电压、激光或类似的破坏技术所导致的毛刺干扰(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)提供验证包含软本文档来自技高网...

【技术保护点】
1.一种用于通过创建用于在硅基系统上执行软件代码块的抗毛刺干扰过程来提升所述硅基系统的安全性的计算机实现的方法,所述计算机实现的方法包括:将所述软件代码块标记为不可执行;利用至少一个分级寄存器登记执行所述软件代码块的意图;经由散列算法将所述软件代码块压缩为压缩常数;使用至少两个比较器将所述压缩常数与第一预定值进行比较;以及响应于所述至少两个比较器在比较之后提供了真结果,将所述软件代码块标记为可执行以允许所述软件代码块执行。

【技术特征摘要】
2017.03.03 US 62/466,6601.一种用于通过创建用于在硅基系统上执行软件代码块的抗毛刺干扰过程来提升所述硅基系统的安全性的计算机实现的方法,所述计算机实现的方法包括:将所述软件代码块标记为不可执行;利用至少一个分级寄存器登记执行所述软件代码块的意图;经由散列算法将所述软件代码块压缩为压缩常数;使用至少两个比较器将所述压缩常数与第一预定值进行比较;以及响应于所述至少两个比较器在比较之后提供了真结果,将所述软件代码块标记为可执行以允许所述软件代码块执行。2.根据权利要求1所述的计算机实现的方法,进一步包括:响应于所述至少两个比较器中的至少一个比较器在比较之后提供了假结果,禁止所述软件代码块执行。3.根据权利要求1所述的计算机实现的方法,进一步包括:响应于将所述软件代码块标记为可执行,执行所述软件代码块;以及在执行所述软件代码块之后,将所述软件代码块标记为不可执行。4.根据权利要求1所述的计算机实现的方法,进一步包括:将第二软件代码块标记为不可执行;利用至少一个分级寄存器登记执行所述第二软件代码块的意图;经由所述散列算法将所述第二软件代码块压缩为第二压缩常数;使用所述至少两个比较器将所述第二压缩常数与不同于所述第一预定值的第二预定值相比较;以及响应于所述至少两个比较器在所述比较之后提供了真结果,将所述第二软件代码块标记为可执行以允许所述第二软件代码块执行。5.根据权利要求4所述的计算机实现的方法,进一步包括接收要在所述硅基系统上执行的第二软件代码块。6.根据权利要求4所述的计算机实现的方法,进一步包括从验证过程接收针对所述第二软件代码块的验证。7.根据权利要求1所述的计算机实现的方法,进一步包括:响应于在所述软件代码块被标记为不可执行时读取所述软件代码块的尝试,提供错误或者锁定所述硅基系统而使得所述软件代码块不执行。8.根据权利要求1所述的计算机实现的方法,进一步包括接收要在所述硅基系统上执行的所述软件代码块。9.根据权利要求1所述的计算机实现的方法,进一步包括从验证处理器接收针对所述软件代码块的验证。10.根据权利要求1所述的计算机实现的方法,其中将所述软件代码块标记为不可执行包括将所述软件代码块存储在已经被标记为不可执行的存储器中。11.根据权利要求1所述的计算机实现的方法,其中在存储所述软件代码块之前加载器将可以包含所述软件代码块的存储器标记为不可执行。...

【专利技术属性】
技术研发人员:马里厄斯·P·席尔德斯科特·D·约翰森蒂莫西·陈德雷克·劳伦斯·马丁
申请(专利权)人:谷歌有限责任公司
类型:发明
国别省市:美国,US

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

1