(57)【特許請求の範囲】
【請求項１】
ネットワークにおけるメッセージを受信する通信部と、
前記通信部において受信されるメッセージのうち、前記ネットワークが設けられた物体の第１状態および前記第１状態とは異なる前記物体の第２状態のいずれか一方で設定されたIDに対応する第１メッセージに対して、メッセージの種類に応じて遅延時間を設定する設定部と、
前記第１メッセージが不正なメッセージであるか否かの判定を、前記第１状態および前記第２状態のいずれでも設定されたIDに対応する第２メッセージに対して行うタイミングから前記設定部において設定された遅延時間まで遅らせながら、前記第１メッセージに対するフィルタリング処理を実行するフィルタ部と、
を備えることを特徴とする通信装置。
【請求項２】
前記フィルタ部は、遅延時間までの間に追加された別のメッセージも利用して、フィルタリング処理の判定を実行することを特徴とする請求項１に記載の通信装置。
【請求項３】
前記フィルタ部は、遅延時間までの間に追加された別のメッセージの送信周期を利用することを特徴とする請求項２に記載の通信装置。
【請求項４】
前記フィルタ部は、
前記設定部において設定した遅延時間まで判定を遅らせずに、前記第１メッセージに対するフィルタリング処理を実行して、判定結果を出力する第１フィルタ部と、
前記設定部において設定した遅延時間まで判定を遅らせながら、前記第１メッセージに対するフィルタリング処理を実行する第２フィルタ部と、
前記第２フィルタ部での判定結果が、前記第１フィルタ部での判定結果と異なっている場合、前記第１フィルタ部での判定結果を修正するための情報を出力する修正部と、
を備えることを特徴とする請求項１に記載の通信装置。
【請求項５】
ネットワークにおけるメッセージを受信する処理と、
前記受信されるメッセージのうち、前記ネットワークが設けられた物体の第１状態および前記第１状態とは異なる前記物体の第２状態のいずれか一方で設定されたIDに対応する第１メッセージに対して、メッセージの種類に応じて遅延時間を設定する処理と、
前記第１メッセージが不正なメッセージであるか否かの判定を、前記第１状態および前記第２状態のいずれでも設定されたIDに対応する第２メッセージに対して行うタイミングから前記設定された遅延時間まで遅らせながら、前記第１メッセージに対するフィルタリング処理を実行する処理と、
を、コンピュータが実行するためのプログラム。
【請求項６】
ネットワークにおけるメッセージを受信する通信部と、
前記通信部において受信されるメッセージの種類に応じて遅延時間を設定する設定部と、
前記受信されたメッセージのうちの第１メッセージが不正なメッセージであるか否かの判定を、前記ネットワークが設けられた物体の第１状態および前記物体の第２状態のいずれでも設定されたIDに対応する第２メッセージに対して行うタイミングから前記設定部において設定された遅延時間まで遅らせながら、前記第１メッセージに対するフィルタリング処理を実行するフィルタ部と、
を備え、
前記フィルタ部は、
前記設定部において設定された遅延時間まで判定を遅らせずに、前記第１メッセージに対するフィルタリング処理を実行して、判定結果を出力する第１フィルタ部と、
前記設定部において設定した遅延時間まで判定を遅らせながら、前記第１メッセージに対するフィルタリング処理を実行する第２フィルタ部と、
前記第２フィルタ部での判定結果が、前記第１フィルタ部での判定結果と異なっている場合、前記第１フィルタ部での判定結果を修正するための情報を出力する修正部と、
を備える通信装置。
【請求項７】
ネットワークにおけるメッセージを受信する受信処理と、
前記受信されるメッセージの種類に応じて遅延時間を設定する設定処理と、
前記受信されたメッセージのうちの第１メッセージが不正なメッセージであるか否かの判定を、前記ネットワークが設けられた物体の第１状態および前記物体の第２状態のいずれでも設定されたIDに対応する第２メッセージに対して行うタイミングから、設定された遅延時間まで遅らせながら、前記第１メッセージに対するフィルタリング処理を実行するフィルタ処理と、
を含み、
前記フィルタ処理は、
設定された遅延時間まで判定を遅らせずに、前記第１メッセージに対するフィルタリング処理を実行して、判定結果を出力する第１フィルタ処理と、
設定した遅延時間まで判定を遅らせながら、前記第１メッセージに対するフィルタリング処理を実行する第２フィルタ処理と、
前記第２フィルタ処理での判定結果が、前記第１フィルタ処理での判定結果と異なっている場合、前記第１フィルタ処理での判定結果を修正するための情報を出力する処理と、
を含む、コンピュータが実行するためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バスで接続された通信システムにおける通信装置およびプログラムに関する。
【背景技術】
【０００２】
車載ネットワークにおいて、不正なデータを侵入させて誤動作させる攻撃を検知し防御することが求められる。そのため、フィルタテーブルに監視すべきＩＤを記憶しておき、記憶したＩＤのメッセージの送信周期をチェックすることによって、不正なデータの侵入が検出される。つまり、正規の送信ノードが、所定のＩＤのメッセージを周期的に送信している場合、不正な送信ノードが、なりすまし攻撃により不正なデータを送信すると、周期異常により不正なデータが検出可能である（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１４−１４６８６８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
フィルタテーブルによるフィルタリング処理では、受信したメッセージに対して不正か否かを即時に判定したり、あるいは一定時間待機後に判定したりする。一方、不正なメッセージを判定するために待機可能な時間は、メッセージに応じて異なる。不正なメッセージの検出精度を向上するためには、最適な待機時間を設定することが求められる。
【０００５】
本発明はこうした状況に鑑みなされたものであり、その目的は、不正なメッセージの検出精度を向上する技術を提供することにある。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明のある態様の通信装置は、ネットワークにおけるメッセージを受信する通信部と、通信部において受信されるメッセージのうち、ネットワークが設けられた物体の第１状態および第１状態とは異なる物体の第２状態のいずれか一方で設定されたIDに対応する第１メッセージに対して、メッセージの種類に応じて遅延時間を設定する設定部と、第１メッセージが不正なメッセージであるか否かの判定を、第１状態および第２状態のいずれでも設定されたIDに対応する第２メッセージに対して行うタイミングから設定部において設定された遅延時間まで遅らせながら、第１メッセージに対するフィルタリング処理を実行するフィルタ部と、を備える。
【０００７】
本発明の別の態様もまた、通信装置である。この装置は、ネットワークにおけるメッセージを受信する通信部と、通信部において受信されるメッセージの種類に応じて遅延時間を設定する設定部と、受信されたメッセージのうちの第１メッセージが不正なメッセージであるか否かの判定を、ネットワークが設けられた物体の第１状態および物体の第２状態のいずれでも設定されたIDに対応する第２メッセージに対して行うタイミングから設定部において設定された遅延時間まで遅らせながら、第１メッセージに対するフィルタリング処理を実行するフィルタ部とを備える。フィルタ部は、設定部において設定された遅延時間まで判定を遅らせずに、第１メッセージに対するフィルタリング処理を実行して、判定結果を出力する第１フィルタ部と、設定部において設定した遅延時間まで判定を遅らせながら、第１メッセージに対するフィルタリング処理を実行する第２フィルタ部と、第２フィルタ部での判定結果が、第１フィルタ部での判定結果と異なっている場合、第１フィルタ部での判定結果を修正するための情報を出力する修正部と、を備える。
【０００８】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、コンピュータプログラム、またはコンピュータプログラムを記録した記録媒体などの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【０００９】
本発明によれば、不正なメッセージの検出精度を向上できる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施例１に係るＣＡＮシステムの構成を示す図である。
【図２】図１のＣＡＮシステムで使用される標準フォーマットのデータフレームを示す図である。
【図３】図１のＥＣＵの構成を示す図である。
【図４】図４（ａ）−（ｂ）は、図３の設定部において設定されるフィルタリングルールのデータ構造を示す図である。
【図５】図３の記憶部に記憶されるテーブルのデータ構造を示す図である。
【図６】図３のフィルタ部の構成を示す図である。
【図７】図１のＣＡＮシステムによる判定手順を示すシーケンス図である。
【図８】図３のＥＣＵによる判定手順を示すフローチャートである。
【図９】図９（ａ）−（ｃ）は、本発明の実施例２に係るフィルタ部の動作概要を示す図である。
【図１０】本発明の実施例３に係るフィルタ部による判定手順を示すフローチャートである。
【図１１】本発明の実施例４に係るフィルタ部の構成を示す図である。
【発明を実施するための形態】
【００１１】
（実施例１）
本発明の実施例１を具体的に説明する前に、実施例１の概要を説明する。実施例１は、車載ネットワークであるＣＡＮ（Ｃｏｎｔｒｏｌｌｅｒ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）における不正なメッセージを検出する通信装置に関する。ＣＡＮはバス型ネットワークを採用したシリアル通信プロトコルである。バスに接続される各通信装置からのメッセージは、バスに接続されるすべての通信装置にブロードキャスト送信される。当該メッセージには送信元通信装置および宛先通信装置の識別情報が含まれない。したがって、メッセージを受信した通信装置は、正規の通信装置からのメッセージであるか否かを単純に判定できない。そのため、不正なメッセージの検出精度を向上することが望まれる。
【００１２】
本実施例に係る通信装置は、ＣＡＮの通信仕様にもとづいた通信規則であって、かつ正しいメッセージの通信規則をルールとして保持する。ここで、通信規則の一例は、対象のＣＡＮで送信可能なＣＡＮのメッセージＩＤ（以下、「ＣＡＮ  ＩＤ」）である。また、通信規則の一例は、ＣＡＮ  ＩＤごとのＤＬＣ(データ長)、送信周期、送信頻度、データの取り得る値、データの増加・減少の規則などであってもよい。通信装置は、通信仕様に応じたフィルタリングルールを設定しており、フィルタリングルールによって、送受信されるＣＡＮのメッセージをフィルタリング処理する。また、通信装置は、フィルタリング処理の判定結果をもとに、アプリケーションあるいはＣＡＮバスに、メッセージを出力するか否かを決定する。
【００１３】
メッセージの内容によってはフィルタリング処理の結果を即時に判定できない場合がある。このような場合があっても、フィルタリング処理によって不正なメッセージの検出精度を向上することが望まれる。これに対応するために、本実施例に係る通信装置は、メッセージの種類に応じて遅延時間を設定し、設定した遅延時間までフィルタリング処理の判定を延期させる。
【００１４】
図１は、本発明の実施例１に係るＣＡＮシステム５００の構成を示す。ＣＡＮシステム５００は、ＥＣＵ（Ｅｌｅｃｔｒｏｎｉｃ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）１００と総称される第１ＥＣＵ１００ａ、第２ＥＣＵ１００ｂ、第３ＥＣＵ１００ｃ、第４ＥＣＵ１００ｄ、ＣＡＮバス２００を含む。なお、ＣＡＮシステム５００に含まれるＥＣＵ１００の数は、「４」に限定されない。
【００１５】
各ＥＣＵ１００は、車両に搭載されたエンジン、モータ、メータ、トランスミッション、ブレーキ、エアバッグ、ランプ、パワーステアリング、パワーウィンドウ、カーエアコン等を制御するユニットであり、例えば、マイクロコントローラを搭載する。各ＥＣＵ１００は、ＣＡＮバス２００に接続されており、ＣＡＮの通信を実行する。そのため、各ＥＣＵ１００は、前述の「通信装置」に相当する。ＣＡＮバス２００は、例えば、２本の通信線によって構成されており、電圧の差動によって信号を伝送する。
【００１６】
ＣＡＮではＣＳＭＡ／ＣＡ(Ｃａｒｒｉｅｒ  Ｓｅｎｓｅ  Ｍｕｌｔｉｐｌｅ  Ａｃｃｅｓｓ  ｗｉｔｈ  Ｃｏｌｌｉｓｉｏｎ  Ａｖｏｉｄａｎｃｅ)と呼ばれるアクセス制御方式が採用されている。ＣＳＭＡ／ＣＡでは、ＣＡＮバス２００に対して最初に送信を開始したＥＣＵ１００が送信権を取得する。なお、同時に複数のＥＣＵ１００が送信した場合は、通信調停（ｂｕｓ  ａｒｂｉｔｒａｔｉｏｎ）が行われる。ＣＡＮでは、ＣＡＮ  ＩＤの値が小さい方が優先される。
【００１７】
図２は、ＣＡＮシステム５００で使用される標準フォーマットのデータフレームを示す。図示のごとく、ＳＯＦ、ＩＤフィールド、ＲＴＲ、ＩＤＥ、ｒ０、ＤＬＣ、データフィールド、ＣＲＣデリミタ、Ａｃｋ、Ａｃｋデリミタ、ＥＯＦが先頭から順に配置されることによって、データフレームが構成される。各ボックス内の数字はビット数を示す。またボックスの上が開放されている項目は常に「０」をとる項目であり、ボックスの下が開放されている項目は常に「１」をとる項目である。上下が開放されていない項目は「０」と「１」の両方をとりうる項目である。なお、送信可能な状態のデータフレームは、メッセージと呼ばれる。
【００１８】
ＩＤフィールドには、前述のＣＡＮ  ＩＤが格納される。ＣＡＮ  ＩＤは、メッセージの種類および優先度を表すための識別情報である。ＣＡＮにおけるメッセージには、車両内の特定の処理対象における特定の通知事項が含まれる。当該処理対象には、特定の監視対象および特定の制御対象が含まれる。例えば、車両内の特定の処理対象に関するメッセージとして、速度情報を含むメッセージ、ドアの開閉を指示するメッセージ等がある。また、同じ処理対象に対して複数の通知事項が設定されることがある。例えば、１つのメータに対してエンジン回転数を通知するための通知事項、エンジン水温を通知するための通知事項などの複数の通知事項が設定可能である。
【００１９】
ＣＡＮ  ＩＤは、送信されるメッセージに含まれる特定の処理対象の特定の通知事項に関連づけられている。メッセージを受信したＥＣＵ１００では、そのＣＡＮ  ＩＤにもとづいて、メッセージに含まれる特定の通知事項の内容を判断する。図２に示すように、ＣＡＮのデータフレームには送信先アドレスおよび送信元アドレスが含まれない。そのため、受信側のＥＣＵ１００は、正しい通信相手からのメッセージであるか否かを判断できない。例えば、エンジン回転数を含むメッセージは、エンジンのＥＣＵ１００から送信される。当該メッセージに付与されるＣＡＮ  ＩＤと同じＣＡＮ  ＩＤが付与されたメッセージが、不正なＥＣＵ１００から送信されると、受信側のＥＣＵ１００は、正当なエンジンのＥＣＵ１００からのメッセージであるか、不正なＥＣＵ１００からのメッセージであるかを判別できない。
【００２０】
不正なＥＣＵ１００が送信側のＥＣＵ１００になりすまして不正な情報を含むメッセージを送信し、かつ受信側のＥＣＵが、これを正当なメッセージとして処理した場合、その後の処理（補機の制御など）に悪影響が及んでしまう。例えば、不正なＥＣＵ１００が、エンジンのＥＣＵ１００になりすましてエンジン回転数を含むメッセージを送信することにより、それを受信したメータのＥＣＵ１００の制御に悪影響が及ぶ。このようにＣＡＮプロトコルでは、なりすましがなされやすい。また、メッセージがＣＡＮバス２００に対してブロードキャスト送信されるので、ユニキャスト送信よりも盗聴がなされやすい。
【００２１】
図３は、ＥＣＵ１００の構成を示す。ＥＣＵ１００は、通信部１０、処理部１２、アプリケーション実行部１４を含む。処理部１２は、取得部２０、推定部２２、設定部２４、記憶部２６、入力部２８、フィルタ部３０、出力部３２を含む。
【００２２】
アプリケーション実行部１４は、各ＥＣＵ１００の処理対象（例えば、エンジン、ステアリング、ブレーキ、その他の各種補機）と接続し、それらの処理対象からステータス情報または指示情報を取得する。アプリケーション実行部１４は、当該処理対象から取得した情報をもとに、ＣＡＮにおいてブロードキャスト送信すべきデータを生成し、処理部１２に出力する。また、アプリケーション実行部１４は、ＣＡＮバス２００から受信されたメッセージに含まれるデータを処理部１２から入力し、当該データに応じて当該処理対象を制御する。
【００２３】
通信部１０は、ネットワークであるＣＡＮシステム５００におけるメッセージを送受信する。具体的に説明すると、通信部１０は、処理部１２により生成されたメッセージであって、かつアプリケーション実行部１４において生成されたデータが含まれたメッセージをＣＡＮバス２００へブロードキャスト送信する。通信部１０は、他のＥＣＵ１００で生成されＣＡＮバス２００へブロードキャスト送信されたメッセージをＣＡＮバス２００から受信する。通信部１０は、受信したメッセージを処理部１２に渡す。
【００２４】
処理部１２は、アプリケーション実行部１４と通信部１０の間に配置される。処理部１２は、アプリケーション実行部１４からのデータを入力し、当該データが含まれたメッセージを生成する。処理部１２は、生成したメッセージに対して、後述のフィルタリング処理を実行してから通信部１０に出力する。一方、処理部１２は、通信部１０からのメッセージを入力し、入力したメッセージに対して、後述のフィルタリング処理を実行する。フィルタリング処理したメッセージに含まれたデータを抽出してアプリケーション実行部１４に出力する。処理部１２は、フィルタリング処理において、不正ではないメッセージだけを選択する。以下では、フィルタリング処理を中心に説明する。
【００２５】
取得部２０は、ＣＡＮシステム５００が設けられた物体、例えば車両の状態に関する状態情報を取得する。車両の状態とは、イグニッションがオンになっているか、ＡＣＣ（アクセサリーポジション）がオンになっているか、車速等であり、これらが状態情報に含まれている。取得部２０は、例えば、状態情報を図示しないセンサ等から取得する。また、取得部２０は、ＣＡＮバス２００から状態情報を取得してもよい。取得部２０は、取得した状態情報を推定部２２に出力する。
【００２６】
推定部２２は、取得部２０からの状態情報を入力する。推定部２２は、状態情報をもとに、車両の状態を推定する。例えば、推定部２２は、「第１状態」として、例えば、ＡＣＣがオンであることが示された状態情報をもとに、ＡＣＣがオンである状態を推定する。これに続いて、推定部２２は、「第２状態」として、例えば、イグニッションがオンであることが示された状態情報をもとに、イグニッションがオンである情報を推定する。なお、推定部２２において推定される状態、状態の遷移は、これらに限定されない。推定部２２は、推定した車両の状態を設定部２４に出力する。
【００２７】
所定のタイミングにおける車両の状態は、いずれかに特定されるべきである。第１状態から第２状態への遷移がなされる場合であっても、車両の状態は、第１状態あるいは第２状態で特定される。しかしながら、図１における各ＥＣＵ１００において推定される車両の状態にずれが生じる可能性がある。例えば、第１ＥＣＵ１００ａは、車両の状態が第２状態であると推定し、第２ＥＣＵ１００ｂは、車両の状態が第１状態であると推定する。この場合、第１ＥＣＵ１００ａにおいて、車両の状態が第１状態であると推定するタイミングが、第２ＥＣＵ１００ｂにおいて、車両の状態が第２状態であると推定するタイミングよりも遅れている。
【００２８】
記憶部２６は、正しいメッセージの通信規則をルールとして記憶する。前述のごとく、記憶されるルールは、送受信可能なＣＡＮ  ＩＤ、ＣＡＮ  ＩＤごとのＤＬＣ、ＣＡＮ  ＩＤごとの送信周期、ＣＡＮ  ＩＤごとの送信頻度、ＣＡＮ  ＩＤごとのデータなどである記憶部２６は、ルールに含まれる情報の一覧を記憶する。
【００２９】
設定部２４は、推定部２２から、車両の状態を入力する。設定部２４は、推定部２２において推定した車両の状態をもとに、フィルタリングルールを設定する。具体的に説明すると、設定部２４は、記憶部２６に記憶した情報の一覧から、推定部２２において推定した車両の状態に適した一部の情報をフィルタリングルールとして選択する。なお、設定部２４には、車両の状態と、選択すべき一部の情報との対応関係が予め記憶されている。記憶部２６に記憶されている情報の一覧には、ＣＡＮ  ＩＤだけではなく、ＤＬＣ、送信周期等も含まれているが、ここでは、説明を明瞭にするために、ＣＡＮ  ＩＤだけを説明の対象とする。
【００３０】
例えば、推定部２２が第１状態を推定した場合に、記憶部２６は、第１状態に対応したフィルタリングルールを設定する。図４（ａ）−（ｂ）は、設定部２４において設定されるフィルタリングルールのデータ構造を示す。図４（ａ）は、第１状態、つまりＡＣＣがオンである状態において設定されるフィルタリングルールを示す。図示のごとく、ＣＡＮ  ＩＤの「０ｘ１００」、「０ｘ２００」、「０ｘ３００」、「０ｘ１１０」、「０ｘ２１０」、「０ｘ３１０」が設定されている。図３に戻る。
【００３１】
例えば、推定部２２が第２状態を推定した場合に、記憶部２６は、第２状態に対応したフィルタリングルールを設定する。図４（ｂ）は、第２状態、つまりイグニッションがオンである情報において設定されるフィルタリングルールを示す。図示のごとく、ＣＡＮ  ＩＤの「０ｘ１２０」、「０ｘ２２０」、「０ｘ３２０」、「０ｘ４００」、「０ｘ１１０」、「０ｘ２１０」、「０ｘ３１０」が設定されている。なお、ＣＡＮ  ＩＤの「０ｘ１１０」、「０ｘ２１０」、「０ｘ３１０」は、第１状態においても含まれるので、複数の状態で共通に設定されうるＣＡＮ  ＩＤである。また、ＣＡＮ  ＩＤの「０ｘ１２０」、「０ｘ２２０」、「０ｘ３２０」、「０ｘ４００」は、第１状態において含まれないので、第２状態のみで設定されうるＣＡＮ  ＩＤである。図３に戻る。
【００３２】
入力部２８は、ＥＣＵ１００が送信側に相当する場合、アプリケーション実行部１４からのデータが含まれたメッセージを入力する。一方、入力部２８は、ＥＣＵ１００が受信側に相当する場合、通信部１０からのメッセージを入力する。入力部２８は、メッセージを設定部２４、フィルタ部３０に出力する。
【００３３】
設定部２４は、入力部２８からのメッセージを入力する。設定部２４は、入力したメッセージ、つまり通信部１０において送受信されるメッセージの種類に応じて、フィルタ部３０において判定を延期する際の遅延時間を設定する。これは、前述のごとく、車両が第１状態から第２状態へ遷移する場合、ＥＣＵ１００ごとに推定される状態が異なる場合があり、それに対応するためになされる。例えば、車両が第２状態であると推定している第１ＥＣＵ１００ａによって、メッセージが送信され、当該車両が第１状態であると推定している第２ＥＣＵ１００ｂによって、当該メッセージが受信される場合である。この場合、第１ＥＣＵ１００ａは、例えば、ＣＡＮ  ＩＤ「０ｘ１２０」のメッセージを正規のメッセージとして送信するが、第２ＥＣＵ１００ｂは、そのようなＣＡＮ  ＩＤをフィルタリングルールに含めていない。その結果、第２ＥＣＵ１００ｂは、当該メッセージを受信せず、不正なメッセージと判定する。このような状況は、車両の状態の推定にずれが生じる可能性のある場合、例えば、ＡＣＣのオン／オフやイグニッションのオン／オフの場合に発生する。
【００３４】
このようなずれに対応するために、設定部２４は、推定のずれが発生しうる場合に、フィルタリング処理における判定を延期させる。また、前述のごとく、判定を延期させるための遅延時間は、メッセージの種類ごとに決められる。例えば、メッセージの種類ごとに求められる即時応答性を判定し、即時応答性の高いメッセージに対してすぐに判定が実行され、即時応答性の低いメッセージに対して遅延時間だけ判定が保留されてもよい。設定部２４は、遅延時間を設定するために、記憶部２６に記憶されたテーブルを参照する。図５は、記憶部２６に記憶されるテーブルのデータ構造を示す。図示のごとく、各ＣＡＮ  ＩＤに対する遅延時間が示される。なお、遅延時間は、「０」であってもよく、それは判定を延期させないことに相当する。図３に戻る。
【００３５】
遅延時間について、前述のごとく、第１状態から第２状態に遷移する場合を一例として説明する。図４（ａ）−（ｂ）のごとく、ＣＡＮ  ＩＤの「０ｘ１００」、「０ｘ２００」、「０３００」、「０ｘ１２０」、「０ｘ２２０」、「０ｘ３２０」、「０ｘ４００」については、第１状態と第２状態のいずれか一方のみで設定される。そのため、これらのＣＡＮ  ＩＤに対しては、複数のＥＣＵ１００間の推定のずれに応じた時間が遅延時間として設定される。一方、ＣＡＮ  ＩＤの「０ｘ１１０」、「０ｘ２１０」、「０ｘ３１０」については、第１状態と第２状態のいずれでも設定される。そのため、これらのＣＡＮ  ＩＤに対しては、遅延時間が「０」に設定される。設定部２４は、設定した遅延時間をフィルタ部３０に設定する。なお、設定部２４は、メッセージごとに異なった遅延時間を設定してもよい。
【００３６】
フィルタ部３０は、入力部２８からのメッセージを入力する。また、フィルタ部３０は、設定部２４によって、フィルタリングルールを設定されるとともに、遅延時間も設定される。フィルタ部３０は、フィルタリングルールと遅延時間にしたがって、メッセージに対するフィルタリング処理を実行する。図６は、フィルタ部３０の構成を示す。フィルタ部３０は、第１ルール記憶部５０、第２ルール記憶部５２、第３ルール記憶部５４、第４ルール記憶部５６、第５ルール記憶部５８、ＩＤフィルタ部６０、ＤＬＣフィルタ部６２、送信周期フィルタ部６４、送信頻度フィルタ部６６、データフィルタ部６８、結果判定部７０を含む。
【００３７】
第１ルール記憶部５０は、設定部２４において設定されたフィルタリングルールのうち、ＣＡＮ  ＩＤに関するルールを記憶する。第１ルール記憶部５０は、例えば、図４（ａ）−（ｂ）のようなＣＡＮ  ＩＤを記憶する。なお、車両の状態に応じて、設定部２４は、フィルタリングルールを変更するので、第１ルール記憶部５０に記憶されるルールも変更される。ＩＤフィルタ部６０は、入力部２８からのメッセージに対して、設定部２４において設定した遅延時間まで判定を遅らせながら、ＣＡＮ  ＩＤによるフィルタング処理を実行する。つまり、ＩＤフィルタ部６０は、第１ルール記憶部５０に記憶されたＣＡＮ  ＩＤが含まれたメッセージを抽出する。なお、ＩＤフィルタ部６０は、遅延時間に達していなくても、可能であればメッセージを抽出してもよい。
【００３８】
第２ルール記憶部５２は、設定部２４において設定されたフィルタリングルールのうち、ＤＬＣに関するルールを記憶する。第３ルール記憶部５４は、設定部２４において設定されたフィルタリングルールのうち、送信周期に関するルールを記憶する。第４ルール記憶部５６は、設定部２４において設定されたフィルタリングルールのうち、送信頻度に関するルールを記憶する。これは、例えば、異常に高い頻度で送信される場合を除外するように定められる。第５ルール記憶部５８は、設定部２４において設定されたフィルタリングルールのうち、データに関するルールを記憶する。これは、例えば、固定値である部分が異常な値になってる場合を除外したり、増加／減少の傾向が異常なもの場合を除外したりするように定められる。なお、第２ルール記憶部５２から第５ルール記憶部５８は、第１ルール記憶部５０と同様に、設定部２４によって設定される。
【００３９】
ＤＬＣフィルタ部６２は、入力部２８からのメッセージに対して、第２ルール記憶部５２に記憶されたＤＬＣによるフィルタング処理を実行する。送信周期フィルタ部６４は、入力部２８からのメッセージに対して、第３ルール記憶部５４に記憶された送信周期によるフィルタング処理を実行する。送信頻度フィルタ部６６は、入力部２８からのメッセージに対して、第４ルール記憶部５６に記憶された送信周期によるフィルタング処理を実行する。送信周期フィルタ部６４は、入力部２８からのメッセージに対して、第５ルール記憶部５８に記憶されたデータによるフィルタング処理を実行する。ＤＬＣフィルタ部６２からデータフィルタ部６８は、ＩＤフィルタ部６０と同様の処理を実行する。なお、ＤＬＣフィルタ部６２からデータフィルタ部６８には、ＩＤフィルタ部６０と同様に、設定部２４によって遅延時間が設定される。
【００４０】
結果判定部７０は、ＩＤフィルタ部６０からデータフィルタ部６８でのフィルタリング処理の結果を入力する。結果判定部７０は、フィルタリング処理の結果をもとに、判定を実行する。例えば、ＩＤフィルタ部６０からデータフィルタ部６８のすべてにおいてメッセージが抽出されている場合、結果判定部７０は、当該抽出されたメッセージが正規のメッセージであると判定する。一方、ＩＤフィルタ部６０からデータフィルタ部６８のいずれかにおいてメッセージが抽出されていない場合、結果判定部７０は、入力部２８からのメッセージが、不正なメッセージであると判定する。結果判定部７０は、正規のメッセージであると判定した場合、当該メッセージを出力する。一方、結果判定部７０は、不正なメッセージであると判定した場合、何も出力しないか、不正なメッセージを検出した旨を出力する。
【００４１】
なお、結果判定部７０は、ＩＤフィルタ部６０からデータフィルタ部６８の１つ以上においてメッセージが抽出されている場合、当該抽出されたメッセージが正規のメッセージであると判定してもよい。その際、この条件を満たさなければ、結果判定部７０は、入力部２８からのメッセージが、不正なメッセージであると判定してもよい。図３に戻る。
【００４２】
出力部３２は、結果判定部７０からのメッセージを入力する。出力部３２は、ＥＣＵ１００が送信側に相当する場合、メッセージを通信部１０に出力する。一方、出力部３２は、ＥＣＵ１００が受信側に相当する場合、メッセージに含まれたデータをアプリケーション実行部１４に出力する。
【００４３】
この構成は、ハードウエア的には、任意のコンピュータのＣＰＵ、メモリ、その他のＬＳＩで実現でき、ソフトウエア的にはメモリにロードされたプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウエアのみ、ハードウエアとソフトウエアの組合せによっていろいろな形で実現できることは、当業者には理解されるところである。
【００４４】
以上の構成によるＣＡＮシステム５００の動作を説明する。図７は、ＣＡＮシステム５００による判定手順を示すシーケンス図である。第１ＥＣＵ１００ａは、イグニッションがオンである状態を認識する（Ｓ５０）。第１ＥＣＵ１００ａは、イグニッションがオンである状態に対応したメッセージを送信する（Ｓ５２）。第２ＥＣＵ１００ｂは、メッセージに対する判定を行わずに、イグニッションがオンである状態を認識する（Ｓ５４）。その後、第２ＥＣＵ１００ｂは、当該メッセージが正規のメッセージであると判定する（Ｓ５６）。
【００４５】
図８は、ＥＣＵ１００による判定手順を示すフローチャートである。設定部２４は、ＣＡＮ  ＩＤを取得し（Ｓ１００）、それに応じた遅延時間を設定する（Ｓ１０２）。フィルタ部３０は、判定結果が保留であり（Ｓ１０４のＹ）、遅延時間が経過しなければ（Ｓ１０６のＮ）、ステップ１０４に戻る。遅延時間が経過すれば（Ｓ１０６のＹ）、フィルタ部３０は、不正なメッセージと判定する（Ｓ１１０）。フィルタ部３０は、判定結果が保留でなく（Ｓ１０４のＮ）、判定結果がＯＫでなければ（Ｓ１０８のＮ）、不正なメッセージと判定する（Ｓ１１０）。フィルタ部３０は、判定結果がＯＫであれば（Ｓ１０８のＹ）、正規のメッセージと判定する（Ｓ１１２）。なお、ステップ１０６における遅延時間が経過していない場合の処理として、ステップ１０６のＮからステップ１０４へは、遅延時間が経過しない範囲内で、一定時間経過してから移行してもよい。また、フィルタリング処理に利用可能な情報が追加された時点で移行するよう制御してもよい。
【００４６】
本実施例によれば、メッセージの種類に応じて設定した遅延時間まで判定を遅らせるので、直ちに判定できない場合でも正確な判定を実行できる。また、直ちに判定できない場合でも正確な判定が実行されるので、不正なメッセージの検出精度を向上できる。また、直ちに判定できない場合でも判定を遅延させるので、推定した車両の状態がＥＣＵごとに異なる場合でも、不正なメッセージの検出精度を向上できる。
【００４７】
また、状態情報をもとに推定した車両の状態に応じたフィルタリングルールを設定するので、そのときの車両の状態に応じたフィルタリングルールだけを使用できる。また、車両の状態に応じたフィルタリングルールだけが使用されるので、不正なメッセージの検出精度を向上できる。また、変動する車両の状態に応じてルールセットを動的に切りかえるので、検知率を向上させ、誤検知率を低下できる。
【００４８】
（実施例２）
次に、実施例２を説明する。実施例２は、実施例１と同様に、ＣＡＮにおける不正なメッセージを検出する通信装置、つまりＥＣＵに関する。実施例２でも、メッセージの種類に応じた遅延時間まで判定を遅らせながら、フィルタング処理を実行する。実施例２は、遅延時間まで判定を遅らせている場合のフィルタリング処理に関しており、延期させている間に、後から追加された情報を考慮したり、複数メッセージ間の相関を考慮したりして、判定を実行する。実施例２に係るＣＡＮシステム５００は、図１と同様のタイプである。また、実施例２に係るＥＣＵ１００は、図３と同様のタイプであってもよいが、車両の状態に応じたフィルリングルールを設定せずに、固定のフィルタリングルールが使用されてもよい。その際は、図３の取得部２０、推定部２２が省略されてもよい。ここでは、固定のフィルタリングルールが使用されているとし、これまでとの差異を中心に説明する。
【００４９】
図９（ａ）−（ｃ）は、本発明の実施例２に係るフィルタ部３０の動作概要を示す。これらは、特に、同一のＣＡＮ  ＩＤに対して、図６のデータフィルタ部６８に入力されるデータ値の時間変化を示しており、縦軸がデータ値を示し、横軸が時間を示す。また、このようなデータ値が含まれたメッセージは周期的に発生しているとし、その送信周期が「Ｔ」と示される。
【００５０】
図９（ａ）は、周期的なメッセージに加えて、何らかのトリガによってイベント的にメッセージが発生している場合の一例を示す。ポイント「Ｐ１」は、周期的なメッセージ含まれたデータを示す。ポイント「Ｐ２」は、イベント的なメッセージに含まれたデータを示し、ポイント「Ｐ１」から間隔「Ｔ’」で発生している。ポイント「Ｐ２」は、設定変更などで発生するので、ポイント「Ｐ１」でのデータ値とは異なったデータ値を有する。
【００５１】
ポイント「Ｐ３」は、ポイント「Ｐ２」から送信周期「Ｔ」で発生した周期的なメッセージである。そのため、ポイント「Ｐ３」のデータ値は、ポイント「Ｐ２」のデータ値と同一である。また、ポイント「Ｐ４」は、ポイント「Ｐ３」から送信周期「Ｔ」で発生した周期的なメッセージである。そのため、ポイント「Ｐ４」のデータ値も、ポイント「Ｐ２」のデータ値と同一である。
【００５２】
このような傾向を示す図９（ａ）のポイント「Ｐ１」からポイント「Ｐ４」のメッセージは、正規のメッセージであるので、データフィルタ部６８によって抽出される。そのため、フィルタ部３０は、遅延時間までの間に追加された別のメッセージも利用して、フィルタリング処理の判定を実行する。その際、フィルタ部３０は、遅延時間までの間に追加された別のメッセージの送信周期を利用する。
【００５３】
図９（ｂ）は、周期的なメッセージが発生している場合を示す。ここで、ポイント「Ｑ１」、「Ｑ３」、「Ｑ４」は、送信周期「Ｔ」間隔で発生した周期的なメッセージであり、それらのデータ値は同一である。一方、ポイント「Ｑ２」は、ポイント「Ｑ１」のタイミングとポイント「Ｑ３」のタイミングとの間に発生したメッセージであり、送信周期にしたがっていない。また、ポイント「Ｑ３」のデータ値は、他のポイントでのデータ値とは異なっている。このような傾向を示す図９（ｂ）のポイント「Ｑ１」、「Ｑ３」、「Ｑ４」は、正規のメッセージであるので、データフィルタ部６８によって抽出されるが、図９（ｂ）のポイント「Ｑ２」は、不正なメッセージであるので、データフィルタ部６８によって抽出されない。
【００５４】
図９（ｃ）は、ポイント「Ｒ１」からポイント「Ｒ７」のメッセージがランダムに発生している場合を示す。ポイント「Ｒ１」の値からポイント「Ｒ７」の値は不安定に変化する。このような傾向を示す図９（ｃ）のポイント「Ｒ１」からポイント「Ｒ７」は、不正なメッセージを含んでいる可能性が高いので、データフィルタ部６８が抽出しなくてもよく、安全な制御に向かう値を含むメッセージのみを抽出してもよい。
【００５５】
本実施例によれば、遅延時間までの間に追加された別のメッセージも利用するので、メッセージ間の相関を利用してメッセージを判定できる。また、メッセージ間の相関を利用してメッセージが判定されるので、不正なメッセージの検出精度を向上できる。また、別のメッセージの送信周期を利用するので、不正なメッセージが発生したタイミングを正確に特定できる。また、不正なメッセージが発生したタイミングが正確に特定されるので、不正なメッセージの検出精度を向上できる。
【００５６】
（実施例３）
次に、実施例３を説明する。実施例３は、これまでと同様に、ＣＡＮにおける不正なメッセージを検出する通信装置、つまりＥＣＵに関する。実施例３では、遅延時間に達するまでに、同一のメッセージに対する判定を複数回実行し、１つのＣＡＮ  ＩＤにおいて保留したメッセージ数がしきい値以上になれば、メッセージを不正なメッセージであると判定する。実施例３に係るＣＡＮシステム５００は、図１と同様のタイプである。また、実施例３に係るＥＣＵ１００は、図３と同様のタイプであってもよいが、車両の状態に応じたフィルリングルールを設定せずに、固定のフィルタリングルールが使用されてもよい。その際は、図３の取得部２０、推定部２２が省略されてもよい。ここでは、固定のフィルタリングルールが使用されているとし、これまでとの差異を中心に説明する。
【００５７】
図６のＩＤフィルタ部６０からデータフィルタ部６８のうちの少なくとも１つは、設定部２４において設定した遅延時間が経過するまでに、メッセージに対するフィルタリング処理を複数回実行して、各処理結果を結果判定部７０に出力する。
【００５８】
結果判定部７０は、ＩＤフィルタ部６０からデータフィルタ部６８のうちの少なくとも１つでの各処理結果を入力する。結果判定部７０は、フィルタリング処理の結果をもとに、判定を実行する。判定はこれまでと同様になされればよいので、ここでは説明を省略する。判定結果を保留する場合、結果判定部７０は、１つのメッセージに対して１回のみ保留回数のカウンタをインクリメントする。なお、結果判定部７０は、保留後、タイムアウトとなった回数をカウントしてもよい。なお、このようなカウントは、ＣＡＮ  ＩＤごとになされる。結果判定部７０は、カウント値がしきい値以上になった場合、あるいは遅延時間を経過した場合、当該ＣＡＮ  ＩＤのメッセージを不正なメッセージであると判定する。
【００５９】
以上の構成によるＣＡＮシステム５００の動作を説明する。図１０は、本発明の実施例４に係るフィルタ部３０による判定手順を示すフローチャートである。設定部２４は、ＣＡＮ  ＩＤを取得し（Ｓ１５０）、それに応じた遅延時間を設定する（Ｓ１５２）。フィルタ部３０は、判定結果が保留であり（Ｓ１５４のＹ）、当該ＩＤの保留回数のカウント値がしきい値よりも小さく（Ｓ１５６のＹ）、当該メッセージに対する初回の判定であれば（Ｓ１５８のＹ）、カウント値をインクリメントする（Ｓ１６０）。当該メッセージに対する初回の判定でなければ（Ｓ１５８のＮ）、ステップ１６０はスキップされる。
【００６０】
遅延時間が経過しなければ（Ｓ１６２のＮ）、ステップ１５４に戻る。遅延時間が経過すれば（Ｓ１６２のＹ）、フィルタ部３０は、不正なメッセージと判定する（Ｓ１６６）。フィルタ部３０は、当該ＩＤの保留回数のカウント値がしきい値よりも小さくなければ（Ｓ１５６のＮ）、不正なメッセージと判定する（Ｓ１６６）。フィルタ部３０は、判定結果が保留でなく（Ｓ１５４のＮ）、判定結果がＯＫでなければ（Ｓ１６４のＮ）、不正なメッセージと判定する（Ｓ１６６）。フィルタ部３０は、判定結果がＯＫであれば（Ｓ１６４のＹ）、正規のメッセージと判定する（Ｓ１６８）。
【００６１】
本実施例によれば、判定を保留した回数をもとに判定を実行するので、不正なメッセージの検出精度を向上できる。
【００６２】
（実施例４）
次に、実施例４を説明する。実施例４は、これまでと同様に、ＣＡＮにおける不正なメッセージを検出する通信装置、つまりＥＣＵに関する。実施例４でも、メッセージの種類に応じた遅延時間まで判定を遅らせながら、フィルタング処理を実行するが、判定までの遅延を短縮することを目的とする。そのため、実施例４に係る通信装置は、メッセージを即時に判定した後に、当該メッセージを遅延時間まで遅延させてから判定する。通信装置は、両方の判定結果が異なれば、即時に判定した結果を修正する。実施例４に係るＣＡＮシステム５００は、図１と同様のタイプである。また、実施例４に係るＥＣＵ１００は、図３と同様のタイプであってもよいが、車両の状態に応じたフィルリングルールを設定せずに、固定のフィルタリングルールが使用されてもよい。その際は、図３の取得部２０、推定部２２が省略されてもよい。ここでは、固定のフィルタリングルールが使用されているとし、これまでとの差異を中心に説明する。
【００６３】
図１１は、本発明の実施例４に係るフィルタ部３０の構成を示す。フィルタ部３０は、第１フィルタ部８０、第２フィルタ部８２、結果判定部７０を含む。また、結果判定部７０は、修正部８４を含む。
【００６４】
第１フィルタ部８０は、図３の第１ルール記憶部５０からデータフィルタ部６８を含むように構成される。第１フィルタ部８０に含まれたＩＤフィルタ部６０からデータフィルタ部６８の少なくとも１つは、設定部２４において設定した遅延時間まで判定を遅らせずに直ちに、メッセージに対するフィルタリング処理を実行して、処理結果を結果判定部７０に出力する。つまり、第１フィルタ部８０においては、即時のフィルタリング処理が実行される。
【００６５】
結果判定部７０は、第１フィルタ部８０の処理結果を入力する。結果判定部７０は、フィルタリング処理の結果をもとに、判定を実行する。判定はこれまでと同様になされればよいので、ここでは説明を省略する。結果判定部７０は、正規のメッセージであると判定した場合、当該メッセージを出力する。一方、結果判定部７０は、不正なメッセージであると判定した場合、何も出力しないか、不正なメッセージを検出した旨を出力する。
【００６６】
第２フィルタ部８２は、図３の第１ルール記憶部５０からデータフィルタ部６８を含むように構成される。第１フィルタ部８０に含まれたＩＤフィルタ部６０からデータフィルタ部６８の少なくとも１つであって、かつ第１フィルタ部８０において使用した少なくとも１つは、設定部２４において設定した遅延時間まで判定を遅らせながら、メッセージに対するフィルタリング処理を実行し、処理結果を結果判定部７０に出力する。
【００６７】
結果判定部７０は、第２フィルタ部８２の処理結果を入力する。結果判定部７０は、フィルタリング処理の結果をもとに、判定を実行する。判定はこれまでと同様になされればよいので、ここでは説明を省略する。修正部８４は、第１フィルタ部８０での判定結果を入力するとともに、第２フィルタ部８２での判定結果を入力する。第１フィルタ部８０は、第１フィルタ部８０での判定結果と、第２フィルタ部８２での判定結果とを比較する。比較の結果、両者が一致していれば、修正部８４は、判定結果に対応したメッセージに対する処理を終了する。これは、第１フィルタ部８０における判定結果が有効となる場合といえる。一方、判定の結果、両者が異なっていれば、修正部８４は、第１フィルタ部８０での判定結果を修正するための情報と、第２フィルタ部８２での判定結果とを出力する。
【００６８】
本実施例によれば、判定結果をすぐに出力するので、判定までの処理遅延を短縮できる。また、遅延させずに判定した結果と、遅延させてから判定した結果とが異なる場合に、判定結果を修正するので、判定精度を向上できる。また、判定精度が向上されるので、不正なメッセージの検出精度を向上できる。
【００６９】
以上、本発明を実施例をもとに説明した。この実施例は例示であり、それらの各構成要素あるいは各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【００７０】
本発明の一態様の概要は、次の通りである。本発明のある態様の通信装置は、ネットワークにおけるメッセージを送受信する通信部と、通信部において送受信されるメッセージの種類に応じて、遅延時間を設定する設定部と、設定部において設定した遅延時間まで判定を遅らせながら、メッセージに対するフィルタリング処理を実行するフィルタ部と、を備える。
【００７１】
この態様によると、メッセージの種類に応じて設定した遅延時間まで判定を遅らせるので、不正なメッセージの検出精度を向上できる。
【００７２】
フィルタ部は、遅延時間までの間に追加された別のメッセージも利用して、フィルタリング処理の判定を実行してもよい。この場合、遅延時間までの間に追加された別のメッセージも利用するので、不正なメッセージの検出精度を向上できる。
【００７３】
フィルタ部は、遅延時間までの間に追加された別のメッセージの送信周期を利用してもよい。この場合、別のメッセージの送信周期を利用するので、不正なメッセージの検出精度を向上できる。
【００７４】
フィルタ部は、設定部において設定した遅延時間まで判定を遅らせずに、メッセージに対するフィルタリング処理を実行して、判定結果を出力する第１フィルタ部と、設定部において設定した遅延時間まで判定を遅らせながら、メッセージに対するフィルタリング処理を実行する第２フィルタ部と、第２フィルタ部での判定結果が、第１フィルタ部での判定結果と異なっている場合、第１フィルタ部での判定結果を修正するための情報を出力する修正部と、を備えてもよい。この場合、判定結果をすぐに出力してから、修正がある場合だけ修正するので、処理遅延を短縮できる。
【００７５】
本発明の別の態様は、通信方法である。この方法は、ネットワークにおけるメッセージを送受信するステップと、送受信されるメッセージの種類に応じて、遅延時間を設定するステップと、設定した遅延時間まで判定を遅らせながら、メッセージに対するフィルタリング処理を実行するステップと、を備える。
【符号の説明】
【００７６】
１０  通信部、  １２  処理部、  １４  アプリケーション実行部、  ２０  取得部、  ２２  推定部、  ２４  設定部、  ２６  記憶部、  ２８  入力部、  ３０  フィルタ部、  ３２  出力部、  １００  ＥＣＵ、  ２００  ＣＡＮバス、  ５００  ＣＡＮシステム。
【図１】
0006528239.tif 000002
【図２】
0006528239.tif 000003
【図３】
0006528239.tif 000004
【図４】
0006528239.tif 000005
【図５】
0006528239.tif 000006
【図６】
0006528239.tif 000007
【図７】
0006528239.tif 000008
【図８】
0006528239.tif 000009
【図９】
0006528239.tif 000010
【図１０】
0006528239.tif 000011
【図１１】
0006528239.tif 000012