JP2020096368A - On-vehicle network system, electronic control unit, and fraud detection method - Google Patents

On-vehicle network system, electronic control unit, and fraud detection method Download PDF

Info

Publication number
JP2020096368A
JP2020096368A JP2020032926A JP2020032926A JP2020096368A JP 2020096368 A JP2020096368 A JP 2020096368A JP 2020032926 A JP2020032926 A JP 2020032926A JP 2020032926 A JP2020032926 A JP 2020032926A JP 2020096368 A JP2020096368 A JP 2020096368A
Authority
JP
Japan
Prior art keywords
data frame
ecu
event
data
vehicle
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2020032926A
Other languages
Japanese (ja)
Other versions
JP6967097B2 (en
Inventor
剛 岸川
Takeshi Kishikawa
剛 岸川
松島 秀樹
Hideki Matsushima
秀樹 松島
芳賀 智之
Tomoyuki Haga
智之 芳賀
前田 学
Manabu Maeda
学 前田
勇二 海上
Yuji Kaijo
勇二 海上
良浩 氏家
Yoshihiro Ujiie
良浩 氏家
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Intellectual Property Corp of America
Original Assignee
Panasonic Intellectual Property Corp of America
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from JP2018179730A external-priority patent/JP6670354B2/en
Application filed by Panasonic Intellectual Property Corp of America filed Critical Panasonic Intellectual Property Corp of America
Publication of JP2020096368A publication Critical patent/JP2020096368A/en
Application granted granted Critical
Publication of JP6967097B2 publication Critical patent/JP6967097B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Small-Scale Networks (AREA)

Abstract

To provide a fraud detection method for efficiently and properly detecting a fraudulent message sent over an on-vehicle network system.SOLUTION: A fraud detection method for use in an on-vehicle network system that includes a plurality of electronic control units performing communication via an on-vehicle network includes: a reception step of receiving a data frame sent over the on-vehicle network; and a verification step of, only if an event driven data frame is received in the reception step and a state of a vehicle having the on-vehicle network system mounted thereon is a predetermined state, verifying a data value at a predetermined position in the data frame. If the verifying is successful in the verification step, the data frame is detected as an authenticated data frame, and if the verifying fails in the verification step, the data frame is detected as a fraudulent data frame.SELECTED DRAWING: Figure 10

Description

本開示は、電子制御ユニットが通信を行う車載ネットワークにおいて送信された不正なフレームを検知する技術に関する。 The present disclosure relates to a technique for detecting an illegal frame transmitted in an in-vehicle network with which an electronic control unit communicates.

近年、自動車の中のシステムには、電子制御ユニット(ECU:Electronic Control Unit)と呼ばれる装置が多数配置されている。これらのECUをつなぐネットワークは車載ネットワークと呼ばれる。車載ネットワークには、多数の規格が存在する。その中でも最も主流な車載ネットワークの一つに、ISO11898−1で規定されているCAN(Controller Area Network)という規格が存在する(「非特許文献1」参照)。 In recent years, a large number of devices called electronic control units (ECUs) are arranged in systems in automobiles. A network connecting these ECUs is called an in-vehicle network. There are many standards for in-vehicle networks. Among them, one of the most mainstream in-vehicle networks is a standard called CAN (Controller Area Network) defined by ISO11898-1 (see “Non-Patent Document 1”).

CANでは、通信路は2本のバスで構成され、バスに接続されているECUはノードと呼ばれる。バスに接続されている各ノードは、フレームと呼ばれるメッセージを送受信する。フレームを送信する送信ノードは、2本のバスに電圧をかけ、バス間で電位差を発生させることによって、レセシブと呼ばれる「1」の値と、ドミナントと呼ばれる「0」の値を送信する。複数の送信ノードが全く同一のタイミングで、レセシブとドミナントを送信した場合は、ドミナントが優先されて送信される。受信ノードは、受け取ったフレームのフォーマットに異常がある場合には、エラーフレームと呼ばれるフレームを送信する。エラーフレームとは、ドミナントを6bit連続して送信することで、送信ノードや他の受信ノードにフレームの異常を通知するものである。 In CAN, the communication path is composed of two buses, and the ECU connected to the buses is called a node. Each node connected to the bus sends and receives a message called a frame. A transmission node that transmits a frame transmits a value of "1" called recessive and a value of "0" called dominant by applying a voltage to the two buses to generate a potential difference between the buses. When a plurality of transmitting nodes transmit recessive and dominant at exactly the same timing, the dominant is preferentially transmitted. The receiving node transmits a frame called an error frame when the format of the received frame is abnormal. The error frame is a frame in which the transmitting node or another receiving node is notified of an abnormality in the frame by continuously transmitting dominant for 6 bits.

またCANでは送信先や送信元を指す識別子は存在せず、送信ノードはフレーム毎にメッセージIDと呼ばれるIDを付けて送信し(つまりバスに信号を送出し)、各受信ノードは予め定められたメッセージIDのみを受信する(つまりバスから信号を読み取る)。また、CSMA/CA(Carrier Sense Multiple Access/Collision Avoidance)方式を採用しており、複数ノードの同時送信時にはメッセージIDによる調停が行われ、メッセージIDの値が小さいフレームが優先的に送信される。 Also, in CAN, there is no identifier that indicates a destination or a source, the transmitting node attaches an ID called a message ID for each frame (that is, sends a signal to the bus), and each receiving node is predetermined. Receive only the message ID (ie read the signal from the bus). In addition, a CSMA/CA (Carrier Sense Multiple Access/Collision Avoidance) method is adopted. When simultaneous transmission is performed by a plurality of nodes, arbitration is performed by the message ID, and a frame having a small message ID value is preferentially transmitted.

車載ネットワークにおいて不正なノードがバスに接続され、不正なノードが不正にデータフレームを送信した場合に、CANでは送信元の識別子が存在しないことから、不正なデータフレームが送信されていることを受信ノードは検知できない。 When an unauthorized node is connected to the bus in an in-vehicle network and the unauthorized node illegally transmits a data frame, the CAN does not have the sender identifier, so the reception of the illegal data frame is received. The node cannot be detected.

そこで従来、ECUが周期的にデータフレームを送信するという特徴を用いて、正常な周期から逸脱するようなデータフレームの送信を不正なデータフレームであると検知する技術が提案されている(「非特許文献2」参照)。またデータフレームが正規のECUから送信されていることを示すために、メッセージ認証コード(MAC:Message Authentication Code)の技術を用いた不正検知方法が提案されている(「非特許文献3」参照)。 Therefore, conventionally, there has been proposed a technique of detecting transmission of a data frame that deviates from a normal cycle as an invalid data frame by using the characteristic that the ECU periodically transmits the data frame (“non- See Patent Document 2). Further, in order to show that the data frame is transmitted from a legitimate ECU, a fraud detection method using a technique of a message authentication code (MAC) has been proposed (see “Non-patent document 3”). .

“CAN Specification 2.0 Part A”、[online]、CAN in Automation(CiA)、[平成26年11月14日検索]、インターネット(URL:http://www.can−cia.org/fileadmin/cia/specifications/CAN20A.pdf)"CAN Specification 2.0 Part A", [online], CAN in Automation (CiA), [November 14, 2014 search], Internet (URL: http://www.can-cia.org/fileadmin/ cia/specifications/CAN20A.pdf) 大塚敏史、石郷岡祐、“既存ECUを変更不要な車載LAN向け侵入検知手法”、情報処理学会研究報告.組込みシステム研究会、2013−EMB−28(6)、p.1−5Toshifumi Otsuka, Yu Ishigo, “Intrusion detection method for in-vehicle LAN that does not require modification of existing ECU”, Research report of IPSJ. Embedded Systems Research Group, 2013-EMB-28(6), p. 1-5 D.K.Nilsson、U.E.Larson、E.Jonsson、“Efficient In−Vehicle Delayed Data Authentication Based on Compound Message Authentication Codes”、Vehicular Technology Conference、2008−Fall、p.1−5D. K. Nilsson, U.S.A. E. Larson, E.; Jonsson, "Efficient In-Vehicle Delayed Data Authentication Based on Compound Message Authentication Codes", Vehicular Technology Conference, 2008-Fall. 1-5 RFC2104 HMAC: Keyed−Hashing for Message AuthenticationRFC2104 HMAC: Keyed-Hashing for Message Authentication

しかしながら、非特許文献2の技術では、ECUが周期的にデータフレームを送信するのに加えて、イベントをトリガに非周期的にデータフレーム(以下、非周期的に送信されるデータフレームを「イベントドリブンデータフレーム」と称する。)を送信することもある場合には、正当なイベントドリブンデータフレームを不正なデータフレームと誤検知してしまう。また、送信する全てのデータフレームにMACを付加する方法では、MACの付加及び検証に要する処理負荷が大きい。 However, in the technique of Non-Patent Document 2, in addition to the ECU periodically transmitting a data frame, an event triggers an aperiodic data frame (hereinafter, a data frame transmitted aperiodically is referred to as “event”). In some cases, a legitimate event-driven data frame is erroneously detected as an invalid data frame. Further, in the method of adding the MAC to all the data frames to be transmitted, the processing load required for adding and verifying the MAC is large.

そこで、本開示は、CANプロトコル等に従って通信する車載ネットワークシステムにおいて、バス上に不正なメッセージの送信が行われたことを効率的かつ適切に検知する電子制御ユニット(ECU)を提供する。また、本開示は、不正なメッセージを効率的かつ適切に検知するための不正検知方法、及び、ECUを備える車載ネットワークシステムを提供する。 Therefore, the present disclosure provides an electronic control unit (ECU) that efficiently and appropriately detects that an unauthorized message is transmitted on a bus in an in-vehicle network system that communicates according to the CAN protocol or the like. The present disclosure also provides a fraud detection method for efficiently and properly detecting fraudulent messages, and an in-vehicle network system including an ECU.

上記課題を解決するために本開示の一態様に係る不正検知方法は、車載ネットワークを介して通信する複数の電子制御ユニットを備える車載ネットワークシステムにおいて用いられる不正検知方法であって、前記車載ネットワーク上で送信されたデータフレームを受信する受信ステップと、前記受信ステップでイベントドリブンのデータフレームが受信され、かつ、前記車載ネットワークシステムを搭載する車両の状態が所定の状態である場合に限って、当該データフレーム中の所定位置のデータ値を検証する検証ステップとを含み、前記検証ステップで、前記所定位置のデータ値についての前記検証が成功したときには、当該データフレームを正当なデータフレームとして検知し、前記検証ステップで、前記所定位置のデータ値についての前記検証が失敗したときには、当該データフレームを不正なデータフレームとして検知し、前記予め設定された位置のデータ値は、前記データフレームのデータフィールド内の所定位置に配置されるカウンタ値であり、前記検証ステップでは、前記イベントドリブンの前記データフレーム中の前記所定位置のカウンタ値が、前記受信ステップで前記イベントドリブンのデータフレームが受信された回数を反映したカウンタ値と同一であるか否かを判別することにより前記検証を行う不正検知方法である。 In order to solve the above problems, a fraud detection method according to an aspect of the present disclosure is a fraud detection method used in an in-vehicle network system including a plurality of electronic control units that communicate via an in-vehicle network. In the receiving step of receiving the data frame transmitted in, and in the receiving step, the event-driven data frame is received, and only when the state of the vehicle equipped with the vehicle-mounted network system is a predetermined state, And a verification step of verifying a data value at a predetermined position in the data frame, in the verification step, when the verification of the data value at the predetermined position is successful, the data frame is detected as a valid data frame, When the verification of the data value at the predetermined position fails in the verification step, the data frame is detected as an invalid data frame, and the data value at the preset position is stored in the data field of the data frame. In the verification step, the counter value at the predetermined position in the event-driven data frame indicates the number of times the event-driven data frame is received in the receiving step. This is a fraud detection method for performing the verification by determining whether the counter value is the same as the reflected counter value.

また本開示の一態様に係る不正検知方法は、車載ネットワークを介して通信する複数の電子制御ユニットを備える車載ネットワークシステムにおいて不正検知の対象となるデータフレームを送信する不正検知方法であって、前記車載ネットワークシステムを搭載する車両の状態が所定の状態である場合に、イベントドリブンのデータフレームの送信するときに限って、当該データフレーム中の所定位置にデータ値を付与する付与ステップと、前記付与ステップで付与された所定位置にデータ値を含み前記イベントドリブンのデータフレームを前記車載ネットワークに送信する送信ステップとを含み、前記予め設定された位置のデータ値は、前記データフレームのデータフィールド内の所定位置に配置されるカウンタ値である不正検知方法である。 A fraud detection method according to an aspect of the present disclosure is a fraud detection method for transmitting a data frame that is a target of fraud detection in an in-vehicle network system including a plurality of electronic control units that communicate via an in-vehicle network. An assigning step of assigning a data value to a predetermined position in the data frame only when an event driven data frame is transmitted when the state of a vehicle equipped with an in-vehicle network system is in a predetermined state; A transmission step of transmitting the event-driven data frame to the in-vehicle network including a data value at a predetermined position given in step, and the data value at the preset position is within a data field of the data frame. This is a fraud detection method that is a counter value arranged at a predetermined position.

また、上記課題を解決するために本開示の一態様に係る車載ネットワークシステムは、車載ネットワークを介して通信する複数の電子制御ユニットを備える車載ネットワークシステムであって、前記車載ネットワークシステムを搭載する車両の状態が所定の状態である場合に、イベントドリブンのデータフレームの送信するときに限って当該データフレーム中の所定位置にデータ値を付与する付与部と、前記付与部で付与された前記データ値を含み前記イベントドリブンのデータフレームを前記車載ネットワークに送信する送信部とを有する第1電子制御ユニットと、前記車載ネットワーク上で送信されたデータフレームを受信する受信部と、前記受信部により前記イベントドリブンのデータフレームが受信され、かつ、前記車載ネットワークシステムを搭載する車両の状態が所定の状態である場合に限って、当該データフレーム中の所定位置のデータ値を検証する検証部とを有し、前記検証部は、前記所定位置のデータ値についての前記検証が成功したときには、当該データフレームを正当なデータフレームとして検知し、前記所定位置のデータ値についての前記検証が失敗したときには、当該データフレームを不正なデータフレームとして検知する第2電子制御ユニットとを備え、前記予め設定された位置のデータ値は、前記データフレームのデータフィールド内の所定位置に配置されるカウンタ値であり、前記第2電子制御ユニットは、前記イベントドリブンの前記データフレーム中の前記所定位置のカウンタ値が、前記受信ステップで前記イベントドリブンのデータフレームが受信された回数を反映したカウンタ値と同一であるか否かを判別することにより前記検証を行う車載ネットワークシステムである。 In order to solve the above problems, an in-vehicle network system according to an aspect of the present disclosure is an in-vehicle network system including a plurality of electronic control units that communicate via an in-vehicle network, and a vehicle equipped with the in-vehicle network system. When the state of is a predetermined state, only when transmitting an event-driven data frame, an assigning unit that assigns a data value to a predetermined position in the data frame, and the data value assigned by the assigning unit A first electronic control unit having a transmitter for transmitting the event-driven data frame to the vehicle-mounted network, a receiver for receiving the data frame transmitted on the vehicle-mounted network, and the event by the receiver. Only when a driven data frame is received and the vehicle equipped with the in-vehicle network system is in a predetermined state, a verification unit for verifying a data value at a predetermined position in the data frame is provided. When the verification of the data value at the predetermined position is successful, the verification unit detects the data frame as a valid data frame, and when the verification of the data value at the predetermined position fails, the data is detected. A second electronic control unit for detecting the frame as an invalid data frame, wherein the data value at the preset position is a counter value arranged at a predetermined position in the data field of the data frame, (2) The electronic control unit determines whether the counter value at the predetermined position in the event-driven data frame is the same as the counter value that reflects the number of times the event-driven data frame is received in the receiving step. It is an in-vehicle network system that performs the verification by determining

また、上記課題を解決するために本開示の一態様に係る電子制御ユニット(ECU)は、車載ネットワークを介して通信する電子制御ユニットであって、前記電子制御ユニットを含む車載ネットワークシステムを搭載する車両の状態が所定の状態である場合に、イベントドリブンのデータフレームの送信に際して当該データフレーム中の所定位置にデータ値を付与する付与部と、前記付与部で付与された前記所定位置のデータ値を含み前記イベントドリブンのデータフレームを前記車載ネットワークに送信する送信部とを備え、前記予め設定された位置のデータ値は、前記データフレームのデータフィールド内の所定位置に配置されるカウンタ値である電子制御ユニットである。 In order to solve the above problems, an electronic control unit (ECU) according to one aspect of the present disclosure is an electronic control unit that communicates via an in-vehicle network, and is equipped with an in-vehicle network system including the electronic control unit. When the state of the vehicle is in a predetermined state, when the event-driven data frame is transmitted, a giving unit that gives a data value to a given position in the data frame, and a data value of the given position given by the giving unit And a transmitter for transmitting the event-driven data frame to the vehicle-mounted network, wherein the data value at the preset position is a counter value arranged at a predetermined position in the data field of the data frame. It is an electronic control unit.

また本開示の一態様に係る電子制御ユニット(ECU)は、車載ネットワークを介して通信する電子制御ユニットであって、前記車載ネットワーク上で送信されたデータフレームを受信する受信部と、前記受信部によりイベントドリブンのデータフレームが受信され、かつ、前記電子制御ユニットを含む車載ネットワークシステムを搭載する車両の状態が所定の状態である場合に限って、当該データフレーム中の所定位置のデータ値を検証する検証部とを備え、前記検証部は、前記所定位置のデータ値についての前記検証が成功したときには、当該データフレームを正当なデータフレームとして検知し、前記所定位置のデータ値についての前記検証が失敗したときには、当該データフレームを不正なデータフレームとして検知し、前記予め設定された位置のデータ値は、前記データフレームのデータフィールド内の所定位置に配置されるカウンタ値であり、前記検証部は、前記イベントドリブンの前記データフレーム中の前記所定位置のカウンタ値が、前記受信ステップで前記イベントドリブンのデータフレームが受信された回数を反映したカウンタ値と同一であるか否かを判別することにより前記検証を行う電子制御ユニットである。 An electronic control unit (ECU) according to an aspect of the present disclosure is an electronic control unit that communicates via an in-vehicle network, the receiving unit receiving a data frame transmitted on the in-vehicle network, and the receiving unit. Only when the event-driven data frame is received by and the vehicle equipped with the in-vehicle network system including the electronic control unit is in the predetermined state, the data value at the predetermined position in the data frame is verified. When the verification of the data value of the predetermined position is successful, the verification unit detects the data frame as a valid data frame, and the verification of the data value of the predetermined position is performed. When it fails, the data frame is detected as an invalid data frame, and the data value at the preset position is a counter value arranged at a predetermined position in the data field of the data frame, and the verification unit is By determining whether or not the counter value at the predetermined position in the event-driven data frame is the same as the counter value that reflects the number of times the event-driven data frame is received in the receiving step. It is an electronic control unit that performs the verification.

本開示によれば、車載ネットワークシステムでバスに不正なノードが接続されて不正なデータフレームが送信された場合に効率的かつ適切にその検知が可能となる。 According to the present disclosure, when an unauthorized node is connected to a bus in an in-vehicle network system and an unauthorized data frame is transmitted, it can be detected efficiently and appropriately.

実施の形態1に係る車載ネットワークシステムの全体構成を示す図である。It is a figure which shows the whole structure of the vehicle-mounted network system which concerns on Embodiment 1. CANプロトコルで規定されるデータフレームのフォーマットを示す図である。It is a figure which shows the format of the data frame prescribed|regulated by the CAN protocol. 実施の形態1に係る車載ネットワークシステムで用いられるデータフィールドフォーマットの一例を示す図である。FIG. 3 is a diagram showing an example of a data field format used in the vehicle-mounted network system according to the first embodiment. 実施の形態1に係るECUの構成図である。3 is a configuration diagram of an ECU according to the first embodiment. FIG. 実施の形態1に係るデータフレーム生成ルールの一例を示す図である。FIG. 7 is a diagram showing an example of a data frame generation rule according to the first embodiment. 実施の形態1に係る周期ルール情報の一例を示す図である。FIG. 5 is a diagram showing an example of cycle rule information according to the first embodiment. 実施の形態1に係るデータフレームの前回受信時刻を示す情報を列挙したリストの一例を示す図である。FIG. 5 is a diagram showing an example of a list listing information indicating the last reception time of the data frame according to the first embodiment. 実施の形態1に係るデータフレームの送受信の流れを示す図である。FIG. 6 is a diagram showing a flow of transmission/reception of a data frame according to the first embodiment. 実施の形態1に係るデータフレームの送信処理を示すフローチャートである。5 is a flowchart showing a data frame transmission process according to the first embodiment. 実施の形態1に係るデータフレームの受信処理を示すフローチャートである。6 is a flowchart showing a data frame reception process according to the first embodiment. 実施の形態2に係る車載ネットワークシステムの全体構成を示す図である。It is a figure which shows the whole structure of the vehicle-mounted network system which concerns on Embodiment 2. 実施の形態2に係る車載ネットワークシステムで用いられるデータフィールドフォーマットの一例を示す図である。FIG. 8 is a diagram showing an example of a data field format used in the vehicle-mounted network system according to the second embodiment. 実施の形態2に係るECUの構成図である。3 is a configuration diagram of an ECU according to a second embodiment. FIG. 実施の形態2に係るデータフレーム生成ルール及び送信イベントカウンタの一例を示す図である。FIG. 9 is a diagram showing an example of a data frame generation rule and a transmission event counter according to the second embodiment. 実施の形態2に係るデータフレームの前回受信時刻及び受信イベントカウンタを列挙したリストの一例を示す図である。FIG. 9 is a diagram showing an example of a list listing the last reception time and reception event counter of a data frame according to the second embodiment. 実施の形態2に係るデータフレームの送信処理を示すフローチャートである。9 is a flowchart showing a data frame transmission process according to the second embodiment. 実施の形態2に係るデータフレームの受信処理を示すフローチャートである。9 is a flowchart showing a data frame reception process according to the second embodiment. 実施の形態3に係る車載ネットワークシステムの全体構成を示す図である。It is a figure which shows the whole structure of the vehicle-mounted network system which concerns on Embodiment 3. 実施の形態3に係る車載ネットワークシステムで用いられるデータフィールドフォーマットの一例を示す図である。FIG. 11 is a diagram showing an example of a data field format used in the vehicle-mounted network system according to the third embodiment. 実施の形態3に係るECUの構成図である。7 is a configuration diagram of an ECU according to a third embodiment. FIG. 実施の形態3に係るデータフレーム生成ルールの一例を示す図である。FIG. 16 is a diagram showing an example of a data frame generation rule according to the third embodiment. 実施の形態3に係る周期ルール情報の一例を示す図である。It is a figure which shows an example of the period rule information which concerns on Embodiment 3. 実施の形態3に係るデータフレームの送信処理を示すフローチャートである。9 is a flowchart showing a data frame transmission process according to the third embodiment. 実施の形態3に係るデータフレームの受信処理を示すフローチャートである。9 is a flowchart showing a data frame reception process according to the third embodiment. 実施の形態4に係る車載ネットワークシステムの全体構成を示す図である。It is a figure which shows the whole structure of the vehicle-mounted network system which concerns on Embodiment 4. 実施の形態4に係るECUの構成図である。FIG. 7 is a configuration diagram of an ECU according to a fourth embodiment. 実施の形態4に係るデータフレーム生成ルールの一例を示す図である。FIG. 16 is a diagram showing an example of a data frame generation rule according to the fourth embodiment. 実施の形態4に係る周期ルール情報の一例を示す図である。It is a figure which shows an example of the period rule information which concerns on Embodiment 4. 実施の形態4に係る車状態保持部に保持された車両の状態の一例を示す図である。FIG. 16 is a diagram showing an example of a state of the vehicle held by a vehicle state holding unit according to the fourth embodiment. 実施の形態4に係るデータフレームの送信処理を示すフローチャートである。16 is a flowchart showing a data frame transmission process according to the fourth embodiment. 実施の形態4に係るデータフレームの受信処理を示すフローチャートである。16 is a flowchart showing a data frame reception process according to the fourth embodiment. 実施の形態4に係る車両の状態を示すデータフレームの送信処理を示すフローチャートである。9 is a flowchart showing a transmission process of a data frame showing the state of the vehicle according to the fourth embodiment. 実施の形態4に係るデータフレームの受信処理の変形例を示すフローチャートである。16 is a flowchart showing a modification of the data frame receiving process according to the fourth embodiment.

本開示の一態様に係る不正検知方法は、車載ネットワークを介して通信する複数の電子制御ユニットを備える車載ネットワークシステムにおいて用いられる不正検知方法であって、前記車載ネットワーク上で送信されたデータフレームを受信する受信ステップと、前記受信ステップでイベントドリブンのデータフレームが受信され、かつ、前記車載ネットワークシステムを搭載する車両の状態が所定の状態である場合に限って、当該データフレーム中の所定位置のデータ値を検証する検証ステップとを含み、前記検証ステップで、前記所定位置のデータ値についての前記検証が成功したときには、当該データフレームを正当なデータフレームとして検知し、前記検証ステップで、前記所定位置のデータ値についての前記検証が失敗したときには、当該データフレームを不正なデータフレームとして検知し、前記予め設定された位置のデータ値は、前記データフレームのデータフィールド内の所定位置に配置されるカウンタ値であり、前記検証ステップでは、前記イベントドリブンの前記データフレーム中の前記所定位置のカウンタ値が、前記受信ステップで前記イベントドリブンのデータフレームが受信された回数を反映したカウンタ値と同一であるか否かを判別することにより前記検証を行う不正検知方法である。このため、イベントドリブンのデータフレームであるため不正であると誤検知することが防止され、不正なデータフレーム(メッセージ)を適切に検知することが可能となる。また、このイベントドリブンのデータフレームのデータフィールド内の所定位置に配置されるカウンタ値の検証により不正なメッセージは検知可能となるため、全てのデータフレームについてその検証をする必要がなく、効率的な不正の検知が可能となる。なお、効率的な不正の検知は、車載ネットワークシステムの電力消費の抑制に繋がる。所定の状態は、例えば、不正なデータフレームがバス上に流れている場合に検知されるべき必要性が、所定の状態以外の状態よりも高いと想定される状態である。これにより、例えば不正検知の必要性が高いとき等といった車両が所定の状態である場合に効率的に検証を行うことが可能となる。また、データフレームを受信するECUにとっては、例えば不正検知の必要性が高いとき等の所定の状態である場合に限って効率的に検証を行うことが可能となる。 A fraud detection method according to an aspect of the present disclosure is a fraud detection method used in an in-vehicle network system including a plurality of electronic control units that communicate via an in-vehicle network, wherein a data frame transmitted on the in-vehicle network is Only when the receiving step of receiving and the event-driven data frame are received in the receiving step and the state of the vehicle equipped with the vehicle-mounted network system is in a predetermined state, A verification step of verifying a data value, wherein when the verification of the data value at the predetermined position is successful in the verification step, the data frame is detected as a valid data frame, and the predetermined step is performed in the verification step. When the verification of the data value of the position fails, the data frame is detected as an invalid data frame, and the data value of the preset position is arranged at a predetermined position in the data field of the data frame. In the verification step, the counter value at the predetermined position in the event-driven data frame is the same as the counter value that reflects the number of times the event-driven data frame is received in the receiving step. It is a fraud detection method for performing the verification by determining whether or not there is. For this reason, since the data frame is an event-driven data frame, it is prevented from being erroneously detected as illegal, and it is possible to properly detect an illegal data frame (message). Also, since an invalid message can be detected by verifying the counter value arranged at a predetermined position in the data field of this event-driven data frame, it is not necessary to verify it for all data frames, which is efficient. It is possible to detect fraud. Efficient fraud detection leads to suppression of power consumption of the vehicle-mounted network system. The predetermined state is, for example, a state in which it is assumed that the necessity to be detected when an illegal data frame is flowing on the bus is higher than the states other than the predetermined state. This makes it possible to efficiently perform verification when the vehicle is in a predetermined state, such as when there is a high need for fraud detection. Further, for the ECU that receives the data frame, the verification can be efficiently performed only when the ECU is in a predetermined state such as when the need for fraud detection is high.

また、前記検証ステップでは、前記受信したデータフレームが、イベントドリブンのデータフレームか否かを判定し、前記受信したデータフレームが前記イベントドリブンのデータフレームであると判定された場合に、前記車両の状態が前記所定の状態であるか否かを判定し、前記車両の状態が前記所定の状態であると判定された場合に、前記所定位置のデータ値についての前記検証を行っても良い。また、前記検証ステップで、前記受信ステップで前記イベントドリブンのデータフレームが受信され、かつ、前記車載ネットワークシステムを搭載する車両の状態が前記所定の状態でない場合は、当該データフレームを正当なデータフレームとして検知することとしても良い。また、前記検証ステップで、前記受信ステップで前記イベントドリブンのデータフレームが受信され、かつ、前記車載ネットワークシステムを搭載する車両の状態が前記所定の状態でない場合は、当該データフレームを不正なデータフレームとして検知することとしても良い。不正なデータフレームとして検知された場合の取り扱いは車載ネットワークシステムにおいて定めておくことができ、取り扱いとしては、例えば、データフレームを破棄すること(データフレームの内容に基づいて車両の制御を行わないこと等)、ログとして記録すること、車両の動作モードを変更すること等が挙げられる。所定の状態は、例えば、不正なデータフレームがバス上に流れている場合に検知されるべき必要性が、所定の状態以外の状態よりも高いと想定される状態である。これにより、例えば不正検知の必要性が高いとき等といった車両が所定の状態である場合に効率的に検証を行うことが可能となる。 Further, in the verification step, it is determined whether or not the received data frame is an event-driven data frame, and when it is determined that the received data frame is the event-driven data frame, It may be determined whether or not the state is the predetermined state, and when the state of the vehicle is determined to be the predetermined state, the verification of the data value at the predetermined position may be performed. In the verification step, if the event-driven data frame is received in the reception step and the vehicle equipped with the in-vehicle network system is not in the predetermined state, the data frame is a valid data frame. May be detected as. In the verification step, if the event-driven data frame is received in the reception step and the vehicle equipped with the in-vehicle network system is not in the predetermined state, the data frame is an invalid data frame. May be detected as. The handling when it is detected as an invalid data frame can be defined in the in-vehicle network system. For example, discard the data frame (do not control the vehicle based on the content of the data frame). Etc.), recording as a log, changing the operation mode of the vehicle, and the like. The predetermined state is, for example, a state in which it is assumed that the necessity to be detected when an illegal data frame is flowing on the bus is higher than the states other than the predetermined state. This makes it possible to efficiently perform verification when the vehicle is in a predetermined state, such as when there is a high need for fraud detection.

また、前記複数の電子制御ユニットは、CAN(Controller Area Network)プロトコルに従って通信を行うものであっても良い。 Further, the plurality of electronic control units may communicate according to a CAN (Controller Area Network) protocol.

また本開示の一態様に係る不正検知方法は、車載ネットワークを介して通信する複数の電子制御ユニットを備える車載ネットワークシステムにおいて不正検知の対象となるデータフレームを送信する不正検知方法であって、前記車載ネットワークシステムを搭載する車両の状態が所定の状態である場合に、イベントドリブンのデータフレームの送信するときに限って、当該データフレーム中の所定位置にデータ値を付与する付与ステップと、前記付与ステップで付与された所定位置のデータ値を含み前記イベントドリブンのデータフレームを前記車載ネットワークに送信する送信ステップとを含み、前記予め設定された位置のデータ値は、前記データフレームのデータフィールド内の所定位置に配置されるカウンタ値である不正検知方法である。これにより、イベントドリブンのデータフレームの受信側において当該データフレームのデータフィールド内の所定位置に配置されるカウンタ値を検証することで不正なデータフレームか否かの検知が可能となるように、車載ネットワークシステムを正規に構成する送信側のECUでカウンタ値を含めたイベントドリブンのデータフレームを送信する。このため、付与ステップと送信ステップとにより適切な不正検知が実現される。また、データフレームを受信するECUにとっては、例えば不正検知の必要性が高いとき等の所定の状態である場合に限って効率的に検証を行うことが可能となる。 A fraud detection method according to an aspect of the present disclosure is a fraud detection method for transmitting a data frame that is a target of fraud detection in an in-vehicle network system including a plurality of electronic control units that communicate via an in-vehicle network. An assigning step of assigning a data value to a predetermined position in the data frame only when an event driven data frame is transmitted when the state of a vehicle equipped with an in-vehicle network system is in a predetermined state; And a transmission step of transmitting the event-driven data frame including the data value of the predetermined position given in step to the in-vehicle network, wherein the data value of the preset position is within the data field of the data frame. This is a fraud detection method that is a counter value arranged at a predetermined position. As a result, on the receiving side of the event-driven data frame, it is possible to detect whether the data frame is an illegal one by verifying the counter value arranged at a predetermined position in the data field of the data frame. An event-driven data frame including a counter value is transmitted by an ECU on the transmission side that normally forms a network system. Therefore, appropriate fraud detection is realized by the giving step and the sending step. Further, for the ECU that receives the data frame, the verification can be efficiently performed only when the ECU is in a predetermined state such as when the need for fraud detection is high.

また、上記課題を解決するために本開示の一態様に係る車載ネットワークシステムは、車載ネットワークを介して通信する複数の電子制御ユニットを備える車載ネットワークシステムであって、前記車載ネットワークシステムを搭載する車両の状態が所定の状態である場合に、イベントドリブンのデータフレームの送信するときに限って当該データフレーム中の所定位置にデータ値を付与する付与部と、前記付与部で付与された前記データ値を含み前記イベントドリブンのデータフレームを前記車載ネットワークに送信する送信部とを有する第1電子制御ユニットと、前記車載ネットワーク上で送信されたデータフレームを受信する受信部と、前記受信部により前記イベントドリブンのデータフレームが受信され、かつ、前記車載ネットワークシステムを搭載する車両の状態が所定の状態である場合に限って、当該データフレーム中の所定位置のデータ値を検証する検証部とを有し、前記検証部は、前記所定位置のデータ値についての前記検証が成功したときには、当該データフレームを正当なデータフレームとして検知し、前記所定位置のデータ値についての前記検証が失敗したときには、当該データフレームを不正なデータフレームとして検知する第2電子制御ユニットとを備え、前記予め設定された位置のデータ値は、前記データフレームのデータフィールド内の所定位置に配置されるカウンタ値であり、前記第2電子制御ユニットは、前記イベントドリブンの前記データフレーム中の前記所定位置のカウンタ値が、前記受信ステップで前記イベントドリブンのデータフレームが受信された回数を反映したカウンタ値と同一であるか否かを判別することにより前記検証を行う車載ネットワークシステムである。これにより、送信周期が条件を満たさないデータフレームつまりイベントドリブンデータフレームが受信された場合において所定ルールに基づく正当性の判断はできないがデータフィールド内の所定位置に配置されるカウンタ値の検証により正当性の判断が可能になる。このため、所定ルールを満たさないため不正であると誤検知することが防止され、不正なデータフレーム(メッセージ)を適切に検知することが可能となる。また、データフレームを受信するECUにとっては、例えば不正検知の必要性が高いとき等の所定の状態である場合に限って効率的に検証を行うことが可能となる。 In order to solve the above problems, an in-vehicle network system according to an aspect of the present disclosure is an in-vehicle network system including a plurality of electronic control units that communicate via an in-vehicle network, and a vehicle equipped with the in-vehicle network system. When the state of is a predetermined state, only when transmitting an event-driven data frame, an assigning unit that assigns a data value to a predetermined position in the data frame, and the data value assigned by the assigning unit A first electronic control unit having a transmitter for transmitting the event-driven data frame to the vehicle-mounted network, a receiver for receiving the data frame transmitted on the vehicle-mounted network, and the event by the receiver. Only when a driven data frame is received and the vehicle equipped with the in-vehicle network system is in a predetermined state, a verification unit for verifying a data value at a predetermined position in the data frame is provided. When the verification of the data value at the predetermined position is successful, the verification unit detects the data frame as a valid data frame, and when the verification of the data value at the predetermined position fails, the data is detected. A second electronic control unit for detecting the frame as an invalid data frame, wherein the data value at the preset position is a counter value arranged at a predetermined position in the data field of the data frame, (2) The electronic control unit determines whether the counter value at the predetermined position in the event-driven data frame is the same as the counter value that reflects the number of times the event-driven data frame is received in the receiving step. It is an in-vehicle network system that performs the verification by determining As a result, when a data frame whose transmission cycle does not satisfy the condition, that is, an event-driven data frame is received, it is not possible to judge the validity based on a predetermined rule, but it is valid by verifying the counter value arranged at a predetermined position in the data field. It becomes possible to judge the sex. Therefore, since the predetermined rule is not satisfied, false detection of fraud is prevented, and fraudulent data frame (message) can be properly detected. Further, for the ECU that receives the data frame, the verification can be efficiently performed only when the ECU is in a predetermined state such as when the need for fraud detection is high.

また、上記課題を解決するために本開示の一態様に係る電子制御ユニット(ECU)は、車載ネットワークを介して通信する電子制御ユニットであって、前記電子制御ユニットを含む車載ネットワークシステムを搭載する車両の状態が所定の状態である場合に、イベントドリブンのデータフレームの送信に際して当該データフレーム中の所定位置にデータ値を付与する付与部と、前記付与部で付与された前記所定位置のデータ値を含み前記イベントドリブンのデータフレームを前記車載ネットワークに送信する送信部とを備え、前記予め設定された位置のデータ値は、前記データフレームのデータフィールド内の所定位置に配置されるカウンタ値である電子制御ユニットである。これにより、送信周期が条件を満たさないデータフレームつまりイベントドリブンデータフレームを送信する場合に、不正であると誤検知されないようにデータフレームを送信することが可能となる。 In order to solve the above problems, an electronic control unit (ECU) according to one aspect of the present disclosure is an electronic control unit that communicates via an in-vehicle network, and is equipped with an in-vehicle network system including the electronic control unit. When the state of the vehicle is in a predetermined state, when the event-driven data frame is transmitted, a giving unit that gives a data value to a given position in the data frame, and a data value of the given position given by the giving unit And a transmitter for transmitting the event-driven data frame to the vehicle-mounted network, wherein the data value at the preset position is a counter value arranged at a predetermined position in the data field of the data frame. It is an electronic control unit. As a result, when a data frame whose transmission cycle does not satisfy the condition, that is, an event driven data frame is transmitted, it is possible to transmit the data frame so as not to be erroneously detected as invalid.

また本開示の一態様に係る電子制御ユニット(ECU)は、車載ネットワークを介して通信する電子制御ユニットであって、前記車載ネットワーク上で送信されたデータフレームを受信する受信部と、前記受信部によりイベントドリブンのデータフレームが受信され、かつ、前記電子制御ユニットを含む車載ネットワークシステムを搭載する車両の状態が所定の状態である場合に限って、当該データフレーム中の所定位置のデータ値を検証する検証部とを備え、前記検証部は、前記所定位置のデータ値についての前記検証が成功したときには、当該データフレームを正当なデータフレームとして検知し、前記所定位置のデータ値についての前記検証が失敗したときには、当該データフレームを不正なデータフレームとして検知し、前記予め設定された位置のデータ値は、前記データフレームのデータフィールド内の所定位置に配置されるカウンタ値であり、前記検証部は、前記イベントドリブンの前記データフレーム中の前記所定位置のカウンタ値が、前記受信ステップで前記イベントドリブンのデータフレームが受信された回数を反映したカウンタ値と同一であるか否かを判別することにより前記検証を行う電子制御ユニットである。これにより、送信周期が条件を満たさないデータフレームつまりイベントドリブンデータフレームが受信された場合において所定ルールに基づく正当性の判断はできないがデータフィールド内の所定位置に配置されるカウンタ値の検証により正当性の判断が可能になる。このため、所定ルールを満たさないため不正であると誤検知することが防止され、不正なデータフレームを適切に検知することが可能となる。また、データフレームを受信するECUにとっては、例えば不正検知の必要性が高いとき等の所定の状態である場合に限って効率的に検証を行うことが可能となる。 An electronic control unit (ECU) according to an aspect of the present disclosure is an electronic control unit that communicates via an in-vehicle network, the receiving unit receiving a data frame transmitted on the in-vehicle network, and the receiving unit. Only when the event-driven data frame is received by and the vehicle equipped with the in-vehicle network system including the electronic control unit is in the predetermined state, the data value at the predetermined position in the data frame is verified. When the verification of the data value of the predetermined position is successful, the verification unit detects the data frame as a valid data frame, and the verification of the data value of the predetermined position is performed. When it fails, the data frame is detected as an invalid data frame, and the data value at the preset position is a counter value arranged at a predetermined position in the data field of the data frame, and the verification unit is By determining whether or not the counter value at the predetermined position in the event-driven data frame is the same as the counter value that reflects the number of times the event-driven data frame is received in the receiving step. It is an electronic control unit that performs the verification. As a result, when a data frame whose transmission cycle does not satisfy the condition, that is, an event-driven data frame is received, it is not possible to judge the validity based on a predetermined rule, but it is valid by verifying the counter value arranged at a predetermined position in the data field. It becomes possible to judge the sex. Therefore, since the predetermined rule is not satisfied, false detection of fraud is prevented, and fraudulent data frame can be properly detected. Further, for the ECU that receives the data frame, the verification can be efficiently performed only when the ECU is in a predetermined state such as when the need for fraud detection is high.

なお、これらの全般的又は具体的な態様は、システム、方法、集積回路、コンピュータプログラム又はコンピュータで読み取り可能なCD−ROM等の記録媒体で実現されても良く、システム、方法、集積回路、コンピュータプログラム又は記録媒体の任意な組み合わせで実現されても良い。 Note that these general or specific aspects may be realized by a recording medium such as a system, a method, an integrated circuit, a computer program or a computer-readable CD-ROM, and the system, the method, the integrated circuit, the computer. It may be realized by any combination of programs or recording media.

以下、実施の形態に係る車載ネットワークシステム、ECU等について、図面を参照しながら説明する。ここで示す実施の形態は、いずれも本開示の一具体例を示すものである。従って、以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置及び接続形態、並びに、ステップ(工程)及びステップの順序等は、一例であって本開示を限定するものではない。以下の実施の形態における構成要素のうち、独立請求項に記載されていない構成要素については、任意に付加可能な構成要素である。また、各図は、模式図であり、必ずしも厳密に図示されたものではない。 Hereinafter, an in-vehicle network system, an ECU, and the like according to the embodiments will be described with reference to the drawings. Each of the embodiments shown here shows one specific example of the present disclosure. Therefore, the numerical values, shapes, materials, components, arrangements and connection forms of the components, steps (processes), the order of steps, and the like shown in the following embodiments are examples and limit the present disclosure. is not. Among the constituents in the following embodiments, constituents not described in the independent claims are constituents that can be added arbitrarily. In addition, each drawing is a schematic view and is not necessarily strictly illustrated.

(実施の形態1)
以下、本開示の実施の形態として、データフレームを送受信するECU100aとECU100bとの間で、周期的に送信されるデータフレームに加えて非周期的なイベントドリブンデータフレームが送信され得る前提の下で、不正なデータフレームが送信されたことを適切に検知するための不正検知方法を実現する車載ネットワークシステム10について図面を用いて説明する。
(Embodiment 1)
Hereinafter, as an embodiment of the present disclosure, under the assumption that an aperiodic event-driven data frame can be transmitted in addition to the periodically transmitted data frame between the ECU 100a and the ECU 100b that transmit and receive the data frame. An in-vehicle network system 10 that realizes a fraud detecting method for appropriately detecting that an unauthorized data frame has been transmitted will be described with reference to the drawings.

[1.1 車載ネットワークシステム10の全体構成]
図1は、実施の形態1に係る車載ネットワークシステム10の全体構成を示す図である。車載ネットワークシステム10は、CANプロトコルに従って通信するネットワーク通信システムの一例であり、制御装置、センサ等の各種機器が搭載された自動車におけるネットワーク通信システムである。車載ネットワークシステム10は、各種機器に接続されたECU100a、100b、及び、各ECUをつなぐバス200を含んで構成される。なお、図1では省略しているものの、車載ネットワークシステム10にはECU100a、100b以外にもいくつものECUが含まれ得るが、ここでは、便宜上ECU100a、100bに注目して説明を行う。ECUは、例えば、プロセッサ(マイクロプロセッサ)、メモリ等のデジタル回路、アナログ回路、通信回路等を含む装置である。メモリは、ROM、RAM等であり、プロセッサにより実行される制御プログラム(コンピュータプログラム)を記憶することができる。例えばプロセッサが、制御プログラム(コンピュータプログラム)に従って動作することにより、ECUは各種機能を実現することになる。なお、コンピュータプログラムは、所定の機能を達成するために、プロセッサに対する指令を示す命令コードが複数個組み合わされて構成されたものである。以下、バス200には不正なデータフレームを送信する不正なECUが接続されている可能性があることを前提として説明する。
[1.1 Overall Configuration of In-Vehicle Network System 10]
FIG. 1 is a diagram showing an overall configuration of an in-vehicle network system 10 according to the first embodiment. The vehicle-mounted network system 10 is an example of a network communication system that communicates according to the CAN protocol, and is a network communication system in a vehicle equipped with various devices such as a control device and a sensor. The vehicle-mounted network system 10 is configured to include ECUs 100a and 100b connected to various devices, and a bus 200 that connects each ECU. Although not shown in FIG. 1, the vehicle-mounted network system 10 may include a number of ECUs other than the ECUs 100a and 100b, but here, for convenience, the ECUs 100a and 100b will be mainly described. The ECU is a device including, for example, a processor (microprocessor), a digital circuit such as a memory, an analog circuit, a communication circuit, and the like. The memory is a ROM, a RAM, or the like, and can store a control program (computer program) executed by the processor. For example, when the processor operates according to a control program (computer program), the ECU realizes various functions. The computer program is configured by combining a plurality of instruction codes indicating instructions to the processor in order to achieve a predetermined function. Hereinafter, description will be made on the assumption that an unauthorized ECU that transmits an unauthorized data frame may be connected to the bus 200.

ECU100aは、1つ以上のセンサを含む機器の一例としてのパワーウィンドウスイッチ110に接続されている。ECU100aは、パワーウィンドウスイッチ110の状態を示す情報を含むデータフレームを周期的にバス200に送信する。さらにパワーウィンドウスイッチ110の状態が変化した時にもパワーウィンドウスイッチ110の状態を示す情報(つまりセンサ値を示す情報)を含むデータフレームをバス200に送信する。従って、ECU100aは、一定の送信周期でデータフレームの送信を繰り返す他に、パワーウィンドウスイッチ110の状態の変化時がその送信周期と一致しないときに非周期的なイベントドリブンデータフレームをバス200に送信することになる。またECU100aは、ECU100bからバス200上に送信されてバス200に流れるデータフレームを受信し、例えばECU100aが送信したデータフレームが正しく受信されていること等を確認する。 The ECU 100a is connected to a power window switch 110, which is an example of a device including one or more sensors. The ECU 100a periodically transmits a data frame including information indicating the state of the power window switch 110 to the bus 200. Further, even when the state of the power window switch 110 changes, a data frame including information indicating the state of the power window switch 110 (that is, information indicating the sensor value) is transmitted to the bus 200. Therefore, the ECU 100a repeats the transmission of the data frame at a constant transmission cycle, and also transmits an aperiodic event-driven data frame to the bus 200 when the change of the state of the power window switch 110 does not match the transmission cycle. Will be done. Further, the ECU 100a receives the data frame transmitted from the ECU 100b onto the bus 200 and flowing to the bus 200, and confirms, for example, that the data frame transmitted by the ECU 100a is correctly received.

ECU100bは、パワーウィンドウ120に接続されており、ECU100aから送信されバス200に流れているデータフレームを受信し、そのデータフレームに含まれるパワーウィンドウスイッチ110の状態に応じて、パワーウィンドウ120の開閉の制御を行う。またパワーウィンドウ120の開閉の制御状態に応じたデータフレームを周期的にバス200に送信する。この車載ネットワークシステム10においてはCANプロトコルに従って各ECUがフレームの授受を行う。各ECUは、受信したデータフレームが不正なデータフレームであるか否かを判断する機能を有している。 The ECU 100b is connected to the power window 120, receives the data frame transmitted from the ECU 100a and flowing to the bus 200, and opens and closes the power window 120 according to the state of the power window switch 110 included in the data frame. Take control. In addition, a data frame corresponding to the control state of opening/closing of the power window 120 is periodically transmitted to the bus 200. In this in-vehicle network system 10, each ECU exchanges frames according to the CAN protocol. Each ECU has a function of determining whether or not the received data frame is an invalid data frame.

[1.2 データフレームフォーマット]
以下、CANプロトコルに従ったネットワークで用いられるフレームの1つであるデータフレームについて説明する。
[1.2 Data frame format]
Hereinafter, a data frame which is one of the frames used in the network according to the CAN protocol will be described.

図2は、CANプロトコルで規定されるデータフレームのフォーマットを示す図である。同図には、CANプロトコルで規定される標準IDフォーマットにおけるデータフレームを示している。データフレームは、SOF(Start Of Frame)、IDフィールド、RTR(Remote Transmission Request)、IDE(Identifier Extension)、予約ビット「r」、DLC(Data Length Code)、データフィールド、CRC(Cyclic Redundancy Check)シーケンス、CRCデリミタ「DEL」、ACK(Acknowledgement)スロット、ACKデリミタ「DEL」、及び、EOF(End Of Frame)の各フィールドで構成される。 FIG. 2 is a diagram showing a format of a data frame defined by the CAN protocol. The figure shows a data frame in a standard ID format defined by the CAN protocol. The data frame includes an SOF (Start Of Frame), an ID field, an RTR (Remote Transmission Request), an IDE (Identifier Extension), a reserved bit “r”, a DLC (Data Length Code), a data field, and a CRC (Cyclic Redundancy Check) sequence. , CRC delimiter “DEL”, ACK (Acknowledgement) slot, ACK delimiter “DEL”, and EOF (End Of Frame).

SOFは、1bitのドミナントで構成される。バスがアイドルの状態はレセシブになっており、SOFによりドミナントへ変更することでフレームの送信開始を通知する。 The SOF is composed of 1-bit dominant. The state in which the bus is idle is recessive, and the start of frame transmission is notified by changing to dominant by SOF.

IDフィールドは、11bitで構成される、データの種類を示す値であるID(メッセージID)を格納するフィールドである。複数のノードが同時に送信を開始した場合、このIDフィールドで通信調停を行うために、IDが小さい値を持つフレームが高い優先度となるよう設計されている。 The ID field is a field configured with 11 bits and storing an ID (message ID) that is a value indicating the type of data. When a plurality of nodes start transmission at the same time, communication is arbitrated in this ID field, so that a frame having a small ID has a high priority.

RTRは、データフレームとリモートフレームとを識別するための値であり、データフレームにおいてはドミナント1bitで構成される。 The RTR is a value for identifying the data frame and the remote frame, and is composed of dominant 1 bit in the data frame.

IDEと「r」とは、両方ドミナント1bitで構成される。 Both IDE and “r” are composed of dominant 1 bit.

DLCは、4bitで構成され、データフィールドの長さを示す値である。なお、IDE、「r」及びDLCを合わせてコントロールフィールドと称する。 The DLC is composed of 4 bits and is a value indicating the length of the data field. The IDE, “r”, and DLC are collectively referred to as a control field.

データフィールドは、最大64bitで構成される送信するデータの内容を示す値である。8bit毎に長さを調整できる。送られるデータの仕様については、CANプロトコルで規定されておらず、車載ネットワークシステム10において定められる。従って、車種、製造者(製造メーカ)等に依存した仕様となる。 The data field is a value indicating the content of the data to be transmitted, which is composed of a maximum of 64 bits. The length can be adjusted every 8 bits. The specifications of the data to be sent are not defined by the CAN protocol, but are defined by the vehicle-mounted network system 10. Therefore, the specifications depend on the vehicle type, manufacturer (manufacturer), and the like.

CRCシーケンスは、15bitで構成される。SOF、IDフィールド、コントロールフィールド及びデータフィールドの送信値より算出される。 The CRC sequence is composed of 15 bits. It is calculated from the transmission values of the SOF, ID field, control field and data field.

CRCデリミタは、1bitのレセシブで構成されるCRCシーケンスの終了を表す区切り記号である。なお、CRCシーケンス及びCRCデリミタを合わせてCRCフィールドと称する。 The CRC delimiter is a delimiter that represents the end of a CRC sequence composed of 1-bit recessive. The CRC sequence and the CRC delimiter are collectively referred to as a CRC field.

ACKスロットは、1bitで構成される。送信ノードはACKスロットをレセシブにして送信を行う。受信ノードはCRCシーケンスまで正常に受信ができていればACKスロットをドミナントとして送信する。レセシブよりドミナントが優先されるため、送信後にACKスロットがドミナントであれば、送信ノードは、いずれかの受信ノードが受信に成功していることを確認できる。 The ACK slot is composed of 1 bit. The transmitting node transmits by making the ACK slot recessive. If the reception node has successfully received the CRC sequence, it transmits the ACK slot as a dominant. Since dominant is given priority over recessive, if the ACK slot is dominant after transmission, the transmitting node can confirm that any of the receiving nodes has succeeded in receiving.

ACKデリミタは、1bitのレセシブで構成されるACKの終了を表す区切り記号である。 The ACK delimiter is a delimiter that represents the end of ACK and is composed of 1-bit recessive.

EOFは、7bitのレセシブで構成されており、データフレームの終了を示す。 The EOF is composed of 7-bit recessive and indicates the end of the data frame.

[1.3 データフィールドフォーマット]
以下、車載ネットワークシステム10で用いられるデータフレームにおけるデータフィールドについて説明する。
[1.3 Data field format]
Hereinafter, the data field in the data frame used in the vehicle-mounted network system 10 will be described.

図3は、車載ネットワークシステムで用いられるデータフィールドフォーマットの一例を示す図である。同図に示すように、データフィールドの最上位ビット「I」(先頭の1ビット)は、このデータフィールドを含むデータフレームが、イベントドリブンデータフレームであるか否かを識別するための識別フラグ(「イベントドリブン識別フラグ」と称する。)である。イベントドリブン識別フラグIは、周期的に送信されるデータフレームにおいては0がセットされ、イベントドリブンデータフレームにおいては1がセットされる。イベントドリブン識別フラグIに後続するデータ領域には、ECUが機器等から取得したセンサ値を示すデータ(ECU100aが送信するデータフレームにおいては例えばパワーウィンドウスイッチ110の状態を示す値等)が含まれる。図3の例では最上位ビットをイベントドリブン識別フラグIとしているが、イベントドリブン識別フラグIを、データフィールド内における最下位ビット等の任意の箇所に設けても良い。 FIG. 3 is a diagram showing an example of a data field format used in the vehicle-mounted network system. As shown in the figure, the most significant bit “I” (first 1 bit) of the data field is an identification flag (for identifying whether or not the data frame including this data field is an event driven data frame). It is referred to as an "event driven identification flag"). The event-driven identification flag I is set to 0 in a data frame that is periodically transmitted, and is set to 1 in an event-driven data frame. The data area subsequent to the event driven identification flag I includes data indicating a sensor value acquired by the ECU from a device or the like (for example, a value indicating the state of the power window switch 110 in the data frame transmitted by the ECU 100a). In the example of FIG. 3, the most significant bit is the event driven identification flag I, but the event driven identification flag I may be provided at any place such as the least significant bit in the data field.

