控制在车辆中电子控制单元间通信的方法、装置、设备、存储介质以及相应车辆与流程

文档序号:16244893发布日期:2018-12-11 23:28阅读:172来源:国知局
控制在车辆中电子控制单元间通信的方法、装置、设备、存储介质以及相应车辆与流程

本公开的实施例总体上涉及车载电子控制系统,并且更具体地涉及用于控制在车辆中电子控制单元间通信的方法、装置、设备、计算机可读存储介质以及相应车辆。

背景技术

在车辆中,通常配置有多个电子控制单元(electroniccontrolunit,ecu)来控制例如引擎、刹车、导航、空调等车辆功能装置/模块。多个ecu通常通过车辆的控制局域网(controlareanetwork,can)来进行通信,以在ecu间交互所需的数据信息。

在传统的利用can网络进行的通信中,发送方ecu以明文广播的形式将数据报文发送到can总线上,而接收方ecu通过can总线接收数据明文。这种can总线上基于明文的数据传输很容易被侦听后分析,甚至伪造发送一些控制信息,使得ecu执行一些非安全的动作,威胁行车安全。



技术实现要素:

根据本公开的示例实施例,提供了一种用于控制在车辆中电子控制单元间通信的方法、装置、设备、计算机可读存储介质以及相应车辆。

在本公开的第一方面中,提供了一种用于控制在车辆中电子控制单元(ecu)间通信的方法。该方法包括:控制第一ecu发送包括该第一ecu的发送密钥的第一报文,并且该第一报文被预先配置的根密钥所加密;根据ecu间的通信矩阵,控制需要接收该第一ecu的第一报文一个或多个第二ecu执行以下步骤:接收加密的该第一报文,通过该根密钥解密该第一报文,以及获取并存储该第一ecu的发送密钥,以作为该一个或多个第二ecu用于解密来自第一ecu的第二报文的接收密钥。

在本公开的第二方面中,提供了一种用于控制在车辆中电子控制单元(ecu)间通信的装置。该装置包括:第一控制装置,被配置为控制第一ecu发送包括该第一ecu的发送密钥的第一报文,并且该第一报文被预先配置的根密钥所加密;第二控制装置,被配置为根据ecu间的通信矩阵,控制需要接收该第一ecu的第一报文一个或多个第二ecu执行以下操作:接收加密的该第一报文,通过该根密钥解密该第一报文,以及获取并存储该第一ecu的发送密钥,以作为该一个或多个第二ecu用于解密来自第一ecu的第二报文的接收密钥。

在本公开的第三方面中,提供了一种电子设备,其包括一个或多个处理器以及存储装置,存储装置用于存储一个或多个程序。一个或多个程序当被一个或多个处理器执行,使得电子设备实现根据本公开的实施例的方法或过程。

在本公开的第四方面中,提供了一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现根据本公开的实施例的方法或过程。

在本公开的第五方面中,提供了一种车辆,其包括根据本公开的实施例的电子设备。

应当理解,本发明内容部分中所描述的内容并非旨在限定本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的描述而变得容易理解。

附图说明

结合附图并参考以下详细说明,本公开各实施例的上述和其它特征、优点及方面将变得更加明显。在附图中,相同或相似的附图标记表示相同或相似的元素,其中:

图1示出了本公开的实施例能够实现在其中的示例环境的示意图;

图2示出了根据本公开的实施例的用于控制在车辆中ecu间通信的方法的流程图;

图3示出了根据本公开的实施例的在通信阶段用于控制在车辆中ecu间通信的方法的流程图;

图4示出了根据本公开的实施例的用于在ecu之间认证的方法的流程图;

图5示出了根据本公开的实施例的新ecu与其它ecu间通信的方法的流程图;

图6示出了根据本公开的另一实施例的用于控制在车辆中ecu间通信的装置的框图;以及

图7示出了能够实施本公开的多个实施例的电子设备的框图。

具体实施方式

下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。

在本公开的实施例的描述中,术语“包括”及其类似用语应当理解为开放性包含,即“包括但不限于”。术语“基于”应当理解为“至少部分地基于”。术语“一个实施例”或“该实施例”应当理解为“至少一个实施例”。下文还可能包括其它明确的和隐含的定义。

如背景技术所述,通常在基于can的车辆网络中以明文报文方式在ecu之间进行通信。由于明文报文易被截获和篡改,因此存在严重的安全隐患。特别是,对于控制诸如引擎、油门、刹车等功能的有关行车安全的ecu,其控制信息的安全级别更高。因此,需要为ecu间的通信提供加密的报文传输。

