JPWO2020090976A1 - 不正制御防止システム、監視装置、および、不正制御防止方法 - Google Patents

不正制御防止システム、監視装置、および、不正制御防止方法 Download PDF

Info

Publication number
JPWO2020090976A1
JPWO2020090976A1 JP2020554037A JP2020554037A JPWO2020090976A1 JP WO2020090976 A1 JPWO2020090976 A1 JP WO2020090976A1 JP 2020554037 A JP2020554037 A JP 2020554037A JP 2020554037 A JP2020554037 A JP 2020554037A JP WO2020090976 A1 JPWO2020090976 A1 JP WO2020090976A1
Authority
JP
Japan
Prior art keywords
frame
error
branch
invalidation
transmission
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2020554037A
Other languages
English (en)
Other versions
JP7340537B2 (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 JPWO2020090976A1 publication Critical patent/JPWO2020090976A1/ja
Application granted granted Critical
Publication of JP7340537B2 publication Critical patent/JP7340537B2/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
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1416Event detection, e.g. attack signature detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/20Arrangements for detecting or preventing errors in the information received using signal quality detector
    • H04L1/201Frame classification, e.g. bad, good or erased
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40052High-speed IEEE 1394 serial bus
    • H04L12/40104Security; Encryption; Content protection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/44Star or tree networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0281Proxies
    • 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
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • 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
    • H04L63/108Network architectures or network communication protocols for network security for controlling access to devices or network resources when the policy decisions are valid for a limited amount of time
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L2001/0092Error control systems characterised by the topology of the transmission link
    • H04L2001/0093Point-to-multipoint
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L2012/40208Bus networks characterized by the use of a particular bus standard
    • H04L2012/40241Flexray

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Small-Scale Networks (AREA)

Abstract

タイムトリガー型通信方式の車載ネットワークの不正制御防止システムにおいて、第1のエラー監視装置は、車載ネットワークに流れるフレームを受信する第1のフレーム送受信部と、第1のフレーム送受信部が受信したフレームにエラーが発生したことを検知した場合、フレームでエラーが発生したことを通知するためのエラー通知フレームを送信させる第1のエラー検知部を有し、第2のエラー監視装置はそれぞれ、エラー通知フレームを受信する第2のフレーム送受信部と、受信したエラー通知フレームに含まれるエラーの発生した前記フレームに関して自ブランチにおけるエラーが検知されない場合、前記フレームを無効化対象フレームとして、以降の当該フレームの受信を無効化する無効化モードへ1以上の第2のエラー監視装置を遷移させる第2のエラー検知部とを有する。

Description

本開示は、車載ネットワークにおける不正フレームの送信を無効化する不正制御防止システム、監視装置、および、不正制御防止方法に関する。
近年、自動車の中のシステムには、電子制御ユニット(以下、ECU)と呼ばれる装置が多数配置されている。これらのECUをつなぐネットワークは車載ネットワークと呼ばれる。
車載ネットワークには、多数の規格が存在する。その中でも、現在、主流となっているController Area Network(以下CAN)よりも高速、高信頼プロトコルとして設計されたFlexRayという規格が存在する。
FlexRayでは、2本のより線の電圧差により“0”の値と“1”の値を表す。バスに接続されているECUはノードと呼ばれ、フレームと呼ばれるメッセージを送受信する。FlexRayは、Time Division Multiple Access(以下TDMA)方式であり、各ノードは予め決められたタイミングでフレームを送信する。
FlexRayでは、最大の時間単位であるサイクルが存在し、各ノードはグローバルタイムを同期している。サイクルは「静的セグメント」、「動的セグメント」、「シンボルウィンドウ」および「ネットワークアイドルタイム」の4つのセグメントから構成される。動的セグメントとシンボルウィンドウとはオプションである。静的セグメントと動的セグメントとは、さらにスロットと呼ばれる1つのフレームを送信することができる時間から構成される。各ノードは、静的セグメントと動的セグメントとにおいて、予め規定されたタイミングでフレームを送信する。
FlexRayでは、送信先および送信元を示す識別子は存在しない。送信ノードは、フレーム毎に予め定められた送信タイミングであるスロット番号に基づいて、フレームを送信する。各受信ノードは予め決められたスロット番号のフレームのみを受信する。なお、同一のスロット番号に基づいて送信されるフレームであっても、サイクルによって異なるフレームの通信を実現する「サイクルマルチプレキシング」と呼ばれる方法を用いることで、同一のスロット番号で異なるタイミングで送信することができる。
このように、FlexRayでは、タイムスロットに基づくタイムトリガー型の通信方式が採用されている。
また、FlexRayでは、CANのように全てのノードが1つのバスに接続されるバス型ネットワークトポロジに限らず、スターカプラを介したスター型のネットワークトポロジ、または、バス型とスター型のハイブリッド型のネットワークトポロジで構成することが可能である。
例えば、スター型のネットワークトポロジでは、ブランチと呼ばれる複数のバスにおいて、スターカプラが各ブランチの信号をルーティングすることで、ネットワークの同期を実現している。スターカプラは、各ブランチの信号の中で最も先に送信された信号をルーティングする仕様になっている。このため、あるブランチ内に不正なECUが存在し、正規なECUによる正規のフレームの送信より先に、不正なECUが不正なフレームを送信した場合には、スターカプラの仕様により、正規のフレームが無視され、不正なフレームがルーティングされてしまうことになる。そして、不正なフレームがルーティングされてしまうことにより、車両の不正制御を引き起こすことが可能となってしまう。
このような状況において、例えば特許文献1には、車載ネットワークの不正フレームを検知する不正検知方法とその防止方法とが提案されている。より具体的には、特許文献1では、フレームがあらかじめ規定された通信間隔で送信されているか否かを検出し、規定された通信間隔から外れるフレームを不正と判断することで、不正フレームによる制御を防止する車載ネットワーク監視装置について開示されている。
特許第5664799号公報
しかしながら、タイムトリガー型の通信方式を採用しているFlexRayでは、予め規定された通信間隔で通信を行うため、ある特定の識別子をもつフレームの受信間隔は常に一定となる。このため、特許文献1に開示されるような不正検知手法では、FlexRayの車載ネットワークに適用することはできない。
本開示は、上述の事情を鑑みてなされたもので、車載ネットワークにおける不正フレームの送信を無効化することができる不正制御防止システム、監視装置、および、不正制御防止方法を提供する。
上記課題を解決するために、本開示の一態様に係る不正制御防止システムは、タイムスロットに基づくタイムトリガー型の通信方式である車載ネットワークにおける不正制御防止システムであって、前記車載ネットワークには、それぞれ所定のタイムスロット内でフレームを送受信する1以上の電子制御装置がブランチごとに接続されており、前記不正制御防止システムは、前記ブランチごとにエラー監視装置を備え、前記エラー監視装置のうちの第1のエラー監視装置は、前記車載ネットワークに流れるフレームを受信する第1のフレーム送受信部と、前記第1のフレーム送受信部が受信したフレームにエラーが発生したかどうか検知し、前記第1のフレーム送受信部が受信したフレームにエラーが発生したことを検知した場合、エラーの発生した前記フレームの種類を識別可能な情報を含み、前記フレームでエラーが発生したことを通知するためのエラー通知フレームを、前記第1のフレーム送受信部に送信させる第1のエラー検知部と、を有し、前記エラー監視装置のうちの前記第1のエラー監視装置と異なる1以上の第2のエラー監視装置はそれぞれ、前記エラー通知フレームを受信する第2のフレーム送受信部と、受信した前記エラー通知フレームに含まれるエラーの発生した前記フレームに関して自ブランチにおけるエラーが検知されない場合、前記フレームを無効化対象フレームとして、以降の前記フレームの受信を無効化する無効化モードへ前記1以上の第2のエラー監視装置を遷移させる第2のエラー検知部とを有する。
また、上記課題を解決するために、本開示の一態様に係る監視装置はタイムスロットに基づくタイムトリガー型の通信方式である車載ネットワークにおける監視装置であって、前記車載ネットワークには、それぞれ所定のタイムスロット内でフレームを送受信する1以上の電子制御装置がブランチごとに接続されており、前記監視装置は、前記ブランチごとに設けられ、前記フレームでエラーが発生したことを通知するために送信されたエラー通知フレームであって前記車載ネットワークに流れるフレームにエラーが発生した場合にエラーの発生した前記フレームの種類を識別可能な情報を含むエラー通知フレームを受信するフレーム送受信部と、受信した前記エラー通知フレームに含まれるエラーの発生した前記フレームに関して自ブランチにおけるエラーが検知されない場合、前記フレームを無効化対象フレームとして、以降の前記フレームの受信を無効化する無効化モードへ前記監視装置を遷移させるエラー検知部とを備える。
また、上記課題を解決するために、本開示の一態様に係る不正制御防止方法は、タイムスロットに基づくタイムトリガー型の通信方式である車載ネットワークにおける不正制御防止システムにおける不正制御防止方法であって、前記車載ネットワークには、それぞれ所定のタイムスロット内でフレームを送受信する1以上の電子制御装置がブランチごとに接続されており、前記不正制御防止システムは、前記ブランチごとにエラー監視装置を備え、前記エラー監視装置のうちの第1のエラー監視装置が、前記車載ネットワークに流れるフレームを受信する第1のフレーム送受信ステップと、前記第1のエラー監視装置が、前記第1のフレーム送受信ステップにおいて受信したフレームにエラーが発生したかどうか検知し、前記第1のフレーム送受信ステップにおいて受信したフレームにエラーが発生したことを検知した場合、エラーの発生した前記フレームの種類を識別可能な情報を含み、前記フレームでエラーが発生したことを通知するためのエラー通知フレームを、前記第1のフレーム送受信ステップにおいて送信させる第1のエラー検知ステップと、を含み、前記エラー監視装置のうちの前記第1のエラー監視装置と異なる1以上の第2のエラー監視装置のそれぞれが、前記エラー通知フレームを受信する第2のフレーム送受信ステップと、前記1以上の第2のエラー監視装置のそれぞれが、前記第2のフレーム送受信ステップにおいて受信した前記エラー通知フレームに含まれるエラーの発生した前記フレームに関して、自ブランチにおけるエラーが検知されない場合、前記フレームを無効化対象フレームとして、以降の前記フレームの受信を無効化する無効化モードへ前記1以上の第2のエラー監視装置を遷移させる第2のエラー検知ステップとを含む。
なお、これらの全般的または具体的な態様は、装置、システム、集積回路、コンピュータプログラムまたはコンピュータで読み取り可能なCD−ROMなどの記録媒体で実現されてもよく、装置、システム、方法、コンピュータプログラムおよび記録媒体の任意な組み合わせで実現されてもよい。
本開示の不正制御防止システム等によれば、車載ネットワークにおける不正フレームの送信を無効化することができる。これにより、車載ネットワークシステム全体として、安全な状態を維持することができる。
図1は、実施の形態に係る車載ネットワークシステムの全体構成を示す図である。 図2は、実施の形態に係るFlexRay通信のサイクルを示す図である。 図3は、実施の形態に係るFlexRayプロトコルのフレームフォーマットを示す図である。 図4は、実施の形態に係るECUの構成を示す図である。 図5は、実施の形態に係る監視ECUの構成の一例を示す図である。 図6は、実施の形態に係るスターカプラの構成を示す図である。 図7は、実施の形態に係る通信用設定パラメータの一例を示す図である。 図8は、実施の形態に係る静的フレームの正規IDリストの一例を示す図である。 図9は、実施の形態に係る動的フレームの正規IDリストの一例を示す図である。 図10は、実施の形態に係るブランチ状態の一例を示す図である。 図11Aは、実施の形態に係るエラー通知フレームの一例を示す図である。 図11Bは、実施の形態に係るエラー通知異常フレームの一例を示す図である。 図12は、実施の形態に係る監視ECUの処理を示すフローチャートである。 図13Aは、本実施の形態に係るECUが攻撃者に制御を奪われたときに監視ECUが無効化モードに遷移するまでの動作シーケンスの一例を示す図である。 図13Bは、本実施の形態に係るECUが攻撃者に制御を奪われたときに監視ECUが無効化モードに遷移した後の動作シーケンスの一例を示す図である。 図14Aは、実施の形態に係るECUが攻撃者に制御を奪われたときに監視ECUが無効化モード変更フレームを送信するまでの動作シーケンスの一例を示す図である。 図14Bは、実施の形態に係る監視ECUが送信する無効化モード変更フレームが偽装されたときの動作シーケンスの一例を示す図である。 図15は、実施の形態の変形例に係る無効化切り替えフレームの一例を示す図である。 図16Aは、実施の形態の変形例に係る不正制御防止システムが、各ブランチを無効化モードに順次切り替えることで不正なECUの存在するブランチを特定する動作シーケンスの一例を示す図である。 図16Bは、実施の形態の変形例に係る不正制御防止システムが、各ブランチを無効化モードに順次切り替えることで不正なECUの存在するブランチを特定する動作シーケンスの一例を示す図である。 図16Cは、実施の形態の変形例に係る不正制御防止システムが、各ブランチを無効化モードに順次切り替えることで不正なECUの存在するブランチを特定する動作シーケンスの一例を示す図である。 図16Dは、実施の形態の変形例に係る不正制御防止システムが、各ブランチを無効化モードに順次切り替えることで不正なECUの存在するブランチを特定する動作シーケンスの一例を示す図である。
本開示の一態様に係る不正制御防止システムは、タイムスロットに基づくタイムトリガー型の通信方式である車載ネットワークにおける不正制御防止システムであって、前記車載ネットワークには、それぞれ所定のタイムスロット内でフレームを送受信する1以上の電子制御装置がブランチごとに接続されており、前記不正制御防止システムは、前記ブランチごとにエラー監視装置を備え、前記エラー監視装置のうちの第1のエラー監視装置は、前記車載ネットワークに流れるフレームを受信する第1のフレーム送受信部と、前記第1のフレーム送受信部が受信したフレームにエラーが発生したかどうか検知し、前記第1のフレーム送受信部が受信したフレームにエラーが発生したことを検知した場合、エラーの発生した前記フレームの種類を識別可能な情報を含み、前記フレームでエラーが発生したことを通知するためのエラー通知フレームを、前記第1のフレーム送受信部に送信させる第1のエラー検知部と、を有し、前記エラー監視装置のうちの前記第1のエラー監視装置と異なる1以上の第2のエラー監視装置はそれぞれ、前記エラー通知フレームを受信する第2のフレーム送受信部と、受信した前記エラー通知フレームに含まれるエラーの発生した前記フレームに関して自ブランチにおけるエラーが検知されない場合、前記フレームを無効化対象フレームとして、以降の前記フレームの受信を無効化する無効化モードへ前記1以上の第2のエラー監視装置を遷移させる第2のエラー検知部とを有する。
これにより、タイムスロットに基づくタイムトリガー型の通信方式である車載ネットワークにおける不正フレームの送信を無効化することができる。より具体的には、本開示の不正制御防止システム等は、車載ネットワークにおけるエラー発生状況の不整合に基づいて、不正なフレームが送信されていることを検知する。そして、不正なフレームが送信されていることを検知した場合に、以降の不正なフレームの受信を無効化することで、不正なフレームの送信を無効化する。このように、フェールセーフ機能を実現することで車載ネットワークの安全性を高めることができる。
また、前記1以上の第2のエラー監視装置それぞれでは、前記第2のフレーム送受信部は、前記車載ネットワークの所定のタイムスロット内でフレームを送受信し、前記第2のエラー検知部は、前記1以上の第2のエラー監視装置が前記無効化モードである場合、前記第2のフレーム送受信部に、前記無効化対象フレームのフレームを受信させない、または、前記第2のフレーム送受信部に、前記無効化対象フレームと同一のタイムスロットにおいて、同一の識別子のフレームの送信を行わせることにより、前記無効化対象フレームの受信を無効化してもよい。
これにより、不正なフレームを適切に無効化することが可能となるので、車載ネットワークの安全性を高めることができる。
また、前記第1のエラー監視装置では、前記第1のエラー検知部は、前記第1のフレーム送受信部が送信した前記エラー通知フレームに含まれる、エラーの発生した前記フレームに関して、前記1以上の第2のエラー監視装置から自ブランチでエラーが発生したことを通知するためのエラー通知フレームを受信しないことを検知した場合、前記1以上の第2のエラー監視装置それぞれを前記無効化モードへ遷移させる無効化モード変更フレームを、前記第1のフレーム送受信部に送信させ、前記1以上の第2のエラー監視装置それぞれでは、前記第2のエラー検知部は、前記第2のフレーム送受信部が前記無効化モード変更フレームを受信したことを検知した場合、前記自ブランチにおけるエラーが検知されない場合として、前記無効化モードへ前記1以上の第2のエラー監視装置を遷移させてもよい。
これにより、エラー通知を行うフレームが不正なフレームに偽装されたとしても、不正なフレームを無効化することができる。これにより、車載ネットワークの安全性を高めることができる。
また、前記第1のエラー監視装置では、前記第1のエラー検知部は、前記第1のフレーム送受信部が送信した前記エラー通知フレームに含まれるエラーの発生した前記フレームに関して、前記1以上の第2のエラー監視装置から自ブランチでエラーが発生したことを通知するためのエラー通知フレームを受信しないことを検知した場合、前記1以上の第2のエラー監視装置それぞれを前記無効化モードへ遷移させる無効化モード変更フレームを、前記第1のフレーム送受信部に送信させ、前記第1のエラー検知部は、さらに、前記第1のフレーム送受信部が送信した前記無効化モード変更フレームにエラーが発生したか否かを検知し、当該無効化モード変更フレームにエラーが発生したことを検知した場合、前記第1のフレーム送受信部に、前記無効化モード変更フレームの送受信について異常が発生したことを通知するためのエラー通知異常フレームを送信させ、前記1以上の第2のエラー監視装置それぞれでは、前記第2のエラー検知部は、前記第2のフレーム送受信部が前記エラー通知異常フレームを受信したことを検知した場合、前記無効化モードへ前記1以上の第2のエラー監視装置を遷移させてもよい。
これにより、エラー通知を行うフレームが不正なフレームに偽装されたとしても、不正なフレームを無効化することができる。これにより、車載ネットワークの安全性を高めることができる。
また、前記1以上の第2のエラー監視装置のそれぞれは、さらに、フレームの種別ごとにエラーの検知回数および、エラー通知フレームの受信回数の少なくとも1つを保持する、エラー状態保持部を備え、前記第1のエラー監視装置では、前記第1のエラー検知部は、さらに、前記第1のフレーム送受信部が送信した前記エラー通知フレームにエラーが発生したか否かを検知し、当該エラー通知フレームにエラーが発生したことを検知した場合、前記第1のフレーム送受信部に、前記エラー通知フレームの送受信について異常が発生したことを通知するためのエラー通知異常フレームを送信させ、前記1以上の第2のエラー監視装置のそれぞれでは、前記第2のエラー検知部は、前記第2のフレーム送受信部が前記エラー通知異常フレームを受信した場合、前記エラー状態保持部に保持される前記検知回数および前記受信回数のいずれかが、所定数以上であるフレームを、前記無効化対象フレームとし、前記無効化モードへ前記1以上の第2のエラー監視装置を遷移させてもよい。
これにより、エラー通知を行うフレームが不正なフレームに偽装されたとしても、不正なフレームを無効化することができる。さらに、無効化モード変更フレームを送信せずに、無効化モードへ遷移可能となるので、より早く不正なフレームを無効化したい場合に効果的である。よって、車載ネットワークの安全性をより高めることができる。
また、前記タイムトリガー型の通信方式は、FlexRayプロトコルであり、前記エラーは、FlexRayプロトコルに定められる、SyncError、ContentError、BoundaryViolation、および、TxConflictのいずれかであるとしてもよい。
これにより、FlexRayを搭載した車載ネットワークにおける不正フレームの送信を無効化することができる。
また、前記車載ネットワークは、スターカプラを有するスター型トポロジで構成され、前記スターカプラを介し、複数のブランチにフレームの送受信が行われ、前記エラー通知フレームは、FlexRayプロトコルにおける動的フレームであり、前記第1のフレーム送受信部は、前記第1のエラー監視装置が接続されるブランチに応じて、前記エラー通知フレームを、送信するサイクル数を決定してもよい。
これにより、スター型FlexRayにおいて、スロットIDを効率的に利用しつつ、エラー通知フレームの送受信が可能となる。よって、車載ネットワークの設計の自由度を保ちつつ、不正なフレームを適切に無効化することができ安全性を高めることができる。
また、前記第1のエラー監視装置では、複数のブランチのうちの一つのブランチを無効化させる無効化切り替えフレームを前記第1のフレーム送受信部に送信させることで、前記一つのブランチに接続される少なくとも1つの第2のエラー監視装置を前記無効化モードに遷移させ、前記一つのブランチ以外の1以上のブランチに接続される少なくとも1つの第2のエラー監視装置を前記無効化モードに遷移させない期間を作りだし、当該期間中に前記1以上の第2のエラー監視装置から受信するエラー通知フレームの個数を検知し、前記無効化切り替えフレームを前記第1のフレーム送受信部に送信させたときから所定の時間経過後に、前記1以上のブランチのうちの一つのブランチを無効化させる無効化切り替えフレームを前記第1のフレーム送受信部に送信させることにより、前記複数のブランチの各々を順番に無効化させる無効化切り替えフレームを前記第1のフレーム送受信部に送信させ、前記エラー通知フレームの個数が最大であると検知した一つのブランチを不正ブランチと判定してもよい。
これにより、不正なフレームが送信されているブランチを明らかにし対処に有益な情報が得られるので、車載ネットワークにおける不正フレームの送信を無効化することができる。
また、前記無効化切り替えフレームは、前記無効化モードに遷移させることを示す有効化フラグと、前記無効化モードに遷移させるブランチを識別する値とを含んでもよい。
また、前記1以上の第2のエラー監視装置のそれぞれでは、前記第2のエラー検知部は、前記第2のフレーム送受信部が前記無効化切り替えフレームを受信し、前記無効化切り替えフレームに含まれる前記値により識別されるブランチと、当該第2のエラー監視装置が接続されているブランチとが一致している場合、当該第2のエラー監視装置を、前記無効化モードへ遷移させてもよい。
また、前記1以上の第2のエラー監視装置のそれぞれでは、前記第2のフレーム送受信部は、前記車載ネットワークの所定のタイムスロット内で第1のフレームを送信し、前記第2のエラー検知部は、前記1以上の第2のエラー監視装置が前記無効化モードである場合、前記第2のフレーム送受信部に、前記第1のフレームを、前記所定のタイムスロット内で予め定められた送信開始タイミングよりも早い送信開始タイミングで送信させることで、前記無効化対象フレームの受信を無効化してもよい。
これにより、不正なフレームよりも正規のフレームの送信開始タイミングが早まり、不正なフレームによる影響を抑えることができる。つまり、車載ネットワークにおける不正フレームの送信を無効化することができる。
また、本開示の一様態に係る監視装置は、タイムスロットに基づくタイムトリガー型の通信方式である車載ネットワークにおける監視装置であって、前記車載ネットワークには、それぞれ所定のタイムスロット内でフレームを送受信する1以上の電子制御装置がブランチごとに接続されており、前記監視装置は、前記ブランチごとに設けられ、前記フレームでエラーが発生したことを通知するために送信されたエラー通知フレームであって前記車載ネットワークに流れるフレームにエラーが発生した場合にエラーの発生した前記フレームの種類を識別可能な情報を含むエラー通知フレームを受信するフレーム送受信部と、受信した前記エラー通知フレームに含まれるエラーの発生した前記フレームに関して自ブランチにおけるエラーが検知されない場合、前記フレームを無効化対象フレームとして、以降の前記フレームの受信を無効化する無効化モードへ前記監視装置を遷移させるエラー検知部とを備える。
これにより、エラーの発生状況の不整合に基づいて、不正なフレーム送信を検知し、無効化することで、車載ネットワークシステムの安全性を高めることができる。
また、本開示の一様態に係る不正制御防止方法は、タイムスロットに基づくタイムトリガー型の通信方式である車載ネットワークにおける不正制御防止システムにおける不正制御防止方法であって、前記車載ネットワークには、それぞれ所定のタイムスロット内でフレームを送受信する1以上の電子制御装置がブランチごとに接続されており、前記不正制御防止システムは、前記ブランチごとにエラー監視装置を備え、前記エラー監視装置のうちの第1のエラー監視装置が、前記車載ネットワークに流れるフレームを受信する第1のフレーム送受信ステップと、前記第1のエラー監視装置が、前記第1のフレーム送受信ステップにおいて受信したフレームにエラーが発生したかどうか検知し、前記第1のフレーム送受信ステップにおいて受信したフレームにエラーが発生したことを検知した場合、エラーの発生した前記フレームの種類を識別可能な情報を含み、前記フレームでエラーが発生したことを通知するためのエラー通知フレームを、前記第1のフレーム送受信ステップにおいて送信させる第1のエラー検知ステップと、を含み、前記エラー監視装置のうちの前記第1のエラー監視装置と異なる1以上の第2のエラー監視装置のそれぞれが、前記エラー通知フレームを受信する第2のフレーム送受信ステップと、前記1以上の第2のエラー監視装置のそれぞれが、前記第2のフレーム送受信ステップにおいて受信した前記エラー通知フレームに含まれるエラーの発生した前記フレームに関して、自ブランチにおけるエラーが検知されない場合、前記フレームを無効化対象フレームとして、以降の前記フレームの受信を無効化する無効化モードへ前記1以上の第2のエラー監視装置を遷移させる第2のエラー検知ステップとを含む。
以下、本実施の形態に係る車載ネットワークシステムについて、図面を参照しながら説明する。ここで示す実施の形態は、いずれも本開示の一具体例を示すものである。従って、以下の実施の形態で示される数値、構成要素、構成要素の配置及び接続形態、並びに、ステップ(工程)及びステップの順序等は、一例であって本開示を限定するものではない。以下の実施の形態における構成要素のうち、独立請求項に記載されていない構成要素については、任意に付加可能な構成要素である。また、各図は、模式図であり、必ずしも厳密に図示されたものではない。
(実施の形態1)
1.システムの構成
以下、図面を参照しながら、本実施の形態に係る車載ネットワークにおける不正制御防止システムについて説明する。
1.1 車載ネットワークシステム10の全体構成
図1は、本実施の形態に係る車載ネットワークシステム10の全体構成を示す図である。
車載ネットワークシステム10は、タイムスロットに基づくタイムトリガー型の通信方式の車載ネットワークであってスターカプラを有するスター型トポロジで構成され、スターカプラを介し、複数のブランチにフレームの送受信が行われる車載ネットワークを備える。車載ネットワークには、それぞれ所定のタイムスロット内でフレームを送受信する1以上の電子制御装置がブランチごとに接続される。また、車載ネットワークシステム10は、ブランチごとにエラー監視装置を備える。なお、タイムスロットに基づくタイムトリガー型の通信方式は、例えばFlexRayプロトコルである。
本実施の形態では、車載ネットワークシステム10は、図1に示すように、ブランチ100a、100b、100c、100dと、ECU200a、200b、200c、200dと、監視ECU400a、400b、400c、400dと、ハンドル210と、ギア220と、外部通信モジュール230と、カメラ240と、スターカプラ300とを備える。
ECU200a〜200dは、対応するブランチに接続され、ブランチを通じて、フレームの送受信を行うことで、車両の制御を実現する。図1に示す例では、ECU200aは、制御対象であるハンドル210を制御し、ECU200bは、制御対象であるギア220を制御する。ECU200cは、制御対象である外部通信モジュール230を制御し、ECU200dは、制御対象であるカメラ240を制御する。ECU200a〜200dはノードとも呼ばれる。ECU200a〜200dの詳細は後述する。
監視ECU400a、400b、400c、400dは、エラー監視装置の一例であり、各ブランチに接続される。監視ECU400a、400b、400c、400dは、それぞれのブランチ100a、100b、100c、100dを観測することで、不正なフレームの送信を検知するとともに、不正なフレームの無効化を行う。詳細は後述する。
スターカプラ300は、ブランチ100a、100b、100c、100dを接続する。スターカプラ300は、ブランチ100a、100b、100c、100dに同じ信号が流れるように信号の整形を行う。車載ネットワークシステム10では、スターカプラ300を備えることで、ECU200a、200b、200c、200dは、ブランチ100a、100b、100c、100dを通じて時刻の同期をとっている。詳細は後述する。
1.2 FlexRay通信
図2は、本実施の形態に係るFlexRay通信のサイクルを示す図である。FlexRay通信(FlexRayプロトコル)は、図2に示すサイクル(Cycle)と呼ばれる単位で行われる。サイクルの繰り返し回数(サイクルカウンタ)は、各ノードが同期して保持している。このサイクルカウンタは0〜63の値をとる。サイクルカウンタが例えば63である場合、次のサイクルはサイクルカウンタを0にリセットして行われる。
各サイクルは、図2に示すように、静的セグメント(Static segment)、動的セグメント(Dynamic segment)、および、シンボルウィンドウ(Symbol window)、ネットワークアイドルタイム(NIT)の4つのセグメントから構成される。
各セグメントの時間は、予め設計されたパラメータによって、FlexRayネットワーク全体(クラスタ)で共通である。1サイクルの時間も同様にクラスタで共通である。
静的セグメントは、複数のスロットから構成される。スロットの個数、および各スロットの時間はクラスタ内で共通である。
また、FlexRay通信で送信されるフレームは、1スロット内において1つのフレームが送信されることから、スロットの番号(スロット番号)がフレームの識別子(Frame ID)となる。本実施の形態では、ECU200a、200b、200c、200dは、予め定められたタイミング(スロット番号)で、フレームの送信を行うように設計されている。静的セグメント内で送信されるフレームを静的フレームと呼ぶ。静的フレームは、ペイロード長がクラスタ内で共通となっている。
動的セグメントは、図示しないが、ミニスロットと呼ばれるスロットから構成される。ミニスロットにも同様にスロット番号が存在する。本実施の形態では、ECU200a、200b、200c、200dは、予め定められたタイミング(スロット番号)で送信を行うように設計されているが、静的セグメントと異なり、必ずしもフレームの送信を行う必要はない。動的セグメント内で送信されるフレーム動的フレームと呼ぶ。動的フレームは、ペイロード長として0〜254の任意の値をとることができる。
シンボルウィンドウは、シンボルと呼ばれる信号の送受信を行う時間帯である。
ネットワークアイドルタイム(NIT)は、通信を行わない時間帯であり、サイクルの最後に必ず設けられる。ECU200a、200b、200c、200dは、時刻の同期処理等を行う。
1.3 フレームフォーマット
図3は、本実施の形態に係るFlexRayプロトコルのフレームフォーマットを示す図である。フレームフォーマットは、静的フレームおよび動的フレームともに共通のフォーマットである。フレームは、Header Segment、Payload Segment、および、Trailer Segmentの3つのセグメントから構成される。
Header Segmentは、Reserved bitから始まり、Payload preamble indicator、Null frame indicator、Sync frame indicator、および、Startup frame indicatorがそれぞれ1ビットずつ含まれる。Payload preamble indicator、Null frame indicator、Sync frame indicator、および、Startup frame indicatorは、フレームの種別を表すためものである。
Header Segmentは、さらに、11ビットのFrame IDと、7ビットのPayload length、11ビットのHeader CRC、および、6ビットのCycle countから構成される。
Frame IDは、スロットIDとも呼ばれ、フレームの送信タイミング及び、フレームの内容を識別するために用いられる。
Payload lengthは、最大127の値をとり得る。
Payload Segmentには、Payload lengthの値に2をかけたバイト数が格納される。
Header CRCは、Sync frame indicatorからPayload lengthまでを含んだ値から計算されるチェックサムである。
Cycle countは、現在のサイクル数が格納される。
Payload Segmentには、フレームの内容を表すデータが含まれる。Payload Segmentには、Payload lengthの値の2倍のバイト数が格納されており、最大で254バイトが格納される。
Trailer Segmentには、フレームの全てを含んだ値から計算されるCRCが格納されている。
1.4 ECU200aの構成図
図4は、本実施の形態に係るECU200aの構成を示す図である。なお、ECU200b、ECU200c、ECU200dは、ECU200aと同様の構成であるため、これらの説明を省略する。
ECU200aは、ブランチ100aに接続され、ブランチ100aを通じて、フレームの送受信を行うことで、ハンドル210の制御を実現する。ECU200aは、図4に示すように、フレーム送受信部201と、フレーム解釈部202と、外部機器制御部203と、フレーム生成部204と、通信用設定パラメータ保持部205と、を備える。
フレーム送受信部201は、車載ネットワークのブランチ100aに流れるフレームを受信する。より具体的には、フレーム送受信部201は、ブランチ100aから受信したフレームに含まれる物理信号を、デジタル信号に復号することでフレームの情報を取得する。フレーム送受信部201は、通信用設定パラメータ保持部205に保持される通信用設定パラメータを参照することで、他のECUと時刻を同期し、正しくフレームを受信する。
また、フレーム送受信部201は、車載ネットワークのブランチ100aにフレームを送信する。より具体的には、フレーム送受信部201は、フレーム生成部204から、通知される送信フレーム要求に従い、予め定められたタイミングで、フレームを物理信号に変換して、ブランチ100aに送信する。
フレーム解釈部202は、フレーム送受信部201が受信したフレームに含まれるペイロードを解釈し、ペイロードの内容に応じてECU200aに接続されるハンドル210の制御を行うために外部機器制御部203へ通知を行う。フレーム解釈部202は、例えば、他のECUから通知される車両の速度の情報に基づいて、走行状態を判断することで、走行状態に応じたハンドルのアシスト制御を実現したり、自動駐車モード時のステアリング操舵指示信号に基づいて、ハンドルの自動操舵を実現したりする。
外部機器制御部203は、ECU200aに接続されるハンドル210の制御を行う。また、外部機器制御部203は、ハンドル210の状態を監視し、他のECUに状態を通知するためのフレーム送信要求をフレーム生成部204に通知する。例えば、外部機器制御部203は、ハンドル210の角度を通知するためのフレーム要求をフレーム生成部204に通知する。
フレーム生成部204は、外部機器制御部203から通知された信号に基づいて、フレームの生成を行い、フレーム送受信部201へ送信要求を行う。
通信用設定パラメータ保持部205は、物理信号を正しく、デジタル信号に変換するための、クラスタ内で共通のパラメータが保持されている。通信用設定パラメータの詳細は後述する。
1.5 監視ECU400aの構成図
図5は、本実施の形態に係る監視ECU400aの構成の一例を示す図である。なお、監視ECU400b、400c、400dは、監視ECU400aと同様の構成であるため、これらの説明を省略する。また、監視ECU400aの構成のうち、ECU200aと同様の構成については、同じ番号を付与してその説明を省略する。
監視ECU400aは、エラー監視装置の一例であり、第1のエラー監視装置または第2のエラー監視装置の一例でもある。監視ECU400aは、ブランチ100aに接続されている。監視ECU400aは、上述したが、ブランチ100aを観測することで、不正なフレームの送信を検知するとともに、不正なフレームの無効化を行う。監視ECU400aは、図5に示すように、フレーム生成部204と、通信用設定パラメータ保持部205と、フレーム送受信部401と、エラー検知部402と、正規IDリスト保持部403と、ブランチ状態保持部404とを備える。図4と同様の要素には同一の符号を付している。
<フレーム送受信部401>
フレーム送受信部401は、車載ネットワークに流れるフレームを車載ネットワークの所定のタイムスロット内で受信し、車載ネットワークの所定のタイムスロット内で車載ネットワークにフレームを送信する。フレーム送受信部401は、車載ネットワークのブランチ100aにフレームを送受信する。より具体的には、車載ネットワークのブランチ100aに流れるフレームを受信し、車載ネットワークのブランチ100aにフレームを送信する。フレーム送受信部401は、ブランチ100aから受信したフレームに含まれる物理信号を、デジタル信号に復号することでフレームの情報を取得する。フレーム送受信部401は、通信用設定パラメータ保持部205に保持される通信用設定パラメータを参照することで、他のECUと時刻を同期し、正しくフレームを受信する。フレーム送受信部401は、フレーム生成部204から、通知される送信フレーム要求に従い、予め定められたタイミングで、フレームを物理信号に変換して、ブランチ100aに送信する。
さらに、フレーム送受信部401は、フレームとして、例えば受信したフレームにエラーが発生したことを通知するためのエラー通知フレーム、または、対象の監視ECU400b〜400dのそれぞれを無効化モードへ遷移させる無効化モード変更フレームを送受信する。フレーム送受信部401は、監視ECU400aが接続されるブランチに応じて、エラー通知フレームまたは無効化モード変更フレームを送信するためのサイクル数を決定する。
また、フレーム送受信部401は、フレームとして、例えば無効化モード変更フレームまたはエラー通知フレームの送受信について異常が発生したことを通知するためのエラー通知異常フレームを送受信する。
<エラー検知部402>
エラー検知部402は、フレーム送受信部401から、フレーム送受信部401が受信したフレームを通知されると、通知されたフレームがエラー無く受信されているか否かを検知する。なお、エラー検知部402は、FlexRayプロトコルに定められるTxConflict、SyntaxError、ContentError、および、BoundaryViolationのいずれかに何のフラグが立っているかどうかで、フレームにエラーが発生しているか否を検知する。
エラー検知部402は、フレーム送受信部401が受信したフレームにエラーが発生していることを検知した場合、自ブランチ以外の他ブランチに存在するECUに対して、自ブランチにおいて、特定IDのフレームでエラーが発生していることを通知するためのフレームの送信を行わせる。より詳細には、エラー検知部402は、特定IDのフレームでエラーが発生していることを通知するためのフレームの送信させる旨の通知をフレーム生成部204に行うことで、当該フレームをフレーム送受信部401に送信させる。
より具体的には、エラー検知部402は、フレーム送受信部401が受信したフレームにエラーが発生したかどうか検知する。エラー検知部402は、フレーム送受信部401が受信したフレームにエラーが発生したことを検知した場合、エラーの発生したフレームの種類を識別可能な情報を含むエラー通知フレームを、フレーム送受信部401に送信させる。
エラー検知部402は、無効化モード変更フレームを受信した場合およびエラー通知異常フレームを受信した場合に、他のブランチ100a〜100cにおいてエラーの発生しているIDのフレームを無効化するための対象IDのフレームを、フレーム送受信部401に送信させてもよい。
具体的には、エラー検知部402は、フレーム送受信部401が送信したエラー通知フレームに含まれる、エラーの発生したフレームに関して、他の監視ECU400b〜400dから自ブランチ100aでエラーが発生したことを通知するためのエラー通知フレームを受信しないことを検知したとする。この場合、エラー検知部402は、他の監視ECU400b〜400dそれぞれを無効化モードへ遷移させる無効化モード変更フレームを、フレーム送受信部401に送信させてもよい。さらに、エラー検知部402は、フレーム送受信部401が送信した無効化モード変更フレームにエラーが発生したか否かを検知する。エラー検知部402は、当該無効化モード変更フレームにエラーが発生したことを検知した場合、フレーム送受信部401に、無効化モード変更フレームの送受信について異常が発生したことを通知するためのエラー通知異常フレームを送信させる。
また、エラー検知部402は、フレーム送受信部401が無効化モード変更フレームを受信したことを検知した場合、監視ECU400aを無効化モードへ遷移させてもよい。
また、エラー検知部402は、フレーム送受信部401がエラー通知異常フレームを受信したことを検知した場合、監視ECU400aを無効化モードへ遷移させる。
ここで、エラー検知部402は、監視ECU400aが無効化モードに遷移している場合、フレーム送受信部401に、無効化対象フレームのフレームを受信させないことにより、無効化対象フレームの受信を無効化してもよい。また、エラー検知部402は、監視ECU400aが無効化モードに遷移している場合、フレーム送受信部401に、無効化対象フレームと同一のタイムスロットにおいて、同一の識別子のフレームの送信を行わせることにより、無効化対象フレームの受信を無効化してもよい。また、エラー検知部402は、監視ECU400aが無効化モードに遷移しており、フレーム送受信部401が車載ネットワークの所定のタイムスロット内で第1のフレームを送信するとする。この場合、エラー検知部402は、フレーム送受信部401に、第1のフレームを、所定のタイムスロット内で予め定められた送信開始タイミングよりも早い送信開始タイミングで送信させることで、無効化対象フレームの受信を無効化してもよい。
なお、エラー検知部402は、フレーム送受信部401が受信したエラー通知フレームに含まれる他ブランチでエラーの発生したフレームに関して自ブランチ(ブランチ100a)におけるエラーが検知されないとする。この場合、エラー検知部402は、フレームを無効化対象フレームとして、以降のフレームの受信を無効化する無効化モードへ監視ECU400aを遷移させてもよい。
また、エラー検知部402は、フレーム送受信部401が受信したフレームにエラーが発生していることを検知したときに、さらに、他のブランチ100b〜100dにおいても当該IDのフレームにエラーが発生していることが通知されたとする。この場合、エラー検知部402は、故障等による通信異常が発生していると判断し、故障モードへ移行すればよい。ここで、故障モードとは、運転支援機能による自動制御機能をオフにするモード、つまり、自動制御に関わるフレームを無効とするモードである。
<正規IDリスト保持部403>
正規IDリスト保持部403は、各ECUが送信するフレームに関するIDのリストを格納している。正規IDリストの詳細は後述する。
<ブランチ状態保持部404>
ブランチ状態保持部404は、監視ECU400aに保持されており、車載ネットワークに存在するブランチの情報、各ブランチにおけるエラーの発生状況、および、現在のモード等を格納している。ブランチ状態保持部404が格納するブランチ状態の詳細は後述する。
1.6 スターカプラ300の構成図
図6は、本実施の形態に係るスターカプラ300の構成を示す図である。スターカプラ300は、ブランチ100a〜100dと接続され、上述したが、ブランチ100a、100b、100c、100dに同じ信号が流れるように信号の整形を行う。スターカプラ300は、同一のタイミング(同一スロット内)で最も先に送信が開始されたフレームを、当該フレームが送信されたブランチ以外のすべてのブランチに転送する。スターカプラ300は、図6に示すように、トランシーバ部301a、301b、301c、301dと、ルーティング部302とを備える。
トランシーバ部301aは、ブランチ100aと接続され、ブランチ100aから受信した物理信号を、デジタル信号に変換し、ルーティング部302へ通知する。また、トランシーバ部301aは、デジタル信号をルーティング部302から通知された場合、通知されたデジタル信号を、物理信号へ変換し、ブランチ100aへ転送する。
ルーティング部302は、トランシーバ部301aから通知されたデジタル信号を、トランシーバ部301aを除くトランシーバ部301b、301c、301dへ転送する。同様に、ルーティング部302は、トランシーバ部301bからデジタル信号を通知された場合、トランシーバ部301bを除くトランシーバ部301a、301c、301dに対して、デジタル信号を転送する。このようにして、ルーティング部302は、トランシーバ部301a、301c、301dのうちの一のトランシーバ部から通知されたフレームを、トランシーバ部301a、301c、301dのうち当該一のトランシーバ部を除いたトランシーバ部に転送する。
なお、ルーティング部302は、複数のトランシーバ部の少なくとも2以上から、デジタル信号を受信した場合は、最初にデジタル信号を受信したトランシーバ部からの信号を、他のトランシーバ部へ転送する。
1.7 通信用設定パラメータの一例
図7は、本実施の形態に係る通信用設定パラメータの一例を示す図である。
通信用設定パラメータは、上述したように、監視ECU400a〜400dおよびECU200a〜200dの通信用設定パラメータ保持部205に格納されている。通信用設定パラメータは、図7に示すように、通信の速度を表すボーレート、静的セグメントスロットID、動的セグメントスロットID、および、静的スロットペイロード長等を含む。図7に示す通信用設定パラメータでは、ボーレートが10Mbpsであり、静的セグメントのスロットIDが1〜50であり、動的セグメントのスロットIDが51〜100である。また、静的スロットのペイロード長が8(つまり16バイト)である。これらの通信用設定パラメータの値は、クラスタ内のECU全てに共有されており、これらの値を元にFlexRayフレームの送受信を実現する。
なお、図7に示す通信用設定パラメータの値は、一例に過ぎず、別の値であっても構わない。また、図7に示す通信用設定パラメータの項目も一例に過ぎず、例えば、各セグメントの長さ、および/またはスロットの長さ等が含まれていてもよいし、記載されているパラメータの一部が含まれていなくてもよい。
1.8 正規IDリストの一例
図8は、本実施の形態に係る静的フレームの正規IDリストの一例を示す図である。図8に示す静的フレームの正規IDリストは、監視ECU400aが保持する正規IDリスト保持部403に格納されている。
静的フレームの正規IDリストは、図8に示すように、スロットIDと、Cycle offsetと、Cycle receptionと、送信元ブランチ情報と、フレームに含まれるペイロード情報とを保持している。
Cycle offsetとCycle receptionとは、サイクル多重化(サイクルマルチプレキシング)と呼ばれる同じスロットIDにおいて異なる内容のフレームを送受信する方法が用いられるときに、対象のフレームを抽出するために必要な情報である。例えば図8に示すスロットIDが3であるフレームは、Cycle offsetが0、Cycle receptionが2である。これは、サイクル番号が0から始まり、間隔2すなわち2、4、・・・、62の場合にフレームが送信されることを示している。
より詳細には、図8に示す正規IDリストでは、スロットIDが1であるフレームは、Cycle offsetが0、Cycle receptionが1であるので、全てのサイクル(1、2、・・・、62)でフレームが送信されることを示している。さらに、スロットIDが1であるフレームは、フレームの送信元ブランチがブランチ100bであり、ペイロードには速度に関する情報が含まれることを示している。また、スロットIDが2であるフレームは、空欄であることから、送信されないことを示している。
また、スロットIDが3であるフレームは、上述したように、Cycle offsetが0、Cycle receptionが2である。これは、サイクル番号が0から始まり、間隔2すなわち2、4、・・・、62の場合、つまりサイクルカウンタが偶数の場合のみ送信されることを示している。さらに、スロットIDが3であるフレームは、フレームの送信元ブランチがブランチ100aであり、ペイロードにはハンドル角度に関する情報が含まれることを示している。同様に、スロットIDが4であるフレームは、Cycle offsetが1、Cycle receptionが2である。これは、サイクル番号が1から始まり、間隔2すなわち3、5、・・・、61の場合、つまりサイクルカウンタが奇数のときのみ送信されることを示している。さらに、スロットIDが4であるフレームは、フレームの送信元ブランチがブランチ100bであり、ペイロードにはギア状態に関する情報が含まれることを示している。
また、スロットIDが5であるフレームは、Cycle offsetが0、Cycle receptionが1、フレームの送信元ブランチがブランチ100bであり、ペイロードにはブレーキ油圧に関する情報が含まれることを示している。スロットIDが6であるフレームは、Cycle offsetが2、Cycle receptionが4、フレームの送信元ブランチがブランチ100dであり、ペイロードにはハンドル操舵指示に関する情報が含まれることを示している。
図9は、本実施の形態に係る動的フレームの正規IDリストの一例を示している。図9に示す動的フレームの正規IDリストは、監視ECU400aが保持する正規IDリスト保持部403に格納されている。図9に示す動的フレームの正規IDリストは、図8と同様の情報すなわちスロットIDと、Cycle offsetと、Cycle receptionと、送信元ブランチ情報と、フレームに含まれるペイロード情報とを保持している。
図9に示す動的フレームの正規IDリストには、4つ(4種類)のフレームが存在するスロットIDが51のフレーム(動的フレーム)が示されている。
1つ目のフレームは、Cycle offsetが1、Cycle receptionが8であり、フレームの送信元ブランチがブランチ100aであることを示している。さらに、ペイロードには、1つ目のフレームが、ブランチ100aにおいてIDが1のフレームにエラーが発生していたことを通知するフレームであることを示す情報が含まれている。同様に、2つ目のフレームは、Cycle offsetが2、Cycle receptionが8であり、フレームの送信元ブランチがブランチ100bであることを示している。さらに、ペイロードには、2つ目のフレームが、ブランチ100bにおいてIDが1のフレームにエラーが発生していたことを通知するフレームであることを示す情報が含まれている。3つ目のフレームは、Cycle offsetが3、Cycle receptionが8であり、フレームの送信元ブランチがブランチ100cであることを示している。さらに、ペイロードには、2つ目のフレームが、ブランチ100cにおいてIDが1のフレームにエラーが発生していたことを通知するフレームであることを示す情報が含まれている。 4つ目のフレームは、Cycle offsetが4、Cycle receptionが8であり、フレームの送信元ブランチがブランチ100dであることを示している。さらに、ペイロードには、2つ目のフレームが、ブランチ100dにおいてIDが1のフレームにエラーが発生していたことを通知するフレームであることを示す情報が含まれている。
このように、スロットIDが51のフレームでは、1つのスロットIDに対してCycle offsetを変えることで、送信元ブランチを変更できる。
また、図9に示す動的フレームの正規IDリストにおけるスロットIDが53であるフレームでは、Cycle offsetは送信元ブランチに対応し、Cycle receptionは8であり、フレームの送信元ブランチは全てのブランチであることを示している。さらに、ペイロードには、スロットIDが53であるフレームが、全てのブランチにおいてIDが3であるフレームにエラーが発生していたことを通知するフレームであることを示す情報が含まれている。
また、スロットIDが56であるフレームでも、Cycle offsetは送信元ブランチに対応し、Cycle receptionは8であり、フレームの送信元ブランチは全てのブランチであることを示している。さらに、ペイロードには、スロットIDが56であるフレームが、全てのブランチにおいてIDが6であるフレームにエラーが発生していたことを通知するフレームであることを示す情報が含まれている。つまり、スロットIDが56であるフレームは、エラー通知フレームであることを示している。
さらに、スロットIDが100であるフレームでは、Cycle offsetは送信元ブランチに対応し、Cycle receptionは8であり、フレームの送信元ブランチは全てのブランチであることを示している。さらに、ペイロードには、エラー通知フレームに異常が発生したことの通知が含まれることを示している。つまり、スロットIDが100であるフレームは、エラー通知異常フレームであることを示している。
1.9 ブランチ状態の一例
図10は、本実施の形態に係るブランチ状態の一例を示す図である。図10に示すブランチ状態は、監視ECU400aのブランチ状態保持部404に格納されている。
図10に示すブランチ状態では、監視ECU400aが存在するブランチが100aであり、モードは通常であることを示している。また、図10に示すブランチ状態では、スロットIDが1であるフレームに関して、自ブランチについてはエラーとなったフレームの回数(受信回数)を示し、他ブランチについてはエラー通知フレームの受信数(受信回数)を示している。図10に示す例では、スロットIDが1であるフレームに関して、ブランチ100aにおいて、エラーとなったフレームの回数は0であり、他ブランチからのエラー通知フレームの受信数は、ブランチ100b、ブランチ100cおよびブランチ100dでは0であることを示している。同様に、スロットIDが3であるフレームに関して、ブランチ100aでエラーとなったフレームの回数は10、エラー通知フレームの受信数は、ブランチ100b、ブランチ100cおよびブランチ100dでは0であることを示している。
1.10 エラー通知フレームとエラー通知異常フレームの例
図11Aは、本実施の形態に係るエラー通知フレームの一例を示す図である。図11Aには、図9を用いて説明したスロットIDが6であるフレームのエラーを通知するスロットID56のエラー通知フレームが示されている。エラー通知フレームは、FlexRayプロトコルにおける動的フレームである。
図11Aに示すエラー通知フレームは、Cycleが17であり、ペイロードが0x01010100として送信されている。ペイロードの第1バイトの0x01は、エラー通知フレームの送信元ブランチを表しており、0x01は、ブランチ100aからフレームが送信されたことを示している。ペイロードの第2バイトは、スロットID56であるフレームの内容を表しており、0x01は当該フレームがエラー通知フレームであることを示している。第2バイトの値が2である場合は、他の監視ECUに対して、モードの変更を要求するフレームとなる。本実施の形態では、無効化モードへ遷移させる無効化モード変更フレームであることを示すことになる。また、ペイロードの第3バイトは、エラー情報であり、0x01は、SyntaxErrorが発生したことを示している。ペイロードの第4バイトは、モード切替情報を表しており、0x00は通常モードであることを示している。
なお、スロットID56であるフレーム(すなわちエラー通知フレーム)のCycleが17であることからも、ブランチ100aからフレームが送信されたことがわかるようになっている。これは、不正なECUが、エラー通知フレームのペイロードを偽装して送信したとしても、スロットIDとサイクル情報とのみで、特定のIDのフレームについてエラーが発生していることを正確に監視ECUが把握できるようにするためである。
換言すると、エラーの発生していない正常状態(通常時)においては、スロットIDが56であるフレーム(すなわちエラー通知フレーム)は送受信されない。一方、スロットIDが6のフレームにエラーが発生したときには、スロットIDが56であるフレーム(エラー通知フレーム)を送信する。これにより、スロットIDが56であるフレームを受信した時点で、フレームのペイロード値に関わらず、スロットIDが6であるフレームにエラーが発生していることを監視ECUは把握できる。
図11Bは、本実施の形態に係るエラー通知異常フレームの一例を示す図である。図11Bには、図9を用いて説明したスロットIDが100であるエラー通知異常フレームが示されている。エラー通知異常フレームは、エラー通知フレーム(または無効化モード変更フレーム)の送受信(つまり通信)において、異常が発生した場合に送信される。例えば、エラー通知フレームがエラーになり送信されなかった場合、または、エラー通知フレームを送信していないにも関わらず、自身の監視ECUが送信するはずのエラー通知フレームを受信する場合等である。
図11Bに示すエラー通知異常フレームは、スロットIDが100で、Cycleが1であり、ペイロードは、0x01010038であることを示している。ペイロードの第1バイトは送信元ブランチを表しており、0x01であることから送信元ブランチがブランチ100aであることを示している。つまり、図11Bに示すエラー通知異常フレームは、ブランチ100aが送信元であることを意味する。ペイロードの第2バイトは、異常コードを表しており、0x01は、エラー通知フレームの送信が送信できなかったことを示している。ペイロードの第3、第4バイトの2バイトは、エラー通知異常が発生したエラー通知フレームのスロットIDを表しており、0x38であることから、十進数では56のエラー通知フレームで異常が発生したことを示している。
なお、エラー通知異常フレームは、エラー通知フレームと同様に通常時(エラーの発生していない正常状態)では送受信されない。一方、エラー通知異常フレームは、エラー通知フレーム(または無効化モード変更フレーム)の送受信において、異常が発生した場合に送信される。そして、監視ECUは、エラー通知異常フレームを受信した時点で、エラー通知異常フレームに基づき、無効化モードへ遷移することなる。
1.11 監視ECU400aの動作
図12は、本実施の形態に係る監視ECU400aの処理を示すフローチャートである。
監視ECU400aは、ブランチ100aに流れるフレームを受信し、受信したフレームについてエラーが発生していることを検知した場合、当該フレームに対応するスロットIDのエラー回数を更新する(S1001)。
次に、監視ECU400aは、例えば図10に示すブランチ状態におけるスロットID毎のエラー回数のうち、例えば10などの所定数以上のエラー回数があるかどうかを確認する。(S1002)。
ステップS1002において、所定数以上のエラー回数がある場合(S1002でY)、監視ECU400aは、エラー通知フレームをブランチ100aに送信する(S1003)。
次に、監視ECU400aは、エラーが発生していることを検知したフレーム(エラーが発生したフレーム)について、自ブランチが送信元となっているフレームであるか否かを確認する(S1004)。ここで、監視ECU400aは、エラーが発生したフレームに対応するスロットIDから、自ブランチ(ブランチ100a)が送信元となっているフレームであるか否かを確認することができる。
ステップS1004において、エラーが発生したフレームの送信元が自ブランチである場合(S1004でY)、監視ECU400aは、他のブランチ(ブランチ100b〜100d)におけるエラー通知フレームの受信を1サイクル分(1スロット単位の期間)の時間待機する(S1005)。なお、ステップS1004において、エラーが発生したフレームの送信元が自ブランチではない場合(S1004でN)、監視ECU400aは処理を終了する。
次に、監視ECU400aは、対応するスロットIDのフレームにおいて全てのブランチ100a〜100cからエラーが発生したことを通知するエラー通知フレームが送信されたか否かを確認する(S1006)。
ステップS1006において、全てのブランチからエラー通知フレームが送信されたことを確認した場合(S1006でY)、監視ECU400aは、車載ネットワークシステムにおいて通信異常が発生していると判断し(S1007)、故障モードへ遷移して処理を終了する。
一方、ステップS1006において、全てのブランチからエラー通知フレームが送信されていないことを確認した場合(S1006でN)、監視ECU400aは、他のブランチで不正なフレームが送信されていると判断し、無効化モード変更フレームを送信する(S1008)。
次に、監視ECU400aは、無効化モード変更フレームがエラー無く送信されたか否かを確認する(S1009)。
ステップS1009において、無効化モード変更フレームをエラー無く送信できたことを確認した場合(S1009でY)、監視ECU400aは処理を終了する。
一方、ステップS1009において、無効化モード変更フレームをエラー無く送信できなかったことを確認した場合(S1009でN)、監視ECU400aは、他のブランチで不正なフレームが送信されているとして、エラー通知異常フレームを送信する(S1012)。
なお、ステップS1002において、所定数以上のエラー回数がない場合(S1002でN)、監視ECU400aは、無効化モード変更フレームを受信しているか否かを確認する(S1010)。
ステップS1010において、無効化モード変更フレームを受信していることを確認した場合(S1010でY)、監視ECU400aは、受信した無効化モード変更フレームが、自身が送信するはずのフレームであるか否かを確認する(S1011)。
ステップS1011において、自身が送信するはずの無効化モード変更フレームを受信していることを確認した場合(S1011でY)、監視ECU400aは、他ブランチで不正なフレームが送信されていると判断し、エラー通知異常フレームを送信する(S1012)。
一方、ステップS1011において、自身が送信するはずの無効化モード変更フレームを受信していないことを確認した場合(S1011でN)、監視ECU400aは、無効化モードに遷移し、対象IDと同じフレームの送信を開始する(S1014)。これにより、監視ECU400aは、不正なフレームと同一のスロットIDのフレームを送信することで不正なフレームと衝突を起こさせることができるので、不正フレームの無効化を行うことができる。
また、ステップS1010において、無効化モード変更フレームを受信していないことを確認した場合(S1010でN)、監視ECU400aは、エラー通知異常フレームを受信しているか否かを確認する(S1013)。
ステップS1013において、エラー通知異常フレームを受信していないことを確認した場合(S1013でN)、監視ECU400aは、処理を終了する。なお、ステップS1013において、エラー通知異常フレームを受信したことを確認した場合(S1013でY)、監視ECU400aは、無効化モードに遷移し、対象IDと同じフレームの送信を開始する(S1014)。ここで、監視ECU400aは、対象IDと同じフレームの送信として、ブランチ状態保持部404に格納されている、各スロットIDのエラー通知フレーム受信数が0でないスロットIDにおけるフレームの送信を開始する。これにより、監視ECU400aは、不正なフレームと同一のスロットIDのフレームを送信することで不正なフレームと衝突を起こさせることができるので、不正フレームの無効化を行うことができる。
1.12 全体シーケンス図
次に、図13Aおよび図13Bを用いて、本実施の形態に係る不正制御防止システムの全体シーケンスについて説明する。
図13Aは、本実施の形態に係るECUが攻撃者に制御を奪われたときに監視ECUが無効化モードに遷移するまでの動作シーケンスの一例を示す図である。図13Bは、本実施の形態に係るECUが攻撃者に制御を奪われたときに監視ECUが無効化モードに遷移した後の動作シーケンスの一例を示す図である。なお、点線で囲われている範囲内は、1スロット単位すなわち同一のスロットIDの期間を表す。また、図13Aおよび図13Bでは、監視ECU400bが省略されている。監視ECU400bは、監視ECU400a、400c、400dと同様の動作を行うが、以下の説明を簡潔にするため省略する。
まず、ECU200cが外部通信モジュール230経由で攻撃者に制御を奪われ、攻撃者に制御を奪われたECU200cは、不正なハンドル操舵指示フレーム(偽装フレーム)を、ECU200aに送信し、不正なハンドル操舵を引き起こそうとしているとする。
すると、図13Aに示すように、制御を奪われたECU200cは、ハンドル操舵指示フレーム(偽装フレーム)を送信する(S1101)。
次に、攻撃者に制御を奪われていない(つまり正規の)ECU200dは、通常フレームとしてのハンドル操舵指示フレームを送信する。より具体的には、正規のECU200dは、ECU200cに少し遅れてハンドル操舵指示フレーム(通常フレーム)を送信する(S1102)。
次に、スターカプラ300は、同一のスロットIDの期間に送信されたフレームの中で最も先に送信開始されたフレームを転送するので、先に送信が開始された不正なフレームであるハンドル操舵指示フレーム(偽装フレーム)を、他のブランチ100a、100dに転送する(S1103)。
すると、ECU200dが接続されているブランチ100dでは、スターカプラ300から転送された偽装フレームと、ECU200dが送信した通常フレームとが衝突し、エラーが発生する(S1104)。ここで、監視ECU400dは、フレーム衝突によるエラーが発生したことを検知している。
また、ECU200aが接続されているブランチ100aでは、不正なフレームであるハンドル操舵指示フレーム(偽装フレーム)が受信される(S1105)。ここで、ECU200aと監視ECU400aとが、ハンドル操舵指示フレーム(偽装フレーム)を受信する。
次に、ECU200aは、不正なフレームあるハンドル操舵指示フレーム(偽装フレーム)に基づいて、ハンドル操舵指示を実行する(S1106)。これにより、車に対して不正な制御が引き起こされる。
続いて次のスロット単位の期間では、まず、監視ECU400dは、ブランチ100dで発生したエラーに基づき、エラー通知フレームを送信する(S1107)。具体的には、監視ECU400dは、受信したフレームにエラーが発生したことを検知したので、エラー通知フレームを送信する。そして、監視ECU400dは、他のブランチ100a、100cからのエラー通知フレームの受信を現在のスロット単位の期間(サイクル分)が終了するまで待機する。
次に、スターカプラ300は、エラー通知フレームを、他のブランチ100a、100cに転送する(S1108)。
次に、監視ECU400aおよび監視ECU400cは、ブランチ100aおよびブランチ100cに流れるエラー通知フレームを受信し、内部のブランチ状態を更新する(S1109)。なお、監視ECU400aおよび監視ECU400cは、更新したブランチ状態においてスロットID毎のエラー回数に所定数以上のエラー回数がないため、エラー通知フレームを送信しない。
続いて次のスロット単位の期間では、まず、監視ECU400dは、他のブランチ100a、100cからエラー通知フレームが送信されてこなかったので、他のブランチ100aにおいては、不正なフレームが受信されていると判断する。そして、監視ECU400dは、無効化モード変更フレームを送信する(S1110)。
次に、スターカプラ300は、無効化モード変更フレームを、ブランチ100aおよびブランチ100cに転送する(S1111)。
すると、監視ECU400aおよび、監視ECU400cは、無効化モード変更フレームを受信し、受信した無効化モード変更フレームが自身の送信するはずだったものでもないので、無効化モードに遷移する(S1112)。監視ECU400aおよび、監視ECU400cは、無効化モードに遷移したので、次のスロット単位の期間に、無効化モード変更フレームにより得たスロットIDのフレームとしてハンドル操舵指示フレーム(無効化フレーム)を送信することになる。なお、無効化モード変更フレームにより得たスロットIDは、不正なフレームと同一のスロットIDに対応する。
続いて次のスロット単位の期間では、まず、ECU200cは、図13Bに示すように、再度、不正なハンドル操舵指示フレーム(偽装フレーム)を送信したとする(S1113)。
すると、スターカプラ300は、不正なフレームであるハンドル操舵指示フレーム(偽装フレーム)の転送を開始する(S1114)。
ここで、無効化モードに遷移している監視ECU400a、400cはハンドル操舵指示フレーム(無効化フレーム)を送信し、監視ECU400d(またはECU200d)は、ハンドル操舵指示フレーム(通常フレーム)を送信する(S1115)。
すると、ブランチ100cでは、既に送信が開始されている偽装フレームと、監視ECU400cが送信する無効化フレームとが衝突を起こし、エラーが発生する(S1116)。
すると、スターカプラ300は、フレームが衝突した信号を他のブランチ100d、100aに転送する(S1117)。
次に、ブランチ100aと、ブランチ100dとにおいては、スターカプラ300により転送された信号と、ブランチ100aに流れている無効化フレームおよびブランチ100dに流れている通常フレームとが衝突を起こし、エラーが発生する(S1118)。
次に、ECU200aは、ステップS1114で転送が開始されているハンドル操舵指示フレーム(偽装フレーム)にエラーが発生しているため、当該フレームすなわちハンドル操舵指示フレームを無効なものとして扱う(S1119)。このようにして、車に対する不正なハンドル制御は引き起こされないことになる。
1.13 無効化モード変更フレーム偽装時のシーケンス図
以下、監視ECUが送信しようとする無効化モード変更フレームが偽装されたときのシーケンスについて説明する。
図14Aは、本実施の形態に係るECUが攻撃者に制御を奪われたときに監視ECUが無効化モード変更フレームを送信するまでの動作シーケンスの一例を示す図である。図14Bは、本実施の形態に係る監視ECUが送信する無効化モード変更フレームが偽装されたときの動作シーケンスの一例を示す図である。図13Aと同様の要素には同一の符号を付しており、詳細な説明は省略する。すなわち、図14AのステップS1101〜ステップ2201は、図13Aと同様であるため、説明を省略する。
図14Bでは、図13Bと異なり、無効化モード変更フレームもECU200cに偽装されてしまい、監視ECUが正常に無効化モードに遷移できない場合のシーケンスが示されている。
すなわち、図13Bに示すように、ECU200cは、他の監視ECU400a、400dが無効化モードへ遷移しないように、無効化モード変更フレーム(偽装フレーム)を送信したとする(S1210)。
次に、監視ECU400dは、通常フレームとしての無効化モード変更フレームを送信する。より具体的には、監視ECU400dは、少し遅れて、他の監視ECU400a、400cを無効化モードに遷移させるための無効化モード変更フレーム(通常フレーム)を送信する(S1211)。
次に、スターカプラ300は、送信が先に開始された不正なフレームである無効化モード変更フレーム(偽装フレーム)を転送する(S1212)。
次に、監視ECU400dが接続されているブランチ100dでは、監視ECU400dの送信した無効化モード変更フレーム(通常フレーム)と、転送された不正なフレームである無効化モード変更フレーム(偽装フレーム)とが衝突を起こし、エラーが発生する。すると、監視ECU400dは、フレーム衝突によるエラーが発生したことすなわちフレームエラーを検知する(S1213)。
また、監視ECU400aと、監視ECU400cとは、不正なフレームである無効化モード変更フレーム(偽装フレーム)を受信する(S1214)。監視ECU400aと、監視ECU400cとは、偽装フレームを受信したため、無効化モードに遷移をしないものの、ブランチ状態を更新する。ここで、不正なフレームであるものの無効化モード変更フレーム自体が、他ブランチの管理ECUがエラーを検知した場合に、エラーを検知したフレームと同一のスロットIDとして送信される。このため、監視ECU400aと、監視ECU400cとは、受信した偽装フレームによりエラーが発生していることを検知できるので、偽装フレームを受信すると、ブランチ状態を更新する。
続いて、次のスロット単位の期間では、まず、監視ECU400dは、エラー通知異常フレームを送信する(S1215)。より具体的には、監視ECU400dは、前のスロット単位の期間において、無効化モード変更フレーム(通常フレーム)を、エラー無く送信できなかったため、エラー通知異常フレームを送信する。
次に、スターカプラ300が、エラー通知異常フレームを他のブランチ100a、100cに転送する(S1216)。
すると、監視ECU400aおよび監視ECU400cは、ブランチ100aおよびブランチ100cに流れるエラー通知異常フレームを受信するので、監視ECU400a、400cは、無効化モードに遷移する(S1217)。
このようにして、無効化モード変更フレームが不正なECUに偽装された場合でも、各監視ECUが無効化モードに遷移することで、偽装フレーム(不正なフレーム)を無効化することができる。
なお、説明は省略するが、エラー通知フレームおよびエラー通知異常フレームが不正なECUに偽装された場合にも同様に、各監視ECUが無効化モードに遷移することで無効化することができる。
2.効果等
以上のように、本開示の不正制御防止システムおよび不正制御防止方法によれば、タイムスロットに基づくタイムトリガー型の通信方式である車載ネットワークにおける不正フレームの送信を無効化することができる。より具体的には、本開示の不正制御防止システム等は、車載ネットワークにおけるエラー発生状況の不整合に基づいて、不正なフレームが送信されていることを検知することができる。そして、不正なフレームが送信されていることを検知した場合に、以降の不正なフレームの受信を無効化することで、不正フレームの送信を無効化することができる。このようにしてフェールセーフ機能を実現できるので、車載ネットワークの安全性を高めることができる。
ここで、無効化手法としては、不正なフレームと同一のタイムスロットにおいて、同一の識別子のフレームの送信を行わせることにより、不正フレームの受信を無効化する。つまり、不正なフレームと同一のスロットIDのフレームを送信することにより、フレームを衝突させ無効化させる。これにより、不正なフレームを適切に無効化することが可能となるので、車載ネットワークの安全性を高めることができる。
なお、無効化手法としては、フレーム受信時に当該IDのフレームを無視するなど、不正なフレームのフレームを受信させないことで、車載ネットワークにおける不正フレームの送信を無効化してもよい。また、不正なフレームよりも正規のフレームの送信開始タイミングを早めることで、不正なフレームによる影響を抑えてもよい。つまり、正規のECUにおいて、フレームの送信タイミングを早めることによって、スターカプラに、正規ECUが送信したフレームを転送してもらえるようにしてもよい。このようにして、車載ネットワークにおける不正フレームの送信を無効化してもよい。
また、本開示の不正制御防止システムおよび不正制御防止方法によれば、エラー通知を行うフレームが不正なフレームに偽装されたとしても、当該不正なフレームを無効化することができる。これにより、車載ネットワークの安全性を高めることができる。
また、タイムスロットに基づくタイムトリガー型の通信方式は、例えばスター型FlexRayであるので、本開示の不正制御防止システムおよび不正制御防止方法によれば、スロットIDを効率的に利用しつつ、エラー通知フレームの送受信が可能となる。よって、車載ネットワークの設計の自由度を保ちつつ、不正なフレームを適切に無効化することができ安全性を高めることができる。
(その他の変形例)
(1)上記の実施の形態では、タイムスロットに基づくタイムトリガー型の通信方式である車載ネットワークは、スター型のネットワークトポロジで構成されるとして説明したが、これに限らない。当該車載ネットワークは、例えばバス型、スター型とバス型のハイブリッドなどのネットワークトポロジで構成されてもよい。なお、バス型は、送信元となるECUの制御を奪取されたとき当該ECUが送信するフレームを無効化するのに効果的なネットワークトポロジとなる。
(2)上記の実施の形態では、エラー検知部は監視ECUにのみ存在したが、これに限らない。エラー検知部は各ECU上に存在してもよい。これにより、フレームのエラーを各ECUが検知できるので、不正なフレームに基づく制御をECU自身で抑制することができる。また、監視ECUを、別途に設ける必要も無くなるので、車載ネットワークの省スペース、省電力、省コスト化につながり効果的である。さらに、ブランチごとに、各ECUが本来受信するフレームの範囲を監視することができるので、1つの監視ECUでブランチ内に流れる全てのフレームを監視する必要がなくなり、処理負荷の分散につながり効果的である。
(3)上記の実施の形態では、ブランチごとに監視ECUが構成されていたが、これに限らない。少なくとも2つの監視ECU(第1のエラー監視ECU、第2のエラー監視ECU)が車載ネットワークの異なるブランチに構成されていればよい。
例えば監視ECUは、タイムスロットに基づくタイムトリガー型の通信方式である車載ネットワークにおける監視装置であって、車載ネットワークには、それぞれ所定のタイムスロット内でフレームを送受信する1以上の電子制御装置がブランチごとに接続されている。当該監視装置は、ブランチごとに設けられ、フレームでエラーが発生したことを通知するために送信されたエラー通知フレームであって車載ネットワークに流れるフレームにエラーが発生した場合にエラーの発生したフレームの種類を識別可能な情報を含むエラー通知フレームを受信するフレーム送受信部と、受信したエラー通知フレームに含まれるエラーの発生したフレームに関して自ブランチにおけるエラーが検知されない場合、当該フレームを無効化対象フレームとして、以降の当該フレームの受信を無効化する無効化モードへ監視装置を遷移させるエラー検知部と、を備える。
なお、監視ECUでは、さらに、フレーム送受信部は、車載ネットワークに流れるフレームを受信しており、エラー検知部は、フレーム送受信部が受信した第1フレームにエラーが発生したかどうか検知し、フレーム送受信部が受信した第1フレームにエラーが発生したことを検知した場合、エラーの発生した第1フレームの種類を識別可能な情報を含み、第1フレームでエラーが発生したことを通知するための第1のエラー通知フレームを、フレーム送受信部に送信させてもよい。
(4)上記の実施の形態では、監視ECUが、フレームのエラー検知状態に基づいて、無効化モード変更フレームを送信していたが、これに限らない。監視ECUは、フレームのエラー検知状態に限らず、無効化モード変更フレームを送信してもよい。
例えば、フレームに含まれるメッセージ認証コードが不正である場合、所定の異常検知手法に基づいて、フレームが不正であると判断した場合、監視ECUは、当該IDのフレームを無効化するための無効化モード変更フレームを送信してもよい。これにより、送信元となるECUの制御を攻撃者が直接奪う等により、フレームのエラーが検知されずに不正なフレームが送信されていたとしても、不正なフレームを無効化することが可能となるので、より安全性が高まる。
(5)上記の実施の形態では、動的フレームに、エラー通知フレームと、無効化モード変更フレーム、エラー通知異常フレームを割り当てていたが、静的フレームに割り当ててもよい。ただし、動的フレームに割り当てる方がよい。なぜなら、不正なECUが、エラー通知フレームを偽装して送信したとしても、偽装したフレームが送信された時点で、エラーが発生していることを他の監視ECUが把握することができるからである。この結果、不正なECUが、エラー通知フレームを無効化することが困難になり、安全性が高まるからである。
(6)上記の実施の形態では、監視ECUの存在するブランチに応じて、エラー通知フレームと、無効化モード変更フレームと、エラー通知異常フレームとを送信するサイクルが決定されていたが、ブランチに応じて送信するサイクルを決定しなくてもよい。
例えば、ブランチごとに異なるIDに、上記のフレームを割り当ててもよい。ただし、ブランチに応じて送信するサイクルを決定する方がよい。なぜなら、有限なIDの空間を効率的に利用することが可能となるからである。
(7)上記の実施の形態では、無効化モード変更フレームを起点に、監視ECUは無効化モードへ遷移したが、無効化モード変更フレームを起点にせずに無効化モードへ遷移してもよい。以下、より具体的に説明する。
例えば、車載ネットワークの異なるブランチに少なくとも2つの監視ECU(第1のエラー監視ECU、1以上の第2のエラー監視ECU)が構成されており、これらの監視ECUにはそれぞれエラー検知部とフレーム送受信部とが少なくとも構成されているとする。この場合、1以上の第2のエラー監視装置のそれぞれは、さらに、フレームの種別ごとにエラーの検知回数および、エラー通知フレームの受信回数の少なくとも1つを保持するエラー状態保持部を備えてもよい。そして、第1のエラー監視装置では、第1のエラー検知部は、さらに、第1のフレーム送受信部が送信したエラー通知フレームにエラーが発生したか否かを検知し、当該エラー通知フレームにエラーが発生したことを検知した場合、第1のフレーム送受信部に、エラー通知フレームの送受信について異常が発生したことを通知するためのエラー通知異常フレームを送信させてもよい。また、1以上の第2のエラー監視装置のそれぞれでは、第2のエラー検知部は、第2のフレーム送受信部がエラー通知異常フレームを受信した場合、エラー状態保持部に保持される検知回数および受信回数のいずれかが、所定数以上であるフレームを、無効化対象フレームとし、無効化モードへ当該1以上の第2のエラー監視装置を遷移させればよい。
これにより、エラー通知を行うフレームが不正なフレームに偽装されたとしても、不正なフレームを無効化することができる。さらに、無効化モード変更フレームを送信せずに、無効化モードへ遷移可能となるので、より早く不正なフレームを無効化したい場合に効果的である。よって、車載ネットワークの安全性をより高めることができる。
なお、監視ECUは、無効化モード変更フレームだけでなくエラー通知異常フレームを起点にせずに無効化モードへ遷移してもよい。例えば一の監視ECUが送信したエラー通知フレームを、1以上の他の監視ECUが受信した段階で、他の監視ECUが、エラー通知フレームに対応するIDにおいて、エラーを検知せずに受信していたとする。この場合、他の監視ECUは、不整合が生じているとして、無効化モードに遷移してもよい。また、上記の段階で、エラー通知フレームの受信数に応じて無効化モードに遷移してもよい。
これにより、無効化モード変更フレームを送信せずに、無効化モードへ遷移可能となり、より早く不正なフレームを無効化したい場合に効果的である。さらにエラー通知フレームの受信数によって、通信故障と不正なフレーム送信を判断することで、異常状況に応じた適切な対応が可能となる。
(8)上記の実施の形態では、監視ECUは、ブランチ状態としてエラー検知回数をカウントしていたが、これに限らない。監視ECUは、ブランチ状態としてカウントされるエラーの検知回数を、所定の時間内でのみカウントするとしてもよい。例えば64サイクルごとに値をリセットするなどしてもよい。これにより、過去のエラー検知の影響を除外することが可能となり、効果的である。
(9)上記の実施の形態では、フレームを無効化するために、同一のスロットIDを持つフレームを送信していたが、送信されるフレームすなわち同一のスロットIDを持つフレームはヌルフレームでもよく何でもよい。
(10)上記の実施の形態では、エラー通知フレームの受信により、監視ECUはブランチ状態を更新していたが、これに限らない。監視ECUは、エラー通知フレームがエラーとして検知された場合にもブランチ状態を更新してもよい。
これにより、不正なECUがエラー通知フレームを無効化するために、フレームの衝突を引き起こしたとしても、ペイロードの内容によらずエラーを検出可能となる。つまり、安全性向上に効果的である。
(11)上記の実施の形態では、あるブランチの監視ECUが、無効化モード変更フレームを他の全ブランチの監視ECUに対して送信していたが、これに限らない。あるブランチの監視ECUは、例えばペイロードに一部の監視ECUを宛先に含めるなどして、一部の監視ECUのみを無効化モードに遷移させてもよい。
さらに、例えば、あるブランチの監視ECUが、他のブランチそれぞれにおいて、監視ECUを順に無効化モードを切り替えてもよい。あるブランチの監視ECUが、ブランチごとに無効化モードに切り替えたときに、受信したエラー通知フレームの個数から不正なECUの存在するブランチを特定してもよい。以下、これについてより具体的に説明する。
例えば、車載ネットワークの異なるブランチに少なくとも2つの監視ECU(第1のエラー監視ECU、1以上の第2のエラー監視ECU)が構成されており、これらの監視ECUにはそれぞれエラー検知部とフレーム送受信部とが少なくとも構成されているとする。この場合、第1のエラー監視装置では、複数のブランチのうちの一つのブランチを無効化させる無効化切り替えフレームを第1のフレーム送受信部に送信させることで、当該一つのブランチに接続される少なくとも1つの第2のエラー監視装置を無効化モードに遷移させ、当該一つのブランチ以外の1以上のブランチに接続される少なくとも1つの第2のエラー監視装置を無効化モードに遷移させない期間を作りだしてもよい。そして、当該期間中に1以上の第2のエラー監視装置から受信するエラー通知フレームの個数を検知すればよい。さらに、第1のエラー監視装置では、無効化切り替えフレームを第1のフレーム送受信部に送信させたときから所定の時間経過後に、1以上のブランチのうちの一つのブランチを無効化させる無効化切り替えフレームを第1のフレーム送受信部に送信させることにより、複数のブランチの各々を順番に無効化させる無効化切り替えフレームを第1のフレーム送受信部に送信させる。最後に、1以上の第2のエラー監視装置から受信するエラー通知フレームの個数が最大であると検知した一つのブランチを不正ブランチと判定すればよい。ここで、無効化切り替えフレームは、無効化モードに遷移させることを示す有効化フラグと、無効化モードに遷移させるブランチを識別する値とを含む。1以上の第2のエラー監視装置のそれぞれでは、第2のエラー検知部は、第2のフレーム送受信部が無効化切り替えフレームを受信し、無効化切り替えフレームに含まれる値により識別されるブランチと、当該第2のエラー監視装置が接続されているブランチとが一致している場合、当該第2のエラー監視装置を、無効化モードへ遷移させればよい。
以下では、図15〜図16Dを用いて、各ブランチにおいて、無効化モードを切り替えたときのエラー通知フレームの個数から不正なECUの存在するブランチを特定する方法の一例について図を用いて説明する。
図15は、本実施の形態の変形例に係る無効化切り替えフレームの一例を示す図である。図11Aと同様の要素には同一の符号を付しており、詳細な説明は省略する。図15に示す無効化切り替えフレームは、図11Aに示すエラー通知フレームに対して、送信先ブランチの項目が増えている。なお、無効化モードに遷移させることを示す有効化フラグとは、ペイロードにモード変更要求を示すフレーム内容と無効化モードを示すモード切替情報とが含まれていることに該当する。よって、図15に示す無効化切り替えフレームは、ブランチ100dを送信元ブランチ、ブランチ100aを送信先ブランチとして、送信先ブランチに無効化モードに遷移させるために送信される。なお、図15に示す無効化切り替えフレームにおいて、ペイロードにモード変更要求を示すフレーム内容と通常モードを示すモード切替情報とが含まれている場合には、通常モード変更フレームと称する。
図16A〜図16Dは、本実施の形態の変形例に係る不正制御防止システムが、各ブランチを無効化モードに順次切り替えることで不正なECUの存在するブランチを特定する動作シーケンスの一例を示す図である。なお、点線で囲われている範囲内は、1スロット単位すなわち同一のスロットIDの期間を表す。
以下では、上記の実施の形態と同様に、ECU200cが外部通信モジュール230経由で攻撃者に制御を奪われ、攻撃者に制御を奪われたECU200cは、不正なハンドル操舵指示フレームなどの偽装フレームを送信するとして説明する。
まず、図16Aに示すように、ECU200dは、ブランチ100aに無効化切り替えフレームを送信する(S1310)。ここで、図15に示す無効化切り替えフレームにおいて、送信先ブランチが100aに設定され、送信元ブランチが100dに設定されている。
次に、スターカプラ300は、無効化切り替えフレームを、他のブランチ100a〜100cに転送する(S1311)。
次に、監視ECU400aは、無効化切り替えフレームを受信し、無効化モードに遷移する(S1312)。なお、監視ECU400b、400cも、無効化切り替えフレームを受信するが、自分が宛先でないため破棄する。つまり、監視ECU400b、400cは無効化モードに遷移しない。
続いて次のスロット単位の期間では、まず、制御を奪われたECU200cは、偽装フレームを送信するとする(S1313)。
次に、スターカプラ300は、偽装フレームを、他のブランチ100a、100b、100dに転送する(S1314)。
次に、攻撃者に制御を奪われていない(つまり正規の)ECU200dは、通常フレームを送信し、無効化モードに遷移した監視ECU400aは、無効化フレームを送信する(S1315)。
すると、ECU200aが接続されているブランチ100aとECU200dが接続されているブランチ100dとでは、フレーム衝突エラーが発生する(S1316)。より具体的には、ECU200aが接続されているブランチ100aでは、スターカプラ300から転送された偽装フレームと、ECU200aが送信した無効化フレームとが衝突し、エラーが発生する。ECU200dが接続されているブランチ100dでは、スターカプラ300から転送された偽装フレームと、ECU200dが送信した通常フレームとが衝突し、エラーが発生する。なお、監視ECU400a、400dは、フレーム衝突エラーの発生を検知している。
続いて次のスロット単位の期間では、まず、監視ECU400aは、ブランチ100aで発生したエラーに基づき、エラー通知フレームを送信する(S1317)。
次に、スターカプラ300は、エラー通知フレームを、ブランチ100dに転送する(S1318)。
すると、監視ECU400dは、ブランチ100dに流れるエラー通知フレームを受信し、ブランチ状態におけるエラー通知受信数を更新する(S1319)。
このようにして、監視ECU400dは、複数のブランチのうちの一つのブランチを無効化させる無効化切り替えフレームを送信し、当該一つのブランチに接続される監視ECU400aを無効化モードに遷移させ、当該一つのブランチ以外のブランチに接続される監視ECU400b、400cを無効化モードに遷移させない期間を作りだす。そして、当該期間中に監視ECU400aから受信するエラー通知フレームを検知する。
続いて、図16Bに示すように、次のスロット単位の期間では、まず、ECU200dは、ブランチ100aに通常モード変更フレームを送信する(S1320)。ここで、通常モード変更フレームは、図15において、送信先ブランチが100aに設定され、送信元ブランチが100dに設定され、ペイロードのフレーム内容にモード変更要求が設定され、モード切替情報に、通常モードが設定されている。
次に、スターカプラ300は、通常モード変更フレームを、ブランチ100aに転送する(S1321)。
次に、監視ECU400aは、通常モード変更フレームを受信し、無効化モードから通常モードに遷移する(S1322)。
続いて、次のスロット単位の期間では、まず、ECU200dは、ブランチ100bに、無効化切り替えフレームを送信する(S1323)。詳細は上述の通りであるため説明を省略する。
次に、スターカプラ300は、無効化切り替えフレームを、他のブランチ100a〜100cに転送すると(S1324)、監視ECU400bは、無効化切り替えフレームを受信し、無効化モードに遷移する(S1325)。
続いて次のスロット単位の期間では、まず、制御を奪われたECU200cは、偽装フレームを送信するとする(S1326)。
次に、スターカプラ300は、偽装フレームを、他のブランチ100a、100b、100dに転送する(S1327)。
次に、正規のECU200dは、通常フレームを送信し、無効化モードに遷移した監視ECU400aは、無効化フレームを送信する(S1328)。
すると、ECU200bが接続されているブランチ100bとECU200dが接続されているブランチ100dとでは、フレーム衝突エラーが発生する(S1329)。なお、監視ECU400b、400dは、ステップS1316と同様に、フレーム衝突エラーの発生を検知している。
続いて次のスロット単位の期間では、まず、監視ECU400bは、ブランチ100aで発生したエラーに基づき、エラー通知フレームを送信する(S1330)。
次に、スターカプラ300は、エラー通知フレームを、ブランチ100dに転送すると(S1331)、監視ECU400dは、ブランチ100dに流れるエラー通知フレームを受信し、ブランチ状態におけるエラー通知受信数を更新する(S1332)。
続いて、図16Cに示すように、次のスロット単位の期間では、上記と同様にして、監視ECU400bを通常モードに遷移させる(S1333)。
続いて、次のスロット単位の期間では、上記と同様にして、監視ECU400cを無効化モードに遷移させる(S1334)。
続いて次のスロット単位の期間では、まず、制御を奪われたECU200cは、偽装フレームを送信するとする(S1335)。
次に、スターカプラ300は、転送処理すなわち偽装フレームの転送を開始する(S1336)。
ここで、無効化モードに遷移している監視ECU400cは、無効化フレームを送信する(S1337)。
すると、ブランチ100cでは、既に送信が開始されている偽装フレームと、監視ECU400cが送信する無効化フレームとが衝突を起こし、エラーが発生する(S1338)。
すると、スターカプラ300は、フレーム衝突エラー発生した旨を示す信号を他のブランチ100d、100aに転送する(S1339)。
この場合、次のスロット単位の期間では、監視ECU400aは、ブランチ100aで発生したエラーに基づき、エラー通知フレームを送信し、監視ECU400dでエラー通知フレームを受信し、ブランチ状態におけるエラー通知受信数を更新する(S1340)。
また、次のスロット単位の期間では、同様に、監視ECU400bは、ブランチ100bで発生したエラーに基づき、エラー通知フレームを送信し、監視ECU400dでエラー通知フレームを受信し、ブランチ状態におけるエラー通知受信数を更新する(S1341)。
また、次のスロット単位の期間では、同様に、監視ECU400cは、ブランチ100cで発生したエラーに基づき、エラー通知フレームを送信し、監視ECU400dでエラー通知フレームを受信し、ブランチ状態におけるエラー通知受信数を更新する(S1342)。
続いて、図16Dに示すように、次のスロット単位の期間では、上記と同様にして、監視ECU400cを通常モードに遷移させる(S1343)。
以上のようにして、監視ECU400dは、各ブランチにおいて、無効化モードを切り替えたときのエラー通知フレームの個数をカウントすることができる。図16A〜図16Dに示す例では、ブランチ100cの無効化モード時にエラー通知数が最大の3回であるため、監視ECU400dは、ブランチ100cが不正ブランチ(異常ブランチ)であると特定できる。つまり、監視ECU400dは、複数のブランチの各々を順番に無効化させる無効化切り替えフレームを送信し、受信したエラー通知フレームの個数が最大であると検知した一つのブランチを不正ブランチと判定すればよい。換言すると、エラー通知フレームが最大となったときに、無効化モードとなっている監視ECUが存在するブランチが、不正なECUが存在する不正ブランチであると判定できる。
(12)また、上記の実施の形態では、ブランチ状態は、平文で保存していたが、暗号化されて保持していてもよい。
(13)また、上記の実施の形態では、エラー通知フレーム、無効化モード変更フレーム、および、エラー通知異常フレームは、平文のまま通信されているとして説明していたが、これに限らない。これらのフレームは、暗号化されて通信されてもよいし、これらのフレームにメッセージ認証コードが付加されて通信されてもよい。これにより、エラー通知フレームの通信、モードの切り替えを安全に実現することが可能となるので、安全性の向上が期待できる。
(14)上記の実施の形態では、無効化モードへの遷移は、無効化モード変更フレームなどのフレームの受信を起点に行っていたが、実際の遷移は次のような条件に応じて行うとしてもよい。すなわち、走行中および停止中などを含む車両の状態、制御フレーム、または、状態フレームといったフレームの属性に応じて、無効化モードへ実際に遷移するかを決定してもよい。これにより、不正な制御につながるフレームの無効化を、必要に応じて実行することができ、省電力につながる。
(15)上記の実施の形態では、車載ネットワークとして、FlexRayプロトコルを用いていたが、これに限るものではない。例えば、CAN、CAN−FD(CAN with Frexible Data Rate)、Ethernet、LIN(Local Interconnect Network)、MOST(Media Oriented Systems Transport)などを用いてもよい。あるいはこれらのネットワークをサブネットワークとして、組み合わせたネットワークであってもよい。特にタイムトリガー方式を採用しているネットワークに対して有効である。
(その他の実施の形態)
なお、本開示を上記の実施の形態および変形例に基づいて説明してきたが、本開示は、これらに限定されないのはもちろんである。以下のような場合も本開示に含まれる。
(1)上記の実施の形態における各装置は、具体的には、マイクロプロセッサ、ROM、RAM、ハードディスクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュータシステムである。RAMまたはハードディスクユニットには、コンピュータプログラムが記録されている。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、各装置は、その機能を達成する。ここでコンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。
(2)上記の実施の形態における各装置は、構成する構成要素の一部または全部は、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に置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてありえる。
(3)上記の各装置を構成する構成要素の一部または全部は、各装置に脱着可能なICカードまたは単体のモジュールから構成されているとしてもよい。ICカードまたはモジュールは、マイクロプロセッサ、ROM、RAMなどから構成されるコンピュータシステムである。ICカードまたはモジュールは、上記の超多機能LSIを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、ICカードまたはモジュールは、その機能を達成する。このICカードまたはこのモジュールは、耐タンパ性を有するとしてもよい。
(4)本開示は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、コンピュータプログラムからなるデジタル信号であるとしてもよい。
また、本開示は、コンピュータプログラムまたはデジタル信号をコンピュータで読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD−ROM、MO、DVD、DVD−ROM、DVD−RAM、BD(Blu−ray(登録商標) Disc)、半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されているデジタル信号であるとしてもよい。
また、本開示は、コンピュータプログラムまたはデジタル信号を、電気通信回線、無線または有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。
また、本開示は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、メモリは、上記コンピュータプログラムを記録しており、マイクロプロセッサは、コンピュータプログラムにしたがって動作するとしてもよい。
また、プログラムまたはデジタル信号を記録媒体に記録して移送することにより、またはプログラムまたはデジタル信号を、ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
(5)上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
本開示は、車載ネットワークに流れるフレームを観測し、不正なフレームを検出し無効化を行う、安全な車載ネットワークシステムを提供する。これにより車載ネットワークシステム全体として、安全な状態を維持することができる。
10 車載ネットワークシステム
100a、100b、100c、100d ブランチ
200a、200b、200c、200d ECU
201、401 フレーム送受信部
202 フレーム解釈部
203 外部機器制御部
204 フレーム生成部
205 通信用設定パラメータ保持部
210 ハンドル
220 ギア
230 外部通信モジュール
240 カメラ
300 スターカプラ
301a、301b、301c、301d トランシーバ部
302 ルーティング部
400a、400b、400c、400d 監視ECU
402 エラー検知部
403 正規IDリスト保持部
404 ブランチ状態保持部

Claims (14)

  1. タイムスロットに基づくタイムトリガー型の通信方式である車載ネットワークにおける不正制御防止システムであって、
    前記車載ネットワークには、それぞれ所定のタイムスロット内でフレームを送受信する1以上の電子制御装置がブランチごとに接続されており、
    前記不正制御防止システムは、前記ブランチごとにエラー監視装置を備え、
    前記エラー監視装置のうちの第1のエラー監視装置は、
    前記車載ネットワークに流れるフレームを受信する第1のフレーム送受信部と、
    前記第1のフレーム送受信部が受信したフレームにエラーが発生したかどうか検知し、前記第1のフレーム送受信部が受信したフレームにエラーが発生したことを検知した場合、エラーの発生した前記フレームの種類を識別可能な情報を含み、前記フレームでエラーが発生したことを通知するためのエラー通知フレームを、前記第1のフレーム送受信部に送信させる第1のエラー検知部と、を有し、
    前記エラー監視装置のうちの前記第1のエラー監視装置と異なる1以上の第2のエラー監視装置はそれぞれ、
    前記エラー通知フレームを受信する第2のフレーム送受信部と、
    受信した前記エラー通知フレームに含まれるエラーの発生した前記フレームに関して自ブランチにおけるエラーが検知されない場合、前記フレームを無効化対象フレームとして、以降の前記フレームの受信を無効化する無効化モードへ前記1以上の第2のエラー監視装置を遷移させる第2のエラー検知部とを有する、
    不正制御防止システム。
  2. 前記1以上の第2のエラー監視装置それぞれでは、
    前記第2のフレーム送受信部は、前記車載ネットワークの所定のタイムスロット内でフレームを送受信し、
    前記第2のエラー検知部は、前記1以上の第2のエラー監視装置が前記無効化モードである場合、前記第2のフレーム送受信部に、前記無効化対象フレームのフレームを受信させない、または、前記第2のフレーム送受信部に、前記無効化対象フレームと同一のタイムスロットにおいて、同一の識別子のフレームの送信を行わせることにより、前記無効化対象フレームの受信を無効化する、
    請求項1記載の不正制御防止システム。
  3. 前記第1のエラー監視装置では、
    前記第1のエラー検知部は、前記第1のフレーム送受信部が送信した前記エラー通知フレームに含まれる、エラーの発生した前記フレームに関して、前記1以上の第2のエラー監視装置から自ブランチでエラーが発生したことを通知するためのエラー通知フレームを受信しないことを検知した場合、前記1以上の第2のエラー監視装置それぞれを前記無効化モードへ遷移させる無効化モード変更フレームを、前記第1のフレーム送受信部に送信させ、
    前記1以上の第2のエラー監視装置それぞれでは、
    前記第2のエラー検知部は、前記第2のフレーム送受信部が前記無効化モード変更フレームを受信したことを検知した場合、前記自ブランチにおけるエラーが検知されない場合として、前記無効化モードへ前記1以上の第2のエラー監視装置を遷移させる、
    請求項2記載の不正制御防止システム。
  4. 前記第1のエラー監視装置では、
    前記第1のエラー検知部は、前記第1のフレーム送受信部が送信した前記エラー通知フレームに含まれるエラーの発生した前記フレームに関して、前記1以上の第2のエラー監視装置から自ブランチでエラーが発生したことを通知するためのエラー通知フレームを受信しないことを検知した場合、前記1以上の第2のエラー監視装置それぞれを前記無効化モードへ遷移させる無効化モード変更フレームを、前記第1のフレーム送受信部に送信させ、
    前記第1のエラー検知部は、さらに、前記第1のフレーム送受信部が送信した前記無効化モード変更フレームにエラーが発生したか否かを検知し、当該無効化モード変更フレームにエラーが発生したことを検知した場合、前記第1のフレーム送受信部に、前記無効化モード変更フレームの送受信について異常が発生したことを通知するためのエラー通知異常フレームを送信させ、
    前記1以上の第2のエラー監視装置それぞれでは、
    前記第2のエラー検知部は、前記第2のフレーム送受信部が前記エラー通知異常フレームを受信したことを検知した場合、前記無効化モードへ前記1以上の第2のエラー監視装置を遷移させる、
    請求項2または3記載の不正制御防止システム。
  5. 前記1以上の第2のエラー監視装置のそれぞれは、さらに、フレームの種別ごとにエラーの検知回数および、エラー通知フレームの受信回数の少なくとも1つを保持する、エラー状態保持部を備え、
    前記第1のエラー監視装置では、
    前記第1のエラー検知部は、さらに、前記第1のフレーム送受信部が送信した前記エラー通知フレームにエラーが発生したか否かを検知し、当該エラー通知フレームにエラーが発生したことを検知した場合、前記第1のフレーム送受信部に、前記エラー通知フレームの送受信について異常が発生したことを通知するためのエラー通知異常フレームを送信させ、
    前記1以上の第2のエラー監視装置のそれぞれでは、
    前記第2のエラー検知部は、前記第2のフレーム送受信部が前記エラー通知異常フレームを受信した場合、前記エラー状態保持部に保持される前記検知回数および前記受信回数のいずれかが、所定数以上であるフレームを、前記無効化対象フレームとし、前記無効化モードへ前記1以上の第2のエラー監視装置を遷移させる、
    請求項2記載の不正制御防止システム。
  6. 前記タイムトリガー型の通信方式は、FlexRayプロトコルであり、
    前記エラーは、FlexRayプロトコルに定められる、SyncError、ContentError、BoundaryViolation、および、TxConflictのいずれかである、
    請求項1〜5のいずれか1項記載の不正制御防止システム。
  7. 前記車載ネットワークは、スターカプラを有するスター型トポロジで構成され、前記スターカプラを介し、複数のブランチにフレームの送受信が行われ、
    前記エラー通知フレームは、FlexRayプロトコルにおける動的フレームであり、
    前記第1のフレーム送受信部は、前記第1のエラー監視装置が接続されるブランチに応じて、前記エラー通知フレームを、送信するサイクル数を決定する、
    請求項6記載の不正制御防止システム。
  8. 前記第1のエラー監視装置では、
    複数のブランチのうちの一つのブランチを無効化させる無効化切り替えフレームを前記第1のフレーム送受信部に送信させることで、前記一つのブランチに接続される少なくとも1つの第2のエラー監視装置を前記無効化モードに遷移させ、前記一つのブランチ以外の1以上のブランチに接続される少なくとも1つの第2のエラー監視装置を前記無効化モードに遷移させない期間を作りだし、当該期間中に前記1以上の第2のエラー監視装置から受信するエラー通知フレームの個数を検知し、
    前記無効化切り替えフレームを前記第1のフレーム送受信部に送信させたときから所定の時間経過後に、前記1以上のブランチのうちの一つのブランチを無効化させる無効化切り替えフレームを前記第1のフレーム送受信部に送信させることにより、前記複数のブランチの各々を順番に無効化させる無効化切り替えフレームを前記第1のフレーム送受信部に送信させ、
    前記エラー通知フレームの個数が最大であると検知した一つのブランチを不正ブランチと判定する、
    請求項7記載の不正制御防止システム。
  9. 前記無効化切り替えフレームは、前記無効化モードに遷移させることを示す有効化フラグと、前記無効化モードに遷移させるブランチを識別する値とを含む、
    請求項8記載の不正制御防止システム。
  10. 前記1以上の第2のエラー監視装置のそれぞれでは、
    前記第2のエラー検知部は、前記第2のフレーム送受信部が前記無効化切り替えフレームを受信し、前記無効化切り替えフレームに含まれる前記値により識別されるブランチと、当該第2のエラー監視装置が接続されているブランチとが一致している場合、当該第2のエラー監視装置を、前記無効化モードへ遷移させる、
    請求項9記載の不正制御防止システム。
  11. 前記1以上の第2のエラー監視装置のそれぞれでは、
    前記第2のフレーム送受信部は、前記車載ネットワークの所定のタイムスロット内で第1のフレームを送信し、
    前記第2のエラー検知部は、前記1以上の第2のエラー監視装置が前記無効化モードである場合、前記第2のフレーム送受信部に、前記第1のフレームを、前記所定のタイムスロット内で予め定められた送信開始タイミングよりも早い送信開始タイミングで送信させることで、前記無効化対象フレームの受信を無効化する、
    請求項1記載の不正制御防止システム。
  12. タイムスロットに基づくタイムトリガー型の通信方式である車載ネットワークにおける監視装置であって、
    前記車載ネットワークには、それぞれ所定のタイムスロット内でフレームを送受信する1以上の電子制御装置がブランチごとに接続されており、
    前記監視装置は、前記ブランチごとに設けられ、
    前記フレームでエラーが発生したことを通知するために送信されたエラー通知フレームであって前記車載ネットワークに流れるフレームにエラーが発生した場合にエラーの発生した前記フレームの種類を識別可能な情報を含むエラー通知フレームを受信するフレーム送受信部と、
    受信した前記エラー通知フレームに含まれるエラーの発生した前記フレームに関して自ブランチにおけるエラーが検知されない場合、前記フレームを無効化対象フレームとして、以降の前記フレームの受信を無効化する無効化モードへ前記監視装置を遷移させるエラー検知部とを備える、
    監視装置。
  13. 前記フレーム送受信部は、前記車載ネットワークに流れるフレームを受信しており、
    前記エラー検知部は、前記フレーム送受信部が受信した第1フレームにエラーが発生したかどうか検知し、前記フレーム送受信部が受信した前記第1フレームにエラーが発生したことを検知した場合、エラーの発生した前記第1フレームの種類を識別可能な情報を含み、前記第1フレームでエラーが発生したことを通知するための第1のエラー通知フレームを、前記フレーム送受信部に送信させる、
    請求項12記載の監視装置。
  14. タイムスロットに基づくタイムトリガー型の通信方式である車載ネットワークにおける不正制御防止システムにおける不正制御防止方法であって、
    前記車載ネットワークには、それぞれ所定のタイムスロット内でフレームを送受信する1以上の電子制御装置がブランチごとに接続されており、
    前記不正制御防止システムは、前記ブランチごとにエラー監視装置を備え、
    前記エラー監視装置のうちの第1のエラー監視装置が、前記車載ネットワークに流れるフレームを受信する第1のフレーム送受信ステップと、
    前記第1のエラー監視装置が、前記第1のフレーム送受信ステップにおいて受信したフレームにエラーが発生したかどうか検知し、前記第1のフレーム送受信ステップにおいて受信したフレームにエラーが発生したことを検知した場合、エラーの発生した前記フレームの種類を識別可能な情報を含み、前記フレームでエラーが発生したことを通知するためのエラー通知フレームを、前記第1のフレーム送受信ステップにおいて送信させる第1のエラー検知ステップと、を含み、
    前記エラー監視装置のうちの前記第1のエラー監視装置と異なる1以上の第2のエラー監視装置のそれぞれが、前記エラー通知フレームを受信する第2のフレーム送受信ステップと、
    前記1以上の第2のエラー監視装置のそれぞれが、前記第2のフレーム送受信ステップにおいて受信した前記エラー通知フレームに含まれるエラーの発生した前記フレームに関して、自ブランチにおけるエラーが検知されない場合、前記フレームを無効化対象フレームとして、以降の前記フレームの受信を無効化する無効化モードへ前記1以上の第2のエラー監視装置を遷移させる第2のエラー検知ステップとを含む、
    不正制御防止方法。
JP2020554037A 2018-11-02 2019-10-31 不正制御防止システム、監視装置、および、不正制御防止方法 Active JP7340537B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JPPCT/JP2018/040832 2018-11-02
PCT/JP2018/040832 WO2020090108A1 (ja) 2018-11-02 2018-11-02 不正制御防止システムおよび、不正制御防止方法
PCT/JP2019/042777 WO2020090976A1 (ja) 2018-11-02 2019-10-31 不正制御防止システム、監視装置、および、不正制御防止方法

Publications (2)

Publication Number Publication Date
JPWO2020090976A1 true JPWO2020090976A1 (ja) 2021-09-30
JP7340537B2 JP7340537B2 (ja) 2023-09-07

Family

ID=70463074

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020554037A Active JP7340537B2 (ja) 2018-11-02 2019-10-31 不正制御防止システム、監視装置、および、不正制御防止方法

Country Status (5)

Country Link
US (1) US11909748B2 (ja)
EP (1) EP3876480B1 (ja)
JP (1) JP7340537B2 (ja)
CN (1) CN112823494B (ja)
WO (2) WO2020090108A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6603617B2 (ja) * 2015-08-31 2019-11-06 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ ゲートウェイ装置、車載ネットワークシステム及び通信方法
JP7269922B2 (ja) * 2018-05-23 2023-05-09 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 通信制御装置、モビリティネットワークシステム、通信制御方法およびプログラム
WO2022185370A1 (ja) 2021-03-01 2022-09-09 株式会社オートネットワーク技術研究所 車載装置、プログラム及び情報処理方法
JP2023161698A (ja) * 2022-04-26 2023-11-08 日立Astemo株式会社 電子制御装置

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010521858A (ja) * 2007-03-14 2010-06-24 エヌエックスピー ビー ヴィ 分散通信システムのノード、分散通信システムに結合されたノード及び監視装置
US20100262689A1 (en) * 2007-11-14 2010-10-14 Nxp B.V. Star network and method for preventing a repeatedly transmission of a control symbol in such a star network
US20130070782A1 (en) * 2011-09-21 2013-03-21 Nxp B.V. System and method for encoding a slot table for a communications controller
JP2013131907A (ja) * 2011-12-21 2013-07-04 Toyota Motor Corp 車両ネットワーク監視装置
US20140047282A1 (en) * 2012-08-13 2014-02-13 Nxp B.V. Flexray network runtime error detection and containment
WO2015151418A1 (ja) * 2014-04-03 2015-10-08 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ ネットワーク通信システム、不正検知電子制御ユニット及び不正対処方法
WO2017037982A1 (ja) * 2015-08-31 2017-03-09 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ ゲートウェイ装置、車載ネットワークシステム及び転送方法
JP2018011288A (ja) * 2016-07-05 2018-01-18 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 不正制御抑止方法、不正制御抑止装置及び車載ネットワークシステム

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103999410B (zh) * 2011-12-22 2017-04-12 丰田自动车株式会社 通信系统及通信方法
US8817810B2 (en) * 2012-06-27 2014-08-26 Nxp B.V. Communications apparatus, system and method with error mitigation
US8797884B2 (en) * 2012-06-27 2014-08-05 Nxp B.V. Network communication apparatus, system and method
JP6077728B2 (ja) * 2014-12-01 2017-02-08 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 不正検知電子制御ユニット、車載ネットワークシステム及び不正検知方法
JP6836340B2 (ja) * 2015-09-29 2021-02-24 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 不正検知電子制御ユニット、車載ネットワークシステム及び通信方法
CN107111716B (zh) * 2015-12-14 2022-03-29 松下电器(美国)知识产权公司 评价装置、评价系统以及评价方法
JP6404848B2 (ja) * 2016-03-15 2018-10-17 本田技研工業株式会社 監視装置、及び、通信システム
WO2018008453A1 (ja) * 2016-07-05 2018-01-11 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 異常検知電子制御ユニット、車載ネットワークシステム及び異常検知方法
EP3609139B1 (en) * 2017-04-07 2022-03-30 Panasonic Intellectual Property Corporation of America Method for determining reference for unauthorized communication detection, system for determining reference for unauthorized communication detection, and program

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010521858A (ja) * 2007-03-14 2010-06-24 エヌエックスピー ビー ヴィ 分散通信システムのノード、分散通信システムに結合されたノード及び監視装置
US20100262689A1 (en) * 2007-11-14 2010-10-14 Nxp B.V. Star network and method for preventing a repeatedly transmission of a control symbol in such a star network
US20130070782A1 (en) * 2011-09-21 2013-03-21 Nxp B.V. System and method for encoding a slot table for a communications controller
JP2013131907A (ja) * 2011-12-21 2013-07-04 Toyota Motor Corp 車両ネットワーク監視装置
US20140047282A1 (en) * 2012-08-13 2014-02-13 Nxp B.V. Flexray network runtime error detection and containment
WO2015151418A1 (ja) * 2014-04-03 2015-10-08 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ ネットワーク通信システム、不正検知電子制御ユニット及び不正対処方法
WO2017037982A1 (ja) * 2015-08-31 2017-03-09 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ ゲートウェイ装置、車載ネットワークシステム及び転送方法
JP2018011288A (ja) * 2016-07-05 2018-01-18 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 不正制御抑止方法、不正制御抑止装置及び車載ネットワークシステム

Also Published As

Publication number Publication date
CN112823494A (zh) 2021-05-18
CN112823494B (zh) 2022-04-29
US11909748B2 (en) 2024-02-20
EP3876480A1 (en) 2021-09-08
WO2020090108A1 (ja) 2020-05-07
EP3876480B1 (en) 2023-07-05
WO2020090976A1 (ja) 2020-05-07
JP7340537B2 (ja) 2023-09-07
EP3876480A4 (en) 2022-01-05
US20210226966A1 (en) 2021-07-22

Similar Documents

Publication Publication Date Title
JP7340537B2 (ja) 不正制御防止システム、監視装置、および、不正制御防止方法
EP3148154B1 (en) Controller area network (can) device and method for controlling can traffic
Wolf et al. Security in automotive bus systems
WO2016185514A1 (ja) 攻撃検出装置
KR101879014B1 (ko) 통신 네트워크용 연결 노드
KR101754951B1 (ko) Can 통신 기반 해킹공격에 안전한 can 컨트롤러
EP2220827B1 (en) Star network and method for preventing a repeatedly transmission of a control symbol in such a star network
KR101966345B1 (ko) Can 통신 기반 우회 공격 탐지 방법 및 시스템
KR101972457B1 (ko) Can 통신 기반 해킹공격 탐지 방법 및 시스템
CN111077883A (zh) 一种基于can总线的车载网络安全防护方法及装置
Murvay et al. Practical security exploits of the FlexRay in-vehicle communication protocol
JP6920667B2 (ja) 情報処理装置、情報処理システム、情報処理方法、及びプログラム
JP6099269B2 (ja) データ排除装置
KR102352504B1 (ko) 이더넷 스위치 정보에 기초한 미등록 장치 검증 시스템 및 방법
KR101825711B1 (ko) Can 통신 기반 해킹공격에 안전한 can 컨트롤러
WO2020021715A1 (ja) 不正対処方法、不正対処装置および通信システム
Talebi A Security Evaluation and Internal Penetration Testing Of the CAN-bus
Douss et al. State-of-the-art survey of in-vehicle protocols and automotive Ethernet security and vulnerabilities
CN111788800B (zh) 帧传送方法以及安全星型耦合器
KR20180039586A (ko) Can 통신 기반 해킹공격에 안전한 can 컨트롤러
CN108141357B (zh) 用于在网络中生成秘密的电路装置
CN210149261U (zh) 车载智能电子系统
TW200304742A (en) Communication network and arrangement for use therein
WO2020021713A1 (ja) 不正検知方法および不正検知電子制御装置
Galletti CANguru: a reliable intrusion detection system for CAN and CAN FD networks

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220830

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230828

R150 Certificate of patent or registration of utility model

Ref document number: 7340537

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150