[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP6875576B2 - Fraud handling method - Google Patents

Fraud handling method Download PDF

Info

Publication number
JP6875576B2
JP6875576B2 JP2020047728A JP2020047728A JP6875576B2 JP 6875576 B2 JP6875576 B2 JP 6875576B2 JP 2020047728 A JP2020047728 A JP 2020047728A JP 2020047728 A JP2020047728 A JP 2020047728A JP 6875576 B2 JP6875576 B2 JP 6875576B2
Authority
JP
Japan
Prior art keywords
frame
ecu
mac
message
unit
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.)
Active
Application number
JP2020047728A
Other languages
Japanese (ja)
Other versions
JP2020129801A (en
Inventor
芳賀 智之
智之 芳賀
松島 秀樹
秀樹 松島
前田 学
学 前田
勇二 海上
勇二 海上
良浩 氏家
良浩 氏家
剛 岸川
剛 岸川
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
Application filed by Panasonic Intellectual Property Corp of America filed Critical Panasonic Intellectual Property Corp of America
Publication of JP2020129801A publication Critical patent/JP2020129801A/en
Priority to JP2021072293A priority Critical patent/JP7199467B2/en
Application granted granted Critical
Publication of JP6875576B2 publication Critical patent/JP6875576B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Small-Scale Networks (AREA)

Description

本発明は、電子制御ユニットが通信を行う車載ネットワークにおいて送信された不正なフレームを検知して対処する技術に関する。 The present invention relates to a technique for detecting and dealing with 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 a system in an automobile. The 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. The transmitting node that transmits the frame transmits a value of "1" called recessive and a value of "0" called dominant by applying a voltage to the two buses and generating a potential difference between the buses. When a plurality of transmitting nodes transmit the recessive and the dominant at exactly the same timing, the dominant is given priority and transmitted. When the format of the received frame is abnormal, the receiving node sends a frame called an error frame. The error frame is to notify the transmitting node and other receiving nodes of the abnormality of the frame by transmitting the dominant 6 bits continuously.

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

ところで、車載ネットワークにおいて不正なノードがバスに接続され、不正なノードが不正にフレームを送信することで、車体を不正にコントロールしてしまう可能性がある。このような不正なフレームの送信によるコントロールを防止するために、一般にCANにおけるデータフィールドにメッセージ認証コード(MAC:Message Authentication Code)を付加して送信する技術が知られている(「特許文献1」参照)。 By the way, in the in-vehicle network, an illegal node is connected to the bus, and the illegal node illegally transmits a frame, so that there is a possibility that the vehicle body is illegally controlled. In order to prevent control due to transmission of such an illegal frame, a technique for transmitting by adding a message authentication code (MAC) to a data field in CAN is generally known ("Patent Document 1"). reference).

