用于对机动车的控制设备进行编程的方法

文档序号:10577273阅读:314来源:国知局
用于对机动车的控制设备进行编程的方法
【专利摘要】本发明涉及用于对机动车的控制设备进行编程的方法。本发明涉及一种用于对机动车(100)的控制设备(110)进行编程的方法,其中在控制设备(110)中所实施的以往的程序代码被寄存在存储区域(122)中,新的程序代码被写入控制设备(110)并且所述新的程序代码的检查被执行,其中,如果新的程序代码在检查的进程中成功地被验证,那么所述新的程序代码由控制设备(110)实施,并且其中,如果新的程序代码在检查的进程中没有成功地被验证,那么被寄存在存储区域(122)中的以往的程序代码从存储区域(122)被写入控制设备(110),而且其中所述以往的程序代码由控制设备(110)实施。
【专利说明】
用于对机动车的控制设备进行编程的方法
技术领域
[0001 ]本发明涉及一种用于对控制设备进行编程的方法。
【背景技术】
[0002]对机动车的控制设备的编程可以大多在机动车的生产或制造过程期间(例如在带端(Bandende)上)或者也在维护或者修理工作的进程中在车间里被执行。在这样的编程的进程中,例如可以执行固件更新(Firmware-Update ),其中例如新的、修订过的程序代码被写入控制设备。为了该目的,计算单元可以与控制设备相连,并且新的程序代码可以被传送给控制设备。在此,以往的(bisherig)在控制设备中被寄存并且被实施的程序代码通过新的程序代码被清除或被重写。
[0003]在所谓的固件空中下载编程(Firmware-Over-the-Air-Programmierung,FOTA)或者空中下载编程(Over-the-Air-Programmierung,0ΤΑ)的进程中,控制设备的编程也可以在现场自身被执行。为了该目的,可以通过诸如WLAN或者移动无线电网络那样的无线电连接将新的程序代码例如从车辆制造商的服务器无线地传输给车辆。
[0004]为了防止芯片调谐(Chi P tun ing )和防止例如来自未被授权的站点的有害的软件,十分重要的是使被引入到控制设备中的新的程序代码经受签名校验(Signatur-Pruefung)并且验证新的程序代码。如果该签名校验失败并且新的程序代码不能成功地被验证,那么所述新的程序代码被标记为无效的并且被阻止实施。在此,危险在于,控制设备停留在引导装载程序(Bootloader)中并且不再能实现正常运行。在这种情况下,为了再次将控制设备置于正常运行,必须再次将有效的程序代码传输到控制设备中。
[0005]在生产或制造过程期间或者在车间里,在这样的情况下再次将有效的程序代码传输到控制设备中大多没有问题,因为这里确保了访问经验证的、有效的程序代码并且这些经验证的、有效的程序代码例如被寄存在中央数据库中和/或在存储介质中。
[0006]在给控制设备在现场进行编程(F0TA、0TA)的情况下,这样地访问经验证的、有效的程序代码不再被确保。如果例如在车辆与车辆制造商的服务器之间的无线电连接中止,比方说如果车辆位于封闭的地下停车场中、在隧道中或者在静区(Funkloch)中,那么必要时不再毫无顾忌地可能将有效的程序代码传输到控制设备中并且使控制设备再次能运转。
[0007]因此,在通过无线电连接对控制设备在现场进行编程的情况下,危险在于:相对应的控制设备不再能确保正常运行,并且也不再能将有效的程序代码传输到控制设备中,而无需车辆被运输到车间中。
[0008]因而值得期望的是,提供一种用于对机动车的控制设备进行编程的被改进的可能性,借助于其使得尤其是在现场中对控制设备进行可靠编程成为可能。

【发明内容】