[1.4 ECU100aの構成]
図4は、ECU100aの構成図である。ECU100aは、データフレーム送受信部101と、データフレーム生成部102と、データフレーム生成ルール保持部103と、不正データフレーム判断部104と、受信データフレーム周期保持部105と、データフレーム受信履歴保持部106と、データフレーム処理部107と、タイマ108と、センサ値取得部109とを含んで構成される。これらの各構成要素は、機能的な構成要素であり、その各機能は、ECU100aにおける通信回路、メモリに格納された制御プログラムを実行するプロセッサ或いはデジタル回路等により実現される。なお、ECU100bもECU100aと基本的に同様の構成を備える。但し、データフレーム生成ルール保持部103及び受信データフレーム周期保持部105及びデータフレーム受信履歴保持部106の各保持内容はECU毎に異なる内容となり得る。また、データフレーム処理部107の処理内容は、ECU毎に異なる。
[1.4 Configuration of ECU 100a]
FIG. 4 is a configuration diagram of the ECU 100a. The ECU 100a includes a data frame transmission/reception unit 101, a data frame generation unit 102, a data frame generation rule holding unit 103, an invalid data frame determination unit 104, a received data frame period holding unit 105, and a data frame reception history holding unit 106. A data frame processing unit 107, a timer 108, and a sensor value acquisition unit 109. Each of these constituent elements is a functional constituent element, and each function thereof is realized by a communication circuit in the ECU 100a, a processor that executes a control program stored in the memory, a digital circuit, or the like. The ECU 100b basically has the same configuration as the ECU 100a. However, the contents held in the data frame generation rule holding unit 103, the received data frame period holding unit 105, and the data frame reception history holding unit 106 may be different for each ECU. Further, the processing content of the data frame processing unit 107 differs for each ECU.

データフレーム送受信部101は、バス200に流れるデータフレームを受信し、CANプロトコルに従ってデータフレームを解釈する。受信したデータフレームにおけるIDフィールドの内容であるID(メッセージID)が、自機(ECU100a)が受信するように予め定められているメッセージIDである場合は、データフレームの内容を不正データフレーム判断部104へ通知する。また、データフレーム送受信部101は、データフレーム生成部102から通知されたデータフレームをCANプロトコルに従ってバス200へ送信する。 The data frame transmitting/receiving unit 101 receives a data frame flowing on the bus 200 and interprets the data frame according to the CAN protocol. When the ID (message ID), which is the content of the ID field in the received data frame, is a message ID that is predetermined to be received by the own device (ECU 100a), the content of the data frame is determined to be an invalid data frame determination unit. Notify 104. Further, the data frame transmitting/receiving unit 101 transmits the data frame notified from the data frame generating unit 102 to the bus 200 according to the CAN protocol.

データフレーム生成部102は、データフレーム生成ルール保持部103に格納されたデータフレーム生成ルールに従い、データフレームを生成し、データフレーム送受信部101に通知する。データフレーム生成部102は、タイマ108から現在時刻を取得する。更にデータフレーム生成部102は、ECU100aに接続された機器(パワーウィンドウスイッチ110)に関するデータ(センサ値)をセンサ値取得部109から取得する。ECU100aからデータフレームを周期的に送信すべく、データフレーム生成部102は、現在時刻とデータフレーム生成ルール保持部103に格納される送信周期とによって、データフレームを生成するタイミングを決定し、データフレームの生成を周期的に行う。なお、データフレーム生成部102によりデータフレームが生成されると、そのデータフレームはデータフレーム送受信部101に通知され、データフレーム送受信部101はそのデータフレームの送信を行う。更に、データフレーム生成部102は、センサ値取得部109から取得されるセンサ値に変化があった時が、前述した周期的なタイミングとは異なる時である場合(例えば周期的なタイミングの許容範囲を示すマージンの範囲外である場合)には、イベントドリブンデータフレームの生成を行う。即ち、データフレーム生成部102は、送信周期を示すデータフレーム生成ルールに適合しないタイミングでデータフレームの送信をする際においてデータフレーム中にイベントドリブン識別フラグという特定識別子を付与したデータフレームを生成する、言わば付与部として働く。センサ値取得部109はセンサ(パワーウィンドウスイッチ110)からセンサ値に変更があった場合及び変更がない場合に随時センサ値を取得する方式で動作しても、センサ値に変更があった場合にのみセンサから供給されるセンサ値を取得する方式で動作しても良い。データフレーム生成部102は、センサ値取得部109が最後にセンサから取得したセンサ値をデータフィールドに格納したデータフレームを周期的に生成する他、前回のセンサ値から変化があったセンサ値を含むイベントドリブンデータフレームを生成することになる。なお、周期的にデータフレームを生成するタイミングにおいては、前回のセンサ値から変化がなく同じセンサ値を含むデータフレームを生成する可能性と、前回のセンサ値から変化があったセンサ値を含むデータフレームを生成する可能性とがある。また、その周期的なタイミングではないタイミングで生成されるイベントドリブンデータフレームは、前回のセンサ値から変化があったセンサ値を含むデータフレームである。従って、データフレーム送受信部101によりECU100aからバス200に、周期的にデータフレームが送信され、更に、非周期的にイベントドリブンデータフレームが送信される。即ち、データフレーム送受信部101は、バス200上で送信されたデータフレームを受信する受信部としての機能の他に、特定識別子を含み送信周期を示すデータフレーム生成ルールに適合しないデータフレームであるイベントドリブンデータフレームをバス200により他のECUに送信する、言わば送信部としての機能等を含む。 The data frame generation unit 102 generates a data frame according to the data frame generation rule stored in the data frame generation rule holding unit 103 and notifies the data frame transmission/reception unit 101 of the data frame. The data frame generation unit 102 acquires the current time from the timer 108. Further, the data frame generation unit 102 acquires data (sensor value) regarding the device (power window switch 110) connected to the ECU 100a from the sensor value acquisition unit 109. In order to periodically transmit the data frame from the ECU 100a, the data frame generation unit 102 determines the timing of generating the data frame based on the current time and the transmission period stored in the data frame generation rule holding unit 103, and Is generated periodically. When the data frame generation unit 102 generates a data frame, the data frame transmission/reception unit 101 is notified of the data frame, and the data frame transmission/reception unit 101 transmits the data frame. Further, the data frame generation unit 102 determines that the time when the sensor value acquired from the sensor value acquisition unit 109 changes is different from the above-described periodic timing (for example, the allowable range of the periodic timing). If the value is outside the margin range that indicates that the event-driven data frame is generated. That is, the data frame generation unit 102 generates a data frame in which a specific identifier called an event driven identification flag is added to the data frame when transmitting the data frame at a timing that does not conform to the data frame generation rule indicating the transmission cycle, It works as an adder. The sensor value acquisition unit 109 operates even if the sensor value is changed from the sensor (power window switch 110) and the sensor value is changed at any time, and if the sensor value is changed. Only the sensor value supplied from the sensor may be acquired. The data frame generation unit 102 periodically generates a data frame in which the sensor value last acquired by the sensor value acquisition unit 109 from the sensor is stored in a data field, and also includes a sensor value that has changed from the previous sensor value. It will generate an event driven data frame. Note that at the timing of periodically generating a data frame, the possibility of generating a data frame that includes the same sensor value without change from the previous sensor value and the data including the sensor value that has changed from the previous sensor value There is a possibility to generate a frame. The event-driven data frame generated at a timing that is not the periodic timing is a data frame that includes a sensor value that has changed from the previous sensor value. Therefore, the data frame transmitting/receiving unit 101 periodically transmits the data frame from the ECU 100a to the bus 200, and further, transmits the event driven data frame aperiodically. That is, the data frame transmitting/receiving unit 101 has a function as a receiving unit that receives a data frame transmitted on the bus 200, and an event that is a data frame that does not conform to a data frame generation rule that includes a specific identifier and indicates a transmission cycle. It includes a function of transmitting a driven data frame to another ECU via the bus 200, so to speak.

データフレーム生成ルール保持部103は、メモリ等の記憶媒体で実現され、データフレーム生成ルールとして、自機(ECU100a)が送信するメッセージID毎に周期的にデータフレームを送信するための送信周期を格納している。図5は、データフレーム生成ルール保持部103に格納されたデータフレーム生成ルールの一例を示す図である。ここでは、ECU100aは、パワーウィンドウスイッチ110の状態を示すデータフレーム等、複数種類のデータフレーム(種類毎にメッセージIDで識別されるデータフレーム)を送信するものとする。図5の例は、ECU100aから周期的に送信されるメッセージIDが0x100のデータフレームの送信周期は、50msであり、メッセージIDが0x200のデータフレームの送信周期は、100msであり、メッセージIDが0x300のデータフレームの送信周期は、300msであることを示している。 The data frame generation rule holding unit 103 is realized by a storage medium such as a memory, and stores, as a data frame generation rule, a transmission cycle for periodically transmitting a data frame for each message ID transmitted by the own device (ECU 100a). doing. FIG. 5 is a diagram showing an example of the data frame generation rule stored in the data frame generation rule holding unit 103. Here, it is assumed that the ECU 100a transmits a plurality of types of data frames (a data frame identified by a message ID for each type) such as a data frame indicating the state of the power window switch 110. In the example of FIG. 5, the transmission cycle of the data frame with the message ID 0x100 periodically transmitted from the ECU 100a is 50 ms, the transmission cycle of the data frame with the message ID 0x200 is 100 ms, and the message ID is 0x300. The transmission cycle of the data frame is 300 ms.