特開2013−98719号公報Japanese Unexamined Patent Publication No. 2013-98719

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), [Search on November 14, 2014], Internet (URL: http: //www.can-cia.org/fileadmin/cia/ specifications / CAN20A.pdf) RFC2104 HMAC: Keyed−Hashing for Message AuthenticationRFC2104 HMAC: Keyed-Hashing for Message Authentication

しかしながら、CANにおけるデータフィールドに格納できるMACのデータ長は十分に長いとは言えないため、バスに接続された不正なノードによるMACに対する総当り攻撃等が懸念される。 However, since the data length of the MAC that can be stored in the data field in the CAN is not long enough, there is a concern about a brute force attack on the MAC by an unauthorized node connected to the bus.

そこで、本発明は、MACに対する総当たり攻撃への耐性を高め、不正なフレームの送信に対して適切に対処するための車載ネットワークシステムを提供する。また、本発明は、その車載ネットワークシステムで不正なフレームの送信を検知するために用いられる不正検知電子制御ユニット(不正検知ECU)、及び、不正なフレームの送信に対して適切に対処するための不正対処方法を提供する。 Therefore, the present invention provides an in-vehicle network system for increasing resistance to a brute force attack against a MAC and appropriately dealing with transmission of an illegal frame. Further, the present invention is to appropriately deal with the fraud detection electronic control unit (fraud detection ECU) used for detecting the transmission of fraudulent frames in the in-vehicle network system, and the transmission of fraudulent frames. Provide fraud countermeasures.

上記課題を解決するために本発明の一態様に係る不正対処方法は、車載ネットワークにおいてメッセージ認証コード(MAC:Message Authentication Code)が付加されたデータフレームの授受を行う複数の電子制御ユニットを備える車載ネットワークシステムにおいて、前記複数の電子制御ユニットのうちの1つの電子制御ユニットにおいて用いられる不正対処方法であって、前記車載ネットワークに送信されたデータフレームを受信し、メッセージ認証コードが付加されたデータフレームが送信される回数をカウントするカウンタの値及びMAC鍵を利用して第1のメッセージ認証コードを生成し、前記受信されたデータフレームに前記生成した第1のメッセージ認証コードが付加されていることを検証し、所定IDを含むデータフレームについて前記検証が失敗した場合に、エラー発生回数をインクリメントし、前記エラー発生回数が所定閾値を超えた場合に、当該所定IDと予め対応付けられている処理を実行する不正対処方法である。 In order to solve the above problems, the fraud countermeasure method according to one aspect of the present invention includes an in-vehicle device including a plurality of electronic control units for sending and receiving data frames to which a message authentication code (MAC) is added in the in-vehicle network. In a network system, this is a fraud countermeasure method used in one of the plurality of electronic control units, which is a data frame in which a data frame transmitted to the in-vehicle network is received and a message authentication code is added. The first message authentication code is generated by using the value of the counter that counts the number of times the is transmitted and the MAC key, and the generated first message authentication code is added to the received data frame. When the verification fails for the data frame including the predetermined ID, the error occurrence count is incremented, and when the error occurrence count exceeds the predetermined threshold, the process associated with the predetermined ID in advance is performed. It is a fraudulent countermeasure method to execute.

本発明によれば、MACに対する総当たり攻撃への耐性を高め、不正なフレームの送信に対して適切に対処することができる。 According to the present invention, it is possible to increase the resistance to a brute force attack against a MAC and appropriately deal with the transmission of an illegal frame.

実施の形態1に係る車載ネットワークシステムの全体構成を示す図である。It is a figure which shows the whole structure of the vehicle-mounted network system which concerns on Embodiment 1. FIG. CANプロトコルで規定されるデータフレームのフォーマットを示す図である。It is a figure which shows the format of the data frame specified by the CAN protocol. CANプロトコルで規定されるエラーフレームのフォーマットを示す図である。It is a figure which shows the format of the error frame specified by the CAN protocol. ヘッドユニットの構成図である。It is a block diagram of a head unit. 受信IDリストの一例を示した図である。It is a figure which showed an example of the reception ID list. ゲートウェイの構成図である。It is a block diagram of a gateway. 転送ルールの一例を示した図である。It is a figure which showed an example of the forwarding rule. 実施の形態1に係るECUの構成図である。It is a block diagram of the ECU which concerns on Embodiment 1. FIG. 受信IDリストの一例を示した図である。It is a figure which showed an example of the reception ID list. エンジンに接続されたECUから送信されるフレームにおけるID及びデータフィールドの一例を示す図である。It is a figure which shows an example of the ID and the data field in the frame transmitted from the ECU connected to an engine. ブレーキに接続されたECUから送信されるフレームにおけるID及びデータフィールドの一例を示す図である。It is a figure which shows an example of the ID and data fields in the frame transmitted from the ECU connected to a brake. ドア開閉センサに接続されたECUから送信されるフレームにおけるID及びデータフィールドの一例を示す図である。It is a figure which shows an example of the ID and the data field in the frame transmitted from the ECU connected to the door open / close sensor. 窓開閉センサに接続されたECUから送信されるフレームにおけるID及びデータフィールドの一例を示す図である。It is a figure which shows an example of the ID and the data field in the frame transmitted from the ECU connected to the window open / close sensor. 実施の形態1に係る不正検知ECUの構成図である。It is a block diagram of the fraud detection ECU which concerns on Embodiment 1. FIG. 不正検知ECUに保持される正規IDリストの一例を示した図である。It is a figure which showed an example of the regular ID list held in the fraud detection ECU. 不正検知ECUに保持される正規IDリストの一例を示した図である。It is a figure which showed an example of the regular ID list held in the fraud detection ECU. メッセージID毎の不正検知カウンタの状態の一例を示す図である。It is a figure which shows an example of the state of the fraud detection counter for each message ID. 実施の形態1における不正なフレームの検知及び実行阻止に係る動作例を示すシーケンス図である。It is a sequence diagram which shows the operation example which concerns on the detection and execution prevention of an illegal frame in Embodiment 1. FIG. 実施の形態2に係る車載ネットワークシステムの全体構成を示す図である。It is a figure which shows the whole structure of the vehicle-mounted network system which concerns on Embodiment 2. 実施の形態2に係る不正検知ECUの構成図である。It is a block diagram of the fraud detection ECU which concerns on Embodiment 2. FIG. 不正検知ECUに保持されるデータ範囲リストの一例を示した図である。It is a figure which showed an example of the data range list held in the fraud detection ECU. 実施の形態2における不正なフレームの検知及び実行阻止に係る動作例を示すシーケンス図である(図23に続く)。It is a sequence diagram which shows the operation example which concerns on the detection and execution prevention of an illegal frame in Embodiment 2 (following FIG. 23). 実施の形態2における不正なフレームの検知及び実行阻止に係る動作例を示すシーケンス図である(図22から続く)。It is a sequence diagram which shows the operation example which concerns on the detection and execution prevention of an illegal frame in Embodiment 2 (continuation from FIG. 22). 実施の形態3に係る車載ネットワークシステムの全体構成を示す図である。It is a figure which shows the whole structure of the vehicle-mounted network system which concerns on Embodiment 3. 実施の形態3に係るECUの構成図である。It is a block diagram of the ECU which concerns on Embodiment 3. FIG. エンジンに接続されたECUから送信されるデータフレームにおけるID及びデータフィールドの一例を示す図である。It is a figure which shows an example of the ID and the data field in the data frame transmitted from the ECU connected to an engine. ブレーキに接続されたECUから送信されるデータフレームにおけるID及びデータフィールドの一例を示す図である。It is a figure which shows an example of the ID and the data field in the data frame transmitted from the ECU connected to a brake. ドア開閉センサに接続されたECUから送信されるデータフレームにおけるID及びデータフィールドの一例を示す図である。It is a figure which shows an example of the ID and the data field in the data frame transmitted from the ECU connected to the door open / close sensor. 窓開閉センサに接続されたECUから送信されるデータフレームにおけるID及びデータフィールドの一例を示す図である。It is a figure which shows an example of the ID and the data field in the data frame transmitted from the ECU connected to the window open / close sensor. 実施の形態3に係る不正検知ECUの構成図である。It is a block diagram of the fraud detection ECU which concerns on Embodiment 3. FIG. 実施の形態3に係るカウンタ保持部に保持されているメッセージID毎のカウンタ値の一例を示す図である。It is a figure which shows an example of the counter value for each message ID held in the counter holding part which concerns on Embodiment 3. FIG. 実施の形態3における不正なフレームの検知及び実行阻止に係る動作例を示すシーケンス図である(図33に続く)。It is a sequence diagram which shows the operation example which concerns on the detection and execution prevention of an illegal frame in Embodiment 3 (following FIG. 33). 実施の形態3における不正なフレームの検知及び実行阻止に係る動作例を示すシーケンス図である(図32から続く)。It is a sequence diagram which shows the operation example which concerns on the detection and execution prevention of an illegal frame in Embodiment 3 (continuation from FIG. 32). 実施の形態4に係る車載ネットワークシステムの全体構成を示す図である。It is a figure which shows the whole structure of the vehicle-mounted network system which concerns on Embodiment 4. 実施の形態4に係るECUの構成図である。It is a block diagram of the ECU which concerns on Embodiment 4. FIG. 実施の形態4に係る不正検知ECUの構成図である。It is a block diagram of the fraud detection ECU which concerns on Embodiment 4. FIG. 実施の形態4に係る受信IDリストの一例を示す図である。It is a figure which shows an example of the reception ID list which concerns on Embodiment 4. FIG. 実施の形態4に係る更新フレームの一例を示す図である。It is a figure which shows an example of the update frame which concerns on Embodiment 4. FIG. 実施の形態4に係る鍵テーブルの一例を示す図である。It is a figure which shows an example of the key table which concerns on Embodiment 4. FIG. 実施の形態4に係るカウンタテーブルの一例を示す図である。It is a figure which shows an example of the counter table which concerns on Embodiment 4. FIG. 実施の形態4に係るセキュリティ条件テーブルの一例を示す図である。It is a figure which shows an example of the security condition table which concerns on Embodiment 4. FIG. 実施の形態4に係る不正IDリストの一例を示す図である。It is a figure which shows an example of the fraudulent ID list which concerns on Embodiment 4. FIG. 実施の形態4における不正なフレームの検知、MAC鍵の更新及びカウンタ値のリセット等の動作例を示すシーケンス図である(図44に続く)。It is a sequence diagram which shows the operation example such as the detection of an illegal frame, the update of a MAC key, and the reset of a counter value in Embodiment 4 (following FIG. 44). 実施の形態4における不正なフレームの検知、MAC鍵の更新及びカウンタ値のリセット等の動作例を示すシーケンス図である(図45に続く)。FIG. 5 is a sequence diagram showing operation examples such as detection of an illegal frame, update of a MAC key, and reset of a counter value in the fourth embodiment (following FIG. 45). 実施の形態4における不正なフレームの検知、MAC鍵の更新及びカウンタ値のリセット等の動作例を示すシーケンス図である(図44から続く)。It is a sequence diagram which shows the operation example such as the detection of an illegal frame, the update of a MAC key, and the reset of a counter value in Embodiment 4 (continuation from FIG. 44). 実施の形態4におけるセキュリティアクション処理を示すフローチャートである。It is a flowchart which shows the security action processing in Embodiment 4.

本発明の一態様に係る不正対処方法は、CAN(Controller Area Network)プロトコルに従ってバスを介してメッセージ認証コード(MAC:Message Authentication Code)が付加されたデータフレームの授受を行う複数の電子制御ユニットを備える車載ネットワークシステムにおいて用いられる不正対処方法であって、前記バス上で送信されたデータフレームを受信する受信ステップと、データを利用してメッセージ認証コードを生成して前記受信ステップで受信されたデータフレームに当該メッセージ認証コードが付加されていることを検証する検証ステップと、前記検証ステップでの検証が失敗した場合に、メッセージ認証コードの生成に利用されるデータについての更新処理を行う更新処理ステップとを含む不正対処方法である。これにより、データフレームの送信に際してMACを付与する場合或いはデータフレームを受信してMACを検証する場合にMACの生成に用いられるデータ(例えばMAC鍵等)を更新するので、不正なフレームを送信する不正なECUによるMACに対する総当たり攻撃への車載ネットワークシステムの耐性を高め得る。 The fraud handling method according to one aspect of the present invention is to use a plurality of electronic control units that send and receive data frames to which a message authentication code (MAC) is added via a bus according to a CAN (Controller Area Network) protocol. It is a fraud countermeasure method used in the in-vehicle network system provided, and is a reception step for receiving a data frame transmitted on the bus and data received in the reception step by generating a message authentication code using the data. A verification step for verifying that the message authentication code is added to the frame, and an update processing step for updating the data used for generating the message authentication code when the verification in the verification step fails. It is a fraudulent countermeasure method including. As a result, the data used to generate the MAC (for example, the MAC key) is updated when the MAC is added when transmitting the data frame or when the data frame is received and the MAC is verified, so that an invalid frame is transmitted. It is possible to increase the resistance of the in-vehicle network system to a round-robin attack against MAC by an unauthorized ECU.

また、前記不正対処方法は更に、前記検証ステップでの検証が失敗した場合に、メッセージ認証コードの生成に利用されるデータとしてのMAC鍵の更新要求を示すMAC鍵更新要求フレームを、前記バスを介して送信する対処ステップを含み、前記更新処理ステップでは、前記MAC鍵更新要求フレームが送信された場合にMAC鍵を更新することで前記更新処理を行うこととしても良い。これにより、例えば不正なECUからの攻撃の可能性がある場合等において、バスに接続されている各ECUにおいて同期してMAC鍵の更新が可能となり、MACの不正な解読を困難化し得る。 Further, the fraud countermeasure method further sets a MAC key update request frame indicating a MAC key update request as data used for generating a message authentication code when the verification in the verification step fails. In the update processing step, the update processing may be performed by updating the MAC key when the MAC key update request frame is transmitted, including a coping step of transmitting via. As a result, for example, when there is a possibility of an attack from an unauthorized ECU, the MAC key can be updated synchronously in each ECU connected to the bus, which can make it difficult to decrypt the MAC.

また、前記メッセージ認証コードは、メッセージ認証コードが付加されたデータフレームが送信される回数をカウントするカウンタの値を反映して生成され、前記不正対処方法は更に、前記検証ステップでの検証が失敗した場合に、メッセージ認証コードの生成に利用されるデータとしてのカウンタのリセット要求を示すカウンタリセット要求フレームを、前記バスを介して送信する対処ステップを含み、前記更新処理ステップでは、前記カウンタリセット要求フレームが送信された場合にカウンタをリセットすることで前記更新処理を行うこととしても良い。これにより、例えば不正なECUからの攻撃の可能性がある場合等において、バスに接続されている各ECUにおいて同期してカウンタのリセットが可能となり、MACの不正な解読を困難化し得る。 Further, the message authentication code is generated by reflecting the value of the counter that counts the number of times the data frame to which the message authentication code is transmitted is transmitted, and the fraud countermeasure method further fails the verification in the verification step. In the update processing step, the counter reset request includes a coping step of transmitting a counter reset request frame indicating a counter reset request as data used for generating a message authentication code via the bus. The update process may be performed by resetting the counter when a frame is transmitted. As a result, for example, when there is a possibility of an attack from an illegal ECU, the counter can be reset synchronously in each ECU connected to the bus, which can make it difficult to decrypt the MAC illegally.

また、前記車載ネットワークシステムは複数のバスを備え、前記複数のバスの各々は、複数種類のグループのうちいずれかのグループに属し、前記不正対処方法は更に、前記検証ステップでの検証が失敗した場合に、前記電子制御ユニットが、前記複数のバスのうち自ユニットが接続されているバスが属するグループと対応付けて予め定められている処理を実行する対処ステップを含むこととしても良い。これにより、不正なデータフレームが送信された場合等においてECUのグループ毎に予め定められた対処を行うことができる。 Further, the in-vehicle network system includes a plurality of buses, each of the plurality of buses belongs to one of a plurality of types of groups, and the fraud countermeasure method further fails in the verification in the verification step. In this case, the electronic control unit may include a coping step of executing a predetermined process in association with the group to which the bus to which the own unit is connected belongs among the plurality of buses. As a result, when an invalid data frame is transmitted, it is possible to take predetermined measures for each ECU group.

また、前記不正対処方法は更に、所定メッセージIDを含むデータフレームについて前記検証ステップでの検証が失敗した回数が所定閾値を超えた場合に、当該所定メッセージIDと予め対応付けられている処理を実行する対処ステップを含むこととしても良い。これにより、MACの検証に一定回数以上失敗したときに予め定められた対処を行うことができる。 Further, the fraud countermeasure method further executes a process associated with the predetermined message ID in advance when the number of times the verification in the verification step fails for the data frame including the predetermined message ID exceeds the predetermined threshold value. It may include a coping step to be taken. As a result, when the MAC verification fails a certain number of times or more, a predetermined countermeasure can be taken.

また、前記対処ステップで実行される前記処理は、前記車載ネットワークシステムを搭載する車両の機能に一定の抑制を加えて予め定められた特定状態とするための制御であることとしても良い。これにより、不正の検知が一定回数以上なされた場合に車両の状態を予め定められた状態にする制御がなされ、例えば不正なECUによる弊害を抑制し得る。 Further, the process executed in the coping step may be a control for adding a certain suppression to the function of the vehicle equipped with the in-vehicle network system to bring it into a predetermined specific state. As a result, control is performed to bring the state of the vehicle into a predetermined state when fraud is detected a certain number of times or more, and it is possible to suppress adverse effects caused by, for example, a fraudulent ECU.

また、前記不正対処方法は更に、前記バス上で送信が開始されたデータフレームのメッセージIDが、所定の不正IDリストが示す1以上のメッセージIDのいずれかと同一である場合に、当該データフレームの最後尾が送信される前にエラーフレームを送信する不正ID対応処理ステップを含み、前記対処ステップで実行される前記処理は、前記所定メッセージIDの前記不正IDリストへの追加であることとしても良い。これにより、MACの検証に一定回数以上失敗した場合に再び同じメッセージIDの不正なフレームの送信がなされてもその内容をエラーフレームで上書きすることで不正なフレームによる悪影響を抑制できる。 Further, in the fraud handling method, when the message ID of the data frame whose transmission is started on the bus is the same as any one or more message IDs indicated by the predetermined fraud ID list, the data frame The process including the fraudulent ID handling process step of transmitting an error frame before the tail is transmitted, and the process executed in the coping step may be the addition of the predetermined message ID to the fraudulent ID list. .. As a result, even if an invalid frame with the same message ID is transmitted again when the MAC verification fails a certain number of times or more, the content can be overwritten with an error frame to suppress the adverse effect of the invalid frame.

また、前記対処ステップで実行される前記処理は、前記所定メッセージIDを示すログ情報の記録媒体への記録であることとしても良い。これにより、例えば不正な攻撃の証拠等の保存が可能になる。 Further, the process executed in the coping step may be the recording of the log information indicating the predetermined message ID on the recording medium. This makes it possible to store evidence of fraudulent attacks, for example.

また、前記メッセージ認証コードの生成には、メッセージ認証コードが付加されたデータフレームが送信される回数をカウントするカウンタの値及びMAC鍵が利用され、前記不正対処方法は更に、MAC鍵を利用して生成したメッセージ認証コードを用いた前記検証ステップでの検証が失敗した場合において、当該MAC鍵の更新前のMAC鍵を利用して生成したメッセージ認証コードを用いて再び行った検証に成功したときには、MAC鍵の更新要求を示す鍵更新フレームを、前記バスを介して送信する対処ステップを含み、前記更新処理ステップでは、前記鍵更新フレームが送信された場合にMAC鍵を更新することで前記更新処理を行うこととしても良い。これにより、例えばカウンタ値のリセットを省略し得るようになる。 Further, in the generation of the message authentication code, the value of the counter that counts the number of times the data frame to which the message authentication code is transmitted and the MAC key are used, and the fraud countermeasure method further uses the MAC key. When the verification in the verification step using the generated message authentication code fails, and the verification performed again using the message authentication code generated using the MAC key before the update of the MAC key is successful. , A coping step of transmitting a key update frame indicating a MAC key update request via the bus is included, and in the update processing step, the update is performed by updating the MAC key when the key update frame is transmitted. It may be processed. As a result, for example, resetting the counter value can be omitted.

また、前記メッセージ認証コードの生成には、メッセージ認証コードが付加されたデータフレームが送信される回数をカウントするカウンタの値及びMAC鍵が利用され、前記不正対処方法は更に、MAC鍵を利用して生成したメッセージ認証コードを用いた前記検証ステップでの検証が失敗した場合において、当該MAC鍵の更新前のMAC鍵を利用して生成したメッセージ認証コードを用いて再び行った検証にも失敗したときには、メッセージ認証コードの生成に利用されるカウンタのリセット要求を示すカウンタリセットフレームを、前記バスを介して送信する対処ステップを含み、前記更新処理ステップでは、前記カウンタリセットフレームが送信された場合にカウンタをリセットすることで前記更新処理を行うこととしても良い。これにより、カウンタ値のリセットが必要な状況においてカウンタ値のリセットを行うことができる。 Further, in the generation of the message authentication code, the value of the counter that counts the number of times the data frame to which the message authentication code is transmitted and the MAC key are used, and the fraud countermeasure method further uses the MAC key. When the verification in the verification step using the message authentication code generated in the above fails, the verification performed again using the message authentication code generated by using the MAC key before the update of the MAC key also fails. Occasionally, a coping step of transmitting a counter reset request indicating a counter reset request used for generating a message authentication code via the bus is included, and in the update processing step, when the counter reset frame is transmitted. The update process may be performed by resetting the counter. As a result, the counter value can be reset in a situation where the counter value needs to be reset.

また、本発明の一態様に係る車載ネットワークシステムは、CAN(Controller Area Network)プロトコルに従ってバスを介してメッセージ認証コード(MAC:Message Authentication Code)が付加されたデータフレームの授受を行う複数の電子制御ユニットを備える車載ネットワークシステムであって、メッセージ認証コードの生成に利用されるMAC鍵を保持するMAC鍵保持部を有し、当該MAC鍵を用いてメッセージ認証コードを生成して、データフレームに付加して送信する第1電子制御ユニットと、メッセージ認証コードの生成に利用されるMAC鍵を保持するMAC鍵保持部を有し、当該MAC鍵を用いてメッセージ認証コードを生成して、データフレームを受信して当該データフレームに当該メッセージ認証コードが付加されていることを検証する第2電子制御ユニットとを備え、前記第1電子制御ユニット及び前記第2電子制御ユニットの各々は、更に、前記第2電子制御ユニットでの前記検証が失敗した場合に、自ユニットが有する前記MAC鍵保持部に保持されるMAC鍵を更新するMAC鍵更新部を有する車載ネットワークシステムである。これにより、MAC鍵が更新されるので、車載ネットワークシステムにおいて、不正なフレームを送信する不正なECUによるMACに対する総当たり攻撃への耐性が高まり得る。 Further, the in-vehicle network system according to one aspect of the present invention is a plurality of electronic controls that send and receive data frames to which a message authentication code (MAC) is added via a bus according to a CAN (Controller Area Network) protocol. An in-vehicle network system including a unit, which has a MAC key holding unit that holds a MAC key used for generating a message authentication code, generates a message authentication code using the MAC key, and adds it to a data frame. It has a first electronic control unit for transmitting the message, and a MAC key holding unit for holding the MAC key used for generating the message authentication code. The message authentication code is generated using the MAC key to generate a data frame. A second electronic control unit that receives and verifies that the message authentication code is added to the data frame is provided, and each of the first electronic control unit and the second electronic control unit further includes the first electronic control unit. (2) This is an in-vehicle network system having a MAC key updating unit that updates the MAC key held in the MAC key holding unit of the own unit when the verification by the electronic control unit fails. As a result, the MAC key is updated, so that in the in-vehicle network system, resistance to a brute force attack against the MAC by an illegal ECU that transmits an illegal frame can be increased.

また、本発明の一態様に係る不正検知電子制御ユニット(不正検知ECU)は、CAN(Controller Area Network)プロトコルに従って通信する複数の電子制御ユニットが通信に用いるバスに接続される不正検知電子制御ユニットであって、前記バスからフレームを受信し前記バスにフレームを送信するためのフレーム送受信部と、前記フレーム送受信部により受信されたフレームにメッセージ認証コード(MAC:Message Authentication Code)が付加されていることを検証する不正MAC検知部とを備え、前記フレーム送受信部は、前記不正MAC検知部による前記検証が失敗した場合に、メッセージ認証コードの生成に利用されるMAC鍵の更新要求を示すMAC鍵更新要求フレームを送信する不正検知電子制御ユニットである。これにより、バスに接続されたECUが、MAC鍵更新要求フレームを受信することでMAC鍵の更新を同期して行えるようになる。 Further, the fraud detection electronic control unit (fraud detection ECU) according to one aspect of the present invention is a fraud detection electronic control unit in which a plurality of electronic control units communicating according to a CAN (Controller Area Network) protocol are connected to a bus used for communication. A frame transmission / reception unit for receiving a frame from the bus and transmitting the frame to the bus, and a message authentication code (MAC) are added to the frame received by the frame transmission / reception unit. The frame transmission / reception unit includes a rogue MAC detection unit for verifying that, and the frame transmission / reception unit is a MAC key indicating an update request of a MAC key used for generating a message authentication code when the verification by the rogue MAC detection unit fails. A fraud detection electronic control unit that sends update request frames. As a result, the ECU connected to the bus can update the MAC key in synchronization by receiving the MAC key update request frame.

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

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

(実施の形態1)
以下、本発明の実施の形態として、メッセージIDを用いて不正なフレームを検知して対処するための不正対処方法を実現する不正検知ECUを含む車載ネットワークシステム10について図面を用いて説明する。
(Embodiment 1)
Hereinafter, as an embodiment of the present invention, an in-vehicle network system 10 including a fraud detection ECU that realizes a fraud handling method for detecting and dealing with a fraudulent frame using a message ID will be described with reference to the drawings.

[1.1 車載ネットワークシステム10の全体構成]
図1は、実施の形態1に係る車載ネットワークシステム10の全体構成を示す図である。車載ネットワークシステム10は、CANプロトコルに従って通信するネットワーク通信システムの一例であり、制御装置、センサ等の各種機器が搭載された自動車におけるネットワーク通信システムである。車載ネットワークシステム10は、バス500a、500bと、不正検知ECU100a、100b、ヘッドユニット200、ゲートウェイ300、及び、各種機器に接続されたECU400a〜400d等のECUといったバスに接続された各ノードとを含んで構成される。なお、図1では省略しているものの、車載ネットワークシステム10にはECU400a〜400d以外にもいくつものECUが含まれ得るが、ここでは、便宜上ECU400a〜400dに注目して説明を行う。ECUは、例えば、プロセッサ(マイクロプロセッサ)、メモリ等のデジタル回路、アナログ回路、通信回路等を含む装置である。メモリは、ROM、RAM等であり、プロセッサにより実行される制御プログラム(コンピュータプログラム)を記憶することができる。例えばプロセッサが、制御プログラム(コンピュータプログラム)に従って動作することにより、ECUは各種機能を実現することになる。なお、コンピュータプログラムは、所定の機能を達成するために、プロセッサに対する指令を示す命令コードが複数個組み合わされて構成されたものである。ここでは、バス500a、500bには不正なフレームを送信する不正ECUが接続されている可能性があることを前提として説明する。
[1.1 Overall configuration of in-vehicle network system 10]
FIG. 1 is a diagram showing an overall configuration of the vehicle-mounted network system 10 according to the first embodiment. The in-vehicle 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 an automobile equipped with various devices such as a control device and a sensor. The in-vehicle network system 10 includes buses 500a and 500b, and each node connected to the bus such as fraud detection ECUs 100a and 100b, a head unit 200, a gateway 300, and ECUs such as ECUs 400a to 400d connected to various devices. Consists of. Although omitted in FIG. 1, the in-vehicle network system 10 may include a number of ECUs in addition to the ECUs 400a to 400d, but here, the ECUs 400a to 400d will be focused on for convenience. The ECU is, for example, a device including a processor (microprocessor), a digital circuit such as a memory, an analog circuit, a communication circuit, and the like. The memory is a ROM, 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. A computer program is configured by combining a plurality of instruction codes indicating instructions to a processor in order to achieve a predetermined function. Here, the description will be made on the premise that there is a possibility that an illegal ECU for transmitting an illegal frame is connected to the buses 500a and 500b.

不正検知ECU100a、100bは、それぞれバス500a、バス500bに接続され、ECU400a〜400d等により送信されたフレームが不正であるかどうかを判定し、不正であればエラーフレームを送信する機能を有するECUである。 The fraud detection ECUs 100a and 100b are connected to the bus 500a and the bus 500b, respectively, and are ECUs having a function of determining whether or not the frame transmitted by the ECUs 400a to 400d is invalid and transmitting an error frame if the frame is invalid. is there.

ECU400a〜400dは、いずれかのバスと接続され、また、それぞれエンジン401、ブレーキ402、ドア開閉センサ403、窓開閉センサ404に接続されている。ECU400a〜400dのそれぞれは、接続されている機器(エンジン401等)の状態を取得し、定期的に状態を表すフレーム(後述するデータフレーム)等をネットワーク(つまりバス)に送信している。 The ECUs 400a to 400d are connected to any of the buses, and are also connected to the engine 401, the brake 402, the door open / close sensor 403, and the window open / close sensor 404, respectively. Each of the ECUs 400a to 400d acquires the state of the connected device (engine 401, etc.) and periodically transmits a frame (data frame, which will be described later) or the like indicating the state to the network (that is, a bus).

ゲートウェイ300は、不正検知ECU100a、ECU400a及びECU400bがつながるバス500aと、不正検知ECU100b、ECU400c及びECU400dがつながるバス500bと、ヘッドユニット200がつながるバス500cとに接続しており、それぞれのバスから受信したフレームを他のバスに転送する機能を有する。また受信したフレームを転送するかしないかを接続されたバス間毎に切り替えることも可能である。ゲートウェイ300も一種のECUである。 The gateway 300 is connected to a bus 500a to which the fraud detection ECU 100a, the ECU 400a and the ECU 400b are connected, a bus 500b to which the fraud detection ECU 100b, the ECU 400c and the ECU 400d are connected, and a bus 500c to which the head unit 200 is connected, and received from each bus. It has a function to transfer the frame to another bus. It is also possible to switch whether to transfer the received frame for each connected bus. The gateway 300 is also a kind of ECU.

ヘッドユニット200は、フレームを受信する機能を持ち、ECU400a〜400dから送信されるフレームを受信し、各種状態をディスプレイ(図示しない)に表示して、ユーザに提示する機能を持つ。ヘッドユニット200も一種のECUである。 The head unit 200 has a function of receiving frames, and has a function of receiving frames transmitted from ECUs 400a to 400d, displaying various states on a display (not shown), and presenting them to the user. The head unit 200 is also a kind of ECU.

この車載ネットワークシステム10においてはCANプロトコルに従って各ECUがフレームの授受を行う。CANプロトコルにおけるフレームには、データフレーム、リモートフレーム、オーバーロードフレーム及びエラーフレームがある。説明の便宜上、まずはデータフレーム及びエラーフレームを中心に説明する。 In the in-vehicle network system 10, each ECU sends and receives frames according to the CAN protocol. Frames in the CAN protocol include data frames, remote frames, overload frames and error frames. For convenience of explanation, first, a data frame and an error frame will be mainly described.

[1.2 データフレームフォーマット]
以下、CANプロトコルに従ったネットワークで用いられるフレームの1つであるデータフレームについて説明する。
[1.2 Data frame format]
Hereinafter, a data frame, which is one of the frames used in a 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 data frame format defined by the CAN protocol. The figure shows a data frame in the standard ID format defined by the CAN protocol. The data frame is a SOF (Start Of Frame), ID field, RTR (Remote Transmission Request), IDE (Identifier Extension), reserved bit "r", DLC (Data Length Code), data field, CRC (Cyclic Redundancy Check) sequence. , CRC delimiter "DEL", ACK (Acknowledgement) slot, ACK delimiter "DEL", and EOF (End Of Frame) fields.

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

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

RTRは、データフレームとリモートフレームとを識別するための値であり、データフレームにおいてはドミナント1bitで構成される。 The RTR is a value for distinguishing between a data frame and a remote frame, and is composed of a 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 data to be transmitted, which is composed of a maximum of 64 bits. The length can be adjusted in 8-bit units. The specifications of the data to be transmitted are not specified by the CAN protocol, but are specified by the in-vehicle network system 10. Therefore, the specifications depend on the vehicle type, the manufacturer (manufacturer), and the like.

CRCシーケンスは、15bitで構成される。SOF、IDフィールド、コントロールフィールド及びデータフィールドの送信値より算出される。 The CRC sequence consists 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 indicating the end of a CRC sequence composed of 1 bit of recessive. The CRC sequence and 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 makes the ACK slot recessive and transmits. The receiving node transmits the ACK slot as a dominant if the CRC sequence is normally received. Since dominant is prioritized over recessive, if the ACK slot is dominant after transmission, the transmitting node can confirm that any receiving node has succeeded in receiving.

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

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

[1.3 エラーフレームフォーマット]
図3は、CANプロトコルで規定されるエラーフレームのフォーマットを示す図である。エラーフレームは、エラーフラグ(プライマリ)と、エラーフラグ(セカンダリ)と、エラーデリミタとから構成される。
[1.3 Error frame format]
FIG. 3 is a diagram showing the format of the error frame defined by the CAN protocol. The error frame is composed of an error flag (primary), an error flag (secondary), and an error delimiter.

エラーフラグ(プライマリ)は、エラーの発生を他のノードに知らせるために使用される。エラーを検知したノードはエラーの発生を他のノードに知らせるために6bitのドミナントを連続で送信する。この送信は、CANプロトコルにおけるビットスタッフィングルール(連続して同じ値を6bit以上送信しない)に違反し、他のノードからのエラーフレーム(セカンダリ)の送信を引き起こす。 The error flag (primary) is used to notify other nodes that an error has occurred. The node that detects the error continuously transmits a 6-bit dominant to notify other nodes of the occurrence of the error. This transmission violates the bit stuffing rule in the CAN protocol (does not transmit the same value more than 6 bits in succession) and causes the transmission of an error frame (secondary) from another node.

エラーフラグ(セカンダリ)は、エラーの発生を他のノードに知らせるために使用される連続した6ビットのドミナントで構成される。エラーフラグ(プライマリ)を受信してビットスタッフィングルール違反を検知した全てのノードがエラーフラグ(セカンダリ)を送信することになる。 The error flag (secondary) consists of consecutive 6-bit dominants used to notify other nodes of the occurrence of an error. All nodes that receive the error flag (primary) and detect a bit stuffing rule violation will send the error flag (secondary).

エラーデリミタ「DEL」は、8bitの連続したレセシブであり、エラーフレームの終了を示す。 The error delimiter "DEL" is an 8-bit continuous recessive and indicates the end of the error frame.

[1.4 ヘッドユニット200の構成]
ヘッドユニット200は、例えば、自動車のインパネ(インストルメントパネル)等に設けられ、運転者に視認されるための情報を表示する液晶ディスプレイ(LCD:liquid crystal display)等の表示装置、運転者の操作を受け付ける入力手段等を備える一種のECUである。
[1.4 Configuration of head unit 200]
The head unit 200 is provided on, for example, an instrument panel (instrument panel) of an automobile, and is a display device such as a liquid crystal display (LCD) that displays information to be visually recognized by the driver, and a driver's operation. It is a kind of ECU provided with an input means and the like for receiving.

図4は、ヘッドユニット200の構成図である。ヘッドユニット200は、フレーム送受信部270と、フレーム解釈部260と、受信ID判断部240と、受信IDリスト保持部250と、フレーム処理部220と、表示制御部210と、フレーム生成部230とを含んで構成される。これらの各構成要素は、機能的な構成要素であり、その各機能は、ヘッドユニット200における通信回路、LCD、メモリに格納された制御プログラムを実行するプロセッサ或いはデジタル回路等により実現される。 FIG. 4 is a configuration diagram of the head unit 200. The head unit 200 includes a frame transmission / reception unit 270, a frame interpretation unit 260, a reception ID determination unit 240, a reception ID list holding unit 250, a frame processing unit 220, a display control unit 210, and a frame generation unit 230. Consists of including. Each of these components is a functional component, and each function is realized by a communication circuit in the head unit 200, an LCD, a processor that executes a control program stored in a memory, a digital circuit, or the like.

フレーム送受信部270は、バス500cに対して、CANプロトコルに従ったフレームを送受信する。バス500cからフレームを1bitずつ受信し、フレーム解釈部260に転送する。また、フレーム生成部230より通知を受けたフレームの内容をバス500cに1bitずつ送信する。 The frame transmission / reception unit 270 transmits / receives a frame according to the CAN protocol to the bus 500c. Frames are received one bit at a time from the bus 500c and transferred to the frame interpretation unit 260. In addition, the contents of the frame notified by the frame generation unit 230 are transmitted to the bus 500c one bit at a time.

フレーム解釈部260は、フレーム送受信部270よりフレームの値を受け取り、CANプロトコルで規定されているフレームフォーマットにおける各フィールドにマッピングするよう解釈を行う。フレーム解釈部260は、IDフィールドと判断した値は受信ID判断部240へ転送する。フレーム解釈部260は、受信ID判断部240から通知される判定結果に応じて、IDフィールドの値と、IDフィールド以降に現れるデータフィールドとを、フレーム処理部220へ転送するか、その判定結果を受けた以降においてフレームの受信を中止する(つまりそのフレームとしての解釈を中止する)かを決定する。また、フレーム解釈部260は、例えば、CRCの値が合わなかったり、ドミナント固定とされている項目がレセシブだったりする等、CANプロトコルに則っていないフレームと判断した場合は、エラーフレームを送信するようにフレーム生成部230へ通知する。また、フレーム解釈部260は、エラーフレームを受信した場合、つまり受け取ったフレームにおける値からエラーフレームになっていると解釈した場合には、それ以降はそのフレームを破棄する、つまりフレームの解釈を中止する。例えばデータフレームの途中からエラーフレームと解釈された場合においては、そのデータフレームの解釈は中止され、そのデータフレームに応じて特段の処理を行うことがなくなる。 The frame interpretation unit 260 receives the frame value from the frame transmission / reception unit 270 and interprets it so as to map it to each field in the frame format defined by the CAN protocol. The frame interpretation unit 260 transfers the value determined to be the ID field to the reception ID determination unit 240. The frame interpretation unit 260 transfers the value of the ID field and the data field appearing after the ID field to the frame processing unit 220 according to the determination result notified from the reception ID determination unit 240, or determines the determination result. Decide whether to stop receiving the frame (that is, stop interpreting it as the frame) after receiving it. Further, the frame interpretation unit 260 transmits an error frame when it determines that the frame does not conform to the CAN protocol, for example, the CRC value does not match or the item fixed as dominant is recessive. To notify the frame generation unit 230. Further, when the frame interpreting unit 260 receives an error frame, that is, when it interprets that the value in the received frame is an error frame, the frame interpreting unit 260 discards the frame after that, that is, stops interpreting the frame. To do. For example, when an error frame is interpreted from the middle of a data frame, the interpretation of the data frame is stopped, and no special processing is performed according to the data frame.

受信ID判断部240は、フレーム解釈部260から通知されるIDフィールドの値を受け取り、受信IDリスト保持部250が保持しているメッセージIDのリストに従い、そのIDフィールド以降のフレームの各フィールドを受信するかどうかの判定を行う。この判定結果を、受信ID判断部240は、フレーム解釈部260へ通知する。 The reception ID determination unit 240 receives the value of the ID field notified from the frame interpretation unit 260, and receives each field of the frame after the ID field according to the list of message IDs held by the reception ID list holding unit 250. Determine whether or not to do so. The reception ID determination unit 240 notifies the frame interpretation unit 260 of this determination result.

受信IDリスト保持部250は、ヘッドユニット200が受信するID(メッセージID)のリストである受信IDリストを保持する。図5は、受信IDリストの一例を示した図である。ヘッドユニット200は、エンジン401に接続されたECU400aからメッセージIDが「1」であるフレーム(メッセージ)を受信し、ブレーキ402に接続されたECU400bからメッセージIDが「2」であるフレームを受信し、ドア開閉センサ403に接続されたECU400cからメッセージIDが「3」であるフレームを受信し、窓開閉センサ404に接続されたECU400dからメッセージIDが「4」であるフレームを受信する。 The reception ID list holding unit 250 holds a reception ID list which is a list of IDs (message IDs) received by the head unit 200. FIG. 5 is a diagram showing an example of a reception ID list. The head unit 200 receives a frame (message) having a message ID of "1" from the ECU 400a connected to the engine 401, and receives a frame having a message ID of "2" from the ECU 400b connected to the brake 402. A frame having a message ID of "3" is received from the ECU 400c connected to the door opening / closing sensor 403, and a frame having a message ID of "4" is received from the ECU 400d connected to the window opening / closing sensor 404.

フレーム処理部220は、受信したフレームの内容(例えばメッセージID及びデータフィールドの内容)に基づいて、例えばLCDに表示されるべき画像を形成して、表示制御部210に通知する。なお、フレーム処理部220は、受信したデータフィールドの内容を保持し、入力手段を通じて受け付けた運転者による操作に応じて、LCDに表示されるべき画像(例えば車速表示用の画像、窓開閉状態表示用の画像等)を選択して通知しても良い。 The frame processing unit 220 forms, for example, an image to be displayed on the LCD based on the contents of the received frame (for example, the contents of the message ID and the data field), and notifies the display control unit 210. The frame processing unit 220 holds the contents of the received data field, and an image to be displayed on the LCD (for example, an image for displaying the vehicle speed, a window open / closed state display) according to the operation by the driver received through the input means. You may notify by selecting (such as an image for).

表示制御部210は、フレーム処理部220より通知を受けた内容をLCD等に表示する。 The display control unit 210 displays the content notified by the frame processing unit 220 on the LCD or the like.

フレーム生成部230は、フレーム解釈部260からのエラーフレームの送信を指示する通知に従い、エラーフレームを構成し、エラーフレームをフレーム送受信部270へ通知して送信させる。 The frame generation unit 230 configures an error frame according to the notification instructing the transmission of the error frame from the frame interpretation unit 260, and notifies the frame transmission / reception unit 270 of the error frame to transmit the error frame.

[1.5 受信IDリスト例1]
図5は、ヘッドユニット200、ゲートウェイ300、ECU400c及びECU400dのそれぞれにおいて保持される受信IDリストの一例を示す図である。同図に例示する受信IDリストは、ID(メッセージID)の値が「1」、「2」、「3」及び「4」のいずれかであるメッセージIDを含むフレームを選択的に受信して処理するために用いられる。例えば、ヘッドユニット200の受信IDリスト保持部250に図5の受信IDリストが保持されていると、メッセージIDが「1」、「2」、「3」及び「4」のいずれでもないフレームについては、フレーム解釈部260でのIDフィールド以後のフレームの解釈が中止される。
[1.5 Received ID list example 1]
FIG. 5 is a diagram showing an example of a reception ID list held in each of the head unit 200, the gateway 300, the ECU 400c, and the ECU 400d. The reception ID list illustrated in the figure selectively receives frames containing a message ID whose ID (message ID) value is any one of "1", "2", "3", and "4". Used to process. For example, when the reception ID list of FIG. 5 is held in the reception ID list holding unit 250 of the head unit 200, for a frame whose message ID is not any of "1", "2", "3", and "4". Is stopped from interpreting the frame after the ID field by the frame interpreting unit 260.

[1.6 ゲートウェイ300の構成]
図6は、ゲートウェイ300の構成図である。ゲートウェイ300は、フレーム送受信部360と、フレーム解釈部350と、受信ID判断部330と、受信IDリスト保持部340と、フレーム生成部320と、転送処理部310と、転送ルール保持部370とを含んで構成される。これらの各構成要素は、機能的な構成要素であり、その各機能は、ゲートウェイ300における通信回路、メモリに格納された制御プログラムを実行するプロセッサ或いはデジタル回路等により実現される。
[1.6 Gateway 300 Configuration]
FIG. 6 is a configuration diagram of the gateway 300. The gateway 300 includes a frame transmission / reception unit 360, a frame interpretation unit 350, a reception ID determination unit 330, a reception ID list holding unit 340, a frame generation unit 320, a transfer processing unit 310, and a transfer rule holding unit 370. Consists of including. Each of these components is a functional component, and each function is realized by a communication circuit in the gateway 300, a processor that executes a control program stored in a memory, a digital circuit, or the like.

フレーム送受信部360は、バス500a、500b、500cそれぞれに対して、CANプロトコルに従ったフレームを送受信する。バスからフレームを1bitずつ受信し、フレーム解釈部350に転送する。また、フレーム生成部320より通知を受けた転送先のバスを示すバス情報及びフレームに基づいて、そのフレームの内容をバス500a、500b、500cに1bitずつ送信する。 The frame transmission / reception unit 360 transmits / receives a frame according to the CAN protocol to each of the buses 500a, 500b, and 500c. Each frame is received from the bus one bit at a time and transferred to the frame interpreting unit 350. Further, based on the bus information indicating the transfer destination bus notified by the frame generation unit 320 and the frame, the contents of the frame are transmitted to the buses 500a, 500b, and 500c one bit at a time.

フレーム解釈部350は、フレーム送受信部360よりフレームの値を受け取り、CANプロトコルで規定されているフレームフォーマットにおける各フィールドにマッピングするよう解釈を行う。IDフィールドと判断した値は受信ID判断部330へ転送する。フレーム解釈部350は、受信ID判断部330から通知される判定結果に応じて、IDフィールドの値と、IDフィールド以降に現れるデータフィールド(データ)とを、転送処理部310へ転送するか、その判定結果を受けた以降においてフレームの受信を中止する(つまりそのフレームとしての解釈を中止する)かを決定する。また、フレーム解釈部350は、CANプロトコルに則っていないフレームと判断した場合は、エラーフレームを送信するようにフレーム生成部320へ通知する。また、フレーム解釈部350は、エラーフレームを受信した場合、つまり受け取ったフレームにおける値からエラーフレームになっていると解釈した場合には、それ以降はそのフレームを破棄する、つまりフレームの解釈を中止する。 The frame interpretation unit 350 receives the frame value from the frame transmission / reception unit 360 and interprets it so as to map it to each field in the frame format defined by the CAN protocol. The value determined to be the ID field is transferred to the reception ID determination unit 330. The frame interpretation unit 350 transfers the value of the ID field and the data field (data) appearing after the ID field to the transfer processing unit 310 according to the determination result notified from the reception ID determination unit 330, or the frame interpretation unit 350 thereof. After receiving the determination result, it is determined whether to stop the reception of the frame (that is, stop the interpretation as the frame). Further, when the frame interpretation unit 350 determines that the frame does not conform to the CAN protocol, the frame interpretation unit 350 notifies the frame generation unit 320 to transmit an error frame. Further, when the frame interpreting unit 350 receives an error frame, that is, when it interprets that the value in the received frame is an error frame, the frame interpreting unit 350 discards the frame after that, that is, stops interpreting the frame. To do.

受信ID判断部330は、フレーム解釈部350から通知されるIDフィールドの値を受け取り、受信IDリスト保持部340が保持しているメッセージIDのリストに従い、そのIDフィールド以降のフレームの各フィールドを受信するかどうかの判定を行う。この判定結果を、受信ID判断部330は、フレーム解釈部350へ通知する。 The reception ID determination unit 330 receives the value of the ID field notified from the frame interpretation unit 350, and receives each field of the frame after the ID field according to the list of message IDs held by the reception ID list holding unit 340. Determine whether or not to do so. The reception ID determination unit 330 notifies the frame interpretation unit 350 of this determination result.

受信IDリスト保持部340は、ゲートウェイ300が受信するID(メッセージID)のリストである受信IDリスト(図5参照)を保持する。 The reception ID list holding unit 340 holds a reception ID list (see FIG. 5), which is a list of IDs (message IDs) received by the gateway 300.

転送処理部310は、転送ルール保持部370が保持する転送ルールに従って、受信したフレームのメッセージIDに応じて、転送するバスを決定し、転送するバスを示すバス情報とフレーム解釈部350より通知されたメッセージIDとデータとをフレーム生成部320へ通知する。なお、ゲートウェイ300は、あるバスから受信されたエラーフレームについては他のバスに転送しない。 The transfer processing unit 310 determines the bus to be transferred according to the message ID of the received frame according to the transfer rule held by the transfer rule holding unit 370, and is notified by the bus information indicating the bus to be transferred and the frame interpretation unit 350. The message ID and the data are notified to the frame generation unit 320. The gateway 300 does not transfer the error frame received from one bus to another bus.

転送ルール保持部370は、バス毎のフレームの転送についてのルールを表す情報である転送ルールを保持する。図7は、転送ルールの一例を示した図である。 The forwarding rule holding unit 370 holds a forwarding rule which is information representing a rule for forwarding a frame for each bus. FIG. 7 is a diagram showing an example of a forwarding rule.

フレーム生成部320は、フレーム解釈部350から通知されたエラーフレームの送信を指示する通知に従い、エラーフレームを構成し、エラーフレームをフレーム送受信部360へ通知して送信させる。また、フレーム生成部320は、転送処理部310より通知されたメッセージIDとデータとを使ってフレームを構成し、フレーム及びバス情報をフレーム送受信部360へ通知する。 The frame generation unit 320 configures an error frame according to the notification instructing the transmission of the error frame notified from the frame interpretation unit 350, and notifies the frame transmission / reception unit 360 of the error frame to transmit the error frame. Further, the frame generation unit 320 configures a frame by using the message ID and data notified by the transfer processing unit 310, and notifies the frame and bus information to the frame transmission / reception unit 360.

[1.7 転送ルール例]
図7は、ゲートウェイ300が保有する転送ルールの一例を示す。この転送ルールは、転送元のバスと転送先のバスと転送対象のID(メッセージID)とを対応付けている。図7中の「*」はメッセージIDにかかわらずフレームの転送がなされることを表している。また、同図中の「−」は転送対象のフレームがないことを示す。同図の例は、バス500aから受信するフレームはメッセージIDにかかわらず、バス500b及びバス500cに転送するように設定されていることを示している。また、バス500bから受信するフレームのうち、バス500cには全てのフレームが転送されるが、バス500aにはメッセージIDが「3」であるフレームのみが転送されるように設定されていることを示している。また、バス500cから受信されるフレームは、バス500aにもバス500bにも転送されないように設定されていることを示している。
[1.7 Example of forwarding rule]
FIG. 7 shows an example of the forwarding rule held by the gateway 300. In this transfer rule, the transfer source bus, the transfer destination bus, and the transfer target ID (message ID) are associated with each other. “*” In FIG. 7 indicates that the frame is transferred regardless of the message ID. Further, "-" in the figure indicates that there is no frame to be transferred. The example in the figure shows that the frame received from the bus 500a is set to be forwarded to the bus 500b and the bus 500c regardless of the message ID. Further, among the frames received from the bus 500b, all the frames are transferred to the bus 500c, but only the frames having the message ID "3" are set to be transferred to the bus 500a. Shown. Further, it is shown that the frame received from the bus 500c is set so as not to be transferred to either the bus 500a or the bus 500b.

[1.8 ECU400aの構成]
図8は、ECU400aの構成図である。ECU400aは、フレーム送受信部460と、フレーム解釈部450と、受信ID判断部430と、受信IDリスト保持部440と、フレーム処理部410と、フレーム生成部420と、データ取得部470とを含んで構成される。これらの各構成要素は、機能的な構成要素であり、その各機能は、ECU400aにおける通信回路、メモリに格納された制御プログラムを実行するプロセッサ或いはデジタル回路等により実現される。
[1.8 Configuration of ECU 400a]
FIG. 8 is a configuration diagram of the ECU 400a. The ECU 400a includes a frame transmission / reception unit 460, a frame interpretation unit 450, a reception ID determination unit 430, a reception ID list holding unit 440, a frame processing unit 410, a frame generation unit 420, and a data acquisition unit 470. It is composed. Each of these components is a functional component, and each function is realized by a communication circuit in the ECU 400a, a processor that executes a control program stored in a memory, a digital circuit, or the like.

フレーム送受信部460は、バス500aに対して、CANプロトコルに従ったフレームを送受信する。バス500aからフレームを1bitずつ受信し、フレーム解釈部450に転送する。また、フレーム生成部420より通知を受けたフレームの内容をバス500aに送信する。 The frame transmission / reception unit 460 transmits / receives a frame according to the CAN protocol to the bus 500a. Frames are received one bit at a time from the bus 500a and transferred to the frame interpreting unit 450. Further, the content of the frame notified by the frame generation unit 420 is transmitted to the bus 500a.

フレーム解釈部450は、フレーム送受信部460よりフレームの値を受け取り、CANプロトコルで規定されているフレームフォーマットにおける各フィールドにマッピングするよう解釈を行う。IDフィールドと判断した値は受信ID判断部430へ転送する。フレーム解釈部450は、受信ID判断部430から通知される判定結果に応じて、IDフィールドの値と、IDフィールド以降に現れるデータフィールドとを、フレーム処理部410へ転送するか、その判定結果を受けた以降においてフレームの受信を中止する(つまりそのフレームとしての解釈を中止する)かを決定する。また、フレーム解釈部450は、CANプロトコルに則っていないフレームと判断した場合は、エラーフレームを送信するようにフレーム生成部420へ通知する。また、フレーム解釈部450は、エラーフレームを受信した場合、つまり受け取ったフレームにおける値からエラーフレームになっていると解釈した場合には、それ以降はそのフレームを破棄する、つまりフレームの解釈を中止する。 The frame interpretation unit 450 receives the frame value from the frame transmission / reception unit 460 and interprets it so as to map it to each field in the frame format defined by the CAN protocol. The value determined to be the ID field is transferred to the reception ID determination unit 430. The frame interpretation unit 450 transfers the value of the ID field and the data field appearing after the ID field to the frame processing unit 410 according to the determination result notified from the reception ID determination unit 430, or determines the determination result. Decide whether to stop receiving the frame (that is, stop interpreting it as the frame) after receiving it. Further, when the frame interpretation unit 450 determines that the frame does not conform to the CAN protocol, the frame interpretation unit 450 notifies the frame generation unit 420 to transmit an error frame. Further, when the frame interpreting unit 450 receives an error frame, that is, when it interprets that the value in the received frame is an error frame, the frame interpreting unit 450 discards the frame after that, that is, stops interpreting the frame. To do.

受信ID判断部430は、フレーム解釈部450から通知されるIDフィールドの値を受け取り、受信IDリスト保持部440が保持しているメッセージIDのリストに従い、そのIDフィールド以降のフレームの各フィールドを受信するかどうかの判定を行う。この判定結果を、受信ID判断部430は、フレーム解釈部450へ通知する。 The reception ID determination unit 430 receives the value of the ID field notified from the frame interpretation unit 450, and receives each field of the frame after the ID field according to the list of message IDs held by the reception ID list holding unit 440. Determine whether or not to do so. The reception ID determination unit 430 notifies the frame interpretation unit 450 of this determination result.

受信IDリスト保持部440は、ECU400aが受信するID(メッセージID)のリストである受信IDリストを保持する。図9は、受信IDリストの一例を示した図である。 The reception ID list holding unit 440 holds a reception ID list which is a list of IDs (message IDs) received by the ECU 400a. FIG. 9 is a diagram showing an example of a reception ID list.

フレーム処理部410は、受信したフレームのデータに応じてECU毎に異なる機能に係る処理を行う。例えば、エンジン401に接続されたECU400aは、時速が30kmを超えた状態でドアが開いている状態だと、アラーム音を鳴らす機能を備える。ECU400aは、例えばアラーム音を鳴らすためのスピーカ等を有している。そして、ECU400aのフレーム処理部410は、他のECUから受信したデータ(例えばドアの状態を示す情報)を管理し、エンジン401から取得された時速に基づいて一定条件下でアラーム音を鳴らす処理等を行う。 The frame processing unit 410 performs processing related to a function different for each ECU according to the received frame data. For example, the ECU 400a connected to the engine 401 has a function of sounding an alarm when the door is open when the speed exceeds 30 km / h. The ECU 400a has, for example, a speaker for sounding an alarm sound. Then, the frame processing unit 410 of the ECU 400a manages data received from another ECU (for example, information indicating the state of the door), and sounds an alarm sound under certain conditions based on the speed acquired from the engine 401, etc. I do.

データ取得部470は、ECUにつながっている機器、センサ等の状態を示すデータを取得し、フレーム生成部420に通知する。 The data acquisition unit 470 acquires data indicating the state of the device, the sensor, etc. connected to the ECU, and notifies the frame generation unit 420 of the data.

フレーム生成部420は、フレーム解釈部450から通知されたエラーフレームの送信を指示する通知に従い、エラーフレームを構成し、エラーフレームをフレーム送受信部460へ通知して送信させる。また、フレーム生成部420は、データ取得部470より通知されたデータの値に対して、予め定められたメッセージIDをつけてフレームを構成し、フレーム送受信部460へ通知する。 The frame generation unit 420 configures an error frame according to the notification instructing the transmission of the error frame notified from the frame interpretation unit 450, and notifies the frame transmission / reception unit 460 of the error frame to transmit the error frame. Further, the frame generation unit 420 constructs a frame by adding a predetermined message ID to the value of the data notified by the data acquisition unit 470, and notifies the frame transmission / reception unit 460.

なお、ECU400b〜400dも、上述したECU400aと基本的に同様の構成を備える。但し、受信IDリスト保持部440に保持される受信IDリストはECU毎に異なる内容となり得る。ECU400bは図9に例示する受信IDリストを保持し、ECU400c及びECU400dは図5に例示する受信IDリストを保持する。また、フレーム処理部410の処理内容は、ECU毎に異なる。例えば、ECU400cにおけるフレーム処理部410の処理内容は、ブレーキがかかっていない状況でドアが開くとアラーム音を鳴らす機能に係る処理を含む。例えば、ECU400b及びECU400dにおけるフレーム処理部410では特段の処理を行わない。なお、各ECUは、ここで例示した以外の機能を備えていても良い。なお、ECU400a〜400dのそれぞれが送信するフレームの内容については後に図10〜図13を用いて説明する。 The ECUs 400b to 400d also have basically the same configuration as the above-mentioned ECU 400a. However, the received ID list held in the received ID list holding unit 440 may have different contents for each ECU. The ECU 400b holds the reception ID list illustrated in FIG. 9, and the ECU 400c and the ECU 400d hold the reception ID list illustrated in FIG. Further, the processing content of the frame processing unit 410 is different for each ECU. For example, the processing content of the frame processing unit 410 in the ECU 400c includes a processing related to a function of sounding an alarm sound when the door is opened in a state where the brake is not applied. For example, the frame processing unit 410 in the ECU 400b and the ECU 400d does not perform any special processing. In addition, each ECU may have a function other than those illustrated here. The contents of the frames transmitted by each of the ECUs 400a to 400d will be described later with reference to FIGS. 10 to 13.

[1.9 受信IDリスト例2]
図9は、ECU400a及びECU400bのそれぞれにおいて保持される受信IDリストの一例を示す図である。同図に例示する受信IDリストは、ID(メッセージID)の値が「1」、「2」及び「3」のいずれかであるメッセージIDを含むフレームを選択的に受信して処理するために用いられる。例えば、ECU400aの受信IDリスト保持部440に図9の受信IDリストが保持されていると、メッセージIDが「1」、「2」及び「3」のいずれでもないフレームについては、フレーム解釈部450でのIDフィールド以後のフレームの解釈が中止される。
[1.9 Received ID list example 2]
FIG. 9 is a diagram showing an example of a reception ID list held in each of the ECU 400a and the ECU 400b. The reception ID list illustrated in the figure is for selectively receiving and processing a frame containing a message ID whose ID (message ID) value is any one of "1", "2", and "3". Used. For example, when the reception ID list of FIG. 9 is held in the reception ID list holding unit 440 of the ECU 400a, the frame interpretation unit 450 is used for a frame whose message ID is not any of "1", "2", and "3". Interpretation of frames after the ID field in is stopped.

[1.10 エンジンに係るECU400aの送信フレーム例]
図10は、エンジン401に接続されたECU400aから送信されるフレームにおけるID(メッセージID)及びデータフィールド(データ)の一例を示す図である。ECU400aが送信するフレームのメッセージIDは「1」である。データは、時速(km/時)を表し、最低0(km/時)〜最高180(km/時)までの範囲の値を取り、データ長は1byteである。図10の上行から下行へと、ECU400aから逐次送信される各フレームに対応する各メッセージID及びデータを例示しており、0km/時から1km/時ずつ加速されている様子を表している。
[Example of transmission frame of ECU 400a related to 1.10 engine]
FIG. 10 is a diagram showing an example of an ID (message ID) and a data field (data) in a frame transmitted from the ECU 400a connected to the engine 401. The message ID of the frame transmitted by the ECU 400a is "1". The data represents the speed (km / hour), takes a value in the range of a minimum of 0 (km / hour) to a maximum of 180 (km / hour), and has a data length of 1 byte. From the upper row to the lower row of FIG. 10, each message ID and data corresponding to each frame sequentially transmitted from the ECU 400a are illustrated, and the state of acceleration from 0 km / hour to 1 km / hour is shown.

[1.11 ブレーキに係るECU400bの送信フレーム例]
図11は、ブレーキ402に接続されたECU400bから送信されるフレームにおけるID(メッセージID)及びデータフィールド(データ)の一例を示す図である。ECU400bが送信するフレームのメッセージIDは「2」である。データは、ブレーキのかかり具合を割合(%)で表し、データ長は1byteである。この割合は、ブレーキを全くかけていない状態を0(%)、ブレーキを最大限かけている状態を100(%)としたものである。図11の上行から下行へと、ECU400bから逐次送信される各フレームに対応する各メッセージID及びデータを例示しており、100%から徐々にブレーキを弱めている様子を表している。
[1.11 Example of transmission frame of ECU 400b related to brake]
FIG. 11 is a diagram showing an example of an ID (message ID) and a data field (data) in a frame transmitted from the ECU 400b connected to the brake 402. The message ID of the frame transmitted by the ECU 400b is "2". The data represents the degree of braking as a percentage (%), and the data length is 1 byte. This ratio is 0 (%) when the brake is not applied at all and 100 (%) when the brake is applied to the maximum. From the upper row to the lower row of FIG. 11, each message ID and data corresponding to each frame sequentially transmitted from the ECU 400b are illustrated, and the state in which the brake is gradually weakened from 100% is shown.

[1.12 ドア開閉センサに係るECU400cの送信フレーム例]
図12は、ドア開閉センサ403に接続されたECU400cから送信されるフレームにおけるID(メッセージID)及びデータフィールド(データ)の一例を示す図である。ECU400cが送信するフレームのメッセージIDは「3」である。データは、ドアの開閉状態を表し、データ長は1byteである。データの値は、ドアが開いている状態が「1」、ドアが閉まっている状態が「0」である。図12の上行から下行へと、ECU400cから逐次送信される各フレームに対応する各メッセージID及びデータを例示しており、ドアが開いている状態から次第に閉められた状態へと移った様子を表している。
[1.12 Example of transmission frame of ECU 400c related to door open / close sensor]
FIG. 12 is a diagram showing an example of an ID (message ID) and a data field (data) in a frame transmitted from the ECU 400c connected to the door open / close sensor 403. The message ID of the frame transmitted by the ECU 400c is "3". The data represents the open / closed state of the door, and the data length is 1 byte. The value of the data is "1" when the door is open and "0" when the door is closed. From the upper row to the lower row in FIG. 12, each message ID and data corresponding to each frame sequentially transmitted from the ECU 400c are illustrated, and the state in which the door is gradually closed from the open state is shown. ing.

[1.13 窓開閉センサに係るECU400dの送信フレーム例]
図13は、窓開閉センサ404に接続されたECU400dから送信されるフレームにおけるID(メッセージID)及びデータフィールド(データ)の一例を示す図である。ECU400dが送信するフレームのメッセージIDは「4」である。データは、窓の開閉状態を割合(%)で表し、データ長は1byteである。この割合は、窓が完全に閉まっている状態を0(%)、窓が全開の状態を100(%)としたものである。図13の上行から下行へと、ECU400dから逐次送信される各フレームに対応する各メッセージID及びデータを例示しており、窓が閉まっている状態から徐々に開いていく様子を表している。
[1.13 Example of transmission frame of ECU 400d related to window open / close sensor]
FIG. 13 is a diagram showing an example of an ID (message ID) and a data field (data) in a frame transmitted from the ECU 400d connected to the window opening / closing sensor 404. The message ID of the frame transmitted by the ECU 400d is "4". The data represents the open / closed state of the window as a percentage (%), and the data length is 1 byte. This ratio is 0 (%) when the window is completely closed and 100 (%) when the window is fully open. From the upper row to the lower row of FIG. 13, each message ID and data corresponding to each frame sequentially transmitted from the ECU 400d are illustrated, and the state in which the window is gradually opened from the closed state is shown.

[1.14 不正検知ECU100aの構成]
図14は、不正検知ECU100aの構成図である。不正検知ECU100aは、フレーム送受信部160と、フレーム解釈部150と、不正フレーム検知部130と、正規IDリスト保持部120と、不正検知カウンタ保持部110と、フレーム生成部140とを含んで構成される。これらの各構成要素は、機能的な構成要素であり、その各機能は、不正検知ECU100aにおける通信回路、メモリに格納された制御プログラムを実行するプロセッサ或いはデジタル回路等により実現される。なお、不正検知ECU100bも基本的に同様の構成を備えるが、正規IDリスト保持部120が保持するリスト情報(正規IDリスト)の内容が不正検知ECU100aと不正検知ECU100bとでは異なる。
[1.14 Configuration of fraud detection ECU 100a]
FIG. 14 is a configuration diagram of the fraud detection ECU 100a. The fraud detection ECU 100a includes a frame transmission / reception unit 160, a frame interpretation unit 150, a fraud frame detection unit 130, a regular ID list holding unit 120, a fraud detection counter holding unit 110, and a frame generation unit 140. To. Each of these components is a functional component, and each function is realized by a communication circuit in the fraud detection ECU 100a, a processor that executes a control program stored in a memory, a digital circuit, or the like. The fraud detection ECU 100b basically has the same configuration, but the content of the list information (regular ID list) held by the regular ID list holding unit 120 is different between the fraud detection ECU 100a and the fraud detection ECU 100b.

フレーム送受信部160は、バス500aに対して、CANプロトコルに従ったフレームを送受信する。即ち、フレーム送受信部160は、バス上でのフレームの送信が開始された場合においてフレームを受信する言わば受信部として働き、また、バスにエラーフレーム等を送信する言わば送信部として働く。即ち、フレーム送受信部160は、バス500aからフレームを1bitずつ受信し、フレーム解釈部150に転送する。また、フレーム生成部140より通知を受けたフレームの内容をバス500aに送信する。 The frame transmission / reception unit 160 transmits / receives a frame according to the CAN protocol to the bus 500a. That is, the frame transmission / reception unit 160 functions as a so-called receiving unit that receives a frame when transmission of a frame on the bus is started, and also functions as a so-called transmission unit that transmits an error frame or the like to the bus. That is, the frame transmission / reception unit 160 receives frames one bit at a time from the bus 500a and transfers them to the frame interpretation unit 150. Further, the content of the frame notified by the frame generation unit 140 is transmitted to the bus 500a.

フレーム解釈部150は、フレーム送受信部160よりフレームの値を受け取り、CANプロトコルで規定されているフレームフォーマットにおける各フィールドにマッピングするよう解釈を行う。IDフィールドと判断した値は、不正フレーム検知部130へ転送する。また、フレーム解釈部150は、CANプロトコルに則っていないフレームと判断した場合は、エラーフレームを送信するようにフレーム生成部140へ通知する。また、フレーム解釈部150は、エラーフレームを受信した場合、つまり受け取ったフレームにおける値からエラーフレームになっていると解釈した場合には、それ以降はそのフレームを破棄する、つまりフレームの解釈を中止する。 The frame interpretation unit 150 receives the frame value from the frame transmission / reception unit 160 and interprets it so as to map it to each field in the frame format defined by the CAN protocol. The value determined to be the ID field is transferred to the fraudulent frame detection unit 130. Further, when the frame interpretation unit 150 determines that the frame does not conform to the CAN protocol, the frame interpretation unit 150 notifies the frame generation unit 140 to transmit an error frame. Further, when the frame interpreting unit 150 receives an error frame, that is, interprets that the value in the received frame is an error frame, the frame interpreting unit 150 discards the frame after that, that is, stops interpreting the frame. To do.

不正フレーム検知部130は、フレーム解釈部150から通知されるIDフィールドの値を受け取り、IDフィールドの値が不正を示す所定条件に該当するか否かを判定する。即ち不正フレーム検知部130は、受信されたフレームにおける所定フィールドの内容が不正を示す所定条件に該当するか否かを判定する言わば判定部として機能する。この不正を示す所定条件は、IDフィールドの値が、正規IDリスト保持部120が保持しているメッセージIDのリストに載っていないという条件である。即ち、正規IDリスト保持部120が保持しているメッセージIDのリストに従い、通知されたIDフィールドの値(メッセージID)が不正かどうかの判定を行う。このリスト(つまり後述する正規IDリスト)に載っていないメッセージIDを受信した場合は、不正の検知回数をインクリメントするために、受信したメッセージIDを不正検知カウンタ保持部110へ通知する。また、正規IDリストに載っていないメッセージIDを受信した場合は、エラーフレームを送信するように、フレーム生成部140へ通知する。また、不正の検知回数が一定回数以上に達した場合に、不正検知カウンタ保持部110より通知を受け、該当するメッセージIDを発行する不正なECUが存在することを示すエラー表示メッセージ(フレーム)を送信するようフレーム生成部140へ通知する。エラー表示メッセージのメッセージIDは予め定められており、このメッセージIDのメッセージ(フレーム)をヘッドユニット200が受信してエラー表示を行うようになっている。このエラー表示メッセージについては便宜上説明を省略していたが、エラー表示メッセージのメッセージIDは、ゲートウェイ300及びヘッドユニット200が保持する受信IDリスト、及び、後述する正規IDリストに掲載される。但し、図15、図16ではエラー表示メッセージについてのメッセージIDを省略している。 The fraudulent frame detection unit 130 receives the value of the ID field notified from the frame interpretation unit 150, and determines whether or not the value of the ID field corresponds to a predetermined condition indicating fraud. That is, the fraudulent frame detection unit 130 functions as a so-called determination unit for determining whether or not the content of the predetermined field in the received frame corresponds to a predetermined condition indicating fraud. The predetermined condition indicating this fraud is that the value of the ID field is not included in the list of message IDs held by the regular ID list holding unit 120. That is, it is determined whether or not the value (message ID) of the notified ID field is invalid according to the list of message IDs held by the regular ID list holding unit 120. When a message ID not included in this list (that is, a regular ID list described later) is received, the received message ID is notified to the fraud detection counter holding unit 110 in order to increment the number of fraud detections. Further, when a message ID not listed in the regular ID list is received, the frame generation unit 140 is notified to send an error frame. Further, when the number of fraud detections reaches a certain number or more, an error display message (frame) indicating that there is a fraudulent ECU that receives a notification from the fraud detection counter holding unit 110 and issues the corresponding message ID is displayed. Notify the frame generation unit 140 to transmit. The message ID of the error display message is predetermined, and the head unit 200 receives the message (frame) of this message ID to display the error. Although the description of this error display message has been omitted for convenience, the message ID of the error display message is posted in the reception ID list held by the gateway 300 and the head unit 200, and in the regular ID list described later. However, in FIGS. 15 and 16, the message ID for the error display message is omitted.

正規IDリスト保持部120は、車載ネットワークシステム10においてバス500a上を送信されることとなるフレームに含まれるメッセージIDを予め規定したリストである正規IDリストを保持する(図15、図16参照)。 The regular ID list holding unit 120 holds a regular ID list, which is a list in which message IDs included in a frame to be transmitted on the bus 500a in the vehicle-mounted network system 10 are defined in advance (see FIGS. 15 and 16). ..

不正検知カウンタ保持部110は、メッセージID毎に検知回数をカウントするための不正検知カウンタを保持しており、不正フレーム検知部130からメッセージIDが通知されると、該当する不正検知カウンタをインクリメント(増加)する。不正検知カウンタが一定数(所定回数)以上に達した場合、不正フレーム検知部130に一定数を超えたことを通知する。ここでいう一定数(所定回数)の一例は、CANプロトコルにおける送信エラーカウンタの取り扱い規則に対応して定められた値である。CANプロトコルでは、ECUがエラーフレームによって送信を阻止する度に送信エラーカウンタが8カウントアップする。そして、この結果として送信ノードにおける送信エラーカウンタが128迄カウントアップすれば送信ノードはパッシブ状態に遷移してフレーム送信をしなくなるように規定されている。従って、128/8(=16)より大きな17をこの一定数として定めておけば、CANプロトコルにおける送信エラーカウンタに係る規則を無視した送信ノード(不正なECU)の存在が推定される場合に不正検知ECU100aからエラー表示メッセージが送信されるようになる。なお、不正なフレームを送信する、不正なECUが、CANプロトコルにおける送信エラーカウンタに係る規則に従うものであった場合には、不正検知ECU100aによるエラーフレームの送信によって、不正なECUの送信エラーカウンタは8インクリメントされる。この場合、不正なフレームの送信を繰り返すことで不正なECUの送信エラーカウンタが128まで上昇すると、不正なECUがパッシブ状態に遷移し、不正なECUによる不正なフレームの送信が停止することになる。 The fraud detection counter holding unit 110 holds a fraud detection counter for counting the number of detections for each message ID, and when the message ID is notified from the fraud frame detection unit 130, the corresponding fraud detection counter is incremented ( To increase. When the fraud detection counter reaches a certain number (predetermined number of times) or more, the fraud frame detection unit 130 is notified that the number has exceeded a certain number. An example of a fixed number (predetermined number of times) referred to here is a value determined in accordance with the handling rules of the transmission error counter in the CAN protocol. In the CAN protocol, the transmission error counter counts up by 8 each time the ECU blocks transmission due to an error frame. Then, as a result of this, if the transmission error counter in the transmission node counts up to 128, the transmission node transitions to the passive state and is not specified to transmit frames. Therefore, if 17 larger than 128/8 (= 16) is set as this fixed number, it is illegal when the existence of a transmission node (illegal ECU) that ignores the rules related to the transmission error counter in the CAN protocol is estimated. An error display message will be transmitted from the detection ECU 100a. If the illegal ECU that transmits the illegal frame complies with the rules related to the transmission error counter in the CAN protocol, the transmission error counter of the illegal ECU will be increased by the transmission of the error frame by the fraud detection ECU 100a. It is incremented by 8. In this case, when the transmission error counter of the illegal ECU rises to 128 by repeating the transmission of the illegal frame, the illegal ECU transitions to the passive state, and the transmission of the illegal frame by the illegal ECU is stopped. ..

フレーム生成部140は、フレーム解釈部150から通知されたエラーフレームの送信を指示する通知に従い、エラーフレームを構成し、エラーフレームをフレーム送受信部160へ通知して送信させる。また、フレーム生成部140は、不正フレーム検知部130から通知されたエラーフレームの送信を指示する通知に従い、エラーフレームを構成し、エラーフレームをフレーム送受信部160へ通知して送信させる。更にフレーム生成部140は、不正フレーム検知部130から通知されたエラー表示メッセージの送信を指示する通知に従い、エラー表示メッセージをフレーム送受信部160へ通知して送信させる。 The frame generation unit 140 configures an error frame according to the notification instructing the transmission of the error frame notified from the frame interpretation unit 150, and notifies the frame transmission / reception unit 160 of the error frame and causes the frame transmission / reception unit 160 to transmit the error frame. Further, the frame generation unit 140 configures an error frame according to the notification instructing the transmission of the error frame notified from the fraudulent frame detection unit 130, and notifies the frame transmission / reception unit 160 of the error frame to transmit the error frame. Further, the frame generation unit 140 notifies the frame transmission / reception unit 160 of the error display message and transmits the error display message in accordance with the notification instructing the transmission of the error display message notified from the fraudulent frame detection unit 130.

[1.15 不正検知ECU100aの正規IDリスト例]
図15は、不正検知ECU100aの正規IDリスト保持部120に保持される正規IDリストの一例を示した図である。同図に例示する正規IDリストは、ID(メッセージID)の値が「1」、「2」及び「3」のいずれかであるメッセージIDを含むフレームがバス500aに流れ得ることを示している。
[1.15 Example of regular ID list of fraud detection ECU 100a]
FIG. 15 is a diagram showing an example of a regular ID list held in the regular ID list holding unit 120 of the fraud detection ECU 100a. The regular ID list illustrated in the figure shows that a frame containing a message ID whose ID (message ID) value is any one of "1", "2", and "3" can flow to the bus 500a. ..

[1.16 不正検知ECU100bの正規IDリスト例]
図16は、不正検知ECU100bの正規IDリスト保持部120に保持される正規IDリストの一例を示した図である。同図に例示する正規IDリストは、ID(メッセージID)の値が「1」、「2」、「3」及び「4」のいずれかであるメッセージIDを含むフレームがバス500bに流れ得ることを示している。
[1.16 Example of regular ID list of fraud detection ECU 100b]
FIG. 16 is a diagram showing an example of a regular ID list held in the regular ID list holding unit 120 of the fraud detection ECU 100b. In the regular ID list illustrated in the figure, a frame containing a message ID whose ID (message ID) value is any one of "1", "2", "3", and "4" can flow to the bus 500b. Is shown.

[1.17 不正検知カウンタ保存リスト例]
図17は、メッセージID毎の不正検知カウンタの状態の一例を示す図である。同図の例は、メッセージIDが「4」の不正検知カウンタだけが、不正を一度検知しており、その他のメッセージIDでは一度も検知していないことを示す。即ち、この例はバス500aに本来流れるはずがないメッセージID「4」のメッセージ(フレーム)が一度送信されたことを不正検知ECU100aが検知し、該当するメッセージID「4」に対応する不正検知カウンタを1インクリメントした場合を示している。
[1.17 Fraud detection counter save list example]
FIG. 17 is a diagram showing an example of the state of the fraud detection counter for each message ID. The example in the figure shows that only the fraud detection counter whose message ID is "4" has detected fraud once, and the other message IDs have never detected it. That is, in this example, the fraud detection ECU 100a detects that the message (frame) of the message ID "4" that should not originally flow to the bus 500a has been transmitted once, and the fraud detection counter corresponding to the corresponding message ID "4". Is incremented by 1.

[1.18 不正フレームの検知に係るシーケンス]
以下、上述の構成を備える車載ネットワークシステム10のバス500aに不正なECUが接続された場合について、バス500aに接続された不正検知ECU100a、ECU400a、ECU400b、ゲートウェイ300等の動作について説明する。
[1.18 Sequence related to detection of illegal frames]
Hereinafter, the operations of the fraud detection ECU 100a, ECU 400a, ECU 400b, gateway 300, etc. connected to the bus 500a will be described when a fraudulent ECU is connected to the bus 500a of the vehicle-mounted network system 10 having the above configuration.

図18は、不正検知ECU100aが不正なフレーム(メッセージ)を検知して、他のECUによりその不正なフレームに対応した処理がなされることを阻止する動作例を示すシーケンス図である。同図では、不正なECUが、バス500aにメッセージIDが「4」でデータフィールド(データ)が「255(0xFF)」となるデータフレームを送信する場合の例を示している。ここでの各シーケンスは、各種装置における各処理手順(ステップ)を意味する。 FIG. 18 is a sequence diagram showing an operation example in which the fraud detection ECU 100a detects a fraudulent frame (message) and prevents another ECU from performing a process corresponding to the fraudulent frame. The figure shows an example in which an unauthorized ECU transmits a data frame having a message ID of “4” and a data field (data) of “255 (0xFF)” to the bus 500a. Each sequence here means each processing procedure (step) in various devices.

まず、不正なECUは、メッセージIDが「4」、データが「255(0xFF)」となるデータフレームの送信を開始する(シーケンスS1001)。フレームを構成する各ビットの値は、上述したデータフレームフォーマットに従ってSOF、IDフィールド(メッセージID)といった順に逐次バス500a上に送出される。 First, the unauthorized ECU starts transmitting a data frame having a message ID of "4" and data of "255 (0xFF)" (sequence S1001). The value of each bit constituting the frame is sequentially transmitted onto the bus 500a in the order of SOF, ID field (message ID), etc. according to the above-mentioned data frame format.

不正なECUがIDフィールド(メッセージID)までをバス500aに送出し終えたときにおいて、不正検知ECU100a、ECU400a、ECU400b及びゲートウェイ300はそれぞれメッセージIDを受信する(シーケンスS1002)。 When the fraudulent ECU finishes sending the ID field (message ID) to the bus 500a, the fraud detection ECU 100a, the ECU 400a, the ECU 400b, and the gateway 300 each receive the message ID (sequence S1002).

ECU400a、ECU400b及びゲートウェイ300はそれぞれ、保持している受信IDリストを用いてメッセージIDをチェックする(シーケンスS1003)。このとき、不正検知ECU100aは、保持している正規IDリストを用いてメッセージIDをチェックする(シーケンスS1004)。即ち、不正検知ECU100aは、送信されたフレームにおけるIDフィールドの内容が、不正を示す所定条件(正規IDリストに掲載されていないこと)に該当するか否かを判定する。 Each of the ECU 400a, the ECU 400b, and the gateway 300 checks the message ID using the received reception ID list held (sequence S1003). At this time, the fraud detection ECU 100a checks the message ID using the held regular ID list (sequence S1004). That is, the fraud detection ECU 100a determines whether or not the content of the ID field in the transmitted frame corresponds to a predetermined condition indicating fraud (not listed in the regular ID list).

シーケンスS1003において、ECU400a及びECU400bは、それぞれが保持している受信IDリストに「4」が含まれていないため(図9参照)、受信を終了する。つまりこれ以上不正なECUが送信を継続するフレームの解釈をせずフレームに対応した処理を行わない。また、シーケンスS1003においてゲートウェイ300は、保持している受信IDリストに「4」が含まれているため(図5参照)、受信を継続する。また、シーケンスS1004において不正検知ECU100aは、保持している正規IDリストに「4」が含まれていないため、不正なメッセージIDであると判断して、続いてエラーフレームの発行準備を開始する(シーケンスS1005)。 In the sequence S1003, the ECU 400a and the ECU 400b end the reception because "4" is not included in the reception ID list held by each of the ECU 400a and the ECU 400b (see FIG. 9). That is, the illegal ECU does not interpret the frame in which the transmission is continued and does not perform the processing corresponding to the frame. Further, in the sequence S1003, the gateway 300 continues reception because "4" is included in the received reception ID list held (see FIG. 5). Further, in the sequence S1004, the fraud detection ECU 100a determines that the message ID is invalid because "4" is not included in the held regular ID list, and subsequently starts the preparation for issuing the error frame (the error frame issuance preparation is started). Sequence S1005).

シーケンスS1003に続いて、ゲートウェイ300はフレームの受信を継続する。例えば、不正検知ECU100aがエラーフレームの発行準備をしている間に、不正なECUからはバス500a上にIDフィールドより後の部分であるRTR、コントロールフィールド(IDE、r、DLC)が逐次送出され、続いてデータフィールドが1ビットずつ逐次送出される。ゲートウェイ300はこのRTR、コントロールフィールド(IDE、r、DLC)を受信し、続いてデータフィールドの受信を開始する(シーケンスS1006)。 Following the sequence S1003, the gateway 300 continues to receive frames. For example, while the fraud detection ECU 100a is preparing to issue an error frame, the fraudulent ECU sequentially sends RTRs and control fields (IDE, r, DLC), which are parts after the ID field, onto the bus 500a. Then, the data field is sequentially transmitted bit by bit. The gateway 300 receives the RTR and control fields (IDE, r, DLC), and then starts receiving data fields (sequence S1006).

次にエラーフレームの発行準備が終わって、不正検知ECU100aがエラーフレームを送信する(シーケンスS1007)。このエラーフレームの送信は、不正なフレームの最後尾が送信される前(例えばCRCシーケンスの最後尾が送信される前等)に行われる。この動作例においては、データフィールドの途中で行われる。このエラーフレームの送信が開始されることによりバス500aでは、不正なECUから送信中のフレームのデータフィールドの途中部分がエラーフレーム(優先されるドミナントのビット列)により上書きされることになる。 Next, the preparation for issuing the error frame is completed, and the fraud detection ECU 100a transmits the error frame (sequence S1007). This error frame is transmitted before the end of the invalid frame is transmitted (for example, before the end of the CRC sequence is transmitted). In this operation example, it is performed in the middle of the data field. When the transmission of this error frame is started, in the bus 500a, the middle part of the data field of the frame being transmitted from the illegal ECU is overwritten by the error frame (priority dominant bit string).

シーケンスS1007において送信されたエラーフレームを受信したゲートウェイ300は、データフィールドの受信途中で不正なECUが送信していたフレームの受信を中止する(シーケンスS1008)。つまり、ゲートウェイ300は、不正なECUからのデータフィールドがエラーフレームで上書きされており、エラーフレームを検出するので、不正なECUが送信していたフレームの受信を継続しない。 The gateway 300 that has received the error frame transmitted in the sequence S1007 stops receiving the frame transmitted by the invalid ECU during the reception of the data field (sequence S1008). That is, since the data field from the illegal ECU is overwritten by the error frame and the gateway 300 detects the error frame, the gateway 300 does not continue to receive the frame transmitted by the illegal ECU.

不正検知ECU100aは、エラーフレームを送信する対象となったデータフレームのメッセージID「4」に対応する不正検知カウンタをインクリメントする(シーケンスS1009)。 The fraud detection ECU 100a increments the fraud detection counter corresponding to the message ID “4” of the data frame to which the error frame is transmitted (sequence S1009).

インクリメントした結果としてメッセージID「4」に対応する不正検知カウンタが17以上となった場合、不正検知ECU100aは、ヘッドユニット200に受信されるようにエラー表示を通知するフレーム(エラー表示メッセージ)を送信する(シーケンスS1010)。この結果としてヘッドユニット200のフレーム処理部220によってエラー表示のための処理がなされLCD等を介してエラーが報知される。なお、エラーの報知は、LCD等への表示の他、音声出力、発光等によるものでも良い。 When the fraud detection counter corresponding to the message ID "4" becomes 17 or more as a result of the increment, the fraud detection ECU 100a transmits a frame (error display message) for notifying the error display so as to be received by the head unit 200. (Sequence S1010). As a result, the frame processing unit 220 of the head unit 200 performs processing for displaying an error, and the error is notified via the LCD or the like. In addition to the display on the LCD or the like, the error notification may be by voice output, light emission, or the like.

[1.19 実施の形態1の効果]
実施の形態1で示した不正検知ECUは、送信されたフレーム(データフレーム)が不正なフレームか否かを、フレームのIDフィールドについて正規IDリストを用いて判定する。これにより、データフレームにおけるIDフィールドによって不正を判定できるため、既存のノード(つまり不正検知ECU及び不正なECU以外のECU)において不正なフレームが解釈されてそのフレームに対応する処理が実行されることを阻止できる。また、データフレームの先頭のSOFに続くIDフィールドまで受信するだけで判定ができるため、データフレームの後部等を受信して判定を行う場合よりも、バスのトラフィックを抑えることが可能となる。
[Effect of 1.19 Embodiment 1]
The fraud detection ECU shown in the first embodiment determines whether or not the transmitted frame (data frame) is a fraudulent frame by using a regular ID list for the ID field of the frame. As a result, fraud can be determined by the ID field in the data frame, so that the fraud detection ECU and the ECU other than the fraud ECU interpret the fraudulent frame and execute the process corresponding to the frame. Can be blocked. Further, since the determination can be made only by receiving the ID field following the SOF at the beginning of the data frame, it is possible to suppress the bus traffic as compared with the case of receiving the rear part of the data frame and making the determination.

また、不正検知ECUが、不正検知カウンタを用いてエラーフレームを送信した回数をカウントすることで、エラーフレームの受信により不正なメッセージIDを送信するノードにおける送信エラーカウンタがCANプロトコルに従えばパッシブ状態に遷移すべき上限値まで到達していることを検出することができる。これにより、不正なメッセージIDを送信するノードが、CANプロトコルのエラーカウンタの仕様に準拠しているか否かを判定することが可能となる。 Further, the fraud detection ECU counts the number of times the error frame is transmitted by using the fraud detection counter, so that the transmission error counter in the node that transmits the fraudulent message ID by receiving the error frame is in a passive state if it follows the CAN protocol. It can be detected that the upper limit value to be transitioned to is reached. This makes it possible to determine whether or not the node that transmits the invalid message ID complies with the specifications of the error counter of the CAN protocol.

また、不正なフレームの判定を行うノードを不正検知ECUのみとすることで、既存のネットワーク構成への影響を最小限に抑えることができ、システム全体として処理量、電力消費量を抑えることができる。 Further, by limiting the node that determines the fraudulent frame to the fraud detection ECU only, the influence on the existing network configuration can be minimized, and the processing amount and power consumption of the entire system can be suppressed. ..

(実施の形態2)
以下、本発明の実施の形態として、メッセージID毎に許容されるデータ範囲に基づいて、他のノード(ECU)において不正なフレームに基づく処理が実行されることを阻止するための不正対処方法を実現する不正検知ECUを含む車載ネットワークシステム11について説明する。
(Embodiment 2)
Hereinafter, as an embodiment of the present invention, a fraudulent countermeasure method for preventing processing based on a fraudulent frame from being executed on another node (ECU) based on a data range allowed for each message ID will be provided. The in-vehicle network system 11 including the fraud detection ECU to be realized will be described.

[2.1 車載ネットワークシステム11の全体構成]
図19は、実施の形態2に係る車載ネットワークシステム11の全体構成を示す図である。車載ネットワークシステム11は、実施の形態1で示した車載ネットワークシステム10の一部を変形したものである。車載ネットワークシステム11は、バス500a、500bと、不正検知ECU2100a、2100b、ヘッドユニット200、ゲートウェイ300、及び、各種機器に接続されたECU400a〜400d等のECUといったバスに接続された各ノードとを含んで構成される。車載ネットワークシステム11の構成要素のうち、実施の形態1と同様の機能を有する構成要素は、同じ符号を付して説明を省略する。
[2.1 Overall configuration of in-vehicle network system 11]
FIG. 19 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 a part of the in-vehicle network system 10 shown in the first embodiment. The in-vehicle network system 11 includes buses 500a and 500b, and each node connected to the bus such as fraud detection ECUs 2100a and 2100b, a head unit 200, a gateway 300, and ECUs such as ECUs 400a to 400d connected to various devices. Consists of. Among the components of the in-vehicle network system 11, the components having the same functions as those in the first embodiment are designated by the same reference numerals, and the description thereof will be omitted.

不正検知ECU2100a、2100bは、それぞれバス500a、バス500bに接続され、ECU400a〜400d等により送信されたフレームが不正であるかどうかを判定し、不正であればエラーフレームを送信する機能を有するECUである。 The fraud detection ECUs 2100a and 2100b are ECUs that are connected to the bus 500a and the bus 500b, respectively, and have a function of determining whether or not the frames transmitted by the ECUs 400a to 400d are invalid, and if they are invalid, transmitting an error frame. is there.

[2.2 不正検知ECU2100aの構成]
図20は、不正検知ECU2100aの構成図である。不正検知ECU2100aは、フレーム送受信部160と、フレーム解釈部2150と、不正フレーム検知部2130と、データ範囲リスト保持部2120と、不正検知カウンタ保持部110と、フレーム生成部140とを含んで構成される。これらの各構成要素は、機能的な構成要素であり、その各機能は、不正検知ECU2100aにおける通信回路、メモリに格納された制御プログラムを実行するプロセッサ或いはデジタル回路等により実現される。不正検知ECU2100aは、実施の形態1で示した不正検知ECU100aの一部を変形したものであり、実施の形態1と同様の機能を有する構成要素は、同じ符号を付して説明を省略する。なお、不正検知ECU2100bも不正検知ECU2100aと同様の構成を備える。
[2.2 Configuration of fraud detection ECU 2100a]
FIG. 20 is a configuration diagram of the fraud detection ECU 2100a. The fraud detection ECU 2100a includes a frame transmission / reception unit 160, a frame interpretation unit 2150, a fraud frame detection unit 2130, a data range list holding unit 2120, a fraud detection counter holding unit 110, and a frame generation unit 140. To. Each of these components is a functional component, and each function is realized by a communication circuit in the fraud detection ECU 2100a, a processor that executes a control program stored in a memory, a digital circuit, or the like. The fraud detection ECU 2100a is a modification of a part of the fraud detection ECU 100a shown in the first embodiment, and components having the same functions as those of the first embodiment are designated by the same reference numerals and the description thereof will be omitted. The fraud detection ECU 2100b also has the same configuration as the fraud detection ECU 2100a.

フレーム解釈部2150は、実施の形態1で示したフレーム解釈部150を変形したものであり、フレーム送受信部160よりフレームの値を受け取り、CANプロトコルで規定されているフレームフォーマットにおける各フィールドにマッピングするよう解釈を行う。フレームがデータフレームであると判断した場合においてデータフィールドと判断した値(データ)は、IDフィールドのID(メッセージID)と共に、不正フレーム検知部2130へ転送する。また、フレーム解釈部2150は、CANプロトコルに則っていないフレームと判断した場合は、エラーフレームを送信するようにフレーム生成部140へ通知する。また、フレーム解釈部2150は、エラーフレームを受信した場合、つまり受け取ったフレームにおける値からエラーフレームになっていると解釈した場合には、それ以降はそのフレームを破棄する、つまりフレームの解釈を中止する。 The frame interpretation unit 2150 is a modification of the frame interpretation unit 150 shown in the first embodiment, receives a frame value from the frame transmission / reception unit 160, and maps it to each field in the frame format specified by the CAN protocol. Interpret as. When it is determined that the frame is a data frame, the value (data) determined to be a data field is transferred to the fraudulent frame detection unit 2130 together with the ID (message ID) of the ID field. Further, when the frame interpretation unit 2150 determines that the frame does not conform to the CAN protocol, the frame interpretation unit 2150 notifies the frame generation unit 140 to transmit an error frame. Further, when the frame interpreting unit 2150 receives an error frame, that is, when it interprets that the value in the received frame is an error frame, the frame interpreting unit 2150 discards the frame after that, that is, stops interpreting the frame. To do.

不正フレーム検知部2130は、実施の形態1で示した不正フレーム検知部130を変形したものであり、フレーム解釈部2150から通知されるメッセージIDと、データフィールドの値(データ)を受け取り、これらの値が不正を示す所定条件に該当するか否かを判定する。即ち不正フレーム検知部2130は、受信されたフレームにおける所定フィールドの内容が不正を示す所定条件に該当するか否かを判定する言わば判定部として機能する。この不正を示す所定条件は、データが、データ範囲リスト保持部2120が保持しているデータ範囲リストにメッセージIDと対応付けて載っているデータ範囲に入らないという条件である。不正フレーム検知部2130は、データ範囲リスト保持部2120に保持しているメッセージID毎のデータ範囲を定めたリストであるデータ範囲リストに従い、不正かどうかの判定を行う。不正フレーム検知部2130は、データ範囲リストで示される範囲以外のデータを受信した場合は、不正の検知回数をインクリメントするために、受信したメッセージIDを不正検知カウンタ保持部110へ通知する。この不正の検知回数が一定回数以上に達した場合において、ヘッドユニット200で受信されるようにエラー表示メッセージを送信するための制御については実施の形態1で説明した通りであるため、ここでの説明を省略する。また、データ範囲リストで示される範囲以外のデータを受信した場合は、エラーフレームを送信するように、フレーム生成部140へ通知する。 The fraudulent frame detection unit 2130 is a modification of the fraudulent frame detection unit 130 shown in the first embodiment, and receives the message ID notified from the frame interpretation unit 2150 and the value (data) of the data field, and these It is determined whether or not the value corresponds to a predetermined condition indicating invalidity. That is, the fraudulent frame detection unit 2130 functions as a so-called determination unit for determining whether or not the content of the predetermined field in the received frame corresponds to a predetermined condition indicating fraud. The predetermined condition indicating this fraud is a condition that the data does not fall into the data range listed in the data range list held by the data range list holding unit 2120 in association with the message ID. The fraudulent frame detection unit 2130 determines whether or not the data range list is fraudulent according to a data range list that defines the data range for each message ID held in the data range list holding unit 2120. When the fraud frame detection unit 2130 receives data outside the range indicated in the data range list, the fraud frame detection unit 2130 notifies the fraud detection counter holding unit 110 of the received message ID in order to increment the number of fraud detections. When the number of times of detection of this fraud reaches a certain number of times or more, the control for transmitting the error display message so as to be received by the head unit 200 is as described in the first embodiment. The explanation is omitted. Further, when data other than the range indicated by the data range list is received, the frame generation unit 140 is notified to transmit an error frame.

データ範囲リスト保持部2120は、車載ネットワークシステム11においてバス上を送信されるデータフレームに含まれるデータ(データフィールドの値)について許容される範囲を予め規定したリストであるデータ範囲リストを保持する(図21参照)。 The data range list holding unit 2120 holds a data range list which is a list in which an allowable range is predetermined for data (value of a data field) included in a data frame transmitted on a bus in the in-vehicle network system 11 ( (See FIG. 21).

[2.3 データ範囲リスト例]
図21は、不正検知ECU2100aのデータ範囲リスト保持部2120に保持されるデータ範囲リストの一例を示した図である。このデータ範囲リストは、各ID(メッセージID)と、そのメッセージIDのデータフレームにおけるデータフィールドの値(データ)として許容されるデータ範囲とを対応付けたものである。図21の例では、メッセージIDが「1」のデータフレームについては、データ範囲「0〜180」、メッセージIDが「2」又は「4」のデータフレームについては、データ範囲「0〜100」、メッセージIDが「3」のデータフレームについて、データ範囲「0、1」をそれぞれ正常としている。
[2.3 Data range list example]
FIG. 21 is a diagram showing an example of a data range list held in the data range list holding unit 2120 of the fraud detection ECU 2100a. This data range list associates each ID (message ID) with a data range that is allowed as a value (data) of a data field in the data frame of the message ID. In the example of FIG. 21, the data range is "0 to 180" for the data frame having the message ID "1", and the data range "0 to 100" is used for the data frame having the message ID "2" or "4". For the data frame whose message ID is "3", the data range "0, 1" is set to normal.

[2.4 不正フレームの検知に係るシーケンス]
以下、上述の構成を備える車載ネットワークシステム11のバス500aに不正なECUが接続された場合について、バス500aに接続された不正検知ECU2100a、ECU400a、ECU400b、ゲートウェイ300等の動作について説明する。
[2.4 Sequence related to detection of illegal frames]
Hereinafter, the operations of the fraud detection ECU 2100a, ECU 400a, ECU 400b, gateway 300, etc. connected to the bus 500a will be described when a fraudulent ECU is connected to the bus 500a of the vehicle-mounted network system 11 having the above configuration.

図22及び図23は、不正検知ECU2100aが不正なフレーム(メッセージ)を検知して、他のECUによりその不正なフレームに対応した処理がなされることを阻止する動作例を示すシーケンス図である。図22及び図23では、実施の形態1で示した図18の場合と同様に、不正なECUが、バス500aにメッセージIDが「4」でデータフィールド(データ)が「255(0xFF)」となるデータフレームを送信する場合の例を示している。実施の形態1で示したシーケンスと同じシーケンスには同じ符号を付しており、ここでは説明を簡略化する。 22 and 23 are sequence diagrams showing an operation example in which the fraud detection ECU 2100a detects a fraudulent frame (message) and prevents another ECU from performing a process corresponding to the fraudulent frame. In FIGS. 22 and 23, as in the case of FIG. 18 shown in the first embodiment, an unauthorized ECU indicates that the message ID is “4” and the data field (data) is “255 (0xFF)” on the bus 500a. An example of transmitting a data frame is shown. The same sequences as those shown in the first embodiment are designated by the same reference numerals, and the description thereof will be simplified here.

まず、不正なECUは、不正なデータフレームの送信を開始する(シーケンスS1001)。不正検知ECU2100a、ECU400a、ECU400b及びゲートウェイ300はそれぞれメッセージIDを受信する(シーケンスS1002)。ECU400a、ECU400b及びゲートウェイ300はそれぞれ、保持している受信IDリストを用いてメッセージIDをチェックする(シーケンスS1003)。ECU400a及びECU400bは、それぞれが保持している受信IDリストに「4」が含まれていないため(図9参照)、受信を終了する。ゲートウェイ300は、保持している受信IDリストに「4」が含まれているため(図5参照)、受信を継続しデータフィールドの受信を行う(シーケンスS1006a)。同様に不正検知ECU2100aもデータフィールドの受信を行う(シーケンスS1006a)。 First, the illegal ECU starts transmitting an illegal data frame (sequence S1001). The fraud detection ECU 2100a, ECU 400a, ECU 400b and gateway 300 each receive a message ID (sequence S1002). Each of the ECU 400a, the ECU 400b, and the gateway 300 checks the message ID using the received reception ID list held (sequence S1003). Since "4" is not included in the reception ID list held by each of the ECU 400a and the ECU 400b (see FIG. 9), the reception is terminated. Since the gateway 300 includes "4" in the received reception ID list held (see FIG. 5), the gateway 300 continues the reception and receives the data field (sequence S1006a). Similarly, the fraud detection ECU 2100a also receives the data field (sequence S1006a).

シーケンスS1006aに続いて、不正検知ECU2100aは、データ範囲リスト(図21参照)を用いて、データフィールドのデータをチェックする(シーケンスS2001)。即ち、不正検知ECU2100aは、送信されたフレームにおけるIDフィールドの内容が、不正を示す所定条件(データ範囲リストに記載されているデータの範囲に入らないこと)に該当するか否かを判定する。不正検知ECU2100aは、データ範囲リストにおいてID「4」に対応する「255(0xFF)」の値が記載されていないため、不正なデータフレームであると判断し、続いてエラーフレームの発行準備を開始する(シーケンスS1005)。 Following the sequence S1006a, the fraud detection ECU 2100a checks the data in the data field using the data range list (see FIG. 21) (sequence S2001). That is, the fraud detection ECU 2100a determines whether or not the content of the ID field in the transmitted frame corresponds to a predetermined condition indicating fraud (not within the range of data described in the data range list). The fraud detection ECU 2100a determines that the data frame is invalid because the value of "255 (0xFF)" corresponding to the ID "4" is not described in the data range list, and then starts preparing for issuing an error frame. (Sequence S1005).

不正検知ECU2100aがエラーフレームの発行準備をしている間に、不正なECUからはバス500a上にデータフィールドより後の部分であるCRCフィールド(CRCシーケンス及びCRCデリミタ)が1ビットずつ逐次送出される。ゲートウェイ300はこのCRCフィールドの受信を開始する(シーケンスS2002)。 While the fraud detection ECU 2100a is preparing to issue an error frame, a CRC field (CRC sequence and CRC delimiter), which is a part after the data field, is sequentially transmitted bit by bit from the fraudulent ECU on the bus 500a. .. The gateway 300 starts receiving this CRC field (sequence S2002).

次にエラーフレームの発行準備が終わって、不正検知ECU2100aがエラーフレームを送信する(シーケンスS1007)。このエラーフレームの送信が開始されることによりバス500aでは、不正なECUから送信中のフレームのCRCシーケンスの途中部分がエラーフレーム(優先されるドミナントのビット列)により上書きされることになる。 Next, the preparation for issuing the error frame is completed, and the fraud detection ECU 2100a transmits the error frame (sequence S1007). When the transmission of the error frame is started, in the bus 500a, the middle part of the CRC sequence of the frame being transmitted from the invalid ECU is overwritten by the error frame (priority dominant bit string).

シーケンスS1007において送信されたエラーフレームを受信したゲートウェイ300は、CRCシーケンスを含むCRCフィールドの受信途中で、不正なECUが送信していたデータフレームの受信を中止する(シーケンスS2003)。つまり、ゲートウェイ300は、不正なECUからのCRCシーケンスがエラーフレームで上書きされており、エラーフレームを検出するので、不正なECUが送信していたデータフレームの受信を継続しない。 The gateway 300 that has received the error frame transmitted in the sequence S1007 stops receiving the data frame transmitted by the invalid ECU during the reception of the CRC field including the CRC sequence (sequence S2003). That is, the gateway 300 does not continue to receive the data frame transmitted by the illegal ECU because the CRC sequence from the illegal ECU is overwritten with the error frame and the error frame is detected.

不正検知ECU2100aは、エラーフレームを送信する対象となったデータフレームのID「4」に対応する不正検知カウンタをインクリメントする(シーケンスS1009)。インクリメントした結果としてID「4」に対応する不正検知カウンタが17以上となった場合、不正検知ECU2100aは、エラー表示メッセージを送信する(シーケンスS1010)。 The fraud detection ECU 2100a increments the fraud detection counter corresponding to the ID “4” of the data frame to which the error frame is transmitted (sequence S1009). When the fraud detection counter corresponding to the ID "4" becomes 17 or more as a result of the increment, the fraud detection ECU 2100a transmits an error display message (sequence S1010).

[2.5 実施の形態2の効果]
実施の形態2で示した不正検知ECUは、送信されたフレームが不正なフレームか否かを、フレーム(データフレーム)のIDフィールド及びデータフィールドについてデータ範囲リストを用いて判定する。これにより、データフレームにおけるIDフィールドとデータフィールドとの組み合わせによって不正を判定できるため、既存のECU(つまり不正検知ECU及び不正なECU以外のECU)において不正なフレームが解釈されてそのフレームに対応する処理が実行されることを阻止することができる。また、データフレームのデータフィールドまで受信するだけで判定ができるため、データフレームの後部を受信して判定を行う場合よりも、バスのトラフィックを抑えることが可能となる。
[2.5 Effect of Embodiment 2]
The fraud detection ECU shown in the second embodiment determines whether or not the transmitted frame is a fraudulent frame by using a data range list for the ID field and the data field of the frame (data frame). As a result, fraud can be determined by the combination of the ID field and the data field in the data frame, so that the fraudulent frame is interpreted by the existing ECU (that is, the fraud detection ECU and the ECU other than the fraudulent ECU) and corresponds to the frame. It is possible to prevent the process from being executed. Further, since the judgment can be made only by receiving the data field of the data frame, it is possible to suppress the bus traffic as compared with the case where the judgment is made by receiving the rear part of the data frame.

また、不正検知ECUが、不正検知カウンタを用いてエラーフレームを送信した回数をカウントすることで、エラーフレームの受信により不正なメッセージIDを送信するノードにおける送信エラーカウンタがCANプロトコルに従えばパッシブ状態に遷移すべき上限値まで到達していることを検出することができる。これにより、不正なメッセージIDを送信するノードが、CANプロトコルのエラーカウンタの仕様に準拠しているか否かを判定することが可能となる。 Further, the fraud detection ECU counts the number of times the error frame is transmitted by using the fraud detection counter, so that the transmission error counter in the node that transmits the fraudulent message ID by receiving the error frame is in a passive state if it follows the CAN protocol. It can be detected that the upper limit value to be transitioned to is reached. This makes it possible to determine whether or not the node that transmits the invalid message ID complies with the specifications of the error counter of the CAN protocol.

また、不正なフレームの判定を行うノードを不正検知ECUのみとすることで、既存のネットワーク構成への影響を最小限に抑えることができ、システム全体として処理量、電力消費量を抑えることができる。 Further, by limiting the node that determines the fraudulent frame to the fraud detection ECU only, the influence on the existing network configuration can be minimized, and the processing amount and power consumption of the entire system can be suppressed. ..

(実施の形態3)
以下、本発明の実施の形態として、メッセージID、データ及びカウンタ値から算出されるメッセージ認証コード(MAC:Message Authentication Code)を用いて、他のノード(ECU)において不正なフレームに基づく処理が実行されることを阻止するための不正対処方法を実現する不正検知ECUを含む車載ネットワークシステム12について説明する。
(Embodiment 3)
Hereinafter, as an embodiment of the present invention, a process based on an invalid frame is executed on another node (ECU) using a message authentication code (MAC) calculated from a message ID, data, and a counter value. An in-vehicle network system 12 including a fraud detection ECU that realizes a fraud countermeasure method for preventing fraud will be described.

[3.1 車載ネットワークシステム12の全体構成]
図24は、実施の形態3に係る車載ネットワークシステム12の全体構成を示す図である。車載ネットワークシステム12は、実施の形態1で示した車載ネットワークシステム10の一部を変形したものである。車載ネットワークシステム12は、バス500a、500bと、不正検知ECU3100a、3100b、ヘッドユニット200、ゲートウェイ300、及び、各種機器に接続されたECU3400a〜3400d等のECUといったバスに接続された各ノードとを含んで構成される。車載ネットワークシステム12の構成要素のうち、実施の形態1と同様の機能を有する構成要素は、同じ符号を付して説明を省略する。
[3.1 Overall configuration of in-vehicle network system 12]
FIG. 24 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 a part of the in-vehicle network system 10 shown in the first embodiment. The in-vehicle network system 12 includes buses 500a and 500b, and each node connected to a bus such as fraud detection ECUs 3100a and 3100b, a head unit 200, a gateway 300, and ECUs such as ECUs 3400a to 3400d connected to various devices. Consists of. Among the components of the in-vehicle network system 12, the components having the same functions as those in the first embodiment are designated by the same reference numerals and the description thereof will be omitted.

不正検知ECU3100a、3100bは、それぞれバス500a、バス500bに接続され、ECU3400a〜3400d等により送信されたフレームが不正であるかどうかを判定し、不正であればエラーフレームを送信する機能を有するECUである。 The fraud detection ECUs 3100a and 3100b are ECUs that are connected to the bus 500a and the bus 500b, respectively, and have a function of determining whether or not the frame transmitted by the ECUs 3400a to 3400d is invalid, and if it is invalid, transmitting an error frame. is there.

ECU3400a〜3400dは、いずれかのバスと接続され、また、それぞれエンジン401、ブレーキ402、ドア開閉センサ403、窓開閉センサ404に接続されている。ECU3400a〜3400dのそれぞれは、接続されている機器(エンジン401等)の状態を取得し、定期的に状態を表すデータフレームをネットワーク(つまりバス)に送信している。送信されるデータフレームのデータフィールドには、メッセージIDとデータ値と送信毎にインクリメントされるカウンタ値とから計算により導出されるメッセージ認証コード(MAC)が付与される。 The ECUs 3400a to 3400d are connected to any of the buses, and are also connected to the engine 401, the brake 402, the door open / close sensor 403, and the window open / close sensor 404, respectively. Each of the ECUs 3400a to 3400d acquires the state of the connected device (engine 401, etc.) and periodically transmits a data frame indicating the state to the network (that is, the bus). A message authentication code (MAC) derived by calculation from a message ID, a data value, and a counter value that is incremented for each transmission is assigned to the data field of the transmitted data frame.

[3.2 ECU3400aの構成]
図25は、ECU3400aの構成図である。ECU3400aは、フレーム送受信部460と、フレーム解釈部450と、受信ID判断部430と、受信IDリスト保持部440と、フレーム処理部410と、フレーム生成部3420と、データ取得部470と、MAC生成部3410と、MAC鍵保持部3430と、カウンタ保持部3440とを含んで構成される。これらの各構成要素は、機能的な構成要素であり、その各機能は、ECU3400aにおける通信回路、メモリに格納された制御プログラムを実行するプロセッサ或いはデジタル回路等により実現される。ECU3400aは、実施の形態1で示したECU400aの一部を変形したものであり、実施の形態1と同様の機能を有する構成要素は、同じ符号を付して説明を省略する。
[3.2 Configuration of ECU 3400a]
FIG. 25 is a configuration diagram of the ECU 3400a. The ECU 3400a includes a frame transmission / reception unit 460, a frame interpretation unit 450, a reception ID determination unit 430, a reception ID list holding unit 440, a frame processing unit 410, a frame generation unit 3420, a data acquisition unit 470, and a MAC generation. A unit 3410, a MAC key holding unit 3430, and a counter holding unit 3440 are included. Each of these components is a functional component, and each function is realized by a communication circuit in the ECU 3400a, a processor that executes a control program stored in a memory, a digital circuit, or the like. The ECU 3400a is a modification of a part of the ECU 400a shown in the first embodiment, and components having the same functions as those of the first embodiment are designated by the same reference numerals and the description thereof will be omitted.

フレーム生成部3420は、実施の形態1で示したフレーム生成部420の一部を変形したものである。フレーム生成部3420は、フレーム解釈部450から通知されたエラーフレームの送信を指示する通知に従い、エラーフレームを構成し、エラーフレームをフレーム送受信部460へ通知して送信させる。また、フレーム生成部3420は、データ取得部470より通知されたデータの値と予め定められたメッセージIDとをMAC生成部3410へ通知して、算出されたMACを受け取る。フレーム生成部3420は、予め定められたメッセージIDとデータ取得部470より通知されたデータの値とMAC生成部3410から受け取ったMACとを含むようにフレームを構成し(図26参照)、フレーム送受信部460へ通知する。 The frame generation unit 3420 is a modification of a part of the frame generation unit 420 shown in the first embodiment. The frame generation unit 3420 configures an error frame according to the notification instructing the transmission of the error frame notified from the frame interpretation unit 450, and notifies the frame transmission / reception unit 460 of the error frame to transmit the error frame. Further, the frame generation unit 3420 notifies the MAC generation unit 3410 of the value of the data notified from the data acquisition unit 470 and the predetermined message ID, and receives the calculated MAC. The frame generation unit 3420 configures a frame so as to include a predetermined message ID, a data value notified from the data acquisition unit 470, and a MAC received from the MAC generation unit 3410 (see FIG. 26), and sends and receives frames. Notify department 460.

MAC生成部3410は、フレーム生成部3420より通知されるメッセージIDとデータの値と、カウンタ保持部3440で保持するカウンタ値とを結合した値(結合値)に対し、MAC鍵保持部3430で保持するMAC鍵を用いて、MACを算出(計算により導出)して、この算出した結果であるMACをフレーム生成部3420へと通知する。ここではMACの計算方法として、HMAC(Hash-based Message Authentication Code)(非特許文献2参照)を採用し、上述した結合値に対し、所定のブロック分(例えば4bytes)までパディングした値でMAC鍵を使って計算し、出てきた計算結果の先頭4bytesをMACとする。なお、ここでは、MACを算出するために用いる結合値は、メッセージIDとデータの値とカウンタ保持部3440で保持するカウンタ値とを使用しているが、これらの3つのうち、いずれか1つ又は2つの組み合わせを用いてMACを算出しても良い。 The MAC generation unit 3410 holds the message ID and data values notified by the frame generation unit 3420 and the counter value held by the counter holding unit 3440 in the MAC key holding unit 3430 with respect to the combined value (combined value). The MAC is calculated (derived by calculation) using the MAC key to be used, and the MAC resulting from the calculation is notified to the frame generation unit 3420. Here, HMAC (Hash-based Message Authentication Code) (see Non-Patent Document 2) is adopted as the MAC calculation method, and the MAC key is a value padded up to a predetermined block (for example, 4 bytes) with respect to the above-mentioned combined value. Is calculated using, and the first 4 bytes of the calculated result is MAC. Here, as the coupling value used for calculating the MAC, the message ID, the data value, and the counter value held by the counter holding unit 3440 are used, but any one of these three is used. Alternatively, the MAC may be calculated using a combination of the two.

MAC鍵保持部3430は、MACを計算するため必要となるMAC鍵を保持する。 The MAC key holding unit 3430 holds the MAC key required for calculating the MAC.

カウンタ保持部3440は、MACを計算するために必要となるカウンタ値を保持する。なお、このカウンタ値は、フレーム送受信部460においてデータフレームが正常に送信された度にインクリメントされる。 The counter holding unit 3440 holds a counter value required for calculating the MAC. The counter value is incremented each time the data frame is normally transmitted in the frame transmission / reception unit 460.

なお、ECU3400b〜3400dは、それぞれ実施の形態1で示したECU400b〜400dの一部を変形したものであり、上述したECU3400aと基本的に同様の構成を備える。但し、受信IDリスト保持部440に保持される受信IDリストはECU毎に異なる内容となり得る。例えばECU3400a及びECU3400bは図9に例示する受信IDリストを保持し、ECU3400c及びECU3400dは図5に例示する受信IDリストを保持する。また、フレーム処理部410の処理内容は、実施の形態1で示したようにECU毎に異なる。以下、ECU3400a〜3400dのそれぞれが送信するフレームの内容について図26〜図29を用いて説明する。 Each of the ECUs 3400b to 3400d is a modification of a part of the ECUs 400b to 400d shown in the first embodiment, and has basically the same configuration as the above-mentioned ECU 3400a. However, the received ID list held in the received ID list holding unit 440 may have different contents for each ECU. For example, the ECU 3400a and the ECU 3400b hold the reception ID list illustrated in FIG. 9, and the ECU 3400c and the ECU 3400d hold the reception ID list illustrated in FIG. Further, the processing content of the frame processing unit 410 differs for each ECU as shown in the first embodiment. Hereinafter, the contents of the frames transmitted by each of the ECUs 3400a to 3400d will be described with reference to FIGS. 26 to 29.

[3.3 エンジンに係るECU3400aの送信フレーム例]
図26は、エンジン401に接続されたECU3400aから送信されるデータフレームにおけるID(メッセージID)及びデータフィールド(データ)の一例を示す図である。ECU3400aが送信するフレームのメッセージIDは「1」である。データは、同図において1バイト毎に空白で区分して表しており、先頭の1byteが時速(km/時)を表し、次の1byteはカウンタ値を表し、次の4bytesがMACを表す。なお、図26の例においてMACは16進数で表記している。先頭1byteの時速(km/時)は、最低0(km/時)〜最高180(km/時)までの範囲の値を取る。図26の上行から下行へと、ECU3400aから逐次送信される各フレームに対応する各メッセージID及びデータを例示しており、カウンタ値が次第に増加し、時速が0km/時から1km/時ずつ加速されている様子を表している。
[Example of transmission frame of ECU 3400a related to 3.3 engine]
FIG. 26 is a diagram showing an example of an ID (message ID) and a data field (data) in a data frame transmitted from the ECU 3400a connected to the engine 401. The message ID of the frame transmitted by the ECU 3400a is "1". The data is represented by blanks for each byte in the figure, the first 1 byte represents the speed (km / hour), the next 1 byte represents the counter value, and the next 4 bytes represents the MAC. In the example of FIG. 26, MAC is expressed in hexadecimal. The speed (km / hour) of the first 1 byte takes a value in the range of a minimum of 0 (km / hour) to a maximum of 180 (km / hour). From the ascending line to the descending line of FIG. 26, each message ID and data corresponding to each frame sequentially transmitted from the ECU 3400a are illustrated, the counter value is gradually increased, and the speed is accelerated from 0 km / hour to 1 km / hour. It shows how it is.

[3.4 ブレーキに係るECU3400bの送信フレーム例]
図27は、ブレーキ402に接続されたECU3400bから送信されるデータフレームにおけるID(メッセージID)及びデータフィールド(データ)の一例を示す図である。ECU3400bが送信するフレームのメッセージIDは「2」である。データは、同図において1バイト毎に空白で区分して表しており、先頭の1byteがブレーキのかかり具合を割合(%)で表し、次の1byteはカウンタ値を表し、次の4bytesがMACを表す。なお、図27の例においてMACは16進数で表記している。先頭1byteのブレーキのかかり具合は、ブレーキを全くかけていない状態を0(%)、ブレーキを最大限かけている状態を100(%)としたものである。図27の上行から下行へと、ECU3400bから逐次送信される各フレームに対応する各メッセージID及びデータを例示しており、カウンタ値が次第に増加し、ブレーキについては100%から徐々にブレーキを弱めている様子を表している。
[Example of transmission frame of ECU 3400b related to 3.4 brake]
FIG. 27 is a diagram showing an example of an ID (message ID) and a data field (data) in a data frame transmitted from the ECU 3400b connected to the brake 402. The message ID of the frame transmitted by the ECU 3400b is "2". The data is represented by blanks for each byte in the figure, the first 1 byte represents the degree of braking as a percentage (%), the next 1 byte represents the counter value, and the next 4 bytes represents the MAC. Represent. In the example of FIG. 27, MAC is expressed in hexadecimal. The degree of braking of the first 1 byte is 0 (%) when the brake is not applied at all and 100 (%) when the brake is applied to the maximum. From the ascending line to the descending line of FIG. 27, each message ID and data corresponding to each frame sequentially transmitted from the ECU 3400b are illustrated, the counter value gradually increases, and the brake is gradually weakened from 100%. It shows how it is.

[3.5 ドア開閉センサに係るECU3400cの送信フレーム例]
図28は、ドア開閉センサ403に接続されたECU3400cから送信されるデータフレームにおけるID(メッセージID)及びデータフィールド(データ)の一例を示す図である。ECU3400cが送信するフレームのメッセージIDは「3」である。データは、同図において1バイト毎に空白で区分して表しており、先頭の1byteがドアの開閉状態を表し、次の1byteはカウンタ値を表し、次の4bytesがMACを表す。なお、図28の例においてMACは16進数で表記している。先頭1byteのドアの開閉状態は、ドアが開いている状態を「1」、ドアが閉まっている状態を「0」としたものである。図28の上行から下行へと、ECU3400cから逐次送信される各フレームに対応する各メッセージID及びデータを例示しており、カウンタ値が次第に増加し、ドアが開いている状態から次第に閉められた状態へと移った様子を表している。
[3.5 Transmission frame example of ECU 3400c related to door open / close sensor]
FIG. 28 is a diagram showing an example of an ID (message ID) and a data field (data) in a data frame transmitted from the ECU 3400c connected to the door open / close sensor 403. The message ID of the frame transmitted by the ECU 3400c is "3". The data is represented by blanks for each byte in the figure, the first 1 byte represents the open / closed state of the door, the next 1 byte represents the counter value, and the next 4 bytes represents the MAC. In the example of FIG. 28, MAC is expressed in hexadecimal. The open / closed state of the door of the first 1 byte is "1" when the door is open and "0" when the door is closed. From the ascending line to the descending line of FIG. 28, each message ID and data corresponding to each frame sequentially transmitted from the ECU 3400c are illustrated, and the counter value gradually increases, and the state in which the door is gradually closed is gradually increased. It shows how it moved to.

[3.6 窓開閉センサに係るECU3400dの送信フレーム例]
図29は、窓開閉センサ404に接続されたECU3400dから送信されるデータフレームにおけるID(メッセージID)及びデータフィールド(データ)の一例を示す図である。ECU3400dが送信するフレームのメッセージIDは「4」である。データは、同図において1バイト毎に空白で区分して表しており、先頭の1byteが窓の開閉状態を割合(%)で表し、次の1byteはカウンタ値を表し、次の4bytesがMACを表す。なお、図29の例においてMACは16進数で表記している。先頭1byteの窓の開閉状態は、窓が完全に閉まっている状態を0(%)、窓が全開の状態を100(%)としたものである。図29の上行から下行へと、ECU3400dから逐次送信される各フレームに対応する各メッセージID及びデータを例示しており、カウンタ値が次第に増加し、窓が閉まっている状態から徐々に開いていく様子を表している。
[Example of transmission frame of ECU3400d related to 3.6 window open / close sensor]
FIG. 29 is a diagram showing an example of an ID (message ID) and a data field (data) in a data frame transmitted from the ECU 3400d connected to the window opening / closing sensor 404. The message ID of the frame transmitted by the ECU 3400d is "4". The data is represented by blanks for each byte in the figure, the first 1 byte represents the open / closed state of the window as a percentage (%), the next 1 byte represents the counter value, and the next 4 bytes represents the MAC. Represent. In the example of FIG. 29, MAC is expressed in hexadecimal. The open / closed state of the window of the first 1 byte is 0 (%) when the window is completely closed and 100 (%) when the window is fully open. From the upper row to the lower row in FIG. 29, each message ID and data corresponding to each frame sequentially transmitted from the ECU 3400d are illustrated, the counter value gradually increases, and the window gradually opens from the closed state. It shows the situation.

[3.7 不正検知ECU3100aの構成]
図30は、不正検知ECU3100aの構成図である。不正検知ECU3100aは、フレーム送受信部160と、フレーム解釈部3150と、不正MAC検知部3130と、MAC鍵保持部3180と、カウンタ保持部3190と、フレーム生成部140と、MAC生成部3170と、不正検知カウンタ保持部110から構成される。これらの各構成要素は、機能的な構成要素であり、その各機能は、不正検知ECU3100aにおける通信回路、メモリに格納された制御プログラムを実行するプロセッサ或いはデジタル回路等により実現される。不正検知ECU3100aは、実施の形態1で示した不正検知ECU100aの一部を変形したものであり、実施の形態1と同様の機能を有する構成要素は、同じ符号を付して説明を省略する。なお、不正検知ECU3100bも同様の構成である。
[Structure of 3.7 fraud detection ECU 3100a]
FIG. 30 is a configuration diagram of the fraud detection ECU 3100a. The fraud detection ECU 3100a includes a frame transmission / reception unit 160, a frame interpretation unit 3150, a fraud MAC detection unit 3130, a MAC key holding unit 3180, a counter holding unit 3190, a frame generation unit 140, and a MAC generation unit 3170. It is composed of a detection counter holding unit 110. Each of these components is a functional component, and each function is realized by a communication circuit in the fraud detection ECU 3100a, a processor that executes a control program stored in a memory, a digital circuit, or the like. The fraud detection ECU 3100a is a modification of a part of the fraud detection ECU 100a shown in the first embodiment, and components having the same functions as those of the first embodiment are designated by the same reference numerals and the description thereof will be omitted. The fraud detection ECU 3100b has the same configuration.

フレーム解釈部3150は、実施の形態1で示したフレーム解釈部150を変形したものであり、フレーム送受信部160よりフレームの値を受け取り、CANプロトコルで規定されているフレームフォーマットにおける各フィールドにマッピングするよう解釈を行う。フレームがデータフレームであると判断した場合においてデータフィールドと判断した値(データ)は、IDフィールドのID(メッセージID)と共に、不正MAC検知部3130へ転送する。また、フレーム解釈部3150は、CANプロトコルに則っていないフレームと判断した場合は、エラーフレームを送信するようにフレーム生成部140へ通知する。また、フレーム解釈部3150は、エラーフレームを受信した場合、つまり受け取ったフレームにおける値からエラーフレームになっていると解釈した場合には、それ以降はそのフレームを破棄する、つまりフレームの解釈を中止する。 The frame interpretation unit 3150 is a modification of the frame interpretation unit 150 shown in the first embodiment, receives a frame value from the frame transmission / reception unit 160, and maps it to each field in the frame format specified by the CAN protocol. Interpret as. When it is determined that the frame is a data frame, the value (data) determined to be a data field is transferred to the fraudulent MAC detection unit 3130 together with the ID (message ID) of the ID field. Further, when the frame interpretation unit 3150 determines that the frame does not conform to the CAN protocol, the frame interpretation unit 3150 notifies the frame generation unit 140 to transmit an error frame. Further, when the frame interpreting unit 3150 receives an error frame, that is, when it interprets that the value in the received frame is an error frame, the frame interpreting unit 3150 discards the frame after that, that is, stops interpreting the frame. To do.

不正MAC検知部3130は、フレーム解釈部3150から通知されるメッセージIDと、データフィールドの値(データ)を受け取ってデータフィールド中のMACを検証する機能を有する。不正MAC検知部3130は、通知されたメッセージID及びデータフィールドの値を、MAC生成部3170へと通知し、MAC生成部3170により生成されたMACを取得する。不正MAC検知部3130は、データフィールドのデータが不正を示す所定条件に該当するか否かを判定する。即ち不正MAC検知部3130は、受信されたフレームにおける所定フィールドの内容が不正を示す所定条件に該当するか否かを判定する言わば判定部として機能する。この不正を示す所定条件は、定められた検証処理手順(MACの生成、MACの比較等を含む手順)での検証に失敗することであり、つまり、データに含まれるMACが、MAC生成部3170により生成されたMACと相違するという条件である。不正MAC検知部3130は、MAC生成部3170から取得したMACと、データフィールド中のMACとを比較することで、不正かどうかの判定(即ちMACの検証)を行う。両MACの値の比較の結果、不一致の場合は、不正の検知回数をインクリメントするために、受信したメッセージIDを不正検知カウンタ保持部110へ通知する。この不正の検知回数が一定回数以上に達した場合において、ヘッドユニット200で受信されるようにエラー表示メッセージを送信するための制御については実施の形態1で説明した通りであるため、ここでの説明を省略する。また、両MACの値の比較の結果、不一致の場合は、エラーフレームを送信するように、フレーム生成部140へ通知する。MAC値の比較の結果、一致する場合は、カウンタ保持部3190が保持する、メッセージIDに対応するカウンタ値をインクリメントするようにMAC生成部3170へ通知する。 The fraudulent MAC detection unit 3130 has a function of receiving the message ID notified from the frame interpretation unit 3150 and the value (data) of the data field and verifying the MAC in the data field. The fraudulent MAC detection unit 3130 notifies the MAC generation unit 3170 of the notified message ID and the value of the data field, and acquires the MAC generated by the MAC generation unit 3170. The fraudulent MAC detection unit 3130 determines whether or not the data in the data field meets a predetermined condition indicating fraud. That is, the fraudulent MAC detection unit 3130 functions as a so-called determination unit for determining whether or not the content of a predetermined field in the received frame corresponds to a predetermined condition indicating fraud. The predetermined condition indicating this fraud is that the verification in the specified verification processing procedure (procedure including MAC generation, MAC comparison, etc.) fails, that is, the MAC included in the data is the MAC generation unit 3170. The condition is that it differs from the MAC generated by. The fraudulent MAC detection unit 3130 determines whether or not it is fraudulent (that is, verification of the MAC) by comparing the MAC acquired from the MAC generation unit 3170 with the MAC in the data field. As a result of comparing the values of both MACs, if they do not match, the received message ID is notified to the fraud detection counter holding unit 110 in order to increment the number of fraud detections. When the number of times of detection of this fraud reaches a certain number of times or more, the control for transmitting the error display message so as to be received by the head unit 200 is as described in the first embodiment. The explanation is omitted. Further, as a result of comparing the values of both MACs, if they do not match, the frame generation unit 140 is notified to transmit an error frame. As a result of comparing the MAC values, if they match, the MAC generation unit 3170 is notified to increment the counter value corresponding to the message ID held by the counter holding unit 3190.

MAC生成部3170は、不正MAC検知部3130より通知されたメッセージIDを使って、MAC鍵保持部3180より、対応するMAC鍵を取得し、カウンタ保持部3190より対応するカウンタをそれぞれ取得する。MAC生成部3170は、不正MAC検知部3130より通知されたデータフィールドの値(先頭1byteの値)と、カウンタ保持部3190より取得したカウンタ値に対して、MAC鍵保持部3180より取得したMAC鍵を使ってMACを算出(計算により導出)し、算出したMACを不正MAC検知部3130へ通知する。なお、不正検知ECU3100a、3100b及びECU3400a〜3400dのいずれにおいても、MAC鍵を用いてMACを算出するアルゴリズムは同一のものを用いる。 The MAC generation unit 3170 acquires the corresponding MAC key from the MAC key holding unit 3180 and the corresponding counter from the counter holding unit 3190 by using the message ID notified by the fraudulent MAC detection unit 3130. The MAC generation unit 3170 has a MAC key acquired from the MAC key holding unit 3180 with respect to the data field value (value of the first 1 byte) notified by the fraudulent MAC detection unit 3130 and the counter value acquired from the counter holding unit 3190. The MAC is calculated (derived by calculation) using the above, and the calculated MAC is notified to the fraudulent MAC detection unit 3130. In any of the fraud detection ECUs 3100a and 3100b and the ECUs 3400a to 3400d, the same algorithm for calculating the MAC using the MAC key is used.

MAC鍵保持部3180は、MACを計算するため必要となるMAC鍵をメッセージID毎に対応付けて保持する。このMAC鍵保持部3180が保持するMAC鍵は、対応付けられたメッセージID毎に異なる値である。なお、ECU及び不正検知ECUにおいて用いられるMAC鍵は、1つの送信ノードが複数のメッセージIDそれぞれのフレームを送信する場合を想定すると、送信ノード毎に異なる鍵であることとしても良い。また、MAC鍵は、例えば同一のバス上で送信されるフレームに同一の値が用いられるようにしても良いし、異なるバス上であっても同一の鍵(値)としても良いし、車両一台あたり同一の鍵としても良く、同一車種で同一の鍵としても良く、同一製造メーカ毎に同一の鍵としても良く、異なる製造メーカであっても同一の鍵としても良い。 The MAC key holding unit 3180 holds the MAC key required for calculating the MAC in association with each message ID. The MAC key held by the MAC key holding unit 3180 has a different value for each associated message ID. It should be noted that the MAC key used in the ECU and the fraud detection ECU may be a different key for each transmission node, assuming that one transmission node transmits a frame of each of a plurality of message IDs. Further, the MAC key may be, for example, the same value may be used for frames transmitted on the same bus, or the same key (value) may be used even on different buses. The same key may be used for each unit, the same key may be used for the same vehicle model, the same key may be used for the same manufacturer, and the same key may be used for different manufacturers.

カウンタ保持部3190は、MAC値を計算するために必要となるカウンタ値をメッセージID毎に保持する。このカウンタ値は、フレームを正常に受信した場合(つまり不正MAC検知部3130において比較した両MACが一致する場合)には、インクリメントされる。 The counter holding unit 3190 holds a counter value required for calculating the MAC value for each message ID. This counter value is incremented when the frame is normally received (that is, when both MACs compared by the illegal MAC detection unit 3130 match).

[3.8 カウンタ値の例]
図31は、カウンタ保持部3190に保持されているメッセージID毎のカウンタ値の一例を示す図である。同図では、メッセージIDが「1」のカウンタが1回、メッセージIDが「2」のカウンタが10回、メッセージIDが「3」のカウンタが15回、メッセージIDが「4」のカウンタが100回をそれぞれ示している。この各メッセージIDに対応するカウンタ値は、そのメッセージIDを含むフレームが正常に受信されている回数を表している。
[3.8 Counter value example]
FIG. 31 is a diagram showing an example of a counter value for each message ID held in the counter holding unit 3190. In the figure, the counter with the message ID "1" is once, the counter with the message ID "2" is 10 times, the counter with the message ID "3" is 15 times, and the counter with the message ID "4" is 100 times. Each time is shown. The counter value corresponding to each message ID represents the number of times the frame including the message ID is normally received.

[3.9 不正フレームの検知に係るシーケンス]
以下、上述の構成を備える車載ネットワークシステム12のバス500aに不正なECUが接続された場合について、バス500aに接続された不正検知ECU3100a、ECU3400a、ECU3400b、ゲートウェイ300等の動作について説明する。
[3.9 Sequence related to detection of illegal frames]
Hereinafter, the operations of the fraud detection ECU 3100a, ECU 3400a, ECU 3400b, gateway 300, etc. connected to the bus 500a will be described when a fraudulent ECU is connected to the bus 500a of the vehicle-mounted network system 12 having the above configuration.

図32及び図33は、不正検知ECU3100aが不正なフレーム(メッセージ)を検知して、他のECUによりその不正なフレームに対応した処理がなされることを阻止する動作例を示すシーケンス図である。図32及び図33では、実施の形態1で示した図18並びに実施の形態2で示した図22及び図23の場合と同様に、不正なECUが、バス500aに接続された例を示している。この不正なECUは、メッセージIDが「4」でデータフィールド(データ)が「0xFF FF FFFFFFFF」(6bytes)となるデータフレームを送信する。実施の形態1又は2で示したシーケンスと同じシーケンスには同じ符号を付しており、ここでは説明を簡略化する。 32 and 33 are sequence diagrams showing an operation example in which the fraud detection ECU 3100a detects a fraudulent frame (message) and prevents another ECU from performing a process corresponding to the fraudulent frame. 32 and 33 show an example in which an unauthorized ECU is connected to the bus 500a as in the case of FIG. 18 shown in the first embodiment and FIGS. 22 and 23 shown in the second embodiment. There is. This illegal ECU transmits a data frame in which the message ID is "4" and the data field (data) is "0xFF FF FFFFFFFF" (6 bytes). The same sequences as those shown in the first or second embodiment are designated by the same reference numerals, and the description thereof will be simplified here.

まず、不正なECUは、上述した不正なデータフレームの送信を開始する(シーケンスS1001a)。不正検知ECU3100a、ECU3400a、ECU3400b及びゲートウェイ300はそれぞれメッセージIDを受信する(シーケンスS1002)。ECU3400a、ECU3400b及びゲートウェイ300はそれぞれ、保持している受信IDリストを用いてメッセージIDをチェックする(シーケンスS1003)。ECU3400a及びECU3400bは、それぞれが保持している受信IDリストに「4」が含まれていないため(図9参照)、受信を終了する。ゲートウェイ300は、保持している受信IDリストに「4」が含まれているため(図5参照)、受信を継続しデータフィールドの受信を行う(シーケンスS1006a)。同様に不正検知ECU3100aもデータフィールドの受信を行う(シーケンスS1006a)。 First, the illegal ECU starts transmitting the above-mentioned illegal data frame (sequence S1001a). The fraud detection ECU 3100a, ECU 3400a, ECU 3400b and gateway 300 each receive a message ID (sequence S1002). Each of the ECU 3400a, the ECU 3400b, and the gateway 300 checks the message ID using the received reception ID list held (sequence S1003). Since "4" is not included in the reception ID list held by each of the ECU 3400a and the ECU 3400b (see FIG. 9), the reception is terminated. Since the gateway 300 includes "4" in the received reception ID list held (see FIG. 5), the gateway 300 continues the reception and receives the data field (sequence S1006a). Similarly, the fraud detection ECU 3100a also receives the data field (sequence S1006a).

シーケンスS1006aに続いて、不正検知ECU3100aは、データフィールドにおけるデータに含まれるMACを検証(チェック)する(シーケンスS3001)。即ち、不正検知ECU3100aは、送信されたフレームにおけるIDフィールドの内容が、不正を示す所定条件(MACの検証に失敗すること)に該当するか否かを判定する。不正検知ECU3100aは、不正なECUにより送信されたデータフレームにおけるデータフィールドの6bytesのデータ「0xFFFFFFFF」について、後半4bytesのMACと、メッセージID「4」に対応するMAC鍵とカウンタを用いて算定したMACとを比較することでMACの検証を行う。この比較の結果は不一致になり検証が失敗するので、不正検知ECU3100aでは、不正なデータフレームであると判断し、続いてエラーフレームの発行準備を開始する(シーケンスS1005)。 Following the sequence S1006a, the fraud detection ECU 3100a verifies (checks) the MAC included in the data in the data field (sequence S3001). That is, the fraud detection ECU 3100a determines whether or not the content of the ID field in the transmitted frame corresponds to a predetermined condition indicating fraud (failure in MAC verification). The fraud detection ECU 3100a calculates the 6 bytes data "0xFFFFFFFF" of the data field in the data frame transmitted by the fraudulent ECU using the MAC of the latter 4 bytes and the MAC key and counter corresponding to the message ID "4". The MAC is verified by comparing with. Since the results of this comparison are inconsistent and the verification fails, the fraud detection ECU 3100a determines that the data frame is fraudulent, and then starts preparation for issuing an error frame (sequence S1005).

不正検知ECU3100aがエラーフレームの発行準備をしている間に、ゲートウェイ300はCRCフィールドの受信を開始する(シーケンスS2002)。 While the fraud detection ECU 3100a is preparing to issue an error frame, the gateway 300 starts receiving the CRC field (sequence S2002).

次にエラーフレームの発行準備が終わって、不正検知ECU3100aがエラーフレームを送信する(シーケンスS1007)。このエラーフレームの送信が開始されることによりバス500aでは、不正なECUから送信中のフレームのCRCシーケンスの途中部分がエラーフレームにより上書きされることになる。 Next, the preparation for issuing the error frame is completed, and the fraud detection ECU 3100a transmits the error frame (sequence S1007). When the transmission of the error frame is started, in the bus 500a, the middle part of the CRC sequence of the frame being transmitted from the invalid ECU is overwritten by the error frame.

シーケンスS1007において送信されたエラーフレームを受信したゲートウェイ300は、CRCシーケンスを含むCRCフィールドの受信途中で、不正なECUが送信していたデータフレームの受信を中止する(シーケンスS2003)。 The gateway 300 that has received the error frame transmitted in the sequence S1007 stops receiving the data frame transmitted by the invalid ECU during the reception of the CRC field including the CRC sequence (sequence S2003).

不正検知ECU3100aは、エラーフレームを送信する対象となったデータフレームのID「4」に対応する不正検知カウンタをインクリメントする(シーケンスS1009)。インクリメントした結果としてID「4」に対応する不正検知カウンタが17以上となった場合、不正検知ECU3100aは、エラー表示メッセージを送信する(シーケンスS1010)。 The fraud detection ECU 3100a increments the fraud detection counter corresponding to the ID “4” of the data frame to which the error frame is transmitted (sequence S1009). When the fraud detection counter corresponding to the ID "4" becomes 17 or more as a result of the increment, the fraud detection ECU 3100a transmits an error display message (sequence S1010).

[3.10 実施の形態3の効果]
実施の形態3で示した不正検知ECUは、送信されたフレームが不正なフレームか否かを、フレーム(データフレーム)のデータフィールドに含ませたMACを検証することによって判定する。これにより、既存のECU(つまり不正検知ECU及び不正なECU以外のECU)において不正なフレームが解釈されてそのフレームに対応する処理が実行されることを阻止することができる。また、データフレームのデータフィールドまで受信するだけで判定ができるため、データフレームの後部を受信して判定を行う場合よりも、バスのトラフィックを抑えることが可能となる。
[3.10 Effect of Embodiment 3]
The fraud detection ECU shown in the third embodiment determines whether or not the transmitted frame is a fraudulent frame by verifying the MAC included in the data field of the frame (data frame). As a result, it is possible to prevent the existing ECU (that is, the fraud detection ECU and the ECU other than the fraudulent ECU) from interpreting the fraudulent frame and executing the process corresponding to the frame. Further, since the judgment can be made only by receiving the data field of the data frame, it is possible to suppress the bus traffic as compared with the case where the judgment is made by receiving the rear part of the data frame.

また、不正検知ECUが、不正検知カウンタを用いてエラーフレームを送信した回数をカウントすることで、エラーフレームの受信により不正なメッセージIDを送信するノードにおける送信エラーカウンタがCANプロトコルに従えばパッシブ状態に遷移すべき上限値まで到達していることを検出することができる。これにより、不正なメッセージIDを送信するノードが、CANプロトコルのエラーカウンタの仕様に準拠しているか否かを判定することが可能となる。 Further, the fraud detection ECU counts the number of times the error frame is transmitted by using the fraud detection counter, so that the transmission error counter in the node that transmits the fraudulent message ID by receiving the error frame is in a passive state if it follows the CAN protocol. It can be detected that the upper limit value to be transitioned to is reached. This makes it possible to determine whether or not the node that transmits the invalid message ID complies with the specifications of the error counter of the CAN protocol.

また、MACの検証を行うノードを不正検知ECUのみとすることで、不正検知ECU以外のECUで検証する必要がなく、システム全体として処理量、電力消費量を抑えることができる。 Further, by setting only the fraud detection ECU as the node for verifying the MAC, it is not necessary to verify with an ECU other than the fraud detection ECU, and the processing amount and the power consumption of the entire system can be suppressed.

(実施の形態4)
以下、本発明の実施の形態として、データフレームを受信した場合にメッセージ認証コード(MAC)の検証に失敗した場合に、MACを含むデータフレームの送信元のECUに対してMACの生成に利用されるデータの更新を要求する更新フレームを送信し、MACを再度検証する不正検知ECUを含む車載ネットワークシステム13について説明する。車載ネットワークシステム13では、実施の形態3で示したようにECUがメッセージID、データの値及びカウンタ値から計算により生成されるMACを含ませたフレーム(データフレーム)を送信することとして、不正検知ECUが、受信したフレームにおけるMACの検証を行うものとする。車載ネットワークシステム13では、MACの検証に失敗した場合において、MACの生成に利用されるMAC鍵及びカウンタ値の一方又は両方の更新等を行うための不正対処方法が実行される。
(Embodiment 4)
Hereinafter, as an embodiment of the present invention, when the verification of the message authentication code (MAC) fails when a data frame is received, it is used to generate a MAC for the ECU that is the source of the data frame including the MAC. A vehicle-mounted network system 13 including a fraud detection ECU that transmits an update frame requesting an update of data and verifies the MAC again will be described. In the in-vehicle network system 13, fraud detection is performed by the ECU transmitting a frame (data frame) including a MAC generated by calculation from a message ID, a data value, and a counter value as shown in the third embodiment. It is assumed that the ECU verifies the MAC in the received frame. In the in-vehicle network system 13, when the MAC verification fails, a fraudulent countermeasure method for updating one or both of the MAC key and the counter value used for MAC generation is executed.

[4.1 車載ネットワークシステム13の全体構成]
図34は、実施の形態4に係る車載ネットワークシステム13の全体構成を示す図である。車載ネットワークシステム13は、実施の形態3で示した車載ネットワークシステム12(或いは実施の形態1で示した車載ネットワークシステム10)の一部を変形したものである。車載ネットワークシステム13は、バス500a、500b、500cと、不正検知ECU4100a、4100b、ヘッドユニット200、ゲートウェイ300、及び、各種機器に接続されたECU4400a〜4400d等のECUといったバスに接続された各ノードとを含んで構成される。車載ネットワークシステム13の構成要素のうち、実施の形態1(或いは実施の形態3)と同様の機能を有する構成要素は、同じ符号を付して説明を省略する。
[4.1 Overall configuration of in-vehicle network system 13]
FIG. 34 is a diagram showing the overall configuration of the vehicle-mounted network system 13 according to the fourth embodiment. The in-vehicle network system 13 is a modification of a part of the in-vehicle network system 12 (or the in-vehicle network system 10 shown in the first embodiment) shown in the third embodiment. The in-vehicle network system 13 includes buses 500a, 500b, and 500c, and each node connected to the bus such as fraud detection ECUs 4100a, 4100b, head unit 200, gateway 300, and ECUs such as ECUs 4400a to 4400d connected to various devices. Consists of including. Among the components of the in-vehicle network system 13, components having the same functions as those of the first embodiment (or the third embodiment) are designated by the same reference numerals and the description thereof will be omitted.

不正検知ECU4100a、4100bは、それぞれバス500a、バス500bに接続され、ECU4400a〜4400d等により送信されたフレームが不正であるかどうかを判定し、不正であればエラーフレームを送信する機能、MAC鍵及びカウンタ値の一方又は両方の更新を指示する更新フレームを送信する機能等を有するECUである。更新フレームとしては具体的には、MAC鍵の更新を指示する鍵更新フレーム、MAC鍵の更新及びカウンタ値のリセットを指示する鍵更新&カウンタリセットフレーム、並びに、カウンタのリセットを指示するカウンタリセットフレームがある。この更新フレームのうち、鍵更新フレーム、及び、鍵更新&カウンタリセットフレームは、MAC鍵の更新を要求するためのフレームとしての性質を有する、言わばMAC鍵更新要求フレームである。また、更新フレームのうち、カウンタリセットフレーム、及び、鍵更新&カウンタリセットフレームは、カウンタ値の更新(リセット)を要求するためのフレームとしての性質を有する、言わばカウンタリセット要求フレームである。データフレームのデータフィールドにMACを格納する例を実施の形態3で示したが、データフィールドに格納できるMACのデータ長は十分に長いとは言えない。これに対し、車載ネットワークシステム13においてMAC鍵の更新或いはカウンタ値のリセットを適時に行うことで、不正なECUによるMACに対する総当り攻撃等への耐性を高める効果が生じる。 The fraud detection ECUs 4100a and 4100b are connected to the bus 500a and the bus 500b, respectively, determine whether or not the frame transmitted by the ECUs 4400a to 4400d is invalid, and if it is invalid, the function of transmitting an error frame, the MAC key, and the It is an ECU having a function of transmitting an update frame instructing the update of one or both of the counter values. Specifically, the update frame includes a key update frame instructing the update of the MAC key, a key update & counter reset frame instructing the update of the MAC key and the reset of the counter value, and a counter reset frame instructing the reset of the counter. There is. Of these update frames, the key update frame and the key update & counter reset frame are, so to speak, MAC key update request frames having properties as frames for requesting MAC key update. Further, among the update frames, the counter reset frame and the key update & counter reset frame are, so to speak, counter reset request frames having properties as frames for requesting the update (reset) of the counter value. Although an example of storing the MAC in the data field of the data frame is shown in the third embodiment, it cannot be said that the data length of the MAC that can be stored in the data field is sufficiently long. On the other hand, by updating the MAC key or resetting the counter value in the in-vehicle network system 13 in a timely manner, the effect of increasing the resistance to a brute force attack on the MAC by an unauthorized ECU is produced.

ECU4400a〜4400dは、いずれかのバスと接続され、また、それぞれエンジン401、ブレーキ402、ドア開閉センサ403、窓開閉センサ404に接続されている。ECU4400a〜4400dのそれぞれは、接続されている機器(エンジン401等)の状態を取得し、定期的に状態を表すデータフレームをネットワーク(つまりバス)に送信している。送信されるデータフレームのデータフィールドには、メッセージIDとデータ値と送信毎にインクリメントされるカウンタ値とから計算により導出されるメッセージ認証コード(MAC)が付与される。 The ECUs 4400a to 4400d are connected to any of the buses, and are also connected to the engine 401, the brake 402, the door open / close sensor 403, and the window open / close sensor 404, respectively. Each of the ECUs 4400a to 4400d acquires the state of the connected device (engine 401, etc.) and periodically transmits a data frame indicating the state to the network (that is, the bus). A message authentication code (MAC) derived by calculation from a message ID, a data value, and a counter value that is incremented for each transmission is assigned to the data field of the transmitted data frame.

[4.2 ECU4400aの構成]
図35は、ECU4400aの構成図である。ECU4400aは、フレーム送受信部460と、フレーム解釈部450と、受信ID判断部430と、受信IDリスト保持部440と、フレーム処理部410と、フレーム生成部3420と、データ取得部470と、MAC生成部3410と、MAC鍵保持部4430と、カウンタ保持部3440と、MAC鍵更新部4410と、カウンタリセット部4420とを含んで構成される。これらの各構成要素は、機能的な構成要素であり、その各機能は、ECU4400aにおける通信回路、メモリに格納された制御プログラムを実行するプロセッサ或いはデジタル回路等により実現される。ECU4400aは、実施の形態3で示したECU3400a(或いは実施の形態1で示したECU400a)の一部を変形したものであり、実施の形態1及び3と同様の機能を有する構成要素は、同じ符号を付して説明を省略する。
[4.2 Configuration of ECU 4400a]
FIG. 35 is a configuration diagram of the ECU 4400a. The ECU 4400a includes a frame transmission / reception unit 460, a frame interpretation unit 450, a reception ID determination unit 430, a reception ID list holding unit 440, a frame processing unit 410, a frame generation unit 3420, a data acquisition unit 470, and a MAC generation. A unit 3410, a MAC key holding unit 4430, a counter holding unit 3440, a MAC key updating unit 4410, and a counter reset unit 4420 are included. Each of these components is a functional component, and each function is realized by a communication circuit in the ECU 4400a, a processor that executes a control program stored in a memory, a digital circuit, or the like. The ECU 4400a is a modified version of the ECU 3400a shown in the third embodiment (or the ECU 400a shown in the first embodiment), and the components having the same functions as those of the first and third embodiments have the same reference numerals. Is added to omit the description.

MAC鍵保持部4430は、メモリ等の記憶媒体により実現され、MAC鍵を識別する鍵ID毎について、更新前と更新後との2つのMAC鍵(MACを計算するために必要となる鍵)を対応付けた鍵テーブルを保持する。鍵テーブル及びMAC鍵の更新については後に図39を用いて説明する。ここでは、メッセージID毎に異なるMAC鍵を利用することとし、このため鍵IDはメッセージIDと同じである。なお、MAC生成部3410によりMACが生成される場合には特に言及しない限り基本的に更新後のMAC鍵が用いられる。 The MAC key holding unit 4430 is realized by a storage medium such as a memory, and for each key ID that identifies the MAC key, two MAC keys (keys required for calculating the MAC), one before the update and the other after the update, are provided. Holds the associated key table. The update of the key table and the MAC key will be described later with reference to FIG. 39. Here, a different MAC key is used for each message ID, and therefore the key ID is the same as the message ID. When a MAC is generated by the MAC generation unit 3410, the updated MAC key is basically used unless otherwise specified.

カウンタ保持部3440は、メモリ等の記憶媒体により実現され、カウンタ鍵を識別するカウンタID毎について、カウンタ値を対応付けたカウンタテーブルを保持する。カウンタテーブル及びカウンタ値の更新(リセット)については後に図40を用いて説明する。ここでは、メッセージID毎に異なるカウンタを利用することとし、このためカウンタIDはメッセージIDと同じである。 The counter holding unit 3440 is realized by a storage medium such as a memory, and holds a counter table associated with a counter value for each counter ID that identifies the counter key. The update (reset) of the counter table and the counter value will be described later with reference to FIG. 40. Here, a different counter is used for each message ID, and therefore the counter ID is the same as the message ID.

MAC鍵更新部4410は、フレーム送受信部460で鍵更新フレーム或いは鍵更新&カウンタリセットフレームが受信された場合に、これらのフレームに従ってMAC鍵保持部4430が保持するMAC鍵を更新する。 When the frame transmission / reception unit 460 receives the key update frame or the key update & counter reset frame, the MAC key update unit 4410 updates the MAC key held by the MAC key holding unit 4430 according to these frames.

カウンタリセット部4420は、フレーム送受信部460でカウンタリセットフレーム或いは鍵更新&カウンタリセットフレームが受信された場合に、これらのフレームに従ってカウンタ保持部3440が保持するカウンタ値をリセットする。 When a counter reset frame or a key update & counter reset frame is received by the frame transmission / reception unit 460, the counter reset unit 4420 resets the counter value held by the counter holding unit 3440 according to these frames.

なお、ECU4400b〜4400dは、それぞれ実施の形態3で示したECU3400b〜3400dの一部を変形したものであり、上述したECU4400aと基本的に同様の構成を備える。但し、受信IDリスト保持部440に保持される受信IDリスト、MAC鍵保持部4430に保持される鍵テーブル、及び、カウンタ保持部3440に保持されるカウンタテーブルは、ECU毎に異なる内容となり得る。また、フレーム処理部410の処理内容は、実施の形態1で示したようにECU毎に異なる。 Each of the ECUs 4400b to 4400d is a modification of a part of the ECUs 3400b to 3400d shown in the third embodiment, and has basically the same configuration as the above-mentioned ECU 4400a. However, the reception ID list held in the reception ID list holding unit 440, the key table held in the MAC key holding unit 4430, and the counter table held in the counter holding unit 3440 may have different contents for each ECU. Further, the processing content of the frame processing unit 410 differs for each ECU as shown in the first embodiment.

[4.3 不正検知ECU4100aの構成]
図36は、不正検知ECU4100aの構成図である。不正検知ECU4100aは、フレーム送受信部160と、フレーム解釈部4151と、不正MAC検知部4131と、MAC鍵保持部4180と、カウンタ保持部3190と、フレーム生成部140と、MAC生成部3170と、MAC鍵更新部4110と、カウンタリセット部4120と、セキュリティ処理部4130と、セキュリティ条件保持部4140と、不正IDリスト保持部4150と、不正ログ保持部4160と、モード変更処理部4170とを含んで構成される。これらの各構成要素は、機能的な構成要素であり、その各機能は、不正検知ECU4100aにおける通信回路、メモリに格納された制御プログラムを実行するプロセッサ或いはデジタル回路等により実現される。不正検知ECU4100aは、実施の形態3で示した不正検知ECU3100a(或いは実施の形態1で示した不正検知ECU100a)の一部を変形したものであり、実施の形態1及び3と同様の機能を有する構成要素は、同じ符号を付して説明を省略する。なお、不正検知ECU4100bも同様の構成である。
[4.3 Configuration of fraud detection ECU 4100a]
FIG. 36 is a configuration diagram of the fraud detection ECU 4100a. The fraud detection ECU 4100a includes a frame transmission / reception unit 160, a frame interpretation unit 4151, a fraud MAC detection unit 4131, a MAC key holding unit 4180, a counter holding unit 3190, a frame generation unit 140, a MAC generation unit 3170, and a MAC. It includes a key update unit 4110, a counter reset unit 4120, a security processing unit 4130, a security condition holding unit 4140, an invalid ID list holding unit 4150, an invalid log holding unit 4160, and a mode change processing unit 4170. Will be done. Each of these components is a functional component, and each function is realized by a communication circuit in the fraud detection ECU 4100a, a processor that executes a control program stored in a memory, a digital circuit, or the like. The fraud detection ECU 4100a is a modification of a part of the fraud detection ECU 3100a (or the fraud detection ECU 100a shown in the first embodiment) shown in the third embodiment, and has the same functions as those of the first and third embodiments. The components are designated by the same reference numerals and the description thereof will be omitted. The fraud detection ECU 4100b has the same configuration.

フレーム解釈部4151は、実施の形態3で示したフレーム解釈部3150の一部を変形して機能を追加したものである。フレーム解釈部4151は、フレーム送受信部160よりフレームの値を受け取り、CANプロトコルで規定されているフレームフォーマットにおける各フィールドにマッピングするよう解釈を行う。フレームがデータフレームであると判断した場合においてデータフィールドと判断した値(データ)は、IDフィールドのID(メッセージID)と共に、不正MAC検知部4131へ転送する。また、フレーム解釈部4151は、CANプロトコルに則っていないフレームと判断した場合或いはメッセージIDが不正IDリスト保持部4150により保持される不正IDリストに含まれるIDである場合には、エラーフレームを送信するようにフレーム生成部140へ通知する。また、フレーム解釈部4151は、エラーフレームを受信した場合、つまり受け取ったフレームにおける値からエラーフレームになっていると解釈した場合には、それ以降はそのフレームを破棄する、つまりフレームの解釈を中止する。 The frame interpretation unit 4151 is obtained by modifying a part of the frame interpretation unit 3150 shown in the third embodiment and adding a function. The frame interpretation unit 4151 receives the frame value from the frame transmission / reception unit 160 and interprets it so as to map it to each field in the frame format defined by the CAN protocol. When it is determined that the frame is a data frame, the value (data) determined to be a data field is transferred to the fraudulent MAC detection unit 4131 together with the ID (message ID) of the ID field. Further, the frame interpretation unit 4151 transmits an error frame when it is determined that the frame does not conform to the CAN protocol or when the message ID is an ID included in the invalid ID list held by the invalid ID list holding unit 4150. Notify the frame generation unit 140 to do so. Further, when the frame interpreting unit 4151 receives an error frame, that is, when it interprets that the value in the received frame is an error frame, the frame interpreting unit 4151 discards the frame after that, that is, stops interpreting the frame. To do.

MAC鍵保持部4180は、メモリ等の記憶媒体により実現され、MAC鍵を識別する鍵ID毎について、更新前と更新後との2つのMAC鍵(MACを計算するために必要となる鍵)を対応付けた鍵テーブルを保持する。ここでは、メッセージID毎に異なるMAC鍵を利用することとし、このため鍵IDはメッセージIDと同じである。なお、MAC生成部3170によりMACが生成される場合には特に言及しない限り基本的に更新後のMAC鍵が用いられる。 The MAC key holding unit 4180 is realized by a storage medium such as a memory, and for each key ID that identifies the MAC key, two MAC keys (keys required for calculating the MAC), one before the update and the other after the update, are provided. Holds the associated key table. Here, a different MAC key is used for each message ID, and therefore the key ID is the same as the message ID. When a MAC is generated by the MAC generation unit 3170, the updated MAC key is basically used unless otherwise specified.

カウンタ保持部3190は、メモリ等の記憶媒体により実現され、カウンタ鍵を識別するカウンタID毎について、カウンタ値(MACを計算するために必要となるカウンタ値)を対応付けたカウンタテーブルを保持する。ここでは、メッセージID毎に異なるカウンタを利用することとし、このためカウンタIDはメッセージIDと同じである。このカウンタ値は、フレームが正常に受信された場合には、インクリメントされる。 The counter holding unit 3190 is realized by a storage medium such as a memory, and holds a counter table associated with a counter value (a counter value required for calculating MAC) for each counter ID that identifies the counter key. Here, a different counter is used for each message ID, and therefore the counter ID is the same as the message ID. This counter value is incremented if the frame is successfully received.

MAC鍵更新部4110は、フレーム送受信部160で鍵更新フレーム或いは鍵更新&カウンタリセットフレームが受信された場合に、これらのフレームに従ってMAC鍵保持部4180が保持するMAC鍵を更新する。 When the frame transmission / reception unit 160 receives the key update frame or the key update & counter reset frame, the MAC key update unit 4110 updates the MAC key held by the MAC key holder 4180 according to these frames.

カウンタリセット部4120は、フレーム送受信部160でカウンタリセットフレーム或いは鍵更新&カウンタリセットフレームが受信された場合に、これらのフレームに従ってカウンタ保持部3190が保持するカウンタ値をリセットする。 When a counter reset frame or a key update & counter reset frame is received by the frame transmission / reception unit 160, the counter reset unit 4120 resets the counter value held by the counter holding unit 3190 according to these frames.

不正MAC検知部4131は、実施の形態3で示した不正MAC検知部3130の一部を変形したものであり、フレーム解釈部4151から通知されるメッセージIDと、データフィールドの値(データ)を受け取ってデータフィールド中のMACを検証する機能を有する。不正MAC検知部4131は、通知されたメッセージID及びデータフィールドの値を、MAC生成部3170へと通知し、MAC生成部3170により生成されたMACを取得する。不正MAC検知部4131は、データフィールドのデータが不正を示す所定条件に該当するか否かを判定する。この不正を示す所定条件は、定められた検証処理手順(MACの生成、MACの比較等を含む手順)での検証に失敗することであり、つまり、データに含まれるMACが、MAC生成部3170により生成されたMACと相違するという条件である。不正MAC検知部4131は、MAC生成部3170から取得したMACと、データフィールド中のMACとを比較することで、不正かどうかの判定(即ちMACの検証)を行う。両MACの値の比較の結果、不一致の場合は、セキュリティ条件保持部4140のセキュリティ条件テーブルにおける該当メッセージIDの不正カウントをインクリメントする。また、両MACの値の比較の結果、不一致の場合は、エラーフレームを送信するように、フレーム生成部140へ通知する。また、両MACの値の比較の結果、不一致の場合はさらに、自機(不正検知ECU4100a)とデータフレームの送信元のECUの間でMAC鍵或いはカウンタ値が同期して更新されていない可能性があるので、更新フレームを送信するようにフレーム生成部140へ依頼する。この場合に送信する更新フレームは、基本的に鍵更新&カウンタリセットフレームである。但し、鍵更新&カウンタリセットフレームの代わりに、鍵更新フレーム及びカウンタリセットフレームを順次送信することとしても良い。なお、不正MAC検知部4131は、鍵更新&カウンタリセットフレームを送信するようにフレーム生成部140へ依頼する前に、更新前のMAC鍵を用いてMACを生成することで上述のデータフィールドに含まれるMACを再び検証しても良い。この再検証で成功した場合(つまり両MACが一致した場合)には、カウンタが同期していると推定してMAC鍵の同期のみを必要とし、不正MAC検知部4131は、鍵更新&カウンタリセットフレームの代わりに鍵更新フレームを送信するようにフレーム生成部140に依頼しても良い。また、再検証でも失敗した場合において、カウンタが同期していない可能性に鑑みて、カウンタリセットフレームを送信する方法も採り得る。また、不正MAC検知部4131は、MACの検証に成功した場合(比較した両MACの値が一致した場合)には、カウンタ保持部3190が保持する、メッセージIDに対応するカウンタ値をインクリメントするようにMAC生成部3170へ通知する。 The fraudulent MAC detection unit 4131 is a modification of a part of the fraudulent MAC detection unit 3130 shown in the third embodiment, and receives the message ID notified from the frame interpretation unit 4151 and the value (data) of the data field. It has a function to verify the MAC in the data field. The fraudulent MAC detection unit 4131 notifies the MAC generation unit 3170 of the notified message ID and the value of the data field, and acquires the MAC generated by the MAC generation unit 3170. The fraudulent MAC detection unit 4131 determines whether or not the data in the data field meets a predetermined condition indicating fraud. The predetermined condition indicating this fraud is that the verification in the specified verification processing procedure (procedure including MAC generation, MAC comparison, etc.) fails, that is, the MAC included in the data is the MAC generation unit 3170. The condition is that it differs from the MAC generated by. The fraudulent MAC detection unit 4131 determines whether or not it is fraudulent (that is, verification of the MAC) by comparing the MAC acquired from the MAC generation unit 3170 with the MAC in the data field. As a result of comparing the values of both MACs, if they do not match, the invalid count of the corresponding message ID in the security condition table of the security condition holding unit 4140 is incremented. Further, as a result of comparing the values of both MACs, if they do not match, the frame generation unit 140 is notified to transmit an error frame. Further, as a result of comparing the values of both MACs, if they do not match, there is a possibility that the MAC key or the counter value is not updated synchronously between the own machine (fraud detection ECU 4100a) and the ECU that is the source of the data frame. Therefore, the frame generation unit 140 is requested to transmit the update frame. The update frame transmitted in this case is basically a key update & counter reset frame. However, instead of the key update & counter reset frame, the key update frame and the counter reset frame may be sequentially transmitted. The fraudulent MAC detection unit 4131 is included in the above data field by generating a MAC using the MAC key before the update before requesting the frame generation unit 140 to transmit the key update & counter reset frame. The MAC may be verified again. If this revalidation is successful (that is, if both MACs match), it is presumed that the counters are synchronized and only MAC key synchronization is required, and the unauthorized MAC detection unit 4131 updates the key and resets the counter. You may ask the frame generator 140 to send the key update frame instead of the frame. Further, when the re-verification also fails, a method of transmitting a counter reset frame can be adopted in consideration of the possibility that the counters are not synchronized. Further, when the illegal MAC detection unit 4131 succeeds in the MAC verification (when the values of both compared MACs match), the fraudulent MAC detection unit 4131 increments the counter value corresponding to the message ID held by the counter holding unit 3190. Notifies the MAC generator 3170.

セキュリティ条件保持部4140は、メモリ等の記憶媒体により実現され、更新フレーム(鍵更新フレーム、カウンタリセットフレーム或いは鍵更新&カウンタリセットフレーム)を送信したにもかかわらず、その後のMACの検証の結果として検証失敗(生成したMACの値と受信したデータフィールド中のMACの値との比較の結果として不一致の状態)が続く場合における対処処理であるセキュリティアクションを定義したセキュリティ条件テーブル620を保持する。セキュリティ条件テーブル620については後に図41を用いて説明する。 Although the security condition holding unit 4140 is realized by a storage medium such as a memory and transmits an update frame (key update frame, counter reset frame or key update & counter reset frame), as a result of subsequent MAC verification. It holds a security condition table 620 that defines a security action that is a countermeasure process when verification failure (a state of inconsistency as a result of comparison between the generated MAC value and the MAC value in the received data field) continues. The security condition table 620 will be described later with reference to FIG. 41.

セキュリティ処理部4130は、セキュリティ条件保持部4140が保持するセキュリティ条件テーブル620に従って、セキュリティアクションを実行する。セキュリティアクションには、MACの検証に失敗したフレームのメッセージIDを不正IDリスト保持部4150が保持する不正IDリストに追加する処理、そのメッセージIDを不正ログ保持部4160が保持するログに記録する処理、車両を安全状態にするようモード変更処理部4170に指示する処理等がある。 The security processing unit 4130 executes a security action according to the security condition table 620 held by the security condition holding unit 4140. The security action includes a process of adding the message ID of the frame whose MAC verification failed to the invalid ID list held by the invalid ID list holding unit 4150, and a process of recording the message ID in the log held by the invalid log holding unit 4160. , There is a process of instructing the mode change processing unit 4170 to put the vehicle in a safe state.

不正IDリスト保持部4150は、メモリ等の記憶媒体により実現され、不正と判断されたデータフレーム(MACの検証に失敗したデータフレーム等)のメッセージIDを列挙するための不正IDリストを保持する。 The rogue ID list holding unit 4150 holds a rogue ID list that is realized by a storage medium such as a memory and enumerates message IDs of data frames determined to be rogue (data frames that failed to verify MAC, etc.).

不正ログ保持部4160は、メモリ、ハードディスク等の記憶媒体(記録媒体)により実現され、不正なデータフレームが送信されたこと等といったイベントを記録するためのログを保持する。ログに記録されるイベントに係る情報としては、例えば、不正なデータフレームのメッセージID、不正なデータフレームが送信された日時、不正なデータフレームが送信された回数等が挙げられる。なお、ログが改ざんされないようにログの内容にデジタル署名等を付加したり、ログの内容を暗号化したりしても良い。 The fraudulent log holding unit 4160 is realized by a storage medium (recording medium) such as a memory or a hard disk, and holds a log for recording an event such as an illegal data frame being transmitted. Examples of the information related to the event recorded in the log include the message ID of the invalid data frame, the date and time when the invalid data frame was transmitted, the number of times the invalid data frame was transmitted, and the like. A digital signature or the like may be added to the log contents or the log contents may be encrypted so that the log is not tampered with.

モード変更処理部4170は、セキュリティ処理部4130から車両を安全状態にするよう指示された場合に、車両を安全状態(例えば一定速度以下に速度を限定した状態等)にすべきことを他のECUに伝達するために予め定められたフレームであるモード変更フレームをフレーム生成部140に生成させる。モード変更フレームがフレーム生成部140に生成され、フレーム送受信部160により送信されると、他のECUは、モード変更フレームを受信して予め定められた制御(例えば車両のエンジンの回転数を一定回転以下に限定する制御等)を実行することができる。なお、車両を安全状態にするために予め定められた制御内容は、特に車両の速度を低速にすることに限られない。 When the security processing unit 4130 instructs the mode change processing unit 4170 to put the vehicle in a safe state, the mode change processing unit 4170 should put the vehicle in a safe state (for example, a state in which the speed is limited to a certain speed or less). The frame generation unit 140 is made to generate a mode change frame, which is a predetermined frame for transmission to. When the mode change frame is generated in the frame generation unit 140 and transmitted by the frame transmission / reception unit 160, the other ECU receives the mode change frame and performs predetermined control (for example, the rotation speed of the engine of the vehicle is constantly rotated). Controls limited to the following, etc.) can be executed. It should be noted that the predetermined control content for putting the vehicle in a safe state is not limited to lowering the speed of the vehicle.

[4.4 ECU4400aの受信IDリスト例]
図37は、ECU4400aの受信IDリスト保持部440に保持される受信IDリストの一例を示す図である。ECU4400aは、バスを流れるフレームのうち、受信IDリストに列挙されたメッセージIDのいずれかを含むフレームを選択的に受信して処理する。ECU4400aは、MAC鍵の更新を指示する鍵更新フレーム、カウンタ値の更新を指示するカウンタリセットフレーム、及び、MAC鍵更新とカウンタリセットとを指示する鍵更新&カウンタリセットフレームを受信するため、これらのIDが受信IDリストに登録される。図37に示す受信IDリストの例において「2001」が鍵更新フレームのIDであり、「2002」がカウンタリセットフレームのIDであり、「2003」が鍵更新&カウンタリセットフレームのIDである。なお、ECU4400bにおいても同様の受信IDリストが保持される。なお、本実施の形態では、MAC鍵等の更新の同期をとる必要があるため、ゲートウェイ300が保持する受信IDリスト(図5参照)には更に、鍵更新フレームのID「2001」、カウンタリセットフレームのID「2002」及び鍵更新&リセットフレームのID「2003」が含まれているものとする。
[4.4 Receipt ID list example of ECU 4400a]
FIG. 37 is a diagram showing an example of a reception ID list held in the reception ID list holding unit 440 of the ECU 4400a. The ECU 4400a selectively receives and processes a frame including any of the message IDs listed in the reception ID list among the frames flowing through the bus. The ECU 4400a receives a key update frame instructing the update of the MAC key, a counter reset frame instructing the update of the counter value, and a key update & counter reset frame instructing the MAC key update and the counter reset. The ID is registered in the receiving ID list. In the example of the received ID list shown in FIG. 37, "2001" is the ID of the key update frame, "2002" is the ID of the counter reset frame, and "2003" is the ID of the key update & counter reset frame. The ECU 4400b also holds a similar reception ID list. In this embodiment, since it is necessary to synchronize the update of the MAC key and the like, the reception ID list (see FIG. 5) held by the gateway 300 further includes the key update frame ID "2001" and the counter reset. It is assumed that the frame ID "2002" and the key update & reset frame ID "2003" are included.

[4.5 更新フレーム]
図38は、更新フレームの一例を示す図である。同図では、更新フレームのうち鍵更新&カウンタリセットフレームの例を挙げているが、鍵更新フレーム及びカウンタリセットフレームについても同様の構成である。
[4.5 update frame]
FIG. 38 is a diagram showing an example of an update frame. In the figure, an example of the key update & counter reset frame is given among the update frames, but the key update frame and the counter reset frame have the same configuration.

MAC鍵更新&カウンタリセットフレームでは、IDフィールドのメッセージIDとしては、「2003」という鍵更新&カウンタリセットID(鍵更新&カウンタリセットフレーム用のID)が用いられる。また、データフィールドには、MAC鍵更新、カウンタリセット等の対象となるメッセージID(更新対象ID)とMACとが設定される。図38において(a)は、メッセージIDを問わず全てのMAC鍵更新とカウンタリセットとを一度に行うことを指示する鍵更新&カウンタリセットフレームの具体例を示している。「0xFFFF」というデータにより全てのメッセージIDを表すこととしている。また、図38において(b)は、「4」というメッセージIDについてのMAC鍵更新とカウンタリセットとを一度に行うことを指示する鍵更新&カウンタリセットフレームの具体例を示している。 In the MAC key update & counter reset frame, the key update & counter reset ID (ID for the key update & counter reset frame) of "2003" is used as the message ID in the ID field. Further, in the data field, a message ID (update target ID) and a MAC to be targeted for MAC key update, counter reset, etc. are set. In FIG. 38, (a) shows a specific example of a key update & counter reset frame instructing that all MAC key updates and counter resets are performed at once regardless of the message ID. All message IDs are represented by the data "0xFFFF". Further, FIG. 38 (b) shows a specific example of the key update & counter reset frame instructing that the MAC key update and the counter reset for the message ID “4” are performed at the same time.

[4.6 鍵テーブル]
図39は、不正検知ECU4100aのMAC鍵保持部4180に保持される鍵テーブルの一例を示す図である。鍵テーブルは、鍵IDと、更新前のMAC鍵であるのか、更新後のMAC鍵であるのかを識別するための更新情報と、鍵値とを対応付けて構成される。MAC鍵を更新する際に、MAC鍵更新部4110で生成された新しいMAC鍵は「更新後」の鍵値としてテーブルに書き込まれ、それまで利用していたMAC鍵は「更新前」の鍵値として記録される。ここでは、メッセージID毎に異なるMAC鍵を利用することとし、このため鍵IDはメッセージIDと同じである。不正検知ECU4100aは、自機が受信し得るフレームに対応して複数の鍵IDのMAC鍵を保持している。また、不正検知ECU4100aと同様に、不正検知ECU4100b及びECU4400a〜4400dのそれぞれも、自機が送信又は受信するフレームのメッセージID毎について更新前後のMAC鍵を対応付けて格納するためのMAC鍵テーブルを保持する。
[4.6 Key Table]
FIG. 39 is a diagram showing an example of a key table held in the MAC key holding unit 4180 of the fraud detection ECU 4100a. The key table is configured by associating a key ID, update information for identifying whether it is a MAC key before update or a MAC key after update, and a key value. When updating the MAC key, the new MAC key generated by the MAC key update unit 4110 is written to the table as the "after update" key value, and the MAC key used up to that point is the "before update" key value. Recorded as. Here, a different MAC key is used for each message ID, and therefore the key ID is the same as the message ID. The fraud detection ECU 4100a holds MAC keys with a plurality of key IDs corresponding to frames that the device can receive. Further, similarly to the fraud detection ECU 4100a, each of the fraud detection ECU 4100b and the ECUs 4400a to 4400d also stores a MAC key table for storing the MAC keys before and after the update for each message ID of the frame transmitted or received by the own machine. Hold.

不正検知ECU4100a等のMAC鍵更新部4110或いはECU4400a等のMAC鍵更新部4410においてMAC鍵を更新する方法は、例えば、MACの生成の際に用いられる「更新後」の鍵値(MAC鍵)を、「更新前」の鍵値として鍵テーブルに記録し、その「更新後」のMAC鍵を、予め定められた一方向関数(例えばハッシュ関数等)に入力して導出される結果を新たなMAC鍵として、つまり新たに「更新後」の鍵値として、鍵テーブルに記録する手順等による。新たなMAC鍵を導出する演算としては、入力されたシードに基づいて予め定められたアルゴリズムで新たなMAC鍵を出力する関数を用いても良い。この場合には、例えば、MAC鍵の更新を指示する更新フレーム(鍵更新フレーム又は鍵更新&カウンタリセットフレーム)のデータフィールド中にシードを含ませるようにしても良いし、カウンタ値、現在時刻の情報等をシードとして利用することとしても良い。即ち、MAC鍵を同期して更新すべき複数のECU(或いは不正検知ECU)の間で、同一のMAC鍵が生成できれば良い。 The method of updating the MAC key in the MAC key update unit 4110 of the fraud detection ECU 4100a or the like or the MAC key update unit 4410 of the ECU 4400a or the like is, for example, to set the "after update" key value (MAC key) used when generating the MAC. , Record in the key table as the key value "before update", enter the "after update" MAC key into a predetermined one-way function (for example, hash function, etc.) and derive the result as a new MAC. It depends on the procedure of recording in the key table as a key, that is, as a new "after update" key value. As an operation for deriving a new MAC key, a function that outputs a new MAC key by a predetermined algorithm based on the input seed may be used. In this case, for example, the seed may be included in the data field of the update frame (key update frame or key update & counter reset frame) instructing the update of the MAC key, or the counter value and the current time may be included. Information or the like may be used as a seed. That is, it is sufficient that the same MAC key can be generated among a plurality of ECUs (or fraud detection ECUs) whose MAC keys should be updated synchronously.

[4.7 カウンタテーブル]
図40は、不正検知ECU4100aのカウンタ保持部3190に保持されるカウンタテーブルの一例を示す図である。カウンタテーブルは、カウンタIDと、カウンタ値とを対応付けて構成される。ここでは、メッセージID毎に異なるカウンタを利用することとし、このためカウンタIDはメッセージIDと同じである。不正検知ECU4100aは、自機が受信し得るフレームに対応して複数のカウンタIDのカウンタ値を保持している。また、不正検知ECU4100aと同様に、不正検知ECU4100b及びECU4400a〜4400dのそれぞれも、自機が送信又は受信するフレームのメッセージID毎についてカウンタ値を対応付けて格納するためのカウンタテーブルを保持する。カウンタテーブルのメッセージIDと対応したカウンタ値は、そのメッセージIDのフレームが正常に送信又は受信された場合にインクリメント(1増加)される。この方法として、データフレームを送信する場合においてはカウンタ値を送信カウンタとして扱い、送信回数をカウントする。また、データフレームを受信する場合においてはカウンタ値を受信カウンタとして扱い、受信回数をカウントする。例えば、メッセージIDが「1」のデータフレームを送信するECU4400aにおいては、カウンタテーブルのカウンタIDが「1」に対応するカウンタ値を、送信カウンタとして扱い、1回送信する毎に送信カウンタをインクリメントする。また、例えばメッセージIDが「1」のデータフレームを受信するECU4400bにおいては、カウンタテーブルのカウンタIDが「1」に対応するカウンタ値を、受信カウンタとして扱い、送信されたデータフレームが正常に受信された毎に受信カウンタをインクリメントする。
[4.7 Counter Table]
FIG. 40 is a diagram showing an example of a counter table held in the counter holding unit 3190 of the fraud detection ECU 4100a. The counter table is configured by associating a counter ID with a counter value. Here, a different counter is used for each message ID, and therefore the counter ID is the same as the message ID. The fraud detection ECU 4100a holds the counter values of a plurality of counter IDs corresponding to the frames that can be received by the own machine. Further, similarly to the fraud detection ECU 4100a, each of the fraud detection ECU 4100b and the ECUs 4400a to 4400d holds a counter table for storing the counter values in association with each message ID of the frame transmitted or received by the own machine. The counter value corresponding to the message ID in the counter table is incremented (incremented by 1) when the frame of the message ID is normally transmitted or received. In this method, when transmitting a data frame, the counter value is treated as a transmission counter and the number of transmissions is counted. When receiving a data frame, the counter value is treated as a reception counter and the number of receptions is counted. For example, in the ECU 4400a that transmits a data frame having a message ID of "1", the counter value corresponding to the counter ID of "1" in the counter table is treated as a transmission counter, and the transmission counter is incremented each time the data frame is transmitted. .. Further, for example, in the ECU 4400b that receives a data frame having a message ID of "1", the counter value corresponding to the counter ID of "1" in the counter table is treated as a reception counter, and the transmitted data frame is normally received. The reception counter is incremented each time.

不正検知ECU4100a等のカウンタリセット部4120或いはECU4400a等のカウンタリセット部4420におけるカウンタ値のリセットは、例えばゼロ等の予め定めた特定値になるようカウンタ値を更新することで実現される。カウンタ値を同期して更新(リセット)すべき複数のECU(或いは不正検知ECU)の間で、リセット後に同一のカウンタ値が保持されるのであれば、特定値は必ずしもゼロでなくても良い。 The reset of the counter value in the counter reset unit 4120 of the fraud detection ECU 4100a or the like or the counter reset unit 4420 of the ECU 4400a or the like is realized by updating the counter value so as to become a predetermined specific value such as zero. The specific value does not necessarily have to be zero as long as the same counter value is maintained after the reset among a plurality of ECUs (or fraud detection ECUs) for which the counter values should be updated (reset) in synchronization.

[4.8 セキュリティ条件テーブル620]
図41は、セキュリティ条件保持部4140が保持するセキュリティ条件テーブル620の一例を示す図である。セキュリティ条件テーブル620は、機能分類621、メッセージID622、不正カウント623、不正カウント閾値624、セキュリティアクション625から構成される。機能分類621は、フレーム(データフレーム)の内容とされるデータ或いはその送信元のECUが関連する機能(送信元のECUが接続された機器の機能等)によりフレームのメッセージIDを分類するための項目である。車載ネットワークシステム13における複数のバスのそれぞれが、バスに接続されたECUに関連する機能の面で、複数種類のグループ(機能グループ)のいずれか1つ或いは複数のグループに属している。従って、機能分類621は、対応するメッセージIDのフレームがどのバスで送信されるか、つまり、複数種類のグループのうちのいずれのグループに属するバスで送信されるかを示すものとも言える。「駆動系」は、エンジン、モータ、燃料、電池、トランスミッションの制御等といった車両の走行に関連する機能であり、例えばECU4400aに対応する。「シャーシ系」は、ブレーキ、ステアリング等の「曲がる」、「止まる」等といった車両の挙動等の制御に関連する機能であり、例えばECU4400bが対応する。「ボディ系」は、ドアロック、エアコン、ライト、ウィンカー等といった車両の装備の制御機能であり、例えばECU4400c、4400dが対応する。また、例えば「安全快適機能」は、自動ブレーキ、車線維持機能、車間距離維持機能、衝突防止機能等といった自動的に安全で快適な運転を実現するための機能であり、「ITS(Intelligent Transport Systems)機能」は、ETC(Electronic Toll Collection System)等の高度道路交通システムに対応した機能であり、「テレマティクス」は、車両盗難時の追跡等といった移動体通信を用いたサービスに対応する機能であり、「インフォテイメント」は、カーナビゲーション、オーディオ等に関連したエンターテイメント機能である。メッセージID622は、CANプロトコルにおけるフレームのIDである。不正カウント623は、MACの検証に失敗した回数(エラー発生回数)を格納するための項目(領域)である。不正カウント閾値624は、不正カウント623の値がこの閾値以上になった場合にセキュリティアクションが実行されるところの閾値を示す。セキュリティアクション625は、不正カウント623の値が、不正カウント閾値624が示す閾値以上となった場合に実行される、不正への対処処理である各種のセキュリティアクションについて、その実行を行うか否かを定めた情報である。図41に示すように、セキュリティアクション625は、MACの検証に失敗したメッセージIDを不正IDリストに追加するか否か、不正があったことをヘッドユニット200に通知するか否か、不正があったことについてログに記録するか否か、モード変更処理部4170に車両を安全状態にするためのモード変更を行う指示を出すか否かを定めている。
[4.8 Security Condition Table 620]
FIG. 41 is a diagram showing an example of the security condition table 620 held by the security condition holding unit 4140. The security condition table 620 is composed of a function classification 621, a message ID 622, an illegal count 623, an illegal count threshold value 624, and a security action 625. The function classification 621 is for classifying the message ID of the frame according to the data which is the content of the frame (data frame) or the function related to the ECU of the transmission source (the function of the device to which the ECU of the transmission source is connected, etc.). It is an item. Each of the plurality of buses in the in-vehicle network system 13 belongs to one or a plurality of groups of a plurality of types (functional groups) in terms of functions related to the ECU connected to the buses. Therefore, the function classification 621 can be said to indicate which bus the frame of the corresponding message ID is transmitted on, that is, which bus belongs to which of the plurality of types of groups is transmitted. The "drive system" is a function related to the running of a vehicle such as control of an engine, a motor, a fuel, a battery, and a transmission, and corresponds to, for example, an ECU 4400a. The "chassis system" is a function related to control of vehicle behavior such as "turning" and "stopping" such as braking and steering, and is supported by, for example, ECU 4400b. The "body system" is a control function of vehicle equipment such as a door lock, an air conditioner, a light, a blinker, etc., and is supported by, for example, ECU 4400c and 4400d. In addition, for example, the "safety and comfort function" is a function for automatically realizing safe and comfortable driving such as automatic braking, lane keeping function, inter-vehicle distance keeping function, collision prevention function, etc., and "ITS (Intelligent Transport Systems)" ) Function is a function corresponding to intelligent transportation systems such as ETC (Electronic Toll Collection System), and "Telematics" is a function corresponding to services using mobile communication such as tracking when a vehicle is stolen. , "Infotainment" is an entertainment function related to car navigation, audio, etc. Message ID 622 is the ID of the frame in the CAN protocol. The invalid count 623 is an item (area) for storing the number of times the MAC verification has failed (the number of times an error has occurred). The fraudulent count threshold value 624 indicates a threshold value at which a security action is executed when the value of the fraudulent count 623 becomes equal to or higher than this threshold value. The security action 625 determines whether or not to execute various security actions, which are processes for dealing with fraud, which are executed when the value of the fraud count 623 becomes equal to or higher than the threshold indicated by the fraud count threshold 624. This is the specified information. As shown in FIG. 41, the security action 625 includes whether or not to add the message ID that failed to verify the MAC to the fraudulent ID list, whether or not to notify the head unit 200 that there was a fraud, or whether or not there is a fraud. It is determined whether or not to record the fact in a log, and whether or not to give an instruction to the mode change processing unit 4170 to change the mode for putting the vehicle in a safe state.

