用于发动机控制器的安全启动的系统以及方法与流程

文档序号:14651509发布日期:2018-06-08 21:54阅读:364来源:国知局
用于发动机控制器的安全启动的系统以及方法与流程

本发明涉及用于发动机控制器的安全启动(secure boot)的系统以及方法,以在主机CPU执行启动代码之前,HSM(Hardware Security Module:硬件安全模块)中前台(Foreground)检查(check)启动代码的完整性,后台(Background)检查存储器的剩余区域的完整性的方式,执行安全启动的用于发动机控制器的安全启动的系统以及方法。



背景技术:

发动机控制器(EMS,Engine Management System)是利用设在发动机的各种传感器获得的信息来控制吸气/排气系统、燃料供给系统、点火系统的小型计算机。为了控制精确的燃料喷射和点火时机,需要首先实现用于掌握发动机当前位置的发动机同步。发动机同步是指利用曲轴信号和凸轮轴信号,掌握发动机的当前位置的流程。一般情况下,通过利用检测曲轴信号的间隔(gap)的方法实现同步。

图1是用于说明发动机同步的图。

参照图1,用于实现发动机同步的系统包括曲柄位置传感器10、凸轮位置传感器20以及发动机控制器30而构成。

为了精细地控制发动机,曲柄位置传感器(crank position sensor)10以及凸轮位置传感器(cam position sensor)20分别检测曲轴以及凸轮轴的旋转并发送到发动机控制器30。

曲柄位置传感器10对曲轴的有效齿(valid tooth)进行计数,并且检测间隔(gap)输出上下振动的电信号。

曲轴的旋转体上沿圆周方向相隔6度的间隔形成有齿(tooth)。需要说明的是,并不是在整个圆周上形成有60个齿,而是以在局部期间排除了齿的方式形成,例如将排除了两个连续的齿的间隔用作参考点。曲柄位置传感器10构成为检测形成在该部分具有其他部分的两倍以上的周期的信号的间隔。

凸轮位置传感器20检测与曲轴联动旋转的凸轮轴的边缘(edge),输出相位反转的电信号,基于凸轮轴的旋转检测活塞的位置,向发动机控制器30提供用于确定燃料喷射时机的信号。

发动机控制器30对曲柄位置传感器10以及凸轮位置传感器20的信号进行运算,并执行发动机同步(engine synchronization)。即、分析被曲柄位置传感器10以及凸轮位置传感器20检测到的曲轴以及凸轮轴的输出信号,无时差地掌握发动机的转速或各气缸的行程过程等,由此各气缸在适当的喷射时机以及点火时机喷射燃料点火。

另一方面,发动机控制器30是Hard real time System(硬实时系统),开始时需要严格遵守时间限制,在初期步骤执行安全启动(secure boot),所以对执行发动机同步带来影响。安全启动(Secure Boot)用于在所有的启动周期确认位于非易失性存储区域的软件的完整性。因此,发动机控制器按照在Boot ROM检查启动代码(Boot code)的完整性,在启动代码检查应用代码(Application Code)区域的完整性后,运行(Start up)应用程序(Application SW)的方法来执行安全启动(Secure boot)。

但是,如果按照现有的方法执行安全启动,则在发动机运转(running)过程中出现系统复位(reset)现象时,需要通过检测曲柄(Crank)信号的间隔(gap)的方法实现发动机同步,但是,由于安全启动的较长执行时间有可能无法检测到间隔,所以需要检测(detect)发动机旋转一圈以后轮回来的间隔(gap)。在这种情况下,在四缸发动机系统中会错过两次燃料喷射以及点火,由此引发当前运转(running)中的发动机的失速(stall)。另外,如果发动机运转过程中突然发生发动机失速(stall),则有可能给驾驶员带来危险,存在安全问题。



技术实现要素:

所要解决的技术问题

本发明是为了解决上述问题而提出的,其目的在于提供即使在发动机运转过程中发生系统复位时也能够防止发动机失速的用于发动机控制器的安全启动的系统以及方法。

本发明的另一目的在于提供在系统复位后重新开始时以最快速度结束系统初始化执行发动机同步,从而开始燃料喷射和点火的用于发动机控制器的安全启动的系统以及方法。

另一方面,本发明要解决的技术问题不限定于上述的技术问题,在基于下面说明的内容本领域技术人员显而易见的范围内可以包括各种技术问题。

用于解决技术问题的手段

