不正常应对方法、车载网络系统及电子控制单元与流程

文档序号:19729538发布日期:2020-01-18 03:47阅读:160来源:国知局
不正常应对方法、车载网络系统及电子控制单元与流程

本申请是申请日为2015年4月21日、申请号为201580002183.3、发明名称为“车载网络系统、不正常检测电子控制单元以及不正常应对方法”的中国专利申请的分案申请。

本公开涉及检测在电子控制单元进行通信的车载网络中发送的不正常(fraud,非法)帧并进行应对的技术。



背景技术:

近年来,在汽车中的系统内,配置有许多称为电子控制单元(ecu:electroniccontrolunit)的装置。连接这些ecu的网络称为车载网络。车载网络存在多种标准。作为其中最主流的车载网络之一,存在由iso11898-1规定的can(controllerareanetwork:控制器局域网络)这一标准(参照“非专利文献1”)。

在can中,通信路径由两条总线构成,与总线连接的ecu称为节点。与总线连接的各节点收发被称为帧的消息。发送帧的发送节点通过在两条总线上施加电压,并在总线间产生电位差,从而发送被称为隐性(recessive)的“1”的值和被称为显性(dominant)的“0”的值。多个发送节点在完全相同的定时发送了隐性和显性的情况下,优先发送显性。接收节点在接收到的帧的格式存在异常的情况下,发送被称为错误帧(errorframe)的帧。错误帧是通过连续地发送6比特(bit)的显性,从而向发送节点和/或其他接收节点通知帧的异常的帧。

另外,在can中不存在指示发送目的地或发送源的识别符,发送节点在每帧中附加被称为消息id的id并进行发送(也即是,向总线送出信号),各接收节点仅接收预先确定的消息id(也即是,从总线读取信号)。另外,采用csma/ca(carriersensemultipleaccess/collisionavoidance:载波侦听多址访问/冲突避免)方式,在多个节点的同时发送时,进行利用消息id的仲裁(调停),优先发送消息id的值小的帧。

此外,在车载网络中,存在因不正常节点与总线连接且不正常节点不正常地发送帧,从而导致不正常地控制车体的可能性。为了防止这样的不正常帧的发送所导致的控制,一般已知有如下技术:在can的数据域(datafield,数据段)中附加消息认证码(mac:messageauthenticationcode)并进行发送(参照“专利文献1”)。

在先技术文献

专利文献

专利文献1:日本特开2013-98719号公报

非专利文献