不正データフレーム判断部104は、受信したデータフレームが正当なデータフレームであるか(不正なデータフレームでないか)否かについて判断する。即ち、不正データフレーム判断部104は、データフレーム送受信部101から通知されたデータフレームについて、受信データフレーム周期保持部105の周期ルール情報(後述)を参照して、メッセージID毎に予め定められた送信周期の条件を満たすか否かを確認し、送信周期の条件を満たす場合には正規のECUから送信されたデータフレーム(正当なデータフレーム)であると判断する。また、送信周期の条件を満たさないデータフレームであっても、イベントドリブンデータフレームであるか否かを識別するためのイベントドリブン識別フラグを確認し、イベントドリブンデータフレームであると識別された場合には正規ECUから送信されたデータフレーム(正当なデータフレーム)であると判断する。即ち、不正データフレーム判断部104は、送信周期を示すデータフレーム生成ルールに呼応した周期ルール情報(後述)に適合しないデータフレームがデータフレーム送受信部101により受信された場合に、そのデータフレーム中のイベントドリブン識別フラグという特定識別子を検証する、言わば検証部としての機能を有する。不正データフレーム判断部104は、受信したデータフレームが予め定められた送信周期の条件を満たさず、かつ、イベントドリブン識別フラグによってイベントドリブンデータフレームであると確認されない場合(つまり特定識別子の検証に失敗した場合)には、受信したデータフレームを不正なデータフレームであると判断する。不正データフレーム判断部104は、正当なデータフレームであると判断した場合には、データフレーム処理部107にそのデータフレームの処理を行わせ、不正なデータフレームであると判断した場合には、そのデータフレームを破棄する(つまりそのデータフレームについてデータフレーム処理部107に処理させない)。また、不正データフレーム判断部104は、送信周期の条件を満たすデータフレームを受信した場合に、受信時刻をデータフレーム受信履歴保持部106に前回受信時刻(後述)として記録する。 The invalid data frame determination unit 104 determines whether or not the received data frame is a valid data frame (is not an invalid data frame). That is, the illegal data frame determination unit 104 refers to the cycle rule information (described later) of the received data frame cycle holding unit 105 for the data frame notified from the data frame transmission/reception unit 101, and is determined in advance for each message ID. It is confirmed whether or not the transmission cycle condition is satisfied, and if the transmission cycle condition is satisfied, it is determined that the data frame has been transmitted from a legitimate ECU (valid data frame). In addition, even if the data frame does not satisfy the condition of the transmission cycle, the event-driven identification flag for identifying whether it is an event-driven data frame is checked, and if it is identified as an event-driven data frame, Is determined to be a data frame transmitted from a regular ECU (valid data frame). That is, when the data frame transmitting/receiving unit 101 receives a data frame that does not conform to the cycle rule information (described later) corresponding to the data frame generation rule indicating the transmission cycle, the unauthorized data frame determination unit 104 determines whether the data frame It has a function as a verification unit, so to speak, for verifying a specific identifier called an event driven identification flag. When the received data frame does not satisfy the condition of the predetermined transmission cycle and the event-driven identification flag does not confirm that the received data frame is the event-driven data frame (that is, the verification of the specific identifier fails) If so, the received data frame is determined to be an invalid data frame. If the illegal data frame determination unit 104 determines that the data frame is a valid data frame, it causes the data frame processing unit 107 to process the data frame. The data frame is discarded (that is, the data frame processing unit 107 does not process the data frame). In addition, the invalid data frame determination unit 104 records the reception time in the data frame reception history holding unit 106 as the previous reception time (described later) when the data frame satisfying the condition of the transmission cycle is received.

受信データフレーム周期保持部105は、メモリ等の記憶媒体で実現され、周期ルール情報を保持する。この周期ルール情報は、自機(ECU100a)が受信するデータフレームのメッセージID毎に、予め定められた送信周期と、データフレームの受信間隔について、送信周期の条件が満たされる(つまり正当な送信周期に合致する)と判断されるための許容範囲を示すマージンとを対応付けた情報である。データフレームの受信側のECUの受信データフレーム周期保持部105に保持される周期ルール情報における送信周期は、そのデータフレームの送信側のECUのデータフレーム生成ルール保持部103に保持されるデータフレーム生成ルールにおける送信周期に呼応する。図6は、ECU100aから送信されたデータフレームを受信するECU100bにおける受信データフレーム周期保持部105に格納された周期ルール情報の一例を示す図である。同図の例では、メッセージIDが0x100のデータフレームの送信周期が50ms、メッセージIDが0x200のデータフレームの送信周期が100ms、メッセージIDが0x300のデータフレームの送信周期が70msであることを示している。同図の例では、マージンは、どのメッセージIDについても1msである。このマージンが1msであるため、メッセージIDが0x100のデータフレームについて送信周期が49ms以上51ms以下の範囲であれば、ECU100bにおける不正データフレーム判断部104は、送信周期の条件が満たされると判断することになる。 The received data frame cycle holding unit 105 is realized by a storage medium such as a memory and holds cycle rule information. This cycle rule information satisfies the condition of the transmission cycle with respect to the predetermined transmission cycle and the reception interval of the data frame for each message ID of the data frame received by the own device (ECU 100a) (that is, the valid transmission cycle). It is information in which a margin indicating a permissible range for determining that it is determined to match) is associated. The transmission cycle in the cycle rule information held by the received data frame cycle holding unit 105 of the ECU on the data frame receiving side is the data frame generation held by the data frame generation rule holding unit 103 of the sending side ECU of the data frame. It corresponds to the transmission cycle in the rule. FIG. 6 is a diagram showing an example of cycle rule information stored in the received data frame cycle holding unit 105 in the ECU 100b that receives the data frame transmitted from the ECU 100a. In the example of the figure, it is shown that the transmission cycle of the data frame of the message ID 0x100 is 50 ms, the transmission cycle of the data frame of the message ID 0x200 is 100 ms, and the transmission cycle of the data frame of the message ID 0x300 is 70 ms. There is. In the example of the figure, the margin is 1 ms for any message ID. Since this margin is 1 ms, if the transmission cycle of the data frame with the message ID of 0x100 is in the range of 49 ms or more and 51 ms or less, the incorrect data frame determination unit 104 in the ECU 100b determines that the condition of the transmission cycle is satisfied. become.

データフレーム受信履歴保持部106は、メモリ等の記憶媒体で実現され、自機(ECU100a)が正常に受信(つまり正当なデータフレームとして受信)した周期的なデータフレームについてメッセージID毎に、周期的に受信した最終時刻である前回受信時刻を対応付けてなるリストを保持している。図7は、正当なデータフレームとして受信した周期的なデータフレームのメッセージID毎に、データフレームの前回受信時刻を示す情報を列挙したリストの一例を示している。同図の例は、ECU100bにおけるデータフレーム受信履歴保持部106が保持するリストの例である。この例では、メッセージIDが0x100であるデータフレームを周期的に受信した最終時刻(前回受信時刻)は200ms、メッセージIDが0x200であるデータフレームを周期的に受信した前回受信時刻は220ms、メッセージIDが0x300であるデータフレームを周期的に受信した前回受信時刻は230msであることを示している。 The data frame reception history holding unit 106 is realized by a storage medium such as a memory, and periodically with respect to each message ID, the periodic data frame that the own device (ECU 100a) normally receives (that is, receives as a valid data frame). It holds a list in which the last reception time, which is the last reception time, is associated with each other. FIG. 7 shows an example of a list in which information indicating the last reception time of a data frame is listed for each message ID of a periodic data frame received as a valid data frame. The example of the figure is an example of a list held by the data frame reception history holding unit 106 in the ECU 100b. In this example, the last time (previous reception time) when the data frame whose message ID is 0x100 is cyclically received is 200 ms, the last reception time when the data frame whose message ID is 0x200 is cyclically received is 220 ms, and the message ID is Indicates that the previous reception time at which a data frame of 0x300 is periodically received is 230 ms.

データフレーム処理部107は、不正データフレーム判断部104により正当なデータフレームであると判断されたデータフレームについて、そのデータフレームに応じてECU毎に予め定められた処理を行う。例えば、パワーウィンドウスイッチ110の状態を示すデータフレームを送信したECU100aでは、ECU100bからパワーウィンドウ120の開閉の制御状態に応じたデータフレームを受信して、パワーウィンドウ120が適切に反応しているかを確認する処理、適切に反応していない場合にアラーム音を鳴らす処理或いは他のECUに異常を通知する処理等を行う。 The data frame processing unit 107 performs a predetermined process for each ECU on the data frame determined by the unauthorized data frame determination unit 104 to be a valid data frame according to the data frame. For example, the ECU 100a that has transmitted the data frame indicating the state of the power window switch 110 receives the data frame according to the control state of the opening/closing of the power window 120 from the ECU 100b, and confirms whether the power window 120 is reacting properly. Processing, sounding an alarm sound when not reacting properly, or processing of notifying an abnormality to another ECU.

タイマ108は、計時機構であり、例えば車両のエンジン始動時或いはバッテリからの電力供給開始時等において0にリセットされ、その時点から経過した時刻を、データフレーム生成部102及び不正データフレーム判断部104に通知する。タイマ108により、データフレーム生成部102は、データフレームを一定の送信周期で周期的に送信でき、不正データフレーム判断部104は、受信したデータフレームの受信周期が予め定められた送信周期の条件を満たすか否かを判断することができるようになる。 The timer 108 is a timing mechanism, and is reset to 0 when the engine of the vehicle is started or when the power supply from the battery is started, for example. The time elapsed from that point is the data frame generation unit 102 and the illegal data frame determination unit 104. To notify. The timer 108 allows the data frame generation unit 102 to periodically transmit the data frame at a constant transmission cycle, and the invalid data frame determination unit 104 sets the reception cycle of the received data frame to a predetermined transmission cycle condition. You will be able to determine whether or not you are satisfied.

センサ値取得部109は、自機(ECU100a)が接続している機器(パワーウィンドウスイッチ110)の状態を示すセンサ値を取得し、データフレーム生成部102に周期的に通知し、更にセンサの値が変化した時にもセンサ値をデータフレーム生成部102に通知する。 The sensor value acquisition unit 109 acquires a sensor value indicating the state of the device (power window switch 110) connected to the own device (ECU 100a), periodically notifies the data frame generation unit 102, and further, the sensor value. The sensor value is also notified to the data frame generation unit 102 when is changed.

[1.5 データフレームの送受信]
以下、図8〜図10を用いて、バス200を介したECU間でのデータフレームの送受信について説明する。
[1.5 Data Frame Transmission/Reception]
Transmission and reception of data frames between the ECUs via the bus 200 will be described below with reference to FIGS. 8 to 10.

図8は、ECU100aをデータフレームの送信側とし、ECU100bをデータフレームの受信側としたときのデータフレームの送受信の流れを示す図である。 FIG. 8 is a diagram showing a flow of data frame transmission/reception when the ECU 100a is a data frame transmission side and the ECU 100b is a data frame reception side.

図8に示す期間Tは、周期的に送信されるデータフレームの送信周期である。この期間Tは、送信側であるECU100aのデータフレーム生成ルール保持部103が保持するデータフレーム生成ルールにおける送信周期である。また、期間Tは、受信側であるECU100bの受信データフレーム周期保持部105が保持する周期ルール情報における送信周期と一致すると想定される。ECU100aは、周期的にデータフレームを送信する。ECU100aは、その周期的な送信に加えて、接続されたパワーウィンドウスイッチ110の状態の変化のタイミングがその周期的な送信タイミングと一致しない場合に、その状態の変化のタイミングで、イベントドリブンデータフレームを送信する。 The period T shown in FIG. 8 is a transmission cycle of a data frame that is periodically transmitted. This period T is a transmission cycle in the data frame generation rule held by the data frame generation rule holding unit 103 of the transmission side ECU 100a. Further, it is assumed that the period T coincides with the transmission cycle in the cycle rule information held by the reception data frame cycle holding unit 105 of the receiving side ECU 100b. The ECU 100a periodically transmits a data frame. In addition to the periodic transmission, the ECU 100a uses the event-driven data frame at the timing of the state change when the timing of the state change of the connected power window switch 110 does not match the periodic transmission timing. To send.

車載ネットワークシステム10においては、不正なECUがバス200に接続された不正なデータフレームを送信した場合に、ECU100aが送信した正当なデータフレームと区別できる。即ち、ECU100bにより不正なデータフレームと正当なデータフレームとは判別される。この判別には、上述した周期的に送信されるデータフレームについて周期ルール情報(送信周期に係る条件)が用いられ、また、その送信周期に係る条件を満たさないイベントドリブンデータフレームについてはデータフィールド中のイベントドリブン識別フラグという特定識別子が用いられる。 In the vehicle-mounted network system 10, when an unauthorized ECU transmits an unauthorized data frame connected to the bus 200, it can be distinguished from the authorized data frame transmitted by the ECU 100a. That is, the ECU 100b discriminates between an invalid data frame and a valid data frame. For this determination, the cycle rule information (condition related to the transmission cycle) is used for the above-mentioned cyclically transmitted data frame, and the event-driven data frame that does not satisfy the condition related to the transmission cycle is included in the data field. A specific identifier called an event-driven identification flag is used.

図9は、ECU100aにおけるデータフレームの送信処理を示すフローチャートである。 FIG. 9 is a flowchart showing a data frame transmission process in the ECU 100a.

ECU100aは、データフレーム生成ルールにおける送信周期に従った送信タイミング(前回の送信から送信周期が経過したタイミング)、或いは、センサ値取得部109からのセンサ値が変化したタイミングで、データフレームの生成が必要となり、図9の送信処理を開始する。送信処理においては、まず、ECU100aは、送信するデータフレームがイベントドリブンデータフレームか周期的なデータフレームかを判断する(ステップS1101)。 The ECU 100a generates the data frame at the transmission timing according to the transmission cycle in the data frame generation rule (the timing when the transmission cycle has passed from the previous transmission) or the timing when the sensor value from the sensor value acquisition unit 109 changes. It becomes necessary and the transmission process of FIG. 9 is started. In the transmission process, first, the ECU 100a determines whether the data frame to be transmitted is an event driven data frame or a periodic data frame (step S1101).

ECU100aは、ステップS1101において、送信するデータフレームが、データフレーム生成ルールにおける送信周期に従っていないイベントドリブンデータフレームであると判断した場合は、生成するデータフレームのデータフィールドのイベントドリブン識別フラグI(図3参照)に、イベントドリブンデータフレームであることを示す1をセットする(ステップS1102)。 If the ECU 100a determines in step S1101 that the data frame to be transmitted is an event driven data frame that does not follow the transmission cycle in the data frame generation rule, the event driven identification flag I (FIG. 3) of the data field of the data frame to be generated. 1) indicating that it is an event driven data frame is set (see step S1102).

ECU100aは、ステップS1101において、送信するデータフレームが、データフレーム生成ルールにおける送信周期に従う周期的なデータフレームであると判断した場合(イベントドリブンデータフレームでないと判断した場合)は、生成するデータフレームのデータフィールドのイベントドリブン識別フラグI(図3参照)に、イベントドリブンデータフレームでないことを示す0をセットする(ステップS1103)。 When the ECU 100a determines in step S1101 that the data frame to be transmitted is a periodic data frame according to the transmission cycle in the data frame generation rule (when it is determined that the data frame is not an event-driven data frame), the data frame to be generated is The event-driven identification flag I (see FIG. 3) in the data field is set to 0 indicating that it is not an event-driven data frame (step S1103).

ECU100aは、ステップS1102又はS1103での処理を終えると、データフィールドのデータ領域にはセンサ値取得部109から取得した最新のセンサ値をセットして、送信するデータフレームを生成し、バス200へと送信する(ステップS1104)。これにより、バス200上にデータフレームが流れ、ECU100bに受信されるようになる。 When the processing in step S1102 or S1103 is completed, the ECU 100a sets the latest sensor value acquired from the sensor value acquisition unit 109 in the data area of the data field, generates a data frame to be transmitted, and outputs the data frame to the bus 200. It is transmitted (step S1104). As a result, the data frame flows on the bus 200 and is received by the ECU 100b.

図10は、ECU100bにおけるデータフレームの受信処理を示すフローチャートである。 FIG. 10 is a flowchart showing a data frame reception process in the ECU 100b.

ECU100bは、バス200上に現れるデータフレームを受信する(ステップS1201)。なお、ECU100bは、自機が受信すべきメッセージIDを含まないデータフレームであればそのデータフレームを破棄して処理を終了する。自機が受信すべきメッセージIDを含むデータフレームを受信した場合に、ECU100bは、その受信が、保持している周期ルール情報で規定された送信周期範囲内か否かを判断する(ステップS1202)。なお、ECU100bの不正データフレーム判断部104は、受信したデータフレームの受信間隔(つまり送信周期)が規定の送信周期の範囲内であるか否か(つまり周期ルール情報で定められた送信周期の条件を満たすか否か)を、タイマ108、受信データフレーム周期保持部105及びデータフレーム受信履歴保持部106から得られる情報に基づいて判断する。なお、規定の送信周期の範囲内とは、前回受信時刻と今回受信したデータフレームの受信時刻の差分(受信間隔)が、受信したデータフレームのメッセージIDに対応して定められた送信周期からマージンを引いた値以上であり、かつ、その送信周期にマージンを加えた値以下である場合を意味する。 The ECU 100b receives the data frame appearing on the bus 200 (step S1201). If the data frame does not include a message ID that the ECU 100b should receive, the ECU 100b discards the data frame and ends the process. When the data frame including the message ID to be received by the own device is received, the ECU 100b determines whether the reception is within the transmission cycle range defined by the held cycle rule information (step S1202). . It should be noted that the unauthorized data frame determination unit 104 of the ECU 100b determines whether or not the reception interval (that is, the transmission cycle) of the received data frame is within the range of the specified transmission cycle (that is, the condition of the transmission cycle defined by the cycle rule information). Whether or not the condition is satisfied) is determined based on the information obtained from the timer 108, the received data frame period holding unit 105, and the data frame reception history holding unit 106. Note that within the specified transmission cycle range, the difference (reception interval) between the previous reception time and the reception time of the data frame received this time is a margin from the transmission cycle determined corresponding to the message ID of the received data frame. It is equal to or more than the value obtained by subtracting and is less than or equal to the value obtained by adding a margin to the transmission cycle.

ステップS1202において、データフレームの受信間隔が送信周期の範囲内である場合には、送信周期の条件が満たされたことになり、ECU100bは、データフレーム受信履歴保持部106が保持するリストに、受信したデータフレームのメッセージIDに対応付けて、前回受信時刻として、そのデータフレームの受信時刻を記録(つまり前回受信時刻を更新)する(ステップS1204)。そして、ステップS1204での処理に続いて、ECU100bの不正データフレーム判断部104により、受信したデータフレームが正当なデータフレームであると判断され(ステップS1205)、データフレーム処理部107によりそのデータフレームに対応した処理がなされる。 If the reception interval of the data frames is within the range of the transmission cycle in step S1202, the condition of the transmission cycle is satisfied, and the ECU 100b receives the data in the list held by the data frame reception history holding unit 106. The reception time of the data frame is recorded (that is, the previous reception time is updated) as the previous reception time in association with the message ID of the data frame (step S1204). Then, following the processing in step S1204, the invalid data frame determination unit 104 of the ECU 100b determines that the received data frame is a valid data frame (step S1205), and the data frame processing unit 107 converts it into the data frame. Corresponding processing is performed.

また、ステップS1202において、データフレームの前回受信時刻と今回受信時刻の差分が送信周期の範囲内でない場合には、ECU100bは、データフレームのデータフィールドのイベントドリブン識別フラグIが1であるか否かを判別する(ステップS1203)。イベントドリブン識別フラグIが1である場合には、ECU100bの不正データフレーム判断部104は、受信したデータフレームが正当なデータフレームであると判断し(ステップS1205)、データフレーム処理部107によりそのデータフレームに対応した処理がなされる。 If the difference between the previous reception time and the current reception time of the data frame is not within the range of the transmission cycle in step S1202, the ECU 100b determines whether the event driven identification flag I of the data field of the data frame is 1. Is determined (step S1203). When the event-driven identification flag I is 1, the unauthorized data frame determination unit 104 of the ECU 100b determines that the received data frame is a valid data frame (step S1205), and the data frame processing unit 107 determines that data. Processing corresponding to the frame is performed.

また、ステップS1203において、データフレームのデータフィールドのイベントドリブン識別フラグIが1でないと判別した場合には、ECU100bは、受信したデータフレームが不正なデータフレームであると判断してデータフレームを破棄する(ステップS1206)。従って、ECU100bは、不正なECUにより送信された不正なデータフレームを処理しない。 If it is determined in step S1203 that the event-driven identification flag I in the data field of the data frame is not 1, the ECU 100b determines that the received data frame is an invalid data frame and discards the data frame. (Step S1206). Therefore, the ECU 100b does not process the invalid data frame transmitted by the unauthorized ECU.

なお、ステップS1202において、データフレームの受信間隔(つまり送信周期)が規定の送信周期の範囲内か否かを判断するに際して、初回等といった前回受信時刻が保存されていない場合においては、受信したデータフレームをイベントドリブンデータフレームと扱い、イベントドリブン識別フラグIが正しいときにそのデータフレームの受信時刻を前回受信時刻として記録してからステップS1205の処理を行うことができる。この場合、送信側のECUでは初回等の周期的な送信の起点においてはイベントドリブンデータフレームを送信する。また、各ECUが例えばスリープ状態等に入ってデータフレームの周期的な送信を休止する期間がある場合には、その後の周期的な送信の再開時にデータフレームをイベントドリブンデータフレームとして送信することとしても良い。この場合には、受信側のECUでは前回受信時刻から一定時間以上の間、送信側のECUがスリープ状態に入って周期的な送信が途切れた場合に、前回受信時刻を無効にして次回を初回と扱い、受信したデータフレームをイベントドリブンデータフレームと扱い、その正当性を判断することができる。 In step S1202, when it is determined whether the data frame reception interval (that is, the transmission cycle) is within the specified transmission cycle, if the previous reception time such as the first time is not stored, the received data is received. The frame can be treated as an event-driven data frame, and when the event-driven identification flag I is correct, the reception time of the data frame can be recorded as the previous reception time and then the process of step S1205 can be performed. In this case, the transmitting ECU transmits the event driven data frame at the starting point of the periodic transmission such as the first transmission. In addition, when there is a period in which each ECU enters a sleep state or the like and suspends periodic transmission of data frames, the data frame is transmitted as an event-driven data frame when the periodic transmission is resumed thereafter. Is also good. In this case, if the ECU on the transmitting side enters a sleep state for a certain period of time from the previous receiving time and the periodic transmission is interrupted, the receiving side ECU invalidates the previous receiving time and starts the next time. The received data frame is treated as an event-driven data frame, and its validity can be determined.

ここでは、ECU100aがデータフレームを送信してECU100bがデータフレームを受信する例を示したが、ECU100bがデータフレームを送信してECU100aがデータフレームを受信する場合においても同様の処理がなされる。即ち、ECU100bも図9に示すものと同様の送信処理を実行し得るし、ECU100aも図10に示すものと同様の受信処理を実行し得る。 Here, the example in which the ECU 100a transmits the data frame and the ECU 100b receives the data frame has been described, but the same processing is performed when the ECU 100b transmits the data frame and the ECU 100a receives the data frame. That is, the ECU 100b can also perform the same transmission processing as that shown in FIG. 9, and the ECU 100a can also perform the same reception processing as that shown in FIG.

[1.6 実施の形態1の効果]
実施の形態1では、周期的に送信されるデータフレームに加えて、非周期的に送信されるイベントドリブンデータフレームが存在する場合でも、イベントドリブンデータフレーム内に特定識別子を含めることによって、正当なデータフレームか否かを区別可能にする車載ネットワークシステム10を示した。即ち、車載ネットワークシステム10では、送信周期の条件により正当なデータフレームであるか否かを判別し、送信周期の条件によっては判別ができない場合に限って特定識別子により正当なデータフレームであるか否かを判別するようにしている。不正なECUがデータフレームを送信する場合には、送信周期の条件を満たさない可能性が高く、特に特定識別子を付与しないため、このデータフレームを受信したECUによって不正なデータフレームであると判断されるようになる。なお、イベントドリブンデータフレームではないデータフレーム(つまり周期的に送信されるデータフレーム)においては、データフィールドにイベントドリブン識別フラグIを含めずにデータフィールドに、ECUが機器等から取得したセンサ値を示すデータだけを含ませることとしても良い。このようにすれば、正規のECUが周期的に送信するデータフレームには、特定識別子を設ける必要がないため例えばデータフィールドを最大限に有効活用できる。
[1.6 Effect of Embodiment 1]
In the first embodiment, even if there is an event-driven data frame that is transmitted aperiodically in addition to the data frame that is transmitted periodically, by including the specific identifier in the event-driven data frame, it becomes possible The in-vehicle network system 10 that can distinguish whether it is a data frame is shown. That is, the in-vehicle network system 10 determines whether the data frame is a valid data frame based on the condition of the transmission cycle, and determines whether the data frame is a valid data frame based on the specific identifier only when the data frame cannot be determined depending on the condition of the transmission cycle. I'm trying to determine. When a fraudulent ECU transmits a data frame, it is highly likely that the condition of the transmission cycle is not satisfied, and no particular identifier is given. Therefore, the ECU that receives this data frame determines that it is a fraudulent data frame. Become so. In a data frame that is not an event-driven data frame (that is, a data frame that is periodically transmitted), the sensor value acquired by the ECU from the device or the like is not included in the data field and the sensor value acquired from the device or the like is included in the data field. It is also possible to include only the data shown. In this way, since it is not necessary to provide a specific identifier in the data frame periodically transmitted by the regular ECU, for example, the data field can be effectively utilized to the maximum extent.

(実施の形態2)
以下、本開示の別の実施の形態として、データフレームを送受信するECU2100aとECU2100bとの間で、周期的に送信されるデータフレームに加えて非周期的なイベントドリブンデータフレームが送信され得る前提の下で、不正なデータフレームが送信されたことを適切に検知するための不正検知方法を実現する車載ネットワークシステム11について図面を用いて説明する。
(Embodiment 2)
Hereinafter, as another embodiment of the present disclosure, it is assumed that an aperiodic event-driven data frame may be transmitted in addition to the periodically transmitted data frame between the ECU 2100a and the ECU 2100b that transmit and receive the data frame. Below, the vehicle-mounted network system 11 which implement|achieves the fraud detecting method for detecting appropriately that the fraudulent data frame was transmitted is demonstrated using drawing.

[2.1 車載ネットワークシステム11の全体構成]
図11は、実施の形態2に係る車載ネットワークシステム11の全体構成を示す図である。車載ネットワークシステム11は、実施の形態1で示した車載ネットワークシステム10の一部を変形したものであり、制御装置、センサ等の各種機器が搭載された自動車におけるネットワーク通信システムである。車載ネットワークシステム11は、各種機器に接続されたECU2100a、2100b、及び、各ECUをつなぐバス200を含んで構成される。車載ネットワークシステム11の構成要素のうち、実施の形態1で示した車載ネットワークシステム10と同様の機能を有する構成要素は、同じ符号を付して説明を省略する。ECUは、例えば、プロセッサ(マイクロプロセッサ)、メモリ等のデジタル回路、アナログ回路、通信回路等を含む装置である。以下、バス200には不正なデータフレームを送信する不正なECUが接続されている可能性があることを前提として説明する。
[2.1 Overall Configuration of In-Vehicle Network System 11]
FIG. 11 is a diagram showing an overall configuration of the vehicle-mounted network system 11 according to the second embodiment. The in-vehicle network system 11 is a modification of the in-vehicle network system 10 described in the first embodiment and is a network communication system in an automobile in which various devices such as a control device and a sensor are mounted. The vehicle-mounted network system 11 is configured to include ECUs 2100a and 2100b that are connected to various devices and a bus 200 that connects the ECUs. Among the constituent elements of the vehicle-mounted network system 11, the constituent elements having the same functions as those of the vehicle-mounted network system 10 described in the first embodiment are designated by the same reference numerals and the description thereof will be omitted. The ECU is a device including, for example, a processor (microprocessor), a digital circuit such as a memory, an analog circuit, a communication circuit, and the like. Hereinafter, description will be made on the assumption that an unauthorized ECU that transmits an unauthorized data frame may be connected to the bus 200.

ECU2100aは、実施の形態1で示したECU100aの一部を変形したものであり、パワーウィンドウスイッチ110に接続されている。ECU2100aは、パワーウィンドウスイッチ110の状態を示す情報を含むデータフレームを周期的にバス200に送信する。さらにパワーウィンドウスイッチ110の状態が変化した時にもパワーウィンドウスイッチ110の状態を示す情報(つまりセンサ値を示す情報)を含むデータフレームをバス200に送信する。従って、ECU2100aは、一定の送信周期でデータフレームの送信を繰り返す他に、パワーウィンドウスイッチ110の状態の変化時がその送信周期と一致しないときに非周期的なイベントドリブンデータフレームをバス200に送信することになる。またECU2100aは、ECU2100bからバス200上に送信されてバス200に流れるデータフレームを受信し、例えばECU2100aが送信したデータフレームが正しく受信されていること等を確認する。 The ECU 2100a is a modification of the ECU 100a shown in the first embodiment, and is connected to the power window switch 110. The ECU 2100a periodically transmits a data frame including information indicating the state of the power window switch 110 to the bus 200. Further, even when the state of the power window switch 110 changes, a data frame including information indicating the state of the power window switch 110 (that is, information indicating the sensor value) is transmitted to the bus 200. Therefore, the ECU 2100a repeats the transmission of the data frame at a constant transmission cycle and also transmits an aperiodic event-driven data frame to the bus 200 when the change of the state of the power window switch 110 does not match the transmission cycle. Will be done. Further, the ECU 2100a receives the data frame transmitted from the ECU 2100b onto the bus 200 and flowing to the bus 200, and confirms, for example, that the data frame transmitted by the ECU 2100a is correctly received.

ECU2100bは、実施の形態1で示したECU100bの一部を変形したものであり、パワーウィンドウ120に接続されている。ECU2100bは、ECU2100aから送信されバス200に流れているデータフレームを受信し、そのデータフレームに含まれるパワーウィンドウスイッチ110の状態に応じて、パワーウィンドウ120の開閉の制御を行う。またパワーウィンドウ120の開閉の制御状態に応じたデータフレームを周期的にバス200に送信する。この車載ネットワークシステム11においてはCANプロトコルに従って各ECUがフレームの授受を行う。各ECUは、受信したデータフレームが不正なデータフレームであるか否かを判断する機能を有している。 ECU 2100b is a modification of ECU 100b shown in the first embodiment, and is connected to power window 120. The ECU 2100b receives the data frame transmitted from the ECU 2100a and flowing to the bus 200, and controls the opening/closing of the power window 120 according to the state of the power window switch 110 included in the data frame. In addition, a data frame corresponding to the control state of opening/closing of the power window 120 is periodically transmitted to the bus 200. In this in-vehicle network system 11, each ECU exchanges frames according to the CAN protocol. Each ECU has a function of determining whether or not the received data frame is an invalid data frame.

[2.2 データフィールドフォーマット]
以下、車載ネットワークシステム11で用いられるデータフレームにおけるデータフィールドについて説明する。
[2.2 Data field format]
Hereinafter, the data field in the data frame used in the in-vehicle network system 11 will be described.

図12は、車載ネットワークシステム11で用いられるデータフィールドフォーマットの一例を示す図である。同図に示すように、データフィールドの上位8ビット「I」(先頭の8ビット)は、イベントドリブンデータフレームを送信する度に増加するカウンタ(「イベントカウンタ」と称する。)である。イベントカウンタIの値は、周期的なデータフレームの送信時には変化せず、同じメッセージIDのイベントドリブンデータフレームを1回送信する度に値が1増加(インクリメント)する。なお、例外的にイベントカウンタIの値が最大値(8ビットの最大値)になっている場合にイベントカウンタを1増加すると最小値になる。イベントカウンタIは、データフレームの受信側において正当なイベントドリブンデータフレームであるか否かを識別するための特定識別子として働く。イベントカウンタIに後続するデータ領域にはECUが機器等から取得したセンサ値を示すデータ(ECU2100aが送信するデータフレームにおいては例えばパワーウィンドウスイッチ110の状態を示す値等)が含まれる。図12の例では上位8ビットをイベントカウンタIとしているが、イベントカウンタIを、データフィールド内における下位8ビット等の任意の箇所に設けても良い。また、イベントカウンタIの長さを8ビットとしているが、必ずしも8ビットである必要はなく、任意の長さにしても良い。 FIG. 12 is a diagram showing an example of a data field format used in the vehicle-mounted network system 11. As shown in the figure, the upper 8 bits “I” (the first 8 bits) of the data field is a counter (called “event counter”) that is incremented each time an event driven data frame is transmitted. The value of the event counter I does not change at the time of periodic data frame transmission, and the value is incremented (incremented) by 1 each time an event driven data frame having the same message ID is transmitted. In addition, when the value of the event counter I is exceptionally the maximum value (maximum value of 8 bits), the event counter I is incremented by 1 to the minimum value. The event counter I functions as a specific identifier for identifying whether or not the data frame receiving side is a valid event driven data frame. The data area subsequent to the event counter I includes data indicating a sensor value acquired by the ECU from a device or the like (for example, a value indicating the state of the power window switch 110 in the data frame transmitted by the ECU 2100a). In the example of FIG. 12, the upper 8 bits are the event counter I, but the event counter I may be provided at an arbitrary position such as the lower 8 bits in the data field. Further, although the length of the event counter I is 8 bits, it does not necessarily have to be 8 bits and may be any length.