図41に示すセキュリティ条件テーブル620では、「駆動系」及び「シャーシ系」については、不正カウント閾値624を「5」に設定し、「ボディ系」については、不正カウント閾値624を「10」に設定している。図41の例では、セキュリティアクション625は、全ての機能分類について、不正なフレーム(検証に失敗したフレーム)のメッセージIDの不正IDリストへの追加、及び、不正があったことのヘッドユニット200への通知については実行される旨を示す「有効」にしている。また、車両を安全状態にするためのモード変更を行う指示(「有効(安全状態に移行)」)は、「駆動系」、「シャーシ系」及び「安全快適機能」といった安全面に関連する機能分類についてのみ定めている。セキュリティ条件テーブル620では、このように機能分類別にセキュリティアクションの実行条件及び処理内容を定義できる。なお、セキュリティ条件テーブル620の内容は、例えば車載ネットワークシステムの製造時、販売時等において設定し得る。 In the security condition table 620 shown in FIG. 41, the illegal count threshold value 624 is set to "5" for the "drive system" and the "chassis system", and the illegal count threshold value 624 is set to "10" for the "body system". It is set. In the example of FIG. 41, the security action 625 adds the message ID of the invalid frame (frame whose verification failed) to the invalid ID list for all the function classifications, and adds the invalid frame to the head unit 200. The notification is set to "Enabled" to indicate that it will be executed. In addition, the instruction to change the mode to put the vehicle in a safe state ("valid (shift to a safe state)") is a function related to safety such as "drive system", "chassis system" and "safety and comfort function". Only the classification is defined. In the security condition table 620, execution conditions and processing contents of security actions can be defined for each function classification in this way. The contents of the security condition table 620 can be set, for example, at the time of manufacturing or selling the in-vehicle network system.

