(57)【要約】【課題】不正なフレームを用いた攻撃に対しての、システムの耐性を強化する。【解決手段】通信制御装置は、フレームの識別情報を用いてフレームを受信するかを判定する複数の通信装置の間の通信を制御する。通信制御装置は、複数のポート、記憶部、制御部を備える。複数のポートは、複数の通信装置のうちの少なくとも１つに接続されている。記憶部は、複数のポートの各々について、当該ポートに接続された通信装置が送信処理に使用する識別情報を当該ポートに対応付けて記憶する。制御部は、ポートで受信された受信フレームの第１の識別情報が、当該ポートに対応付けられていない場合、複数の通信装置のいずれでも受信されない第２の識別情報を第１の識別情報の代わりに設定したフレームを、複数のポートに向けて出力する。【選択図】図３
2016100842.tif 000002
【特許請求の範囲】
【請求項１】
フレームの識別情報を用いて前記フレームを受信するかを判定する複数の通信装置の間の通信を制御する通信制御装置であって、
前記複数の通信装置のうちの少なくとも１つに接続された複数のポートと、
前記複数のポートの各々について、当該ポートに接続された通信装置が送信処理に使用する識別情報を当該ポートに対応付けて記憶する記憶部と、
前記ポートで受信された受信フレームの第１の識別情報が、当該ポートに対応付けられていない場合、前記複数の通信装置のいずれでも受信されない第２の識別情報を前記第１の識別情報の代わりに設定したフレームを、前記複数のポートに向けて出力する制御部
を備えることを特徴とする通信制御装置。
【請求項２】
前記制御部は、
前記第１の識別情報の先頭ビットから、前記受信フレームを受信した受信ポートに対応付けられた識別情報と比較し、
前記先頭ビットから比較対象のビットまでが前記受信ポートに対応付けられた識別情報のいずれかの一部と一致する場合、前記第１の識別情報中の比較対象のビットを前記複数のポートに向けて出力し、
前記先頭ビットから比較対象のビットまでが前記受信ポートに対応付けられた識別情報のいずれにも一致しないことを特定すると、前記第１の識別情報のうちの出力済みのビット列を含み、かつ、前記複数の通信装置のいずれでも受信されない識別情報を第２の識別情報に決定する
ことを特徴とする請求項１に記載の通信制御装置。
【請求項３】
前記制御部は、前記受信フレーム中のエラーチェックに使用される情報を、前記受信フレーム中のデータと前記第２の識別情報を含むフレームについてのエラーチェックに用いられる値に変更する
ことを特徴とする請求項２に記載の通信制御装置。
【請求項４】
フレームの識別情報を用いて前記フレームを受信するかを判定する複数の通信装置の間の通信を制御する通信制御装置が、
受信フレーム中の第１の識別情報は、前記受信フレームの受信ポートに接続された通信装置が送信処理に使用する識別情報として、前記受信ポートに対応付けられているかを判定し、
前記第１の識別情報が前記受信ポートに対応付けられていない場合、前記複数の通信装置のいずれでも受信されない第２の識別情報を前記第１の識別情報の代わりに設定したフレームを、前記複数の通信装置に送信する
ことを特徴とする通信制御方法。
【請求項５】
前記通信制御装置は、
前記第１の識別情報の先頭ビットから、前記受信ポートに対応付けられた識別情報と前記第１の識別情報を比較し、
前記先頭ビットから比較対象のビットまでが前記受信ポートに対応付けられた識別情報のいずれかの一部と一致する場合、前記第１の識別情報中の比較対象のビットを前記複数の通信装置に向けて出力し、
前記先頭ビットから比較対象のビットまでが前記受信ポートに対応付けられた識別情報のいずれにも一致しないことを特定すると、前記第１の識別情報のうちの出力済みのビット列を含み、かつ、前記複数の通信装置のいずれでも受信されない識別情報を第２の送信元情報に決定する、
ことを特徴とする請求項４に記載の通信制御方法。
【請求項６】
フレームの識別情報を用いて前記フレームを受信するかを判定する複数の通信装置の間の通信を制御する通信制御装置に、
受信フレーム中の第１の識別情報は、前記受信フレームの受信ポートに接続された通信装置が送信処理に使用する識別情報として前記受信ポートに対応付けられているかを判定し、
前記第１の識別情報が前記受信ポートに対応付けられていない場合、前記複数の通信装置のいずれでも受信されない第２の識別情報を前記第１の識別情報の代わりに設定したフレームを、前記複数の通信装置に送信する
処理を行わせることを特徴とする通信制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置間の通信の制御に関する。
【背景技術】
【０００２】
自動車の車載ネットワークやファクトリーオートメーションなどに使用される装置間で、データや制御情報を送受信するために、ＣＡＮ（Controller Area Network）と呼ばれるネットワーク技術が使用されることがある。ＣＡＮでは、ＥＣＵ（electronic control unit）と呼ばれる装置間の接続にＣＡＮハブが使用されることがある。
【０００３】
図１は、ＣＡＮハブ１０を含むシステムで行われるフレームの送受信の例を示す。図１の例では、ＣＡＮハブ１０にＥＣＵ５（５ａ〜５ｃ）が接続されている。ＣＡＮハブ１０は、あるポートから入力された信号を、ＣＡＮトランシーバ１１（１１ａ〜１１ｃ）と通信調停部１２を介して、全てのポートに出力する。なお、同時に複数のフレームが送信されると、通信調停部１２は、出力対象とするフレームを決定する。ここで、通信に使用されるフレームには、識別情報（ＩＤ）が含まれている。また、各ＥＣＵは、受信するフレームの識別情報を予め記憶している。
【０００４】
例えば、ＥＣＵ５ｂはＩＤ＝７８９のフレームを受信し、ＥＣＵ５ｃはＩＤ＝１２３のフレームを受信するものとする。また、ＥＣＵ５ａは、ＩＤ＝１２３またはＩＤ＝４５６のフレームを送信するように設定されている。例えば、図１に示すように、ＥＣＵ５ａがＩＤ＝１２３を指定したフレームＦ１を送信したとする。すると、フレームＦ１はＣＡＮハブ１０の全てのポートから出力されるので、ＥＣＵ５ａ〜５ｃの全てに向けてフレームＦ１が出力される。ＥＣＵ５ｂは、受信対象のフレームのＩＤは７８９であるので、フレームＦ１を廃棄する。一方、ＥＣＵ５ｃは、ＩＤが１２３であるので、フレームＦ１を受信し、適宜、処理を行う。
【０００５】
図２は、送信処理に使用するＩＤとして設定されていないＩＤを用いた送信処理が行われた場合の例を示す。例えば、ＥＣＵ５ａが外部からの攻撃を受けたことにより、送信処理に使用するＩＤとして設定されていないＩＤ＝７８９を設定したフレームＦ２を送信したとする。フレームＦ２も全てのポートから出力されるので、フレームＦ２がＥＣＵ５ａ〜５ｃに向けて送信される。すると、ＩＤ＝７８９のフレームを受信するように設定されたＥＣＵ５ｂは、フレームＦ２を受信するが、ＥＣＵ５ｃはフレームＦ２を破棄する。従って、ＥＣＵ５ａが送信処理に使用するＩＤが変更されたことにより、ＥＣＵ５ｂは、ＥＣＵ５ｂが本来受信しないＥＣＵ５ａからのフレームをフレームＦ２として受信し、フレームＦ２の処理を行うことになる。このように、本来はＥＣＵ５ｂで処理されないデータを含むフレームＦ２がＥＣＵ５ｂで処理されることにより、システムへの問題が発生する恐れがある。
【０００６】
このような不正なフレームをＥＣＵ５が受信することを避けるための技術も考案されている。例えば、ＣＡＮハブ１０の各ポートと、接続されているＥＣＵ５が送信に使用するＩＤを対応付け、対応付けられていないＩＤを含むフレームが入力されたポートと通信調停部１２の間の結線をスイッチで切断することが提案されている。また、関連する技術として、同一送信元による所定時間以上連続したデータ送信を検出すると、データ送信の停止処理を行う車載通信システムも提案されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００４−３５６８８９号公報
【非特許文献】
【０００８】
【非特許文献１】関口大樹、他３名、「不正ＣＡＮデータ送信を抑制するホワイトリスト・ハブ」、暗号と情報セキュリティシンポジウムＳＣＩＳ２０１４予稿集、電子情報通信学会、２０１４年１月、ＳＣＩＳ２０１４−２−Ｃ１−１
【発明の概要】
【発明が解決しようとする課題】
【０００９】
背景技術で述べた方法を用いても、不正なフレームを用いた攻撃からシステムを保護することは困難である。例えば、不正なフレームの入力に使用される結線を切断しても、入力されたフレームが不正であるかを判定するために読み込まれたビット列がフレームの断片としてＣＡＮハブに入力され、ＣＡＮハブの各ポートから出力される恐れがある。フレームの断片が各ポートに出力されると、各ポートに接続されているＥＣＵで１つ以上のエラーが検出される。すると、各ＥＣＵからエラーフレームが出力されるために、システムが輻輳する恐れがある。また、一定の期間以上連続したデータ送信の検出により、データ送信を停止されるシステムでは、不正なフレームが連続的に送信されない場合、不正なフレームの転送を防止できない。
【００１０】
本発明は、不正なフレームを用いた攻撃に対しての、システムの耐性を強化することを目的とする。
【課題を解決するための手段】
【００１１】
ある態様にかかる通信制御装置は、フレームの識別情報を用いて前記フレームを受信するかを判定する複数の通信装置の間の通信を制御する。通信制御装置は、複数のポート、記憶部、制御部を備える。複数のポートは、前記複数の通信装置のうちの少なくとも１つに接続されている。記憶部は、前記複数のポートの各々について、当該ポートに接続された通信装置が送信処理に使用する識別情報を当該ポートに対応付けて記憶する。制御部は、前記ポートで受信された受信フレームの第１の識別情報が、当該ポートに対応付けられていない場合、前記複数の通信装置のいずれでも受信されない第２の識別情報を前記第１の識別情報の代わりに設定したフレームを、前記複数のポートに向けて出力する。
【発明の効果】
【００１２】
不正なフレームを用いた攻撃に対する、システムの耐性が強化される。
【図面の簡単な説明】
【００１３】
【図１】ＣＡＮハブを含むシステムで行われるフレームの送受信の例を示す図である。
【図２】送信処理に使用するＩＤとして設定されていないＩＤを用いた送信処理が行われた場合の例を示す図である。
【図３】実施形態にかかる通信制御方法の例を示す図である。
【図４】第１の実施形態にかかる通信制御装置の構成の例を示す図である。
【図５】通信制御装置のハードウェア構成の例を示す図である。
【図６】送受信されるフレームのフォーマットの例を示す図である。
【図７】比較処理の例を説明する図である。
【図８】未使用ＩＤリストの例を示す図である。
【図９】制御部で行われる処理の例を説明するフローチャートである。
【図１０】第２の実施形態にかかる通信制御装置の構成の例を示す図である。
【図１１】制御部で行われる処理の例を説明するフローチャートである。
【図１２】第３の実施形態にかかる通信制御装置の構成の例を示す図である。
【図１３】使用ＩＤリストの例を示す図である。
【図１４】制御部で行われる処理の例を説明するフローチャートである。
【発明を実施するための形態】
【００１４】
図３は、実施形態にかかる通信制御方法の例を示す図である。通信制御装置２０は、予め、ポートごとに、そのポートに接続されているＥＣＵ５が送信処理に使用する識別情報を記憶している。さらに、通信制御装置２０は、いずれのポートに接続されたＥＣＵ５も送信しない識別情報を特定するための情報を保持している。なお、いずれのポートに接続されたＥＣＵ５も送信しない識別情報を特定する情報は、例えば、いずれのポートに接続されたＥＣＵ５も送信しない識別情報のリストを含む任意の形式の情報とすることができる。
【００１５】
通信制御装置２０中の制御部３０は、ＣＡＮトランシーバ２１から入力されたフレームの識別情報（第１の識別情報）が、フレームの受信ポートに対応付けられた識別情報に一致するかを判定する。なお、１つのポートに対応付けられた識別情報が複数の場合、制御部３０は、受信ポートに対応付けられたいずれかの識別情報が、第１の識別情報と一致するかを判定する。
【００１６】
例えば、図３の例では、ＥＣＵ５ａは、正常に動作している場合は、送信処理にＩＤ＝１２３とＩＤ＝４５６を使用するものとする。しかし、図２のケースと同様に、ＥＣＵ５ａが外部からの攻撃を受けて、送信処理に使用するＩＤとして設定されていないＩＤ＝７８９を設定したフレームＦ２を送信したとする。すると、手順Ａ１に示すように、制御部３０ａは、ＣＡＮトランシーバ２１ａを介して、ＥＣＵ５ａから送信されたフレームＦ２を取得する。従って、図３のケースでは、第１の識別情報は、フレームＦ２を識別する情報（ＩＤ＝７８９）である。さらに、制御部３０ａは、第１の識別情報がフレームＦ２の受信ポートに対応付けられた識別情報のいずれかと一致するかを判定する。図３のケースでは、制御部３０ａは、第１の識別情報がＩＤ＝７８９であるのに対し、フレームＦ２の受信ポートにはＩＤ＝７８９が対応付けられていないことを特定する。すると制御部３０ａは、第１の識別情報の代わりに、いずれのＥＣＵ５でも受信の対象とならない識別情報（第２の識別情報）を設定したフレーム（フレームＦ３）を通信調停部２２に出力する（手順Ａ２）。ここで、フレームＦ３の識別情報はＩＤ＝７６５であるとする。
【００１７】
フレームＦ３（ＩＤ＝７６５）が通信調停部２２に入力されると、通信調停部２２は、フレームＦ３を各ポートに出力する（手順Ａ３）。このため、フレームＦ３は、ＥＣＵ５ａ〜５ｃに送信される。ＥＣＵ５ｂは、通信制御装置２０から入力されたフレームＦ３では、ＩＤ＝７６５であるため、フレームＦ３を受信対象ではないと判定して廃棄する。同様に、ＥＣＵ５ｃも、フレームＦ３を受信対象ではないと判定して廃棄する。
【００１８】
従って、実施形態にかかる方法によると、ＥＣＵ５への不正なフレームの転送を防ぐことができる。また、不正なフレームが連続的に送信されなくても、不正なフレームの転送が防止される。さらに、実施形態にかかる方法によると、フレームの断片がネットワーク中で送受信されることにより、エラーフレームの輻輳が発生する恐れも無い。このため、実施形態にかかる方法を用いて、不正なフレームを用いた攻撃からシステムを保護することができる。換言すると、通信制御装置２０を用いたシステムでは、攻撃に対する耐性が強化される。
【００１９】
＜第１の実施形態＞
図４は、第１の実施形態にかかる通信制御装置２０の構成の例を示す図である。通信制御装置２０は、ポート（Ｐ１〜Ｐ３）、ＣＡＮトランシーバ２１（２１ａ〜２１ｃ）、通信調停部２２、制御部３０（３０ａ〜３０ｃ）、記憶部４０（４０ａ〜４０ｃ）を備える。制御部３０は、変換部３１と比較部３２を有する。記憶部４０は、ホワイトリスト４１と未使用ＩＤリスト４２を記憶する。
【００２０】
ホワイトリスト４１は、通信制御装置２０に設けられた各ポートに接続されたＥＣＵ５がフレームの送信に使用する識別情報を、そのポートに対応付けている。なお、図４に示すように、ホワイトリスト４１がポートごとに生成されている場合は、各ホワイトリスト４１はそのホワイトリスト４１に対応付けられたポートに接続されたＥＣＵ５がフレームの送信に使用する識別情報を格納する。例えば、ホワイトリスト４１ａは、ポートＰ１に対応付けられているので、ポートＰ１に接続されたＥＣＵ５ａが送信処理に使用する識別情報を格納する。同様に、ホワイトリスト４１ｂは、ポートＰ２から入力されたフレームの処理に使用されるので、ポートＰ２に接続されているＥＣＵ５ｂが送信処理に使用する識別情報を格納する。また、ホワイトリスト４１ｃは、ポートＰ３に対応付けられているので、ポートＰ３に接続されたＥＣＵ５ｃが送信処理に使用する識別情報を格納する。未使用ＩＤリスト４２ａ〜４２ｃは、通信制御装置２０に接続されたいずれのＥＣＵ５も受信対象としない識別情報を格納する。
【００２１】
ＣＡＮトランシーバ２１は、ＥＣＵ５との間でフレームを送受信するためのバス送信電圧の発生、バス送信電圧の調整などの処理を行う。ＣＡＮトランシーバ２１は、ＥＣＵ５から入力されたフレームを、そのＣＡＮトランシーバ２１に接続された制御部３０中の比較部３２に出力する。例えば、図４の例では、ＣＡＮトランシーバ２１ａは、ＥＣＵ５ａから受信したフレームを比較部３２ａに出力する。
【００２２】
比較部３２は、ＣＡＮトランシーバ２１から入力されたフレームの送信元の情報を、ホワイトリスト４１に格納されている識別情報と比較する。比較部３２は、入力されたフレームの送信元が、フレームの受信ポートに対応付けてホワイトリスト４１に格納されている識別情報のいずれかに一致すると、入力されたフレームを通信調停部２２に出力する。換言すると、比較部３２は、受信ポートに対応付けてホワイトリスト４１に登録されている識別情報が送信元となっている受信フレームを、正常なＥＣＵ５から送信されたフレームとして扱う。一方、入力されたフレームの送信元が、フレームの受信ポートに対応付けられている識別情報のいずれとも一致しない場合、比較部３２は、不正なフレームが入力されたことを変換部３１に通知する。なお、比較部３２は、不正なフレームの入力の通知と共に、受信フレームのＩＤのうちで通信調停部２２に出力済みのビット列も変換部３１に通知する。
【００２３】
変換部３１は、比較部３２から不正なフレームが入力されたことが通知されると、入力されたフレームの識別情報を、いずれのＥＣＵ５でも受信されない識別情報に変更する。変換部３１は、識別情報を変更したフレームを通信調停部２２に出力するための処理を行う。通信調停部２２は、入力されたフレームを、全てのポートに向けて出力する。なお、複数のフレームが同時に通信調停部２２に入力された場合、通信調停部２２は、同時に入力されたフレームのうちの１つを転送対象のフレームとして選択する。通信調停部２２は、転送対象として選択したフレームを、全てのポートに出力する。
【００２４】
なお、図４の例は、ＥＣＵ５に接続されているポートが３つの場合を例として示しているが、通信制御装置２０がＥＣＵ５との通信に使用するポートの数は任意である。図４では、ポートごとに制御部３０と記憶部４０が設けられている場合の例を示しているが、制御部３０ａ〜３０ｃで行われる処理が１つの制御部３０で行われても良く、また、記憶部４０ａ〜４０ｃに記憶されている情報が１つの記憶部４０に格納されても良い。
【００２５】
図５は、通信制御装置２０のハードウェア構成の例である。図５も、ポート数が３の場合の例を示しているが、通信制御装置２０のポート数は、実装に応じて任意に決定されうる。通信制御装置２０は、選択回路１０１、処理回路１０２（１０２ａ〜１０２ｃ）、メモリ１０３（１０３ａ〜１０３ｃ）、ＣＡＮトランシーバ２１（２１ａ〜２１ｃ）、ポート（Ｐ１〜Ｐ３）を備える。選択回路１０１は、選択回路１０１に同時に入力されたフレームから、通信制御装置２０が送信するフレームを選択することが可能な任意の回路であり、通信調停部２２として動作する。各処理回路１０２は、適宜、メモリ１０３に格納されている情報を用いて、制御部３０として動作する。メモリ１０３は、記憶部４０として動作する。通信制御装置２０は、例えば、ジャンクションボックス、ハブ、リピータハブなどとして実現されうる。
【００２６】
図６は、送受信されるフレームのフォーマットの例を示す。図６のＦ１１は、一般仕様のフレームのフォーマット例であり、Ｆ１２は拡張仕様で使用されるフレームのフォーマット例である。
【００２７】
一般仕様のフレームは、ＳＯＦ（Start of Frame）、調停（arbitration）フィールド、コントロールフィールド、データフィールド、ＣＲＣ（Cyclic Redundancy Check）フィールド、ＡＣＫフィールド、ＥＯＦ（End of Frame）を含む。調停フィールドには、ＩＤとＲＴＲ（Remote Transmission Request）が含まれる。ここで、ＩＤは、送信元のＥＣＵ５が使用する識別情報である。コントロールフィールドには、ＩＤＥ（Identifier Extension）、予約ビット、ＤＬＣ（Data Length Code）が含まれる。ＣＲＣフィールドは、ＣＲＣシーケンスとＣＲＣデリミタを含む。ＡＣＫフィールドは、ＡＣＫスロットとＡＣＫデリミタを含む。なお、各フィールドに含まれる情報要素のビット長は、Ｆ１１の一番下の行に記載したとおりである。例えば、ＩＤの長さは１１ビットであり、データフィールドの長さは０〜６４ビットの可変長である。
【００２８】
拡張仕様で使用されるフレーム（Ｆ１２）も、ＳＯＦ、調停フィールド、コントロールフィールド、データフィールド、ＣＲＣフィールド、ＡＣＫフィールド、ＥＯＦを含む。拡張仕様の調停フィールドは、ＩＤベース、ＳＲＲ（Substitute Remote Request Bit）、ＩＤＥ、ＩＤ拡張、ＲＴＲを含む。拡張仕様では、ＩＤベースとして格納されたビット列の次に、拡張ＩＤとして格納されたビット列をつなげて得られるビット列により、送信元の識別情報（ＩＤ）を表わす。コントロールフィールドからＥＯＦまでは、拡張仕様のフォーマットでも、一般仕様のフォーマットと同様である。また、各フィールドに含まれる情報要素のビット長は、Ｆ１２の一番下の行に記載したとおりである。このため、拡張フォーマットでは、送信元の識別情報として、ＩＤベースの１１ビットとＩＤ拡張の１８ビットを合わせた２９ビットのビット列が使用される。
【００２９】
以下、図６のＦ１１に示すフォーマットを用いた不正なフレームがＥＣＵ５ａから通信制御装置２０に送信される場合を例として、第１の実施形態で行われる処理の例を説明する。なお、通信に使用されるフレームが拡張仕様の場合でも、同様に処理が行われる。
【００３０】
ＥＣＵ５ａが通信制御装置２０に送信したフレームは、ポートＰ１とＣＡＮトランシーバ２１ａを介して、比較部３２ａに出力される。比較部３２ａは、入力されたフレームのＳＯＦを通信調停部２２に出力する。次に、比較部３２ａは、フレームのＩＤを、ホワイトリスト４１ａを用いて、受信ポートＰ１に対応付けられた識別情報と比較する。
【００３１】
ここで、制御部３０は、通信制御装置２０におけるフレームの受信から、受信フレームの転送までの遅延時間を短くするために、受信フレームの通信調停部２２への出力と並行して、ＩＤとホワイトリスト４１の比較を行うものとする。換言すると、比較部３２は、ＥＣＵ５ａから送信されてきたフレーム中のＩＤの全体を取得する前に、入力されたビットごとに通信調停部２２に出力しつつ、不正なフレームであるかの判定を行うことになる。
【００３２】
図７は、比較部３２での比較処理の例を説明する図である。図７の例では、ホワイトリスト４１ａ中に１０１０００１０１１０という識別情報が記録されているが、比較部３２に入力されたフレームのＩＤは１０１１０１１００１０であるものとする。なお、図７の例では、分かりやすくするために、ホワイトリスト４１ａに登録された識別情報が１つの場合を図示しているが、個々のホワイトリスト４１に格納される識別情報の数は任意である。また、以下の説明では、説明の便宜上、通信制御装置２０がＥＣＵ５から受信したフレームを「第１のフレーム」と記載することがある。さらに、第１のフレームが不正なフレームであると判定された場合に、ＩＤを置き換えたフレームのことを「第２のフレーム」と記載することがある。
【００３３】
ステップＳ１は、通信制御装置２０が受信したフレーム（第１のフレーム）中のＩＤ（第１の識別情報）の１ビット目と、ホワイトリスト４１ａ中の識別情報の１ビット目の比較処理の例である。ステップＳ１の２つのビット列のうち、下に記載しているビット列は、第１のフレーム中のＩＤである。なお、図７では、比較処理に使用されているビットの第１の識別情報中での位置を分かりやすくするために、便宜上、第１の識別情報の全体を示している。比較部３２ａは、第１のフレームのＩＤのうちの１ビット目を取得すると、比較処理を行う。比較部３２ａは、第１の識別情報の１ビット目の値が１であり、ホワイトリスト４１ａに１から始まる識別情報が含まれているので、第１のフレームは不正なフレームではない可能性があると判定する。そこで、比較部３２ａは、第１の識別情報の１ビット目を通信調停部２２に出力する。
【００３４】
ステップＳ２において、比較部３２ａは、ホワイトリスト４１ａ中の識別情報のうちで、１ビット目が第１の識別情報と一致した識別情報を特定する。さらに、比較部３２ａは、特定した識別情報の２ビット目の値を、第１の識別情報の２ビット目の値と比較する。換言すると、比較部３２は、第１の識別情報の先頭から２ビット目までのビット列がホワイトリスト４１ａ中の識別情報のいずれかの先頭から２ビット目までと一致するかを判定する。ステップＳ２に示す例では、ホワイトリスト４１ａ中の１０１０００１０１１０という識別情報が特定されるので、２ビット目の値は０であるのに対し、第１の識別情報の２ビット目も０である。このため、第１の識別情報の１〜２ビット目とホワイトリスト４１との比較結果に基づいて、比較部３２ａは、第１のフレームは不正なフレームではない可能性があると判定する。そこで、比較部３２ａは、第１の識別情報の２ビット目を通信調停部２２に出力する。
【００３５】
その後も、比較部３２ａは、第１の識別情報の値がホワイトリスト４１ａに記録されている識別情報と一致しないと判定するまで、ステップＳ２と同様の処理を繰り返す。図７の例では、比較部３２ａは、ステップＳ３において、ステップＳ２と同様の処理を行う。その結果、第１の識別情報の１〜３ビットはホワイトリスト４１ａ中の識別情報と一致しているので、比較部３２ａは、第１のフレームは不正なフレームではない可能性があると判定する。また、通信調停部２２には、第１の識別情報の３ビット目が出力される。
【００３６】
ステップＳ４において、比較部３２ａは、ステップＳ２、Ｓ３と同様の処理により、ホワイトリスト４１ａ中の識別情報の４ビット目と、第１の識別情報の４ビット目の値を比較する。ステップＳ４では、第１の識別情報の４ビット目が１であるのに対し、ホワイトリスト４１ａ中で比較処理に用いられる識別情報の４ビット目の値は０である。第１の識別情報の先頭から１〜４ビットと一致するビット列を先頭に含む識別情報がホワイトリスト４１ａに記憶されていないため、比較部３２ａは、第１のフレームは不正なフレームであると判定する。比較部３２ａは、不正なフレームを検出したことを変換部３１ａに通知する。比較部３２ａは、第１の識別情報の４ビット目の値は、通信調停部２２に出力しない。なお、この時点において、通信調停部２２には、第１の識別情報の先頭から３ビットまでの値が出力されている。そこで、比較部３２ａは、第１の識別情報の１〜３ビットまでの値を、変換部３１ａに通知する。
【００３７】
変換部３１ａは、いずれのＥＣＵ５でも受信されない識別情報であり、かつ、すでに通信調停部２２に出力されたビット列が先頭に含まれている識別情報を、第２の識別情報として、選択する。このとき、変換部３１ａは、適宜、未使用ＩＤリスト４２ａを使用する。さらに、変換部３１ａは、不正な第１のフレームの送信元を表わす第１の識別情報の代替として、選択した第２の識別情報を通信調停部２２に出力するための処理を行う。
【００３８】
図８は、未使用ＩＤリスト４２ａの例を示す。図７の例では、比較部３２ａは、第１の識別情報の先頭から３ビットを通信調停部２２に出力した後で、入力されたフレームが不正なフレームであることを検出している。このため、通信調停部２２には、ビット列１０１までがＩＤとして出力されている。そこで、変換部３１ａは、第１の識別情報の代わりに通信調停部２２に出力する第２の識別情報として、先頭から３ビットが１０１である識別情報を、未使用ＩＤリスト４２ａに格納されている識別情報から選択する。図８の例では、変換部３１ａは、未使用ＩＤリスト４２ａから、１０１１０１１１００１という識別情報を選択したとする。
【００３９】
変換部３１ａは、第２の識別情報として選択した識別情報の先頭から、すでに通信調停部２２に出力済みのビット数を削除して得られるビット列を、ＩＤの続きとして通信調停部２２に出力する。図７の例では、不正なフレームの検出の際に、第１の識別情報のうちの先頭から３ビット（１０１）が通信調停部２２に出力されている。このため、変換部３１ａは、未使用ＩＤリスト４２ａから選択した第２の識別情報の４ビット目以降（１０１１１００１）を通信調停部２２に出力する。このため、通信調停部２２に入力されるＩＤは「１０１１０１１１００１」となる。換言すると、変換部３１ａは、第１のフレームのＩＤ（第１の識別情報）の一部を変更して、識別情報を第２の識別情報に設定することにより、不正に送信された第１のフレームを、いずれのＥＣＵ５でも受信されない第２のフレームに変換しているといえる。
【００４０】
変換部３１ａでのＩＤの変更のための処理が終わると、比較部３２ａは、第１のフレーム中のＩＤよりも後のビット列を通信調停部２２に出力する。従って、通信調停部２２には、変更されたＩＤに続いて、第１のフレーム中のＲＴＲ、コントロールフィールド、データフィールド、ＣＲＣフィールド、ＡＣＫフィールド、ＥＯＦが入力される。この処理により、通信調停部２２には、ＩＤが第２の識別情報に変換された後の第２のフレームが入力されることになる。
【００４１】
通信調停部２２は、入力された第２のフレームを各ポートに出力する。ここで、通信調停部２２は、各ＣＡＮトランシーバ２１（２１ａ〜２１ｃ）に接続されており（図４）、制御部３０を介さずに各ＣＡＮトランシーバ２１に、第２のフレームを出力するものとする。第２のフレームは、ＣＡＮトランシーバ２１ａ〜２１ｃを介して、通信制御装置２０に接続されている全てのＥＣＵ５に送信される。しかし、第２のフレームのＩＤは、いずれのＥＣＵ５での受信対象にもならない値であるので、第２のフレームはいずれのＥＣＵ５でも受信されず、処理対象とならない。このため、不正なＩＤを設定したフレームを用いた攻撃から、システムが防御される。
【００４２】
図９は、制御部３０で行われる処理の例を説明するフローチャートである。なお、図９の例では、定数Ｘと変数ｘが使用される。変数ｘは、入力されたフレームのＩＤのうちで未使用ＩＤリスト４２中の識別情報と比較されたビット数の計数に使用される。定数Ｘは、通信に使用されているフレーム中で、ＩＤの記述に使用されているビットの総数である。また、図９は一例であり、例えば、ステップＳ１３が最初に行われるように変更されるなど、実装に応じて処理が変更され得る。
【００４３】
比較部３２は、フレームの入力側となるＣＡＮトランシーバ２１との間の結線からのデータ入力を監視し、フレームの通過が開始したかを判定する（ステップＳ１１、Ｓ１２）。ここで、比較部３２は、受信フレームのＳＯＦを用いて、フレームの通過が開始したかを判定する。例えば、比較部３２は、フレームのＳＯＦが入力されるとフレームの通過が開始したと判定しても良く、また、比較部３２がＳＯＦを通信調停部２２に出力するとフレームの通過が開始したと判定しても良い。比較部３２は、フレームの通過が開始すると、変数ｘを１に設定する（ステップＳ１２でＹｅｓ、ステップＳ１３）。比較部３２は、ＩＤの先頭からｘビット目までのビット列が、ホワイトリスト４１中に含まれているいずれかの識別情報と一致するかを判定する（ステップＳ１４）。比較部３２で行われる判定方法は、図７を参照しながら説明したとおりである。ＩＤの先頭からｘビット目までのビット列が、ホワイトリスト４１中に含まれているいずれかの識別情報と一致する場合、比較部３２は、ＩＤのｘビット目を通信調停部２２に出力する（ステップＳ１４でＹｅｓ、ステップＳ１５）。比較部３２は、変数ｘの値が定数Ｘ以上であるかを判定する（ステップＳ１６）。変数ｘの値が定数Ｘ未満である場合、比較部３２は、変数ｘを１つインクリメントして、ステップＳ１４に戻る（ステップＳ１６でＮｏ、ステップＳ１７）。
【００４４】
一方、ＩＤの先頭からｘビット目までのビット列が、ホワイトリスト４１中に含まれているいずれの識別情報とも一致しない場合、比較部３２は、入力されたフレームが不正なフレームであることを変換部３１に通知する（ステップＳ１４でＮｏ）。また、比較部３２は、不正なフレームのＩＤ（第１の識別情報）のうち、通信調停部２２に出力済みの（ｘ−１）ビットのビット列を変換部３１に通知する。変換部３１は、未使用ＩＤリスト４２から、ＩＤの先頭の（ｘ―１）ビット分が第１の識別情報の先頭から（ｘ−１）ビットと同じＩＤ（第２の識別情報）を取得する（ステップＳ１８）。ステップＳ１８で行われる処理の例は、図８を参照しながら説明したとおりである。さらに、変換部３１は、取得したＩＤのうちのｘビット目以降を通信調停部２２に出力する（ステップＳ１９）。このため、通信調停部２２には、ＩＤとして、変換部３１が選択したＩＤが入力される。変換部３１から通信調停部２２への入力処理が終わると、比較部３２は、入力されたフレームのうちでＩＤより後のビット列を通信調停部２２に出力する（ステップＳ２０）。従って、通信調停部２２には、ステップＳ１９とＳ２０の処理により、不正な第１のフレーム中の第１の識別情報をいずれのＥＣＵ５でも受信されない第２の識別情報に置き換えた第２のフレームが入力されることになる。また、制御部３０は、これらの処理により、第１のフレームから第２のフレームを生成しているといえる。
【００４５】
一方、ステップＳ１６において、変数ｘの値が定数Ｘ以上である場合、入力されたフレームのＩＤはホワイトリスト４１中の識別情報と一致するので、比較部３２は、入力されたフレームは不正フレームではないと判定する（ステップＳ１６でＹｅｓ）。比較部３２は、さらに、入力されたフレームを末尾まで通信調停部２２に出力する（ステップＳ２１）。この場合は、通信調停部２２には受信フレームが出力されるため、通信調停部２２は、受信フレームを各ポートに出力する。
【００４６】
以上説明したように、第１の実施形態を用いると、不正なフレームがＥＣＵ５で受信されることを防ぐことができる。さらに、通信調停部２２からは、第１の識別情報の代わりに第２の識別情報を含むフレームが送信されるため、フレームの断片がＥＣＵ５に送信されたことによるエラーメッセージの輻輳も防止することができる。
【００４７】
このような処理は、通信制御装置２０が各ポートから入力されたフレームをリアルタイムに処理するシステムにおいて、不正なＩＤを用いた攻撃を防御する場合に特に効果的である。すなわち、フレームをリアルタイムに処理するシステムでは、遅延をなるべく小さくするために、通信制御装置２０は、ＥＣＵ５から受信したフレームをバッファリングしない。従って、比較部３２は、ＩＤの全体を取得する前に、判定処理を行い、受信フレームが不正なフレームではない可能性がある場合は、入力されたビットの値を、通信調停部２２を介して、各ポートに送信する。このため、ＩＤの値がホワイトリスト４１に無く、入力されたフレームが不正なフレームであることが特定された段階では、既に、フレームのＩＤの一部が通信調停部２２を介して各ポートに出力されている。このため、変換部３１は、いずれのＥＣＵ５でも受信されない識別情報のうち、通信調停部２２に出力済みのビット列を先頭に含むＩＤを選択する。また、変換部３１は、選択した識別情報のうちで、通信調停部２２に出力済みのビット列の続きの部分を通信調停部２２に出力することにより、不正なフレームを、いずれのＥＣＵ５でも受信されないフレームに変換している。従って、第１の実施形態により、システムでのフレームのリアルタイム性を重視した処理を妨げずに、不正なフレームによる攻撃からシステムを守ることができる。
【００４８】
＜第２の実施形態＞
第２の実施形態では、ＩＤの変更に伴って、通信調停部２２に出力するＣＲＣシーケンスの値を毎回計算する場合の例を説明する。第２の実施形態を用いると、ＥＣＵ５が受信対象として処理しないフレームについてもＣＲＣを用いたチェックを行う場合でも、不正なフレームの代わりに送信したフレームに起因したＣＲＣエラーがＥＣＵ５で検出されることを防止できる。
【００４９】
図１０は、第２の実施形態にかかる通信制御装置６０の構成の例を示す。通信制御装置６０は、ポートＰ１〜Ｐ３、ＣＡＮトランシーバ２１（２１ａ〜２１ｃ）、通信調停部２２、制御部５０（５０ａ〜５０ｃ）、記憶部４０（４０ａ〜４０ｃ）を備える。制御部５０は、変換部３１、比較部３２、および、ＣＲＣ計算部５１を有する。ＣＡＮトランシーバ２１、通信調停部２２、変換部３１の動作は、第１の実施形態と同様である。また、記憶部４０に記憶されている情報も第１の実施形態と同様である。なお、制御部５０は処理回路１０２（図５）によって実現されるものとする。
【００５０】
第２の実施形態では、比較部３２は、フレームが入力されると、ＣＲＣ計算部５１にＣＲＣを計算するための処理の開始を要求すると共に、通信調停部２２に出力する情報を、ＣＲＣ計算部５１にも出力する。ＣＲＣ計算部５１は、比較部３２から入力された各ビットの値を記憶する。
【００５１】
第１のフレームが不正なフレームである場合、入力された第１のフレームが不正なフレームであることを検出した比較部３２は、第１の実施形態と同様に、不正なフレームの検出を変換部３１に通知する。第２の実施形態では、変換部３１も、通信調停部２２に出力する情報をＣＲＣ計算部５１にも出力する。ＣＲＣ計算部５１は、比較部３２から入力された情報と変換部３１から入力された情報を用いて、不正な第１のフレームに設定されている第１の識別情報の代わりに出力される第２の識別情報を取得する。
【００５２】
比較部３２は、変換部３１による第２の識別情報の入力が終わると、第１のフレーム中のデータフィールドの情報を、通信調停部２２とＣＲＣ計算部５１に出力する。ＣＲＣ計算部５１は、第２の識別情報と、第１のフレームに含まれているデータフィールドの値などを用いて、ＣＲＣシーケンスの値を計算する。
【００５３】
比較部３２は、データフィールドの入力が終わると、ＣＲＣ計算部５１にＣＲＣシーケンスの計算結果の出力を要求する。ＣＲＣ計算部５１は、計算した値をＣＲＣシーケンスとして通信調停部２２に出力する。ＣＲＣシーケンスの出力が終わると、比較部３２は、第１のフレーム中のＣＲＣデリミタ以降の値を通信調停部２２に出力する。
【００５４】
これらの処理により、通信調停部２２には、ＥＣＵ５から送信されてきた不正な第１のフレームの代わりに、第１のフレーム中のＩＤとＣＲＣが変更された第２のフレームが入力される。通信調停部２２が第２のフレームを各ポートから出力する処理は、第１の実施形態と同様である。
【００５５】
ここで、第２のフレームのＩＤは、第１の実施形態と同様に、いずれのＥＣＵ５でも受信されない値に設定されている。さらに、通信調停部２２に入力されるＣＲＣシーケンスの値は、ＣＲＣ計算部５１によって、第２のフレームのＩＤとデータフィールドの値を用いて計算された値になっている。このため、第２のフレームについてのＣＲＣチェックが行われたとしても、ＣＲＣエラーは発生しない。
【００５６】
図１１は、制御部５０で行われる処理の例を説明するフローチャートである。なお、図１１は一例であり、例えば、ステップＳ３３とＳ３４の処理の順序を互いに変更するなどの変更が実装に応じて行われ得る。
【００５７】
比較部３２は、フレームの入力側となるＣＡＮトランシーバ２１との間の結線からのデータ入力を監視し、フレームの通過が開始したかを判定する（ステップＳ３１、Ｓ３２）。フレームの通過が開始したかの判定は図９を参照しながら説明した処理と同様である。比較部３２は、フレームの通過が開始すると、ＣＲＣ算出のための処理を開始するために、通信調停部２２に出力されるデータがＣＲＣ計算部５１にも出力されるように設定する（ステップＳ３２でＹｅｓ、ステップＳ３３）。ステップＳ３３での設定は、例えば、通信調停部２２、ＣＲＣ計算部５１、比較部３２、変換部３１の結線に備えられたセレクタ（図示せず）を設定することにより行われうる。例えば、比較部３２や変換部３１が通信調停部２２に出力する各ビットの値が、ＣＲＣ計算部５１にも出力されるように、セレクタが設定される。ステップＳ３４〜Ｓ４０、Ｓ４５の処理は、図９を参照しながら説明したステップＳ１３〜Ｓ１９、Ｓ２１と同様である。なお、図１１で使用されている定数Ｘと変数ｘも、図９で使用されているものと同様である。
【００５８】
変換部３１から通信調停部２２へのＩＤの出力が終わると、比較部３２は、入力されたフレーム中のＲＴＲからデータフィールドまでを通信調停部２２に出力する（ステップＳ４１）。ＣＲＣ計算部５１は、通信調停部２２に出力されているＩＤの値と、データフィールドの値を用いて、ＣＲＣシーケンスの値を計算する（ステップＳ４２）。さらに、ＣＲＣ計算部５１は、ＣＲＣシーケンスの値として、得られた結果を、通信調停部２２に出力する（ステップＳ４３）。その後、比較部３２は、入力されたフレームのＣＲＣシーケンスより後の値を、通信調停部２２に出力する（ステップＳ４４）。
【００５９】
このように、通信調停部２２に入力されるフレームでは、ステップＳ３９、Ｓ４０の処理によりＩＤ（第１の識別情報）がいずれのＥＣＵ５でも受信されないＩＤ（第２の識別情報）に変更されている。さらに、ステップＳ４２、Ｓ４３の処理により、ＩＤの変更に応じてＣＲＣシーケンスの値も変更されている。従って、第２の実施形態を用いると、第１の実施形態と同様に不正なフレームによる攻撃からシステムを防御できる上、ＥＣＵ５においてＣＲＣを用いたチェックが行われてもエラーを発生させずにすむ。
【００６０】
＜第３の実施形態＞
図１２は、第３の実施形態にかかる通信制御装置７０の構成の例を示す図である。通信制御装置７０は、ポートＰ１〜Ｐ３、ＣＡＮトランシーバ２１（２１ａ〜２１ｃ）、通信調停部２２、制御部５０（５０ａ〜５０ｃ）、記憶部４０（４０ａ〜４０ｃ）を備える。ＣＡＮトランシーバ２１、通信調停部２２、制御部５０の動作は、第２の実施形態と同様である。第３の実施形態では、記憶部４０は、ホワイトリスト４１と使用ＩＤリスト４３を格納する。このため、変換部３１は、使用ＩＤリスト４３を用いて、いずれのＥＣＵ５でも受信されない識別情報を特定する。
【００６１】
図１３は、使用ＩＤリスト４３の例を示す図である。使用ＩＤリスト４３は、通信制御装置７０に接続されているいずれかのＥＣＵ５で受信対象とされている識別情報を含む。なお、使用ＩＤリスト４３は、図１３に示すように、受信対象とされている識別情報だけを記憶しても良く、また、識別情報とその識別情報のフレームを受信するＥＣＵ５の識別情報を対応付けた情報であっても良い。
【００６２】
図１４は、制御部５０で行われる処理の例を説明するフローチャートである。ステップＳ５１において、比較部３２は、入力されたフレームのＩＤのｘビット目に対する処理により、ＩＤがホワイトリスト４１中の識別情報のいずれとも一致しないことを検出したとする。比較部３２は、不正なフレームの受信を変換部３１に通知する。なお、第１の識別情報のうち、不正なフレームであることが検出される前に処理された（ｘ−１）ビットについては、第１および第２の実施形態で述べたように、通信調停部２２に出力されている。
【００６３】
ステップＳ５２において、変換部３１は、先頭の（ｘ−１）ビットが入力されたフレームのＩＤと同じで、ｘビット目以降のビットを全て０に設定したＩＤを生成する。さらに、変換部３１は、生成したＩＤが使用ＩＤリスト４３に含まれているかを判定する（ステップＳ５３）。生成したＩＤが使用ＩＤリスト４３に含まれている場合、変換部３１は、生成したＩＤの値を１つインクリメントして、ステップＳ５３に戻る（ステップＳ５３でＹｅｓ、ステップＳ５４）。変換部３１は、使用ＩＤリスト４３に含まれていないＩＤを検出するまで、ステップＳ５３とＳ５４の処理を繰り返す。
【００６４】
変換部３１は、生成したＩＤが使用ＩＤリスト４３に含まれていない場合、入力された送信元の情報を、得られたＩＤに置き換える（ステップＳ５３でＮｏ、ステップＳ５５）。なお、ステップＳ５５において、変換部３１は、使用ＩＤリスト４３に含まれていないと判定したＩＤのｘビット目以降を通信調停部２２に出力することにより、ＩＤを置き換える。その後、制御部５０は、送信元の情報を置き換えた第２のフレームを通信調停部２２に出力するための処理を行う（ステップＳ５６）。なお、ステップＳ５６で行われる処理の詳細は、図１１を参照しながら説明したステップＳ４１〜Ｓ４３と同様である。
【００６５】
第３の実施形態によると、通信制御装置７０に接続されているＥＣＵ５のいずれかで使用されているＩＤを使用ＩＤリスト４３として記憶することにより、第１および第２の実施形態と同様に、不正フレームの転送を防止できる。ここで、通信制御装置７０に接続されているＥＣＵ５の数が少ない場合や、通信制御装置７０に接続されているＥＣＵ５で受信されるＩＤの種類が少ない場合、使用ＩＤリスト４３のデータ量は未使用ＩＤリスト４２のデータ量よりも小さくなる。このため、変換部３１が使用ＩＤリスト４３を用いて、転送処理に使用するＩＤを決定することにより、未使用ＩＤリスト４２を用いて処理を行う場合よりも、記憶する情報量を削減することができる。従って、通信制御装置７０のように使用ＩＤリスト４３を用いることにより、第３の実施形態では、第１および第２の実施形態に比べて、通信制御装置７０の処理に使用できるメモリの容量を増やすことができる。
【００６６】
＜第４の実施形態＞
第４の実施形態では、制御部５０を備えていない通信制御装置２０（図４）を用いても、不正な第１のフレームの代替として出力されるフレーム中のＣＲＣを正しい値とするために、予め、未使用のＩＤに対応付けてＣＲＣを求める場合について説明する。
【００６７】
例えば、不正な第１のフレームの代替として通信調停部２２に入力される第２のフレームでは、データフィールド中のビットを予め決められた値に設定する場合、第２のフレームに使用するＩＤに応じて一意にＣＲＣを決定することができる。そこで、未使用ＩＤリスト４２に、予め決められたデータを用いて計算したＣＲＣの計算値を対応付けて記憶することもできる。また、第２のフレーム中ではデータフィールドが無くても良い。例えば、データフィールドが無い場合のＣＲＣの計算値を対応付けて記憶した未使用ＩＤリスト４２では、未使用ＩＤ、データ内容、ＣＲＣの対応付けが以下のように行われていてもよい。
（未使用ＩＤ          ，データ，ＣＲＣ）
（０００１０００１０１０，なし，ＣＲＣ１）
（１０１０１１０１１０１，なし，ＣＲＣ２）
（１１０１００１００１０，なし，ＣＲＣ３）
【００６８】
第４の実施形態においても、不正なフレームの検出方法は、第１の実施方法と同様である。第１のフレームが不正なフレームであることを検出すると、変換部３１は、いずれのＥＣＵ５でも受信されない識別情報であり、すでに通信調停部２２に出力されたビット列が先頭に含まれている未使用ＩＤを未使用ＩＤリスト４２から選択する。変換部３１は、選択した未使用ＩＤのうちで、通信調停部２２に出力されていないビットに続けて、選択した未使用ＩＤに対応付けられているデータとＣＲＣの値を、通信調停部２２に出力する。変換部３１での処理が終わると、比較部３２は、ＣＲＣ以降の値を、通信調停部２２に出力する。ここで、ＣＲＣ以降のフレームの値は、いずれのフレームであっても共通であり、予め、記憶部４０に記憶されているものとする。
【００６９】
この様な処理を行うと、通信制御装置２０が用いられるシステムであっても、第２のフレーム中のＣＲＣをＩＤに合わせて変更できるので、ＥＣＵ５においてＣＲＣが計算される場合であっても、エラーが発生しない。さらに、変換部３１や比較部３２は、不正な第１のフレームは、不正なフレームであると判定されたビット以降は使用しないので、不正な第１のフレームを破棄することができ、変換部３１や比較部３２の処理負担も小さい。
【００７０】
＜その他＞
以上の説明では、ＣＡＮの一般仕様のフレームが送受信される場合を例として説明したが、ＣＡＮの拡張仕様のフレームやＣＡＮ  ＦＤ（CAN with Flexible Data-Rate）で使用されるフレームが送受信される場合にも、上述の各実施形態を適用できる。
【００７１】
選択回路１０１および処理回路１０２として、プロセッサが通信制御装置２０、６０、７０に搭載されても良い。この場合、プロセッサは、メモリ１０３に格納されたプログラムを読み込んで、通信調停部２２や制御部３０または制御部５０を実現する。
【００７２】
以上の説明に使用したリストやフレームのフォーマットは一例であり、実装に応じて、リストやフレームに含められる情報要素は変更され得る。
【００７３】
以上の説明では、不正なフレームを検出すると、比較部３２が、不正なフレームのＩＤのうちで通信調停部２２に出力済みのビット列を変換部３１に通知する場合を例として説明したが、変換部３１がビット列を取得する方法は実装に応じて変更されうる。例えば、変換部３１は比較部３２が通信調停部２２に出力するビットの値をモニタし、ＳＯＦ以降に比較部３２から通信調停部２２に出力されたビット列を取得しても良い。また、比較部３２は、通信調停部２２と変換部３１とに、ＩＤ中のビット列を出力しても良い。変換部３１が比較部３２から出力されるビットをモニタする場合、変換部３１は、ＳＯＦを検出するたびに、ＩＤの値をリセットするものとする。
【００７４】
さらに、実装によっては、比較部３２は、比較処理と並行して比較対象のビットの値を通信調停部２２に出力しても良い。この場合、ＩＤの先頭からｘビット目の比較で不正フレームが検出されると、ＩＤの先頭からｘビットのビット列が通信調停部２２に出力されている。このため、変換部３１は、先頭からｘビットが不正フレームのＩＤと同じＩＤであり、かつ、いずれのＥＣＵ５でも受信されない識別情報を、第２のフレームのＩＤに設定する。
【００７５】
第３の実施形態では、通信制御装置７０が制御部５０を備えている場合を例として説明したが、通信制御装置７０は、制御部５０の代わりに制御部３０を備えていても良い。
【００７６】
上述の第１〜第３の実施形態を含む各実施形態に関し、さらに以下の付記を開示する。
（付記１）
フレームの識別情報を用いて前記フレームを受信するかを判定する複数の通信装置の間の通信を制御する通信制御装置であって、
前記複数の通信装置のうちの少なくとも１つに接続された複数のポートと、
前記複数のポートの各々について、当該ポートに接続された通信装置が送信処理に使用する識別情報を当該ポートに対応付けて記憶する記憶部と、
前記ポートで受信された受信フレームの第１の識別情報が、当該ポートに対応付けられていない場合、前記複数の通信装置のいずれでも受信されない第２の識別情報を前記第１の識別情報の代わりに設定したフレームを、前記複数のポートに向けて出力する制御部
を備えることを特徴とする通信制御装置。
（付記２）
前記制御部は、
前記第１の識別情報の先頭ビットから、前記受信フレームを受信した受信ポートに対応付けられた識別情報と比較し、
前記先頭ビットから比較対象のビットまでが前記受信ポートに対応付けられた識別情報のいずれかの一部と一致する場合、前記第１の識別情報中の比較対象のビットを前記複数のポートに向けて出力し、
前記先頭ビットから比較対象のビットまでが前記受信ポートに対応付けられた識別情報のいずれにも一致しないことを特定すると、前記第１の識別情報のうちの出力済みのビット列を含み、かつ、前記複数の通信装置のいずれでも受信されない識別情報を前記第２の識別情報に決定する、
ことを特徴とする付記１に記載の通信制御装置。
（付記３）
前記制御部は、前記受信フレーム中のエラーチェックに使用される情報を、前記受信フレーム中のデータと前記第２の識別情報を含むフレームについてのエラーチェックに用いられる値に変更する
ことを特徴とする付記２に記載の通信制御装置。
（付記４）
前記記憶部は、前記複数の通信装置のいずれでも受信されない識別情報のリストを記憶しており、
前記制御部は、前記リスト中の識別情報から、前記第２の識別情報を選択する
ことを特徴とする付記１〜３のいずれか１項に記載の通信制御装置。
（付記５）
前記記憶部は、前記複数の通信装置のいずれかで受信される識別情報のリストを記憶しており、
前記制御部は、
前記第２の識別情報の候補とする第１の候補を決定し、
前記第１の候補が前記リストに含まれていない場合、前記第１の候補を前記第２の識別情報に決定し、
前記第１の候補が前記リストに含まれていると、前記第２の識別情報の第２の候補を生成するとともに、前記第２の候補が前記リストに含まれているかを判定する
ことを特徴とする付記１〜３のいずれか１項に記載の通信制御装置。
（付記６）
フレームの識別情報を用いて前記フレームを受信するかを判定する複数の通信装置の間の通信を制御する通信制御装置が、
受信フレーム中の第１の識別情報は、前記受信フレームの受信ポートに接続された通信装置が送信処理に使用する識別情報として、前記受信ポートに対応付けられているかを判定し、
前記第１の識別情報が前記受信ポートに対応付けられていない場合、前記複数の通信装置のいずれでも受信されない第２の識別情報を前記第１の識別情報の代わりに設定したフレームを、前記複数の通信装置に送信する
ことを特徴とする通信制御方法。
（付記７）
前記通信制御装置は、
前記第１の識別情報の先頭ビットから、前記受信ポートに対応付けられた識別情報と前記第１の識別情報を比較し、
前記先頭ビットから比較対象のビットまでが前記受信ポートに対応付けられた識別情報のいずれかの一部と一致する場合、前記第１の識別情報中の比較対象のビットを前記複数の通信装置に向けて出力し、
前記先頭ビットから比較対象のビットまでが前記受信ポートに対応付けられた識別情報のいずれにも一致しないことを特定すると、前記第１の識別情報のうちの出力済みのビット列を含み、かつ、前記複数の通信装置のいずれでも受信されない識別情報を第２の識別情報に決定する、
ことを特徴とする付記６に記載の通信制御方法。
（付記８）
前記通信制御装置は、前記受信フレーム中のエラーチェックに使用される情報を、前記受信フレーム中のデータと前記第２の識別情報を含むフレームについてのエラーチェックに用いられる値に変更する
ことを特徴とする付記７に記載の通信制御方法。
（付記９）
前記通信制御装置は、前記複数の通信装置のいずれでも受信されない識別情報のリスト中の識別情報から、前記第２の識別情報を選択する
ことを特徴とする付記６〜８のいずれか１項に記載の通信制御方法。
（付記１０）
前記通信制御装置は、
前記第２の識別情報の候補とする第１の候補を決定し、
前記複数の通信装置のいずれかで受信される識別情報のリストに、前記第１の候補が含まれていない場合、前記第１の候補を前記第２の識別情報に決定し、
前記第１の候補が前記リストに含まれていると、前記第２の識別情報の第２の候補を生成するとともに、前記第２の候補が前記リストに含まれているかを判定する
ことを特徴とする付記６〜８のいずれか１項に記載の通信制御方法。
（付記１１）
フレームの識別情報を用いて前記フレームを受信するかを判定する複数の通信装置の間の通信を制御する通信制御装置に、
受信フレーム中の第１の識別情報は、前記受信フレームの受信ポートに接続された通信装置が送信処理に使用する識別情報として前記受信ポートに対応付けられているかを判定し、
前記第１の識別情報が前記受信ポートに対応付けられていない場合、前記複数の通信装置のいずれでも受信されない第２の識別情報を前記第１の識別情報の代わりに設定したフレームを、前記複数の通信装置に送信する
処理を行わせることを特徴とする通信制御プログラム。
【符号の説明】
【００７７】
５  ＥＣＵ
１０  ＣＡＮハブ
１１、２１  ＣＡＮトランシーバ
１２、２２  通信調停部
２０、６０、７０  通信制御装置
３０、５０  制御部
３１  変換部
３２  比較部
４０  記憶部
４１  ホワイトリスト
４２  未使用ＩＤリスト
４３  使用ＩＤリスト
５１  ＣＲＣ計算部
１０１  選択回路
１０２  処理回路
１０３  メモリ
【図１】
2016100842.tif 000003
【図２】
2016100842.tif 000004
【図３】
2016100842.tif 000005
【図４】
2016100842.tif 000006
【図５】
2016100842.tif 000007
【図６】
2016100842.tif 000008
【図７】
2016100842.tif 000009
【図８】
2016100842.tif 000010
【図９】
2016100842.tif 000011
【図１０】
2016100842.tif 000012
【図１１】
2016100842.tif 000013
【図１２】
2016100842.tif 000014
【図１３】
2016100842.tif 000015
【図１４】
2016100842.tif 000016