IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカの特許一覧

(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-10-06
(45)【発行日】2023-10-17
(54)【発明の名称】不正対処方法、及び、不正対処装置
(51)【国際特許分類】
   H04L 12/28 20060101AFI20231010BHJP
   H04L 12/40 20060101ALI20231010BHJP
【FI】
H04L12/28 200Z
H04L12/28 100A
H04L12/40 Z
【請求項の数】 20
(21)【出願番号】P 2020532409
(86)(22)【出願日】2019-07-23
(86)【国際出願番号】 JP2019028836
(87)【国際公開番号】W WO2020022327
(87)【国際公開日】2020-01-30
【審査請求日】2022-05-11
(31)【優先権主張番号】PCT/JP2018/028297
(32)【優先日】2018-07-27
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】514136668
【氏名又は名称】パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ
【氏名又は名称原語表記】Panasonic Intellectual Property Corporation of America
(74)【代理人】
【識別番号】100109210
【弁理士】
【氏名又は名称】新居 広守
(74)【代理人】
【識別番号】100137235
【弁理士】
【氏名又は名称】寺谷 英作
(74)【代理人】
【識別番号】100131417
【弁理士】
【氏名又は名称】道坂 伸一
(72)【発明者】
【氏名】氏家 良浩
(72)【発明者】
【氏名】岸川 剛
(72)【発明者】
【氏名】平野 亮
【審査官】安藤 一道
(56)【参考文献】
【文献】特表2009-516410(JP,A)
【文献】国際公開第2013/171829(WO,A1)
【文献】国際公開第2018/131334(WO,A1)
【文献】国際公開第2016/116973(WO,A1)
【文献】特開2017-195524(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 12/28
H04L 12/40
(57)【特許請求の範囲】
【請求項1】
車載ネットワークにおける不正対処方法であって、
フレームの送受信を行うフレーム送受信ステップと、
不正なフレームを検知する不正検知ステップと、
前記不正検知ステップにおいて不正が検知された場合に、不正が検知されたフレームの送信タイミングを切り替える切り替え処理ステップとを含み、
前記切り替え処理ステップでは、所定の情報に応じて切り替え先の送信タイミングを変更し、
前記所定の情報は、前記不正検知ステップにおける検知回数を含み、
前記切り替え処理ステップでは、前記検知回数に応じた送信タイミングを前記切り替え先の送信タイミングに決定する
不正対処方法。
【請求項2】
前記切り替え処理ステップでは、前記検知回数のハッシュ値を算出し、前記不正が検知されたフレームのペイロードセグメントのビット数で前記ハッシュ値の剰余を算出し、前記剰余に応じた送信タイミングを前記切り替え先の送信タイミングに決定する
請求項に記載の不正対処方法。
【請求項3】
車載ネットワークにおける不正対処方法であって、
フレームの送受信を行うフレーム送受信ステップと、
不正なフレームを検知する不正検知ステップと、
前記不正検知ステップにおいて不正が検知された場合に、不正が検知されたフレームの送信タイミングを切り替える切り替え処理ステップとを含み、
前記切り替え処理ステップでは、所定の情報に応じて切り替え先の送信タイミングを変更し、
前記所定の情報は、前記不正が検知されたフレームの送信時刻を示す情報を含み、
前記切り替え処理ステップでは、前記送信時刻を示す情報に応じた送信タイミングを前記切り替え先の送信タイミングに決定する
正対処方法。
【請求項4】
前記切り替え処理ステップでは、前記送信時刻を示す情報をシードに疑似乱数を生成し、前記不正が検知されたフレームのペイロードセグメントのビット数で前記疑似乱数の剰余を算出し、前記剰余に応じた送信タイミングを前記切り替え先の送信タイミングに決定する
請求項に記載の不正対処方法。
【請求項5】
前記切り替え処理ステップでは、さらに、前記ペイロードセグメントを構成するビット列に対して、前記剰余に応じたビットシフト量によりビットシフト演算処理を行う
請求項又はに記載の不正対処方法。
【請求項6】
車載ネットワークにおける不正対処方法であって、
フレームの送受信を行うフレーム送受信ステップと、
不正なフレームを検知する不正検知ステップと、
前記不正検知ステップにおいて不正が検知された場合に、不正が検知されたフレームの送信タイミングを切り替える切り替え処理ステップとを含み、
前記切り替え処理ステップでは、所定の情報に応じて切り替え先の送信タイミングを変更し、
前記所定の情報は、前記不正が検知されたフレームの危険度を含み、
前記切り替え処理ステップでは、前記危険度に応じた送信タイミングを前記切り替え先の送信タイミングに決定する
正対処方法。
【請求項7】
前記切り替え処理ステップは、前記危険度が第1閾値以上である場合に実行される
請求項に記載の不正対処方法。
【請求項8】
前記切り替え処理ステップでは、前記危険度が第1閾値以上である場合、さらに前記不正が検知されたフレームのペイロードセグメントを構成するビット列に対して、前記危険度に応じたビットシフト量によりビットシフト演算処理を行う
請求項に記載の不正対処方法。
【請求項9】
前記切り替え処理ステップでは、前記危険度が前記第1閾値より低い第2閾値以上であり、かつ、前記第1閾値未満である場合、前記ペイロードセグメントを構成するビット列に対して、前記危険度に応じたビットシフト量によりビットシフト演算処理を行う
請求項に記載の不正対処方法。
【請求項10】
前記切り替え処理ステップでは、前記危険度が前記第1閾値より高い第3閾値以上である場合、前記危険度に応じた複数の送信タイミングを前記切り替え先の送信タイミングに決定する
請求項のいずれか1項に記載の不正対処方法。
【請求項11】
車載ネットワークにおける不正対処方法であって、
フレームの送受信を行うフレーム送受信ステップと、
不正なフレームを検知する不正検知ステップと、
前記不正検知ステップにおいて不正が検知された場合に、不正が検知されたフレームの送信タイミングを切り替える切り替え処理ステップとを含み、
前記切り替え処理ステップでは、所定の情報に応じて切り替え先の送信タイミングを変更し、
前記所定の情報は、車両の車両状態を含み、
前記切り替え処理ステップでは、前記車両状態に応じた送信タイミングを前記切り替え先の送信タイミングに決定する
正対処方法。
【請求項12】
前記切り替え処理ステップは、前記不正検知ステップにおける検知回数が所定回数以上である場合に実行される
請求項1~11のいずれか1項に記載の不正対処方法。
【請求項13】
前記切り替え処理ステップは、前回不正が検知されてからの経過時間が所定時間以下である場合に実行される
請求項1~11のいずれか1項に記載の不正対処方法。
【請求項14】
前記切り替え処理ステップでは、前記不正が検知されたフレームの送信タイミングにおいて当該フレームが送信された後に、当該フレームの送信タイミングを切り替える
請求項1~13のいずれか1項に記載の不正対処方法。
【請求項15】
前記車載ネットワークにおける通信方式は、タイムスロットに基づくタイムトリガー型の通信方式であり、
前記フレーム送受信ステップでは、予め定められたタイムスロット内で、フレームの送受信が行われ、
前記切り替え処理ステップでは、前記切り替え先の送信タイミングとして、切り替え先のスロットを決定する
請求項1~14のいずれか1項に記載の不正対処方法。
【請求項16】
前記タイムスロットは、フレームが割り当てられていない複数の空きスロットを含み、
前記切り替え処理ステップでは、前記所定の情報に応じた空きスロットを切り替え先のスロットに決定する
請求項15に記載の不正対処方法。
【請求項17】
車載ネットワークにおける不正対処装置であって、
フレームの送受信を行うフレーム送受信部と、
不正なフレームを検知する不正検知部と、
前記不正検知部において不正が検知された場合に、不正が検知されたフレームの送信タイミングを切り替える切り替え処理部とを備え、
前記切り替え処理部は、所定の情報に応じて切り替え先の送信タイミングを変更し、
前記所定の情報は、前記不正検知部における検知回数を含み、
前記切り替え処理部では、前記検知回数に応じた送信タイミングを前記切り替え先の送信タイミングに決定する
不正対処装置。
【請求項18】
車載ネットワークにおける不正対処装置であって、
フレームの送受信を行うフレーム送受信部と、
不正なフレームを検知する不正検知部と、
前記不正検知部において不正が検知された場合に、不正が検知されたフレームの送信タイミングを切り替える切り替え処理部とを備え、
前記切り替え処理部は、所定の情報に応じて切り替え先の送信タイミングを変更し、
前記所定の情報は、前記不正が検知されたフレームの送信時刻を示す情報を含み、
前記切り替え処理部では、前記送信時刻を示す情報に応じた送信タイミングを前記切り替え先の送信タイミングに決定する
不正対処装置。
【請求項19】
車載ネットワークにおける不正対処装置であって、
フレームの送受信を行うフレーム送受信部と、
不正なフレームを検知する不正検知部と、
前記不正検知部において不正が検知された場合に、不正が検知されたフレームの送信タイミングを切り替える切り替え処理部とを備え、
前記切り替え処理部は、所定の情報に応じて切り替え先の送信タイミングを変更し、
前記所定の情報は、前記不正が検知されたフレームの危険度を含み、
前記切り替え処理部では、前記危険度に応じた送信タイミングを前記切り替え先の送信タイミングに決定する
不正対処装置。
【請求項20】
車載ネットワークにおける不正対処装置であって、
フレームの送受信を行うフレーム送受信部と、
不正なフレームを検知する不正検知部と、
前記不正検知部において不正が検知された場合に、不正が検知されたフレームの送信タイミングを切り替える切り替え処理部とを備え、
前記切り替え処理部は、所定の情報に応じて切り替え先の送信タイミングを変更し、
前記所定の情報は、車両の車両状態を含み、
前記切り替え処理部では、前記車両状態に応じた送信タイミングを前記切り替え先の送信タイミングに決定する
不正対処装置。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、車載ネットワーク上における不正対処方法、及び、不正対処装置に関する。
【背景技術】
【0002】
近年、自動車の中のシステムには、電子制御ユニット(以下、ECU)と呼ばれる装置が多数配置されている。これらのECUをつなぐネットワークを車載ネットワークと呼ばれる。車載ネットワークには、多数の規格が存在する。その中でも、現在、主流となっているController Area Network(以下CAN(登録商標))よりも高速、高信頼プロトコルとして設計されたFlexRay(登録商標)という規格が存在する。
【0003】
FlexRayでは2本のより線の電圧差により“0”の値と“1”の値を表す。バスに接続されているECUはノードと呼ばれる。バスに接続されている各ノードは、フレームと呼ばれるメッセージを送受信する。FlexRayはTime Division Multiple Access(以下TDMA)方式であり、各ノードは予め決められたタイミングでフレームを送信する。
【0004】
FlexRayでは、最大の時間単位であるサイクルが存在し、各ノードはグローバルタイムを同期している。サイクルは「静的セグメント」「動的セグメント」「シンボルウィンドウ」「ネットワークアイドルタイム」の4つのセグメントから構成され、動的セグメントとシンボルウィンドウはオプションである。各ノードは静的セグメントと動的セグメントにおいてフレームを送信する。静的セグメントと動的セグメントは、さらにスロットと呼ばれる1つのフレームを送信することができる時間から構成される。
【0005】
FlexRayでは送信先や送信元を示す識別子は存在せず、送信ノードはフレーム毎に予め定められた送信タイミングであるスロット番号に基づいてフレームを送信する。各受信ノードは予め決められたスロット番号のフレームのみを受信する。また、同一のスロット番号のフレームであっても、サイクルによって異なるフレームの通信を実現する「サイクルマルチプレキシング」と呼ばれる方法が用いられることもある。
【0006】
また、FlexRayでは、CANのように全てのノードが1つのバスに接続されるバス型ネットワークトポロジだけでなく、スターカプラを介したスター型のネットワークトポロジ、バス型とスター型のハイブリッド型のネットワークトポロジなどを設計することが可能である。
【0007】
一方、セキュリティに関しては、CANでは、攻撃者がCANのバスにアクセスし、不正フレームを送信することで、ECUを不正制御するといった脅威が存在し、セキュリティ対策が検討されている。
【0008】
例えば特許文献1では、車載ネットワーク監視装置を提案しており、フレームがあらかじめ規定された通信間隔でCANに送信されているかを検出し、規定された通信間隔から外れるフレームを不正と判断することで、不正フレームによる制御を防止する方法が開示されている。
【先行技術文献】
【特許文献】
【0009】
【文献】特許第5664799号公報
【発明の概要】
【発明が解決しようとする課題】
【0010】
しかしながら、特許文献1のような不正検知手法による方法は、TDMA方式を採用しているFlexRayでは、予め規定された通信間隔で通信を行うため、適用することができない。また、CANにおけるセキュリティも、向上することが望まれる。
【0011】
そこで、本開示は、上記課題を解決するために、不正に送信されたフレームによる影響の範囲を低減することにより安全な車載ネットワークシステムを実現できる不正対処方法、及び、不正対処装置を提供することを目的とする。
【課題を解決するための手段】
【0012】
上記目的を達成するために、本開示の一態様に係る不正対処方法は、車載ネットワークにおける不正対処方法であって、フレームの送受信を行うフレーム送受信ステップと、不正なフレームを検知する不正検知ステップと、前記不正検知ステップにおいて不正が検知された場合に、不正が検知されたフレームの送信タイミングを切り替える切り替え処理ステップとを含み、前記切り替え処理ステップでは、所定の情報に応じて切り替え先の送信タイミングを変更する。
【0013】
また、本開示の一態様に係る不正対処装置は、車載ネットワークにおける不正対処装置であって、フレームの送受信を行うフレーム送受信部と、不正なフレームを検知する不正検知部と、前記不正検知部において不正が検知された場合に、不正が検知されたフレームの送信タイミングを切り替える切り替え処理部とを備え、前記切り替え処理部は、所定の情報に応じて切り替え先の送信タイミングを変更する。
【発明の効果】
【0014】
本開示の一態様に係る不正対処方法等によれば、安全な車載ネットワークシステムを実現することができる。
【図面の簡単な説明】
【0015】
図1図1は、実施の形態1における車載ネットワークシステムの全体構成を示す図である。
図2図2は、実施の形態1におけるFlexRay通信のサイクルを示す図である。
図3図3は、実施の形態1におけるFlexRay通信のフレームフォーマットを示す図である。
図4図4は、実施の形態1におけるECUの構成の一例を示す図である。
図5図5は、実施の形態1におけるFlexRay通信の通信用設定パラメータの一例を示す図である。
図6図6は、実施の形態1におけるスターカプラの構成の一例を示す図である。
図7図7は、実施の形態1におけるFlexRay通信にて送信されるフレームリストの一例を示す図である。
図8図8は、実施の形態1におけるFlexRay通信のフレーム送信スケジュールの一例を示す図である。
図9図9は、実施の形態1における切り替えテーブルの一例を示す図である。
図10図10は、実施の形態1における切り替え通信のシーケンスの一例を示す図である。
図11図11は、実施の形態2における車載ネットワークシステムの全体構成を示す図である。
図12図12は、実施の形態2におけるECUの構成の一例を示す図である。
図13図13は、実施の形態2における切り替えテーブルの一例を示す図である。
図14図14は、実施の形態2における切り替え通信のシーケンスの一例を示す図である。
図15図15は、実施の形態3における切り替えテーブルの一例を示す図である。
図16図16は、実施の形態3における送信側のECUの動作の一例を示す図である。
図17図17は、実施の形態3における受信側のECUの動作の一例を示す図である。
図18図18は、実施の形態3の変形例における送信側のECUの動作の一例を示す図である。
図19図19は、実施の形態3の変形例における受信側のECUの動作の一例を示す図である。
図20図20は、実施の形態4におけるFlexRay通信にて送信されるフレームリストの一例を示す図である。
図21A図21Aは、実施の形態4における送信側のECUの動作の一例を示す図である。
図21B図21Bは、実施の形態4における送信側のECUの動作の他の一例を示す図である。
図22図22は、実施の形態4における受信側のECUの動作の一例を示す図である。
図23図23は、実施の形態4の変形例における受信側のECUの動作の一例を示す図である。
【発明を実施するための形態】
【0016】
本開示の一態様に係る不正対処方法は、車載ネットワークにおける不正対処方法であって、フレームの送受信を行うフレーム送受信ステップと、不正なフレームを検知する不正検知ステップと、前記不正検知ステップにおいて不正が検知された場合に、不正が検知されたフレームの送信タイミングを切り替える切り替え処理ステップとを含み、前記切り替え処理ステップでは、所定の情報に応じて切り替え先の送信タイミングを変更する。
【0017】
これにより、切り替え先の送信タイミング(例えば、切り替え先のスロットID)が動的に決定されるので、攻撃者に切り替え先の送信タイミングが予測されにくくなる。つまり、切り替え先の送信タイミングで、フレームの正しい情報を他のECUに送信することができる。例えば、切り替え先の送信タイミングが単純なテーブル等によって決定される場合に比べて、切り替え先でも攻撃を受けてしまうことを抑制することができる。よって、車載ネットワークに、不正フレームが送信されたとしても、不正なフレームを検知した後に、対処することで車載ネットワークシステム全体として、安全な状態を維持することができる。
【0018】
また、例えば、前記所定の情報は、前記不正検知ステップにおける検知回数を含み、前記切り替え処理ステップでは、前記検知回数に応じた送信タイミングを前記切り替え先の送信タイミングに決定する。
【0019】
これにより、エラー回数に応じて切り替え先の送信タイミングを動的に決定することができる。なお、エラー回数は、送受信間のECUで同期をとることが可能である。
【0020】
また、例えば、前記所定の情報は、前記不正が検知されたフレームの送信時刻を示す情報を含み、前記切り替え処理ステップでは、前記送信時刻を示す情報に応じた送信タイミングを前記切り替え先の送信タイミングに決定する。
【0021】
これにより、送信時刻を示す情報に応じて切り替え先の送信タイミングを動的に決定することができる。なお、送信時刻を示す情報は、送受信間のECUで同期をとることが可能である。
【0022】
また、例えば、前記切り替え処理ステップでは、前記検知回数のハッシュ値を算出し、前記不正が検知されたフレームのペイロードセグメントのビット数で前記ハッシュ値の剰余を算出し、前記剰余に応じた送信タイミングを前記切り替え先の送信タイミングに決定する。また、例えば、前記切り替え処理ステップでは、前記送信時刻を示す情報をシードに疑似乱数を生成し、前記不正が検知されたフレームのペイロードセグメントのビット数で前記疑似乱数の剰余を算出し、前記剰余に応じた送信タイミングを前記切り替え先の送信タイミングに決定する。
【0023】
これにより、攻撃者にさらに切り替え先の送信タイミングが予測されにくくなるので、車載ネットワークの安全性を向上させることができる。また、算出される剰余の値は、ビット数より小さい値となる。例えば、車載ネットワークがフレックスレイからなる場合、切り替え先のスロットの数が増加することを抑制することができるので、スロットIDが枯渇することを抑制することができる。
【0024】
また、例えば、前記切り替え処理ステップでは、さらに、前記ペイロードセグメントを構成するビット列に対して、前記剰余に応じたビットシフト量によりビットシフト演算処理を行う。
【0025】
これにより、受信側のECUにおいて、受信したフレームが不正フレームであるか否かを容易に判定することができる。例えば、攻撃者が切り替え後の送信タイミング(例えば、スロットID)を予測できたとしても、ビットシフトのルールを知らない場合に、受信側のECUで不正フレームのデータフレームをデコードしたデコード値が通常ではあり得ない数値となる。よって、受信側のECUにおいて、デコード値を確認することで、不正フレームであるか否かを容易に判定することができる。
【0026】
また、例えば、前記所定の情報は、前記不正が検知されたフレームの危険度を含み、前記切り替え処理ステップでは、前記危険度に応じた送信タイミングを前記切り替え先の送信タイミングに決定する。
【0027】
これにより、危険度に応じて切り替え先の送信タイミングを動的に決定することができる。なお、危険度は、送受信間のECUで同期をとることが可能である。
【0028】
また、例えば、前記切り替え処理ステップは、前記危険度が第1閾値以上である場合に実行される。
【0029】
これにより、ECUにおける処理量が増加することを抑制しつつ、危険度が高いフレームの正しい情報を他のECUに送信することができる。
【0030】
また、例えば、前記切り替え処理ステップでは、前記危険度が第1閾値以上である場合、さらに前記不正が検知されたフレームのペイロードセグメントを構成するビット列に対して、前記危険度に応じたビットシフト量によりビットシフト演算処理を行う。
【0031】
これにより、受信側のECUにおいて、受信したフレームが不正フレームであるか否かを容易に判定することができる。
【0032】
また、例えば、前記切り替え処理ステップでは、前記危険度が前記第1閾値より低い第2閾値以上であり、かつ、前記第1閾値未満である場合、前記ペイロードセグメントを構成するビット列に対して、前記危険度に応じたビットシフト量によりビットシフト演算処理を行う。
【0033】
これにより、ECUにおける処理量が増加することを抑制しつつ、受信側のECUにおいて不正フレームであるか否かを容易に判定することができる。
【0034】
また、例えば、前記切り替え処理ステップでは、前記危険度が前記第1閾値より高い第3閾値以上である場合、前記危険度に応じた複数の送信タイミングを前記切り替え先の送信タイミングに決定する。
【0035】
これにより、切り替え先の送信タイミングがさらに予測されにくくなる。
【0036】
また、例えば、前記所定の情報は、車両の車両状態を含み、前記切り替え処理ステップでは、前記車両状態に応じた送信タイミングを前記切り替え先の送信タイミングに決定する。
【0037】
これにより、車両状態に応じて切り替え先の送信タイミングを動的に決定することができる。なお、車両状態は、送受信間のECUで同期をとることが可能である。
【0038】
また、例えば、前記切り替え処理ステップは、前記不正検知ステップにおける検知回数が所定回数以上である場合に実行される。また、例えば、前記切り替え処理ステップは、前回不正が検知されてからの経過時間が所定時間以下である場合に実行される。
【0039】
これにより、不正な状態が継続しているときに送信タイミングの切り替え処理が実行される。よって、車両における安全な状態を効果的に維持することができる。
【0040】
また、例えば、前記切り替え処理ステップでは、前記不正が検知されたフレームの送信タイミングにおいて当該フレームが送信された後に、当該フレームの送信タイミングを切り替える。
【0041】
これにより、同一のフレームを複数回送信することができる。受信側のECUにおいて、複数のフレームの差異に基づいて、複数のフレームのうち少なくとも1つのフレームが不正フレームであるか否かを判定することができる。
【0042】
また、例えば、前記車載ネットワークにおける通信方式は、タイムスロットに基づくタイムトリガー型の通信方式であり、前記フレーム送受信ステップでは、予め定められたタイムスロット内で、フレームの送受信が行われ、前記切り替え処理ステップでは、前記切り替え先の送信タイミングとして、切り替え先のスロットを決定する。
【0043】
これにより、車載ネットワークシステムの通信方式がフレックスレイである場合に、当該車載ネットワークシステム全体として、安全な状態を維持することができる。
【0044】
また、例えば、前記タイムスロットは、フレームが割り当てられていない複数の空きスロットを含み、前記切り替え処理ステップでは、前記所定の情報に応じた空きスロットを切り替え先のスロットに決定する。
【0045】
これにより、他のフレームの送信に影響を与えることなく、車載ネットワークシステム全体として、安全な状態を維持することができる。
【0046】
また、本開示の一態様に係る不正対処装置は、車載ネットワークにおける不正対処装置であって、フレームの送受信を行うフレーム送受信部と、不正なフレームを検知する不正検知部と、前記不正検知部において不正が検知された場合に、不正が検知されたフレームの送信タイミングを切り替える切り替え処理部とを備え、前記切り替え処理部は、所定の情報に応じて切り替え先の送信タイミングを変更する。
【0047】
これにより、上記の不正対処方法と同様の効果を奏する。
【0048】
以下、図面を参照しながら、本開示の実施の形態に関わる不正対処方法等について説明する。なお、以下で説明する実施の形態は、いずれも本開示の好ましい一具体例を示す。つまり、以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置および接続形態、ステップ、ステップの順序などは、本開示の一例であり、本開示を限定する主旨ではない。本開示は、請求の範囲の記載に基づいて特定される。したがって、以下の実施の形態における構成要素のうち、本開示の最上位概念を示す独立請求項に記載されていない構成要素は、本開示の課題を達成するために必ずしも必要ではないが、より好ましい形態を構成する構成要素として説明される。
【0049】
また、各図は、模式図であり、必ずしも厳密に図示されたものではない。したがって、例えば、各図において縮尺などは必ずしも一致しない。また、各図において、実質的に同一の構成については同一の符号を付しており、重複する説明は省略又は簡略化する。
【0050】
(実施の形態1)
[1.システムの構成]
ここでは、本開示の実施の形態として、車載ネットワークシステム10について図面を参照しながら説明する。
【0051】
[1-1. 車載ネットワークシステム10の全体構成]
図1は、実施の形態1における車載ネットワークシステム10の全体構成を示す図である。車載ネットワークシステム10は、FlexRayバス100a、100b、100c、及び、100dと、各バスに接続される、ECU200a、200b、200c、及び、200dと、各ECUの制御対象である前方カメラ210、ギア220、ブレーキ230、及び、後方カメラ240と、各FlexRayバスを接続するスターカプラ300と、を備える。ECU200a~200dは、FlexRayバスを通じて、フレームの送受信を行うことで、車両の制御を実現する。また、FlexRayバス100a、100b、100c、100dは、どのバスにも同じ信号が流れるようにスターカプラ300が信号の整形を行い、各ECUは、FlexRayバスを通じて同期をとっている。
【0052】
[1-2. FlexRayサイクル]
図2は、実施の形態1におけるFlexRay通信のサイクルを示す図である。FlexRayの通信はサイクル(Cycle)と呼ばれる単位で行われ、サイクルの繰り返し回数(サイクルカウンタ)を各ノードが同期して保持しており、サイクルカウンタは0~63の値をとる。サイクルカウンタが63である次のサイクルはサイクルカウンタを0にリセットする。
【0053】
各サイクルは、静的セグメント(Static segment)、動的セグメント(Dynamic segment)、シンボルウィンドウ(Symbol window)、ネットワークアイドルタイム(NIT)の4つのセグメントから構成される。各セグメントの時間は予め設計されたパラメータによって、FlexRayネットワーク全体(クラスタ)で共通であるため、1サイクルの時間も同様にクラスタで共通である。
【0054】
静的セグメントは、複数のスロットから構成される。スロットの個数、および各スロットの時間はクラスタ内で共通である。また、FlexRayフレームは、1スロット内に1つのフレームが送信され、スロットの番号がフレームの識別子(Frame ID)となる。各ECUは予め定められたタイミング(スロット番号)で、フレームの送信を行うように設計されている。静的セグメント内で送信されるフレームを静的フレームとよぶ。静的フレームは、ペイロード長がクラスタ内で共通となっている。
【0055】
動的セグメントは、ミニスロットと呼ばれるスロットから構成される。ミニスロットにも同様にスロット番号が存在し、各ECUは、予め定められたタイミング(スロット番号)で送信を行うように設計されているが、静的セグメントと異なり、必ずしもフレームの送信を行う必要はない。動的セグメント内で送信されるフレームを動的フレームとよぶ。動的フレームは、ペイロード長として0~254の任意の値をとることができる。
【0056】
シンボルウィンドウは、シンボルと呼ばれる信号の送受信を行う時間帯である。
【0057】
ネットワークアイドルタイムは、通信を行わない時間帯であり、サイクルの最後に必ず設けられる。各ECUは、時刻の同期処理等を行う。
【0058】
[1-3. フレームフォーマット]
図3は、実施の形態1におけるFlexRay通信のフレームフォーマットを示す図である。具体的には、図3は、FlexRayプロトコルのフレームフォーマットを示す図である。フレームは、Header Segment、Payload Segment、及び、Trailer Segmentの3つのセグメントを含む。
【0059】
Header Segmentは、Reserved bitから始まり、フレームの種別を表すための、Payload preamble indicator、Null frame indicator、Sync frame indicator、Startup frame indicatorがそれぞれ1ビットずつ含まれる。Header Segmentは、さらに11ビットのFrameID、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は、現在のサイクル数が格納される。サイクル数は、送信時刻を示す情報の一例である。
【0060】
Payload Segmentには、フレームの内容を表すデータが含まれる。Payload lengthの値の2倍のバイト数が格納されており、最大で254バイトが格納される。
【0061】
Trailer Segmentには、フレームの全てを含んだ値から計算されるCRCが格納されている。
【0062】
[1-4. ECU200aの構成図]
図4は、実施の形態1におけるECU200aの構成の一例を示す図である。なお、ECU200b、ECU200c、ECU200dも同様の構成であるので、ここでは説明を省略する。
【0063】
ECU200aは、フレーム送受信部201と、通信用設定パラメータ保持部202と、フレーム解釈部203と、外部機器制御部204と、フレーム生成部205と、不正判定部206と、切り替え判定部207と、切り替えテーブル保持部208と、を有する。
【0064】
フレーム送受信部201は、バス100aから受信した物理信号を、デジタル信号に復号することでフレームの情報を取得する。フレーム送受信部201は、通信用設定パラメータ保持部202に保持される通信用設定パラメータを参照することで、他のECUと時刻を同期し、正しくフレームを受信することができる。また、フレーム送受信部201は、フレーム生成部205から通知される送信フレーム要求に従い、予め定められたタイミングでフレームを物理信号に変換してバス100aに送信する。
【0065】
通信用設定パラメータ保持部202は、物理信号を正しく、デジタル信号に変換するための、クラスタ内で共通のパラメータが保持されている。図5に通信用設定パラメータ保持部202に保持される通信用設定パラメータの一例を示すが、詳細は後述する。
【0066】
フレーム解釈部203は、フレーム送受信部201から通知される受信したフレームに含まれるペイロードを解釈し、ペイロードの内容に応じてECU200aに接続される前方カメラ210の制御を行うために外部機器制御部204へ通知を行う。フレーム解釈部203は、例えば、他のECUから通知される車両の速度の情報に基づいて、走行状態を判断し、走行状態に応じたカメラ撮影内容の調整を行う。また、フレーム解釈部203は、フレームに含まれるID、ペイロードなどの受信内容を不正判定部206へ通知する。
【0067】
外部機器制御部204は、ECU200aに接続される前方カメラ210の制御を行う。また、外部機器制御部204は、前方カメラ210からの通知内容に応じて、他のECUに状態を通知するためのフレーム送信要求をフレーム生成部205に通知する。例えば、前方の歩行者の有無を通知する。
【0068】
フレーム生成部205は、通知された信号に基づいて、フレームの生成を行い、フレーム送受信部201へ送信要求を行う。
【0069】
不正判定部206は、フレーム解釈部203から通知されるID、ペイロードなどの受信内容を基に、受信したフレームが不正かどうかを判定する。本実施の形態では、シンタックスエラーなどのエラーを同一IDにて受信した場合、不正と判定する。不正判定部206は、不正と判定した場合、その旨を切り替え判定部207と、フレーム生成部205とに通知する。不正判定部206は、不正検知部の一例である。
【0070】
切り替え判定部207は、不正判定部206から通知される判定結果を基に、切り替えテーブル保持部208から通知される切り替えテーブルの内容を参照し、送信内容を変更するよう、フレーム生成部205へと通知する。
【0071】
切り替えテーブル保持部208は、不正検知結果に応じて送信内容を切り替えるために必要となる切り替えテーブルを保持する。
【0072】
[1-5. 通信用設定パラメータの一例]
図5は、実施の形態1におけるFlexRay通信の通信用設定パラメータの一例を示す図である。図5に示す通信用設定パラメータは、通信用設定パラメータ保持部202に格納されている。図5の例では、通信用設定パラメータは、通信の速度を表すボーレートが10Mbpsであること、静的セグメントのスロットIDが1~50であること、及び、動的セグメントのスロットIDが51~100であることを含む。また、静的スロットのペイロード長が8(つまり16バイト)であることが示されている。これらの値は、クラスタ内のECU全てに共有されており、これらの値を元にFlexRayフレームの送受信を実現する。なお通信用設定パラメータの値は一例に過ぎず、別の値であっても構わない。また、ここで示したパラメータも一例に過ぎず、図5に記載のないパラメータ(例えば、各セグメントの長さ、スロットの長さ等)が含まれていてもよいし、逆に記載されているパラメータの一部が含まれていなくてもよい。
【0073】
[1-6. スターカプラ300の構成図]
図6は、実施の形態1におけるスターカプラ300の構成の一例を示す図である。スターカプラ300は、トランシーバ部301a、301b、301c、及び、301dと、ルーティング部302とを有する。なお、トランシーバ部301b、301c、及び、301dは、トランシーバ部301aと同様の構成であるため、説明を省略する。
【0074】
トランシーバ部301aは、バス100aから受信した物理信号を、デジタル信号に変換し、ルーティング部302へ通知する。また、トランシーバ部301aは、デジタル信号をルーティング部302から通知された場合は、通知されたデジタル信号を、物理信号へ変換し、バス100aへ転送する。
【0075】
ルーティング部302は、トランシーバ部301aから通知されたデジタル信号を、トランシーバ部301aを除くトランシーバ部301b、301c、及び、301dへ転送する。ルーティング部302は、同様にトランシーバ部301bからデジタル信号を通知された場合は、トランシーバ部301bを除く、トランシーバ部に対して、デジタル信号を通知する。ルーティング部302は、複数のトランシーバ部からデジタル信号を受信した場合は、最初にデジタル信号を受信したバスからの信号を、他のトランシーバ部へ通知する。
【0076】
[1-7. フレームリストの一例]
図7は、実施の形態1におけるFlexRay通信にて送信されるフレームリストの一例を示す図である。例えば、図7は、ECU200aによって送受信されるフレームリストの一例を示している。
【0077】
図7では、スロットID、Cycle offset、Cycle reception、フレーム名、及び、フレームに含まれるペイロード情報がフレームリストに保持されている。Cycle offsetとCycle receptionとは、サイクル多重化(サイクルマルチプレキシング)と呼ばれる同じスロットIDであっても異なる内容のフレームを送受信する方法が用いられるときに、対象のフレームを抽出するために必要な情報である。例えば、スロットIDが98のフレームには2つのフレーム名が存在し、それぞれのフレームで前方カメラ情報1、前方カメラ情報2の異なる内容を通知する。前方カメラ情報1ではCycle offsetが0で、Cycle receptionが2である。これはサイクルカウンタが0からスタートし、2サイクルごとに当該フレームを送信することを意味する。つまり前方カメラ情報1が通知されるフレームCが送信されるのは、サイクルカウンタが、0、2、4、6、・・・、58、60、62のスロットIDが98のときに送信されることを示している。同様に前方カメラ情報2を含むフレームDは、サイクルカウンタが1、3、5、・・・59、61、63のスロットIDが98のときに送信される。上記のように異なるフレームを同一スロットIDで送信する方法をサイクルマルチ多重化とよぶ。同様に、スロットIDが99のフレームにも2つのフレーム名が存在し、それぞれのフレームで後方カメラ情報1、後方カメラ情報2の異なる内容を通知する。後方カメラ情報1を含むフレームEは、サイクルカウンタが0、2、4、・・・、58、60、62のサイクルIDが99の時に送信され、後方カメラ情報2が含まれるフレームFは、サイクルカウンタが1、3、5、・・・、59、61、63のサイクルIDが99の時に送信される。
【0078】
図7では、スロットIDが1であり、Cycle Offsetが0であり、Cycle receptionが1(つまり全てのサイクルで同一フレームが送信される。)であるフレームは、フレーム名がAであり、フレームAのペイロードには速度に関する情報が含まれることを示している。また、スロットIDが2では、フレームが送信されないことを示している。また、スロットIDが3であり、Cycle Offsetが0であり、Cycle Receptionが2(つまりサイクルカウンタが偶数のときのみ送信される)であるフレームは、フレーム名がBであり、フレームBのペイロードにはギア状態に関する情報が含まれることを示している。スロットIDが98であり、Cycle Offsetが0であり、Cycle receptionが2であるフレームは、フレーム名がCであり、フレームCのペイロードには前方カメラ情報1に関する情報が含まれることを示している。スロットIDが98であり、Cycle Offsetが1であり、Cycle receptionが2であるフレームは、フレーム名がDであり、フレームDのペイロードには前方カメラ情報2に関する情報が含まれることを示している。スロットIDが99であり、Cycle Offsetが0であり、Cycle receptionが2であるフレームは、フレーム名がEであり、フレームEのペイロードには後方カメラ情報1に関する情報が含まれることを示している。スロットIDが99であり、Cycle Offsetが1であり、Cycle receptionが2であるフレームは、フレーム名がFであり、フレームFのペイロードには後方カメラ情報2に関する情報が含まれることを示している。また、フレームAおよびBは、静的セグメント内で送信される静的フレームであり、フレームCからフレームFは、動的セグメント内で送信される動的フレームである。
【0079】
図8は、実施の形態1におけるFlexRay通信のフレーム送信スケジュールの一例を示す図である。図8は、図7のフレームリストの例におけるフレーム送信スケジュールを示している。横軸がスロットIDを示しており、縦軸がサイクルを示している。スロットIDとサイクルとで定まるセルには、送信されるフレーム名が記載されている。図8では、フレームCからフレームFは、所定のサイクルで送信されているが、当該フレームは動的フレームであるため、送信されない場合もある。
【0080】
[1-8. 切り替えテーブルの一例]
図9は、実施の形態1における切り替えテーブルの一例を示す図である。本実施の形態では、IDが1、3、98、99のフレームにて不正が発生した場合に、それぞれIDが97、100、99、98へと切り替える内容を示している。
【0081】
[1-9. 切り替え通信シーケンスの一例]
図10は、実施の形態1における切り替え通信のシーケンスの一例を示す図である。例えば、図10は、ECU200aにて不正を検知し、切り替えを実施するシーケンスの一例を示している。
【0082】
(S1001)ECU200aは、FlexRayにおけるエラーの有無を検出する。
【0083】
(S1002)ECU200aは、同一IDによるエラーかどうかを判断するためのカウンタによって、同一IDによるエラーが複数回発生しているかどうかを判断する。
【0084】
(S1003)ECU200aは、対象IDのエラーカウンタをカウントアップする。
【0085】
(S1004)ECU200aは、切り替えテーブルを参照し、対象IDに該当する切り替え処理を発見する。
【0086】
(S1005)ECU200aは、ID設定の切り替えを実施する。
【0087】
(S1006)ECU200aは、対象IDのエラーカウンタをクリアする。
【0088】
[1-10. 実施の形態1の効果]
実施の形態1で示した不正対処方法は、不正を検知したECUが切り替えテーブルを用いて、送信するフレームの送信スロットを動的に変更することで、不正なフレームによる通信妨害を回避し、通常の通信を維持することができる。また、予め空けておいた通信スロットを有効活用することで、通信量を増加させることなく、フレームを送信することが可能となる。
【0089】
(実施の形態2)
[2.システムの構成]
ここでは、本開示の実施の形態として、車載ネットワークシステム20について図面を参照しながら説明する。
【0090】
[2-1. 車載ネットワークシステム20の全体構成]
図11は、実施の形態2における車載ネットワークシステム20の全体構成を示す図である。車載ネットワークシステム20は、FlexRayバス100a、100b、100c、及び、100dと、各バスに接続される、ECU1200a、1200b、1200c、及び、1200dと、各ECUの制御対象である前方カメラ210、ギア220、ブレーキ230、及び、後方カメラ240と、各FlexRayバスを接続するスターカプラ300と、を備える。なお、実施の形態1と同一の構成要素は、同一の番号を付与し、説明を省略する。
【0091】
[2-2. ECU1200aの構成図]
図12は、実施の形態2におけるECU1200aの構成の一例を示す図である。なお、ECU1200b、ECU1200c、及び、ECU1200dも同様の構成であるので、ここでは説明を省略する。
【0092】
ECU1200aは、フレーム送受信部201と、通信用設定パラメータ保持部202と、フレーム解釈部1203と、外部機器制御部204と、フレーム生成部205と、不正判定部206と、切り替え判定部1207と、切り替えテーブル保持部208と、車両状態判定部1209と、を有する。なお、実施の形態1と同一の構成要素は、同一の番号を付与し、説明を省略する。
【0093】
フレーム解釈部1203は、フレーム送受信部201から通知される受信したフレームに含まれるペイロードを解釈し、ペイロードの内容に応じてECU1200aに接続される前方カメラ210の制御を行うために外部機器制御部204へ通知を行う。例えば、他のECUから通知される車両の速度の情報に基づいて、走行状態を判断し、走行状態に応じたカメラ撮影内容の調整を行う。また、フレームに含まれるID、ペイロードなどの受信内容を不正判定部206と、車両状態判定部1209と、へ通知する。
【0094】
切り替え判定部1207は、不正判定部206から通知される判定結果と、車両状態判定部1209から通知される車両状態と、を基に、切り替えテーブル保持部208から通知される切り替えテーブルの内容を参照し、送信内容を変更するよう、フレーム生成部205へと通知する。
【0095】
車両状態判定部1209は、フレーム解釈部1203から通知されるID、ペイロードなどの受信内容を基に、現在の車両の状態を判定する。例えば、他ECUが判定した結果をペイロードとして含むフレームを受信しても良いし、速度及びギアなどの情報を元に各ECUの車両状態判定部1209で判定するとしても良い。
【0096】
[2-3. 切り替えテーブルの一例]
図13は、実施の形態2における切り替えテーブルの一例を示す図である。本実施の形態では、車両の状態がどんな状態であっても、IDが1、3は、それぞれIDが97、100へと切り替えられる内容を示している。また、車両の状態が走行中の場合のみ、IDが98、99は、それぞれIDが99、98へと切り替えられる内容を示している。
【0097】
[2-4. 切り替え通信シーケンスの一例]
図14は、実施の形態2における切り替え通信のシーケンスの一例を示す図である。例えば、図14は、ECU1200aにて不正を検知し、切り替えを実施するシーケンスの一例を示している。なお、図10と同一の処理ステップには同一の番号を付与し、説明を省略する。
【0098】
(S2007)ECU1200aは、現在の車両状態と切り替えテーブルとを比較し、対象IDを切り替える必要があるかどうかを判定する。つまり、ECU1200aは、現在の車両状態が切り替え必要な車両状態であるか否かを判定する。そして、ECU1200aは、現在の車両状態が切り替え必要な車両状態であると判定する(S2007でYes)と、ステップS1005に進み、現在の車両状態が切り替え必要な車両状態ではないと判定する(S2007でNo)と、ステップS1006に進む。
【0099】
[2-5. 実施の形態2の効果]
実施の形態2で示した不正対処方法は、不正を検知したECUが特定の車両状態に対応した切り替えテーブルを用いて、送信するフレームの送信スロットを動的に変更することで、不正なフレームによる通信妨害を回避し、通常の通信を維持することができる。また、予め空けておいた通信スロットを有効活用することで、通信量を増加させることなく、フレームを送信することが可能となる。また、特定の車両状態に限定することで、通常時の通信からの変更を最小限に抑え、通常の通信を維持することができる。
【0100】
(実施の形態1及び2における効果など)
本開示の一態様に係る不正対処方法は、タイムスロットに基づくタイムトリガー型の通信方式である車載ネットワークにおける不正対処方法であって、車載ネットワークシステム10、20には、1以上の電子制御装置(例えば、ECU200a)が接続され、各電子制御装置は予め定められた所定のタイムスロット内でフレームを送受信する。電子制御装置の不正対処方法は、フレームの送受信を行うフレーム送受信ステップと、不正なフレームを検知する不正検知ステップ(例えば、S1001)と、不正検知ステップの判定結果を元に、所定の条件を満たした時に、所定の設定に従い、送信フレームの切り替え処理を行う切り替え判定ステップと(例えば、S1005)を含む。
【0101】
これにより、不正なフレームを検知した際に、切り替えにより車載ネットワークシステム10、20全体として、安全な状態を維持することができる。
【0102】
さらに、本開示の一態様に係る不正対処方法は、例えば、不正検知ステップとして、所定の攻撃判定アルゴリズムにより、フレームの不正を判定する。
【0103】
これにより、当該車載ネットワークがサイバーセキュリティ攻撃を受けた場合でも、車載ネットワークシステム10、20全体として、安全な状態を維持することができる。
【0104】
さらに、本開示の一態様に係る不正対処方法は、所定の設定として、切り替え元のスロットに、静的スロット、または、動的スロットのいずれか一つを指定する。
【0105】
これにより、特定のスロットが不正となっても、当該スロットのフレームが送信できなくなることを回避することが可能となる。
【0106】
さらに、本開示の一態様に係る不正対処方法は、例えば、所定の設定として、切り替え先のスロットに、静的スロット、または、動的スロット、のいずれか一つを指定する。
【0107】
これにより、特定のスロットが不正となっても、当該スロットのフレームが送信できなくなることを回避することが可能となる。
【0108】
さらに、本開示の一態様に係る不正対処方法は、例えば、所定の設定として、切り替え先のスロットに、フレームがまだ割り当てられていない空きスロットを指定する。
【0109】
これにより、全体として通信時間が増加することなく、通信をすることが可能となる。
【0110】
さらに、本開示の一態様に係る不正対処方法は、例えば、所定の設定として、切り替え先のスロットに、既にフレームが割り当てられているスロットを指定する。
【0111】
これにより、元々空きスロットが存在しないような通信仕様の場合にでも、全体として通信時間が増加することなく、通信をすることが可能となる。
【0112】
さらに、本開示の一態様に係る不正対処方法は、例えば、所定の設定として、既に割り当てられているフレームのペイロードと、切り替えられたフレームのペイロードとを結合する。
【0113】
これにより、さらに全体として通信時間が増加することなく、通信をすることが可能となる。
【0114】
さらに、本開示の一態様に係る不正対処方法は、例えば、所定の設定として、切り替え先のスロットに、新たにスロットを追加する。
【0115】
これにより、通常時の通信仕様に依存することなく、通信することが可能となる。
【0116】
さらに、本開示の一態様に係る不正対処方法は、例えば、所定の設定として、既に割り当てられているフレームのペイロードと、切り替えられたフレームのペイロードとを交換する。
【0117】
これにより、特定のペイロードの送受信を行うだけで、通常時は複数スロットのフレームを送受信する必要のある情報を送受信することが可能となる。
【0118】
さらに、本開示の一態様に係る不正対処方法は、例えば、所定の条件として、通信方式に従ったエラーの発生を検知することで、切り替え処理を行う。
【0119】
これにより、追加で通知用のフレームを用意する必要が無く、切り替え処理を行うことが可能となる。
【0120】
さらに、本開示の一態様に係る不正対処方法は、例えば、所定の条件として、不正が発生したフレーム以外のフレームを検知することで、切り替え処理を行う。
【0121】
これにより、ネットワークプロトコルに依存することなく、切り替え処理を行うことが可能となる。
【0122】
さらに、本開示の一態様に係る不正対処方法は、例えば、所定の条件として、予め設定された車載ネットワークを搭載する車両の状態に応じて、切り替え処理を行う。
【0123】
これにより、車両状態に応じて適切な切り替え処理を規定することが可能となり、通常時との差分を抑えることが可能となる。
【0124】
さらに、本開示の一態様に係る不正対処方法における車両の状態は、駐車中、停車中、走行中のいずれか一つの状態である。
【0125】
これにより、駐車中と、停車中と、走行中のいずれかの状態に応じて適切な切り替え処理を規定することが可能となり、通常時との差分を抑えることが可能となる。
【0126】
さらに、タイムスロットに基づくタイムトリガー型の通信方式である車載ネットワークにおける通信システムであって、車載ネットワークには、1以上の電子制御装置が接続され、各電子制御装置は予め定められた所定のタイムスロット内でフレームを送受信し、電子制御装置は、フレームの送受信を行うフレーム送受信ステップと、不正なフレームを検知する不正検知ステップと、不正検知ステップの判定結果を元に、所定の条件を満たした時に、所定の設定に従い、送信フレームの切り替え処理を行う切り替え判定ステップとを有する。
【0127】
これにより、不正なフレームを検知した際に、切り替えにより車載ネットワークシステム全体として、安全な状態を維持することができる。
【0128】
さらに、タイムスロットに基づくタイムトリガー型の通信方式である車載ネットワークにおける通信システムにおいて、車載ネットワークに、1つ以上接続される電子制御装置であって、各電子制御装置は予め定められた所定のタイムスロット内でフレームを送受信する。電子制御装置は、フレームの送受信を行うフレーム送受信部201と、不正なフレームを検知する不正判定部206と、不正検知ステップの判定結果を元に、所定の条件を満たした時に、所定の設定に従い、送信フレームの切り替え処理を行う切り替え判定部207とを備える。
【0129】
これにより、不正なフレームを検知した際に、切り替えにより車載ネットワークシステム全体として、安全な状態を維持することができる。
【0130】
(実施の形態3)
[3-1. システムの構成]
本実施の形態では、不正が検知されたフレームのスロットIDが切り替えられるときに、切り替え先のスロットIDが動的に変化する場合について説明する。具体的には、不正が検知された回数(エラー回数)に基づいて、不正が検知されたスロットIDの切り替え先のスロットIDが動的に変化する場合について説明する。なお、エラー回数は、例えば、同一のスロットIDにおいて不正が検知された回数である。
【0131】
本実施の形態に係る車載ネットワークシステムの構成は、実施の形態1に係る車載ネットワークシステム10、又は、実施の形態2に係る車載ネットワークシステム20と同様であり、説明を省略する。以下では、本実施の形態に係る車載ネットワークの構成は、実施の形態1に係る車載ネットワークシステム10と同様である例について説明する。
【0132】
まず、車載ネットワークシステム10が格納する情報について図15を参照しながら説明する。図15は、実施の形態3における切り替えテーブルの一例を示す図である。本実施の形態では、図9等に示すように、変更前のIDと変更後のIDとが一対一に対応付けられていない。所定の条件に基づいて、変更後のIDが動的に変化する。
【0133】
図15に示すように、切り替えテーブルには、切り替えルール番号、ペイロードセグメントのビットシフト数、及び、スロットIDの増加数が含まれる。
【0134】
切り替えルール番号は、ペイロードセグメントのビットシフト数、及び、スロットIDの増加数を識別するための番号である。1つの切り替えルール番号に対して、1つのペイロードセグメントのビットシフト数、及び、1つのスロットIDの増加数が設定される。本実施の形態では、切り替えルール番号は、後述する剰余Reと対応する値である。
【0135】
ペイロードセグメントのビットシフト数は、ペイロードセグメント(図3参照)を構成するビット列に対して、ビットシフト演算処理を行うときのビットシフト量を示す。切り替えルール番号のそれぞれに、例えば、互いに異なるビットシフト数が設定される。ビットシフト数は、ビットシフト演算処理において、右シフトを行うときのビットシフト数であってもよいし、左シフトを行うときのビットシフト数であってもよい。すなわち、ビットシフト演算処理は、右シフトであってもよいし、左シフトであってもよい。以下では、ビットシフト演算処理は、右シフトを行う処理である例について説明する。例えば、切り替えルール「1」であれば、ペイロードセグメントのビット列を右に1ビットシフトさせることを意味する。また、ビットシフト演算処理は、例えば、巡回シフト処理により行われる。
【0136】
スロットIDの増加数は、切り替え先のスロットIDを決定するための情報である。切り替えルール番号のそれぞれに、例えば、互いに異なるスロットIDの増加数が設定される。例えば、切り替えルール「0」に対応するスロットIDの増加数は、「0」である。この場合、予め設定されているスロットIDに設定される。以下では、予め設定されているスロットのスロットIDは、100であるとする。また、切り替えルール「1」に対応するスロットIDの増加数は、「1」である。この場合、切り替え先のIDは、予め設定されているスロットのスロットIDである100に1を増加した101に設定される。
【0137】
図15の場合、スロットIDの増加数は、「0」~「N」であり、それに対応する切り替え先のスロットIDは、「100」~「100+N」である。ここで、切り替え先のスロットIDのそれぞれは、フレームがまだ割り当てられていない空きスロットのスロットIDである。また、切り替え先のスロットIDは、例えば、動的フレームから選択されてもよい。動的フレームであることで、ペイロード長を任意の値とすることができる利点がある。
【0138】
図15において、スロットIDは、切り替えルール番号に従って1ずつ増加する例について説明したが、切り替えルール番号ごとに異なっていれば、これに限定されない。切り替え先のスロットIDは、複数ずつ増加(例えば、2ずつ増加)してもよい。また、切り替えルール番号のそれぞれにおいて、増加数が同じ(例えば、1ずつ増加)でなくてもよい。また、増加数は、マイナスの値であってもよい。
【0139】
図15に示す切り替えテーブルは、例えば、切り替えテーブル保持部208に格納されている。
【0140】
[3-2. システムの動作]
次に、本実施の形態に係る車載ネットワークシステム10における動作について、図16及び図17を参照しながら説明する。図16は、実施の形態3における送信側のECUの動作の一例を示す図である。
【0141】
図16に示すように、フレーム生成部205は、外部機器制御部204から通知された信号に基づいて、他のECUに状態を通知するためのフレームを生成する(S3001)。
【0142】
切り替え判定部207は、不正判定部206から不正と判定した結果に基づいて、エラー回数が所定回数以上であるか否かを判定する。本実施の形態では、切り替え判定部207は、エラー回数が「0」であるか否かを判定する(S3002)。すなわち、切り替え判定部207は、エラーが発生しているか否かを判定する。エラー回数は、検知回数の一例である。
【0143】
切り替え判定部207は、エラー回数が「0」である、つまりエラーが発生していないと判定する(S3002でYes)と、フレーム生成部205にエラーがないことを示す情報を通知する(出力する)。フレーム生成部205は、フレーム送受信部201に生成したフレームを送信するための送信フレーム要求を出力する。フレーム送受信部201は、フレーム生成部205から出力される送信フレーム要求に従い、送信時刻と共にフレーム送信を行う(S3003)。フレーム送受信部201は、例えば、送信時刻を含むフレームを送信する。
【0144】
また、切り替え判定部207は、エラー回数が「0」ではない、つまりエラーが発生していると判定する(S3002でNo)と、切り替えテーブル保持部208に格納されている切り替えテーブル(例えば、図15に示す切り替えテーブル)の内容を参照し、送信内容を変更するよう、フレーム生成部205に出力する。送信内容を変更するとは、例えば、ビットシフト演算処理を実行すること、及び、スロットIDを切り替えることの少なくとも1つを含む。
【0145】
フレーム生成部205は、切り替え判定部207から送信内容を変更することを示す情報を取得すると、エラー回数のハッシュ値を算出し(S3004)、ペイロードセグメントのビット数Lで当該ハッシュ値の剰余Reを算出する(S3005)。そして、フレーム生成部205は、算出した剰余Reに応じて、互いに異なる処理を実行する(S3006~S3013)。なお、ハッシュ値を算出するためのハッシュ関数は、例えば、切り替えテーブル保持部208に格納されている。また、ビット数Lは特に限定されないが、例えば、64ビットである。この場合は、剰余Reの最大値は、63となる。
【0146】
このように、ハッシュ値をビット数Lで除算した剰余Reを用いることで、切り替え先のスロットIDが枯渇することを抑制することができる。なお、ステップS3004において、ハッシュ値をビット数Lで除算することに限定されず、例えば、予め定められた数値で除算してもよい。予め定められた数値は、例えば、空きスロットの数などに応じて適宜決定されればよい。また、剰余Reの算出方法は、除算に限定されず、加算、減算、乗算などを含んでいてもよい。
【0147】
フレーム生成部205は、剰余Reが0である場合、スロットIDを予め設定された空きスロットID(図16の例では、スロットID100)に変更する(S3007)。フレーム生成部205は、例えば、本来であれば、スロットID「1」で送信するフレームを、スロットID「100」に切り替えて送信する。このように、フレーム生成部205は、例えば、剰余Reが0である場合、ビットシフト演算処理、及び、スロットIDの変更処理のうち、スロットIDの変更処理のみを実行する。
【0148】
また、フレーム生成部205は、剰余Reが1以上である場合、ビットシフト演算処理、及び、スロットIDの変更処理のそれぞれを実行する。すなわち、フレーム生成部205は、剰余Reが1以上である場合、ステップS3001で生成したフレームに含まれるペイロードセグメントに対してビットシフト演算処理を実行したフレームを、当該フレームに対応するスロットIDとは異なるスロットIDで送信するための処理を実行する。
【0149】
例えば、フレーム生成部205は、剰余Reが1である場合、ペイロードセグメントを1だけ右シフトさせ(S3008)、かつ、切り替え先のスロットIDを1だけ増やす(S3009)。この場合、ステップS3007で設定されるスロットIDに1を足したスロットID「101」が切り替え先のスロットIDとなる。
【0150】
また、例えば、フレーム生成部205は、剰余Reが2である場合、ペイロードセグメントを2だけ右シフトさせ(S3010)、かつ、切り替え先のスロットIDを2だけ増やす(S3011)。この場合、ステップS3007で設定されるスロットIDに2を足したスロットID「102」が切り替え先のスロットIDとなる。
【0151】
また、例えば、フレーム生成部205は、剰余ReがL-1である場合、ペイロードセグメントをL-1だけ右シフトさせ(S3012)、かつ、切り替え先のスロットIDをL-1だけ増やす(S3013)。この場合、ステップS3007で設定されるスロットIDにL-1を足したスロットID「100+L-1」が切り替え先のスロットIDとなる。
【0152】
このように、本実施の形態では、エラー回数は、切り替え先のスロットIDを決定するための所定の情報の一例でもある。
【0153】
そして、フレーム生成部205は、切り替え先のスロットID(空きスロットID)の送信タイミングに、送信時刻と共にビットシフト演算処理されたフレームを送信する(S3003)。
【0154】
なお、図16では、ペイロードセグメントのシフト量及びスロットIDの増加量が剰余Reの値と同じ値である例について説明したが、これに限定されず、剰余Reのそれぞれでペイロードセグメントのシフト量及びスロットIDの増加量の少なくとも一方が異なっていればよい。
【0155】
なお、図16では、エラー回数が0ではない場合、切り替え先のスロットIDでフレーム送信する例について説明したが、切替前のスロットIDにおいても、フレーム送信してもよい。つまり、フレーム生成部205は、同じフレームを2以上のスロットIDで送信してもよい。
【0156】
なお、図16では、エラー回数からハッシュ値を算出する例について説明したが、これに限定されず、エラー回数の値に応じて、ペイロードセグメントのシフト量及びスロットIDの増加量が直接決定されてもよい。例えば、エラー回数が1回である場合、剰余Reが1である場合と同様の処理が実行されてもよい。
【0157】
なお、上記では、ステップS3003で送信時刻を含むフレームが送信される例を示しているが、これに限定されない。送信時刻は、別フレームで送信されてもよい。例えば、ステップS3002でNoと判定された場合に割り当てられるスロットIDより前の送信タイミングで送信されるスロットIDで、送信時刻が他のECUに送信されてもよい。さらに、当該スロットIDにおいて、エラー回数も送信されてもよい。これにより、送受信間のECUにおいて、送信時刻及びエラー回数の同期をとる(送信時刻及びエラー回数を共有する)ことができる。また、受信側のECUは、スロットIDを予測するための情報(送信時刻及びエラー回数の少なくとも一方)が送信されることで、事前に切り替え先のスロットIDを予測することができる。
【0158】
次に、本実施の形態に係る車載ネットワークシステム10における、フレームを受信したECUの動作について、図17を参照しながら説明する。図17は、実施の形態3における受信側のECUの動作の一例を示す図である。
【0159】
図17に示すように、フレーム送受信部201は、ステップS3003で送信されたフレームを受信する(S3101)。フレーム送受信部201は、受信したフレームをフレーム解釈部203に出力する。
【0160】
フレーム解釈部203は、受信したフレームのスロットIDに対応するエラー回数が所定回数以上であるか否かを判定する。フレーム解釈部203は、例えば、送信時刻におけるエラー回数が所定回数以上であるか否かを判定する。本実施の形態では、フレーム解釈部203は、エラー回数が「0」であるか否かを判定する(S3102)。すなわち、フレーム解釈部203は、スロットIDにおいて、エラーが発生しているか否かを判定する。
【0161】
フレーム解釈部203は、エラー回数が「0」である、つまりエラーが発生していないと判定する(S3102でYes)と、データフレームを読み込み処理する(S3103)。フレーム解釈部203は、フレームに含まれるペイロードを解釈し、ペイロードの内容に応じてECUに接続される機器(例えば、ECU200aの場合は、前方カメラ210)の制御を行うために外部機器制御部204へ通知を行う。
【0162】
また、フレーム解釈部203は、エラー回数が「0」ではない、つまりエラーが発生していると判定する(S3102でNo)と、ステップS3007~S3013の処理と逆の処理(補正する処理)を実行する。つまり、フレーム解釈部203は、ビットシフトを戻す処理(ビット位置を補正する処理)、及び、スロットIDを戻す処理を実行する。
【0163】
具体的には、フレーム解釈部203は、フレームに含まれる送信時刻におけるエラー回数のハッシュ値を算出する(S3104)。ここでのエラー回数は、ステップS3004において用いたエラー回数と同じ値である。そのため、ステップS3104で算出されるハッシュ値は、ステップS3004で算出されるハッシュ値と同じ値となる。
【0164】
次に、フレーム解釈部203は、ペイロードセグメントのビット数Lでハッシュ値の剰余Reを算出する(S3105)。ここでの剰余Reは、ステップS3005で算出される剰余Reと同じ値となる。そして、フレーム解釈部203は、算出した剰余Reに応じて、互いに異なる処理を実行する(S3106~S3113)。
【0165】
フレーム解釈部203は、剰余Reが0である場合、ステップS3007に対応する処理として、スロットID「100」で送信されたフレームを、本来のスロットIDに変更する(S3107)。このように、フレーム解釈部203は、例えば、剰余Reが0である場合、ビットシフトを戻す処理、及び、スロットIDを戻す処理のうち、スロットIDを戻す処理のみを実行する。
【0166】
例えば、フレーム解釈部203は、スロットID「100」を本来のスロットIDであるスロットID「1」に変更する。すなわち、フレーム解釈部203は、スロットID「100」で受信したフレームは、本来であればスロットID「1」で送信されるフレームであることを認識することができる。フレーム解釈部203は、例えば図7に示すフレームリストに基づいて、スロットID「100」で受信したフレームが速度を含むフレームであることを認識することができる。
【0167】
また、フレーム解釈部203は、剰余Reが1以上である場合、ビットシフトを戻す処理、及び、スロットIDを戻す処理のそれぞれを実行する。
【0168】
例えば、フレーム解釈部203は、剰余Reが1である場合、ステップS3008に対応する処理として、ペイロードセグメントを1だけ左シフトさせ(S3108)、かつ、ステップS3009に対応する処理として、スロットIDを1だけ減らす(S3109)。また、例えば、フレーム解釈部203は、剰余Reが2である場合、ステップS3010に対応する処理として、ペイロードセグメントを2だけ左シフトさせ(S3110)、かつ、ステップS3011に対応する処理として、スロットIDを2だけ減らす(S3111)。また、例えば、フレーム解釈部203は、剰余ReがL-1である場合、ステップS3012に対応する処理として、ペイロードセグメントをL-1だけ左シフトさせ(S3112)、かつ、ステップS3013に対応する処理として、スロットIDをL-1だけ減らす(S3113)。
【0169】
これにより、フレームはS3001で生成された内容に戻り、かつ、スロットIDは当該フレームに対応するスロットID(例えば、スロットID「1」)に戻る。よって、フレーム解釈部203は、ビットシフト演算処理及びスロットID変更処理が行われたフレームであっても、当該フレームにおける情報(例えば、速度)を適切に取得することができる。
【0170】
次に、フレーム解釈部203は、データフレームを読み込み処理する(S3103)。
【0171】
このように、本実施の形態では、エラーが検知されたスロットIDのフレームを、エラー回数に応じて動的に設定される切り替え先のスロットIDに変更することができるので、攻撃者に変更先が予測されてしまい変更先でも攻撃を受けてしまうことを抑制することができる。例えば、切り替え先のスロットIDが単純なテーブルによって決定される場合に比べて、変更先でも攻撃を受けてしまうことを抑制することができる。
【0172】
(実施の形態3の変形例)
本変形例に係る車載ネットワークシステム10における動作について、図18及び図19を参照しながら説明する。本変形例では、不正が検知されたフレームに関する時間情報(例えば、送信時刻)に基づいて、不正が検知されたスロットIDの切り替え先のスロットIDが動的に変化する場合について説明する。図18は、実施の形態3の変形例における送信側のECUの動作の一例を示す図である。なお、実施の形態3における送信側のECUの動作と同様の動作については、説明を省略又は簡略化する。ステップS4001~S4003は、図16に示すステップS3001~S3003とそれぞれ同様の処理である。また、ステップS4010~S4016は、図16に示すステップS3007~S3013とそれぞれ同様の処理である。
【0173】
図18に示すように、フレーム生成部205は、エラー回数が0ではない場合(S4002でNo)、最新エラー検出後の経過時間を算出する(S4004)。経過時間は、例えば、当該フレームに対応するスロットIDにおいて前回エラーが検出されてから今回エラーが検出されるまでの時間である。不正判定部206は、例えば、エラーを検出したときの時刻を切り替えテーブル保持部208に格納する。そして、フレーム生成部205は、当該時刻に基づいて、経過時刻を算出してもよい。
【0174】
次に、フレーム生成部205は、所定時間経過したか否かを判定する(S4005)。フレーム生成部205は、例えば、経過時間が所定時間以上であるか否かにより、上記の判定を行う。所定時間は特に限定されないが、例えば、1時間である。
【0175】
フレーム生成部205は、所定時間経過したと判定する(S4005でYes)と、エラー回数を0に変更する(S4006)。つまり、フレーム生成部205は、エラー回数をリセットする。そして、フレーム生成部205は、ステップS4003の処理を実行する。つまり、フレーム生成部205は、エラー回数が1以上である場合であっても、所定時間経過しているときは、ステップS4001で生成したフレームを、当該フレームに対応するスロットIDで送信する。
【0176】
また、フレーム生成部205は、所定時間経過していないと判定する(S4005でNo)と、ビットシフト演算処理及びスロットID変更処理の少なくとも一方を行うための処理を実行する。これにより、フレーム生成部205は、継続してエラーが発生している(不正な状態が継続している)場合に、車載ネットワークシステム10として安全な状態を保つための処理を実行することができる。
【0177】
本実施の形態では、フレーム生成部205は、当該フレームの送信時刻をシードに疑似乱数を生成する(S4007)。送信時刻は、当該フレームを送信する予定時刻であってもよいし、当該フレームを送信するための処理を行っているときの現在時刻であってもよい。そして、フレーム生成部205は、ペイロードセグメントのビット数Lで疑似乱数の剰余Reを算出し(S4008)、算出した剰余Reに応じて、互いに異なる処理を実行する(S4009~S4016)。
【0178】
次に、フレーム生成部205は、切り替え先のスロットID(空きスロットID)の送信タイミングに、送信時刻と共にフレーム(例えば、ビットシフト演算処理されたフレーム)を送信する(S3003)。ここでの送信時刻は、例えば、ステップS3007で疑似乱数を生成するためのシードに用いた送信時刻と同時刻である。
【0179】
なお、ステップS3007において、送信時刻をシードに用いたが、これに限定されない。フレーム生成部205は、ステップS3007において、送受信間のECUにおいて同期がとれる情報をシードとして用いてもよい。フレーム生成部205は、例えば、ステップS3001で生成したフレームに含まれるサイクル数をシードに疑似乱数を生成してもよいし、前回の疑似乱数をシードに疑似乱数を生成してもよい。なお、疑似乱数の生成方法は、上記以外であってもよいが、受信側のECUにおいても同様の処理が行われる。同様の処理とは、送信側のECUにおいて、前回の疑似乱数をシードに疑似乱数を生成した場合、受信側のECUにおいても、前回の疑似乱数をシードに疑似乱数を生成する(後述する図19に示すS4107参照)。2つの前回の疑似乱数は、互いに同じ値である。
【0180】
次に、本変形例に係る車載ネットワークシステム10における、フレームを受信したECUの動作について、図19を参照しながら説明する。図19は、実施の形態3の変形例における受信側のECUの動作の一例を示す図である。なお、実施の形態3における受信側のECUの動作と同様の動作については、説明を省略又は簡略化する。ステップS4101~S4103は、図17に示すステップS3101~S3103とそれぞれ同様の処理である。また、ステップS4110~S4116は、図17に示すステップS3107~S3113とそれぞれ同様の処理である。
【0181】
図19に示すように、フレーム解釈部203は、エラー回数が0ではない場合(S4102でNo)、フレームに含まれる送信時刻から最新エラー検出後の経過時間を算出する(S4104)。フレーム解釈部203は、例えば、フレームに含まれる送信時刻を記憶部(図示しない)に格納する。そして、フレーム解釈部203は、受信したフレームに含まれる送信時刻と、記憶部に格納されている送信時刻とに基づいて、経過時刻を算出してもよい。S4104で算出される経過時間は、ステップS4004で算出される経過時間と同じ値となる。
【0182】
次に、フレーム解釈部203は、所定時間経過したか否かを判定する(S4105)。フレーム解釈部203は、例えば、経過時間が所定時間以上であるか否かにより、上記の判定を行う。なお、ステップS4105における所定時間は、ステップS4005における所定時間と同じ時間であり、例えば、1時間である。
【0183】
フレーム解釈部203は、所定時間経過したと判定する(S4105でYes)と、エラー回数を0に変更する(S4106)。つまり、フレーム解釈部203は、エラー回数をリセットする。そして、フレーム解釈部203は、S4103の処理を実行する。つまり、フレーム解釈部203は、エラー回数が1以上である場合であっても、所定時間経過していないときは、ステップS4101で受信したフレームに処理を行うことなく、データフレームを読み込み処理する(S4103)。
【0184】
また、フレーム解釈部203は、所定時間経過していないと判定する(S4105でNo)と、フレームに含まれる送信時刻をシードに疑似乱数を生成する(S4107)。S4107で生成される疑似乱数は、ステップS4007で生成される疑似乱数と同じ値となる。そして、フレーム解釈部203は、ペイロードセグメントのビット数Lで疑似乱数の剰余Reを算出する(S4108)。S4108で算出される剰余Reは、ステップS4008で算出される剰余Reと同じ値となる。そして、フレーム解釈部203は、算出した剰余Reに応じて、互いに異なる処理を実行する(S4109~S4116)。
【0185】
このように、本変形例では、送信時刻は、切り替え先のスロットIDを決定するための所定の情報の一例である。
【0186】
次に、フレーム解釈部203は、データフレームを読み込み処理する(S4103)。
【0187】
このように、本実施の形態では、エラーが検知されたスロットIDのフレームを、経過時間などの不正が検知されたフレームに関する時間情報に応じて動的に設定される切り替え先のスロットIDに変更することができるので、攻撃者に変更先が予測されてしまい変更先でも攻撃を受けてしまうことを抑制することができる。例えば、切り替え先のスロットIDが単純なテーブルによって決定される場合に比べて、変更先でも攻撃を受けてしまうことを抑制することができる。
【0188】
(実施の形態4)
[4-1. システムの構成]
本実施の形態では、不正が検知されたフレームのスロットIDが切り替えられるときに、切り替え先のスロットIDが動的に変化する場合について説明する。具体的には、エラーが発生しているフレームの危険度に基づいて、不正が検知されたスロットIDの切り替え先のスロットIDが動的に変化する場合について説明する。
【0189】
危険度は、当該スロットにおいて、不正な情報(例えば、不正なペイロード情報)が送信された場合における、車両の走行の安全性への影響度合いを示す。危険度が高いほど、より正確にペイロード情報を通知する必要がある。
【0190】
フレームの危険度は、例えば、フレームに含まれる信号の種類に応じて設定される。信号の種類は、例えば、車両の走行(例えば、走る・曲がる・止まるなど)における制御指示に関連する「走行制御信号」、ボディ系の制御指示に関連する「ボディ系制御信号」、センサなどから取得される状態(例えば、車両又は車両周囲の状態)を通知する「車両状態信号」の少なくとも1つを含む。
【0191】
これらの信号の種類に対して、危険度を設定する場合、例えば、フレームに含まれる信号に走行制御信号が含まれていれば、危険度が「高」に設定され、フレームに含まれる信号にボディ系制御信号が含まれていれば、危険度が「中」に設定され、フレームに含まれる信号に車両状態信号が含まれていれば、危険度が「低」に設定される。
【0192】
また、これらのフレームに含まれる信号の種類の個数によって、危険度が設定されてもよい。例えば、信号の種類に応じて、スコアが割り当てられており、フレームに含まれる信号の種類のスコアの総和によって危険度が設定されてもよい。
【0193】
なお、危険度の設定は「低」、「中」、及び、「高」の3段階に限らず、2段階であってもよいし、4段階以上であってもよい。また、危険度は、数値で表されていてもよい。危険度は、例えば、0(危険度:最小)~100(危険度:最大)の間の数値で設定されていてもよい。
【0194】
本実施の形態に係る車載ネットワークシステムの構成は、実施の形態1に係る車載ネットワークシステム10、又は、実施の形態2に係る車載ネットワークシステム20と同様であり、説明を省略する。以下では、本実施の形態に係る車載ネットワークシステムの構成は、実施の形態1に係る車載ネットワークシステム10と同様である例について説明する。
【0195】
まず、車載ネットワークシステム10が格納する情報について、図20を参照しながら説明する。図20は、実施の形態4におけるFlexRay通信にて送信されるフレームリストの一例を示す図である。
【0196】
図20に示すように、フレームが割り当てられているスロットIDのそれぞれには、危険度が対応付けられている。具体的には、ペイロード情報の種類に対応する危険度が対応付けられている。例えば、スロットID「1」においては、ペイロード情報が「速度」であり、それに対応する危険度が「「低」である。
【0197】
なお、スロットID「2」は、フレームが割り当てられていないスロットである。つまり、スロットID「2」は、空きスロットである。
【0198】
図20に示すフレームリストに示す切り替えテーブルは、例えば、切り替えテーブル保持部208に格納されている。
【0199】
[4-2. システムの動作]
次に、本実施の形態に係る車載ネットワークシステム10における動作について、図21A図22を参照しながら説明する。図21Aは、実施の形態4における送信側のECUの動作の一例を示す図である。図21Aに示すステップS5001及びS5002は、図16に示すステップS3001及びS3002とそれぞれ同様の処理である。
【0200】
図21Aに示すように、切り替え判定部207は、エラー回数が「0」である、つまりエラーが発生していないと判定する(S5002でYes)と、フレーム生成部205にエラーが発生していないことを示す情報を通知する(出力する)。フレーム生成部205は、フレーム送受信部201に生成したフレームを送信するための送信フレーム要求を出力する。フレーム送受信部201は、フレーム生成部205から通知される送信フレーム要求に従い、当該フレームのスロットIDに応じた送信タイミングでフレーム送信を行う(S5003)。
【0201】
また、切り替え判定部207は、エラー回数が「0」ではない、つまりエラーが発生していると判定する(S5002でNo)と、切り替えテーブル保持部208から通知されるフレームリスト(例えば、図20に示すフレームリスト)の内容を参照し、検知対象ID(エラーが検知されたスロットID)の危険度Riの確認を行い(S5004)、送信内容を変更するよう、フレーム生成部205に出力する。
【0202】
フレーム生成部205は、切り替え判定部207から送信内容を変更することを示す情報を取得すると、危険度Riに応じて、互いに異なる処理を実行する(S5005~S5008)。
【0203】
フレーム生成部205は、危険度Riが「低」である場合、ステップS5003の処理を実行する。つまり、フレーム生成部205は、エラー回数が1以上である場合であっても、危険度が所定以下である(例えば、危険度が「低」である)ときには、ステップS5001で生成したフレームを、当該フレームに対応するスロットIDでフレーム送信する。
【0204】
また、フレーム生成部205は、危険度Riが「低」より高い「中」である場合、ペイロードセグメントを1だけ右シフトさせ(S5005)、ペイロードセグメントを1だけ右シフトさせたフレームを、当該フレームに対応するスロットIDでフレーム送信する(S5003)。フレーム生成部205は、ビットシフト演算処理、及び、スロットIDの変更処理のうち、ビットシフト演算処理のみを実行する。
【0205】
また、フレーム生成部205は、危険度Riが「中」より高い「高」である場合、ペイロードセグメントを1だけ右シフトさせ(S5006)、ペイロードセグメントを1だけ右シフトさせたフレームを、当該フレームに対応するスロットIDでフレーム送信する(S5007)。そして、フレーム生成部205は、さらに、当該フレームのスロットIDを冗長スロットIDに変更する(S5008)。冗長スロットには、例えば、空きスロットが割り当てられる。冗長スロットは、予め設定されていてもよいし、危険度に応じて動的に設定されてもよい。
【0206】
フレーム生成部205は、ペイロードセグメントを1だけ右シフトさせたフレームを、冗長スロットIDでフレーム送信する(S5003)。つまり、フレーム生成部205は、危険度Riが「高」の場合、同じフレームを互いに異なるスロットIDで送信する。これにより、フレーム生成部205は、同一のフレームを複数回(図21Aの例では、2回)送信することができる。このように、フレーム生成部205は、危険度Riが所定以上である場合(例えば、危険度Riが「高」である場合)、例えば危険な攻撃を検知した場合、当該フレームに対する送信スロットを増やす処理を行ってもよい。言い換えると、フレーム生成部205は、危険度Riが所定以上である場合、冗長フレームを送信してよい。冗長フレームは、冗長スロットIDにおいて送信されたフレームであり、図21Aでは、ステップS5008の後のステップS5003で送信されるフレームである。これにより、危険度が所定未満である場合は、送信スロットを増やす処理が実行されないので、送信側のECUにおける処理量を軽減することができる。
【0207】
なお、ステップS5006は、実行されなくてもよい。つまり、フレーム生成部205は、危険度が「高」である場合、ステップS5001で生成したフレームを2回送信する処理を行ってもよい。また、フレーム生成部205は、ステップS5005及びS5006において、互いにビットのシフト量を変えてもよい。
【0208】
また、フレーム生成部205は、図21Aに示す処理に替えて、図21Bに示す処理を実行してもよい。図21Bは、実施の形態4における送信側のECUの動作の他の一例を示す図である。なお、図21Bにおいては、図21Aと同様の処理については、同一の符号を付し、説明を省略又は簡略化する。
【0209】
図21Bに示すように、フレーム生成部205は、危険度Riに応じて、冗長スロットIDの数を変化させてもよい。フレーム生成部205は、例えば、危険度Riが高いほど、当該フレームにおける冗長スロットIDの数を増やしてもよい。
【0210】
例えば、フレーム生成部205は、危険度Riが「中」である場合、ステップS5001で生成したフレームを、当該フレームに対応するスロットIDでフレーム送信し(S5011)、かつ、当該フレームに対応するスロットIDを1つの冗長スロットIDに変更する(S5012)。そして、フレーム生成部205は、当該フレームを、1つの冗長スロットIDでフレーム送信する(S5003)。これにより、フレーム生成部205は、同一のフレームを互いに異なるスロットIDにより2回送信することができる。
【0211】
また、例えば、フレーム生成部205は、危険度Riが「高」である場合、ステップS5001で生成したフレームを、当該フレームに対応するスロットIDでフレーム送信し(S5013)、かつ、当該フレームに対応するスロットIDを2つの冗長スロットIDに変更する(S5014)。フレーム生成部205は、当該フレームを、2つの冗長スロットIDのそれぞれでフレーム送信する(S5003)。これにより、フレーム生成部205は、同一のフレームを互いに異なるスロットIDにより3回送信することができる。
【0212】
なお、ステップS5012及びS5014で変更される冗長スロットIDの数は、上記に限定されず、危険度Ri「高」のときの冗長スロットIDの数が、危険度Ri「中」のときの冗長スロットIDの数より多ければよい。また、ステップS5012及びS5014で変更される冗長スロットIDは、互いに異なるスロットIDであってもよいし、少なくとも1つが同じスロットIDであってもよい。
【0213】
このように、本実施の形態では、フレームの危険度は、切り替え先のスロットIDを決定するための所定の情報の一例である。
【0214】
なお、図21AのステップS5008における冗長スロットID、並びに、図21Bに示すステップS5012及びS5014における冗長スロットIDに関する情報は、ステップS5003で送信されるフレームに含まれてもよいし、他の空きスロットにおいて送信されてもよい。これにより、送受信側のECUのそれぞれにおいて、冗長スロットIDに関する情報が共有される。冗長スロットIDに関する情報は、例えばスロットID「1」に対応する冗長スロットIDを特定するための情報を含む。
【0215】
なお、上記では、フレーム生成部205は、ステップS5004において、フレームの危険度を切り替えテーブル保持部208から通知されるフレームリストに基づいて取得する例について説明したが、これに限定されない。フレーム生成部205は、ステップS5001で生成したフレームに含まれる信号の種類に応じて当該フレームの危険度を判定することで、当該フレームの危険度を取得してもよい。フレーム生成部205は、例えば、ステップS5004において、ステップS5001で生成したフレームに「走行制御信号」が含まれる場合、当該フレームを「高」であると判定してもよい。
【0216】
次に、本実施の形態に係る車載ネットワークシステム10における、フレームを受信したECUの動作について、図22を参照しながら説明する。図22は、実施の形態4における受信側のECUの動作の一例を示す図である。なお、図22に示すステップS5101~S5103は、図17に示すステップS3101~S3103とそれぞれ同様の処理である。また、図22は、送信側のECUが図21Aに示す処理を行った場合の受信側のECUの処理を示す。
【0217】
図22に示すように、フレーム解釈部203は、エラー回数が0ではない場合(S5102でNo)、ステップS5101で受信したフレームが冗長フレームであるか否かを判定する(S5104)。フレーム解釈部203は、例えば、当該フレーム又は当該フレームとは異なる送信タイミング(例えば、当該フレームより前の送信タイミング)に受信したフレームにより取得した冗長スロットIDに関する情報に基づいて、ステップS5101で受信したフレームが冗長フレームであるか否かを判定してもよい。また、フレーム解釈部203は、例えば、ステップS5007で送信されたフレームを受信した場合、当該フレームにおけるエラー回数及び危険度Riの少なくとも一方に基づいて、当該フレームにおける冗長スロットIDを特定するための処理を実行してもよい。フレーム解釈部203は、例えば、ステップS5002、S5004、及び、S5008の処理を実行してもよい。これにより、受信側のECUは、送信側のECUが冗長スロットIDをどの空きスロットIDとしたかを知ることができる。そして、フレーム解釈部203は、その結果に基づいて、ステップS5101で受信したフレームが冗長フレームであるか否かを判定してもよい。
【0218】
フレーム解釈部203は、当該フレームが冗長フレームであると判定する(S5104でYes)と、記憶済みフレームを読み込む(S5105)。この場合、記憶済みフレームは、ステップS5007で送信されたフレームを意味する。記憶済みフレームは、記憶部(図示しない)に格納されている。
【0219】
次に、フレーム解釈部203は、冗長フレームと記憶済みフレームとが一致するか否かを判定する(S5106)。冗長フレームと記憶済みフレームとは、本来であれば同じ内容のフレームである。冗長フレームと記憶済みフレームとは、例えば、ペイロードセグメントに含まれるData「0」~Data「n」のそれぞれが等しいはずである。そのため、フレーム解釈部203は、冗長フレームと記憶済みフレームとが一致するか否かにより、どちらかのフレームが不正なフレームであるか否かを判定することができる。
【0220】
フレーム解釈部203は、冗長フレームと記憶済みフレームとが一致する場合(S5106でYes)、冗長フレームの送信を停止する処理を実行する(S5107)。フレーム解釈部203は、例えば、記憶済みフレームに対応する冗長フレームの送信を停止するための情報を送信することを示す情報をフレーム生成部205に出力する。フレーム生成部205は、例えば、記憶済みフレームに対応する冗長フレームの送信を停止するための情報を空きスロットIDで送信する。
【0221】
また、フレーム解釈部203は、冗長フレームと記憶済みフレームとが一致しない場合(S5106でNo)、2つのフレームの平均値、又は、冗長フレームを採用する(S5108)。フレーム解釈部203は、速度などの数値で示される情報においては、例えば、2つのフレームの平均値をそのフレームにおける数値(例えば、速度)としてもよい。これにより、どちらか一方が不正なフレームである場合であっても、その影響が大きくなることを抑制することができる。また、フレーム解釈部203は、フラグ値(「0」or「1」)など平均値が意味をなさない情報においては、冗長フレームにおける情報を優先して採用する。これにより、受信側のECUは、攻撃者に気付かれにくい冗長フレームの情報を採用することができるので、より信頼度の高い情報を得ることができる。
【0222】
なお、上記では、フレーム解釈部203は、ステップS5106でNoである場合、2つのフレームの平均値を採用する例について説明したが、中央値、最頻値などを採用してもよい。
【0223】
なお、フレーム解釈部203は、ステップS5106でNoであった場合、フレームに含まれる情報(例えば、ペイロード情報)の種類に関わらず、冗長フレームの情報を採用してもよい。
【0224】
また、フレーム解釈部203は、当該フレームが冗長フレームではないと判定する(S5104でNo)、例えば図21Aに示すステップS5007で送信されたフレームであると判定すると、図20に示すフレームリストに基づいて、検知対象ID(当該フレームのスロットID)の危険度Riを確認する(S5109)。フレーム解釈部203は、例えば、フレームリスト(例えば、図20に示すフレームリスト)の内容を参照し、検知対象ID(エラーが検知されたスロットID)の危険度Riを確認する。そして、フレーム解釈部203は、危険度Riに応じて、互いに異なる処理を実行する(S5110~S5112)。
【0225】
フレーム解釈部203は、危険度Riが「低」である場合、ステップS5103の処理を実行する。
【0226】
また、フレーム生成部205は、危険度Riが「中」である場合、ステップS5005に対応する処理として、ペイロードセグメントを1だけ左シフトさせる(S5110)。そして、フレーム解釈部203は、ステップS5103の処理を実行する。
【0227】
また、フレーム解釈部203は、危険度Riが「高」である場合、ステップS5006に対応する処理として、ペイロードセグメントを1だけ左シフトさせる(S5111)。そして、フレーム解釈部203は、ペイロードセグメントを1だけ左シフトさせたフレームを記憶部(図示しない)に記憶する(S5112)。ステップS5112で記憶されたフレームは、ステップS5106における記憶済みフレームとして用いられる。そして、フレーム解釈部203は、当該フレームにおけるデータフレーム読み込み処理を実行せずに、当該フレームに対する処理を終了する。
【0228】
このように、本実施の形態では、エラーが検知されたスロットIDのフレームを、当該フレームの危険度に応じて動的に設定される切り替え先のスロットIDに変更することができるので、攻撃者に変更先が予測されてしまい変更先でも攻撃を受けてしまうことを抑制することができる。例えば、切り替え先のスロットIDが単純なテーブルによって決定される場合に比べて、変更先でも攻撃を受けてしまうことを抑制することができる。
【0229】
なお、上記では、検知対象IDの危険度Riに応じて、互いに異なる処理が実行される例について説明したが、これに限定されない、危険度Riは、現時点の車両状態に基づいて決定されてもよい。車両状態は、駐車中、停車中、及び、走行中などであってもよいし、速度「遅い」、「中」、「速い」などであってもよい。例えば、車両状態が速度を含む場合、速度が速くなるにつれ危険度Riが高く設定される。この場合、車両情報は、切り替え先のスロットIDを決定するための所定の情報の一例である。
【0230】
なお、上記では、フレーム解釈部203は、ステップS5109において、受信したフレームの危険度をフレームリストに基づいて取得する例について説明したが、これに限定されない。フレーム解釈部203は、ステップS5101で受信したフレームに含まれる信号の種類に応じて当該フレームの危険度を判定することで、当該フレームの危険度を取得してもよい。フレーム解釈部203は、例えば、ステップS5109において、ステップS5101で受信したフレームに「走行制御信号」が含まれる場合、当該フレームを危険度「高」であると判定してもよい。
【0231】
(実施の形態4の変形例)
本変形例に係る車載ネットワークシステム10における動作について、図23を参照しながら説明する。本変形例では、受信側のECUにおいて、受信したフレームが不正フレームであるか否かを検出する例について説明する。図23は、実施の形態4の変形例における受信側のECUの動作の一例を示す図である。
【0232】
図23に示すように、フレーム送受信部201は、ステップS5003で送信されたフレームを受信する(S6001)。ステップS6001は、図22に示すステップS5101に相当する。
【0233】
次に、フレーム解釈部203は、受信したフレームのビット位置を補正する(S6002)。ステップS6002は、図22に示すステップS5110に相当する。
【0234】
次に、フレーム解釈部203は、ビット位置を補正したフレームのデータフレームを読み込み処理する(S6003)。ステップS6003は、図22に示すステップS5103に相当する。フレーム解釈部203は、読み込み結果を不正判定部206に出力する。
【0235】
次に、不正判定部206は、データフレームに基づくデコード値が設計値内であるか否かを判定する(S6004)。デコード値は、データフレームから取り出した数値の情報を意味する。デコード値は、例えば、フレームのペイロード情報が速度である場合、データフレームから取り出した速度である。また、設計値は、ペイロード情報の種類に応じた値である。設計値は、ペイロード情報が速度である場合、速度として現実的にあり得ない値に設定され、例えば、3000km/hなどであってもよい。
【0236】
また、不正判定部206は、フレームがマジックナンバーを含むフィールドを有する場合、当該マジックナンバーをデコードしたときの値が設計値と一致するか否かによりステップS6004の判定を行ってもよい。この場合、設計値は、数値範囲ではなく、1つの数値に設定される。なお、デコード値が設計値と完全一致することは、デコード値が設計値内であることの一例である。
【0237】
また、不正判定部206は、フレームがマジックナンバーを含むフィールドを有する場合、当該マジックナンバーの「0」と「1」との並び(ビットの並び)が設計値と一致するか否かによりステップS6004の判定を行ってもよい。この場合、設計値は、「0」と「1」の並びとなる。
【0238】
不正判定部206は、デコード値が設計値内である場合(S6004でYes)、ステップS6001で受信したフレームが不正フレームであるか否かの判定処理を終了する。また、不正判定部206は、デコード値が設計値内ではない場合(S6004でNo)、当該フレームを不正フレームとして検出する(S6005)。不正判定部206は、不正フレームと判定したこと示す情報をフレーム生成部205に出力してもよい。そして、フレーム生成部205は、不正判定部206が不正フレームと判定したフレームを特定するための情報(例えば、スロットID)と、当該フレームが不正フレームであることを示す情報とを含む不正フレーム情報を他のECUに送信してもよい。フレーム生成部205は、例えば、不正フレーム情報を空きスロットにより送信してもよい。
【0239】
これにより、例えば、攻撃者がビットシフト演算処理されていることを知らずに不正フレームを送信させていた場合、「0」と「1」との並びにより、不正フレームであるか否かを容易に判定することができる。
【0240】
(その他変形例)
なお、本開示を上記各実施の形態に基づいて説明してきたが、本開示は、上記各実施の形態に限定されないのはもちろんである。以下のような場合も本開示に含まれる。
【0241】
(1)上記実施の形態1では、切り替えテーブルは静的に保持している例を示したが、通信開始後、空いているスロットを動的に探索の上、作成するとしても良い。また、その際には、通信開始時にお互いのテーブルを共有するための同期フレームを新たに送信するとしてもよい。
【0242】
(2)上記実施の形態1では、切り替え前のスロットから、切り替え後のスロットへ、送信フレームを切り替える例を示したが、両方送信し続けるとしても良い。また、その場合には両スロットにて送信されるフレームの内容を比較の上、同一だった場合のみ採用する、あるいは両スロットにて送信されるフレームの内容に差異があった場合、切り替え後のスロットにて送信されるフレームの内容のみ採用するとしても良い。
【0243】
(3)上記実施の形態では、フレームのエラーを検知することで、切り替えを行いましたが、不正検知方法はこれに限定しない。予め決められたペイロードから外れる場合に検知するとしても良いし、前フレームからの差分が急な場合に不正と判断するとしても良い。また上記のような不正検知結果を、予め双方にて決めておいた別スロットで通信相手に通知するとしても良い。
【0244】
(4)上記実施の形態では、切り替えるIDを静的スロットから動的スロットへと切り替える例を示したが、動的スロットから静的スロットへ、または、動的スロット同士、または静的スロット同士で切り替えるとしても良い。
【0245】
(5)上記実施の形態では、切り替える内容をID毎にしたが、ペイロードの位置を切り替えるとしても良い。元々空きとなっているペイロード位置に変更しても良いし、元々あるペイロード位置とスイッチするとしても良い。
【0246】
(6)上記の実施の形態では、車載ネットワークとしてFlexRayプロトコルを用いていたが、これに限るものではない。例えば、CAN-FD(CAN with Frexible Data Rate)、Ethernet、LIN(Local Interconnect Network)、MOST(Media Oriented Systems Transport)などを用いてもよい。あるいはこれらのネットワークをサブネットワークとして、組み合わせたネットワークであってもよい。
【0247】
(7)上記の実施の形態における各装置は、具体的には、マイクロプロセッサ、ROM、RAM、ハードディスクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュータシステムである。RAMまたはハードディスクユニットには、コンピュータプログラムが記録されている。マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、各装置は、その機能を達成する。ここでコンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。
【0248】
(8)上記の実施の形態における各装置は、構成する構成要素の一部または全部は、1個のシステムLSI(Large Scale Integration:大規模集積回路)から構成されているとしてもよい。システムLSIは、複数の構成部を1個のチップ上に集積して製造された超多機能LSIであり、具体的には、マイクロプロセッサ、ROM、RAMなどを含んで構成されるコンピュータシステムである。RAMには、コンピュータプログラムが記録されている。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、システムLSIは、その機能を達成する。
【0249】
また、上記の各装置を構成する構成要素の各部は、個別に1チップ化されていても良いし、一部又はすべてを含むように1チップ化されてもよい。
【0250】
また、ブロック図における機能ブロックの分割は一例であり、複数の機能ブロックを一つの機能ブロックとして実現したり、一つの機能ブロックを複数に分割したり、一部の機能を他の機能ブロックに移してもよい。また、類似する機能を有する複数の機能ブロックの機能を単一のハードウェア又はソフトウェアが並列又は時分割に処理してもよい。
【0251】
また、ここでは、システムLSIとしたが、集積度の違いにより、IC、LSI、スーパーLSI、ウルトラLSIと呼称されることもある。また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。
【0252】
さらには、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてありえる。
【0253】
(9)上記の各装置を構成する構成要素の一部または全部は、各装置に脱着可能なICカードまたは単体のモジュールから構成されているとしてもよい。ICカードまたは前記モジュールは、マイクロプロセッサ、ROM、RAMなどから構成されるコンピュータシステムである。ICカードまたは前記モジュールは、上記の超多機能LSIを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、ICカードまたは前記モジュールは、その機能を達成する。このICカードまたはこのモジュールは、耐タンパ性を有するとしてもよい。
【0254】
(10)本開示は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプログラムからなるデジタル信号であるとしてもよい。
【0255】
また、本開示は、コンピュータプログラムまたはデジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD-ROM、MO、DVD、DVD-ROM、DVD-RAM、BD(Blu-ray(登録商標) Disc)、半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されている前記デジタル信号であるとしてもよい。
【0256】
また、本開示は、前記コンピュータプログラムまたは前記デジタル信号を、電気通信回線、無線または有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。
【0257】
また、本開示は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記録しており、前記マイクロプロセッサは、前記コンピュータプログラムにしたがって動作するとしてもよい。
【0258】
また、前記プログラムまたは前記デジタル信号を前記記録媒体に記録して移送することにより、または前記プログラムまたは前記デジタル信号を前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
【0259】
また、フローチャートにおける各ステップが実行される順序は、本開示を具体的に説明するために例示するためのものであり、上記以外の順序であってもよい。また、上記ステップの一部が、他のステップと同時(並列)に実行されてもよい。
【0260】
(11)上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
【産業上の利用可能性】
【0261】
本開示は、車載ネットワークシステム全体として、安全な状態を維持することができる。
【符号の説明】
【0262】
10、20 車載ネットワークシステム
100a、100b、100c、100d バス
200a、200b、200c、200d、1200a、1200b、1200c、1200d ECU
201 フレーム送受信部
202 通信用設定パラメータ保持部
203、1203 フレーム解釈部
204 外部機器制御部
205 フレーム生成部
206 不正判定部
207、1207 切り替え判定部
208 切り替えテーブル保持部
210 前方カメラ
220 ギア
230 ブレーキ
240 後方カメラ
300 スターカプラ
301a、301b、301c、301d トランシーバ部
302 ルーティング部
1209 車両状態判定部
L ビット数
Re 剰余
Ri 危険度
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21A
図21B
図22
図23