在考虑加密报文传输的技术方案时,一种简单的加密方式是通过静态配置加密密钥来加密ecu的can报文。例如由厂商唯一地位每台车辆配置唯一的密钥,则车辆中的ecu使用相同的加密密钥来加密can报文,并且亦通过该密钥来解密接收到的can报文。这种方法的优点是,密钥配置过程相对简单,但缺点也是明显的:一旦该预先配置的密钥泄露或者被破解,则ecu之间的通信数据将会全部暴露于攻击者。

本公开的发明人已经注意到,在can网络中使用密文在不同的ecu之间通信,则使得ecu之间使用不同的加密密钥/解密密钥就显得尤为重要。

本公开的实施例提出了一种控制在车辆中ecu间通信的技术方案。根据本公开的一个或多个实施例,通过向车辆中的每个ecu配置相应的软件模块,来实现ecu之间通过can总线通信的数据加密。在配置阶段,根据通信矩阵,通过can报文交换为每个ecu配置发送密钥以及所需的接收密钥,并存储在ecu的硬件安全模块中。在加密通信状态下,ecu使用发送密钥来加密广播的can报文,并且使用相应的接收密钥来解密从其它ecu接收到的can报文。通过本公开的方案,可以为每个ecu灵活方便的配置独立的加密密钥,由此能够提高车载通信系统的安全等级,防范对安全系统的破解和攻击。在密钥配置过程亦采用加密方式,这进一步加强了安全性。而且,根据本公开的一个或多个实施例无需修改ecu硬件,仅通过添加软件模块就可以实现自动化配置密钥,且不受各个厂商自定义ecu能力和通信关系的影响,因此简单易行,具有通用性。以下将参考附图1-7详细描述本公开的一些示例实施例。

图1示出了本公开的实施例能够实现在其中的示例环境100的示意图。示例环境100例如可以是车辆的控制局域网系统,能够实施车辆中ecu之间的加密通信。如所示出的,示例环境100例如是车辆中的电子控制系统。多个ecu例如,ecu110-ecu150通过控制局域网(can)总线彼此可通信地连接。ecu110-150中的每个ecu至少包括加密管理模块(111、121、131、141、151)、硬件安全模块(hsm)(112、122、132、142、152)以及通信单元(113、123、133、143、153)。

下面以ecu110为例简要说明每个ecu与其它ecu的通信过程。可以理解,其它任何ecu可以采用类似的通信过程。

ecu110可以利用通信单元113经由can总线与其它适当ecu(例如,ecu130、140)进行通信。需要接收ecu110发送的数据信息/控制信息的ecu可以通过ecu的通信矩阵进行定义。厂商可以根据车辆设计需求来定义ecu之间的通信矩阵,其中至少限定了ecu之间发送和接收数据的通信关系。对于ecu110,在通信矩阵中可能已经定义ecu130和ecu140需要接收来自ecu110的报文。在一个示例中,ecu110可以向can总线广播具有特定标识(id)的can报文。ecu130和ecu140可以根据通信矩阵和can报文的id选择性接收来自ecu110的can报文,而其它ecu120、150则可以选择不接收(丢弃)具有该id的can报文,不做处理。ecu110可以使用一个或多个can报文id。每个id可以对应于特定的功能性或者特定的数据内容。而作为接收方,ecu110也可以根据通信矩阵来监视来一个或多个id的can报文。

ecu110具有硬件安全模块112。硬件安全模块112可以用于产生ecu110的发送密钥,用来加密ecu110广播发送的can报文。这里为了将发送ecu数据信息/控制信息的can报文和下文将要讨论的用于分发、部署密钥信息的can报文相区别,将后者称为“第一报文”,而前者称为“第二报文”。硬件安全模块112中具有密钥存储器,因此该硬件安全模块112可以用于生成和/或存储ecu110所需的各种密钥信息。

ecu110的加密管理模块113被用于执行根据本公开各种实施例的处理流程。加密管理模块113可以被实现为相应的软件模块,用于控制ecu110在密钥的分发、配置阶段以及后续的正常通信阶段执行相应地处理。需要指出的是,虽然在图1中各个ecu的加密管理模块被示出为分布在每个ecu上,但是本领域技术人员应该理解,图1中所示出的各个ecu加密管理模块仅是逻辑划分,而不应被理解为是软件模块的唯一分布形式。实际上,在一种可选实现方式(未示出)中,一部分加密管理模块的功能可以被多个ecu共享,即集中的布置加密管理模块的大部分功能,而尽在每个ecu上保留简单的软件接口,由此可以通过集中控制的方式来实现加密管理模块。在加密管理模块的控制下,ecu之间可以进行根据本公开各个实施例的通信。