[2.3 ECU2100aの構成]
図13は、ECU2100aの構成図である。ECU2100aは、データフレーム送受信部101と、データフレーム生成部2102と、データフレーム生成ルール保持部2103と、不正データフレーム判断部2104と、受信データフレーム周期保持部105と、データフレーム受信履歴保持部2106と、データフレーム処理部107と、タイマ108と、センサ値取得部109とを含んで構成される。ECU2100aの構成要素のうち、実施の形態1で示したECU100aと同様の機能を有する構成要素は、同じ符号を付して説明を省略する。これらの各構成要素は、機能的な構成要素であり、その各機能は、ECU2100aにおける通信回路、メモリに格納された制御プログラムを実行するプロセッサ或いはデジタル回路等により実現される。なお、ECU2100bもECU2100aと基本的に同様の構成を備える。但し、データフレーム生成ルール保持部2103、受信データフレーム周期保持部105及びデータフレーム受信履歴保持部2106の各保持内容はECU毎に異なる内容となり得る。また、データフレーム処理部107の処理内容は、ECU毎に異なる。
[2.3 Configuration of ECU 2100a]
FIG. 13 is a configuration diagram of the ECU 2100a. The ECU 2100a includes a data frame transmission/reception unit 101, a data frame generation unit 2102, a data frame generation rule holding unit 2103, an invalid data frame determination unit 2104, a received data frame period holding unit 105, and a data frame reception history holding unit 2106. A data frame processing unit 107, a timer 108, and a sensor value acquisition unit 109. Among the constituent elements of the ECU 2100a, constituent elements having the same functions as those of the ECU 100a shown in the first embodiment are designated by the same reference numerals and the description thereof will be omitted. Each of these constituent elements is a functional constituent element, and each function thereof is realized by a communication circuit in the ECU 2100a, a processor that executes a control program stored in the memory, a digital circuit, or the like. The ECU 2100b basically has the same configuration as the ECU 2100a. However, the contents held in the data frame generation rule holding unit 2103, the received data frame period holding unit 105, and the data frame reception history holding unit 2106 may be different for each ECU. Further, the processing content of the data frame processing unit 107 differs for each ECU.

データフレーム生成部2102は、データフレーム生成ルール保持部2103に格納されたデータフレーム生成ルールに従い、データフレームを生成し、データフレーム送受信部101に送信する。データフレーム生成部2102は、タイマ108から現在時刻を取得する。更にデータフレーム生成部2102は、ECU2100aに接続された機器(パワーウィンドウスイッチ110)に関するデータ(センサ値)をセンサ値取得部109から取得する。ECU2100aからデータフレームを周期的に送信すべく、データフレーム生成部2102は、現在時刻とデータフレーム生成ルール保持部2103に格納される送信周期とによって、データフレームを生成するタイミングを決定し、データフレームの生成を周期的に行う。なお、データフレーム生成部2102によりデータフレームが生成されると、そのデータフレームはデータフレーム送受信部101に通知され、データフレーム送受信部101はそのデータフレームの送信を行う。更に、データフレーム生成部2102は、センサ値取得部109から取得されるセンサ値に変化があった時が、周期的なタイミングとは異なる時である場合には、イベントドリブンデータフレームの生成を行う。従って、データフレーム送受信部101によりECU2100aからバス200に、周期的にデータフレームが送信され、更に、非周期的にイベントドリブンデータフレームが送信される。データフレーム生成部2102は、周期的に送信するデータフレーム及びイベントドリブンデータフレームのデータフィールドに、イベントカウンタIとして、データフレーム生成ルール保持部2103に格納されている、メッセージID毎の送信イベントカウンタの値を含ませる。なお、データフレーム生成部2102は、イベントドリブンデータフレームを生成する場合には、データフレームの生成前にデータフレーム生成ルール保持部2103に格納されている送信イベントカウンタの値を1増加(インクリメント)する。データフレーム生成部2102も実施の形態1で示したデータフレーム生成部102と同様に、送信周期を示すデータフレーム生成ルールに適合しないタイミングでデータフレームの送信をする際においてデータフレーム中にイベントカウンタという特定識別子を付与したデータフレームを生成する付与部としての機能を有する。 The data frame generation unit 2102 generates a data frame according to the data frame generation rule stored in the data frame generation rule holding unit 2103, and transmits the data frame to the data frame transmission/reception unit 101. The data frame generation unit 2102 acquires the current time from the timer 108. Further, the data frame generation unit 2102 acquires data (sensor value) regarding the device (power window switch 110) connected to the ECU 2100a from the sensor value acquisition unit 109. In order to periodically transmit the data frame from the ECU 2100a, the data frame generation unit 2102 determines the timing of generating the data frame based on the current time and the transmission period stored in the data frame generation rule holding unit 2103, Is generated periodically. When the data frame generation unit 2102 generates a data frame, the data frame transmission/reception unit 101 is notified of the data frame, and the data frame transmission/reception unit 101 transmits the data frame. Further, the data frame generation unit 2102 generates an event driven data frame when the sensor value acquired from the sensor value acquisition unit 109 changes at a time different from the periodic timing. . Therefore, the data frame transmitting/receiving unit 101 periodically transmits the data frame from the ECU 2100a to the bus 200, and further transmits the event driven data frame aperiodically. The data frame generation unit 2102 stores the transmission event counter for each message ID stored in the data frame generation rule holding unit 2103 as the event counter I in the data fields of the data frame and the event driven data frame that are periodically transmitted. Include a value. When generating an event-driven data frame, the data frame generation unit 2102 increments (increments) the value of the transmission event counter stored in the data frame generation rule holding unit 2103 by 1 before generation of the data frame. . Like the data frame generation unit 102 described in the first embodiment, the data frame generation unit 2102 is also called an event counter in the data frame when transmitting the data frame at a timing that does not conform to the data frame generation rule indicating the transmission cycle. It has a function as an adding unit that generates a data frame to which a specific identifier is added.

データフレーム生成ルール保持部2103は、メモリ等の記憶媒体で実現され、データフレーム生成ルールとしてECU2100aが送信するメッセージID毎に周期的にデータフレームを送信するための送信周期を格納しており、更に、データフレーム生成ルールに、送信したイベントドリブンデータフレームの回数を示す送信イベントカウンタを付与している。この送信イベントカウンタは、データフレームを送信する際に、データフィールドのイベントカウンタに設定する値として用いられる。データフレーム生成部2102がイベントドリブンデータフレームの送信時に、送信イベントカウンタを1増加し、その送信イベントカウンタの値をデータフィールド内のイベントカウンタIとして用いる。図14は、データフレーム生成ルール保持部2103に格納されたデータフレーム生成ルール及び送信イベントカウンタの一例を示す図である。ここでは、ECU2100aは、パワーウィンドウスイッチ110の状態を示すデータフレーム等、複数種類のデータフレーム(種類毎にメッセージIDで識別されるデータフレーム)を送信するものとする。図14の例では、ECU2100aから周期的に送信されるメッセージIDが0x100のデータフレームについては、送信周期が50msであり送信イベントカウンタが現在15(例えばイベントドリブンデータフレームを15回送信した状態を示す値)であり、メッセージIDが0x200のデータフレームについては、送信周期が100msであり送信イベントカウンタが現在0(例えば未だイベントドリブンデータフレームを送信していない状態を示す値)であり、メッセージIDが0x300のデータフレームについては、送信周期が300msであり送信イベントカウンタが現在5であることを示している。 The data frame generation rule holding unit 2103 is realized by a storage medium such as a memory and stores a transmission cycle for periodically transmitting a data frame for each message ID transmitted by the ECU 2100a as a data frame generation rule. A transmission event counter indicating the number of transmitted event driven data frames is added to the data frame generation rule. The transmission event counter is used as a value set in the event counter of the data field when transmitting the data frame. When transmitting the event driven data frame, the data frame generation unit 2102 increments the transmission event counter by 1, and uses the value of the transmission event counter as the event counter I in the data field. FIG. 14 is a diagram showing an example of the data frame generation rule and the transmission event counter stored in the data frame generation rule holding unit 2103. Here, it is assumed that the ECU 2100a transmits a plurality of types of data frames (a data frame identified by a message ID for each type), such as a data frame indicating the state of the power window switch 110. In the example of FIG. 14, for the data frame whose message ID is 0x100 that is periodically transmitted from the ECU 2100a, the transmission cycle is 50 ms and the transmission event counter is currently 15 (for example, a state in which an event driven data frame is transmitted 15 times is shown). Value), the message ID is 0x200, the transmission cycle is 100 ms, the transmission event counter is currently 0 (for example, a value indicating a state in which an event-driven data frame is not yet transmitted), and the message ID is For the 0x300 data frame, the transmission cycle is 300 ms, and the transmission event counter is 5 at present.

不正データフレーム判断部2104は、受信したデータフレームが正当なデータフレームであるか(不正なデータフレームでないか)否かについて判断する。即ち、不正データフレーム判断部2104は、受信データフレーム周期保持部105の周期ルール情報を参照して、メッセージID毎に予め定められた送信周期の条件を満たすか否かを確認し、送信周期の条件を満たす場合には正規のECUから送信されたデータフレーム(正当なデータフレーム)であると判断する。また、送信周期の条件を満たさないデータフレームであっても、データフレーム受信履歴保持部2106に格納されている受信イベントカウンタの値と受信したデータフレームに含まれるイベントカウンタIの値とを比較して確認し、イベントカウンタIの値が正当なイベントドリブンデータフレームに期待される値であると判定された場合には、正規ECUから送信されたイベントドリブンデータフレーム(正当なデータフレーム)であると判断する。即ち、不正データフレーム判断部2104は、実施の形態1で示した不正データフレーム判断部104と同様に、送信周期を示すデータフレーム生成ルールに呼応した周期ルール情報に適合しないデータフレームがデータフレーム送受信部101により受信された場合に、そのデータフレーム中のイベントカウンタという特定識別子を検証する検証部としての機能を有する。受信したデータフレームに含まれるイベントカウンタIの値が、受信イベントカウンタの値を1増加させた値と一致する場合には、正当なイベントドリブンデータフレームに期待される値であり、正当なデータフレームであると判断される。不正データフレーム判断部2104は、受信したデータフレームが予め定められた送信周期の条件を満たさず、かつ、イベントカウンタIにより正当なイベントドリブンデータフレームであると判定されない場合には、受信したデータフレームを不正なデータフレームであると判断する。不正データフレーム判断部2104は、正当なデータフレームであると判断した場合には、データフレーム処理部107にそのデータフレームの処理を行わせ、不正なデータフレームであると判断した場合には、そのデータフレームを破棄する(つまりそのデータフレームについてデータフレーム処理部107に処理させない)。また、不正データフレーム判断部2104は、送信周期の条件を満たすデータフレームを受信した場合に、受信時刻をデータフレーム受信履歴保持部2106に前回受信時刻として記録する。 The invalid data frame determination unit 2104 determines whether or not the received data frame is a valid data frame (is not an invalid data frame). That is, the invalid data frame determination unit 2104 refers to the cycle rule information of the received data frame cycle holding unit 105 to check whether or not the condition of the predetermined transmission cycle is satisfied for each message ID, If the condition is satisfied, it is determined that the data frame is a data frame transmitted from a legitimate ECU (valid data frame). Even if the data frame does not satisfy the condition of the transmission cycle, the value of the reception event counter stored in the data frame reception history holding unit 2106 is compared with the value of the event counter I included in the received data frame. If it is determined that the value of the event counter I is the value expected for a valid event-driven data frame, it is determined that the event-driven data frame transmitted from the authorized ECU (valid data frame). to decide. That is, the illegal data frame determination unit 2104 transmits/receives a data frame that does not conform to the cycle rule information corresponding to the data frame generation rule indicating the transmission cycle, similarly to the illegal data frame determination unit 104 described in the first embodiment. When received by the unit 101, it has a function as a verification unit that verifies a specific identifier called an event counter in the data frame. When the value of the event counter I included in the received data frame matches the value obtained by incrementing the value of the received event counter by 1, it is the value expected for the valid event-driven data frame, and the valid data frame Is determined to be. If the received data frame does not satisfy the condition of the predetermined transmission cycle and the event counter I does not determine that the received data frame is a valid event driven data frame, the invalid data frame determination unit 2104 receives the received data frame. Is determined to be an invalid data frame. The invalid data frame determination unit 2104 causes the data frame processing unit 107 to process the data frame when it determines that the data frame is a valid data frame, and when it determines that the data frame is an invalid data frame, The data frame is discarded (that is, the data frame processing unit 107 does not process the data frame). In addition, the invalid data frame determination unit 2104 records the reception time in the data frame reception history holding unit 2106 as the previous reception time when the data frame satisfying the transmission cycle condition is received.

データフレーム受信履歴保持部2106は、メモリ等の記憶媒体で実現され、自機(ECU2100a)が正常に受信(つまり正当なデータフレームとして受信)した周期的なデータフレームについてメッセージID毎に、周期的に受信した最終時刻である前回受信時刻を対応付けてなるリストを保持しており、このリストには更に正当に受信したイベントドリブンデータフレームの受信回数である受信イベントカウンタがメッセージID毎に付与されている。図15は、正当なデータフレームとして受信した周期的なデータフレームのメッセージID毎に、データフレームの前回受信時刻及び受信イベントカウンタを列挙したリストの一例を示している。同図の例は、ECU2100bにおけるデータフレーム受信履歴保持部2106が保持するリストの例である。この例では、メッセージIDが0x100であるデータフレームを周期的に受信した最終時刻(前回受信時刻)は200msでありメッセージIDが0x100のイベントドリブンデータフレームに対応する受信イベントカウンタが現在15(例えばイベントドリブンデータフレームを15回受信した状態を示す値)であり、メッセージIDが0x200であるデータフレームを周期的に受信した前回受信時刻は220msであり受信イベントカウンタが現在0(例えば未だイベントドリブンデータフレームを受信していない状態を示す値)であり、メッセージIDが0x300であるデータフレームを周期的に受信した前回受信時刻は230msであり受信イベントカウンタが現在5であることを示している。 The data frame reception history holding unit 2106 is realized by a storage medium such as a memory, and periodically (for each message ID) a periodic data frame received by itself (ECU 2100a) normally (that is, received as a valid data frame). Holds a list in which the last reception time, which is the last reception time, is associated with each other, and a reception event counter, which is the number of receptions of the event-driven data frame that has been properly received, is added to each message ID. ing. FIG. 15 shows an example of a list in which the last reception time of a data frame and the reception event counter are listed for each message ID of a periodic data frame received as a valid data frame. The example of the figure is an example of a list held by the data frame reception history holding unit 2106 in the ECU 2100b. In this example, the last time (previous reception time) at which the data frame with the message ID 0x100 is periodically received is 200 ms, and the reception event counter corresponding to the event-driven data frame with the message ID 0x100 is currently 15 (for example, the event This is a value indicating the state in which a driven data frame is received 15 times), the previous reception time when the data frame whose message ID is 0x200 is periodically received is 220 ms, and the reception event counter is currently 0 (for example, an event driven data frame Is a value indicating a state in which the message ID is not received), the previous reception time when the data frame having the message ID 0x300 is periodically received is 230 ms, and the reception event counter is currently 5.

[2.4 ECU2100aにおけるデータフレームの送信処理]
以下、ECU2100aがデータフレームをバス200に送信し、ECU2100bがデータフレームをバス200から受信する例を想定して、ECU2100aにおけるデータフレームの送信処理を説明する。
[2.4 Transmission Processing of Data Frame in ECU 2100a]
Hereinafter, assuming that the ECU 2100a transmits a data frame to the bus 200 and the ECU 2100b receives the data frame from the bus 200, the data frame transmission process in the ECU 2100a will be described.

図16は、ECU2100aにおけるデータフレームの送信処理を示すフローチャートである。 FIG. 16 is a flowchart showing a data frame transmission process in the ECU 2100a.

ECU2100aは、データフレーム生成ルールにおける送信周期に従った送信タイミング(前回の送信から送信周期が経過したタイミング)、或いは、センサ値取得部109からのセンサ値が変化したタイミングで、データフレームの生成が必要となり、図16の送信処理を開始する。送信処理においては、まず、ECU2100aは、送信するデータフレームがイベントドリブンデータフレームか周期的なデータフレームかを判断する(ステップS2101)。 The ECU 2100a generates the data frame at the transmission timing according to the transmission cycle in the data frame generation rule (the timing when the transmission cycle has elapsed from the previous transmission) or the timing when the sensor value from the sensor value acquisition unit 109 changes. It becomes necessary, and the transmission process of FIG. 16 is started. In the transmission process, first, the ECU 2100a determines whether the data frame to be transmitted is an event driven data frame or a periodic data frame (step S2101).

ECU2100aは、ステップS2101において、送信するデータフレームが、データフレーム生成ルールにおける送信周期に従っていないイベントドリブンデータフレームであると判断した場合は、データフレーム生成ルール保持部2103に格納されている送信イベントカウンタの値を1増加(インクリメント)する(ステップS2102)。また、ECU2100aは、ステップS2101において、送信するデータフレームが、データフレーム生成ルールにおける送信周期に従う周期的なデータフレームであると判断した場合(イベントドリブンデータフレームでないと判断した場合)には、ステップS2102での送信イベントカウンタの値の増加をスキップする。 If the ECU 2100a determines in step S2101 that the data frame to be transmitted is an event-driven data frame that does not follow the transmission cycle in the data frame generation rule, the ECU 2100a determines whether the transmission event counter stored in the data frame generation rule holding unit 2103 The value is incremented by 1 (step S2102). If the ECU 2100a determines in step S2101 that the data frame to be transmitted is a periodic data frame according to the transmission cycle in the data frame generation rule (when it is determined that it is not an event driven data frame), the step S2102. Skip the increase of the value of the send event counter in.

ECU2100aは、ステップS2102での処理を終えた場合、及び、ステップS2102での処理をスキップした場合に、データフィールドのイベントカウンタIに送信イベントカウンタの値をセットし、データフィールドのデータ領域にはセンサ値取得部109から取得した最新のセンサ値をセットして、送信するデータフレームを生成し、バス200へと送信する(ステップS2103)。これにより、バス200上にデータフレームが流れ、ECU2100bに受信されるようになる。 The ECU 2100a sets the value of the transmission event counter in the event counter I of the data field when the processing in step S2102 is completed and when the processing in step S2102 is skipped, and the sensor is set in the data area of the data field. The latest sensor value acquired from the value acquisition unit 109 is set, a data frame to be transmitted is generated, and the data frame is transmitted to the bus 200 (step S2103). As a result, the data frame flows on the bus 200 and is received by the ECU 2100b.

なお、ECU2100bも図16に示すものと同様の送信処理を実行し得る。 Note that the ECU 2100b can also execute the same transmission processing as that shown in FIG.

[2.5 ECU2100bにおけるデータフレームの受信処理]
以下、ECU2100aがデータフレームをバス200に送信し、ECU2100bがデータフレームをバス200から受信する例を想定して、ECU2100bにおけるデータフレームの受信処理を説明する。
[2.5 Reception Processing of Data Frame in ECU 2100b]
Hereinafter, assuming that the ECU 2100a transmits a data frame to the bus 200 and the ECU 2100b receives the data frame from the bus 200, the data frame reception process in the ECU 2100b will be described.

図17は、ECU2100bにおけるデータフレームの受信処理を示すフローチャートである。 FIG. 17 is a flowchart showing a data frame reception process in the ECU 2100b.

ECU2100bは、バス200上に現れるデータフレームを受信する(ステップS2201)。なお、ECU2100bは、自機が受信すべきメッセージIDを含まないデータフレームであればそのデータフレームを破棄して処理を終了する。自機が受信すべきメッセージIDを含むデータフレームを受信した場合に、ECU2100bは、その受信が、保持している周期ルール情報で規定された送信周期範囲内か否かを判断する(ステップS2202)。なお、ECU2100bの不正データフレーム判断部2104は、受信したデータフレームの受信間隔(つまり送信周期)が規定の送信周期の範囲内であるか否か(つまり周期ルール情報で定められた送信周期の条件を満たすか否か)を、タイマ108、受信データフレーム周期保持部105及びデータフレーム受信履歴保持部106から得られる情報に基づいて判断する。即ち、不正データフレーム判断部2104は、前回受信時刻と今回受信したデータフレームの受信時刻の差分(受信間隔)が、受信したデータフレームのメッセージIDに対応して定められた送信周期からマージンを引いた値以上であり、かつ、その送信周期にマージンを加えた値以下であるか否かを判断する。 The ECU 2100b receives the data frame appearing on the bus 200 (step S2201). If the data frame does not include the message ID that the ECU 2100b should receive, the ECU 2100b discards the data frame and ends the process. When the data frame including the message ID to be received by the own device is received, the ECU 2100b determines whether the reception is within the transmission cycle range defined by the held cycle rule information (step S2202). . It should be noted that the illegal data frame determination unit 2104 of the ECU 2100b determines whether the reception interval (that is, the transmission cycle) of the received data frames is within the range of the specified transmission cycle (that is, the condition of the transmission cycle defined by the cycle rule information). Whether or not the condition is satisfied) is determined based on the information obtained from the timer 108, the received data frame period holding unit 105, and the data frame reception history holding unit 106. That is, the illegal data frame determination unit 2104 subtracts a margin from the transmission cycle determined by the difference (reception interval) between the reception time of the previous data frame and the reception time of the data frame received this time, which is determined corresponding to the message ID of the received data frame. It is determined whether or not the value is equal to or more than the above value and is less than or equal to the value obtained by adding a margin to the transmission cycle.

ステップS2202において、データフレームの受信間隔が送信周期の範囲内である場合には、送信周期の条件が満たされたことになり、ECU2100bは、データフレーム受信履歴保持部2106が保持するリストに、受信したデータフレームのメッセージIDに対応付けて、前回受信時刻として、そのデータフレームの受信時刻を記録(つまり前回受信時刻を更新)する(ステップS2204)。そして、ステップS2204での処理に続いて、ECU2100bの不正データフレーム判断部2104により、受信したデータフレームが正当なデータフレームであると判断され(ステップS2206)、データフレーム処理部107によりそのデータフレームに対応した処理がなされる。 In step S2202, if the data frame reception interval is within the range of the transmission cycle, it means that the condition of the transmission cycle is satisfied, and the ECU 2100b receives in the list held by the data frame reception history holding unit 2106. The reception time of the data frame is recorded as the previous reception time (that is, the previous reception time is updated) in association with the message ID of the data frame (step S2204). Then, following the processing in step S2204, the invalid data frame determination unit 2104 of the ECU 2100b determines that the received data frame is a valid data frame (step S2206), and the data frame processing unit 107 converts the data frame into the data frame. Corresponding processing is performed.

また、ステップS2202において、データフレームの前回受信時刻と今回受信時刻の差分が送信周期の範囲内でない場合には、ECU2100bは、データフレームのデータフィールドのイベントカウンタIが、データフレーム受信履歴保持部2106に格納された受信イベントカウンタの値を1増加させた値と一致するか否かを判定する(ステップS2203)。一致する場合には、ECU2100bでは受信イベントカウンタの値を1増加(インクリメント)させる(ステップS2205)。続いてECU2100bの不正データフレーム判断部2104は、受信したデータフレームが正当なデータフレームであると判断し(ステップS2206)、データフレーム処理部107によりそのデータフレームに対応した処理がなされる。 If the difference between the previous reception time and the current reception time of the data frame is not within the range of the transmission cycle in step S2202, the ECU 2100b determines that the event counter I of the data field of the data frame has the data frame reception history holding unit 2106. It is determined whether or not the value of the reception event counter stored in 1 is incremented by 1 (step S2203). If they match, the ECU 2100b increments the value of the reception event counter by 1 (step S2205). Subsequently, the invalid data frame determination unit 2104 of the ECU 2100b determines that the received data frame is a valid data frame (step S2206), and the data frame processing unit 107 performs processing corresponding to the data frame.

ステップS2203において一致しないと判定した場合には、ECU2100bは、受信したデータフレームが不正なデータフレームであると判断してデータフレームを破棄する(ステップS2207)。従って、ECU2100bは、不正なECUにより送信された不正なデータフレームを処理しない。 If it is determined in step S2203 that they do not match, the ECU 2100b determines that the received data frame is an invalid data frame and discards the data frame (step S2207). Therefore, the ECU 2100b does not process the fraudulent data frame transmitted by the fraudulent ECU.

なお、ステップS2202において、データフレームの受信間隔(つまり送信周期)が規定の送信周期の範囲内か否かを判断するに際して、初回等といった前回受信時刻が保存されていない場合においては、受信したデータフレームをイベントドリブンデータフレームと扱い、イベントカウンタが正しいときに受信イベントカウンタを1増加した後にそのデータフレームの受信時刻を前回受信時刻として記録してからステップS2206の処理を行うことができる。この場合、送信側のECUでは初回等の周期的な送信の起点においてはイベントドリブンデータフレームを送信する。また、各ECUが例えばスリープ状態等に入ってデータフレームの周期的な送信を休止する期間がある場合には、その後の周期的な送信の再開時にデータフレームをイベントドリブンデータフレームとして送信することとしても良い。この場合には、受信側のECUでは前回受信時刻から一定時間以上の間、送信側のECUがスリープ状態に入って周期的な送信が途切れた場合に、前回受信時刻を無効にして次回を初回と扱い、受信したデータフレームをイベントドリブンデータフレームと扱い、その正当性を判断することができる。 In step S2202, when determining whether the reception interval (that is, the transmission cycle) of the data frame is within the range of the specified transmission cycle, when the previous reception time such as the first time is not stored, the received data is received. The frame can be treated as an event-driven data frame, and when the event counter is correct, the reception event counter is incremented by 1, and the reception time of the data frame is recorded as the previous reception time, and then the process of step S2206 can be performed. In this case, the transmitting ECU transmits the event driven data frame at the starting point of the periodic transmission such as the first transmission. In addition, when there is a period in which each ECU enters a sleep state or the like and suspends periodic transmission of data frames, the data frame is transmitted as an event-driven data frame when the periodic transmission is resumed thereafter. Is also good. In this case, if the ECU on the transmitting side enters a sleep state for a certain period of time from the previous receiving time and the periodic transmission is interrupted, the receiving side ECU invalidates the previous receiving time and starts the next time. The received data frame is treated as an event-driven data frame, and its validity can be determined.

また、ECU2100aも図17に示すものと同様の受信処理を実行し得る。 Further, the ECU 2100a can also execute the same reception processing as that shown in FIG.

[2.6 実施の形態2の効果]
実施の形態2では、周期的に送信されるデータフレームに加えて、非周期的に送信されるイベントドリブンデータフレームが存在する場合でも、イベントドリブンデータフレーム内に特定識別子(つまりイベントカウンタ)を含めることによって、正当なデータフレームか否かを区別可能にする車載ネットワークシステム11を示した。即ち、車載ネットワークシステム11では、送信周期の条件により正当なデータフレームであるか否かを判別し、送信周期の条件によっては判別ができない場合に限って特定識別子により正当なデータフレームであるか否かを判別するようにしている。イベントカウンタは、固定値ではないため、不正なECUがイベントカウンタと同じ値をデータフレームに付与し難い。不正なECUがデータフレームを送信する場合には、送信周期の条件を満たさない可能性が高く、正しくイベントカウンタをセットすることは容易ではないため、このデータフレームを受信したECUによって不正なデータフレームであると判断されるようになる。なお、イベントドリブンデータフレームではないデータフレーム(つまり周期的に送信されるデータフレーム)においては、データフィールドにイベントカウンタIを含めずにデータフィールドに、ECUが機器等から取得したセンサ値を示すデータだけを含ませることとしても良い。このようにすれば、正規のECUが周期的に送信するデータフレームには、特定識別子を設ける必要がないため例えばデータフィールドを最大限に有効活用できる。
[2.6 Effect of Second Embodiment]
In the second embodiment, a specific identifier (that is, an event counter) is included in the event-driven data frame even when there is an event-driven data frame that is aperiodically transmitted in addition to the periodically-transmitted data frame. As a result, the in-vehicle network system 11 that can distinguish whether the data frame is valid or not is shown. That is, the in-vehicle network system 11 determines whether or not the data frame is a valid data frame based on the condition of the transmission cycle, and determines whether or not the data frame is a valid data frame based on the specific identifier only when the determination cannot be made depending on the condition of the transmission period. I'm trying to determine. Since the event counter is not a fixed value, it is difficult for an unauthorized ECU to give the same value as the event counter to the data frame. When an unauthorized ECU transmits a data frame, it is highly likely that the condition of the transmission cycle will not be satisfied, and it is not easy to set the event counter correctly. Will be determined to be. In a data frame that is not an event-driven data frame (that is, a data frame that is periodically transmitted), the data field does not include the event counter I and the data field indicates the sensor value acquired from the device by the ECU. It is also possible to include only. In this way, since it is not necessary to provide a specific identifier in the data frame periodically transmitted by the regular ECU, for example, the data field can be effectively utilized to the maximum extent.

(実施の形態3)
以下、本開示の別の実施の形態として、データフレームを送受信するECU3100aとECU3100bとの間で、周期的に送信されるデータフレームに加えて非周期的なイベントドリブンデータフレームが送信され得る前提の下で、不正なデータフレームが送信されたことを適切に検知するための不正検知方法を実現する車載ネットワークシステム12について図面を用いて説明する。
(Embodiment 3)
Hereinafter, as another embodiment of the present disclosure, it is assumed that an aperiodic event-driven data frame may be transmitted in addition to the periodically transmitted data frame between the ECU 3100a and the ECU 3100b that transmit and receive the data frame. Below, the vehicle-mounted network system 12 which implement|achieves the fraud detecting method for detecting appropriately that the fraudulent data frame was transmitted is demonstrated using drawing.

[3.1 車載ネットワークシステム12の全体構成]
図18は、実施の形態3に係る車載ネットワークシステム12の全体構成を示す図である。車載ネットワークシステム12は、実施の形態1で示した車載ネットワークシステム10の一部を変形したものであり、制御装置、センサ等の各種機器が搭載された自動車におけるネットワーク通信システムである。車載ネットワークシステム12は、各種機器に接続されたECU3100a、3100b、及び、各ECUをつなぐバス200を含んで構成される。車載ネットワークシステム12の構成要素のうち、実施の形態1で示した車載ネットワークシステム10と同様の機能を有する構成要素は、同じ符号を付して説明を省略する。ECUは、例えば、プロセッサ(マイクロプロセッサ)、メモリ等のデジタル回路、アナログ回路、通信回路等を含む装置である。以下、バス200には不正なデータフレームを送信する不正なECUが接続されている可能性があることを前提として説明する。
[3.1 Overall Configuration of In-Vehicle Network System 12]
FIG. 18 is a diagram showing the overall configuration of the vehicle-mounted network system 12 according to the third embodiment. The in-vehicle network system 12 is a modification of the in-vehicle network system 10 described in the first embodiment and is a network communication system in an automobile in which various devices such as a control device and a sensor are mounted. The vehicle-mounted network system 12 includes ECUs 3100a and 3100b connected to various devices, and a bus 200 that connects the ECUs. Among the constituent elements of the vehicle-mounted network system 12, the constituent elements having the same functions as those of the vehicle-mounted network system 10 described in the first embodiment are designated by the same reference numerals and the description thereof will be omitted. The ECU is a device including, for example, a processor (microprocessor), a digital circuit such as a memory, an analog circuit, a communication circuit, and the like. Hereinafter, description will be made on the assumption that an unauthorized ECU that transmits an unauthorized data frame may be connected to the bus 200.

ECU3100aは、実施の形態1で示したECU100aの一部を変形したものであり、パワーウィンドウスイッチ110に接続されている。ECU3100aは、パワーウィンドウスイッチ110の状態を示す情報を含むデータフレームを周期的にバス200に送信する。さらにパワーウィンドウスイッチ110の状態が変化した時にもパワーウィンドウスイッチ110の状態を示す情報(つまりセンサ値を示す情報)を含むデータフレームをバス200に送信する。従って、ECU3100aは、一定の送信周期でデータフレームの送信を繰り返す他に、パワーウィンドウスイッチ110の状態の変化時がその送信周期と一致しないときに非周期的なイベントドリブンデータフレームをバス200に送信することになる。またECU3100aは、ECU3100bからバス200上に送信されてバス200に流れるデータフレームを受信し、例えばECU3100aが送信したデータフレームが正しく受信されていること等を確認する。 The ECU 3100a is a modification of the ECU 100a shown in the first embodiment, and is connected to the power window switch 110. The ECU 3100a periodically transmits a data frame including information indicating the state of the power window switch 110 to the bus 200. Further, even when the state of the power window switch 110 changes, a data frame including information indicating the state of the power window switch 110 (that is, information indicating the sensor value) is transmitted to the bus 200. Therefore, the ECU 3100a repeats the transmission of the data frame at a constant transmission cycle, and also transmits an aperiodic event-driven data frame to the bus 200 when the change of the state of the power window switch 110 does not match the transmission cycle. Will be done. Further, the ECU 3100a receives the data frame transmitted from the ECU 3100b onto the bus 200 and flowing to the bus 200, and confirms, for example, that the data frame transmitted by the ECU 3100a is correctly received.

ECU3100bは、実施の形態1で示したECU100bの一部を変形したものであり、パワーウィンドウ120に接続されている。ECU3100bは、ECU3100aから送信されバス200に流れているデータフレームを受信し、そのデータフレームに含まれるパワーウィンドウスイッチ110の状態に応じて、パワーウィンドウ120の開閉の制御を行う。またパワーウィンドウ120の開閉の制御状態に応じたデータフレームを周期的にバス200に送信する。この車載ネットワークシステム12においてはCANプロトコルに従って各ECUがフレームの授受を行う。各ECUは、受信したデータフレームが不正なデータフレームであるか否かを判断する機能を有している。 ECU 3100b is a modification of ECU 100b shown in the first embodiment, and is connected to power window 120. The ECU 3100b receives the data frame transmitted from the ECU 3100a and flowing to the bus 200, and controls the opening/closing of the power window 120 according to the state of the power window switch 110 included in the data frame. In addition, a data frame corresponding to the control state of opening/closing of the power window 120 is periodically transmitted to the bus 200. In this in-vehicle network system 12, each ECU exchanges frames according to the CAN protocol. Each ECU has a function of determining whether or not the received data frame is an invalid data frame.

