掌桥专利:专业的专利平台
掌桥专利
首页

电子控制装置、电子控制装置的安全验证方法

文献发布时间:2023-06-19 12:25:57


电子控制装置、电子控制装置的安全验证方法

技术领域

本发明涉及一种电子控制装置、电子控制装置的安全验证方法。

背景技术

近年来,随着安全驾驶辅助和自动驾驶技术的发展,车辆与诸如服务器或云那样的车外系统相连。为了确保车内外的安全性,车载装置搭载有安全启动等代码验证功能。

在专利文献1中公开了安全启动的方法。

专利文献1:日本特开2017-188826号公报

发明内容

为了检测车载装置的代码的篡改,希望使用车载装置中搭载的HSM(HardwareSecurity Module:硬件安全模块)那样的安全模块,在启动时进行安全启动。

另一方面,在要求高速启动的ECU的情况下,由于在启动时不能确保执行安全启动的时间,所以在代码执行前不能进行代码验证处理,存在不能确保安全性的问题。但是,在专利文献1中没有公开在不能执行代码验证处理的情况下确保安全性的方法。

本发明用于解决上述问题,其目的在于提供一种确保高速启动时的安全性的技术。

为了解决上述问题,本发明的电子控制装置是搭载于移动体上的电子控制装置,具备:控制部,其使用代码控制微机;安全验证部,其进行所述代码的安全验证;和启动代码,其是所述代码的一部分,在启动所述微机的情况下执行,所述控制部在所述微机转变到停止状态时,在所述安全验证部完成了所述代码或所述启动代码的验证的情况下,激活所述启动代码以便在下次启动时执行。

根据本发明,能够确保高速启动时的安全性。

附图说明

图1是表示第1实施方式的ECU的框图。

图2是示出第1实施方式的安全验证处理的流程图。

图3是示出第1实施方式的安全验证处理的流程图。

图4是示出第2实施方式的安全验证处理的流程图。

图5是示出第3实施方式的安全验证处理的流程图。

具体实施方式

以下,参照附图对几个实施方式进行说明。应注意,本实施方式只不过是用于实现本发明的一个例子,并不限定本发明的技术范围。在各图中,对共同的构成标注相同的参照符号。

在本实施方式中,对执行代码的安全验证(以下也称为安全启动)处理的电子控制装置(Electronic Control Unit。以下,ECU)的一例进行说明。

<第1实施方式>

图1是表示第1实施方式的ECU的构成例的框图。

ECU901具备通过总线相互连接的主控制部10、主代码存储部11、待机启动代码存储部12、主数据存储部15、电源控制部17、调试端口18以及通信部19。进一步地,总线可以从后述的安全控制部20访问。对于后述的安全区域,为了方便,将这些构成要素所属的区域和连线称为主区域1。

此外,ECU901包括通过总线相互连接的安全控制部20、安全代码存储部21和安全数据存储部25。为了方便,将安全控制部20、安全代码存储部21、以及安全数据存储部25所属的区域以及连线称为安全区域2。所述主区域1是在ECU901中去除安全区域2的部分。

出于确保安全的原因,主区域1的总线和安全区域2的总线不直接连接。经由安全控制部20进行两个区域1、2之间的命令和数据的传送。

主控制部10具有处理器(CPU、MPU或DSP),执行存储在主代码存储部11或待机启动代码存储部12中的程序。

主代码存储部11存储主控制部10执行的程序。主代码存储部11可以是闪存、EEPROM、SSD、FRAM(注册商标,下同)或磁盘那样的非易失性存储装置。主代码存储部11可以由多个存储装置构成,各程序可以分散存储在多个存储装置中。

待机启动代码存储部12存储主控制部10在待机启动时执行的程序。待机启动代码存储部12可以是具有作为易失性存储元件的RAM的存储器。在待机启动代码存储部12由易失性的存储元件构成的情况下,通过在待机状态下共享后述的电源控制部17的电源来保持值。或者也可以是闪存、EEPROM、SSD、FRAM、或者磁盘那样的非易失性的存储装置。待机启动代码存储部12可以由多个存储装置构成,各程序可以分散存储在多个存储装置中。

主代码存储部11、待机启动代码存储部12以及主数据存储部15可以是具有作为非易失性存储元件的ROM和作为易失性存储元件的RAM的存储器。ROM存储不变的程序。RAM是如DRAM(Dynamic Random Access Memory,动态随机存取存储器)那样的高速且易失性的存储元件,暂时存储主控制部10执行的程序和执行程序时使用的数据。