根据用于解决上述的技术问题的本发明的一方面,提供一种用于发动机控制器的安全启动的系统,其包括存储器、主机CPU和HSM,所述存储器存储有启动代码(boot code)以及至少一个应用程序,在发生开始起动或者复位(reset)事件时,所述主机CPU向所述HSM(Hardware Security Module:硬件安全模块)传输启动(startup)指令,当从所述HSM接收到启动代码认证成功时,所述主机CPU执行所述启动代码后,向所述HSM传输残留存储区域认证指令,所述HSM接收所述启动指令而进行启动,执行存储在所述存储器中的启动代码的认证,并且向所述主机CPU传输启动代码认证结果,当接收到所述残留存储区域认证指令时,所述HSM执行所述存储器中除启动代码之外的剩余区域的认证。

本发明的特征在于,所述存储器根据使用用途划分应用程序区域,能够设定用于按照应用程序区域进行完整性认证的优先级。

当执行启动代码时,在所述HSM执行剩余存储区域的完整性认证的期间,所述主机CPU与所述剩余存储区域的完整性认证结果无关地执行剩余存储区域的应用程序。

所述HSM基于已存储的启动代码的位置以及尺寸,从所述存储器获取启动代码,根据所述启动代码计算认证码的值,基于所计算的所述认证码的值与已存储的认证码的值是否一致,对所述启动代码的完整性进行认证,并向所述主机CPU传输所述启动代码的认证结果。

所述HSM针对存储器的剩余区域,按照优先级分别计算认证码的值,将所计算的各所述认证码的值与已存储的对应的认证码的值进行比较,由此检查完整性。

在主机CPU执行启动代码之前,所述HSM前台(Foreground)检查(check)启动代码的完整性,并且后台(Background)检查存储器的剩余区域的完整性。

根据本发明的另一方面,提供一种用于发动机控制器的安全启动的方法,该方法具备主机CPU以及HSM(Hardware Security Module),用于发动机控制器的安全启动(secure boot)的方法包括如下步骤:(a)在发生开始起动或者复位事件时,所述主机CPU向所述HSM传输启动(startup)指令;(b)启动所述HSM,对存储在存储器中的启动代码(boot code)进行认证,并向所述主机CPU传输启动代码认证结果;(c)所述主机CPU执行所述启动代码,并向所述HSM传输残留存储区域认证指令;以及(d)所述HSM执行所述存储器中除启动代码之外的剩余区域的认证。

所述(b)步骤包括:基于已存储的启动代码的位置以及尺寸,从所述存储器获取启动代码的步骤;根据所述启动代码计算认证码的值的步骤;基于所计算的所述认证码的值与已存储的认证码的值是否一致,认证所述启动代码的完整性的步骤;以及向所述主机CPU传输所述启动代码的认证结果的步骤。

在所述(c)步骤中,所述主机CPU传输残留存储区域认证指令后,可以执行所述存储器中除启动代码之外的剩余区域的应用程序。

在所述(d)步骤中,所述HSM针对存储器的剩余区域,按照优先级分别计算认证码的值,将所计算的各所述认证码的值与已存储的对应的认证码的值进行比较,由此检查完整性。

另一方面,上述的“用于发动机控制器的安全启动的方法”以程序的方式实施后记录于由电子装置能够读取的记录介质中,或者可以通过程序下载管理装置(服务器等)分发。

发明效果

根据本发明,对系统的启动过程不会带来影响,并且不会出现发动机失速,从而能够确保安全。

并且,即使在发动机运转过程中发生系统复位的情况下,也可以防止发动机失速,执行持续的发动机运转。

并且,系统复位后重新开始时,可以以最快速度结束系统初始化,执行发动机同步,开始燃料喷射和点火。

另一方面,本发明的效果并不限定于上述的效果,在基于下面说明的内容本领域技术人员显而易见的范围内可以包括各种效果。

附图说明

图1是用于说明发动机同步的图。

图2以及图3是示出根据本发明的用于发动机控制器的安全启动的系统的图。

图4是根据本发明的按照优先级划分区域的存储器的示意图。

图5以及图6是示出根据本发明的用于发动机控制器的安全启动的方法的图。

图7是示出根据本发明的HSM认证启动代码的方法的图。

附图标记说明

110:存储器;120:主机CPU;130:HSM。

具体实施方式

通过基于本发明说明书的附图进行的下面的详细说明,可以进一步明确本发明的上述的目的、技术思想以及由此带来的作用效果。

下面,参照附图,详细说明根据本发明的“用于发动机控制器的安全启动的系统以及方法”。进行说明的实施例只是用于使本领域技术人员容易理解本发明,本发明并不限定于这些。并且,附图中示出的内容是为了简单地说明本发明的实施例而示出的,有可能与实际实现方式不同。

另一方面,下面示出的各构成部只是实现本发明的一例。因此,在本发明的其它方式中在不脱离本发明的思想以及范围的范围内可以使用其它构成部。并且,各构成部可以只通过完全硬件或者软件的构成来实现,还可以通过执行相同功能的各种硬件以及软件构成的组合来实现。并且,还可以通过一个硬件或者软件来同时实现两个以上的构成部。