[3.2 データフィールドフォーマット]
以下、車載ネットワークシステム12で用いられるデータフレームにおけるデータフィールドについて説明する。
[3.2 Data field format]
Hereinafter, the data field in the data frame used in the vehicle-mounted network system 12 will be described.

図19は、車載ネットワークシステム12で用いられるデータフィールドフォーマットの一例を示す図である。同図の例は、イベントドリブンデータフレームの場合の一例であり、データフィールドの下位16ビット「I」(後尾の16ビット)は、メッセージ認証コード(MAC:Message Authentication Code)を格納するMACフィールドIである。イベントドリブンデータフレームについてのデータフィールドにMACフィールドIを含むか否か、並びに、MACフィールドIを含む場合にはMACフィールドIの位置及び長さについて、データフレーム生成ルール保持部3103に格納されているデータフレーム生成ルール内のイベントドリブンデータフレームフォーマット(後述)で規定される。イベントドリブンデータフレームを生成して送信する場合には、MACフィールドIにデータフレーム生成ルール保持部3103に格納されているイベントドリブンデータフレームフォーマットに従ってMACをセットする。MACは、イベントドリブンデータフレームが正当であることを識別する特定識別子として機能する。周期的なデータフレームを生成して送信する場合には、データフィールド内にMACを格納する必要はなく、MACの代わりに固定値を含めても良いが、特にMAC及びその代替データを含まずデータフィールド全域をデータ領域として活用して良い。ここでは、周期的なデータフレームにはMACは格納されず、イベントドリブンデータフレームにはMACが格納されることとして説明を続ける。データフィールドのMACフィールドI以外の領域であるデータ領域(図19参照)には、ECUが機器等から取得したセンサ値を示すデータ(ECU3100aが送信するデータフレームにおいては例えばパワーウィンドウスイッチ110の状態を示す値等)が含まれる。図19の例では下位16ビットをMACフィールドIとしているが、イベントドリブンデータフレームフォーマットで規定すれば、上位ビット等、任意の箇所にMACフィールドを含めても良い。また、MACのサイズを16ビット以外にしても良い。 FIG. 19 is a diagram showing an example of a data field format used in the vehicle-mounted network system 12. The example of the figure is an example of the case of an event driven data frame, and the lower 16 bits “I” (the last 16 bits) of the data field is a MAC field I for storing a message authentication code (MAC). Is. Whether or not the MAC field I is included in the data field for the event-driven data frame and, if the MAC field I is included, the position and length of the MAC field I are stored in the data frame generation rule holding unit 3103. It is specified by the event driven data frame format (described later) in the data frame generation rule. When generating and transmitting an event driven data frame, the MAC is set in the MAC field I according to the event driven data frame format stored in the data frame generation rule holding unit 3103. The MAC functions as a specific identifier for identifying that the event driven data frame is valid. When generating and transmitting a periodic data frame, it is not necessary to store the MAC in the data field, and a fixed value may be included in place of the MAC, but in particular data that does not include the MAC and its alternative data is included. The entire field may be used as the data area. Here, the description will be continued assuming that the MAC is not stored in the periodic data frame but the MAC is stored in the event driven data frame. In a data area (see FIG. 19) that is an area other than the MAC field I of the data field, data indicating a sensor value acquired by the ECU from a device or the like (in the data frame transmitted by the ECU 3100a, for example, the state of the power window switch 110 is displayed). The indicated value, etc.) is included. In the example of FIG. 19, the lower 16 bits are used as the MAC field I, but if specified by the event driven data frame format, the MAC field may be included in any place such as the upper bits. Further, the MAC size may be other than 16 bits.

[3.3 ECU3100aの構成]
図20は、ECU3100aの構成図である。ECU3100aは、データフレーム送受信部101と、データフレーム生成部3102と、データフレーム生成ルール保持部3103と、不正データフレーム判断部3104と、受信データフレーム周期保持部3105と、データフレーム受信履歴保持部106と、データフレーム処理部107と、タイマ108と、センサ値取得部109と、MAC生成部3110と、MAC鍵保持部3111と、カウンタ保持部3112とを含んで構成される。ECU3100aの構成要素のうち、実施の形態1で示したECU100aと同様の機能を有する構成要素は、同じ符号を付して説明を省略する。これらの各構成要素は、機能的な構成要素であり、その各機能は、ECU3100aにおける通信回路、メモリに格納された制御プログラムを実行するプロセッサ或いはデジタル回路等により実現される。なお、ECU3100bもECU3100aと基本的に同様の構成を備える。但し、データフレーム生成ルール保持部3103、受信データフレーム周期保持部3105及びデータフレーム受信履歴保持部106の各保持内容はECU毎に異なる内容となり得る。また、データフレーム処理部107の処理内容は、ECU毎に異なる。
[3.3 Configuration of ECU 3100a]
FIG. 20 is a configuration diagram of the ECU 3100a. The ECU 3100a includes a data frame transmission/reception unit 101, a data frame generation unit 3102, a data frame generation rule holding unit 3103, an invalid data frame determination unit 3104, a received data frame period holding unit 3105, and a data frame reception history holding unit 106. A data frame processing unit 107, a timer 108, a sensor value acquisition unit 109, a MAC generation unit 3110, a MAC key holding unit 3111, and a counter holding unit 3112. Among the constituent elements of the ECU 3100a, constituent elements having the same functions as those of the ECU 100a shown in the first embodiment are designated by the same reference numerals and the description thereof will be omitted. Each of these components is a functional component, and each function thereof is realized by a communication circuit in the ECU 3100a, a processor that executes a control program stored in the memory, a digital circuit, or the like. The ECU 3100b also has basically the same configuration as the ECU 3100a. However, the contents held in the data frame generation rule holding unit 3103, the received data frame period holding unit 3105, and the data frame reception history holding unit 106 may be different for each ECU. Further, the processing content of the data frame processing unit 107 differs for each ECU.

データフレーム生成部3102は、データフレーム生成ルール保持部3103に格納されたデータフレーム生成ルールに従い、データフレームを生成し、データフレーム送受信部101に送信する。データフレーム生成部3102は、タイマ108から現在時刻を取得する。更にデータフレーム生成部3102は、ECU3100aに接続された機器(パワーウィンドウスイッチ110)に関するデータ(センサ値)をセンサ値取得部109から取得する。ECU3100aからデータフレームを周期的に送信すべく、データフレーム生成部3102は、現在時刻とデータフレーム生成ルール保持部3103に格納される送信周期とによって、データフレームを生成するタイミングを決定し、データフレームの生成を周期的に行う。なお、データフレーム生成部3102によりデータフレームが生成されると、そのデータフレームはデータフレーム送受信部101に通知され、データフレーム送受信部101はそのデータフレームの送信を行う。更に、データフレーム生成部3102は、センサ値取得部109から取得されるセンサ値に変化があった時が、周期的なタイミングとは異なる時である場合には、イベントドリブンデータフレームの生成を行う。イベントドリブンデータフレームを生成する際には、データフレーム生成部3102は、データフレーム生成ルール保持部3103に格納されているメッセージID毎のデータフレーム生成ルールのイベントドリブンデータフレームフォーマットに従ってMACをデータフレームに含める。このMACは、MAC生成部3110に、生成するデータフレームのメッセージID及びデータフィールドのデータ領域に格納するデータ(センサ値)を通知することによってMAC生成部3110から得られる値を、イベントドリブンデータフレームフォーマットで規定されるデータ長(ビット長)となるように切り捨てたものである。データフレーム生成部3102によるデータフレームの生成の結果として、データフレーム送受信部101によりECU3100aからバス200に、周期的にデータフレームが送信され、更に、非周期的にイベントドリブンデータフレームが送信される。データフレーム生成部3102も実施の形態1で示したデータフレーム生成部102と同様に、送信周期を示すデータフレーム生成ルールに適合しないタイミングでデータフレームの送信をする際においてデータフレーム中にMACという特定識別子を付与したデータフレームを生成する付与部としての機能を有する。 The data frame generation unit 3102 generates a data frame according to the data frame generation rule stored in the data frame generation rule holding unit 3103, and transmits the data frame to the data frame transmission/reception unit 101. The data frame generation unit 3102 acquires the current time from the timer 108. Further, the data frame generation unit 3102 acquires data (sensor value) regarding the device (power window switch 110) connected to the ECU 3100a from the sensor value acquisition unit 109. In order to periodically transmit the data frame from the ECU 3100a, the data frame generation unit 3102 determines the timing for generating the data frame based on the current time and the transmission period stored in the data frame generation rule holding unit 3103, Is generated periodically. When the data frame generation unit 3102 generates a data frame, the data frame transmission/reception unit 101 is notified of the data frame, and the data frame transmission/reception unit 101 transmits the data frame. Furthermore, the data frame generation unit 3102 generates an event-driven data frame when the sensor value acquired from the sensor value acquisition unit 109 changes at a time different from the periodic timing. . When generating an event driven data frame, the data frame generation unit 3102 converts the MAC into a data frame according to the event driven data frame format of the data frame generation rule for each message ID stored in the data frame generation rule holding unit 3103. include. This MAC notifies the MAC generation unit 3110 of the message ID of the data frame to be generated and the data (sensor value) to be stored in the data area of the data field, and outputs the value obtained from the MAC generation unit 3110 to the event-driven data frame. It is rounded down to the data length (bit length) specified in the format. As a result of the generation of the data frame by the data frame generation unit 3102, the data frame transmission/reception unit 101 periodically transmits the data frame from the ECU 3100a to the bus 200, and further transmits the event driven data frame aperiodically. Similar to the data frame generation unit 102 described in the first embodiment, the data frame generation unit 3102 also specifies the MAC in the data frame when transmitting the data frame at a timing that does not conform to the data frame generation rule indicating the transmission cycle. It has a function as an assigning unit that generates a data frame to which an identifier is assigned.

データフレーム生成ルール保持部3103は、メモリ等の記憶媒体で実現され、データフレーム生成ルールとしてECU3100aが送信するメッセージID毎に周期的にデータフレームを送信するための送信周期と、MACの格納位置、データ長等を示すイベントドリブンデータフレームフォーマットとを格納している。図21は、データフレーム生成ルール保持部3103に格納されたデータフレーム生成ルールの一例を示している。ここでは、ECU3100aは、パワーウィンドウスイッチ110の状態を示すデータフレーム等、複数種類のデータフレーム(種類毎にメッセージIDで識別されるデータフレーム)を送信するものとする。図21の例では、ECU3100aから周期的に送信されるメッセージIDが0x100のデータフレームについては、送信周期が50msであり、この送信周期に従わずイベントドリブンデータフレームとして送信する場合にはデータフィールドの下位16ビットにMACを格納する必要があることを示している。また、メッセージIDが0x200のデータフレームについては、送信周期が100msであり、メッセージIDが0x200のイベントドリブンデータフレームは送信されないことを示している。また、ECU3100aから周期的に送信されるメッセージIDが0x300のデータフレームについては、送信周期が70msであり、この送信周期に従わずイベントドリブンデータフレームとして送信する場合にはデータフィールドの下位16ビットにMACを格納する必要があることを示している。 The data frame generation rule holding unit 3103 is realized by a storage medium such as a memory, and as a data frame generation rule, a transmission cycle for periodically transmitting a data frame for each message ID transmitted by the ECU 3100a, a MAC storage position, An event driven data frame format indicating the data length and the like are stored. FIG. 21 shows an example of the data frame generation rule stored in the data frame generation rule holding unit 3103. Here, it is assumed that the ECU 3100a transmits a plurality of types of data frames (data frames identified by a message ID for each type) such as a data frame indicating the state of the power window switch 110. In the example of FIG. 21, the transmission cycle is 50 ms for the data frame whose message ID is 0x100 which is periodically transmitted from the ECU 3100a, and when the data frame is transmitted as an event driven data frame not according to this transmission cycle, It indicates that the MAC needs to be stored in the lower 16 bits. Also, for the data frame with the message ID 0x200, the transmission cycle is 100 ms, indicating that the event-driven data frame with the message ID 0x200 is not transmitted. In addition, the transmission cycle is 70 ms for the data frame whose message ID is 0x300, which is periodically transmitted from the ECU 3100a. It indicates that the MAC needs to be stored.

不正データフレーム判断部3104は、受信したデータフレームが正当なデータフレームであるか(不正なデータフレームでないか)否かについて判断する。即ち、不正データフレーム判断部3104は、受信データフレーム周期保持部3105の周期ルール情報を参照して、メッセージID毎に予め定められた送信周期の条件を満たすか否かを確認し、送信周期の条件を満たす場合には正規のECUから送信されたデータフレーム(正当なデータフレーム)であると判断する。また、送信周期の条件を満たさないデータフレームであっても、データフィールドに正当なMACが含まれていることが検証された場合には、正当なデータフレームであると判断される。MACの検証は、データフレームのメッセージID及びデータフィールドのデータ領域の内容をMAC生成部3110に通知することによってMAC生成部3110から得られる値と、データフィールド内のMACフィールドIの内容とが、一致するか否かを判別することで行われ、一致した場合に検証に成功する。即ち、不正データフレーム判断部3104は、実施の形態1で示した不正データフレーム判断部104と同様に、送信周期を示すデータフレーム生成ルールに呼応した周期ルール情報に適合しないデータフレームがデータフレーム送受信部101により受信された場合に、そのデータフレーム中のMACという特定識別子を検証する検証部としての機能を有する。不正データフレーム判断部3104は、受信したデータフレームが予め定められた送信周期の条件を満たさず、かつ、MACの検証により正当なイベントドリブンデータフレームであると判定されない場合には、受信したデータフレームを不正なデータフレームであると判断する。不正データフレーム判断部2104は、正当なデータフレームであると判断した場合には、データフレーム処理部107にそのデータフレームの処理を行わせ、不正なデータフレームであると判断した場合には、そのデータフレームを破棄する(つまりそのデータフレームについてデータフレーム処理部107に処理させない)。また、不正データフレーム判断部3104は、送信周期の条件を満たすデータフレームを受信した場合に、受信時刻をデータフレーム受信履歴保持部106に前回受信時刻として記録する。 The invalid data frame determination unit 3104 determines whether or not the received data frame is a valid data frame (is not an invalid data frame). That is, the invalid data frame determination unit 3104 refers to the cycle rule information of the received data frame cycle holding unit 3105 to check whether or not the condition of the predetermined transmission cycle is satisfied for each message ID, If the condition is satisfied, it is determined that the data frame is a data frame transmitted from a legitimate ECU (valid data frame). Further, even if the data frame does not satisfy the condition of the transmission cycle, it is determined to be a valid data frame if it is verified that the data field includes a valid MAC. In the MAC verification, the value obtained from the MAC generation unit 3110 by notifying the MAC generation unit 3110 of the message ID of the data frame and the content of the data area of the data field, and the content of the MAC field I in the data field, It is performed by determining whether or not they match, and if they match, the verification is successful. That is, the illegal data frame determination unit 3104 transmits/receives a data frame that does not conform to the cycle rule information corresponding to the data frame generation rule indicating the transmission cycle, similarly to the illegal data frame determination unit 104 described in the first embodiment. When received by the unit 101, it has a function as a verification unit that verifies a specific identifier called MAC in the data frame. When the received data frame does not satisfy the condition of the predetermined transmission cycle and the MAC verification does not determine that the received data frame is a valid event driven data frame, the invalid data frame determination unit 3104 receives the received data frame. Is determined to be an invalid data frame. The invalid data frame determination unit 2104 causes the data frame processing unit 107 to process the data frame when it determines that the data frame is a valid data frame, and when it determines that the data frame is an invalid data frame, The data frame is discarded (that is, the data frame processing unit 107 does not process the data frame). In addition, the invalid data frame determination unit 3104 records the reception time in the data frame reception history holding unit 106 as the previous reception time when the data frame satisfying the transmission cycle condition is received.

受信データフレーム周期保持部3105は、メモリ等の記憶媒体で実現され、周期ルール情報を保持する。この周期ルール情報は、自機(ECU3100a)が受信するデータフレームのメッセージID毎に、予め定められた送信周期と、データフレームの受信間隔について、送信周期の条件が満たされる(つまり正当な送信周期に合致する)と判断されるための許容範囲を示すマージンとを対応付けた情報である。周期ルール情報には、更に、送信周期の条件を満たさないイベントドリブンデータフレームのデータフィールド内に格納されるMACの格納位置、データ長等を示すイベントドリブンデータフレームフォーマットが含まれる。このイベントドリブンデータフレームフォーマットは、不正データフレーム判断部3104が、イベントドリブンデータフレームについての正当性を検証(つまりMACを検証)する際に用いられる。なお、データフレームの受信側のECUの受信データフレーム周期保持部3105に保持される周期ルール情報における送信周期は、そのデータフレームの送信側のECUのデータフレーム生成ルール保持部3103に保持されるデータフレーム生成ルールにおける送信周期に呼応する。また、データフレームの受信側のECUの受信データフレーム周期保持部3105に保持される周期ルール情報におけるイベントドリブンデータフレームフォーマットは、そのデータフレームの送信側のECUのデータフレーム生成ルール保持部3103に保持されるデータフレーム生成ルールにおけるイベントドリブンデータフレームフォーマットに呼応する。図22は、ECU3100aから送信されたデータフレームを受信するECU3100bにおける受信データフレーム周期保持部3105に格納された周期ルール情報の一例を示す図である。同図の例では、メッセージIDが0x100のデータフレームの送信周期が50ms、メッセージIDが0x200のデータフレームの送信周期が100ms、メッセージIDが0x300のデータフレームの送信周期が70msであることを示している。同図の例では、マージンは、どのメッセージIDについても1msである。このマージンが1msであるため、メッセージIDが0x100のデータフレームについて送信周期が49ms以上51ms以下の範囲であれば、ECU3100bにおける不正データフレーム判断部3104は、送信周期の条件が満たされると判断することになる。また、図22の例でのイベントドリブンデータフレームフォーマットについては、メッセージIDが0x100及び0x300のイベントドリブンデータフレームは、データフィールドの下位16ビットにMACが付与されていることを示しており、メッセージIDが0x200のイベントドリブンデータフレームは送信されないことを示している。 The received data frame cycle holding unit 3105 is realized by a storage medium such as a memory and holds cycle rule information. This cycle rule information satisfies the condition of the transmission cycle with respect to the predetermined transmission cycle and the reception interval of the data frame for each message ID of the data frame received by the own device (ECU 3100a) (that is, the valid transmission cycle). It is information in which a margin indicating a permissible range for determining that it is determined to match) is associated. The cycle rule information further includes an event-driven data frame format indicating the storage position, data length, etc. of the MAC stored in the data field of the event-driven data frame that does not satisfy the condition of the transmission cycle. This event-driven data frame format is used when the fraudulent data frame determination unit 3104 verifies the validity of the event-driven data frame (that is, verifies the MAC). The transmission cycle in the cycle rule information held in the reception data frame cycle holding unit 3105 of the ECU on the data frame receiving side is the data held in the data frame generation rule holding unit 3103 of the sending side ECU of the data frame. It corresponds to the transmission cycle in the frame generation rule. Further, the event driven data frame format in the cycle rule information held in the received data frame cycle holding unit 3105 of the ECU on the data frame receiving side is held in the data frame generation rule holding unit 3103 of the sending side ECU of the data frame. It corresponds to the event driven data frame format in the data frame generation rule. FIG. 22 is a diagram showing an example of cycle rule information stored in the received data frame cycle holding unit 3105 in the ECU 3100b that receives the data frame transmitted from the ECU 3100a. In the example of the figure, it is shown that the transmission cycle of the data frame of the message ID 0x100 is 50 ms, the transmission cycle of the data frame of the message ID 0x200 is 100 ms, and the transmission cycle of the data frame of the message ID 0x300 is 70 ms. There is. In the example of the figure, the margin is 1 ms for any message ID. Since this margin is 1 ms, if the transmission cycle of the data frame with the message ID of 0x100 is in the range of 49 ms or more and 51 ms or less, the incorrect data frame determination unit 3104 in the ECU 3100b determines that the transmission cycle condition is satisfied. become. Regarding the event-driven data frame format in the example of FIG. 22, the event-driven data frames with message IDs 0x100 and 0x300 indicate that the lower 16 bits of the data field are provided with MAC. Indicates that an event driven data frame of 0x200 is not transmitted.

MAC生成部3110は、不正データフレーム判断部3104或いはデータフレーム生成部3102から通知されたデータフレームの内容(メッセージID及びデータフィールドのデータ領域のデータ)に基づいて、MACを生成してMACの値を通知元に与える。即ち、MAC生成部3110は、通知されたメッセージIDと、データフィールドのデータ領域のデータ値と、カウンタ保持部3112に格納されている、通知されたメッセージIDに対応するカウンタ値とを連結したものに対して、MAC鍵保持部3111に格納されている通知されたメッセージIDに対応するMAC鍵を用いてHMAC(非特許文献4)の演算を行うことによりMACを生成して、通知元にMACの値を返す。 The MAC generation unit 3110 generates a MAC based on the content of the data frame (message ID and data in the data area of the data field) notified from the invalid data frame determination unit 3104 or the data frame generation unit 3102, and outputs the MAC value. Is given to the notification source. That is, the MAC generation unit 3110 links the notified message ID, the data value of the data area of the data field, and the counter value corresponding to the notified message ID stored in the counter holding unit 3112. On the other hand, the MAC is generated by performing HMAC (Non-Patent Document 4) using the MAC key corresponding to the notified message ID stored in the MAC key holding unit 3111, and the MAC is transmitted to the notification source. Returns the value of.

MAC鍵保持部3111は、メモリ等の記憶媒体で実現され、自機(ECU3100a)が送信するデータフレームのメッセージID毎にMAC生成に用いられる暗号鍵を格納しており、更に、自機(ECU3100a)が受信するデータフレームのメッセージID毎にMAC生成に用いられる暗号鍵を格納している。 The MAC key holding unit 3111 is realized by a storage medium such as a memory and stores an encryption key used for MAC generation for each message ID of a data frame transmitted by the own device (ECU 3100a). ) Stores the encryption key used for the MAC generation for each message ID of the data frame received by ).

カウンタ保持部3112は、メモリ等の記憶媒体を含んで実現され、自機(ECU3100a)が送信するデータフレームのメッセージID毎に対応して送信カウンタと、自機(ECU3100a)が受信するデータフレームのメッセージID毎に対応して受信カウンタとを保持する。データフレーム生成部3102からの通知を受けてMAC生成部3110にMACが生成される度に、対応するメッセージIDの送信カウンタが1増加(インクリメント)される。また、不正データフレーム判断部3104が、受信したデータフレームが不正でないと判断し、データフレーム処理部107にそのデータフレームが通知される都度、対応するメッセージIDの受信カウンタが1増加(インクリメント)される。これにより、メッセージID毎のイベントドリブンデータフレームの送信側のECUが保持する送信カウンタと受信側のECUが保持する受信カウンタとが同じ値となるよう同期する。MAC生成部3110は、データフレームの送信のためのMACの生成の際には送信カウンタを用いてMACを生成し、受信したデータフレームの検証のためのMACの生成の際には受信カウンタを用いてMACを生成する。 The counter holding unit 3112 is realized by including a storage medium such as a memory, and stores a transmission counter corresponding to each message ID of a data frame transmitted by the own device (ECU 3100a) and a data frame received by the own device (ECU 3100a). A reception counter is held for each message ID. Each time a MAC is generated in the MAC generation unit 3110 in response to the notification from the data frame generation unit 3102, the transmission counter of the corresponding message ID is incremented (incremented) by 1. Also, each time the invalid data frame determination unit 3104 determines that the received data frame is not invalid and the data frame processing unit 107 is notified of the data frame, the reception counter of the corresponding message ID is incremented (incremented) by 1. It As a result, the transmission counter held by the transmission side ECU of the event driven data frame for each message ID and the reception counter held by the reception side ECU are synchronized to have the same value. The MAC generation unit 3110 uses a transmission counter when generating a MAC for transmitting a data frame, and uses a reception counter when generating a MAC for verifying a received data frame. To generate a MAC.

[3.4 ECU3100aにおけるデータフレームの送信処理]
以下、ECU3100aがデータフレームをバス200に送信し、ECU3100bがデータフレームをバス200から受信する例を想定して、ECU3100aにおけるデータフレームの送信処理を説明する。
[3.4 Data Frame Transmission Process in ECU 3100a]
Hereinafter, assuming that the ECU 3100a transmits a data frame to the bus 200 and the ECU 3100b receives the data frame from the bus 200, the data frame transmission process in the ECU 3100a will be described.

図23は、ECU3100aにおけるデータフレームの送信処理を示すフローチャートである。 FIG. 23 is a flowchart showing a data frame transmission process in the ECU 3100a.

ECU3100aは、データフレーム生成ルールにおける送信周期に従った送信タイミング(前回の送信から送信周期が経過したタイミング)、或いは、センサ値取得部109からのセンサ値が変化したタイミングで、データフレームの生成が必要となり、図23の送信処理を開始する。送信処理においては、まず、ECU3100aは、送信するデータフレームがイベントドリブンデータフレームか周期的なデータフレームかを判断する(ステップS3101)。 The ECU 3100a generates the data frame at the transmission timing according to the transmission cycle in the data frame generation rule (the timing when the transmission cycle has elapsed from the previous transmission) or the timing when the sensor value from the sensor value acquisition unit 109 changes. It becomes necessary and the transmission process of FIG. 23 is started. In the transmission process, first, the ECU 3100a determines whether the data frame to be transmitted is an event driven data frame or a periodic data frame (step S3101).

ECU3100aは、ステップS3101において、送信するデータフレームが、データフレーム生成ルールにおける送信周期に従っていないイベントドリブンデータフレームであると判断した場合には、イベントドリブンデータフレームフォーマットに従って、生成するデータフレームのデータフィールドのMACフィールドIに、MACを付与する(ステップS3102)。 When the ECU 3100a determines in step S3101 that the data frame to be transmitted is an event-driven data frame that does not follow the transmission cycle in the data frame generation rule, the ECU 3100a follows the event-driven data frame format to change the data field of the data field to be generated. MAC is assigned to the MAC field I (step S3102).

ECU3100aは、ステップS3101において、送信するデータフレームが、データフレーム生成ルールにおける送信周期に従う周期的なデータフレームであると判断した場合(イベントドリブンデータフレームでないと判断した場合)には、ステップS3102での処理をスキップする。 If the ECU 3100a determines in step S3101 that the data frame to be transmitted is a periodic data frame according to the transmission cycle in the data frame generation rule (when it is determined that it is not an event-driven data frame), the ECU 3100a determines in step S3102. Skip processing.

ECU3100aは、ステップS3102の後、或いはステップS3102での処理をスキップした後に、データフィールドのデータ領域にセンサ値取得部109から取得した最新のセンサ値をセットして、送信するデータフレームを生成し、バス200へと送信する(ステップS3103)。これにより、バス200上にデータフレームが流れ、ECU3100bに受信されるようになる。 The ECU 3100a sets the latest sensor value acquired from the sensor value acquisition unit 109 in the data area of the data field after step S3102 or skips the processing in step S3102 to generate a data frame to be transmitted, It transmits to the bus 200 (step S3103). As a result, the data frame flows on the bus 200 and is received by the ECU 3100b.

なお、ECU3100bも図23に示すものと同様の送信処理を実行し得る。 Note that the ECU 3100b can also execute the same transmission processing as that shown in FIG.

[3.5 ECU3100bにおけるデータフレームの受信処理]
以下、ECU3100aがデータフレームをバス200に送信し、ECU3100bがデータフレームをバス200から受信する例を想定して、ECU3100bにおけるデータフレームの受信処理を説明する。
[3.5 Data Frame Reception Processing in ECU 3100b]
Hereinafter, assuming that the ECU 3100a transmits a data frame to the bus 200 and the ECU 3100b receives the data frame from the bus 200, the data frame reception process in the ECU 3100b will be described.

図24は、ECU3100bにおけるデータフレームの受信処理を示すフローチャートである。 FIG. 24 is a flowchart showing a data frame reception process in the ECU 3100b.

ECU3100bは、バス200上に現れるデータフレームを受信する(ステップS3201)。なお、ECU3100bは、自機が受信すべきメッセージIDを含まないデータフレームであればそのデータフレームを破棄して処理を終了する。自機が受信すべきメッセージIDを含むデータフレームを受信した場合に、ECU3100bは、その受信が、保持している周期ルール情報で規定された送信周期範囲内か否かを判断する(ステップS3202)。なお、ECU3100bの不正データフレーム判断部3104は、受信したデータフレームの受信間隔(つまり送信周期)が規定の送信周期の範囲内であるか否か(つまり周期ルール情報で定められた送信周期の条件を満たすか否か)を、タイマ108、受信データフレーム周期保持部3105及びデータフレーム受信履歴保持部106から得られる情報に基づいて判断する。即ち、不正データフレーム判断部3104は、前回受信時刻と今回受信したデータフレームの受信時刻の差分(受信間隔)が、受信したデータフレームのメッセージIDに対応して定められた送信周期からマージンを引いた値以上であり、かつ、その送信周期にマージンを加えた値以下であるか否かを判断する。 The ECU 3100b receives the data frame appearing on the bus 200 (step S3201). If the data frame does not include the message ID to be received by the device itself, the ECU 3100b discards the data frame and ends the process. When the data frame including the message ID to be received by the device itself is received, the ECU 3100b determines whether or not the reception is within the transmission cycle range defined by the held cycle rule information (step S3202). .. It should be noted that the unauthorized data frame determination unit 3104 of the ECU 3100b determines whether or not the reception interval (that is, the transmission cycle) of the received data frame is within the range of the specified transmission cycle (that is, the condition of the transmission cycle defined by the cycle rule information). Whether or not the condition is satisfied) is determined based on the information obtained from the timer 108, the received data frame period holding unit 3105, and the data frame reception history holding unit 106. That is, the invalid data frame determination unit 3104 subtracts a margin from the transmission cycle determined by the difference (reception interval) between the reception time of the previous data frame and the reception time of the data frame received this time, which is determined corresponding to the message ID of the received data frame. It is determined whether or not the value is equal to or more than the above value and is less than or equal to the value obtained by adding a margin to the transmission cycle.

ステップS3202において、データフレームの受信間隔が送信周期の範囲内である場合には、送信周期の条件が満たされたことになり、ECU3100bは、データフレーム受信履歴保持部106が保持するリストに、受信したデータフレームのメッセージIDに対応付けて、前回受信時刻として、そのデータフレームの受信時刻を記録(つまり前回受信時刻を更新)する(ステップS3204)。そして、ステップS3204での処理に続いて、ECU3100bの不正データフレーム判断部3104により、受信したデータフレームが正当なデータフレームであると判断され(ステップS3205)、データフレーム処理部107によりそのデータフレームに対応した処理がなされる。 If the data frame reception interval is within the range of the transmission cycle in step S3202, it means that the condition of the transmission cycle is satisfied, and the ECU 3100b receives the data in the list held by the data frame reception history holding unit 106. The reception time of the data frame is recorded as the last reception time (that is, the last reception time is updated) in association with the message ID of the data frame (step S3204). Then, following the processing in step S3204, the invalid data frame determination unit 3104 of the ECU 3100b determines that the received data frame is a valid data frame (step S3205), and the data frame processing unit 107 converts the received data frame into the data frame. Corresponding processing is performed.

