(57)【要約】【課題】ホワイトリストを用いた侵入検知システムにおいて、データの改竄の検知能力を向上させうる通信監視装置を提供する。【解決手段】通信監視装置１０は、車載通信において送受信されるメッセージが改竄されたかを監視する。通信監視装置１０は、メッセージを受信する通信部１１と、複数のメッセージの値の正常な組み合わせのリストをホワイトリストとして格納している記憶部１２と、制御部１３と、を備える。制御部１３は、通信部１１がメッセージを受信すると、該メッセージの値と、該メッセージと同じタイミングで受信した１つ以上の他のメッセージの値とを組み合わせて組み合わせ値を生成し、生成した組み合わせ値がが、ホワイトリストに含まれているか判定し、ホワイトリストに含まれていない場合、受信したメッセージ又は他のメッセージのいずれかが改竄されたと判定する。【選択図】図２
2020005113.tif 000002
【特許請求の範囲】
【請求項１】
車載通信において複数の電子制御ユニット間で送受信されるメッセージが改竄されたか否かを監視する通信監視装置であって、
前記複数の電子制御ユニット間で送受信されるメッセージを受信する通信部と、
複数のメッセージの値の正常な組み合わせのリストをホワイトリストとして格納している記憶部と、
制御部と、を備え、
前記制御部は、
前記通信部がメッセージを受信すると、該メッセージの値と、該メッセージと同じタイミングで受信した１つ以上の他のメッセージの値とを組み合わせて組み合わせ値を生成し、
生成した前記組み合わせ値が、前記ホワイトリストに含まれているか判定し、
前記組み合わせ値が前記ホワイトリストに含まれていない場合、受信した前記メッセージ又は前記他のメッセージのいずれかが改竄されたと判定する、通信監視装置。
【請求項２】
請求項１に記載の通信監視装置において、
前記記憶部は、前記複数のメッセージの値の正常な組み合わせをハッシュ値として格納している、通信監視装置。
【請求項３】
請求項２に記載の通信監視装置において、
前記制御部は、生成した前記組み合わせ値をハッシュしてハッシュ値を生成し、該ハッシュ値が前記ホワイトリストに含まれていない場合、受信した前記メッセージ又は前記他のメッセージのいずれかが改竄されたと判定する、通信監視装置。
【請求項４】
請求項１から３のいずれか一項に記載の通信監視装置において、
前記制御部は、
前記通信部がメッセージを受信すると、該メッセージの値が、該メッセージを送信した前記電子制御ユニットに入力された１つ以上の他のメッセージの値から算出された値であるか判定し、
前記１つ以上の他のメッセージの値から算出された値である場合、受信した前記メッセージの値と、前記１つ以上の他のメッセージの値とを組み合わせて、前記組み合わせ値を生成する、通信監視装置。
【請求項５】
請求項４に記載の通信監視装置において、
前記制御部は、受信した前記メッセージの値が前記１つ以上の他のメッセージの値から算出された値でない場合、受信した前記メッセージが入力されている電子制御ユニットに入力されている１つ以上の他のメッセージの値と、受信した前記メッセージの値とを組み合わせて、前記組み合わせ値を生成する、通信監視装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信監視装置に関する。
【背景技術】
【０００２】
近年、自動車などの車両において、車載通信を用いる技術が進展している。例えば、自動車の多くの機能が、車載通信の通信バスに接続された電子制御ユニット（ＥＣＵ：Electronic Control Unit）によって制御されている。
【０００３】
これに伴い、車載通信に対するサイバー攻撃への対策の重要性が高まっている。例えば特許文献１には、電子制御ユニットに内蔵されているデータが改竄されたか否かを判定する発明が開示されている。
【０００４】
車載通信において、サイバー攻撃によってメッセージが不正に改竄されたことを検知するために、ＩＴ業界で既存の侵入検知システム（ＩＤＳ：Intrusion Detection System）を使用しうる。侵入検知システムとしては、一般的に、メッセージ認証及びホワイトリストの２種類の技術が多く用いられている。
【０００５】
メッセージ認証においては、不正を検知するために、メッセージが認証コードを有する必要がある。しかしながら、車載通信で主に用いられているＣＡＮ（Controller Area Network）通信においては、メッセージが保持可能なデータ量が少ないため、認証コードに割り当て可能なデータ量が少ない。そのため、総当たり攻撃などによって、短時間で認証コードが解読されうる。
【０００６】
また、メッセージ認証をするためには、それぞれの電子制御ユニットにおいて鍵を管理する必要があるが、このような鍵の管理には大きなコストがかかる。
【０００７】
これに対し、ホワイトリストを用いた方式では、メッセージが認証コードを有する必要がないため、認証コードを解読されるおそれがない。また、ホワイトリストを用いた方式では、それぞれの電子制御ユニットにおいて鍵を管理する必要がないため、鍵を管理するためのコストが不要である。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００５−２４２８７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、ホワイトリストを用いた方式には、ホワイトリストに含まれているデータの範囲内でデータを改竄されると、改竄されたことを検出できないという問題がある。例えば、車速メータに対し本来６０ｋｍ／ｈのデータを送るべきところを、２０ｋｍ／ｈのデータに改竄されても、車速のデータとして２０ｋｍ／ｈはホワイトリストに含まれている通常のデータの範囲内であるため、データが改竄されたことを検出できない。
【００１０】
かかる観点に鑑みてなされた本発明の目的は、ホワイトリストを用いた侵入検知システムにおいて、データの改竄の検知能力を向上させうる通信監視装置を提供することにある。
【課題を解決するための手段】
【００１１】
上記課題を解決するために、第１の観点に係る通信監視装置は、
車載通信において複数の電子制御ユニット間で送受信されるメッセージが改竄されたか否かを監視する通信監視装置であって、
前記複数の電子制御ユニット間で送受信されるメッセージを受信する通信部と、
複数のメッセージの値の正常な組み合わせのリストをホワイトリストとして格納している記憶部と、
制御部と、を備え、
前記制御部は、
前記通信部がメッセージを受信すると、該メッセージの値と、該メッセージと同じタイミングで受信した１つ以上の他のメッセージの値とを組み合わせて組み合わせ値を生成し、
生成した前記組み合わせ値が、前記ホワイトリストに含まれているか判定し、
前記組み合わせ値が前記ホワイトリストに含まれていない場合、受信した前記メッセージ又は前記他のメッセージのいずれかが改竄されたと判定する。
【発明の効果】
【００１２】
第１の観点に係る通信監視装置によれば、ホワイトリストを用いた侵入検知システムにおいて、データの改竄の検知能力を向上させうる。
【図面の簡単な説明】
【００１３】
【図１】一実施形態に係る通信監視装置が通信バスに接続されている様子を示す図である。
【図２】一実施形態に係る通信監視装置の構成例を示すブロック図である。
【図３】記憶部が格納しているホワイトリストの一例を示す図である。
【図４】ハッシュ値で格納することによりデータ量を低減しうる効果を示す図である。
【図５】通信監視装置が複数の電子制御ユニットと接続されている構成の一例を示す図である。
【図６】図５において通信監視装置が受信するメッセージの値の一例を示す図である。
【図７】図５の構成例において、１つのメッセージが改竄されている様子を示す図である。
【図８】図７において通信監視装置が受信するメッセージの値の一例を示す図である。
【図９】一実施形態に係る通信監視装置の動作の一例を示すフローチャートである。
【発明を実施するための形態】
【００１４】
以下、本開示の実施形態について、図面を参照して説明する。
【００１５】
図１に示すように、一実施形態に係る通信監視装置１０は、通信バス１に接続されている。通信バス１は、車載通信において用いられる通信バスである。図１に示す例では、通信バス１の通信プロトコルは、ＣＡＮである。なお、通信バス１の通信プロトコルをＣＡＮとしたのは一例であり、通信バス１の通信プロトコルは、これに限定されない。例えば、通信バス１の通信プロトコルは、ＣＡＮ  ＦＤ（CAN with Flexible Data rate）であってもよい。
【００１６】
通信バス１には、電子制御ユニット（ＥＣＵ）２０−１〜２０−４が接続されている。以後、電子制御ユニット２０−１〜２０−４について、特に区別する必要がない場合は、電子制御ユニット２０と総称する場合がある。
【００１７】
電子制御ユニット２０は、自動車などの車両に搭載されている電装品を制御する制御ユニット、又は車両状況を監視する検知・監視ユニットである。図１においては、通信バス１に４つの電子制御ユニット２０が接続されているが、通信バス１に接続される電子制御ユニット２０の個数はこれに限定されない。通信バス１には、任意の個数の電子制御ユニット２０が接続されてよい。
【００１８】
電子制御ユニット２０は、通信バス１を介して他の電子制御ユニット２０とメッセージを送受信する。ここで、「メッセージ」とは、ＣＡＮ通信などの車載通信において送受信されるデータのまとまりである。「メッセージ」は、「フレーム」とも呼ばれる。
【００１９】
通信監視装置１０は、自動車などの車両に搭載されていてよい。通信監視装置１０は、通信バス１上のメッセージを監視する。通信監視装置１０は、複数の電子制御ユニット２０の間で送受信されるメッセージが改竄されたか否かを監視する。通信監視装置１０は、電子制御ユニットの１つとして機能してよい。
【００２０】
図２に示すように、一実施形態に係る通信監視装置１０は、通信部１１と、記憶部１２と、制御部１３とを備える。
【００２１】
通信部１１は、通信バス１に接続している。通信部１１は、複数の電子制御ユニット２０の間で送受信されるメッセージを受信する。通信部１１は、通信バス１に接続されている全ての電子制御ユニット２０が送信するメッセージを受信してもよいし、予め指定した電子制御ユニット２０が送信するメッセージのみを受信してもよい。
【００２２】
記憶部１２は、制御部１３に接続され、制御部１３から取得した情報を格納する。記憶部１２は、制御部１３のワーキングメモリとして機能してよい。記憶部１２は、制御部１３で実行されるプログラムを格納してよい。記憶部１２は、例えば、半導体メモリで構成されるが、これには限られず、磁気記憶媒体で構成されてよいし、他の記憶媒体で構成されてよい。記憶部１２は、制御部１３の一部として制御部１３に含まれてよい。
【００２３】
記憶部１２は、電子制御ユニット２０の間で送受信されるメッセージの値の正常な組み合わせのリストをホワイトリストとして格納している。ここで、「メッセージの値」とは、メッセージが含む実体的なデータの値であり、ペイロードとも称される。例えば、メッセージがエンジン回転数のデータを含むメッセージである場合、「メッセージの値」はエンジン回転数を示す値であり、例えば「１６００ＲＰＭ」などのような値である。また、例えば、メッセージがギヤシフトのデータを含むメッセージである場合、「メッセージの値」はギヤシフトを示す値であり、例えば「３」などのような値である。
【００２４】
図３（ａ）に、記憶部１２がホワイトリストとして格納している、メッセージの値の正常な組み合わせの一例を示す。
【００２５】
図３（ａ）において、「インデックス」は、メッセージの値の正常な組み合わせのそれぞれに対して付されている番号である。
【００２６】
「データＩＤ」は、各メッセージに含まれているＩＤであり、メッセージがどのような種類のデータを含むメッセージであるかを示す。データＩＤは、例えば、メッセージに含まれるデータがエンジン回転数であることを示す。
【００２７】
「ペイロード」は、メッセージの値を示す。例えば、図３（ａ）において、データＩＤ「０ｘ０００」がエンジン回転数である場合、ペイロード「００  １１  ００  １１  ００  ０１」は、１６００ＲＰＭなどの値を示す。
【００２８】
図３（ａ）に示す例では、４つのメッセージの値の正常な組み合わせを示している。記憶部１２は、データＩＤが、「０ｘ０００」、「０ｘ００１」、「０ｘ００２」及び「０００３」である４つのメッセージの正常な値の組み合わせとして、全てのあり得る組み合わせをホワイトリストとして格納している。また、記憶部１２は、他のデータＩＤの組み合わせに対しても、正常な値の組み合わせとして全てのあり得る組み合わせをホワイトリストとして格納している。
【００２９】
記憶部１２は、図３（ａ）に示すような正常な値の組み合わせをハッシュして、図３（ｂ）に示すようなハッシュ値として、正常な値の組み合わせを格納してよい。図３（ｂ）に示すハッシュ値に変換されたペイロードの値「１２９ＤＳｆ１２」は、図３（ａ）に示す４つのペイロードの値「００  １１  ００  １１  ００  ０１」、「００  １１  ００  １１  ００  ０２」、「００  １１  ００  １１  ００  ０３」及び「００  １１  ００  １１  ００  ０４」をまとめてハッシュして、ハッシュ値としたものである。
【００３０】
記憶部１２は、図３（ｂ）に示す様に、正常な値の組み合わせをハッシュ値として記憶することにより、ホワイトリストを格納するために必要なメモリ容量を低減しうる。
【００３１】
例えば、正常な値の組み合わせを１２８ビットのハッシュ値に変換して記憶部１２に格納する場合、メッセージの組み合わせの数をＮ、１つのメッセージのペイロードのデータサイズをＰ（バイト）とすると、ハッシュ値にすることにより、下記の式（１）に表されるメモリサイズを削減しうる。
削減できるメモリサイズ（ビット）＝Ｎ×Ｐ×８−１２８    （１）
【００３２】
図４に、上述の式（１）に基づくグラフを示す。図４は、横軸がメッセージの組み合わせの数であり、縦軸が削減できるメモリサイズ（ビット）である。図４には、ペイロードのデータサイズＰが、４、８、１６、３２及び６４の場合のグラフを示している。例えば、ペイロードのデータサイズＰが３２バイトで、メッセージの組み合わせの数が１０である場合、削減できるメモリサイズは、２４３２ビットである。
【００３３】
以後、記憶部１２は、正常な値の組み合わせをハッシュ値として格納しているものとして説明する。
【００３４】
なお、記憶部１２が、正常な値の組み合わせをハッシュ値として格納することは必須ではなく、記憶部１２は、正常な値の組み合わせをハッシュ値に変換せずに格納してもよい。
【００３５】
制御部１３は、通信監視装置１０の各構成部を制御する。制御部１３は、例えば、制御手順を規定したプログラムを実行するＣＰＵ（Central Processing Unit）等のプロセッサで構成されてよい。制御部１３は、例えば、記憶部１２に格納されているプログラムを読み込み、各種プログラムを実行する。
【００３６】
制御部１３は、通信部１１がメッセージを受信すると、該メッセージの値と、通信部１１が同じタイミングで受信した１つ以上の他のメッセージの値とを組み合わせて「組み合わせ値」を生成する。以後、制御部１３が複数のメッセージの値を組み合わせて生成した値について、「組み合わせ値」との用語を用いることがある。
【００３７】
ここで、「通信部１１が同じタイミングで受信した」とは、完全に同じタイミングで受信したことのみを意味するのではなく、通信部１１が連続的にメッセージを受信した場合など、ほぼ同じタイミングで受信したことも含む。
【００３８】
制御部１３は、受信したメッセージの値と、同じタイミングで受信した他のメッセージの値とを組み合わせて、組み合わせ値を生成すると、該組み合わせ値をハッシュして、組み合わせ値のハッシュ値を生成する。
【００３９】
制御部１３は、組み合わせ値のハッシュ値を生成すると、記憶部１２が格納しているホワイトリストに該ハッシュ値が含まれているか否かを判定する。
【００４０】
制御部１３は、組み合わせ値から生成したハッシュ値がホワイトリストに含まれていない場合、組み合わせ値を生成するために用いたいずれかのメッセ−が改竄されたと判定する。
【００４１】
制御部１３は、組み合わせ値を生成するために用いたいずれかのメッセ−が改竄されたと判定した場合、例えば、通信バス１を介して制御可能な表示機器に通知して表示させるなどして、メッセージが改竄されたことをユーザに通知してよい。
【００４２】
制御部１３は、通信部１１がメッセージを受信すると、受信したメッセージの値が、該メッセージを送信した電子制御ユニット２０に入力された１つ以上の他のメッセージの値から算出された値であるか否かを判定する。制御部１３は、例えば受信したメッセージのデータＩＤに基づいて、受信したメッセージの値が、該メッセージを送信した電子制御ユニット２０に入力された１つ以上の他のメッセージの値から算出された値であるか否かを判定してよい。
【００４３】
例えば、受信したメッセージのデータＩＤが、メッセージの種類が「車速」であることを示すものである場合、このメッセージは、車速算出ＥＣＵとして機能する電子制御ユニット２０から送信されたものである。この場合、メッセージの値である「車速」は、車速算出ＥＣＵとして機能する電子制御ユニット２０に入力された、３つのメッセージの値（エンジン回転数、アクセル開度、ギヤシフト）から算出された値である。したがって、制御部１３は、データＩＤが「車速」に対応するメッセージを通信部１１が受信すると、該メッセージの値は、該メッセージを送信した電子制御ユニット２０に入力された３つの他のメッセージの値から算出された値であると判定する。
【００４４】
また、例えば、受信したメッセージのデータＩＤが、メッセージの種類が「エンジン回転数」であることを示すものである場合、このメッセージは、エンジン制御ＥＣＵとして機能する電子制御ユニット２０から送信されたものである。この場合、メッセージの値である「エンジン回転数」は、エンジン制御ＥＣＵとして機能する電子制御ユニット２０に、システムから入力された値である。したがって、制御部１３は、データＩＤが「エンジン回転数」に対応するメッセージを通信部１１が受信すると、該メッセージの値は、該メッセージを送信した電子制御ユニット２０に入力された１つ以上の他のメッセージの値から算出された値ではないと判定する。
【００４５】
制御部１３は、受信したメッセージの値が、該メッセージを送信した電子制御ユニット２０に入力された１つ以上の他のメッセージの値から算出された値である場合、受信したメッセージの値と、該メッセージを送信した電子制御ユニット２０に入力された１つ以上の他のメッセージの値とを組み合わせて、組み合わせ値を生成する。
【００４６】
例えば、制御部１３は、受信したメッセージの値が「車速」である場合、車速算出ＥＣＵとして機能する電子制御ユニット２０に入力された他のメッセージの値である「エンジン回転数」、「アクセル開度」及び「ギヤシフト」と、「車速」とを組み合わせて、組み合わせ値を生成する。
【００４７】
制御部１３は、受信したメッセージの値が、該メッセージを送信した電子制御ユニット２０に入力された１つ以上の他のメッセージの値から算出された値でない場合、受信したメッセージの値と、受信したメッセージが入力されている電子制御ユニット２０に入力されている１つ以上の他のメッセージの値とを組み合わせて、組み合わせ値を生成する。
【００４８】
例えば、制御部１３は、受信したメッセージの値が「エンジン回転数」である場合、該メッセージが入力されている車速算出ＥＣＵとして機能する電子制御ユニット２０に入力された他のメッセージの値である「アクセル開度」及び「ギヤシフト」と、「エンジン回転数」とを組み合わせて、組み合わせ値を生成する。
【００４９】
図５に、通信監視装置１０と複数の電子制御ユニット２０とが接続されている構成の一例を示す。図５に示す構成例を参照して、通信監視装置１０の動作の具体例について説明する。
【００５０】
図５に示す構成例においては、電子制御ユニット２０−１〜２０−４は、それぞれ、エンジン制御ＥＣＵ２０−１、アクセル検知ＥＣＵ２０−２、ギヤ検知ＥＣＵ２０−３、及び車速算出ＥＣＵ２０−４であるものとする。
【００５１】
エンジン制御ＥＣＵ２０−１は、システム３０から、エンジン回転数の情報をハードウェア信号として受信する。エンジン制御ＥＣＵ２０−１は、運転者の操作によって生成されたハードウェア信号として、エンジン回転数の情報を受信してよい。
【００５２】
エンジン制御ＥＣＵ２０−１は、エンジン回転数の値をペイロードとして含むメッセージＭ１を、車速算出ＥＣＵ２０−４に送信する。また、エンジン制御ＥＣＵ２０−１は、車速算出ＥＣＵ２０−４に送信したメッセージＭ１を、通信監視装置１０にも送信する。
【００５３】
アクセル検知ＥＣＵ２０−２は、システム３０から、アクセル開度の情報をハードウェア信号として受信する。アクセル検知ＥＣＵ２０−２は、運転者の操作によって生成されたハードウェア信号として、アクセル開度の情報を受信してよい。
【００５４】
アクセル検知ＥＣＵ２０−２は、アクセル開度の値をペイロードとして含むメッセージＭ２を、車速算出ＥＣＵ２０−４に送信する。また、アクセル検知ＥＣＵ２０−２は、車速算出ＥＣＵ２０−４に送信したメッセージＭ２を、通信監視装置１０にも送信する。
【００５５】
ギヤ検知ＥＣＵ２０−３は、システム３０から、ギヤシフトの情報をハードウェア信号として受信する。ギヤ検知ＥＣＵ２０−３は、運転者の操作によって生成されたハードウェア信号として、ギヤシフトの情報を受信してよい。
【００５６】
ギヤ検知ＥＣＵ２０−３は、ギヤシフトの値をペイロードとして含むメッセージＭ３を、車速算出ＥＣＵ２０−４に送信する。また、ギヤ検知ＥＣＵ２０−３は、車速算出ＥＣＵ２０−４に送信したメッセージＭ３を、通信監視装置１０にも送信する。
【００５７】
車速算出ＥＣＵ２０−４は、エンジン制御ＥＣＵ２０−１からメッセージＭ１を受信し、アクセル検知ＥＣＵ２０−２からメッセージＭ２を受信し、ギヤ検知ＥＣＵ２０−３からメッセージＭ３を受信する。車速算出ＥＣＵ２０−４は、メッセージＭ１の値であるエンジン回転数、メッセージＭ２の値であるアクセル開度、及びメッセージＭ３の値であるギヤシフトから、車速を算出する。
【００５８】
車速算出ＥＣＵ２０−４は、算出した車速の値をペイロードとして含むメッセージＭ４を、メータ４０に送信する。メータ４０は、メッセージＭ４を受信すると、メッセージＭ４が含む車速の値を表示する。車速算出ＥＣＵ２０−４は、メータ４０に送信したメッセージＭ４を、通信監視装置１０にも送信する。
【００５９】
図６に、メッセージＭ１〜Ｍ４の値の一例を示す。図６において、データＩＤが「エンジン回転数」であるとは、メッセージＭ１の含むデータＩＤが、メッセージＭ１の種類が「エンジン回転数」であることを示している。図６に示す値は、エンジン回転数、アクセル開度、ギヤシフト及び車速の４つの値の組み合わせとして、整合がとれている値である。したがって、この４つの値を組み合わせた組み合わせ値のハッシュ値は、通信監視装置１０の記憶部１２が格納するホワイトリストに含まれている。
【００６０】
また、図６に示す値は、エンジン回転数、アクセル開度及びギヤシフトの３つの値の組み合わせとしても整合がとれている。したがって、この３つの値を組み合わせた組み合わせ値のハッシュ値も、通信監視装置１０の記憶部１２が格納するホワイトリストに含まれている。
【００６１】
図５に示す構成例において、通信監視装置１０の通信部１１がエンジン制御ＥＣＵ２０−１からメッセージＭ１を受信すると、制御部１３は、メッセージＭ１のエンジン回転数の値は、エンジン制御ＥＣＵ２０−１に入力された１つ以上の他のメッセージの値から算出された値ではないと判定する。この場合、制御部１３は、メッセージＭ１が入力されている車速算出ＥＣＵ２０−４に入力されている他のメッセージであるメッセージＭ２及びメッセージＭ３の値と、メッセージＭ１の値とを組み合わせて組み合わせ値を生成する。図６に示す例の場合、制御部１３は、エンジン回転数の「１６００ＲＰＭ」、アクセル開度の「＋２０％」、及びギヤシフトの「３」という３つの値を組み合わせて、組み合わせ値を生成する。
【００６２】
制御部１３は、メッセージＭ１〜Ｍ３の３つの値から生成した組み合わせ値をハッシュしてハッシュ値を生成する。制御部１３が生成したハッシュ値が、例えば「ｃｋａ１６２０ｃ」であるとすると、このハッシュ値は記憶部１２が格納しているホワイトリストに含まれている。したがって、制御部１３は、メッセージＭ１〜Ｍ３の３つの値は改竄されていないと判定する。
【００６３】
通信監視装置１０の通信部１１がアクセル検知ＥＣＵ２０−２からメッセージＭ２を受信した場合も、上述のエンジン制御ＥＣＵ２０−１からメッセージＭ１を受信した場合と同様に、制御部１３は、メッセージＭ１〜Ｍ３の３つの値から生成した組み合わせ値をハッシュしてハッシュ値を生成する。
【００６４】
また、通信監視装置１０の通信部１１がギヤ検知ＥＣＵ２０−３からメッセージＭ３を受信した場合も、上述のエンジン制御ＥＣＵ２０−１からメッセージＭ１を受信した場合と同様に、制御部１３は、メッセージＭ１〜Ｍ３の３つの値から生成した組み合わせ値をハッシュしてハッシュ値を生成する。
【００６５】
図５に示す構成例において、通信監視装置１０の通信部１１が車速算出ＥＣＵ２０−４からメッセージＭ４を受信すると、制御部１３は、メッセージＭ４の車速の値は、車速算出ＥＣＵ２０−４に入力された３つのメッセージＭ１〜Ｍ３の値から算出された値であると判定する。この場合、制御部１３は、メッセージＭ４の値と、車速算出ＥＣＵ２０−４に入力されているメッセージＭ１〜Ｍ３の値とを組み合わせて組み合わせ値を生成する。図６に示す例の場合、制御部１３は、エンジン回転数の「１６００ＲＰＭ」、アクセル開度の「＋２０％」、ギヤシフトの「３」、及び車速の「８０ｋｍ／ｈ」という４つの値を組み合わせて、組み合わせ値を生成する。
【００６６】
制御部１３は、メッセージＭ１〜Ｍ４の４つの値から生成した組み合わせ値をハッシュしてハッシュ値を生成する。制御部１３が生成したハッシュ値が、例えば「ｃｋｓ８０２０ｃ」であるとすると、このハッシュ値は記憶部１２が格納しているホワイトリストに含まれている。したがって、制御部１３は、メッセージＭ１〜Ｍ４の４つの値は改竄されていないと判定する。
【００６７】
図７に、図５に示す構成例において、アクセル検知ＥＣＵ２０−２がサイバー攻撃を受けて、アクセル検知ＥＣＵ２０−２が送信するメッセージＭ２が改竄された様子を示す。例えば、図８に示すように、メッセージＭ２の値であるアクセル開度の値が、本来の「＋２０％」から「−４０％」に改竄されたものとする。この場合、改竄されたメッセージＭ２の値を用いて車速が算出されるため、メッセージＭ４の値も、本来は「８０ｋｍ／ｈ」となるところが「２０ｋｍ／ｈ」となっている。
【００６８】
この場合、通信監視装置１０の通信部１１が、エンジン制御ＥＣＵ２０−１からメッセージＭ１を受信するか、アクセル検知ＥＣＵ２０−２からメッセージＭ２を受信するか、又は、ギヤ検知ＥＣＵ２０−３からメッセージＭ３を受信すると、制御部１３は、メッセージＭ１〜Ｍ３の３つの値から生成した組み合わせ値をハッシュしてハッシュ値を生成する。図８に示す例の場合、制御部１３は、エンジン回転数の「１６００ＲＰＭ」、改竄された値であるアクセル開度の「−４０％」、及びギヤシフトの「３」という３つの値を組み合わせて、組み合わせ値を生成する。
【００６９】
制御部１３が改竄されたメッセージＭ２を含むメッセージＭ１〜Ｍ３の３つの値を組み合わせて生成したハッシュ値が、例えば「ｃｋｒ１６４０ｅ」であるとすると、このハッシュ値は記憶部１２が格納しているホワイトリストに含まれていない。したがって、制御部１３は、メッセージＭ１〜Ｍ３の３つの値のうち、いずれかの値が改竄されていると判定する。
【００７０】
アクセル開度の「−４０％」という値は、単独の値としては、アクセル開度の値として正常範囲の値である。しかしながら、本実施形態に係る通信監視装置１０によれば、制御部１３が、メッセージＭ１〜Ｍ３の複数の値を組み合わせて生成したハッシュ値がホワイトリストに含まれているかで改竄の有無を判定することにより、メッセージが改竄されたことを検出しうる。
【００７１】
また、図７に示すような改竄がされた場合において、通信監視装置１０の通信部１１が車速算出ＥＣＵ２０−４からメッセージＭ４を受信すると、制御部１３は、メッセージＭ１〜Ｍ４の４つの値から生成した組み合わせ値をハッシュしてハッシュ値を生成する。図８に示す例の場合、制御部１３は、エンジン回転数の「１６００ＲＰＭ」、改竄された値であるアクセル開度の「−４０％」、ギヤシフトの「３」、及び車速の「２０ｋｍ／ｈ」という４つの値を組み合わせて、組み合わせ値を生成する。
【００７２】
制御部１３が改竄されたメッセージＭ２を含むメッセージＭ１〜Ｍ４の４つの値を組み合わせて生成したハッシュ値が、例えば「ｃｋｓ２０４０ｅ」であるとすると、このハッシュ値は記憶部１２が格納しているホワイトリストに含まれていない。したがって、制御部１３は、メッセージＭ１〜Ｍ４の４つの値のうち、いずれかの値が改竄されていると判定する。
【００７３】
アクセル開度の「−４０％」という値、及び車速の「２０ｋｍ／ｈ」という値は、それぞれ、単独の値としては、アクセル開度の値及び車速の値として正常範囲の値である。しかしながら、本実施形態に係る通信監視装置１０によれば、制御部１３が、メッセージＭ１〜Ｍ４の複数の値を組み合わせて生成したハッシュ値がホワイトリストに含まれているかで改竄の有無を判定することにより、メッセージが改竄されたことを検出しうる。
【００７４】
図９に示すフローチャートを参照して、一実施形態に係る通信監視装置１０の動作の一例について説明する。
【００７５】
通信監視装置１０の制御部１３は、通信部１１がメッセージを受信したかを常時監視している（ステップＳ１０１）。制御部１３は、通信部１１がメッセージを受信すると（ステップＳ１０２）、受信したメッセージの値が、該メッセージを送信した電子制御ユニット２０に入力された１つ以上の他のメッセージの値から算出された値であるか否かを判定する（ステップＳ１０３）。
【００７６】
受信したメッセージの値が、他のメッセージの値から算出された値である場合（ステップＳ１０３のＹｅｓ）、制御部１３は、第１の組み合わせでハッシュ値を生成する（ステップＳ１０４）。ここで、「第１の組み合わせ」とは、受信したメッセージの値と、該メッセージを送信した電子制御ユニット２０に入力された１つ以上の他のメッセージの値との組み合わせを意味するものとする。
【００７７】
受信したメッセージの値が、他のメッセージの値から算出された値ではない場合（ステップＳ１０３のＮｏ）、制御部１３は、第２の組み合わせでハッシュ値を生成する（ステップＳ１０５）。ここで、「第２の組み合わせ」とは、受信したメッセージの値と、受信したメッセージが入力されている電子制御ユニット２０に入力されている１つ以上の他のメッセージの値との組み合わせを意味するものとする。
【００７８】
ステップＳ１０４又はステップＳ１０５においてハッシュ値を生成すると、制御部１３は、生成したハッシュ値が、記憶部１２が格納しているホワイトリストに含まれているか否かを判定する（ステップＳ１０６）。
【００７９】
生成したハッシュ値がホワイトリストに含まれていると判定した場合（ステップＳ１０６のＹｅｓ）、制御部１３は、組み合わせに用いられたいずれかのメッセージが改竄されていると判定する（ステップＳ１０７）。メッセージが改竄されていると判定した場合、制御部１３は、例えば、通信バス１を介して制御可能な表示機器に通知して表示させるなどして、メッセージが改竄されたことをユーザに通知してよい。
【００８０】
生成したハッシュ値がホワイトリストに含まれていないと判定した場合（ステップＳ１０６のＮｏ）、制御部１３は、組み合わせに用いられたいずれのメッセージも改竄されていないと判定し、ステップＳ１０１に戻る。
【００８１】
本実施形態に係る通信監視装置１０によれば、記憶部１２は、複数のメッセージの値の正常な組み合わせのリストをホワイトリストとして格納している。また、制御部１３は、通信部１１がメッセージを受信すると、該メッセージの値と、該メッセージと同じタイミングで受信した１つ以上の他のメッセージの値とを組み合わせて組み合わせ値を生成し、生成した組み合わせ値が、ホワイトリストに含まれているか判定する。そして、制御部１３は、組み合わせ値がホワイトリストに含まれていない場合、受信したメッセージ又は他のメッセージのいずれかが改竄されたと判定する。このように複数のメッセージの値を組み合わせた組み合わせ値で改竄を判定することにより、本実施形態に係る通信監視装置１０は、１つのメッセージの値が通常の値の範囲内で改竄されている場合も、改竄されたことを検出しうる。これにより、本実施形態に係る通信監視装置１０は、ホワイトリストを用いた侵入検知システムにおいて、データの改竄の検知能力を向上させうる。
【００８２】
また、本実施形態に係る通信監視装置１０によれば、記憶部１２は、複数のメッセージの値の正常な組み合わせをハッシュ値として格納している。これにより、本実施形態に係る通信監視装置１０は、記憶部１２がホワイトリストを格納するために必要なメモリ容量を低減しうる。
【００８３】
本開示に係る一実施形態について、諸図面及び実施例に基づき説明してきたが、当業者であれば本開示に基づき種々の変形又は修正を行うことが容易であることに注意されたい。従って、これらの変形又は修正は本開示の範囲に含まれることに留意されたい。例えば、各手段に含まれる機能等は論理的に矛盾しないように再配置可能であり、複数の手段等を１つに組み合わせたり、あるいは分割したりすることが可能である。
【符号の説明】
【００８４】
１  通信バス
１０  通信監視装置
１１  通信部
１２  記憶部
１３  制御部
２０  電子制御ユニット（ＥＣＵ）
３０  システム
４０  メータ
【図１】
2020005113.tif 000003
【図２】
2020005113.tif 000004
【図３】
2020005113.tif 000005
【図４】
2020005113.tif 000006
【図５】
2020005113.tif 000007
【図６】
2020005113.tif 000008
【図７】
2020005113.tif 000009
【図８】
2020005113.tif 000010
【図９】
2020005113.tif 000011