另外,主代码存储部11、待机启动代码存储部及主数据存储部15可以包括其部分或全部作为彼此的构成要素。即使作为设备没有明确的区别,也可以设为主代码存储部11和待机启动代码存储部表示存储有代码的部分,主数据存储部15表示存储有数据的部分。

主代码存储部11具备主控制代码110和待机启动控制代码111。主控制代码110是主控制部10执行的程序,是用于实现作为ECU901的车载装置的功能的程序。主控制代码110也可以是多个。

待机启动控制代码111是由主控制部10执行的程序,是ECU901从待机状态启动时执行的程序。待机启动控制代码111通过后述的顺序,在ECU901成为待机状态之前的规定的时刻被写入到待机启动代码存储部12中。

主数据存储部15存储主控制部10执行程序时使用的数据。主数据存储部15可以是闪存、EEPROM、SSD、FRAM或磁盘那样的非易失性存储装置。主数据存储部15可以由多个存储装置构成,各数据可以分散存储在多个存储装置中。

虽然未特别图示,但主数据存储部15具备控制数据。主数据存储部15的控制数据是由主控制部10执行的主控制代码110或待机启动控制代码111在处理中使用的数据,是用于实现作为ECU901的车载装置的功能的数据。主数据存储部15的控制数据根据用途可以是多个。

电源控制部17是ECU901的构成要素接受电源的供给用的构成要素。电源控制部17根据状态对各个构成要素分别供给电力。作为一例,在待机状态下,向待机启动代码存储部12供给电力,进行不与主控制部10共享电力的控制。

调试端口18是用于从ECU901的外部重写存储在主代码存储部11和主数据存储部中的代码和数据的模块。调试端口18可以是JTAG、SPI等。可以考虑调试端口18检测调试器等的连接,与电源控制部17协同来复位ECU901。

通信部19是用于ECU901与车辆900的其他构成要素进行通信的构成要素。通信部19是用于通过CAN、CAN FD、Ethernet(注册商标)或FlexRay进行通信的模块。ECU901可以根据用途和通信方式包括多个通信部19。进一步地,通信部19可以与实施其他通信的模块共用。另外,通信部19在进行无线通信的情况下,可以包括天线和调制解调电路。通信部19在进行有线通信的情况下,可以包括连接器和调制解调电路。

安全控制部20由HSM、SHE、TPM、其他安全微机、或者被称为安全核心的处理器(CPU、MPU、或者DSP)构成。安全控制部20执行存储在安全代码存储部21中的程序。安全控制部20可以具有防篡改特性。另外,作为安全控制部20的例子而示出的HSM、SHE或TPM可以包含后述的安全代码存储部21和安全数据存储部25。

安全代码存储部21存储安全控制部20执行的程序。安全代码存储部21可以是闪存、EEPROM、SSD、FRAM或磁盘那样的非易失性存储设备。安全代码存储部21可以具有防篡改特性。安全代码存储部21可以由多个存储装置构成,各程序可以分散存储在多个存储装置中。

安全数据存储部25存储安全控制部20执行程序时使用的数据。安全数据存储部25可以是闪存、EEPROM、SSD、FRAM或磁盘的那样非易失性存储设备。安全数据存储部25可以具有防篡改特性。

安全代码存储部21和安全数据存储部25可以是具有作为非易失性存储元件的ROM和作为易失性存储元件的RAM的存储器。ROM存储不变的程序。RAM是DRAM(Dynamic RandomAccess Memory,动态随机存取存储器)那样的高速易失性存储元件,并且暂时存储由安全控制部20执行的程序和在执行程序时使用的数据。

进一步地,安全代码存储部21和安全数据存储部25可以包括其部分或全部作为彼此的构成要素。即使作为设备没有明确的区别,也可以设为安全代码存储部21表示在安全区域2中存储有代码的部分,安全数据存储部25可以表示在安全区域2中存储有数据的部分。

安全代码存储部21具备安全控制代码210。安全控制代码210是由安全控制部20执行的程序,是用于实现作为ECU901的车载装置的安全功能的程序。安全控制代码210可以是多个。在后述的顺序中,安全控制代码210验证ECU901的代码的正当性。

安全数据存储部25包括待机启动控制代码储存部251和验证用费判定标志。待机启动控制代码储存部251是用于暂时或永久地储存待机启动代码111的区域,将在后述的第2实施方式中详细叙述。验证要否判定标志252是用于判定是否需要安全控制部20进行代码验证的标志,将在后述的第3实施方式中详细叙述。

另外,安全数据存储部25也可以保持由安全控制部20执行的安全控制代码210在处理中使用的安全控制数据。安全数据存储部25保持的安全控制数据是用于实现作为ECU901的车载装置的安全功能的数据,根据用途可以是多个。