また、ステップS3202において、データフレームの前回受信時刻と今回受信時刻の差分が送信周期の範囲内でない場合には、ECU3100bは、受信データフレーム周期保持部3105に格納されているイベントドリブンデータフレームフォーマットに従ってデータフレームのデータフィールドをMACフィールドIとデータ領域とに分けて、データ領域及びメッセージIDから算出されるMACと、MACフィールドに含まれるMACとを比較することで、データフレームの正当性(MACが正しいこと)を検証する(ステップS3203)。算出されるMACとMACフィールドに含まれるMACとが一致すればMACの検証(つまりMACの正当性の検証)に成功し、受信したデータフレームが正当なデータフレームであると判断され(ステップS3205)、データフレーム処理部107によりそのデータフレームに対応した処理がなされる。 If the difference between the previous reception time and the current reception time of the data frame is not within the range of the transmission cycle in step S3202, the ECU 3100b follows the event-driven data frame format stored in the reception data frame cycle holding unit 3105. By dividing the data field of the data frame into the MAC field I and the data area and comparing the MAC calculated from the data area and the message ID with the MAC included in the MAC field, the validity of the data frame (the MAC (Correctness) is verified (step S3203). If the calculated MAC and the MAC included in the MAC field match, the MAC verification (that is, MAC correctness verification) succeeds, and the received data frame is determined to be a valid data frame (step S3205). The data frame processing unit 107 performs processing corresponding to the data frame.

ステップS3203において、算出されるMACとMACフィールドに含まれるMACとが一致しない場合(MACの検証に成功しない場合)には、ECU3100bは、受信したデータフレームが不正なデータフレームであると判断してデータフレームを破棄する(ステップS3206)。従って、ECU3100bは、不正なECUにより送信された不正なデータフレームを処理しない。 In step S3203, when the calculated MAC does not match the MAC included in the MAC field (when the MAC verification is not successful), the ECU 3100b determines that the received data frame is an invalid data frame. The data frame is discarded (step S3206). Therefore, the ECU 3100b does not process the fraudulent data frame transmitted by the fraudulent ECU.

なお、ステップS3202において、データフレームの受信間隔(つまり送信周期)が規定の送信周期の範囲内か否かを判断するに際して、初回等といった前回受信時刻が保存されていない場合においては、受信したデータフレームをイベントドリブンデータフレームと扱い、MACの検証に成功したときにそのデータフレームの受信時刻を前回受信時刻として記録してからステップS3205の処理を行うことができる。この場合、送信側のECUでは初回等の周期的な送信の起点においては例外的にイベントドリブンデータフレームを送信する。また、各ECUが例えばスリープ状態等に入ってデータフレームの周期的な送信を休止する期間がある場合には、その後の周期的な送信の再開時にデータフレームをイベントドリブンデータフレームとして送信することとしても良い。この場合には、受信側のECUでは前回受信時刻から一定時間以上の間、送信側のECUがスリープ状態に入って周期的な送信が途切れた場合に、前回受信時刻を無効にして次回を初回と扱い、受信したデータフレームをイベントドリブンデータフレームと扱い、その正当性を判断することができる。 In step S3202, when determining whether the reception interval (that is, the transmission cycle) of the data frames is within the range of the specified transmission cycle, if the previous reception time such as the first time is not stored, the received data is received. The frame can be treated as an event-driven data frame, and when the MAC verification is successful, the reception time of the data frame can be recorded as the previous reception time, and then the process of step S3205 can be performed. In this case, the transmission side ECU exceptionally transmits the event driven data frame at the starting point of the periodic transmission such as the first transmission. In addition, when there is a period in which each ECU enters a sleep state or the like and suspends periodic transmission of data frames, the data frame is transmitted as an event-driven data frame when the periodic transmission is resumed thereafter. Is also good. In this case, if the ECU on the transmitting side enters a sleep state for a certain period of time from the previous receiving time and the periodic transmission is interrupted, the receiving side ECU invalidates the previous receiving time and starts the next time. The received data frame is treated as an event-driven data frame, and its validity can be determined.

また、ECU3100aも図24に示すものと同様の受信処理を実行し得る。 Further, the ECU 3100a can also execute the same reception processing as that shown in FIG.

[3.6 実施の形態3の効果]
実施の形態3では、周期的に送信されるデータフレームに加えて、非周期的に送信されるイベントドリブンデータフレームが存在する場合でも、イベントドリブンデータフレーム内に特定識別子としてのMACを含めることによって、正当なイベントドリブンデータフレームであることを検証可能にする車載ネットワークシステム12を示した。即ち、車載ネットワークシステム12では、送信周期の条件により正当なデータフレームであるか否かを判別し、送信周期の条件によっては判別ができない場合に限って特定識別子により正当なデータフレームであるか否かを判別(つまり検証)するようにしている。これにより、送信周期の条件を満たさない正当なイベントドリブンデータフレームが不正なものとして誤検知されることが防止される。また、不正なECUがデータフレームを送信する場合には、送信周期の条件を満たさない可能性が高く、正しくMACを付与できないため、このデータフレームを受信したECUによって不正なデータフレームであると判断されるようになる。なお、イベントドリブンデータフレームではないデータフレーム(つまり周期的に送信されるデータフレーム)においては、データフィールドにMACを含める必要がないため、例えばデータフィールドを最大限に有効活用できる。
[3.6 Effect of Third Embodiment]
In the third embodiment, by including the MAC as the specific identifier in the event-driven data frame even when there is an event-driven data frame that is transmitted aperiodically in addition to the data frame that is transmitted periodically. , The in-vehicle network system 12 that can verify that the event-driven data frame is valid. That is, the in-vehicle network system 12 determines whether the data frame is a valid data frame based on the condition of the transmission cycle, and determines whether the data frame is a valid data frame based on the specific identifier only when the determination cannot be made depending on the condition of the transmission period. It is trying to determine (that is, verify). This prevents erroneous detection of a valid event-driven data frame that does not satisfy the condition of the transmission cycle as an unauthorized one. Further, when an unauthorized ECU transmits a data frame, it is highly likely that the condition of the transmission cycle is not satisfied, and the MAC cannot be correctly assigned. Therefore, the ECU that receives this data frame determines that it is an invalid data frame. Will be done. In a data frame that is not an event-driven data frame (that is, a data frame that is periodically transmitted), it is not necessary to include the MAC in the data field, so that the data field can be utilized to the maximum extent.

(実施の形態4)
以下、本開示の別の実施の形態として、データフレームを送受信するECU4100aとECU4100bとの間で、周期的に送信されるデータフレームに加えて非周期的なイベントドリブンデータフレームが送信され得る前提の下で、車両の状態を踏まえて、不正なデータフレームが送信されたことを適切に検知するための不正検知方法を実現する車載ネットワークシステム13について図面を用いて説明する。なお、車載ネットワークシステム13は、実施の形態1で示した車載ネットワークシステム10及び実施の形態3で示した車載ネットワークシステム12の一部を変形したものであり、車載ネットワークシステム13で用いられるデータフレームにおけるデータフィールドのフォーマットは、実施の形態3で示したものと同様である。
(Embodiment 4)
Hereinafter, as another embodiment of the present disclosure, it is assumed that an aperiodic event-driven data frame may be transmitted in addition to the periodically transmitted data frame between the ECU 4100a and the ECU 4100b that transmit and receive the data frame. The vehicle-mounted network system 13 that realizes the fraud detection method for appropriately detecting the transmission of the fraudulent data frame based on the state of the vehicle will be described below with reference to the drawings. The vehicle-mounted network system 13 is a modification of the vehicle-mounted network system 10 shown in the first embodiment and the vehicle-mounted network system 12 shown in the third embodiment, and is a data frame used in the vehicle-mounted network system 13. The format of the data field in is the same as that shown in the third embodiment.

[4.1 車載ネットワークシステム13の全体構成]
図25は、実施の形態4に係る車載ネットワークシステム13の全体構成を示す図である。車載ネットワークシステム13は、制御装置、センサ等の各種機器が搭載された自動車におけるネットワーク通信システムである。車載ネットワークシステム13は、各種機器に接続されたECU4100a〜4100c、及び、各ECUをつなぐバス200を含んで構成される。車載ネットワークシステム13の構成要素のうち、前述した車載ネットワークシステム10等と同様の機能を有する構成要素は、同じ符号を付して説明を省略する。ECUは、例えば、プロセッサ(マイクロプロセッサ)、メモリ等のデジタル回路、アナログ回路、通信回路等を含む装置である。以下、バス200には不正なデータフレームを送信する不正なECUが接続されている可能性があることを前提として説明する。
[4.1 Overall Configuration of In-Vehicle Network System 13]
FIG. 25 is a diagram showing the overall configuration of the vehicle-mounted network system 13 according to the fourth embodiment. The vehicle-mounted network system 13 is a network communication system in a vehicle equipped with various devices such as a control device and a sensor. The vehicle-mounted network system 13 is configured to include ECUs 4100a to 4100c connected to various devices and a bus 200 connecting the ECUs. Among the constituent elements of the vehicle-mounted network system 13, the constituent elements having the same functions as those of the vehicle-mounted network system 10 described above are designated by the same reference numerals and the description thereof will be omitted. The ECU is a device including, for example, a processor (microprocessor), a digital circuit such as a memory, an analog circuit, a communication circuit, and the like. Hereinafter, description will be made on the assumption that an unauthorized ECU that transmits an unauthorized data frame may be connected to the bus 200.

ECU4100cは、ギア4130に接続されており、ギア4130の状態に応じて、車両の状態を判定し、バス200に車両の状態を示すデータフレームを送信する。ギア4130から判定される車両の状態は、例えば、走行中、駐車中等の各状態である。 The ECU 4100c is connected to the gear 4130, determines the vehicle state according to the state of the gear 4130, and transmits a data frame indicating the vehicle state to the bus 200. The state of the vehicle determined from the gear 4130 is, for example, each state such as running and parking.

ECU4100aは、実施の形態1で示したECU100aの一部を変形したものであり、パワーウィンドウスイッチ110に接続されている。ECU4100aは、パワーウィンドウスイッチ110の状態を示す情報を含むデータフレームを周期的にバス200に送信する。さらにパワーウィンドウスイッチ110の状態が変化した時にもパワーウィンドウスイッチ110の状態を示す情報(つまりセンサ値を示す情報)を含むデータフレームをバス200に送信する。従って、ECU4100aは、一定の送信周期でデータフレームの送信を繰り返す他に、パワーウィンドウスイッチ110の状態の変化時がその送信周期と一致しないときに非周期的なイベントドリブンデータフレームをバス200に送信することになる。またECU4100aは、ECU4100bからバス200上に送信されてバス200に流れるデータフレームを受信し、例えばECU4100aが送信したデータフレームが正しく受信されていること等を確認する。また、ECU4100aは、ECU4100cが送信した車両の状態を示すデータフレームを受信し、車両の状態を把握し得る。 The ECU 4100a is a modification of the ECU 100a shown in the first embodiment, and is connected to the power window switch 110. The ECU 4100a periodically transmits a data frame including information indicating the state of the power window switch 110 to the bus 200. Further, even when the state of the power window switch 110 changes, a data frame including information indicating the state of the power window switch 110 (that is, information indicating the sensor value) is transmitted to the bus 200. Therefore, the ECU 4100a repeats the transmission of the data frame at a constant transmission cycle, and also transmits an aperiodic event-driven data frame to the bus 200 when the change of the state of the power window switch 110 does not match the transmission cycle. Will be done. Further, the ECU 4100a receives the data frame transmitted from the ECU 4100b onto the bus 200 and flowing to the bus 200, and confirms, for example, that the data frame transmitted by the ECU 4100a is correctly received. Further, the ECU 4100a can receive the data frame indicating the vehicle state transmitted by the ECU 4100c and grasp the vehicle state.

ECU4100bは、実施の形態1で示したECU100bの一部を変形したものであり、パワーウィンドウ120に接続されている。ECU4100bは、ECU4100aから送信されバス200に流れているデータフレームを受信し、そのデータフレームに含まれるパワーウィンドウスイッチ110の状態に応じて、パワーウィンドウ120の開閉の制御を行う。またパワーウィンドウ120の開閉の制御状態に応じたデータフレームを周期的にバス200に送信する。また、ECU4100bは、ECU4100cが送信した車両の状態を示すデータフレームを受信し、車両の状態を把握し得る。この車載ネットワークシステム13においてはCANプロトコルに従って各ECUがフレームの授受を行う。各ECUは、受信したデータフレームが不正なデータフレームであるか否かを判断する機能を有している。 ECU 4100b is a modification of ECU 100b shown in the first embodiment, and is connected to power window 120. The ECU 4100b receives the data frame transmitted from the ECU 4100a and flowing to the bus 200, and controls the opening/closing of the power window 120 according to the state of the power window switch 110 included in the data frame. In addition, a data frame corresponding to the control state of opening/closing of the power window 120 is periodically transmitted to the bus 200. Further, the ECU 4100b can recognize the vehicle state by receiving the data frame indicating the vehicle state transmitted by the ECU 4100c. In this in-vehicle network system 13, each ECU exchanges frames according to the CAN protocol. Each ECU has a function of determining whether or not the received data frame is an invalid data frame.

[4.2 ECU4100aの構成]
図26は、ECU4100aの構成図である。ECU4100aは、データフレーム送受信部101と、データフレーム生成部4102と、データフレーム生成ルール保持部4103と、不正データフレーム判断部4104と、受信データフレーム周期保持部4105と、データフレーム受信履歴保持部106と、データフレーム処理部107と、タイマ108と、センサ値取得部109と、MAC生成部3110と、MAC鍵保持部3111と、カウンタ保持部3112とを含んで構成される。ECU4100aの構成要素のうち、実施の形態1で示したECU100a或いは実施の形態3で示したECU3100aと同様の機能を有する構成要素は、同じ符号を付して説明を省略する。これらの各構成要素は、機能的な構成要素であり、その各機能は、ECU4100aにおける通信回路、メモリに格納された制御プログラムを実行するプロセッサ或いはデジタル回路等により実現される。なお、ECU4100b及びECU4100cもECU4100aと基本的に同様の構成を備える。但し、データフレーム生成ルール保持部4103、受信データフレーム周期保持部4105及びデータフレーム受信履歴保持部106の各保持内容はECU毎に異なる内容となり得る。また、データフレーム処理部107の処理内容は、ECU毎に異なる。
[4.2 Configuration of ECU 4100a]
FIG. 26 is a configuration diagram of the ECU 4100a. The ECU 4100a includes a data frame transmission/reception unit 101, a data frame generation unit 4102, a data frame generation rule holding unit 4103, an invalid data frame determination unit 4104, a received data frame period holding unit 4105, and a data frame reception history holding unit 106. A data frame processing unit 107, a timer 108, a sensor value acquisition unit 109, a MAC generation unit 3110, a MAC key holding unit 3111, and a counter holding unit 3112. Among the constituent elements of the ECU 4100a, constituent elements having the same functions as those of the ECU 100a shown in the first embodiment or the ECU 3100a shown in the third embodiment are designated by the same reference numerals and the description thereof will be omitted. Each of these components is a functional component, and each function thereof is realized by a communication circuit in the ECU 4100a, a processor that executes a control program stored in the memory, a digital circuit, or the like. The ECU 4100b and the ECU 4100c have basically the same configuration as the ECU 4100a. However, the contents held in the data frame generation rule holding unit 4103, the received data frame period holding unit 4105, and the data frame reception history holding unit 106 may be different for each ECU. Further, the processing content of the data frame processing unit 107 differs for each ECU.

データフレーム生成部4102は、データフレーム生成ルール保持部4103に格納されたデータフレーム生成ルールに従い、データフレームを生成し、データフレーム送受信部101に送信する。データフレーム生成部4102は、タイマ108から現在時刻を取得する。更にデータフレーム生成部4102は、ECU4100aに接続された機器(パワーウィンドウスイッチ110)に関するデータ(センサ値)をセンサ値取得部109から取得する。ECU4100aからデータフレームを周期的に送信すべく、データフレーム生成部4102は、現在時刻とデータフレーム生成ルール保持部4103に格納される送信周期とによって、データフレームを生成するタイミングを決定し、データフレームの生成を周期的に行う。なお、データフレーム生成部4102によりデータフレームが生成されると、そのデータフレームはデータフレーム送受信部101に通知され、データフレーム送受信部101はそのデータフレームの送信を行う。更に、データフレーム生成部4102は、センサ値取得部109から取得されるセンサ値に変化があった時が、周期的なタイミングとは異なる時である場合には、イベントドリブンデータフレームの生成を行う。イベントドリブンデータフレームを生成する際には、データフレーム生成部4102は、データフレーム生成ルール保持部4103に格納されているメッセージID毎のデータフレーム生成ルールのMAC付与条件(後述)に基づいてMACをイベントドリブンデータフレームに含めるか否かを判断し、MACを含めると判断した場合にはイベントドリブンデータフレームフォーマットに従ってMACをデータフレームに含める。MACは、実施の形態3で説明したものと同様である。即ち、データフレーム生成部4102も実施の形態3で示したデータフレーム生成部3102と同様に、送信周期を示すデータフレーム生成ルールに適合しないタイミングでデータフレームの送信をする際においてデータフレーム中にMACという特定識別子を付与したデータフレームを生成する付与部としての機能を有する。データフレーム生成部4102によるデータフレームの生成の結果として、データフレーム送受信部101によりECU3100aからバス200に、周期的にデータフレームが送信され、更に、非周期的にイベントドリブンデータフレームが送信される。また、データフレーム生成部4102は、ECU4100aが送信を行う初回等(例えばエンジン始動時或いはその前、スリープ状態からの復帰時等)の周期的な送信の起点においてはデータフレームをイベントドリブンデータフレームの形式にして送信する。周期的な送信の起点においてイベントドリブンデータフレームではない周期的なデータフレームとしてしまうと、受信側で送信周期の条件に係る判断ができないからである。なお、初回等においてはイベントドリブンデータフレームにMACを含めることにしても良い。 The data frame generation unit 4102 generates a data frame according to the data frame generation rule stored in the data frame generation rule holding unit 4103, and transmits the data frame to the data frame transmission/reception unit 101. The data frame generation unit 4102 acquires the current time from the timer 108. Further, the data frame generation unit 4102 acquires data (sensor value) regarding the device (power window switch 110) connected to the ECU 4100a from the sensor value acquisition unit 109. In order to periodically transmit the data frame from the ECU 4100a, the data frame generation unit 4102 determines the timing of generating the data frame based on the current time and the transmission period stored in the data frame generation rule holding unit 4103, Is generated periodically. When the data frame generation unit 4102 generates a data frame, the data frame transmission/reception unit 101 is notified of the data frame, and the data frame transmission/reception unit 101 transmits the data frame. Further, the data frame generation unit 4102 generates an event-driven data frame when the sensor value acquired from the sensor value acquisition unit 109 changes at a time different from the periodic timing. .. When generating the event-driven data frame, the data frame generation unit 4102 generates the MAC based on the MAC assignment condition (described later) of the data frame generation rule for each message ID stored in the data frame generation rule holding unit 4103. It is determined whether the MAC is included in the event-driven data frame. If it is determined that the MAC is included, the MAC is included in the data frame according to the event-driven data frame format. The MAC is the same as that described in the third embodiment. That is, like the data frame generation unit 3102 described in the third embodiment, the data frame generation unit 4102 also transmits a MAC in the data frame when transmitting the data frame at a timing that does not conform to the data frame generation rule indicating the transmission cycle. Has a function as an adding unit that generates a data frame to which the specific identifier is added. As a result of the generation of the data frame by the data frame generation unit 4102, the data frame transmission/reception unit 101 periodically transmits the data frame from the ECU 3100a to the bus 200, and further transmits the event driven data frame aperiodically. Further, the data frame generation unit 4102 converts the data frame into the event-driven data frame at the starting point of the periodic transmission such as the first time when the ECU 4100a transmits (for example, at the time of engine start or before, at the time of returning from the sleep state). Format and send. This is because if a periodic data frame that is not an event-driven data frame is used at the starting point of periodic transmission, the receiving side cannot determine the transmission cycle condition. The MAC may be included in the event driven data frame at the first time or the like.

データフレーム生成ルール保持部4103は、メモリ等の記憶媒体で実現され、データフレーム生成ルールとしてECU4100aが送信するメッセージID毎に周期的にデータフレームを送信するための送信周期と、MACの格納位置、データ長等を示すイベントドリブンデータフレームフォーマットと、イベントドリブンデータフレームにMACを付与する条件であるMAC付与条件とを格納している。MAC付与条件は、車両の状態がどのような場合にMACを付与すべきかについて定めている。図27は、データフレーム生成ルール保持部4103に格納されたデータフレーム生成ルールの一例を示している。ここでは、ECU4100aは、パワーウィンドウスイッチ110の状態を示すデータフレーム等、複数種類のデータフレーム(種類毎にメッセージIDで識別されるデータフレーム)を送信するものとする。図27の例では、ECU4100aから周期的に送信されるメッセージIDが0x100のデータフレームについては、送信周期が50msであり、この送信周期に従わずイベントドリブンデータフレームとして送信する場合には、車両の状態が走行中であるときに限ってMACを付与し、MACを付与する際にはデータフィールドの下位16ビットにMACを格納する必要があることを示している。また、メッセージIDが0x200のデータフレームについては、送信周期が100msであり、メッセージIDが0x200のイベントドリブンデータフレームは送信されないことを示している。また、ECU4100aから周期的に送信されるメッセージIDが0x300のデータフレームについては、送信周期が70msであり、この送信周期に従わずイベントドリブンデータフレームとして送信する場合には、車両の状態が走行中であるとき及び駐車中であるときにMACを付与し、MACを付与する際にはデータフィールドの下位16ビットにMACを格納する必要があることを示している。 The data frame generation rule holding unit 4103 is realized by a storage medium such as a memory, and as a data frame generation rule, a transmission cycle for periodically transmitting a data frame for each message ID transmitted by the ECU 4100a, a MAC storage position, An event driven data frame format indicating a data length and the like, and a MAC assignment condition that is a condition for assigning a MAC to the event driven data frame are stored. The MAC assignment condition defines when the state of the vehicle should be assigned the MAC. FIG. 27 shows an example of the data frame generation rule stored in the data frame generation rule holding unit 4103. Here, it is assumed that the ECU 4100a transmits a plurality of types of data frames (a data frame identified by a message ID for each type), such as a data frame indicating the state of the power window switch 110. In the example of FIG. 27, the transmission cycle is 50 ms for the data frame whose message ID is 0x100, which is periodically transmitted from the ECU 4100a, and when transmitting as an event driven data frame without following this transmission cycle, the It indicates that the MAC is added only when the state is running, and the MAC needs to be stored in the lower 16 bits of the data field when the MAC is added. Also, for the data frame with the message ID 0x200, the transmission cycle is 100 ms, indicating that the event-driven data frame with the message ID 0x200 is not transmitted. In addition, the transmission cycle is 70 ms for the data frame whose message ID is 0x300 that is periodically transmitted from the ECU 4100a, and when the data frame is transmitted as an event-driven data frame without following this transmission cycle, the state of the vehicle is running. It is indicated that the MAC is added when the MAC is on and when the vehicle is parked, and the MAC needs to be stored in the lower 16 bits of the data field when the MAC is added.

不正データフレーム判断部4104は、受信したデータフレームが正当なデータフレームであるか(不正なデータフレームでないか)否かについて判断する。即ち、不正データフレーム判断部4104は、受信データフレーム周期保持部4105の周期ルール情報を参照して、メッセージID毎に予め定められた送信周期の条件を満たすか否かを確認し、送信周期の条件を満たす場合には正規のECUから送信されたデータフレーム(正当なデータフレーム)であると判断する。また、不正データフレーム判断部4104は、送信周期の条件を満たさないデータフレームであっても、車状態保持部4113に格納されている車両の状態が受信データフレーム周期保持部4105に格納されているMAC付与イベントドリブンデータフレーム受信条件を満たす場合には、イベントドリブンデータフレームフォーマットに従ってデータフレームにMACが含まれていることを検証することで不正なデータフレームか否かを判断する。MAC付与イベントドリブンデータフレーム受信条件は、車両の状態がどのような場合にMACが付与されたイベントドリブンデータフレームを受信するかを示す条件である。不正データフレーム判断部4104は、車両の状態がMAC付与イベントドリブンデータフレーム受信条件を満たす場合においてデータフィールド内のMACの検証に成功すれば、受信したデータフレームが正当であると判断し、検証に失敗すれば、受信したデータフレームが不正なデータフレームであると判断する。即ち、不正データフレーム判断部4104は、実施の形態3で示した不正データフレーム判断部3104と同様に、送信周期を示すデータフレーム生成ルールに呼応した周期ルール情報に適合しないデータフレームがデータフレーム送受信部101により受信された場合に、そのデータフレーム中のMACという特定識別子を検証する検証部としての機能を有する。MACの検証は、データフレームのメッセージID及びデータフィールドのデータ領域の内容をMAC生成部3110に通知することによってMAC生成部3110から得られる値と、データフィールド内のMACフィールドIの内容とが、一致するか否かを判別することで行われ、一致した場合に検証に成功する。不正データフレーム判断部4104は、受信したデータフレームが予め定められた送信周期の条件を満たさず、かつ、車両の状態がMAC付与イベントドリブンデータフレーム受信条件を満たさない場合には、MACの検証を行わないでイベントドリブンデータフレームを正当なデータフレームであると判断する。つまり、イベントドリブンデータフレームについて、車両の状態がMAC付与イベントドリブンデータフレーム受信条件を満たす場合にはMACを検証し、その他の場合には検証を省略している。但し、周期的な送信の初回等において送信側がイベントドリブンデータフレームにMACを含めることにする場合には、対応したMACの検証を受信側で行うと良い。なお、不正データフレーム判断部4104は、送信周期の条件を満たすデータフレームを受信した場合に、受信時刻をデータフレーム受信履歴保持部106に前回受信時刻として記録する。不正データフレーム判断部4104は、受信したデータフレームが正当なデータフレームであると判断した場合には、データフレーム処理部107にそのデータフレームの処理を行わせ、不正なデータフレームであると判断した場合には、そのデータフレームを破棄する(つまりそのデータフレームについてデータフレーム処理部107に処理させない)。 The invalid data frame determination unit 4104 determines whether the received data frame is a valid data frame (is not an invalid data frame). That is, the invalid data frame determination unit 4104 refers to the cycle rule information of the received data frame cycle holding unit 4105 to confirm whether or not the condition of the predetermined transmission cycle is satisfied for each message ID, If the condition is satisfied, it is determined that the data frame is a data frame transmitted from a legitimate ECU (valid data frame). Further, the illegal data frame determination unit 4104 stores the vehicle state stored in the vehicle state storage unit 4113 in the received data frame period storage unit 4105 even if the data frame does not satisfy the transmission cycle condition. When the MAC-added event-driven data frame reception condition is satisfied, it is determined whether the data frame is an illegal data frame by verifying that the data frame includes the MAC according to the event-driven data frame format. The MAC-added event-driven data frame reception condition is a condition that indicates under what state of the vehicle the MAC-added event-driven data frame is received. The illegal data frame determination unit 4104 determines that the received data frame is valid and verifies if the MAC in the data field is successfully verified when the vehicle state satisfies the MAC-added event-driven data frame reception condition. If it fails, it is determined that the received data frame is an invalid data frame. That is, as in the case of the illegal data frame determining unit 3104 described in the third embodiment, the illegal data frame determining unit 4104 transmits/receives a data frame that does not conform to the cycle rule information corresponding to the data frame generation rule indicating the transmission cycle. When received by the unit 101, it has a function as a verification unit for verifying a specific identifier called MAC in the data frame. In the MAC verification, the value obtained from the MAC generation unit 3110 by notifying the MAC generation unit 3110 of the message ID of the data frame and the content of the data area of the data field, and the content of the MAC field I in the data field, It is performed by determining whether or not they match, and if they match, the verification is successful. If the received data frame does not satisfy the predetermined transmission cycle condition and the vehicle state does not satisfy the MAC-added event-driven data frame reception condition, the unauthorized data frame determination unit 4104 verifies the MAC. If not, the event driven data frame is determined to be a valid data frame. That is, regarding the event-driven data frame, the MAC is verified when the vehicle state satisfies the MAC-added event-driven data frame reception condition, and the verification is omitted in other cases. However, when the sending side decides to include the MAC in the event-driven data frame at the first time of the periodical sending or the like, the corresponding MAC may be verified on the receiving side. It should be noted that when an invalid data frame determination unit 4104 receives a data frame that satisfies the transmission cycle condition, it records the reception time in the data frame reception history holding unit 106 as the previous reception time. If the invalid data frame determination unit 4104 determines that the received data frame is a valid data frame, the invalid data frame determination unit 4104 causes the data frame processing unit 107 to process the data frame, and determines that it is an invalid data frame. In that case, the data frame is discarded (that is, the data frame processing unit 107 does not process the data frame).

受信データフレーム周期保持部4105は、メモリ等の記憶媒体で実現され、周期ルール情報を保持する。この周期ルール情報は、自機(ECU4100a)が受信するデータフレームのメッセージID毎に、予め定められた送信周期と、データフレームの受信間隔について、送信周期の条件が満たされる(つまり正当な送信周期に合致する)と判断されるための許容範囲を示すマージンとを対応付けた情報である。周期ルール情報には、更に、送信周期の条件を満たさないイベントドリブンデータフレームのデータフィールド内に格納されるMACの格納位置、データ長等を示すイベントドリブンデータフレームフォーマットとMAC付与イベントドリブンデータフレーム受信条件とが含まれる。イベントドリブンデータフレームフォーマットは、不正データフレーム判断部4104が、イベントドリブンデータフレームについての正当性を検証(つまりMACを検証)する際に用いられる。また、MAC付与イベントドリブンデータフレーム受信条件は、車両の状態に係る条件であり、車両の状態がどの状態であればイベントドリブンデータフレームについてMACを検証すべきかを示す。なお、データフレームの受信側のECUの受信データフレーム周期保持部4105に保持される周期ルール情報における送信周期は、そのデータフレームの送信側のECUのデータフレーム生成ルール保持部4103に保持されるデータフレーム生成ルールにおける送信周期に呼応する。また、データフレームの受信側のECUの受信データフレーム周期保持部4105に保持される周期ルール情報におけるイベントドリブンデータフレームフォーマットは、そのデータフレームの送信側のECUのデータフレーム生成ルール保持部4103に保持されるデータフレーム生成ルールにおけるイベントドリブンデータフレームフォーマットに呼応する。また、データフレームの受信側のECUの受信データフレーム周期保持部4105に保持される周期ルール情報におけるMAC付与イベントドリブンデータフレーム受信条件は、そのデータフレームの送信側のECUのデータフレーム生成ルール保持部4103に保持されるデータフレーム生成ルールにおけるMAC付与条件に呼応する。図28は、ECU4100aから送信されたデータフレームを受信するECU4100bにおける受信データフレーム周期保持部4105に格納された周期ルール情報の一例を示す図である。同図の例では、メッセージIDが0x100のデータフレームの送信周期が50ms、メッセージIDが0x200のデータフレームの送信周期が100ms、メッセージIDが0x300のデータフレームの送信周期が70msであることを示している。同図の例では、マージンは、どのメッセージIDについても1msである。このマージンが1msであるため、メッセージIDが0x100のデータフレームについて送信周期が49ms以上51ms以下の範囲であれば、ECU4100bにおける不正データフレーム判断部4104は、送信周期の条件が満たされると判断することになる。また、図28の例でのイベントドリブンデータフレームフォーマットについては、メッセージIDが0x100及び0x300のイベントドリブンデータフレームは、データフィールドの下位16ビットにMACが付与されていることを示しており、メッセージIDが0x200のイベントドリブンデータフレームは送信されないことを示している。また、図28の例でのMAC付与イベントドリブンデータフレーム受信条件については、メッセージIDが0x100のイベントドリブンデータフレームは車両の状態が走行中であるときにMACの検証が必要であることを示し、メッセージIDが0x200のイベントドリブンデータフレームは送信されないのでMACの検証が不要であることを示し、メッセージIDが0x300のイベントドリブンデータフレームは車両の状態が走行中及び駐車中のいずれかの状態であるときにMACの検証が必要であることを示している。 The received data frame cycle holding unit 4105 is realized by a storage medium such as a memory and holds cycle rule information. This cycle rule information satisfies the conditions of the transmission cycle with respect to the predetermined transmission cycle and the reception interval of the data frame for each message ID of the data frame received by the own device (ECU 4100a) (that is, the valid transmission cycle). It is information in which a margin indicating a permissible range for determining that it is determined to match) is associated. The cycle rule information further includes an event driven data frame format indicating the MAC storage position and data length stored in the data field of the event driven data frame that does not satisfy the condition of the transmission cycle, and a MAC-added event driven data frame reception. The conditions and are included. The event-driven data frame format is used when the fraudulent data frame determination unit 4104 verifies the validity of the event-driven data frame (that is, verifies the MAC). The MAC-added event-driven data frame reception condition is a condition related to the state of the vehicle, and indicates which state of the vehicle should verify the MAC for the event-driven data frame. The transmission cycle in the cycle rule information held in the received data frame cycle holding unit 4105 of the ECU on the data frame receiving side is the data held in the data frame generation rule holding unit 4103 of the ECU on the sending side of the data frame. It corresponds to the transmission cycle in the frame generation rule. The event-driven data frame format in the cycle rule information held in the received data frame cycle holding unit 4105 of the ECU on the data frame receiving side is held in the data frame generation rule holding unit 4103 of the ECU on the sending side of the data frame. It corresponds to the event driven data frame format in the data frame generation rule that is set. The MAC-added event-driven data frame reception condition in the cycle rule information held in the received data frame cycle holding unit 4105 of the data frame receiving side ECU is the data frame generation rule holding unit of the sending side ECU of the data frame. It responds to the MAC addition condition in the data frame generation rule held in 4103. FIG. 28 is a diagram showing an example of the cycle rule information stored in the received data frame cycle holding unit 4105 in the ECU 4100b which receives the data frame transmitted from the ECU 4100a. In the example of the figure, it is shown that the transmission cycle of the data frame of the message ID 0x100 is 50 ms, the transmission cycle of the data frame of the message ID 0x200 is 100 ms, and the transmission cycle of the data frame of the message ID 0x300 is 70 ms. There is. In the example of the figure, the margin is 1 ms for any message ID. Since this margin is 1 ms, if the transmission cycle of the data frame with the message ID of 0x100 is in the range of 49 ms or more and 51 ms or less, the invalid data frame determination unit 4104 in the ECU 4100b determines that the transmission cycle condition is satisfied. become. Further, regarding the event-driven data frame format in the example of FIG. 28, the event-driven data frames with message IDs of 0x100 and 0x300 indicate that the lower 16 bits of the data field are assigned with MAC. Indicates that the event driven data frame of 0x200 is not transmitted. Further, regarding the MAC-added event-driven data frame reception condition in the example of FIG. 28, it is shown that the event-driven data frame with a message ID of 0x100 requires MAC verification when the vehicle state is running, The event-driven data frame with the message ID of 0x200 is not transmitted, which indicates that MAC verification is not required. The event-driven data frame with the message ID of 0x300 indicates whether the vehicle is running or parked. Sometimes it indicates that MAC verification is required.

