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

安全引导计算设备制造技术

技术编号:14706786 阅读:34 留言:0更新日期:2017-02-25 14:04
用于安全地引导计算设备的技术包括计算设备的安全引擎,该安全引擎连续地确定针对初始引导固件的每个块的哈希值,并且根据所确定的针对这些块中的每个块的哈希值来生成聚合的哈希值。计算设备的处理器确定聚合的哈希值是否与参考校验和值相匹配。响应于确定聚合的哈希值与参考校验和值相匹配而完成处理器的初始化。在一些实施例中,安全引擎连续地从计算设备的存储器中取回初始引导固件的每个块、将所取回的每个块存储在安全引擎的安全存储器中、并且确定所存储的每个块的哈希值。将存储在安全存储器中的每个块复制到处理器的高速缓存中的被初始化为高速缓存RAM的部分上。

【技术实现步骤摘要】
【国外来华专利技术】
技术介绍
计算机安全的一个方面涉及保护计算机系统不受恶意的软件(也被称为“恶意软件”)侵害。恶意软件有多种形式;然而,许多常见种类的恶意软件对计算机存储器中未授权的位置执行写操作或者其它访问。例如,某些恶意软件在引导过程的初始阶段期间攻击低级系统代码(例如,平台初始化固件、引导加载程序、操作系统内核等)。可以由所谓的“bootkits”或者“rootkits”来使用这样的攻击以获得对系统的控制并且逃避检测。典型的计算机系统通过执行“安全引导”或者“安全启动”来检测并防止恶意软件的执行。为此,计算系统可以包括安全引擎或者安全协处理器,它们被配置为在引导过程期间,在对低级系统代码进行加载之前而验证其完整性。例如,在引导过程的初始化之后,计算系统的安全引擎可以生成用于对该计算系统的主处理器进行初始化所需要的固件的哈希。随后,安全引擎可以将该哈希与对应于该固件的纯正版本的已知良好的哈希或校验和值进行比较。如果确定这两个哈希是匹配的,则可以允许该执行该固件以使得主处理器或计算系统的其它组件被初始化。嵌入式系统和片上系统(SoC)系统在计算生态系统中变得越来越普遍。在典型的SoC系统中,由将其自身的静态随机存取存储器(SRAM)嵌入在SoC中的集成的安全引擎或者安全协处理器来管理安全引导过程。为了确保从头开始的安全引导,在允许执行低级系统代码之前,必须由集成的安全引擎对该低级系统代码进行验证。通常而言,必须首先将这样的低级系统代码存储在该集成的安全引擎的SRAM上。从而,待由集成的安全引擎进行验证的任何低级系统代码的大小有效地受到嵌入到该SoC中的SRAM的大小的限制。另外,由于SoC上的额外的SRAM存储体(bank)的相关联的成本、管芯尺寸、以及功耗,因此增加SoC上的SRAM的总大小以支持对更大大小的低级系统代码的验证通常是不现实的。附图说明在附图中作为示例而非限制来示出了在本文中所描述的概念。为了说明的简单和清楚起见,在附图中所示出的元素不一定是按比例绘制的。在认为合适的情况下,在附图中将一些附图标记进行了重复,以指示对应的或类似的元素。图1是用于使用计算设备来执行安全引导的系统的至少一个实施例的简化的框图;图2是图1的系统的计算设备的环境的至少一个实施例的简化的框图;图3是用于执行可以由图1和图2的计算设备来执行的安全引导的方法的至少一个实施例的简化的流程图;图4是图3的方法的子例程的至少一个实施例的简化的流程图,所述子例程用于连续地确定针对可以由图1和图2的计算设备执行的初始引导固件的块的哈希值;以及图5是图3的方法的子例程的至少一个其它实施例的简化的流程图,所述子例程用于连续地确定针对可以由图1和图2的计算设备执行的初始引导固件的块的哈希值。具体实施方式尽管本公开的概念可以有各种变型和可替代的形式,但已经作为示例在附图中示出了其具体的实施例,并且将在本文中对其进行详细描述。然而应当理解的是,不旨在将本公开的概念限制于所公开的特定的形式,相反,本专利技术是要覆盖与本公开和所附权利要求相一致的所有修改、等同物、以及可替代物。在说明书中对“一个实施例”、“某个实施例”、“示例性实施例”等的引用指示所描述的实施例可以包括特定的特征、结构、或特性,但每个实施例可以或不一定包括该特定的特征、结构、或特性。此外,这样的短语非必须指的是相同的实施例。此外,当结合实施例来描述特定的特征、结构、或特性时,提出了结合其它实施例(无论其是否进行了明确地描述)实现这样的特征、结构、或特性也在本领域技术人员的知识范围内。额外地,应当理解的是,以“A、B和C中的至少一个”的形式包括在列表中的项目可以意味着(A);(B);(C);(A和B);(A和C);(B和C);或者(A、B和C)。类似地,以“A、B或C中的至少一个”的形式列出的项目可以意味着(A);(B);(C);(A和B);(A和C);(B和C);或者(A、B和C)。在一些情况下,可以以硬件、固件、软件或其任何组合来实现所公开的实施例。此外,还可以将所公开的实施例实现为由一个或多个瞬时性或者非瞬时性机器可读(例如,计算机可读)存储介质所执行或存储在其上的指令,所述指令可以由一个或多个处理器来读取或执行。机器可读存储介质可以被实施为用于以能够由机器读取的形式存储或发送信息的任何存储设备、机制、或其它物理结构(例如,易失性或非易失性存储器、媒体盘、或其它介质设备)。在附图中,可以以具体的布置和/或顺序示出一些结构或方法特征。然而应当理解的是,这样的具体的布置和/或顺序不是必需的。相反,在一些实施例中,可以以与在说明性附图中所示出的不同的方式和/或顺序来布置这些特征。额外地,特定的附图中所包含的结构或方法特征不意味着暗示在所有实施例中都需要这样的特征,相反,在一些实施例中,这样的特征可以不被包括,或者可以与其它特征进行组合。现在参考图1,在说明性实施例中,用于执行安全引导的系统100包括计算设备102。在使用中,计算设备102的安全引擎140取回并认证存储在计算设备102的存储器130中的平台初始化固件134(例如,阶段-0固件134)。计算设备102的处理器110可以执行经认证的平台初始化固件136以将处理器110的高速缓存存储器112的一部分初始化为高速缓存RAM(CacheasRAM,CAR)114。计算设备102的存储器130还可以存储初始引导固件136(例如,阶段-1固件136),其中可以需要初始引导固件136来完成处理器110的初始化(例如,引导等)。在一些实施例中,初始引导固件136的总存储大小可以超过安全引擎140的安全存储器142中可用的存储容量的量。在这样的实施例中,可以将初始引导固件136分解成多个块(例如,分段、二进制大对象(blob)、部分、子集等),所述多个块中的每个块都是可以由安全引擎140从存储器130中取回并随后存储在安全存储器142中的。安全引擎140可以确定针对存储在安全存储器142中的初始引导固件136的所取回的每个块的哈希值。在生成了初始引导固件136的所取回的块的哈希值之后,安全引擎140可以将该块复制到在处理器110的高速缓存存储器112中所初始化的CAR114中。在一些实施例中,处理器110(而不是安全引擎140)可以将初始引导固件136的每个块复制到CAR114。可以由安全引擎140基于所确定的针对初始引导固件136的所取回的每个块的哈希值来生成聚合的哈希值。可以将该聚合的哈希值与和初始引导固件136的原始或纯正版本的已知的哈希值相对应的参考哈希值和校验和值进行比较。可以响应于确定该聚合的哈希值与参考哈希值相匹配而完成处理器的初始化。在一些实施例中,可以响应于确定该聚合的哈希值与参考哈希值不匹配而执行一个或多个安全功能。应当理解的是,通过将初始引导固件136(例如,阶段-1固件136)分解成多个块、将每个块连续地存储在安全存储器142中、并且在生成哈希值之后将每个块从安全存储器142复制到CAR114,初始引导固件136(例如,阶段-1固件136)的总存储大小可以超过安全引擎140的安全存储器142中可用的存储容量的量。即,安全引擎140的安全存储器142的存储容量的量不限制初始引导固件136(例如,阶段-1固件1本文档来自技高网...
<a href="http://www.xjishu.com/zhuanli/55/201480077635.html" title="安全引导计算设备原文来自X技术">安全引导计算设备</a>

【技术保护点】
一种用于执行安全引导的计算设备,所述计算设备包括:所述计算设备的安全引擎,其包括用于执行以下操作的安全引导模块:(i)连续地确定针对初始引导固件的多个块中的每个块的哈希值,其中,连续地确定所述哈希值包括:(a)从所述计算设备的存储器中取回所述多个块中的每个块,(b)将所取回的每个块存储在所述安全引擎的安全存储器中,(c)确定针对存储在所述安全存储器中的每个块的所述哈希值;以及(ii)根据所确定的针对所述初始引导固件的每个块的所述哈希值来生成聚合的哈希值;以及包括高速缓存RAM和处理器初始化模块的处理器,所述处理器用于:(i)将所述聚合的哈希值和与所述初始引导固件相关联的参考校验和值进行比较,以确定所述聚合的哈希值是否与所述参考校验和值相匹配;并且(ii)响应于确定所述聚合的哈希值与所述参考校验和值相匹配而完成所述处理器的初始化,其中,所述安全引导模块或者所述处理器初始化模块用于将存储在所述安全存储器中的每个块复制到所述处理器的所述高速缓存RAM。

【技术特征摘要】
【国外来华专利技术】1.一种用于执行安全引导的计算设备,所述计算设备包括:所述计算设备的安全引擎,其包括用于执行以下操作的安全引导模块:(i)连续地确定针对初始引导固件的多个块中的每个块的哈希值,其中,连续地确定所述哈希值包括:(a)从所述计算设备的存储器中取回所述多个块中的每个块,(b)将所取回的每个块存储在所述安全引擎的安全存储器中,(c)确定针对存储在所述安全存储器中的每个块的所述哈希值;以及(ii)根据所确定的针对所述初始引导固件的每个块的所述哈希值来生成聚合的哈希值;以及包括高速缓存RAM和处理器初始化模块的处理器,所述处理器用于:(i)将所述聚合的哈希值和与所述初始引导固件相关联的参考校验和值进行比较,以确定所述聚合的哈希值是否与所述参考校验和值相匹配;并且(ii)响应于确定所述聚合的哈希值与所述参考校验和值相匹配而完成所述处理器的初始化,其中,所述安全引导模块或者所述处理器初始化模块用于将存储在所述安全存储器中的每个块复制到所述处理器的所述高速缓存RAM。2.根据权利要求1所述的计算设备,其中,所述安全引擎包括与所述计算设备的所述处理器不同的安全协处理器。3.根据权利要求1所述的计算设备,其中,确定针对存储在所述安全存储器中的每个块的所述哈希值包括使用加密哈希函数来确定存储在所述安全存储器中的每个块的所述哈希值。4.根据权利要求3所述的计算设备,其中,所述加密哈希函数包括安全哈希算法。5.根据权利要求1所述的计算设备,其中,所述初始引导固件的所述多个块中的每个块具有相等的存储器大小。6.根据权利要求1所述的计算设备,其中,所述初始引导固件的所述多个块中的每个块具有小于或者等于所述安全引擎的所述安全存储器的存储器存储容量的存储器大小。7.根据权利要求1所述的计算设备,其中,完成所述处理器初始化的初始化包括:(i)跳到存储在所述高速缓存RAM中的所述初始引导固件的起始位置,以及(ii)执行所述初始引导固件。8.根据权利要求1所述的计算设备,其中,所述安全引导模块还用于将所述聚合的哈希值发送至所述处理器。9.根据权利要求1所述的计算设备,其中,所述处理器还用于响应于确定所述聚合的哈希值与所述参考校验和值不匹配而执行安全功能。10.根据权利要求9所述的计算设备,其中,执行安全功能包括执行以下操作中的至少一项操作:关闭所述计算设备、禁用所述计算设备、或者重新引导所述计算设备。11.根据权利要求1所述的计算设备,其中,所述安全引导模块还用于对用于所述计算设备的平台初始化固件进行认证;并且其中,所述处理器还用于:(i)从所述安全引擎的所述安全存储器中取回经认证的平台初始化固件;并且(ii)执行从所述安全引擎的所述安全存储器中取回的所述经认证的平台初始化固件,以将所述处理器的高速缓存的一部分初始化为所述高速缓存RAM。12.根据权利要求11所述的计算设备,其中,对所述平台初始化固件进行认证还包括:(i)从所述计算设备的所述存储器中取回所述平台初始化固件;(ii)通知所述处理器已经对所述平台初始化固件进行了认证。13.根据权利要求11所述的计算设备,其中,所述初始引导固件包括阶段-1引导加载程序;并且其中,所述平台初始化固件包括在执行所述阶段-1引导加载程序之前,由所述处理器执行的阶段-0引导加载程序。14.根据权利要求1-13中的任何一项所述的计算设备,其中,连续地确定针对初始引导固件的所述多个块中的每个块的所述哈希值包括:(i)从所述计算设备的所述存储器中取回初始引导固件的所述多个块中的第一块,(ii)将所取回的所述初始引导固件的所述第一块存储在所述安全引擎的所述安全存储器中,(iii)确定与存储在所述安全存储器中的所述初始引导固件的所述第一块相对应的第一哈希值,(iv)响应于将所述初始引导固件的所述第一块存储在所述高速缓存RAM中而从所述计算设备的所述存储器中取回初始引导固件的所述多个块中的第二块,(v)将所取回的所述初始引导固件的所述第二块存储在所述安全引擎的所述安全存储器中,以及(vi)确定与存储在所述安全存储器中的所述初始引导固件的所述第二块相对应的第二哈希值;其中,将存储在所述安全存储器中的每个块复制到所述高速缓存RAM包括:(i)响应于确定所述第一哈希值而将存储在所述安全存储器中的所述初始引导固件的所述第一块复制到所述高速缓存RAM,(ii)响应于确定所述第二哈希值而将存储在所述安全存储器中的所述初始引导固件的所述第二块复制到所述高速缓存RAM;并且其中,生成所述聚合的哈希值包括根据所确定的第一哈希值和第二哈希值而生成所述聚合的哈希值。15.根据权利要求14所述的计算设备,其中,所述安全引导模块还用于确定所述初始引导固件的所述第二块是否是所述初始引导固件的所述多个块中的最后的块。16.根据权利要求15所述的计算设备,其中,响应于确定所述初始引导固件的所述第二块不是所述最后的块:(i)所述安全引导模块还用于(a)连续地取回所述初始引导固件的所述多个块的每个剩余的块,(b)确定针对所取回的每个剩余的块的哈希值;并且(ii)所述安全引导模块或者所述处理器初始化模块将所取回的每个剩余的块复制到所述高速缓存RAM;并且其中,生成所述聚合的哈希值包括根据所确定的第一哈希值、所确定的第二哈希值、以及所确定的针对取回的所述剩余的块中的每个块的哈希值来生成所述聚合的哈希值。17.根据权利要求15所述的计算设备,其中,生成所述聚合的哈希值包括响应于确定所述初始引导固件的所述第二块是所述最后的块而生成所述聚合的哈希值。18.根据权利要求1-13中的任何一项所述的计算设备,其中,连续地确定针对初始引导固件的所述多个块中的每个块的所述哈希值包括:(i)从所述...

【专利技术属性】
技术研发人员:K·科塔里N·J·约克B·P·王G·邢
申请(专利权)人:英特尔公司
类型:发明
国别省市:美国;US

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

1