以下参考图2-图7详细描述根据本公开的用于ecu间进行通信的一些示例性实施例。

图2示出了根据本公开的实施例的控制在车辆中电子控制单元间通信的方法200的流程图。为了便于清楚说明,以下参考图1的环境100来描述本公开的实施例。然而,应当理解,图1中所示出的环境100仅仅是本公开的实施例的一个示例环境,而不用于限制本公开的实施例的范围。

在框210,诸如图1的ecu110的第一ecu发送包括第一ecu的发送密钥的第一报文,并且该第一报文已经被预先配置的根密钥所加密。

根据本公开的一个实施例,第一ecu以在can总线上广播包括第一ecu的发送密钥的第一报文。因此,第一报文的发送方式可以与常规的ecu的can报文发送类似地处理,而不必为密钥配置过程设置单独的通信规则。

根据本公开的一个实施例,诸如图1中ecu110、120、130、140的ecu已经被预先配置有根密钥,以便对ecu之间用于交换密钥的第一报文进行加密,由此提高整个加密方案的安全性。在一个实现中,该跟密钥可以由汽车厂商在例如车辆生产阶段为车辆唯一配置的。例如,厂商可以依据每台车的车辆标识码(vin)而为每台车辆唯一配置根密钥。可以将根密钥存储在车辆中每个ecu的存储器中。

如参照图1所述,根据本公开的一个或多个实施例,每个ecu具有硬件安全模块。在一个实施例中,可以控制ecu利用本地硬件安全模块来产生并存储该ecu的发送密钥。由此,在车辆的各个ecu中,所产生并存储的发送密钥均可以不相同。需要在ecu之间配置密钥信息,以使得接收方ecu能够知晓并存储发送方的ecu的发送密钥,以作为接收方ecu的接收密钥。在一个实施例中,各个ecu的发送密钥可以是生成的随机数。

在框220中,根据ecu间的通信矩阵,诸如图1中ecu130和ecu140的一个或多个第二ecu接收(221)加密的该第一报文,通过该根密钥解密(222)第一报文,并且获取(223)并存储第一ecu的发送密钥,以作为该一个或多个第二ecu用于解密来自第一ecu的第二报文的接收密钥。

如上文所述,由于第一报文可以can报文广播的方式经由can总线递送,诸如ecu120、130、140的其它ecu可以根据通信矩阵的规定,选择性地接收该第一报文。

通信矩阵通常由车辆厂商定义,其中至少定义了第一ecu与一个或多个第二ecu之间的通信关系。在一些示例中,还定义了其它具体参数,例如通信标识符、通信周期等。根据通信矩阵可以知晓如何配置ecu之间的密钥信息。假设,根据通信矩阵,ecu130和140需要接收来自ecu110的can报文,而ecu120不需要接收来自ecu110的can报文,则对于ecu110发送的包括发送密钥的第一报文,ecu130、140作为第二ecu选择性地接收,并执行框220中相关操作。由此,ecu130、140已经具有ecu110的发送密钥。

本领域技术人员可以理解,任何一个ecu可能作为发送第一报文的第一ecu,同时该ecu也有可能作为接收来自其它ecu的第一报文的第二ecu。因此,一个具体ecu既可能作为在本公开中所描述的“第一ecu”,也可能作为“第二ecu”。

图3示出了根据本公开的实施例的在通信阶段用于控制在车辆中ecu间通信的方法300的流程图。应当理解,在根据图2所示流程图为各个ecu配置了发送密钥/接收密钥之后,ecu可以利用所配置的密钥进行后续的报文通信。

在框310中,诸如图1的ecu110的第一ecu发送用于通信的第二报文。第二报文包括该第一ecu的数据信息/控制信息,并且第二报文是被第一ecu的发送密钥加密。

在框320中,根据通信矩阵,诸如图1的ecu130和140的一个或多个第二ecu接收(321)该第二报文,使用参照图2所描述的方法所配置的接收密钥来解密(322)该第二报文,由此获取(323)第一ecu的数据信息/控制信息。

在一些实施例中,还可以在进行图3所示的实际通信阶段的方法之前,在ecu之间进行认证。通过认证过程,ecu之间可以确认彼此交换密钥信息的有效性,由此进一步确保之后实际通信阶段的正常进行。例如,ecu110的加密管理模块111和ecu130、140的加密管理模块131、141可以具有认证功能,来控制该第一ecu与该一个或多个第二ecu之间进行密钥认证,以确定该一个或多个第二ecu所获得并存储的该接收密钥能够成功解密来自该第一ecu的、利用该第一ecu的该发送密钥加密的认证报文。