車状態保持部4113は、メモリ等の記憶媒体で実現され、車両の状態を示す値が格納される。図29に車状態保持部4113に格納された車両の状態の一例を示している。この例では車両の状態が、走行中であることを示している。車状態保持部4113における車両の状態は、ECU4100cから送信されるデータフレーム(車両の状態を示すデータフレーム)が受信され、正当なデータフレームであると判断された場合に、データフレーム処理部107により、そのデータフレームの内容に応じて格納(更新)がなされる。 The vehicle state holding unit 4113 is realized by a storage medium such as a memory and stores a value indicating the vehicle state. FIG. 29 shows an example of the state of the vehicle stored in the vehicle state holding unit 4113. In this example, the state of the vehicle indicates that the vehicle is running. The vehicle state in the vehicle state holding unit 4113 is determined by the data frame processing unit 107 when a data frame (a data frame indicating the vehicle state) transmitted from the ECU 4100c is received and is determined to be a valid data frame. The data is stored (updated) according to the contents of the data frame.

[4.3 ECU4100aにおけるデータフレームの送信処理]
以下、ECU4100aがデータフレームをバス200に送信し、ECU4100bがデータフレームをバス200から受信する例を想定して、ECU4100aにおけるデータフレームの送信処理を説明する。
[4.3 Data Frame Transmission Process in ECU 4100a]
Hereinafter, assuming that the ECU 4100a transmits a data frame to the bus 200 and the ECU 4100b receives the data frame from the bus 200, the data frame transmission process in the ECU 4100a will be described.

図30は、ECU4100aにおけるデータフレームの送信処理を示すフローチャートである。 FIG. 30 is a flowchart showing a data frame transmission process in the ECU 4100a.

ECU4100aは、データフレーム生成ルールにおける送信周期に従った送信タイミング(前回の送信から送信周期が経過したタイミング)、或いは、センサ値取得部109からのセンサ値が変化したタイミングで、データフレームの生成が必要となり、図30の送信処理を開始する。送信処理においては、まず、ECU4100aは、送信するデータフレームがイベントドリブンデータフレームか周期的なデータフレームかを判断する(ステップS4101)。 The ECU 4100a generates the data frame at the transmission timing according to the transmission cycle in the data frame generation rule (the timing when the transmission cycle has elapsed from the previous transmission) or the timing when the sensor value from the sensor value acquisition unit 109 changes. It becomes necessary, and the transmission process of FIG. 30 is started. In the transmission process, the ECU 4100a first determines whether the data frame to be transmitted is an event driven data frame or a periodic data frame (step S4101).

ECU4100aは、ステップS4101において送信するデータフレームがデータフレーム生成ルールにおける送信周期に従っていないイベントドリブンデータフレームであると判断した場合には、ECU4100cからのデータフレームに対応して車状態保持部4113に格納された車両の状態がデータフレーム生成ルールのMAC付与条件を満たすか否かを判断する(ステップS4102)。例えば、MAC付与条件が、走行中及び駐車中のいずれかを示し、ECU4100aからのデータフレームで示された車両の状態(車状態保持部4113の車両の状態)が走行中を示す場合には、車両の状態がMAC付与条件を満たすと判断される。 When the ECU 4100a determines in step S4101 that the data frame to be transmitted is an event-driven data frame that does not follow the transmission cycle in the data frame generation rule, it is stored in the vehicle state holding unit 4113 corresponding to the data frame from the ECU 4100c. It is determined whether the state of the vehicle satisfies the MAC assignment condition of the data frame generation rule (step S4102). For example, when the MAC assignment condition indicates either running or parking and the vehicle state (vehicle state of the vehicle state holding unit 4113) indicated by the data frame from the ECU 4100a indicates running, It is determined that the vehicle state satisfies the MAC assignment condition.

ECU4100aは、ステップS4102において、車両の状態がMAC付与条件を満たすと判断した場合には、データフレーム生成ルールのイベントドリブンデータフレームフォーマットに従って、生成するデータフレームのデータフィールドのMACフィールドIに、MACを付与する(ステップS4103)。 When it is determined in step S4102 that the vehicle state satisfies the MAC assignment condition, the ECU 4100a sets the MAC in the MAC field I of the data field of the data frame to be generated according to the event-driven data frame format of the data frame generation rule. It is given (step S4103).

ECU4100aは、ステップS4101において、送信するデータフレームが、データフレーム生成ルールにおける送信周期に従う周期的なデータフレームであると判断した場合(イベントドリブンデータフレームでないと判断した場合)には、ステップS4102、S4103での処理をスキップする。また、ECU4100aは、ステップS4102において、車両の状態がMAC付与条件を満たさないと判断した場合には、ステップS4103での処理をスキップする。 When the ECU 4100a determines in step S4101 that the data frame to be transmitted is a periodic data frame according to the transmission cycle in the data frame generation rule (when it is determined that it is not an event driven data frame), steps S4102 and S4103. Skip the process in. If the ECU 4100a determines in step S4102 that the vehicle state does not satisfy the MAC assignment condition, the ECU 4100a skips the process of step S4103.

ECU4100aは、ステップS4103の後、或いはステップS4103での処理をスキップした後に、データフィールドのデータ領域にセンサ値取得部109から取得した最新のセンサ値をセットして、送信するデータフレームを生成し、バス200へと送信する(ステップS4104)。これにより、バス200上にデータフレームが流れ、ECU4100bに受信されるようになる。 The ECU 4100a sets the latest sensor value acquired from the sensor value acquisition unit 109 in the data area of the data field after step S4103 or skips the processing in step S4103 to generate a data frame to be transmitted, It transmits to the bus 200 (step S4104). As a result, the data frame flows on the bus 200 and is received by the ECU 4100b.

なお、ECU4100bも図30に示すものと同様の送信処理を実行し得る。 Note that the ECU 4100b can also execute the same transmission processing as that shown in FIG.

[4.4 ECU4100bにおけるデータフレームの受信処理]
以下、ECU4100aがデータフレームをバス200に送信し、ECU4100bがデータフレームをバス200から受信する例を想定して、ECU4100bにおけるデータフレームの受信処理を説明する。
[4.4 Reception Processing of Data Frame in ECU 4100b]
Hereinafter, assuming that the ECU 4100a transmits a data frame to the bus 200 and the ECU 4100b receives the data frame from the bus 200, the data frame reception process in the ECU 4100b will be described.

図31は、ECU4100bにおけるデータフレームの受信処理を示すフローチャートである。 FIG. 31 is a flowchart showing a data frame reception process in the ECU 4100b.

ECU4100bは、バス200上に現れるデータフレームを受信する(ステップS4201)。なお、ECU4100bは、自機が受信すべきメッセージIDを含まないデータフレームであればそのデータフレームを破棄して処理を終了する。自機が受信すべきメッセージIDを含むデータフレームを受信した場合に、ECU4100bは、その受信が、保持している周期ルール情報で規定された送信周期範囲内か否かを判断する(ステップS4202)。なお、ECU4100bの不正データフレーム判断部4104は、受信したデータフレームの受信間隔(つまり送信周期)が規定の送信周期の範囲内であるか否か(つまり周期ルール情報で定められた送信周期の条件を満たすか否か)を、タイマ108、受信データフレーム周期保持部4105及びデータフレーム受信履歴保持部106から得られる情報に基づいて判断する。即ち、不正データフレーム判断部4104は、前回受信時刻と今回受信したデータフレームの受信時刻の差分(受信間隔)が、受信したデータフレームのメッセージIDに対応して定められた送信周期からマージンを引いた値以上であり、かつ、その送信周期にマージンを加えた値以下であるか否かを判断する。 The ECU 4100b receives the data frame appearing on the bus 200 (step S4201). If the data frame does not include the message ID that the ECU 4100b should receive, the ECU 4100b discards the data frame and ends the process. When the data frame including the message ID to be received by the device itself is received, the ECU 4100b determines whether or not the reception is within the transmission cycle range defined by the held cycle rule information (step S4202). .. It should be noted that the unauthorized data frame determination unit 4104 of the ECU 4100b determines whether or not the reception interval (that is, the transmission cycle) of the received data frame is within the range of the specified transmission cycle (that is, the condition of the transmission cycle defined by the cycle rule information). Whether or not the condition is satisfied) is determined based on the information obtained from the timer 108, the received data frame period holding unit 4105, and the data frame reception history holding unit 106. That is, the incorrect data frame determination unit 4104 subtracts a margin from the transmission cycle determined by the difference (reception interval) between the reception time of the previous data frame and the reception time of the data frame received this time, which is determined corresponding to the message ID of the received data frame. It is determined whether or not the value is equal to or more than the above value and is less than or equal to the value obtained by adding a margin to the transmission cycle.

ステップS4202において、データフレームの受信間隔が送信周期の範囲内である場合には、送信周期の条件が満たされたことになり、ECU4100bは、データフレーム受信履歴保持部106が保持するリストに、受信したデータフレームのメッセージIDに対応付けて、前回受信時刻として、そのデータフレームの受信時刻を記録(つまり前回受信時刻を更新)する(ステップS4204)。そして、ステップS4204での処理に続いて、ECU4100bの不正データフレーム判断部4104により、受信したデータフレームが正当なデータフレームであると判断され(ステップS4206)、データフレーム処理部107によりそのデータフレームに対応した処理がなされる。 If the data frame reception interval is within the range of the transmission cycle in step S4202, it means that the condition of the transmission cycle is satisfied, and the ECU 4100b receives the data in the list held by the data frame reception history holding unit 106. The reception time of the data frame is recorded as the previous reception time (that is, the previous reception time is updated) in association with the message ID of the data frame (step S4204). Then, following the processing in step S4204, the invalid data frame determination unit 4104 of the ECU 4100b determines that the received data frame is a valid data frame (step S4206), and the data frame processing unit 107 converts the received data frame into the data frame. Corresponding processing is performed.

また、ステップS4202において、データフレームの前回受信時刻と今回受信時刻の差分が送信周期の範囲内でない場合には、ECU4100bは、車両の状態がMAC付与イベントドリブンデータフレーム受信条件を満たすか否かを判断する(ステップS4203)。即ち、ECU4100bは、ECU4100cからのデータフレームに対応して車状態保持部4113に格納された車両の状態が、MAC付与イベントドリブンデータフレーム受信条件を満たすか否かを判断する。 If the difference between the previous reception time and the current reception time of the data frame is not within the range of the transmission cycle in step S4202, the ECU 4100b determines whether or not the vehicle state satisfies the MAC addition event driven data frame reception condition. It is determined (step S4203). That is, the ECU 4100b determines whether or not the vehicle state stored in the vehicle state holding unit 4113 corresponding to the data frame from the ECU 4100c satisfies the MAC addition event driven data frame reception condition.

ステップS4203において、車両の状態がMAC付与イベントドリブンデータフレーム受信条件を満たすと判断した場合には、ECU4100bは、受信データフレーム周期保持部4105に格納されているイベントドリブンデータフレームフォーマットに従ってデータフレームのデータフィールドをMACフィールドIとデータ領域とに分けて、データ領域及びメッセージIDから算出されるMACと、MACフィールドに含まれるMACとを比較することで、データフレームの正当性(MACが正しいこと)を検証する(ステップS4205)。算出されるMACとMACフィールドに含まれるMACとが一致すればMACの検証(つまりMACの正当性の検証)に成功し、受信したデータフレームが正当なデータフレームであると判断され(ステップS4206)、データフレーム処理部107によりそのデータフレームに対応した処理がなされる。 If it is determined in step S4203 that the state of the vehicle satisfies the MAC-added event-driven data frame reception condition, the ECU 4100b determines the data of the data frame according to the event-driven data frame format stored in the reception data frame cycle holding unit 4105. By dividing the field into the MAC field I and the data area and comparing the MAC calculated from the data area and the message ID with the MAC included in the MAC field, the validity of the data frame (the MAC is correct) is confirmed. Verification is performed (step S4205). If the calculated MAC and the MAC included in the MAC field match, the MAC verification (that is, MAC correctness verification) succeeds, and the received data frame is determined to be a valid data frame (step S4206). The data frame processing unit 107 performs processing corresponding to the data frame.

ステップS4205において、算出されるMACとMACフィールドに含まれるMACとが一致しない場合(MACの検証に成功しない場合)には、ECU4100bは、受信したデータフレームが不正なデータフレームであると判断してデータフレームを破棄する(ステップS4207)。従って、ECU4100bは、不正なECUにより送信された不正なデータフレームを処理しない。 In step S4205, when the calculated MAC does not match the MAC included in the MAC field (when the MAC verification is not successful), the ECU 4100b determines that the received data frame is an invalid data frame. The data frame is discarded (step S4207). Therefore, the ECU 4100b does not process the fraudulent data frame transmitted by the fraudulent ECU.

また、ステップS4203において車両の状態がMAC付与イベントドリブンデータフレーム受信条件を満たさないと判断した場合には、ECU4100bは、受信したデータフレームが正当なデータフレームである判断し(ステップS4206)、データフレーム処理部107によりそのデータフレームに対応した処理を行う。 If it is determined in step S4203 that the vehicle state does not satisfy the MAC addition event driven data frame reception condition, the ECU 4100b determines that the received data frame is a valid data frame (step S4206), and The processing unit 107 performs processing corresponding to the data frame.

なお、ステップS4202において、データフレームの受信間隔(つまり送信周期)が規定の送信周期の範囲内か否かを判断するに際して、初回等といった前回受信時刻が保存されていない場合においては、受信したデータフレームをイベントドリブンデータフレームと扱い、MACの検証に成功したときにそのデータフレームの受信時刻を前回受信時刻として記録してからステップS4206の処理を行うことができる。この場合、送信側のECUでは初回等の周期的な送信の起点においては例外的にMACを付与したイベントドリブンデータフレームを送信する。また、各ECUが例えばスリープ状態等に入ってデータフレームの周期的な送信を休止する期間がある場合には、その後の周期的な送信の再開時にデータフレームをイベントドリブンデータフレームとして送信することとしても良い。この場合には、受信側のECUでは前回受信時刻から一定時間以上の間、送信側のECUがスリープ状態に入って周期的な送信が途切れた場合に、前回受信時刻を無効にして次回を初回と扱い、受信したデータフレームをイベントドリブンデータフレームと扱い、その正当性を判断することができる。 In step S4202, when determining whether the reception interval (that is, the transmission cycle) of the data frame is within the range of the specified transmission cycle, if the previous reception time such as the first time is not stored, the received data is received. The frame can be treated as an event driven data frame, and when the MAC verification is successful, the reception time of the data frame can be recorded as the previous reception time, and then the process of step S4206 can be performed. In this case, the transmission side ECU exceptionally transmits the event driven data frame to which the MAC is added at the starting point of the periodic transmission such as the first transmission. In addition, when there is a period in which each ECU enters a sleep state or the like and suspends periodic transmission of data frames, the data frame is transmitted as an event-driven data frame when the periodic transmission is resumed thereafter. Is also good. In this case, if the ECU on the transmitting side enters a sleep state for a certain period of time from the previous receiving time and the periodic transmission is interrupted, the receiving side ECU invalidates the previous receiving time and starts the next time. The received data frame is treated as an event-driven data frame, and its validity can be determined.

また、ECU4100aも図31に示すものと同様の受信処理を実行し得る。 Further, the ECU 4100a can also execute the same reception processing as that shown in FIG.

[4.5 ECU4100cにおける車両の状態を示すデータフレームの送信処理]
以下、ECU4100cが車両の状態を取得して車両の状態を示すデータフレームをバス200に送信する送信処理を説明する。
[4.5 Transmission Processing of Data Frame Showing Vehicle State in ECU 4100c]
Hereinafter, a transmission process in which the ECU 4100c acquires the vehicle state and transmits a data frame indicating the vehicle state to the bus 200 will be described.

図32は、ECU4100cにおける車両の状態を示すデータフレームの送信処理を示すフローチャートである。同図に示す処理は、ECU4100cにより繰り返し実行される。 FIG. 32 is a flowchart showing a transmission process of a data frame showing the state of the vehicle in the ECU 4100c. The process shown in the figure is repeatedly executed by the ECU 4100c.

ECU4100cは、接続されているギア4130の状態をセンサから取得する(ステップS4301)。 The ECU 4100c acquires the state of the connected gear 4130 from the sensor (step S4301).

ECU4100cは、取得したギア4130の状態が前回取得した状態から変化したか否かを判断し(ステップS4302)、ギア4130の状態が変化した場合には、予め定められているギア4130の状態(例えば、ギアポジションについてパーキング、1速、2速等)と車両の状態(走行中、駐車中等)との対応関係に基づいて、車両の状態を特定してその車両の状態をデータフィールドの内容として含ませたデータフレームを生成し、イベントドリブンデータフレームとしてバス200へと送信する(ステップS4303)。 The ECU 4100c determines whether or not the acquired state of the gear 4130 has changed from the previously acquired state (step S4302), and when the state of the gear 4130 has changed, a predetermined state of the gear 4130 (for example, , The gear position is specified on the basis of the correspondence between the parking position, the first speed, the second speed, etc.) and the state of the vehicle (running, parked, etc.), and the state of the vehicle is included as the contents of the data field. An empty data frame is generated and transmitted as an event driven data frame to the bus 200 (step S4303).

なお、ECU4100cは、イベントドリブンデータフレームにはMACを付与して送信しても良く、この場合には、ECU4100a及びECU4100bは、バス200から受信したイベントドリブンデータフレームのMACを検証して、検証に成功した場合に限って車両の状態を取得して車状態保持部4113に格納することになる。 It should be noted that the ECU 4100c may add the MAC to the event-driven data frame and transmit the MAC, and in this case, the ECU 4100a and the ECU 4100b verify the MAC of the event-driven data frame received from the bus 200 and perform verification. Only when it succeeds, the vehicle state is acquired and stored in the vehicle state holding unit 4113.

[4.6 ECU4100bにおけるデータフレームの受信処理の変形例]
上述したデータフレームの受信処理(図31参照)においては、ステップS4203において車両の状態がMAC付与イベントドリブンデータフレーム受信条件を満たさない場合には、受信したデータフレームを正当であると判断することとしたが、車両の状態がMAC付与イベントドリブンデータフレーム受信条件を満たさない場合には、受信したデータフレームを不正なデータフレームであると判断して破棄するように変形しても良い。以下、受信処理の変形例について示す。
[4.6 Modification of Data Frame Reception Processing in ECU 4100b]
In the above-described data frame reception process (see FIG. 31), if the vehicle state does not satisfy the MAC addition event driven data frame reception condition in step S4203, it is determined that the received data frame is valid. However, when the vehicle state does not satisfy the MAC-added event-driven data frame reception condition, the received data frame may be determined to be an invalid data frame and may be discarded. Hereinafter, modified examples of the reception process will be described.

図33は、ECU4100bにおけるデータフレームの受信処理の変形例を示すフローチャートである。 FIG. 33 is a flowchart showing a modification of the data frame reception process in ECU 4100b.

ECU4100bは、バス200上に現れるデータフレームを受信する(ステップS4401)。ECU4100bは、自機が受信すべきメッセージIDを含むデータフレームを受信した場合に、その受信が、保持している周期ルール情報で規定された送信周期範囲内か否かを判断する(ステップS4402)。ステップS4402において、データフレームの受信間隔が送信周期の範囲内である場合には、ECU4100bは、データフレーム受信履歴保持部106が保持するリストに、受信したデータフレームのメッセージIDに対応付けて、前回受信時刻として、そのデータフレームの受信時刻を記録する(ステップS4404)。そして、ステップS4404での処理に続いて、ECU4100bの不正データフレーム判断部4104により、受信したデータフレームが正当なデータフレームであると判断され(ステップS4406)、データフレーム処理部107によりそのデータフレームに対応した処理がなされる。 The ECU 4100b receives the data frame appearing on the bus 200 (step S4401). When the ECU 4100b receives the data frame including the message ID to be received by the own device, the ECU 4100b determines whether or not the reception is within the transmission cycle range defined by the held cycle rule information (step S4402). .. In step S4402, if the data frame reception interval is within the range of the transmission cycle, the ECU 4100b associates the list held by the data frame reception history holding unit 106 with the message ID of the received data frame, As the reception time, the reception time of the data frame is recorded (step S4404). Then, following the processing in step S4404, the invalid data frame determination unit 4104 of the ECU 4100b determines that the received data frame is a valid data frame (step S4406), and the data frame processing unit 107 converts it into the data frame. Corresponding processing is performed.

また、ステップS4402においてデータフレームの受信が規定された送信周期範囲内でないと判断した場合には、ECU4100bは、車両の状態がMAC付与イベントドリブンデータフレーム受信条件を満たすか否かを判断する(ステップS4403)。 If it is determined in step S4402 that the reception of the data frame is not within the specified transmission cycle range, the ECU 4100b determines whether or not the state of the vehicle satisfies the MAC addition event driven data frame reception condition (step). S4403).

ステップS4403において、車両の状態がMAC付与イベントドリブンデータフレーム受信条件を満たすと判断した場合には、ECU4100bは、受信データフレーム周期保持部4105に格納されているイベントドリブンデータフレームフォーマットに基づいてデータ領域及びメッセージIDから算出されるMACと、MACフィールドに含まれるMACとを比較することで、データフレームの正当性(MACが正しいこと)を検証する(ステップS4405)。MACが正しいことを検証した場合にはECU4100bは、受信したデータフレームを正当なデータフレームであると判断し(ステップS4406)、データフレーム処理部107によりそのデータフレームに対応した処理を行う。 If it is determined in step S4403 that the state of the vehicle satisfies the MAC-added event-driven data frame reception condition, the ECU 4100b determines the data area based on the event-driven data frame format stored in the reception data frame period holding unit 4105. And the MAC calculated from the message ID and the MAC included in the MAC field are compared to verify the validity of the data frame (the MAC is correct) (step S4405). When verifying that the MAC is correct, the ECU 4100b determines that the received data frame is a valid data frame (step S4406), and the data frame processing unit 107 performs processing corresponding to the data frame.

ステップS4403において車両の状態がMAC付与イベントドリブンデータフレーム受信条件を満たさないと判断した場合、及び、ステップS4405においてMACが正しいことの検証に成功しない場合には、ECU4100bは、受信したデータフレームが不正なデータフレームであると判断してデータフレームを破棄する(ステップS4407)。従って、ECU4100bは、不正なECUにより送信された不正なデータフレームを処理しない。 If it is determined in step S4403 that the vehicle state does not satisfy the MAC-added event-driven data frame reception condition, and if the verification that the MAC is correct is not successful in step S4405, the ECU 4100b determines that the received data frame is invalid. It is determined that the data frame is a valid data frame and the data frame is discarded (step S4407). Therefore, the ECU 4100b does not process the fraudulent data frame transmitted by the fraudulent ECU.

[4.7 実施の形態4の効果]
実施の形態4では、周期的に送信されるデータフレームに加えて、非周期的に送信されるイベントドリブンデータフレームが存在する場合でも、イベントドリブンデータフレーム内に特定識別子としてのMACを含めることによって、正当なイベントドリブンデータフレームであることを検証可能にする車載ネットワークシステム13を示した。即ち、車載ネットワークシステム13では、送信周期の条件により正当なデータフレームであるか否かを判別し、送信周期の条件によっては判別ができない場合に限って特定識別子により正当なデータフレームであるか否かを判別(つまり検証)するようにしている。これにより、送信周期の条件を満たさない正当なイベントドリブンデータフレームが不正なものとして誤検知されることが防止される。また、不正なECUがデータフレームを送信する場合には、送信周期の条件を満たさない可能性が高く、正しくMACを付与できないため、このデータフレームを受信したECUによって不正なデータフレームであると判断されるようになる。またイベントドリブンデータフレームについても、車両の状態に応じてMACを付与及び検証するか否かを切り替えることによって、効率的に不正なデータフレームの検知が可能となる。
[4.7 Effects of Fourth Embodiment]
In the fourth embodiment, by including the MAC as the specific identifier in the event-driven data frame even when there is an event-driven data frame that is transmitted aperiodically in addition to the data frame that is transmitted periodically. , The in-vehicle network system 13 that can verify that the event-driven data frame is valid. That is, the in-vehicle network system 13 determines whether or not the data frame is a valid data frame based on the condition of the transmission cycle, and determines whether the data frame is a valid data frame based on the specific identifier only when the determination cannot be made depending on the condition of the transmission period. It is trying to determine (that is, verify). This prevents erroneous detection of a valid event-driven data frame that does not satisfy the condition of the transmission cycle as an unauthorized one. Further, when an unauthorized ECU transmits a data frame, it is highly likely that the condition of the transmission cycle is not satisfied, and the MAC cannot be correctly assigned. Therefore, the ECU that receives this data frame determines that it is an invalid data frame. Will be done. Also for the event-driven data frame, it is possible to efficiently detect an illegal data frame by switching whether to assign and verify the MAC according to the state of the vehicle.

(他の実施の形態等)
以上のように、本開示に係る技術の例示として実施の形態1〜4を説明した。しかしながら、本開示に係る技術は、これに限定されず、適宜、変更、置き換え、付加、省略等を行った実施の形態にも適用可能である。例えば、以下のような変形例も本開示の一実施態様に含まれる。
(Other embodiments, etc.)
As described above, Embodiments 1 to 4 have been described as examples of the technology according to the present disclosure. However, the technology according to the present disclosure is not limited to this, and is also applicable to the embodiment in which changes, replacements, additions, omissions, etc. are appropriately made. For example, the following modified examples are also included in one embodiment of the present disclosure.

(1)上記実施の形態では、イベントドリブンデータフレームを送信するECUがイベントドリブンデータフレームにイベントドリブン識別フラグ、イベントカウンタ、或いは、所定演算の結果値であるMACという特定識別子を付与し、イベントドリブンデータフレームを受信するECUで特定識別子を検証する例を示したが、特定識別子は例示した以外の形式の情報であっても良い。特定識別子の検証は、例えば、データフレームの所定位置における所定データ長のデータ値が、固定値又は所定演算により導出される値と一致するか否かを検査し、一致すれば検証に成功したと扱い、一致しなければ検証に失敗したと扱う処理手順等である。なお、上記実施の形態ではデータフレームを受信するECUが、データフレームが送信周期に係るルール(条件)に適合しないイベントドリブンデータフレームであると判断した後に特定識別子の検証を行う例を示したが、データフレーム中の特定識別子の検証を、送信周期のルールに適合するか否かの判断より前に、或いは、その判断と同時に、行っても良い。 (1) In the above embodiment, the ECU that transmits the event-driven data frame assigns the event-driven data frame with the event-driven identification flag, the event counter, or the specific identifier called MAC that is the result value of the predetermined operation, and the event-driven data frame is transmitted. Although the example in which the specific identifier is verified by the ECU that receives the data frame has been shown, the specific identifier may be information in a format other than the example. The verification of the specific identifier is performed, for example, by checking whether or not the data value of the predetermined data length at the predetermined position of the data frame matches a fixed value or a value derived by a predetermined calculation, and if they match, the verification is successful. The processing procedure, etc. is handled as if the verification fails if they do not match. In the above embodiment, the example in which the ECU that receives the data frame verifies the specific identifier after determining that the data frame is the event driven data frame that does not conform to the rule (condition) relating to the transmission cycle has been described. The verification of the specific identifier in the data frame may be performed before or simultaneously with the determination as to whether or not the rule of the transmission cycle is met.

(2)上記実施の形態では、メッセージIDとデータ値とカウンタ値とに基づく演算によりMACを生成(計算)しているが、データフレームの一部の内容を反映して(つまり一部の内容に基づいて)MACを生成すれば良く、データ値のみからMACを生成することとしても良い。またカウンタ値のみからMACを生成するとしても良い。データフレームを受信するECUにおけるMACの検証方式は、データフレームを送信するECUがデータフレームにMACを付与する方式に対応したものであれば良い。また、MACを付与するデータフレームにおいてはデータフィールド内にデータ値及びMACの他に、一部又は全てのカウンタ値を含めても良い。また、上記実施の形態では、MAC算出のアルゴリズムをHMACとしているが、これCBC−MAC(Cipher Block Chaining Message Authentication Code)、CMAC(Cipher-based MAC)であっても良い。また、MAC計算に用いられるパディングについては、ゼロパディング、ISO10126、PKCS#1、PKCS#5、PKCS#7、その他、ブロックのデータサイズが計算に必要となるパディングの方式であれば何でも良い。 (2) In the above embodiment, the MAC is generated (calculated) by the operation based on the message ID, the data value, and the counter value, but a part of the content of the data frame is reflected (that is, a part of the content). The MAC may be generated based on the above), or the MAC may be generated only from the data value. Further, the MAC may be generated only from the counter value. The MAC verification method in the ECU that receives the data frame may be any method that corresponds to the method in which the ECU that transmits the data frame adds the MAC to the data frame. Further, in the data frame to which the MAC is added, some or all of the counter values may be included in the data field in addition to the data value and the MAC. In the above embodiment, the MAC calculation algorithm is HMAC, but CBC-MAC (Cipher Block Chaining Message Authentication Code) or CMAC (Cipher-based MAC) may be used. The padding used in the MAC calculation may be zero padding, ISO10126, PKCS#1, PKCS#5, PKCS#7, or any other padding method that requires the block data size for calculation.

(3)上記実施の形態では、車両の状態として走行中及び駐車中という2つの状態について説明したが、停車中、高速走行中、低速走行中、バック中、エンジン停止等の各種状態を区別し、各種状態のうち、イベントドリブンデータフレームにMACを付与及び検証すべき条件としての車両の状態を定めても良い。例えば、不正なECUにより不正なデータフレームがバス上に送信された場合に不正であることを検知する必要性が比較的高いタイミングに対応するように、MACを付与及び検証すべき条件としての車両の状態を定めること等が有用となり得る。また、車両の状態は、必ずしもギア4130の状態に基づいて判断する必要はなく、車両内のいずれかのECUがいずれかの機器から取得したセンサ値等を含むデータフレームを送信し、他のECUがそのデータフレームを受信することによって車両の状態を判断することとしても良い。例えば、走行スピードに関する情報等を示すデータフレームをECU間で送受信することで、そのデータフレームを受信した各ECUがそのデータフレームに基づいて車両の状態として高速走行中であること等を判断できるようにしても良い。このため、例えば車両の状態示すデータフレームを送信するECU4100cが必ずしもギア4130に接続されている必要はない。受信したデータフレームに基づいて各ECUが同様に車両の状態を判断すれば、あるECUが、MAC付与が必要な車両の状態である場合にMACを付与してデータフレームを送信すると、受信側のECUはその車両の状態に基づいてMACの検証が必要であることを認識して検証を行い得る。 (3) In the above embodiment, the two states of running and parking are described as the state of the vehicle. However, various states such as stopped, high speed running, low speed running, backing, and engine stop are distinguished. Of the various states, the state of the vehicle may be set as a condition for assigning and verifying the MAC to the event driven data frame. For example, a vehicle as a condition for assigning and verifying a MAC so as to correspond to a timing when there is a relatively high need to detect that a fraudulent data frame is transmitted on a bus by a fraudulent ECU. It may be useful to determine the state of. Further, the state of the vehicle does not necessarily need to be determined based on the state of the gear 4130, and any one of the ECUs in the vehicle transmits a data frame including a sensor value acquired from any one of the devices and the other ECUs. May determine the state of the vehicle by receiving the data frame. For example, by transmitting and receiving a data frame indicating information about traveling speed between the ECUs, each ECU that receives the data frame can judge that the vehicle is traveling at high speed based on the data frame. You can Therefore, for example, the ECU 4100c that transmits the data frame indicating the vehicle state does not necessarily need to be connected to the gear 4130. If each ECU similarly determines the state of the vehicle on the basis of the received data frame, when one ECU transmits the data frame by adding the MAC in the state of the vehicle that needs the MAC addition, the receiving side of the receiving side The ECU may recognize that the MAC verification is necessary based on the state of the vehicle and perform the verification.

(4)上記実施の形態では、イベントドリブンデータフレームを識別するための特定識別子としてイベントドリブン識別フラグ、イベントカウンタ、MACを用いる例について、それぞれ説明したが、イベントドリブン識別フラグ、イベントカウンタ及びMACの2つ以上を組み合わせて用いることとしても良い。例えば、データフレームを受信したECUが、イベントドリブン識別フラグによってイベントドリブンデータフレームであることを判断してから、MACによってデータフレームの正当性を検証することとしても良い。なお、イベントドリブンデータフレームでないデータフレームについては特定識別子を付与しても構わないが、付与する必要はない。 (4) In the above embodiments, the example in which the event-driven identification flag, the event counter, and the MAC are used as the specific identifiers for identifying the event-driven data frame has been described. Two or more may be used in combination. For example, the ECU that receives the data frame may determine the validity of the data frame by the MAC after determining that it is the event driven data frame by the event driven identification flag. A specific identifier may be added to a data frame that is not an event driven data frame, but it need not be added.