非专利文献1:canspecification2.0parta,[online],caninautomation(cia),[2014年11月14日检索],互联网(url:http://www.can-cia.org/fileadmin/cia/specifications/can20a.pdf)

非专利文献2:rfc2104hmac:keyed-hashingformessageauthentication



技术实现要素:

发明要解决的问题

然而,由于能够保存在can的数据域中的mac的数据长度不能说足够长,所以会担心与总线连接的不正常节点对mac的暴力攻击等。

因此,本公开提供一种用于提高对于对mac的暴力攻击的抗攻击性,并适当地应对不正常帧的发送的车载网络系统。另外,本公开提供一种为了在该车载网络系统中检测不正常帧的发送而使用的不正常检测电子控制单元(不正常检测ecu)以及用于适当地应对不正常帧的发送的不正常应对方法。

用于解决问题的技术方案

为了解决上述技术问题,本公开的一个技术方案涉及的不正常应对方法是在具备多个电子控制单元的车载网络系统中使用的方法,所述多个电子控制单元遵循can协议即控制器局域网协议经由总线进行附加有消息认证码即mac的数据帧的授受,所述不正常应对方法包括:接收步骤,接收在所述总线上发送的数据帧;验证步骤,利用数据生成消息认证码,对在通过所述接收步骤接收到的数据帧中附加有该消息认证码这一情况进行验证;以及更新处理步骤,在所述验证步骤中的验证失败了的情况下,进行关于消息认证码的生成所利用的数据的更新处理。

另外,为了解决上述技术问题,本公开的一个技术方案涉及的车载网络系统是具备多个电子控制单元的车载网络系统,所述多个电子控制单元遵循can协议即控制器局域网协议经由总线进行附加有消息认证码即mac的数据帧的授受,所述车载网络系统具备:第一电子控制单元,其具有保持消息认证码的生成所利用的mac密钥的mac密钥保持部,使用该mac密钥来生成消息认证码,附加于数据帧并发送;和第二电子控制单元,其具备保持消息认证码的生成所利用的mac密钥的mac密钥保持部,使用该mac密钥来生成消息认证码,接收数据帧并对在该数据帧中附加有该消息认证码这一情况进行验证,所述第一电子控制单元和所述第二电子控制单元分别还具有mac密钥更新部,该mac密钥更新部在所述第二电子控制单元中的所述验证失败了的情况下,对本单元具有的所述mac密钥保持部所保持的mac密钥进行更新。

另外,为了解决上述技术问题,本公开的一个技术方案涉及的不正常检测电子控制单元,与遵循can协议即控制器局域网协议进行通信的多个电子控制单元在通信中所使用的总线连接,所述不正常检测电子控制单元具备:帧收发部,其用于从所述总线接收帧并向所述总线发送帧;和不正常mac检测部,其对在由所述帧收发部接收到的帧中附加有消息认证码即mac这一情况进行验证,所述帧收发部在由所述不正常mac检测部进行的所述验证失败了的情况下,发送mac密钥更新请求帧,该mac密钥更新请求帧表示消息认证码的生成所利用的mac密钥的更新请求。

发明的效果

根据本公开,能够提高对于对mac的暴力攻击的抗攻击性,适当地应对不正常帧的发送。

附图说明

图1是表示实施方式1涉及的车载网络系统的整体构成的图。

图2是表示由can协议规定的数据帧的格式的图。

图3是表示由can协议规定的错误帧的格式的图。

图4是头单元的构成图。

图5是示出了接收id列表的一例的图。

图6是网关的构成图。

图7是示出了传送规则的一例的图。

图8是实施方式1涉及的ecu的构成图。

图9是示出了接收id列表的一例的图。

图10是表示从与发动机连接的ecu发送的帧的id以及数据域的一例的图。

图11是表示从与制动器连接的ecu发送的帧的id以及数据域的一例的图。

图12是表示从与门开关传感器连接的ecu发送的帧的id以及数据域的一例的图。

图13是表示从与窗开关传感器连接的ecu发送的帧的id以及数据域的一例的图。

图14是实施方式1涉及的不正常检测ecu的构成图。

图15是示出了不正常检测ecu所保持的正规id列表的一例的图。

图16是示出了不正常检测ecu所保持的正规id列表的一例的图。

图17是表示各个消息id的不正常检测计数器的状态的一例的图。

图18是表示实施方式1中的与不正常帧的检测以及执行阻止相关的工作例的时序图。

图19是表示实施方式2涉及的车载网络系统的整体构成的图。

图20是实施方式2涉及的不正常检测ecu的构成图。

图21是示出了不正常检测ecu所保持的数据范围列表的一例的图。

图22是表示实施方式2中的与不正常帧的检测以及执行阻止相关的工作例的时序图(后接图23)。

图23是表示实施方式2中的与不正常帧的检测以及执行阻止相关的工作例的时序图(前接图22)。

图24是表示实施方式3涉及的车载网络系统的整体构成的图。

图25是实施方式3涉及的ecu的构成图。

图26是表示从与发动机连接的ecu发送的数据帧的id以及数据域的一例的图。

图27是表示从与制动器连接的ecu发送的数据帧的id以及数据域的一例的图。

图28是表示从与门开关传感器连接的ecu发送的数据帧的id以及数据域的一例的图。

图29是表示从与窗开关传感器连接的ecu发送的数据帧的id以及数据域的一例的图。

图30是实施方式3涉及的不正常检测ecu的构成图。

图31是表示实施方式3涉及的计数器保持部所保持的各个消息id的计数器值的一例的图。

图32是表示实施方式3中的与不正常帧的检测以及执行阻止相关的工作例的时序图(后接图33)。

图33是表示实施方式3中的与不正常帧的检测以及执行阻止相关的工作例的时序图(前接图32)。

图34是表示实施方式4涉及的车载网络系统的整体构成的图。

图35是实施方式4涉及的ecu的构成图。

图36是实施方式4涉及的不正常检测ecu的构成图。

图37是表示实施方式4涉及的接收id列表的一例的图。

图38是表示实施方式4涉及的更新帧的一例的图。

图39是表示实施方式4涉及的密钥表的一例的图。

图40是表示实施方式4涉及的计数器表的一例的图。

图41是表示实施方式4涉及的保护条件表的一例的图。

图42是表示实施方式4涉及的不正常id列表的一例的图。

图43是表示实施方式4中的不正常帧的检测、mac密钥的更新以及计数器值的复位等的工作例的时序图(后接图44)。

图44是表示实施方式4中的不正常帧的检测、mac密钥的更新以及计数器值的复位等的工作例的时序图(后接图45)。

图45是表示实施方式4中的不正常帧的检测、mac密钥的更新以及计数器值的复位等的工作例的时序图(前接图44)。

图46是表示实施方式4中的保护行为处理的流程图。

附图标记说明

10、11、12、13车载网络系统

100a、100b、2100a、2100b、3100a、3100b、4100a、4100b不正常检测电子控制单元(不正常检测ecu)

110不正常检测计数器保持部

120正规id列表保持部

130、2130不正常帧检测部

140、230、320、420、3420帧生成部

150、260、350、450、2150、3150、4151帧解析部

160、270、360、460帧收发部

200头单元

210显示控制部

220、410帧处理部

240、330、430接收id判断部

250、340、440接收id列表保持部

300网关

310传送处理部

370传送规则保持部

400a~400d、3400a~3400d、4400a~4400d电子控制单元(ecu)

401发动机

402制动器

403门开关传感器

404窗开关传感器

470数据取得部

500a~500c总线

2120数据范围列表保持部

3130、4131不正常mac检测部

3170、3410mac生成部

3180、3430、4180、4430mac密钥保持部

3190、3440计数器保持部

4110、4410mac密钥更新部

4120、4420计数器复位部

4130保护处理部

4140保护条件保持部

4150不正常id列表保持部

4160不正常日志保持部

4170模式变更处理部

具体实施方式

本公开的一个技术方案涉及的不正常应对方法,是在具备多个电子控制单元的车载网络系统中使用的方法,所述多个电子控制单元遵循can协议即控制器局域网协议经由总线进行附加有消息认证码即mac的数据帧的授受,所述不正常应对方法包括:接收步骤,接收在所述总线上发送的数据帧;验证步骤,利用数据生成消息认证码,对在通过所述接收步骤接收到的数据帧中附加有该消息认证码这一情况进行验证;以及更新处理步骤,在所述验证步骤中的验证失败了的情况下,进行关于消息认证码的生成所利用的数据的更新处理。由此,在数据帧的发送时赋予mac的情况下或者在接收数据帧并验证mac的情况下更新mac的生成所使用的数据(例如mac密钥(key)等),因此能够提高对于因发送不正常帧的不正常ecu而引起的对mac的暴力攻击的车载网络系统的抗攻击性。

另外,所述不正常应对方法还可以包括如下的应对步骤:在所述验证步骤中的验证失败了的情况下,经由所述总线发送mac密钥更新请求帧,该mac密钥更新请求帧表示作为消息认证码的生成所利用的数据的mac密钥的更新请求,在所述更新处理步骤中,在所述mac密钥更新请求帧已被发送的情况下,可以通过更新mac密钥来进行所述更新处理。由此,例如在存在来自不正常的ecu的攻击的可能性等情况下,在与总线连接的各ecu中同步地更新mac密钥成为可能,能够加大mac的不正常解读的难度。

另外,所述消息认证码可以反映计数器的值而生成,所述计数器对附加有消息认证码的数据帧被发送的次数进行计数,所述不正常应对方法还可以包括如下的应对步骤:在所述验证步骤中的验证失败了的情况下,经由所述总线发送计数器复位请求帧,该计数器复位请求帧表示作为消息认证码的生成所利用的数据的计数器的复位请求,在所述更新处理步骤中,在所述计数器复位请求帧已被发送的情况下,可以通过对计数器进行复位来进行所述更新处理。由此,例如在存在来自不正常ecu的攻击的可能性等情况下,在与总线连接的各ecu中同步地复位计数器成为可能,能够加大mac的不正常解读的困难。

另外,所述车载网络系统可以具备多条总线,所述多条总线分别属于多个种类的组中的任一组,所述不正常应对方法还可以包括如下的应对步骤:在所述验证步骤中的验证失败了的情况下,所述电子控制单元执行与所述多条总线中的连接有本单元的总线所属的组相关联而预先确定的处理。由此,在发送了不正常数据帧等情况下,能够进行按ecu的组而预先确定的应对。

另外,所述不正常应对方法还可以包括如下的应对步骤:在关于包含预定消息id的数据帧的、所述验证步骤中的验证失败的次数超过了预定阈值的情况下,执行与该预定消息id预先关联的处理。由此,能够在mac的验证失败了一定次数以上时进行预先确定的应对。

另外,在所述应对步骤中执行的所述处理,可以是用于对搭载所述车载网络系统的车辆的功能施加一定的抑制而使其成为预先确定的特定状态的控制。由此,在检测到一定次数以上的不正常的情况下进行使车辆的状态成为预先确定的状态的控制,例如能够抑制因不正常ecu引起的恶劣影响。

另外,所述不正常应对方法还可以包括如下的不正常id应对处理步骤:在所述总线上已开始发送的数据帧的消息id与预定的不正常id列表所示出的一个以上的消息id的任一个相同的情况下,在该数据帧的尾端被发送之前发送错误帧,在所述应对步骤中执行的所述处理,可以是向所述不正常id列表追加所述预定消息id。由此,在mac的验证失败了一定次数以上的情况下即使再次进行相同消息id的不正常帧的发送也会由错误帧覆盖该内容,由此能够抑制因不正常帧引起的不良影响。

另外,在所述应对步骤中执行的所述处理,可以是向记录介质记录表示所述预定消息id的日志信息。由此,例如能够保存不正常攻击的证据等。

另外,在所述消息认证码的生成中可以利用计数器的值以及mac密钥,所述计数器对附加有消息认证码的数据帧被发送的次数进行计数,所述不正常应对方法还可以包括如下的应对步骤:在使用了利用mac密钥生成的消息认证码的所述验证步骤中的验证失败了的情况下,在使用利用该mac密钥更新前的mac密钥而生成的消息认证码再次进行的验证成功时,经由所述总线发送密钥更新帧,该密钥更新帧表示mac密钥的更新请求,在所述更新处理步骤中,在所述密钥更新帧已被发送的情况下可以通过更新mac密钥来进行所述更新处理。由此,例如能够省略计数器值的复位。

另外,在所述消息认证码的生成中可以利用计数器的值以及mac密钥,所述计数器对附加有消息认证码的数据帧被发送的次数进行计数,所述不正常应对方法还可以包括如下的应对步骤:在使用了利用mac密钥生成的消息认证码的所述验证步骤中的验证失败了的情况下,在使用利用该mac密钥更新前的mac密钥而生成的消息认证码再次进行的验证也失败时,经由所述总线发送计数器复位帧,该计数器复位帧表示消息认证码的生成所利用的计数器的复位请求,在所述更新处理步骤中,在所述计数器复位帧已被发送的情况下可以通过对计数器进行复位来进行所述更新处理。由此,在需要计数器值的复位的状况下能够进行计数器值的复位。

另外,本公开的一个技术方案涉及的车载网络系统,具备多个电子控制单元,该多个电子控制单元遵循can协议即控制器局域网协议经由总线进行附加有消息认证码即mac的数据帧的授受,所述车载网络系统具备:第一电子控制单元,其具有保持消息认证码的生成所利用的mac密钥的mac密钥保持部,使用该mac密钥生成消息认证码,附加于数据帧并发送;和第二电子控制单元,其具备保持消息认证码的生成所利用的mac密钥的mac密钥保持部,使用该mac密钥生成消息认证码,接收数据帧并对在该数据帧中附加有该消息认证码这一情况进行验证,所述第一电子控制单元和所述第二电子控制单元分别还具有mac密钥更新部,该mac密钥更新部在所述第二电子控制单元的所述验证失败了的情况下,对本单元具有的所述mac密钥保持部所保持的mac密钥进行更新。由此,因为更新了mac密钥,所以在车载网络系统中能够提高对于因发送不正常帧的不正常ecu而引起的对mac的暴力攻击的抗攻击性。

另外,本公开的一个技术方案涉及的不正常检测电子控制单元(不正常检测ecu),与遵循can协议即控制器局域网协议进行通信的多个电子控制单元在通信中所使用的总线连接,所述不正常检测电子控制单元具备:帧收发部,其用于从所述总线接收帧并向所述总线发送帧;和不正常mac检测部,其对在由所述帧收发部接收到的帧中附加有消息认证码即mac这一情况进行验证,所述帧收发部在由所述不正常mac检测部进行的所述验证失败了的情况下,发送mac密钥更新请求帧,该mac密钥更新请求帧表示消息认证码的生成所利用的mac密钥的更新请求。由此,与总线连接的ecu接收mac密钥更新请求帧,由此能够同步地进行mac密钥的更新。

此外,这些总括性或具体的技术方案既可以通过系统、方法、集成电路、计算机程序或者计算机可读取的cd-rom等记录介质来实现,也可以通过系统、方法、集成电路、计算机程序和记录介质的任意组合来实现。

以下,参照附图对实施方式涉及的包含不正常检测ecu的车载网络系统进行说明。在此所示的实施方式均表示本公开的一个具体例子。因此,以下的实施方式中示出的数值、构成要素、构成要素的配置以及连接方式、步骤(工序)以及步骤的顺序等是一个例子,并不是限定本公开。关于以下的实施方式中的构成要素中的未记载在独立权利要求中的构成要素,是能够任意附加的构成要素。另外,各图是示意图,不一定是严格图示。

(实施方式1)

以下,作为本公开的实施方式,使用附图对包含不正常检测ecu的车载网络系统10进行说明,所述不正常检测ecu实现用于使用消息id来检测不正常帧并进行应对的不正常应对方法。

[1.1车载网络系统10的整体构成]

图1是表示实施方式1涉及的车载网络系统10的整体构成的图。车载网络系统10是遵循can协议进行通信的网络通信系统的一例,是搭载有控制装置、传感器等各种设备的汽车中的网络通信系统。车载网络系统10构成为包括:总线500a、500b、不正常检测ecu100a、100b、头单元200、网关300、以及与各种设备连接的ecu400a~400d等ecu这种连接于总线的各节点。此外,尽管在图1中进行了省略,但车载网络系统10除了ecu400a~400d以外还可以包括很多ecu,但在此为了方便而着眼于ecu400a~400d来进行说明。ecu例如是处理器(微处理器)、存储器等包括数字电路、模拟电路、通信线路等的装置。存储器是rom、ram等,能够存储由处理器执行的控制程序(计算机程序)。例如通过处理器按照控制程序(计算机程序)进行工作,由此ecu会实现各种功能。此外,计算机程序是为了实现预定的功能而组合多个表示对处理器的指令的命令代码而构成的。在此,以有可能会在总线500a、500b上连接有发送不正常帧的不正常ecu为前提来进行说明。

不正常检测ecu100a、100b分别连接于总线500a、总线500b,是具有判定由ecu400a~400d等发送的帧是否不正常,如果不正常则发送错误帧的功能的ecu。

ecu400a~400d与任一条总线连接,另外,ecu400a~400d分别连接于发动机401、制动器402、门开关传感器403、窗开关传感器404。ecu400a~400d分别取得所连接的设备(发动机401等)的状态,定期地向网络(即总线)发送表示状态的帧(后述的数据帧)等。

网关300与联接不正常检测ecu100a、ecu400a以及ecu400b的总线500a、联接不正常检测ecu100b、ecu400c以及ecu400d的总线500b、和联接头单元200的总线500c连接,具有将从各条总线接收到的帧传送给其他总线的功能。另外,也能够按连接的各总线间来切换是否传送所接收到的帧。网关300也是一种ecu。

头单元200具有接收帧的功能,具有接收从ecu400a~400d发送的帧,将各种状态显示于显示器(未图示),并提示给用户的功能。头单元200也是一种ecu。

在该车载网络系统10中,各ecu遵循can协议进行帧的授受。can协议的帧有数据帧、远程帧、过载帧以及错误帧。为了便于说明,首先以数据帧以及错误帧为中心来说明。

[1.2数据帧格式]

以下,对作为在遵循can协议的网络中使用的帧之一的数据帧进行说明。

图2是表示由can协议规定的数据帧的格式的图。该图示出了由can协议规定的标准id格式的数据帧。数据帧由sof(startofframe,帧起始)、id域、rtr(remotetransmissionrequest,远程发送请求)、ide(identifierextension,标识符扩展)、预约位“r”、dlc(datalengthcode,数据长度码)、数据域、crc(cyclicredundancycheck,循环冗余校验)序列、crc定界符“del”、ack(acknowledgement,应答)间隙(slot)、ack定界符“del”、以及eof(endofframe,帧结束)的各域构成。

sof由1比特的显性构成。总线空闲的状态成为隐性,通过由sof变更为显性,通知帧的发送开始。

id域是由11比特构成的保存表示数据种类的值即id(消息id)的域。在多个节点同时开始了发送的情况下,为了通过该id域进行通信仲裁,设计成使具有id小的值的帧具有高优先级。

rtr是用于识别数据帧和远程帧的值,在数据帧中由1比特的显性构成。

ide和“r”两方都由1比特的显性构成。

dlc由4比特构成,是表示数据域的长度的值。此外,将ide、“r”以及dlc一起称为控制域。

数据域是最大64由比特构成的表示要发送的数据的内容的值。能够按每8比特来调整长度。所发送的数据的规格不在can协议中规定,而在车载网络系统10中确定。因此,为取决于车型、制造者(制造商)等的规格。

crc序列由15比特构成。通过sof、id域、控制域以及数据域的发送值而算出。

crc定界符由1比特的隐性构成。是表示crc序列的结束的分隔符号。此外,将crc序列和crc定界符一起称为crc域。

ack间隙由1比特构成。发送节点将ack间隙设为隐性并进行发送。如果到crc序列为止能够正常接收,则接收节点将ack间隙设为显性并发送。由于显性比隐性优先,因此,如果在发送后ack间隙为显性,则发送节点能够确认某一个接收节点接收成功。

ack定界符由1比特的隐性构成,是表示ack的结束的分隔符号。

eof由7比特的隐性构成,表示数据帧的结束。

[1.3错误帧格式]

图3是表示由can协议规定的错误帧的格式的图。错误帧包括错误标志(初级)、错误标志(次级)和错误定界符。

错误标志(初级)为了向其他节点通知错误的产生而使用。检测到错误的节点为了向其他节点通知错误的产生而连续发送6比特的显性。该发送违反can协议的位填充(bitstuffing)规则(不连续发送6比特以上的相同值),引起来自其他节点的错误帧(次级)的发送。

错误标志(次级)由为了向其他节点通知错误的产生而使用的连续的6比特的显性构成。接收到错误标志(初级)而检测到违反了位填充规则的全部节点会发送错误标志(次级)。

错误定界符“del”是8比特的连续的隐性,表示错误帧的结束。

[1.4头单元200的构成]

头单元200例如设置于汽车的仪表板(instrumentpanel)等,是具备显示用于驾驶员视觉辨认的信息的液晶显示器(lcd:liquidcrystaldisplay)等显示装置、受理驾驶员的操作的输入单元等的一种ecu。

图4是头单元200的构成图。头单元200构成为包括帧收发部270、帧解析(解释)部260、接收id判断部240、接收id列表保持部250、帧处理部220、显示控制部210和帧生成部230。这些各构成要素是功能性的构成要素,该各功能通过头单元200中的通信线路、lcd、执行存储器所保存的控制程序的处理器或数字电路等实现。

帧收发部270相对于总线500c收发遵循can协议的帧。从总线500c逐比特地接收帧,并传送给帧解析部260。另外,将从帧生成部230收到通知的帧的内容逐比特地发送到总线500c。

帧解析部260从帧收发部270接收帧的值,并进行解析以使得向由can协议规定的帧格式的各域进行映射。帧解析部260将判断为id域的值传送给接收id判断部240。帧解析部260根据从接收id判断部240通知的判定结果,决定是将id域的值和id域之后出现的数据域传送给帧处理部220还是在收到该判定结果之后中止帧的接收(即中止作为该帧的解析)。另外,帧解析部260例如在crc的值不符或设为显性固定的项目却为隐性等判断为是未遵循can协议的帧的情况下,向帧生成部230进行通知,以使得发送错误帧。另外,帧解析部260在接收到错误帧的情况下,即在根据所接收到的帧的值而解析为成为错误帧的情况下,自此之后将该帧废弃,即中止帧的解析。例如在从数据帧的中途起解析为错误帧的情况下,中止该数据帧的解析,不会再根据该数据帧来进行特别的处理。

接收id判断部240接收从帧解析部260通知的id域的值,按照接收id列表保持部250保持的消息id的列表,进行是否接收该id域之后的帧的各域的判定。接收id判断部240将该判定结果通知给帧解析部260。

接收id列表保持部250保持头单元200接收到的id(消息id)的列表即接收id列表。图5是示出了接收id列表的一例的图。头单元200从与发动机401连接的ecu400a接收消息id为“1”的帧(消息),从与制动器402连接的ecu400b接收消息id为“2”的帧,从与门开关传感器403连接的ecu400c接收消息id为“3”的帧,从与窗开关传感器404连接的ecu400d接收消息id为“4”的帧。

帧处理部220基于所接收到的帧的内容(例如消息id以及数据域的内容),形成例如应显示于lcd的图像,并通知给显示控制部210。此外,帧处理部220也可以保持所接收到的数据域的内容,根据经由输入单元受理的驾驶员的操作,选择应显示于lcd的图像(例如车速显示用的图像、窗开关状态显示用的图像等)来进行通知。

显示控制部210将从帧处理部220收到了通知的内容显示于lcd等。

帧生成部230按照来自帧解析部260的指示错误帧的发送的通知,构成错误帧,将错误帧通知给帧收发部270并使其发送该错误帧。

[1.5接收id列表例1]

图5是表示在头单元200、网关300、ecu400c以及ecu400d各自中保持的接收id列表的一例的图。该图所例示的接收id列表用于选择性地接收包含id(消息id)的值为“1”、“2”、“3”和“4”的某一个的消息id的帧并进行处理。例如,若在头单元200的接收id列表保持部250中保持有图5的接收id列表,则关于消息id不为“1”、“2”、“3”和“4”的任一个的帧,中止帧解析部260中的id域以后的帧的解析。

[1.6网关300的构成]

图6是网关300的构成图。网关300构成为包括帧收发部360、帧解析部350、接收id判断部330、接收id列表保持部340、帧生成部320、传送处理部310和传送规则保持部370。这些各构成要素是功能性的构成要素,该各功能通过网关300中的通信线路、执行存储器所保存的控制程序的处理器或数字电路等来实现。

帧收发部360相对于总线500a、500b、500c分别收发遵循can协议的帧。从总线逐比特地接收帧,并传送给帧解析部350。另外,基于从帧生成部320收到了通知的表示传送目的地的总线的总线信息以及帧,将该帧的内容逐比特地发送到总线500a、500b、500c。

帧解析部350从帧收发部360接收帧的值,进行解析以使得向由can协议规定的帧格式的各域进行映射。判断为id域的值被传送给接收id判断部330。帧解析部350根据从接收id判断部330通知的判定结果,决定是将id域的值和id域之后出现的数据域(数据)传送给传送处理部310还是在收到该判定结果之后中止帧的接收(即中止作为该帧的解析)。另外,帧解析部350在判断为是未遵循can协议的帧的情况下,向帧生成部320进行通知,以使得发送错误帧。另外,帧解析部350在接收到错误帧的情况下,即在根据所接收到的帧的值而解析为成为错误帧的情况下,自此之后将该帧废弃,即中止帧的解析。

接收id判断部330接收从帧解析部350通知的id域的值,按照接收id列表保持部340保持的消息id的列表,进行是否接收该id域之后的帧的各域的判定。接收id判断部330将该判定结果通知给帧解析部350。

接收id列表保持部340保持网关300接收的id(消息id)的列表即接收id列表(参照图5)。

传送处理部310按照传送规则保持部370保持的传送规则,根据接收到的帧的消息id,决定要传送的总线,将表示要传送的总线的总线信息、从帧解析部350通知的消息id和数据通知给帧生成部320。此外,网关300不将从某总线接收到的错误帧传送到其他总线。

传送规则保持部370保持表示各条总线的关于帧传送的规则的信息即传送规则。图7是示出了传送规则的一例的图。

帧生成部320按照从帧解析部350通知的指示错误帧的发送的通知,构成错误帧,将错误帧通知给帧收发部360并使其发送该错误帧。另外,帧生成部320使用从传送处理部310通知的消息id和数据来构成帧,将帧以及总线信息通知给帧收发部360。

[1.7传送规则例]

图7表示网关300保有的传送规则的一例。该传送规则使传送源的总线、传送目的地的总线和传送对象的id(消息id)相关联。图7中的“*”表示不管消息id如何都进行帧的传送这一情况。另外,该图中的“-”表示没有传送对象的帧这一情况。该图的例子示出了从总线500a接收的帧被设定为不管消息id如何都向总线500b以及总线500c进行传送。另外,示出了从总线500b接收的帧被设定为向总线500c传送全部帧,而向总线500a仅传送消息id为“3”的帧。另外,示出了从总线500c接收的帧被设定为既不向总线500a也不向总线500b进行传送。

[1.8ecu400a的构成]

图8是ecu400a的构成图。ecu400a构成为包括帧收发部460、帧解析部450、接收id判断部430、接收id列表保持部440、帧处理部410、帧生成部420和数据取得部470。这些各构成要素是功能性的构成要素,该各功能通过ecu400a中的通信线路、执行存储器所保存的控制程序的处理器或数字电路等来实现。

帧收发部460相对于总线500a收发遵循can协议的帧。从总线500a逐比特地接收帧,传送给帧解析部450。另外,将从帧生成部420收到了通知的帧的内容发送到总线500a。

帧解析部450从帧收发部460接收帧的值,进行解析以使得向由can协议规定的帧格式的各域进行映射。id域和判断出的值被传送给接收id判断部430。帧解析部450根据从接收id判断部430通知的判定结果,决定是将id域的值和id域之后出现的数据域传送给帧处理部410还是在收到该判定结果之后中止帧的接收(即中止作为该帧的解析)。另外,帧解析部450在判断为是未遵循can协议的帧的情况下,向帧生成部420进行通知,以使得发送错误帧。另外,帧解析部450在接收到错误帧的情况下,即在根据所接收到的帧的值而解析为成为错误帧的情况下,自此之后将该帧废弃,即中止帧的解析。

接收id判断部430接收从帧解析部450通知的id域的值,按照接收id列表保持部440保持的消息id的列表,进行是否接收该id域之后的帧的各域的判定。接收id判断部430将该判定结果通知给帧解析部450。

接收id列表保持部440保存ecu400a接收的id(消息id)的列表即接收id列表。图9是示出了接收id列表的一例的图。

帧处理部410根据接收到的帧的数据,按每个ecu进行与不同的功能相关的处理。例如,与发动机401连接的ecu400a具备在时速超过了30km的状态下门开着的状态时鸣响警报声的功能。ecu400a具有例如用于鸣响警报声的扬声器等。并且,ecu400a的帧处理部410管理从其他ecu接收到的数据(例如表示门的状态的信息),基于从发动机401取得的时速来进行在一定条件下鸣响警报声的处理等。

数据取得部470取得表示与ecu联接的设备、传感器等的状态的数据,通知给帧生成部420。

帧生成部420按照从帧解析部450通知的指示错误帧的发送的通知,构成错误帧,将错误帧通知给帧收发部460并使其发送该错误帧。另外,帧生成部420对从数据取得部470通知的数据的值附加预先确定的消息id来构成帧,并通知给帧收发部460。

此外,ecu400b~400d也具备与上述的ecu400a基本上同样的构成。但是,接收id列表保持部440所保持的接收id列表可能会成为按各个ecu而不同的内容。ecu400b保存图9所例示的接收id列表,ecu400c以及ecu400d保存图5所例示的接收id列表。另外,帧处理部410的处理内容按各个ecu而不同。例如,ecu400c中的帧处理部410的处理内容包括与在未施加制动的状况下打开门时鸣响警报声的功能相关的处理。例如,ecu400b以及ecu400d中的帧处理部410不进行特别的处理。此外,各ecu也可以具备在此例示的功能以外的功能。此外,关于ecu400a~400d分别发送的帧的内容,在后面使用图10~图13进行说明。

[1.9接收id列表例2]

图9是表示在ecu400a和ecu400b的各ecu中保持的接收id列表的一例的图。该图所例示的接收id列表用于选择性地接收包含id(消息id)的值为“1”、“2”和“3”的某一个的消息id的帧并进行处理。例如,若在ecu400a的接收id列表保持部440中保持有图9的接收id列表,则关于消息id不为“1”、“2”和“3”的任一个的帧,中止帧解析部450中的id域之后的帧的解析。

[1.10与发动机相关的ecu400a的发送帧例]

图10是表示从与发动机401连接的ecu400a发送的帧的id(消息id)以及数据域(数据)的一例的图。ecu400a发送的帧的消息id为“1”。数据表示时速(km/小时),取最低0(km/小时)~最高180(km/小时)的范围内的值,数据长为1个字节。从图10的上面的行向下面的行例示了与从ecu400a逐次发送的各帧对应的各消息id以及数据,示出了从0km/小时起每次加速1km/小时的情形。

[1.11与制动器相关的ecu400b的发送帧例]

图11是表示从与制动器402连接的ecu400b发送的帧的id(消息id)以及数据域(数据)的一例的图。ecu400b发送的帧的消息id为“2”。数据以比例(%)的方式表示制动的施加情况,数据长为1个字节。对于该比例,将完全没有施加制动的状态设为0(%),将最大限度地施加制动的状态设为100(%)。从图11的上面的行向下面的行例示了与从ecu400b逐次发送的各帧对应的各消息id以及数据,示出了从100%逐渐减弱制动的情形。

[1.12与门开关传感器相关的ecu400c的发送帧例]

图12是表示从与门开关传感器403连接的ecu400c发送的帧的id(消息id)以及数据域(数据)的一例的图。ecu400c发送的帧的消息id为“3”。数据表示门的开关状态,数据长为1个字节。对于数据的值,开着门的状态为“1”,关着门的状态为“0”。从图12的上面的行向下面的行例示了与从ecu400c逐次发送的各帧对应的各消息id以及数据,示出了从开着门的状态逐渐向关闭的状态转变的情形。

[1.13与窗开关传感器相关的ecu400d的发送帧例]

图13是表示从与窗开关传感器404连接的ecu400d发送的帧的id(消息id)以及数据域(数据)的一例的图。ecu400d发送的帧的消息id为“4”。数据以比例(%)的方式表示窗的开关状态,数据长为1个字节。对于该比例,将窗完全关着的状态设为0(%),将窗完全开着的状态设为100(%)。从图13的上面的行向下面的行例示了与从ecu400d逐次发送的各帧对应的各消息id以及数据,示出了从关着窗的状态逐渐打开的情形。

[1.14不正常检测ecu100a的构成]

图14是不正常检测ecu100a的构成图。不正常检测ecu100a构成为包括帧收发部160、帧解析部150、不正常帧检测部130、正规id列表保持部120、不正常检测计数器保持部110和帧生成部140。这些各构成要素是功能性的构成要素,该各功能通过不正常检测ecu100a中的通信线路、执行存储器所保存的控制程序的处理器或数字电路等来实现。此外,不正常检测ecu100b也具有基本上同样的构成,但正规id列表保持部120保持的列表信息(正规id列表)的内容按不正常检测ecu100a和不正常检测ecu100b而不同。

帧收发部160相对于总线500a收发遵循can协议的帧。即,帧收发部160,在总线上的帧的发送开始了的情况下接收帧,也就是说作为接收部进行工作,另外,向总线发送错误帧等,也就是说作为发送部进行工作。即,帧收发部160从总线500a逐比特地接收帧,并传送给帧解析部150。另外,将从帧生成部140收到了通知的帧的内容发送到总线500a。

帧解析部150从帧收发部160接收帧的值,进行解析以使得向由can协议规定的帧格式的各域进行映射。id域和判断出的值被传送给不正常帧检测部130。另外,帧解析部150在判断为是未遵循can协议的帧的情况下,向帧生成部140进行通知,以使得发送错误帧。另外,帧解析部150在接收到错误帧的情况下,即在根据所接收到的帧的值而解析为成为错误帧的情况下,自此之后将该帧废弃,即中止帧的解析。

不正常帧检测部130接收从帧解析部150通知的id域的值,判定id域的值是否符合表示不正常的预定条件。即,不正常帧检测部130判定所接收到的帧的预定域的内容是否符合表示不正常的预定条件也即作为判定部发挥功能。该表示不正常的预定条件是id域的值未记载在正规id列表保持部120保持的消息id的列表中这一条件。即,按照正规id列表保持部120保持的消息id的列表,进行所通知的id域的值(消息id)是否不正常的判定。在接收到未记载在该列表(即后述的正规id列表)中的消息id的情况下,为了使不正常的检测次数递增,将所接收到的消息id通知给不正常检测计数器保持部110。另外,在接收到未记载在正规id列表中的消息id的情况下,为了发送错误帧而向帧生成部140进行通知。另外,在不正常的检测次数达到了一定次数以上的情况下,从不正常检测计数器保持部110接收通知,并向帧生成部140进行通知,以使得发送表示存在发布该消息id的不正常ecu这一情况的错误表示消息(帧)。错误表示消息的消息id被预先确定,头单元200接收该消息id的消息(帧)并进行错误表示。关于该错误表示消息,方便起见省略说明,但错误表示消息的消息id登记在网关300以及头单元200保持的接收id列表以及后述的正规id列表中。但是,在图15、图16中省略了关于错误表示消息的消息id。

正规id列表保持部120保持对在车载网络系统10中会在总线500a上发送的帧所包含的消息id进行了预先规定的列表即正规id列表(参照图15、图16)。

不正常检测计数器保持部110保持有用于按各个消息id对检测次数进行计数的不正常检测计数器,当从不正常帧检测部130通知了消息id时,使相应的不正常检测计数器递增(increment,增加)。在不正常检测计数器达到了一定数(预定次数)以上的情况下,向不正常帧检测部130通知超过了一定数这一情况。在此所说的一定数(预定次数)的一例是与can协议中的发送错误计数器的处理规则对应而确定的值。在can协议中,ecu每次由于错误帧而阻止发送时,发送错误计数器都计数增加8。并且,如果作为其结果是发送节点中的发送错误计数器计数增加到128,则规定成发送节点转变到被动状态而不再进行帧发送。因此,如果将比128/8(=16)大的17设定为该一定数,则会使得在推定为存在忽略了can协议中的发送错误计数器所涉及的规则的发送节点(不正常ecu)的情况下从不正常检测ecu100a发送了错误表示消息。此外,在发送不正常帧的不正常ecu遵循can协议中的发送错误计数器所涉及的规则的情况下,通过由不正常检测ecu100a进行的错误帧的发送,不正常ecu的发送错误计数器加8。该情况下,当通过反复进行不正常帧的发送从而不正常ecu的发送错误计数器上升到128时,不正常ecu会转变到被动状态,停止由不正常ecu进行的不正常帧的发送。

帧生成部140按照从帧解析部150通知的指示错误帧的发送的通知,构成错误帧,将错误帧通知给帧收发部160并使其发送该错误帧。另外,帧生成部140按照从不正常帧检测部130通知的指示错误帧的发送的通知,构成错误帧,将错误帧通知给帧收发部160并使其发送该错误帧。进而,帧生成部140按照从不正常帧检测部130通知的指示错误表示消息的发送的通知,将错误表示消息通知给帧收发部160并使其发送该错误表示消息。

[1.15不正常检测ecu100a的正规id列表例]

图15是示出了在不正常检测ecu100a的正规id列表保持部120中保持的正规id列表的一例的图。该图所例示的正规id列表示出了包含id(消息id)的值为“1”、“2”和“3”的任一个的消息id的帧能够流向总线500a这一情况。

[1.16不正常检测ecu100b的正规id列表例]

图16是示出了在不正常检测ecu100b的正规id列表保持部120中保持的正规id列表的一例的图。该图所例示的正规id列表示出了包含id(消息id)的值为“1”、“2”、“3”和“4”的任一个的消息id的帧能够流向总线500b这一情况。

[1.17不正常检测计数器保存列表例]

图17是表示各个消息id的不正常检测计数器的状态的一例的图。该图的例子示出了仅消息id为“4”的不正常检测计数器检测到一次不正常,关于其他的消息id则一次都没有检测到。即,该例子示出了如下情况:不正常检测ecu100a检测到一次发送了本来不应该流向总线500a的消息id“4”的消息(帧),使与该消息id“4”对应的不正常检测计数器递增一。

[1.18与不正常帧的检测相关的序列]

以下,关于在具备上述结构的车载网络系统10的总线500a上连接有不正常ecu的情况,对与总线500a连接的不正常检测ecu100a、ecu400a、ecu400b、网关300等的工作进行说明。

图18是表示不正常检测ecu100a检测到不正常帧(消息),并阻止从其他ecu进行应对该不正常帧的处理的工作例的时序图。在该图中,示出了不正常ecu向总线500a发送消息id为“4”且数据域(数据)为“255(0xff)”的数据帧的情况下的例子。在此的各序列意味着各种装置中的各处理步骤(step)。

首先,不正常ecu开始消息id为“4”且数据为“255(0xff)”的数据帧的发送(序列s1001)。构成帧的各比特的值按照上述的数据帧格式,按sof、id域(消息id)这样的顺序逐次被送出到总线500a上。

在不正常ecu向总线500a送完了到id域(消息id)为止的数据时,不正常检测ecu100a、ecu400a、ecu400b以及网关300分别接收消息id(序列s1002)。

ecu400a、ecu400b以及网关300分别使用所保持的接收id列表来检查消息id(序列s1003)。此时,不正常检测ecu100a使用所保持的正规id列表来检查消息id(序列s1004)。即,不正常检测ecu100a判定被发送来的帧中的id域的内容是否符合表示不正常的预定条件(未登记在正规id列表中)。

在序列s1003中,ecu400a以及ecu400b由于分别保持的接收id列表中不包含“4”(参照图9),所以结束接收。也即是,不再进行不正常ecu继续发送的帧的解析,不再进行应对帧的处理。另外,在序列s1003中,网关300由于所保持的接收id列表中包含“4”(参照图5),所以继续接收。另外,在序列s1004中,不正常检测ecu100a由于所保持的正规id列表中包含“4”,所以判断为是不正常的消息id,接着开始错误帧的发布准备(序列s1005)。

接着序列s1003,网关300继续帧的接收。例如,在不正常检测ecu100a正在进行错误帧的发布准备的期间,从不正常ecu向总线500a上逐次送出id域之后的部分即rtr、控制域(ide,r,dlc),接着逐比特地送出数据域。网关300接收该rtr、控制域(ide,r,dlc),接着开始数据域的接收(序列s1006)。

接着,错误帧的发布准备结束,不正常检测ecu100a发送错误帧(序列s1007)。该错误帧的发送在不正常帧的尾端被发送之前(例如crc序列的尾端被发送之前等)进行。在该工作例中,在数据域的中途进行。通过开始该错误帧的发送,在总线500a中从不正常ecu正在发送的帧的数据域的中途部分会被错误帧(优先的显性的位串)覆写。

接收到在序列s1007中发送的错误帧的网关300,在数据域的接收中途中止不正常ecu发送出的帧的接收(序列s1008)。也即,网关300因为来自不正常ecu的数据域被错误帧覆写而检测到错误帧,所以不继续不正常ecu发送出的帧的接收。

不正常检测ecu100a使成为发送错误帧的对象的数据帧的消息id“4”所对应的不正常检测计数器递增(序列s1009)。

在作为递增后的结果是与消息id“4”对应的不正常检测计数器达到了17以上的情况下,不正常检测ecu100a发送通知错误表示的帧(错误表示消息),以使得头单元200接收(序列s1010)。作为其结果,由头单元200的帧处理部220进行用于错误表示的处理,经由lcd等报告错误。此外,错误的报告除了通过向lcd等进行显示之外,还可以通过声音输出、发光等来进行。

[1.19实施方式1的效果]

实施方式1中示出的不正常检测ecu,使用正规id列表对帧的id域判定被发送来的帧(数据帧)是否为不正常帧。由此,能够通过数据帧中的id域来判定不正常,因此,能够阻止在既有的节点(即不正常检测ecu以及不正常ecu以外的ecu)中对不正常帧进行解析而执行应对该帧的处理。另外,仅通过接收到数据帧的继开头的sof之后的id域为止就能够进行判定,因此与接收数据帧的后部等来进行判定的情况相比,能够抑制总线的通信量。

另外,不正常检测ecu使用不正常检测计数器对发送了错误帧的次数进行计数,由此,如果通过错误帧的接收而发送不正常的消息id的节点中的发送错误计数器遵循can协议,则能够对达到应该转变到被动状态的上限值这一情况进行检测。由此,能够判定发送不正常的消息id的节点是否遵照了can协议的错误计数器的规格。

另外,通过仅将进行不正常帧的判定的节点设为不正常检测ecu,能够将对既有的网络结构的影响抑制为最小限度,能够抑制系统整体的处理量、电力消耗量。

(实施方式2)

以下,作为本公开的实施方式,对包含实现如下的不正常应对方法的不正常检测ecu的车载网络系统11进行说明,在上述的不正常应对方法中,基于按各个消息id所允许的数据范围,阻止在其他节点(ecu)中执行基于不正常帧的处理。

[2.1车载网络系统11的整体构成]

图19是表示实施方式2涉及的车载网络系统11的整体构成的图。车载网络系统11是对实施方式1中示出的车载网络系统10的一部分进行了变形而得到的。车载网络系统11构成为包括总线500a、500b、不正常检测ecu2100a、2100b、头单元200、网关300、以及与各种设备连接的ecu400a~400d等ecu这种连接于总线的各节点。对于车载网络系统11的构成要素中的具有与实施方式1同样的功能的构成要素,标注相同的附图标记而省略说明。

不正常检测ecu2100a、2100b分别与总线500a、总线500b连接,是具有判定从ecu400a~400d等发送的帧是否不正常,如果不正常则发送错误帧的功能的ecu。

[2.2不正常检测ecu2100a的构成]

图20是不正常检测ecu2100a的构成图。不正常检测ecu2100a构成为包括帧收发部160、帧解析部2150、不正常帧检测部2130、数据范围列表保持部2120、不正常检测计数器保持部110和帧生成部140。这些各构成要素是功能性的构成要素,该各功能通过不正常检测ecu2100a中的通信线路、执行存储器所保存的控制程序的处理器或数字电路等来实现。不正常检测ecu2100a是对实施方式1中示出的不正常检测ecu100a的一部分进行了变形而得到的,对于具有与实施方式1同样的功能的构成要素,标注相同的附图标记而省略说明。此外,不正常检测ecu2100b也具备与不正常检测ecu2100a同样的构成。

帧解析部2150是对实施方式1中示出的帧解析部150进行了变形而得到的,从帧收发部160接收帧的值,进行解析以使得向由can协议规定的帧格式的各域进行映射。在判断为帧是数据帧的情况下,数据域和判断出的值(数据)与id域的id(消息id)一起传送给不正常帧检测部2130。另外,帧解析部2150在判断为是未遵循can协议的帧的情况下,向帧生成部140进行通知,以使得发送错误帧。另外,帧解析部2150在接收到错误帧的情况下,即在根据所接收到的帧的值而解析为成为错误帧的情况下,自此之后将该帧废弃,即中止帧的解析。

不正常帧检测部2130是对实施方式1中示出的不正常帧检测部130进行了变形而得到的,接收从帧解析部2150通知的消息id和数据域的值(数据),判定这些值是否符合表示不正常的预定条件。即,不正常帧检测部2130判定所接收到的帧中的预定域的内容是否符合表示不正常的预定条件即作为判定部发挥功能。该表示不正常的预定条件是数据未进入到在数据范围列表保持部2120所保持的数据范围列表中与消息id关联记载的数据范围内这一条件。不正常帧检测部2130按照数据范围列表保持部2120所保持的确定了各个消息id的数据范围的列表即数据范围列表,进行是否不正常的判定。不正常帧检测部2130在接收到由数据范围列表表示的范围以外的数据的情况下,为了使不正常的检测次数递增而将所接收到的消息id通知给不正常检测计数器保持部110。对于在该不正常的检测次数达到了一定次数以上的情况下用于发送错误表示消息以使得由头单元200接收的控制,与实施方式1中说明的一样,因此省略在此的说明。另外,在接收到由数据范围列表表示的范围以外的数据的情况下,向帧生成部140进行通知,以使得发送错误帧。

数据范围列表保持部2120保持对在车载网络系统11中在总线上发送的数据帧所包含的数据(数据域的值)所允许的范围进行了预先规定的列表即数据范围列表(参照图21)。

[2.3数据范围列表例]

图21是示出了在不正常检测ecu2100a的数据范围列表保持部2120中保持的数据范围列表的一例的图。该数据范围列表是使各id(消息id)和作为该消息id的数据帧中的数据域的值(数据)而允许的数据范围相关联的列表。在图21的例子中,关于消息id为“1”的数据帧,将数据范围“0~180”设为正常,关于消息id为“2”或“4”的数据帧,将数据范围“0~100”设为正常,关于消息id为“3”的数据帧,将数据范围“0,1”设为正常。

[2.4与不正常帧的检测相关的序列]

以下关于在具备上述结构的车载网络系统11的总线500a上连接有不正常ecu的情况,对与总线500a连接的不正常检测ecu2100a、ecu400a、ecu400b、网关300等的工作进行说明。

图22以及图23是表示不正常检测ecu2100a检测到不正常帧(消息),阻止从其他ecu进行应对该不正常帧的处理的工作例的时序图。在图22以及图23中,与实施方式1中示出的图18的情况同样,示出了不正常ecu向总线500a发送消息id为“4”且数据域(数据)为“255(0xff)”的数据帧的情况下的例子。对与实施方式1中示出的序列相同的序列标注相同的附图标记,在此简化说明。

首先,不正常ecu开始不正常数据帧的发送(序列s1001)。不正常检测ecu2100a、ecu400a、ecu400b以及网关300分别接收消息id(序列s1002)。ecu400a、ecu400b以及网关300分别使用所保持的接收id列表来检查消息id(序列s1003)。ecu400a以及ecu400b由于在分别保持的接收id列表中不包含“4”(参照图9),所以结束接收。网关300由于所保持的接收id列表中包含“4”(参照图5),所以继续接收并进行数据域的接收(序列s1006a)。同样地,不正常检测ecu2100a也进行数据域的接收(序列s1006a)。

接着序列s1006a,不正常检测ecu2100a使用数据范围列表(参照图21)来检查数据域的数据(序列s2001)。即,不正常检测ecu2100a判定被发送来的帧中的id域的内容是否符合表示不正常的预定条件(未进入数据范围列表所记载的数据的范围内)。由于在数据范围列表中未记载有与id“4”对应的“255(0xff)”的值,所以不正常检测ecu2100a判断为是不正常的数据帧,接着开始错误帧的发布准备(序列s1005)。

在不正常检测ecu2100a正在进行错误帧的发布准备的期间,从不正常ecu向总线500a上逐比特地送出数据域之后的部分即crc域(crc序列以及crc定界符)。网关300开始该crc域的接收(序列s2002)。

接着,错误帧的发布准备结束,不正常检测ecu2100a发送错误帧(序列s1007)。通过开始该错误帧的发送,在总线500a上从不正常ecu正在发送的帧的crc序列的中途部分会被错误帧(优先的显性的位串)覆写。

接收到在序列s1007中发送的错误帧的网关300,在包含crc序列的crc域的接收中途中止不正常ecu发送出的数据帧的接收(序列s2003)。也即是,网关300因为来自不正常ecu的crc序列被错误帧覆写而检测到错误帧,所以不继续不正常ecu发送出的数据帧的接收。

不正常检测ecu2100a使成为发送错误帧的对象的数据帧的id“4”所对应的不正常检测计数器递增(序列s1009)。在作为递增后的结果是与id“4”对应的不正常检测计数器达到了17以上的情况下,不正常检测ecu2100a发送错误表示消息(序列s1010)。

[2.5实施方式2的效果]

实施方式2中示出的不正常检测ecu,使用数据范围列表对帧(数据帧)的id域以及数据域判定被发送来的帧是否为不正常帧。由此,能够通过数据帧中的id域和数据域的组合来判定不正常,因此能够阻止在既有的ecu(即不正常检测ecu以及不正常ecu以外的ecu)中对不正常帧进行解析并执行应对该帧的处理。另外,仅通过接收到数据帧的数据域为止就能够进行判定,因此与接收数据帧的后部来进行判定的情况相比,能够抑制总线的通信量。

另外,不正常检测ecu使用不正常检测计数器对发送了错误帧的次数进行计数,由此,如果通过错误帧的接收而发送不正常的消息id的节点中的发送错误计数器遵循can协议,则能够对达到应该转变到被动状态的上限值这一情况进行检测。由此,能够判定发送不正常的消息id的节点是否遵照了can协议的错误计数器的规格。

另外,通过仅将进行不正常帧的判定的节点设为不正常检测ecu,能够将对既有的网络结构的影响抑制为最小限度,能够抑制系统整体的处理量、电力消耗量。

(实施方式3)

以下,作为本公开的实施方式,对包含实现如下的不正常应对方法的不正常检测ecu的车载网络系统12进行说明,在上述不正常应对方法中,使用根据消息id、数据以及计数器值而算出的消息认证码(mac:messageauthenticationcode),阻止在其他节点(ecu)中执行基于不正常帧的处理。

[3.1车载网络系统12的整体构成]

图24是表示实施方式3涉及的车载网络系统12的整体构成的图。车载网络系统12是对实施方式1中示出的车载网络系统10的一部分进行了变形而得到的。车载网络系统12构成为包括总线500a、500b、不正常检测ecu3100a、3100b、头单元200、网关300、以及与各种设备连接的ecu3400a~3400d等ecu这种连接于总线的各节点。对于车载网络系统12的构成要素中的具有与实施方式1同样的功能的构成要素,标注相同的附图标记而省略说明。

不正常检测ecu3100a、3100b分别与总线500a、总线500b连接,是具有判定从ecu3400a~3400d等发送的帧是否不正常,如果不正常则发送错误帧的功能的ecu。

ecu3400a~3400d与任意的总线连接,另外,ecu3400a~3400d分别与发动机401、制动器402、门开关传感器403、窗开关传感器404连接。ecu3400a~3400d分别取得连接着的设备(发动机401等)的状态,定期地向网络(即总线)发送表示状态的数据帧。对所发送的数据帧的数据域,赋予根据消息id、数据值和每次发送都递增的计数器值通过计算而导出的消息认证码(mac)。

[3.2ecu3400a的构成]

图25是ecu3400a的构成图。ecu3400a构成为包括帧收发部460、帧解析部450、接收id判断部430、接收id列表保持部440、帧处理部410、帧生成部3420、数据取得部470、mac生成部3410、mac密钥保持部3430和计数器保持部3440。这些各构成要素是功能性的构成要素,该各功能通过ecu3400a中的通信线路、执行存储器所保存的控制程序的处理器或数字电路等来实现。ecu3400a是对实施方式1中示出的ecu400a的一部分进行了变形而得到的,对于具有与实施方式1同样的功能的构成要素,标注相同的附图标记而省略说明。

帧生成部3420是对实施方式1中示出的帧生成部420的一部分进行了变形而得到的。帧生成部3420按照从帧解析部450通知的指示错误帧的发送的通知,构成错误帧,将错误帧通知给帧收发部460并使其发送该错误帧。另外,帧生成部3420将从数据取得部470通知的数据的值和预先设定的消息id通知给mac生成部3410,接收所算出的mac。帧生成部3420以使得包含预先设定的消息id、从数据取得部470通知的数据的值、和从mac生成部3410接收到的mac的方式构成帧(参照图26),并通知给帧收发部460。

mac生成部3410使用由mac密钥保持部3430保持的mac密钥,对结合了从帧生成部3420通知的消息id和数据的值、与由计数器保持部3440保持的计数器值而得到的值(结合值)算出mac(通过计算而导出),将作为该算出的结果的mac通知给帧生成部3420。在此,作为mac的计算方法,采用hmac(hash-basedmessageauthenticationcode,基于散列运算的消息认证码)(参照非专利文献2),对上述结合值,以进行填充直到预定的块量(例如4个字节)而成的值,使用mac密钥进行计算,将得出的计算结果的开头4个字节作为mac值。此外,在此,为了算出mac而使用的结合值,使用了消息id、数据的值和由计数器保持部3440保持的计数器值,但也可以使用这3个中的任意一个或2个的组合来算出mac。

mac密钥保持部3430保持为了计算mac所需的mac密钥。

计数器保持部3440保持为了计算mac所需的计数器值。此外,该计数器值每次在帧收发部460中正常发送了数据帧时递增。

此外,ecu3400b~3400d分别是对实施方式1中示出的ecu400b~400d的一部分进行了变形而得到的,具备与上述的ecu3400a基本上同样的构成。但是,接收id列表保持部440所保持的接收id列表可能会成为按各个ecu而不同的内容。例如ecu3400a以及ecu3400b保持图9所例示的接收id列表,ecu3400c以及ecu3400d保持图5所例示的接收id列表。另外,帧处理部410的处理内容如实施方式1所示按各个ecu而不同。以下,使用图26~图29对ecu3400a~3400d分别发送的帧的内容进行说明。

[3.3与发动机相关的ecu3400a的发送帧例]

图26是表示从与发动机401连接的ecu3400a发送的数据帧的id(消息id)以及数据域(数据)的一例的图。ecu3400a发送的帧的消息id为“1”。在该图中,按每个字节而用空格区分表示数据,开头的1个字节表示时速(km/小时),接着的1个字节表示计数器值,接着的4个字节表示mac。此外,在图26的例子中mac由16进制数来标记。开头1个字节的时速(km/小时)取最低0(km/小时)~最高180(km/小时)的范围的值。从图26的上面的行向下面的行例示了与从ecu3400a逐次发送的各帧对应的各消息id以及数据,示出了计数器值逐渐增加、时速从0km/小时起每次加速1km/小时的情形。

[3.4与制动器相关的ecu3400b的发送帧例]

图27是表示从与制动器402连接的ecu3400b发送的数据帧的id(消息id)以及数据域(数据)的一例的图。ecu3400b发送的帧的消息id为“2”。在该图中,按每个字节而用空格区分表示数据,开头的1个字节以比例(%)的方式表示制动的施加情况,接着的1个字节表示计数器值,接着的4个字节表示mac。此外,在图27的例子中,mac由16进制数来标记。对于开头1个字节的制动的施加情况,将完全没有施加制动的状态设为0(%),将最大限度地施加制动的状态设为100(%)。从图27的上面的行向下面的行例示了与从ecu3400b逐次发送的各帧对应的各消息id以及数据,示出了计数器值逐渐增加,对于制动而言从100%逐渐减弱制动的情形。

[3.5与门开关传感器相关的ecu3400c的发送帧例]

图28是表示从与门开关传感器403连接的ecu3400c发送的数据帧的id(消息id)以及数据域(数据)的一例的图。ecu3400c发送的帧的消息id为“3”。在该图中,按每个字节而用空格区分表示数据,开头的1个字节表示门的开关状态,接着的1个字节表示计数器值,接着的4个字节表示mac。此外,在图28的例中mac由16进制数来标记。对于开头1个字节的门的开关状态,将开着门的状态设为“1”,将关着门的状态设为“0”。从图28的上面的行向下面的行例示了与从ecu3400c逐次发送的各帧对应的各消息id以及数据,示出了计数器值逐渐增加,从开着门的状态逐渐向关闭的状态转变的情形。

[3.6与窗开关传感器相关的ecu3400d的发送帧例]

图29是表示从与窗开关传感器404连接的ecu3400d发送的数据帧的id(消息id)以及数据域(数据)的一例的图。ecu3400d发送的帧的消息id为“4”。在该图中,按每个字节而用空格区分表示数据,开头的1个字节以比例(%)的方式表示窗的开关状态,接着的1个字节表示计数器值,接着的4个字节表示mac。此外,在图29的例子中mac由16进制数来标记。对于开头1个字节的窗的开关状态,将完全关着窗的状态设为0(%),将完全开着窗的状态设为100(%)。从图29的上面的行向下面的行例示了与从ecu3400d逐次发送的各帧对应的各消息id以及数据,示出了计数器值逐渐增加,从关着窗的状态逐渐打开的情形。

[3.7不正常检测ecu3100a的构成]

图30是不正常检测ecu3100a的构成图。不正常检测ecu3100a包括帧收发部160、帧解析部3150、不正常mac检测部3130、mac密钥保持部3180、计数器保持部3190、帧生成部140、mac生成部3170和不正常检测计数器保持部110。这些各构成要素是功能性的构成要素,该各功能通过不正常检测ecu3100a中的通信线路、执行存储器所保存的控制程序的处理器或数字电路等来实现。不正常检测ecu3100a是对实施方式1中示出的不正常检测ecu100a的一部分进行了变形而得到的,对于具有与实施方式1同样的功能的构成要素,标注相同的附图标记而省略说明。此外,不正常检测ecu3100b也是同样的构成。

帧解析部3150是对实施方式1中示出的帧解析部150进行了变形而得到的,从帧收发部160接收帧的值,进行解析以使得向由can协议规定的帧格式的各域进行映射。在判断为帧是数据帧的情况下,数据域和判断出的值(数据)与id域的id(消息id)一起传送给不正常mac检测部3130。另外,帧解析部3150在判断为是未遵循can协议的帧的情况下,向帧生成部140进行通知,以使得发送错误帧。另外,帧解析部3150在接收到错误帧的情况下,即在根据所接收到的帧的值而解析为成为错误帧的情况下,自此之后将该帧废弃,即中止帧的解析。

不正常mac检测部3130具有接收从帧解析部3150通知的消息id和数据域的值(数据)来验证数据域中的mac的功能。不正常mac检测部3130将通知来的消息id以及数据域的值通知给mac生成部3170,从mac生成部3170取得所生成的mac。不正常mac检测部3130判定数据域的数据是否符合表示不正常的预定条件。即,不正常mac检测部3130判定所接收到的帧中的预定域的内容是否符合表示不正常的预定条件也即作为判定部发挥功能。该表示不正常的预定条件是所设定的验证处理步骤(包括mac的生成、mac的比较等的步骤)中的验证失败、即数据所包含的mac与由mac生成部3170生成的mac不同这一条件。不正常mac检测部3130通过对从mac生成部3170取得的mac和数据域中的mac进行比较,进行是否不正常的判定(即mac的验证)。在两个mac的值的比较结果不一致的情况下,为了使不正常的检测次数递增而将接收到的消息id通知给不正常检测计数器保持部110。关于在该不正常的检测次数达到了一定次数以上的情况下用于发送错误表示消息以使得被头单元200接收的控制,与实施方式1中说明的一样,因此省略在此的说明。另外,在两个mac的值的比较结果不一致的情况下,向帧生成部140进行通知,以使得发送错误帧。在mac值的比较结果一致的情况下,向mac生成部3170进行通知,以使得计数器保持部3190保持的与消息id对应的计数器值递增。

mac生成部3170使用从不正常mac检测部3130通知的消息id,从mac密钥保持部3180取得对应的mac密钥,从计数器保持部3190取得对应的计数器值。mac生成部3170针对从不正常mac检测部3130通知的数据域的值(开头1个字节的值)和从计数器保持部3190取得的计数器值,使用从mac密钥保持部3180取得的mac密钥来算出(通过计算而导出)mac,将算出的mac通知给不正常mac检测部3130。此外,在不正常检测ecu3100a、3100b以及ecu3400a~3400d的任一方中,使用mac密钥来算出mac的算法使用相同的算法。

mac密钥保持部3180使用于计算mac所需的mac密钥与各个消息id相关联地进行保持。该mac密钥保持部3180保持的mac密钥是按关联的各个消息id而不同的值。此外,在ecu以及不正常检测ecu中使用的mac密钥也可以设为在设想一个发送节点发送多个消息id各自的帧的情况时按各个发送节点而不同的密钥。另外,mac密钥例如也可以设为对相同总线上发送的帧使用相同的值,也可以设为即使在不同总线上也为相同的密钥(值),也可以设为按每台车辆而相同的密钥,也可以设为按相同的车型而相同的密钥,也可以设为按相同的制造商而相同的密钥,也可以设为即使是不同的制造商也为相同的密钥。

计数器保持部3190按各个消息id保持用于计算mac值所需的计数器值。该计数器值在正常接收到帧的情况(即在不正常mac检测部3130中比较的两个mac一致的情况)下递增。

[3.8计数器值的例子]

图31是表示在计数器保持部3190中保持的各个消息id的计数器值的一例的图。在该图中,消息id为“1”的计数器示出了1次,消息id为“2”的计数器示出了10次,消息id为“3”的计数器示出了15次,消息id为“4”的计数器示出了100次。与该各消息id对应的计数器值示出了包含该消息id的帧被正常接收的次数。

[3.9与不正常帧的检测相关的序列]

以下,关于在具备上述结构的车载网络系统12的总线500a上连接有不正常ecu的情况,对与总线500a连接的不正常检测ecu3100a、ecu3400a、ecu3400b、网关300等的工作进行说明。

图32以及图33是表示不正常检测ecu3100a检测到不正常帧(消息),阻止从其他ecu进行应对该不正常帧的处理的工作例的时序图。在图32以及图33中,与实施方式1中示出的图18以及实施方式2中示出的图22以及图23的情况同样,示出了不正常ecu连接于总线500a的例子。该不正常ecu发送消息id为“4”且数据域(数据)为“0xffffffffffff”(6个字节)的数据帧。对与实施方式1或2中示出的序列相同的序列标注相同的附图标记,在此简化说明。

首先,不正常ecu开始上述的不正常数据帧的发送(序列s1001a)。不正常检测ecu3100a、ecu3400a、ecu3400b以及网关300分别接收消息id(序列s1002)。ecu3400a、ecu3400b以及网关300分别使用所保持的接收id列表来检查消息id(序列s1003)。ecu3400a以及ecu3400b由于分别保持的接收id列表中不包含“4”(参照图9),所以结束接收。网关300由于所保持的接收id列表中包含“4”(参照图5),所以继续接收并进行数据域的接收(序列s1006a)。同样地,不正常检测ecu3100a也进行数据域的接收(序列s1006a)。

接着序列s1006a,不正常检测ecu3100a对数据域中的数据所包含的mac进行验证(检查)(序列s3001)。即,不正常检测ecu3100a判定被发送来的帧中的id域的内容是否符合表示不正常的预定条件(mac的验证失败)。不正常检测ecu3100a针对从不正常ecu发送的数据帧中的数据域的6个字节的数据“0xffffffff”,比较后面4个字节的mac与使用与消息id“4”对应的mac密钥和计数器而推算出的mac进行比较,由此进行mac的验证。因为该比较的结果不一致而验证失败,所以在不正常检测ecu3100a中判断为是不正常的数据帧,接着开始错误帧的发布准备(序列s1005)。

在不正常检测ecu3100a正在进行错误帧的发布准备的期间,网关300开始crc域的接收(序列s2002)。

接着,错误帧的发布准备结束,不正常检测ecu3100a发送错误帧(序列s1007)。通过该错误帧的发送,在总线500a上从不正常ecu正在发送的帧的crc序列的中途部分会被错误帧覆写。

接收到在序列s1007中发送的错误帧的网关300,在包含crc序列的crc域的接收中途,中止不正常ecu发送出的数据帧的接收(序列s2003)。

不正常检测ecu3100a使成为发送错误帧的对象的数据帧的id“4”所对应的不正常检测计数器递增(序列s1009)。在作为递增后的结果是与id“4”对应的不正常检测计数器达到了17以上的情况下,不正常检测ecu3100a发送错误表示消息(序列s1010)。

[3.10实施方式3的效果]

实施方式3中示出的不正常检测ecu通过对包含在帧(数据帧)的数据域中的mac进行验证来判定所发送的帧是否为不正常帧。由此,能够阻止在既有的ecu(即不正常检测ecu以及不正常ecu以外的ecu)中对不正常帧进行解析并执行应对该帧的处理。另外,仅通过接收到数据帧的数据域为止就能够进行判定,因此与接收数据帧的后部来进行判定的情况相比,能够抑制总线的通信量。

另外,不正常检测ecu使用不正常检测计数器对发送了错误帧的次数进行计数,由此,如果通过错误帧的接收而发送不正常的消息id的节点中的发送错误计数器遵循can协议,则能够对达到应该转变到被动状态的上限值这一情况进行检测。由此,能够判定发送不正常的消息id的节点是否遵照了can协议的错误计数器的规格。

另外,通过仅将进行mac的验证的节点设为不正常检测ecu,不需要通过不正常检测ecu以外的ecu进行验证,能够抑制系统整体的处理量、电力消耗量。

(实施方式4)

以下,作为本公开的实施方式,对包含如下的不正常检测ecu的车载网络系统13进行说明,上述的不正常检测ecu在接收到数据帧的情况下消息认证码(mac)的验证失败时,发送更新帧并再次验证mac,所述更新帧对包含mac的数据帧的发送源的ecu请求更新mac的生成所利用的数据。在车载网络系统13中,如实施方式3所示,设为ecu发送包含根据消息id、数据的值以及计数器值通过计算而生成的mac的帧(数据帧),设为不正常检测ecu进行接收到的帧中的mac的验证。在车载网络系统13中,在mac的验证失败了的情况下,执行用于进行mac的生成所利用的mac密钥以及计数器值的一方或者两方的更新等的不正常应对方法。

[4.1车载网络系统13的整体构成]

图34是表示实施方式4涉及的车载网络系统13的整体构成的图。车载网络系统13是对实施方式3中示出的车载网络系统12(或者实施方式1中示出的车载网络系统10)的一部分进行了变形而得到的。车载网络系统13构成为包括总线500a、500b、500c、不正常检测ecu4100a、4100b、头单元200、网关300、以及与各种设备连接的ecu4400a~4400d等ecu这种连接于总线的各节点。对于车载网络系统13的构成要素中的具有与实施方式1(或者实施方式3)同样的功能的构成要素,标注相同的附图标记而省略说明。

不正常检测ecu4100a、4100b分别与总线500a、总线500b连接,是具有判定从ecu4400a~4400d等发送的帧是否不正常,如果不正常则发送错误帧的功能、发送指示更新mac密钥和计数器值的一方或两方的更新帧的功能等的ecu。作为更新帧,具体存在指示mac密钥的更新的密钥更新帧、指示mac密钥的更新以及计数器值的复位的密钥更新&计数器复位帧、以及指示计数器的复位的计数器复位帧。该更新帧中的密钥更新帧以及密钥更新&计数器复位帧,具有作为用于请求mac密钥的更新的帧的性质,也即是mac密钥更新请求帧。另外,更新帧中的计数器复位帧以及密钥更新&计数器复位帧,具有作为用于请求计数器值的更新(复位)的帧的性质,也即是计数器复位请求帧。在实施方式3中示出了在数据帧的数据域中保存mac的例子,能够保存在数据域的mac的数据长度不能说足够长。与此相对,通过在车载网络系统13中适时地进行mac密钥的更新或者计数器值的复位,可产生提高对于由不正常ecu对mac的暴力攻击等的抗攻击性的效果。

ecu4400a~4400d与任意的总线连接,另外,ecu4400a~4400d分别与发动机401、制动器402、门开关传感器403、窗开关传感器404连接。ecu4400a~4400d分别取得连接着的设备(发动机401等)的状态,定期地向网络(即总线)发送表示状态的数据帧。对发送的数据帧的数据域,赋予根据消息id、数据值和每次发送都递增的计数器值通过计算而导出的消息认证码(mac)。

[4.2ecu4400a的构成]

图35是ecu4400a的构成图。ecu4400a构成为包括帧收发部460、帧解析部450、接收id判断部430、接收id列表保持部440、帧处理部410、帧生成部3420、数据取得部470、mac生成部3410、mac密钥保持部4430、计数器保持部3440、mac密钥更新部4410和计数器复位部4420。这些各构成要素是功能性的构成要素,该各功能通过ecu4400a中的通信线路、执行存储器所保存的控制程序的处理器或数字电路等来实现。ecu4400a是对实施方式3中示出的ecu3400a(或者实施方式1中示出的ecu400a)的一部分进行了变形而得到的,对于具有与实施方式1以及3同样的功能的构成要素,标注相同的附图标记而省略说明。

mac密钥保持部4430通过存储器等存储介质而实现,保持对识别mac密钥的各个密钥id关联有更新前和更新后的2个mac密钥(用于计算mac所需的密钥)的密钥表。关于密钥表以及mac密钥的更新,后面使用图39进行说明。在此,设为利用按各个消息id而不同的mac密钥,因此密钥id与消息id相同。此外,在由mac生成部3410生成mac的情况下只要不特别说明,基本上使用更新后的mac密钥。

计数器保持部3440通过存储器等存储介质而实现,保持对识别计数器密钥的各个计数器id关联有计数器值的计数器表。关于计数器表以及计数器值的更新(复位),后面使用图40进行说明。在此,设为利用按各个消息id而不同的计数器,因此计数器id与消息id相同。

mac密钥更新部4410在由帧收发部460接收到密钥更新帧或者密钥更新&计数器复位帧的情况下,按照这些帧来更新mac密钥保持部4430保持的mac密钥。

计数器复位部4420在由帧收发部460接收到计数器复位帧或者密钥更新&计数器复位帧的情况下,按照这些帧对计数器保持部3440保持的计数器值进行复位。

此外,ecu4400b~4400d分别是对实施方式3中示出的ecu3400b~3400d的一部分进行了变形而得到的,具备与上述的ecu4400a基本上同样的构成。但是,接收id列表保持部440所保持的接收id列表、mac密钥保持部4430所保持的密钥表以及计数器保持部3440所保持的计数器表可能会成为按各个ecu而不同的内容。另外,帧处理部410的处理内容如实施方式1所示,按各个ecu而不同。

[4.3不正常检测ecu4100a的构成]

图36是不正常检测ecu4100a的构成图。不正常检测ecu4100a构成为包括帧收发部160、帧解析部4151、不正常mac检测部4131、mac密钥保持部4180、计数器保持部3190、帧生成部140、mac生成部3170、mac密钥更新部4110、计数器复位部4120、保护处理部4130、保护条件保持部4140、不正常id列表保持部4150、不正常日志保持部4160和模式变更处理部4170。这些各构成要素是功能性的构成要素,该各功能通过不正常检测ecu4100a中的通信线路、执行存储器所保存的控制程序的处理器或数字电路等来实现。不正常检测ecu4100a是对实施方式3中示出的不正常检测ecu3100a(或者实施方式1中示出的不正常检测ecu100a)的一部分进行了变形而得到的,对于具有与实施方式1以及3同样的功能的构成要素,标注相同的附图标记而省略说明。此外,不正常检测ecu4100b也为同样的构成。

帧解析部4151是对实施方式3中示出的帧解析部3150的一部分进行变形而追加了功能而得到的。帧解析部4151从帧收发部160接收帧的值,进行解析以使得向由can协议规定的帧格式的各域进行映射。在判断为帧为数据帧的情况下,数据域和判断出的值(数据)与id域的id(消息id)一起传送给不正常mac检测部4131。另外,帧解析部4151在判断为是不遵循can协议的帧的情况下或者在消息id是包含在由不正常id列表保持部4150保持的不正常id列表中的id的情况下,向帧生成部140进行通知,以使得发送错误帧。另外,帧解析部4151在接收到错误帧的情况下,即在根据所接收到的帧的值而解析为成为错误帧的情况下,自此之后将该帧废弃,即中止帧的解析。

mac密钥保持部4180通过存储器等存储介质而实现,保持对识别mac密钥的各个密钥id关联有更新前和更新后的2个mac密钥(用于计算mac所需的密钥)的密钥表。在此,设为利用按各个消息id而不同的mac密钥,因此密钥id与消息id相同。此外,在由mac生成部3170生成mac的情况下只要不特别说明,基本上使用更新后的mac密钥。

计数器保持部3190通过存储器等存储介质而实现,保持对识别计数器密钥的各个计数器id关联有计数器值(用于计算mac所需的计数器值)的计数器表。在此,设为利用按各个消息id而不同的计数器,因此计数器id与消息id相同。该计数器值在正常接收到帧的情况下递增。

mac密钥更新部4110在由帧收发部160接收到密钥更新帧或者密钥更新&计数器复位帧的情况下,按照这些帧来更新mac密钥保持部4180保持的mac密钥。

计数器复位部4120在由帧收发部160接收到计数器复位帧或者密钥更新&计数器复位帧的情况下,按照这些帧对计数器保持部3190保持的计数器值进行复位。

不正常mac检测部4131是对实施方式3中示出的不正常mac检测部3130的一部分进行了变形而得到的,具有接收从帧解析部4151通知的消息id、数据域的值(数据)来验证数据域中的mac的功能。不正常mac检测部4131将被通知来的消息id以及数据域的值通知给mac生成部3170,取得由mac生成部3170生成的mac。不正常mac检测部4131判定数据域的数据是否符合表示不正常的预定条件。该表示不正常的预定条件是所设定的验证处理步骤(包含mac的生成、mac的比较等的步骤)中的验证失败、即数据所包含的mac与由mac生成部3170生成的mac不同这一条件。不正常mac检测部4131通过将从mac生成部3170取得的mac和数据域中的mac进行比较来进行是否不正常的判定(即mac的验证)。在两个mac的值的比较结果不一致的情况下,使保护条件保持部4140的保护条件表中的相应消息id的不正常计数递增。另外,在两个mac的值的比较结果不一致的情况下,向帧生成部140进行通知,以使得发送错误帧。另外,在两个mac的值的比较结果不一致的情况下,还存在在本机(不正常检测ecu4100a)与数据帧的发送源的ecu之间未同步更新mac密钥或者计数器值的可能性,因此向帧生成部140进行委托以使得发送更新帧。该情况下发送的更新帧基本上是密钥更新&计数器复位帧。但是,也可以取代密钥更新&计数器复位帧而依次发送密钥更新帧以及计数器复位帧。此外,不正常mac检测部4131也可以在向帧生成部140进行委托以使得发送密钥更新&计数器复位帧之前,通过使用更新前的mac密钥来生成mac,由此再次验证上述的数据域所包含的mac。在通过该再次验证而成功了的情况(即两个mac一致的情况)下,推定为计数器同步而仅需要进行mac密钥的同步,不正常mac检测部4131可以向帧生成部140进行委托,以使得取代发送密钥更新&计数器复位帧而发送密钥更新帧。另外,在再次验证也失败了的情况下,鉴于计数器也未同步的可能性,可以采用也发送计数器复位帧的方法。另外,不正常mac检测部4131在mac的验证成功了的情况(比较的两个mac的值一致的情况)下,向mac生成部3170进行通知,以使得计数器保持部3190保持的与消息id对应的计数器值递增。

保护条件保持部4140通过存储器等存储介质而实现,保持对尽管发送了更新帧(密钥更新帧、计数器复位帧或者密钥更新&计数器复位帧)但之后的mac的验证的结果是继续验证失败(生成的mac的值与接收到的数据域中的mac的值的比较结果不一致的状态)的情况下的应对处理即保护行为进行了定义的保护条件表620。关于保护条件表620,后面使用图41进行说明。

保护处理部4130按照保护条件保持部4140保持的保护条件表620来执行保护行为。保护行为有将mac的验证失败了的帧的消息id追加到不正常id列表保持部4150保持的不正常id列表中的处理、将该消息id记录到不正常日志保持部4160保持的日志中的处理、指示模式变更处理部4170以使得车辆变成安全状态的处理等。

不正常id列表保持部4150通过存储器等存储介质而实现,保持用于列举判断为不正常的数据帧(mac的验证失败了的数据帧等)的消息id的不正常id列表。

不正常日志保持部4160通过存储器、硬盘等存储介质(记录介质)而实现,保持用于记录发送了不正常的数据帧等这样的事件的日志。作为与日志所记录的事件相关的信息,例如列举有不正常的数据帧的消息id、不正常的数据帧被发送的日期时刻、不正常的数据帧被发送的次数等。此外,也可以为了不使日志被篡改而对日志的内容附加数字签名等、和/或对日志的内容进行加密。

模式变更处理部4170在从保护处理部4130指示了使车辆变成安全状态的情况下,为了将应该使车辆变成安全状态(例如将速度限定在一定速度以下的状态等)这一情况传达给其他ecu而使帧生成部140生成作为预先确定的帧的模式变更帧。当模式变更帧被帧生成部140生成并由帧收发部160发送时,其他ecu能够接收模式变更帧来执行预先确定的控制(例如将车辆的发动机的转速限定在一定转速以下的控制等)。此外,为了使车辆变成安全状态而预先确定的控制内容不特别限于使车辆的速度变成低速。

[4.4ecu4400a的接收id列表例]

图37是表示在ecu4400a的接收id列表保持部440中保持的接收id列表的一例的图。ecu4400a选择性地接收在总线中流动的帧中的包含列举在接收id列表中的消息id的任一个在内的帧来进行处理。ecu4400a为了接收指示mac密钥的更新的密钥更新帧、指示计数器值的更新的计数器复位帧以及指示mac密钥更新和计数器复位的密钥更新&计数器复位帧,它们的id被登记在接收id列表中。在图37所示的接收id列表的例子中,“2001”为密钥更新帧的id,“2002”为计数器复位帧的id,“2003”为密钥更新&计数器复位帧的id。此外,在ecu4400b中也保持同样的接收id列表。此外,在本实施方式中,由于需要取得mac密钥等的更新的同步,所以网关300保持的接收id列表(参照图5)设为还包括密钥更新帧的id“2001”、计数器复位帧的id“2002”以及密钥更新&复位帧的id“2003”。

[4.5更新帧]

图38是表示更新帧的一例的图。该图中,列举了更新帧中的密钥更新&计数器复位帧的例子,但关于密钥更新帧以及计数器复位帧也为同样的构成。

在mac密钥更新&计数器复位帧中,作为id域的消息id,使用了“2003”这一密钥更新&计数器复位id(密钥更新&计数器复位帧用的id)。另外,在数据域中设定有成为mac密钥更新、计数器复位等的对象的消息id(更新对象id)和mac。在图38中,(a)示出了指示不管消息id如何都指示进行一次全部消息id的mac密钥更新和计数器复位的密钥更新&计数器复位帧的具体例子。设为通过“0xffff”这一数据来表示全部的消息id。另外,在图38中,(b)示出了指示进行一次关于“4”这一消息id的mac密钥更新和计数器复位的密钥更新&计数器复位帧的具体例子。

[4.6密钥表]

图39是表示在不正常检测ecu4100a的mac密钥保持部4180中保持的密钥表的一例的图。密钥表使密钥id、用于识别是更新前的mac密钥还是更新后的mac密钥的更新信息、和密钥值相关联而构成。在更新mac密钥时,由mac密钥更新部4110生成的新的mac密钥作为“更新后”的密钥值写入表中,在此之前利用的mac密钥作为“更新前”的密钥值而记录。在此,设为利用按各个消息id而不同的mac密钥,因此密钥id与消息id相同。不正常检测ecu4100a对应于本机可接收的帧而保持有多个密钥id的mac密钥。另外,与不正常检测ecu4100a同样地,不正常检测ecu4100b以及ecu4400a~4400d分别也保持用于对本机发送或者接收的帧的各个消息id关联更新前后的mac密钥而保存的mac密钥表。

在不正常检测ecu4100a等的mac密钥更新部4110或者ecu4400a等的mac密钥更新部4410中更新mac密钥的方法,例如通过如下的步骤等来实现:将在mac的生成时所使用的“更新后”的密钥值(mac密钥)作为“更新前”的密钥值记录在密钥表中,将该“更新后”的mac密钥输入到预先确定的单向函数(例如散列函数等)而导出的结果作为新的mac密钥、即重新作为“更新后”的密钥值而记录到密钥表中。作为导出新的mac密钥的运算,也可以使用基于所输入的种子(seed)通过预先确定的算法来输出新的mac密钥的函数。该情况下,例如可以使得在指示mac密钥的更新的更新帧(密钥更新帧或者密钥更新&计数器复位帧)的数据域中包含种子,也可以将计数器值、当前时刻的信息等作为种子进行利用。即,只要在应该同步更新mac密钥的多个ecu(或不正常检测ecu)之间生成相同的mac密钥即可。

[4.7计数器表]

图40是表示在不正常检测ecu4100a的计数器保持部3190中保持的计数器表的一例的图。计数器表使计数器id与计数器值相关联而构成。在此,设为利用按各个消息id而不同的计数器,因此计数器id与消息id相同。不正常检测ecu4100a对应于本机可接收的帧而保持有多个计数器id的计数器值。另外,与不正常检测ecu4100a同样地,不正常检测ecu4100b以及ecu4400a~4400d分别也保持用于对本机发送或者接收的帧的各个消息id关联计数器值而保存的计数器表。与计数器表的消息id对应的计数器值在正常发送了或者接收到该消息id的帧的情况下递增(增加1)。作为该方法,在发送数据帧的情况下将计数器值作为发送计数器来处理,对发送次数进行计数。另外,在接收数据帧的情况下将计数器值作为接收计数器来处理,对接收次数进行计数。例如,在发送消息id为“1”的数据帧的ecu4400a中,将计数器表的计数器id为“1”所对应的计数器值作为发送计数器来处理,每发送一次就使发送计数器递增。另外,例如在接收消息id为“1”的数据帧的ecu4400b中,将计数器表的计数器id为“1”所对应的计数器值作为接收计数器来处理,每次正常接收到被发送来的数据帧就使接收计数器递增。

不正常检测ecu4100a等的计数器复位部4120或者ecu4400a等的计数器复位部4420中的计数器值的复位,例如通过以使得成为零等预先确定的特定值的方式更新计数器值来实现。如果在应该同步更新(复位)计数器值的多个ecu(或者不正常检测ecu)之间在复位后保持相同的计数器值,则特定值也可以不一定为零。

[4.8保护条件表620]

图41是表示保护条件保持部4140保持的保护条件表620的一例的图。保护条件表620包括功能分类621、消息id622、不正常计数623、不正常计数阈值624、保护行为625。功能分类621是用于通过设为帧(数据帧)的内容的数据或者其发送源的ecu相关联的功能(与发送源的ecu连接的设备的功能等)对帧的消息id进行分类的项目。车载网络系统13中的多条总线分别在与连接于总线的ecu关联的功能性方面属于多个种类的组(功能组)中的任一个组或者多个组。因此,功能分类621也可以说是表示是对应的消息id的帧由哪条总线发送、即由属于多个种类的组中的哪个组的总线发送。“驱动系统”为发动机、马达、燃料、电池、传输的控制等这样的与车辆的行驶关联的功能,例如与ecu4400a对应。“底盘(chassis)系统”为制动器、转向机构等的“转弯”、“停止”等这样的与车辆的举动等的控制关联的功能,例如ecu4400b进行应对。“车体系统”为车门锁、空调机、灯、方向指示器等这样的车辆设备的控制功能,例如ecu4400c、4400d进行应对。另外,例如“安全舒适功能”为自动制动器、车道维持功能、车间距离维持功能、防碰撞功能等这样的用于自动且安全地实现舒适驾驶的功能,“its(intelligenttransportsystems,智能交通系统)功能”为与etc(electronictollcollectionsystem,电子收费系统)等的智能道路交通系统对应的功能,“远程信息服务(telematics)”为与车辆被盗时的追踪等这样的使用了移动体通信的服务对应的功能,“信息娱乐(infotainment)”为与汽车导航、音频等关联的娱乐功能。消息id622是can协议中的帧的id。不正常计数623是用于保持mac的验证失败的次数(错误产生次数)的项目(区域)。不正常计数阈值624表示在不正常计数623的值成为了该阈值以上的情况下执行保护行为的阈值。保护行为625是对在不正常计数623的值成为了不正常计数阈值624表示的阈值以上的情况下执行的、应对不正常的应对处理的各种保护行为确定了是否进行该执行的信息。如图41所示,保护行为625确定了是否将mac的验证失败的消息id追加到不正常id列表中、是否将产生了不正常这一情况通知给头单元200、对于产生了不正常这一情况是否记录到日志中、是否向模式变更处理部4170发出进行用于使车辆变成安全状态的模式变更的指示。

在图41所示的保护条件表620中,关于“驱动系统”以及“底盘系统”,将不正常计数阈值624设定为“5”,关于“车体系统”,将不正常计数阈值624设定为“10”。在图41的例子中,保护行为625对于全部的功能分类,使表示执行向不正常id列表追加不正常帧(验证失败的帧)的消息id以及向头单元200通知产生了不正常这一情况之意的“有效”。另外,进行用于使车辆变成安全状态的模式变更的指示(“有效(切换安全状态)”),仅对“驱动系统”、“底盘系统”以及“安全舒适功能”这样的与安全方面关联的功能分类进行设定。在保护条件表620中,能够如此按功能分类地定义保护行为的执行条件以及处理内容。此外,保护条件表620的内容例如可能会在车载网络系统制造时、销售时等设定。

[4.9不正常id列表]

图42是表示不正常id列表保持部4150保持的不正常id列表的一例的图。在不正常id列表中,在将作为保护条件表的保护行为625而不正常id列表的追加被确定为“有效”的消息id的帧判断为不正常的情况(即该帧的mac的验证失败了的情况)下,通过保护处理部4130追加消息id。此外,在不正常id列表中也可以预先包含不应该在车载网络系统13中发送的消息id。

[4.10与不正常帧的检测以及保护行为相关的序列]

以下,关于在具备上述结构的车载网络系统13的总线500a上连接有不正常ecu的情况,对与总线500a连接的不正常检测ecu4100a、ecu4400a、ecu4400b、网关300等的工作进行说明。

图43~图45是表示由不正常检测ecu4100a进行的不正常帧(消息)的检测、各ecu中的mac密钥的更新以及计数器值的复位、以及由不正常检测ecu4100a进行的保护行为的工作例的时序图。在此,不正常检测ecu4100a保持的保护条件表以图41所例示的内容进行说明。在此,设想不正常ecu连接于总线500a的例子。该不正常ecu发送消息id为“4”且数据域中包含数据“0xff”等的数据帧。

首先,不正常ecu开始上述的不正常的数据帧的发送(序列s4001)。不正常检测ecu4100a、ecu4400a、ecu4400b以及网关300分别接收消息id(序列s4002)。ecu4400a、ecu4400b以及网关300分别使用所保持的接收id列表来检查消息id(序列s4003)。ecu3400a以及ecu3400b由于在分别保持的接收id列表中不包含“4”(参照图37),所以结束接收。网关300由于在所保持的接收id列表中包含“4”(参照图5),所以继续接收并进行数据域的接收(序列s4004)。同样地,不正常检测ecu4100a也进行数据域的接收(序列s4004)。

接着序列s4004,不正常检测ecu4100a验证数据域中的数据所包含的mac(序列s4005)。即,不正常检测ecu4100a将被发送来的帧中的数据域的数据中的应该包含mac的预定位置的内容和使用mac密钥(即在密钥表中作为与id“4”对应的“更新后”的密钥值而保持的mac密钥)等通过mac生成部3170生成的mac进行比较来验证mac。由于在从不正常ecu发送的不正常的数据帧中未保存正确的mac,所以比较的结果不一致,mac的验证失败。在mac的验证失败了的情况下,在不正常检测ecu4100a中,使保护条件表620的与消息id“4”对应的不正常计数623的值递增。

在车载网络系统13中,如果存在连接有不正常ecu的可能性,则为了提高对于从不正常ecu对mac的暴力攻击等的抗攻击性,进行mac的生成所使用的数据的更新(即mac密钥的更新或者计数器值的复位)是有用的。与该数据的更新相关联,在mac的验证失败了的情况下,有可能会在与正规的ecu之间mac密钥或者计数器值的同步失败。另外,也有可能会由于不正常ecu发送的不正常的数据帧而导致mac的验证失败。因此,鉴于此,设为不正常检测ecu4100a在mac的验证失败了的情况下发送更新帧。即,不正常检测ecu4100a在mac的验证失败了的情况下,通过帧生成部140生成将消息id为“4”作为更新对象id而设定的密钥更新&计数器复位帧(参照图38)(序列s4006),通过帧收发部160发送密钥更新&计数器复位帧(序列s4007)。

ecu4400a、ecu4400b以及网关300由于在接收id列表中包含作为更新帧的密钥更新&计数器复位帧的消息id“2003”,所以接收密钥更新&计数器复位帧(序列s4008)。

接着,ecu4400a、ecu4400b以及网关300判断所接收到的更新帧是否是指示mac密钥的更新的帧(序列s4009),如果是指示mac密钥的更新的密钥更新帧或者密钥更新&计数器复位帧,则进行mac密钥的更新(序列s4010)。

另外,ecu4400a、ecu4400b以及网关300判断所接收到的更新帧是否是指示计数器值的更新(复位)的帧(序列s4011),如果是指示计数器值的复位的计数器复位帧或者密钥更新&计数器复位帧,则进行计数器值的复位(序列s4012)。

此外,虽然图44中进行了省略,但不正常检测ecu4100a也可以进行序列s4008~s4012的处理步骤,同样地可以进行与消息id“4”对应的mac密钥的更新以及计数器值的复位。

另外,不正常检测ecu4100a判断与保护条件表620的任一个消息id对应的不正常计数623的值是否成为了不正常计数阈值624所表示的阈值以上(序列s4013),在成为了阈值以上的情况下进行保护行为处理(图46)(序列s4014)。在此,中断图45中的序列的说明,结合图46对该保护行为处理进行说明。此外,使用保护条件表620中的与消息id“4”对应的不正常计数623的值成为了不正常计数阈值624所表示的阈值以上的例子进行说明。

图46是表示不正常检测ecu4100a中的保护行为处理的流程图。

不正常检测ecu4100a按照保护条件表620中的与不正常计数623的值成为了由不正常计数阈值624表示的阈值以上的消息id(在图45的序列的例子中为“4”)对应的保护行为625,判别向不正常id列表的追加是否为“有效”(步骤s4020)。如果为“有效”,不正常检测ecu4100a的保护处理部4130向不正常id列表保持部4150保持的不正常id列表追加消息id(步骤s4021)。

另外,不正常检测ecu4100a按照保护条件表620中的与消息id“4”对应的保护行为625,判别向头单元的通知是否为“有效”(步骤s4022)。如果为“有效”,则不正常检测ecu4100a的保护处理部4130通过发送包含表示进行了不正常帧的发送之意的信息的帧的控制等来进行向头单元200的通知(步骤s4023)。

另外,不正常检测ecu4100a按照保护条件表620中的与消息id“4”对应的保护行为625,判别日志的记录是否为“有效”(步骤s4024)。如果为“有效”,则不正常检测ecu4100a的保护处理部4130向不正常日志保持部4160保持的日志补记与进行了不正常帧的发送这一情况相关的事件的信息(步骤s4025)。

另外,不正常检测ecu4100a按照保护条件表620中的与消息id“4”对应的保护行为625,判别用于使车辆变成安全状态的模式变更是否为“有效”(步骤s4026)。如果为“有效”,则不正常检测ecu4100a的保护处理部4130向模式变更处理部4170发出进行用于使车辆变成安全状态的模式变更的指示(步骤s4027)。

在与消息id“4”对应的不正常计数623的值成为了不正常计数阈值624表示的阈值以上的情况下,会执行向不正常id列表追加消息id(步骤s4021)、以及向头单元200通知与不正常帧的发送相关的信息(步骤s4023)。

以下,再次返回到图45中的序列的说明。

在此,设为在不正常检测ecu4100a进行了上述的保护行为处理之后,不正常ecu再次发送了消息id为“4”且数据域中包含数据“0xff”等的数据帧(序列s4015)。

在该时刻,与不正常检测ecu4100a接收到的消息id“4”相同的消息id包含在由不正常id列表保持部4150保持的不正常id列表中(序列s4016),因此不正常检测ecu4100a的帧解析部4151使帧生成部140生成错误帧(序列s4017)。

接着,不正常检测ecu4100a使帧收发部160发送错误帧(序列s4018)。由此,在由不正常ecu进行的消息id“4”的数据帧的发送完成之前,该数据帧的一部分会被错误帧覆写。因此,阻止了其他ecu接收不正常的数据帧并进行对应的处理。此外,在接收到数据帧时,如果在不正常id列表中不包含与所接收到的消息id相同的消息id,则不正常检测ecu4100a继续数据帧的接收(序列s4019),执行序列s4004~序列s4014的步骤。

[4.11实施方式4的效果]

在实施方式4中示出的车载网络系统13中,在不正常检测ecu和正常的ecu之间未取得mac密钥的更新或者计数器值的复位的同步而数据帧的mac的验证失败的情况下,通过从不正常检测ecu发送指示mac密钥更新或者计数器值的复位的更新帧,可消除同步偏差。另外,能够判别无法正确进行mac密钥更新以及计数器值的复位的不正常ecu,基于来自不正常ecu的帧,能阻止其他ecu按照该帧进行处理。另外,通过保护条件表,能根据通过mac的验证而检测到不正常数据帧的次数等来适当地定义应对处理,应对不正常情况。

(其他的实施方式等)

如上所述,作为本公开涉及的技术的例示,说明了实施方式1~4。然而,本公开涉及的技术不限定于此,在适当进行了变更、替换、附加、省略等的实施方式中也能够适用。例如,以下的变形例也包含在本公开的一个实施技术方案中。

(1)在上述实施方式中,示出了通过各ecu定期地发送帧的例子,但也可以作为通知状态变化的事件而发送帧。例如,ecu也可以不是定期地发送门的开关状态,而是仅在门的开关状态发生了变化的情况下才发送帧。另外,也可以设为ecu定期地发送帧、且在发生了状态变化时发送帧。

(2)在上述实施方式中,通过基于消息id、数据值和计数器值的运算来生成(计算)mac,但只要是反映数据帧的一部分内容(即基于一部分内容)来生成mac即可,也可以仅根据数据值来生成mac。另外,也可以仅根据计数器值来生成mac。接收数据帧的ecu中的mac的验证方式,只要与发送数据帧的ecu对数据帧赋予mac的方式对应即可。另外,在赋予mac的数据帧中,在数据域内除了数据值以及mac之外还可以包含一部分或者全部的计数器值。另外,帧所包含的mac的大小并非限制于4个字节,也可以是按每次发送而不同的大小。同样,时速等数据值的大小以及计数器值的大小也并非限制于1个字节。

(3)在上述实施方式中,示出了每次发送都使计数器值递增的例子,但计数器值也可以是随着时刻而自动递增的值。另外,也可以取代计数器而使用时刻本身的值。即,若使得基于每次发送数据帧时都变化的变量(计数器、时刻等)来生成mac,则可能会使mac的不正常的解读变得困难。另外,与计数器值对应的运算不限定于递增(增加1)。也可以进行2以上的增加,不限定于通过递增实现的计数增加,也可以是通过递减实现的计数减小。另外,与计数器值对应的运算例如也可以是移位,还可以将以上次的运算结果作为输入值,将基于预先设定的算法而确定出的输出值作为运算结果的运算等。

(4)在上述实施方式中,以标准id格式记述了can协议中的数据帧,但也可以是扩展id格式。在扩展id格式的情况下,由于用标准id格式中的id位置的基础id和扩展id共29比特来表示id(消息id),所以将该29比特的id作为上述实施方式中的id(消息id)来处理即可。

(5)在上述实施方式中,使算出mac的算法为hmac,但其也可以是cbc-mac(cipherblockchainingmessageauthenticationcode:密码块链接消息认证码)、cmac(cipher-basedmac:基于密码的消息认证码)。另外,关于用于mac计算的填充,零填充、iso10126、pkcs#1、pkcs#5、pkcs#7、其他块的数据大小对计算来说是需要大小的填充方式都可以。另外,关于4个字节等对块的大小的变更方法,也可以在开头、尾端以及中间的任一个部分进行填充。另外,用于算出mac的数据也可以不是连续的数据(例如4个字节的连续数据),也可以按照特定规则而逐个比特收集并结合。

(6)上述实施方式中示出的不正常帧检测部以及不正常mac检测部也可以安装于被称为can控制器的硬件或者在与can控制器连接而工作的处理器上进行工作的固件。另外,mac密钥保持部、计数器保持部、正规id列表保持部、数据范围列表保持部、不正常id列表保持部、保护条件保持部也可以保存在被称为can控制器的硬件的寄存器或者在与can控制器连接而工作的处理器上进行工作的固件中。

(7)上述实施方式的保护条件表是一例,也可以是与例示的值不同的值,还可以是设定了多个条件的值。另外,保护条件表设为是不正常检测ecu实现设定的,但也可以在车载网络系统出厂时或者搭载有车载网络系统的车体出厂时设定。上述的保护条件表等的信息类可以在保持于保护条件保持部之后进行更新,保护条件表等的信息类可以基于与外部的通信而设定,也可以使用各种记录介质等而设定,还可以通过工具类等而设定。

(8)在上述实施方式中,每个消息id保持有一个mac密钥,但也可以每个ecu(即按1个以上的消息id组)保持有一个mac密钥。另外,不需要全部ecu保持有相同的mac密钥。另外,与同一总线连接的各ecu也可以保持共同的mac密钥。但是,发送相同消息id的帧的ecu和接收该帧并进行验证的ecu需要保持相同的mac密钥。另外,关于保持同一mac密钥的范围,也可以为即使与互不相同的总线连接的ecu间也保持同一密钥,按每台车辆而保持同一密钥,按同一车型的车辆而保持同一密钥,按同一制造商而保持同一密钥,即使互不相同的制造商也保持同一密钥等。此外,也可以在mac密钥保持部中对更新前和更新后的mac密钥进行加密并保持。

(9)在上述实施方式中,每个消息id保持有一个计数器值,但也可以是每个ecu(即按1个以上的消息id组)保持有一个计数器值。另外,也可以对在同一总线上流动的全部帧使用共同的计数器值。

(10)在上述实施方式中,在不正常检测ecu对mac的验证失败了的情况(其失败次数超过了阈值的情况)下,设为了向头单元通知进行了不正常帧的发送之意,但也可以是头单元将与该不正常相关的信息通过通信通知给车载网络系统的外部的服务器装置等。由此,在外部服务器装置等中,能够收集在车载网络系统中产生的与不正常相关的信息。另外,头单元在接收到进行了不正常帧的发送之意的通知时,也可以通过向显示器的显示、蜂鸣器的鸣响等来向驾驶员进行报告。另外,在上述实施方式中,在不正常检测对mac的验证失败了的情况(其失败次数超过了阈值的情况)下,设为了进行用于使车辆的状态变成安全状态的控制,只要是用于对车辆的功能施加一定的抑制而成为预先设定的特定状态的控制就足够。用于成为该特定状态的控制例如是控制车辆的一部分机构、经由总线发送用于将车辆的一部分机构的控制指示给1个或多个ecu的帧等。

(11)取代上述实施方式中不正常检测ecu对mac的验证失败了的情况下发送的密钥更新&计数器复位帧,不正常检测ecu也可以仅使用密钥更新帧和计数器复位帧的任一方。例如,在包括不正常检测ecu的各ecu中在mac的生成中未使用计数器值或者虽然使用计数器值但未进行计数器值的复位的情况下,不正常检测ecu在mac的验证失败时仅发送更新帧中的密钥更新帧是有用的。另外,在不正常检测ecu中对与所接收到的数据帧相关的mac的验证失败了的情况下,成为与该数据帧相同的消息id的数据帧的发送侧以及接收侧的ecu以及不正常检测ecu,也可以通过更新帧的收发以外的方法(例如经由不利用can协议的通信线路来进行信号的授受等)进行同步来进行mac密钥的更新或者计数器值的复位。

(12)上述实施方式中示出的can协议可以具有也包括ttcan(time-triggeredcan,时间触发can)、canfd(canwithflexibledatarate,灵活数据传输率的can)等的派生协议在内的广义上的含义。

(13)上述实施方式中的各ecu(包括不正常检测ecu、网关以及头单元)例如是处理器、存储器等包括数字电路、模拟电路、通信线路等的装置,但也可以包括硬盘装置、显示器、键盘、鼠标等其他的硬件构成要素。另外,也可以取代由处理器执行存储器所存储的控制程序并以软件方式来实现功能,而通过专用的硬件(数字电路等)来实现其功能。

(14)上述实施方式中的构成各装置的构成要素的一部分或者全部也可以由1个系统lsi(largescaleintegration:大规模集成电路)构成。系统lsi是将多个构成部集成于1个芯片上而制造出的超多功能lsi,具体而言,是包含微处理器、rom、ram等而构成的计算机系统。所述ram中存储有计算机程序。所述微处理器按照所述计算机程序进行工作,由此系统lsi达成其功能。另外,构成上述各装置的构成要素的各部既可以单独地单芯片化,也可以以包含一部分或全部的方式单芯片化。另外,虽然此处设为lsi,但根据集成度不同,也可以称为ic、lsi、超大lsi(superlsi)、特大lsi(ultralsi)。另外,集成电路化的方法不限于lsi,也可以通过专用电路或者通用处理器实现。也可以在lsi制造后利用fpga(fieldprogrammablegatearray;现场可编程门阵列)或者可以对lsi内部的电路单元的连接和/或设定进行重构的可重构处理器(reconfigurableprocessor)。进而,随着半导体技术的发展或者派生的其他技术的出现,如果出现能够替代lsi的集成电路化的技术,当然也可以利用该技术进行功能块的集成化。也可能会存在适用生物技术的可能性。

(15)构成上述各装置的构成要素的一部分或者全部也可以由能够装卸于各装置的ic卡或者单体模块构成。所述ic卡或者所述模块是由微处理器、rom、ram等构成的计算机系统。所述ic卡或者所述模块也可以包含上述超多功能lsi。微处理器按照计算机程序进行工作,由此所述ic卡或者所述模块达成其功能。该ic卡或者该模块也可以具有抗篡改性。

(16)作为本公开的一个技术方案,也可以是上述所示的不正常应对方法等方法。另外,也可以是通过计算机实现上述的方法的计算机程序,还可以是通过所述计算机程序形成的数字信号。另外,作为本公开的一个技术方案,也可以将所述计算机程序或者所述数字信号记录于计算机可读取的记录介质例如软盘、硬盘、cd-rom、mo、dvd、dvd-rom、dvd-ram、bd(blu-ray(注册商标)disc)、半导体存储器等。另外,也可以是记录在上述的记录介质中的所述数字信号。另外,作为本公开的一个技术方案,也可以将所述计算机程序或所述数字信号经由电通信线路、无线或有线通信线路、以因特网为代表的网络、数据广播等进行传输。另外,作为本公开的一个技术方案,也可以是具有微处理器和存储器的计算机系统,所述存储器记录有上述计算机程序,所述微处理器可以按照所述计算机程序进行工作。另外,通过将所述程序或所述数字信号记录在所述记录介质中转移、或经由所述网络等将所述程序或所述数字信号进行转移,可以通过独立的其他的计算机系统来实施。

(17)通过将上述实施方式以及上述变形例中示出的各构成要素以及功能进行任意组合而实现的实施方式也包含在本公开的范围中。

产业上的可利用性

本公开能够在车载网络系统中为了应对不正常帧的发送而利用。

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