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

文档序号:9872708阅读:来源:国知局
测部4131、MAC密钥保持部4180、计数器保持部3190、帧生成部140、MAC生成部3170、MAC密钥更新部4110、计数器复位部4120、保护处理部4130、保护条件保持部4140、不正常ID列表保持部4150、不正常日志保持部4160和模式变更处理部4170。这些各构成要素是功能性的构成要素,该各功能通过不正常检测EClMlOOa中的通信线路、执行存储器所保存的控制程序的处理器或数字电路等来实现。不正常检测EClMlOOa是对实施方式3中示出的不正常检测ECU3100a(或者实施方式I中示出的不正常检测ECUlOOa)的一部分进行了变形而得到的,对于具有与实施方式I以及3同样的功能的构成要素,标注相同的附图标记而省略说明。此外,不正常检测EClMlOOb也为同样的构成。
[0302]帧解析部4151是对实施方式3中示出的帧解析部3150的一部分进行变形而追加了功能而得到的。帧解析部4151从帧收发部160接收帧的值,进行解析以使得向由CAN协议规定的帧格式的各域进行映射。在判断为帧为数据帧的情况下,数据域和判断出的值(数据)与ID域的ID(消息ID)—起传送给不正常MAC检测部4131。另外,帧解析部4151在判断为是不遵循CAN协议的帧的情况下或者在消息ID是包含在由不正常ID列表保持部4150保持的不正常ID列表中的ID的情况下,向帧生成部140进行通知,以使得发送错误帧。另外,帧解析部4151在接收到错误帧的情况下,即在根据所接收到的帧的值而解析为成为错误帧的情况下,自此之后将该帧废弃,即中止帧的解析。
[0303]MAC密钥保持部4180通过存储器等存储介质而实现,保持对识别MAC密钥的各个密钥ID关联有更新前和更新后的2个MAC密钥(用于计算MAC所需的密钥)的密钥表。在此,设为利用按各个消息ID而不同的MAC密钥,因此密钥ID与消息ID相同。此外,在由MAC生成部3170生成MAC的情况下只要不特别说明,基本上使用更新后的MAC密钥。
[0304]计数器保持部3190通过存储器等存储介质而实现,保持对识别计数器密钥的各个计数器ID关联有计数器值(用于计算MAC所需的计数器值)的计数器表。在此,设为利用按各个消息ID而不同的计数器,因此计数器ID与消息ID相同。该计数器值在正常接收到帧的情况下递增。
[0305]MAC密钥更新部4110在由帧收发部160接收到密钥更新帧或者密钥更新&计数器复位帧的情况下,按照这些帧来更新MAC密钥保持部4180保持的MAC密钥。
[0306]计数器复位部4120在由帧收发部160接收到计数器复位帧或者密钥更新&计数器复位帧的情况下,按照这些帧对计数器保持部3190保持的计数器值进行复位。
[0307]不正常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进行比较来进行是否不正常的判定(S卩MAC的验证)。在两个MAC的值的比较结果不一致的情况下,使保护条件保持部4140的保护条件表中的相应消息ID的不正常计数递增。另外,在两个MAC的值的比较结果不一致的情况下,向帧生成部140进行通知,以使得发送错误帧。另外,在两个MAC的值的比较结果不一致的情况下,还存在在本机(不正常检测ECU41 OOa)与数据帧的发送源的ECU之间未同步更新MAC密钥或者计数器值的可能性,因此向帧生成部140进行委托以使得发送更新帧。该情况下发送的更新帧基本上是密钥更新&计数器复位帧。但是,也可以取代密钥更新&计数器复位帧而依次发送密钥更新帧以及计数器复位帧。此外,不正常MAC检测部4131也可以在向帧生成部140进行委托以使得发送密钥更新&计数器复位帧之前,通过使用更新前的MAC密钥来生成MAC,由此再次验证上述的数据域所包含的MAC。在通过该再次验证而成功了的情况(即两个MAC—致的情况)下,推定为计数器同步而仅需要进行MAC密钥的同步,不正常MAC检测部4131可以向帧生成部140进行委托,以使得取代发送密钥更新&计数器复位帧而发送密钥更新帧。另外,在再次验证也失败了的情况下,鉴于计数器也未同步的可能性,可以采用也发送计数器复位帧的方法。另外,不正常MAC检测部4131在MAC的验证成功了的情况(比较的两个MAC的值一致的情况)下,向MAC生成部3170进行通知,以使得计数器保持部3190保持的与消息ID对应的计数器值递增。
[0308]保护条件保持部4140通过存储器等存储介质而实现,保持对尽管发送了更新帧(密钥更新帧、计数器复位帧或者密钥更新&计数器复位帧)但之后的MAC的验证的结果是继续验证失败(生成的MAC的值与接收到的数据域中的MAC的值的比较结果不一致的状态)的情况下的应对处理即保护行为进行了定义的保护条件表620。关于保护条件表620,后面使用图41进行说明。
[0309]保护处理部4130按照保护条件保持部4140保持的保护条件表620来执行保护行为。保护行为有将MAC的验证失败了的帧的消息ID追加到不正常ID列表保持部4150保持的不正常ID列表中的处理、将该消息ID记录到不正常日志保持部4160保持的日志中的处理、指示模式变更处理部4170以使得车辆变成安全状态的处理等。
[0310]不正常ID列表保持部4150通过存储器等存储介质而实现,保持用于列举判断为不正常的数据帧(MAC的验证失败了的数据帧等)的消息ID的不正常ID列表。
[0311]不正常日志保持部4160通过存储器、硬盘等存储介质(记录介质)而实现,保持用于记录发送了不正常的数据帧等这样的事件的日志。作为与日志所记录的事件相关的信息,例如列举有不正常的数据帧的消息ID、不正常的数据帧被发送的日期时刻、不正常的数据帧被发送的次数等。此外,也可以为了不使日志被篡改而对日志的内容附加数字签名等、和/或对日志的内容进行加密。
[0312]模式变更处理部4170在从保护处理部4130指示了使车辆变成安全状态的情况下,为了将应该使车辆变成安全状态(例如将速度限定在一定速度以下的状态等)这一情况传达给其他ECU而使帧生成部140生成作为预先确定的帧的模式变更帧。当模式变更帧被帧生成部140生成并由帧收发部160发送时,其他ECU能够接收模式变更帧来执行预先确定的控制(例如将车辆的发动机的转速限定在一定转速以下的控制等)。此外,为了使车辆变成安全状态而预先确定的控制内容不特别限于使车辆的速度变成低速。
[0313][4.4ECU4400a 的接收 ID 列表例]
[0314]图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”。
[0315][4.5更新帧]
[0316]图38是表示更新帧的一例的图。该图中,列举了更新帧中的密钥更新&计数器复位帧的例子,但关于密钥更新帧以及计数器复位帧也为同样的构成。
[0317]在MAC密钥更新&计数器复位帧中,作为ID域的消息ID,使用了“2003”这一密钥更新&计数器复位ID(密钥更新&计数器复位帧用的ID)。另外,在数据域中设定有成为MAC密钥更新、计数器复位等的对象的消息ID(更新对象ID)和MAC。在图38中,(a)示出了指示不管消息ID如何都指示进行一次全部消息ID的MAC密钥更新和计数器复位的密钥更新&计数器复位帧的具体例子。设为通过“OxFFFF”这一数据来表示全部的消息ID。另外,在图38中,(b)示出了指示进行一次关于“4”这一消息ID的MAC密钥更新和计数器复位的密钥更新&计数器复位帧的具体例子。
[0318][4.6 密钥表]
[0319]图39是表示在不正常检测EClMlOOa的MAC密钥保持部4180中保持的密钥表的一例的图。密钥表使密钥ID、用于识别是更新前的MAC密钥还是更新后的MAC密钥的更新信息、和密钥值相关联而构成。在更新MAC密钥时,由MAC密钥更新部4110生成的新的MAC密钥作为“更新后”的密钥值写入表中,在此之前利用的MAC密钥作为“更新前”的密钥值而记录。在此,设为利用按各个消息ID而不同的MAC密钥,因此密钥ID与消息ID相同。不正常检测ECU4100a对应于本机可接收的帧而保持有多个密钥ID的MAC密钥。另外,与不正常检测EClMlOOa同样地,不正常检测EClMlOOb以及ECU4400a?4400d分别也保持用于对本机发送或者接收的帧的各个消息ID关联更新前后的MAC密钥而保存的MAC密钥表。
[0320]在不正常检测EClMlOOa等的MAC密钥更新部4110或者ECU4400a等的MAC密钥更新部4410中更新MAC密钥的方法,例如通过如下的步骤等来实现:将在MAC的生成时所使用的“更新后”的密钥值(MAC密钥)作为“更新前”的密钥值记录在密钥表中,将该“更新后”的MAC密钥输入到预先确定的单向函数(例如散列函数等)而导出的结果作为新的MAC密钥、即重新作为“更新后”的密钥值而记录到密钥表中。作为导出新的MAC密钥的运算,也可以使用基于所输入的种子(seed)通过预先确定的算法来输出新的MAC密钥的函数。该情况下,例如可以使得在指示MAC密钥的更新的更新帧(密钥更新帧或者密钥更新&计数器复位帧)的数据域中包含种子,也可以将计数器值、当前时刻的信息等作为种子进行利用。即,只要在应该同步更新MAC密钥的多个ECU(或不正常检测ECU)之间生成相同的MAC密钥即可。
[0321][4.7计数器表]
[0322]图40是表示在不正常检测EClMlOOa的计数器保持部3190中保持的计数器表的一例的图。计数器表使计数器ID与计数器值相关联而构成。在此,设为利用按各个消息ID而不同的计数器,因此计数器ID与消息ID相同。不正常检测EClMlOOa对应于本机可接收的帧而保持有多个计数器ID的计数器值。另外,与不正常检测ECU4100a同样地,不正常检测E⑶4100b以及ECU4400a?4400d分别也保持用于对本机发送或者接收的帧的各个消息ID关联计数器值而保存的计数器表。与计数器表的消息ID对应的计数器值在正常发送了或者接收到该消息ID的帧的情况下递增(增加I)。作为该方法,在发送数据帧的情况下将计数器值作为发送计数器来处理,对发送次数进行计数。另外,在接收数据帧的情况下将计数器值作为接收计数器来处理,对接收次数进行计数。例如,在发送消息ID为“I”的数据帧的ECU4400a中,将计数器表的计数器ID为“I”所对应的计数器值作为发送计数器来处理,每发送一次就使发送计数器递增。另外,例如在接收消息ID为“I”的数据帧的ECU4400b中,将计数器表的计数器ID为“I”所对应的计数器值作为接收计数器来处理,每次正常接收到被发送来的数据帧就使接收计数器递增。
[0323]不正常检测EClMlOOa等的计数器复位部4120或者ECU4400a等的计数器复位部4420中的计数器值的复位,例如通过以使得成为零等预先确定的特定值的方式更新计数器值来实现。如果在应该同步更新(复位)计数器值的多个ECU(或者不正常检测ECU)之间在复位后保持相同的计数器值,则特定值也可以不一定为零。
[0324][4.8保护条件表620]
[0325]图41是表示保护条件保持部4140保持的保护条件表620的一例的图。保护条件表620包括功能分类621、消息ID622、不正常计数623、不正常计数阈值624、保护行为625。功能分类621是用于通过设为帧(数据帧)的内容的数据或者其发送源的ECU相关联的功能(与发送源的ECU连接的设备的功能等)对帧的消息ID进行分类的项目。车载网络系统13中的多条总线分别在与连接于总线的ECU关联的功能性方面属于多个种类的组(功能组)中的任一个组或者多个组。因此,功能分类621也可以说是表示是对应的消息ID的帧由哪条总线发送、即由属于多个种类的组中的哪个组的总线发送。“驱动系统”为发动机、马达、燃料、电池、传输的控制等这样的与车辆的行驶关联的功能,例如与ECU4400a对应。“底盘(chassis)系统”为制动器、转向机构等的“转弯”、“停止”等这样的与车辆的举动等的控制关联的功能,例如ECU4400b进行应对。“车体系统”为车门锁、空调机、灯、方向指示器等这样的车辆设备的控制功能,例如ECU4400c、4400d进行应对。另外,例如“安全舒适功能”为自动制动器、车道维持功能、车间距离维持功能、防碰撞功能等这样的用于自动且安全地实现舒适驾驶的功能,“ITS(Intelligent Transport Systems,智能交通系统)功能”为与ETC(Electronic TollCollect1n System,电子收费系统)等的智能道路交通系统对应的功能,“远程信息服务(Telematics)”为与车辆被盗时的追踪等这样的使用了移动体通信的服务对应的功能,“信息娱乐(Infotainment)”为与汽车导航、音频等关联的娱乐功能。消息ID622是CAN协议中的帧的ID。不正常计数623是用于保持MAC的验证失败的次数(错误产生次数)的项目(区域)。不正常计数阈值624表示在不正常计数623的值成为了该阈值以上的情况下执行保护行为的阈值。保护行为625是对在不正常计数623的值成为了不正常计数阈值624表示的阈值以上的情况下执行的、应对不正常的应对处理的各种保护行为确定了是否进行该执行的信息。如图41所示,保护行为625确定了是否将MAC的验证失败的消息ID追加到不正常ID列表中、是否将产生了不正常这一情况通知给头单元200、对于产生了不正常这一情况是否记录到日志中、是否向模式变更处理部4170发出进行用于使车辆变成安全状态的模式变更的指不O
[0326]在图41所示的保护条件表620中,关于“驱动系统”以及“底盘系统”,将不正常计数阈值624设定为“5”,关于“车体系统”,将不正常计数阈值624设定为“10”。在图41的例子中,保护行为625对于全部的功能分类,使表示执行向不正常ID列表追加不正常帧(验证失败的帧)的消息ID以及向头单元200通知产生了不正常这一情况之意的“有效”。另外,进行用于使车辆变成安全状态的模式变更的指示(“有效(切换安全状态)”),仅对“驱动系统”、“底盘系统”以及“安全舒适功能”这样的与安全方面关联的功能分类进行设定。在保护条件表620中,能够如此按功能分类地定义保护行为的执行条件以及处理内容。此外,保护条件表620的内容例如可能会在车载网络系统制造时、销售时等设定。
[0327][4.9不正常ID列表]
[0328]图42是表示不正常ID列表保持部4150保持的不正常ID列表的一例的图。在不正常ID列表中,在将作为保护条件表的保护行为625而不正常ID列表的追加被确定为“有效”的消息ID的帧判断为不正常的情况(即该帧的MAC的验证失败了的情况)下,通过保护处理部4130追加消息ID。此外,在不正常ID列表中也可以预先包含不应该在车载网络系统13中发送的消息ID。
[0329][4.10与不正常帧的检测以及保护行为相关的序列]
[0330]以下,关于在具备上述结构的车载网络系统13的总线500a上连接有不正常ECU的情况,对与总线500a连接的不正常检测ECU4100a、ECU4400a、ECU4400b、网关300等的工作进行说明。
[0331]图43?图45是表示由不正常检测EClMlOOa进行的不正常帧(消息)的检测、各ECU中的MAC密钥的更新以及计数器值的复位、以及由不正常检测EClMlOOa进行的保护行为的工作例的时序图。在此,不正常检测EClMlOOa保持的保护条件表以图41所例示的内容进行说明。在此,设想不正常E⑶连接于总线500a的例子。该不正常E⑶发送消息ID为“4”且数据域中包含数据“OxFF"等的数据帧。
[0332]首先,不正常ECU开始上述的不正常的数据帧的发送(序列S4001)。不正常检测ECU4100a、ECU4400a、ECU4400b 以及网关 300 分别接收消息 ID (序列54002)<^0]4400&、ECU4400b以及网关300分别使用所保持的接收ID列表来检查消息ID(序列54003)<^0]3400&以及ECU3400b由于在分别保持的接收ID列表中不包含“4”(参照图37),所以结束接收。网关300由于在所保持的接收ID列表中包含“4”(参照图5),所以继续接收并进行数据域的接收(序列S4004)。同样地,不正常检测E⑶4100a也进行数据域的接收(序列S4004)。
[0333]接着序列S4004,不正常检测EClMlOOa验证数据域中的数据所包含的MAC(序列S4005)。即,不正常检测EClMlOOa将被发送来的帧中的数据域的数据中的应该包含MAC的预定位置的内容和使用MAC密钥(即在密钥表中作为与ID“4”对应的“更新后”的密钥值而保持的MAC密钥)等通过MAC生成部3170生成的MAC进行比较来验证MAC。由于在从不正常ECU发送的不正常的数据帧中未保存正确的MAC,所以比较的结果不一致,MAC的验证失败。在MAC的验证失败了的情况下,在不正常检测EClMlOOa中,使保护条件表620的与消息ID “4”对应的不正常计数623的值递增。
[0334]在车载网络系统13中,如果存在连接有不正常ECU的可能性,则为了提高对于从不正常ECU对MAC的暴力攻击等的抗攻击性,进行MAC的生成所使用的数据的更新(即MAC密钥的更新或者计数器值的复位)是有用的。与该数据的更新相关联,在MAC的验证失败了的情况下,有可能会在与正规的ECU之间MAC密钥或者计数器值的同步失败。另外,也有可能会由于不正常ECU发送的不正常的数据帧而导致MAC的验证失败。因此,鉴于此,设为不正常检测EClMlOOa在MAC的验证失败了的情况下发送更新帧。即,不正常检测EClMlOOa在MAC的验证失败了的情况下,通过帧生成部140生成将消息ID为“4”作为更新对象ID而设定的密钥更新&计数器复位帧(参照图38)(序列S4006),通过帧收发部160发送密钥更新&计数器复位帧(序列 S4007)。
[0335]ECU4400a、ECU4400b以及网关300由于在接收ID列表中包含作为更新帧的密钥更新&计数器复位帧的消息ID“2003”,所以接收密钥更新&计数器复位帧(序列S4008)。
[0336]接着,ECU4400a、ECU4400b以及网关300判断所接收到的更新帧是否是指示MAC密钥的更新的帧(序列S4009),如果是指示MAC密钥的更新的密钥更新帧或者密钥更新&计数器复位帧,则进行MAC密钥的更新(序列S4010)。
[0337]另外,ECU4400a、ECU4400b以及网关300判断所接收到的更新帧是否是指示计数器值的更新(复位)的帧(序列S4011),如果是指示计数器值的复位的计数器复位帧或者密钥更新&计数器复位帧,则进行计数器值的复位(序列S4012)。
[0338]此外,虽然图44中进行了省略,但不正常检测EClMlOOa也可以进行序列S4008?S4012的处理步骤,同样地可以进行与消息ID“4”对应的MAC密钥的更新以及计数器值的复位。
[0339]另外,不正常检测EClMlOOa判断与保护条件表620的任一个消息ID对应的不正常计数623的值是否成为了不正常计数阈值624所表示的阈值以上(序列S4013),在成为了阈值以上的情况下进行保护行为处理(图
当前第5页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1