验证控制器代码和系统启动代码技术方案

技术编号:12466581 阅读:217 留言:0更新日期:2015-12-09 16:32
与系统的处理器分离的控制器验证用于在控制器上执行的控制器代码。响应于验证控制器代码,控制器验证系统启动代码。

【技术实现步骤摘要】
【国外来华专利技术】【专利说明】
技术介绍
计算系统可以包括用以执行计算系统的各种启动功能的代码。此代码可以包括基本输入/输出系统(B1S)代码。B1S代码可以是在计算机系统中或来自外部服务的恶意软件攻击的对象。作为攻击的结果,B1S代码可能变得被损害。【附图说明】相对于以下各图来描述某些实施方式: 图1是根据某些实施方式的示例性系统的框图; 图2是根据某些实施方式的由嵌入式控制器执行的启动过程的流程图; 图3是根据某些实施方式的验证过程的流程图; 图4是根据其它实施方式的示例性系统的框图;以及图5—7是根据其它实施方式的过程的流程图。【具体实施方式】对被用来执行计算系统启动的系统代码的恶意软件攻击可以促使计算系统的完整性被损害,使得可能发生计算系统中的未授权访问和操作。例如,被损害系统代码可以允许计算系统被恶意实体隐蔽地远程监视和/或控制、计算系统中的数据被恶意软件未授权访问和/或修改、计算系统的禁用等。被损害系统代码可以指代已被损坏、使得系统代码不再可用的系统代码,或者替换地,被损害系统代码可以指代已经以某种方式改变、但仍能够执行的系统代码。请注意,系统代码也可能偶然地或无意中被损害。虽然可以在计算系统中提供保护机制以保护系统代码,但是此类保护机制在能够使系统代码经受恶意软件攻击的某些条件下可能变得被损害。用来执行计算系统的启动的系统代码可以包括系统固件,其可以采取可在计算系统的(一个或多个)处理器上执行的机器可读指令的形式。“系统固件”可以指代能够执行计算系统的启动的任何机器可读指令。计算系统的示例包括台式计算机、笔记本计算机、平板计算机、个人数字助理(PDA)、智能电话、游戏设备、服务器计算机、存储节点、网络通信节点等。系统固件可以包括基本输入/输出系统(B1S)代码,其可以对计算系统的各种部件进行初始化,并加载计算系统的操作系统(OS)。B1S代码可以执行硬件部件的检查以确保硬件部件存在并适当地运行。这可以是例如通电自检(POST)程序的一部分。在POST程序之后,B1S代码可以行进通过启动序列的其余部分,在其之后,B1S代码可以加载OS并向其传递控制。B1S代码可以包括传统B1S代码或统一可扩展固件接口(UEFI)代码。在某些示例中,B1S代码可以包括在OS加载之后执行的运行时间部分。系统固件可以被存储在非易失性存储器中,诸如闪存或可编程的任何其它持久性存储器。一旦非易失性存储器中的系统固件被损害,则一个可能的补救措施可涉及到在物理上替换包括非易失性存储器的部件。解决被损害系统固件的此类技术可能是劳动密集的、成本高的且耗时的。根据某些实施方式,提供了用以允许实现被损害系统固件的检测以及检测到系统固件损害的情况下的系统固件自愈的技术或机制。图1是包括嵌入式控制器102、共享非易失性存储器104、处理器106以及私用非易失性存储器116的示例性计算系统100的框图。共享非易失性存储器104在其可被多个实体访问的意义上被“共享”,所述多个实体包括嵌入式控制器102和至少一个其它实体(包括处理器106)。私用非易失性存储器116可被嵌入式控制器102访问,但是对于处理器106或计算系统100中的其它部件是不可访问。使得私用非易失性存储器116不可被吹冷气106及其它部件访问保护私用非易失性存储器116的内容不被未授权篡改。私用非易失性存储器116始终可被嵌入式控制器102访问。虽然在图1中未示出,但可以在处理器106与共享非易失性存储器104之间提供输入/输出(I/o)控制器。私用(private)非易失性存储器116可以在物理上与共享非易失性存储器104(诸如在不同的物理存储器件中实现)分离。替换地,私用非易失性存储器116和共享非易失性存储器104可以在物理上驻于公共存储器件上,但是共享非易失性存储器104和私用非易失性存储器116在物理存储器件的不同段中,其中包含私用非易失性存储器116的物理存储器件的段仅可被嵌入式控制器102访问。共享非易失性存储器104可通过共享总线120被嵌入式控制器102或另一实体访问。在某些实施方式中,在任何给定时间仅一个实体可以访问共享存储器120,使得每次仅一个实体可以访问共享非易失性存储器104。在某些示例中,共享总线120是共享串行外围接口(SPI)总线。SPI总线是其中SPI总线上的设备在主从模式下操作的同步串行数据链路。在其它示例中,可以使用另一类型的共享总线120。在替换示例中,可以提供仲裁机制以允许在计算系统的各种状态下的总线120的共享访问,所述各种状态包括低功率状态和正常运行时间状态。共享非易失性存储器104可以存储系统固件107,其可以包括B1S代码。B1S代码107可以包括用于由嵌入式控制器102执行的控制器代码108以及将由处理器106执行的启动块110。控制器代码108可以采取嵌入式控制器(EC)固件的形式,其可以指代可在嵌入式控制器102中执行的任何机器可读指令。替换地,控制器代码108可以是可以采取机器可读指令形式的应用软件。在随后的讨论中,虽然对“EC固件”进行参考,应注意的是可以将该技术或机制应用于其它形式的控制器代码108。在根据图1的示例中,EC固件108被包括在系统固件107的启动块110。将EC固件108包括在启动块110内部可以提供EC固件108已被提供系统固件107的实体签名的指示,该实体可以是计算系统100的供应商或另一实体。在其它示例中,EC固件108可以与启动块110分离。启动块110是B1S代码的一部分,并且首先在计算系统100启动时执行。启动块110首先在B1S代码的剩余部分被允许执行之前执行。启动块110可以用来检查B1S代码的完整性以及执行其它初始功能。如果启动块I1确认B1S代码的完整性,则启动块110可以向B1S代码的主要部分传递控制以用于发起与B1S代码相关联的其余操作。在某些实施方式中,启动块110可以包括可信测量核心根(CRTM)逻辑,其是由可信计算组(TCG)、行业标准工作组指定的逻辑。在计算系统100的通电程序期间,CRTM逻辑可以执行某些初始化任务,并且可以进行被存储以供稍后使用的许多测量。CRTM逻辑然后可以在向B1S代码的主要部分传递控制之前检查B1S代码。一旦B1S代码完成执行并向OS传递控制,则OS可以基于由CRTM逻辑进行的测量来验证计算系统100的可信任性(trustworthiness)。嵌入式控制器102在物理上与计算系统100的处理器106分离。处理器106被用于执行系统100中的OS、应用程序代码以及其它代码。嵌入式控制器102另一方面可以用来执行如被编程到EC固件108中的特定预定义任务。可以由嵌入式控制器102执行的任务的示例包括以下各项中的任何一个或某种组合:计算系统100中的电源控制(用于控制向计算系统100中的各种部件供应电源电压的电源)、计算系统100中的电池的充电和控制、热监视(用以监视计算系统100中的温度)、风扇控制(用以控制计算系统100中的风扇)以及与用户输入设备的交互(诸如执行计算系统100的键盘的扫描或与诸如鼠标、触控板、触摸屏等定点设备的交互)。可以用微控制器、专用集成电路(ASIC)、可编程门阵列(PGA)或任何其它类型的可编程电路来本文档来自技高网...
<a href="http://www.xjishu.com/zhuanli/55/CN105144185.html" title="验证控制器代码和系统启动代码原文来自X技术">验证控制器代码和系统启动代码</a>

【技术保护点】
一种方法,包括:在系统中的控制器的初始化程序期间,由与系统的处理器分离的控制器来验证用于在控制器上执行的控制器代码,其中,所述验证是在处理器的执行之前执行;以及在验证控制器代码之后,由控制器来验证系统启动代码,其中,所述系统启动代码被用于由处理器执行。

【技术特征摘要】
【国外来华专利技术】

【专利技术属性】
技术研发人员:JK让索内VY阿利JM曼B巴拉谢夫
申请(专利权)人:惠普发展公司有限责任合伙企业
类型:发明
国别省市:美国;US

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

1