(57)【要約】  不正対処方法は、車載ネットワークにおける不正対処方法であって、フレームの送受信を行うフレーム送受信ステップと、不正なフレームを検知する不正検知ステップと不正検知ステップにおいて不正が検知された場合（Ｓ３００２でＮｏ）に、不正が検知されたフレームの送信タイミングを切り替える処理を行う切り替え処理ステップ（Ｓ３００４〜Ｓ３０１３）とを含む。そして、切り替え処理ステップでは、所定の情報に応じて切り替え先の送信タイミングを変更する。
2020022327.tif 000002
【特許請求の範囲】
【請求項１】
車載ネットワークにおける不正対処方法であって、
フレームの送受信を行うフレーム送受信ステップと、
不正なフレームを検知する不正検知ステップと、
前記不正検知ステップにおいて不正が検知された場合に、不正が検知されたフレームの送信タイミングを切り替える切り替え処理ステップとを含み、
前記切り替え処理ステップでは、所定の情報に応じて切り替え先の送信タイミングを変更する
不正対処方法。
【請求項２】
前記所定の情報は、前記不正検知ステップにおける検知回数を含み、
前記切り替え処理ステップでは、前記検知回数に応じた送信タイミングを前記切り替え先の送信タイミングに決定する
請求項１に記載の不正対処方法。
【請求項３】
前記切り替え処理ステップでは、前記検知回数のハッシュ値を算出し、前記不正が検知されたフレームのペイロードセグメントのビット数で前記ハッシュ値の剰余を算出し、前記剰余に応じた送信タイミングを前記切り替え先の送信タイミングに決定する
請求項２に記載の不正対処方法。
【請求項４】
前記所定の情報は、前記不正が検知されたフレームの送信時刻を示す情報を含み、
前記切り替え処理ステップでは、前記送信時刻を示す情報に応じた送信タイミングを前記切り替え先の送信タイミングに決定する
請求項１に記載の不正対処方法。
【請求項５】
前記切り替え処理ステップでは、前記送信時刻を示す情報をシードに疑似乱数を生成し、前記不正が検知されたフレームのペイロードセグメントのビット数で前記疑似乱数の剰余を算出し、前記剰余に応じた送信タイミングを前記切り替え先の送信タイミングに決定する
請求項４に記載の不正対処方法。
【請求項６】
前記切り替え処理ステップでは、さらに、前記ペイロードセグメントを構成するビット列に対して、前記剰余に応じたビットシフト量によりビットシフト演算処理を行う
請求項３又は５に記載の不正対処方法。
【請求項７】
前記所定の情報は、前記不正が検知されたフレームの危険度を含み、
前記切り替え処理ステップでは、前記危険度に応じた送信タイミングを前記切り替え先の送信タイミングに決定する
請求項１に記載の不正対処方法。
【請求項８】
前記切り替え処理ステップは、前記危険度が第１閾値以上である場合に実行される
請求項７に記載の不正対処方法。
【請求項９】
前記切り替え処理ステップでは、前記危険度が第１閾値以上である場合、さらに前記不正が検知されたフレームのペイロードセグメントを構成するビット列に対して、前記危険度に応じたビットシフト量によりビットシフト演算処理を行う
請求項８に記載の不正対処方法。
【請求項１０】
前記切り替え処理ステップでは、前記危険度が前記第１閾値より低い第２閾値以上であり、かつ、前記第１閾値未満である場合、前記ペイロードセグメントを構成するビット列に対して、前記危険度に応じたビットシフト量によりビットシフト演算処理を行う
請求項９に記載の不正対処方法。
【請求項１１】
前記切り替え処理ステップでは、前記危険度が前記第１閾値より高い第３閾値以上である場合、前記危険度に応じた複数の送信タイミングを前記切り替え先の送信タイミングに決定する
請求項８〜１０のいずれか１項に記載の不正対処方法。
【請求項１２】
前記所定の情報は、車両の車両状態を含み、
前記切り替え処理ステップでは、前記車両状態に応じた送信タイミングを前記切り替え先の送信タイミングに決定する
請求項１に記載の不正対処方法。
【請求項１３】
前記切り替え処理ステップは、前記不正検知ステップにおける検知回数が所定回数以上である場合に実行される
請求項１〜１２のいずれか１項に記載の不正対処方法。
【請求項１４】
前記切り替え処理ステップは、前回不正が検知されてからの経過時間が所定時間以下である場合に実行される
請求項１〜１２のいずれか１項に記載の不正対処方法。
【請求項１５】
前記切り替え処理ステップでは、前記不正が検知されたフレームの送信タイミングにおいて当該フレームが送信された後に、当該フレームの送信タイミングを切り替える
請求項１〜１４のいずれか１項に記載の不正対処方法。
【請求項１６】
前記車載ネットワークにおける通信方式は、タイムスロットに基づくタイムトリガー型の通信方式であり、
前記フレーム送受信ステップでは、予め定められたタイムスロット内で、フレームの送受信が行われ、
前記切り替え処理ステップでは、前記切り替え先の送信タイミングとして、切り替え先のスロットを決定する
請求項１〜１５のいずれか１項に記載の不正対処方法。
【請求項１７】
前記タイムスロットは、フレームが割り当てられていない複数の空きスロットを含み、
前記切り替え処理ステップでは、前記所定の情報に応じた空きスロットを切り替え先のスロットに決定する
請求項１６に記載の不正対処方法。
【請求項１８】
車載ネットワークにおける不正対処装置であって、
フレームの送受信を行うフレーム送受信部と、
不正なフレームを検知する不正検知部と、
前記不正検知部において不正が検知された場合に、不正が検知されたフレームの送信タイミングを切り替える切り替え処理部とを備え、
前記切り替え処理部は、所定の情報に応じて切り替え先の送信タイミングを変更する
不正対処装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、車載ネットワーク上における不正対処方法、及び、不正対処装置に関する。
【背景技術】
【０００２】
近年、自動車の中のシステムには、電子制御ユニット（以下、ＥＣＵ）と呼ばれる装置が多数配置されている。これらのＥＣＵをつなぐネットワークを車載ネットワークと呼ばれる。車載ネットワークには、多数の規格が存在する。その中でも、現在、主流となっているＣｏｎｔｒｏｌｌｅｒ  Ａｒｅａ  Ｎｅｔｗｏｒｋ（以下ＣＡＮ（登録商標））よりも高速、高信頼プロトコルとして設計されたＦｌｅｘＲａｙ（登録商標）という規格が存在する。【０００３】
ＦｌｅｘＲａｙでは２本のより線の電圧差により“０”の値と“１”の値を表す。バスに接続されているＥＣＵはノードと呼ばれる。バスに接続されている各ノードは、フレームと呼ばれるメッセージを送受信する。ＦｌｅｘＲａｙはＴｉｍｅ  Ｄｉｖｉｓｉｏｎ  Ｍｕｌｔｉｐｌｅ  Ａｃｃｅｓｓ（以下ＴＤＭＡ）方式であり、各ノードは予め決められたタイミングでフレームを送信する。【０００４】
ＦｌｅｘＲａｙでは、最大の時間単位であるサイクルが存在し、各ノードはグローバルタイムを同期している。サイクルは「静的セグメント」「動的セグメント」「シンボルウィンドウ」「ネットワークアイドルタイム」の４つのセグメントから構成され、動的セグメントとシンボルウィンドウはオプションである。各ノードは静的セグメントと動的セグメントにおいてフレームを送信する。静的セグメントと動的セグメントは、さらにスロットと呼ばれる１つのフレームを送信することができる時間から構成される。【０００５】
ＦｌｅｘＲａｙでは送信先や送信元を示す識別子は存在せず、送信ノードはフレーム毎に予め定められた送信タイミングであるスロット番号に基づいてフレームを送信する。各受信ノードは予め決められたスロット番号のフレームのみを受信する。また、同一のスロット番号のフレームであっても、サイクルによって異なるフレームの通信を実現する「サイクルマルチプレキシング」と呼ばれる方法が用いられることもある。【０００６】
また、ＦｌｅｘＲａｙでは、ＣＡＮのように全てのノードが１つのバスに接続されるバス型ネットワークトポロジだけでなく、スターカプラを介したスター型のネットワークトポロジ、バス型とスター型のハイブリッド型のネットワークトポロジなどを設計することが可能である。【０００７】
一方、セキュリティに関しては、ＣＡＮでは、攻撃者がＣＡＮのバスにアクセスし、不正フレームを送信することで、ＥＣＵを不正制御するといった脅威が存在し、セキュリティ対策が検討されている。【０００８】
例えば特許文献１では、車載ネットワーク監視装置を提案しており、フレームがあらかじめ規定された通信間隔でＣＡＮに送信されているかを検出し、規定された通信間隔から外れるフレームを不正と判断することで、不正フレームによる制御を防止する方法が開示されている。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特許第５６６４７９９号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、特許文献１のような不正検知手法による方法は、ＴＤＭＡ方式を採用しているＦｌｅｘＲａｙでは、予め規定された通信間隔で通信を行うため、適用することができない。また、ＣＡＮにおけるセキュリティも、向上することが望まれる。【００１１】
そこで、本開示は、上記課題を解決するために、不正に送信されたフレームによる影響の範囲を低減することにより安全な車載ネットワークシステムを実現できる不正対処方法、及び、不正対処装置を提供することを目的とする。
【課題を解決するための手段】
【００１２】
上記目的を達成するために、本開示の一態様に係る不正対処方法は、車載ネットワークにおける不正対処方法であって、フレームの送受信を行うフレーム送受信ステップと、不正なフレームを検知する不正検知ステップと、前記不正検知ステップにおいて不正が検知された場合に、不正が検知されたフレームの送信タイミングを切り替える切り替え処理ステップとを含み、前記切り替え処理ステップでは、所定の情報に応じて切り替え先の送信タイミングを変更する。【００１３】
また、本開示の一態様に係る不正対処装置は、車載ネットワークにおける不正対処装置であって、フレームの送受信を行うフレーム送受信部と、不正なフレームを検知する不正検知部と、前記不正検知部において不正が検知された場合に、不正が検知されたフレームの送信タイミングを切り替える切り替え処理部とを備え、前記切り替え処理部は、所定の情報に応じて切り替え先の送信タイミングを変更する。
【発明の効果】
【００１４】
本開示の一態様に係る不正対処方法等によれば、安全な車載ネットワークシステムを実現することができる。
【図面の簡単な説明】
【００１５】
【図１】図１は、実施の形態１における車載ネットワークシステムの全体構成を示す図である。
【図２】図２は、実施の形態１におけるＦｌｅｘＲａｙ通信のサイクルを示す図である。
【図３】図３は、実施の形態１におけるＦｌｅｘＲａｙ通信のフレームフォーマットを示す図である。
【図４】図４は、実施の形態１におけるＥＣＵの構成の一例を示す図である。
【図５】図５は、実施の形態１におけるＦｌｅｘＲａｙ通信の通信用設定パラメータの一例を示す図である。
【図６】図６は、実施の形態１におけるスターカプラの構成の一例を示す図である。
【図７】図７は、実施の形態１におけるＦｌｅｘＲａｙ通信にて送信されるフレームリストの一例を示す図である。
【図８】図８は、実施の形態１におけるＦｌｅｘＲａｙ通信のフレーム送信スケジュールの一例を示す図である。
【図９】図９は、実施の形態１における切り替えテーブルの一例を示す図である。
【図１０】図１０は、実施の形態１における切り替え通信のシーケンスの一例を示す図である。
【図１１】図１１は、実施の形態２における車載ネットワークシステムの全体構成を示す図である。
【図１２】図１２は、実施の形態２におけるＥＣＵの構成の一例を示す図である。
【図１３】図１３は、実施の形態２における切り替えテーブルの一例を示す図である。
【図１４】図１４は、実施の形態２における切り替え通信のシーケンスの一例を示す図である。
【図１５】図１５は、実施の形態３における切り替えテーブルの一例を示す図である。
【図１６】図１６は、実施の形態３における送信側のＥＣＵの動作の一例を示す図である。
【図１７】図１７は、実施の形態３における受信側のＥＣＵの動作の一例を示す図である。
【図１８】図１８は、実施の形態３の変形例における送信側のＥＣＵの動作の一例を示す図である。
【図１９】図１９は、実施の形態３の変形例における受信側のＥＣＵの動作の一例を示す図である。
【図２０】図２０は、実施の形態４におけるＦｌｅｘＲａｙ通信にて送信されるフレームリストの一例を示す図である。
【図２１Ａ】図２１Ａは、実施の形態４における送信側のＥＣＵの動作の一例を示す図である。
【図２１Ｂ】図２１Ｂは、実施の形態４における送信側のＥＣＵの動作の他の一例を示す図である。
【図２２】図２２は、実施の形態４における受信側のＥＣＵの動作の一例を示す図である。
【図２３】図２３は、実施の形態４の変形例における受信側のＥＣＵの動作の一例を示す図である。
【発明を実施するための形態】
【００１６】
本開示の一態様に係る不正対処方法は、車載ネットワークにおける不正対処方法であって、フレームの送受信を行うフレーム送受信ステップと、不正なフレームを検知する不正検知ステップと、前記不正検知ステップにおいて不正が検知された場合に、不正が検知されたフレームの送信タイミングを切り替える切り替え処理ステップとを含み、前記切り替え処理ステップでは、所定の情報に応じて切り替え先の送信タイミングを変更する。
【００１７】
これにより、切り替え先の送信タイミング（例えば、切り替え先のスロットＩＤ）が動的に決定されるので、攻撃者に切り替え先の送信タイミングが予測されにくくなる。つまり、切り替え先の送信タイミングで、フレームの正しい情報を他のＥＣＵに送信することができる。例えば、切り替え先の送信タイミングが単純なテーブル等によって決定される場合に比べて、切り替え先でも攻撃を受けてしまうことを抑制することができる。よって、車載ネットワークに、不正フレームが送信されたとしても、不正なフレームを検知した後に、対処することで車載ネットワークシステム全体として、安全な状態を維持することができる。
【００１８】
また、例えば、前記所定の情報は、前記不正検知ステップにおける検知回数を含み、前記切り替え処理ステップでは、前記検知回数に応じた送信タイミングを前記切り替え先の送信タイミングに決定する。
【００１９】
これにより、エラー回数に応じて切り替え先の送信タイミングを動的に決定することができる。なお、エラー回数は、送受信間のＥＣＵで同期をとることが可能である。
【００２０】
また、例えば、前記所定の情報は、前記不正が検知されたフレームの送信時刻を示す情報を含み、前記切り替え処理ステップでは、前記送信時刻を示す情報に応じた送信タイミングを前記切り替え先の送信タイミングに決定する。
【００２１】
これにより、送信時刻を示す情報に応じて切り替え先の送信タイミングを動的に決定することができる。なお、送信時刻を示す情報は、送受信間のＥＣＵで同期をとることが可能である。
【００２２】
また、例えば、前記切り替え処理ステップでは、前記検知回数のハッシュ値を算出し、前記不正が検知されたフレームのペイロードセグメントのビット数で前記ハッシュ値の剰余を算出し、前記剰余に応じた送信タイミングを前記切り替え先の送信タイミングに決定する。また、例えば、前記切り替え処理ステップでは、前記送信時刻を示す情報をシードに疑似乱数を生成し、前記不正が検知されたフレームのペイロードセグメントのビット数で前記疑似乱数の剰余を算出し、前記剰余に応じた送信タイミングを前記切り替え先の送信タイミングに決定する。
【００２３】
これにより、攻撃者にさらに切り替え先の送信タイミングが予測されにくくなるので、車載ネットワークの安全性を向上させることができる。また、算出される剰余の値は、ビット数より小さい値となる。例えば、車載ネットワークがフレックスレイからなる場合、切り替え先のスロットの数が増加することを抑制することができるので、スロットＩＤが枯渇することを抑制することができる。
【００２４】
また、例えば、前記切り替え処理ステップでは、さらに、前記ペイロードセグメントを構成するビット列に対して、前記剰余に応じたビットシフト量によりビットシフト演算処理を行う。
【００２５】
これにより、受信側のＥＣＵにおいて、受信したフレームが不正フレームであるか否かを容易に判定することができる。例えば、攻撃者が切り替え後の送信タイミング（例えば、スロットＩＤ）を予測できたとしても、ビットシフトのルールを知らない場合に、受信側のＥＣＵで不正フレームのデータフレームをデコードしたデコード値が通常ではあり得ない数値となる。よって、受信側のＥＣＵにおいて、デコード値を確認することで、不正フレームであるか否かを容易に判定することができる。
【００２６】
また、例えば、前記所定の情報は、前記不正が検知されたフレームの危険度を含み、前記切り替え処理ステップでは、前記危険度に応じた送信タイミングを前記切り替え先の送信タイミングに決定する。
【００２７】
これにより、危険度に応じて切り替え先の送信タイミングを動的に決定することができる。なお、危険度は、送受信間のＥＣＵで同期をとることが可能である。
【００２８】
また、例えば、前記切り替え処理ステップは、前記危険度が第１閾値以上である場合に実行される。
【００２９】
これにより、ＥＣＵにおける処理量が増加することを抑制しつつ、危険度が高いフレームの正しい情報を他のＥＣＵに送信することができる。
【００３０】
また、例えば、前記切り替え処理ステップでは、前記危険度が第１閾値以上である場合、さらに前記不正が検知されたフレームのペイロードセグメントを構成するビット列に対して、前記危険度に応じたビットシフト量によりビットシフト演算処理を行う。
【００３１】
これにより、受信側のＥＣＵにおいて、受信したフレームが不正フレームであるか否かを容易に判定することができる。
【００３２】
また、例えば、前記切り替え処理ステップでは、前記危険度が前記第１閾値より低い第２閾値以上であり、かつ、前記第１閾値未満である場合、前記ペイロードセグメントを構成するビット列に対して、前記危険度に応じたビットシフト量によりビットシフト演算処理を行う。
【００３３】
これにより、ＥＣＵにおける処理量が増加することを抑制しつつ、受信側のＥＣＵにおいて不正フレームであるか否かを容易に判定することができる。
【００３４】
また、例えば、前記切り替え処理ステップでは、前記危険度が前記第１閾値より高い第３閾値以上である場合、前記危険度に応じた複数の送信タイミングを前記切り替え先の送信タイミングに決定する。
【００３５】
これにより、切り替え先の送信タイミングがさらに予測されにくくなる。
【００３６】
また、例えば、前記所定の情報は、車両の車両状態を含み、前記切り替え処理ステップでは、前記車両状態に応じた送信タイミングを前記切り替え先の送信タイミングに決定する。
【００３７】
これにより、車両状態に応じて切り替え先の送信タイミングを動的に決定することができる。なお、車両状態は、送受信間のＥＣＵで同期をとることが可能である。
【００３８】
また、例えば、前記切り替え処理ステップは、前記不正検知ステップにおける検知回数が所定回数以上である場合に実行される。また、例えば、前記切り替え処理ステップは、前回不正が検知されてからの経過時間が所定時間以下である場合に実行される。
【００３９】
これにより、不正な状態が継続しているときに送信タイミングの切り替え処理が実行される。よって、車両における安全な状態を効果的に維持することができる。
【００４０】
また、例えば、前記切り替え処理ステップでは、前記不正が検知されたフレームの送信タイミングにおいて当該フレームが送信された後に、当該フレームの送信タイミングを切り替える。
【００４１】
これにより、同一のフレームを複数回送信することができる。受信側のＥＣＵにおいて、複数のフレームの差異に基づいて、複数のフレームのうち少なくとも１つのフレームが不正フレームであるか否かを判定することができる。
【００４２】
また、例えば、前記車載ネットワークにおける通信方式は、タイムスロットに基づくタイムトリガー型の通信方式であり、前記フレーム送受信ステップでは、予め定められたタイムスロット内で、フレームの送受信が行われ、前記切り替え処理ステップでは、前記切り替え先の送信タイミングとして、切り替え先のスロットを決定する。
【００４３】
これにより、車載ネットワークシステムの通信方式がフレックスレイである場合に、当該車載ネットワークシステム全体として、安全な状態を維持することができる。
【００４４】
また、例えば、前記タイムスロットは、フレームが割り当てられていない複数の空きスロットを含み、前記切り替え処理ステップでは、前記所定の情報に応じた空きスロットを切り替え先のスロットに決定する。
【００４５】
これにより、他のフレームの送信に影響を与えることなく、車載ネットワークシステム全体として、安全な状態を維持することができる。
【００４６】
また、本開示の一態様に係る不正対処装置は、車載ネットワークにおける不正対処装置であって、フレームの送受信を行うフレーム送受信部と、不正なフレームを検知する不正検知部と、前記不正検知部において不正が検知された場合に、不正が検知されたフレームの送信タイミングを切り替える切り替え処理部とを備え、前記切り替え処理部は、所定の情報に応じて切り替え先の送信タイミングを変更する。
【００４７】
これにより、上記の不正対処方法と同様の効果を奏する。
【００４８】
以下、図面を参照しながら、本開示の実施の形態に関わる不正対処方法等について説明する。なお、以下で説明する実施の形態は、いずれも本開示の好ましい一具体例を示す。つまり、以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置および接続形態、ステップ、ステップの順序などは、本開示の一例であり、本開示を限定する主旨ではない。本開示は、請求の範囲の記載に基づいて特定される。したがって、以下の実施の形態における構成要素のうち、本開示の最上位概念を示す独立請求項に記載されていない構成要素は、本開示の課題を達成するために必ずしも必要ではないが、より好ましい形態を構成する構成要素として説明される。
【００４９】
また、各図は、模式図であり、必ずしも厳密に図示されたものではない。したがって、例えば、各図において縮尺などは必ずしも一致しない。また、各図において、実質的に同一の構成については同一の符号を付しており、重複する説明は省略又は簡略化する。
【００５０】
（実施の形態１）
［１．システムの構成］
ここでは、本開示の実施の形態として、車載ネットワークシステム１０について図面を参照しながら説明する。
【００５１】
［１−１．  車載ネットワークシステム１０の全体構成］
図１は、実施の形態１における車載ネットワークシステム１０の全体構成を示す図である。車載ネットワークシステム１０は、ＦｌｅｘＲａｙバス１００ａ、１００ｂ、１００ｃ、及び、１００ｄと、各バスに接続される、ＥＣＵ２００ａ、２００ｂ、２００ｃ、及び、２００ｄと、各ＥＣＵの制御対象である前方カメラ２１０、ギア２２０、ブレーキ２３０、及び、後方カメラ２４０と、各ＦｌｅｘＲａｙバスを接続するスターカプラ３００と、を備える。ＥＣＵ２００ａ〜２００ｄは、ＦｌｅｘＲａｙバスを通じて、フレームの送受信を行うことで、車両の制御を実現する。また、ＦｌｅｘＲａｙバス１００ａ、１００ｂ、１００ｃ、１００ｄは、どのバスにも同じ信号が流れるようにスターカプラ３００が信号の整形を行い、各ＥＣＵは、ＦｌｅｘＲａｙバスを通じて同期をとっている。
【００５２】
［１−２．  ＦｌｅｘＲａｙサイクル］
図２は、実施の形態１におけるＦｌｅｘＲａｙ通信のサイクルを示す図である。ＦｌｅｘＲａｙの通信はサイクル（Ｃｙｃｌｅ）と呼ばれる単位で行われ、サイクルの繰り返し回数（サイクルカウンタ）を各ノードが同期して保持しており、サイクルカウンタは０〜６３の値をとる。サイクルカウンタが６３である次のサイクルはサイクルカウンタを０にリセットする。
【００５３】
各サイクルは、静的セグメント（Ｓｔａｔｉｃ  ｓｅｇｍｅｎｔ）、動的セグメント（Ｄｙｎａｍｉｃ  ｓｅｇｍｅｎｔ）、シンボルウィンドウ（Ｓｙｍｂｏｌ  ｗｉｎｄｏｗ）、ネットワークアイドルタイム（ＮＩＴ）の４つのセグメントから構成される。各セグメントの時間は予め設計されたパラメータによって、ＦｌｅｘＲａｙネットワーク全体（クラスタ）で共通であるため、１サイクルの時間も同様にクラスタで共通である。
【００５４】
静的セグメントは、複数のスロットから構成される。スロットの個数、および各スロットの時間はクラスタ内で共通である。また、ＦｌｅｘＲａｙフレームは、１スロット内に１つのフレームが送信され、スロットの番号がフレームの識別子（Ｆｒａｍｅ  ＩＤ）となる。各ＥＣＵは予め定められたタイミング（スロット番号）で、フレームの送信を行うように設計されている。静的セグメント内で送信されるフレームを静的フレームとよぶ。静的フレームは、ペイロード長がクラスタ内で共通となっている。
【００５５】
動的セグメントは、ミニスロットと呼ばれるスロットから構成される。ミニスロットにも同様にスロット番号が存在し、各ＥＣＵは、予め定められたタイミング（スロット番号）で送信を行うように設計されているが、静的セグメントと異なり、必ずしもフレームの送信を行う必要はない。動的セグメント内で送信されるフレームを動的フレームとよぶ。動的フレームは、ペイロード長として０〜２５４の任意の値をとることができる。
【００５６】
シンボルウィンドウは、シンボルと呼ばれる信号の送受信を行う時間帯である。
【００５７】
ネットワークアイドルタイムは、通信を行わない時間帯であり、サイクルの最後に必ず設けられる。各ＥＣＵは、時刻の同期処理等を行う。
【００５８】
［１−３．  フレームフォーマット］
図３は、実施の形態１におけるＦｌｅｘＲａｙ通信のフレームフォーマットを示す図である。具体的には、図３は、ＦｌｅｘＲａｙプロトコルのフレームフォーマットを示す図である。フレームは、Ｈｅａｄｅｒ  Ｓｅｇｍｅｎｔ、Ｐａｙｌｏａｄ  Ｓｅｇｍｅｎｔ、及び、Ｔｒａｉｌｅｒ  Ｓｅｇｍｅｎｔの３つのセグメントを含む。
【００５９】
Ｈｅａｄｅｒ  Ｓｅｇｍｅｎｔは、Ｒｅｓｅｒｖｅｄ  ｂｉｔから始まり、フレームの種別を表すための、Ｐａｙｌｏａｄ  ｐｒｅａｍｂｌｅ  ｉｎｄｉｃａｔｏｒ、Ｎｕｌｌ  ｆｒａｍｅ  ｉｎｄｉｃａｔｏｒ、Ｓｙｎｃ  ｆｒａｍｅ  ｉｎｄｉｃａｔｏｒ、Ｓｔａｒｔｕｐ  ｆｒａｍｅ  ｉｎｄｉｃａｔｏｒがそれぞれ１ビットずつ含まれる。Ｈｅａｄｅｒ  Ｓｅｇｍｅｎｔは、さらに１１ビットのＦｒａｍｅＩＤ、７ビットのＰａｙｌｏａｄ  ｌｅｎｇｔｈ、１１ビットのＨｅａｄｅｒ  ＣＲＣ、及び、６ビットのＣｙｃｌｅ  ｃｏｕｎｔを含む。Ｆｒａｍｅ  ＩＤは、スロットＩＤとも呼ばれ、フレームの送信タイミング、及び、フレームの内容を識別するために用いられる。Ｐａｙｌｏａｄ  ｌｅｎｇｔｈは、最大１２７の値をとり得る。Ｐａｙｌｏａｄ  ＳｅｇｍｅｎｔにはＰａｙｌｏａｄ  ｌｅｎｇｔｈの値に２をかけたバイト数が格納される。Ｈｅａｄｅｒ  ＣＲＣは、Ｓｙｎｃ  ｆｒａｍｅ  ｉｎｄｉｃａｔｏｒからＰａｙｌｏａｄ  ｌｅｎｇｔｈまでを含んだ値から計算されるチェックサムである。Ｃｙｃｌｅ  ｃｏｕｎｔは、現在のサイクル数が格納される。サイクル数は、送信時刻を示す情報の一例である。
【００６０】
Ｐａｙｌｏａｄ  Ｓｅｇｍｅｎｔには、フレームの内容を表すデータが含まれる。Ｐａｙｌｏａｄ  ｌｅｎｇｔｈの値の２倍のバイト数が格納されており、最大で２５４バイトが格納される。
【００６１】
Ｔｒａｉｌｅｒ  Ｓｅｇｍｅｎｔには、フレームの全てを含んだ値から計算されるＣＲＣが格納されている。
【００６２】
［１−４．  ＥＣＵ２００ａの構成図］
図４は、実施の形態１におけるＥＣＵ２００ａの構成の一例を示す図である。なお、ＥＣＵ２００ｂ、ＥＣＵ２００ｃ、ＥＣＵ２００ｄも同様の構成であるので、ここでは説明を省略する。
【００６３】
ＥＣＵ２００ａは、フレーム送受信部２０１と、通信用設定パラメータ保持部２０２と、フレーム解釈部２０３と、外部機器制御部２０４と、フレーム生成部２０５と、不正判定部２０６と、切り替え判定部２０７と、切り替えテーブル保持部２０８と、を有する。
【００６４】
フレーム送受信部２０１は、バス１００ａから受信した物理信号を、デジタル信号に復号することでフレームの情報を取得する。フレーム送受信部２０１は、通信用設定パラメータ保持部２０２に保持される通信用設定パラメータを参照することで、他のＥＣＵと時刻を同期し、正しくフレームを受信することができる。また、フレーム送受信部２０１は、フレーム生成部２０５から通知される送信フレーム要求に従い、予め定められたタイミングでフレームを物理信号に変換してバス１００ａに送信する。
【００６５】
通信用設定パラメータ保持部２０２は、物理信号を正しく、デジタル信号に変換するための、クラスタ内で共通のパラメータが保持されている。図５に通信用設定パラメータ保持部２０２に保持される通信用設定パラメータの一例を示すが、詳細は後述する。
【００６６】
フレーム解釈部２０３は、フレーム送受信部２０１から通知される受信したフレームに含まれるペイロードを解釈し、ペイロードの内容に応じてＥＣＵ２００ａに接続される前方カメラ２１０の制御を行うために外部機器制御部２０４へ通知を行う。フレーム解釈部２０３は、例えば、他のＥＣＵから通知される車両の速度の情報に基づいて、走行状態を判断し、走行状態に応じたカメラ撮影内容の調整を行う。また、フレーム解釈部２０３は、フレームに含まれるＩＤ、ペイロードなどの受信内容を不正判定部２０６へ通知する。
【００６７】
外部機器制御部２０４は、ＥＣＵ２００ａに接続される前方カメラ２１０の制御を行う。また、外部機器制御部２０４は、前方カメラ２１０からの通知内容に応じて、他のＥＣＵに状態を通知するためのフレーム送信要求をフレーム生成部２０５に通知する。例えば、前方の歩行者の有無を通知する。
【００６８】
フレーム生成部２０５は、通知された信号に基づいて、フレームの生成を行い、フレーム送受信部２０１へ送信要求を行う。
【００６９】
不正判定部２０６は、フレーム解釈部２０３から通知されるＩＤ、ペイロードなどの受信内容を基に、受信したフレームが不正かどうかを判定する。本実施の形態では、シンタックスエラーなどのエラーを同一ＩＤにて受信した場合、不正と判定する。不正判定部２０６は、不正と判定した場合、その旨を切り替え判定部２０７と、フレーム生成部２０５とに通知する。不正判定部２０６は、不正検知部の一例である。
【００７０】
切り替え判定部２０７は、不正判定部２０６から通知される判定結果を基に、切り替えテーブル保持部２０８から通知される切り替えテーブルの内容を参照し、送信内容を変更するよう、フレーム生成部２０５へと通知する。
【００７１】
切り替えテーブル保持部２０８は、不正検知結果に応じて送信内容を切り替えるために必要となる切り替えテーブルを保持する。
【００７２】
［１−５．  通信用設定パラメータの一例］
図５は、実施の形態１におけるＦｌｅｘＲａｙ通信の通信用設定パラメータの一例を示す図である。図５に示す通信用設定パラメータは、通信用設定パラメータ保持部２０２に格納されている。図５の例では、通信用設定パラメータは、通信の速度を表すボーレートが１０Ｍｂｐｓであること、静的セグメントのスロットＩＤが１〜５０であること、及び、動的セグメントのスロットＩＤが５１〜１００であることを含む。また、静的スロットのペイロード長が８（つまり１６バイト）であることが示されている。これらの値は、クラスタ内のＥＣＵ全てに共有されており、これらの値を元にＦｌｅｘＲａｙフレームの送受信を実現する。なお通信用設定パラメータの値は一例に過ぎず、別の値であっても構わない。また、ここで示したパラメータも一例に過ぎず、図５に記載のないパラメータ（例えば、各セグメントの長さ、スロットの長さ等）が含まれていてもよいし、逆に記載されているパラメータの一部が含まれていなくてもよい。
【００７３】
［１−６．  スターカプラ３００の構成図］
図６は、実施の形態１におけるスターカプラ３００の構成の一例を示す図である。スターカプラ３００は、トランシーバ部３０１ａ、３０１ｂ、３０１ｃ、及び、３０１ｄと、ルーティング部３０２とを有する。なお、トランシーバ部３０１ｂ、３０１ｃ、及び、３０１ｄは、トランシーバ部３０１ａと同様の構成であるため、説明を省略する。
【００７４】
トランシーバ部３０１ａは、バス１００ａから受信した物理信号を、デジタル信号に変換し、ルーティング部３０２へ通知する。また、トランシーバ部３０１ａは、デジタル信号をルーティング部３０２から通知された場合は、通知されたデジタル信号を、物理信号へ変換し、バス１００ａへ転送する。
【００７５】
ルーティング部３０２は、トランシーバ部３０１ａから通知されたデジタル信号を、トランシーバ部３０１ａを除くトランシーバ部３０１ｂ、３０１ｃ、及び、３０１ｄへ転送する。ルーティング部３０２は、同様にトランシーバ部３０１ｂからデジタル信号を通知された場合は、トランシーバ部３０１ｂを除く、トランシーバ部に対して、デジタル信号を通知する。ルーティング部３０２は、複数のトランシーバ部からデジタル信号を受信した場合は、最初にデジタル信号を受信したバスからの信号を、他のトランシーバ部へ通知する。
【００７６】
［１−７．  フレームリストの一例］
図７は、実施の形態１におけるＦｌｅｘＲａｙ通信にて送信されるフレームリストの一例を示す図である。例えば、図７は、ＥＣＵ２００ａによって送受信されるフレームリストの一例を示している。
【００７７】
図７では、スロットＩＤ、Ｃｙｃｌｅ  ｏｆｆｓｅｔ、Ｃｙｃｌｅ  ｒｅｃｅｐｔｉｏｎ、フレーム名、及び、フレームに含まれるペイロード情報がフレームリストに保持されている。Ｃｙｃｌｅ  ｏｆｆｓｅｔとＣｙｃｌｅ  ｒｅｃｅｐｔｉｏｎとは、サイクル多重化（サイクルマルチプレキシング）と呼ばれる同じスロットＩＤであっても異なる内容のフレームを送受信する方法が用いられるときに、対象のフレームを抽出するために必要な情報である。例えば、スロットＩＤが９８のフレームには２つのフレーム名が存在し、それぞれのフレームで前方カメラ情報１、前方カメラ情報２の異なる内容を通知する。前方カメラ情報１ではＣｙｃｌｅ  ｏｆｆｓｅｔが０で、Ｃｙｃｌｅ  ｒｅｃｅｐｔｉｏｎが２である。これはサイクルカウンタが０からスタートし、２サイクルごとに当該フレームを送信することを意味する。つまり前方カメラ情報１が通知されるフレームＣが送信されるのは、サイクルカウンタが、０、２、４、６、・・・、５８、６０、６２のスロットＩＤが９８のときに送信されることを示している。同様に前方カメラ情報２を含むフレームＤは、サイクルカウンタが１、３、５、・・・５９、６１、６３のスロットＩＤが９８のときに送信される。上記のように異なるフレームを同一スロットＩＤで送信する方法をサイクルマルチ多重化とよぶ。同様に、スロットＩＤが９９のフレームにも２つのフレーム名が存在し、それぞれのフレームで後方カメラ情報１、後方カメラ情報２の異なる内容を通知する。後方カメラ情報１を含むフレームＥは、サイクルカウンタが０、２、４、・・・、５８、６０、６２のサイクルＩＤが９９の時に送信され、後方カメラ情報２が含まれるフレームＦは、サイクルカウンタが１、３、５、・・・、５９、６１、６３のサイクルＩＤが９９の時に送信される。
【００７８】
図７では、スロットＩＤが１であり、Ｃｙｃｌｅ  Ｏｆｆｓｅｔが０であり、Ｃｙｃｌｅ  ｒｅｃｅｐｔｉｏｎが１（つまり全てのサイクルで同一フレームが送信される。）であるフレームは、フレーム名がＡであり、フレームＡのペイロードには速度に関する情報が含まれることを示している。また、スロットＩＤが２では、フレームが送信されないことを示している。また、スロットＩＤが３であり、Ｃｙｃｌｅ  Ｏｆｆｓｅｔが０であり、Ｃｙｃｌｅ  Ｒｅｃｅｐｔｉｏｎが２（つまりサイクルカウンタが偶数のときのみ送信される）であるフレームは、フレーム名がＢであり、フレームＢのペイロードにはギア状態に関する情報が含まれることを示している。スロットＩＤが９８であり、Ｃｙｃｌｅ  Ｏｆｆｓｅｔが０であり、Ｃｙｃｌｅ  ｒｅｃｅｐｔｉｏｎが２であるフレームは、フレーム名がＣであり、フレームＣのペイロードには前方カメラ情報１に関する情報が含まれることを示している。スロットＩＤが９８であり、Ｃｙｃｌｅ  Ｏｆｆｓｅｔが１であり、Ｃｙｃｌｅ  ｒｅｃｅｐｔｉｏｎが２であるフレームは、フレーム名がＤであり、フレームＤのペイロードには前方カメラ情報２に関する情報が含まれることを示している。スロットＩＤが９９であり、Ｃｙｃｌｅ  Ｏｆｆｓｅｔが０であり、Ｃｙｃｌｅ  ｒｅｃｅｐｔｉｏｎが２であるフレームは、フレーム名がＥであり、フレームＥのペイロードには後方カメラ情報１に関する情報が含まれることを示している。スロットＩＤが９９であり、Ｃｙｃｌｅ  Ｏｆｆｓｅｔが１であり、Ｃｙｃｌｅ  ｒｅｃｅｐｔｉｏｎが２であるフレームは、フレーム名がＦであり、フレームＦのペイロードには後方カメラ情報２に関する情報が含まれることを示している。また、フレームＡおよびＢは、静的セグメント内で送信される静的フレームであり、フレームＣからフレームＦは、動的セグメント内で送信される動的フレームである。
【００７９】
図８は、実施の形態１におけるＦｌｅｘＲａｙ通信のフレーム送信スケジュールの一例を示す図である。図８は、図７のフレームリストの例におけるフレーム送信スケジュールを示している。横軸がスロットＩＤを示しており、縦軸がサイクルを示している。スロットＩＤとサイクルとで定まるセルには、送信されるフレーム名が記載されている。図８では、フレームＣからフレームＦは、所定のサイクルで送信されているが、当該フレームは動的フレームであるため、送信されない場合もある。
【００８０】
［１−８．  切り替えテーブルの一例］
図９は、実施の形態１における切り替えテーブルの一例を示す図である。本実施の形態では、ＩＤが１、３、９８、９９のフレームにて不正が発生した場合に、それぞれＩＤが９７、１００、９９、９８へと切り替える内容を示している。
【００８１】
［１−９．  切り替え通信シーケンスの一例］
図１０は、実施の形態１における切り替え通信のシーケンスの一例を示す図である。例えば、図１０は、ＥＣＵ２００ａにて不正を検知し、切り替えを実施するシーケンスの一例を示している。
【００８２】
（Ｓ１００１）ＥＣＵ２００ａは、ＦｌｅｘＲａｙにおけるエラーの有無を検出する。
【００８３】
（Ｓ１００２）ＥＣＵ２００ａは、同一ＩＤによるエラーかどうかを判断するためのカウンタによって、同一ＩＤによるエラーが複数回発生しているかどうかを判断する。
【００８４】
（Ｓ１００３）ＥＣＵ２００ａは、対象ＩＤのエラーカウンタをカウントアップする。
【００８５】
（Ｓ１００４）ＥＣＵ２００ａは、切り替えテーブルを参照し、対象ＩＤに該当する切り替え処理を発見する。
【００８６】
（Ｓ１００５）ＥＣＵ２００ａは、ＩＤ設定の切り替えを実施する。
【００８７】
（Ｓ１００６）ＥＣＵ２００ａは、対象ＩＤのエラーカウンタをクリアする。
【００８８】
［１−１０．  実施の形態１の効果］
実施の形態１で示した不正対処方法は、不正を検知したＥＣＵが切り替えテーブルを用いて、送信するフレームの送信スロットを動的に変更することで、不正なフレームによる通信妨害を回避し、通常の通信を維持することができる。また、予め空けておいた通信スロットを有効活用することで、通信量を増加させることなく、フレームを送信することが可能となる。
【００８９】
（実施の形態２）
［２．システムの構成］
ここでは、本開示の実施の形態として、車載ネットワークシステム２０について図面を参照しながら説明する。
【００９０】
［２−１．  車載ネットワークシステム２０の全体構成］
図１１は、実施の形態２における車載ネットワークシステム２０の全体構成を示す図である。車載ネットワークシステム２０は、ＦｌｅｘＲａｙバス１００ａ、１００ｂ、１００ｃ、及び、１００ｄと、各バスに接続される、ＥＣＵ１２００ａ、１２００ｂ、１２００ｃ、及び、１２００ｄと、各ＥＣＵの制御対象である前方カメラ２１０、ギア２２０、ブレーキ２３０、及び、後方カメラ２４０と、各ＦｌｅｘＲａｙバスを接続するスターカプラ３００と、を備える。なお、実施の形態１と同一の構成要素は、同一の番号を付与し、説明を省略する。
【００９１】
［２−２．  ＥＣＵ１２００ａの構成図］
図１２は、実施の形態２におけるＥＣＵ１２００ａの構成の一例を示す図である。なお、ＥＣＵ１２００ｂ、ＥＣＵ１２００ｃ、及び、ＥＣＵ１２００ｄも同様の構成であるので、ここでは説明を省略する。
【００９２】
ＥＣＵ１２００ａは、フレーム送受信部２０１と、通信用設定パラメータ保持部２０２と、フレーム解釈部１２０３と、外部機器制御部２０４と、フレーム生成部２０５と、不正判定部２０６と、切り替え判定部１２０７と、切り替えテーブル保持部２０８と、車両状態判定部１２０９と、を有する。なお、実施の形態１と同一の構成要素は、同一の番号を付与し、説明を省略する。
【００９３】
フレーム解釈部１２０３は、フレーム送受信部２０１から通知される受信したフレームに含まれるペイロードを解釈し、ペイロードの内容に応じてＥＣＵ１２００ａに接続される前方カメラ２１０の制御を行うために外部機器制御部２０４へ通知を行う。例えば、他のＥＣＵから通知される車両の速度の情報に基づいて、走行状態を判断し、走行状態に応じたカメラ撮影内容の調整を行う。また、フレームに含まれるＩＤ、ペイロードなどの受信内容を不正判定部２０６と、車両状態判定部１２０９と、へ通知する。
【００９４】
切り替え判定部１２０７は、不正判定部２０６から通知される判定結果と、車両状態判定部１２０９から通知される車両状態と、を基に、切り替えテーブル保持部２０８から通知される切り替えテーブルの内容を参照し、送信内容を変更するよう、フレーム生成部２０５へと通知する。
【００９５】
車両状態判定部１２０９は、フレーム解釈部１２０３から通知されるＩＤ、ペイロードなどの受信内容を基に、現在の車両の状態を判定する。例えば、他ＥＣＵが判定した結果をペイロードとして含むフレームを受信しても良いし、速度及びギアなどの情報を元に各ＥＣＵの車両状態判定部１２０９で判定するとしても良い。
【００９６】
［２−３．  切り替えテーブルの一例］
図１３は、実施の形態２における切り替えテーブルの一例を示す図である。本実施の形態では、車両の状態がどんな状態であっても、ＩＤが１、３は、それぞれＩＤが９７、１００へと切り替えられる内容を示している。また、車両の状態が走行中の場合のみ、ＩＤが９８、９９は、それぞれＩＤが９９、９８へと切り替えられる内容を示している。
【００９７】
［２−４．  切り替え通信シーケンスの一例］
図１４は、実施の形態２における切り替え通信のシーケンスの一例を示す図である。例えば、図１４は、ＥＣＵ１２００ａにて不正を検知し、切り替えを実施するシーケンスの一例を示している。なお、図１０と同一の処理ステップには同一の番号を付与し、説明を省略する。
【００９８】
（Ｓ２００７）ＥＣＵ１２００ａは、現在の車両状態と切り替えテーブルとを比較し、対象ＩＤを切り替える必要があるかどうかを判定する。つまり、ＥＣＵ１２００ａは、現在の車両状態が切り替え必要な車両状態であるか否かを判定する。そして、ＥＣＵ１２００ａは、現在の車両状態が切り替え必要な車両状態であると判定する（Ｓ２００７でＹｅｓ）と、ステップＳ１００５に進み、現在の車両状態が切り替え必要な車両状態ではないと判定する（Ｓ２００７でＮｏ）と、ステップＳ１００６に進む。
【００９９】
［２−５．  実施の形態２の効果］
実施の形態２で示した不正対処方法は、不正を検知したＥＣＵが特定の車両状態に対応した切り替えテーブルを用いて、送信するフレームの送信スロットを動的に変更することで、不正なフレームによる通信妨害を回避し、通常の通信を維持することができる。また、予め空けておいた通信スロットを有効活用することで、通信量を増加させることなく、フレームを送信することが可能となる。また、特定の車両状態に限定することで、通常時の通信からの変更を最小限に抑え、通常の通信を維持することができる。
【０１００】
（実施の形態１及び２における効果など）
本開示の一態様に係る不正対処方法は、タイムスロットに基づくタイムトリガー型の通信方式である車載ネットワークにおける不正対処方法であって、車載ネットワークシステム１０、２０には、１以上の電子制御装置（例えば、ＥＣＵ２００ａ）が接続され、各電子制御装置は予め定められた所定のタイムスロット内でフレームを送受信する。電子制御装置の不正対処方法は、フレームの送受信を行うフレーム送受信ステップと、不正なフレームを検知する不正検知ステップ（例えば、Ｓ１００１）と、不正検知ステップの判定結果を元に、所定の条件を満たした時に、所定の設定に従い、送信フレームの切り替え処理を行う切り替え判定ステップと（例えば、Ｓ１００５）を含む。
【０１０１】
これにより、不正なフレームを検知した際に、切り替えにより車載ネットワークシステム１０、２０全体として、安全な状態を維持することができる。
【０１０２】
さらに、本開示の一態様に係る不正対処方法は、例えば、不正検知ステップとして、所定の攻撃判定アルゴリズムにより、フレームの不正を判定する。
【０１０３】
これにより、当該車載ネットワークがサイバーセキュリティ攻撃を受けた場合でも、車載ネットワークシステム１０、２０全体として、安全な状態を維持することができる。
【０１０４】
さらに、本開示の一態様に係る不正対処方法は、所定の設定として、切り替え元のスロットに、静的スロット、または、動的スロットのいずれか一つを指定する。
【０１０５】
これにより、特定のスロットが不正となっても、当該スロットのフレームが送信できなくなることを回避することが可能となる。
【０１０６】
さらに、本開示の一態様に係る不正対処方法は、例えば、所定の設定として、切り替え先のスロットに、静的スロット、または、動的スロット、のいずれか一つを指定する。
【０１０７】
これにより、特定のスロットが不正となっても、当該スロットのフレームが送信できなくなることを回避することが可能となる。
【０１０８】
さらに、本開示の一態様に係る不正対処方法は、例えば、所定の設定として、切り替え先のスロットに、フレームがまだ割り当てられていない空きスロットを指定する。
【０１０９】
これにより、全体として通信時間が増加することなく、通信をすることが可能となる。
【０１１０】
さらに、本開示の一態様に係る不正対処方法は、例えば、所定の設定として、切り替え先のスロットに、既にフレームが割り当てられているスロットを指定する。
【０１１１】
これにより、元々空きスロットが存在しないような通信仕様の場合にでも、全体として通信時間が増加することなく、通信をすることが可能となる。
【０１１２】
さらに、本開示の一態様に係る不正対処方法は、例えば、所定の設定として、既に割り当てられているフレームのペイロードと、切り替えられたフレームのペイロードとを結合する。
【０１１３】
これにより、さらに全体として通信時間が増加することなく、通信をすることが可能となる。
【０１１４】
さらに、本開示の一態様に係る不正対処方法は、例えば、所定の設定として、切り替え先のスロットに、新たにスロットを追加する。
【０１１５】
これにより、通常時の通信仕様に依存することなく、通信することが可能となる。
【０１１６】
さらに、本開示の一態様に係る不正対処方法は、例えば、所定の設定として、既に割り当てられているフレームのペイロードと、切り替えられたフレームのペイロードとを交換する。
【０１１７】
これにより、特定のペイロードの送受信を行うだけで、通常時は複数スロットのフレームを送受信する必要のある情報を送受信することが可能となる。
【０１１８】
さらに、本開示の一態様に係る不正対処方法は、例えば、所定の条件として、通信方式に従ったエラーの発生を検知することで、切り替え処理を行う。
【０１１９】
これにより、追加で通知用のフレームを用意する必要が無く、切り替え処理を行うことが可能となる。
【０１２０】
さらに、本開示の一態様に係る不正対処方法は、例えば、所定の条件として、不正が発生したフレーム以外のフレームを検知することで、切り替え処理を行う。
【０１２１】
これにより、ネットワークプロトコルに依存することなく、切り替え処理を行うことが可能となる。
【０１２２】
さらに、本開示の一態様に係る不正対処方法は、例えば、所定の条件として、予め設定された車載ネットワークを搭載する車両の状態に応じて、切り替え処理を行う。
【０１２３】
これにより、車両状態に応じて適切な切り替え処理を規定することが可能となり、通常時との差分を抑えることが可能となる。
【０１２４】
さらに、本開示の一態様に係る不正対処方法における車両の状態は、駐車中、停車中、走行中のいずれか一つの状態である。
【０１２５】
これにより、駐車中と、停車中と、走行中のいずれかの状態に応じて適切な切り替え処理を規定することが可能となり、通常時との差分を抑えることが可能となる。
【０１２６】
さらに、タイムスロットに基づくタイムトリガー型の通信方式である車載ネットワークにおける通信システムであって、車載ネットワークには、１以上の電子制御装置が接続され、各電子制御装置は予め定められた所定のタイムスロット内でフレームを送受信し、電子制御装置は、フレームの送受信を行うフレーム送受信ステップと、不正なフレームを検知する不正検知ステップと、不正検知ステップの判定結果を元に、所定の条件を満たした時に、所定の設定に従い、送信フレームの切り替え処理を行う切り替え判定ステップとを有する。
【０１２７】
これにより、不正なフレームを検知した際に、切り替えにより車載ネットワークシステム全体として、安全な状態を維持することができる。
【０１２８】
さらに、タイムスロットに基づくタイムトリガー型の通信方式である車載ネットワークにおける通信システムにおいて、車載ネットワークに、１つ以上接続される電子制御装置であって、各電子制御装置は予め定められた所定のタイムスロット内でフレームを送受信する。電子制御装置は、フレームの送受信を行うフレーム送受信部２０１と、不正なフレームを検知する不正判定部２０６と、不正検知ステップの判定結果を元に、所定の条件を満たした時に、所定の設定に従い、送信フレームの切り替え処理を行う切り替え判定部２０７とを備える。
【０１２９】
これにより、不正なフレームを検知した際に、切り替えにより車載ネットワークシステム全体として、安全な状態を維持することができる。
【０１３０】
（実施の形態３）
［３−１．  システムの構成］
本実施の形態では、不正が検知されたフレームのスロットＩＤが切り替えられるときに、切り替え先のスロットＩＤが動的に変化する場合について説明する。具体的には、不正が検知された回数（エラー回数）に基づいて、不正が検知されたスロットＩＤの切り替え先のスロットＩＤが動的に変化する場合について説明する。なお、エラー回数は、例えば、同一のスロットＩＤにおいて不正が検知された回数である。
【０１３１】
本実施の形態に係る車載ネットワークシステムの構成は、実施の形態１に係る車載ネットワークシステム１０、又は、実施の形態２に係る車載ネットワークシステム２０と同様であり、説明を省略する。以下では、本実施の形態に係る車載ネットワークの構成は、実施の形態１に係る車載ネットワークシステム１０と同様である例について説明する。
【０１３２】
まず、車載ネットワークシステム１０が格納する情報について図１５を参照しながら説明する。図１５は、実施の形態３における切り替えテーブルの一例を示す図である。本実施の形態では、図９等に示すように、変更前のＩＤと変更後のＩＤとが一対一に対応付けられていない。所定の条件に基づいて、変更後のＩＤが動的に変化する。
【０１３３】
図１５に示すように、切り替えテーブルには、切り替えルール番号、ペイロードセグメントのビットシフト数、及び、スロットＩＤの増加数が含まれる。
【０１３４】
切り替えルール番号は、ペイロードセグメントのビットシフト数、及び、スロットＩＤの増加数を識別するための番号である。１つの切り替えルール番号に対して、１つのペイロードセグメントのビットシフト数、及び、１つのスロットＩＤの増加数が設定される。本実施の形態では、切り替えルール番号は、後述する剰余Ｒｅと対応する値である。
【０１３５】
ペイロードセグメントのビットシフト数は、ペイロードセグメント（図３参照）を構成するビット列に対して、ビットシフト演算処理を行うときのビットシフト量を示す。切り替えルール番号のそれぞれに、例えば、互いに異なるビットシフト数が設定される。ビットシフト数は、ビットシフト演算処理において、右シフトを行うときのビットシフト数であってもよいし、左シフトを行うときのビットシフト数であってもよい。すなわち、ビットシフト演算処理は、右シフトであってもよいし、左シフトであってもよい。以下では、ビットシフト演算処理は、右シフトを行う処理である例について説明する。例えば、切り替えルール「１」であれば、ペイロードセグメントのビット列を右に１ビットシフトさせることを意味する。また、ビットシフト演算処理は、例えば、巡回シフト処理により行われる。
【０１３６】
スロットＩＤの増加数は、切り替え先のスロットＩＤを決定するための情報である。切り替えルール番号のそれぞれに、例えば、互いに異なるスロットＩＤの増加数が設定される。例えば、切り替えルール「０」に対応するスロットＩＤの増加数は、「０」である。この場合、予め設定されているスロットＩＤに設定される。以下では、予め設定されているスロットのスロットＩＤは、１００であるとする。また、切り替えルール「１」に対応するスロットＩＤの増加数は、「１」である。この場合、切り替え先のＩＤは、予め設定されているスロットのスロットＩＤである１００に１を増加した１０１に設定される。
【０１３７】
図１５の場合、スロットＩＤの増加数は、「０」〜「Ｎ」であり、それに対応する切り替え先のスロットＩＤは、「１００」〜「１００＋Ｎ」である。ここで、切り替え先のスロットＩＤのそれぞれは、フレームがまだ割り当てられていない空きスロットのスロットＩＤである。また、切り替え先のスロットＩＤは、例えば、動的フレームから選択されてもよい。動的フレームであることで、ペイロード長を任意の値とすることができる利点がある。
【０１３８】
図１５において、スロットＩＤは、切り替えルール番号に従って１ずつ増加する例について説明したが、切り替えルール番号ごとに異なっていれば、これに限定されない。切り替え先のスロットＩＤは、複数ずつ増加（例えば、２ずつ増加）してもよい。また、切り替えルール番号のそれぞれにおいて、増加数が同じ（例えば、１ずつ増加）でなくてもよい。また、増加数は、マイナスの値であってもよい。
【０１３９】
図１５に示す切り替えテーブルは、例えば、切り替えテーブル保持部２０８に格納されている。
【０１４０】
［３−２．  システムの動作］
次に、本実施の形態に係る車載ネットワークシステム１０における動作について、図１６及び図１７を参照しながら説明する。図１６は、実施の形態３における送信側のＥＣＵの動作の一例を示す図である。
【０１４１】
図１６に示すように、フレーム生成部２０５は、外部機器制御部２０４から通知された信号に基づいて、他のＥＣＵに状態を通知するためのフレームを生成する（Ｓ３００１）。
【０１４２】
切り替え判定部２０７は、不正判定部２０６から不正と判定した結果に基づいて、エラー回数が所定回数以上であるか否かを判定する。本実施の形態では、切り替え判定部２０７は、エラー回数が「０」であるか否かを判定する（Ｓ３００２）。すなわち、切り替え判定部２０７は、エラーが発生しているか否かを判定する。エラー回数は、検知回数の一例である。
【０１４３】
切り替え判定部２０７は、エラー回数が「０」である、つまりエラーが発生していないと判定する（Ｓ３００２でＹｅｓ）と、フレーム生成部２０５にエラーがないことを示す情報を通知する（出力する）。フレーム生成部２０５は、フレーム送受信部２０１に生成したフレームを送信するための送信フレーム要求を出力する。フレーム送受信部２０１は、フレーム生成部２０５から出力される送信フレーム要求に従い、送信時刻と共にフレーム送信を行う（Ｓ３００３）。フレーム送受信部２０１は、例えば、送信時刻を含むフレームを送信する。
【０１４４】
また、切り替え判定部２０７は、エラー回数が「０」ではない、つまりエラーが発生していると判定する（Ｓ３００２でＮｏ）と、切り替えテーブル保持部２０８に格納されている切り替えテーブル（例えば、図１５に示す切り替えテーブル）の内容を参照し、送信内容を変更するよう、フレーム生成部２０５に出力する。送信内容を変更するとは、例えば、ビットシフト演算処理を実行すること、及び、スロットＩＤを切り替えることの少なくとも１つを含む。
【０１４５】
フレーム生成部２０５は、切り替え判定部２０７から送信内容を変更することを示す情報を取得すると、エラー回数のハッシュ値を算出し（Ｓ３００４）、ペイロードセグメントのビット数Ｌで当該ハッシュ値の剰余Ｒｅを算出する（Ｓ３００５）。そして、フレーム生成部２０５は、算出した剰余Ｒｅに応じて、互いに異なる処理を実行する（Ｓ３００６〜Ｓ３０１３）。なお、ハッシュ値を算出するためのハッシュ関数は、例えば、切り替えテーブル保持部２０８に格納されている。また、ビット数Ｌは特に限定されないが、例えば、６４ビットである。この場合は、剰余Ｒｅの最大値は、６３となる。
【０１４６】
このように、ハッシュ値をビット数Ｌで除算した剰余Ｒｅを用いることで、切り替え先のスロットＩＤが枯渇することを抑制することができる。なお、ステップＳ３００４において、ハッシュ値をビット数Ｌで除算することに限定されず、例えば、予め定められた数値で除算してもよい。予め定められた数値は、例えば、空きスロットの数などに応じて適宜決定されればよい。また、剰余Ｒｅの算出方法は、除算に限定されず、加算、減算、乗算などを含んでいてもよい。
【０１４７】
フレーム生成部２０５は、剰余Ｒｅが０である場合、スロットＩＤを予め設定された空きスロットＩＤ（図１６の例では、スロットＩＤ１００）に変更する（Ｓ３００７）。フレーム生成部２０５は、例えば、本来であれば、スロットＩＤ「１」で送信するフレームを、スロットＩＤ「１００」に切り替えて送信する。このように、フレーム生成部２０５は、例えば、剰余Ｒｅが０である場合、ビットシフト演算処理、及び、スロットＩＤの変更処理のうち、スロットＩＤの変更処理のみを実行する。
【０１４８】
また、フレーム生成部２０５は、剰余Ｒｅが１以上である場合、ビットシフト演算処理、及び、スロットＩＤの変更処理のそれぞれを実行する。すなわち、フレーム生成部２０５は、剰余Ｒｅが１以上である場合、ステップＳ３００１で生成したフレームに含まれるペイロードセグメントに対してビットシフト演算処理を実行したフレームを、当該フレームに対応するスロットＩＤとは異なるスロットＩＤで送信するための処理を実行する。
【０１４９】
例えば、フレーム生成部２０５は、剰余Ｒｅが１である場合、ペイロードセグメントを１だけ右シフトさせ（Ｓ３００８）、かつ、切り替え先のスロットＩＤを１だけ増やす（Ｓ３００９）。この場合、ステップＳ３００７で設定されるスロットＩＤに１を足したスロットＩＤ「１０１」が切り替え先のスロットＩＤとなる。
【０１５０】
また、例えば、フレーム生成部２０５は、剰余Ｒｅが２である場合、ペイロードセグメントを２だけ右シフトさせ（Ｓ３０１０）、かつ、切り替え先のスロットＩＤを２だけ増やす（Ｓ３０１１）。この場合、ステップＳ３００７で設定されるスロットＩＤに２を足したスロットＩＤ「１０２」が切り替え先のスロットＩＤとなる。
【０１５１】
また、例えば、フレーム生成部２０５は、剰余ＲｅがＬ−１である場合、ペイロードセグメントをＬ−１だけ右シフトさせ（Ｓ３０１２）、かつ、切り替え先のスロットＩＤをＬ−１だけ増やす（Ｓ３０１３）。この場合、ステップＳ３００７で設定されるスロットＩＤにＬ−１を足したスロットＩＤ「１００＋Ｌ−１」が切り替え先のスロットＩＤとなる。
【０１５２】
このように、本実施の形態では、エラー回数は、切り替え先のスロットＩＤを決定するための所定の情報の一例でもある。
【０１５３】
そして、フレーム生成部２０５は、切り替え先のスロットＩＤ（空きスロットＩＤ）の送信タイミングに、送信時刻と共にビットシフト演算処理されたフレームを送信する（Ｓ３００３）。
【０１５４】
なお、図１６では、ペイロードセグメントのシフト量及びスロットＩＤの増加量が剰余Ｒｅの値と同じ値である例について説明したが、これに限定されず、剰余Ｒｅのそれぞれでペイロードセグメントのシフト量及びスロットＩＤの増加量の少なくとも一方が異なっていればよい。
【０１５５】
なお、図１６では、エラー回数が０ではない場合、切り替え先のスロットＩＤでフレーム送信する例について説明したが、切替前のスロットＩＤにおいても、フレーム送信してもよい。つまり、フレーム生成部２０５は、同じフレームを２以上のスロットＩＤで送信してもよい。
【０１５６】
なお、図１６では、エラー回数からハッシュ値を算出する例について説明したが、これに限定されず、エラー回数の値に応じて、ペイロードセグメントのシフト量及びスロットＩＤの増加量が直接決定されてもよい。例えば、エラー回数が１回である場合、剰余Ｒｅが１である場合と同様の処理が実行されてもよい。
【０１５７】
なお、上記では、ステップＳ３００３で送信時刻を含むフレームが送信される例を示しているが、これに限定されない。送信時刻は、別フレームで送信されてもよい。例えば、ステップＳ３００２でＮｏと判定された場合に割り当てられるスロットＩＤより前の送信タイミングで送信されるスロットＩＤで、送信時刻が他のＥＣＵに送信されてもよい。さらに、当該スロットＩＤにおいて、エラー回数も送信されてもよい。これにより、送受信間のＥＣＵにおいて、送信時刻及びエラー回数の同期をとる（送信時刻及びエラー回数を共有する）ことができる。また、受信側のＥＣＵは、スロットＩＤを予測するための情報（送信時刻及びエラー回数の少なくとも一方）が送信されることで、事前に切り替え先のスロットＩＤを予測することができる。
【０１５８】
次に、本実施の形態に係る車載ネットワークシステム１０における、フレームを受信したＥＣＵの動作について、図１７を参照しながら説明する。図１７は、実施の形態３における受信側のＥＣＵの動作の一例を示す図である。
【０１５９】
図１７に示すように、フレーム送受信部２０１は、ステップＳ３００３で送信されたフレームを受信する（Ｓ３１０１）。フレーム送受信部２０１は、受信したフレームをフレーム解釈部２０３に出力する。
【０１６０】
フレーム解釈部２０３は、受信したフレームのスロットＩＤに対応するエラー回数が所定回数以上であるか否かを判定する。フレーム解釈部２０３は、例えば、送信時刻におけるエラー回数が所定回数以上であるか否かを判定する。本実施の形態では、フレーム解釈部２０３は、エラー回数が「０」であるか否かを判定する（Ｓ３１０２）。すなわち、フレーム解釈部２０３は、スロットＩＤにおいて、エラーが発生しているか否かを判定する。
【０１６１】
フレーム解釈部２０３は、エラー回数が「０」である、つまりエラーが発生していないと判定する（Ｓ３１０２でＹｅｓ）と、データフレームを読み込み処理する（Ｓ３１０３）。フレーム解釈部２０３は、フレームに含まれるペイロードを解釈し、ペイロードの内容に応じてＥＣＵに接続される機器（例えば、ＥＣＵ２００ａの場合は、前方カメラ２１０）の制御を行うために外部機器制御部２０４へ通知を行う。
【０１６２】
また、フレーム解釈部２０３は、エラー回数が「０」ではない、つまりエラーが発生していると判定する（Ｓ３１０２でＮｏ）と、ステップＳ３００７〜Ｓ３０１３の処理と逆の処理（補正する処理）を実行する。つまり、フレーム解釈部２０３は、ビットシフトを戻す処理（ビット位置を補正する処理）、及び、スロットＩＤを戻す処理を実行する。
【０１６３】
具体的には、フレーム解釈部２０３は、フレームに含まれる送信時刻におけるエラー回数のハッシュ値を算出する（Ｓ３１０４）。ここでのエラー回数は、ステップＳ３００４において用いたエラー回数と同じ値である。そのため、ステップＳ３１０４で算出されるハッシュ値は、ステップＳ３００４で算出されるハッシュ値と同じ値となる。
【０１６４】
次に、フレーム解釈部２０３は、ペイロードセグメントのビット数Ｌでハッシュ値の剰余Ｒｅを算出する（Ｓ３１０５）。ここでの剰余Ｒｅは、ステップＳ３００５で算出される剰余Ｒｅと同じ値となる。そして、フレーム解釈部２０３は、算出した剰余Ｒｅに応じて、互いに異なる処理を実行する（Ｓ３１０６〜Ｓ３１１３）。
【０１６５】
フレーム解釈部２０３は、剰余Ｒｅが０である場合、ステップＳ３００７に対応する処理として、スロットＩＤ「１００」で送信されたフレームを、本来のスロットＩＤに変更する（Ｓ３１０７）。このように、フレーム解釈部２０３は、例えば、剰余Ｒｅが０である場合、ビットシフトを戻す処理、及び、スロットＩＤを戻す処理のうち、スロットＩＤを戻す処理のみを実行する。
【０１６６】
例えば、フレーム解釈部２０３は、スロットＩＤ「１００」を本来のスロットＩＤであるスロットＩＤ「１」に変更する。すなわち、フレーム解釈部２０３は、スロットＩＤ「１００」で受信したフレームは、本来であればスロットＩＤ「１」で送信されるフレームであることを認識することができる。フレーム解釈部２０３は、例えば図７に示すフレームリストに基づいて、スロットＩＤ「１００」で受信したフレームが速度を含むフレームであることを認識することができる。
【０１６７】
また、フレーム解釈部２０３は、剰余Ｒｅが１以上である場合、ビットシフトを戻す処理、及び、スロットＩＤを戻す処理のそれぞれを実行する。
【０１６８】
例えば、フレーム解釈部２０３は、剰余Ｒｅが１である場合、ステップＳ３００８に対応する処理として、ペイロードセグメントを１だけ左シフトさせ（Ｓ３１０８）、かつ、ステップＳ３００９に対応する処理として、スロットＩＤを１だけ減らす（Ｓ３１０９）。また、例えば、フレーム解釈部２０３は、剰余Ｒｅが２である場合、ステップＳ３０１０に対応する処理として、ペイロードセグメントを２だけ左シフトさせ（Ｓ３１１０）、かつ、ステップＳ３０１１に対応する処理として、スロットＩＤを２だけ減らす（Ｓ３１１１）。また、例えば、フレーム解釈部２０３は、剰余ＲｅがＬ−１である場合、ステップＳ３０１２に対応する処理として、ペイロードセグメントをＬ−１だけ左シフトさせ（Ｓ３１１２）、かつ、ステップＳ３０１３に対応する処理として、スロットＩＤをＬ−１だけ減らす（Ｓ３１１３）。
【０１６９】
これにより、フレームはＳ３００１で生成された内容に戻り、かつ、スロットＩＤは当該フレームに対応するスロットＩＤ（例えば、スロットＩＤ「１」）に戻る。よって、フレーム解釈部２０３は、ビットシフト演算処理及びスロットＩＤ変更処理が行われたフレームであっても、当該フレームにおける情報（例えば、速度）を適切に取得することができる。
【０１７０】
次に、フレーム解釈部２０３は、データフレームを読み込み処理する（Ｓ３１０３）。
【０１７１】
このように、本実施の形態では、エラーが検知されたスロットＩＤのフレームを、エラー回数に応じて動的に設定される切り替え先のスロットＩＤに変更することができるので、攻撃者に変更先が予測されてしまい変更先でも攻撃を受けてしまうことを抑制することができる。例えば、切り替え先のスロットＩＤが単純なテーブルによって決定される場合に比べて、変更先でも攻撃を受けてしまうことを抑制することができる。
【０１７２】
（実施の形態３の変形例）
本変形例に係る車載ネットワークシステム１０における動作について、図１８及び図１９を参照しながら説明する。本変形例では、不正が検知されたフレームに関する時間情報（例えば、送信時刻）に基づいて、不正が検知されたスロットＩＤの切り替え先のスロットＩＤが動的に変化する場合について説明する。図１８は、実施の形態３の変形例における送信側のＥＣＵの動作の一例を示す図である。なお、実施の形態３における送信側のＥＣＵの動作と同様の動作については、説明を省略又は簡略化する。ステップＳ４００１〜Ｓ４００３は、図１６に示すステップＳ３００１〜Ｓ３００３とそれぞれ同様の処理である。また、ステップＳ４０１０〜Ｓ４０１６は、図１６に示すステップＳ３００７〜Ｓ３０１３とそれぞれ同様の処理である。
【０１７３】
図１８に示すように、フレーム生成部２０５は、エラー回数が０ではない場合（Ｓ４００２でＮｏ）、最新エラー検出後の経過時間を算出する（Ｓ４００４）。経過時間は、例えば、当該フレームに対応するスロットＩＤにおいて前回エラーが検出されてから今回エラーが検出されるまでの時間である。不正判定部２０６は、例えば、エラーを検出したときの時刻を切り替えテーブル保持部２０８に格納する。そして、フレーム生成部２０５は、当該時刻に基づいて、経過時刻を算出してもよい。
【０１７４】
次に、フレーム生成部２０５は、所定時間経過したか否かを判定する（Ｓ４００５）。フレーム生成部２０５は、例えば、経過時間が所定時間以上であるか否かにより、上記の判定を行う。所定時間は特に限定されないが、例えば、１時間である。
【０１７５】
フレーム生成部２０５は、所定時間経過したと判定する（Ｓ４００５でＹｅｓ）と、エラー回数を０に変更する（Ｓ４００６）。つまり、フレーム生成部２０５は、エラー回数をリセットする。そして、フレーム生成部２０５は、ステップＳ４００３の処理を実行する。つまり、フレーム生成部２０５は、エラー回数が１以上である場合であっても、所定時間経過しているときは、ステップＳ４００１で生成したフレームを、当該フレームに対応するスロットＩＤで送信する。
【０１７６】
また、フレーム生成部２０５は、所定時間経過していないと判定する（Ｓ４００５でＮｏ）と、ビットシフト演算処理及びスロットＩＤ変更処理の少なくとも一方を行うための処理を実行する。これにより、フレーム生成部２０５は、継続してエラーが発生している（不正な状態が継続している）場合に、車載ネットワークシステム１０として安全な状態を保つための処理を実行することができる。
【０１７７】
本実施の形態では、フレーム生成部２０５は、当該フレームの送信時刻をシードに疑似乱数を生成する（Ｓ４００７）。送信時刻は、当該フレームを送信する予定時刻であってもよいし、当該フレームを送信するための処理を行っているときの現在時刻であってもよい。そして、フレーム生成部２０５は、ペイロードセグメントのビット数Ｌで疑似乱数の剰余Ｒｅを算出し（Ｓ４００８）、算出した剰余Ｒｅに応じて、互いに異なる処理を実行する（Ｓ４００９〜Ｓ４０１６）。
【０１７８】
次に、フレーム生成部２０５は、切り替え先のスロットＩＤ（空きスロットＩＤ）の送信タイミングに、送信時刻と共にフレーム（例えば、ビットシフト演算処理されたフレーム）を送信する（Ｓ３００３）。ここでの送信時刻は、例えば、ステップＳ３００７で疑似乱数を生成するためのシードに用いた送信時刻と同時刻である。
【０１７９】
なお、ステップＳ３００７において、送信時刻をシードに用いたが、これに限定されない。フレーム生成部２０５は、ステップＳ３００７において、送受信間のＥＣＵにおいて同期がとれる情報をシードとして用いてもよい。フレーム生成部２０５は、例えば、ステップＳ３００１で生成したフレームに含まれるサイクル数をシードに疑似乱数を生成してもよいし、前回の疑似乱数をシードに疑似乱数を生成してもよい。なお、疑似乱数の生成方法は、上記以外であってもよいが、受信側のＥＣＵにおいても同様の処理が行われる。同様の処理とは、送信側のＥＣＵにおいて、前回の疑似乱数をシードに疑似乱数を生成した場合、受信側のＥＣＵにおいても、前回の疑似乱数をシードに疑似乱数を生成する（後述する図１９に示すＳ４１０７参照）。２つの前回の疑似乱数は、互いに同じ値である。
【０１８０】
次に、本変形例に係る車載ネットワークシステム１０における、フレームを受信したＥＣＵの動作について、図１９を参照しながら説明する。図１９は、実施の形態３の変形例における受信側のＥＣＵの動作の一例を示す図である。なお、実施の形態３における受信側のＥＣＵの動作と同様の動作については、説明を省略又は簡略化する。ステップＳ４１０１〜Ｓ４１０３は、図１７に示すステップＳ３１０１〜Ｓ３１０３とそれぞれ同様の処理である。また、ステップＳ４１１０〜Ｓ４１１６は、図１７に示すステップＳ３１０７〜Ｓ３１１３とそれぞれ同様の処理である。
【０１８１】
図１９に示すように、フレーム解釈部２０３は、エラー回数が０ではない場合（Ｓ４１０２でＮｏ）、フレームに含まれる送信時刻から最新エラー検出後の経過時間を算出する（Ｓ４１０４）。フレーム解釈部２０３は、例えば、フレームに含まれる送信時刻を記憶部（図示しない）に格納する。そして、フレーム解釈部２０３は、受信したフレームに含まれる送信時刻と、記憶部に格納されている送信時刻とに基づいて、経過時刻を算出してもよい。Ｓ４１０４で算出される経過時間は、ステップＳ４００４で算出される経過時間と同じ値となる。
【０１８２】
次に、フレーム解釈部２０３は、所定時間経過したか否かを判定する（Ｓ４１０５）。フレーム解釈部２０３は、例えば、経過時間が所定時間以上であるか否かにより、上記の判定を行う。なお、ステップＳ４１０５における所定時間は、ステップＳ４００５における所定時間と同じ時間であり、例えば、１時間である。
【０１８３】
フレーム解釈部２０３は、所定時間経過したと判定する（Ｓ４１０５でＹｅｓ）と、エラー回数を０に変更する（Ｓ４１０６）。つまり、フレーム解釈部２０３は、エラー回数をリセットする。そして、フレーム解釈部２０３は、Ｓ４１０３の処理を実行する。つまり、フレーム解釈部２０３は、エラー回数が１以上である場合であっても、所定時間経過していないときは、ステップＳ４１０１で受信したフレームに処理を行うことなく、データフレームを読み込み処理する（Ｓ４１０３）。
【０１８４】
また、フレーム解釈部２０３は、所定時間経過していないと判定する（Ｓ４１０５でＮｏ）と、フレームに含まれる送信時刻をシードに疑似乱数を生成する（Ｓ４１０７）。Ｓ４１０７で生成される疑似乱数は、ステップＳ４００７で生成される疑似乱数と同じ値となる。そして、フレーム解釈部２０３は、ペイロードセグメントのビット数Ｌで疑似乱数の剰余Ｒｅを算出する（Ｓ４１０８）。Ｓ４１０８で算出される剰余Ｒｅは、ステップＳ４００８で算出される剰余Ｒｅと同じ値となる。そして、フレーム解釈部２０３は、算出した剰余Ｒｅに応じて、互いに異なる処理を実行する（Ｓ４１０９〜Ｓ４１１６）。
【０１８５】
このように、本変形例では、送信時刻は、切り替え先のスロットＩＤを決定するための所定の情報の一例である。
【０１８６】
次に、フレーム解釈部２０３は、データフレームを読み込み処理する（Ｓ４１０３）。
【０１８７】
このように、本実施の形態では、エラーが検知されたスロットＩＤのフレームを、経過時間などの不正が検知されたフレームに関する時間情報に応じて動的に設定される切り替え先のスロットＩＤに変更することができるので、攻撃者に変更先が予測されてしまい変更先でも攻撃を受けてしまうことを抑制することができる。例えば、切り替え先のスロットＩＤが単純なテーブルによって決定される場合に比べて、変更先でも攻撃を受けてしまうことを抑制することができる。
【０１８８】
（実施の形態４）
［４−１．  システムの構成］
本実施の形態では、不正が検知されたフレームのスロットＩＤが切り替えられるときに、切り替え先のスロットＩＤが動的に変化する場合について説明する。具体的には、エラーが発生しているフレームの危険度に基づいて、不正が検知されたスロットＩＤの切り替え先のスロットＩＤが動的に変化する場合について説明する。
【０１８９】
危険度は、当該スロットにおいて、不正な情報（例えば、不正なペイロード情報）が送信された場合における、車両の走行の安全性への影響度合いを示す。危険度が高いほど、より正確にペイロード情報を通知する必要がある。
【０１９０】
フレームの危険度は、例えば、フレームに含まれる信号の種類に応じて設定される。信号の種類は、例えば、車両の走行（例えば、走る・曲がる・止まるなど）における制御指示に関連する「走行制御信号」、ボディ系の制御指示に関連する「ボディ系制御信号」、センサなどから取得される状態（例えば、車両又は車両周囲の状態）を通知する「車両状態信号」の少なくとも１つを含む。
【０１９１】
これらの信号の種類に対して、危険度を設定する場合、例えば、フレームに含まれる信号に走行制御信号が含まれていれば、危険度が「高」に設定され、フレームに含まれる信号にボディ系制御信号が含まれていれば、危険度が「中」に設定され、フレームに含まれる信号に車両状態信号が含まれていれば、危険度が「低」に設定される。
【０１９２】
また、これらのフレームに含まれる信号の種類の個数によって、危険度が設定されてもよい。例えば、信号の種類に応じて、スコアが割り当てられており、フレームに含まれる信号の種類のスコアの総和によって危険度が設定されてもよい。
【０１９３】
なお、危険度の設定は「低」、「中」、及び、「高」の３段階に限らず、２段階であってもよいし、４段階以上であってもよい。また、危険度は、数値で表されていてもよい。危険度は、例えば、０（危険度：最小）〜１００（危険度：最大）の間の数値で設定されていてもよい。
【０１９４】
本実施の形態に係る車載ネットワークシステムの構成は、実施の形態１に係る車載ネットワークシステム１０、又は、実施の形態２に係る車載ネットワークシステム２０と同様であり、説明を省略する。以下では、本実施の形態に係る車載ネットワークシステムの構成は、実施の形態１に係る車載ネットワークシステム１０と同様である例について説明する。
【０１９５】
まず、車載ネットワークシステム１０が格納する情報について、図２０を参照しながら説明する。図２０は、実施の形態４におけるＦｌｅｘＲａｙ通信にて送信されるフレームリストの一例を示す図である。
【０１９６】
図２０に示すように、フレームが割り当てられているスロットＩＤのそれぞれには、危険度が対応付けられている。具体的には、ペイロード情報の種類に対応する危険度が対応付けられている。例えば、スロットＩＤ「１」においては、ペイロード情報が「速度」であり、それに対応する危険度が「「低」である。
【０１９７】
なお、スロットＩＤ「２」は、フレームが割り当てられていないスロットである。つまり、スロットＩＤ「２」は、空きスロットである。
【０１９８】
図２０に示すフレームリストに示す切り替えテーブルは、例えば、切り替えテーブル保持部２０８に格納されている。
【０１９９】
［４−２．  システムの動作］
次に、本実施の形態に係る車載ネットワークシステム１０における動作について、図２１Ａ〜図２２を参照しながら説明する。図２１Ａは、実施の形態４における送信側のＥＣＵの動作の一例を示す図である。図２１Ａに示すステップＳ５００１及びＳ５００２は、図１６に示すステップＳ３００１及びＳ３００２とそれぞれ同様の処理である。
【０２００】
図２１Ａに示すように、切り替え判定部２０７は、エラー回数が「０」である、つまりエラーが発生していないと判定する（Ｓ５００２でＹｅｓ）と、フレーム生成部２０５にエラーが発生していないことを示す情報を通知する（出力する）。フレーム生成部２０５は、フレーム送受信部２０１に生成したフレームを送信するための送信フレーム要求を出力する。フレーム送受信部２０１は、フレーム生成部２０５から通知される送信フレーム要求に従い、当該フレームのスロットＩＤに応じた送信タイミングでフレーム送信を行う（Ｓ５００３）。
【０２０１】
また、切り替え判定部２０７は、エラー回数が「０」ではない、つまりエラーが発生していると判定する（Ｓ５００２でＮｏ）と、切り替えテーブル保持部２０８から通知されるフレームリスト（例えば、図２０に示すフレームリスト）の内容を参照し、検知対象ＩＤ（エラーが検知されたスロットＩＤ）の危険度Ｒｉの確認を行い（Ｓ５００４）、送信内容を変更するよう、フレーム生成部２０５に出力する。
【０２０２】
フレーム生成部２０５は、切り替え判定部２０７から送信内容を変更することを示す情報を取得すると、危険度Ｒｉに応じて、互いに異なる処理を実行する（Ｓ５００５〜Ｓ５００８）。
【０２０３】
フレーム生成部２０５は、危険度Ｒｉが「低」である場合、ステップＳ５００３の処理を実行する。つまり、フレーム生成部２０５は、エラー回数が１以上である場合であっても、危険度が所定以下である（例えば、危険度が「低」である）ときには、ステップＳ５００１で生成したフレームを、当該フレームに対応するスロットＩＤでフレーム送信する。
【０２０４】
また、フレーム生成部２０５は、危険度Ｒｉが「低」より高い「中」である場合、ペイロードセグメントを１だけ右シフトさせ（Ｓ５００５）、ペイロードセグメントを１だけ右シフトさせたフレームを、当該フレームに対応するスロットＩＤでフレーム送信する（Ｓ５００３）。フレーム生成部２０５は、ビットシフト演算処理、及び、スロットＩＤの変更処理のうち、ビットシフト演算処理のみを実行する。
【０２０５】
また、フレーム生成部２０５は、危険度Ｒｉが「中」より高い「高」である場合、ペイロードセグメントを１だけ右シフトさせ（Ｓ５００６）、ペイロードセグメントを１だけ右シフトさせたフレームを、当該フレームに対応するスロットＩＤでフレーム送信する（Ｓ５００７）。そして、フレーム生成部２０５は、さらに、当該フレームのスロットＩＤを冗長スロットＩＤに変更する（Ｓ５００８）。冗長スロットには、例えば、空きスロットが割り当てられる。冗長スロットは、予め設定されていてもよいし、危険度に応じて動的に設定されてもよい。
【０２０６】
フレーム生成部２０５は、ペイロードセグメントを１だけ右シフトさせたフレームを、冗長スロットＩＤでフレーム送信する（Ｓ５００３）。つまり、フレーム生成部２０５は、危険度Ｒｉが「高」の場合、同じフレームを互いに異なるスロットＩＤで送信する。これにより、フレーム生成部２０５は、同一のフレームを複数回（図２１Ａの例では、２回）送信することができる。このように、フレーム生成部２０５は、危険度Ｒｉが所定以上である場合（例えば、危険度Ｒｉが「高」である場合）、例えば危険な攻撃を検知した場合、当該フレームに対する送信スロットを増やす処理を行ってもよい。言い換えると、フレーム生成部２０５は、危険度Ｒｉが所定以上である場合、冗長フレームを送信してよい。冗長フレームは、冗長スロットＩＤにおいて送信されたフレームであり、図２１Ａでは、ステップＳ５００８の後のステップＳ５００３で送信されるフレームである。これにより、危険度が所定未満である場合は、送信スロットを増やす処理が実行されないので、送信側のＥＣＵにおける処理量を軽減することができる。
【０２０７】
なお、ステップＳ５００６は、実行されなくてもよい。つまり、フレーム生成部２０５は、危険度が「高」である場合、ステップＳ５００１で生成したフレームを２回送信する処理を行ってもよい。また、フレーム生成部２０５は、ステップＳ５００５及びＳ５００６において、互いにビットのシフト量を変えてもよい。
【０２０８】
また、フレーム生成部２０５は、図２１Ａに示す処理に替えて、図２１Ｂに示す処理を実行してもよい。図２１Ｂは、実施の形態４における送信側のＥＣＵの動作の他の一例を示す図である。なお、図２１Ｂにおいては、図２１Ａと同様の処理については、同一の符号を付し、説明を省略又は簡略化する。
【０２０９】
図２１Ｂに示すように、フレーム生成部２０５は、危険度Ｒｉに応じて、冗長スロットＩＤの数を変化させてもよい。フレーム生成部２０５は、例えば、危険度Ｒｉが高いほど、当該フレームにおける冗長スロットＩＤの数を増やしてもよい。
【０２１０】
例えば、フレーム生成部２０５は、危険度Ｒｉが「中」である場合、ステップＳ５００１で生成したフレームを、当該フレームに対応するスロットＩＤでフレーム送信し（Ｓ５０１１）、かつ、当該フレームに対応するスロットＩＤを１つの冗長スロットＩＤに変更する（Ｓ５０１２）。そして、フレーム生成部２０５は、当該フレームを、１つの冗長スロットＩＤでフレーム送信する（Ｓ５００３）。これにより、フレーム生成部２０５は、同一のフレームを互いに異なるスロットＩＤにより２回送信することができる。
【０２１１】
また、例えば、フレーム生成部２０５は、危険度Ｒｉが「高」である場合、ステップＳ５００１で生成したフレームを、当該フレームに対応するスロットＩＤでフレーム送信し（Ｓ５０１３）、かつ、当該フレームに対応するスロットＩＤを２つの冗長スロットＩＤに変更する（Ｓ５０１４）。フレーム生成部２０５は、当該フレームを、２つの冗長スロットＩＤのそれぞれでフレーム送信する（Ｓ５００３）。これにより、フレーム生成部２０５は、同一のフレームを互いに異なるスロットＩＤにより３回送信することができる。
【０２１２】
なお、ステップＳ５０１２及びＳ５０１４で変更される冗長スロットＩＤの数は、上記に限定されず、危険度Ｒｉ「高」のときの冗長スロットＩＤの数が、危険度Ｒｉ「中」のときの冗長スロットＩＤの数より多ければよい。また、ステップＳ５０１２及びＳ５０１４で変更される冗長スロットＩＤは、互いに異なるスロットＩＤであってもよいし、少なくとも１つが同じスロットＩＤであってもよい。
【０２１３】
このように、本実施の形態では、フレームの危険度は、切り替え先のスロットＩＤを決定するための所定の情報の一例である。
【０２１４】
なお、図２１ＡのステップＳ５００８における冗長スロットＩＤ、並びに、図２１Ｂに示すステップＳ５０１２及びＳ５０１４における冗長スロットＩＤに関する情報は、ステップＳ５００３で送信されるフレームに含まれてもよいし、他の空きスロットにおいて送信されてもよい。これにより、送受信側のＥＣＵのそれぞれにおいて、冗長スロットＩＤに関する情報が共有される。冗長スロットＩＤに関する情報は、例えばスロットＩＤ「１」に対応する冗長スロットＩＤを特定するための情報を含む。
【０２１５】
なお、上記では、フレーム生成部２０５は、ステップＳ５００４において、フレームの危険度を切り替えテーブル保持部２０８から通知されるフレームリストに基づいて取得する例について説明したが、これに限定されない。フレーム生成部２０５は、ステップＳ５００１で生成したフレームに含まれる信号の種類に応じて当該フレームの危険度を判定することで、当該フレームの危険度を取得してもよい。フレーム生成部２０５は、例えば、ステップＳ５００４において、ステップＳ５００１で生成したフレームに「走行制御信号」が含まれる場合、当該フレームを「高」であると判定してもよい。
【０２１６】
次に、本実施の形態に係る車載ネットワークシステム１０における、フレームを受信したＥＣＵの動作について、図２２を参照しながら説明する。図２２は、実施の形態４における受信側のＥＣＵの動作の一例を示す図である。なお、図２２に示すステップＳ５１０１〜Ｓ５１０３は、図１７に示すステップＳ３１０１〜Ｓ３１０３とそれぞれ同様の処理である。また、図２２は、送信側のＥＣＵが図２１Ａに示す処理を行った場合の受信側のＥＣＵの処理を示す。
【０２１７】
図２２に示すように、フレーム解釈部２０３は、エラー回数が０ではない場合（Ｓ５１０２でＮｏ）、ステップＳ５１０１で受信したフレームが冗長フレームであるか否かを判定する（Ｓ５１０４）。フレーム解釈部２０３は、例えば、当該フレーム又は当該フレームとは異なる送信タイミング（例えば、当該フレームより前の送信タイミング）に受信したフレームにより取得した冗長スロットＩＤに関する情報に基づいて、ステップＳ５１０１で受信したフレームが冗長フレームであるか否かを判定してもよい。また、フレーム解釈部２０３は、例えば、ステップＳ５００７で送信されたフレームを受信した場合、当該フレームにおけるエラー回数及び危険度Ｒｉの少なくとも一方に基づいて、当該フレームにおける冗長スロットＩＤを特定するための処理を実行してもよい。フレーム解釈部２０３は、例えば、ステップＳ５００２、Ｓ５００４、及び、Ｓ５００８の処理を実行してもよい。これにより、受信側のＥＣＵは、送信側のＥＣＵが冗長スロットＩＤをどの空きスロットＩＤとしたかを知ることができる。そして、フレーム解釈部２０３は、その結果に基づいて、ステップＳ５１０１で受信したフレームが冗長フレームであるか否かを判定してもよい。
【０２１８】
フレーム解釈部２０３は、当該フレームが冗長フレームであると判定する（Ｓ５１０４でＹｅｓ）と、記憶済みフレームを読み込む（Ｓ５１０５）。この場合、記憶済みフレームは、ステップＳ５００７で送信されたフレームを意味する。記憶済みフレームは、記憶部（図示しない）に格納されている。
【０２１９】
次に、フレーム解釈部２０３は、冗長フレームと記憶済みフレームとが一致するか否かを判定する（Ｓ５１０６）。冗長フレームと記憶済みフレームとは、本来であれば同じ内容のフレームである。冗長フレームと記憶済みフレームとは、例えば、ペイロードセグメントに含まれるＤａｔａ「０」〜Ｄａｔａ「ｎ」のそれぞれが等しいはずである。そのため、フレーム解釈部２０３は、冗長フレームと記憶済みフレームとが一致するか否かにより、どちらかのフレームが不正なフレームであるか否かを判定することができる。
【０２２０】
フレーム解釈部２０３は、冗長フレームと記憶済みフレームとが一致する場合（Ｓ５１０６でＹｅｓ）、冗長フレームの送信を停止する処理を実行する（Ｓ５１０７）。フレーム解釈部２０３は、例えば、記憶済みフレームに対応する冗長フレームの送信を停止するための情報を送信することを示す情報をフレーム生成部２０５に出力する。フレーム生成部２０５は、例えば、記憶済みフレームに対応する冗長フレームの送信を停止するための情報を空きスロットＩＤで送信する。
【０２２１】
また、フレーム解釈部２０３は、冗長フレームと記憶済みフレームとが一致しない場合（Ｓ５１０６でＮｏ）、２つのフレームの平均値、又は、冗長フレームを採用する（Ｓ５１０８）。フレーム解釈部２０３は、速度などの数値で示される情報においては、例えば、２つのフレームの平均値をそのフレームにおける数値（例えば、速度）としてもよい。これにより、どちらか一方が不正なフレームである場合であっても、その影響が大きくなることを抑制することができる。また、フレーム解釈部２０３は、フラグ値（「０」ｏｒ「１」）など平均値が意味をなさない情報においては、冗長フレームにおける情報を優先して採用する。これにより、受信側のＥＣＵは、攻撃者に気付かれにくい冗長フレームの情報を採用することができるので、より信頼度の高い情報を得ることができる。
【０２２２】
なお、上記では、フレーム解釈部２０３は、ステップＳ５１０６でＮｏである場合、２つのフレームの平均値を採用する例について説明したが、中央値、最頻値などを採用してもよい。
【０２２３】
なお、フレーム解釈部２０３は、ステップＳ５１０６でＮｏであった場合、フレームに含まれる情報（例えば、ペイロード情報）の種類に関わらず、冗長フレームの情報を採用してもよい。
【０２２４】
また、フレーム解釈部２０３は、当該フレームが冗長フレームではないと判定する（Ｓ５１０４でＮｏ）、例えば図２１Ａに示すステップＳ５００７で送信されたフレームであると判定すると、図２０に示すフレームリストに基づいて、検知対象ＩＤ（当該フレームのスロットＩＤ）の危険度Ｒｉを確認する（Ｓ５１０９）。フレーム解釈部２０３は、例えば、フレームリスト（例えば、図２０に示すフレームリスト）の内容を参照し、検知対象ＩＤ（エラーが検知されたスロットＩＤ）の危険度Ｒｉを確認する。そして、フレーム解釈部２０３は、危険度Ｒｉに応じて、互いに異なる処理を実行する（Ｓ５１１０〜Ｓ５１１２）。
【０２２５】
フレーム解釈部２０３は、危険度Ｒｉが「低」である場合、ステップＳ５１０３の処理を実行する。
【０２２６】
また、フレーム生成部２０５は、危険度Ｒｉが「中」である場合、ステップＳ５００５に対応する処理として、ペイロードセグメントを１だけ左シフトさせる（Ｓ５１１０）。そして、フレーム解釈部２０３は、ステップＳ５１０３の処理を実行する。
【０２２７】
また、フレーム解釈部２０３は、危険度Ｒｉが「高」である場合、ステップＳ５００６に対応する処理として、ペイロードセグメントを１だけ左シフトさせる（Ｓ５１１１）。そして、フレーム解釈部２０３は、ペイロードセグメントを１だけ左シフトさせたフレームを記憶部（図示しない）に記憶する（Ｓ５１１２）。ステップＳ５１１２で記憶されたフレームは、ステップＳ５１０６における記憶済みフレームとして用いられる。そして、フレーム解釈部２０３は、当該フレームにおけるデータフレーム読み込み処理を実行せずに、当該フレームに対する処理を終了する。
【０２２８】
このように、本実施の形態では、エラーが検知されたスロットＩＤのフレームを、当該フレームの危険度に応じて動的に設定される切り替え先のスロットＩＤに変更することができるので、攻撃者に変更先が予測されてしまい変更先でも攻撃を受けてしまうことを抑制することができる。例えば、切り替え先のスロットＩＤが単純なテーブルによって決定される場合に比べて、変更先でも攻撃を受けてしまうことを抑制することができる。
【０２２９】
なお、上記では、検知対象ＩＤの危険度Ｒｉに応じて、互いに異なる処理が実行される例について説明したが、これに限定されない、危険度Ｒｉは、現時点の車両状態に基づいて決定されてもよい。車両状態は、駐車中、停車中、及び、走行中などであってもよいし、速度「遅い」、「中」、「速い」などであってもよい。例えば、車両状態が速度を含む場合、速度が速くなるにつれ危険度Ｒｉが高く設定される。この場合、車両情報は、切り替え先のスロットＩＤを決定するための所定の情報の一例である。
【０２３０】
なお、上記では、フレーム解釈部２０３は、ステップＳ５１０９において、受信したフレームの危険度をフレームリストに基づいて取得する例について説明したが、これに限定されない。フレーム解釈部２０３は、ステップＳ５１０１で受信したフレームに含まれる信号の種類に応じて当該フレームの危険度を判定することで、当該フレームの危険度を取得してもよい。フレーム解釈部２０３は、例えば、ステップＳ５１０９において、ステップＳ５１０１で受信したフレームに「走行制御信号」が含まれる場合、当該フレームを危険度「高」であると判定してもよい。
【０２３１】
（実施の形態４の変形例）
本変形例に係る車載ネットワークシステム１０における動作について、図２３を参照しながら説明する。本変形例では、受信側のＥＣＵにおいて、受信したフレームが不正フレームであるか否かを検出する例について説明する。図２３は、実施の形態４の変形例における受信側のＥＣＵの動作の一例を示す図である。
【０２３２】
図２３に示すように、フレーム送受信部２０１は、ステップＳ５００３で送信されたフレームを受信する（Ｓ６００１）。ステップＳ６００１は、図２２に示すステップＳ５１０１に相当する。
【０２３３】
次に、フレーム解釈部２０３は、受信したフレームのビット位置を補正する（Ｓ６００２）。ステップＳ６００２は、図２２に示すステップＳ５１１０に相当する。
【０２３４】
次に、フレーム解釈部２０３は、ビット位置を補正したフレームのデータフレームを読み込み処理する（Ｓ６００３）。ステップＳ６００３は、図２２に示すステップＳ５１０３に相当する。フレーム解釈部２０３は、読み込み結果を不正判定部２０６に出力する。
【０２３５】
次に、不正判定部２０６は、データフレームに基づくデコード値が設計値内であるか否かを判定する（Ｓ６００４）。デコード値は、データフレームから取り出した数値の情報を意味する。デコード値は、例えば、フレームのペイロード情報が速度である場合、データフレームから取り出した速度である。また、設計値は、ペイロード情報の種類に応じた値である。設計値は、ペイロード情報が速度である場合、速度として現実的にあり得ない値に設定され、例えば、３０００ｋｍ／ｈなどであってもよい。
【０２３６】
また、不正判定部２０６は、フレームがマジックナンバーを含むフィールドを有する場合、当該マジックナンバーをデコードしたときの値が設計値と一致するか否かによりステップＳ６００４の判定を行ってもよい。この場合、設計値は、数値範囲ではなく、１つの数値に設定される。なお、デコード値が設計値と完全一致することは、デコード値が設計値内であることの一例である。
【０２３７】
また、不正判定部２０６は、フレームがマジックナンバーを含むフィールドを有する場合、当該マジックナンバーの「０」と「１」との並び（ビットの並び）が設計値と一致するか否かによりステップＳ６００４の判定を行ってもよい。この場合、設計値は、「０」と「１」の並びとなる。
【０２３８】
不正判定部２０６は、デコード値が設計値内である場合（Ｓ６００４でＹｅｓ）、ステップＳ６００１で受信したフレームが不正フレームであるか否かの判定処理を終了する。また、不正判定部２０６は、デコード値が設計値内ではない場合（Ｓ６００４でＮｏ）、当該フレームを不正フレームとして検出する（Ｓ６００５）。不正判定部２０６は、不正フレームと判定したこと示す情報をフレーム生成部２０５に出力してもよい。そして、フレーム生成部２０５は、不正判定部２０６が不正フレームと判定したフレームを特定するための情報（例えば、スロットＩＤ）と、当該フレームが不正フレームであることを示す情報とを含む不正フレーム情報を他のＥＣＵに送信してもよい。フレーム生成部２０５は、例えば、不正フレーム情報を空きスロットにより送信してもよい。
【０２３９】
これにより、例えば、攻撃者がビットシフト演算処理されていることを知らずに不正フレームを送信させていた場合、「０」と「１」との並びにより、不正フレームであるか否かを容易に判定することができる。
【０２４０】
（その他変形例）
なお、本開示を上記各実施の形態に基づいて説明してきたが、本開示は、上記各実施の形態に限定されないのはもちろんである。以下のような場合も本開示に含まれる。
【０２４１】
（１）上記実施の形態１では、切り替えテーブルは静的に保持している例を示したが、通信開始後、空いているスロットを動的に探索の上、作成するとしても良い。また、その際には、通信開始時にお互いのテーブルを共有するための同期フレームを新たに送信するとしてもよい。
【０２４２】
（２）上記実施の形態１では、切り替え前のスロットから、切り替え後のスロットへ、送信フレームを切り替える例を示したが、両方送信し続けるとしても良い。また、その場合には両スロットにて送信されるフレームの内容を比較の上、同一だった場合のみ採用する、あるいは両スロットにて送信されるフレームの内容に差異があった場合、切り替え後のスロットにて送信されるフレームの内容のみ採用するとしても良い。
【０２４３】
（３）上記実施の形態では、フレームのエラーを検知することで、切り替えを行いましたが、不正検知方法はこれに限定しない。予め決められたペイロードから外れる場合に検知するとしても良いし、前フレームからの差分が急な場合に不正と判断するとしても良い。また上記のような不正検知結果を、予め双方にて決めておいた別スロットで通信相手に通知するとしても良い。
【０２４４】
（４）上記実施の形態では、切り替えるＩＤを静的スロットから動的スロットへと切り替える例を示したが、動的スロットから静的スロットへ、または、動的スロット同士、または静的スロット同士で切り替えるとしても良い。
【０２４５】
（５）上記実施の形態では、切り替える内容をＩＤ毎にしたが、ペイロードの位置を切り替えるとしても良い。元々空きとなっているペイロード位置に変更しても良いし、元々あるペイロード位置とスイッチするとしても良い。
【０２４６】
（６）上記の実施の形態では、車載ネットワークとしてＦｌｅｘＲａｙプロトコルを用いていたが、これに限るものではない。例えば、ＣＡＮ−ＦＤ（ＣＡＮ  ｗｉｔｈ  Ｆｒｅｘｉｂｌｅ  Ｄａｔａ  Ｒａｔｅ）、Ｅｔｈｅｒｎｅｔ、ＬＩＮ（Ｌｏｃａｌ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  Ｎｅｔｗｏｒｋ）、ＭＯＳＴ（Ｍｅｄｉａ  Ｏｒｉｅｎｔｅｄ  Ｓｙｓｔｅｍｓ  Ｔｒａｎｓｐｏｒｔ）などを用いてもよい。あるいはこれらのネットワークをサブネットワークとして、組み合わせたネットワークであってもよい。
【０２４７】
（７）上記の実施の形態における各装置は、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭ、ハードディスクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュータシステムである。ＲＡＭまたはハードディスクユニットには、コンピュータプログラムが記録されている。マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、各装置は、その機能を達成する。ここでコンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。
【０２４８】
（８）上記の実施の形態における各装置は、構成する構成要素の一部または全部は、１個のシステムＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ：大規模集積回路）から構成されているとしてもよい。システムＬＳＩは、複数の構成部を１個のチップ上に集積して製造された超多機能ＬＳＩであり、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭなどを含んで構成されるコンピュータシステムである。ＲＡＭには、コンピュータプログラムが記録されている。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、システムＬＳＩは、その機能を達成する。
【０２４９】
また、上記の各装置を構成する構成要素の各部は、個別に１チップ化されていても良いし、一部又はすべてを含むように１チップ化されてもよい。
【０２５０】
また、ブロック図における機能ブロックの分割は一例であり、複数の機能ブロックを一つの機能ブロックとして実現したり、一つの機能ブロックを複数に分割したり、一部の機能を他の機能ブロックに移してもよい。また、類似する機能を有する複数の機能ブロックの機能を単一のハードウェア又はソフトウェアが並列又は時分割に処理してもよい。
【０２５１】
また、ここでは、システムＬＳＩとしたが、集積度の違いにより、ＩＣ、ＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩと呼称されることもある。また、集積回路化の手法はＬＳＩに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）や、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。
【０２５２】
さらには、半導体技術の進歩又は派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてありえる。
【０２５３】
（９）上記の各装置を構成する構成要素の一部または全部は、各装置に脱着可能なＩＣカードまたは単体のモジュールから構成されているとしてもよい。ＩＣカードまたは前記モジュールは、マイクロプロセッサ、ＲＯＭ、ＲＡＭなどから構成されるコンピュータシステムである。ＩＣカードまたは前記モジュールは、上記の超多機能ＬＳＩを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、ＩＣカードまたは前記モジュールは、その機能を達成する。このＩＣカードまたはこのモジュールは、耐タンパ性を有するとしてもよい。
【０２５４】
（１０）本開示は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプログラムからなるデジタル信号であるとしてもよい。
【０２５５】
また、本開示は、コンピュータプログラムまたはデジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＢＤ（Ｂｌｕ−ｒａｙ（登録商標）  Ｄｉｓｃ）、半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されている前記デジタル信号であるとしてもよい。
【０２５６】
また、本開示は、前記コンピュータプログラムまたは前記デジタル信号を、電気通信回線、無線または有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。
【０２５７】
また、本開示は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記録しており、前記マイクロプロセッサは、前記コンピュータプログラムにしたがって動作するとしてもよい。
【０２５８】
また、前記プログラムまたは前記デジタル信号を前記記録媒体に記録して移送することにより、または前記プログラムまたは前記デジタル信号を前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
【０２５９】
また、フローチャートにおける各ステップが実行される順序は、本開示を具体的に説明するために例示するためのものであり、上記以外の順序であってもよい。また、上記ステップの一部が、他のステップと同時（並列）に実行されてもよい。
【０２６０】
（１１）上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
【産業上の利用可能性】
【０２６１】
本開示は、車載ネットワークシステム全体として、安全な状態を維持することができる。
【符号の説明】
【０２６２】
１０、２０    車載ネットワークシステム
１００ａ、１００ｂ、１００ｃ、１００ｄ    バス
２００ａ、２００ｂ、２００ｃ、２００ｄ、１２００ａ、１２００ｂ、１２００ｃ、１２００ｄ    ＥＣＵ
２０１    フレーム送受信部
２０２    通信用設定パラメータ保持部
２０３、１２０３    フレーム解釈部
２０４    外部機器制御部
２０５    フレーム生成部
２０６    不正判定部
２０７、１２０７    切り替え判定部
２０８    切り替えテーブル保持部
２１０    前方カメラ
２２０    ギア
２３０    ブレーキ
２４０    後方カメラ
３００    スターカプラ
３０１ａ、３０１ｂ、３０１ｃ、３０１ｄ    トランシーバ部
３０２    ルーティング部
１２０９    車両状態判定部
Ｌ    ビット数
Ｒｅ    剰余
Ｒｉ    危険度
【図１】
2020022327.tif 000003
【図２】
2020022327.tif 000004
【図３】
2020022327.tif 000005
【図４】
2020022327.tif 000006
【図５】
2020022327.tif 000007
【図６】
2020022327.tif 000008
【図７】
2020022327.tif 000009
【図８】
2020022327.tif 000010
【図９】
2020022327.tif 000011
【図１０】
2020022327.tif 000012
【図１１】
2020022327.tif 000013
【図１２】
2020022327.tif 000014
【図１３】
2020022327.tif 000015
【図１４】
2020022327.tif 000016
【図１５】
2020022327.tif 000017
【図１６】
2020022327.tif 000018
【図１７】
2020022327.tif 000019
【図１８】
2020022327.tif 000020
【図１９】
2020022327.tif 000021
【図２０】
2020022327.tif 000022
【図２１Ａ】
2020022327.tif 000023
【図２１Ｂ】
2020022327.tif 000024
【図２２】
2020022327.tif 000025
【図２３】
2020022327.tif 000026
【国際調査報告】
2020022327.tif 000027
2020022327.tif 000028
2020022327.tif 000029
2020022327.tif 000030