以下,参照图2和图3说明安全验证处理的一例。

图2是示出第1实施方式的安全验证处理的流程图。

以下,在进行了主代码存储部11的程序成为执行主体的记述的情况下,通过主控制部10执行该程序。进一步地,在进行了安全代码存储部21的程序成为执行主体的记述的情况下,通过安全控制部20执行该程序。

进一步地,以下的图中的箭头表示示意性的命令以及数据的流动,并不限定通信方向以及指示方向。可以有未用箭头示出的处理指示和数据的流动。

图示的顺序从ECU901开始向待机状态转变的状态开始(S101)。ECU901向待机状态的转变例如以发动机OFF等为契机而开始。

首先,主控制部11请求安全控制部21执行代码验证(S102)。安全控制部21接受该请求,进行主代码存储部11的控制代码的代码验证(S103)。可以没有S102,在没有S102的情况下,安全控制部21可以执行S103作为S101的下一步骤。或者安全控制部21也可以通过定时器驱动等执行S103。在S103中的代码验证失败的情况下(S104 NG),安全控制部21实施规定的错误处理(S105)。在代码验证成功的情况下(S104 OK),安全控制部21向主控制部11通知验证完成(S106)。接收到代码验证正确完成的情况的主控制部11将待机启动控制代码111写入待机启动代码存储部12(S107),进入待机模式(S108)。

虽然在图2中没有特别表示,但在待机模式中,从电源控制部17对待机启动代码存储部12供给电源,待机启动代码存储部12在待机模式中也能够保持值。另外,在待机模式中,可以停止向主控制部11、安全控制部21的电源供给。

接着,当通过发动机ON等触发而开始ECU901的待机启动时(S109),从电源供给部17向主控制部11供给电源,主控制部11执行存储在待机启动代码存储部12中的待机启动控制代码11(S110)。主控制部11可以在S110之后执行主控制代码110(S111)。

另外,虽然在图2中未示出,但待机启动控制代码110也可以在该处理中对安全控制部21进行代码验证请求。接收到该请求的安全控制部21中的代码验证的验证范围可以与S103相同,另外,也可以与主控制部11进行的待机启动控制代码111的执行或主控制代码110的执行并行地进行。

图3是表示第1实施方式的安全验证处理的流程图,是使用图2说明的流程图的分支处理。另外,图3的安全验证处理是在图2的安全验证处理中,叙述了在待机模式中对ECU901进行复位的情况,其他的构成与图2的重编程处理相同。因此,以与图2的不同点为中心进行叙述。

在S108中ECU901处于待机模式的情况下,在连接了调试器等的情况下(S201),调试端口18和电源控制部17协同进行复位(S202)。此时,通过复位解除待机模式,清除待机启动代码存储部12(S203)。在待机启动代码存储部12是非易失性存储器的情况下,S203也可以进行明示的重写处理。

解除待机模式而从复位开始启动的ECU901,通过安全控制部22进行主代码存储部11的控制代码的代码验证(S204)。如S102和S103的关系那样,也可以从主控制部11信赖的代码接收代码验证请求来执行S204。在S205中的代码验证失败的情况下(S205 NG),安全控制部21实施规定的错误处理(S206)。在代码验证成功的情况下(S205 OK),安全控制部21向主控制部11通知验证完成(S207)。之后,接收到代码验证正确完成的情况的主控制部11进入S111的处理。

另外,在S201中检测调试器连接是顺序的一例,只要是发生S202的复位动作的处理流程即可,不限于本例。即,在由于包含S201的、怀疑有ECU901的代码篡改等攻击等的任意现象而发生S202的复位的情况下,执行S204以后的处理。

根据该构成,能够检测伴随复位的不正当的代码重写,同时确保从待机模式高速启动时的安全性。

另外,在实施本实施方式中说明的步骤的过程中,在发生了某种错误的情况下,可以将该错误通知给车辆信息系统的各构成要素的控制部。

另外,主控制代码110、待机启动控制代码111、以及安全控制代码210中包含的各程序可以根据需要,在显示装置上显示表示执行中的处理的信息。这些各程序特别优选在显示装置上显示表示一系列处理的完成或分支处理的发生的信息。进而,用户可以经由输入装置执行分支处理中的判定。

进而,在本实施方式中,有时省略各步骤间的信息的交换。但是,实际上,有时形成对命令的响应对。此外,即使在各步骤之间的信息交换由一组双向箭头指示的情况下,该交换也可以包括多个命令和响应。进而,即使在记述了在实体间收发数据的内容的情况下,实际的通信有时是一方的实体成为客户端角色,另一方的实体成为服务器角色。在这种情况下,可以通过命令和响应来实现实际的通信,从而发送上述数据作为其结果。

