用于在执行期间验证应用程序的真实性的系统和方法_2

文档序号:9524462阅读:来源:国知局
br>[0030]如上提及的一样,许多现代电子装置存储或编码指令集(例如,应用程序、模块、例程、固件或任何其它适合的指令),指令由处理电路执行以允许电子装置提供其预期功能性。另外,在某些区域,电子装置可在安装和/或激活后在延长的时间期内操作而不会中断(例如,不存在电源循环或重新引导)。例如,工业监视和/或控制系统一般可包括多个现场装置(例如,感应装置、中继、致动器等等),这些装置可部署在整个设施内,并且随后可在部署后在延长的时间期(例如,数月到数年)内操作而不会中断。如提及的一样,这些现场装置一般可通过执行指令来进行操作,如在部署前在装置的存储器电路中存储的可执行应用程序。通常,如果在电子装置的存储器电路内存储的指令被修改,则装置的行为和功能性也将被修改。
[0031]鉴于前面所述,所述实施例允许电子装置执行初始检查,初始检查在存储的指令(例如,固件)执行前(如在引导序列期间)验证其真实性。在本文中使用时,如果指令在由制造商或另一经授权软件提供商打包(例如,汇编,捆绑)后一直未被修改,则认为指令集“真实”如上所述,由于在延长的时间期内不可重新引导某些电子装置,因此,所述实施例也提供一种机制,由此可在存储的应用程序的执行期间持续,定期或偶发性地验证存储的应用程序数据包(package)的真实性。也就是说,如下所述,在某些实施例中,可执行应用程序中的指令可包括真实性检查例程,例程由电子装置的处理电路持续、定期或偶发性地执行,以确定应用程序是否在打包后已被修改。在某些实施例中,真实性检查例程可由电子装置的处理电路在否则闲置的处理时间内执行,使电子装置对阻挠差分功率分析和/或电磁(EM)噪声分析技术更稳固。在某些实施例中,可使用专用处理电路执行真实性检查例程,如高安全性模块(HSM)或现场可编程门阵列(FPGA)(例如,硬件加速器)。相应地,即使应用程序在由电子装置执行,所述实施例也允许进行应用程序的持续、定期或偶发性真实性验证。
[0032]转到图形,图1是根据所述方案的一实施例的电子装置10的示意图。在某些实施例中,电子装置10可以是消费者装置(例如,蜂窝电话、平板计算装置、便携式计算装置、台式计算装置、数字视频录像机、视频中装置、电视)或工业装置(例如,中继、智能电子装置(IED)、现场装置、终端装置)。具体而言,图1所示电子装置10是作为工业监视和/或控制系统12的一部分的智能电子装置(IED) 10的一实施例。除电子装置10外,图1的工业控制和/或监视系统12的实施例包括监视和控制工业控制和/或监视系统12的操作的控制器14,包括电子装置10和各种工业设备22。例如,工业设备22可包括具有各种配电组件41 (例如,变压器、传送线、电容器组等)的配电系统40、具有各种发电组件43 (例如,发电机、燃烧室、引擎等)的发电系统42、带有各种自动化组件45 (例如,反应器、传送带、供给装置、料斗等)的工业自动化系统44、具有各种水处理组件47 (例如,过滤器、澄清器、pH计量仪等)的水处理系统46和/或具有各种涡轮机组件(例如,涡轮机、燃烧室、压缩机等)的涡轮机械系统48。所示控制器14通常包括处理电路16、存储器电路18和通信电路20以允许控制器14管理工业监视和/或控制系统12。可领会的是,所示工业设备22只提供作为可由工业控制和/或监视系统12的电子装置10和控制器14监视和/或控制的设备的零件的示例,并且设备的任何其它适合零件(例如,燃烧室、鼓风机、反应器等)可由根据本公开内容的工业控制和/或监视系统12监视和/或控制。
[0033]所示电子装置10包括能够执行指令(例如,可执行应用程序、模块、例程、固件等等)以提供电子装置10的所需功能性和行为的处理电路24(例如,通用微处理器、专用集成电路(ASIC)或其它适合的处理电路)。在某些实施例中,此处理电路24可包括下面更详细讨论的高安全性模块(HSM) 25,该模块可允许在某些处理活动期间的增强安全性。在某些实施例中,此处理电路24可包括诸如硬件加速器等现场可编程门阵列(FPGA)装置,该装置在制造时可编程成在电子装置10的操作期间执行某些处理任务。对于此类实施例,可基于指令(例如,软件代码)在制造电子装置10时在硬件级别配置或编程FPGA,使得FPGA在操作期间执行指令描述的功能。相应地,对于此类实施例,由于指令用于编程FPGA,并且由于这些指令在操作期间由FPGA执行,因此,FPGA可在本文中描述为存储和执行指令。
[0034]所示电子装置10包括能够存储上面提及的指令以便由处理电路24执行的存储器电路26 (例如,电可擦除可编程只读存储器(EEPR0M)、固态磁盘驱动器、闪存驱动器或另一适合的非易失性数据存储机制)。例如,如图1所示,存储器电路26存储数据包27 (例如,软件数据包27),如下面更详细讨论的一样,数据包27包括可执行应用程序28 (例如,软件28)及与可执行应用程序28相关联的摘要值30。在本文中使用时,应用程序是可由电子装置10的处理电路24执行的编码指令(例如,二进制编码指令)集。
[0035]所示电子装置10包括能够经一个或更多个输入装置(例如,触摸屏、指点装置、键盘、麦克风、加速计等等)接收用户输入和/或经一个或更多个输出装置(例如,显示器、触摸屏、扬声器、指示灯、打印机等等)提供输出到用户的输入/输出(I/O)电路32。所示电子装置10包括通信电路34 (例如,有线或无线网络接口卡(NIC))以允许电子装置10经网络(例如,经本地网络或经因特网)与其它电子装置(例如,控制器14)进行通信。所示电子装置10中包括的组件只提供为示例,并且根据本公开内容,电子装置10的其它实施例可包括另外或更少的组件。
[0036]另外,所示电子装置10包括允许电子装置10收集有关工业设备22的性能的感知信息的传感器电路36。在某些实施例中,传感器电路36例如可包括温度传感器、压力传感器、流量传感器、成分传感器(例如,气体成分传感器、氧气传感器、排气传感器等)、火焰传感器、位置传感器、间隔传感器、振动传感器、加速计、旋转速度传感器、电压传感器、安培数传感器、频率传感器、光传感器、声音传感器或任何其它适合的感应元件。通过特定示例,对于所示电子装置10,传感器电路36可包括可以能够测量涡轮机械49 (例如,压缩机的驱动系统、燃气涡轮或汽轮机)的速度的旋转速度传感器。也就是说,处理电路24可执行在电子装置10的存储器电路26中存储的应用程序28的例程,以基于传感器电路36收集的测量,确定涡轮机械49的速度。此外,电子装置10可经通信电路34提供涡轮机械49的确定的速度到控制器14,使得控制器14的处理器16可确定涡轮机械49的操作参数或状态及工业控制和/或监视系统12的其它部分。
[0037]所示电子装置10也包括允许电子装置10提供控制信号到涡轮机械49以基于来自控制器14的指令,调制涡轮机械49的性能的控制电路38。例如,在某些实施例中,控制电路38可提供输出信号,输出信号可导致供应到涡轮机械系统48的压缩机的驱动系统的功率增大或降低,从而调制压缩机的性能。更具体地说,如果控制器14基于由传感器电路36收集的测量,确定压缩机的输出太低,则控制器14可经通信电路34指示电子装置10增大压缩机的输出。作为响应,使用控制电路38的电子装置10可提供控制信号到压缩机的驱动系统以增大供应到驱动系统的功率,由此增大压缩机的输出。
[0038]如上所述并且如下更详细讨论的一样,在某些实施例中,可执行应用程序28可在电子装置10制造时被存储在存储器电路16中,并且可在之后被更新以解决指令14中的错误或漏洞和/或增强电子装置10的功能性。然而,有一些情况可导致电子装置10的存储器电路26中可执行应用程序28的修改。一种可能性是简单的数据损坏,其中,硬件故障、宇宙射线碰撞或任何类似事件导致存储器电路26中存储的可执行应用程序28的更改(例如,单比特交换)。另一可能性是未经授权方可有意尝试改变可执行应用程序28中数据的一个或更多个比特,以试图促使电子装置10产生例外(例如,故障)或者试图获得对电子装置10的未经授权接入。如果未经授权方能够获得对电子装置10的物理接入,则此数据改变例如可能通过擦除存储器电路26的集成电路(1C)包装,并且随后提供电磁辐射(例如,激光)到特定物理位置以改变存储器电路26中存储的一个或更多个比特来完成。应注意的是,此示例无意于限制,并且一般涉及应用不同类型电磁辐射到存储器电路26和/或处理电路24的其它类型的攻击也是可能的。
[0039]因此,鉴于此类攻击,所述实施例提供在应用程序28的执行期间验证应用程序28的真实性的机制。也就是说,所述实施例能够识别和解决可在应用程序28的执行期间任何点发生的应用程序28的内容的甚至单比特更改,而不是只在应用程序执行前(例如,在
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1