并且,“包括”一些构成要素是“开放式”表达方式,只是表示存在对应的构成要素,不应该理解为排除其它构成要素。

汽车动力总成(Automotive Powertrain)系统要求快速发动机同步。尤其是,即使在发动机运转过程中发生严重错误时,也不应该产生系统复位导致的发动机失速。为此,系统复位后,需要快速实现发动机再同步,这表示需要将安全启动(secure boot)的执行时间最小化。

本发明为了实现安全启动的执行时间的最小化,一起使用前台方式和后台方式。即、为了初期驱动,对于启动代码区域使用前台方式,对于剩余存储区域使用后台方式。使用后台方式时,可以根据用途划分存储器,并且按照各存储区域的重要性定义执行安全启动的顺序。

下面记载的应用程序(application)和应用代码可以表示相同的意思。

下面,参照附图,详细说明用于发动机控制器的安全启动的方法。

图2以及图3是示出根据本发明的用于发动机控制器的安全启动的系统的图,图4是根据本发明的按照优先级划分区域的存储器示意图。

参照图2以及图3,用于发动机控制器的安全启动的系统100包括存储器110、主机CPU120、HSM(Hardware Security Module)130。

存储器110中存储有启动代码(boot code)、应用代码(Application Code)。启动代码是用于启动发动机控制器的软件,应用代码是如发动机控制器执行的应用程序等软件。存储有应用代码的存储区域可以被划分为应用程序1、应用程序2、…、应用程序n的方式的多个区域。这时,当设有应用程序的优先级时,可以按照优先级在应用程序区域配置应用代码。这样,存储器110按照使用用途划分应用程序区域,并且可以定义用于进行各应用程序区域的完整性验证的优先级。

并且,存储器110中还存储有通过启动代码的加密而获得的加密的认证码的值。认证码的值例如应用已设定的算法或者函数可通过CMAC(cipher based message authentication code:基于密码的消息认证码)来生成启动代码,并且还被称为数字签名值。

主机CPU120控制发动机控制器的整体动作。

尤其是,主机CPU120在发生开始起动或者复位事件时,将启动(startup)指令传输到HSM130,并且从HSM130接收到启动代码认证成功时,执行启动代码,并向HSM130传输残留存储区域认证指令。其中,残留存储区域认证指令可以是请求对于存储器110的除了启动代码区域之外的剩余区域的完整性验证的指令。

主机CPU120在HSM130执行除了启动代码之外的剩余存储区域的完整性认证的期间,与应用代码的认证结果无关地,执行剩余存储区域的应用代码。即、如果执行启动代码,则主机CPU120从存储器110查找并执行被设为自动开始的应用代码。

HSM130在主机CPU120执行启动代码之前,前台(Foreground)检查(check)启动代码的完整性,并且后台(Background)检查存储器110的剩余区域的完整性。

HSM130当从主机CPU120接收到启动指令时,被启动,进行存储在存储器110中的启动代码(boot code)的认证,并将启动代码认证结果传输到主机CPU120。即、HSM130基于已存储的启动代码的位置以及尺寸,从存储器110获取启动代码,根据启动代码计算认证码的值。其中,认证码的值例如可以是CMAC。之后,HSM130对计算的认证码的值和已存储的认证码的值进行比较,一致时,判断为启动代码的完整性认证成功,不一致时,判断为启动代码的完整性认证失败。HSM130将完整性认证成功或者完整性认证失败作为启动代码认证结果传输给主机CPU120。

当从主机CPU120接收到残留存储区域认证指令时,HSM130执行存储器110中除了启动代码之外的剩余区域的认证。这时,HSM130对于剩余存储区域,按照优先级分别计算认证码的值,将计算的各认证码的值与已存储的对应的认证码的值进行比较,从而检查完整性。

例如,如图4所示,说明按照复杂驱动(Complex Driver)、驱动程序(Driver SW)、控制算法(Control Algorithm)、诊断(Diagnostic)的顺序设有优先级的情况。发动机控制器以快速发动机同步为优先,所以HSM130对用于同步的复杂驱动(Complex Driver)进行最优先认证,按照Driver SW、Control Algorithm、Diagnostic的顺序分别认证完整性。

HSM130可以不向主机CPU120传输与后台执行的应用程序认证结果有关的任何信息。另外,HSM130还可以将应用程序认证结果告知主机CPU120。这时,HSM130在应用程序被运行(Start up)之后向主机CPU120传递应用程序认证结果。

HSM130对于除了启动代码之外的剩余存储区域执行后台认证,所以主机CPU120还可以执行未结束完整性验证的代码。