[4.9 不正IDリスト]
図42は、不正IDリスト保持部4150が保持する不正IDリストの一例を示す図である。不正IDリストには、セキュリティ条件テーブルのセキュリティアクション625として不正IDリストの追加が「有効」と定められているメッセージIDのフレームを不正と判断した場合(つまりそのフレームのMACの検証に失敗した場合)に、セキュリティ処理部4130によってメッセージIDが追加される。なお、不正IDリストには、車載ネットワークシステム13において送信されるはずがないメッセージIDを予め含ませておいても良い。
[4.9 Illegal ID list]
FIG. 42 is a diagram showing an example of an invalid ID list held by the invalid ID list holding unit 4150. In the invalid ID list, when the frame of the message ID for which the addition of the invalid ID list is defined as "valid" as the security action 625 of the security condition table is determined to be invalid (that is, when the MAC verification of the frame fails). ), The message ID is added by the security processing unit 4130. The fraudulent ID list may include in advance a message ID that should not be transmitted in the in-vehicle network system 13.

[4.10 不正フレームの検知及びセキュリティアクションに係るシーケンス]
以下、上述の構成を備える車載ネットワークシステム13のバス500aに不正なECUが接続された場合について、バス500aに接続された不正検知ECU4100a、ECU4400a、ECU4400b、ゲートウェイ300等の動作について説明する。
[4.10 Sequence related to detection of illegal frames and security actions]
Hereinafter, the operations of the fraud detection ECU 4100a, ECU 4400a, ECU 4400b, gateway 300, etc. connected to the bus 500a will be described when a fraudulent ECU is connected to the bus 500a of the vehicle-mounted network system 13 having the above configuration.

