(57)【要約】【課題】情報処理装置の記憶部に記憶されたプログラム又はデータに対する不正な書き換えが行われたことを検出し得る書換検出システム、書換検出装置及び情報処理装置を提供する。【解決手段】書換検出装置５がランダムシードを生成してＥＣＵ２及びサーバ装置７へ送信する。ＥＣＵ２は受信したランダムシードと記憶部の記憶内容とに基づき、所定のハッシュ関数を用いてハッシュ値を算出して書換検出装置５へ送信する。また書換検出装置５からの問い合わせに応じてサーバ装置７が期待値を送信する。書換検出装置５は、サーバ装置７から受信した期待値とＥＣＵ２から受信したハッシュ値とが一致するか否かに応じて、ＥＣＵ２のプログラム又はデータに対する不正な書き換えが行われたか否かを判定する。【選択図】図８
2015058896.tif 000002
【特許請求の範囲】
【請求項１】
プログラム又はデータを記憶した記憶部、該記憶部に記憶されたプログラム又はデータに基づく処理を行う処理部、並びに、ネットワークを介して他の装置との通信を行う通信部を有する情報処理装置に対して、前記記憶部に記憶されたプログラム又はデータの書き換えを検出する書換検出システムであって、
前記ネットワークを介して前記情報処理装置へ種情報を送信する種情報送信手段、該種情報送信手段が送信した種情報に応じて前記情報処理装置から送信されるハッシュ値を受信するハッシュ値受信手段、並びに、該ハッシュ値受信手段が受信したハッシュ値の正否を判定するハッシュ値判定手段を有し、該ハッシュ値判定手段の判定結果に応じて書き換えを検出する書換検出装置を備え、
前記情報処理装置は、前記種情報送信手段が送信した種情報及び前記記憶部に記憶したプログラム又はデータに基づくハッシュ値を算出するハッシュ値算出手段を有し、該ハッシュ値算出手段が算出したハッシュ値を前記書換検出装置へ送信するようにしてあること
を特徴とする書換検出システム。
【請求項２】
前記書換検出装置の前記種情報送信手段は、前記記憶部の記憶領域を指定する記憶領域指定情報を前記種情報と共に前記情報処理装置へ送信し、
前記情報処理装置の前記ハッシュ値算出手段は、前記種情報と、該種情報と共に送信された前記記憶領域指定情報にて指定された前記記憶部の記憶領域に記憶したプログラム又はデータとに基づいてハッシュ値を算出するようにしてあること
を特徴とする請求項１に記載の書換検出システム。
【請求項３】
前記種情報送信手段は、記憶領域の先頭位置と、前記記憶領域の末尾位置又はサイズを指定する情報を含む前記記憶領域指定情報を送信するようにしてあること
を特徴とする請求項２に記載の書換検出システム。
【請求項４】
前記記憶領域には、不連続な複数の領域を指定することが可能であり、
前記種情報送信手段は、前記複数の領域を特定する情報を含む前記記憶領域指定情報を送信するようにしてあること
を特徴とする請求項２又は請求項３に記載の書換検出システム。
【請求項５】
前記記憶領域指定情報は、前記複数の領域の間隔を指定する情報であること
を特徴とする請求項４に記載の書換検出システム。
【請求項６】
前記情報処理装置は、前記種情報と共に受信した前記記憶領域指定情報による記憶領域の指定が所定条件を満たさない場合に、前記書換検出装置へのハッシュ値の送信を行わないようにしてあること
を特徴とする請求項２乃至請求項５のいずれか１つに記載の書換検出システム。
【請求項７】
前記情報処理装置は、前記記憶領域指定情報により指定された記憶領域のサイズが、所定サイズ又は該所定サイズの定数倍サイズでない場合に、前記書換検出装置へのハッシュ値の送信を行わないようにしてあること
を特徴とする請求項６に記載の書換検出システム。
【請求項８】
前記情報処理装置は、前記種情報送信手段が送信した種情報に基づいて、ハッシュ値の算出対象とすべき前記記憶部の記憶領域を決定し、
前記ハッシュ値算出手段は、種情報に基づいて決定した記憶領域に記憶したプログラム又はデータに基づいてハッシュ値を算出するようにしてあること
を特徴とする請求項１に記載の書換検出システム。
【請求項９】
前記情報処理装置は、ハッシュ値を前記書換検出装置へ送信した後、所定時間が経過するまでハッシュ値の送信を行わないようにしてあること
を特徴とする請求項１乃至請求項８のいずれか１つに記載の書換検出システム。
【請求項１０】
前記記憶部には、前記プログラム又はデータが記憶された記憶領域以外の余剰領域にランダムなデータが記憶してあること
を特徴とする請求項１乃至請求項９のいずれか１つに記載の書換検出システム。
【請求項１１】
前記書換検出装置は、
前記種情報送信手段による種情報の送信から前記ハッシュ値受信手段によるハッシュ値の受信までの時間を計測する計測手段を有し、
該計測手段が計測した時間に応じて書き換えを検出するようにしてあること
を特徴とする請求項１乃至請求項１０のいずれか１つに記載の書換検出システム。
【請求項１２】
前記種情報送信手段は、ランダムな値を前記種情報として送信するようにしてあること
を特徴とする請求項１乃至請求項１１のいずれか１つに記載の書換検出システム。
【請求項１３】
前記種情報に対する前記ハッシュ値の期待値を送信する送信手段を有するサーバ装置を更に備え、
前記書換検出装置は、
前記種情報に対する前記ハッシュ値の期待値を前記サーバ装置へ問い合わせる問い合わせ手段と、
該問い合わせ手段の問い合わせに対して前記サーバ装置から送信される前記期待値を受信する受信手段と
を有し、
前記ハッシュ値判定手段は、前記受信手段が受信した期待値に基づいて、前記ハッシュ値受信手段が受信したハッシュ値の正否を判定するようにしてあること
を特徴とする請求項１乃至請求項１２のいずれか１つに記載の書換検出システム。
【請求項１４】
前記種情報及び前記ハッシュ値の期待値を送信する送信手段を有するサーバ装置を更に備え、
前記書換検出装置は、
前記種情報及び前記期待値を前記サーバ装置へ問い合わせる問い合わせ手段と、
該問い合わせ手段の問い合わせに対して前記サーバ装置から送信される前記種情報及び前記期待値を受信する受信手段と
を有し、
前記種情報送信手段は、前記受信手段が前記サーバ装置から受信した前記種情報を前記情報処理装置へ送信するようにしてあり、
前記ハッシュ値判定手段は、前記受信手段が受信した期待値に基づいて、前記ハッシュ値受信手段が受信したハッシュ値の正否を判定するようにしてあること
を特徴とする請求項１乃至請求項１２のいずれか１つに記載の書換検出システム。
【請求項１５】
前記書換検出装置は、移動体に搭載されており、前記サーバ装置との通信が可能な場合に前記問い合わせ手段による問い合わせ及び前記受信手段による前記期待値の受信を行って、受信した前記期待値を記憶しておき、
前記ハッシュ値判定手段は、記憶した前記期待値に基づいて、前記ハッシュ値受信手段が受信したハッシュ値の正否を判定するようにしてあること
を特徴とする請求項１３又は請求項１４に記載の書換検出システム。
【請求項１６】
前記書換検出装置は、移動体に搭載されていること
を特徴とする請求項１乃至請求項１４のいずれか１つに記載の書換検出システム。
【請求項１７】
前記書換検出装置は、前記ネットワークに対して着脱可能に構成されていること
を特徴とする請求項１乃至請求項１４のいずれか１つに記載の書換検出システム。
【請求項１８】
他の装置の記憶部に記憶されたプログラム又はデータの書き換えを検出する書換検出装置であって、
ネットワークを介して前記他の装置へ種情報を送信する種情報送信手段と、
該種情報送信手段が送信した種情報に応じて前記他の装置から送信されるハッシュ値を受信するハッシュ値受信手段と
該ハッシュ値受信手段が受信したハッシュ値の正否を判定するハッシュ値判定手段と
を備え、
該ハッシュ値判定手段の判定結果に応じて書き換えを検出するようにしてあること
を特徴とする書換検出装置。
【請求項１９】
プログラム又はデータを記憶した記憶部と、
該記憶部に記憶されたプログラム又はデータに基づく処理を行う処理部と、
ネットワークを介して他の装置との通信を行う通信部と、
他の装置から送信された種情報及び前記記憶部に記憶したプログラム又はデータに基づくハッシュ値を算出するハッシュ値算出手段と
を備え、
該ハッシュ値算出手段が算出したハッシュ値を前記他の装置へ送信するようにしてあること
を特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車輌に搭載されたＥＣＵ（Electronic Control Unit）などの情報処理装置に対するプログラム又はデータの不正な書き換えを検出する書換検出システム、並びにこのシステムを構成する書換検出装置及び情報処理装置に関する。
【背景技術】
【０００２】
車輌に搭載されたＥＣＵなどの情報処理装置は、ＲＯＭ（Read Only Memory）などの記憶部に記憶されたプログラム及びデータに基づいてＣＰＵ（Central Processing Unit）などの処理部が種々の処理を行っている。近年の車輌では、ＣＡＮ（Controller Area Network）などの車内ネットワークを介して情報処理装置の記憶部に記憶されたプログラム及びデータの書き換えを行う機能が実用化されている。これにより情報処理装置のソフトウェアのバージョンアップなどが容易化され、情報処理装置の高機能化の実現を容易化することができる。
【０００３】
特許文献１においては、車載制御装置を認証する構成管理装置を備え、この構成管理装置が、構成証明を実施するために用いる構成証明データを、車載ネットワークに接続する登録装置を介して車載制御装置に配信する車載ネットワークシステムが提案されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１３−１７１４０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
情報処理装置の記憶部に記憶されたプログラム及びデータを書換可能な構成とすることによって、不正なプログラム及びデータの書き換えが行われる虞がある。例えばカーシェアリング又はレンタカー等のように不特定多数のユーザが車輌を利用する場合、悪意のユーザによって不正な書き換えが行われる虞がある。また例えば自らが所有する車輌に対してもユーザが不正な改造を行うことが可能である。
【０００６】
例えば情報処理装置に高度な認証機能又は暗号化機能等を搭載することによって、記憶部のプログラム又はデータの不正な書き換えを防止することが考えられる。しかしながらこのような機能を情報処理装置に搭載することによって、情報処理装置の高コスト化を招来するという問題がある。また不正な書き換えを完全に防止することは容易ではない。特許文献１に記載の車載ネットワークシステムも同様の問題を有している。
【０００７】
本発明は、斯かる事情に鑑みてなされたものであって、その目的とするところは、情報処理装置の記憶部に記憶されたプログラム又はデータに対する不正な書き換えが行われたことを検出し得る書換検出システム、書換検出装置及び情報処理装置を提供することにある。
【課題を解決するための手段】
【０００８】
本発明に係る書換検出システムは、プログラム又はデータを記憶した記憶部、該記憶部に記憶されたプログラム又はデータに基づく処理を行う処理部、並びに、ネットワークを介して他の装置との通信を行う通信部を有する情報処理装置に対して、前記記憶部に記憶されたプログラム又はデータの書き換えを検出する書換検出システムであって、前記ネットワークを介して前記情報処理装置へ種情報を送信する種情報送信手段、該種情報送信手段が送信した種情報に応じて前記情報処理装置から送信されるハッシュ値を受信するハッシュ値受信手段、並びに、該ハッシュ値受信手段が受信したハッシュ値の正否を判定するハッシュ値判定手段を有し、該ハッシュ値判定手段の判定結果に応じて書き換えを検出する書換検出装置を備え、前記情報処理装置は、前記種情報送信手段が送信した種情報及び前記記憶部に記憶したプログラム又はデータに基づくハッシュ値を算出するハッシュ値算出手段を有し、該ハッシュ値算出手段が算出したハッシュ値を前記書換検出装置へ送信するようにしてあることを特徴とする。
【０００９】
また、本発明に係る書換検出システムは、前記書換検出装置の前記種情報送信手段が、前記記憶部の記憶領域を指定する記憶領域指定情報を前記種情報と共に前記情報処理装置へ送信し、前記情報処理装置の前記ハッシュ値算出手段は、前記種情報と、該種情報と共に送信された前記記憶領域指定情報にて指定された前記記憶部の記憶領域に記憶したプログラム又はデータとに基づいてハッシュ値を算出するようにしてあることを特徴とする。
【００１０】
また、本発明に係る書換検出システムは、前記種情報送信手段が、記憶領域の先頭位置と、前記記憶領域の末尾位置又はサイズを指定する情報を含む前記記憶領域指定情報を送信するようにしてあることを特徴とする。
【００１１】
また、本発明に係る書換検出システムは、前記記憶領域には、不連続な複数の領域を指定することが可能であり、前記種情報送信手段は、前記複数の領域を特定する情報を含む前記記憶領域指定情報を送信するようにしてあることを特徴とする。
【００１２】
また、本発明に係る書換検出システムは、前記記憶領域指定情報が、前記複数の領域の間隔を指定する情報であることを特徴とする。
【００１３】
また、本発明に係る書換検出システムは、前記情報処理装置が、前記種情報と共に受信した前記記憶領域指定情報による記憶領域の指定が所定条件を満たさない場合に、前記書換検出装置へのハッシュ値の送信を行わないようにしてあることを特徴とする。
【００１４】
また、本発明に係る書換検出システムは、前記情報処理装置が、前記記憶領域指定情報により指定された記憶領域のサイズが、所定サイズ又は該所定サイズの定数倍サイズでない場合に、前記書換検出装置へのハッシュ値の送信を行わないようにしてあることを特徴とする。
【００１５】
また、本発明に係る書換検出システムは、前記情報処理装置が、前記種情報送信手段が送信した種情報に基づいて、ハッシュ値の算出対象とすべき前記記憶部の記憶領域を決定し、前記ハッシュ値算出手段は、種情報に基づいて決定した記憶領域に記憶したプログラム又はデータに基づいてハッシュ値を算出するようにしてあることを特徴とする。
【００１６】
また、本発明に係る書換検出システムは、前記情報処理装置が、ハッシュ値を前記書換検出装置へ送信した後、所定時間が経過するまでハッシュ値の送信を行わないようにしてあることを特徴とする。
【００１７】
また、本発明に係る書換検出システムは、前記記憶部には、前記プログラム又はデータが記憶された記憶領域以外の余剰領域にランダムなデータが記憶してあることを特徴とする。
【００１８】
また、本発明に係る書換検出システムは、前記書換検出装置が、前記種情報送信手段による種情報の送信から前記ハッシュ値受信手段によるハッシュ値の受信までの時間を計測する計測手段を有し、該計測手段が計測した時間に応じて書き換えを検出するようにしてあることを特徴とする。
【００１９】
また、本発明に係る書換検出システムは、前記種情報送信手段が、ランダムな値を前記種情報として送信するようにしてあることを特徴とする。
【００２０】
また、本発明に係る書換検出システムは、前記種情報に対する前記ハッシュ値の期待値を送信する送信手段を有するサーバ装置を更に備え、前記書換検出装置は、前記種情報に対する前記ハッシュ値の期待値を前記サーバ装置へ問い合わせる問い合わせ手段と、該問い合わせ手段の問い合わせに対して前記サーバ装置から送信される前記期待値を受信する受信手段とを有し、前記ハッシュ値判定手段は、前記受信手段が受信した期待値に基づいて、前記ハッシュ値受信手段が受信したハッシュ値の正否を判定するようにしてあることを特徴とする。
【００２１】
また、本発明に係る書換検出システムは、前記種情報及び前記ハッシュ値の期待値を送信する送信手段を有するサーバ装置を更に備え、前記書換検出装置は、前記種情報及び前記期待値を前記サーバ装置へ問い合わせる問い合わせ手段と、該問い合わせ手段の問い合わせに対して前記サーバ装置から送信される前記種情報及び前記期待値を受信する受信手段とを有し、前記種情報送信手段は、前記受信手段が前記サーバ装置から受信した前記種情報を前記情報処理装置へ送信するようにしてあり、前記ハッシュ値判定手段は、前記受信手段が受信した期待値に基づいて、前記ハッシュ値受信手段が受信したハッシュ値の正否を判定するようにしてあることを特徴とする。
【００２２】
また、本発明に係る書換検出システムは、前記書換検出装置が、移動体に搭載されており、前記サーバ装置との通信が可能な場合に前記問い合わせ手段による問い合わせ及び前記受信手段による前記期待値の受信を行って、受信した前記期待値を記憶しておき、前記ハッシュ値判定手段は、記憶した前記期待値に基づいて、前記ハッシュ値受信手段が受信したハッシュ値の正否を判定するようにしてあることを特徴とする。
【００２３】
また、本発明に係る書換検出システムは、前記書換検出装置が、移動体に搭載されていることを特徴とする。
【００２４】
また、本発明に係る書換検出システムは、前記書換検出装置が、前記ネットワークに対して着脱可能に構成されていることを特徴とする。
【００２５】
また、本発明に係る書換検出装置は、他の装置の記憶部に記憶されたプログラム又はデータの書き換えを検出する書換検出装置であって、ネットワークを介して前記他の装置へ種情報を送信する種情報送信手段と、該種情報送信手段が送信した種情報に応じて前記他の装置から送信されるハッシュ値を受信するハッシュ値受信手段と該ハッシュ値受信手段が受信したハッシュ値の正否を判定するハッシュ値判定手段とを備え、該ハッシュ値判定手段の判定結果に応じて書き換えを検出するようにしてあることを特徴とする。
【００２６】
また、本発明に係る情報処理装置は、プログラム又はデータを記憶した記憶部と、該記憶部に記憶されたプログラム又はデータに基づく処理を行う処理部と、ネットワークを介して他の装置との通信を行う通信部と、他の装置から送信された種情報及び前記記憶部に記憶したプログラム又はデータに基づくハッシュ値を算出するハッシュ値算出手段とを備え、該ハッシュ値算出手段が算出したハッシュ値を前記他の装置へ送信するようにしてあることを特徴とする。
【００２７】
本発明においては、書換検出装置が種情報を生成して情報処理装置へ送信し、情報処理装置が受信した種情報と記憶部に記憶されたプログラム又はデータとに基づいてハッシュ値を算出して書換検出装置へ送信する。種情報には、例えば所定ビット数のランダムな値を生成して用いることができる。書換検出装置は、情報処理装置から受信したハッシュ値の正否を判定し、プログラム又はデータに対する不正な書き換えが行われたか否かを判定する。即ち書換検出装置は、ハッシュ値が正しいものである場合には不正な書き換えが行われていないと判断し、ハッシュ値が正しいものでない場合には不正な書き換えが行われたと判断することができる。
これにより、情報処理装置のプログラム又はデータに対する不正な書き換えを検出し、不正な書き換えがなされた情報処理装置の動作停止、修理又は交換等の手当てを適切に行うことが可能となる。情報処理装置にはハッシュ値を算出する機能を追加すればよく、このシステムを実現するための情報処理装置のコスト上昇を抑えることができる。不正な書き換えを防止する機能を搭載する場合と比較して、本システムは低コスト且つ容易に実現可能である。
【００２８】
また、本発明においては、書換検出装置が種情報を情報処理装置へ送信する際に、ハッシュ値算出の対象とすべき記憶部の領域を指定した記憶領域指定情報を共に送信する。情報処理装置は、記憶領域指定情報にて指定された記憶領域に記憶されたプログラム又はデータに基づいてハッシュ値の算出を行う。
記憶部に記憶されたプログラム又はデータの量が多く、情報処理装置の処理能力が低い場合などには、記憶部全体を処理対象とするとハッシュ値の算出に多大な時間を要する虞がある。そこで、情報処理装置によるハッシュ値の算出を記憶部の一部に限定して行うことによって、ハッシュ値を算出する処理に要する時間を短縮することができる。なお書換検出装置は、ハッシュ値算出の対象領域を変化させながら、複数回に亘って情報処理装置からハッシュ値を取得して不正書き換えの有無を判定してよい。
【００２９】
また、本発明においては、記憶領域指定情報は、記憶領域の先頭位置及び末尾位置を指定する情報、又は、記憶領域の先頭位置及びサイズを指定する情報を含む。これにより書換検出装置は、情報処理装置の記憶部について「Ｘ番地からＹ番地まで」又は「Ｘ番地からＹバイト分」等のようにその一部をハッシュ値算出対象とする記憶領域として指定できる。
またハッシュ値算出の対象とする記憶領域は、記憶部において連続した１つの領域である必要はなく、不連続な複数の領域を指定することができる構成としてよい。この場合に記憶領域指定情報は、例えば複数の領域の間隔を指定する情報とすることができる。これにより書換検出装置は、情報処理装置の記憶部について「Ｚ番地（又はＺバイト）間隔」の複数の記憶領域をハッシュ値算出の対象領域として指定できる。
なおこれらを組み合わせて「Ｘ番地からＹ番地までＺ番地間隔」などの記憶領域の指定を行うことも可能である。
【００３０】
また、本発明においては、書換検出装置からの種情報に基づいて、情報処理装置がハッシュ値算出の対象とすべき記憶領域を決定し、この記憶領域の記憶内容に基づいてハッシュ値を算出して書換検出装置へ送信する。これにより、情報処理装置によるハッシュ値の算出処理の要する時間を短縮することができると共に、書換検出装置から情報処理装置へ送信する情報が増加することを防止できる。
【００３１】
上記のように記憶領域の一部を対象としてハッシュ値の算出を行うことが可能な構成とした場合、悪意のユーザなどが微小な領域を指定してハッシュ値を繰り返し取得し、取得したハッシュ値を解析することによって記憶部に記憶されたプログラム又はデータが解読される虞がある。
そこで本発明においては、書換検出装置から記憶領域指定情報が与えられ、記憶領域の指定が所定条件を満たさない場合、車載装置はハッシュ値の送信を行わない構成とする。所定条件として、例えば指定された記憶領域のサイズが所定サイズ又は所定サイズの定数倍サイズであるか否かを判定する構成とすることができる。これにより不正に取得したハッシュ値に基づくプログラム又はデータの解読を困難化することができる。
【００３２】
また、本発明においては、書換検出装置からの種情報に基づいてハッシュ値を算出して書換検出装置へ送信した後、情報処理装置は、所定時間が経過するまで、書換検出装置から次の種情報が与えられたとしても、ハッシュ値の送信を行わない。これにより一定の時間で得られるハッシュ値の量を制限することができるため、ハッシュ値を不正に取得してプログラム又はデータを解読することを困難化できる。
【００３３】
例えば記憶部に記憶された正当なプログラム又はデータを圧縮し、これにより得られる記憶部の未使用領域（プログラム又はデータが記憶されていない領域）に不正なプログラム又はデータを記憶させることにより、不正な処理が行われる虞がある。
そこで本発明においては、正当なプログラム又はデータを記憶部に記憶した場合に、プログラム又はデータが記憶されない余剰領域にはランダムなデータを記憶しておく。これにより記憶部に記憶されたプログラム又はデータの圧縮を困難化することができる。
なお、記憶部に余剰領域が散在するようにプログラム又はデータを記憶し、余剰領域に書き込むランダムデータを記憶部に散在させてもよい。
【００３４】
上記のようにプログラム又はデータを圧縮して不正な処理を行うためには、書換検出装置からの要求に応じてハッシュ値を算出する際に、不正なプログラムは圧縮された正当なプログラム又はデータに基づいて正当なハッシュ値を算出する必要があり、このような処理は通常のハッシュ値算出処理と比較して長い時間を要する。
そこで本発明においては、書換検出装置が種情報を送信してからハッシュ値を受信するまでの時間を計測し、計測した時間が予め設定された閾値などを超えて長い場合、書換検出装置は不正な書き換えがなされた（又はその可能性がある）と判断する。
【００３５】
また、本発明においては、種情報に対するハッシュ値の期待値をサーバ装置が記憶しておき、書換検出装置がサーバ装置から期待値を取得する。又は、正当なプログラム又はデータをサーバ装置が記憶しておき、種情報に対する期待値をサーバ装置が算出する構成としてもよい。書換検出装置は、情報処理装置へ送信した種情報に対するハッシュ値の期待値をサーバ装置へ問い合わせ、この問い合わせに対してサーバ装置から送信される期待値を受信する。書換検出装置は、サーバ装置から受信した期待値と、情報処理装置から受信したハッシュ値とを比較し、両値が一致しない場合に不正な書き換えがなされたと判断することができる。
例えば書換検出装置が期待値を記憶しておく構成とした場合、記憶された期待値が不正に書き換えられるなどの虞がある。書換検出装置がサーバ装置から期待値を取得する構成とすることによって、期待値の不正な書き換えを防止することができ、情報処理装置のプログラム又はデータの書換検出の精度を高めることができる。
【００３６】
また、サーバ装置が種情報及び期待値を書換検出装置へ送信し、書換検出装置はサーバ装置から取得した種情報を情報処理装置へ送信する。情報処理装置はこれに応じてハッシュ値を算出して書換検出装置へ送信し、書換検出装置は、情報処理装置からのハッシュ値とサーバ装置からの期待値とに基づいて不正な書き換えの有無を判断する構成としてもよい。
【００３７】
また、本発明においては、書換検出装置を車輌に搭載する。例えば車輌に搭載されたゲートウェイ又はカーナビゲーション装置等が、書換検出装置の機能を有する構成としてもよい。これにより例えば車輌のエンジン始動毎に不正な書き換えの検出処理を行うなど、検出処理を行う頻度を高めることが容易である。
ただし書換検出装置を車輌に搭載した場合、書換検出装置は常にサーバ装置と通信可能であるとは限らない。そこで書換検出装置は、サーバ装置からハッシュ値の期待値を取得して記憶しておく。検出処理を行う際にサーバ装置と通信不可能である場合には、書換検出装置は、予め記憶しておいた期待値を用いて検出処理を行うことができる。
【００３８】
また、本発明においては、書換検出装置を車内ネットワークに対して着脱可能な構成とする。例えば書換検出装置を可搬型の装置とし、ケーブルなどを介して車輌のコネクタに接続することで、書換検出装置が車内ネットワークを介して情報処理装置と通信可能となる構成とすることができる。
このような書換検出装置を例えば車輌のディーラ又は整備工場等に設け、車輌の車検、定期検査又は修理等の際に情報処理装置のプログラム又はデータの不正書換検出を行うことができる。また例えばレンタカー又はカーシェアリング等の車輌の場合に、車輌返却後に書換検出装置にて不正書換検出を行うことができる。
【発明の効果】
【００３９】
本発明による場合は、情報処理装置の記憶部に記憶されたプログラム又はデータに対する不正な書き換えが行われたことを書換検出装置が検出することができる。
【図面の簡単な説明】
【００４０】
【図１】実施の形態１に係る書換検出システムの構成を示す模式図である。
【図２】ＥＣＵの構成を示すブロック図である。
【図３】ＥＣＵの記憶部の構成を示す模式図である。
【図４】書換検出装置の構成を示すブロック図である。
【図５】サーバ装置の構成を示すブロック図である。
【図６】書換検出データベースの第１構成例を示す模式図である。
【図７】書換検出データベースの第２構成例を示す模式図である。
【図８】書換検出装置による書換検出処理を説明するための模式図である。
【図９】書換検出装置が行う書換検出処理の手順を示すフローチャートである。
【図１０】ＥＣＵが行う書換検出処理の手順を示すフローチャートである。
【図１１】サーバ装置が行う書換検出処理の手順を示すフローチャートである。
【図１２】実施の形態２に係るＥＣＵが行う書換検出処理の手順を示すフローチャートである。
【図１３】実施の形態３に係る書換検出システムの構成を示す模式図である。
【図１４】ゲートウェイの構成を示すブロック図である。
【図１５】実施の形態３に係るゲートウェイが行う書換検出処理の手順を示すフローチャートである。
【発明を実施するための形態】
【００４１】
（実施の形態１）
＜システム構成＞
以下、本発明をその実施の形態を示す図面に基づき具体的に説明する。図１は、実施の形態１に係る書換検出システムの構成を示す模式図である。図において１は車輌であり、車輌１には例えばボディＥＣＵ及びエンジンＥＣＵ等の種々のＥＣＵ２が搭載されている。車輌１に搭載された複数のＥＣＵ２は、ＣＡＮなどの車内ネットワーク３を介して接続され、相互に情報の送受信を行うことができる。また車輌１には、車内ネットワーク３に対して他の装置を接続するためのコネクタ４が設けられている。
【００４２】
実施の形態１に係る書換検出システムは、車輌１に搭載されたＥＣＵ２のプログラム又はデータに対する不正な書き換えが行われたことを検出する書換検出装置５を備えている。書換検出装置５は、可搬型の装置であり、例えば車輌１のディーラ又は修理工場等に保管される。書換検出装置５は、車輌１に設けられたコネクタ４に通信ケーブル６を介して接続されることにより、車内ネットワーク３を介してＥＣＵ２との通信が可能となる。書換検出装置５は、コネクタ４に通信ケーブル６が接続された状態で、ＥＣＵ２のプログラム又はデータに対する不正な書き換えの検出処理を行う。
【００４３】
また書換検出装置５は、無線ＬＡＮ（Local Area Network）又は携帯電話網等を利用した無線通信を行う機能を有している。本実施の形態において書換検出装置５はこの無線通信機能を利用し、インターネットなどのネットワーク９を介してサーバ装置７との通信を行う。サーバ装置７は、例えば車輌１の製造会社又は販売会社等が管理・運営する装置である。サーバ装置７は、書換検出装置５による書換検出処理に必要な情報を記憶しており、書換検出処理を行う際に与えられる書換検出装置５からの要求に応じて、必要な情報を書換検出装置５へ送信する。
【００４４】
図２は、ＥＣＵ２の構成を示すブロック図である。ＥＣＵ２は、処理部２１、記憶部２２及び通信部２３等を備えて構成されている。処理部２１は、ＣＰＵ（Central Processing Unit）などの演算処理装置を用いて構成されている。処理部２１は、記憶部２２に記憶されたプログラムを読み出して実行することにより、車輌１に係る種々の情報処理を行う。
【００４５】
記憶部２２は、フラッシュメモリ又はＥＥＰＲＯＭ（Electrically Erasable Programmable Read Only Memory）等の不揮発性でデータ書き換え可能なメモリ素子を用いて構成されている。記憶部２２は、処理部２１が実行するプログラムと、これにより行われる処理に必要な種々のデータとが記憶されている。本実施の形態においては、記憶部２２はＲＯＭとして用いられ、処理部２１の処理により記憶部２２に記憶されたプログラム又はデータが書き換えられることはないものとする。ただしプログラムのバージョンアップなどによる書き換えを行うことは可能である。
【００４６】
通信部２３は、例えばＣＡＮなどの通信プロトコルに従って、車内ネットワーク３を介した他のＥＣＵ２との通信を行う。通信部２３は、処理部２１から与えられた送信用の情報を、通信プロトコルに従った送信信号に変換し、車内ネットワーク３を構成する通信線に変換した信号を出力することで他のＥＣＵ２への情報送信を行う。通信部２３は、車内ネットワーク３の通信線の電位をサンプリングすることによって、他のＥＣＵ２が出力した信号を取得し、この信号を通信プロトコルに従って２値の情報に変換することで情報の受信を行い、受信した情報を処理部２１へ与える。
【００４７】
また本実施の形態においてＥＣＵ２の処理部２１は、書換検出装置５からの指示に応じてハッシュ値を算出するハッシュ値算出部２４を有している。ハッシュ値算出部２４は、書換検出装置５から与えられたランダムシード（種情報）と、記憶部２２に記憶されたプログラム又はデータとに基づいて、所定のハッシュ算出アルゴリズム（ハッシュ関数）によりハッシュ値を算出する。ハッシュ値算出部２４は、ソフトウェアとして実現されるものであってもよく、ハードウェアとして実現されるものであってもよい。ハッシュ値の算出方法の詳細については後述する。
【００４８】
図３は、ＥＣＵ２の記憶部２２の構成を示す模式図である。図示の例では、記憶部２２はアドレスが００００ｈ〜ＦＦＦＦｈで表される記憶領域を有している。記憶部２２には、処理部２１にて実行される２つのプログラム（プログラム１及びプログラム２）と、各プログラムの実行にそれぞれ必要な２種のデータ（データ１及びデータ２）とが記憶されている。記憶部２２には、アドレスの先頭側からプログラム１、プログラム２、データ１、データ２の順に記憶されているが、それぞれの間の記憶領域及びアドレスの末尾側の記憶領域にはダミーデータが記憶されている。
【００４９】
ダミーデータはどのような値であってもよいが、例えばランダムに決定された値を記憶しておくことができる。ダミーデータは記憶部２２の余剰領域の全てに書き込まれる。即ち記憶部２２には、その全記憶領域に何らかのデータが記憶されている。これにより、記憶部２２の余剰領域に不正なプログラムを記憶して不正な処理が行われることを防止できる。また記憶部２２に記憶されたプログラム及びデータを圧縮することを困難化することができる。
【００５０】
図４は、書換検出装置５の構成を示すブロック図である。書換検出装置５は、処理部５１、記憶部５２、操作部５３、表示部５４、有線通信部５５及び無線通信部５６等を備えて構成されている。処理部５１は、ＣＰＵなどの演算処理装置を用いて構成されている。処理部５１は、記憶部５２に記憶されたプログラムを読み出して実行することにより、車輌１に搭載されたＥＣＵ２のプログラム又はデータに対する不正書き換えの検出処理を行う。記憶部５２は、フラッシュメモリなどの不揮発性のメモリ素子を用いて構成され、処理部５１が実行するプログラム及び実行に必要な種々のデータが記憶される。書換検出装置５は、処理部５１の処理過程などにて発生した一時的な情報を記憶部５２に記憶してもよく、一時的な情報を記憶するＲＡＭ（Random Access Memory）を備えていてもよい。
【００５１】
操作部５３は、プッシュスイッチ又はタッチパネル等を用いて構成され、ユーザの操作を受け付けて処理部５１へ通知する。表示部５４は、液晶パネルなどを用いて構成され、処理部５１からの指示に応じて、ユーザに対する種々の画像及びメッセージ等を表示する。有線通信部５５は、例えばＣＡＮなどの通信プロトコルに従って、通信ケーブル６を介した他の装置との通信を行う。通信ケーブル６が車輌１のコネクタ４に接続された場合、有線通信部５５は、車輌１の車内ネットワーク３を介してＥＣＵ２との通信を行うことができる。無線通信部５６は、無線ＬＡＮ又は携帯電話網等を利用した無線通信を行うことによって、インターネットなどのネットワーク９を介してサーバ装置７との通信を行う。
【００５２】
図５は、サーバ装置７の構成を示すブロック図である。サーバ装置７は、処理部７１、記憶部７２及び通信部７３等を備えて構成されている。処理部７１は、ＣＰＵなどの演算処理装置を用いて構成されている。処理部７１は、記憶部７２に記憶されたプログラムを読み出して実行することにより、書換検出装置５の書換検出処理に必要な情報を送信する処理を行う。通信部７３は、インターネットなどのネットワーク９を介して他の装置との通信を行うものである。本実施の形態において通信部７３は、書換検出装置５との間で通信を行い、書換検出装置５から受信した情報を処理部７１へ与えると共に、処理部７１から与えられた送信用の情報を書換検出装置５へ送信する。
【００５３】
記憶部７２は、ハードディスクなどの大容量の記憶装置を用いて構成されている。本実施の形態においては、記憶部７２には、書換検出データベース７５が構築されている。書換検出データベース７５は、書換検出装置５の書換検出処理に必要な情報を記憶したデータベースである。書換検出データベース７５にはいくつかの構成が考えられるが、以下に２つの構成例を示す。
【００５４】
図６は、書換検出データベース７５の第１構成例を示す模式図である。第１構成例の書換検出データベース７５には、”車種”、”ＥＣＵ種別”、”ランダムシード”及び”期待値”が対応付けて記憶されている。書換検出データベース７５の”車種”は、車輌１の種類を識別するための識別情報などが記憶される。車輌１の車名及び外観等が同じであっても、グレードなどが異なり、搭載されるＥＣＵ２の構成が異なる場合、本実施の形態においてはこれらを異なる車種として扱う。図示の例では、書換検出データベース７５に”車種”として車種Ａ、車種Ｂ…の情報が記憶されている。書換検出データベース７５の”ＥＣＵ種別”は、例えばボディＥＣＵ又はエンジンＥＣＵ等のＥＣＵ２０の種類を識別するための識別情報などが記憶される。図示の例では、書換検出データベース７５に”ＥＣＵ種別”としてＥＣＵａ、ＥＣＵｂ…の情報が記憶されている。
【００５５】
書換検出データベース７５の”ランダムシード”は、書換検出装置５が生成するランダムシードであり、本実施の形態では１６進数で４桁の数値である。図示の例では、書換検出データベース７５の”ランダムシード”は、”ＥＣＵ種別”毎に００００ｈ〜ＦＦＦＦｈの６５５３６通りの値が設定される。書換検出データベース７５の”期待値”は、”ランダムシード”に対してＥＣＵ３にて算出されるべきハッシュ値であり、本実施の形態では１６進数で４桁の数値である。”期待値”は、ＥＣＵ２の記憶部２２の記憶内容（プログラム、データ及びダミーデータ）に対して、対応する”ランダムシード”を用いて予めハッシュ値を算出して記憶したものである。なお図示の”期待値”は一例である。
【００５６】
書換検出装置５は車種、ＥＣＵ種別及びランダムシードを指定してサーバ装置７へ期待値を問い合わせる。サーバ装置７は、この問い合わせに応じて書換検出データベース７５から対応する期待値を読み出して書換検出装置５へ送信する。
【００５７】
図７は、書換検出データベース７５の第２構成例を示す模式図である。第２構成例の書換検出データベース７５には、”車種”、”ＥＣＵ種別”及び”記憶内容”が対応付けて記憶されている。これらのうち”車種”及び”ＥＣＵ種別”は、第１の構成例と同じである。書換検出データベース７５の”記憶内容”は、対応するＥＣＵ２の記憶部２２の記憶内容のコピーである。
【００５８】
第１の構成例の場合と同様に、書換検出装置５は車種、ＥＣＵ種別及びランダムシードを指定してサーバ装置７へ期待値を問い合わせる。サーバ装置７は、この問い合わせに係る車種及びＥＣＵ種別に対応する記憶内容を読み出す。サーバ装置７は、問い合わせに係るランダムシードと、読み出した記憶内容とに基づいてハッシュ値の算出を行い、算出したハッシュ値を期待値として書換検出装置５へ送信する。このため、サーバ装置７は、ＥＣＵ２のハッシュ値算出部２４が用いるハッシュ関数と同じものを記憶している。
【００５９】
なお本実施の形態においては、車種及びＥＣＵ種別が同じであれば、ＥＣＵ２の記憶部２２に記憶されているプログラム及びデータが同じものであるとしてある。ただし車輌１の仕向け又はプログラムのバージョン違い等により、車種及びＥＣＵ種別が同じであっても記憶されているプログラム及びデータが異なる場合があり得る。このような場合には、例えば書換検出データベース７５にはプログラムのバージョンなどの項目を設け、バージョン毎にランダムシード及び期待値を記憶しておくか、又は、バージョン毎に記憶部２２の記憶内容を記憶しておく。書換検出装置５は、書換検出処理の対象とするＥＣＵ２のプログラムのバージョンをこのＥＣＵ２から取得し、サーバ装置７へ期待値の問い合わせを行う際にランダムシード及び車種等の情報と共にプログラムのバージョン情報を送信する。サーバ装置７は、書換検出装置５からのランダムシード、車種、ＥＣＵ種別及びプログラムのバージョン情報等に基づいて、書換検出データベース７５から期待値を取得又は算出し、書換検出装置５へ送信することができる。
【００６０】
＜ハッシュ値算出方法＞
ＥＣＵ２のハッシュ値算出部２４は、例えばＭＤ（Message Digest）４、ＭＤ５、ＳＨＡ−１、ＳＨＡ−２５６、ＳＨＡ−３８４、ＳＨＡ−５１２、ＥＩＰＥＭＤ−１６０又はＳＨＡ−３等の既存のハッシュ関数を利用してハッシュ値の算出を行う構成とすることができる。これらはいわゆる一方向のハッシュ関数であり、入力された情報に対して一つのハッシュ値を出力する関数である。ハッシュ関数に入力される情報は、本実施の形態においてＥＣＵ２の記憶部２２に記憶されたプログラム又はデータの一部又は全部である。ハッシュ関数に入力されるものがプログラム若しくはデータのいずれであっても、又は、プログラム及びデータの両方であっても、ハッシュ関数は入力されたものを単に２値の情報として扱い、ハッシュ値を算出することができる。ハッシュ値算出部２４は、予め定められたハッシュ関数を記憶しており、このハッシュ関数を用いてハッシュ値の算出を行う。
【００６１】
以下、ハッシュ値算出部２４がＳＨＡ−１のハッシュ関数を用いてハッシュ値を算出する場合について、簡単に説明する。なおＳＨＡ−１のハッシュ関数の詳細な処理、及び、ハッシュ値算出部２４が他のハッシュ関数を用いる場合については、これらのハッシュ関数は既存の技術であるため、説明を省略する。
【００６２】
ＳＨＡ−１のハッシュ関数を利用する場合、ハッシュ値算出部２４は、まずパディング処理を行う。パディング処理においてハッシュ値算出部２４は、入力情報の後に余分なデータを付け加えることによって、処理対象の情報のサイズを所定値（５１２ビット）の整数倍となるように調整する。次いでハッシュ値算出部２４は、パディング処理された情報を５１２ビット毎のブロックに分割し、各ブロックについて８０個の値を算出する第１処理を行う。
【００６３】
次いでハッシュ値算出部２４は、所定サイズ（１６０ビット）の初期値に対して、第１処理にて算出した値を用いた演算を行い、演算後の１６０ビットの値をハッシュ値とする第２処理を行う。第２処理において、まずハッシュ値算出部２４は、１６０ビットの初期値に対して、１つのブロックについて算出した８０個の値を用いて８０ステップの演算を行う。この８０ステップの演算により、１６０ビットの初期値に対して、ブロックの情報を混ぜ込むことができ、出力として１６０ビットの値が得られる。ハッシュ値算出部２４は、得られた１６０ビットの値を初期値として、次のブロックについて算出した８０個の値を用いて同様に８０ステップの演算を行う。ハッシュ値算出部２４は、全ブロックについて同様の８０ステップの処理を行い、最終的に得られた１６０ビットの値をハッシュ値とする。
【００６４】
また本実施の形態においてハッシュ値算出部２４は、書換検出装置５から与えられたランダムシードを利用してハッシュ値の算出を行う必要がある。例えばハッシュ値算出部２４は、上記のパディング処理において、入力情報に付加するデータにランダムシードを用いることができる。また例えばハッシュ値算出部２４は、上記の第２処理において、１６０ビットの初期値にランダムシードを用いることができる。本実施の形態においては、第２処理の初期値にランダムシードを用いるものとする。
【００６５】
なおハッシュ値算出部２４によるランダムシードの利用方法は上記のものに限らない。例えばハッシュ値算出部２４は、ハッシュ値算出の対象とする記憶部２２の情報とランダムシードとの論理演算値（排他的論理和など）をハッシュ関数への入力情報とすることができる。また例えばハッシュ値算出部２４は、ハッシュ値算出の対象とする記憶部２２の情報の先頭部分又は末尾部分等の所定位置にランダムシードを付加したものをハッシュ関数への入力情報とすることができる。
【００６６】
＜書換検出処理＞
例えば車輌１の車検、定期検査又は修理等の際に、ディーラ又は修理工場等の作業者は、書換検出装置５の通信ケーブル６を車輌１のコネクタ４に接続して、書換検出装置５を車輌１の車内ネットワーク３に接続する。作業者は、書換検出装置５の操作部５３に対する操作を行い、車輌１のＥＣＵ２に対する不正書換の検出処理を開始する指示を書換検出装置５へ与える。
【００６７】
書換検出装置５は、操作部５３にて不正書換検出処理の開始指示を受け付けた場合、有線通信部５５にて車輌１のＥＣＵ２との通信を開始する。本実施の形態において書換検出装置５は、車輌１に搭載された複数のＥＣＵ２から１つを適宜に選択し、選択したＥＣＵ２の記憶部２２に記憶されたプログラム及びデータに対する不正書換の検出処理を行う。書換検出装置５は、１つのＥＣＵ２について検出処理を終えた後、未処理のＥＣＵ２に対する検出処理を行う。書換検出装置５は、これらを繰り返すことによって複数のＥＣＵ２に対して順次的に検出処理を行い、車輌１に搭載された検出対象となり得る全てのＥＣＵ２に対して不正書換の検出処理を行う。
【００６８】
なお書換検出装置５は、車内ネットワーク３に接続された複数のＥＣＵ２に対して一斉に不正書換の検出処理を行う構成としてもよい。ただし本実施の形態においては、上記のように書換検出装置５が複数のＥＣＵ２に対して順次的に不正書換の検出処理を行うものとする。また以下においては、説明を簡略化するため、書換検出装置５が１つのＥＣＵ２に対する不正書換の検出処理を行う場合について説明する。複数のＥＣＵ２に対しては同様の処理を繰り返し行えばよい。
【００６９】
図８は、書換検出装置５による書換検出処理を説明するための模式図である。車輌２の車内ネットワーク３に接続された書換検出装置５は、書換検出処理の対象となるＥＣＵ２に対して、書換検出処理を開始する旨などを通知する。これに応じて対象のＥＣＵ２は、例えば他の処理を中断してハッシュ値算出部２４の処理の準備などを行う（ただし必ずしも他の処理を中断する必要はなく、他の処理と並行してハッシュ値算出部２４が処理を行うことが可能な構成であってもよい）。
【００７０】
書換検出装置５は、適宜の乱数発生アルゴリズムに基づいてランダムな値を生成し、これをランダムシードとしてＥＣＵ２へ送信する。ランダムシードは、例えば６４ビット以上のランダムな値とすることができる。ハッシュ値算出部２４がハッシュ関数としてＳＨＡ−１を用いる場合、ランダムシードは例えば１６０ビットとすることができる。書換検出装置５からのランダムシードを受信したＥＣＵ２は、受信したランダムシードと、記憶部２２の記憶内容とに基づき、予め定められたハッシュ関数を用いてハッシュ値を算出する。ＥＣＵ２は、算出したハッシュ値を書換検出装置５へ送信する。
【００７１】
また書換検出装置５は、生成したランダムシードをサーバ装置７へ送信し、このランダムシードに対するハッシュ値の期待値を問い合わせる。このときに書換検出装置５は、書換検出処理を行っている車輌１の車輌ＩＤ（IDentifier）又は車種等の車輌情報と、処理対象のＥＣＵ２を識別するＩＤなどのＥＣＵ識別情報とを、ランダムシードと共にサーバ装置７へ送信する。これらの情報を受信したサーバ装置７は、記憶部７２の書換検出データベース７５を参照する。サーバ装置７は、問い合わせのランダムシード、車種及びＥＣＵ種別に応じた期待値を書換検出データベース７５から取得し、取得した期待値を書換検出装置５へ送信する。
【００７２】
書換検出装置５は、ＥＣＵ２から受信したハッシュ値と、サーバ装置７から受信した期待値とを比較する。書換検出装置５は、ハッシュ値及び期待値が一致する場合、ＥＣＵ２の記憶部２２に記憶されたプログラム及びデータに対する不正な書き換えが行われていないと判定する。これに対してハッシュ値及び期待値が一致しない場合、書換検出装置５は、ＥＣＵ２のプログラム及びデータに対する不正な書き換えが行われたと判定する。書換検出装置５は、書換検出処理の処理結果として、不正な書き換えが行われていたか否かを表示部５４に表示する。
【００７３】
また書換検出装置５は、ＥＣＵ２へランダムシードを送信してからハッシュ値を受信するまでの時間を計測する。書換検出装置５は、計測した時間が閾値を超えるか否かを判定し、計測時間が閾値を超える場合、ＥＣＵ２のプログラム及びデータに対する不正な書き換えが行われたと判定する。なお判定に用いる閾値は、書換検出装置５及びＥＣＵ２の通信速度、及び、ＥＣＵ２の処理能力等を考慮し、本システムの設計段階などにおいて予め決定しておく。
【００７４】
図９は、書換検出装置５が行う書換検出処理の手順を示すフローチャートである。書換検出装置５の処理部５１は、乱数発生アルゴリズムに基づいてランダムシードを生成する（ステップＳ１）。処理部５１は、生成したランダムシードを、有線通信部５５にて処理対象のＥＣＵ２へ送信する（ステップＳ２）。処理部５１は、内部のタイマなどを利用した時間の計測を開始する（ステップＳ３）。
【００７５】
処理部５１は、ランダムシードに対して処理対象のＥＣＵ２から送信されるハッシュ値を、有線通信部５５にて受信したか否かを判定し（ステップＳ４）、受信していない場合は（Ｓ４：ＮＯ）、ハッシュ値を受信するまで待機する。ハッシュ値を受信した場合（Ｓ４：ＹＥＳ）、処理部５１は、ランダムシードの送信からハッシュ値の受信までの計測時間が所定の閾値を超えるか否かを判定する（ステップＳ５）。計測時間が閾値を超える場合（Ｓ５：ＹＥＳ）、処理部５１は、不正な書き換えがなされていると判定し（ステップＳ１０）、その旨を表示部５４にて通知して処理を終了する。
【００７６】
計測時間が閾値を超えない場合（Ｓ５：ＮＯ）、処理部５１は、無線通信部５６にてサーバ装置７へランダムシード、車輌情報及びＥＣＵ識別情報を送信して、期待値の問い合わせを行う（ステップＳ６）。処理部５１は、問い合わせに対してサーバ装置７から送信される期待値を受信したか否かを判定し（ステップＳ７）、期待値を受信していない場合には（Ｓ７：ＮＯ）、期待値を受信するまで待機する。
【００７７】
サーバ装置７から期待値を受信した場合（Ｓ７：ＹＥＳ）、処理部５１は、ステップＳ４にて受信したハッシュ値と、ステップＳ７にて受信した期待値とが一致するか否かを判定する（ステップＳ８）。ハッシュ値及び期待値が一致する場合（Ｓ８：ＹＥＳ）、処理部５１は、不正な書き換えがなされていないと判定し（ステップＳ９）、その旨を表示部５４にて通知して処理を終了する。ハッシュ値及び期待値が一致しない場合（Ｓ８：ＮＯ）、処理部５１は、不正な書き換えがなされていると判定し（ステップＳ１０）、その旨を表示部５４にて通知して処理を終了する。
【００７８】
図１０は、ＥＣＵ２が行う書換検出処理の手順を示すフローチャートである。ＥＣＵ２の処理部２１は、書換検出装置５が送信するランダムシードを通信部２３にて受信したか否かを判定し（ステップＳ２１）、ランダムシードを受信していない場合は（Ｓ２１：ＮＯ）、ランダムシードを受信するまで待機する。ランダムシードを受信した場合（Ｓ２１：ＹＥＳ）、処理部２１のハッシュ値算出部２４は、書換検出装置５からのランダムシードと、記憶部２２の記憶内容とに基づき、所定のハッシュ関数を用いてハッシュ値の算出を行う（ステップＳ２２）。処理部２１は、ハッシュ値算出部２４が算出したハッシュ値を、通信部２３にて書換検出装置５へ送信し（ステップＳ２３）、処理を終了する。
【００７９】
図１１は、サーバ装置７が行う書換検出処理の手順を示すフローチャートである。サーバ装置７の処理部７１は、書換検出装置５からの期待値の問い合わせを、通信部７３にて受信したか否かを判定し（ステップＳ３１）、受信していない場合には（Ｓ３１：ＮＯ）、問い合わせを受信するまで待機する。書換検出装置５からの問い合わせを受信した場合（Ｓ３１：ＹＥＳ）、処理部７１は、問い合わせに含まれるランダムシード、車輌情報及びＥＣＵ識別情報等に基づいて、記憶部７２の書換検出データベース７５から期待値を取得する（ステップＳ３２）。処理部７１は、取得した期待値を通信部７３にて書換検出装置５へ送信し（ステップＳ３３）、処理を終了する。
【００８０】
＜まとめ＞
以上の構成の実施の形態１に係る書換検出システムは、書換検出装置５がランダムシードを生成してＥＣＵ２へ送信し、ＥＣＵ２は、受信したランダムシードと記憶部５２の記憶内容（プログラム又はデータ）とに基づき、所定のハッシュ関数を用いてハッシュ値を算出して書換検出装置５へ送信する。書換検出装置５は、ＥＣＵ２から受信したハッシュ値の正否を判定し、プログラム又はデータに対する不正な書き換えが行われたか否かを判定する。即ち書換検出装置５は、ハッシュ値が正しいものである場合には不正な書き換えが行われていないと判断し、ハッシュ値が正しいものでない場合には不正な書き換えが行われたと判断することができる。
【００８１】
これにより、ＥＣＵ２のプログラム又はデータに対する不正な書き換えを書換検出装置５が検出し、不正な書き換えがなされたＥＣＵ２の動作停止、修理又は交換等の手当てを適切に行うことが可能となる。ＥＣＵ２にハッシュ値を算出する機能を追加すればよく、このシステムを実現するためのＥＣＵ２のコスト上昇を抑えることができる。不正な書き換えを防止する機能を搭載する場合と比較して、本システムは低コスト且つ容易に実現可能である。
【００８２】
またＥＣＵ２の記憶部２２には、正当なプログラム及びデータを記憶した場合の余剰領域に、ランダムな値のダミーデータを記憶しておく。例えば記憶部２２に記憶された正当なプログラム又はデータを圧縮し、これにより得られる記憶部２２の未使用領域に不正なプログラム又はデータを記憶させることにより不正な処理が行われる虞があるが、余剰領域にダミーデータを記憶しておくことでプログラム又はデータの圧縮を困難化することができる。なお、記憶部２２に余剰領域が散在するようにプログラム又はデータを記憶し、記憶部２２のダミーデータを複数箇所に散在させる構成とすることで、不正な処理を行うことをより困難化することができる。
【００８３】
また書換検出装置５は、ＥＣＵ２へのランダムシードの送信からハッシュ値の受信までの時間を計測し、計測した時間が予め設定された閾値を超える場合、不正な書き換えがなされた（又はその可能性がある）と判断する。これにより例えばＥＣＵ２のプログラム又はデータ等を圧縮して利用するなどの不正な処理が行われ、ハッシュ値の送信までに正常時と比較して長い時間を要した場合に、これを検出することができる。
【００８４】
また書換検出装置５からの問い合わせに応じてサーバ装置７が期待値を送信し、書換検出装置５がサーバ装置７から受信した期待値とＥＣＵ２から受信したハッシュ値とが一致するか否かに応じて書換の検出を行う。例えば書換検出装置５がハッシュ値の期待値を記憶しておく構成とした場合には、書換検出装置５の期待値が不正に書き換えられる虞があるが、サーバ装置７から期待値を取得する構成とすることによってこのような期待値の不正な書き換えを防止できる。
【００８５】
また書換検出装置５は、車輌１の車内ネットワーク３のコネクタ４に通信ケーブル６を介して着脱可能な構成である。このような書換検出装置５を例えば車輌１のディーラ又は整備工場等に設け、車輌１の車検、定期検査又は修理等の際にＥＣＵ２のプログラム又はデータの不正書換検出を行うことができる。また例えばレンタカー又はカーシェアリング等の車輌１の場合、車輌返却後に書換検出装置５にて不正書換検出を行うことができる。
【００８６】
なお本実施の形態においては、書換検出装置５と車輌１との間の通信を、通信ケーブル６を介した有線通信にて行う構成としたが、これに限るものではなく、無線ＬＡＮなどの無線通信を行う構成としてもよい。また書換検出装置５は、無線通信部５６にてサーバ装置７との通信を行う構成としたが、これに限るものではなく、有線通信によりサーバ装置７との通信を行う構成としてもよい。また書換検出装置５を、車輌１の車内ネットワーク３のコネクタ４に接続する構成としたが、これに限るものではなく、例えば車輌１に搭載されたゲートウェイなどの装置に書換検出装置５を接続し、書換検出装置５がゲートウェイを介して車内ネットワーク３に接続されたＥＣＵ２との通信を行う構成としてもよい。
【００８７】
また、書換検出装置５は、ＥＣＵ２からハッシュ値を取得した後で、サーバ装置７から期待値を取得する構成としたが、これに限るものではなく、期待値を取得した後でハッシュ値を取得してもよく、ハッシュ値及び期待値を並列的に取得してもよい。また、書換検出装置５は、車輌１に搭載された複数のＥＣＵ２に対して、不正書換の検出を１つずつ順番に行う構成としたが、これに限るものではない。書換検出装置５は、例えばランダムシードを複数のＥＣＵ２に対してブロードキャストにより一斉送信し、複数のＥＣＵ２からハッシュ値を取得して、複数のＥＣＵ２についての書換検出処理を同時的に行ってもよい。
【００８８】
また、書換検出データベース７５をサーバ装置７が備えるのではなく、書換検出装置５が備える構成としてもよい。即ち、書換検出システムがサーバ装置７を備えず、ハッシュ値に対する期待値を書換検出装置５が記憶又は算出する構成としてもよい。また、本実施の形態においては、車輌１に搭載されたＥＣＵ２のプログラム又はデータに対する書換検出を行う書換検出システムを例に説明を行ったが、これに限るものではなく、例えば飛行機又は船舶等のその他の移動体に搭載された情報処理装置のプログラム又はデータに対する書換検出を行う構成としてもよい。
【００８９】
（変形例）
上述の実施の形態１に係る書換検出システムは、書換検出装置５がランダムシードを生成する構成としたが、これに限るものではない。例えばサーバ装置７がランダムシードを生成する構成としてもよい。この構成の場合、書換検出装置５は、サーバ装置７に対してランダムシード及び期待値の送信を依頼する。この依頼に応じてサーバ装置７は、ランダムシードを作成し、対応する期待値を書換検出データベース７５に基づいて取得又は算出し、ランダムシード及び期待値を書換検出装置５へ送信する。書換検出装置５は、サーバ装置７から受信したランダムシードをＥＣＵ２へ送信し、このランダムシードに基づいて算出されたハッシュ値をＥＣＵ２から受信し、サーバ装置７からの期待値とＥＣＵ２からのハッシュ値とを比較して不正な書き換えを検出する。
【００９０】
（実施の形態２）
上述の実施の形態１に係る書換検出システムでは、ＥＣＵ２の記憶部２２の全体を、ハッシュ値算出部２４によるハッシュ値算出の対象としている。例えばＥＣＵ２の記憶部２２の記憶容量が大きく、且つ、処理部２１の演算処理能力が低い場合、ハッシュ値の算出に多大な時間を要する虞がある。そこで実施の形態２に係る書換検出システムでは、ＥＣＵ２のハッシュ値算出を高速化する方法について説明する。
【００９１】
実施の形態２に係る書換検出システムは、ＥＣＵ２のハッシュ値算出部２４がハッシュ値算出の対象とする記憶部２２の記憶領域を、書換検出装置５が指定することが可能である。書換検出装置５は、例えば「Ｘ番地からＹ番地までＺ番地間隔で」又は「Ｘ番地からＹバイト分をＺ番地間隔で」のように記憶領域を指定することができる。書換検出装置５は、上記のＸ、Ｙ、Ｚの値を記憶領域指定情報として、ランダムシードと共にＥＣＵ２へ送信する。なおＸ、Ｙ、Ｚの値は、予め定められたものであってもよく、その都度ランダムに決定してもよい。
【００９２】
なお記憶領域の指定方法は上記の例に限らない。例えば「Ｘ番地からＹ番地まで」のように１つの連続領域を指定する方法を採用してもよい。また例えば「Ｚ番地間隔で」のように、先頭位置及び末尾位置を指定せずに記憶領域の間隔のみを指定することによって、不連続な複数の領域を指定する方法を採用してもよい。また例えば「Ｘ１番地からＹ１番地まで、Ｘ２番地からＹ２番地まで、…、Ｘｎ番地からＹｎ番地まで」のように、先頭位置及び末尾位置を複数指定して不連続な複数の領域を指定する方法を採用してもよい。
【００９３】
書換検出装置５は、このようなＥＣＵ２の記憶部２２の一部分に応じたハッシュ値の取得を１回行い、１つのハッシュ値に基づいて書換検出を行ってもよい。また書換検出装置５は、指定する記憶領域を変化させながらハッシュ値の取得を複数回行い、複数のハッシュ値に基づいて書換検出を行ってもよい。なお、記憶部２２の全記憶領域を網羅するように記憶領域の指定を行って、書換検出装置５がハッシュ値の取得を複数回行うことが好ましい。
【００９４】
書換検出装置５から記憶領域指定情報が与えられたＥＣＵ２は、指定された記憶領域からデータを読み出し、読み出したデータと書換検出装置５からのランダムシードとに基づいて、ハッシュ値算出部２４がハッシュ値の算出を行う。ＥＣＵ２は、算出したハッシュ値を書換検出装置５へ送信する。
【００９５】
ただしＥＣＵ２は、書換検出装置５からの記憶領域指定情報による記憶領域の指定が所定条件を満たさない場合、ハッシュ値の算出及び送信を行わない。例えばＥＣＵ２は、指定された記憶領域の記憶容量がＡバイトなどの所定サイズであるか、又は、この所定サイズの定数倍（Ｎ×Ａバイトなど）であることを所定条件とし、ハッシュ値の送信を行うか否かを判断する。
【００９６】
またＥＣＵ２は、書換検出装置５へハッシュ値の送信を行った際に、内部のタイマなどによる時間の計測を開始し、予め設定された待機時間が経過するまで、書換検出装置５から次のランダムシード及び領域指定情報等を受信した場合であってもハッシュ値の送信を行わない。このようなハッシュ値の送信に対する制限をＥＣＵ２が行うことによって、記憶部２２の部分的なデータに対するハッシュ値算出の機能が悪用されることを防止できる。
【００９７】
また書換検出装置５は、サーバ装置７へ期待値の問い合わせを行う際に、記憶領域指定情報（Ｘ、Ｙ、Ｚの値）をランダムシード、車輌情報及びＥＣＵ識別情報等と共にサーバ装置７へ送信する。サーバ装置７は、書換検出装置５から与えられたこれらの情報に基づいて適切な期待値を取得又は算出して書換検出装置５へ送信する。
【００９８】
なおサーバ装置７の書換検出データベース７５が図６に示すように期待値を予め算出して記憶しておくものである場合、実施の形態２に係る書換検出デーベース７５は、指定され得るＸ、Ｙ、Ｚの組に対してそれぞれ期待値を記憶しておく必要がある。また書換検出データベース７５が図７に示すように記憶部２２の記憶内容を記憶しておくものである場合、実施の形態２に係るサーバ装置７は、同様の書換検出データベース７５を利用できる。この場合、サーバ装置７は、問い合わせと共に書換検出装置５から与えられた記憶領域指定情報に基づき、書換検出データベース７５の記憶内容から必要な一部分を抽出してハッシュ値を算出すればよい。
【００９９】
書換検出装置５は、ＥＣＵ２から受信したハッシュ値と、サーバ装置７から受信した期待値とを比較し、両値が一致した場合に不正な書き換えが行われていないと判断し、両値が一致しない場合に不正な書き換えが行われたと判断する。
【０１００】
図１２は、実施の形態２に係るＥＣＵ２が行う書換検出処理の手順を示すフローチャートである。実施の形態２に係るＥＣＵ２の処理部２１は、書換検出装置５が送信するランダムシードを通信部２３にて受信したか否かを判定し（ステップＳ４１）、ランダムシードを受信していない場合は（Ｓ４１：ＮＯ）、ランダムシードを受信するまで待機する。ランダムシードを受信した場合（Ｓ４１：ＹＥＳ）、処理部２１は、書換検出装置５に対する前回のハッシュ値の送信から所定の待機時間が経過したか否かを判定する（ステップＳ４２）。待機時間が経過していない場合（Ｓ４２：ＮＯ）、処理部２１は処理を終了する。
【０１０１】
前回のハッシュ値の送信から所定の待機時間が経過している場合（Ｓ４２：ＹＥＳ）、処理部２１は、ランダムシードと共に書換検出装置５から受信した記憶領域指定情報を取得し（ステップＳ４３）、記憶領域指定情報による記憶領域の指定が所定の条件を満たすか否かを判定する（ステップＳ４４）。記憶領域の指定が所定の条件を満たさない場合（Ｓ４４：ＮＯ）、処理部２１は、処理を終了する。記憶領域の指定が所定の条件を満たす場合（Ｓ４４：ＹＥＳ）、処理部２１は、指定された記憶領域のデータを読み出す（ステップＳ４５）。
【０１０２】
処理部２１のハッシュ値算出部２４は、書換検出装置５からのランダムシードと、指定された記憶領域のデータとに基づき、所定のハッシュ関数を用いてハッシュ値の算出を行う（ステップＳ４６）。処理部２１は、ハッシュ値算出部２４が算出したハッシュ値を、通信部２３にて書換検出装置５へ送信する（ステップＳ４７）。次いで処理部２１は、ハッシュ値の送信から待機時間の経過を判定するため、内部のタイマなどを用いた時間の計測を開始し（ステップＳ４８）、処理を終了する。
【０１０３】
なお実施の形態２に係る書換検出装置５及びサーバ装置７の処理の手順については、フローチャートの図示を省略する。実施の形態２に係る書換検出装置５は、図９に示したフローチャートのステップＳ２にてランダムシードをＥＣＵ２へ送信する際、及び、ステップＳ６にて期待値の問い合わせをサーバ装置７に対して行う際に、記憶領域指定情報をＥＣＵ２又はサーバ装置７へ送信すればよい。また実施の形態２に係るサーバ装置７は、図１１に示したステップＳ３２にて書換検出データベースから期待値を取得する際に、書換検出装置５からの記憶領域指定情報を考慮して期待値の取得を行えばよい。
【０１０４】
以上の構成の実施の形態２に係る書換検出システムは、書換検出装置５がランダムシードをＥＣＵ２へ送信する際に、ハッシュ値算出の対象とすべき記憶部２２の領域を指定した記憶領域指定情報を共に送信する。ＥＣＵ２は、記憶領域指定情報にて指定された記憶領域に記憶されたプログラム又はデータに基づいてハッシュ値の算出を行う。これによりＥＣＵ２のハッシュ値算出処理の時間を短縮することができる。なお書換検出装置５は、ハッシュ値算出の対象領域を変化させながら、複数回に亘ってＥＣＵ２からハッシュ値を取得して不正書換の有無を判定してよい。
【０１０５】
また記憶領域指定情報は、記憶領域の先頭位置及び末尾位置を指定する情報、又は、記憶領域の先頭位置及びサイズを指定する情報を含んでよい。またハッシュ値算出の対象とする記憶領域は、不連続な複数の領域を指定することができる構成としてよく、記憶領域指定情報は、例えば複数の領域の間隔を指定する情報とすることができる。書換検出装置５は、これらを組み合わせて、例えば「Ｘ番地からＹ番地までＺ番地間隔」などの記憶領域の指定を行うことができる。
【０１０６】
また、ランダムシードに基づいてハッシュ値を算出して書換検出装置５へ送信した後、ＥＣＵ２は、所定時間が経過するまで、書換検出装置５から次のランダムシードが与えられたとしても、ハッシュ値の送信を行わない。これにより一定の時間で得られるハッシュ値の量を制限することができるため、ハッシュ値を不正に所得してプログラム又はデータを解読することを困難化できる。
【０１０７】
なお、実施の形態２においては、記憶領域指定情報を書換検出装置５が生成してＥＣＵ２及びサーバ装置７へ送信する構成としたが、これに限るものではない。例えばランダムシードに基づいて記憶領域の先頭位置、末尾位置及び間隔等を算出する演算式をＥＣＵ２及びサーバ装置７が記憶しておき、書換検出装置５からのランダムシードを受信して演算式による演算を行うことで、記憶領域の先頭位置、末尾位置及び間隔等を決定する構成としてもよい。またこのような構成の場合、ランダムシードは記憶領域の決定に用い、ハッシュ値の算出には直接的に関与しない構成としてもよい。
【０１０８】
また実施の形態２に係る書換検出システムのその他の構成は、実施の形態１に係る書換検出システムの構成と同様であるため、同様の箇所には同じ符号を付して詳細な説明を省略する。
【０１０９】
（実施の形態３）
上述の実施の形態１、２に係る書換検出システムは、書換検出装置５を車輌１の車内ネットワーク３に対して着脱可能な構成としたが、これに限るものではない。実施の形態３においては、書換検出装置５を車輌１に搭載する構成について説明する。
【０１１０】
図１３は、実施の形態３に係る書換検出システムの構成を示す模式図である。実施の形態３に係る書換検出システムは、車輌１に搭載されたゲートウェイ３０５に書換検出処理を行う機能を設けた構成である。ゲートウェイ３０５は、車輌１の車内ネットワーク３を構成する複数の通信線が接続され、これら通信線間の情報送受信を中継する処理を行う。またゲートウェイ３０５は、無線通信機能を有しており、これを利用してインターネットなどのネットワーク９を介してサーバ装置７との通信を行うことができる。ただしゲートウェイ３０５が無線通信機能を有するのではなく、車輌１に搭載された無線通信器をゲートウェイ３０５が利用してサーバ装置７との通信を行う構成としてもよい。
【０１１１】
図１４は、ゲートウェイ３０５の構成を示すブロック図である。実施の形態３に係るゲートウェイ３０５は、処理部５１、記憶部５２、有線通信部５５及び無線通信部５６等を備えて構成されている。処理部５１は、ＣＰＵなどの演算処理装置を用いて構成され、通信線間の情報の送受信を中継する処理を行うと共に、実施の形態１、２の書換検出装置５と同様の書換検出処理を行う。記憶部５２は、フラッシュメモリなどのメモリ素子を用いて構成され、処理部５１にて実行されるプログラム及び実行に必要なデータ等が記憶されている。また実施の形態３においては、ゲートウェイ３０５の記憶部５２に期待値バックアップ情報が記憶される。
【０１１２】
またゲートウェイ３０５は、有線通信部５５を複数有しており、各有線通信部５５に車内ネットワーク３の通信線が接続される。処理部５１は、一の有線通信部５５にて受信した情報を取得し、これ以外の有線通信部５５へ与えて送信を行わせることで情報の中継を行う。無線通信部５６は、無線ＬＡＮ又は携帯電話網等を利用した無線通信を行うものである。ただし車輌１の周辺環境などによっては、ゲートウェイ３０５は、無線通信部５６による無線通信を必ずしも行うことができるとは限らない。
【０１１３】
ゲートウェイ３０５は、例えば車輌１のイグニッションスイッチがオン状態に切り替えられた場合など、予め定められた所定のタイミングにて書換検出処理を行う。書換検出処理においてＥＣＵ２のプログラム又はデータに対する不正な書き換えが行われていると判断した場合、ゲートウェイ３０５は、車輌１の運転席近傍に設けられて表示部（図示は省略する）に警告メッセージなどを表示する。また不正な書き換えが行われていた場合に、ゲートウェイ３０５が車輌１の走行を禁止するなどの処理を行ってもよい。
【０１１４】
また上記のように無線通信部５６によるサーバ装置７との無線通信は、常に行うことができるとは限らない。そこでゲートウェイ３０５は、無線通信が可能な際にサーバ装置７から取得した期待値に関する情報を、記憶部５２に期待値バックアップ情報として記憶する。書換検出処理を行う際にサーバ装置７との通信を行うことができない場合、ゲートウェイ３０５は、記憶部５２に記憶した期待値バックアップ情報に基づいて、ＥＣＵ２から得られたハッシュ値の正否を判定する。
【０１１５】
図１５は、実施の形態３に係るゲートウェイ３０５が行う書換検出処理の手順を示すフローチャートである。例えば車輌１のイグニッションスイッチがオン状態に切り替えられた場合などの所定タイミングに至った場合に、ゲートウェイ３０５の処理部５１は、乱数発生アルゴリズムに基づいてランダムシードを生成すると共に（ステップＳ５１）、生成したランダムシードを処理対象のＥＣＵ２へ送信する（ステップＳ５２）。処理部５１は、ランダムシードに対して処理対象のＥＣＵ２から送信されるハッシュ値を、有線通信部５５にて受信したか否かを判定し（ステップＳ５３）、受信していない場合は（Ｓ５３：ＮＯ）、ハッシュ値を受信するまで待機する。ハッシュ値を受信した場合（Ｓ５３：ＹＥＳ）、処理部５１は、無線通信部５６によるサーバ装置７との通信が可能であるか否かを判定する（ステップＳ５４）。
【０１１６】
無線通信が可能である場合（Ｓ５４：ＹＥＳ）、処理部５１は、無線通信部５６にてサーバ装置７へ期待値の問い合わせを行う（ステップＳ５５）。なお実施の形態３においては、ゲートウェイ３０５から期待値の問い合わせを受信したサーバ装置７は、１つのランダムシードに対応する１つの期待値をゲートウェイ３０５へ送信するのではなく、対象となる車輌１のＥＣＵ２に関する全ての期待値を書換検出データベース７５から抽出してゲートウェイ３０５へ送信する。ゲートウェイ３０５の処理部５１は、問い合わせに対してサーバ装置７から送信される期待値を受信したか否かを判定し（ステップＳ５６）、期待値を受信していない場合には（Ｓ５６：ＮＯ）、期待値を受信するまで待機する。サーバ装置７から期待値を受信した場合（Ｓ５６：ＹＥＳ）、処理部５１は、受信した全ての期待値を期待値バックアップ情報として記憶部５２に記憶し（ステップＳ５７）、受信した全ての期待値から必要なものを抽出してステップＳ５９へ処理を進める。無線通信が不可能である場合（Ｓ５４：ＮＯ）、処理部５１は、記憶部５２の期待値バックアップ情報から必要な期待値を読み出して（ステップＳ５８）、ステップＳ５９へ処理を進める。
【０１１７】
処理部５１は、ＥＣＵ２から受信したハッシュ値と、サーバ装置７から受信した期待値又は記憶部５２から読み出した期待値とを比較し、ハッシュ値及び期待値が一致するか否かを判定する（ステップＳ５９）。ハッシュ値及び期待値が一致する場合（Ｓ５９：ＹＥＳ）、処理部５１は、不正な書き換えがなされていないと判定し（ステップＳ６０）、その旨を表示部５４にて通知して処理を終了する。ハッシュ値及び期待値が一致しない場合（Ｓ５９：ＮＯ）、処理部５１は、不正な書き換えがなされていると判定し（ステップＳ６１）、その旨を表示部５４にて通知して処理を終了する。
【０１１８】
以上の構成の実施の形態３に係る書換検出システムは、書換検出装置５と同様の機能を有するゲートウェイ３０５を車輌１に搭載し、ゲートウェイ３０５がＥＣＵ２のプログラム又はデータの不正な書き換えを検出する処理を行う。これにより、例えば車輌１のエンジン始動毎に不正な書き換えの検出を行うなど、検出処理を行う頻度を高めることが容易である。
【０１１９】
またゲートウェイ３０５は、サーバ装置７との通信が可能である場合に期待値を取得して記憶部５２に期待値バックアップ情報として記憶しておく。検出処理を行う際にサーバ装置７との通信が不可能である場合、ゲートウェイ３０５は、記憶しておいた期待値バックアップ情報に基づいて検出処理を行う。これにより、サーバ装置７との通信が不可能である場合であっても、ゲートウェイ３０５が検出処理を行うことが可能となる。
【０１２０】
なお実施の形態３においては、車輌１に搭載されたゲートウェイ３０５がＥＣＵ２のプログラム又はデータに対する不正な書き換えの検出を行う構成としたが、これに限るものではない。例えば車輌１に搭載されたカーナビゲーション装置又はいずれかのＥＣＵ２等が検出処理を行う構成としてもよい。またゲートウェイ３０５は、検出処理においてサーバ装置７から期待値を取得できた場合に期待値バックアップ情報の記憶を行う構成としたが、これに限るものではない。ゲートウェイ３０５がサーバ装置７からの期待値の取得及び期待値バックアップ情報としての記憶を行うタイミングは、これ以外の種々のタイミングであってよい。またゲートウェイ３０５は、サーバ装置７との通信が可能な場合に検出処理を行い、通信が不可能な場合には検出処理を行わない構成としてもよい。
【０１２１】
また実施の形態３に係る書換検出システムのその他の構成は、実施の形態１に係る書換検出システムの構成と同様であるため、同様の箇所には同じ符号を付して詳細な説明を省略する。
【符号の説明】
【０１２２】
１  車輌（移動体）
２  ＥＣＵ（情報処理装置）
３  車内ネットワーク（ネットワーク）
４  コネクタ
５  書換検出装置
６  通信ケーブル
７  サーバ装置
９  ネットワーク
２１  処理部
２２  記憶部
２３  通信部
２４  ハッシュ値算出部（ハッシュ値算出手段）
５１  処理部（種情報送信手段、ハッシュ値受信手段、ハッシュ値判定手段、計測手段、問い合わせ手段、受信手段）
５２  記憶部
５３  操作部
５４  表示部
５５  有線通信部
５６  無線通信部
７１  処理部
７２  記憶部
７３  通信部
７５  書換検出データベース
３０５  ゲートウェイ（書換検出装置）
【図１】
2015058896.tif 000003
【図２】
2015058896.tif 000004
【図３】
2015058896.tif 000005
【図４】
2015058896.tif 000006
【図５】
2015058896.tif 000007
【図６】
2015058896.tif 000008
【図７】
2015058896.tif 000009
【図８】
2015058896.tif 000010
【図９】
2015058896.tif 000011
【図１０】
2015058896.tif 000012
【図１１】
2015058896.tif 000013
【図１２】
2015058896.tif 000014
【図１３】
2015058896.tif 000015
【図１４】
2015058896.tif 000016
【図１５】
2015058896.tif 000017