图4示出了根据本公开的一个实施例的用于在ecu之间认证的方法400的流程图。

如图4所示,在框410中,需要被认证的第二ecu(例如,ecu130和140)可以向第一ecu发送认证请求。认证请求中包含有由该第二ecu指定的内容信息。

在框420中,响应于接收第二ecu的认证请求,第一ecu可以将认证请求中指定的内容信息作为认证报文的内容信息,利用其发送密钥对认证报文进行加密,并且通过can总线发送该认证报文。

在框430,响应于接收到第一ecu的认证报文,第二ecu可以利用其接收密钥解密认证报文,并且获得报文中的内容信息。

在框440,第二ecu可以比较从认证报文中获得内容信息与其之前指定的内容信息。如果二者比较结果一致,则在框450,第二ecu判断密钥配置成功,通过认证,并且向第一ecu发送表明认证通过的响应。在这种情况下,第一ecu和第二ecu可以进入实际的通信阶段,例如执行诸如图3所示的方法流程300,以便第一ecu和第二ecu之间通过加密方式通信第二报文。

如果二者比较结果不一致,则在框460,第二ecu判断密钥配置失败,未通过认证。此时,第二ecu需要向第一ecu发送表明认证失败的响应。在这种情况下,可以对ecu的密钥信息重新进行配置,例如可以重新启动诸如图2所示的方法流程200,以便第一ecu和第二ecu之间以加密方式配置密钥信息。

本领域的技术人员应该理解,图4所示的仅为一种可行的认证过程。实际上,本领域的技术人员可以采用任何适当的通信流程来实现第一ecu和第二ecu之间的认证。只要在进入实际通信过程之前,能够确认第二ecu已经具有针对第一ecu的有效的接收密钥,并且能够成功解密来自第一ecu的加密报文,就有助于保证实际通信过程的执行。由于有些ecu之间实际通信的信息是关键性且不可丢失的,因此附加的认证过程将是有利的。根据本公开的一些实施例,可以为部分关键ecu使用认证过程,而对于其它ecu不使用认证过程,以节约控制局域网的通信资源和处理的复杂度。

考虑这样一种情形,车辆的某个ecu发生故障或者损坏,或者出于其它原因,新的ecu需要被添加到车辆控制系统中。此时,需要为该ecu配置密钥信息,以使得其能够进行后续的加密通信。

图5示出了根据本公开的实施例的新ecu与其它ecu间通信的方法500的流程图。

如图5所示,在框510中,新的ecu发送包括新的ecu的发送密钥的第一报文,并且类似地,该第一报文被预先配置的根密钥所加密。

在框520中,根据通信矩阵,新的ecu作为接收方将会选择性地接收(521)来自其所需的其它ecu的第一报文,该第一报文中包括其它ecu的发送密钥。新的ecu利用预先配置的根密钥对接收到的第一报文进行解密(522),获取并存储(523)其它ecu的发送密钥,以作为新的ecu用来解密来自其它ecu的第二报文的接收密钥。类似地,第二报文是指,当进入通信阶段,其它ecu所发送包括该ecu数据信息/控制信息的can报文。

图6示出了根据本公开的另一实施例的用于控制在车辆中ecu间通信的装置的框图600。

如图6所示,装置600包括第一控制装置610和第二控制装置620。第一控制装置610被配置为控制第一ecu发送包括该第一ecu的发送密钥的第一报文。该第一报文被预先配置的根密钥所加密。第二控制装置620被配置为根据ecu间的通信矩阵,控制需要接收该第一ecu的第一报文一个或多个第二ecu执行以下步骤:接收加密的该第一报文,通过该根密钥解密该第一报文,以及获取并存储该第一ecu的发送密钥,以作为该一个或多个第二ecu用于解密来自第一ecu的第二报文的接收密钥。

根据本公开的一个或多个实施例,根密钥被预先配置到该第一ecu以及该一个或多个第二ecu。在一些实施例中,根密钥是由汽车厂商根据车辆标示符而配置的。

根据本公开的一个或多个实施例,装置600还可以包括认证装置。该认证装置被配置为控制第一ecu与一个或多个第二ecu之间进行密钥认证,以确定一个或多个第二ecu所获得并存储的接收密钥能够成功解密来自第一ecu的、利用该第一ecu的该发送密钥加密的认证报文。

