(57)【要約】【課題】不要なデータを短い時間間隔で送信し続ける攻撃を早期に検知することができ、かつ、この攻撃の監視に関する処理量が小さい受信装置、監視機及びコンピュータプログラムを提供する。【解決手段】中継装置２において、ＥＣＵ中継機２０の送受信部６０ａはデータを受信する。第１カウンタ値は、送受信部６０ａが単位時間当たりに受信するデータの量が第１閾値を超えている場合に増加する。第２カウンタ値は、送受信部６０ａが単位時間当たりに受信するデータの量が第２閾値を超えている場合に増加する。第２閾値は第１閾値よりも大きい。バス中継機２１の制御部７０は、第１カウンタ値を繰り返し監視する。制御部７０は、第１カウンタ値が増加した場合、第２カウンタ値を監視する周期を短縮する。【選択図】図２
2019021129.tif 000002
【特許請求の範囲】
【請求項１】
データを受信する受信部を有する受信機と、該受信部が行う受信の状態を監視する監視機とを備える受信装置であって、
前記受信機は、
第１変数値を周期的に第１所定値、増加させると共に、前記受信部がデータを受信する都度、前記第１変数値を、該受信部が受信したデータの量に応じたデータ値、減少させる第１調整部と、
前記受信部がデータを受信した場合にて、該第１調整部が減少させる前の前記第１変数値が前記データ値未満であるときに第１カウンタ値を増加させる第１カウンタと、
第２変数値を周期的に、前記第１所定値よりも大きい第２所定値、増加させると共に、前記受信部がデータを受信する都度、前記第２変数値を、前記データ値、減少させる第２調整部と、
前記受信部がデータを受信した場合にて、該第２調整部が減少させる前の前記第２変数値が前記データ値未満であるときに第２カウンタ値を増加させる第２カウンタと
を有し、
前記監視機は、
前記第１カウンタ値を繰り返し監視し、該第１カウンタ値が増加したか否かを判定する第１判定部と、
前記第２カウンタ値を周期的に監視し、該第２カウンタ値が増加したか否かを判定する第２判定部と、
前記第１判定部によって前記第１カウンタ値が増加したと判定された場合に、前記第２判定部が前記第２カウンタ値を監視する監視周期を短縮する短縮部と
を有することを特徴とする受信装置。
【請求項２】
前記監視機の前記短縮部は、
前記第１判定部によって前記第１カウンタ値が増加したと判定された場合に、前記監視周期を所定の第１周期から、該第１周期よりも短い所定の第２周期に短縮し、
前記監視周期が該第２周期である状態で、前記第１判定部によって、前記第１カウンタ値が増加していないと判定された場合、前記監視周期を前記第１周期に戻すこと
を特徴とする請求項１に記載の受信装置。
【請求項３】
前記監視機の前記第２判定部は、前記第２カウンタ値が増加したと判定した後も、前記第２カウンタ値が増加したか否かを前記監視周期で判定し、
前記監視機の前記短縮部は、
前記第１判定部によって前記第１カウンタ値が増加したと判定された場合に、前記監視周期を所定の第１周期から、該第１周期よりも短い第２周期に短縮し、
前記第２判定部によって、前記第２カウンタ値が増加したと判定された後、前記監視周期を前記第２周期に調整すること
を特徴とする請求項１又は請求項２に記載の受信装置。
【請求項４】
前記監視機の前記第２判定部は、前記第２カウンタ値が増加したと判定した後、前記第２カウンタ値が増加したか否かを前記監視周期で判定し、
前記監視機の前記短縮部は、
前記第１判定部によって前記第１カウンタ値が増加したと判定された場合に、前記監視周期を所定の第１周期から、該第１周期よりも短い所定の第２周期に短縮し、
前記第２判定部によって、前記第２カウンタ値が増加したと判定された後、前記監視周期を前記第１周期に調整すること
を特徴とする請求項１又は請求項２に記載の受信装置。
【請求項５】
前記監視機は、前記受信機の前記受信部が受信したデータを送信する送信部を有し、
該送信部は、前記第２判定部によって前記第２カウンタ値が増加したと判定された場合、前記受信部が受信したデータの送信を停止すること
を特徴とする請求項１から請求項４のいずれか１つに記載の受信装置。
【請求項６】
前記送信部は、前記送信を停止している状態で前記第２判定部によって前記第２カウンタ値が増加していないと判定された場合、前記送信を再開すること
を特徴とする請求項５に記載の受信装置。
【請求項７】
前記監視機は、前記第２判定部によって前記第２カウンタ値が増加したと判定された後にて、前記受信部が受信したＮ（Ｎ：２以上の整数）個のデータを受信する都度、前記受信部が受信したＮ個のデータ中の１つを保存する保存部を有すること
を特徴とする請求項１から請求項６のいずれか１つに記載の受信装置。
【請求項８】
データの受信状態を周期的に監視する監視機であって、
単位時間当たりに受信されるデータの量が第１閾値を超えている場合に増加する第１カウンタ値を繰り返し監視し、該第１カウンタ値が増加したか否かを判定する第１判定部と、
単位時間当たりに受信されるデータの量が、前記第１閾値よりも大きい第２閾値を超えている場合に増加する第２カウンタ値を周期的に監視し、該第２カウンタ値が増加したか否かを判定する第２判定部と、
前記第１判定部によって前記第１カウンタ値が増加したと判定された場合に、前記第２判定部が前記第２カウンタ値を監視する監視周期を短縮する短縮部と
を備えることを特徴とする監視機。
【請求項９】
単位時間当たりに受信されるデータの量が第１閾値を超えている場合に増加する第１カウンタ値を繰り返し取得し、
該第１カウンタ値が増加したか否かを判定し、
単位時間当たりに受信されるデータの量が、前記第１閾値よりも大きい第２閾値を超えている場合に増加する第２カウンタ値を周期的に取得し、
前記第１カウンタ値が増加したと判定した場合に、前記第２カウンタ値を取得する周期を短縮する
処理をコンピュータに実行させることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データを受信する受信装置、並びに、データの受信状態を監視する監視機及びコンピュータプログラムに関する。
【背景技術】
【０００２】
車両には、複数の電気機器夫々の動作を制御する複数のＥＣＵ(Electronic Control Unit)が搭載されている。そして、複数のＥＣＵが相互に通信する通信システムが、多くの車両に搭載されている。複数のＥＣＵが相互に通信する通信システムとして、１つのＥＣＵからデータを受信する受信装置を備え、受信装置が受信したデータを他のＥＣＵに送信する通信システムが考えられる。
【０００３】
受信装置の機能を低下させる構成として、例えば、受信装置にデータを送信するＥＣＵの制御プログラムを改ざんし、ＥＣＵに不要なデータを短い時間間隔で継続的に受信機に送信させる構成が考えられる。受信装置が短い時間間隔でデータを受信し続け、受信したデータに対して通常の処理を実行した場合、受信装置は、常に、制御プログラムが改ざんされたＥＣＵから受信したデータを処理する。結果、受信装置は、このＥＣＵとは異なる他のＥＣＵから受信したデータを殆ど処理することができず、受信装置の機能は低下する。不要なデータを短い時間間隔で受信装置に送信し続ける攻撃は、ＤｏＳ(Denial of Service)攻撃と呼ばれている。
【０００４】
ＤｏＳ攻撃を検知する構成が特許文献１に開示されている。この構成では、一定期間が経過する都度、データを受信した受信回数の計数を開始する。そして、一定期間内において、計数した受信回数が閾値以上となった場合、ＤｏＳ攻撃を検知する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００４−３２０６３６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
従来の受信装置として、データを受信する受信機を備える受信装置がある。この受信機では、変数値が記憶されており、受信機は変数値を周期的に所定値、増加させる。また、受信機は、データを受信する都度、変数値を減少させる。減少させる変数値の幅は、例えば、受信したデータのバイト数である。例えば、受信したデータのバイト数が５００バイトである場合、変数値を５００、減少させる。
【０００７】
受信機では、データを受信した場合において、減少させる前の変数値が、受信したデータのバイト数よりも低いとき、受信したデータを破棄し、カウンタ値を１、増加させる。このとき、変数値を変更せず、現状の値に維持する。受信装置は、例えば、マイクロコンピュータ（以下、マイコンという）を更に備え、マイコンは受信機のカウンタ値を周期的に監視し、カウンタ値が前回のカウンタ値から増加したか否かを判定する。マイコンは、カウンタ値が増加したと判定した場合、ＤｏＳ攻撃を検知する。マイコンは、ＤｏＳ攻撃を検知した場合、例えば、受信機の設定を変更し、受信機に、カウンタ値に無関係に、制御プログラムが改ざんされたＥＣＵから受信したデータを破棄させる。
【０００８】
受信機では、受信したデータを破棄した後であっても、変数値を周期的に所定値、増加させる。このため、時間が経過した場合、受信したデータを破棄した後のデータの受信に関して、減少させる前の変数値が、受信したデータのバイト数よりも大きくなる。前述したように、減少させる前の変数値が、受信したデータのバイト数よりも大きい場合、受信機は、ＤｏＳ攻撃に係るデータを処理し、このデータが１つのＥＣＵに送信される。
【０００９】
結果、受信機では、受信したデータを破棄した後において、受信機の設定が変更されない限り、ＤｏＳ攻撃に係るデータを処理し、このデータが１つのＥＣＵに送信される。ＤｏＳ攻撃に係るデータがＥＣＵに送信されることは、このデータを受信したＥＣＵが意図しない処理を実行する可能性があるため、好ましくない。従って、ＤｏＳ攻撃に係るデータが送信される回数を抑制するためには、マイコンは、可能な限り、早期にＤｏＳ攻撃を検知する必要がある。
【００１０】
早期にＤｏＳ攻撃を検知する構成として、マイコンがカウンタ値を監視する監視周期を短い周期に設定する構成が考えられる。しかしながら、この構成では、カウンタ値、即ち、ＤｏＳ攻撃の監視に関するマイコンの処理量が大きい。マイコンは、通常、種々の処理を実行する。このため、ＤｏＳ攻撃の監視に関するマイコンの処理量が大きい場合、マイコンは、他の処理を効率的に実行することができないという問題がある。
【００１１】
本発明は斯かる事情に鑑みてなされたものであり、その目的とするところは、不要なデータを短い時間間隔で送信し続ける攻撃を早期に検知することができ、かつ、この攻撃の監視に関する処理量が小さい受信装置、監視機及びコンピュータプログラムを提供することにある。
【課題を解決するための手段】
【００１２】
本発明に係る受信装置は、データを受信する受信部を有する受信機と、該受信部が行う受信の状態を監視する監視機とを備える受信装置であって、前記受信機は、第１変数値を周期的に第１所定値、増加させると共に、前記受信部がデータを受信する都度、前記第１変数値を、該受信部が受信したデータの量に応じたデータ値、減少させる第１調整部と、前記受信部がデータを受信した場合にて、該第１調整部が減少させる前の前記第１変数値が前記データ値未満であるときに第１カウンタ値を増加させる第１カウンタと、第２変数値を周期的に、前記第１所定値よりも大きい第２所定値、増加させると共に、前記受信部がデータを受信する都度、前記第２変数値を、前記データ値、減少させる第２調整部と、前記受信部がデータを受信した場合にて、該第２調整部が減少させる前の前記第２変数値が前記データ値未満であるときに第２カウンタ値を増加させる第２カウンタとを有し、前記監視機は、前記第１カウンタ値を繰り返し監視し、該第１カウンタ値が増加したか否かを判定する第１判定部と、前記第２カウンタ値を周期的に監視し、該第２カウンタ値が増加したか否かを判定する第２判定部と、前記第１判定部によって前記第１カウンタ値が増加したと判定された場合に、前記第２判定部が前記第２カウンタ値を監視する監視周期を短縮する短縮部とを有することを特徴とする。
【００１３】
本発明にあっては、第２所定値は第１所定値よりも大きい。このため、第１カウンタ値は増加し易く、第２カウンタ値は増加しにくい。第２カウンタ値が増加したと判定した場合、不要なデータを短い時間間隔で送信し続ける攻撃を検知する。第１カウンタ値が増加してないと判定した場合、前述した攻撃を受けている可能性が低いとして、第２カウンタ値を監視する監視周期は長い。第１カウンタ値が増加したと判定した場合、前述した攻撃を受けている可能性が高いとして、第２カウンタ値を監視する監視周期は短い。
【００１４】
第１カウンタ値が増加したと判定した場合、監視周期が短縮されるので、前述した攻撃が早期に検知される。また、第１カウンタ値が増加したと判定するまで、監視周期が長いので、前述した攻撃、即ち、第２カウンタ値の監視に関する処理量は小さい。
【００１５】
本発明に係る受信装置は、前記監視機の前記短縮部は、前記第１判定部によって前記第１カウンタ値が増加したと判定された場合に、前記監視周期を所定の第１周期から、該第１周期よりも短い所定の第２周期に短縮し、前記監視周期が該第２周期である状態で、前記第１判定部によって、前記第１カウンタ値が増加していないと判定された場合、前記監視周期を前記第１周期に戻すことを特徴とする。
【００１６】
本発明にあっては、第２周期は、第１周期よりも短い。監視機は、第１カウンタ値が増加したと判定した場合、監視周期を第１周期から第２周期に短縮する。監視機は、第２周期で第２カウンタ値を監視している状態で、第１カウンタ値が増加していないと判定した場合、前述した攻撃を受けている可能性が低くなったとして、監視周期を第１周期に戻す。このため、前述した攻撃の監視に関する処理量は更に小さい。
【００１７】
本発明に係る受信装置は、前記監視機の前記第２判定部は、前記第２カウンタ値が増加したと判定した後も、前記第２カウンタ値が増加したか否かを前記監視周期で判定し、前記監視機の前記短縮部は、前記第１判定部によって前記第１カウンタ値が増加したと判定された場合に、前記監視周期を所定の第１周期から、該第１周期よりも短い第２周期に短縮し、前記第２判定部によって、前記第２カウンタ値が増加したと判定された後、前記監視周期を前記第２周期に調整することを特徴とする。
【００１８】
本発明にあっては、第２周期は第１周期よりも短い。監視機は、第１カウンタ値が増加したと判定した場合、監視周期を第１周期から第２周期に短縮する。監視機は、第２カウンタ値が増加したと判定し、前述した攻撃を検知した後も、第２カウンタ値を第２周期で監視し、第２カウンタ値が、前回監視した値から増加したか否かを判定する。監視機は、前回監視した値から増加していないと判定した場合、例えば、前述した攻撃が停止したとみなす。
【００１９】
第２カウンタ値が増加したと監視機が判定した場合、例えば、受信機が受信したデータの処理を停止する。その後、第２カウンタ値が前回監視した値よりも増加したと監視機が判定した場合、受信機が受信したデータの処理を再開する。前述した攻撃を検知した後において、監視機が第２カウンタ値を監視する周期が第２周期であるので、前述した攻撃が停止した場合に、受信機が受信したデータの処理を早期に再開することが可能である。
【００２０】
本発明に係る受信装置は、前記監視機の前記第２判定部は、前記第２カウンタ値が増加したと判定した後、前記第２カウンタ値が増加したか否かを前記監視周期で判定し、前記監視機の前記短縮部は、前記第１判定部によって前記第１カウンタ値が増加したと判定された場合に、前記監視周期を所定の第１周期から、該第１周期よりも短い所定の第２周期に短縮し、前記第２判定部によって、前記第２カウンタ値が増加したと判定された後、前記監視周期を前記第１周期に調整することを特徴とする。
【００２１】
本発明にあっては、第２周期は、第１周期よりも短い。監視機は、第１カウンタ値が増加したと判定した場合、監視周期を第１周期から第２周期に短縮する。監視機は、第２カウンタ値が増加したと判定し、前述した攻撃を検知した後も、第２カウンタ値を監視し、第２カウンタ値が、前回の第２カウンタ値から増加したか否かを判定する。監視機は、前回の第２カウンタ値から増加していないと判定した場合、例えば、前述した攻撃が停止したとみなす。監視機が前述した攻撃を検知した後において、第２カウンタ値を監視する監視周期は第１周期である。このため、監視機が前述した攻撃を検知した後の監視に関する処理量が小さい。
【００２２】
本発明に係る受信装置は、前記監視機は、前記受信機の前記受信部が受信したデータを送信する送信部を有し、該送信部は、前記第２判定部によって前記第２カウンタ値が増加したと判定された場合、前記受信部が受信したデータの送信を停止することを特徴とする。
【００２３】
本発明にあっては、監視機は、受信機が１つの外部装置から受信したデータを、他の外部装置に送信する。監視機は、第２カウンタ値が増加したと判定した場合、受信機が受信したデータの送信を停止する。これにより、前述した攻撃に係るデータが送信される回数が抑制される。
【００２４】
本発明に係る受信装置は、前記送信部は、前記送信を停止している状態で前記第２判定部によって前記第２カウンタ値が増加していないと判定された場合、前記送信を再開することを特徴とする。
【００２５】
本発明にあっては、監視機は、第２カウンタ値が増加したと判定して、受信機が受信したデータの送信を停止した後も、第２カウンタ値が前回の第２カウンタ値から増加したか否かを判定する。監視機は、送信を停止した後において、第２カウンタ値が前回の第２カウンタ値から増加していないと判定した場合、送信を再開する。
【００２６】
本発明に係る受信装置は、前記監視機は、前記第２判定部によって前記第２カウンタ値が増加したと判定された後にて、前記受信部が受信したＮ（Ｎ：２以上の整数）個のデータを受信する都度、前記受信部が受信したＮ個のデータ中の１つを保存する保存部を有することを特徴とする。
【００２７】
本発明にあっては、第２カウンタ値が増加したと判定した後においては、受信機が受信したＮ個のデータを受信する都度、監視機は、これらのデータ中の１つを、例えば、前述した攻撃を解析するために保存する。
【００２８】
本発明に係る監視機は、データの受信状態を周期的に監視する監視機であって、単位時間当たりに受信されるデータの量が第１閾値を超えている場合に増加する第１カウンタ値を繰り返し監視し、該第１カウンタ値が増加したか否かを判定する第１判定部と、単位時間当たりに受信されるデータの量が、前記第１閾値よりも大きい第２閾値を超えている場合に増加する第２カウンタ値を周期的に監視し、該第２カウンタ値が増加したか否かを判定する第２判定部と、前記第１判定部によって前記第１カウンタ値が増加したと判定された場合に、前記第２判定部が前記第２カウンタ値を監視する監視周期を短縮する短縮部とを備えることを特徴とする。
【００２９】
本発明に係るコンピュータプログラムは、単位時間当たりに受信されるデータの量が第１閾値を超えている場合に増加する第１カウンタ値を繰り返し取得し、該第１カウンタ値が増加したか否かを判定し、単位時間当たりに受信されるデータの量が、前記第１閾値よりも大きい第２閾値を超えている場合に増加する第２カウンタ値を周期的に取得し、前記第１カウンタ値が増加したと判定した場合に、前記第２カウンタ値を取得する周期を短縮する処理をコンピュータに実行させることを特徴とする。
【００３０】
本発明に係る監視機及びコンピュータプログラムにあっては、第１カウンタ値が増加していないと判定した場合、不要なデータを短い時間間隔で送信し続ける攻撃を受けている可能性が低いとして、第２カウンタ値を取得して監視する監視周期が長い。このため、前述した攻撃、即ち、第２カウンタ値の監視に関する処理量は小さい。また、第１カウンタ値が増加したと判定した場合、前述した攻撃を受けている可能性が高いとして、第２カウンタ値を取得して監視する周期が短い。このため、前述した攻撃が早期に検知される。
【発明の効果】
【００３１】
本発明によれば、不要なデータを短い時間間隔で送信し続ける攻撃を早期に検知することができ、かつ、この攻撃の監視に関する処理量が小さい。
【図面の簡単な説明】
【００３２】
【図１】実施の形態１における通信システムの要部構成を示すブロック図である。
【図２】中継装置の要部構成を示すブロック図である。
【図３】設定情報の内容を示す図表である。
【図４】カウンタ値情報の内容を示す図表である。
【図５】第１トークン値及び第２トークン値の増減の説明図である。
【図６】増加動作の説明図である。
【図７】受信動作の説明図である。
【図８】監視処理の手順を示すフローチャートである。
【図９】バス中継機の状態遷移の説明図である。
【図１０】実施の形態２における監視処理の手順を示すフローチャートである。
【発明を実施するための形態】
【００３３】
以下、本発明をその実施の形態を示す図面に基づいて詳述する。
（実施の形態１）
図１は、実施の形態１における通信システム１の要部構成を示すブロック図である。通信システム１は、車両に好適に搭載され、中継装置２及びＥＣＵ３ａ，３ｂ，３ｃ，４０，４１，５０，５１を備える。中継装置２には、３つのＥＣＵ３ａ，３ｂ，３ｃが各別に接続されている。中継装置２には、更に、２つの通信バス４２，５２が各別に接続されている。通信バス４２には、中継装置２の他に、２つのＥＣＵ４０，４１が各別に接続されている。通信バス５２には、中継装置２の他に、２つのＥＣＵ５０，５１が各別に接続されている。
【００３４】
ＥＣＵ３ａ，３ｂ，３ｃ，４０，４１，５０，５１夫々は、図示しない電気機器に接続されており、自装置に接続されている電気機器の動作を制御する。更に、ＥＣＵ３ａ，３ｂ，３ｃ，４０，４１，５０，５１は、通信装置として機能し、相互に通信する。例えば、ＥＣＵ３ａに接続されている電気機器が使用者から受け付けた指示を示すデータを、ＥＣＵ３ａはＥＣＵ４０に送信する。ＥＣＵ４０は、ＥＣＵ３ａから受信したデータに基づいて、自装置に接続されている電気機器の動作を制御する。
【００３５】
３つのＥＣＵ３ａ，３ｂ，３ｃは、中継装置２を介して相互に通信する。中継装置２と、ＥＣＵ３ａ，３ｂ，３ｃの１つとの通信は、第１プロトコルに従って行われる。第１プロトコルは、例えば、イーサネット（登録商標）の通信プロトコルである。
【００３６】
ＥＣＵ４０，４１は、通信バス４２を介して相互に通信する。更に、ＥＣＵ４０，４１夫々は、中継装置２を介して、ＥＣＵ５０，５１と通信する。同様に、ＥＣＵ５０，５１は、通信バス４２を介して相互に通信する。更に、ＥＣＵ５０，５１夫々は、中継装置２を介して、ＥＣＵ４０，４１と通信する。
【００３７】
中継装置２は、ＥＣＵ４０，４１夫々と、通信バス４２を介して通信すると共に、ＥＣＵ５０，５１夫々と、通信バス５２を介して通信する。通信バス４２，５２夫々を介した通信は、第２プロトコルに従って行われる。第２プロトコルは、ＣＡＮ(Controller Area Network)プロトコル又はＣＡＮ−ＦＤ(Controller Area Network with Flexible Data rate)プロトコル等であり、第１プロトコルと異なっている。
【００３８】
中継装置２及びＥＣＵ４０，４１夫々が通信バス４２を介して送信したデータは、中継装置２及びＥＣＵ４０，４１の中で、データの送信元を除く他の全ての装置によって受信される。同様に、中継装置２及びＥＣＵ５０，５１夫々が通信バス５２を介して送信したデータは、中継装置２及びＥＣＵ５０，５１の中で、データの送信元を除く他の全ての装置によって受信される。
ＥＣＵ３ａ，３ｂ，３ｃ夫々は、中継装置２を介して、ＥＣＵ４０，４１，５０，５１と通信する。
中継装置２は、ＥＣＵ３ａ，３ｂ，３ｃ，４０，４１，５０，５１が送信したデータを中継する。
【００３９】
図２は、中継装置２の要部構成を示すブロック図である。中継装置２は、ＥＣＵ中継機２０及びバス中継機２１を有する。ＥＣＵ中継機２０は、バス中継機２１及びＥＣＵ３ａ，３ｂ，３ｃに各別に接続されている。バス中継機２１は、更に、通信バス４２，５２に各別に接続されている。
【００４０】
ＥＣＵ中継機２０は、ＥＣＵ３ａ，３ｂ，３ｃ夫々からデータを受信する。ＥＣＵ３ａ，３ｂ，３ｃが送信するデータには、送信先を示す送信先情報が含まれている。ＥＣＵ中継機２０では、ＥＣＵ３ａ，３ｂ，３ｃ夫々から受信したデータの中継に関する中継設定は、「許可」又は「禁止」である。中継設定は、バス中継機２１によって各別に変更される。
【００４１】
ＥＣＵ中継機２０は、ＥＣＵ３ａ，３ｂ，３ｃ中の１つからデータを受信した場合において、受信したデータの中継設定が「禁止」であるとき、受信したデータを破棄するか、又は、受信したデータを、保存すべき保存データとしてバス中継機２１に出力する。バス中継機２１は、ＥＣＵ中継機２０から保存データが入力された場合、入力された保存データを保存する。
【００４２】
ＥＣＵ中継機２０は、ＥＣＵ３ａ，３ｂ，３ｃ中の１つからデータを受信した場合において、受信したデータの中継設定が「許可」であるとき、受信したデータを中継する。ＥＣＵ中継機２０は、受信したデータに含まれている送信先情報が示す送信先が、ＥＣＵ３ａ，３ｂ，３ｃ中の１つであるとき、受信したデータを、送信先情報が示す送信先に送信する。
【００４３】
ＥＣＵ中継機２０は、ＥＣＵ３ａ，３ｂ，３ｃ中の１つから、中継設定が「許可」であるデータを受信した場合において、受信したデータに含まれる送信先情報が示す送信先がＥＣＵ４０，４１，５０，５１中の１つであると仮定する。この場合、ＥＣＵ中継機２０は、受信したデータを、ＥＣＵ４０，４１，５０，４１中の１つに送信する送信データとして、バス中継機２１に出力する。
【００４４】
バス中継機２１は、ＥＣＵ中継機２０から送信データが入力された場合、入力された送信データに含まれる送信先情報に基づいて、通信バス４２，５２の中から、送信データを送信する媒体を決定し、入力された送信データの形式を、第１プロトコルの形式から、第２プロトコルの形式に変換する。バス中継機２１は、形式を変換した送信データを、決定した媒体を介して送信する。
【００４５】
例えば、ＥＣＵ中継機２０がＥＣＵ３ａから、送信先としてＥＣＵ４０を示す送信先情報を含むデータを受信し、このデータの中継設定が「許可」である場合、ＥＣＵ中継機２０は、バス中継機２１に、受信したデータを送信データとして出力する。バス中継機２１は、ＥＣＵ中継機２０から入力された送信データに含まれる送信先情報に基づいて、送信データを送信する媒体として通信バス４２を決定し、送信データの形式を、第１プロトコルの形式から第２プロトコルの形式に変換する。バス中継機２１は、形式を変換した送信データを、通信バス４２を介してＥＣＵ４０に送信する。
【００４６】
バス中継機２１は、通信バス４２，５２を介してデータを受信する。通信バス４２，５２夫々を介して送信されるデータには、自身（データ）を識別するための識別情報が含まれている。バス中継機２１は、通信バス４２，５２中の１つを介してデータを受信した場合、受信したデータに含まれる識別情報に基づいて、受信したデータを破棄すべきか否かを判定する。バス中継機２１は、受信したデータを破棄すべきと判定した場合、受信したデータを破棄する。
【００４７】
バス中継機２１は、受信したデータを破棄すべきではないと判定した場合、受信したデータに含まれている識別情報に基づいて、受信したデータの送信先を決定する。バス中継機２１は、決定した送信先がＥＣＵ４０，４１，５０，５１中の１つである場合、通信バス４２，５２中の１つを介して、受信したデータを決定した送信先に、受信したデータを送信する。バス中継機２１は、決定した送信先がＥＣＵ３ａ，３ｂ，３ｃ中の１つである場合、受信したデータの形式を、第２プロトコルの形式から第１プロトコルの形式に変換し、形式を変換したデータをＥＣＵ中継機２０に出力する。形式を変換したデータには、バス中継機２１が決定した送信先を示す送信先情報が含まれている。
【００４８】
ＥＣＵ中継機２０は、バス中継機２１からデータが入力された場合、入力されたデータを、入力されたデータに含まれる送信先情報が示す送信先に送信する。
【００４９】
ＥＣＵ中継機２０は、送受信部６０ａ，６０ｂ，６０ｃ、入出力部６１，６２、記憶部６３及び調整部６４を有する。送受信部６０ａ，６０ｂ，６０ｃ夫々は、ＥＣＵ３ａ，３ｂ，３ｃに接続されている。入出力部６１，６２夫々は、バス中継機２１に接続されている。
【００５０】
送受信部６０ａ，６０ｂ，６０ｃ夫々は、ＥＣＵ３ａ，３ｂ，３ｃにデータを送信すると共に、ＥＣＵ３ａ，３ｂ，３ｃからデータを受信する。送受信部６０ａ，６０ｂ，６０ｃ夫々は受信部として機能し、ＥＣＵ中継機２０は受信機として機能する。
入出力部６１は、送信データ及び保存データをバス中継機２１に出力する。バス中継機２１から、ＥＣＵ中継機２０の入出力部６１にデータが出力される。
【００５１】
バス中継機２１から、ＥＣＵ中継機２０の入出力部６２に、ＥＣＵ中継機２０の記憶部６３に記憶されている記憶内容の変更を指示する指示信号と、この記憶内容を示す信号の出力を要求する要求信号とが入力される。入出力部６２は、要求信号が入力された場合、記憶部６３に記憶されている記憶内容を示す信号をバス中継機２１に出力する。
【００５２】
記憶部６３には、送受信部６０ａ，６０ｂ，６０ｃ夫々から受信するデータの中継設定を示す設定情報が記憶されている。図３は、設定情報の内容を示す図表である。設定情報では、送受信部６０ａ，６０ｂ，６０ｃ夫々が受信するデータの中継設定として、中継の「許可」又は「禁止」が設定されている。図３に示す設定情報では、送受信部６０ａが受信したデータの中継は禁止されており、送受信部６０ｂ，６０ｃが受信したデータの中継は許可されている。
【００５３】
バス中継機２１は、入出力部６２に、送受信部６０ａ，６０ｂ，６０ｃ夫々が受信するデータの中継設定の変更を指示する指示信号を出力する。入出力部６２に入力された指示信号に従って、送受信部６０ａ，６０ｂ，６０ｃ夫々が受信するデータの中継設定が各別に変更される。例えば、送受信部６０ａが受信するデータの中継設定を「許可」に変更する指示信号が入出力部６２に入力された場合、設定情報において、送受信部６０ａが受信するデータの中継設定が「許可」に変更される。
【００５４】
送受信部６０ａ，６０ｂ，６０ｃ夫々がデータを受信する都度、ＥＣＵ中継機２０が行う受信動作は、記憶部６３に記憶されている設定情報が示す中継設定に応じて異なる。
【００５５】
記憶部６３には、送受信部６０ａ，６０ｂ，６０ｃ夫々について、不要なデータが短い時間間隔で継続的に送信される攻撃、所謂、ＤｏＳ攻撃を検知するための３つのカウンタ値を示すカウンタ値情報が記憶されている。３つのカウンタ値として、グリーン値、イエロー値及びレッド値が設定されている。
【００５６】
図４は、カウンタ値情報の内容を示す図表である。図４に示すように、送受信部６０ａ，６０ｂ，６０ｃ夫々が受信するデータに関して、グリーン値、イエロー値及びレッド値が記憶されている。これらの値は、調整部６４によって各別に変更される。
【００５７】
バス中継機２１は、ＥＣＵ中継機２０の入出力部６２に、記憶部６３に記憶されているカウンタ値情報の内容を示すカウンタ値信号の出力を要求する要求信号を出力する。ＥＣＵ中継機２０の入出力部６２は、要求信号が入力された場合、カウンタ値情報の内容を示すカウンタ値信号をバス中継機２１に出力する。
【００５８】
送受信部６０ａ，６０ｂ，６０ｃ夫々が受信するデータに関して、記憶部６３に、第１トークン値及び第２トークン値が記憶されている。調整部６４は、送受信部６０ａ，６０ｂ，６０ｃ夫々が受信するデータに関する第１トークン値及び第２トークン値を調整する。
【００５９】
図５は第１トークン値及び第２トークン値の増減の説明図である。以下では、送受信部６０ａが受信するデータに関する第１トークン値及び第２トークン値を説明する。第１トークン値及び第２トークン値夫々について、上限値及び下限値が予め設定されている。第１トークン値及び第２トークン値の上限値は同じ又は略同じである。第１トークン値及び第２トークン値の下限値はゼロである。
【００６０】
調整部６４は、所定時間が経過する都度、第１トークン値及び第２トークン値を増加させる増加動作を実行する。また、調整部６４は、送受信部６０ａがデータを受信する都度、受信動作を実行し、受信動作において、第１トークン値及び第２トークン値を減少させる。
【００６１】
図６は増加動作の説明図である。記憶部６３には、第１基準値が記憶されている。第１基準値は、予め設定された自然数であり、一定である。所定時間が経過した時点において、第１トークン値と、第１基準値との和が第１トークン値の上限値以下である場合、調整部６４は、第１トークン値を第１基準値、増加させる。
第１トークン値と、第１基準値との和が第１トークン値の上限値以下である限り、調整部６４は、第１トークン値を周期的に第１基準値、増加させる。第１トークン値及び第１基準値夫々は、第１変数値及び第１所定値に相当する。
【００６２】
また、所定時間が経過した時点において、第１トークン値と、第１基準値との和が第１トークン値の上限値を超えている場合、調整部６４は、第１トークン値を、第１トークン値の上限値に調整する。
【００６３】
調整部６４は、所定時間が経過する都度、第２トークン値も、第１トークン値と同様に増加させる。記憶部６３には、第２基準値が記憶されている。第２基準値は、第１基準値と同様に、予め設定された自然数であり、一定である。ただし、第２基準値は、第１基準値よりも大きい。第１基準値は例えば１０００であり、第２基準値は例えば１５００である。
【００６４】
所定時間が経過した時点において、第２トークン値と、第２基準値との和が第２トークン値の上限値以下である場合、調整部６４は、第２トークン値を第２基準値、増加させる。
第２トークン値と、第２基準値との和が第２トークン値の上限値以下である限り、調整部６４は、第２トークン値を周期的に第２基準値、増加させる。第２トークン値及び第２基準値夫々は、第２変数値及び第２所定値に相当する。
【００６５】
また、所定時間が経過した時点において、第２トークン値と、第２基準値との和が第２トークン値の上限値を超えている場合、調整部６４は、第２トークン値を、第２トークン値の上限値に調整する。
【００６６】
図７は受信動作の説明図である。前述したように、ＥＣＵ中継機２０は、送受信部６０ａがＥＣＵ３ａからデータを受信する都度、受信動作を実行する。記憶部６３に記憶されている設定情報が示す中継設定に応じて、受信動作が異なる。以下では、送受信部６０ａが受信したデータのバイト数を受信バイト数と記載する。受信バイト数は、送受信部６０ａが受信したデータの量であり、このデータの量に応じた値である。受信バイト数はデータ値に相当する。
送受信部６０ａが５００バイトのデータを受信した場合、受信バイト数は５００である。
【００６７】
送受信部６０ａが受信するデータの中継設定が「許可」である場合における受信動作において、第１トークン値及び第２トークン値夫々が受信バイト数以上であるとき、調整部６４は、第１トークン値及び第２トークン値夫々を受信バイト数、減少させる。また、調整部６４は、記憶部６３に記憶されているカウンタ値情報において、送受信部６０ａが受信するデータに関するグリーン値を１、増加させる。更に、ＥＣＵ中継機２０は、送受信部６０ａが受信したデータを中継する。
【００６８】
送受信部６０ａが受信するデータの中継設定が「許可」である場合における受信動作において、第１トークン値が受信バイト数未満であり、かつ、第２トークン値が受信バイト数以上であるとき、調整部６４は、第１トークン値を変更せず、第２トークン値を受信バイト数、減少させる。また、調整部６４は、記憶部６３に記憶されているカウンタ値情報において、送受信部６０ａが受信するデータに関するイエロー値を１、増加させる。更に、ＥＣＵ中継機２０は、送受信部６０ａが受信したデータを中継する。
【００６９】
送受信部６０ａが受信するデータの中継設定が「許可」である場合における受信動作において、第１トークン値及び第２トークン値夫々が受信バイト数未満であるとき、調整部６４は、第１トークン値及び第２トークン値を変更しない。また、調整部６４は、記憶部６３に記憶されているカウンタ値情報において、送受信部６０ａが受信するデータに関するレッド値を１、増加させる。更に、ＥＣＵ中継機２０は、送受信部６０ａが受信したデータを破棄する。
【００７０】
送受信部６０ａが受信するデータの中継設定が「禁止」である場合における受信動作において、調整部６４が行う第１トークン値及び第２トークン値の調整は、送受信部６０ａが受信するデータの中継設定が「許可」である場合における受信動作において、調整部６４が行う第１トークン値及び第２トークン値の調整と同様である。
【００７１】
また、送受信部６０ａが受信するデータの中継設定が「禁止」である場合における受信動作において、調整部６４が行うグリーン値、イエロー値及びレッド値の調整は、送受信部６０ａが受信するデータの中継設定が「許可」である場合における受信動作において、調整部６４が行うグリーン値、イエロー値及びレッド値の調整と同様である。
【００７２】
従って、調整部６４は、減少させる前の第１トークン値が受信バイト数以上である限り、送受信部６０ａがデータを受信する都度、第１トークン値を受信バイト数、減少させる。調整部６４は、第１調整部として機能する。
また、調整部６４は、送受信部６０ａがデータを受信した場合において、減少させる前の第１トークン値が受信バイト数未満であるとき、イエロー値を１、増加させる。従って、調整部６４は第１カウンタとしても機能し、イエロー値は第１カウンタ値である。
【００７３】
単位時間当たりに受信するデータの受信バイト数が、単位時間当たりに増加される第１トークン値の幅を超えている場合、減少させる前の第１トークン値が第１基準値未満となって、イエロー値は増加する。単位時間当たりに増加される第１トークン値の幅は、第１基準値を周期の長さで除算することによって得られる値である。従って、イエロー値は、単位時間当たりに送受信部６０ａが受信するデータの量が所定の第１閾値を超えている場合に増加する。
【００７４】
同様に、調整部６４は、減少させる前の第２トークン値が受信バイト数以上である限り、送受信部６０ａがデータを受信する都度、第２トークン値を受信バイト数、減少させる。調整部６４は、第２調整部として機能する。
また、調整部６４は、送受信部６０ａがデータを受信した場合において、減少させる前の第２トークン値が受信バイト数未満であるとき、レッド値を１、増加させる。従って、調整部６４は第２カウンタとしても機能し、レッド値は第２カウンタ値である。
【００７５】
単位時間当たりに受信するデータの受信バイト数が、単位時間当たりに増加される第２トークン値の幅を超えている場合、第２トークン値が第２基準値未満となって、レッド値は増加する。単位時間当たりに増加される第２トークン値の幅は、第２基準値を周期の長さで除算することによって得られる値である。従って、レッド値は、単位時間当たりに送受信部６０ａが受信するデータの量が所定の第２閾値を超えている場合に増加する。第２基準値は、第１基準値より大きく、第１トークン値を第１基準値、増加させる周期の長さは、第２トークン値を第２基準値、増加させる周期の長さと一致又は略一致している。このため、第２閾値は、第１閾値よりも大きい。
【００７６】
なお、前述したように、調整部６４は、所定時間が経過する都度、第１トークン値を第１基準値、増加させると共に、第２トークン値を第２基準値、増加させ、第２基準値は第１基準値よりも大きい。更に、送受信部６０ａがデータを受信した場合、調整部６４は、第１トークン値及び第２トークン値を同一の受信バイト数、減少させる。このため、第１トークン値は受信バイト数未満になり易く、第２トークン値は受信バイト数未満になりにくい。従って、イエロー値は増加し易く、レッド値は増加しにくい。送受信部６０ａがＤｏＳ攻撃を受けた場合、まず、イエロー値が増加し、次に、レッド値が増加する。レッド値が増加した場合、ＤｏＳ攻撃が検知される。
【００７７】
送受信部６０ａが受信するデータの中継設定が「禁止」である場合における受信動作では、送受信部６０ａが受信したデータは、第１トークン値及び第２トークン値に無関係に破棄されるか、又は、保存データとして、入出力部６１によってバス中継機２１に出力される。
【００７８】
送受信部６０ａが受信するデータの中継設定が「禁止」である場合においては、送受信部６０ａがＮ個のデータを受信する都度、入出力部６１は、送受信部６０ａが受信したＮ個のデータ中の１つを保存データとしてバス中継機２１に出力する。具体的には、入出力部６１は、保存データを出力してから、送受信部６０ａが受信したＮ個目のデータを保存データとして再び出力する。前述したように、バス中継機２１は、入出力部６１から入力された保存データを保存する。Ｎは、２以上の整数であり、一定である。
【００７９】
受信動作で送受信部６０ａが受信したデータを中継する場合において、送受信部６０ａが受信したデータに含まれている送信先情報が示す送信先がＥＣＵ３ｂ，３ｃ中の１つであるとき、送受信部６０ａが受信したデータを、送受信部６０ｂ，６０ｃ中の１つが、送信先情報が示す送信先に送信する。
同様の場合において、送受信部６０ａが受信したデータに含まれている送信先情報が示す送信先がＥＣＵ４０，４１，５０，５１中の１つであるとき、入出力部６２は、送受信部６０ａが受信したデータを、送信データとしてバス中継機２１に出力する。
【００８０】
送受信部６０ｂ，６０ｃ夫々が受信するデータに関する第１トークン値及び第２トークン値は、送受信部６０ａが受信するデータに関する第１トークン値及び第２トークン値と同様に調整される。
送受信部６０ａが受信するデータに関する第１トークン値及び第２トークン値の説明において、送受信部６０ａを送受信部６０ｂに置き換えることによって、送受信部６０ｂが受信するデータに関する第１トークン値及び第２トークン値を説明することができる。同様に、送受信部６０ａが受信するデータに関する第１トークン値及び第２トークン値の説明において、送受信部６０ａを送受信部６０ｃに置き換えることによって、送受信部６０ｃが受信するデータに関する第１トークン値及び第２トークン値を説明することができる。
【００８１】
また、送受信部６０ｂ，６０ｃ夫々に係る増加動作及び受信動作は、送受信部６０ａに係る増加動作及び受信動作と同様である。
送受信部６０ａに係る増加動作及び受信動作の説明において、送受信部６０ａ，６０ｂ及びＥＣＵ３ｂ夫々を、送受信部６０ｂ，６０ａ及びＥＣＵ３ａに置き換えることによって、送受信部６０ｂに係る増加動作及び受信動作を説明することができる。同様に、送受信部６０ａに係る増加動作及び受信動作の説明において、送受信部６０ａ，６０ｃ及びＥＣＵ３ｃ夫々を、送受信部６０ｃ，６０ａ及びＥＣＵ３ａに置き換えることによって、送受信部６０ｃに係る増加動作及び受信動作を説明することができる。
【００８２】
送受信部６０ａ，６０ｂ，６０ｃ夫々はＥＣＵ３ａ，３ｂ，３ｃに対応する。バス中継機２１は、ＥＣＵ中継機２０の入出力部６１にデータを出力する。入出力部６１にデータが入力された場合、送受信部６０ａ，６０ｂ，６０ｃ中の１つが、入出力部６１に入力されたデータを、送信先に送信する。入出力部６１に入力されたデータを送信する送受信部は、このデータに含まれている送信先情報が示す送信先に対応する送受信部である。例えば、送信先情報が送信先としてＥＣＵ３ａを示す場合、送受信部６０ａが、入出力部６１に入力されたデータをＥＣＵ３ａに送信する。
【００８３】
図２に示すように、バス中継機２１は、制御部７０、入出力部７１，７２、記憶部７３及び通信部７４，７５を有する。これらは、内部バス７６に各別に接続されている。入出力部７１，７２夫々は、内部バス７６の他に、ＥＣＵ中継機２０の入出力部６１，６２に接続されている。通信部７４，７５夫々は、内部バス７６の他に、通信バス４２，５２に接続されている。
【００８４】
ＥＣＵ中継機２０の入出力部６１は、バス中継機２１の入出力部７１に送信データ及び保存データを出力する。バス中継機２１の入出力部７１は、制御部７０の指示に従って、データをＥＣＵ中継機２０の入出力部６１に出力する。
【００８５】
ＥＣＵ中継機２０の入出力部６２は、カウンタ値信号をバス中継機２１の入出力部７２に出力する。カウンタ値信号は、前述したように、ＥＣＵ中継機２０の記憶部６３に記憶されているカウンタ値情報の内容を示す。バス中継機２１の入出力部７１は、制御部７０の指示に従って、指示信号及び要求信号をＥＣＵ中継機２０の入出力部６１に出力する。
【００８６】
通信部７４は、ＥＣＵ４０，４１中の１つが通信バス４２を介して送信したデータを受信する。また、通信部７４は、制御部７０の指示に従って、通信バス４２を介して、ＥＣＵ４０，４１にデータを送信する。
同様に、通信部７５は、ＥＣＵ５０，５１中の１つが通信バス５２を介して送信したデータを受信する。また、通信部７５は、制御部７０の指示に従って、通信バス５２を介して、ＥＣＵ５０，５１にデータを送信する。
【００８７】
記憶部７３には、コンピュータプログラムＰ１が記憶されている。制御部７０は、図示しないＣＰＵ(Central Processing Unit)を有する。制御部７０のＣＰＵは、コンピュータプログラムＰ１を実行することによって、第１中継処理、第２中継処理、保存処理及び監視処理を実行する。
【００８８】
第１中継処理は、ＥＣＵ中継機２０の入出力部６１から入出力部７１に入力されたデータの中継に関する処理である。第２中継処理は、通信部７４，７５中の１つが受信したデータの中継に関する処理である。保存処理は、ＥＣＵ中継機２０の入出力部６１からバス中継機２１の入出力部６１に入力された保存データを保存する処理である。監視処理は、ＥＣＵ中継機２０の記憶部６３に記憶されているカウンタ値情報が示すイエロー値及びレッド値、即ち、送受信部６０ａ，６０ｂ，６０ｃが行うデータの受信の状態を監視する処理である。コンピュータプログラムＰ１は、第１中継処理、第２中継処理、保存処理及び監視処理を制御部７０が実行するために用いられる。
【００８９】
なお、コンピュータプログラムＰ１は、制御部７０のＣＰＵが読み取り可能に、記憶媒体Ａ１に記憶されていてもよい。この場合、図示しない読み出し装置によって記憶媒体Ａ１から読み出されたコンピュータプログラムＰ１が記憶部７３に記憶される。記憶媒体Ａ１は、光ディスク、フレキシブルディスク、磁気ディスク、磁気光ディスク又は半導体メモリ等である。光ディスクは、ＣＤ（Compact Disc）−ＲＯＭ(Read Only Memory)、ＤＶＤ（Digital Versatile Disc）−ＲＯＭ、又は、ＢＤ（Blu-ray(登録商標) Disc）等である。磁気ディスクは、例えばハードディスクである。また、図示しない通信網に接続されている図示しない外部装置からコンピュータプログラムＰ１をダウンロードし、ダウンロードしたコンピュータプログラムＰ１を記憶部７３に記憶してもよい。
【００９０】
制御部７０は、入出力部７１に送信データが入力される都度、第１中継処理を実行する。第１中継処理では、制御部７０は、入出力部７１に入力された送信データに含まれる送信先情報に基づいて、通信部７４，７５の中から、送信データを送信する通信部を決定する。これは、送信先情報に基づいて、通信バス４２，５２の中から、送信データを送信する媒体を決定することに相当する。
【００９１】
次に、制御部７０は、入出力部７１に入力された送信データの形式を、第１プロトコルの形式から、第２プロトコルの形式に変換する。そして、制御部７０は、決定した通信部に、形式を変更した送信データの送信を指示する。これにより、制御部７０が決定した通信部は、形式を変換した送信データを、通信バス４２，５２中の１つを介して送信する。例えば、制御部７０が決定した通信部が通信部７４である場合、制御部７０は、通信部７４に送信データの送信を指示し、通信部７４は、通信バス４２を介して送信データを送信する。
送信データは、前述したように、送受信部６０ａ，６０ｂ，６０ｃ中の１つが受信したデータである。従って、通信部７４，７５夫々は、送信部として機能する。
【００９２】
制御部７０が決定した通信部が送信する送信データの識別情報は、入出力部７１に入力された送信データに含まれる送信先情報に基づいて生成される。
制御部７０は、送信データの送信を指示した後、第１中継処理を終了する。
【００９３】
制御部７０は、通信部７４，７５中の１つがデータを受信する都度、第２中継処理を実行する。制御部７０は、通信部７４，７５中の１つが受信したデータに含まれている識別情報に基づいて、通信部７４，７５中の１つが受信したデータを破棄すべきか否かを判定する。制御部７０は、データを破棄すべきと判定した場合、通信部７４，７５中の１つが受信したデータを破棄し、第２中継処理を終了する。
【００９４】
制御部７０は、データを破棄すべきではないと判定した場合、通信部７４，７５中の１つが受信したデータに含まれている識別情報に基づいて、このデータの送信先を決定する。制御部７０は、決定した送信先がＥＣＵ４０，４１中の１つである場合、通信部７４に通信部７５が受信したデータの送信を指示する。これにより、通信部７４は、通信部７５が受信したデータを、通信バス４２を介して、制御部７０が決定した送信先に送信する。制御部７０は、決定した送信先がＥＣＵ５０，５１中の１つである場合、通信部７５に、通信部７４が受信したデータの送信を指示する。これにより、通信部７５は、通信部７４が受信したデータを、通信バス５２を介して、制御部７０が決定した送信先に送信する。
制御部７０は、通信部７４又は通信部７５にデータの送信を指示した後、第２中継処理を終了する。
【００９５】
制御部７０は、識別情報に基づいて決定した送信先がＥＣＵ３ａ，３ｂ，３ｃ中の１つである場合、通信部７４，７５中の１つが受信したデータの形式を、第２プロトコルの形式から第１プロトコルの形式に変換し、入出力部７１に、形式を変換したデータの送信を指示する。これにより、入出力部７１は、制御部７０が形式を変換したデータを、ＥＣＵ中継機２０の入出力部６１に出力する。形式を変換したデータには、制御部７０が決定した送信先を示す送信先情報が含まれている。
【００９６】
ＥＣＵ中継機２０では、前述したように、入出力部６１にデータが入力された場合、このデータに含まれている送信先情報が示す送信先に対応する送受信部が、入出力部６１に入力されたデータを送信先に送信する。
制御部７０は、入出力部７１に、形式を変更したデータの出力を指示した後、第２中継処理を終了する。
【００９７】
制御部７０は、ＥＣＵ中継機２０の入出力部６１がバス中継機２１の入出力部７１に保存データを出力する都度、保存処理を実行する。保存処理では、制御部７０は、入出力部７１に入力された保存データを記憶部７３に保存し、保存処理を終了する。
【００９８】
図８は、監視処理の手順を示すフローチャートである。バス中継機２１の制御部７０は、監視周期が経過する都度、監視処理を実行する。監視周期は、短周期又は長周期に設定されている。監視周期は、制御部７０によって、短周期又は長周期に変更される。短周期及び長周期夫々は、予め設定されており、一定である。短周期は、長周期よりも短い。短周期は、例えば１秒であり、長周期は、例えば１０秒である。長周期及び短周期夫々は、第１周期及び第２周期に相当する。
【００９９】
また、ＥＣＵ中継機２０の記憶部６３だけではなく、バス中継機２１の記憶部７３にも、カウンタ値情報は記憶されている。
監視処理では、後述するように、入出力部７２に、カウンタ値信号の送信を要求する要求信号の出力を指示し、入出力部７２は、要求信号をＥＣＵ中継機２０の入出力部６２に出力する。その後、入出力部７２には、入出力部６２が出力したカウンタ値信号が入力される。
【０１００】
送受信部６０ａ，６０ｂ，６０ｃ夫々が受信するデータに関して、記憶部７３に記憶されているカウンタ値情報のグリーン値、イエロー値及びレッド値夫々は、カウンタ値信号が入出力部７２に入力される都度、制御部７０によって、入出力部７２に入力されたカウンタ値信号が示すグリーン値、イエロー値及びレッド値に更新される。監視処理は繰り返し実行される。従って、送受信部６０ａ，６０ｂ，６０ｃ夫々が受信するデータに関して、バス中継機２１の記憶部７３に記憶されているカウンタ値情報が示すグリーン値、イエロー値及びレッド値夫々は、監視処理が実行された時点においては、前回の監視処理で入出力部７２に入力されたカウンタ値信号が示すグリーン値、イエロー値及びレッド値である。
【０１０１】
監視処理では、制御部７０は、まず、入出力部７２に、カウンタ値信号の出力を要求する要求信号の出力を指示する（ステップＳ１）。これにより、入出力部７２は、ＥＣＵ中継機２０の入出力部６２に要求信号を出力する。ＥＣＵ中継機２０の入出力部６２は、要求信号が入力された場合、カウンタ値信号を入出力部７２に出力する。前述したように、カウンタ値信号は、送受信部６０ａ，６０ｂ，６０ｃ夫々が受信するデータに関して、記憶部６３に記憶されているカウンタ値情報の内容、即ち、グリーン値、イエロー値及びレッド値を示す。制御部７０は、入出力部７２から、カウンタ値信号が示す内容、即ち、記憶部６３に記憶されているカウンタ値情報が示すグリーン値、イエロー値及びレッド値を取得する。
【０１０２】
制御部７０は、ステップＳ１を実行した後、入出力部７２にカウンタ値信号が入力されたか否かを判定する（ステップＳ２）。制御部７０は、入出力部７２にカウンタ値信号が入力されたと判定した場合（Ｓ２：ＮＯ）、ステップＳ２を再び実行し、入出力部７２にカウンタ値信号が入力されるまで待機する。
【０１０３】
制御部７０は、入出力部７２にカウンタ値信号が入力されたと判定した場合（Ｓ２：ＹＥＳ）、送受信部６０ａ，６０ｂ，６０ｃ夫々が受信するデータに関して、バス中継機２１のカウンタ値情報、即ち、前回の監視処理で入出力部７２に入力されたカウンタ値信号が示すグリーン値、イエロー値及びレッド値を記憶部７３から読み出す（ステップＳ３）。
【０１０４】
次に、制御部７０は、送受信部６０ａ，６０ｂ，６０ｃ中の少なくとも１つが受信するデータに関して、ＥＣＵ中継機２０の記憶部６３に記憶されているカウンタ値情報が示すレッド値が増加したか否かを判定する（ステップＳ４）。具体的には、ステップＳ４では、制御部７０は、送受信部６０ａ，６０ｂ，６０ｃ中の少なくとも１つが受信するデータに関して、今回の監視処理を実行した時点におけるＥＣＵ中継機２０のレッド値が、前回の監視処理を実行した時点におけるＥＣＵ中継機２０のレッド値よりも大きいか否かを判定する。
【０１０５】
制御部７０は、送受信部６０ａ，６０ｂ，６０ｃ中の少なくとも１つが受信するデータに関して、レッド値が増加したと判定した場合（Ｓ４：ＹＥＳ）、レッド値が増加したデータの中継設定の「禁止」への変更を指示する指示信号の出力を、入出力部７２に指示する（ステップＳ５）。これにより、入出力部７２は、レッド値が増加したデータの中継設定の「禁止」への変更を指示する指示信号を、ＥＣＵ中継機２０の入出力部６２に出力する。指示信号が入出力部６２に入力された場合、記憶部６３の設定情報において、レッド値が増加したデータの中継設定が「禁止」に変更される。
例えば、制御部７０が、送受信部６０ｃが受信するデータに関して、レッド値が増加したと判定した場合、送受信部６０ｃが受信するデータの中継設定が「禁止」に変更される。
【０１０６】
制御部７０は、ステップＳ５を実行した後、監視周期を短周期に変更する（ステップＳ６）。
【０１０７】
制御部７０は、送受信部６０ａ，６０ｂ，６０ｃ夫々が受信するデータに関して、レッド値が増加していないと判定した場合（Ｓ４：ＮＯ）、送受信部６０ａ，６０ｂ，６０ｃ夫々が受信するデータの中継設定の「許可」への変更を指示する指示信号の出力を、入出力部７２に指示する（ステップＳ７）。これにより、入出力部７２は、送受信部６０ａ，６０ｂ，６０ｃ夫々が受信するデータの中継設定の「許可」への変更を指示する指示信号を、ＥＣＵ中継機２０の入出力部６２に出力する。指示信号が入出力部６２に入力された場合、記憶部６３の設定情報において、送受信部６０ａ，６０ｂ，６０ｃ夫々が受信するデータの中継設定が「許可」に変更される。
【０１０８】
次に、制御部７０は、送受信部６０ａ，６０ｂ，６０ｃ中の少なくとも１つが受信するデータに関して、ＥＣＵ中継機２０の記憶部６３に記憶されているカウンタ値情報が示すイエロー値が増加したか否かを判定する（ステップＳ８）。即ち、ステップＳ７では、制御部７０は、送受信部６０ａ，６０ｂ，６０ｃ中の少なくとも１つが受信するデータに関して、今回の監視処理を実行した時点におけるＥＣＵ中継機２０のイエロー値が、前回の監視処理を実行した時点におけるＥＣＵ中継機２０のイエロー値よりも大きいか否かを判定する。
【０１０９】
制御部７０は、送受信部６０ａ，６０ｂ，６０ｃ中の少なくとも１つが受信するデータに関して、イエロー値が増加したと判定した場合（Ｓ８：ＹＥＳ）、監視周期を短周期に変更する（ステップＳ９）。制御部７０は、送受信部６０ａ，６０ｂ，６０ｃ夫々が受信するデータに関して、イエロー値が増加していないと判定した場合（Ｓ８：ＮＯ）、監視周期を長周期に変更する（ステップＳ１０）。
【０１１０】
制御部７０は、ステップＳ６，Ｓ９，Ｓ１０中の１つを実行した後、バス中継機２１のカウンタ値情報の内容を、今回の監視処理で入出力部７２に入力されたカウンタ値信号が示す内容に更新する（ステップＳ１１）。これにより、送受信部６０ａ，６０ｂ，６０ｃ夫々が受信するデータに関して、記憶部７３に記憶されているカウンタ値情報のグリーン値、イエロー値及びレッド値夫々は、入出力部７２に入力されたカウンタ値信号が示すグリーン値、イエロー値及びレッド値に更新される。
制御部７０は、ステップＳ１１を実行した後、監視処理を終了する。
【０１１１】
図９は、バス中継機２１の状態遷移の説明図である。周期的に実行される監視処理において、バス中継機２１の状態は種々の状態に遷移する。送受信部６０ａ，６０ｂ，６０ｃ夫々が受信するデータに関して、イエロー値及びレッド値の両方が増加していない場合、バス中継機２１は通常状態である。バス中継機２１が通常状態である場合、バス中継機２１の制御部７０は、長周期で監視処理を実行し、長周期でＥＣＵ中継機２０のカウンタ値情報が示すイエロー値及びレッド値を取得し、監視する。
【０１１２】
バス中継機２１が通常状態である場合において、バス中継機２１の制御部７０が、送受信部６０ａ，６０ｂ，６０ｃ中の少なくとも１つが受信するデータに関して、イエロー値が増加したと判定し、かつ、送受信部６０ａ，６０ｂ，６０ｃ夫々が受信するデータに関して、レッド値が増加していないと判定したと仮定する。このとき、バス中継機２１の状態は、通常状態から監視強化状態に遷移する。バス中継機２１が監視強化状態である場合、バス中継機２１の制御部７０は、監視周期を長周期から短周期に短縮し、短周期で監視処理を実行する。結果、制御部７０は、短周期でＥＣＵ中継機２０のカウンタ値情報が示すイエロー値及びレッド値を取得し、監視する。制御部７０は、短縮部として機能する。
【０１１３】
バス中継機２１が監視強化状態である場合おいて、バス中継機２１の制御部７０は、送受信部６０ａ，６０ｂ，６０ｃ夫々に関して、イエロー値及びレッド値が増加していないと判定したとき、バス中継機２１の状態は、監視強化状態から通常状態に戻る。従って、制御部７０は、監視周期を短周期から長周期に戻す。
【０１１４】
バス中継機２１が監視強化状態である場合おいて、バス中継機２１の制御部７０が、送受信部６０ａ，６０ｂ，６０ｃ中の少なくとも１つに関して、レッド値が増加したと判定したとき、バス中継機２１の状態は、監視強化状態から中継禁止状態に遷移する。バス中継機２１が中継禁止状態である場合、レッド値が増加したデータの中継設定を「禁止」に変更する。これにより、レッド値が増加したデータの中継が禁止される。結果、バス中継機２１の通信部７４，７５夫々は、送受信部６０ａ，６０ｂ，６０ｃが受信したデータの中で、レッド値が増加したデータの送信を停止する。例えば、送受信部６０ａが受信したデータに関するレッド値が増加した場合、送受信部６０ａが受信するデータの中継設定が「禁止」に変更され、通信部７４，７５夫々は、送受信部６０ａが受信したデータの送信を停止する。これにより、ＤｏＳ攻撃に係るデータが通信部７４，７５によって送信される回数が抑制される。
【０１１５】
前述したように、送受信部６０ａ，６０ｂ，６０ｃ夫々が受信したデータの中で、中継設定が「禁止」であるデータについては、Ｎ個のデータを受信する都度、受信したＮ個のデータ中の１つが、保存データとして、ＥＣＵ中継機２０の入出力部６１からバス中継機２１の入出力部７１に出力される。ＥＣＵ中継機２０の制御部７０は、入出力部７１に入力された保存データを記憶部７３に保存する。
【０１１６】
例えば、送受信部６０ａが受信したデータについて、中継設定が「禁止」である場合、送受信部６０ａがＮ個のデータを受信する都度、送受信部６０ａが受信したＮ個のデータ中の１つが、保存データとして、ＥＣＵ中継機２０の入出力部６１からバス中継機２１の入出力部７１に出力される。ＥＣＵ中継機２０の制御部７０は、入出力部７１に入力された保存データを記憶部７３に保存する。記憶部７３に保存されたデータは、例えば、ＤｏＳ攻撃を解析するために用いられる。記憶部７３に保存されたデータは、例えば、図示しない無線器によって、車両の外側に設置されたサーバに無線で送信される。制御部７０は保存部としても機能する。
【０１１７】
バス中継機２１が中継禁止状態である場合も、制御部７０は、短周期で監視処理を実行する。従って、制御部７０は、送受信部６０ａ，６０ｂ，６０ｃ中の少なくとも１つに関して、レッド値が増加したと判定した後も、監視周期でＥＣＵ中継機２０のカウンタ値情報が示すイエロー値及びレッド値を取得して監視し、レッド値が増加したか否かを監視周期で判定する。ここで、制御部７０は、監視周期を短周期に調整している。
【０１１８】
バス中継機２１が中継禁止状態である場合おいて、バス中継機２１の制御部７０は、送受信部６０ａ，６０ｂ，６０ｃ中の少なくとも１つが受信するデータに関して、イエロー値は増加したと判定し、かつ、送受信部６０ａ，６０ｂ，６０ｃ夫々が受信するデータに関して、レッド値が増加していないと判定したと仮定する。このとき、バス中継機２１の状態は、中継禁止状態から監視強化状態に戻る。結果、バス中継機２１の通信部７４，７５夫々は、送受信部６０ａ，６０ｂ，６０ｃが受信したデータの中で、停止していたデータの送信を再開する。
【０１１９】
また、バス中継機２１が中継禁止状態である場合おいて、バス中継機２１の制御部７０は、送受信部６０ａ，６０ｂ，６０ｃ夫々が受信するデータに関して、イエロー値及びレッド値が増加していないと判定した場合、バス中継機２１の状態は、中継禁止状態から通常状態に戻る。結果、バス中継機２１の通信部７４，７５夫々は、送受信部６０ａ，６０ｂ，６０ｃが受信したデータの中で、停止していたデータの送信を再開する。
【０１２０】
バス中継機２１が通常状態である場合において、バス中継機２１の制御部７０が、送受信部６０ａ，６０ｂ，６０ｃ中の少なくとも１つが受信するデータに関して、レッド値が増加したと判定したとき、バス中継機２１の状態は、通常状態から監視強化状態に遷移する。
【０１２１】
以上のように、バス中継機２１の制御部７０は、ＥＣＵ中継機２０の送受信部６０ａ，６０ｂ，６０ｃが行う受信の状態を監視する監視処理を短周期又は長周期で実行する。従って、バス中継機２１は監視機として機能し、中継装置２は受信装置として機能する。
また、制御部７０は、周期的に実行される監視処理において、要求信号の出力を入出力部７２に指示することによって、送受信部６０ａ，６０ｂ，６０ｃ夫々が受信するデータに関して、ＥＣＵ中継機２０のカウンタ値情報が示すグリーン値、イエロー値及びレッド値を取得して監視する。更に、制御部７０は、イエロー値及びレッド値夫々が増加したか否かを判定する。従って、制御部７０は、第１判定部及び第２判定部としても機能する。
【０１２２】
以上のように構成された中継装置２では、バス中継機２１の制御部７０が、送受信部６０ａ，６０ｂ，６０ｃ中の少なくとも１つに関するレッド値が増加したと判定した場合、ＤｏＳ攻撃を検知する。バス中継機２１が通常状態である場合、ＤｏＳ攻撃を受けている可能性が低いとして、監視周期は長周期に調整されるので、ＤｏＳ攻撃の監視に関する制御部７０の処理量は小さい。バス中継機２１が監視強化状態である場合、ＤｏＳ攻撃を受けている可能性が高いとして、監視周期が短周期に調整されるので、ＤｏＳ攻撃が早期に検知される。
監視周期は、監視処理を実行する周期であるため、ＥＣＵ中継機２０の記憶部６３に記憶されているカウンタ値情報が示すグリーン値、イエロー値及びレッド値を取得する周期に相当する。
【０１２３】
また、バス中継機２１の状態が監視強化状態から通常状態に遷移した場合、ＤｏＳ攻撃を受けている可能性が低くなったとして、監視周期が短周期から長周期に戻るので、ＤｏＳ攻撃の監視に関する制御部７０の処理量は更に小さい。
更に、バス中継機２１の状態が中継禁止状態である場合において、ＤｏＳ攻撃が停止したとき、即ち、送受信部６０ａ，６０ｂ，６０ｃ夫々が受信したデータに関するレッド値が増加していないと制御部７０が判定したとき、「禁止」に設定されていた中継設定を「許可」に変更する。バス中継機２１の状態が中継禁止状態である場合における監視周期は短周期であるため、中継設定を「禁止」から「許可」に早期に変更し、中継設定が「禁止」であったデータの処理を早期に再開することができる。
【０１２４】
（実施の形態２）
図１０は、実施の形態２における監視処理の手順を示すフローチャートである。
以下では、実施の形態２について、実施の形態１と異なる点を説明する。後述する構成を除く他の構成については、実施の形態１と共通しているため、実施の形態１と共通する構成部には実施の形態１と同一の参照符号を付してその説明を省略する。
【０１２５】
実施の形態１における通信システム１を実施の形態２における通信システム１と比較した場合、監視処理の手順が異なる。バス中継機２１の制御部７０は、実施の形態２における監視処理を監視周期で実行する。実施の形態２における監視処理のステップＳ２１〜Ｓ２５，Ｓ２７〜Ｓ３１夫々は、実施の形態１における監視処理のステップＳ１〜Ｓ５，Ｓ７〜Ｓ１１と同様である。このため、ステップＳ２１〜Ｓ２５，Ｓ２７〜Ｓ３１の詳細な説明を省略する。
【０１２６】
制御部７０は、ステップＳ２５を実行した後、監視周期を長周期に変更する（ステップＳ２６）。制御部７０は、ステップＳ２６，Ｓ２９，Ｓ３０中の１つを実行した後、ステップＳ３１を実行する。
【０１２７】
実施の形態２では、実施の形態１と同様に、バス中継機２１が中継禁止状態である場合も、制御部７０は、監視周期で監視処理を実行する。従って、制御部７０は、送受信部６０ａ，６０ｂ，６０ｃ中の少なくとも１つに関して、レッド値が増加したと判定した後も、監視周期でＥＣＵ中継機２０のカウンタ値情報が示すイエロー値及びレッド値を取得して監視し、レッド値が増加したか否かを監視周期で判定する。実施の形態２では、バス中継機２１が中継禁止状態である場合、制御部７０は、監視周期を、短周期ではなく、長周期に調整している。従って、ＤｏＳ攻撃を検知した後のＤｏＳ攻撃の監視に関する処理量が小さい。
【０１２８】
実施の形態２における中継装置２は、実施の形態１における中継装置２が奏する効果の中で、バス中継機２１が中継禁止状態である場合に監視周期を短周期に調整することによって得られる効果を除く他の効果を同様に奏する。
【０１２９】
なお、実施の形態１，２におけるバス中継機２１が中継禁止状態である場合において、レッド値が増加したデータを受信する送受信部の数が減少したとき、レッド値が増加しなくなったデータの中継設定を「許可」に変更してもよい。例えば、制御部７０は、送受信部６０ａ，６０ｂ夫々が受信するデータに関するレッド値が増加したと判定した後の監視処理で、送受信部６０ｂが受信するデータに関するレッド値のみが増加したと判定した場合、送受信部６０ａが受信するデータの中継設定を「禁止」から「許可」に変更してもよい。
【０１３０】
また、監視周期として設定される周期の数は２に限定されない。監視処理において、制御部７０は、送受信部６０ａ，６０ｂ，６０ｃ夫々が受信するデータに関するイエロー値が増加したと判定した場合、監視周期を、例えば、現在の周期よりも短い周期に調整してもよい。また、制御部７０は、送受信部６０ａ，６０ｂ，６０ｃ夫々が受信するデータに関するイエロー値が増加していないと判定した場合、監視周期を、現在の周期よりも長い周期に調整してもよい。
【０１３１】
更に、バス中継機２１の制御部７０は、送受信部６０ａ，６０ｂ，６０ｃ夫々が受信するデータに関して、監視処理を各別に実行してもよい。この場合、制御部７０は３つの監視処理を実行する。各監視処理では、制御部７０は、監視処理に対応する送受信部が受信したデータに関するレッド値及びイエロー値夫々が増加したか否かを判定する。また、制御部７０は、監視処理に対応する送受信が受信したデータの中継設定の「許可」又は「禁止」への変更を指示する指示信号の出力を入出力部７２に指示する。更に、制御部７０は、３つの監視処理について、監視周期を各別に短周期又は長周期にする。制御部７０は、バス中継機のカウンタ値情報の内容については、監視周期に対応する送受信部が受信するデータに関するグリーン値、イエロー値及びレッド値のみを更新する。バス中継機２１の状態も、送受信部６０ａ，６０ｂ，６０ｃ夫々が受信するデータに応じて異なる。
また、ＥＣＵ中継機２０が有する送受信部の数は、３に限定されず、１、２又は４以上であってもよい。
【０１３２】
更に、バス中継機２１に接続される通信バスの数は、２に限定されず、１又は３以上であってもよい。更に、１つの通信バスに接続されるＥＣＵの数は、２に限定されず、１又は３以上であってもよい。また、１つの通信バスに接続されているＥＣＵの数は、他の通信バス中の少なくとも１つに接続されているＥＣＵの数と異なっていてもよい。
【０１３３】
また、受信動作の第１トークン値の調整に関して、第１トークン値が受信バイト数未満である場合に、調整部６４は、第１トークン値を、例えば、下限値（＝０）に調整してもよい。同様に、受信動作の第２トークン値の調整に関して、第２トークン値が受信バイト数未満である場合に、調整部６４は、第２トークン値を、例えば、下限値（＝０）に調整してもよい。更に、第１トークン値及び第２トークン値夫々から減少させる値は、受信バイト数に限定されず、送受信部が受信したデータの量に応じたデータ値であればよい。データ値は、送受信部が受信したデータのビット値を１０００で除算することによって算出される値であってもよい。
【０１３４】
開示された実施の形態１，２はすべての点で例示であって、制限的なものではないと考えられるべきである。本発明の範囲は、上述した意味ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１３５】
２  中継装置（受信装置）
２０  ＥＣＵ中継機（受信機）
２１  バス中継機（監視機）
６０ａ，６０ｂ，６０ｃ  送受信部（受信部）
６４  調整部（第１調整部、第１カウンタ、第２調整部、第２カウンタ）
７０  制御部（第１判定部、第２判定部、短縮部、保存部）
７４，７５  通信部（送信部）
Ｐ１  コンピュータプログラム
【図１】
2019021129.tif 000003
【図２】
2019021129.tif 000004
【図３】
2019021129.tif 000005
【図４】
2019021129.tif 000006
【図５】
2019021129.tif 000007
【図６】
2019021129.tif 000008
【図７】
2019021129.tif 000009
【図８】
2019021129.tif 000010
【図９】
2019021129.tif 000011
【図１０】
2019021129.tif 000012