図43〜図45は、不正検知ECU4100aによる不正なフレーム(メッセージ)の検知、各ECUにおけるMAC鍵の更新及びカウンタ値のリセット、並びに、不正検知ECU4100aによるセキュリティアクションの動作例を示すシーケンス図である。ここでは、不正検知ECU4100aが保持するセキュリティ条件テーブルは図41に例示する内容であることとして説明する。ここでは、不正なECUが、バス500aに接続された例を想定している。この不正なECUは、メッセージIDが「4」でデータフィールドにデータ「0xFF」等を含ませたデータフレームを送信する。 43 to 45 are sequence diagrams showing an example of operation of a fraud detection ECU 4100a for detecting a fraudulent frame (message), updating a MAC key in each ECU, resetting a counter value, and a security action by the fraud detection ECU 4100a. .. Here, the security condition table held by the fraud detection ECU 4100a will be described as being illustrated in FIG. 41. Here, it is assumed that an unauthorized ECU is connected to the bus 500a. This illegal ECU transmits a data frame having a message ID of "4" and including data "0xFF" or the like in a data field.

まず、不正なECUは、上述した不正なデータフレームの送信を開始する(シーケンスS4001)。不正検知ECU4100a、ECU4400a、ECU4400b及びゲートウェイ300はそれぞれメッセージIDを受信する(シーケンスS4002)。ECU4400a、ECU4400b及びゲートウェイ300はそれぞれ、保持している受信IDリストを用いてメッセージIDをチェックする(シーケンスS4003)。ECU3400a及びECU3400bは、それぞれが保持している受信IDリストに「4」が含まれていないため(図37参照)、受信を終了する。ゲートウェイ300は、保持している受信IDリストに「4」が含まれているため(図5参照)、受信を継続しデータフィールドの受信を行う(シーケンスS4004)。同様に不正検知ECU4100aもデータフィールドの受信を行う(シーケンスS4004)。 First, the illegal ECU starts transmitting the above-mentioned illegal data frame (sequence S4001). The fraud detection ECU 4100a, ECU 4400a, ECU 4400b and gateway 300 each receive a message ID (sequence S4002). Each of the ECU 4400a, the ECU 4400b, and the gateway 300 checks the message ID using the received reception ID list held (sequence S4003). Since "4" is not included in the reception ID list held by each of the ECU 3400a and the ECU 3400b (see FIG. 37), the reception is terminated. Since the gateway 300 includes "4" in the received reception ID list held (see FIG. 5), the gateway 300 continues the reception and receives the data field (sequence S4004). Similarly, the fraud detection ECU 4100a also receives the data field (sequence S4004).

