(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0010】
以下、第1の実施形態について図面を用いて説明する。
【0011】
図1に実施形態として説明する情報処理装置101の概略的な構成を示している。同図に示すように、情報処理装置101は、制御部102、車両情報取得部105、入力部106、表示部107、第1記憶部108、第2記憶部109を含んで構成されている。
【0012】
制御部102はCPU(Central Processing Unit)、MPU(Micro Processing Unit)等とメモリを用いて構成されており、情報処理装置101を構成しているハードウエアの統括的な制御を行う。メモリは、例えば、RAM(Random Access Memory)、ROM(Read Only Memory)、NVRAM(Non-Volatile Random-Access Memory)等の高速アクセスが可能な半導体記憶素子を用いて構成されており、制御プログラムを保持・実行する。後述する第1記憶部や第2記憶部に保持されるプログラムも制御部における前記RAMをワークメモリとして用いることで実行される。
【0013】
プログラム実行判断手段103は、制御部102の制御の基で動くプログラムであり、第1記憶部108に保持されたプログラム情報110と車両情報取得部105から取得した走行・停止などの車両情報とを用いて、プログラムの実行(表示・操作)を許可して良いかどうかを判断するように構成されている。
【0014】
改ざん検出手段104はオープンソースプログラムのAIDE(Advanced Intrusion Detection Environment)のような侵入検知システムを用い、改ざん監視の仕組みとして、監視ポリシーに従い、パーミッションやmd5ハッシュなどのセットで、監視対象ファイルやディレクトリに対するチェックを行う。ここでは、プログラム情報114のハッシュをプログラムインストール時に生成し、保持し、プログラムの実行時に再度プログラム情報114のハッシュを生成し、比較することで、前回のハッシュ生成時から、今回のハッシュ生成時までの間の改ざん有無を検出する。ここでハッシュは与えられた元データを要約した数値に変換する仕組みであり、元データのサイズの大小に関わらず生成されるハッシュ値は固定長であること、また元データが1文字でもことなる場合は異なるハッシュ値になること、論理的に非可逆であることなどの特性を持つ。さらに元データを隠蔽するために非公開の鍵となる情報(数ビットもしくは数文字)を元データに付加してハッシュ値を生成する方法が用いられる。なお、改ざんをチェックするための仕組みとしてはファイル更新日時の比較や、チェックサムなどの方法でも良い。
【0015】
車両情報取得部105は、車両に関する情報(現在位置、速度、加速度、姿勢、機器や装備の状態等に関する情報)を取得するセンサ群(例えば、GPSセンサ(GPS: Global Positioning System)、加速度センサ、車速センサ(車速パルスを利用するもの等)、ジャイロセンサ、舵角センサ(ステアリング舵角センサ)、車輪回転速度センサ(ABSセンサ)、タイヤ圧力センサ等)を含む。
【0016】
入力部106は、ユーザ等から指示やデータの入力を受け付けるユーザインタフェースであり、例えば、タッチパネル、テンキー、ボタン、スイッチ、マウス、キーボードである。
【0017】
表示部107は、情報(視覚情報、聴覚情報、触覚情報等)を出力するユーザインタフェースであり、例えば、液晶パネル(LCD:Liquid Crystal Display)、有機EL(Electro-Luminescence)パネル、プラズマディスプレイ、電子ペーパ等)、スピーカ、ヘッドホン、イヤホン、振動素子、タッチフィードバックである。
【0018】
第1記憶部108は、ROM(Read Only Memory)であり情報処理装置のシステム領域が保持されている。
【0019】
第1記憶部108に保持されるプログラム109は、製品出荷時に予めシステム領域に書き込まれたプログラムであり、プリインストールプログラムと呼ばれる。
【0020】
プログラム情報110はプログラム109の個別情報のリストであり、構成要素の例としては、プログラム名、プログラムバージョン、電子署名、利用対象地域、実行条件等について個別に実行可否を記述した情報で構成される。
【0021】
第2記憶部112は不揮発の書き換え可能なメモリ領域であり、大容量の記録媒体(磁気記録媒体、光学式記録媒体等)にデータを格納する装置である。例えば、ハードディスクドライブ、SSD、Flash-ROM等であり、ここには情報処理装置の実行時の処理で生成されたデータや、プログラムがインストールされる。
【0022】
第2記憶部112に保持されるプログラム113は、情報処理装置101の初回起動時に第1記憶部108に保持されたプログラム109とプログラム情報110が実行処理用にコピーされインストールされたものである。更に、出荷後に通信を用いてダウンロードもしくはSDメモリやUSB(Universal Serial Bus)メモリのようなメモリ媒体を経由してプログラムが新規追加もしくは、バージョンアップされたものである。
【0023】
プログラム情報114はプログラム113の個別情報のリストであり、構成要素の例としてはプログラム情報110と同様である。本プログラム情報114はプログラム113取得時に付随して取得する情報であり、ここではプログラム113をメモリ媒体やWebサイトから入手する際に更新される。
なお、プログラム情報110およびプログラム情報114はテキストや、XML(Extensible Markup Language)に代表されるマークアップランゲージや、データベースなどの形で保持される。
【0024】
上記により、通常用いられるプログラムは第2記憶部112に保持され、プログラムの追加や更新により常に最新の状態が維持される。一方で第1記憶部108では製品出荷時のプリインストールプログラムとプログラム情報が保持される。
【0025】
プログラム情報ハッシュ値111は、改ざん検出手段104にてハッシュ関数を用い、更に前記鍵情報を付加したプログラム情報114全体のハッシュ情報から生成される。これは、プログラム情報114が書き換え可能なメモリ領域に保持され、プログラム実行時の制限を規定する情報であることから、外部からの不正な書き換えの脅威が比較的高いことが予想されるためである。
【0026】
なお、情報処理装置101の初回起動時の第1記憶部から第2記憶部へのプログラムのコピーはシンボリックリンクと呼ばれるリンク情報だけをコピーし、プログラム実行時は第1記憶部108のプログラム109からプログラム読み出して実行することで同一プログラムが重複することを防ぎ、記憶用メモリ使用量を削減しても良い。ただし、同一プログラムの更新版をインストールする場合はシンボリックリンクに更新プログラムを上書きし、以降、更新プログラムが実行される。このとき第1記憶部に保持されたプリインストールプログラムはそのまま保持されており、更新プログラムをアンインストールした場合に再度利用される。
【0027】
また、初回起動時の前記第1記憶部から第2記憶部へプログラムのコピーを行わず、プログラム情報110にプログラムへのパスを付加した上でプログラム情報114へコピーし、プログラム実行時はプログラム情報114に記された前記パスを参照し第1記憶部108のプログラム109を実行しても良い。この場合、更新プログラムをインストールすると参照するパスを更新プログラムに変更し、更新プログラムが実行されるようにする。
【0028】
なお、第1記憶部の書き換えは車両メーカーのディーラーで書き換えることが可能であり、プログラムの新規追加や不具合修正等を実施可能である。専用の書き換えプログラムによりユーザによる書き換えを実施しても良い。
図2の表はプログラム情報110の1例である。同図に示すように、このプログラム情報110は以下の情報で構成される。
2011はプログラムの管理No.であり、プログラム情報114が管理するプログラムに付与される。
2012はプログラムの名称でプログラム名、プログラムが管理するデータを保持する際のフォルダ名として利用される。
2013はプログラムのバージョン情報であり、同一プログラムのバージョン番号で示される。
2014は電子署名であり、プログラムの身元を保証するために利用され、プログラムの新バージョン.をインストールする場合、インストール済みのプログラムと身元が同じであることを判別するために同一の電子署名が付属される。一般的に電子署名では公開鍵暗号方式とハッシュ関数を組み合わせて生成する。
2015は利用対象地域、利用する地域により法規やガイドラインが異なるため実行条件2016で規定する内容が対象とする地域を記載する。(例えば日本・米国カリフォルニア州等)
2016はプログラムの実行条件である。本図では走行中の表示と操作を対象としており、走行中の表示や操作の可・不可を記載している。なお、実行条件としては他にもシフトレバーがリバース(後進)の場合や、パーキングブレーキのON / OFF などの条件や、車両速度が10km/h未満、10〜40km/h未満、40〜80km/h未満など、ある程度の幅を持った速度を条件としても良い。
続いて、
図3を用いて情報処理装置101がプログラムのインストール時に実施する処理(以下、プログラムインストール処理S300と称する。)について説明する。なお、本実施例ではプログラムインストール時に改ざん検出手段104にてプログラム情報114のハッシュ値を生成し、保持する。
【0029】
入力部106へのユーザ操作もしくは、プログラムの自動更新によりプログラムのインストール処理が開始されると、制御部102は改ざん検出手段104を用いて第2記憶部112のプログラム情報114のハッシュ値を生成し、予め保持していたプログラム情報ハッシュ値111と比較する(ステップS301)。比較したハッシュ値が異なった場合、ユーザにプログラム情報が改ざんされていることを表示部107を用いて伝え、終了する(ステップS302)。比較したハッシュ値が一致した場合、指定されたプログラムをネットワーク経由もしくはSDメモリなどの外部媒体から取得する(ステップS303)。プログラムを取得したら第2記憶部112のプログラム113に追加し、さらにプログラムに付随して入手したプログラム情報をプログラム情報114に追加する(ステップS304)。次に制御部102は改ざん検出手段104を用いてプログラム情報114からハッシュ値を生成し(ステップS305)、プログラム情報ハッシュ値111として保持する(ステップS306)。
【0030】
なお、情報処理装置101の初回起動時に実施する第1記憶部から第2記憶部へのプログラムのコピーに際しては前記プログラムインストール処理S300のステップS304からステップS306に該当する処理を実施し、プログラムのコピーからプログラム情報ハッシュ値111の生成・保持までを実施し、プログラム情報ハッシュ値111の初期値を設定する。
図4は情報処理装置101がプログラムの実行時にプログラム情報114のハッシュ値を生成し、予め保存していたプログラム情報ハッシュ値111と比較し、ハッシュ値の不一致からプログラム情報114の改ざんを検出し、第1記憶部108に保持されたプリインストールプログラムのみ実行可能とするまでの処理(以下、プログラム実行処理S400と称する。)について説明する。
【0031】
入力部106へのユーザ操作もしくは他のプログラムからプログラムの起動を指示されると、制御部102は改ざん検出手段104を用いてプログラム情報114のハッシュ値を生成し、予め保持してあったプログラム情報ハッシュ値111と比較する(ステップS401)。ハッシュ値が一致した場合、第2記憶部112のプログラム情報114を読み出し(ステップS402)、次に車両情報取得部105より車両情報を取得し(ステップS403)、プログラム実行判定手段103を用いてプログラム情報114と該車両情報からプログラムの規制条件を判定し、プログラムを制御部102にて実行する(ステップS404)
また、プログラム情報114のハッシュ値と、予め保持してあったプログラム情報ハッシュ値111と比較し、
ハッシュ値の不一致からプログラム情報114の改ざんを検出したら、第1記憶部108に保持されたプログラム情報を読み出し(ステップS405)、ユーザが指定したプログラムの有無を判定し(ステップS406)、指定プログラムが有る場合は車両情報取得部105から車両情報を取得し(ステップS407)、プログラム情報の改ざん及び指定プログラムもしくは指定プログラムの旧バージョンであるプリセットプログラムの起動をユーザに表示部107を用いて通知し(ステップS408)、前記プログラム情報と前記車両情報からプログラムの規制条件を判定し、指定されたプログラムの旧バージョンを実行する(ステップS409)。
最新バージョンと旧バージョンの対応付けはプログラム名称等によって行っても良い。また、対応づけられる第一の記憶部に格納されるプログラムは旧バージョンではなくユーザが使用すると思われる基本的な機能を提供する特定のプログラムと対応付けても良い。このような対応付けとすることにより、プリインストールされた旧バージョンのプログラムが存在しない場合であっても何らかの機能をユーザに提供することができる。
例えば、旧バージョンのプログラムが存在するかどうかを確認したあとで、特定のプログラムを起動することにより、特定のプログラムの中でシステムの状態を知らせるメッセージを表示させたり、最新バージョンを動作させるために必要な情報提供や、回復機能をユーザに提供できる。
また、ユーザが指定したプログラムが無い場合、プログラム情報の改ざんと該当プログラムが起動不可であることをユーザに表示部107を用いて通知(ステップS410)すると共に、前記取得したプログラム情報110から実行可能なプログラムリストを通知して終了する。
【0032】
このように構成された本発明の実施形態1における情報処理装置によればプログラムの使用可否を規定したプログラム情報を改ざんされた場合でも、第一記憶部に格納されたプリインストールされた旧バージョンのプログラム等の予め定められたプログラムを当該プログラムに対応した第一記憶部に格納されたプログラム情報に指定された実行可否条件に基づき利用を可能とし、ユーザの利便性を確保することができる。
【0033】
また、プログラム情報の改ざんにより指定したプログラムが実行不可の場合でも、利用可能なプログラムのリストを通知することでユーザの利便性が向上する。
以下、第2の実施形態について図面を用いて説明する。
【0034】
図5に実施形態として説明する情報処理装置101の概略的な構成を示している。同図は第1の実施形態で用いた情報処理装置101と同様の要素で構成されており、制御部102にて新たにプログラムサイズを保持することを相違点として有している。なお、
図1と同符号の箇所については説明を省略する。
【0035】
プログラムサイズ501は、第2記憶部112に保持されたプログラム113の各実行ファイルのサイズを保持する。該サイズはプログラム情報114の各プログラムとNo.2011を用いて紐付けられる。
【0036】
実行ファイルサイズの同一性をプログラムの改ざん有無の判定に用いる理由としては、プログラムの実行ファイルがソースコードをコンパイルすることによって生成されるものであり、その過程で機械が読み取れるフォーマットへの変換とサイズの最適化が実施されるからである。よって、一般的に実行ファイルは容易にサイズ変更ができない特性があり、特にファイルサイズを縮減することは難しく、プログラムにウィルスなどを追加する改ざんの場合は、ファイルサイズは逆に増加する。
なお、プログラムサイズ501に保持される実行ファイルサイズのデータは、インストール時に保持したデータであり、最新のファイルサイズと同一であるか否かを判定するために用いる。よって、サイズデータの大小や数値は問題ではない。そのためサイズデータをハッシュ値に変換して保持し、比較の際もファイルサイズをハッシュ化する方法を用いることで、プログラムサイズ501の改ざんによる不正プログラムの成りすまし等への耐性を高めることが可能である。
【0037】
続いて、
図6を用いて情報処理装置101がプログラムのインストール時に実施する処理(以下、プログラムインストール処理S600と称する。)について説明する。なお
図3と同符号の箇所については説明を省略する。 ステップS301からステップS306にてプログラムのインストールし、またプログラム情報ハッシュ値111を制御部102に保持し、さらに第2記憶部112のプログラム113に保持される各実行ファイルのサイズを制御部102にて読み出し、プログラム情報114に記載の各プログラムに紐付けてプログラムサイズ501に保持する(ステップS601)。
このようにして、プログラムのインストール時の実行ファイルサイズを記録する。
図9にプログラムサイズを格納するテーブルの例を示す。この例ではプログラムに対応付けてプログラムサイズを記憶している。
【0038】
続いて、
図7を用いて情報処理装置101がプログラムの実行時にプログラム情報114のハッシュ値を生成し、予め保存していたプログラム情報ハッシュ値111と比較し、ハッシュ値の不一致からプログラム情報114の改ざんを検出し、第1記憶部108に保持されたプログラム情報を参照し、プログラム109またはプログラム113を選択してプログラムを実行するまでの処理(以下、プログラム実行処理S700と称する。)について説明する。なお
図4と同符号の箇所については説明を省略する。
図8にプログラム情報ハッシュ値を格納するテーブルの例を示す。この例ではプログラムに対応付けてハッシュ値を記憶している。
【0039】
ステップS401からS408にてプログラム実行に際し、プログラム情報114のハッシュ値が予め保持したプログラム情報ハッシュ値111と異なることを検出し、ユーザが実行を指定したプログラムがプリインストールプログラムである第1記憶部108のプログラム109に保持されていることを確認し、車両情報の取得及びユーザへの異常検出の通知を実施する。さらに改ざん検出手段を用いてプログラムサイズ501とプログラム113の実行ファイルサイズを比較し(ステップS701)、
一致する場合、プログラム実行判定手段103がプログラム情報110と車両情報からプログラムの規制条件を判定し、プログラム113を第1記憶部のプログラム情報110に記載されている条件で制御部102が実行する(ステップS702)。不一致の場合、プログラム実行判定手段103がプログラム情報110と車両情報からプログラムの規制条件を判定し、プログラム109を第1記憶部のプログラム情報110に記載されている条件で制御部102が実行する(ステップS703)。
このように構成された本発明の実施形態2における情報処理装置によればプログラムの使用可否を規定したプログラム情報を改ざんされた場合でも、予め保持されたプログラムの利用を可能とするだけでなく、プログラムの不具合修正や機能追加等が実施された最新のプログラムを用いることが可能となり、ユーザの利便性を高めることができる。