用于对控制设备进行安全更新的方法与流程

文档序号:29035138发布日期:2022-02-25 18:07阅读:112来源:国知局
用于对控制设备进行安全更新的方法与流程

1.本发明涉及一种用于对控制设备进行安全更新的方法以及一种用于执行该方法的计算单元和一种用于执行该方法的计算机程序。


背景技术:

2.在机器和车辆中使用可编程控制设备,以便控制这些机器和车辆或者还有这些机器和车辆的组件。例如,机动车可包含用于发动机控制、用于制动系统等等的控制设备。这些控制设备包括处理器,该处理器具有一个或者通常具有多个处理器内核(也简称为主机或主机系统),所述处理器内核执行存储在存储器中的应用程序,以便实现控制设备的控制功能。机器或车辆的制造商在生产机器或车辆时通常利用特定于制造商的应用程序来对在此使用的控制设备进行重新编程。同样,由于现代机器和车辆的耐久性,控制设备的控制功能必须能与不断变化的要求适配。即必须能够执行对控制设备的更新或重新编程,也就是说存储在存储器中的数据和程序应该能够被更改。
3.出于安全原因,必须防止:存储在控制设备或那里的微处理器或者微控制器的存储器中的应用软件或数据以未经允许的方式被更改。为此,可以针对存储器使用基于密码的写保护,该写保护可以通过硬件被取消和激活。只有当在输入密码之后取消了该存储器保护时,控制设备的存储器才能被更改或被重写,例如加载新软件或者将其它数据写到存储器中。密码针对每个控制设备被单独生成并且由所谓的硬件安全模块hsm来管理,该硬件安全模块将该密码存储在为此所设置的存储区中。如果应该执行更新,则由想要执行对所存储的软件或数据的更新或更改的人员或应用或者人员为此所使用的编程设备来要求并检验硬件安全模块的密码。通常并没有提供对控制设备的更新或重新编程过程的进一步保护。


技术实现要素:

4.按照本发明,提出了具有专利独立权利要求的特征的一种用于对控制设备进行安全更新的方法以及一种用于执行该方法的计算单元和一种用于执行该方法的计算机程序。有利的设计方案是从属权利要求以及随后的描述的主题。
5.按照本发明,通过硬件安全模块一直阻止对存储器的写保护的取消,直至编程软件、也就是说更新程序已被认证,这通过对其中包含该更新程序的第一存储区的完整性检查来实现。通过该完整性检查,可以查明该存储区以及借此该更新程序是否已经以未经允许的方式被更改。只有当在该检查的情况下确认第一存储区的完整性时,写访问才被hsm准许并且该更新程序被启动。借此,增加了对控制设备的应用软件防止篡改的保护。
6.主机或主机系统包括处理器,该处理器被设立为执行软件或计算机程序(简称为程序),以便实现控制系统的功能。主机可包括其它元件,比如工作存储器(例如随机存取存储器,random access memory,ram),通信接口,尤其是用于与存储器、hsm和外部设备通信的通信接口,和/或类似的元件。软件包含或存储在控制设备的非易失性存储器、例如闪速
存储器、硬盘或ssd(solid state disk(固态硬盘))中。控制设备的存储器能重写。除非另有注明,术语“存储器”就应被理解为控制设备的存储器。该软件一方面可包括至少一个应用程序,该应用程序用于当该应用程序被主机执行时实现控制设备的控制功能,而该软件另一方面可包括更新程序(编程软件),该更新程序主要用于当该更新程序被主机执行时利用软件(程序数据)或数据来对存储器或该存储器的部分进行重写。也就是说,借助于更新程序可以对控制设备进行更新或重新编程,该更新程序在某种程度上可以说是用于对控制设备进行重新编程的编程软件。更新可涉及:程序,所述程序的运行决定控制设备的功能;和/或对于控制设备的功能来说所需的数据,比如初始化参数或程序参数。在更新或重新编程时,存储器或存储区完全或部分地利用更新数据(新程序、也就是说软件,和/或其它新数据)来被重写。如有必要,更新程序也许可执行其它行动,例如确定哪些程序/数据必须被更新,或者在更新之后促使对控制设备的重启。
7.硬件安全模块,简称hsm,提供加密功能,这些加密功能可被主机使用,以便保护安全关键的功能、比如多个控制设备彼此间的通信。为此,hsm尤其是管理秘密密码(密文)和/或加密密钥,并且优选地以硬件来实现加密方法。这些密钥由hsm存储在存储器的为此所设置的区域内和/或存储在hsm存储器、也就是说hsm自己的存储器中。hsm包括处理器(该处理器不同于主机处理器),并且可以与主机分开地实施或者与主机或主机处理器以及存储器一起集成在芯片中(那么,hsm和主机在某种程度上可以说通过该芯片上的不同的处理器内核来形成或映射)。hsm被设立为:提供针对存储器的写保护,也就是说禁止或准许对存储器的写访问。只有当写访问被准许时,才能执行更新,该更新需要对存储器的重写。hsm还被设立为检查存储区的完整性,以便检查包含在相应的存储区中的计算机程序或软件和/或所包含的数据的真实性。
8.在完整性检查的情况下,确定相对应的存储区的内容是否相对于已知正确的内容而言未经更改。为此,例如可以计算存储在存储区中的数据的校验值或哈希值,并且将该校验值或哈希值与在已知该存储区包含正确的、未被篡改的软件和/或数据的先前时间点所计算出的值进行比较。优选地,对于完整性检查来说,将mac、也就是说消息认证码(message authentication code)进行对照。在计算mac时,除了原始消息、这里是存储在存储区中的数据或这些数据的哈希值之外,加入hsm所管理的秘密密钥。由此,可以防止所谓的碰撞攻击(或这里是原像攻击)。优选地,使用所谓的cmac(基于密码的消息认证码(cipher-based message authentication code))。
9.优选地,该方法在启动更新程序之后还包括:通过更新程序,确定是否应该进行更新;如果确定不应该进行更新,则通过hsm来禁止写访问;如果确定应该进行更新,则对控制设备进行更新,其中该更新包括通过更新程序将更新数据写到存储器中并且然后通过hsm来禁止写访问和/或对控制设备进行重启;而且通过主机来执行一个或多个应用程序中的至少一个应用程序。在执行(所述一个或多个应用程序中的)至少一个应用程序之前,该方法还优选地包括:通过hsm来检查包含该至少一个应用程序的第二存储区的完整性;而且如果在该检查的情况下未确认第二存储区的完整性,则阻止对该至少一个应用程序的执行。
10.这些设计方案是有利的,因为如果不应该进行更新,则控制设备的实际功能无延迟地被启动,而且也保证了应用程序的真实性,即该应用程序在准许写访问期间未曾被篡改。
11.该方法可包括:在准许写访问之前要求并检验密码。这适宜地被执行,以便检查想要执行更新并且为此对存储器进行重写的人员和/或设备或应用是否被授权这样做。
12.优选地,检查第一存储区和/或第二存储区的完整性包括:将消息认证码(mac,message authentication code)进行对照。在计算mac时,使用由hsm来管理的秘密密钥,该秘密密钥提供了防止对相应存储区的篡改的附加的安全性。
13.该方法还可包括:如果在该检查的情况下未确认第一存储区和/或第二存储区的完整性,则停止主机和/或输出错误报告。借此可以防止:可能被篡改的控制设备继续运行并且可能错误地实施安全关键的功能。该错误报告可以被输出给用户。同样可能的是:将该错误报告转交给一个或多个其它控制设备。例如,机动车具有多个控制设备。如果这些控制设备中的一个控制设备、比如用于制动系统的控制设备借助于不成功的完整性检查查明有可能的篡改尝试,则该控制设备可以向其它控制设备输出或发送相对应的错误报告,使得所述其它控制设备可以对此做出反应,例如不启动或者停下。比如,如果制动系统的控制设备报告了可能的篡改尝试,则发动机控制设备可能会将发动机停止。
14.按照本发明的计算单元、例如机动车的控制设备尤其是以程序技术方式被设立为执行按照本发明的方法。
15.尤其是当进行实施的控制设备还被用于其它任务并且因而总归存在时,按照本发明的方法的以具有用于执行所有方法步骤的程序代码的计算机程序或计算机程序产品的形式的实现方案也是有利的,因为这引起了特别低的成本。尤其是,适合于提供该计算机程序的数据载体是磁存储器、光存储器和电存储器,诸如硬盘、闪速存储器、eeprom、dvd以及其它等等。通过计算机网络(因特网、内联网等等)来下载程序也是可行的。
16.本发明的其它优点和设计方案从描述以及随附的附图中得到。
17.本发明依据实施例在附图中示意性示出并且在下文参考附图予以描述。
附图说明
18.图1示出了本发明可基于的控制设备的原理性构造。
19.图2示出了关于用于对控制设备进行安全更新的方法的优选的实施方式的原理性结构的概览图。
20.图3示出了按照本发明的方法的优选的实施方式的流程图。
具体实施方式
21.图1示出了本发明可基于的控制设备或包含在控制设备中的计算单元的原理性构造。在此,基本上只示出了对于理解本发明来说必要的那些组成部分。
22.控制设备80包括主机82、硬件安全模块(hsm)84和存储器86。该主机、该硬件安全模块和该存储器借助于一个或多个连接或线路来彼此连接,用于进行数据交换。在该附图中,这例如经由总线90来实现。
23.为了完整起见,还示出了通信接口92,该通信接口用于将控制设备80与其它装置连接。这尤其可以是要由该控制设备控制的装置和/或其它控制设备。应该用来更新该控制设备的编程设备同样可以经由通信接口92来与该控制设备进行通信。通信接口92例如可包括can总线接口。这里,通信接口92与主机82直接连接,但是也可以被接到总线90上。
24.各个部分(主机82、hsm 84、存储器86、通信接口92)中的多个部分或者甚至所有部分都可以集成在芯片中。控制设备可包括其它未示出的组成部分。
25.在图2中,示出了关于更新方法的优选的实施方案的原理性结构的概览图。在此,在该附图左侧示出了在主机侧2进行的过程,而在该附图右侧示出了在hsm侧4进行的过程。所绘制的元素沿该附图的垂直方向的布置大致对应于时间顺序,其中在一方面主机侧的步骤与另一方面hsm侧的步骤之间的较小的变化是可能的。也就是说,可能的是:位于相同的垂直高度的过程在不同时间点进行或者位于不同高度的过程同时或以相反的顺序进行,只要这与该方法的逻辑顺序一致即可。例如,步骤12(禁止写访问,见下文)可能会在步骤8(对主机进行初始化)之前被实施,尽管这两个步骤在相同高度上示出;另一方面,步骤22(执行更新程序)可以(与该方法的逻辑顺序一致地)总是在步骤18(准许写访问)之后才被实施,即这里不能改变所示出的顺序。在主机侧进行的步骤的顺序和在hsm侧进行的步骤的顺序分别如图所示。
26.随着控制设备的启动、例如随着控制设备的接通,主机在方框或步骤6中启动。在此,主机尤其是在步骤8中被初始化,并且例如执行引导管理器(bootmanager)。同样,hsm在步骤10中启动,其中hsm在步骤12中禁止对存储器的写访问。对写访问的该初始禁止12可以通过由hsm执行的程序来被调用或执行和/或直接通过hsm的硬件来被调用或执行。
27.在步骤8中对主机进行初始化之后,在调用更新程序或编程软件之前,首先经由连接14来调用hsm,该hsm在步骤16中检查其中包含或存储有更新程序的存储区的完整性,也就是说检查该存储区是否已经以未经允许的方式被更改。为此,比如可以基于存储在存储区中的数据(程序数据和其它数据,比如初始化参数等等)和hsm所管理和存储的秘密密钥来计算消息认证码(mac,message authentication code),并且可以将该消息认证码与该存储区的已知的、先前计算出的mac进行比较,也就是说将该消息认证码进行对照。通过该做法,可以对更新程序进行认证。
28.如果确认存储区的完整性,也就是说如果更新程序被认证成功,则在步骤18中准许对存储器的写访问,并且同样经由连接20来允许在步骤22中执行该更新程序。更新程序识别或确定是否应该执行更新或重新编程。如果情况不是如此,则经由连接24来促使hsm在步骤26中再次禁止对存储器的写访问,而且同样经由连接28来调用应用软件并且在步骤30中执行该应用软件。在步骤26中对写访问进行该禁止之后,该写访问优选地不能重新被准许,即应用软件不能执行重新编程。
29.图3示出了按照本发明的方法的优选的实施方式的流程图。首先,在步骤40中,启动主机和硬件安全模块(hsm)。该主机和该硬件安全模块在启动阶段期间通常调用相应的加载程序(引导管理器或引导加载程序(boot-loader))并且执行初始化。在初始化之后,由主机的加载程序来调用存储在存储器中的程序或软件。在启动之后或在启动阶段期间,在步骤42中通过hsm;通过由hsm执行的程序(软件)和/或直接通过作为hsm中的硬件来实现的功能,禁止对存储器的写访问。如果写访问被禁止,则存储器既不能用软件来写也不能用数据来写,此时无法进行重新编程或更新。
30.在主机的初始化之后,调用hsm来在步骤44中检查第一存储区的完整性,该第一存储区包含或存储更新程序或编程软件。更新程序是被设立为(当被主机执行时)用新软件(计算机程序)和/或新数据来写存储器或存储区的至少部分的程序,这种软件和/或这种新
数据通常经由通信连接(有线或无线)被传送给控制设备和更新程序。
31.如果在该检查的情况下未确认第一存储区的完整性,即箭头46,则在优选的可选步骤48中可以使该控制设备停下,也就是说将主机以及还有hsm停止。这种停下或停止可以是彻底的,也就是说使该控制设备达到关闭或休眠状态,或者也可能只是阻止其它软件的执行,直至例如进行用户输入。附加地或替选地,可以输出错误报告。该步骤48是适宜的,因为由此防止了对也许被篡改的软件、这里是更新程序的安全关键的执行。
32.如果在该检查的情况下确认第一存储区的完整性,即箭头50,则可选地可以在步骤52中检验密码,该密码由hsm存储和管理并且该密码优选地是针对该控制设备单独生成的。利用密码查询或密码检验来检查想要执行对该控制设备的更新的人员或设备是否被授权这样做。如果对密码的检验不成功,即箭头54,则可以再次继续步骤48、也就是说该停下或该错误报告。如果对密码的检验成功,即箭头56,或者如果(在该附图中未示出)不提供对密码的检验,则继续步骤58,在该步骤中通过hsm来准许对存储器的写访问。
33.在准许58写访问之后,在步骤60中启动更新程序。该更新程序在步骤62中确定是否应该进行更新或重新编程。
34.如果查明应该执行更新,即箭头64,则在步骤66由更新程序来执行该更新。该更新比如可包括:将新程序、不仅应用程序而且更新程序和/或新数据、比如与该控制设备的参数有关的新数据写到存储器(至少写到该存储器的部分)中。该更新还可包括:(优选地通过hsm)生成新密钥,利用这些新密钥可以在稍后的时间点检查被重写的存储区的完整性;这些新密钥再次由hsm管理。更新也许还可包括重启该控制设备,比如当初始化数据已被更改时重启该控制设备。在步骤70中,在该更新之后,通过hsm或促使该hsm这样做的更新程序来再次禁止存储器访问(如果执行重启,则可以省去这样做,因为在该重启之后无论如何都禁止该存储器访问,参见步骤42)。
35.另一方面,如果(通过更新程序)查明不应该执行重新编程,即箭头68,则在其中确定是否应该执行更新的步骤62之后继续步骤70,在该步骤中再次禁止存储器访问。这是有利的,因为那么接下来的控制设备启动或对应用程序的执行不被延迟,也就是说直至控制设备的通过执行应用程序来实现的实际功能供支配的时间不被延长。
36.在步骤70中再次禁止存储器访问之后,可选地在步骤72中可以检查其中包含或存储有应用程序的第二存储区的完整性。如果在该步骤中未确认第二存储区的完整性,即箭头74,则可以继续步骤48,也就是说使该控制设备停下或将主机停止和/或输出错误报告。如果确认第二存储区的完整性,即箭头76,或者如果(在该附图中未示出)不提供对第二存储区的完整性的检查,则在步骤78中可以继续对应用程序的执行。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1