シーケンスS4004に続いて、不正検知ECU4100aは、データフィールドにおけるデータに含まれるMACを検証する(シーケンスS4005)。即ち、不正検知ECU4100aは、送信されたフレームにおけるデータフィールドのデータにおけるMACが含まれるはずの所定位置の内容と、MAC鍵(つまり鍵テーブルにおいてID「4」に対応する「更新後」の鍵値として保持されているMAC鍵)等を用いてMAC生成部3170により生成したMACとを比較することでMACを検証する。不正なECUにより送信された不正なデータフレームには正しいMACは格納されていないため、比較の結果が不一致となり、MACの検証に失敗する。MACの検証に失敗した場合に、不正検知ECU4100aでは、セキュリティ条件テーブル620のメッセージID「4」に対応する不正カウント623の値をインクリメントする。 Following the sequence S4004, the fraud detection ECU 4100a verifies the MAC included in the data in the data field (sequence S4005). That is, the fraud detection ECU 4100a has the contents of the predetermined position in which the MAC should be included in the data of the data field in the transmitted frame and the MAC key (that is, the "updated" key value corresponding to the ID "4" in the key table. The MAC is verified by comparing it with the MAC generated by the MAC generation unit 3170 using the MAC key held as. Since the correct MAC is not stored in the invalid data frame transmitted by the invalid ECU, the comparison results will be inconsistent and the MAC verification will fail. When the MAC verification fails, the fraud detection ECU 4100a increments the value of the fraud count 623 corresponding to the message ID "4" in the security condition table 620.

車載ネットワークシステム13において、不正なECUが接続されている可能性があれば不正なECUからのMACに対する総当り攻撃等への耐性を高めるべく、MACの生成に用いられるデータの更新(つまりMAC鍵の更新或いはカウンタ値のリセット)を行うことが有用である。このデータの更新に関連して、MACの検証に失敗した場合には、正規なECUとの間でMAC鍵又はカウンタ値の同期に失敗している可能性がある。また、不正なECUが送信した不正なデータフレームによりMACの検証に失敗した可能性もある。そこで、これらを鑑みて不正検知ECU4100aは、MACの検証に失敗した場合には、更新フレームを送信することとしている。即ち、不正検知ECU4100aは、MACの検証に失敗した場合に、フレーム生成部140によりメッセージIDが「4」を更新対象IDとして設定した鍵更新&カウンタリセットフレーム(図38参照)を生成し(シーケンスS4006)、フレーム送受信部160により鍵更新&カウンタリセットフレームを送信する(シーケンスS4007)。 In the in-vehicle network system 13, if there is a possibility that an unauthorized ECU is connected, the data used for MAC generation (that is, the MAC key) is updated in order to increase the resistance to a round-robin attack against the MAC from the unauthorized ECU. It is useful to update (or reset the counter value). If the MAC verification fails in connection with the update of this data, there is a possibility that the synchronization of the MAC key or counter value with the legitimate ECU has failed. It is also possible that the MAC verification failed due to an invalid data frame transmitted by an illegal ECU. Therefore, in view of these, the fraud detection ECU 4100a transmits an update frame when the MAC verification fails. That is, when the MAC verification fails, the fraud detection ECU 4100a generates a key update & counter reset frame (see FIG. 38) in which the message ID “4” is set as the update target ID by the frame generation unit 140 (sequence). S4006), the frame transmission / reception unit 160 transmits a key update & counter reset frame (sequence S4007).

