JP6417407B2 - 車載ネットワークシステム、電子制御ユニット及び不正検知方法 - Google Patents

車載ネットワークシステム、電子制御ユニット及び不正検知方法 Download PDF

Info

Publication number
JP6417407B2
JP6417407B2 JP2016517804A JP2016517804A JP6417407B2 JP 6417407 B2 JP6417407 B2 JP 6417407B2 JP 2016517804 A JP2016517804 A JP 2016517804A JP 2016517804 A JP2016517804 A JP 2016517804A JP 6417407 B2 JP6417407 B2 JP 6417407B2
Authority
JP
Japan
Prior art keywords
data frame
ecu
data
specific identifier
event
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
JP2016517804A
Other languages
English (en)
Other versions
JPWO2015170451A1 (ja
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 JPWO2015170451A1 publication Critical patent/JPWO2015170451A1/ja
Application granted granted Critical
Publication of JP6417407B2 publication Critical patent/JP6417407B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60RVEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
    • B60R16/00Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for
    • B60R16/02Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for electric constitutive elements
    • B60R16/023Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for electric constitutive elements for transmission of signals between vehicle parts or subsystems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3297Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving time stamps, e.g. generation of time stamps
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/84Vehicles

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Power Engineering (AREA)
  • Small-Scale Networks (AREA)
  • Mechanical Engineering (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)

Description

本開示は、電子制御ユニットが通信を行う車載ネットワークにおいて送信された不正なフレームを検知する技術に関する。
近年、自動車の中のシステムには、電子制御ユニット(ECU:Electronic Control Unit)と呼ばれる装置が多数配置されている。これらのECUをつなぐネットワークは車載ネットワークと呼ばれる。車載ネットワークには、多数の規格が存在する。その中でも最も主流な車載ネットワークの一つに、ISO11898−1で規定されているCAN(Controller Area Network)という規格が存在する(「非特許文献1」参照)。
CANでは、通信路は2本のバスで構成され、バスに接続されているECUはノードと呼ばれる。バスに接続されている各ノードは、フレームと呼ばれるメッセージを送受信する。フレームを送信する送信ノードは、2本のバスに電圧をかけ、バス間で電位差を発生させることによって、レセシブと呼ばれる「1」の値と、ドミナントと呼ばれる「0」の値を送信する。複数の送信ノードが全く同一のタイミングで、レセシブとドミナントを送信した場合は、ドミナントが優先されて送信される。受信ノードは、受け取ったフレームのフォーマットに異常がある場合には、エラーフレームと呼ばれるフレームを送信する。エラーフレームとは、ドミナントを6bit連続して送信することで、送信ノードや他の受信ノードにフレームの異常を通知するものである。
またCANでは送信先や送信元を指す識別子は存在せず、送信ノードはフレーム毎にメッセージIDと呼ばれるIDを付けて送信し(つまりバスに信号を送出し)、各受信ノードは予め定められたメッセージIDのみを受信する(つまりバスから信号を読み取る)。また、CSMA/CA(Carrier Sense Multiple Access/Collision Avoidance)方式を採用しており、複数ノードの同時送信時にはメッセージIDによる調停が行われ、メッセージIDの値が小さいフレームが優先的に送信される。
車載ネットワークにおいて不正なノードがバスに接続され、不正なノードが不正にデータフレームを送信した場合に、CANでは送信元の識別子が存在しないことから、不正なデータフレームが送信されていることを受信ノードは検知できない。
そこで従来、ECUが周期的にデータフレームを送信するという特徴を用いて、正常な周期から逸脱するようなデータフレームの送信を不正なデータフレームであると検知する技術が提案されている(「非特許文献2」参照)。またデータフレームが正規のECUから送信されていることを示すために、メッセージ認証コード(MAC:Message Authentication Code)の技術を用いた不正検知方法が提案されている(「非特許文献3」参照)。
"CAN Specification 2.0 Part A"、[online]、CAN in Automation(CiA)、[平成26年11月14日検索]、インターネット(URL:http://www.can−cia.org/fileadmin/cia/specifications/CAN20A.pdf) 大塚敏史、石郷岡祐、"既存ECUを変更不要な車載LAN向け侵入検知手法"、情報処理学会研究報告.組込みシステム研究会、2013−EMB−28(6)、p.1−5 D.K.Nilsson、U.E.Larson、E.Jonsson、"Efficient In−Vehicle Delayed Data Authentication Based on Compound Message Authentication Codes"、Vehicular Technology Conference、2008−Fall、p.1−5 RFC2104 HMAC: Keyed−Hashing for Message Authentication
しかしながら、非特許文献2の技術では、ECUが周期的にデータフレームを送信するのに加えて、イベントをトリガに非周期的にデータフレーム(以下、非周期的に送信されるデータフレームを「イベントドリブンデータフレーム」と称する。)を送信することもある場合には、正当なイベントドリブンデータフレームを不正なデータフレームと誤検知してしまう。また、送信する全てのデータフレームにMACを付加する方法では、MACの付加及び検証に要する処理負荷が大きい。
そこで、本開示は、CANプロトコル等に従って通信する車載ネットワークシステムにおいて、バス上に不正なメッセージの送信が行われたことを効率的かつ適切に検知する電子制御ユニット(ECU)を提供する。また、本開示は、不正なメッセージを効率的かつ適切に検知するための不正検知方法、及び、ECUを備える車載ネットワークシステムを提供する。
上記課題を解決するために本開示の一態様に係る不正検知方法は、CAN(Controller Area Network)プロトコルに従ってバスを介して通信する複数の電子制御ユニットを備える車載ネットワークシステムにおいて用いられる不正検知方法であって、前記バス上で送信されたデータフレームを受信する受信ステップと、前記受信ステップで送信周期に係る所定ルールに適合しないデータフレームが受信され、かつ、前記車載ネットワークシステムを搭載する車両の状態が所定の状態である場合に限って、当該データフレーム中の特定識別子を検証する検証ステップとを含み、前記検証ステップで、前記特定識別子についての前記検証が成功したときには、当該データフレームを正当なデータフレームとして検知し、前記検証ステップで、前記特定識別子についての前記検証が失敗したときには、当該データフレームを不正なデータフレームとして検知する不正検知方法である。
また本開示の一態様に係る不正検知方法は、CAN(Controller Area Network)プロトコルに従ってバスを介して通信する複数の電子制御ユニットを備える車載ネットワークシステムにおいて不正検知の対象となるデータフレームを送信する不正検知方法であって、前記車載ネットワークシステムを搭載する車両の状態が所定の状態である場合に、送信周期に係る所定ルールに適合しないデータフレームの送信するときに限って、当該データフレーム中に特定識別子を付与する付与ステップと、前記付与ステップで付与された特定識別子を含み前記所定ルールに適合しないデータフレームを前記バスにより送信する送信ステップとを含む不正検知方法である。
また、上記課題を解決するために本開示の一態様に係る車載ネットワークシステムは、CAN(Controller Area Network)プロトコルに従ってバスを介して通信する複数の電子制御ユニットを備える車載ネットワークシステムであって、前記車載ネットワークシステムを搭載する車両の状態が所定の状態である場合に、送信周期に係る所定ルールに適合しないデータフレームの送信するときに限って当該データフレーム中に特定識別子を付与する付与部と、前記付与部で付与された特定識別子を含み前記所定ルールに適合しないデータフレームを前記バスにより送信する送信部とを有する第1電子制御ユニットと、前記バス上で送信されたデータフレームを受信する受信部と、前記受信部により前記所定ルールに適合しないデータフレームが受信され、かつ、前記車載ネットワークシステムを搭載する車両の状態が所定の状態である場合に限って、当該データフレーム中の特定識別子を検証する検証部とを有し、前記検証部は、前記特定識別子についての前記検証が成功したときには、当該データフレームを正当なデータフレームとして検知し、前記特定識別子についての前記検証が失敗したときには、当該データフレームを不正なデータフレームとして検知する第2電子制御ユニットとを備える車載ネットワークシステムである。
また、上記課題を解決するために本開示の一態様に係る電子制御ユニット(ECU)は、CAN(Controller Area Network)プロトコルに従ってバスを介して通信する電子制御ユニットであって、前記電子制御ユニットを含む車載ネットワークシステムを搭載する車両の状態が所定の状態である場合に、送信周期に係る所定ルールに適合しないデータフレームの送信に際して当該データフレーム中に特定識別子を付与する付与部と、前記付与部で付与された特定識別子を含み前記所定ルールに適合しないデータフレームを前記バスにより送信する送信部とを備える電子制御ユニットである。
また本開示の一態様に係る電子制御ユニット(ECU)は、CAN(Controller Area Network)プロトコルに従ってバスを介して通信する電子制御ユニットであって、前記バス上で送信されたデータフレームを受信する受信部と、前記受信部により送信周期に係る所定ルールに適合しないデータフレームが受信され、かつ、前記電子制御ユニットを含む車載ネットワークシステムを搭載する車両の状態が所定の状態である場合に限って、当該データフレーム中の特定識別子を検証する検証部とを備え、前記検証部は、前記特定識別子についての前記検証が成功したときには、当該データフレームを正当なデータフレームとして検知し、前記特定識別子についての前記検証が失敗したときには、当該データフレームを不正なデータフレームとして検知する電子制御ユニットである。
本開示によれば、車載ネットワークシステムでバスに不正なノードが接続されて不正なデータフレームが送信された場合に効率的かつ適切にその検知が可能となる。
実施の形態1に係る車載ネットワークシステムの全体構成を示す図である。 CANプロトコルで規定されるデータフレームのフォーマットを示す図である。 実施の形態1に係る車載ネットワークシステムで用いられるデータフィールドフォーマットの一例を示す図である。 実施の形態1に係るECUの構成図である。 実施の形態1に係るデータフレーム生成ルールの一例を示す図である。 実施の形態1に係る周期ルール情報の一例を示す図である。 実施の形態1に係るデータフレームの前回受信時刻を示す情報を列挙したリストの一例を示す図である。 実施の形態1に係るデータフレームの送受信の流れを示す図である。 実施の形態1に係るデータフレームの送信処理を示すフローチャートである。 実施の形態1に係るデータフレームの受信処理を示すフローチャートである。 実施の形態2に係る車載ネットワークシステムの全体構成を示す図である。 実施の形態2に係る車載ネットワークシステムで用いられるデータフィールドフォーマットの一例を示す図である。 実施の形態2に係るECUの構成図である。 実施の形態2に係るデータフレーム生成ルール及び送信イベントカウンタの一例を示す図である。 実施の形態2に係るデータフレームの前回受信時刻及び受信イベントカウンタを列挙したリストの一例を示す図である。 実施の形態2に係るデータフレームの送信処理を示すフローチャートである。 実施の形態2に係るデータフレームの受信処理を示すフローチャートである。 実施の形態3に係る車載ネットワークシステムの全体構成を示す図である。 実施の形態3に係る車載ネットワークシステムで用いられるデータフィールドフォーマットの一例を示す図である。 実施の形態3に係るECUの構成図である。 実施の形態3に係るデータフレーム生成ルールの一例を示す図である。 実施の形態3に係る周期ルール情報の一例を示す図である。 実施の形態3に係るデータフレームの送信処理を示すフローチャートである。 実施の形態3に係るデータフレームの受信処理を示すフローチャートである。 実施の形態4に係る車載ネットワークシステムの全体構成を示す図である。 実施の形態4に係るECUの構成図である。 実施の形態4に係るデータフレーム生成ルールの一例を示す図である。 実施の形態4に係る周期ルール情報の一例を示す図である。 実施の形態4に係る車状態保持部に保持された車両の状態の一例を示す図である。 実施の形態4に係るデータフレームの送信処理を示すフローチャートである。 実施の形態4に係るデータフレームの受信処理を示すフローチャートである。 実施の形態4に係る車両の状態を示すデータフレームの送信処理を示すフローチャートである。 実施の形態4に係るデータフレームの受信処理の変形例を示すフローチャートである。
本開示の一態様に係る不正検知方法は、CAN(Controller Area Network)プロトコルに従ってバスを介して通信する複数の電子制御ユニットを備える車載ネットワークシステムにおいて用いられる不正検知方法であって、前記バス上で送信されたデータフレームを受信する受信ステップと、前記受信ステップで送信周期に係る所定ルールに適合しないデータフレームが受信され、かつ、前記車載ネットワークシステムを搭載する車両の状態が所定の状態である場合に限って、当該データフレーム中の特定識別子を検証する検証ステップとを含み、前記検証ステップで、前記特定識別子についての前記検証が成功したときには、当該データフレームを正当なデータフレームとして検知し、前記検証ステップで、前記特定識別子についての前記検証が失敗したときには、当該データフレームを不正なデータフレームとして検知する不正検知方法である。ここで、送信周期に係る所定ルールは、予め定められたルールであり、例えば同一IDを有するデータフレームの送信周期(前回送信時刻から今回送信時刻までの時間差)についての条件である。不正検知方法において検証は不正なデータフレームの検知のために行われるものであり、データフレームについて検証に成功した場合には、そのデータフレームは不正と検知されない。これにより、送信周期が条件を満たさないデータフレームつまりイベントドリブンデータフレームが受信された場合において所定ルールに基づく正当性の判断はできないが特定識別子の検証により正当性の判断が可能になる。このため、所定ルールを満たさないため不正であると誤検知することが防止され、不正なデータフレーム(メッセージ)を適切に検知することが可能となる。また、この所定ルールに適合しないデータフレームについての特定識別子の検証により不正なメッセージは検知可能となるため、全てのデータフレームについて特定識別子を含ませてその検証をする必要がなく、効率的な不正の検知が可能となる。なお、効率的な不正の検知は、車載ネットワークシステムの電力消費の抑制に繋がる。所定の状態は、例えば、不正なデータフレームがバス上に流れている場合に検知されるべき必要性が、所定の状態以外の状態よりも高いと想定される状態である。これにより、例えば不正検知の必要性が高いとき等といった車両が所定の状態である場合に効率的に検証を行うことが可能となる。また、データフレームを受信するECUにとっては、例えば不正検知の必要性が高いとき等の所定の状態である場合に限って効率的に検証を行うことが可能となる。
また、前記特定識別子は、前記データフレームのデータフィールド内の所定位置に配置され当該データフレームの内容を反映するメッセージ認証コードであり、前記検証ステップでは、前記所定ルールに適合しない前記データフレーム中の前記所定位置のデータが前記メッセージ認証コードであるか否かを当該データフレームの内容に基づき判別する所定処理手順により、前記検証が行われることとしても良い。これにより、送信周期に係る所定ルール及び検証の所定処理手順を知らない不正なECU(例えば車載ネットワークシステムの正規な構成要素であるECU以外のECU)にとって、検証に成功するように特定識別子を含むデータフレームを送信することが比較的困難となり得る。
また、前記特定識別子は、前記データフレームのデータフィールド内の所定位置に配置される所定値であり、前記検証ステップでは、前記所定ルールに適合しない前記データフレーム中の前記所定位置のデータの値が前記所定値と同一であるか否かを判別することにより前記検証が行われることとしても良い。ここで、特定識別子は1ビットでも複数ビットで構成されても良い。これにより、所定値と比較するのみという比較的負荷の少ない処理手順で不正検知のための検証を行うことができるようになる。
また、前記特定識別子は、前記データフレームのデータフィールド内の所定位置に配置されるカウンタ値であり、前記検証ステップでは、前記所定ルールに適合しない前記データフレーム中の前記所定位置のデータの値が、前記受信ステップで前記所定ルールに適合しないデータフレームが受信された回数を反映した前記カウンタ値と同一であるか否かを判別することにより前記検証が行われることとしても良い。これにより、特定識別子がデータフレームの送受信に応じて変動し得るカウンタ値となるため、不正なECUにとって、検証に成功するように特定識別子を含むデータフレームを送信することが比較的困難となり得る。
また、前記受信ステップでのデータフレームの受信は繰り返し行われ、前記特定識別子は、前記データフレームのデータフィールド内の所定位置に配置される、所定演算の結果値であり、前記検証ステップでは、前記受信ステップで受信された前記所定ルールに適合しない前記データフレーム中の前記所定位置のデータの値が、前記受信ステップで前回受信された前記特定識別子を含むデータフレーム中の当該特定識別子に基づいて前記所定演算を行った結果として得られる結果値と、同一であるか否かを判別することにより前記検証が行われることとしても良い。所定演算は、例えば、送信周期に係る所定ルールに適合しない(非周期的な)データフレームを送受信する正当な送信側と受信側とで共通して行われる演算(関数)であり、入力値に基づいて出力値(結果値)が導出される。送信側と受信側で前回の非周期的なデータフレームが送信されたときの特定識別子である所定演算の結果値をそれぞれ記憶していれば、送信側が前回の特定識別子を入力とした所定演算(関数)の出力値(結果値)を次の非周期的なデータフレームに設定して送信し、受信側では受信したデータフレームに、前回の特定識別子を入力とした所定演算の結果値と同一の値が含まれていることを検証することができる。これにより、不正なECUにとって、検証に成功するように特定識別子を含むデータフレームを送信することが比較的困難となり得る。
また、前記検証ステップでは、前記受信したデータフレームが、前記所定ルールに適合するか否かを判定し、前記受信したデータフレームが前記所定ルールに適合しないと判定された場合に、前記車両の状態が前記所定の状態であるか否かを判定し、前記車両の状態が前記所定状態であると判定された場合に、前記特定識別子についての前記検証を行っても良い。また、前記受信ステップで前記所定ルールに適合するデータフレームが受信された場合には当該データフレームを正当なデータフレームとして検知することとしても良い。また、前記検証ステップで、前記受信ステップで前記所定ルールに適合しないデータフレームが受信され、かつ、前記車載ネットワークシステムを搭載する車両の状態が前記所定の状態でない場合は、当該データフレームを正当なデータフレームとして検知することとしても良い。また、前記検証ステップで、前記受信ステップで前記所定ルールに適合しないデータフレームが受信され、かつ、前記車載ネットワークシステムを搭載する車両の状態が前記所定の状態でない場合は、当該データフレームを不正なデータフレームとして検知することとしても良い。不正なデータフレームとして検知された場合の取り扱いは車載ネットワークシステムにおいて定めておくことができ、取り扱いとしては、例えば、データフレームを破棄すること(データフレームの内容に基づいて車両の制御を行わないこと等)、ログとして記録すること、車両の動作モードを変更すること等が挙げられる
また本開示の一態様に係る不正検知方法は、CAN(Controller Area Network)プロトコルに従ってバスを介して通信する複数の電子制御ユニットを備える車載ネットワークシステムにおいて不正検知の対象となるデータフレームを送信する不正検知方法であって、前記車載ネットワークシステムを搭載する車両の状態が所定の状態である場合に、送信周期に係る所定ルールに適合しないデータフレームの送信するときに限って、当該データフレーム中に特定識別子を付与する付与ステップと、前記付与ステップで付与された特定識別子を含み前記所定ルールに適合しないデータフレームを前記バスにより送信する送信ステップとを含む不正検知方法である。これにより、データフレームの受信側において所定ルールに適合しなくても当該データフレーム中に特定識別子が含まれていることを検証することで不正なデータフレームか否かの検知が可能となるように、車載ネットワークシステムを正規に構成する送信側のECUでは特定識別子を含めた、所定ルールに適合しないデータフレームを送信する。このため、付与ステップと送信ステップとにより適切な不正検知が実現される。また、データフレームを受信するECUにとっては、例えば不正検知の必要性が高いとき等の所定の状態である場合に限って効率的に検証を行うことが可能となる。
また、前記付与ステップでは、前記データフレームのデータフィールド内の所定位置に、前記特定識別子として当該データフレームの内容を反映するメッセージ認証コードを配置することにより前記特定識別子の前記付与が行われることとしても良い。これにより、送信周期に係る所定ルール及びメッセージ認証コードを知らない不正なECU(例えば車載ネットワークシステムの正規な構成要素であるECU以外のECU)にとって、検証に成功するように特定識別子を含むデータフレームを送信することが比較的困難となり得る。
また、前記付与ステップでは、前記データフレームのデータフィールド内の所定位置に、前記特定識別子として所定値を配置することにより前記特定識別子の前記付与が行われることとしても良い。これにより、データフレームを受信するECUにおいては所定値と比較するのみという比較的負荷の少ない処理手順で不正検知のための検証を行うことができるようになる。
また、前記付与ステップでは、前記データフレームのデータフィールド内の所定位置に、前記送信ステップで前記所定ルールに適合しないデータフレームが送信された回数を反映したカウンタ値を前記特定識別子として配置することにより前記特定識別子の前記付与が行われることとしても良い。これにより、特定識別子がデータフレームの送信に応じて変動し得るカウンタ値となるため、不正なECUにとって、検証に成功するように特定識別子を含むデータフレームを送信することが比較的困難となり得る。
また、前記所定ルールに適合しないデータフレームについての前記送信ステップでの送信及び前記付与ステップでの特定識別子の付与は繰り返し行われ、前記付与ステップでは、前記送信ステップでのデータフレームの送信に際して当該データフレームのデータフィールド内の所定位置に、前記送信ステップで前回送信された前記所定ルールに適合しないデータフレームに付与した特定識別子に基づいて所定演算を行った結果として得られる値を、特定識別子として配置することにより前記特定識別子の前記付与が行われることとしても良い。これにより、不正なECUにとって、検証に成功するように特定識別子を含むデータフレームを送信することが比較的困難となり得る。
また、前記送信ステップでは更に、前記所定ルールに適合するデータフレームの送信を行い、前記付与ステップでは、前記車載ネットワークシステムを搭載する車両の状態が所定状態である場合に前記送信ステップで前記所定ルールに適合しないデータフレームを送信するときに限って、当該データフレーム中に特定識別子の前記付与が行われることとしても良い。所定状態は、例えば、不正なデータフレームがバス上に流れている場合に検知されるべき必要性が、所定状態以外の状態よりも高いと想定される状態である。これにより、データフレームを受信するECUにとっては、例えば不正検知の必要性が高いとき等の所定状態である場合に限って効率的に検証を行うことが可能となる。
また、上記課題を解決するために本開示の一態様に係る車載ネットワークシステムは、CAN(Controller Area Network)プロトコルに従ってバスを介して通信する複数の電子制御ユニットを備える車載ネットワークシステムであって、前記車載ネットワークシステムを搭載する車両の状態が所定の状態である場合に、送信周期に係る所定ルールに適合しないデータフレームの送信するときに限って当該データフレーム中に特定識別子を付与する付与部と、前記付与部で付与された特定識別子を含み前記所定ルールに適合しないデータフレームを前記バスにより送信する送信部とを有する第1電子制御ユニットと、前記バス上で送信されたデータフレームを受信する受信部と、前記受信部により前記所定ルールに適合しないデータフレームが受信され、かつ、前記車載ネットワークシステムを搭載する車両の状態が所定の状態である場合に限って、当該データフレーム中の特定識別子を検証する検証部とを有し、前記検証部は、前記特定識別子についての前記検証が成功したときには、当該データフレームを正当なデータフレームとして検知し、前記特定識別子についての前記検証が失敗したときには、当該データフレームを不正なデータフレームとして検知する第2電子制御ユニットとを備える車載ネットワークシステムである。これにより、送信周期が条件を満たさないデータフレームつまりイベントドリブンデータフレームが受信された場合において所定ルールに基づく正当性の判断はできないが特定識別子の検証により正当性の判断が可能になる。このため、所定ルールを満たさないため不正であると誤検知することが防止され、不正なデータフレーム(メッセージ)を適切に検知することが可能となる。所定の状態は、例えば、不正なデータフレームがバス上に流れている場合に検知されるべき必要性が、所定の状態以外の状態よりも高いと想定される状態である。これにより、例えば不正検知の必要性が高いとき等といった車両が所定の状態である場合に効率的に検証を行うことが可能となる。また、データフレームを受信するECUにとっては、例えば不正検知の必要性が高いとき等の所定の状態である場合に限って効率的に検証を行うことが可能となる。
また、上記課題を解決するために本開示の一態様に係る電子制御ユニット(ECU)は、CAN(Controller Area Network)プロトコルに従ってバスを介して通信する電子制御ユニットであって、前記電子制御ユニットを含む車載ネットワークシステムを搭載する車両の状態が所定の状態である場合に、送信周期に係る所定ルールに適合しないデータフレームの送信に際して当該データフレーム中に特定識別子を付与する付与部と、前記付与部で付与された特定識別子を含み前記所定ルールに適合しないデータフレームを前記バスにより送信する送信部とを備える電子制御ユニットである。これにより、送信周期が条件を満たさないデータフレームつまりイベントドリブンデータフレームを送信する場合に、不正であると誤検知されないようにデータフレームを送信することが可能となる。所定の状態は、例えば、不正なデータフレームがバス上に流れている場合に検知されるべき必要性が、所定の状態以外の状態よりも高いと想定される状態である。これにより、例えば不正検知の必要性が高いとき等といった車両が所定の状態である場合に効率的に検証を行うことが可能となる。
また本開示の一態様に係る電子制御ユニット(ECU)は、CAN(Controller Area Network)プロトコルに従ってバスを介して通信する電子制御ユニットであって、前記バス上で送信されたデータフレームを受信する受信部と、前記受信部により送信周期に係る所定ルールに適合しないデータフレームが受信され、かつ、前記電子制御ユニットを含む車載ネットワークシステムを搭載する車両の状態が所定の状態である場合に限って、当該データフレーム中の特定識別子を検証する検証部とを備え、前記検証部は、前記特定識別子についての前記検証が成功したときには、当該データフレームを正当なデータフレームとして検知し、前記特定識別子についての前記検証が失敗したときには、当該データフレームを不正なデータフレームとして検知する電子制御ユニットである。これにより、送信周期が条件を満たさないデータフレームつまりイベントドリブンデータフレームが受信された場合において所定ルールに基づく正当性の判断はできないが特定識別子の検証により正当性の判断が可能になる。このため、所定ルールを満たさないため不正であると誤検知することが防止され、不正なデータフレームを適切に検知することが可能となる。所定の状態は、例えば、不正なデータフレームがバス上に流れている場合に検知されるべき必要性が、所定の状態以外の状態よりも高いと想定される状態である。これにより、例えば不正検知の必要性が高いとき等といった車両が所定の状態である場合に効率的に検証を行うことが可能となる。また、データフレームを受信するECUにとっては、例えば不正検知の必要性が高いとき等の所定の状態である場合に限って効率的に検証を行うことが可能となる。
なお、これらの全般的又は具体的な態様は、システム、方法、集積回路、コンピュータプログラム又はコンピュータで読み取り可能なCD−ROM等の記録媒体で実現されても良く、システム、方法、集積回路、コンピュータプログラム又は記録媒体の任意な組み合わせで実現されても良い。
以下、実施の形態に係る車載ネットワークシステム、ECU等について、図面を参照しながら説明する。ここで示す実施の形態は、いずれも本開示の一具体例を示すものである。従って、以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置及び接続形態、並びに、ステップ(工程)及びステップの順序等は、一例であって本開示を限定するものではない。以下の実施の形態における構成要素のうち、独立請求項に記載されていない構成要素については、任意に付加可能な構成要素である。また、各図は、模式図であり、必ずしも厳密に図示されたものではない。
(実施の形態1)
以下、本開示の実施の形態として、データフレームを送受信するECU100aとECU100bとの間で、周期的に送信されるデータフレームに加えて非周期的なイベントドリブンデータフレームが送信され得る前提の下で、不正なデータフレームが送信されたことを適切に検知するための不正検知方法を実現する車載ネットワークシステム10について図面を用いて説明する。
[1.1 車載ネットワークシステム10の全体構成]
図1は、実施の形態1に係る車載ネットワークシステム10の全体構成を示す図である。車載ネットワークシステム10は、CANプロトコルに従って通信するネットワーク通信システムの一例であり、制御装置、センサ等の各種機器が搭載された自動車におけるネットワーク通信システムである。車載ネットワークシステム10は、各種機器に接続されたECU100a、100b、及び、各ECUをつなぐバス200を含んで構成される。なお、図1では省略しているものの、車載ネットワークシステム10にはECU100a、100b以外にもいくつものECUが含まれ得るが、ここでは、便宜上ECU100a、100bに注目して説明を行う。ECUは、例えば、プロセッサ(マイクロプロセッサ)、メモリ等のデジタル回路、アナログ回路、通信回路等を含む装置である。メモリは、ROM、RAM等であり、プロセッサにより実行される制御プログラム(コンピュータプログラム)を記憶することができる。例えばプロセッサが、制御プログラム(コンピュータプログラム)に従って動作することにより、ECUは各種機能を実現することになる。なお、コンピュータプログラムは、所定の機能を達成するために、プロセッサに対する指令を示す命令コードが複数個組み合わされて構成されたものである。以下、バス200には不正なデータフレームを送信する不正なECUが接続されている可能性があることを前提として説明する。
ECU100aは、1つ以上のセンサを含む機器の一例としてのパワーウィンドウスイッチ110に接続されている。ECU100aは、パワーウィンドウスイッチ110の状態を示す情報を含むデータフレームを周期的にバス200に送信する。さらにパワーウィンドウスイッチ110の状態が変化した時にもパワーウィンドウスイッチ110の状態を示す情報(つまりセンサ値を示す情報)を含むデータフレームをバス200に送信する。従って、ECU100aは、一定の送信周期でデータフレームの送信を繰り返す他に、パワーウィンドウスイッチ110の状態の変化時がその送信周期と一致しないときに非周期的なイベントドリブンデータフレームをバス200に送信することになる。またECU100aは、ECU100bからバス200上に送信されてバス200に流れるデータフレームを受信し、例えばECU100aが送信したデータフレームが正しく受信されていること等を確認する。
ECU100bは、パワーウィンドウ120に接続されており、ECU100aから送信されバス200に流れているデータフレームを受信し、そのデータフレームに含まれるパワーウィンドウスイッチ110の状態に応じて、パワーウィンドウ120の開閉の制御を行う。またパワーウィンドウ120の開閉の制御状態に応じたデータフレームを周期的にバス200に送信する。この車載ネットワークシステム10においてはCANプロトコルに従って各ECUがフレームの授受を行う。各ECUは、受信したデータフレームが不正なデータフレームであるか否かを判断する機能を有している。
[1.2 データフレームフォーマット]
以下、CANプロトコルに従ったネットワークで用いられるフレームの1つであるデータフレームについて説明する。
図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)の各フィールドで構成される。
SOFは、1bitのドミナントで構成される。バスがアイドルの状態はレセシブになっており、SOFによりドミナントへ変更することでフレームの送信開始を通知する。
IDフィールドは、11bitで構成される、データの種類を示す値であるID(メッセージID)を格納するフィールドである。複数のノードが同時に送信を開始した場合、このIDフィールドで通信調停を行うために、IDが小さい値を持つフレームが高い優先度となるよう設計されている。
RTRは、データフレームとリモートフレームとを識別するための値であり、データフレームにおいてはドミナント1bitで構成される。
IDEと「r」とは、両方ドミナント1bitで構成される。
DLCは、4bitで構成され、データフィールドの長さを示す値である。なお、IDE、「r」及びDLCを合わせてコントロールフィールドと称する。
データフィールドは、最大64bitで構成される送信するデータの内容を示す値である。8bit毎に長さを調整できる。送られるデータの仕様については、CANプロトコルで規定されておらず、車載ネットワークシステム10において定められる。従って、車種、製造者(製造メーカ)等に依存した仕様となる。
CRCシーケンスは、15bitで構成される。SOF、IDフィールド、コントロールフィールド及びデータフィールドの送信値より算出される。
CRCデリミタは、1bitのレセシブで構成されるCRCシーケンスの終了を表す区切り記号である。なお、CRCシーケンス及びCRCデリミタを合わせてCRCフィールドと称する。
ACKスロットは、1bitで構成される。送信ノードはACKスロットをレセシブにして送信を行う。受信ノードはCRCシーケンスまで正常に受信ができていればACKスロットをドミナントとして送信する。レセシブよりドミナントが優先されるため、送信後にACKスロットがドミナントであれば、送信ノードは、いずれかの受信ノードが受信に成功していることを確認できる。
ACKデリミタは、1bitのレセシブで構成されるACKの終了を表す区切り記号である。
EOFは、7bitのレセシブで構成されており、データフレームの終了を示す。
[1.3 データフィールドフォーマット]
以下、車載ネットワークシステム10で用いられるデータフレームにおけるデータフィールドについて説明する。
図3は、車載ネットワークシステムで用いられるデータフィールドフォーマットの一例を示す図である。同図に示すように、データフィールドの最上位ビット「I」(先頭の1ビット)は、このデータフィールドを含むデータフレームが、イベントドリブンデータフレームであるか否かを識別するための識別フラグ(「イベントドリブン識別フラグ」と称する。)である。イベントドリブン識別フラグIは、周期的に送信されるデータフレームにおいては0がセットされ、イベントドリブンデータフレームにおいては1がセットされる。イベントドリブン識別フラグIに後続するデータ領域には、ECUが機器等から取得したセンサ値を示すデータ(ECU100aが送信するデータフレームにおいては例えばパワーウィンドウスイッチ110の状態を示す値等)が含まれる。図3の例では最上位ビットをイベントドリブン識別フラグIとしているが、イベントドリブン識別フラグIを、データフィールド内における最下位ビット等の任意の箇所に設けても良い。
[1.4 ECU100aの構成]
図4は、ECU100aの構成図である。ECU100aは、データフレーム送受信部101と、データフレーム生成部102と、データフレーム生成ルール保持部103と、不正データフレーム判断部104と、受信データフレーム周期保持部105と、データフレーム受信履歴保持部106と、データフレーム処理部107と、タイマ108と、センサ値取得部109とを含んで構成される。これらの各構成要素は、機能的な構成要素であり、その各機能は、ECU100aにおける通信回路、メモリに格納された制御プログラムを実行するプロセッサ或いはデジタル回路等により実現される。なお、ECU100bもECU100aと基本的に同様の構成を備える。但し、データフレーム生成ルール保持部103及び受信データフレーム周期保持部105及びデータフレーム受信履歴保持部106の各保持内容はECU毎に異なる内容となり得る。また、データフレーム処理部107の処理内容は、ECU毎に異なる。
データフレーム送受信部101は、バス200に流れるデータフレームを受信し、CANプロトコルに従ってデータフレームを解釈する。受信したデータフレームにおけるIDフィールドの内容であるID(メッセージID)が、自機(ECU100a)が受信するように予め定められているメッセージIDである場合は、データフレームの内容を不正データフレーム判断部104へ通知する。また、データフレーム送受信部101は、データフレーム生成部102から通知されたデータフレームをCANプロトコルに従ってバス200へ送信する。
データフレーム生成部102は、データフレーム生成ルール保持部103に格納されたデータフレーム生成ルールに従い、データフレームを生成し、データフレーム送受信部101に通知する。データフレーム生成部102は、タイマ108から現在時刻を取得する。更にデータフレーム生成部102は、ECU100aに接続された機器(パワーウィンドウスイッチ110)に関するデータ(センサ値)をセンサ値取得部109から取得する。ECU100aからデータフレームを周期的に送信すべく、データフレーム生成部102は、現在時刻とデータフレーム生成ルール保持部103に格納される送信周期とによって、データフレームを生成するタイミングを決定し、データフレームの生成を周期的に行う。なお、データフレーム生成部102によりデータフレームが生成されると、そのデータフレームはデータフレーム送受信部101に通知され、データフレーム送受信部101はそのデータフレームの送信を行う。更に、データフレーム生成部102は、センサ値取得部109から取得されるセンサ値に変化があった時が、前述した周期的なタイミングとは異なる時である場合(例えば周期的なタイミングの許容範囲を示すマージンの範囲外である場合)には、イベントドリブンデータフレームの生成を行う。即ち、データフレーム生成部102は、送信周期を示すデータフレーム生成ルールに適合しないタイミングでデータフレームの送信をする際においてデータフレーム中にイベントドリブン識別フラグという特定識別子を付与したデータフレームを生成する、言わば付与部として働く。センサ値取得部109はセンサ(パワーウィンドウスイッチ110)からセンサ値に変更があった場合及び変更がない場合に随時センサ値を取得する方式で動作しても、センサ値に変更があった場合にのみセンサから供給されるセンサ値を取得する方式で動作しても良い。データフレーム生成部102は、センサ値取得部109が最後にセンサから取得したセンサ値をデータフィールドに格納したデータフレームを周期的に生成する他、前回のセンサ値から変化があったセンサ値を含むイベントドリブンデータフレームを生成することになる。なお、周期的にデータフレームを生成するタイミングにおいては、前回のセンサ値から変化がなく同じセンサ値を含むデータフレームを生成する可能性と、前回のセンサ値から変化があったセンサ値を含むデータフレームを生成する可能性とがある。また、その周期的なタイミングではないタイミングで生成されるイベントドリブンデータフレームは、前回のセンサ値から変化があったセンサ値を含むデータフレームである。従って、データフレーム送受信部101によりECU100aからバス200に、周期的にデータフレームが送信され、更に、非周期的にイベントドリブンデータフレームが送信される。即ち、データフレーム送受信部101は、バス200上で送信されたデータフレームを受信する受信部としての機能の他に、特定識別子を含み送信周期を示すデータフレーム生成ルールに適合しないデータフレームであるイベントドリブンデータフレームをバス200により他のECUに送信する、言わば送信部としての機能等を含む。
データフレーム生成ルール保持部103は、メモリ等の記憶媒体で実現され、データフレーム生成ルールとして、自機(ECU100a)が送信するメッセージID毎に周期的にデータフレームを送信するための送信周期を格納している。図5は、データフレーム生成ルール保持部103に格納されたデータフレーム生成ルールの一例を示す図である。ここでは、ECU100aは、パワーウィンドウスイッチ110の状態を示すデータフレーム等、複数種類のデータフレーム(種類毎にメッセージIDで識別されるデータフレーム)を送信するものとする。図5の例は、ECU100aから周期的に送信されるメッセージIDが0x100のデータフレームの送信周期は、50msであり、メッセージIDが0x200のデータフレームの送信周期は、100msであり、メッセージIDが0x300のデータフレームの送信周期は、300msであることを示している。
不正データフレーム判断部104は、受信したデータフレームが正当なデータフレームであるか(不正なデータフレームでないか)否かについて判断する。即ち、不正データフレーム判断部104は、データフレーム送受信部101から通知されたデータフレームについて、受信データフレーム周期保持部105の周期ルール情報(後述)を参照して、メッセージID毎に予め定められた送信周期の条件を満たすか否かを確認し、送信周期の条件を満たす場合には正規のECUから送信されたデータフレーム(正当なデータフレーム)であると判断する。また、送信周期の条件を満たさないデータフレームであっても、イベントドリブンデータフレームであるか否かを識別するためのイベントドリブン識別フラグを確認し、イベントドリブンデータフレームであると識別された場合には正規ECUから送信されたデータフレーム(正当なデータフレーム)であると判断する。即ち、不正データフレーム判断部104は、送信周期を示すデータフレーム生成ルールに呼応した周期ルール情報(後述)に適合しないデータフレームがデータフレーム送受信部101により受信された場合に、そのデータフレーム中のイベントドリブン識別フラグという特定識別子を検証する、言わば検証部としての機能を有する。不正データフレーム判断部104は、受信したデータフレームが予め定められた送信周期の条件を満たさず、かつ、イベントドリブン識別フラグによってイベントドリブンデータフレームであると確認されない場合(つまり特定識別子の検証に失敗した場合)には、受信したデータフレームを不正なデータフレームであると判断する。不正データフレーム判断部104は、正当なデータフレームであると判断した場合には、データフレーム処理部107にそのデータフレームの処理を行わせ、不正なデータフレームであると判断した場合には、そのデータフレームを破棄する(つまりそのデータフレームについてデータフレーム処理部107に処理させない)。また、不正データフレーム判断部104は、送信周期の条件を満たすデータフレームを受信した場合に、受信時刻をデータフレーム受信履歴保持部106に前回受信時刻(後述)として記録する。
受信データフレーム周期保持部105は、メモリ等の記憶媒体で実現され、周期ルール情報を保持する。この周期ルール情報は、自機(ECU100a)が受信するデータフレームのメッセージID毎に、予め定められた送信周期と、データフレームの受信間隔について、送信周期の条件が満たされる(つまり正当な送信周期に合致する)と判断されるための許容範囲を示すマージンとを対応付けた情報である。データフレームの受信側のECUの受信データフレーム周期保持部105に保持される周期ルール情報における送信周期は、そのデータフレームの送信側のECUのデータフレーム生成ルール保持部103に保持されるデータフレーム生成ルールにおける送信周期に呼応する。図6は、ECU100aから送信されたデータフレームを受信するECU100bにおける受信データフレーム周期保持部105に格納された周期ルール情報の一例を示す図である。同図の例では、メッセージIDが0x100のデータフレームの送信周期が50ms、メッセージIDが0x200のデータフレームの送信周期が100ms、メッセージIDが0x300のデータフレームの送信周期が70msであることを示している。同図の例では、マージンは、どのメッセージIDについても1msである。このマージンが1msであるため、メッセージIDが0x100のデータフレームについて送信周期が49ms以上51ms以下の範囲であれば、ECU100bにおける不正データフレーム判断部104は、送信周期の条件が満たされると判断することになる。
データフレーム受信履歴保持部106は、メモリ等の記憶媒体で実現され、自機(ECU100a)が正常に受信(つまり正当なデータフレームとして受信)した周期的なデータフレームについてメッセージID毎に、周期的に受信した最終時刻である前回受信時刻を対応付けてなるリストを保持している。図7は、正当なデータフレームとして受信した周期的なデータフレームのメッセージID毎に、データフレームの前回受信時刻を示す情報を列挙したリストの一例を示している。同図の例は、ECU100bにおけるデータフレーム受信履歴保持部106が保持するリストの例である。この例では、メッセージIDが0x100であるデータフレームを周期的に受信した最終時刻(前回受信時刻)は200ms、メッセージIDが0x200であるデータフレームを周期的に受信した前回受信時刻は220ms、メッセージIDが0x300であるデータフレームを周期的に受信した前回受信時刻は230msであることを示している。
データフレーム処理部107は、不正データフレーム判断部104により正当なデータフレームであると判断されたデータフレームについて、そのデータフレームに応じてECU毎に予め定められた処理を行う。例えば、パワーウィンドウスイッチ110の状態を示すデータフレームを送信したECU100aでは、ECU100bからパワーウィンドウ120の開閉の制御状態に応じたデータフレームを受信して、パワーウィンドウ120が適切に反応しているかを確認する処理、適切に反応していない場合にアラーム音を鳴らす処理或いは他のECUに異常を通知する処理等を行う。
タイマ108は、計時機構であり、例えば車両のエンジン始動時或いはバッテリからの電力供給開始時等において0にリセットされ、その時点から経過した時刻を、データフレーム生成部102及び不正データフレーム判断部104に通知する。タイマ108により、データフレーム生成部102は、データフレームを一定の送信周期で周期的に送信でき、不正データフレーム判断部104は、受信したデータフレームの受信周期が予め定められた送信周期の条件を満たすか否かを判断することができるようになる。
センサ値取得部109は、自機(ECU100a)が接続している機器(パワーウィンドウスイッチ110)の状態を示すセンサ値を取得し、データフレーム生成部102に周期的に通知し、更にセンサの値が変化した時にもセンサ値をデータフレーム生成部102に通知する。
[1.5 データフレームの送受信]
以下、図8〜図10を用いて、バス200を介したECU間でのデータフレームの送受信について説明する。
図8は、ECU100aをデータフレームの送信側とし、ECU100bをデータフレームの受信側としたときのデータフレームの送受信の流れを示す図である。
図8に示す期間Tは、周期的に送信されるデータフレームの送信周期である。この期間Tは、送信側であるECU100aのデータフレーム生成ルール保持部103が保持するデータフレーム生成ルールにおける送信周期である。また、期間Tは、受信側であるECU100bの受信データフレーム周期保持部105が保持する周期ルール情報における送信周期と一致すると想定される。ECU100aは、周期的にデータフレームを送信する。ECU100aは、その周期的な送信に加えて、接続されたパワーウィンドウスイッチ110の状態の変化のタイミングがその周期的な送信タイミングと一致しない場合に、その状態の変化のタイミングで、イベントドリブンデータフレームを送信する。
車載ネットワークシステム10においては、不正なECUがバス200に接続された不正なデータフレームを送信した場合に、ECU100aが送信した正当なデータフレームと区別できる。即ち、ECU100bにより不正なデータフレームと正当なデータフレームとは判別される。この判別には、上述した周期的に送信されるデータフレームについて周期ルール情報(送信周期に係る条件)が用いられ、また、その送信周期に係る条件を満たさないイベントドリブンデータフレームについてはデータフィールド中のイベントドリブン識別フラグという特定識別子が用いられる。
図9は、ECU100aにおけるデータフレームの送信処理を示すフローチャートである。
ECU100aは、データフレーム生成ルールにおける送信周期に従った送信タイミング(前回の送信から送信周期が経過したタイミング)、或いは、センサ値取得部109からのセンサ値が変化したタイミングで、データフレームの生成が必要となり、図9の送信処理を開始する。送信処理においては、まず、ECU100aは、送信するデータフレームがイベントドリブンデータフレームか周期的なデータフレームかを判断する(ステップS1101)。
ECU100aは、ステップS1101において、送信するデータフレームが、データフレーム生成ルールにおける送信周期に従っていないイベントドリブンデータフレームであると判断した場合は、生成するデータフレームのデータフィールドのイベントドリブン識別フラグI(図3参照)に、イベントドリブンデータフレームであることを示す1をセットする(ステップS1102)。
ECU100aは、ステップS1101において、送信するデータフレームが、データフレーム生成ルールにおける送信周期に従う周期的なデータフレームであると判断した場合(イベントドリブンデータフレームでないと判断した場合)は、生成するデータフレームのデータフィールドのイベントドリブン識別フラグI(図3参照)に、イベントドリブンデータフレームでないことを示す0をセットする(ステップS1103)。
ECU100aは、ステップS1102又はS1103での処理を終えると、データフィールドのデータ領域にはセンサ値取得部109から取得した最新のセンサ値をセットして、送信するデータフレームを生成し、バス200へと送信する(ステップS1104)。これにより、バス200上にデータフレームが流れ、ECU100bに受信されるようになる。
図10は、ECU100bにおけるデータフレームの受信処理を示すフローチャートである。
ECU100bは、バス200上に現れるデータフレームを受信する(ステップS1201)。なお、ECU100bは、自機が受信すべきメッセージIDを含まないデータフレームであればそのデータフレームを破棄して処理を終了する。自機が受信すべきメッセージIDを含むデータフレームを受信した場合に、ECU100bは、その受信が、保持している周期ルール情報で規定された送信周期範囲内か否かを判断する(ステップS1202)。なお、ECU100bの不正データフレーム判断部104は、受信したデータフレームの受信間隔(つまり送信周期)が規定の送信周期の範囲内であるか否か(つまり周期ルール情報で定められた送信周期の条件を満たすか否か)を、タイマ108、受信データフレーム周期保持部105及びデータフレーム受信履歴保持部106から得られる情報に基づいて判断する。なお、規定の送信周期の範囲内とは、前回受信時刻と今回受信したデータフレームの受信時刻の差分(受信間隔)が、受信したデータフレームのメッセージIDに対応して定められた送信周期からマージンを引いた値以上であり、かつ、その送信周期にマージンを加えた値以下である場合を意味する。
ステップS1202において、データフレームの受信間隔が送信周期の範囲内である場合には、送信周期の条件が満たされたことになり、ECU100bは、データフレーム受信履歴保持部106が保持するリストに、受信したデータフレームのメッセージIDに対応付けて、前回受信時刻として、そのデータフレームの受信時刻を記録(つまり前回受信時刻を更新)する(ステップS1204)。そして、ステップS1204での処理に続いて、ECU100bの不正データフレーム判断部104により、受信したデータフレームが正当なデータフレームであると判断され(ステップS1205)、データフレーム処理部107によりそのデータフレームに対応した処理がなされる。
また、ステップS1202において、データフレームの前回受信時刻と今回受信時刻の差分が送信周期の範囲内でない場合には、ECU100bは、データフレームのデータフィールドのイベントドリブン識別フラグIが1であるか否かを判別する(ステップS1203)。イベントドリブン識別フラグIが1である場合には、ECU100bの不正データフレーム判断部104は、受信したデータフレームが正当なデータフレームであると判断し(ステップS1205)、データフレーム処理部107によりそのデータフレームに対応した処理がなされる。
また、ステップS1203において、データフレームのデータフィールドのイベントドリブン識別フラグIが1でないと判別した場合には、ECU100bは、受信したデータフレームが不正なデータフレームであると判断してデータフレームを破棄する(ステップS1206)。従って、ECU100bは、不正なECUにより送信された不正なデータフレームを処理しない。
なお、ステップS1202において、データフレームの受信間隔(つまり送信周期)が規定の送信周期の範囲内か否かを判断するに際して、初回等といった前回受信時刻が保存されていない場合においては、受信したデータフレームをイベントドリブンデータフレームと扱い、イベントドリブン識別フラグIが正しいときにそのデータフレームの受信時刻を前回受信時刻として記録してからステップS1205の処理を行うことができる。この場合、送信側のECUでは初回等の周期的な送信の起点においてはイベントドリブンデータフレームを送信する。また、各ECUが例えばスリープ状態等に入ってデータフレームの周期的な送信を休止する期間がある場合には、その後の周期的な送信の再開時にデータフレームをイベントドリブンデータフレームとして送信することとしても良い。この場合には、受信側のECUでは前回受信時刻から一定時間以上の間、送信側のECUがスリープ状態に入って周期的な送信が途切れた場合に、前回受信時刻を無効にして次回を初回と扱い、受信したデータフレームをイベントドリブンデータフレームと扱い、その正当性を判断することができる。
ここでは、ECU100aがデータフレームを送信してECU100bがデータフレームを受信する例を示したが、ECU100bがデータフレームを送信してECU100aがデータフレームを受信する場合においても同様の処理がなされる。即ち、ECU100bも図9に示すものと同様の送信処理を実行し得るし、ECU100aも図10に示すものと同様の受信処理を実行し得る。
[1.6 実施の形態1の効果]
実施の形態1では、周期的に送信されるデータフレームに加えて、非周期的に送信されるイベントドリブンデータフレームが存在する場合でも、イベントドリブンデータフレーム内に特定識別子を含めることによって、正当なデータフレームか否かを区別可能にする車載ネットワークシステム10を示した。即ち、車載ネットワークシステム10では、送信周期の条件により正当なデータフレームであるか否かを判別し、送信周期の条件によっては判別ができない場合に限って特定識別子により正当なデータフレームであるか否かを判別するようにしている。不正なECUがデータフレームを送信する場合には、送信周期の条件を満たさない可能性が高く、特に特定識別子を付与しないため、このデータフレームを受信したECUによって不正なデータフレームであると判断されるようになる。なお、イベントドリブンデータフレームではないデータフレーム(つまり周期的に送信されるデータフレーム)においては、データフィールドにイベントドリブン識別フラグIを含めずにデータフィールドに、ECUが機器等から取得したセンサ値を示すデータだけを含ませることとしても良い。このようにすれば、正規のECUが周期的に送信するデータフレームには、特定識別子を設ける必要がないため例えばデータフィールドを最大限に有効活用できる。
(実施の形態2)
以下、本開示の別の実施の形態として、データフレームを送受信するECU2100aとECU2100bとの間で、周期的に送信されるデータフレームに加えて非周期的なイベントドリブンデータフレームが送信され得る前提の下で、不正なデータフレームが送信されたことを適切に検知するための不正検知方法を実現する車載ネットワークシステム11について図面を用いて説明する。
[2.1 車載ネットワークシステム11の全体構成]
図11は、実施の形態2に係る車載ネットワークシステム11の全体構成を示す図である。車載ネットワークシステム11は、実施の形態1で示した車載ネットワークシステム10の一部を変形したものであり、制御装置、センサ等の各種機器が搭載された自動車におけるネットワーク通信システムである。車載ネットワークシステム11は、各種機器に接続されたECU2100a、2100b、及び、各ECUをつなぐバス200を含んで構成される。車載ネットワークシステム11の構成要素のうち、実施の形態1で示した車載ネットワークシステム10と同様の機能を有する構成要素は、同じ符号を付して説明を省略する。ECUは、例えば、プロセッサ(マイクロプロセッサ)、メモリ等のデジタル回路、アナログ回路、通信回路等を含む装置である。以下、バス200には不正なデータフレームを送信する不正なECUが接続されている可能性があることを前提として説明する。
ECU2100aは、実施の形態1で示したECU100aの一部を変形したものであり、パワーウィンドウスイッチ110に接続されている。ECU2100aは、パワーウィンドウスイッチ110の状態を示す情報を含むデータフレームを周期的にバス200に送信する。さらにパワーウィンドウスイッチ110の状態が変化した時にもパワーウィンドウスイッチ110の状態を示す情報(つまりセンサ値を示す情報)を含むデータフレームをバス200に送信する。従って、ECU2100aは、一定の送信周期でデータフレームの送信を繰り返す他に、パワーウィンドウスイッチ110の状態の変化時がその送信周期と一致しないときに非周期的なイベントドリブンデータフレームをバス200に送信することになる。またECU2100aは、ECU2100bからバス200上に送信されてバス200に流れるデータフレームを受信し、例えばECU2100aが送信したデータフレームが正しく受信されていること等を確認する。
ECU2100bは、実施の形態1で示したECU100bの一部を変形したものであり、パワーウィンドウ120に接続されている。ECU2100bは、ECU2100aから送信されバス200に流れているデータフレームを受信し、そのデータフレームに含まれるパワーウィンドウスイッチ110の状態に応じて、パワーウィンドウ120の開閉の制御を行う。またパワーウィンドウ120の開閉の制御状態に応じたデータフレームを周期的にバス200に送信する。この車載ネットワークシステム11においてはCANプロトコルに従って各ECUがフレームの授受を行う。各ECUは、受信したデータフレームが不正なデータフレームであるか否かを判断する機能を有している。
[2.2 データフィールドフォーマット]
以下、車載ネットワークシステム11で用いられるデータフレームにおけるデータフィールドについて説明する。
図12は、車載ネットワークシステム11で用いられるデータフィールドフォーマットの一例を示す図である。同図に示すように、データフィールドの上位8ビット「I」(先頭の8ビット)は、イベントドリブンデータフレームを送信する度に増加するカウンタ(「イベントカウンタ」と称する。)である。イベントカウンタIの値は、周期的なデータフレームの送信時には変化せず、同じメッセージIDのイベントドリブンデータフレームを1回送信する度に値が1増加(インクリメント)する。なお、例外的にイベントカウンタIの値が最大値(8ビットの最大値)になっている場合にイベントカウンタを1増加すると最小値になる。イベントカウンタIは、データフレームの受信側において正当なイベントドリブンデータフレームであるか否かを識別するための特定識別子として働く。イベントカウンタIに後続するデータ領域にはECUが機器等から取得したセンサ値を示すデータ(ECU2100aが送信するデータフレームにおいては例えばパワーウィンドウスイッチ110の状態を示す値等)が含まれる。図12の例では上位8ビットをイベントカウンタIとしているが、イベントカウンタIを、データフィールド内における下位8ビット等の任意の箇所に設けても良い。また、イベントカウンタIの長さを8ビットとしているが、必ずしも8ビットである必要はなく、任意の長さにしても良い。
[2.3 ECU2100aの構成]
図13は、ECU2100aの構成図である。ECU2100aは、データフレーム送受信部101と、データフレーム生成部2102と、データフレーム生成ルール保持部2103と、不正データフレーム判断部2104と、受信データフレーム周期保持部105と、データフレーム受信履歴保持部2106と、データフレーム処理部107と、タイマ108と、センサ値取得部109とを含んで構成される。ECU2100aの構成要素のうち、実施の形態1で示したECU100aと同様の機能を有する構成要素は、同じ符号を付して説明を省略する。これらの各構成要素は、機能的な構成要素であり、その各機能は、ECU2100aにおける通信回路、メモリに格納された制御プログラムを実行するプロセッサ或いはデジタル回路等により実現される。なお、ECU2100bもECU2100aと基本的に同様の構成を備える。但し、データフレーム生成ルール保持部2103、受信データフレーム周期保持部105及びデータフレーム受信履歴保持部2106の各保持内容はECU毎に異なる内容となり得る。また、データフレーム処理部107の処理内容は、ECU毎に異なる。
データフレーム生成部2102は、データフレーム生成ルール保持部2103に格納されたデータフレーム生成ルールに従い、データフレームを生成し、データフレーム送受信部101に送信する。データフレーム生成部2102は、タイマ108から現在時刻を取得する。更にデータフレーム生成部2102は、ECU2100aに接続された機器(パワーウィンドウスイッチ110)に関するデータ(センサ値)をセンサ値取得部109から取得する。ECU2100aからデータフレームを周期的に送信すべく、データフレーム生成部2102は、現在時刻とデータフレーム生成ルール保持部2103に格納される送信周期とによって、データフレームを生成するタイミングを決定し、データフレームの生成を周期的に行う。なお、データフレーム生成部2102によりデータフレームが生成されると、そのデータフレームはデータフレーム送受信部101に通知され、データフレーム送受信部101はそのデータフレームの送信を行う。更に、データフレーム生成部2102は、センサ値取得部109から取得されるセンサ値に変化があった時が、周期的なタイミングとは異なる時である場合には、イベントドリブンデータフレームの生成を行う。従って、データフレーム送受信部101によりECU2100aからバス200に、周期的にデータフレームが送信され、更に、非周期的にイベントドリブンデータフレームが送信される。データフレーム生成部2102は、周期的に送信するデータフレーム及びイベントドリブンデータフレームのデータフィールドに、イベントカウンタIとして、データフレーム生成ルール保持部2103に格納されている、メッセージID毎の送信イベントカウンタの値を含ませる。なお、データフレーム生成部2102は、イベントドリブンデータフレームを生成する場合には、データフレームの生成前にデータフレーム生成ルール保持部2103に格納されている送信イベントカウンタの値を1増加(インクリメント)する。データフレーム生成部2102も実施の形態1で示したデータフレーム生成部102と同様に、送信周期を示すデータフレーム生成ルールに適合しないタイミングでデータフレームの送信をする際においてデータフレーム中にイベントカウンタという特定識別子を付与したデータフレームを生成する付与部としての機能を有する。
データフレーム生成ルール保持部2103は、メモリ等の記憶媒体で実現され、データフレーム生成ルールとしてECU2100aが送信するメッセージID毎に周期的にデータフレームを送信するための送信周期を格納しており、更に、データフレーム生成ルールに、送信したイベントドリブンデータフレームの回数を示す送信イベントカウンタを付与している。この送信イベントカウンタは、データフレームを送信する際に、データフィールドのイベントカウンタに設定する値として用いられる。データフレーム生成部2102がイベントドリブンデータフレームの送信時に、送信イベントカウンタを1増加し、その送信イベントカウンタの値をデータフィールド内のイベントカウンタIとして用いる。図14は、データフレーム生成ルール保持部2103に格納されたデータフレーム生成ルール及び送信イベントカウンタの一例を示す図である。ここでは、ECU2100aは、パワーウィンドウスイッチ110の状態を示すデータフレーム等、複数種類のデータフレーム(種類毎にメッセージIDで識別されるデータフレーム)を送信するものとする。図14の例では、ECU2100aから周期的に送信されるメッセージIDが0x100のデータフレームについては、送信周期が50msであり送信イベントカウンタが現在15(例えばイベントドリブンデータフレームを15回送信した状態を示す値)であり、メッセージIDが0x200のデータフレームについては、送信周期が100msであり送信イベントカウンタが現在0(例えば未だイベントドリブンデータフレームを送信していない状態を示す値)であり、メッセージIDが0x300のデータフレームについては、送信周期が300msであり送信イベントカウンタが現在5であることを示している。
不正データフレーム判断部2104は、受信したデータフレームが正当なデータフレームであるか(不正なデータフレームでないか)否かについて判断する。即ち、不正データフレーム判断部2104は、受信データフレーム周期保持部105の周期ルール情報を参照して、メッセージID毎に予め定められた送信周期の条件を満たすか否かを確認し、送信周期の条件を満たす場合には正規のECUから送信されたデータフレーム(正当なデータフレーム)であると判断する。また、送信周期の条件を満たさないデータフレームであっても、データフレーム受信履歴保持部2106に格納されている受信イベントカウンタの値と受信したデータフレームに含まれるイベントカウンタIの値とを比較して確認し、イベントカウンタIの値が正当なイベントドリブンデータフレームに期待される値であると判定された場合には、正規ECUから送信されたイベントドリブンデータフレーム(正当なデータフレーム)であると判断する。即ち、不正データフレーム判断部2104は、実施の形態1で示した不正データフレーム判断部104と同様に、送信周期を示すデータフレーム生成ルールに呼応した周期ルール情報に適合しないデータフレームがデータフレーム送受信部101により受信された場合に、そのデータフレーム中のイベントカウンタという特定識別子を検証する検証部としての機能を有する。受信したデータフレームに含まれるイベントカウンタIの値が、受信イベントカウンタの値を1増加させた値と一致する場合には、正当なイベントドリブンデータフレームに期待される値であり、正当なデータフレームであると判断される。不正データフレーム判断部2104は、受信したデータフレームが予め定められた送信周期の条件を満たさず、かつ、イベントカウンタIにより正当なイベントドリブンデータフレームであると判定されない場合には、受信したデータフレームを不正なデータフレームであると判断する。不正データフレーム判断部2104は、正当なデータフレームであると判断した場合には、データフレーム処理部107にそのデータフレームの処理を行わせ、不正なデータフレームであると判断した場合には、そのデータフレームを破棄する(つまりそのデータフレームについてデータフレーム処理部107に処理させない)。また、不正データフレーム判断部2104は、送信周期の条件を満たすデータフレームを受信した場合に、受信時刻をデータフレーム受信履歴保持部2106に前回受信時刻として記録する。
データフレーム受信履歴保持部2106は、メモリ等の記憶媒体で実現され、自機(ECU2100a)が正常に受信(つまり正当なデータフレームとして受信)した周期的なデータフレームについてメッセージID毎に、周期的に受信した最終時刻である前回受信時刻を対応付けてなるリストを保持しており、このリストには更に正当に受信したイベントドリブンデータフレームの受信回数である受信イベントカウンタがメッセージID毎に付与されている。図15は、正当なデータフレームとして受信した周期的なデータフレームのメッセージID毎に、データフレームの前回受信時刻及び受信イベントカウンタを列挙したリストの一例を示している。同図の例は、ECU2100bにおけるデータフレーム受信履歴保持部2106が保持するリストの例である。この例では、メッセージIDが0x100であるデータフレームを周期的に受信した最終時刻(前回受信時刻)は200msでありメッセージIDが0x100のイベントドリブンデータフレームに対応する受信イベントカウンタが現在15(例えばイベントドリブンデータフレームを15回受信した状態を示す値)であり、メッセージIDが0x200であるデータフレームを周期的に受信した前回受信時刻は220msであり受信イベントカウンタが現在0(例えば未だイベントドリブンデータフレームを受信していない状態を示す値)であり、メッセージIDが0x300であるデータフレームを周期的に受信した前回受信時刻は230msであり受信イベントカウンタが現在5であることを示している。
[2.4 ECU2100aにおけるデータフレームの送信処理]
以下、ECU2100aがデータフレームをバス200に送信し、ECU2100bがデータフレームをバス200から受信する例を想定して、ECU2100aにおけるデータフレームの送信処理を説明する。
図16は、ECU2100aにおけるデータフレームの送信処理を示すフローチャートである。
ECU2100aは、データフレーム生成ルールにおける送信周期に従った送信タイミング(前回の送信から送信周期が経過したタイミング)、或いは、センサ値取得部109からのセンサ値が変化したタイミングで、データフレームの生成が必要となり、図16の送信処理を開始する。送信処理においては、まず、ECU2100aは、送信するデータフレームがイベントドリブンデータフレームか周期的なデータフレームかを判断する(ステップS2101)。
ECU2100aは、ステップS2101において、送信するデータフレームが、データフレーム生成ルールにおける送信周期に従っていないイベントドリブンデータフレームであると判断した場合は、データフレーム生成ルール保持部2103に格納されている送信イベントカウンタの値を1増加(インクリメント)する(ステップS2102)。また、ECU2100aは、ステップS2101において、送信するデータフレームが、データフレーム生成ルールにおける送信周期に従う周期的なデータフレームであると判断した場合(イベントドリブンデータフレームでないと判断した場合)には、ステップS2102での送信イベントカウンタの値の増加をスキップする。
ECU2100aは、ステップS2102での処理を終えた場合、及び、ステップS2102での処理をスキップした場合に、データフィールドのイベントカウンタIに送信イベントカウンタの値をセットし、データフィールドのデータ領域にはセンサ値取得部109から取得した最新のセンサ値をセットして、送信するデータフレームを生成し、バス200へと送信する(ステップS2103)。これにより、バス200上にデータフレームが流れ、ECU2100bに受信されるようになる。
なお、ECU2100bも図16に示すものと同様の送信処理を実行し得る。
[2.5 ECU2100bにおけるデータフレームの受信処理]
以下、ECU2100aがデータフレームをバス200に送信し、ECU2100bがデータフレームをバス200から受信する例を想定して、ECU2100bにおけるデータフレームの受信処理を説明する。
図17は、ECU2100bにおけるデータフレームの受信処理を示すフローチャートである。
ECU2100bは、バス200上に現れるデータフレームを受信する(ステップS2201)。なお、ECU2100bは、自機が受信すべきメッセージIDを含まないデータフレームであればそのデータフレームを破棄して処理を終了する。自機が受信すべきメッセージIDを含むデータフレームを受信した場合に、ECU2100bは、その受信が、保持している周期ルール情報で規定された送信周期範囲内か否かを判断する(ステップS2202)。なお、ECU2100bの不正データフレーム判断部2104は、受信したデータフレームの受信間隔(つまり送信周期)が規定の送信周期の範囲内であるか否か(つまり周期ルール情報で定められた送信周期の条件を満たすか否か)を、タイマ108、受信データフレーム周期保持部105及びデータフレーム受信履歴保持部106から得られる情報に基づいて判断する。即ち、不正データフレーム判断部2104は、前回受信時刻と今回受信したデータフレームの受信時刻の差分(受信間隔)が、受信したデータフレームのメッセージIDに対応して定められた送信周期からマージンを引いた値以上であり、かつ、その送信周期にマージンを加えた値以下であるか否かを判断する。
ステップS2202において、データフレームの受信間隔が送信周期の範囲内である場合には、送信周期の条件が満たされたことになり、ECU2100bは、データフレーム受信履歴保持部2106が保持するリストに、受信したデータフレームのメッセージIDに対応付けて、前回受信時刻として、そのデータフレームの受信時刻を記録(つまり前回受信時刻を更新)する(ステップS2204)。そして、ステップS2204での処理に続いて、ECU2100bの不正データフレーム判断部2104により、受信したデータフレームが正当なデータフレームであると判断され(ステップS2206)、データフレーム処理部107によりそのデータフレームに対応した処理がなされる。
また、ステップS2202において、データフレームの前回受信時刻と今回受信時刻の差分が送信周期の範囲内でない場合には、ECU2100bは、データフレームのデータフィールドのイベントカウンタIが、データフレーム受信履歴保持部2106に格納された受信イベントカウンタの値を1増加させた値と一致するか否かを判定する(ステップS2203)。一致する場合には、ECU2100bでは受信イベントカウンタの値を1増加(インクリメント)させる(ステップS2205)。続いてECU2100bの不正データフレーム判断部2104は、受信したデータフレームが正当なデータフレームであると判断し(ステップS2206)、データフレーム処理部107によりそのデータフレームに対応した処理がなされる。
ステップS2203において一致しないと判定した場合には、ECU2100bは、受信したデータフレームが不正なデータフレームであると判断してデータフレームを破棄する(ステップS2207)。従って、ECU2100bは、不正なECUにより送信された不正なデータフレームを処理しない。
なお、ステップS2202において、データフレームの受信間隔(つまり送信周期)が規定の送信周期の範囲内か否かを判断するに際して、初回等といった前回受信時刻が保存されていない場合においては、受信したデータフレームをイベントドリブンデータフレームと扱い、イベントカウンタが正しいときに受信イベントカウンタを1増加した後にそのデータフレームの受信時刻を前回受信時刻として記録してからステップS2206の処理を行うことができる。この場合、送信側のECUでは初回等の周期的な送信の起点においてはイベントドリブンデータフレームを送信する。また、各ECUが例えばスリープ状態等に入ってデータフレームの周期的な送信を休止する期間がある場合には、その後の周期的な送信の再開時にデータフレームをイベントドリブンデータフレームとして送信することとしても良い。この場合には、受信側のECUでは前回受信時刻から一定時間以上の間、送信側のECUがスリープ状態に入って周期的な送信が途切れた場合に、前回受信時刻を無効にして次回を初回と扱い、受信したデータフレームをイベントドリブンデータフレームと扱い、その正当性を判断することができる。
また、ECU2100aも図17に示すものと同様の受信処理を実行し得る。
[2.6 実施の形態2の効果]
実施の形態2では、周期的に送信されるデータフレームに加えて、非周期的に送信されるイベントドリブンデータフレームが存在する場合でも、イベントドリブンデータフレーム内に特定識別子(つまりイベントカウンタ)を含めることによって、正当なデータフレームか否かを区別可能にする車載ネットワークシステム11を示した。即ち、車載ネットワークシステム11では、送信周期の条件により正当なデータフレームであるか否かを判別し、送信周期の条件によっては判別ができない場合に限って特定識別子により正当なデータフレームであるか否かを判別するようにしている。イベントカウンタは、固定値ではないため、不正なECUがイベントカウンタと同じ値をデータフレームに付与し難い。不正なECUがデータフレームを送信する場合には、送信周期の条件を満たさない可能性が高く、正しくイベントカウンタをセットすることは容易ではないため、このデータフレームを受信したECUによって不正なデータフレームであると判断されるようになる。なお、イベントドリブンデータフレームではないデータフレーム(つまり周期的に送信されるデータフレーム)においては、データフィールドにイベントカウンタIを含めずにデータフィールドに、ECUが機器等から取得したセンサ値を示すデータだけを含ませることとしても良い。このようにすれば、正規のECUが周期的に送信するデータフレームには、特定識別子を設ける必要がないため例えばデータフィールドを最大限に有効活用できる。
(実施の形態3)
以下、本開示の別の実施の形態として、データフレームを送受信するECU3100aとECU3100bとの間で、周期的に送信されるデータフレームに加えて非周期的なイベントドリブンデータフレームが送信され得る前提の下で、不正なデータフレームが送信されたことを適切に検知するための不正検知方法を実現する車載ネットワークシステム12について図面を用いて説明する。
[3.1 車載ネットワークシステム12の全体構成]
図18は、実施の形態3に係る車載ネットワークシステム12の全体構成を示す図である。車載ネットワークシステム12は、実施の形態1で示した車載ネットワークシステム10の一部を変形したものであり、制御装置、センサ等の各種機器が搭載された自動車におけるネットワーク通信システムである。車載ネットワークシステム12は、各種機器に接続されたECU3100a、3100b、及び、各ECUをつなぐバス200を含んで構成される。車載ネットワークシステム12の構成要素のうち、実施の形態1で示した車載ネットワークシステム10と同様の機能を有する構成要素は、同じ符号を付して説明を省略する。ECUは、例えば、プロセッサ(マイクロプロセッサ)、メモリ等のデジタル回路、アナログ回路、通信回路等を含む装置である。以下、バス200には不正なデータフレームを送信する不正なECUが接続されている可能性があることを前提として説明する。
ECU3100aは、実施の形態1で示したECU100aの一部を変形したものであり、パワーウィンドウスイッチ110に接続されている。ECU3100aは、パワーウィンドウスイッチ110の状態を示す情報を含むデータフレームを周期的にバス200に送信する。さらにパワーウィンドウスイッチ110の状態が変化した時にもパワーウィンドウスイッチ110の状態を示す情報(つまりセンサ値を示す情報)を含むデータフレームをバス200に送信する。従って、ECU3100aは、一定の送信周期でデータフレームの送信を繰り返す他に、パワーウィンドウスイッチ110の状態の変化時がその送信周期と一致しないときに非周期的なイベントドリブンデータフレームをバス200に送信することになる。またECU3100aは、ECU3100bからバス200上に送信されてバス200に流れるデータフレームを受信し、例えばECU3100aが送信したデータフレームが正しく受信されていること等を確認する。
ECU3100bは、実施の形態1で示したECU100bの一部を変形したものであり、パワーウィンドウ120に接続されている。ECU3100bは、ECU3100aから送信されバス200に流れているデータフレームを受信し、そのデータフレームに含まれるパワーウィンドウスイッチ110の状態に応じて、パワーウィンドウ120の開閉の制御を行う。またパワーウィンドウ120の開閉の制御状態に応じたデータフレームを周期的にバス200に送信する。この車載ネットワークシステム12においてはCANプロトコルに従って各ECUがフレームの授受を行う。各ECUは、受信したデータフレームが不正なデータフレームであるか否かを判断する機能を有している。
[3.2 データフィールドフォーマット]
以下、車載ネットワークシステム12で用いられるデータフレームにおけるデータフィールドについて説明する。
図19は、車載ネットワークシステム12で用いられるデータフィールドフォーマットの一例を示す図である。同図の例は、イベントドリブンデータフレームの場合の一例であり、データフィールドの下位16ビット「I」(後尾の16ビット)は、メッセージ認証コード(MAC:Message Authentication Code)を格納するMACフィールドIである。イベントドリブンデータフレームについてのデータフィールドにMACフィールドIを含むか否か、並びに、MACフィールドIを含む場合にはMACフィールドIの位置及び長さについて、データフレーム生成ルール保持部3103に格納されているデータフレーム生成ルール内のイベントドリブンデータフレームフォーマット(後述)で規定される。イベントドリブンデータフレームを生成して送信する場合には、MACフィールドIにデータフレーム生成ルール保持部3103に格納されているイベントドリブンデータフレームフォーマットに従ってMACをセットする。MACは、イベントドリブンデータフレームが正当であることを識別する特定識別子として機能する。周期的なデータフレームを生成して送信する場合には、データフィールド内にMACを格納する必要はなく、MACの代わりに固定値を含めても良いが、特にMAC及びその代替データを含まずデータフィールド全域をデータ領域として活用して良い。ここでは、周期的なデータフレームにはMACは格納されず、イベントドリブンデータフレームにはMACが格納されることとして説明を続ける。データフィールドのMACフィールドI以外の領域であるデータ領域(図19参照)には、ECUが機器等から取得したセンサ値を示すデータ(ECU3100aが送信するデータフレームにおいては例えばパワーウィンドウスイッチ110の状態を示す値等)が含まれる。図19の例では下位16ビットをMACフィールドIとしているが、イベントドリブンデータフレームフォーマットで規定すれば、上位ビット等、任意の箇所にMACフィールドを含めても良い。また、MACのサイズを16ビット以外にしても良い。
[3.3 ECU3100aの構成]
図20は、ECU3100aの構成図である。ECU3100aは、データフレーム送受信部101と、データフレーム生成部3102と、データフレーム生成ルール保持部3103と、不正データフレーム判断部3104と、受信データフレーム周期保持部3105と、データフレーム受信履歴保持部106と、データフレーム処理部107と、タイマ108と、センサ値取得部109と、MAC生成部3110と、MAC鍵保持部3111と、カウンタ保持部3112とを含んで構成される。ECU3100aの構成要素のうち、実施の形態1で示したECU100aと同様の機能を有する構成要素は、同じ符号を付して説明を省略する。これらの各構成要素は、機能的な構成要素であり、その各機能は、ECU3100aにおける通信回路、メモリに格納された制御プログラムを実行するプロセッサ或いはデジタル回路等により実現される。なお、ECU3100bもECU3100aと基本的に同様の構成を備える。但し、データフレーム生成ルール保持部3103、受信データフレーム周期保持部3105及びデータフレーム受信履歴保持部106の各保持内容はECU毎に異なる内容となり得る。また、データフレーム処理部107の処理内容は、ECU毎に異なる。
データフレーム生成部3102は、データフレーム生成ルール保持部3103に格納されたデータフレーム生成ルールに従い、データフレームを生成し、データフレーム送受信部101に送信する。データフレーム生成部3102は、タイマ108から現在時刻を取得する。更にデータフレーム生成部3102は、ECU3100aに接続された機器(パワーウィンドウスイッチ110)に関するデータ(センサ値)をセンサ値取得部109から取得する。ECU3100aからデータフレームを周期的に送信すべく、データフレーム生成部3102は、現在時刻とデータフレーム生成ルール保持部3103に格納される送信周期とによって、データフレームを生成するタイミングを決定し、データフレームの生成を周期的に行う。なお、データフレーム生成部3102によりデータフレームが生成されると、そのデータフレームはデータフレーム送受信部101に通知され、データフレーム送受信部101はそのデータフレームの送信を行う。更に、データフレーム生成部3102は、センサ値取得部109から取得されるセンサ値に変化があった時が、周期的なタイミングとは異なる時である場合には、イベントドリブンデータフレームの生成を行う。イベントドリブンデータフレームを生成する際には、データフレーム生成部3102は、データフレーム生成ルール保持部3103に格納されているメッセージID毎のデータフレーム生成ルールのイベントドリブンデータフレームフォーマットに従ってMACをデータフレームに含める。このMACは、MAC生成部3110に、生成するデータフレームのメッセージID及びデータフィールドのデータ領域に格納するデータ(センサ値)を通知することによってMAC生成部3110から得られる値を、イベントドリブンデータフレームフォーマットで規定されるデータ長(ビット長)となるように切り捨てたものである。データフレーム生成部3102によるデータフレームの生成の結果として、データフレーム送受信部101によりECU3100aからバス200に、周期的にデータフレームが送信され、更に、非周期的にイベントドリブンデータフレームが送信される。データフレーム生成部3102も実施の形態1で示したデータフレーム生成部102と同様に、送信周期を示すデータフレーム生成ルールに適合しないタイミングでデータフレームの送信をする際においてデータフレーム中にMACという特定識別子を付与したデータフレームを生成する付与部としての機能を有する。
データフレーム生成ルール保持部3103は、メモリ等の記憶媒体で実現され、データフレーム生成ルールとしてECU3100aが送信するメッセージID毎に周期的にデータフレームを送信するための送信周期と、MACの格納位置、データ長等を示すイベントドリブンデータフレームフォーマットとを格納している。図21は、データフレーム生成ルール保持部3103に格納されたデータフレーム生成ルールの一例を示している。ここでは、ECU3100aは、パワーウィンドウスイッチ110の状態を示すデータフレーム等、複数種類のデータフレーム(種類毎にメッセージIDで識別されるデータフレーム)を送信するものとする。図21の例では、ECU3100aから周期的に送信されるメッセージIDが0x100のデータフレームについては、送信周期が50msであり、この送信周期に従わずイベントドリブンデータフレームとして送信する場合にはデータフィールドの下位16ビットにMACを格納する必要があることを示している。また、メッセージIDが0x200のデータフレームについては、送信周期が100msであり、メッセージIDが0x200のイベントドリブンデータフレームは送信されないことを示している。また、ECU3100aから周期的に送信されるメッセージIDが0x300のデータフレームについては、送信周期が70msであり、この送信周期に従わずイベントドリブンデータフレームとして送信する場合にはデータフィールドの下位16ビットにMACを格納する必要があることを示している。
不正データフレーム判断部3104は、受信したデータフレームが正当なデータフレームであるか(不正なデータフレームでないか)否かについて判断する。即ち、不正データフレーム判断部3104は、受信データフレーム周期保持部3105の周期ルール情報を参照して、メッセージID毎に予め定められた送信周期の条件を満たすか否かを確認し、送信周期の条件を満たす場合には正規のECUから送信されたデータフレーム(正当なデータフレーム)であると判断する。また、送信周期の条件を満たさないデータフレームであっても、データフィールドに正当なMACが含まれていることが検証された場合には、正当なデータフレームであると判断される。MACの検証は、データフレームのメッセージID及びデータフィールドのデータ領域の内容をMAC生成部3110に通知することによってMAC生成部3110から得られる値と、データフィールド内のMACフィールドIの内容とが、一致するか否かを判別することで行われ、一致した場合に検証に成功する。即ち、不正データフレーム判断部3104は、実施の形態1で示した不正データフレーム判断部104と同様に、送信周期を示すデータフレーム生成ルールに呼応した周期ルール情報に適合しないデータフレームがデータフレーム送受信部101により受信された場合に、そのデータフレーム中のMACという特定識別子を検証する検証部としての機能を有する。不正データフレーム判断部3104は、受信したデータフレームが予め定められた送信周期の条件を満たさず、かつ、MACの検証により正当なイベントドリブンデータフレームであると判定されない場合には、受信したデータフレームを不正なデータフレームであると判断する。不正データフレーム判断部2104は、正当なデータフレームであると判断した場合には、データフレーム処理部107にそのデータフレームの処理を行わせ、不正なデータフレームであると判断した場合には、そのデータフレームを破棄する(つまりそのデータフレームについてデータフレーム処理部107に処理させない)。また、不正データフレーム判断部3104は、送信周期の条件を満たすデータフレームを受信した場合に、受信時刻をデータフレーム受信履歴保持部106に前回受信時刻として記録する。
受信データフレーム周期保持部3105は、メモリ等の記憶媒体で実現され、周期ルール情報を保持する。この周期ルール情報は、自機(ECU3100a)が受信するデータフレームのメッセージID毎に、予め定められた送信周期と、データフレームの受信間隔について、送信周期の条件が満たされる(つまり正当な送信周期に合致する)と判断されるための許容範囲を示すマージンとを対応付けた情報である。周期ルール情報には、更に、送信周期の条件を満たさないイベントドリブンデータフレームのデータフィールド内に格納されるMACの格納位置、データ長等を示すイベントドリブンデータフレームフォーマットが含まれる。このイベントドリブンデータフレームフォーマットは、不正データフレーム判断部3104が、イベントドリブンデータフレームについての正当性を検証(つまりMACを検証)する際に用いられる。なお、データフレームの受信側のECUの受信データフレーム周期保持部3105に保持される周期ルール情報における送信周期は、そのデータフレームの送信側のECUのデータフレーム生成ルール保持部3103に保持されるデータフレーム生成ルールにおける送信周期に呼応する。また、データフレームの受信側のECUの受信データフレーム周期保持部3105に保持される周期ルール情報におけるイベントドリブンデータフレームフォーマットは、そのデータフレームの送信側のECUのデータフレーム生成ルール保持部3103に保持されるデータフレーム生成ルールにおけるイベントドリブンデータフレームフォーマットに呼応する。図22は、ECU3100aから送信されたデータフレームを受信するECU3100bにおける受信データフレーム周期保持部3105に格納された周期ルール情報の一例を示す図である。同図の例では、メッセージIDが0x100のデータフレームの送信周期が50ms、メッセージIDが0x200のデータフレームの送信周期が100ms、メッセージIDが0x300のデータフレームの送信周期が70msであることを示している。同図の例では、マージンは、どのメッセージIDについても1msである。このマージンが1msであるため、メッセージIDが0x100のデータフレームについて送信周期が49ms以上51ms以下の範囲であれば、ECU3100bにおける不正データフレーム判断部3104は、送信周期の条件が満たされると判断することになる。また、図22の例でのイベントドリブンデータフレームフォーマットについては、メッセージIDが0x100及び0x300のイベントドリブンデータフレームは、データフィールドの下位16ビットにMACが付与されていることを示しており、メッセージIDが0x200のイベントドリブンデータフレームは送信されないことを示している。
MAC生成部3110は、不正データフレーム判断部3104或いはデータフレーム生成部3102から通知されたデータフレームの内容(メッセージID及びデータフィールドのデータ領域のデータ)に基づいて、MACを生成してMACの値を通知元に与える。即ち、MAC生成部3110は、通知されたメッセージIDと、データフィールドのデータ領域のデータ値と、カウンタ保持部3112に格納されている、通知されたメッセージIDに対応するカウンタ値とを連結したものに対して、MAC鍵保持部3111に格納されている通知されたメッセージIDに対応するMAC鍵を用いてHMAC(非特許文献4)の演算を行うことによりMACを生成して、通知元にMACの値を返す。
MAC鍵保持部3111は、メモリ等の記憶媒体で実現され、自機(ECU3100a)が送信するデータフレームのメッセージID毎にMAC生成に用いられる暗号鍵を格納しており、更に、自機(ECU3100a)が受信するデータフレームのメッセージID毎にMAC生成に用いられる暗号鍵を格納している。
カウンタ保持部3112は、メモリ等の記憶媒体を含んで実現され、自機(ECU3100a)が送信するデータフレームのメッセージID毎に対応して送信カウンタと、自機(ECU3100a)が受信するデータフレームのメッセージID毎に対応して受信カウンタとを保持する。データフレーム生成部3102からの通知を受けてMAC生成部3110にMACが生成される度に、対応するメッセージIDの送信カウンタが1増加(インクリメント)される。また、不正データフレーム判断部3104が、受信したデータフレームが不正でないと判断し、データフレーム処理部107にそのデータフレームが通知される都度、対応するメッセージIDの受信カウンタが1増加(インクリメント)される。これにより、メッセージID毎のイベントドリブンデータフレームの送信側のECUが保持する送信カウンタと受信側のECUが保持する受信カウンタとが同じ値となるよう同期する。MAC生成部3110は、データフレームの送信のためのMACの生成の際には送信カウンタを用いてMACを生成し、受信したデータフレームの検証のためのMACの生成の際には受信カウンタを用いてMACを生成する。
[3.4 ECU3100aにおけるデータフレームの送信処理]
以下、ECU3100aがデータフレームをバス200に送信し、ECU3100bがデータフレームをバス200から受信する例を想定して、ECU3100aにおけるデータフレームの送信処理を説明する。
図23は、ECU3100aにおけるデータフレームの送信処理を示すフローチャートである。
ECU3100aは、データフレーム生成ルールにおける送信周期に従った送信タイミング(前回の送信から送信周期が経過したタイミング)、或いは、センサ値取得部109からのセンサ値が変化したタイミングで、データフレームの生成が必要となり、図23の送信処理を開始する。送信処理においては、まず、ECU3100aは、送信するデータフレームがイベントドリブンデータフレームか周期的なデータフレームかを判断する(ステップS3101)。
ECU3100aは、ステップS3101において、送信するデータフレームが、データフレーム生成ルールにおける送信周期に従っていないイベントドリブンデータフレームであると判断した場合には、イベントドリブンデータフレームフォーマットに従って、生成するデータフレームのデータフィールドのMACフィールドIに、MACを付与する(ステップS3102)。
ECU3100aは、ステップS3101において、送信するデータフレームが、データフレーム生成ルールにおける送信周期に従う周期的なデータフレームであると判断した場合(イベントドリブンデータフレームでないと判断した場合)には、ステップS3102での処理をスキップする。
ECU3100aは、ステップS3102の後、或いはステップS3102での処理をスキップした後に、データフィールドのデータ領域にセンサ値取得部109から取得した最新のセンサ値をセットして、送信するデータフレームを生成し、バス200へと送信する(ステップS3103)。これにより、バス200上にデータフレームが流れ、ECU3100bに受信されるようになる。
なお、ECU3100bも図23に示すものと同様の送信処理を実行し得る。
[3.5 ECU3100bにおけるデータフレームの受信処理]
以下、ECU3100aがデータフレームをバス200に送信し、ECU3100bがデータフレームをバス200から受信する例を想定して、ECU3100bにおけるデータフレームの受信処理を説明する。
図24は、ECU3100bにおけるデータフレームの受信処理を示すフローチャートである。
ECU3100bは、バス200上に現れるデータフレームを受信する(ステップS3201)。なお、ECU3100bは、自機が受信すべきメッセージIDを含まないデータフレームであればそのデータフレームを破棄して処理を終了する。自機が受信すべきメッセージIDを含むデータフレームを受信した場合に、ECU3100bは、その受信が、保持している周期ルール情報で規定された送信周期範囲内か否かを判断する(ステップS3202)。なお、ECU3100bの不正データフレーム判断部3104は、受信したデータフレームの受信間隔(つまり送信周期)が規定の送信周期の範囲内であるか否か(つまり周期ルール情報で定められた送信周期の条件を満たすか否か)を、タイマ108、受信データフレーム周期保持部3105及びデータフレーム受信履歴保持部106から得られる情報に基づいて判断する。即ち、不正データフレーム判断部3104は、前回受信時刻と今回受信したデータフレームの受信時刻の差分(受信間隔)が、受信したデータフレームのメッセージIDに対応して定められた送信周期からマージンを引いた値以上であり、かつ、その送信周期にマージンを加えた値以下であるか否かを判断する。
ステップS3202において、データフレームの受信間隔が送信周期の範囲内である場合には、送信周期の条件が満たされたことになり、ECU3100bは、データフレーム受信履歴保持部106が保持するリストに、受信したデータフレームのメッセージIDに対応付けて、前回受信時刻として、そのデータフレームの受信時刻を記録(つまり前回受信時刻を更新)する(ステップS3204)。そして、ステップS3204での処理に続いて、ECU3100bの不正データフレーム判断部3104により、受信したデータフレームが正当なデータフレームであると判断され(ステップS3205)、データフレーム処理部107によりそのデータフレームに対応した処理がなされる。
また、ステップS3202において、データフレームの前回受信時刻と今回受信時刻の差分が送信周期の範囲内でない場合には、ECU3100bは、受信データフレーム周期保持部3105に格納されているイベントドリブンデータフレームフォーマットに従ってデータフレームのデータフィールドをMACフィールドIとデータ領域とに分けて、データ領域及びメッセージIDから算出されるMACと、MACフィールドに含まれるMACとを比較することで、データフレームの正当性(MACが正しいこと)を検証する(ステップS3203)。算出されるMACとMACフィールドに含まれるMACとが一致すればMACの検証(つまりMACの正当性の検証)に成功し、受信したデータフレームが正当なデータフレームであると判断され(ステップS3205)、データフレーム処理部107によりそのデータフレームに対応した処理がなされる。
ステップS3203において、算出されるMACとMACフィールドに含まれるMACとが一致しない場合(MACの検証に成功しない場合)には、ECU3100bは、受信したデータフレームが不正なデータフレームであると判断してデータフレームを破棄する(ステップS3206)。従って、ECU3100bは、不正なECUにより送信された不正なデータフレームを処理しない。
なお、ステップS3202において、データフレームの受信間隔(つまり送信周期)が規定の送信周期の範囲内か否かを判断するに際して、初回等といった前回受信時刻が保存されていない場合においては、受信したデータフレームをイベントドリブンデータフレームと扱い、MACの検証に成功したときにそのデータフレームの受信時刻を前回受信時刻として記録してからステップS3205の処理を行うことができる。この場合、送信側のECUでは初回等の周期的な送信の起点においては例外的にイベントドリブンデータフレームを送信する。また、各ECUが例えばスリープ状態等に入ってデータフレームの周期的な送信を休止する期間がある場合には、その後の周期的な送信の再開時にデータフレームをイベントドリブンデータフレームとして送信することとしても良い。この場合には、受信側のECUでは前回受信時刻から一定時間以上の間、送信側のECUがスリープ状態に入って周期的な送信が途切れた場合に、前回受信時刻を無効にして次回を初回と扱い、受信したデータフレームをイベントドリブンデータフレームと扱い、その正当性を判断することができる。
また、ECU3100aも図24に示すものと同様の受信処理を実行し得る。
[3.6 実施の形態3の効果]
実施の形態3では、周期的に送信されるデータフレームに加えて、非周期的に送信されるイベントドリブンデータフレームが存在する場合でも、イベントドリブンデータフレーム内に特定識別子としてのMACを含めることによって、正当なイベントドリブンデータフレームであることを検証可能にする車載ネットワークシステム12を示した。即ち、車載ネットワークシステム12では、送信周期の条件により正当なデータフレームであるか否かを判別し、送信周期の条件によっては判別ができない場合に限って特定識別子により正当なデータフレームであるか否かを判別(つまり検証)するようにしている。これにより、送信周期の条件を満たさない正当なイベントドリブンデータフレームが不正なものとして誤検知されることが防止される。また、不正なECUがデータフレームを送信する場合には、送信周期の条件を満たさない可能性が高く、正しくMACを付与できないため、このデータフレームを受信したECUによって不正なデータフレームであると判断されるようになる。なお、イベントドリブンデータフレームではないデータフレーム(つまり周期的に送信されるデータフレーム)においては、データフィールドにMACを含める必要がないため、例えばデータフィールドを最大限に有効活用できる。
(実施の形態4)
以下、本開示の別の実施の形態として、データフレームを送受信するECU4100aとECU4100bとの間で、周期的に送信されるデータフレームに加えて非周期的なイベントドリブンデータフレームが送信され得る前提の下で、車両の状態を踏まえて、不正なデータフレームが送信されたことを適切に検知するための不正検知方法を実現する車載ネットワークシステム13について図面を用いて説明する。なお、車載ネットワークシステム13は、実施の形態1で示した車載ネットワークシステム10及び実施の形態3で示した車載ネットワークシステム12の一部を変形したものであり、車載ネットワークシステム13で用いられるデータフレームにおけるデータフィールドのフォーマットは、実施の形態3で示したものと同様である。
[4.1 車載ネットワークシステム13の全体構成]
図25は、実施の形態4に係る車載ネットワークシステム13の全体構成を示す図である。車載ネットワークシステム13は、制御装置、センサ等の各種機器が搭載された自動車におけるネットワーク通信システムである。車載ネットワークシステム13は、各種機器に接続されたECU4100a〜4100c、及び、各ECUをつなぐバス200を含んで構成される。車載ネットワークシステム13の構成要素のうち、前述した車載ネットワークシステム10等と同様の機能を有する構成要素は、同じ符号を付して説明を省略する。ECUは、例えば、プロセッサ(マイクロプロセッサ)、メモリ等のデジタル回路、アナログ回路、通信回路等を含む装置である。以下、バス200には不正なデータフレームを送信する不正なECUが接続されている可能性があることを前提として説明する。
ECU4100cは、ギア4130に接続されており、ギア4130の状態に応じて、車両の状態を判定し、バス200に車両の状態を示すデータフレームを送信する。ギア4130から判定される車両の状態は、例えば、走行中、駐車中等の各状態である。
ECU4100aは、実施の形態1で示したECU100aの一部を変形したものであり、パワーウィンドウスイッチ110に接続されている。ECU4100aは、パワーウィンドウスイッチ110の状態を示す情報を含むデータフレームを周期的にバス200に送信する。さらにパワーウィンドウスイッチ110の状態が変化した時にもパワーウィンドウスイッチ110の状態を示す情報(つまりセンサ値を示す情報)を含むデータフレームをバス200に送信する。従って、ECU4100aは、一定の送信周期でデータフレームの送信を繰り返す他に、パワーウィンドウスイッチ110の状態の変化時がその送信周期と一致しないときに非周期的なイベントドリブンデータフレームをバス200に送信することになる。またECU4100aは、ECU4100bからバス200上に送信されてバス200に流れるデータフレームを受信し、例えばECU4100aが送信したデータフレームが正しく受信されていること等を確認する。また、ECU4100aは、ECU4100cが送信した車両の状態を示すデータフレームを受信し、車両の状態を把握し得る。
ECU4100bは、実施の形態1で示したECU100bの一部を変形したものであり、パワーウィンドウ120に接続されている。ECU4100bは、ECU4100aから送信されバス200に流れているデータフレームを受信し、そのデータフレームに含まれるパワーウィンドウスイッチ110の状態に応じて、パワーウィンドウ120の開閉の制御を行う。またパワーウィンドウ120の開閉の制御状態に応じたデータフレームを周期的にバス200に送信する。また、ECU4100bは、ECU4100cが送信した車両の状態を示すデータフレームを受信し、車両の状態を把握し得る。この車載ネットワークシステム13においてはCANプロトコルに従って各ECUがフレームの授受を行う。各ECUは、受信したデータフレームが不正なデータフレームであるか否かを判断する機能を有している。
[4.2 ECU4100aの構成]
図26は、ECU4100aの構成図である。ECU4100aは、データフレーム送受信部101と、データフレーム生成部4102と、データフレーム生成ルール保持部4103と、不正データフレーム判断部4104と、受信データフレーム周期保持部4105と、データフレーム受信履歴保持部106と、データフレーム処理部107と、タイマ108と、センサ値取得部109と、MAC生成部3110と、MAC鍵保持部3111と、カウンタ保持部3112とを含んで構成される。ECU4100aの構成要素のうち、実施の形態1で示したECU100a或いは実施の形態3で示したECU3100aと同様の機能を有する構成要素は、同じ符号を付して説明を省略する。これらの各構成要素は、機能的な構成要素であり、その各機能は、ECU4100aにおける通信回路、メモリに格納された制御プログラムを実行するプロセッサ或いはデジタル回路等により実現される。なお、ECU4100b及びECU4100cもECU4100aと基本的に同様の構成を備える。但し、データフレーム生成ルール保持部4103、受信データフレーム周期保持部4105及びデータフレーム受信履歴保持部106の各保持内容はECU毎に異なる内容となり得る。また、データフレーム処理部107の処理内容は、ECU毎に異なる。
データフレーム生成部4102は、データフレーム生成ルール保持部4103に格納されたデータフレーム生成ルールに従い、データフレームを生成し、データフレーム送受信部101に送信する。データフレーム生成部4102は、タイマ108から現在時刻を取得する。更にデータフレーム生成部4102は、ECU4100aに接続された機器(パワーウィンドウスイッチ110)に関するデータ(センサ値)をセンサ値取得部109から取得する。ECU4100aからデータフレームを周期的に送信すべく、データフレーム生成部4102は、現在時刻とデータフレーム生成ルール保持部4103に格納される送信周期とによって、データフレームを生成するタイミングを決定し、データフレームの生成を周期的に行う。なお、データフレーム生成部4102によりデータフレームが生成されると、そのデータフレームはデータフレーム送受信部101に通知され、データフレーム送受信部101はそのデータフレームの送信を行う。更に、データフレーム生成部4102は、センサ値取得部109から取得されるセンサ値に変化があった時が、周期的なタイミングとは異なる時である場合には、イベントドリブンデータフレームの生成を行う。イベントドリブンデータフレームを生成する際には、データフレーム生成部4102は、データフレーム生成ルール保持部4103に格納されているメッセージID毎のデータフレーム生成ルールのMAC付与条件(後述)に基づいてMACをイベントドリブンデータフレームに含めるか否かを判断し、MACを含めると判断した場合にはイベントドリブンデータフレームフォーマットに従ってMACをデータフレームに含める。MACは、実施の形態3で説明したものと同様である。即ち、データフレーム生成部4102も実施の形態3で示したデータフレーム生成部3102と同様に、送信周期を示すデータフレーム生成ルールに適合しないタイミングでデータフレームの送信をする際においてデータフレーム中にMACという特定識別子を付与したデータフレームを生成する付与部としての機能を有する。データフレーム生成部4102によるデータフレームの生成の結果として、データフレーム送受信部101によりECU3100aからバス200に、周期的にデータフレームが送信され、更に、非周期的にイベントドリブンデータフレームが送信される。また、データフレーム生成部4102は、ECU4100aが送信を行う初回等(例えばエンジン始動時或いはその前、スリープ状態からの復帰時等)の周期的な送信の起点においてはデータフレームをイベントドリブンデータフレームの形式にして送信する。周期的な送信の起点においてイベントドリブンデータフレームではない周期的なデータフレームとしてしまうと、受信側で送信周期の条件に係る判断ができないからである。なお、初回等においてはイベントドリブンデータフレームにMACを含めることにしても良い。
データフレーム生成ルール保持部4103は、メモリ等の記憶媒体で実現され、データフレーム生成ルールとしてECU4100aが送信するメッセージID毎に周期的にデータフレームを送信するための送信周期と、MACの格納位置、データ長等を示すイベントドリブンデータフレームフォーマットと、イベントドリブンデータフレームにMACを付与する条件であるMAC付与条件とを格納している。MAC付与条件は、車両の状態がどのような場合にMACを付与すべきかについて定めている。図27は、データフレーム生成ルール保持部4103に格納されたデータフレーム生成ルールの一例を示している。ここでは、ECU4100aは、パワーウィンドウスイッチ110の状態を示すデータフレーム等、複数種類のデータフレーム(種類毎にメッセージIDで識別されるデータフレーム)を送信するものとする。図27の例では、ECU4100aから周期的に送信されるメッセージIDが0x100のデータフレームについては、送信周期が50msであり、この送信周期に従わずイベントドリブンデータフレームとして送信する場合には、車両の状態が走行中であるときに限ってMACを付与し、MACを付与する際にはデータフィールドの下位16ビットにMACを格納する必要があることを示している。また、メッセージIDが0x200のデータフレームについては、送信周期が100msであり、メッセージIDが0x200のイベントドリブンデータフレームは送信されないことを示している。また、ECU4100aから周期的に送信されるメッセージIDが0x300のデータフレームについては、送信周期が70msであり、この送信周期に従わずイベントドリブンデータフレームとして送信する場合には、車両の状態が走行中であるとき及び駐車中であるときにMACを付与し、MACを付与する際にはデータフィールドの下位16ビットにMACを格納する必要があることを示している。
不正データフレーム判断部4104は、受信したデータフレームが正当なデータフレームであるか(不正なデータフレームでないか)否かについて判断する。即ち、不正データフレーム判断部4104は、受信データフレーム周期保持部4105の周期ルール情報を参照して、メッセージID毎に予め定められた送信周期の条件を満たすか否かを確認し、送信周期の条件を満たす場合には正規のECUから送信されたデータフレーム(正当なデータフレーム)であると判断する。また、不正データフレーム判断部4104は、送信周期の条件を満たさないデータフレームであっても、車状態保持部4113に格納されている車両の状態が受信データフレーム周期保持部4105に格納されているMAC付与イベントドリブンデータフレーム受信条件を満たす場合には、イベントドリブンデータフレームフォーマットに従ってデータフレームにMACが含まれていることを検証することで不正なデータフレームか否かを判断する。MAC付与イベントドリブンデータフレーム受信条件は、車両の状態がどのような場合にMACが付与されたイベントドリブンデータフレームを受信するかを示す条件である。不正データフレーム判断部4104は、車両の状態がMAC付与イベントドリブンデータフレーム受信条件を満たす場合においてデータフィールド内のMACの検証に成功すれば、受信したデータフレームが正当であると判断し、検証に失敗すれば、受信したデータフレームが不正なデータフレームであると判断する。即ち、不正データフレーム判断部4104は、実施の形態3で示した不正データフレーム判断部3104と同様に、送信周期を示すデータフレーム生成ルールに呼応した周期ルール情報に適合しないデータフレームがデータフレーム送受信部101により受信された場合に、そのデータフレーム中のMACという特定識別子を検証する検証部としての機能を有する。MACの検証は、データフレームのメッセージID及びデータフィールドのデータ領域の内容をMAC生成部3110に通知することによってMAC生成部3110から得られる値と、データフィールド内のMACフィールドIの内容とが、一致するか否かを判別することで行われ、一致した場合に検証に成功する。不正データフレーム判断部4104は、受信したデータフレームが予め定められた送信周期の条件を満たさず、かつ、車両の状態がMAC付与イベントドリブンデータフレーム受信条件を満たさない場合には、MACの検証を行わないでイベントドリブンデータフレームを正当なデータフレームであると判断する。つまり、イベントドリブンデータフレームについて、車両の状態がMAC付与イベントドリブンデータフレーム受信条件を満たす場合にはMACを検証し、その他の場合には検証を省略している。但し、周期的な送信の初回等において送信側がイベントドリブンデータフレームにMACを含めることにする場合には、対応したMACの検証を受信側で行うと良い。なお、不正データフレーム判断部4104は、送信周期の条件を満たすデータフレームを受信した場合に、受信時刻をデータフレーム受信履歴保持部106に前回受信時刻として記録する。不正データフレーム判断部4104は、受信したデータフレームが正当なデータフレームであると判断した場合には、データフレーム処理部107にそのデータフレームの処理を行わせ、不正なデータフレームであると判断した場合には、そのデータフレームを破棄する(つまりそのデータフレームについてデータフレーム処理部107に処理させない)。
受信データフレーム周期保持部4105は、メモリ等の記憶媒体で実現され、周期ルール情報を保持する。この周期ルール情報は、自機(ECU4100a)が受信するデータフレームのメッセージID毎に、予め定められた送信周期と、データフレームの受信間隔について、送信周期の条件が満たされる(つまり正当な送信周期に合致する)と判断されるための許容範囲を示すマージンとを対応付けた情報である。周期ルール情報には、更に、送信周期の条件を満たさないイベントドリブンデータフレームのデータフィールド内に格納されるMACの格納位置、データ長等を示すイベントドリブンデータフレームフォーマットとMAC付与イベントドリブンデータフレーム受信条件とが含まれる。イベントドリブンデータフレームフォーマットは、不正データフレーム判断部4104が、イベントドリブンデータフレームについての正当性を検証(つまりMACを検証)する際に用いられる。また、MAC付与イベントドリブンデータフレーム受信条件は、車両の状態に係る条件であり、車両の状態がどの状態であればイベントドリブンデータフレームについてMACを検証すべきかを示す。なお、データフレームの受信側のECUの受信データフレーム周期保持部4105に保持される周期ルール情報における送信周期は、そのデータフレームの送信側のECUのデータフレーム生成ルール保持部4103に保持されるデータフレーム生成ルールにおける送信周期に呼応する。また、データフレームの受信側のECUの受信データフレーム周期保持部4105に保持される周期ルール情報におけるイベントドリブンデータフレームフォーマットは、そのデータフレームの送信側のECUのデータフレーム生成ルール保持部4103に保持されるデータフレーム生成ルールにおけるイベントドリブンデータフレームフォーマットに呼応する。また、データフレームの受信側のECUの受信データフレーム周期保持部4105に保持される周期ルール情報におけるMAC付与イベントドリブンデータフレーム受信条件は、そのデータフレームの送信側のECUのデータフレーム生成ルール保持部4103に保持されるデータフレーム生成ルールにおけるMAC付与条件に呼応する。図28は、ECU4100aから送信されたデータフレームを受信するECU4100bにおける受信データフレーム周期保持部4105に格納された周期ルール情報の一例を示す図である。同図の例では、メッセージIDが0x100のデータフレームの送信周期が50ms、メッセージIDが0x200のデータフレームの送信周期が100ms、メッセージIDが0x300のデータフレームの送信周期が70msであることを示している。同図の例では、マージンは、どのメッセージIDについても1msである。このマージンが1msであるため、メッセージIDが0x100のデータフレームについて送信周期が49ms以上51ms以下の範囲であれば、ECU4100bにおける不正データフレーム判断部4104は、送信周期の条件が満たされると判断することになる。また、図28の例でのイベントドリブンデータフレームフォーマットについては、メッセージIDが0x100及び0x300のイベントドリブンデータフレームは、データフィールドの下位16ビットにMACが付与されていることを示しており、メッセージIDが0x200のイベントドリブンデータフレームは送信されないことを示している。また、図28の例でのMAC付与イベントドリブンデータフレーム受信条件については、メッセージIDが0x100のイベントドリブンデータフレームは車両の状態が走行中であるときにMACの検証が必要であることを示し、メッセージIDが0x200のイベントドリブンデータフレームは送信されないのでMACの検証が不要であることを示し、メッセージIDが0x300のイベントドリブンデータフレームは車両の状態が走行中及び駐車中のいずれかの状態であるときにMACの検証が必要であることを示している。
車状態保持部4113は、メモリ等の記憶媒体で実現され、車両の状態を示す値が格納される。図29に車状態保持部4113に格納された車両の状態の一例を示している。この例では車両の状態が、走行中であることを示している。車状態保持部4113における車両の状態は、ECU4100cから送信されるデータフレーム(車両の状態を示すデータフレーム)が受信され、正当なデータフレームであると判断された場合に、データフレーム処理部107により、そのデータフレームの内容に応じて格納(更新)がなされる。
[4.3 ECU4100aにおけるデータフレームの送信処理]
以下、ECU4100aがデータフレームをバス200に送信し、ECU4100bがデータフレームをバス200から受信する例を想定して、ECU4100aにおけるデータフレームの送信処理を説明する。
図30は、ECU4100aにおけるデータフレームの送信処理を示すフローチャートである。
ECU4100aは、データフレーム生成ルールにおける送信周期に従った送信タイミング(前回の送信から送信周期が経過したタイミング)、或いは、センサ値取得部109からのセンサ値が変化したタイミングで、データフレームの生成が必要となり、図30の送信処理を開始する。送信処理においては、まず、ECU4100aは、送信するデータフレームがイベントドリブンデータフレームか周期的なデータフレームかを判断する(ステップS4101)。
ECU4100aは、ステップS4101において送信するデータフレームがデータフレーム生成ルールにおける送信周期に従っていないイベントドリブンデータフレームであると判断した場合には、ECU4100cからのデータフレームに対応して車状態保持部4113に格納された車両の状態がデータフレーム生成ルールのMAC付与条件を満たすか否かを判断する(ステップS4102)。例えば、MAC付与条件が、走行中及び駐車中のいずれかを示し、ECU4100aからのデータフレームで示された車両の状態(車状態保持部4113の車両の状態)が走行中を示す場合には、車両の状態がMAC付与条件を満たすと判断される。
ECU4100aは、ステップS4102において、車両の状態がMAC付与条件を満たすと判断した場合には、データフレーム生成ルールのイベントドリブンデータフレームフォーマットに従って、生成するデータフレームのデータフィールドのMACフィールドIに、MACを付与する(ステップS4103)。
ECU4100aは、ステップS4101において、送信するデータフレームが、データフレーム生成ルールにおける送信周期に従う周期的なデータフレームであると判断した場合(イベントドリブンデータフレームでないと判断した場合)には、ステップS4102、S4103での処理をスキップする。また、ECU4100aは、ステップS4102において、車両の状態がMAC付与条件を満たさないと判断した場合には、ステップS4103での処理をスキップする。
ECU4100aは、ステップS4103の後、或いはステップS4103での処理をスキップした後に、データフィールドのデータ領域にセンサ値取得部109から取得した最新のセンサ値をセットして、送信するデータフレームを生成し、バス200へと送信する(ステップS4104)。これにより、バス200上にデータフレームが流れ、ECU4100bに受信されるようになる。
なお、ECU4100bも図30に示すものと同様の送信処理を実行し得る。
[4.4 ECU4100bにおけるデータフレームの受信処理]
以下、ECU4100aがデータフレームをバス200に送信し、ECU4100bがデータフレームをバス200から受信する例を想定して、ECU4100bにおけるデータフレームの受信処理を説明する。
図31は、ECU4100bにおけるデータフレームの受信処理を示すフローチャートである。
ECU4100bは、バス200上に現れるデータフレームを受信する(ステップS4201)。なお、ECU4100bは、自機が受信すべきメッセージIDを含まないデータフレームであればそのデータフレームを破棄して処理を終了する。自機が受信すべきメッセージIDを含むデータフレームを受信した場合に、ECU4100bは、その受信が、保持している周期ルール情報で規定された送信周期範囲内か否かを判断する(ステップS4202)。なお、ECU4100bの不正データフレーム判断部4104は、受信したデータフレームの受信間隔(つまり送信周期)が規定の送信周期の範囲内であるか否か(つまり周期ルール情報で定められた送信周期の条件を満たすか否か)を、タイマ108、受信データフレーム周期保持部4105及びデータフレーム受信履歴保持部106から得られる情報に基づいて判断する。即ち、不正データフレーム判断部4104は、前回受信時刻と今回受信したデータフレームの受信時刻の差分(受信間隔)が、受信したデータフレームのメッセージIDに対応して定められた送信周期からマージンを引いた値以上であり、かつ、その送信周期にマージンを加えた値以下であるか否かを判断する。
ステップS4202において、データフレームの受信間隔が送信周期の範囲内である場合には、送信周期の条件が満たされたことになり、ECU4100bは、データフレーム受信履歴保持部106が保持するリストに、受信したデータフレームのメッセージIDに対応付けて、前回受信時刻として、そのデータフレームの受信時刻を記録(つまり前回受信時刻を更新)する(ステップS4204)。そして、ステップS4204での処理に続いて、ECU4100bの不正データフレーム判断部4104により、受信したデータフレームが正当なデータフレームであると判断され(ステップS4206)、データフレーム処理部107によりそのデータフレームに対応した処理がなされる。
また、ステップS4202において、データフレームの前回受信時刻と今回受信時刻の差分が送信周期の範囲内でない場合には、ECU4100bは、車両の状態がMAC付与イベントドリブンデータフレーム受信条件を満たすか否かを判断する(ステップS4203)。即ち、ECU4100bは、ECU4100cからのデータフレームに対応して車状態保持部4113に格納された車両の状態が、MAC付与イベントドリブンデータフレーム受信条件を満たすか否かを判断する。
ステップS4203において、車両の状態がMAC付与イベントドリブンデータフレーム受信条件を満たすと判断した場合には、ECU4100bは、受信データフレーム周期保持部4105に格納されているイベントドリブンデータフレームフォーマットに従ってデータフレームのデータフィールドをMACフィールドIとデータ領域とに分けて、データ領域及びメッセージIDから算出されるMACと、MACフィールドに含まれるMACとを比較することで、データフレームの正当性(MACが正しいこと)を検証する(ステップS4205)。算出されるMACとMACフィールドに含まれるMACとが一致すればMACの検証(つまりMACの正当性の検証)に成功し、受信したデータフレームが正当なデータフレームであると判断され(ステップS4206)、データフレーム処理部107によりそのデータフレームに対応した処理がなされる。
ステップS4205において、算出されるMACとMACフィールドに含まれるMACとが一致しない場合(MACの検証に成功しない場合)には、ECU4100bは、受信したデータフレームが不正なデータフレームであると判断してデータフレームを破棄する(ステップS4207)。従って、ECU4100bは、不正なECUにより送信された不正なデータフレームを処理しない。
また、ステップS4203において車両の状態がMAC付与イベントドリブンデータフレーム受信条件を満たさないと判断した場合には、ECU4100bは、受信したデータフレームが正当なデータフレームである判断し(ステップS4206)、データフレーム処理部107によりそのデータフレームに対応した処理を行う。
なお、ステップS4202において、データフレームの受信間隔(つまり送信周期)が規定の送信周期の範囲内か否かを判断するに際して、初回等といった前回受信時刻が保存されていない場合においては、受信したデータフレームをイベントドリブンデータフレームと扱い、MACの検証に成功したときにそのデータフレームの受信時刻を前回受信時刻として記録してからステップS4206の処理を行うことができる。この場合、送信側のECUでは初回等の周期的な送信の起点においては例外的にMACを付与したイベントドリブンデータフレームを送信する。また、各ECUが例えばスリープ状態等に入ってデータフレームの周期的な送信を休止する期間がある場合には、その後の周期的な送信の再開時にデータフレームをイベントドリブンデータフレームとして送信することとしても良い。この場合には、受信側のECUでは前回受信時刻から一定時間以上の間、送信側のECUがスリープ状態に入って周期的な送信が途切れた場合に、前回受信時刻を無効にして次回を初回と扱い、受信したデータフレームをイベントドリブンデータフレームと扱い、その正当性を判断することができる。
また、ECU4100aも図31に示すものと同様の受信処理を実行し得る。
[4.5 ECU4100cにおける車両の状態を示すデータフレームの送信処理]
以下、ECU4100cが車両の状態を取得して車両の状態を示すデータフレームをバス200に送信する送信処理を説明する。
図32は、ECU4100cにおける車両の状態を示すデータフレームの送信処理を示すフローチャートである。同図に示す処理は、ECU4100cにより繰り返し実行される。
ECU4100cは、接続されているギア4130の状態をセンサから取得する(ステップS4301)。
ECU4100cは、取得したギア4130の状態が前回取得した状態から変化したか否かを判断し(ステップS4302)、ギア4130の状態が変化した場合には、予め定められているギア4130の状態(例えば、ギアポジションについてパーキング、1速、2速等)と車両の状態(走行中、駐車中等)との対応関係に基づいて、車両の状態を特定してその車両の状態をデータフィールドの内容として含ませたデータフレームを生成し、イベントドリブンデータフレームとしてバス200へと送信する(ステップS4303)。
なお、ECU4100cは、イベントドリブンデータフレームにはMACを付与して送信しても良く、この場合には、ECU4100a及びECU4100bは、バス200から受信したイベントドリブンデータフレームのMACを検証して、検証に成功した場合に限って車両の状態を取得して車状態保持部4113に格納することになる。
[4.6 ECU4100bにおけるデータフレームの受信処理の変形例]
上述したデータフレームの受信処理(図31参照)においては、ステップS4203において車両の状態がMAC付与イベントドリブンデータフレーム受信条件を満たさない場合には、受信したデータフレームを正当であると判断することとしたが、車両の状態がMAC付与イベントドリブンデータフレーム受信条件を満たさない場合には、受信したデータフレームを不正なデータフレームであると判断して破棄するように変形しても良い。以下、受信処理の変形例について示す。
図33は、ECU4100bにおけるデータフレームの受信処理の変形例を示すフローチャートである。
ECU4100bは、バス200上に現れるデータフレームを受信する(ステップS4401)。ECU4100bは、自機が受信すべきメッセージIDを含むデータフレームを受信した場合に、その受信が、保持している周期ルール情報で規定された送信周期範囲内か否かを判断する(ステップS4402)。ステップS4402において、データフレームの受信間隔が送信周期の範囲内である場合には、ECU4100bは、データフレーム受信履歴保持部106が保持するリストに、受信したデータフレームのメッセージIDに対応付けて、前回受信時刻として、そのデータフレームの受信時刻を記録する(ステップS4404)。そして、ステップS4404での処理に続いて、ECU4100bの不正データフレーム判断部4104により、受信したデータフレームが正当なデータフレームであると判断され(ステップS4406)、データフレーム処理部107によりそのデータフレームに対応した処理がなされる。
また、ステップS4402においてデータフレームの受信が規定された送信周期範囲内でないと判断した場合には、ECU4100bは、車両の状態がMAC付与イベントドリブンデータフレーム受信条件を満たすか否かを判断する(ステップS4403)。
ステップS4403において、車両の状態がMAC付与イベントドリブンデータフレーム受信条件を満たすと判断した場合には、ECU4100bは、受信データフレーム周期保持部4105に格納されているイベントドリブンデータフレームフォーマットに基づいてデータ領域及びメッセージIDから算出されるMACと、MACフィールドに含まれるMACとを比較することで、データフレームの正当性(MACが正しいこと)を検証する(ステップS4405)。MACが正しいことを検証した場合にはECU4100bは、受信したデータフレームを正当なデータフレームであると判断し(ステップS4406)、データフレーム処理部107によりそのデータフレームに対応した処理を行う。
ステップS4403において車両の状態がMAC付与イベントドリブンデータフレーム受信条件を満たさないと判断した場合、及び、ステップS4405においてMACが正しいことの検証に成功しない場合には、ECU4100bは、受信したデータフレームが不正なデータフレームであると判断してデータフレームを破棄する(ステップS4407)。従って、ECU4100bは、不正なECUにより送信された不正なデータフレームを処理しない。
[4.7 実施の形態4の効果]
実施の形態4では、周期的に送信されるデータフレームに加えて、非周期的に送信されるイベントドリブンデータフレームが存在する場合でも、イベントドリブンデータフレーム内に特定識別子としてのMACを含めることによって、正当なイベントドリブンデータフレームであることを検証可能にする車載ネットワークシステム13を示した。即ち、車載ネットワークシステム13では、送信周期の条件により正当なデータフレームであるか否かを判別し、送信周期の条件によっては判別ができない場合に限って特定識別子により正当なデータフレームであるか否かを判別(つまり検証)するようにしている。これにより、送信周期の条件を満たさない正当なイベントドリブンデータフレームが不正なものとして誤検知されることが防止される。また、不正なECUがデータフレームを送信する場合には、送信周期の条件を満たさない可能性が高く、正しくMACを付与できないため、このデータフレームを受信したECUによって不正なデータフレームであると判断されるようになる。またイベントドリブンデータフレームについても、車両の状態に応じてMACを付与及び検証するか否かを切り替えることによって、効率的に不正なデータフレームの検知が可能となる。
(他の実施の形態等)
以上のように、本開示に係る技術の例示として実施の形態1〜4を説明した。しかしながら、本開示に係る技術は、これに限定されず、適宜、変更、置き換え、付加、省略等を行った実施の形態にも適用可能である。例えば、以下のような変形例も本開示の一実施態様に含まれる。
(1)上記実施の形態では、イベントドリブンデータフレームを送信するECUがイベントドリブンデータフレームにイベントドリブン識別フラグ、イベントカウンタ、或いは、所定演算の結果値であるMACという特定識別子を付与し、イベントドリブンデータフレームを受信するECUで特定識別子を検証する例を示したが、特定識別子は例示した以外の形式の情報であっても良い。特定識別子の検証は、例えば、データフレームの所定位置における所定データ長のデータ値が、固定値又は所定演算により導出される値と一致するか否かを検査し、一致すれば検証に成功したと扱い、一致しなければ検証に失敗したと扱う処理手順等である。なお、上記実施の形態ではデータフレームを受信するECUが、データフレームが送信周期に係るルール(条件)に適合しないイベントドリブンデータフレームであると判断した後に特定識別子の検証を行う例を示したが、データフレーム中の特定識別子の検証を、送信周期のルールに適合するか否かの判断より前に、或いは、その判断と同時に、行っても良い。
(2)上記実施の形態では、メッセージIDとデータ値とカウンタ値とに基づく演算によりMACを生成(計算)しているが、データフレームの一部の内容を反映して(つまり一部の内容に基づいて)MACを生成すれば良く、データ値のみからMACを生成することとしても良い。またカウンタ値のみからMACを生成するとしても良い。データフレームを受信するECUにおけるMACの検証方式は、データフレームを送信するECUがデータフレームにMACを付与する方式に対応したものであれば良い。また、MACを付与するデータフレームにおいてはデータフィールド内にデータ値及びMACの他に、一部又は全てのカウンタ値を含めても良い。また、上記実施の形態では、MAC算出のアルゴリズムをHMACとしているが、これCBC−MAC(Cipher Block Chaining Message Authentication Code)、CMAC(Cipher-based MAC)であっても良い。また、MAC計算に用いられるパディングについては、ゼロパディング、ISO10126、PKCS#1、PKCS#5、PKCS#7、その他、ブロックのデータサイズが計算に必要となるパディングの方式であれば何でも良い。
(3)上記実施の形態では、車両の状態として走行中及び駐車中という2つの状態について説明したが、停車中、高速走行中、低速走行中、バック中、エンジン停止等の各種状態を区別し、各種状態のうち、イベントドリブンデータフレームにMACを付与及び検証すべき条件としての車両の状態を定めても良い。例えば、不正なECUにより不正なデータフレームがバス上に送信された場合に不正であることを検知する必要性が比較的高いタイミングに対応するように、MACを付与及び検証すべき条件としての車両の状態を定めること等が有用となり得る。また、車両の状態は、必ずしもギア4130の状態に基づいて判断する必要はなく、車両内のいずれかのECUがいずれかの機器から取得したセンサ値等を含むデータフレームを送信し、他のECUがそのデータフレームを受信することによって車両の状態を判断することとしても良い。例えば、走行スピードに関する情報等を示すデータフレームをECU間で送受信することで、そのデータフレームを受信した各ECUがそのデータフレームに基づいて車両の状態として高速走行中であること等を判断できるようにしても良い。このため、例えば車両の状態示すデータフレームを送信するECU4100cが必ずしもギア4130に接続されている必要はない。受信したデータフレームに基づいて各ECUが同様に車両の状態を判断すれば、あるECUが、MAC付与が必要な車両の状態である場合にMACを付与してデータフレームを送信すると、受信側のECUはその車両の状態に基づいてMACの検証が必要であることを認識して検証を行い得る。
(4)上記実施の形態では、イベントドリブンデータフレームを識別するための特定識別子としてイベントドリブン識別フラグ、イベントカウンタ、MACを用いる例について、それぞれ説明したが、イベントドリブン識別フラグ、イベントカウンタ及びMACの2つ以上を組み合わせて用いることとしても良い。例えば、データフレームを受信したECUが、イベントドリブン識別フラグによってイベントドリブンデータフレームであることを判断してから、MACによってデータフレームの正当性を検証することとしても良い。なお、イベントドリブンデータフレームでないデータフレームについては特定識別子を付与しても構わないが、付与する必要はない。
(5)上記実施の形態では、各ECUはデータフレームを送信することとしたが、車載ネットワークシステムは、データフレームを受信するのみでデータフレームを送信しないECUを含んでいても良い。また逆に、車載ネットワークシステムは、データフレームを送信するのみで、データフレームを受信しないECUを含んでいても良い。また、各ECUは必ずしも周期的なデータフレームの送信をしなくても良く、車載ネットワークシステムは、イベントドリブンデータフレームのみを送信するECUを含んでいても良い。
(6)上記実施の形態では、ECUがパワーウィンドウスイッチ或いはパワーウィンドウに接続されている構成を例示したが、ECUは、パワーウィンドウスイッチ及びパワーウィンドウに限らず、その他の機器に接続されても良く、その機器の制御、その機器からの状態の取得等を行っても良い。
(7)上記実施の形態では、ECUは不正なデータフレームを検知した場合に、データフレームを破棄することとしたが、必ずしも破棄する必要はなく、不正なデータフレームを検知した場合に例えば不正を検知したことを知らせるデータフレームを送信しても良く、また例えばその送信するデータフレームには不正なデータフレームに関する情報を含めても良い。また、不正なデータフレームを検知した場合に、例えば、ログとして記録すること、或いは、車両の動作モードをより安全性を高める状態等に変更すること等の処理を行っても良い。
(8)上記実施の形態では、イベントドリブンデータフレームの送信毎、及び、受信毎に各ECUの該当の送信カウンタ或いは受信カウンタが1増加(インクリメント)されることとしたが、これらのカウンタの値に対する演算は、1増加には限定されない。これらのカウンタの値に対する演算は、データフレームの送信側と受信側で同様の計算ができ、送信カウンタと受信カウンタとが同期するような演算であれば良い。例えば、前回の演算結果を入力値として予め定められたアルゴリズムに基づいて特定された出力値を演算結果とする演算等である。即ち、ECUは、イベントドリブンデータフレームに前回送信の際に付与したカウンタ等の特定識別子(つまり前回の演算結果)に基づいて、所定の演算を行った結果として得られる値を、次に送信するイベントドリブンデータフレームに特定識別子として含ませることとしても良い。
(9)上記実施の形態で示したデータフレーム生成ルール及び周期ルール情報は、一例であり、例示した値と異なる値にしても良い。また、データフレーム生成ルール或いは周期ルール情報は、各ECUの出荷時に設定されても良いし、車載ネットワークシステムが搭載される車体の出荷時に設定されても良い。また、データフレーム生成ルール或いは周期ルール情報は、外部との通信に基づいて設定されても、各種記録媒体等を用いて設定されても、ツール類等によって設定されても良い。
(10)上記実施の形態では、各ECUが不正なデータフレームを検知する機能を有する例を示したが、その機能を1台以上の特定のECUのみが有することとしても良い。例えば車載ネットワークシステムが複数のバスそれぞれに接続されたECU群で構成されることとした場合において各バスを繋ぐゲートウェイとしてのECUにのみ不正なデータフレームを検知する機能を含ませても良い。また、例えば車載ネットワークシステムが、自動車のインパネ(インストルメントパネル)等に設けられて運転者に視認されるための情報を表示する液晶ディスプレイ(LCD:liquid crystal display)等の表示装置、運転者の操作を受け付ける入力手段等を備える一種のECUであるヘッドユニットを含む場合において、ヘッドユニットにのみ不正なデータフレームを検知する機能を含ませても良い。また、車載ネットワークシステムが、上述の不正なデータフレームを検知する機能を有し、バスを監視して不正なデータフレームを検知した場合にその旨を示すデータフレームの送信等を行う1台以上の特定のECUを含むこととしても良い。
(11)上記実施の形態では、MAC鍵をメッセージID毎に1つ保持している例を示したが、ECU毎に1つ保持することとしても良い。また、全てのECUが同じMAC鍵を保持している必要はない。また、同一のバスに接続された各ECUは、共通のMAC鍵を保持していても良い。
(12)上記実施の形態では、送信カウンタ或いは受信カウンタを送信或いは受信するデータフレームのメッセージID毎に1つ保持しているが、複数のメッセージIDに対して1つ保持することとしても良い。また、同一のバス上を流れる全てのデータフレームに対して、同じカウンタを使用しても良い。
(13)上記の実施の形態における、不正データフレーム判断部はCANコントローラと呼ばれるハードウェア、または、CANコントローラと接続して動作するマイコン上で動作するファームウェアに実装しても良い。また、MAC鍵保持部、カウンタ保持部、受信データフレーム周期保持部、データフレーム受信履歴保持部は、CANコントローラと呼ばれるハードウェアのレジスタ、または、CANコントローラと接続して動作するマイコン上で動作するファームウェアに格納されていても良い。
(14)上記実施の形態では、CANプロトコルにおけるデータフレームを標準IDフォーマットで記述しているが、拡張IDフォーマットであっても良い。拡張IDフォーマットの場合には、標準IDフォーマットにおけるID位置のベースIDと、拡張IDとを合わせて29ビットでID(メッセージID)を表すので、この29ビットのIDを上述の実施の形態におけるID(メッセージID)と扱えば良い。
(15)上記実施の形態で示したCANプロトコルは、TTCAN(Time-Triggered CAN)、CANFD(CAN with Flexible Data Rate)等の派生的なプロトコルをも包含する広義の意味を有するものであっても良い。
(16)上記実施の形態における各ECUは、例えば、プロセッサ、メモリ等のデジタル回路、アナログ回路、通信回路等を含む装置であることとしたが、ハードディスク装置、ディスプレイ、キーボード、マウス等の他のハードウェア構成要素を含んでいても良い。また、メモリに記憶された制御プログラムがプロセッサにより実行されてソフトウェア的に機能を実現する代わりに、専用のハードウェア(デジタル回路等)によりその機能を実現することとしても良い。
(17)上記実施の形態における各装置(ECU等)を構成する構成要素の一部または全部は、1個のシステムLSI(Large Scale Integration:大規模集積回路)から構成されているとしても良い。システムLSIは、複数の構成部を1個のチップ上に集積して製造された超多機能LSIであり、具体的には、マイクロプロセッサ、ROM、RAM等を含んで構成されるコンピュータシステムである。前記RAMには、コンピュータプログラムが記録されている。前記マイクロプロセッサが、前記コンピュータプログラムに従って動作することにより、システムLSIは、その機能を達成する。また、上記各装置を構成する構成要素の各部は、個別に1チップ化されていても良いし、一部又はすべてを含むように1チップ化されても良い。また、ここでは、システムLSIとしたが、集積度の違いにより、IC、LSI、スーパーLSI、ウルトラLSIと呼称されることもある。また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセッサで実現しても良い。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。さらには、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行っても良い。バイオ技術の適用等が可能性としてあり得る。
(18)上記各装置を構成する構成要素の一部または全部は、各装置に脱着可能なICカードまたは単体のモジュールから構成されているとしても良い。前記ICカードまたは前記モジュールは、マイクロプロセッサ、ROM、RAM等から構成されるコンピュータシステムである。前記ICカードまたは前記モジュールは、上記の超多機能LSIを含むとしても良い。マイクロプロセッサが、コンピュータプログラムに従って動作することにより、前記ICカードまたは前記モジュールは、その機能を達成する。このICカードまたはこのモジュールは、耐タンパ性を有するとしても良い。
(19)本開示の一態様としては、上記に示す不正検知方法であるとしても良い。また、この方法をコンピュータにより実現するコンピュータプログラムであるとしても良いし、前記コンピュータプログラムからなるデジタル信号であるとしても良い。また、本開示の一態様としては、前記コンピュータプログラムまたは前記デジタル信号をコンピュータで読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD−ROM、MO、DVD、DVD−ROM、DVD−RAM、BD(Blu-ray(登録商標)Disc)、半導体メモリ等に記録したものとしても良い。また、これらの記録媒体に記録されている前記デジタル信号であるとしても良い。また、本開示の一態様としては、前記コンピュータプログラムまたは前記デジタル信号を、電気通信回線、無線または有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしても良い。また、本開示の一態様としては、マイクロプロセッサとメモリを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記録しており、前記マイクロプロセッサは、前記コンピュータプログラムに従って動作するとしても良い。また、前記プログラムまたは前記デジタル信号を前記記録媒体に記録して移送することにより、または前記プログラムまたは前記デジタル信号を前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしても良い。
(20)上記実施の形態及び上記変形例で示した各構成要素及び機能を任意に組み合わせることで実現される形態も本開示の範囲に含まれる。
本開示は、車載ネットワークシステムにおいて不正なECUによりバス上に不正なメッセージの送信が行われたことを効率的かつ適切に検知するために利用可能である。
10,11,12,13 車載ネットワークシステム
100a,100b,2100a,2100b,3100a,3100b,4100a,4100b,4100c 電子制御ユニット(ECU)
101 データフレーム送受信部
102,2102,3102,4102 データフレーム生成部
103,2103,3103,4103 データフレーム生成ルール保持部
104,2104,3104,4104 不正データフレーム判断部
105,3105,4105 受信データフレーム周期保持部
106,2106 データフレーム受信履歴保持部
107 データフレーム処理部
108 タイマ
109 センサ値取得部
110 パワーウィンドウスイッチ
120 パワーウィンドウ
200 バス
3110 MAC生成部
3111 MAC鍵保持部
3112 カウンタ保持部
4113 車状態保持部
4130 ギア

Claims (14)

  1. CAN(Controller Area Network)プロトコルに従ってバスを介して通信する複数の電子制御ユニットを備える車載ネットワークシステムにおいて用いられる不正検知方法であって、
    前記バス上で送信されたデータフレームを受信する受信ステップと、
    前記受信ステップで送信周期に係る所定ルールに適合しないデータフレームが受信され、かつ、前記車載ネットワークシステムを搭載する車両の状態が所定の状態である場合に限って、当該データフレーム中の特定識別子を検証する検証ステップとを含み、
    前記検証ステップで、前記特定識別子についての前記検証が成功したときには、当該データフレームを正当なデータフレームとして検知し、
    前記検証ステップで、前記特定識別子についての前記検証が失敗したときには、当該データフレームを不正なデータフレームとして検知する
    不正検知方法。
  2. 前記特定識別子は、前記データフレームのデータフィールド内の所定位置に配置され当該データフレームの内容を反映するメッセージ認証コードであり、
    前記検証ステップでは、前記所定ルールに適合しない前記データフレーム中の前記所定位置のデータが前記メッセージ認証コードであるか否かを当該データフレームの内容に基づき判別する所定処理手順により、前記検証が行われる
    請求項1記載の不正検知方法。
  3. 前記特定識別子は、前記データフレームのデータフィールド内の所定位置に配置される所定値であり、
    前記検証ステップでは、前記所定ルールに適合しない前記データフレーム中の前記所定位置のデータの値が前記所定値と同一であるか否かを判別することにより前記検証が行われる
    請求項1記載の不正検知方法。
  4. 前記特定識別子は、前記データフレームのデータフィールド内の所定位置に配置されるカウンタ値であり、
    前記検証ステップでは、前記所定ルールに適合しない前記データフレーム中の前記所定位置のデータの値が、前記受信ステップで前記所定ルールに適合しないデータフレームが受信された回数を反映した前記カウンタ値と同一であるか否かを判別することにより前記検証が行われる
    請求項1記載の不正検知方法。
  5. 前記受信ステップでのデータフレームの受信は繰り返し行われ、
    前記特定識別子は、前記データフレームのデータフィールド内の所定位置に配置される、所定演算の結果値であり、
    前記検証ステップでは、前記受信ステップで受信された前記所定ルールに適合しない前記データフレーム中の前記所定位置のデータの値が、前記受信ステップで前回受信された前記特定識別子を含むデータフレーム中の当該特定識別子に基づいて前記所定演算を行った結果として得られる結果値と、同一であるか否かを判別することにより前記検証が行われる
    請求項1記載の不正検知方法。
  6. 前記受信ステップで前記所定ルールに適合するデータフレームが受信された場合には当該データフレームを正当なデータフレームとして検知する
    請求項1記載の不正検知方法。
  7. CAN(Controller Area Network)プロトコルに従ってバスを介して通信する複数の電子制御ユニットを備える車載ネットワークシステムにおいて不正検知の対象となるデータフレームを送信する不正検知方法であって、
    前記車載ネットワークシステムを搭載する車両の状態が所定の状態である場合に、送信周期に係る所定ルールに適合しないデータフレームを送信するときに限って、当該データフレーム中に特定識別子を付与する付与ステップと、
    前記付与ステップで付与された特定識別子を含み前記所定ルールに適合しないデータフレームを前記バスにより送信する送信ステップとを含む
    不正検知方法。
  8. 前記付与ステップでは、前記データフレームのデータフィールド内の所定位置に、前記特定識別子として当該データフレームの内容を反映するメッセージ認証コードを配置することにより前記特定識別子の前記付与が行われる
    請求項記載の不正検知方法。
  9. 前記付与ステップでは、前記データフレームのデータフィールド内の所定位置に、前記特定識別子として所定値を配置することにより前記特定識別子の前記付与が行われる
    請求項記載の不正検知方法。
  10. 前記付与ステップでは、前記データフレームのデータフィールド内の所定位置に、前記送信ステップで前記所定ルールに適合しないデータフレームが送信された回数を反映したカウンタ値を前記特定識別子として配置することにより前記特定識別子の前記付与が行われる
    請求項記載の不正検知方法。
  11. 前記所定ルールに適合しないデータフレームについての前記送信ステップでの送信及び前記付与ステップでの特定識別子の付与は繰り返し行われ、
    前記付与ステップでは、前記送信ステップでのデータフレームの送信に際して当該データフレームのデータフィールド内の所定位置に、前記送信ステップで前回送信された前記所定ルールに適合しないデータフレームに付与した特定識別子に基づいて所定演算を行った結果として得られる値を、特定識別子として配置することにより前記特定識別子の前記付与が行われる
    請求項記載の不正検知方法。
  12. CAN(Controller Area Network)プロトコルに従ってバスを介して通信する複数の電子制御ユニットを備える車載ネットワークシステムであって、
    前記車載ネットワークシステムを搭載する車両の状態が所定の状態である場合に、送信周期に係る所定ルールに適合しないデータフレームを送信するときに限って当該データフレーム中に特定識別子を付与する付与部と、前記付与部で付与された特定識別子を含み前記所定ルールに適合しないデータフレームを前記バスにより送信する送信部とを有する第1電子制御ユニットと、
    前記バス上で送信されたデータフレームを受信する受信部と、前記受信部により前記所定ルールに適合しないデータフレームが受信され、かつ、前記車載ネットワークシステムを搭載する車両の状態が所定の状態である場合に限って、当該データフレーム中の特定識別子を検証する検証部とを有し、前記検部は、前記特定識別子についての前記検証が成功したときには、当該データフレームを正当なデータフレームとして検知し、前記特定識別子についての前記検証が失敗したときには、当該データフレームを不正なデータフレームとして検知する第2電子制御ユニットとを備える
    車載ネットワークシステム。
  13. CAN(Controller Area Network)プロトコルに従ってバスを介して通信する電子制御ユニットであって、
    前記電子制御ユニットを含む車載ネットワークシステムを搭載する車両の状態が所定の状態である場合に、送信周期に係る所定ルールに適合しないデータフレームを送信するときに限って当該データフレーム中に特定識別子を付与する付与部と、
    前記付与部で付与された特定識別子を含み前記所定ルールに適合しないデータフレームを前記バスにより送信する送信部とを備える
    電子制御ユニット。
  14. CAN(Controller Area Network)プロトコルに従ってバスを介して通信する電子制御ユニットであって、
    前記バス上で送信されたデータフレームを受信する受信部と、
    前記受信部により送信周期に係る所定ルールに適合しないデータフレームが受信され、かつ、前記電子制御ユニットを含む車載ネットワークシステムを搭載する車両の状態が所定の状態である場合に限って、当該データフレーム中の特定識別子を検証する検証部とを備え、前記検部は、前記特定識別子についての前記検証が成功したときには、当該データフレームを正当なデータフレームとして検知し、前記特定識別子についての前記検証が失敗したときには、当該データフレームを不正なデータフレームとして検知する
    電子制御ユニット。
JP2016517804A 2014-05-08 2015-04-21 車載ネットワークシステム、電子制御ユニット及び不正検知方法 Active JP6417407B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201461990360P 2014-05-08 2014-05-08
US61/990,360 2014-05-08
JP2015032206 2015-02-20
JP2015032206 2015-02-20
PCT/JP2015/002161 WO2015170451A1 (ja) 2014-05-08 2015-04-21 車載ネットワークシステム、電子制御ユニット及び不正検知方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2018179730A Division JP6670354B2 (ja) 2014-05-08 2018-09-26 車載ネットワークシステム、電子制御ユニット及び不正検知方法

Publications (2)

Publication Number Publication Date
JPWO2015170451A1 JPWO2015170451A1 (ja) 2017-04-20
JP6417407B2 true JP6417407B2 (ja) 2018-11-07

Family

ID=54392311

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2016517804A Active JP6417407B2 (ja) 2014-05-08 2015-04-21 車載ネットワークシステム、電子制御ユニット及び不正検知方法
JP2018179730A Active JP6670354B2 (ja) 2014-05-08 2018-09-26 車載ネットワークシステム、電子制御ユニット及び不正検知方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2018179730A Active JP6670354B2 (ja) 2014-05-08 2018-09-26 車載ネットワークシステム、電子制御ユニット及び不正検知方法

Country Status (5)

Country Link
US (2) US10158717B2 (ja)
EP (1) EP3142289B1 (ja)
JP (2) JP6417407B2 (ja)
CN (2) CN105594156B (ja)
WO (1) WO2015170451A1 (ja)

Families Citing this family (72)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6967097B2 (ja) * 2014-05-08 2021-11-17 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 車載ネットワークシステム、電子制御ユニット及び不正検知方法
WO2015170451A1 (ja) * 2014-05-08 2015-11-12 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 車載ネットワークシステム、電子制御ユニット及び不正検知方法
EP3151462B1 (en) * 2014-05-29 2018-10-24 Panasonic Intellectual Property Management Co., Ltd. Transmission device, reception device, transmission method, and reception method
WO2016038816A1 (ja) * 2014-09-12 2016-03-17 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 車両用通信装置、車載ネットワークシステム及び車両用通信方法
KR101596753B1 (ko) * 2014-10-02 2016-02-23 현대자동차주식회사 메시지 인증 코드 분할을 통한 순차적 can 패킷 인증 방법 및 그 장치
KR101572935B1 (ko) * 2014-10-02 2015-12-11 현대자동차주식회사 메시지 인증 코드 혼합을 통한 can 패킷 인증 방법 및 그 장치
US11165851B2 (en) 2015-06-29 2021-11-02 Argus Cyber Security Ltd. System and method for providing security to a communication network
US10708293B2 (en) 2015-06-29 2020-07-07 Argus Cyber Security Ltd. System and method for time based anomaly detection in an in-vehicle communication network
US10798114B2 (en) 2015-06-29 2020-10-06 Argus Cyber Security Ltd. System and method for consistency based anomaly detection in an in-vehicle communication network
EP3326312A4 (en) * 2015-07-22 2019-01-09 Arilou Information Security Technologies Ltd. DATA SECURITY FOR VEHICLE COMMUNICATION BUS
JP6684690B2 (ja) * 2016-01-08 2020-04-22 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 不正検知方法、監視電子制御ユニット及び車載ネットワークシステム
US11044260B2 (en) 2016-04-01 2021-06-22 The Regents Of The University Of Michigan Fingerprinting electronic control units for vehicle intrusion detection
JP6846991B2 (ja) * 2016-07-05 2021-03-24 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 異常検知電子制御ユニット、車載ネットワークシステム及び異常検知方法
JP6433951B2 (ja) 2016-08-09 2018-12-05 東芝デジタルソリューションズ株式会社 ネットワーク監視装置およびプログラム
JP2018032977A (ja) * 2016-08-24 2018-03-01 株式会社オートネットワーク技術研究所 送信装置、通信システム、送信方法及びコンピュータプログラム
JP6805667B2 (ja) * 2016-09-15 2020-12-23 住友電気工業株式会社 検知装置、ゲートウェイ装置、検知方法および検知プログラム
CN110024324B (zh) 2016-09-23 2022-09-20 苹果公司 网络通信业务的安全传送装置
US10567400B2 (en) 2016-09-27 2020-02-18 Fujitsu Limited Attack detection device, attack detection method, and non-transitory computer-readable recording medium
JP6536537B2 (ja) * 2016-11-04 2019-07-03 トヨタ自動車株式会社 車載ネットワークシステム
US10630481B2 (en) 2016-11-07 2020-04-21 Ford Global Technologies, Llc Controller area network message authentication
JP6822090B2 (ja) * 2016-11-16 2021-01-27 トヨタ自動車株式会社 通信システム
JP6798280B2 (ja) 2016-11-29 2020-12-09 富士通株式会社 攻撃検知装置、攻撃検知方法、および、攻撃検知プログラム
US11588567B2 (en) * 2016-12-02 2023-02-21 Texas Instruments Incorporated Synchronizing vehicle devices over a controller area network
WO2018135098A1 (ja) * 2017-01-18 2018-07-26 パナソニックIpマネジメント株式会社 監視装置、監視方法およびコンピュータプログラム
JP6846706B2 (ja) * 2017-03-22 2021-03-24 パナソニックIpマネジメント株式会社 監視装置、監視方法およびコンピュータプログラム
JP6782444B2 (ja) * 2017-01-18 2020-11-11 パナソニックIpマネジメント株式会社 監視装置、監視方法およびコンピュータプログラム
JP6981755B2 (ja) * 2017-01-25 2021-12-17 トヨタ自動車株式会社 車載ネットワークシステム
US10382466B2 (en) * 2017-03-03 2019-08-13 Hitachi, Ltd. Cooperative cloud-edge vehicle anomaly detection
JP6956624B2 (ja) * 2017-03-13 2021-11-02 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 情報処理方法、情報処理システム、及びプログラム
JP2018157463A (ja) * 2017-03-21 2018-10-04 オムロンオートモーティブエレクトロニクス株式会社 車載通信システム、通信管理装置、車両制御装置
JP2018160851A (ja) * 2017-03-23 2018-10-11 株式会社オートネットワーク技術研究所 車載通信装置、コンピュータプログラム及びメッセージ判定方法
WO2018198545A1 (ja) * 2017-04-26 2018-11-01 ボッシュ株式会社 Ecu
EP3678903A4 (en) * 2017-05-10 2021-06-30 OSR Enterprises AG SECURITY APPLICATION IN A SYSTEM INCLUDING A MULTIPLICITY OF END UNITS
DE112018002549T5 (de) * 2017-05-18 2020-04-09 Bosch Corporation Elektronisches Steuergerät
KR102464430B1 (ko) * 2017-06-27 2022-11-07 현대자동차주식회사 차량 전자 모듈의 통신방법 및 이를 포함하는 차량
JP6891671B2 (ja) 2017-06-29 2021-06-18 富士通株式会社 攻撃検知装置および攻撃検知方法
JP7020990B2 (ja) * 2017-07-19 2022-02-16 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 車載中継装置、中継方法及びプログラム
SG10201705960QA (en) * 2017-07-20 2019-02-27 Huawei Int Pte Ltd System and method for managing secure communications between modules in a controller area network
WO2019021403A1 (ja) 2017-07-26 2019-01-31 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 制御ネットワークシステム、車両遠隔制御システム及び車載中継装置
WO2019026077A1 (en) 2017-08-02 2019-02-07 Enigmatos Ltd. SYSTEM AND METHOD FOR PREVENTING MALBUSED CAN BUS ATTACKS
KR102272081B1 (ko) * 2017-09-25 2021-07-02 현대모비스 주식회사 자동차 네트워크의 데이터 통신방법
JP7003544B2 (ja) * 2017-09-29 2022-01-20 株式会社デンソー 異常検知装置、異常検知方法、プログラム及び通信システム
CN109696900A (zh) * 2017-10-23 2019-04-30 北京长城华冠汽车科技股份有限公司 一种测试汽车控制器局域网络报文发送周期的***和方法
WO2019142602A1 (ja) * 2018-01-17 2019-07-25 日本電信電話株式会社 検知装置、その方法、及びプログラム
JP7172043B2 (ja) 2018-01-19 2022-11-16 富士通株式会社 攻撃検知装置および攻撃検知方法
US11178158B2 (en) * 2018-01-29 2021-11-16 Nagravision S.A. Secure communication between in-vehicle electronic control units
JP7119537B2 (ja) * 2018-04-24 2022-08-17 日本電信電話株式会社 検知システムおよび検知方法
JP7046700B2 (ja) * 2018-04-25 2022-04-04 矢崎総業株式会社 通信システム
WO2019225259A1 (ja) * 2018-05-23 2019-11-28 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 通信制御装置、不正検知電子制御ユニット、モビリティネットワークシステム、通信制御方法、不正検知方法およびプログラム
JP7178408B2 (ja) * 2018-05-23 2022-11-25 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 異常検出装置、異常検出システム及び制御方法
JP7251545B2 (ja) * 2018-06-14 2023-04-04 住友電気工業株式会社 非正規車載装置の検出システム、ハーネスシステム、検出装置、及びコンピュータプログラム
US11711384B2 (en) 2018-08-27 2023-07-25 Lear Corporation Method and system for detecting message injection anomalies
CN109286547B (zh) * 2018-08-30 2021-03-23 百度在线网络技术(北京)有限公司 报文处理方法、装置、电子控制单元及可读存储介质
JP7016783B2 (ja) * 2018-10-17 2022-02-07 日立Astemo株式会社 情報処理装置、管理装置
JPWO2020079874A1 (ja) * 2018-10-18 2021-09-09 住友電気工業株式会社 検知装置、ゲートウェイ装置、検知方法および検知プログラム
RU2726884C1 (ru) 2019-02-07 2020-07-16 Акционерное общество "Лаборатория Касперского" Система и способ контроля доступа к кибер-физической системе
JP7147635B2 (ja) * 2019-03-05 2022-10-05 トヨタ自動車株式会社 不正送信データ検知装置
CN111835627B (zh) * 2019-04-23 2022-04-26 华为技术有限公司 车载网关的通信方法、车载网关及智能车辆
JP7046869B2 (ja) * 2019-06-12 2022-04-04 矢崎総業株式会社 占有率算出装置及び占有率算出方法
JP2021005821A (ja) * 2019-06-27 2021-01-14 矢崎総業株式会社 異常検出装置
WO2021002010A1 (ja) * 2019-07-04 2021-01-07 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 不正フレーム検知装置および不正フレーム検知方法
US11546353B2 (en) * 2019-07-18 2023-01-03 Toyota Motor North America, Inc. Detection of malicious activity on CAN bus
JP7011637B2 (ja) * 2019-10-17 2022-01-26 本田技研工業株式会社 不正信号検出装置
CN117879943A (zh) * 2019-11-28 2024-04-12 住友电气工业株式会社 检测装置、车辆、检测方法及记录介质
JP7247875B2 (ja) * 2019-12-06 2023-03-29 株式会社オートネットワーク技術研究所 判定装置、判定プログラム及び判定方法
CN111641948B (zh) * 2020-04-30 2023-07-18 深圳精匠云创科技有限公司 边缘计算接入时的注册方法及边缘计算节点装置
US11677582B2 (en) 2020-12-09 2023-06-13 Raytheon Company Detecting anomalies on a controller area network bus
CN116530060A (zh) * 2020-12-25 2023-08-01 住友电气工业株式会社 检测装置、检测方法及检测程序
US11995183B2 (en) * 2021-06-24 2024-05-28 Intel Corporation Context-based response to attacks against autonomous systems
WO2022270240A1 (ja) * 2021-06-24 2022-12-29 住友電気工業株式会社 車載装置、検知装置、送信制御方法および検知方法
US20230046788A1 (en) * 2021-08-16 2023-02-16 Capital One Services, Llc Systems and methods for resetting an authentication counter
CN115277219A (zh) * 2022-07-29 2022-11-01 中国第一汽车股份有限公司 消息加密方法、解密方法、装置及存储介质

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003324459A (ja) * 2002-04-26 2003-11-14 Sumitomo Electric Ind Ltd 通信システム
US8903385B2 (en) * 2003-05-29 2014-12-02 Kyocera Corporation Wireless transmission system
WO2007032488A1 (ja) * 2005-09-16 2007-03-22 Autonetworks Technologies, Ltd. 車載負荷駆動制御システム
JP4701977B2 (ja) * 2005-10-06 2011-06-15 株式会社デンソー 車載ネットワークの診断システム及び車載制御装置
US8448234B2 (en) * 2007-02-15 2013-05-21 Marvell Israel (M.I.S.L) Ltd. Method and apparatus for deep packet inspection for network intrusion detection
JP4826609B2 (ja) * 2008-08-29 2011-11-30 トヨタ自動車株式会社 車両用異常解析システム及び車両用異常解析方法
CN101540094B (zh) * 2009-04-27 2011-12-07 天泽信息产业股份有限公司 车载无线传感器***及其检测方法
CA2754159C (en) * 2009-08-11 2012-05-15 Certusview Technologies, Llc Systems and methods for complex event processing of vehicle-related information
JP2011250110A (ja) * 2010-05-26 2011-12-08 Denso Corp 電子制御装置
FR2962241A1 (fr) * 2010-06-30 2012-01-06 France Telecom Verification de la mise en fonction d'un equipement embarque dans un vehicule
JP5267598B2 (ja) * 2011-02-25 2013-08-21 トヨタ自動車株式会社 車両制御装置のデータ書き換え支援システム及びデータ書き換え支援方法
US8723687B2 (en) * 2011-03-31 2014-05-13 Alex Thomas Advanced vehicle traffic management and control
US9648107B1 (en) * 2011-04-22 2017-05-09 Angel A. Penilla Methods and cloud systems for using connected object state data for informing and alerting connected vehicle drivers of state changes
JP5479408B2 (ja) * 2011-07-06 2014-04-23 日立オートモティブシステムズ株式会社 車載ネットワークシステム
JP5899739B2 (ja) * 2011-09-16 2016-04-06 株式会社リコー 配線基板
JP5770602B2 (ja) 2011-10-31 2015-08-26 トヨタ自動車株式会社 通信システムにおけるメッセージ認証方法および通信システム
WO2013094072A1 (ja) * 2011-12-22 2013-06-27 トヨタ自動車 株式会社 通信システム及び通信方法
CN102638562A (zh) * 2012-02-01 2012-08-15 浙江大学 工程机械车辆联网应用的车载终端通信方法
JP5637190B2 (ja) * 2012-07-27 2014-12-10 トヨタ自動車株式会社 通信システム及び通信方法
JP5919205B2 (ja) 2013-01-28 2016-05-18 日立オートモティブシステムズ株式会社 ネットワーク装置およびデータ送受信システム
CN103475523B (zh) * 2013-09-10 2016-04-27 浙江大学 带总线错误解析功能的can总线分析***
US20150244743A1 (en) * 2014-02-21 2015-08-27 Airwatch Llc Risk assessment for managed client devices
US9288048B2 (en) * 2013-09-24 2016-03-15 The Regents Of The University Of Michigan Real-time frame authentication using ID anonymization in automotive networks
US9301082B2 (en) * 2013-12-06 2016-03-29 Apple Inc. Mobile device sensor data subscribing and sharing
WO2015170451A1 (ja) * 2014-05-08 2015-11-12 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 車載ネットワークシステム、電子制御ユニット及び不正検知方法

Also Published As

Publication number Publication date
US10462226B2 (en) 2019-10-29
US10158717B2 (en) 2018-12-18
CN105594156B (zh) 2020-01-21
EP3142289A1 (en) 2017-03-15
WO2015170451A1 (ja) 2015-11-12
EP3142289A4 (en) 2017-05-17
US20160205194A1 (en) 2016-07-14
CN111181732A (zh) 2020-05-19
JP2019024227A (ja) 2019-02-14
CN105594156A (zh) 2016-05-18
JPWO2015170451A1 (ja) 2017-04-20
JP6670354B2 (ja) 2020-03-18
US20190068715A1 (en) 2019-02-28
EP3142289B1 (en) 2020-10-07

Similar Documents

Publication Publication Date Title
JP6670354B2 (ja) 車載ネットワークシステム、電子制御ユニット及び不正検知方法
EP3132979B1 (en) Vehicle-mounted network system, invalidity detection electronic control unit, and invalidity detection method
JP7059413B2 (ja) 電子制御ユニット、車載ネットワークシステム及び車両用通信方法
JP6873198B2 (ja) 不正検知ルール更新方法、不正検知電子制御ユニット及び車載ネットワークシステム
JP6487406B2 (ja) ネットワーク通信システム
JP6306206B2 (ja) 通信制御装置及び通信システム
US20150172306A1 (en) Method and apparatus for enhancing security in an in-vehicle communication network
WO2015159520A1 (ja) 車載ネットワークシステム、不正検知電子制御ユニット及び不正検知方法
JP6967097B2 (ja) 車載ネットワークシステム、電子制御ユニット及び不正検知方法
JP6651662B2 (ja) 不正検知電子制御ユニット及び不正検知方法
JP6698190B2 (ja) 不正対処方法、不正検知電子制御ユニット、および、ネットワーク通信システム
JP2020102771A (ja) 電子制御装置、電子制御装置の制御方法及びプログラム
JP2018032903A (ja) データ通信装置、データ通信プログラム、およびデータ通信方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20171109

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180821

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180926

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20181005

R150 Certificate of patent or registration of utility model

Ref document number: 6417407

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150