根据本公开的一个或多个实施例,装置600还可以包括第三控制装置和第四控制装置。第三控制装置被配置为控制第一ecu发送该第二报文。该第二报文载有该第一ecu的数据,并且该第二报文被该发送密钥加密。第四控制装置,被配置为根据该通信矩阵,控制该一个或多个第二ecu执行以下步骤:接收该第二报文,通过该接收密钥来解密该第二报文,并且获取该第一ecu的该数据。

根据本公开的一个或多个实施例,装置600还可以包括发送密钥产生装置。该发送密钥产生装置被配置为控制该第一ecu利用本地硬件安全模块来产生并存储该发送密钥。根据一个或多个实施方式,该发送密钥是随机数。

根据本公开的一个或多个实施例,装置600还可以包括更新装置。该更新装置被配置为响应于确定存在新ecu,控制该新ecu发送包括该新ecu的发送密钥的第一报文,并且该第一报文被预先配置的根密钥所加密,以及根据该通信矩阵。该更新装置还被配置为控制该新ecu:接收来自其它ecu的包括其它ecu的发送密钥的第一报文,利用该根密钥对接收的第一报文进行解密;获取并存储该其它ecu的该发送密钥,以作为该新ecu用于解密来自其它ecu的第二报文的接收密钥。

根据本公开的一个或多个实施例,ecu间的通信矩阵中至少定义了该车辆中该第一ecu与该一个或多个第二ecu之间的通信关系。

参照图1的描述可以理解,装置600所包括的各种装置,即第一控制装置610和第二控制装置620,以及其它未示出的可选装置的功能可以对应于或者部分地对应于参照图1所描述对应于各个ecu的加密管理模块(111、121、131、141、151)。在一些具体实现上,第一控制模块610可以全部或者部分地被设置在相应的第一ecu上,第二控制模块620可以全部或者部分地被设置在相应的第二ecu上。在另一些具体实现上,第一控制模块610和第二控制模块620也可以被全部或者部分地集中布置。例如被布置为独立的控制模块等。类似地,上述已经描述的、但图6中未示出的其它可选装置也可以全部或者部分地分布于适当的ecu单元中或者集中的布置。这些实施例和实现方式都没有脱离本公开的构思,并且属于本公开的范围。

图7示出了可以用来实施本公开的实施例的示例设备700的示意性框图。应当理解,设备700可以用于实现本公开所描述的装置600。如图所示,设备700包括中央处理单元(cpu)701,其可以根据存储在只读存储器(rom)702中的计算机程序指令或者从存储单元708加载到随机访问存储器(ram)703中的计算机程序指令,来执行各种适当的动作和处理。在ram703中,还可存储设备700操作所需的各种程序和数据。cpu701、rom702以及ram703通过总线704彼此相连。输入/输出(i/o)接口705也连接至总线704。

设备700中的多个部件连接至i/o接口705,包括:输入单元706,例如键盘、鼠标等;输出单元707,例如各种类型的显示器、扬声器等;存储单元708,例如磁盘、光盘等;以及通信单元709,例如网卡、调制解调器、无线通信收发机等。通信单元709允许设备700通过诸如因特网的计算机网络和/或各种电信网络与其它设备交换信息/数据。

处理单元701执行上文所描述的各个方法和过程,例如方法200、300、400和500。例如,在一些实施例中,方法200、300、400、500可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元708。在一些实施例中,计算机程序的部分或者全部可以经由rom702和/或通信单元709而被载入和/或安装到设备700上。当计算机程序加载到ram703并由cpu701执行时,可以执行上文描述的方法200、300、400和500的一个或多个动作或步骤。备选地,在其它实施例中,cpu701可以通过其它任何适当的方式(例如,借助于固件)而被配置为执行方法。

通过根据本公开的各种实施例可以灵活方便地配置加密密钥,由此能够提高车载通信系统的安全等级,防范对安全系统的破解和攻击。进一步地,根据本公开的各种实施例无需修改车辆厂商个性定义的通信矩阵,仅通过添加诸如软件等功能模块就可以自动化配置ecu的密钥。在优选地,且每辆车的根密钥和通信密钥都不相同,且不受各个厂商自定义ecu能力和通信关系的影响,因此简单易行,具有通用性。此外,在密钥配置过程亦采用加密方式,这进一步加强了安全性。

本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、负载可编程逻辑设备(cpld),等等。

用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。

在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。

此外,虽然采用特定次序描绘了各动作或步骤,但是这应当理解为要求这样动作或步骤以所示出的特定次序或以顺序次序执行,或者要求所有图示的动作或步骤应被执行以取得期望的结果。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实现中。相反地,在单个实现的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实现中。

尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本公开的实施例,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。

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