ECU4400a,ECU4400b及びゲートウェイ300は、受信IDリストに更新フレームである鍵更新&カウンタリセットフレームのメッセージID「2003」が含まれているため、鍵更新&カウンタリセットフレームを受信する(シーケンスS4008)。 Since the ECU 4400a, the ECU 4400b, and the gateway 300 include the message ID "2003" of the key update & counter reset frame which is the update frame in the reception ID list, the ECU 4400a, the ECU 4400b, and the gateway 300 receive the key update & counter reset frame (sequence S4008).

続いてECU4400a,ECU4400b及びゲートウェイ300は、受信した更新フレームがMAC鍵の更新を指示するものであるか否かを判断して(シーケンスS4009)、MAC鍵の更新を指示する鍵更新フレーム又は鍵更新&カウンタリセットフレームであれば、MAC鍵の更新を行う(シーケンスS4010)。 Subsequently, the ECU 4400a, the ECU 4400b, and the gateway 300 determine whether or not the received update frame indicates the update of the MAC key (sequence S4009), and then determine the key update frame or the key update instructing the update of the MAC key. If it is a & counter reset frame, the MAC key is updated (sequence S4010).

また、ECU4400a,ECU4400b及びゲートウェイ300は、受信した更新フレームがカウンタ値の更新(リセット)を指示するものであるか否かを判断して(シーケンスS4011)、カウンタ値のリセットを指示するカウンタリセットフレーム又は鍵更新&カウンタリセットフレームであれば、カウンタ値のリセットを行う(シーケンスS4012)。 Further, the ECU 4400a, the ECU 4400b, and the gateway 300 determine whether or not the received update frame indicates the update (reset) of the counter value (sequence S4011), and the counter reset frame instructing the reset of the counter value. Alternatively, if it is a key update & counter reset frame, the counter value is reset (sequence S4012).

なお、図44では省略しているが、不正検知ECU4100aも、シーケンスS4008〜S4012の処理手順を行い、同様にメッセージID「4」に対応するMAC鍵の更新及びカウンタ値のリセットを行い得る。 Although omitted in FIG. 44, the fraud detection ECU 4100a can also perform the processing procedures of sequences S4008 to S4012, and similarly update the MAC key corresponding to the message ID “4” and reset the counter value.

また、不正検知ECU4100aは、セキュリティ条件テーブル620のいずれかのメッセージIDに対応する不正カウント623の値が、不正カウント閾値624が示す閾値以上になったか否かを判断し(シーケンスS4013)、閾値以上になった場合にはセキュリティアクション処理(図46)を行う(シーケンスS4014)。ここで、図45でのシーケンスの説明を中断して、このセキュリティアクション処理について図46に即して説明する。なお、セキュリティ条件テーブル620におけるメッセージID「4」に対応する不正カウント623の値が、不正カウント閾値624が示す閾値以上になった例を用いて説明する。 Further, the fraud detection ECU 4100a determines whether or not the value of the fraud count 623 corresponding to any message ID in the security condition table 620 is equal to or higher than the threshold indicated by the fraud count threshold 624 (sequence S4013), and is equal to or higher than the threshold. When becomes, security action processing (FIG. 46) is performed (sequence S4014). Here, the description of the sequence in FIG. 45 is interrupted, and the security action processing will be described with reference to FIG. 46. An example will be described in which the value of the fraud count 623 corresponding to the message ID “4” in the security condition table 620 is equal to or greater than the threshold indicated by the fraud count threshold 624.

図46は、不正検知ECU4100aにおけるセキュリティアクション処理を示すフローチャートである。 FIG. 46 is a flowchart showing security action processing in the fraud detection ECU 4100a.

不正検知ECU4100aは、セキュリティ条件テーブル620における不正カウント623の値が、不正カウント閾値624により示される閾値以上となったメッセージID(図45のシーケンスの例では「4」)に対応するセキュリティアクション625に従って、不正IDリストへの追加が「有効」であるか否かを判別する(ステップS4020)。「有効」であれば、不正検知ECU4100aのセキュリティ処理部4130は、不正IDリスト保持部4150が保持する不正IDリストにメッセージIDを追加する(ステップS4021)。 The fraud detection ECU 4100a follows the security action 625 corresponding to the message ID (“4” in the sequence example of FIG. 45) in which the value of the fraud count 623 in the security condition table 620 is equal to or greater than the threshold indicated by the fraud count threshold 624. , It is determined whether or not the addition to the fraudulent ID list is "valid" (step S4020). If it is "valid", the security processing unit 4130 of the fraud detection ECU 4100a adds the message ID to the fraud ID list held by the fraud ID list holding unit 4150 (step S4021).

また、不正検知ECU4100aは、セキュリティ条件テーブル620におけるメッセージID「4」に対応するセキュリティアクション625に従って、ヘッドユニットへの通知が「有効」であるか否かを判別する(ステップS4022)。「有効」であれば、不正検知ECU4100aのセキュリティ処理部4130は、不正なフレームの送信が行われた旨を示す情報を含むフレームを送信する制御等によりヘッドユニット200への通知を行う(ステップS4023)。 Further, the fraud detection ECU 4100a determines whether or not the notification to the head unit is "valid" according to the security action 625 corresponding to the message ID "4" in the security condition table 620 (step S4022). If it is "valid", the security processing unit 4130 of the fraud detection ECU 4100a notifies the head unit 200 by controlling transmission of a frame including information indicating that the fraudulent frame has been transmitted (step S4023). ).

また、不正検知ECU4100aは、セキュリティ条件テーブル620におけるメッセージID「4」に対応するセキュリティアクション625に従って、ログの記録が「有効」であるか否かを判別する(ステップS4024)。「有効」であれば、不正検知ECU4100aのセキュリティ処理部4130は、不正ログ保持部4160が保持するログに不正なフレームの送信が行われたことに係るイベントの情報を追記する(ステップS4025)。 Further, the fraud detection ECU 4100a determines whether or not the log recording is "valid" according to the security action 625 corresponding to the message ID "4" in the security condition table 620 (step S4024). If it is "valid", the security processing unit 4130 of the fraud detection ECU 4100a adds event information related to the transmission of a fraudulent frame to the log held by the fraud log holding unit 4160 (step S4025).

また、不正検知ECU4100aは、セキュリティ条件テーブル620におけるメッセージID「4」に対応するセキュリティアクション625に従って、車両を安全状態にするためのモード変更することが「有効」か否かを判別する(ステップS4026)。「有効」であれば、不正検知ECU4100aのセキュリティ処理部4130は、モード変更処理部4170に車両を安全状態にするためのモード変更を行う指示を出す(ステップS4027)。 Further, the fraud detection ECU 4100a determines whether or not it is "effective" to change the mode for putting the vehicle in a safe state according to the security action 625 corresponding to the message ID "4" in the security condition table 620 (step S4026). ). If it is "valid", the security processing unit 4130 of the fraud detection ECU 4100a issues an instruction to the mode change processing unit 4170 to change the mode for putting the vehicle in a safe state (step S4027).

メッセージID「4」に対応する不正カウント623の値が、不正カウント閾値624が示す閾値以上になった場合においては、不正IDリストへのメッセージIDの追加(ステップS4021)、及び、不正なフレームの送信に係る情報のヘッドユニット200への通知(ステップS4023)が、実行されることになる。 When the value of the invalid count 623 corresponding to the message ID "4" becomes equal to or greater than the threshold indicated by the invalid count threshold value 624, the message ID is added to the invalid ID list (step S4021), and the invalid frame is added. Notification of information related to transmission to the head unit 200 (step S4023) will be executed.

以下、再び図45でのシーケンスの説明に戻る。 Hereinafter, the description of the sequence in FIG. 45 will be returned to again.

ここでは、不正検知ECU4100aが上述のセキュリティアクション処理を行った後において、メッセージIDが「4」でデータフィールドにデータ「0xFF」等を含ませたデータフレームを不正なECUが再び送信したとする(シーケンスS4015)。 Here, it is assumed that after the fraud detection ECU 4100a performs the above-mentioned security action processing, the fraudulent ECU again transmits a data frame in which the message ID is "4" and the data field includes data "0xFF" or the like (). Sequence S4015).

この時点では、不正検知ECU4100aが受信したメッセージID「4」と同一のメッセージIDが、不正IDリスト保持部4150により保持される不正IDリストに含まれているため(シーケンスS4016)、不正検知ECU4100aのフレーム解釈部4151はフレーム生成部140にエラーフレームを生成させる(シーケンスS4017)。 At this point, since the same message ID as the message ID "4" received by the fraud detection ECU 4100a is included in the fraud ID list held by the fraud ID list holding unit 4150 (sequence S4016), the fraud detection ECU 4100a The frame interpretation unit 4151 causes the frame generation unit 140 to generate an error frame (sequence S4017).

続いて不正検知ECU4100aは、エラーフレームをフレーム送受信部160により送信する(シーケンスS4018)。これにより、不正なECUによるメッセージID「4」のデータフレームの送信が完了する前に、そのデータフレームの一部がエラーフレームにより上書きされることになる。従って、他のECUが不正なデータフレームを受信して対応した処理を行ってしまうことが阻止される。なお、データフレームを受信した際に、もし不正IDリストに、受信したメッセージIDと同一のメッセージIDが含まれていない場合には、不正検知ECU4100aは、データフレームの受信を継続し(シーケンスS4019)、シーケンスS4004からシーケンスS4014の手順を実行する。 Subsequently, the fraud detection ECU 4100a transmits an error frame by the frame transmission / reception unit 160 (sequence S4018). As a result, a part of the data frame is overwritten by the error frame before the transmission of the data frame of the message ID "4" by the illegal ECU is completed. Therefore, it is prevented that another ECU receives an invalid data frame and performs the corresponding processing. When the data frame is received, if the fraud ID list does not include the same message ID as the received message ID, the fraud detection ECU 4100a continues to receive the data frame (sequence S4019). , The procedure of sequence S4004 to sequence S4014 is executed.