<第2实施方式>

对第2实施方式的安全验证处理进行说明。另外,第2实施方式的安全验证处理与第1实施方式的安全验证处理不同之处仅在于待机启动控制代码111的写入主体,其他的构成与第1实施方式的安全验证处理相同。因此,以与第1实施方式的不同点为中心进行叙述。

图4是示出第2实施方式的安全验证处理的流程图。

在图4中,代替图3的S107,安全控制部21在S104(OK)之后,将存储在待机启动控制代码储存部251中的待机启动控制代码111写入到待机启动代码存储部12中(S301)。安全控制部20可以预先从主代码存储部11将待机启动控制代码111复制到待机启动控制代码储存部251。或者,也可以在待机启动控制代码储存部251中永久地保持待机启动控制代码111。之后,执行与图2所示的流程相同的处理。

在第2实施方式中,优选待机启动代码存储部12被控制为只能从安全区域2写入,只能从主区域1读出。

根据该构成,由于保障了在待机启动开始时读出的待机启动代码存储部12的代码仅从安全区域2写入,所以能够以更高的强度确保高速启动时的安全性。

<第3实施方式>

对第3实施方式的安全验证处理进行说明。另外,第3实施方式的安全验证处理与第1实施方式的安全验证处理的不同之处仅在于判定是否实施安全验证的方法,其他构成与第1实施方式的重编程处理相同。因此,以与第1实施方式的不同点为中心进行叙述。

图5是示出第3实施方式的安全验证处理的流程图。

在图5中,ECU901从开始向关机转变的状态开始(S401)。与第1、第2实施方式同样,也可以将向待机状态的以后作为契机。此后,在执行与第2实施方式同样的处理直到S102至S104(OK)之后,接收验证成功的情况,将已验证标志写入验证用费判定标志252(S402)。然后,ECU901转变到电源OFF状态(S403)。与第1、第2实施方式同样,也可以转变到待机模式。

在S403中ECU901处于电源OFF状态的情况下,在连接了调试器等的情况下(S404),调试端口18和安全控制部21协同清除验证要否判定标志252的已验证标志。

当ECU901由于发动机ON等而接通电源或复位时(S405),安全控制部22检查验证可否判定标志252,如果已验证(S406“是”),则进入S207。如果不是已验证(S406“否”),则进入S204,实施代码验证。这里,所谓已验证的情况,是指在关机前通过S402在验证要否判定标志252中写入表示已验证的标志,并且没有发生S404等进行表示已验证的标志的清除的处理的情况。

另外,在S404中检测调试器连接是顺序的一例,只要是在S404中进行已验证标志的清除的处理流程即可,不限于本例。即,在由于包含S404的、怀疑有ECU901的代码篡改等攻击等的任意现象,而进行验证要否判定标志252的已验证标志的清除的情况下,执行S204以后的处理。

根据该构成,能够通过安全控制部21判断验证要否,不限于待机启动,能够在保持安全性的同时高速启动。

另外,本发明不限于上述各实施方式,包含各种变形例。上述的各实施方式是为了容易理解地说明本发明而详细说明的实施方式,并不一定限定于具备所说明的全部构成。此外,某实施方式的构成的一部分可以替换为其他实施方式的构成,并且其他实施方式的构成可以添加到某实施方式的构成中。进一步地,对于各实施方式的构成的一部分,能够进行其他构成的追加、删除、置换。

进一步地,上述的各构成、功能、处理部、处理单元可以通过将它们的一部分或全部在集成电路中设计而用硬件来实现。进一步地,上述的各构成、功能也可以通过处理器解释并执行实现各个功能的程序而由软件实现。实现各功能的程序、表、以及文件那样的信息可以储存在存储器、硬盘、或者SSD的记录装置、或者IC卡、SD卡、或者DVD那样的记录介质中。

进一步地,控制线和信息线表示在说明上被认为是必要的,在产品上未必表示全部的控制线和信息线。实际上,几乎所有的构成可以相互连接。

符号说明

1…主区域、2…安全区域、10…主控制部、11…主代码存储部、12…待机启动代码存储部、15…主数据存储部、17…电源控制部、18…调试端口、19…通信部、20…安全控制部、21…安全代码存储部、22…安全数据存储部、110…主控制代码、111…待机启动控制代码、210…安全控制代码、251…待机启动控制代码储存部、252…验证要否判定标志、901…ECU。

相关技术
  • 电子控制装置、电子控制装置的安全验证方法
  • 实现安全的驻车锁的电子控制装置及控制的方法
技术分类

06120113293995