车载网络系统、不正常检测电子控制单元以及不正常应对方法_4

文档序号:9872708阅读:来源:国知局
ECU3400a是对实施方式I中示出的EClMOOa的一部分进行了变形而得到的,对于具有与实施方式I同样的功能的构成要素,标注相同的附图标记而省略说明。
[0252]帧生成部3420是对实施方式I中示出的帧生成部420的一部分进行了变形而得到的。帧生成部3420按照从帧解析部450通知的指示错误帧的发送的通知,构成错误帧,将错误帧通知给帧收发部460并使其发送该错误帧。另外,帧生成部3420将从数据取得部470通知的数据的值和预先设定的消息ID通知给MAC生成部3410,接收所算出的MAC。帧生成部3 4 2 O以使得包含预先设定的消息ID、从数据取得部4 7 O通知的数据的值、和从M A C生成部3410接收到的MAC的方式构成帧(参照图26),并通知给帧收发部460。
[0253]MAC生成部3410使用由MAC密钥保持部3430保持的MAC密钥,对结合了从帧生成部3420通知的消息ID和数据的值、与由计数器保持部3440保持的计数器值而得到的值(结合值)算出MAC(通过计算而导出),将作为该算出的结果的MAC通知给帧生成部3420。在此,作为MAC的计算方法,米用HMAC(Hash_based Message Authenticat1n Code,基于散列运算的消息认证码)(参照非专利文献2),对上述结合值,以进行填充直到预定的块量(例如4个字节)而成的值,使用MAC密钥进行计算,将得出的计算结果的开头4个字节作为MAC值。此夕卜,在此,为了算出MAC而使用的结合值,使用了消息ID、数据的值和由计数器保持部3440保持的计数器值,但也可以使用这3个中的任意一个或2个的组合来算出MAC。
[0254]MAC密钥保持部3430保持为了计算MAC所需的MAC密钥。
[0255]计数器保持部3440保持为了计算MAC所需的计数器值。此外,该计数器值每次在帧收发部460中正常发送了数据帧时递增。
[0256]此外,ECU3400b?3400d分别是对实施方式I中示出的EClMOOb?400d的一部分进行了变形而得到的,具备与上述的ECU3400a基本上同样的构成。但是,接收ID列表保持部440所保持的接收ID列表可能会成为按各个E⑶而不同的内容。例如E⑶3400a以及ECU3400b保持图9所例示的接收ID列表,E⑶3400c以及E⑶3400d保持图5所例示的接收ID列表。另外,帧处理部410的处理内容如实施方式I所示按各个ECU而不同。以下,使用图26?图29对E⑶3400a?3400d分别发送的帧的内容进行说明。
[0257][3.3与发动机相关的E⑶3400a的发送帧例]
[0258]图26是表示从与发动机401连接的ECU3400a发送的数据帧的ID(消息ID)以及数据域(数据)的一例的图。E⑶3400a发送的帧的消息ID为“I”。在该图中,按每个字节而用空格区分表示数据,开头的I个字节表示时速(km/小时),接着的I个字节表示计数器值,接着的4个字节表示MAC。此外,在图26的例子中MAC由16进制数来标记。开头I个字节的时速(km/小时)取最低O (km/小时)?最高180 (km/小时)的范围的值。从图26的上面的行向下面的行例示了与从ECU3400a逐次发送的各帧对应的各消息ID以及数据,示出了计数器值逐渐增加、时速从Okm/小时起每次加速Ikm/小时的情形。
[0259][3.4与制动器相关的ECU3400b的发送帧例]
[0260]图27是表示从与制动器402连接的ECU3400b发送的数据帧的ID(消息ID)以及数据域(数据)的一例的图。E⑶3400b发送的帧的消息ID为“2”。在该图中,按每个字节而用空格区分表示数据,开头的I个字节以比例(%)的方式表示制动的施加情况,接着的I个字节表示计数器值,接着的4个字节表示MAC。此外,在图27的例子中,MAC由16进制数来标记。对于开头I个字节的制动的施加情况,将完全没有施加制动的状态设为0( %),将最大限度地施加制动的状态设为100( % )。从图27的上面的行向下面的行例示了与从ECU3400b逐次发送的各帧对应的各消息ID以及数据,示出了计数器值逐渐增加,对于制动而言从100%逐渐减弱制动的情形。
[0261][3.5与门开关传感器相关的E⑶3400c的发送帧例]
[0262]图28是表示从与门开关传感器403连接的ECU3400c发送的数据帧的ID(消息ID)以及数据域(数据)的一例的图。E⑶3400c发送的帧的消息ID为“3”。在该图中,按每个字节而用空格区分表示数据,开头的I个字节表示门的开关状态,接着的I个字节表示计数器值,接着的4个字节表示MAC。此外,在图28的例中MAC由16进制数来标记。对于开头I个字节的门的开关状态,将开着门的状态设为“I”,将关着门的状态设为“O”。从图28的上面的行向下面的行例示了与从ECU3400C逐次发送的各帧对应的各消息ID以及数据,示出了计数器值逐渐增加,从开着门的状态逐渐向关闭的状态转变的情形。
[0263][3.6与窗开关传感器相关的E⑶3400d的发送帧例]
[0264]图29是表示从与窗开关传感器404连接的ECU3400d发送的数据帧的ID(消息ID)以及数据域(数据)的一例的图。E⑶3400d发送的帧的消息ID为“4”。在该图中,按每个字节而用空格区分表示数据,开头的I个字节以比例(%)的方式表示窗的开关状态,接着的I个字节表示计数器值,接着的4个字节表示MAC。此外,在图29的例子中MAC由16进制数来标记。对于开头I个字节的窗的开关状态,将完全关着窗的状态设为0(%),将完全开着窗的状态设为100(%)。从图29的上面的行向下面的行例示了与从ECU3400d逐次发送的各帧对应的各消息ID以及数据,示出了计数器值逐渐增加,从关着窗的状态逐渐打开的情形。
[0265][3.7不正常检测ECU3100a的构成]
[0266]图30是不正常检测ECU3100a的构成图。不正常检测ECU3100a包括帧收发部160、帧解析部3150、不正常MAC检测部3130、MAC密钥保持部3180、计数器保持部3190、帧生成部140、MAC生成部3170和不正常检测计数器保持部110。这些各构成要素是功能性的构成要素,该各功能通过不正常检测ECU3100a中的通信线路、执行存储器所保存的控制程序的处理器或数字电路等来实现。不正常检测ECU3100a是对实施方式I中示出的不正常检测ECUlOOa的一部分进行了变形而得到的,对于具有与实施方式I同样的功能的构成要素,标注相同的附图标记而省略说明。此外,不正常检测ECU3100b也是同样的构成。
[0267]帧解析部3150是对实施方式I中示出的帧解析部150进行了变形而得到的,从帧收发部160接收帧的值,进行解析以使得向由CAN协议规定的帧格式的各域进行映射。在判断为帧是数据帧的情况下,数据域和判断出的值(数据)与ID域的ID(消息ID) —起传送给不正常MAC检测部3130。另外,帧解析部3150在判断为是未遵循CAN协议的帧的情况下,向帧生成部140进行通知,以使得发送错误帧。另外,帧解析部3150在接收到错误帧的情况下,即在根据所接收到的帧的值而解析为成为错误帧的情况下,自此之后将该帧废弃,即中止帧的解析。
[0268]不正常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接收的控制,与实施方式I中说明的一样,因此省略在此的说明。另外,在两个MAC的值的比较结果不一致的情况下,向帧生成部140进行通知,以使得发送错误帧。在MAC值的比较结果一致的情况下,向MAC生成部3170进行通知,以使得计数器保持部3190保持的与消息ID对应的计数器值递增。
[0269]MAC生成部3170使用从不正常MAC检测部3130通知的消息ID,从MAC密钥保持部3180取得对应的MAC密钥,从计数器保持部3190取得对应的计数器值JAC生成部3170针对从不正常MAC检测部3130通知的数据域的值(开头I个字节的值)和从计数器保持部3190取得的计数器值,使用从MAC密钥保持部3180取得的MAC密钥来算出(通过计算而导出)MAC,将算出的MAC通知给不正常MAC检测部3130。此外,在不正常检测ECU3100a、3100b以及E⑶3400a?3400d的任一方中,使用MAC密钥来算出MAC的算法使用相同的算法。
[0270]MAC密钥保持部3180使用于计算MAC所需的MAC密钥与各个消息ID相关联地进行保持。该MAC密钥保持部3180保持的MAC密钥是按关联的各个消息ID而不同的值。此外,在ECU以及不正常检测ECU中使用的MAC密钥也可以设为在设想一个发送节点发送多个消息ID各自的帧的情况时按各个发送节点而不同的密钥。另外,MAC密钥例如也可以设为对相同总线上发送的帧使用相同的值,也可以设为即使在不同总线上也为相同的密钥(值),也可以设为按每台车辆而相同的密钥,也可以设为按相同的车型而相同的密钥,也可以设为按相同的制造商而相同的密钥,也可以设为即使是不同的制造商也为相同的密钥。
[0271]计数器保持部3190按各个消息ID保持用于计算MAC值所需的计数器值。该计数器值在正常接收到帧的情况(即在不正常MAC检测部3130中比较的两个MAC—致的情况)下递增。
[0272][3.8计数器值的例子]
[0273]图31是表示在计数器保持部3190中保持的各个消息ID的计数器值的一例的图。在该图中,消息ID为“I”的计数器示出了 I次,消息ID为“2”的计数器示出了 10次,消息ID为“3”的计数器示出了 15次,消息ID为“4”的计数器示出了 100次。与该各消息ID对应的计数器值示出了包含该消息ID的帧被正常接收的次数。
[0274][3.9与不正常帧的检测相关的序列]
[0275]以下,关于在具备上述结构的车载网络系统12的总线500a上连接有不正常ECU的情况,对与总线500a连接的不正常检测ECU3100a、ECU3400a、ECU3400b、网关300等的工作进行说明。
[0276]图32以及图33是表示不正常检测ECU3100a检测到不正常帧(消息),阻止从其他ECU进行应对该不正常帧的处理的工作例的时序图。在图32以及图33中,与实施方式I中示出的图18以及实施方式2中示出的图22以及图23的情况同样,示出了不正常ECU连接于总线500a的例子。该不正常E⑶发送消息ID为“4”且数据域(数据)为“OxFF FF FFFFFFFF”(6个字节)的数据帧。对与实施方式I或2中示出的序列相同的序列标注相同的附图标记,在此简化说明。
[0277]首先,不正常ECU开始上述的不正常数据帧的发送(序列SlOOla)。不正常检测ECU3100a、ECU3400a、ECU3400b 以及网关 300 分别接收消息 ID (序列51002)301340(^、ECU3400b以及网关300分别使用所保持的接收ID列表来检查消息ID(序列51003)<^0]3400&以及ECU3400b由于分别保持的接收ID列表中不包含“4”(参照图9),所以结束接收。网关300由于所保持的接收ID列表中包含“4”(参照图5),所以继续接收并进行数据域的接收(序列S1006a)。同样地,不正常检测ECU3100a也进行数据域的接收(序列S1006a)。
[0278]接着序列S1006a,不正常检测ECU3100a对数据域中的数据所包含的MAC进行验证(检查)(序列S3001)。即,不正常检测ECU3100a判定被发送来的帧中的ID域的内容是否符合表示不正常的预定条件(MAC的验证失败)。不正常检测E⑶3100a针对从不正常E⑶发送的数据帧中的数据域的6个字节的数据“OxFFFFFFFF”,比较后面4个字节的MAC与使用与消息ID“4”对应的MAC密钥和计数器而推算出的MAC进行比较,由此进行MAC的验证。因为该比较的结果不一致而验证失败,所以在不正常检测ECU3100a中判断为是不正常的数据帧,接着开始错误帧的发布准备(序列S1005)。
[0279]在不正常检测ECU3100a正在进行错误帧的发布准备的期间,网关300开始CRC域的接收(序列S2002)。
[0280]接着,错误帧的发布准备结束,不正常检测ECU3100a发送错误帧(序列S1007)。通过该错误帧的发送,在总线500a上从不正常ECU正在发送的帧的CRC序列的中途部分会被错误帧覆写。
[0281]接收到在序列S1007中发送的错误帧的网关300,在包含CRC序列的CRC域的接收中途,中止不正常E⑶发送出的数据帧的接收(序列S2003)。
[0282]不正常检测E⑶3100a使成为发送错误帧的对象的数据帧的ID“4”所对应的不正常检测计数器递增(序列S1009)。在作为递增后的结果是与ID“4”对应的不正常检测计数器达到了 17以上的情况下,不正常检测E⑶3100a发送错误表示消息(序列S1010)。
[0283][3.10实施方式3的效果]
[0284]实施方式3中示出的不正常检测ECU通过对包含在帧(数据帧)的数据域中的MAC进行验证来判定所发送的帧是否为不正常帧。由此,能够阻止在既有的ECU(即不正常检测ECU以及不正常ECU以外的ECU)中对不正常帧进行解析并执行应对该帧的处理。另外,仅通过接收到数据帧的数据域为止就能够进行判定,因此与接收数据帧的后部来进行判定的情况相比,能够抑制总线的通信量。
[0285]另外,不正常检测ECU使用不正常检测计数器对发送了错误帧的次数进行计数,由此,如果通过错误帧的接收而发送不正常的消息ID的节点中的发送错误计数器遵循CAN协议,则能够对达到应该转变到被动状态的上限值这一情况进行检测。由此,能够判定发送不正常的消息ID的节点是否遵照了 CAN协议的错误计数器的规格。
[0286]另外,通过仅将进行MAC的验证的节点设为不正常检测ECU,不需要通过不正常检测ECU以外的ECU进行验证,能够抑制系统整体的处理量、电力消耗量。
[0287](实施方式4)
[0288]以下,作为本公开的实施方式,对包含如下的不正常检测ECU的车载网络系统13进行说明,上述的不正常检测ECU在接收到数据帧的情况下消息认证码(MAC)的验证失败时,发送更新帧并再次验证MAC,所述更新帧对包含MAC的数据帧的发送源的ECU请求更新MAC的生成所利用的数据。在车载网络系统13中,如实施方式3所示,设为ECU发送包含根据消息ID、数据的值以及计数器值通过计算而生成的MAC的帧(数据帧),设为不正常检测ECU进行接收到的帧中的MAC的验证。在车载网络系统13中,在MAC的验证失败了的情况下,执行用于进行MAC的生成所利用的MAC密钥以及计数器值的一方或者两方的更新等的不正常应对方法。
[0289][4.1车载网络系统13的整体构成]
[0290]图34是表示实施方式4涉及的车载网络系统13的整体构成的图。车载网络系统13是对实施方式3中示出的车载网络系统12(或者实施方式I中示出的车载网络系统10)的一部分进行了变形而得到的。车载网络系统13构成为包括总线500a、500b、500c、不正常检测ECU4100a、4100b、头单元200、网关300、以及与各种设备连接的ECU4400a?4400d等ECU这种连接于总线的各节点。对于车载网络系统13的构成要素中的具有与实施方式1(或者实施方式3)同样的功能的构成要素,标注相同的附图标记而省略说明。
[0291]不正常检测ECU4100a、4100b分别与总线500a、总线500b连接,是具有判定从ECU4400a?4400d等发送的帧是否不正常,如果不正常则发送错误帧的功能、发送指示更新MAC密钥和计数器值的一方或两方的更新帧的功能等的ECU。作为更新帧,具体存在指示MAC密钥的更新的密钥更新帧、指示MAC密钥的更新以及计数器值的复位的密钥更新&计数器复位帧、以及指示计数器的复位的计数器复位帧。该更新帧中的密钥更新帧以及密钥更新&计数器复位帧,具有作为用于请求MAC密钥的更新的帧的性质,也即是MAC密钥更新请求帧。另外,更新帧中的计数器复位帧以及密钥更新&计数器复位帧,具有作为用于请求计数器值的更新(复位)的帧的性质,也即是计数器复位请求帧。在实施方式3中示出了在数据帧的数据域中保存MAC的例子,能够保存在数据域的MAC的数据长度不能说足够长。与此相对,通过在车载网络系统13中适时地进行MAC密钥的更新或者计数器值的复位,可产生提高对于由不正常ECU对MAC的暴力攻击等的抗攻击性的效果。
[0292]ECU4400a?4400d与任意的总线连接,另外,ECU4400a?4400d分别与发动机401、制动器402、门开关传感器403、窗开关传感器404连接。ECU4400a?4400d分别取得连接着的设备(发动机401等)的状态,定期地向网络(即总线)发送表示状态的数据帧。对发送的数据帧的数据域,赋予根据消息ID、数据值和每次发送都递增的计数器值通过计算而导出的消息认证码(MAC)。
[0293][4.2ECU4400a 的构成]
[0294]图35是ECU4400a的构成图。ECU4400a构成为包括帧收发部460、帧解析部450、接收ID判断部430、接收ID列表保持部440、帧处理部410、帧生成部3420、数据取得部470、MAC生成部3410、MAC密钥保持部4430、计数器保持部3440、MAC密钥更新部4410和计数器复位部4420。这些各构成要素是功能性的构成要素,该各功能通过ECU4400a中的通信线路、执行存储器所保存的控制程序的处理器或数字电路等来实现。ECU4400a是对实施方式3中示出的ECU3400a(或者实施方式I中示出的ECU400a)的一部分进行了变形而得到的,对于具有与实施方式I以及3同样的功能的构成要素,标注相同的附图标记而省略说明。
[0295]MAC密钥保持部4430通过存储器等存储介质而实现,保持对识别MAC密钥的各个密钥ID关联有更新前和更新后的2个MAC密钥(用于计算MAC所需的密钥)的密钥表。关于密钥表以及MAC密钥的更新,后面使用图39进行说明。在此,设为利用按各个消息ID而不同的MAC密钥,因此密钥ID与消息ID相同。此外,在由MAC生成部3410生成MAC的情况下只要不特别说明,基本上使用更新后的MAC密钥。
[0296]计数器保持部3440通过存储器等存储介质而实现,保持对识别计数器密钥的各个计数器ID关联有计数器值的计数器表。关于计数器表以及计数器值的更新(复位),后面使用图40进行说明。在此,设为利用按各个消息ID而不同的计数器,因此计数器ID与消息ID相同。
[0297]MAC密钥更新部4410在由帧收发部460接收到密钥更新帧或者密钥更新&计数器复位帧的情况下,按照这些帧来更新MAC密钥保持部4430保持的MAC密钥。
[0298]计数器复位部4420在由帧收发部460接收到计数器复位帧或者密钥更新&计数器复位帧的情况下,按照这些帧对计数器保持部3440保持的计数器值进行复位。
[0299]此外,ECU4400b?4400d分别是对实施方式3中示出的ECU3400b?3400d的一部分进行了变形而得到的,具备与上述的ECU4400a基本上同样的构成。但是,接收ID列表保持部440所保持的接收ID列表、MAC密钥保持部4430所保持的密钥表以及计数器保持部3440所保持的计数器表可能会成为按各个ECU而不同的内容。另外,帧处理部410的处理内容如实施方式I所示,按各个ECU而不同。
[0300][4.3不正常检测EClMlOOa的构成]
[0301 ]图36是不正常检测EClMlOOa的构成图。不正常检测EClMlOOa构成为包括帧收发部160、帧解析部4151、不正常MAC检
当前第4页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1