[4.11 実施の形態4の効果]
実施の形態4で示した車載ネットワークシステム13においては、不正検知ECUと正当なECUとの間でMAC鍵の更新或いはカウンタ値のリセットの同期がとれずにデータフレームでのMACの検証に失敗する場合に、不正検知ECUからMAC鍵更新又はカウンタ値のリセットを指示する更新フレームを送信することで、同期ずれが解消され得る。また、MAC鍵更新及びカウンタ値のリセットを正しく行えない不正なECUを判別できることになり、不正なECUからのフレームに基づき、他のECUがそのフレームに従って処理を行うことを阻止し得るようになる。また、セキュリティ条件テーブルにより、MACの検証により不正なデータフレームが検出される回数等に応じて対処処理を適切に定義して、不正に対処し得るようになる。
[Effect of 4.11 Embodiment 4]
In the in-vehicle network system 13 shown in the fourth embodiment, the MAC key update or the counter value reset cannot be synchronized between the fraud detection ECU and the legitimate ECU, and the MAC verification in the data frame fails. In this case, the synchronization shift can be eliminated by transmitting an update frame instructing the fraud detection ECU to update the MAC key or reset the counter value. In addition, it becomes possible to identify an illegal ECU that cannot correctly update the MAC key and reset the counter value, and it becomes possible to prevent other ECUs from performing processing according to the frame based on the frame from the illegal ECU. .. In addition, according to the security condition table, the countermeasure processing can be appropriately defined according to the number of times that an invalid data frame is detected by MAC verification, and the illegal data frame can be dealt with illegally.

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

(1)上記実施の形態では、各ECUによりフレームが定期的に送信される例を示したが、フレームは状態変化を通知するイベントとして送信されることとしても良い。例えば、ECUは、ドアの開閉状態を定期的に送信するのではなく、ドアの開閉状態が変化した場合にのみ、フレームを送信するとしても良い。また、ECUがフレームを、定期的に送信、かつ、状態変化が発生した時に送信することとしても良い。 (1) In the above embodiment, the example in which the frame is periodically transmitted by each ECU is shown, but the frame may be transmitted as an event notifying the state change. For example, the ECU may transmit the frame only when the open / closed state of the door changes, instead of transmitting the open / closed state of the door periodically. Further, the ECU may transmit the frame periodically and when a state change occurs.

(2)上記実施の形態では、メッセージIDとデータ値とカウンタ値とに基づく演算によりMACを生成(計算)しているが、データフレームの一部の内容を反映して(つまり一部の内容に基づいて)MACを生成すれば良く、データ値のみからMACを生成することとしても良い。またカウンタ値のみからMACを生成するとしても良い。データフレームを受信するECUにおけるMACの検証方式は、データフレームを送信するECUがデータフレームにMACを付与する方式に対応したものであれば良い。また、MACを付与するデータフレームにおいてはデータフィールド内にデータ値及びMACの他に、一部又は全てのカウンタ値を含めても良い。また、フレームに含まれるMACのサイズは4bytesに制限されるものではなく、送信毎に異なるサイズであっても良い。同様に時速等のデータ値のサイズ及びカウンタ値のサイズも1byteに制限されるものではない。 (2) In the above embodiment, the MAC is generated (calculated) by an operation based on the message ID, the data value, and the counter value, but it reflects a part of the contents of the data frame (that is, a part of the contents). The MAC may be generated (based on), and 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 one that corresponds to the method in which the ECU that transmits the data frame assigns the MAC to the data frame. Further, in the data frame to which the MAC is assigned, a part or all the counter values may be included in the data field in addition to the data value and the MAC. Further, the size of the MAC included in the frame is not limited to 4 bytes, and may be a different size for each transmission. Similarly, the size of the data value such as the speed per hour and the size of the counter value are not limited to 1 byte.

(3)上記実施の形態では、カウンタ値を送信毎にインクリメントする例を示したが、カウンタ値が時刻に応じて自動的にインクリメントされる値であっても良い。また、時刻そのものの値をカウンタの代わりに使用しても良い。即ち、データフレームが送信される度に変化する変数(カウンタ、時刻等)に基づいてMACが生成されるようにすると、MACの不正な解読を困難化することが可能となる。また、カウンタの値に対する演算は、インクリメント(1増加)には限定されない。2以上の増加を行っても良いし、インクリメントによるアップカウントに限らず、デクリメントによるダウンカウントでも良い。また、カウンタ値に対する演算は、例えば、ビットシフトであっても良いし、前回の演算結果を入力値として予め定められたアルゴリズムに基づいて特定された出力値を演算結果とする演算等であっても良い。 (3) In the above embodiment, an example in which the counter value is incremented for each transmission is shown, but the counter value may be a value that is automatically incremented according to the time. Moreover, the value of the time itself may be used instead of the counter. That is, if the MAC is generated based on variables (counter, time, etc.) that change each time a data frame is transmitted, it is possible to make it difficult to decipher the MAC illegally. Further, the operation on the counter value is not limited to increment (increment by 1). An increase of 2 or more may be performed, and not only an up count by increment but also a down count by decrement may be performed. Further, the operation on the counter value may be, for example, a bit shift, or an operation in which the output value specified based on a predetermined algorithm is used as the input value of the previous operation result as the operation result. Is also good.

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

(5)上記実施の形態では、MAC算出のアルゴリズムをHMACとしているが、これはCBC−MAC(Cipher Block Chaining Message Authentication Code)、CMAC(Cipher-based MAC)であっても良い。また、MAC計算に用いられるパディングについては、ゼロパディング、ISO10126、PKCS#1、PKCS#5、PKCS#7、その他、ブロックのデータサイズが計算に必要となるパディングの方式であれば何でも良い。また4bytes等のブロックへのサイズの変更方法についても、先頭、最後尾、中間のいずれの部分にパディングを行っても良い。また、MAC算出に用いるデータは、連続しているデータ(例えば4bytes分の連続データ)でなくても、特定のルールに従って1bitずつ収集して結合したものでも良い。 (5) In the above embodiment, the algorithm for calculating MAC is HMAC, but this may be CBC-MAC (Cipher Block Chaining Message Authentication Code) or CMAC (Cipher-based MAC). The padding used in the MAC calculation may be zero padding, ISO10126, PKCS # 1, PKCS # 5, PKCS # 7, or any other padding method in which the data size of the block is required for the calculation. Also, regarding the method of changing the size to a block such as 4bytes, padding may be performed at any of the beginning, the end, and the middle part. Further, the data used for MAC calculation may not be continuous data (for example, continuous data for 4 bytes), but may be collected and combined 1 bit at a time according to a specific rule.

(6)上記実施の形態で示した不正フレーム検知部及び不正MAC検知部はCANコントローラと呼ばれるハードウェア、または、CANコントローラと接続して動作するプロセッサ上で動作するファームウェアに実装しても良い。また、MAC鍵保持部、カウンタ保持部、正規IDリスト保持部、データ範囲リスト保持部、不正IDリスト保持部、セキュリティ条件保持部は、CANコントローラと呼ばれるハードウェアのレジスタ、または、CANコントローラと接続して動作するプロセッサ上で動作するファームウェアに格納されていても良い。 (6) The fraudulent frame detection unit and the fraudulent MAC detection unit shown in the above embodiment may be mounted on hardware called a CAN controller or firmware that operates on a processor that operates in connection with the CAN controller. Further, the MAC key holding unit, the counter holding unit, the regular ID list holding unit, the data range list holding unit, the invalid ID list holding unit, and the security condition holding unit are connected to a hardware register called a CAN controller or a CAN controller. It may be stored in the firmware that operates on the processor that operates.

(7)上記実施の形態のセキュリティ条件テーブルは一例であり、例示した値と異なる値にしても良いし、複数の条件を定めたものであっても良い。また、セキュリティ条件テーブルは不正検知ECUに事前に設定されているものとしているが、車載ネットワークシステムの出荷時或いは車載ネットワークシステムが搭載される車体の出荷時に設定されても良い。上述したセキュリティ条件テーブル等の情報類は、セキュリティ条件保持部に保持された後において、アップデートされても良く、セキュリティ条件テーブル等の情報類は、外部との通信に基づいて設定されても、各種記録媒体等を用いて設定されても、ツール類等によって設定されても良い。 (7) The security condition table of the above embodiment is an example, and the value may be different from the illustrated value, or a plurality of conditions may be defined. Further, although the security condition table is set in advance in the fraud detection ECU, it may be set at the time of shipment of the in-vehicle network system or at the time of shipment of the vehicle body on which the in-vehicle network system is mounted. Information such as the security condition table described above may be updated after being held in the security condition holding unit, and various information such as the security condition table may be set based on communication with the outside. It may be set by using a recording medium or the like, or may be set by tools or the like.

(8)上記実施の形態では、MAC鍵をメッセージID毎に1つ保持しているが、ECU毎(つまり1以上のメッセージID群毎)に1つであっても良い。また、全てのECUが同じMAC鍵を保持している必要はない。また、同一のバスに接続された各ECUは、共通のMAC鍵を保持していても良い。但し、同じメッセージIDのフレームを送信するECUとそのフレームを受信して検証するECUとでは同じMAC鍵を保持する必要がある。また、同一のMAC鍵を保持する範囲については、互いに異なるバスに接続されたECU間であっても同一の鍵、車両一台あたり同一の鍵、同一車種の車両で同一の鍵、同一製造メーカ毎に同一の鍵、互いに異なる製造メーカであっても同一の鍵等であっても良い。なお、更新前と更新後のMAC鍵を、MAC鍵保持部において暗号化して保持しても良い。 (8) In the above embodiment, one MAC key is held for each message ID, but one for each ECU (that is, for each one or more message ID groups) may be used. Also, not all ECUs need to hold the same MAC key. Further, each ECU connected to the same bus may hold a common MAC key. However, it is necessary for the ECU that transmits a frame with the same message ID and the ECU that receives and verifies the frame to hold the same MAC key. Regarding the range of holding the same MAC key, the same key, the same key per vehicle, the same key for vehicles of the same model, and the same manufacturer even between ECUs connected to different buses. The same key may be used for each, and the same key may be used even if the manufacturers are different from each other. The MAC key before and after the update may be encrypted and held by the MAC key holding unit.

(9)上記実施の形態では、カウンタ値をメッセージID毎に1つ保持しているが、ECU毎(つまり1以上のメッセージID群毎)に1つであっても良い。また、同一のバス上を流れる全てのフレームに対して共通のカウンタ値を使用しても良い。 (9) In the above embodiment, one counter value is held for each message ID, but one counter value may be held for each ECU (that is, for each one or more message ID groups). Further, a common counter value may be used for all frames flowing on the same bus.

(10)上記実施の形態では、不正検知ECUがMACの検証に失敗した場合(その失敗回数が閾値を超えた場合)に、不正なフレームの送信が行われた旨をヘッドユニットに通知することとしたが、ヘッドユニットは、その不正に係る情報を、車載ネットワークシステムの外部のサーバ装置等へ通信により通知しても良い。これにより、外部サーバ装置等において、車載ネットワークシステムで生じた不正に係る情報を収集することが可能となる。また、ヘッドユニットは、不正なフレームの送信が行われた旨の通知を受けると、ディスプレイへの表示、ブザーの鳴動等で運転者に報知しても良い。また、上記実施の形態では、不正検知がMACの検証に失敗した場合(その失敗回数が閾値を超えた場合)に、車両の状態を安全状態にするための制御を行うこととしたが、これは車両の機能に一定の抑制を加えて予め定められた特定状態にするための制御であれば足りる。この特定状態にするための制御は、例えば、車両の一部の機構を制御すること、車両の一部の機構の制御を1台又は複数のECUに指示するためのフレームを、バスを介して送信すること等である。 (10) In the above embodiment, when the fraud detection ECU fails to verify the MAC (when the number of failures exceeds the threshold value), the head unit is notified that a fraudulent frame has been transmitted. However, the head unit may notify the information related to the fraud to a server device or the like outside the in-vehicle network system by communication. This makes it possible for an external server device or the like to collect information on fraud that has occurred in the in-vehicle network system. Further, when the head unit receives a notification that an illegal frame has been transmitted, the head unit may notify the driver by displaying on a display, sounding a buzzer, or the like. Further, in the above embodiment, when the fraud detection fails to verify the MAC (when the number of failures exceeds the threshold value), control is performed to make the vehicle state safe. Is sufficient as long as it is a control for adding a certain suppression to the function of the vehicle to bring it into a predetermined specific state. The control for setting this specific state is, for example, to control a part of the mechanism of the vehicle, or to instruct one or a plurality of ECUs to control a part of the mechanism of the vehicle via a bus. Sending, etc.

(11)上記実施の形態で不正検知ECUがMACの検証に失敗した場合に送信することとした鍵更新&カウンタリセットフレームの代わりに、不正検知ECUは、鍵更新フレーム及びカウンタリセットフレームのいずれかのみを用いることとしても良い。例えば、不正検知ECUを含む各ECUにおいてMACの生成にカウンタ値を用いない場合或いはカウンタ値を用いるがカウンタ値のリセットを行わないこととした場合には、不正検知ECUはMACの検証に失敗したときに更新フレームのうち鍵更新フレームのみを送信することが有用となる。また、不正検知ECUにおいて受信したデータフレームに係るMACの検証に失敗した場合に、そのデータフレームと同一のメッセージIDのデータフレームの送信側及び受信側となるECU及び不正検知ECUは、更新フレームの送受信以外の方法(例えばCANプロトコルを利用しない通信路を介して信号の授受を行う等)で同期してMAC鍵の更新或いはカウンタ値のリセットを行っても良い。 (11) Instead of the key update & counter reset frame that is transmitted when the fraud detection ECU fails to verify the MAC in the above embodiment, the fraud detection ECU is either a key update frame or a counter reset frame. You may use only. For example, if the counter value is not used for MAC generation in each ECU including the fraud detection ECU, or if the counter value is used but the counter value is not reset, the fraud detection ECU fails to verify the MAC. Sometimes it is useful to send only the key update frame out of the update frames. Further, when the verification of the MAC related to the received data frame in the fraud detection ECU fails, the ECU and the fraud detection ECU that are the transmitting side and the receiving side of the data frame having the same message ID as the data frame are updated frames. The MAC key may be updated or the counter value may be reset in synchronization by a method other than transmission / reception (for example, signals are exchanged via a communication path that does not use the CAN protocol).

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

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

(14)上記実施の形態における各装置を構成する構成要素の一部または全部は、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に置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行っても良い。バイオ技術の適用等が可能性としてあり得る。 (14) A part or all of the components constituting each device in the above embodiment may be composed of one system LSI (Large Scale Integration). The system LSI is an ultra-multifunctional LSI manufactured by integrating a plurality of components on one chip, and specifically, is a computer system including a microprocessor, a ROM, a RAM, and the like. .. A computer program is recorded in the RAM. When the microprocessor operates according to the computer program, the system LSI achieves its function. Further, each part of the component components constituting each of the above devices may be individually integrated into one chip, or may be integrated into one chip so as to include a part or all of them. Further, although the system LSI is used here, it may be referred to as an IC, an LSI, a super LSI, or an ultra LSI depending on the degree of integration. Further, the method of making an integrated circuit is not limited to LSI, and may be realized by a dedicated circuit or a general-purpose processor. An FPGA (Field Programmable Gate Array) that can be programmed after the LSI is manufactured, or a reconfigurable processor that can reconfigure the connection and settings of circuit cells inside the LSI may be used. Furthermore, if an integrated circuit technology that replaces an LSI appears due to advances in semiconductor technology or another technology derived from it, it is naturally possible to integrate functional blocks using that technology. The application of biotechnology, etc. is possible.

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

(16)本発明の一態様としては、上記に示す不正対処方法等の方法であるとしても良い。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしても良いし、前記コンピュータプログラムからなるデジタル信号であるとしても良い。また、本発明の一態様としては、前記コンピュータプログラムまたは前記デジタル信号をコンピュータで読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD−ROM、MO、DVD、DVD−ROM、DVD−RAM、BD(Blu-ray(登録商標) Disc)、半導体メモリ等に記録したものとしても良い。また、これらの記録媒体に記録されている前記デジタル信号であるとしても良い。また、本発明の一態様としては、前記コンピュータプログラムまたは前記デジタル信号を、電気通信回線、無線または有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしても良い。また、本発明の一態様としては、マイクロプロセッサとメモリを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記録しており、前記マイクロプロセッサは、前記コンピュータプログラムに従って動作するとしても良い。また、前記プログラムまたは前記デジタル信号を前記記録媒体に記録して移送することにより、または前記プログラムまたは前記デジタル信号を前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしても良い。 (16) As one aspect of the present invention, a method such as the fraudulent coping method shown above may be used. Further, it may be a computer program that realizes these methods by a computer, or it may be a digital signal composed of the computer program. Further, as one aspect of the present invention, the computer program or a recording medium capable of reading the digital signal by a computer, 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), may be recorded on a semiconductor memory or the like. Further, it may be the digital signal recorded on these recording media. Further, as one aspect of the present invention, the computer program or the digital signal may be transmitted via a telecommunication line, a wireless or wired communication line, a network typified by the Internet, data broadcasting, or the like. Further, one aspect of the present invention is a computer system including a microprocessor and a memory, in which the memory records the computer program, and the microprocessor may operate according to the computer program. .. Further, it is carried out by another independent computer system by recording and transferring the program or the digital signal on the recording medium, or by transferring the program or the digital signal via the network or the like. It may be.

(17)上記実施の形態及び上記変形例で示した各構成要素及び機能を任意に組み合わせることで実現される形態も本発明の範囲に含まれる。 (17) The scope of the present invention also includes a form realized by arbitrarily combining the above-described embodiment and each component and function shown in the above-described modification.

本発明は、車載ネットワークシステムにおいて不正なフレームの送信に対処するために利用可能である。 The present invention can be used to deal with the transmission of illegal frames in an in-vehicle network system.

10、11、12、13 車載ネットワークシステム
100a、100b、2100a、2100b、3100a、3100b、4100a、4100b 不正検知電子制御ユニット(不正検知ECU)
110 不正検知カウンタ保持部
120 正規IDリスト保持部
130、2130 不正フレーム検知部
140、230、320、420、3420 フレーム生成部
150、260、350、450、2150、3150、4151 フレーム解釈部
160、270、360、460 フレーム送受信部
200 ヘッドユニット
210 表示制御部
220、410 フレーム処理部
240、330、430 受信ID判断部
250、340、440 受信IDリスト保持部
300 ゲートウェイ
310 転送処理部
370 転送ルール保持部
400a〜400d、3400a〜3400d、4400a〜4400d 電子制御ユニット(ECU)
401 エンジン
402 ブレーキ
403 ドア開閉センサ
404 窓開閉センサ
470 データ取得部
500a〜500c バス
2120 データ範囲リスト保持部
3130、4131 不正MAC検知部
3170、3410 MAC生成部
3180、3430、4180、4430 MAC鍵保持部
3190、3440 カウンタ保持部
4110、4410 MAC鍵更新部
4120、4420 カウンタリセット部
4130 セキュリティ処理部
4140 セキュリティ条件保持部
4150 不正IDリスト保持部
4160 不正ログ保持部
4170 モード変更処理部
10, 11, 12, 13 In-vehicle network system 100a, 100b, 2100a, 2100b, 3100a, 3100b, 4100a, 4100b Fraud detection electronic control unit (fraud detection ECU)
110 Fraud detection counter holding unit 120 Regular ID list holding unit 130, 2130 Fraud frame detection unit 140, 230, 320, 420, 3420 Frame generation unit 150, 260, 350, 450, 2150, 3150, 4151 Frame interpretation unit 160, 270 360, 460 Frame transmission / reception unit 200 Head unit 210 Display control unit 220, 410 Frame processing unit 240, 330, 430 Reception ID judgment unit 250, 340, 440 Reception ID list holding unit 300 Gateway 310 Transfer processing unit 370 Transfer rule holding unit 400a to 400d, 3400a to 3400d, 4400a to 4400d Electronic control unit (ECU)
401 Engine 402 Brake 403 Door open / close sensor 404 Window open / close sensor 470 Data acquisition unit 500a to 500c Bus 2120 Data range list holding unit 3130, 4131 Illegal MAC detection unit 3170, 3410 MAC generator 3180, 3430, 4180, 4430 MAC key holding unit 3190, 3440 Counter holding unit 4110, 4410 MAC key update unit 4120, 4420 Counter reset unit 4130 Security processing unit 4140 Security condition holding unit 4150 Illegal ID list holding unit 4160 Illegal log holding unit 4170 Mode change processing unit

Claims (11)

車載ネットワークにおいてメッセージ認証コード(MAC:Message Authentication Code)が付加されたデータフレームの授受を行う複数の電子制御ユニットを備える車載ネットワークシステムにおいて、前記複数の電子制御ユニットのうちの1つの電子制御ユニットにおいて用いられる不正対処方法であって、
前記車載ネットワークに送信されたデータフレームを受信し、
メッセージ認証コードが付加されたデータフレームが送信される回数をカウントするカウンタの値及びMAC鍵を利用して第1のメッセージ認証コードを生成し、
前記受信されたデータフレームに前記生成した第1のメッセージ認証コードが付加されていることを検証し、
所定IDを含むデータフレームについて前記検証が失敗した場合に、エラー発生回数をインクリメントし、前記エラー発生回数が所定閾値を超えた場合に、当該所定IDと予め対応付けられている処理を実行する、
不正対処方法。
In an in-vehicle network system including a plurality of electronic control units for sending and receiving data frames to which a message authentication code (MAC) is added in the in-vehicle network, in one of the plurality of electronic control units. The fraudulent response method used
Upon receiving the data frame transmitted to the in-vehicle network,
The first message authentication code is generated by using the value of the counter that counts the number of times the data frame with the message authentication code is transmitted and the MAC key.
It is verified that the generated first message authentication code is added to the received data frame, and the data frame is verified.
When the verification fails for a data frame containing a predetermined ID, the number of error occurrences is incremented, and when the number of error occurrences exceeds a predetermined threshold value, a process associated with the predetermined ID in advance is executed.
Fraud handling method.
前記所定IDが、所定の不正IDリストが示す1以上のIDのいずれかと同一である場合に、前記所定IDと予め対応付けられている処理は、前記所定IDの前記不正IDリストへの追加である
請求項1記載の不正対処方法。
When the predetermined ID is the same as any one or more IDs indicated by the predetermined fraudulent ID list, the process associated with the predetermined ID in advance is the addition of the predetermined ID to the fraudulent ID list. The fraudulent handling method according to claim 1.
前記所定IDと予め対応付けられている前記処理は、不正なフレームの送信が行われた旨を示す情報を含むフレームの送信である
請求項1記載の不正対処方法。
The fraud countermeasure method according to claim 1, wherein the process associated with the predetermined ID in advance is transmission of a frame including information indicating that the illegal frame has been transmitted.
前記所定IDと予め対応付けられている前記処理は、前記車載ネットワークシステムを搭載する車両の機能に一定の抑制を加えて予め定められた特定状態とするための制御である
請求項1記載の不正対処方法。
The fraud according to claim 1, wherein the process associated with the predetermined ID in advance is a control for adding a certain suppression to the function of the vehicle equipped with the in-vehicle network system to bring it into a predetermined specific state. Workaround.
前記制御は、前記車両を所定速度以下に制限する制御である、
請求項4記載の不正対処方法。
The control is a control that limits the vehicle to a predetermined speed or less.
The fraudulent countermeasure method according to claim 4.
前記制御は、前記特定状態へ変更するための、予め定められたフレームを生成して送信することである、
請求項4記載の不正対処方法。
The control is to generate and transmit a predetermined frame for changing to the specific state.
The fraudulent countermeasure method according to claim 4.
前記不正対処方法は更に、前記車載ネットワークにおいて送信が開始されたデータフレームのIDが、所定の不正IDリストが示す1以上のIDのいずれかと同一である場合に、当該データフレームの最後尾が送信される前にエラーフレームを送信し、
前記所定IDと予め対応付けられている処理は、前記所定IDの前記不正IDリストへの追加である
請求項1記載の不正対処方法。
Further, in the fraud handling method, when the ID of the data frame whose transmission is started in the in-vehicle network is the same as any one or more IDs indicated by the predetermined fraud ID list, the end of the data frame is transmitted. Send an error frame before it is done
The fraud handling method according to claim 1, wherein the process associated with the predetermined ID in advance is an addition of the predetermined ID to the fraudulent ID list.
前記所定IDと予め対応付けられている処理は、前記所定IDを示すログ情報の記録媒体への記録である
請求項1記載の不正対処方法。
The fraud countermeasure method according to claim 1, wherein the process associated with the predetermined ID in advance is recording of log information indicating the predetermined ID on a recording medium.
前記車載ネットワークは複数のネットワークを備え、前記複数のネットワークの各々は、複数種類のグループのうちいずれかのグループに属し、
前記不正対処方法は更に、前記検証が失敗した場合に、前記電子制御ユニットが、前記複数のネットワークのうち自ユニットが接続されているネットワークが属するグループと対応付けて予め定められている処理を実行する
請求項1記載の不正対処方法。
The in-vehicle network includes a plurality of networks, and each of the plurality of networks belongs to one of a plurality of types of groups.
Further, when the verification fails, the electronic control unit executes a predetermined process in association with the group to which the network to which the own unit is connected belongs among the plurality of networks. The fraudulent handling method according to claim 1.
前記車載ネットワークは複数のネットワークを備え、前記複数のネットワーク電子制御ユニットの各々は、複数種類のグループのうちいずれかのグループに属し、
前記車載ネットワークに送信が開始されたデータフレームのIDは、複数種類のグループのうちいずれかのグループにおいて送信されており、
前記不正対処方法は更に、所定グループに属するネットワークにおいて送信されている所定IDを含むデータフレームについて前記検証が失敗した回数が所定閾値を越えた場合に、前記所定グループと予め対応付けられている処理を実行する
請求項1記載の不正対処方法。
The in-vehicle network includes a plurality of networks, and each of the plurality of network electronic control units belongs to one of a plurality of types of groups.
The ID of the data frame whose transmission has been started to the in-vehicle network is transmitted in any one of a plurality of types of groups.
Further, the fraud countermeasure is a process associated with the predetermined group in advance when the number of times the verification fails for the data frame including the predetermined ID transmitted in the network belonging to the predetermined group exceeds the predetermined threshold value. The fraudulent countermeasure method according to claim 1.
前記不正対処方法は更に、
前記検証が失敗した場合において、前記MAC鍵の更新前のMAC鍵を利用して生成した第2のメッセージ認証コードを用いて再び行った検証に第2のメッセージ認証コードを用いて再び行った検証に失敗したときには、前記カウンタのリセット要求を示すカウンタリセットフレームを、前記車載ネットワークを介して送信し、
前記カウンタリセットフレームが送信された場合に前記カウンタをリセットする
請求項1記載の不正対処方法。
The fraudulent countermeasures are further described.
When the verification fails, the verification performed again using the second message authentication code generated by using the MAC key before the update of the MAC key is performed again using the second message authentication code. If it fails, a counter reset frame indicating the counter reset request is transmitted via the vehicle-mounted network.
The fraudulent countermeasure method according to claim 1, wherein the counter is reset when the counter reset frame is transmitted.
JP2020047728A 2014-05-08 2020-03-18 Fraud handling method Active JP6875576B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2021072293A JP7199467B2 (en) 2014-05-08 2021-04-22 Fraud countermeasures and electronic control units

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201461990340P 2014-05-08 2014-05-08
US61/990,340 2014-05-08
JP2015032008 2015-02-20
JP2015032008 2015-02-20

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2018174641A Division JP6679680B2 (en) 2014-05-08 2018-09-19 In-vehicle network system, electronic control unit, and fraud countermeasure method

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2021072293A Division JP7199467B2 (en) 2014-05-08 2021-04-22 Fraud countermeasures and electronic control units

Publications (2)

Publication Number Publication Date
JP2020129801A JP2020129801A (en) 2020-08-27
JP6875576B2 true JP6875576B2 (en) 2021-05-26

Family

ID=72174927

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2020047728A Active JP6875576B2 (en) 2014-05-08 2020-03-18 Fraud handling method
JP2021072293A Active JP7199467B2 (en) 2014-05-08 2021-04-22 Fraud countermeasures and electronic control units

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2021072293A Active JP7199467B2 (en) 2014-05-08 2021-04-22 Fraud countermeasures and electronic control units

Country Status (1)

Country Link
JP (2) JP6875576B2 (en)

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3972730B2 (en) * 2001-07-18 2007-09-05 株式会社デンソー Vehicle communication system
JP2009105828A (en) * 2007-10-25 2009-05-14 Toyota Motor Corp Vehicle communication system and vehicle communication apparatus
JP5770602B2 (en) * 2011-10-31 2015-08-26 トヨタ自動車株式会社 Message authentication method and communication system in communication system
JP5522160B2 (en) * 2011-12-21 2014-06-18 トヨタ自動車株式会社 Vehicle network monitoring device
US9577997B2 (en) * 2012-05-29 2017-02-21 Toyota Jidosha Kabushiki Kaisha Authentication system and authentication method
WO2015170452A1 (en) * 2014-05-08 2015-11-12 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ In-car network system, electronic control unit and update processing method
EP4236196A3 (en) * 2014-05-08 2023-10-18 Panasonic Intellectual Property Corporation of America In-vehicle network system, fraud-sensing electronic control unit, and anti-fraud method
JP6332194B2 (en) * 2015-08-07 2018-05-30 株式会社デンソー COMMUNICATION DEVICE, COMMUNICATION METHOD, AND COMMUNICATION PROGRAM
JP6409849B2 (en) * 2016-10-31 2018-10-24 トヨタ自動車株式会社 Communication system and communication method

Also Published As

Publication number Publication date
JP2020129801A (en) 2020-08-27
JP7199467B2 (en) 2023-01-05
JP2021121109A (en) 2021-08-19

Similar Documents

Publication Publication Date Title
JP6679680B2 (en) In-vehicle network system, electronic control unit, and fraud countermeasure method
JP7008100B2 (en) Fraud handling methods, fraud detection electronic control units and network communication systems
JP6864759B2 (en) Fraud detection method and in-vehicle network system
JP6875576B2 (en) Fraud handling method
JP6698190B2 (en) Fraud handling method, fraud detection electronic control unit, and network communication system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200318

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: 20210323

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210422

R150 Certificate of patent or registration of utility model

Ref document number: 6875576

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150