(5)上記実施の形態では、各ECUはデータフレームを送信することとしたが、車載ネットワークシステムは、データフレームを受信するのみでデータフレームを送信しないECUを含んでいても良い。また逆に、車載ネットワークシステムは、データフレームを送信するのみで、データフレームを受信しないECUを含んでいても良い。また、各ECUは必ずしも周期的なデータフレームの送信をしなくても良く、車載ネットワークシステムは、イベントドリブンデータフレームのみを送信するECUを含んでいても良い。 (5) In the above embodiment, each ECU transmits a data frame, but the vehicle-mounted network system may include an ECU that only receives the data frame and does not transmit the data frame. Conversely, the vehicle-mounted network system may include an ECU that only transmits a data frame and does not receive the data frame. Further, each ECU does not necessarily have to periodically transmit the data frame, and the vehicle-mounted network system may include an ECU that transmits only the event driven data frame.

(6)上記実施の形態では、ECUがパワーウィンドウスイッチ或いはパワーウィンドウに接続されている構成を例示したが、ECUは、パワーウィンドウスイッチ及びパワーウィンドウに限らず、その他の機器に接続されても良く、その機器の制御、その機器からの状態の取得等を行っても良い。 (6) In the above embodiment, the ECU is illustrated as being connected to the power window switch or the power window, but the ECU is not limited to the power window switch and the power window, and may be connected to other devices. The control of the device, the acquisition of the status from the device, etc. may be performed.

(7)上記実施の形態では、ECUは不正なデータフレームを検知した場合に、データフレームを破棄することとしたが、必ずしも破棄する必要はなく、不正なデータフレームを検知した場合に例えば不正を検知したことを知らせるデータフレームを送信しても良く、また例えばその送信するデータフレームには不正なデータフレームに関する情報を含めても良い。また、不正なデータフレームを検知した場合に、例えば、ログとして記録すること、或いは、車両の動作モードをより安全性を高める状態等に変更すること等の処理を行っても良い。 (7) In the above embodiment, the ECU discards a data frame when it detects an invalid data frame. However, it is not always necessary to discard the data frame. A data frame notifying that the data has been detected may be transmitted, and, for example, the transmitted data frame may include information regarding an invalid data frame. Further, when an unauthorized data frame is detected, for example, a process of recording it as a log, or changing the operation mode of the vehicle to a state that enhances safety, or the like may be performed.

(8)上記実施の形態では、イベントドリブンデータフレームの送信毎、及び、受信毎に各ECUの該当の送信カウンタ或いは受信カウンタが1増加(インクリメント)されることとしたが、これらのカウンタの値に対する演算は、1増加には限定されない。これらのカウンタの値に対する演算は、データフレームの送信側と受信側で同様の計算ができ、送信カウンタと受信カウンタとが同期するような演算であれば良い。例えば、前回の演算結果を入力値として予め定められたアルゴリズムに基づいて特定された出力値を演算結果とする演算等である。即ち、ECUは、イベントドリブンデータフレームに前回送信の際に付与したカウンタ等の特定識別子(つまり前回の演算結果)に基づいて、所定の演算を行った結果として得られる値を、次に送信するイベントドリブンデータフレームに特定識別子として含ませることとしても良い。 (8) In the above embodiment, the corresponding transmission counter or reception counter of each ECU is incremented (incremented) by 1 each time an event-driven data frame is transmitted or received. The operation for is not limited to incrementing by one. The calculation on the values of these counters may be the same calculation on the transmission side and the reception side of the data frame and the transmission counter and the reception counter may be synchronized. For example, it is a calculation in which the output value specified based on a predetermined algorithm is used as the calculation result, using the calculation result of the previous time as the input value. That is, the ECU next transmits a value obtained as a result of performing a predetermined calculation based on a specific identifier such as a counter (that is, a calculation result of the previous time) given to the event driven data frame at the time of the previous transmission. It may be included as a specific identifier in the event driven data frame.

(9)上記実施の形態で示したデータフレーム生成ルール及び周期ルール情報は、一例であり、例示した値と異なる値にしても良い。また、データフレーム生成ルール或いは周期ルール情報は、各ECUの出荷時に設定されても良いし、車載ネットワークシステムが搭載される車体の出荷時に設定されても良い。また、データフレーム生成ルール或いは周期ルール情報は、外部との通信に基づいて設定されても、各種記録媒体等を用いて設定されても、ツール類等によって設定されても良い。 (9) The data frame generation rule and the cycle rule information shown in the above embodiment is an example, and the values may be different from the exemplified values. Further, the data frame generation rule or the cycle rule information may be set at the time of shipment of each ECU, or may be set at the time of shipment of the vehicle body on which the vehicle-mounted network system is mounted. Further, the data frame generation rule or the cycle rule information may be set based on communication with the outside, set using various recording media, or set by tools or the like.

(10)上記実施の形態では、各ECUが不正なデータフレームを検知する機能を有する例を示したが、その機能を1台以上の特定のECUのみが有することとしても良い。例えば車載ネットワークシステムが複数のバスそれぞれに接続されたECU群で構成されることとした場合において各バスを繋ぐゲートウェイとしてのECUにのみ不正なデータフレームを検知する機能を含ませても良い。また、例えば車載ネットワークシステムが、自動車のインパネ(インストルメントパネル)等に設けられて運転者に視認されるための情報を表示する液晶ディスプレイ(LCD:liquid crystal display)等の表示装置、運転者の操作を受け付ける入力手段等を備える一種のECUであるヘッドユニットを含む場合において、ヘッドユニットにのみ不正なデータフレームを検知する機能を含ませても良い。また、車載ネットワークシステムが、上述の不正なデータフレームを検知する機能を有し、バスを監視して不正なデータフレームを検知した場合にその旨を示すデータフレームの送信等を行う1台以上の特定のECUを含むこととしても良い。 (10) In the above embodiment, an example in which each ECU has a function of detecting an invalid data frame has been shown, but the function may be provided only by one or more specific ECUs. For example, when the in-vehicle network system is configured by a group of ECUs connected to each of a plurality of buses, only the ECU as a gateway connecting the buses may have a function of detecting an invalid data frame. In addition, for example, an in-vehicle network system is provided in an instrument panel (instrument panel) of an automobile and a display device such as a liquid crystal display (LCD) for displaying information to be visually recognized by a driver, In the case of including a head unit which is a kind of ECU including an input unit for receiving an operation, the head unit may have a function of detecting an unauthorized data frame. In addition, the in-vehicle network system has a function of detecting the above-mentioned illegal data frame, and when the bus is monitored and an illegal data frame is detected, one or more data frames indicating the fact are transmitted. A specific ECU may be included.

(11)上記実施の形態では、MAC鍵をメッセージID毎に1つ保持している例を示したが、ECU毎に1つ保持することとしても良い。また、全てのECUが同じMAC鍵を保持している必要はない。また、同一のバスに接続された各ECUは、共通のMAC鍵を保持していても良い。 (11) In the above embodiment, an example is shown in which one MAC key is held for each message ID, but one MAC key may be held for each ECU. Further, it is not necessary that all ECUs hold the same MAC key. Also, each ECU connected to the same bus may hold a common MAC key.

(12)上記実施の形態では、送信カウンタ或いは受信カウンタを送信或いは受信するデータフレームのメッセージID毎に1つ保持しているが、複数のメッセージIDに対して1つ保持することとしても良い。また、同一のバス上を流れる全てのデータフレームに対して、同じカウンタを使用しても良い。 (12) In the above embodiment, one transmission counter or one reception counter is held for each message ID of a data frame to be transmitted or received, but one may be held for a plurality of message IDs. Also, the same counter may be used for all data frames flowing on the same bus.

(13)上記の実施の形態における、不正データフレーム判断部はCANコントローラと呼ばれるハードウェア、または、CANコントローラと接続して動作するマイコン上で動作するファームウェアに実装しても良い。また、MAC鍵保持部、カウンタ保持部、受信データフレーム周期保持部、データフレーム受信履歴保持部は、CANコントローラと呼ばれるハードウェアのレジスタ、または、CANコントローラと接続して動作するマイコン上で動作するファームウェアに格納されていても良い。 (13) In the above embodiment, the illegal data frame determination unit may be mounted on hardware called a CAN controller or firmware operating on a microcomputer that operates by connecting to the CAN controller. Further, the MAC key holding unit, the counter holding unit, the received data frame cycle holding unit, and the data frame reception history holding unit operate on a hardware register called a CAN controller or on a microcomputer that operates by connecting with a CAN controller. It may be stored in the firmware.

(14)上記実施の形態では、CANプロトコルにおけるデータフレームを標準IDフォーマットで記述しているが、拡張IDフォーマットであっても良い。拡張IDフォーマットの場合には、標準IDフォーマットにおけるID位置のベースIDと、拡張IDとを合わせて29ビットでID(メッセージID)を表すので、この29ビットのIDを上述の実施の形態におけるID(メッセージID)と扱えば良い。 (14) In the above embodiment, the data frame in the CAN protocol is described in the standard ID format, but it may be in the extended ID format. In the case of the extended ID format, the base ID at the ID position in the standard ID format and the extended ID are combined to represent the ID (message ID) in 29 bits. Therefore, this 29-bit ID is the ID in the above-described embodiment. It may be treated as (message ID).

(15)上記実施の形態で示したCANプロトコルは、TTCAN(Time-Triggered CAN)、CANFD(CAN with Flexible Data Rate)等の派生的なプロトコルをも包含する広義の意味を有するものであっても良い。 (15) The CAN protocol described in the above embodiments has a broad meaning that includes derivative protocols such as TTCAN (Time-Triggered CAN) and CANFD (CAN with Flexible Data Rate). good.

(16)上記実施の形態における各ECUは、例えば、プロセッサ、メモリ等のデジタル回路、アナログ回路、通信回路等を含む装置であることとしたが、ハードディスク装置、ディスプレイ、キーボード、マウス等の他のハードウェア構成要素を含んでいても良い。また、メモリに記憶された制御プログラムがプロセッサにより実行されてソフトウェア的に機能を実現する代わりに、専用のハードウェア(デジタル回路等)によりその機能を実現することとしても良い。 (16) Each of the ECUs in the above embodiments is a device including, for example, a digital circuit such as a processor and a memory, an analog circuit, a communication circuit, etc., but other hard disk devices, displays, keyboards, mice, etc. It may include hardware components. Further, instead of the control program stored in the memory being executed by the processor and realizing the function by software, the function may be realized by dedicated hardware (digital circuit or the like).

(17)上記実施の形態における各装置(ECU等)を構成する構成要素の一部または全部は、1個のシステムLSI(Large Scale Integration:大規模集積回路)から構成されているとしても良い。システムLSIは、複数の構成部を1個のチップ上に集積して製造された超多機能LSIであり、具体的には、マイクロプロセッサ、ROM、RAM等を含んで構成されるコンピュータシステムである。前記RAMには、コンピュータプログラムが記録されている。前記マイクロプロセッサが、前記コンピュータプログラムに従って動作することにより、システムLSIは、その機能を達成する。また、上記各装置を構成する構成要素の各部は、個別に1チップ化されていても良いし、一部又はすべてを含むように1チップ化されても良い。また、ここでは、システムLSIとしたが、集積度の違いにより、IC、LSI、スーパーLSI、ウルトラLSIと呼称されることもある。また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセッサで実現しても良い。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュ
ラブル・プロセッサを利用しても良い。さらには、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行っても良い。バイオ技術の適用等が可能性としてあり得る。
(17) Part or all of the constituent elements of each device (ECU or the like) in the above-described embodiments may be configured by one system LSI (Large Scale Integration). The system LSI is an ultra-multifunctional LSI manufactured by integrating a plurality of constituent parts on one chip, and specifically, is a computer system including a microprocessor, ROM, RAM and the like. .. A computer program is recorded in the RAM. The system LSI achieves its function by the microprocessor operating according to the computer program. Further, each part of the constituent elements of each of the above devices may be individually made into one chip, or may be made into one chip so as to include a part or all. Although the system LSI is used here, it may be called IC, LSI, super LSI, or ultra LSI depending on the degree of integration. The method of circuit integration is not limited to LSI, and it may be realized by a dedicated circuit or a general-purpose processor. A field programmable gate array (FPGA) that can be programmed after the LSI is manufactured, or a reconfigurable processor that can reconfigure the connection and setting of circuit cells inside the LSI may be used. Further, if integrated circuit technology comes out to replace LSI's as a result of the advancement of semiconductor technology or a derivative other technology, it is naturally also possible to carry out function block integration using this technology. The application of biotechnology is possible.

(18)上記各装置を構成する構成要素の一部または全部は、各装置に脱着可能なICカードまたは単体のモジュールから構成されているとしても良い。前記ICカードまたは前記モジュールは、マイクロプロセッサ、ROM、RAM等から構成されるコンピュータシステムである。前記ICカードまたは前記モジュールは、上記の超多機能LSIを含むとしても良い。マイクロプロセッサが、コンピュータプログラムに従って動作することにより、前記ICカードまたは前記モジュールは、その機能を達成する。このICカードまたはこのモジュールは、耐タンパ性を有するとしても良い。 (18) Part or all of the constituent elements of each of the above devices may be configured by an IC card that can be attached to or detached from each device or a single module. The IC card or the module is a computer system including a microprocessor, ROM, RAM and the like. The IC card or the module may include the above super-multifunctional LSI. The IC card or the module achieves its function by the microprocessor operating according to the computer program. This IC card or this module may be tamper resistant.

(19)本開示の一態様としては、上記に示す不正検知方法であるとしても良い。また、この方法をコンピュータにより実現するコンピュータプログラムであるとしても良いし、前記コンピュータプログラムからなるデジタル信号であるとしても良い。また、本開示の一態様としては、前記コンピュータプログラムまたは前記デジタル信号をコンピュータで読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD−ROM、MO、DVD、DVD−ROM、DVD−RAM、BD(Blu-ray(登録商標)Disc)、半導体メモリ等に記録したものとしても良い。また、これらの記録媒体に記録されている前記デジタル信号であるとしても良い。また、本開示の一態様としては、前記コンピュータプログラムまたは前記デジタル信号を、電気通信回線、無線または有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしても良い。また、本開示の一態様としては、マイクロプロセッサとメモリを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記録しており、前記マイクロプロセッサは、前記コンピュータプログラムに従って動作するとしても良い。また、前記プログラムまたは前記デジタル信号を前記記録媒体に記録して移送することにより、または前記プログラムまたは前記デジタル信号を前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしても良い。 (19) As one aspect of the present disclosure, the fraud detection method described above may be used. Further, the method may be a computer program that realizes this method by a computer, or may be a digital signal including the computer program. In addition, as one aspect of the present disclosure, a computer-readable recording medium that can read the computer program or the digital signal, for example, a flexible disk, a hard disk, a CD-ROM, an MO, a DVD, a DVD-ROM, a DVD-RAM, or a BD. (Blu-ray (registered trademark) Disc), semiconductor memory, or the like may be used. Further, it may be the digital signal recorded on these recording media. As one aspect of the present disclosure, the computer program or the digital signal may be transmitted via an electric communication line, a wireless or wired communication line, a network typified by the Internet, a data broadcast, or the like. In addition, as one aspect of the present disclosure, a computer system including a microprocessor and a memory, wherein the memory records the computer program, and the microprocessor may operate according to the computer program. .. In addition, the program or the digital signal is recorded in the recording medium and transferred, or the program or the digital signal is transferred via the network or the like, thereby being implemented by another independent computer system. Also good.

(20)上記実施の形態及び上記変形例で示した各構成要素及び機能を任意に組み合わせることで実現される形態も本開示の範囲に含まれる。 (20) A form realized by arbitrarily combining the respective constituent elements and functions shown in the above-described embodiment and the above-described modified examples is also included in the scope of the present disclosure.

本開示は、車載ネットワークシステムにおいて不正なECUによりバス上に不正なメッセージの送信が行われたことを効率的かつ適切に検知するために利用可能である。 The present disclosure can be used to efficiently and appropriately detect that an unauthorized ECU has transmitted an unauthorized message on a bus in an in-vehicle network system.

10,11,12,13 車載ネットワークシステム
100a,100b,2100a,2100b,3100a,3100b,4100a,4100b,4100c 電子制御ユニット(ECU)
101 データフレーム送受信部
102,2102,3102,4102 データフレーム生成部
103,2103,3103,4103 データフレーム生成ルール保持部
104,2104,3104,4104 不正データフレーム判断部
105,3105,4105 受信データフレーム周期保持部
106,2106 データフレーム受信履歴保持部
107 データフレーム処理部
108 タイマ
109 センサ値取得部
110 パワーウィンドウスイッチ
120 パワーウィンドウ
200 バス
3110 MAC生成部
3111 MAC鍵保持部
3112 カウンタ保持部
4113 車状態保持部
4130 ギア
10, 11, 12, 13 In-vehicle network system 100a, 100b, 2100a, 2100b, 3100a, 3100b, 4100a, 4100b, 4100c Electronic control unit (ECU)
101 data frame transmission/reception unit 102, 2102, 3102, 4102 data frame generation unit 103, 2103, 3103, 4103 data frame generation rule holding unit 104, 2104, 3104, 4104 illegal data frame determination unit 105, 3105, 4105 received data frame cycle Holding unit 106, 2106 Data frame reception history holding unit 107 Data frame processing unit 108 Timer 109 Sensor value acquisition unit 110 Power window switch 120 Power window 200 Bus 3110 MAC generation unit 3111 MAC key holding unit 3112 Counter holding unit 4113 Car state holding unit 4130 gear

Claims (9)

車載ネットワークを介して通信する複数の電子制御ユニットを備える車載ネットワークシステムにおいて用いられる不正検知方法であって、
前記車載ネットワーク上で送信されたデータフレームを受信する受信ステップと、
前記受信ステップでイベントドリブンのデータフレームが受信され、かつ、前記車載ネットワークシステムを搭載する車両の走行状態が予め設定された状態である場合に限って、当該データフレーム中の予め設定された位置のデータ値を検証する検証ステップとを含み、
前記検証ステップで、前記予め設定された位置のデータ値についての前記検証が成功したときには、当該データフレームを正当なデータフレームとして検知し、
前記検証ステップで、前記予め設定された位置のデータ値についての前記検証が失敗したときには、当該データフレームを不正なデータフレームとして検知し、
前記予め設定された位置のデータ値は、前記データフレームのデータフィールド内の所定位置に配置されるカウンタ値であり、
前記検証ステップでは、前記イベントドリブンの前記データフレーム中の前記所定位置のカウンタ値が、前記受信ステップで前記イベントドリブンのデータフレームが受信された回数を反映したカウンタ値と同一であるか否かを判別することにより前記検証を行う
不正検知方法。
A fraud detection method used in an in-vehicle network system comprising a plurality of electronic control units communicating via an in-vehicle network,
A receiving step of receiving a data frame transmitted on the in-vehicle network,
Only when the event-driven data frame is received in the receiving step and the traveling state of the vehicle equipped with the in-vehicle network system is in a preset state, a preset position in the data frame is set. And a validation step to validate the data value,
In the verification step, when the verification of the data value at the preset position is successful, the data frame is detected as a valid data frame,
In the verification step, when the verification of the data value at the preset position fails, the data frame is detected as an invalid data frame,
The data value of the preset position is a counter value arranged at a predetermined position in the data field of the data frame,
In the verification step, it is determined whether the counter value at the predetermined position in the event-driven data frame is the same as the counter value reflecting the number of times the event-driven data frame is received in the receiving step. A fraud detection method in which the above verification is performed by determining.
前記検証ステップでは、
前記受信したデータフレームが、イベントドリブンのデータフレームか否かを判定し、
前記受信したデータフレームが前記イベントドリブンのデータフレームであると判定された場合に、前記車両の走行状態が前記予め設定された状態であるか否かを判定し、
前記車両の走行状態が前記予め設定された状態であると判定された場合に、前記予め設定された位置のデータ値についての前記検証を行なう
請求項1記載の不正検知方法。
In the verification step,
The received data frame is determined whether or not the event-driven data frame,
When it is determined that the received data frame is the event-driven data frame, it is determined whether the traveling state of the vehicle is the preset state,
The fraud detection method according to claim 1, wherein when the traveling state of the vehicle is determined to be the preset state, the verification is performed on the data value of the preset position.
前記検証ステップで、前記受信したデータフレームが前記イベントドリブンのデータフレームであると判定された場合に前記車両の走行状態が前記予め設定された状態でない場合は、当該データフレームを正当なデータフレームとして検知する
請求項2記載の不正検知方法。
In the verification step, when the received data frame is determined to be the event-driven data frame and the traveling state of the vehicle is not the preset state, the data frame is regarded as a valid data frame. The fraud detection method according to claim 2, wherein the fraud detection is performed.
前記検証ステップで、前記受信したデータフレームが前記イベントドリブンのデータフレームであると判定された場合に前記車両の走行状態が前記予め設定された状態でない場合は、当該データフレームを不正なデータフレームとして検知する
請求項2記載の不正検知方法。
When the received data frame is determined to be the event-driven data frame in the verification step and the traveling state of the vehicle is not the preset state, the data frame is regarded as an invalid data frame. The fraud detection method according to claim 2, wherein the fraud detection is performed.
前記複数の電子制御ユニットは、CAN(Controller Area Network)プロトコルに従って通信を行う
請求項1記載の不正検知方法。
The fraud detection method according to claim 1, wherein the plurality of electronic control units perform communication according to a CAN (Controller Area Network) protocol.
車載ネットワークを介して通信する複数の電子制御ユニットを備える車載ネットワークシステムにおいて不正検知の対象となるデータフレームを送信する不正検知方法であって、
イベントドリブンのデータフレームを送信する場合で、
前記車載ネットワークシステムを搭載する車両の走行状態が予め設定された状態である場合に、当該データフレーム中の予め設定された位置にデータ値を付与し、前記車載ネットワークシステムを搭載する車両の走行状態が予め設定された状態でない場合には、当該データフレーム中の予め設定された位置にデータ値を付与しない付与ステップと、
前記付与ステップで付与された予め設定された位置のデータ値を含み前記イベントドリブンのデータフレームを前記車載ネットワークに送信する送信ステップとを含み、
前記予め設定された位置のデータ値は、前記データフレームのデータフィールド内の所定位置に配置されるカウンタ値である
不正検知方法。
A fraud detection method for transmitting a data frame targeted for fraud detection in an in-vehicle network system comprising a plurality of electronic control units that communicate via an in-vehicle network,
When sending an event driven data frame,
When the traveling state of the vehicle equipped with the vehicle-mounted network system is in a preset state, a data value is given to a preset position in the data frame to drive the vehicle equipped with the vehicle-mounted network system. If is not a preset state, an assigning step of not assigning a data value to a preset position in the data frame,
And a transmitting step of transmitting the event-driven data frame including the data value of the preset position given in the giving step to the vehicle-mounted network,
The fraud detection method, wherein the data value at the preset position is a counter value arranged at a predetermined position in the data field of the data frame.
車載ネットワークを介して通信する複数の電子制御ユニットを備える車載ネットワークシステムであって、
イベントドリブンのデータフレームを送信する場合で、
前記車載ネットワークシステムを搭載する車両の走行状態が予め設定された状態である場合に、当該データフレーム中の予め設定された位置にデータ値を付与し、前記車載ネットワークシステムを搭載する車両の走行状態が予め設定された状態でない場合には、当該データフレーム中の予め設定された位置にデータ値を付与しない付与部と、前記付与部で付与された前記データ値を含み前記イベントドリブンのデータフレームを前記車載ネットワークに送信する送信部とを有する第1電子制御ユニットと、
前記車載ネットワーク上で送信されたデータフレームを受信する受信部と、前記受信部により前記イベントドリブンのデータフレームが受信され、かつ、前記車載ネットワークシステムを搭載する車両の走行状態が予め設定された状態である場合に限って、当該データフレーム中の予め設定された位置のデータ値を検証する検証部とを有し、前記検証部は、前記予め設定された位置のデータ値についての前記検証が成功したときには、当該データフレームを正当なデータフレームとして検知し、前記予め設定された位置のデータ値についての前記検証が失敗したときには、当該データフレームを不正なデータフレームとして検知する第2電子制御ユニットとを備え、
前記予め設定された位置のデータ値は、前記データフレームのデータフィールド内の所定位置に配置されるカウンタ値であり、
前記第2電子制御ユニットは、前記イベントドリブンの前記データフレーム中の前記所定位置のカウンタ値が、前記受信ステップで前記イベントドリブンのデータフレームが受信された回数を反映したカウンタ値と同一であるか否かを判別することにより前記検証を行う
車載ネットワークシステム。
An in-vehicle network system comprising a plurality of electronic control units that communicate via an in-vehicle network,
When sending an event driven data frame,
When the traveling state of the vehicle equipped with the vehicle-mounted network system is in a preset state, a data value is given to a preset position in the data frame to drive the vehicle equipped with the vehicle-mounted network system. If is not a preset state, the event-driven data frame including the assigning unit that does not assign a data value to a preset position in the data frame, and the event-driven data frame that includes the data value assigned by the assigning unit. A first electronic control unit having a transmission unit for transmitting to the vehicle-mounted network;
A receiving unit that receives a data frame transmitted on the in-vehicle network, a state in which the event-driven data frame is received by the receiving unit, and a traveling state of a vehicle equipped with the in-vehicle network system is preset. And a verification unit that verifies a data value at a preset position in the data frame, and the verification unit succeeds in verifying the data value at the preset position. And a second electronic control unit that detects the data frame as a valid data frame and detects the data frame as an invalid data frame when the verification of the data value at the preset position fails. Equipped with
The data value of the preset position is a counter value arranged at a predetermined position in the data field of the data frame,
The second electronic control unit, the counter value of the predetermined position in the event-driven data frame is the same as the counter value that reflects the number of times the event-driven data frame is received in the receiving step. An in-vehicle network system that performs the verification by determining whether or not it is.
車載ネットワークを介して通信する電子制御ユニットであって、
イベントドリブンのデータフレームを送信する場合で、
前記電子制御ユニットを含む車載ネットワークシステムを搭載する車両の走行状態が予め設定された状態である場合に、当該データフレーム中の予め設定された位置にデータ値を付与し、前記車載ネットワークシステムを搭載する車両の走行状態が予め設定された状態でない場合には、当該データフレーム中の予め設定された位置にデータ値を付与しない付与部と、
前記付与部で付与された前記予め設定された位置のデータ値を含み前記イベントドリブンのデータフレームを前記車載ネットワークに送信する送信部とを備え、
前記予め設定された位置のデータ値は、前記データフレームのデータフィールド内の所定位置に配置されるカウンタ値である
電子制御ユニット。
An electronic control unit that communicates via an in-vehicle network,
When sending an event driven data frame,
When the running state of a vehicle equipped with an in-vehicle network system including the electronic control unit is in a preset state, a data value is given to a preset position in the data frame to mount the in-vehicle network system. When the traveling state of the vehicle to be set is not a preset state, an assigning unit that does not assign a data value to a preset position in the data frame,
A transmitting unit that transmits the event-driven data frame including the data value of the preset position assigned by the assigning unit to the in-vehicle network,
The electronic control unit, wherein the data value at the preset position is a counter value arranged at a predetermined position in the data field of the data frame.
車載ネットワークを介して通信する電子制御ユニットであって、
前記車載ネットワーク上で送信されたデータフレームを受信する受信部と、
前記受信部によりイベントドリブンのデータフレームが受信され、かつ、前記電子制御ユニットを含む車載ネットワークシステムを搭載する車両の走行状態が予め設定された状態である場合に限って、当該データフレーム中の予め設定された位置のデータ値を検証する検証部とを備え、前記検証部は、前記予め設定された位置のデータ値についての前記検証が成功したときには、当該データフレームを正当なデータフレームとして検知し、前記予め設定された位置のデータ値についての前記検証が失敗したときには、当該データフレームを不正なデータフレームとして検知し、
前記予め設定された位置のデータ値は、前記データフレームのデータフィールド内の所定位置に配置されるカウンタ値であり、
前記検証部は、前記イベントドリブンの前記データフレーム中の前記所定位置のカウンタ値が、前記受信ステップで前記イベントドリブンのデータフレームが受信された回数を反映したカウンタ値と同一であるか否かを判別することにより前記検証を行う
電子制御ユニット。
An electronic control unit that communicates via an in-vehicle network,
A receiver for receiving the data frame transmitted on the vehicle-mounted network,
Only when the event-driven data frame is received by the receiving unit and the traveling state of the vehicle equipped with the in-vehicle network system including the electronic control unit is in a preset state, And a verification unit for verifying the data value at the set position, wherein the verification unit detects the data frame as a valid data frame when the verification for the data value at the preset position is successful. When the verification of the data value at the preset position fails, the data frame is detected as an invalid data frame,
The data value of the preset position is a counter value arranged at a predetermined position in the data field of the data frame,
The verification unit determines whether the counter value at the predetermined position in the event-driven data frame is the same as the counter value that reflects the number of times the event-driven data frame is received in the receiving step. An electronic control unit that performs the verification by determining.
JP2020032926A 2014-05-08 2020-02-28 In-vehicle network system, electronic control unit and fraud detection method Active JP6967097B2 (en)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201461990360P 2014-05-08 2014-05-08
US61/990,360 2014-05-08
JP2015032206 2015-02-20
JP2015032206 2015-02-20
JP2018179730A JP6670354B2 (en) 2014-05-08 2018-09-26 In-vehicle network system, electronic control unit and fraud detection method

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2018179730A Division JP6670354B2 (en) 2014-05-08 2018-09-26 In-vehicle network system, electronic control unit and fraud detection method

Publications (2)

Publication Number Publication Date
JP2020096368A true JP2020096368A (en) 2020-06-18
JP6967097B2 JP6967097B2 (en) 2021-11-17

Family

ID=71085257

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020032926A Active JP6967097B2 (en) 2014-05-08 2020-02-28 In-vehicle network system, electronic control unit and fraud detection method

Country Status (1)

Country Link
JP (1) JP6967097B2 (en)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003248513A (en) * 2002-02-26 2003-09-05 Denso Corp Electronic control system for vehicle and device for inspecting system operation
JP2003324459A (en) * 2002-04-26 2003-11-14 Sumitomo Electric Ind Ltd Communication system
US20120124374A1 (en) * 2010-11-12 2012-05-17 Nxp B.V. Secured acknowledge protocol for automotive remote keyless entry systems and for networked sensor devices
JP2012178035A (en) * 2011-02-25 2012-09-13 Toyota Motor Corp Data rewriting support system and data rewriting support method for vehicle control device
JP2013098719A (en) * 2011-10-31 2013-05-20 Toyota Infotechnology Center Co Ltd Message authentication method for communication system, and communication system
JP2013101426A (en) * 2011-11-07 2013-05-23 Toyota Motor Corp On-vehicle communication device
WO2015170451A1 (en) * 2014-05-08 2015-11-12 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ In-vehicle network system, electronic control unit, and irregularity detection method

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003248513A (en) * 2002-02-26 2003-09-05 Denso Corp Electronic control system for vehicle and device for inspecting system operation
JP2003324459A (en) * 2002-04-26 2003-11-14 Sumitomo Electric Ind Ltd Communication system
US20120124374A1 (en) * 2010-11-12 2012-05-17 Nxp B.V. Secured acknowledge protocol for automotive remote keyless entry systems and for networked sensor devices
JP2012178035A (en) * 2011-02-25 2012-09-13 Toyota Motor Corp Data rewriting support system and data rewriting support method for vehicle control device
JP2013098719A (en) * 2011-10-31 2013-05-20 Toyota Infotechnology Center Co Ltd Message authentication method for communication system, and communication system
JP2013101426A (en) * 2011-11-07 2013-05-23 Toyota Motor Corp On-vehicle communication device
WO2015170451A1 (en) * 2014-05-08 2015-11-12 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ In-vehicle network system, electronic control unit, and irregularity detection method

Also Published As

Publication number Publication date
JP6967097B2 (en) 2021-11-17

Similar Documents

Publication Publication Date Title
JP6670354B2 (en) In-vehicle network system, electronic control unit and fraud detection method
US11811798B2 (en) Method for sensing fraudulent frames transmitted to in-vehicle network
JP6487406B2 (en) Network communication system
US20150172306A1 (en) Method and apparatus for enhancing security in an in-vehicle communication network
WO2015159520A1 (en) Vehicle-mounted network system, abnormality detection electronic control unit and abnormality detection method
KR101972457B1 (en) Method and System for detecting hacking attack based on the CAN protocol
JP6651662B2 (en) Fraud detection electronic control unit and fraud detection method
JP6967097B2 (en) In-vehicle network system, electronic control unit and fraud detection method
JP2017085197A (en) Communication system, transmitter and communication method
JP2014027509A (en) Communication controller
JP2018011155A (en) CAN communication system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200228

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210226

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210309

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210506

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20211012

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20211022

R150 Certificate of patent or registration of utility model

Ref document number: 6967097

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150