在前面的说明中说明了系统将存储器110、主机CPU120以及HSM130全都包括的结构。主机CPU120和HSM130利用例如SoC(system on a chip:系统单芯片)技术等以单一芯片的方式实现。另外,HSM130还可以与构成系统的其它构成要素单独构成。换言之,在图2的系统中,只有HSM可构成为单独的产品。

图5以及图6是示出根据本发明的用于发动机控制器的安全启动的方法的图。

参照图5以及6,当发生发动机控制器的开始起动或者复位事件时(S502),主机CPU执行启动芯片(boot Rom)(S504),向HSM传输启动(startup)指令(S506)。

启动HSM(S508),进行存储在存储器中的启动代码(boot code)的认证(S510),将启动代码认证结果传输给主机CPU(S512)。这时,HSM计算对于启动代码的认证码的值,将计算的认证码的值与已存储的认证码的值进行对比,验证启动代码的完整性。参照图7详细说明HSM进行启动代码认证的方法。

当执行S512时,主机CPU执行启动代码(S514),向HSM传输残留存储区域认证指令(S516)。

主机CPU执行对构成系统的要素进行初始化的任务(S518a),HSM执行存储器中除了启动代码之外的剩余区域的认证(S518b)。这时,同时执行S518a和S518b。因此,主机CPU可以在从HSM未接收应用程序认证结果的状态下执行应用程序。

图7是示出根据本发明的HSM进行启动代码认证的方法的图。

参照图7,HSM读取已存储的启动代码的位置以及尺寸(S702),基于所读取的启动代码的位置以及尺寸,从存储器获取启动代码(S704)。

之后,HSM根据启动代码计算认证码的值(S706),对计算的认证码的值和已存储的认证码的值进行比较(S708),判断是否一致(S710)。

即、HSM在启动代码上应用散列函数或者散列算法计算出散列值,利用公钥或者密钥,对加密的数字签名值进行解密,得到认证码的值。之后,HSM将获得的认证码的值与已存储的认证码的值进行比较,判断两个认证码的值是否一致。

当S710的判断结果,两个认证码的值一致时,HSM向主机CPU告知启动代码认证成功(S712),当不一致时,向主机CPU告知启动代码认证失败(S714)。

另一方面,用于发动机控制器的安全启动的方法可以用程序来生成,构成程序的多个代码以及代码段可以由本领域的程序员容易推理得到。并且,与用于发动机控制器的安全启动的方法有关的程序可以存储在电子装置可读取的信息存储介质(Readable Media),由电子装置读取并执行。

如上所述,本发明所属技术领域的技术人员可以理解,在不脱离本发明技术思想或不改变必要特征的情况下,可以以其它具体实施方式实施本发明。因此,以上说明的实施例只是示例性的,不应当理解为限定其范围。并且,附图中图示的顺序图只是在实施本发明的过程中为了实现最优的结果而示例性图示的顺序,当然可以提供其它追加的步骤或删除一部分步骤。

本说明书的附图中示出的框图和流程图中包括的执行本发明的技术特征的构成是指所述构成之间的逻辑界线。但是,根据软件或硬件的实施例,示出的构成及其功能以独立的软件模块、单块软件结构、代码、服务以及它们的组合方式实施,存储在具备可执行存储的程序代码、指令等的处理器的计算机中可执行的介质中,从而实现其功能,因此,这样的所有的实施例仍然视为都包括在本发明的保护范围内。

因此,附图和对其的技术说明本发明的技术特征,但是,在没有明确提及用于实现这样的技术特征的软件的特定排列的情况下,不应该简单地推理得到。即、可以存在以上说明的各种实施例,这样的实施例在保持与本发明相同的技术特征的情况下可以进行部分变形,这些变形仍然视为包括在本发明的保护范围内。

并且,在顺序图的情况下,在附图中按照特定的顺序示出了动作,但是,这是为了获得最优结果而图示的,不应该理解为这些动作必须按照附图示出的特定顺序或者依次执行或者必须执行图示的所有的动作。特殊情况下,多任务处理和并行处理更加有利。而且,以上说明的实施方式的各种系统组件的分离不应该理解为所有的实施方式中均需要这些分离,应当理解的是所说明的程序组件和系统通常可以一起整合为单一软件产品或者封装在多个软件产品中。

如上所述,本说明书并不是旨在通过所提示的具体术语来限定本发明。因此,参照以上说明的实施例来详细说明了本发明,但是,本发明所属技术领域的技术人员,在不脱离本发明的范围的情况下,也可以对本实施例进行改进、变更以及变形。本发明的范围应该基于后述的权利要求书来表示,而不是上述的内容,并且应该解释为由从权利要求书的含义以及范围和等价概念导出的所有的变更或者修改方式均包括在本发明的保护范围内。

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