[0009]按照本发明,建议了一种具有专利权利要求1的特征的用于对机动车的控制设备进行编程的方法。有利的构建方案是从属权利要求以及随后的描述的主题。
[0010]在本方法的进程中,尤其是应该执行控制设备的固件更新,在控制设备中所实施的以往的程序代码应该在本方法的进程中尤其是通过新的程序代码替换。
[0011]在控制设备中所实施的以往的程序代码被寄存在存储区域中,尤其是在控制设备内部或者在其他方面位于车辆中的分开的存储器中。在此,以往的程序代码尤其是以被加密的方式被寄存。在此,以往的程序代码在数据传输到分开的存储器之前被加密。此后,新的程序代码被写入控制设备。在此,在控制设备中的以往的程序代码尤其是通过新的程序代码被重写或者被清除。
[0012]新的程序代码的检查被执行。尤其是执行新的程序代码的签名校验或认证校验。尤其是检查:新的程序代码是否已经由被确认为合法的站点(诸如机动车或者控制设备的制造商)制成。尤其是保证:新的程序代码不是有害的软件。
[0013]如果新的程序代码在检查的进程中成功地被验证或被认证,那么新的程序代码由控制设备实施。在这种情况下,新的程序代码不是有害的软件并且可以无危险地被实施。在这种情况下,可以将被寄存在存储区域中的以往的程序代码清除或者可以利用新的数据将存储区域重写。
[0014]如果新的程序代码在检查的进程中没有成功地被验证或被认证,那么来自存储区域的被寄存在存储区域中的以往的程序代码被传输回并且被解密。被解密的以往的程序被写入控制设备并且替换未经验证地被识别的存储内容。接着,以往的程序代码由控制设备实施。因为在这种情况下新的程序代码对于控制设备可能是有害的软件和潜在的危险,所以所述新的程序代码被阻止实施。尤其是,所述新的程序代码在控制设备中通过以往的程序代码被重写或者被清除。
[0015]本发明的优点
通过本发明提供了一种可能性,以便在对控制设备进行编程的进程中随时可以在控制设备中实施经验证的、有效的程序代码。本发明尤其是提供了一种可能性,以便将返回程序(Rueckfallprogramm)或返回程序代码寄存在车辆中。即使新的程序代码没有成功地被验证并且可能是有害的软件和潜在的危险,也阻止控制设备受限地或者完全不再运转。
[0016]在没有成功地被验证的新的程序代码的情况下,可以毫无问题地实施那个曾在引入新的程序代码之前是能运行的程序代码。为此,附加的数理逻辑(Logistik)不是必需的。尤其是在不从车辆之外传送数据的情况下,可以再次使以往的程序代码在控制设备中可支配。
[0017]以往的程序代码尤其是被寄存在非易失性存储器中。以往的程序代码尤其是被寄存在机动车的控制设备或者另一控制设备的非易失性存储器中。当然,也可以将以往的程序代码分别寄存在多个存储区域中。可以将已经在机动车中存在的存储区域或者也可以将附加地被实施的存储区域用作存储区域。所述存储区域尤其是可以被用于对机动车的所有控制设备进行编程。
[0018]有利地,新的程序代码通过无线连接、尤其是通过无线电连接(例如通过WLAN或者通过移动无线电网络)被传送给机动车。优选地,新的程序代码在空中下载编程(OTA)或者固件空中下载编程(FOTA)的进程中被写入控制设备。因此,优选地在现场执行控制设备的编程。在此,新的程序代码可以通过无线连接直接被传送给控制设备或者也被传送给机动车的另一控制设备,并且可以被所述另一控制设备写入控制设备。新的程序代码尤其是由车辆制造商或者控制设备制造商的服务器通过无线连接被传送给机动车。
[0019]如开头所提及的那样,例如如果车辆位于封闭的地下停车场中、在隧道中或者在静区中,那么无线的无线电连接可能被中断。通过本发明确保了:即使无线的无线电连接被中断,也随时可以在控制设备中实施经验证的、有效的程序代码。在没有成功地被验证的新的程序代码的情况下重建以往的程序代码与无线连接无关并且也可以在没有该无线连接的情况下在现场被执行。为了此目的,车辆不必额外地被运输到车间中。
[0020]优选地,新的程序代码被编程单元写入控制设备。该编程单元优选地被构造为机动车的另一控制设备。如上面所解释的那样,新的程序代码优选地通过无线连接被传送给机动车的另一控制设备(优选地在OTD或FOTA的进程中),并且由所述另一控制设备写入控制设备。尤其是可以将所述另一控制设备构造为:通过无线连接与机动车制造商或者控制设备制造商的服务器进行通信。
[0021]可替换地,可以优选地将编程单元构造为外部计算单元。该外部计算单元尤其是通过有线连接与控制设备相连。尤其是在机动车的生产或制造过程的进程中或者尤其是也在车间里例如在维护或者修理工作的进程中,新的程序代码可以由外部计算单元写入控制设备。为了此目的,尤其是可以由外部计算单元来实施合适的程序。
[0022]优选地,以往的程序代码被寄存在编程单元的存储区域中。如进一步在上面所解释的那样,因此以往的程序代码尤其是被寄存在另一控制设备的存储区域中。这尤其是适合于通过无线连接或在OTA或FOTA编程的进程中传送新的程序代码。然而,以往的程序代码尤其是也可以被寄存在外部计算单元中。
[0023]有利地,在控制设备中所实施的以往的程序代码被加密,并且该被加密的以往的程序代码被寄存在存储区域中。如果新的程序代码没有成功地被验证,那么被加密的、被寄存在存储区域中的以往的程序代码从存储区域被传输到控制设备中、被解密、被写入并且再次被实施。尤其是如果控制设备单独的(steuergeraeteindividuel Ie)密钥被用于加密和解密,那么以往的程序代码只可以由控制设备自身再次被解密。因此,以往的程序代码可靠地被寄存在存储区域中,使得攻击者既不能读出也不能改变所述以往的程序代码。尤其是如果新的程序代码是有害的软件,那么可以阻止该有害的软件读出或者改变所寄存的程序代码。芯片调谐因此被禁止并且“专有技术保护(Know-How-Schutz)”被确保。
[0024]以往的程序代码尤其是包括对于机动车的操控和运行来说必需的数据、例如特定的操控指令、技术数据、控制或者特性值。这些指令或值曾由制造商常常在多年的具有高研究花费的研发过程中通过长期连续的并且昂贵的测试系列确定并且优化。因此,在制造商方面,为了保障“专有技术保护”,这些数据不能被第三方、即攻击者读出。
[0025]优选地,用于加密和/或用于解密控制设备的以往的程序代码的密钥被制成。可替换地,也可以优选地将已经在控制设备中存在的密钥用于加密和/或用于解密以往的程序代码。用于加密和/或用于解密以往的程序代码的密钥尤其是被寄存在控制设备的存储区域中、尤其是在控制设备的非易失性存储区域中、进一步尤其是在安全的存储区域中。有利地,控制设备的其中寄存密钥的存储区域不同于其中寄存以往的程序代码的存储区域。
[0026]密钥因此从不离开控制设备并且不能到达攻击者。因此,尤其是保证了以往的程序代码只可以由控制设备自身再次解密,并且所述以往的程序代码只可以在控制设备中被实施。因此,以往的程序代码即使在机动车的车载电网中在不同的控制设备之间传输时也可以被保密。
[0027]优选地,密钥被寄存在控制设备的硬件安全模块(Hardware Security Module ,HSM)中。除了传统的处理器单元(处理器系统部分,PS)以外,大多在控制设备中设置这样的硬件安全模块。与传统的处理器单元相似,该HSM尤其是包括一个或者多个处理器核以及本地存储器(R0M、RAM,闪存(Flash)、EEPR0M)。该HSM尤其是拥有特有的物理资源((多个)处理器核、本地存储器、等等),所述特有的物理资源与处理器单元的物理资源无关。HSM的资源尤其是可以相对于处理器单元的在硬件层面上的资源而被屏蔽。该HSM是被隔离的、可靠的环境,所述被隔离的、可靠的环境此外还被处理器单元保护以防操纵和攻击。
[0028]优选地,真实可靠性特征(Authentizitaetsmerkmal)被添加给在控制设备中所实施的以往的程序代码中。配备有真实可靠性特征的以往的程序代码被寄存在存储区域中。例如可以将签名或用密码写的(kryptographisch)签名和/或校验和添加为真实可靠性特征。以往的程序代码尤其是可以利用密钥被签名,所述以往的程序代码也利用所述密钥被加密。真实可靠性特征可以在加密以往的程序代码之前或者也可以在加密以往的程序代码之后被添加。通过添加这样的真实可靠性特征,以往的程序代码可以被保护以防由攻击者操纵。
[0029]如果被寄存在存储区域中的以往的程序代码再次被写入控制设备,则有利地,以往的程序代码的真实可靠性依据真实可靠性特征被检查。因此保证了:以往的程序代码不曾由攻击者操纵。
[0030]如果该真实可靠性校验失败并且以往的程序代码的真实可靠性没有被确定,那么危险在于:所述以往的程序代码曾由攻击者蓄意地操纵。在这种情况下,以往的程序代码尤其是没有被实施。控制设备例如停留在引导装载程序中。
[0031]优选地,在控制设备中所实施的以往的程序代码被寄存在存储区域中,其方式是控制设备的存储器转录(Speicherabbild)被制成并且被寄存在存储区域中。优选地,该存储器转录首先借助于密钥被加密并且以被加密的方式被寄存在存储区域中。在这样的存储器转录的情况下,尤其是存储器转录文件被制成,所述存储器转录文件不仅复述(wiedergeben) 了控制设备的(文件系统)结构而且复述了控制设备的所有文件或内容。
[0032]优选地,错误识别方法、尤其是纠错方法被执行,用于将以往的程序代码传输到存储区域中。为了此目的,尤其是循环冗余校验(cyclic redundancy check,CRC)被执行。在此,例如以校验和为形式的冗余信息被添加到要传输的数据。如果以往的程序代码已经被传输到存储区域中,那么该校验和与所计算的校验和相比较。如果这两个校验和是相同的,那么传输到存储区域中已成功,否则该传输重新被执行。在循环冗余校验的进程中尤其是使用了基于多项式除法(Polynomdi vis 1n)的CRC校验和。
[0033]按照本发明的计算单元(例如机动车的控制设备)尤其是以程序技术方式被设立为执行按照本发明的方法。
[0034]尤其是如果进行实施的控制设备还被用于其它的任务并且因而本来就存在,那么以软件形式实施本方法也是有利的,因为这造成了特别小的成本。用于提供计算机程序的适合的数据载体尤其是软盘、硬盘、闪存存储器、EEPR0M、CD-R0M、DVD以及其它更多。通过计算机网络(因特网、内联网等等)下载程序也是可能的。
[0035]本发明的其它的优点和构建方案从说明书和附图中得到。
【附图说明】
[0036]本发明依据实施例在附图中示意性地被示出并且随后参考附图被描述。
[0037]图1示意性地示出了具有控制设备的机动车,所述控制设备被设立为执行按照本发明的方法的优选的实施形式。
[0038]图2作为框图示意性地示出了按照本发明的方法的优选的实施形式。
【具体实施方式】
[0039]在图1中示意性地示出了具有第一控制设备110和具有第二控制设备120的机动车100。当然,机动车100还可以包括其它的控制设备,所述其它的控制设备为了简便起见这里未被示出。
[0040]第一控制设备110具有带有处理器核和本地存储器的处理器单元111。此外,所述第一控制设备110还具有同样带有与处理器单元111无关的处理器核和本地存储器的硬件安全模块(HSM) 112。
[0041]第二控制设备120同样具有带有处理器核和本地存储器的处理器单元121并且此外还具有以非易失性存储器为形式的存储区域122。所述非易失性存储器122可以被构造为处理器单元121的部分或者与该处理器单元121无关地被构造。
[0042]所述第二控制设备120可以通过无线连接130(例如通过移动无线电网络)与机动车制造商的服务器140相连。
[0043]在处理器单元111中,过时的固件被实施,所述过时的固件接下来被称作以往的程序代码。所述过时的固件应该在固件更新的进程中通过接下来被称作新的程序代码的新版本固件替换。
[0044]为了此目的,机动车100被设立为执行按照本发明的方法的优选的实施形式,所述优选的实施形式在图2中作为框图被示出并且接下来参考图2被解释。
[0045]第一控制设备110的固件更新借助于固件空中下载编程被执行。第二控制设备120是编程单元,所述编程单元从服务器140接收新的程序代码并且将新的程序代码写入第一控制设备110。
[0046]为了此目的,在步骤201中,第二控制设备120通过移动无线电网络130与服务器140相连。在所制造的无线连接130之后,新的程序代码由服务器140通过移动无线电网络130被传送给第二控制设备120并且被寄存在该第二控制设备120的处理器单元121中。
[0047]在步骤202中,第二控制设备120要求第一控制设备110将所述以往的程序代码传送给第二控制设备120。为了此目的,在步骤203中,用于对以往的程序代码加密和解密并且用于给以往的程序代码签名的密钥由第一控制设备110制成并且被寄存在HSM 112中。
[0048]在步骤204中,第一控制设备110的存储器转录、尤其是处理器单元111的存储器转录被制成。相对应的存储器转录文件利用在步骤203中所制成的密钥被加密。
[0049]此外,所述被加密的存储器转录文件在步骤204中还借助于在步骤203中所制成的密钥被签名。因此,用密码写的签名作为认证特征(Authentifizierungsmerkmal)被添加给被加密的存储器转录文件。
[0050]要指明的是,在步骤204中的加密和签名的顺序是任意的,即尤其是也可以首先被签名并且紧接着才被加密。
[0051]此外,以第一校验和为形式的校验和信息还被添加给存储器转录文件。因此,使得校验和校验(例如循环冗余校验,CRC)成为可能。
[0052]被加密的并且被签名的存储器转录文件在步骤205中由第一控制设备110被传送给第二控制设备120。此外,在步骤206中,第二校验和由第二控制设备120确定。
[0053]在步骤207中,第二控制设备120将接收确认连同第二校验和一起传送给第一控制设备110。所述第二校验和在校验和校验的进程中与第一校验和相比较。
[0054]如果这两个校验和相同,那么将以往的程序代码传送给第二控制设备120已经成功。如果这两个校验和不相同,那么以往的程序代码的传送不曾成功并且重新在步骤202中开始。
[0055]在成功地传送以往的程序代码之后,所述以往的程序代码被寄存在编程单元120的非易失性存储器122中。为了此目的,被加密的存储器转录文件在步骤208中被寄存在第二控制设备120的非易失性存储器122中。
[0056]在步骤209中,新的程序代码由第二控制设备120写入第一控制设备110,尤其是写入处理器单元111。在此,以往的程序代码在处理器单元111中被重写。紧接着,在步骤210中,新的程序代码的检查、尤其是新的程序代码的签名校验在控制设备110中被执行。
[0057]如果新的程序代码在签名校验的进程中成功地被验证或认证,那么新的程序代码在步骤211中由第一控制设备110实施。第二控制设备120的非易失性存储器122可以被清除或者利用其它的数据被重写。
[0058]如果然而新的程序代码没有成功被验证或被认证,那么该程序代码对于第一控制设备110来说可能是有害的软件和潜在的危险。在这种情况下,在步骤212中,来自非易失性存储器122的被加密的存储器转录文件再次被传送到第一控制设备110的处理器单元111中。在此,新的程序代码完全从处理器单元111中被清除。
[0059]在步骤213中,校验和校验重新被执行并且检查:被加密的存储器转录文件是否已经正确地由第二控制设备120被传送给第一控制设备110。如果该传送不曾成功,那么该传送重新被执行。
[0060]如果该传送已经成功,那么被加密的存储器转录文件在步骤214中借助于被寄存在HSM 112中的密钥由第一控制设备110解密并且写入。
[0061]在步骤215中,依据在步骤204中被添加的认证特征,被解密的以往的程序代码的真实可靠性被检查。如果该检查成功,那么被解密的以往的程序代码在步骤216中由第一控制设备110激活和实施。第二控制设备120的闪存存储器122可以被清除或者利用其它的数据被重写。
[0062]如果真实可靠性校验失败,那么被加密的以往的存储器转录已经例如由攻击者蓄意地操纵。在这种情况下,修复是不可能的,并且在步骤217中,控制设备110停留在引导装载程序中并且可以由车间测试者重新利用有效的程序编程而且被置于正常运行中。
[0063]要指明的是,在步骤214和215中的解密和认证适宜地以与在步骤204中相反的加密和签名顺序进行。在本例中,在步骤204中已经首先被加密并且紧接着被签名,因此在步骤214和215中首先被认证并且紧接着被解密。如果认证失败,那么存储器转录决不被接受(uebernehmen)。
【主权项】
1.用于对机动车(100)的控制设备(110)进行编程的方法,其中 -在控制设备(I 10)中所实施的以往的程序代码被寄存(208)在存储区域(122)中, -新的程序代码被写入(209)控制设备(110),并且所述新的程序代码的检查被执行(210), -其中,如果新的程序代码在检查的进程中成功地被验证,那么新的程序代码由控制设备(110)实施(211),并且 -其中,如果新的程序代码在检查的进程中没有成功地被验证,那么被寄存在存储区域(122)中的以往的程序代码从存储区域(122)被写入(212)控制设备(110),并且其中以往的程序代码由控制设备(110)实施(215)。2.根据权利要求1所述的方法,新的程序代码通过无线连接(103)被传送(201)给机动车。3.根据权利要求1或2所述的方法,其中所述新的程序代码在空中下载编程或者固件空中下载编程的进程中被写入(201)控制设备(110)。4.根据上述权利要求之一所述的方法,其中所述新的程序代码由编程单元被写入(209)控制设备,其中所述编程单元被构造为外部计算单元或者被构造为机动车(100)的另一控制设备(120)。5.根据权利要求2和4所述的方法,其中所述新的程序代码通过无线连接(130)被传送(201)给机动车(100 )的另一控制设备(120 )。6.根据权利要求4或5所述的方法,其中以往的程序代码被寄存(208)在编程单元(120)的存储区域(122)中。7.根据上述权利要求之一所述的方法,其中在控制设备(110)中所实施的以往的程序代码被加密(204),并且所述被加密的以往的程序代码被寄存(208)在存储区域(122)中。8.根据权利要求7所述的方法,其中用于对以往的程序代码加密和/或用于对以往的程序代码解密的密钥被寄存(203)在控制设备(110)的存储区域(112)中。9.根据权利要求8所述的方法,其中所述用于对以往的程序代码加密和/或用于对以往的程序代码解密的密钥被寄存(203)在控制设备(110)的硬件安全模块(112)中。10.根据上述权利要求之一所述的方法,其中真实可靠性特征被添加(204)给在控制设备(110)中所实施的以往的程序代码,并且配备有所述真实可靠性特征的以往的程序代码被寄存(208)在存储区域(122)中。11.根据权利要求10所述的方法,其中,如果所述配备有真实可靠性特征的、被寄存在存储区域(122)中的以往的程序代码从存储区域(122)被写入(212)控制设备(110),那么以往的程序代码的真实可靠性依据所述真实可靠性特征被检查(215)。12.根据上述权利要求之一所述的方法,其中所述在控制设备(110)中所实施的以往的程序代码被寄存在存储区域(122)中,其方式是控制设备的存储器转录被制成(204)并且被寄存(208)在存储区域中。13.根据上述权利要求之一所述的方法,其中错误识别方法、尤其是纠错方法被执行(207),用于将以往的程序代码传输给所述存储区域(122)。14.计算单元(I10、120),所述计算单元(I 10、120)被设立为执行根据上述权利要求之一所述的方法。15.计算机程序,所述计算机程序促使计算单元(110、120)在所述计算机程序在计算单元(110、120)上被实施时执行根据权利要求1至13之一所述的方法。16.机器可读的存储介质,其具有被存储在其上的根据权利要求15所述的计算机程序。
【文档编号】G06F9/445GK105938433SQ201610117652
【公开日】2016年9月14日
【申请日】2016年3月2日
【发明人】U.舒尔茨, E.施洛特曼, L.邓
【申请人】罗伯特·博世有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1