IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 富士通テン株式会社の特許一覧

<>
  • 特許-検証装置および検証方法 図1
  • 特許-検証装置および検証方法 図2
  • 特許-検証装置および検証方法 図3
  • 特許-検証装置および検証方法 図4
  • 特許-検証装置および検証方法 図5
  • 特許-検証装置および検証方法 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-20
(45)【発行日】2025-01-06
(54)【発明の名称】検証装置および検証方法
(51)【国際特許分類】
   G06F 21/12 20130101AFI20241223BHJP
   G06F 21/64 20130101ALI20241223BHJP
【FI】
G06F21/12 310
G06F21/64
【請求項の数】 8
(21)【出願番号】P 2021038240
(22)【出願日】2021-03-10
(65)【公開番号】P2022138385
(43)【公開日】2022-09-26
【審査請求日】2023-12-27
(73)【特許権者】
【識別番号】000237592
【氏名又は名称】株式会社デンソーテン
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】奥原 誠
【審査官】上島 拓也
(56)【参考文献】
【文献】特開2000-293368(JP,A)
【文献】特開2004-046756(JP,A)
【文献】特開2006-113806(JP,A)
【文献】特開2014-191659(JP,A)
【文献】特開2020-160946(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/12
G06F 21/64
(57)【特許請求の範囲】
【請求項1】
コンピュータを有する検証装置であって、
前記コンピュータは、
第1アプリケーションがインストールされたときに検証情報を生成して第1アプリケーション記憶部に記憶し、
前記第1アプリケーションのインストール後であって、第2アプリケーションがインストールされたときに、前記第1アプリケーションがインストールされたときに生成された前記検証情報を照合用検証情報として第2アプリケーション記憶部に記憶し、
検証タイミングが到来した場合に、当該検証タイミング時点において前記第1アプリケーション記憶部に記憶されている検証情報と前記第2アプリケーション記憶部に記憶されている照合用検証情報とを照合することで、前記第2アプリケーションの正規性を検証する、
検証装置。
【請求項2】
前記コンピュータは、
アプリケーションに関する処理を行う機器に固有の固有情報に基づいて前記検証情報を生成する、
請求項1に記載の検証装置。
【請求項3】
前記固有情報は、
前記アプリケーションのインストール処理に関する情報を含む、
請求項に記載の検証装置。
【請求項4】
前記固有情報は、
前記アプリケーションがインストールされた日時を示す日時情報を含む、
請求項またはに記載の検証装置。
【請求項5】
前記コンピュータは、
前記アプリケーションに固有のアプリケーション固有情報と前記固有情報とに基づいて前記検証情報を生成する、
請求項のいずれか一つに記載の検証装置。
【請求項6】
前記コンピュータは、
アプリケーションに固有のアプリケーション固有情報に基づいてハッシュ値を前記検証情報として算出する、
請求項1~のいずれか一つに記載の検証装置。
【請求項7】
前記コンピュータは、
前記第2アプリケーションの正規性が検証されなかった場合、ユーザに対し、前記第2アプリケーションのアンインストール処理を促す通知を行う
請求項1~のいずれか一つに記載の検証装置。
【請求項8】
コンピュータが実行する検証方法であって、
第1アプリケーションがインストールされたときに検証情報を生成して第1アプリケーション記憶部に記憶する工程と、
前記第1アプリケーションのインストール後であって、第2アプリケーションがインストールされたときに、前記第1アプリケーションがインストールされたときに生成された前記検証情報を照合用検証情報として第2アプリケーション記憶部に記憶する工程と、
検証タイミングが到来した場合に、当該検証タイミング時点において前記第1アプリケーション記憶部に記憶されている検証情報と前記第2アプリケーション記憶部に記憶されている照合用検証情報とを照合することで、前記第2アプリケーションの正規性を検証する工程と
を含む、検証方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、検証装置および検証方法に関する。
【背景技術】
【0002】
従来、例えば車両などに搭載される機器は、ナビゲーションソフトなど種々のアプリケーションを備えている。かかる機器においては、アプリケーションが不正に改ざんされるおそれがあることから、機器における不正に改ざんされたアプリケーションの有無を検出する技術が提案されている(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2018-073245号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、従来技術には、アプリケーションを備えた機器のセキュリティ性を向上させるという点で、さらなる改善の余地があった。
【0005】
本発明は、上記に鑑みてなされたものであって、アプリケーションを備えた機器のセキュリティ性を向上させることができる検証装置および検証方法を提供することを目的とする。
【課題を解決するための手段】
【0006】
上記課題を解決し、目的を達成するために、本発明に係る検証装置は、コンピュータを有する。前記コンピュータは、第1アプリケーションがインストールされたときに検証情報を生成して記憶部に記憶する。前記コンピュータは、前記第1アプリケーションのインストール後に、第2アプリケーションがインストールされたときに照合用検証情報として前記検証情報を前記記憶部に記憶する。前記コンピュータは、検証タイミングが到来した場合に、当該検証タイミング時点において前記記憶部に記憶されている前記検証情報と前記照合用検証情報とを照合することで、前記第2アプリケーションの正規性を検証する。
【発明の効果】
【0007】
本発明によれば、アプリケーションを備えた機器のセキュリティ性を向上させることができる。
【図面の簡単な説明】
【0008】
図1図1は、実施形態に係る検証方法の概要を示す図である。
図2図2は、実施形態に係る検証装置を含む車載システムの構成例を示すブロック図である。
図3図3は、第1検証情報の一例を示す図である。
図4図4は、第2検証情報の一例を示す図である。
図5図5は、第3検証情報の一例を示す図である。
図6図6は、検証装置が実行する処理手順を示すフローチャートである。
【発明を実施するための形態】
【0009】
以下、添付図面を参照して、本願の開示する検証装置および検証方法の実施形態を詳細に説明する。なお、以下に示す実施形態によりこの発明が限定されるものではない。
【0010】
<検証方法の概要>
以下では先ず、実施形態に係る検証装置による検証方法の概要について図1を参照して説明する。図1は、実施形態に係る検証方法の概要を示す図である。
【0011】
図1に示すように、検証装置100は、例えば車載機器20と通信機器50とに設けられた各検証処理機能部により構成され、これら各機器20,50の機能により、車載機器20のアプリケーションの正規性を検証する検証処理などを行う。
【0012】
車載機器20および通信機器50は、図示しない車両に搭載される。車載機器20は、アプリケーション等を備える。具体的には、車載機器20には、アプリケーション(以下、「アプリ」と記載する場合がある)がインストールされ、アプリに関する処理を行うことができる。アプリは、任意のアプリであり、例えばナビゲーション、車両制御、音楽再生など各種のアプリである。
【0013】
図1では、アプリが2つである例を示す。また、以下では、2つのアプリのうち一方を「第1アプリ」、他方を「第2アプリ」と記載する場合があり、これらを特に区別せずに説明する場合には「アプリ」と記載する。また、図1の例では、第1アプリが先に車載機器20にインストールされた後、第2アプリがインストールされるものとする。
【0014】
なお、車載機器20は、機器の一例である。機器は、車載機器20に限定されるものではなく、例えばPC(Personal Computer)、スマートフォンやタブレット端末などアプリケーションを備える機器であれば、その他の種類の機器であってもよい。
【0015】
通信機器50は、アプリのダウンロードなどアプリの通信に関する処理、および、車載機器20のアプリを管理する処理など、アプリに関する処理を行うことができる機器である。通信機器50には、例えばアプリを管理する管理ソフトがインストールされる。また、通信機器50は、車載機器20と通信可能に接続される。なお、通信機器50は、機器の一例である。
【0016】
ところで、近年、車載機器20にアプリが追加でインストールされるとき、あるいは、更新(リプログラミング)用のアプリが車載機器20にインストールされるとき、例えばOTA(Over The Air)など無線通信によるデータの送受信(ダウンロード等)が行われることがある。なお、更新用のアプリは、例えば既存のアプリに機能を追加する場合や事後的に不具合が発見された場合にインストールされる。
【0017】
これにより、アプリの追加や更新が容易になる一方、例えば無線通信を利用したマルウェアなどによって誤って不正なアプリが追加されたり、既存のアプリが不正に改ざんされたりするおそれがある。また、悪意のあるユーザにより、例えば不適な機能追加や制限解除等といったアプリに対して不正な改ざんが行われることも考えられる。そのため、アプリを備えた車載機器20におけるセキュリティ性を向上させることが望まれていた。
【0018】
そこで、本実施形態に係る検証装置100にあっては、アプリの正規性を検証する検証処理の精度を向上させることで、車載機器20のセキュリティ性を向上させるようにした。具体的には、検証装置100は、通信機器50(あるいは車載機器20)に固有の固有情報に基づいて検証情報を生成し、かかる検証情報を用いることで、アプリの正規性を精度よく検証し、車載機器20のセキュリティ性を向上させるようにした。
【0019】
以下、具体的に説明すると、検証装置100は、アプリの正規性を検証する検証処理に用いる検証情報として、所定検証情報10と、第1検証情報11と、第2検証情報12とを用いる。
【0020】
なお、以下では、各検証情報10,11,12において、車載機器20の第1アプリに関する記憶部に記憶される情報には符号の末尾に「a1」を付し、第2アプリに関する記憶部に記憶される情報には符号の末尾に「a2」を付し、通信機器50の記憶部に記憶される情報には、符号の末尾に「b」を付して説明する場合がある。また、これらを特に区別せずに説明する場合には「所定検証情報10」、「第1検証情報11」、「第2検証情報12」と記載する。
【0021】
所定検証情報10は、通信機器50に関する検証情報である。所定検証情報10bは、通信機器50が予め有している情報である。所定検証情報10a1は、後述する情報生成処理によって車載機器20の第1アプリに関する記憶部に記憶されるようになった情報である。
【0022】
第1検証情報11は、第1アプリに関する検証情報である。第1検証情報11a1,11bは、第1アプリがインストールされたときに生成される情報である。第1検証情報11a2は、第2アプリがインストールされたときに車載機器20の第2アプリに関する記憶部に記憶されるようになった情報である。
【0023】
第2検証情報12は、第2アプリに関する検証情報である。第2検証情報12a2,12bは、第2アプリがインストールされたときに生成される情報である。
【0024】
〔第2検証情報について〕
以下、理解の便宜のため、第2検証情報12、第1検証情報11、所定検証情報10の順で詳しく説明する。第2検証情報12には、例えばアプリハッシュ値12xと、機器ハッシュ値12yとが含まれる。
【0025】
アプリハッシュ値12xは、アプリ(ここでは第2アプリ)に固有のアプリ固有情報に所定のハッシュ関数を掛け合わせることで得られるハッシュ値である。アプリ固有情報としては、例えばアプリのバイナリコードやソースコードなどを用いることができるが、これに限定されるものではなく、アプリに固有でハッシュ値を算出可能な情報であればその他の種類の情報であってもよい。なお、上記した所定のハッシュ関数については、車載機器20および通信機器50が同じ所定のハッシュ関数を予め有しているものとする、言い換えると、所定のハッシュ関数を共有しているものとする。
【0026】
機器ハッシュ値12yは、上記した通信機器50(あるいは車載機器20)に固有の固有情報に基づいて生成される検証情報の一例である。例えば、かかる固有情報には、アプリ(ここでは第2アプリ)のインストール処理に関する情報が含まれる。具体的に、固有情報には、対応するアプリ(ここでは第2アプリ)がインストールされた日時を示す日時情報が含まれる。
【0027】
すなわち、例えば、車両が複数ある場合、複数の車両にはそれぞれ、通信機器50および車載機器20が搭載される。そして、アプリは、車両の通信機器50によってダウンロードされて車載機器20にインストールされるが、アプリがインストールされるタイミングは、車両ごとに異なる、言い換えると通信機器50ごとに異なる。従って、上記したインストールされた日時を示す日時情報は、通信機器50(あるいは車載機器20)に固有の固有情報である。
【0028】
機器ハッシュ値12yは、固有情報である日時情報に、所定のハッシュ関数を掛け合わせることで得られるハッシュ値である。
【0029】
なお、上記では、固有情報がインストールされた日時情報である場合を例に挙げたが、これに限定されるものではない。すなわち、上記したインストールされた日時は、インストールが開始された日時であってもよいし、インストールが完了した日時であってもよい。また、固有情報は、例えばインストール処理がなされたときの場所を示す情報(具体的には車両の位置情報(例えば、緯度および経度))など、その他の種類の情報であってもよい。
【0030】
上記した第2検証情報12は、車載機器20の第2アプリに関する記憶部と、通信機器50の記憶部とにそれぞれ記憶される。
【0031】
〔第1検証情報について〕
車載機器20の第2アプリに関する記憶部には、第2検証情報12a2に加え、第2アプリより前にインストールされたアプリに関する検証情報(第1検証情報11a2)が記憶される。なお、第2アプリより前にインストールされたアプリに関する検証情報は、具体的には第2アプリのひとつ前にインストールされたアプリ(ここでは第1アプリ)に関する検証情報、すなわち第1検証情報11a2である。
【0032】
また、第1検証情報11a2も、上記した通信機器50(あるいは車載機器20)に固有の固有情報に基づいて生成される検証情報の一例である。詳説すると、第1検証情報11a2は、上記したように、第2アプリより前にインストールされたアプリ(ここでは第1アプリ)に関する検証情報である。
【0033】
ここで、例えば車両が複数ある場合、複数の車両にはそれぞれ、通信機器50および車載機器20が搭載される。また、複数の車載機器20にはそれぞれ、各種のアプリが通信機器50によってダウンロードされてインストールされるが、このアプリがインストールされる順番は、車両ごとに異なる、言い換えると通信機器50ごとに異なる。従って、上記した第1検証情報11a2は、通信機器50(あるいは車載機器20)に固有の固有情報であるアプリのインストール順(ここでは第1アプリ、第2アプリのインストール順)によって得られる検証情報である。
【0034】
また、第1検証情報11は、上記した車載機器20の第2アプリに関する記憶部と、第1アプリに関する記憶部と、通信機器50の記憶部とにそれぞれ記憶される。
【0035】
次に、第1検証情報11の内容について説明する。第1検証情報11には、例えばアプリハッシュ値11xと、機器ハッシュ値11yとが含まれる。
【0036】
アプリハッシュ値11xは、アプリ(ここでは第1アプリ)に固有のアプリ固有情報(例えば第1アプリのバイナリコード)に、所定のハッシュ関数を掛け合わせることで得られるハッシュ値である。
【0037】
機器ハッシュ値11yは、対応するアプリ(ここでは第1アプリ)が車載機器20にインストールされた日時を示す日時情報に、所定のハッシュ関数を掛け合わせることで得られるハッシュ値である。なお、機器ハッシュ値11yも、機器ハッシュ値12yと同様、通信機器50に固有の固有情報に基づいて生成される検証情報の一例である。
【0038】
〔所定検証情報について〕
車載機器20の第1アプリに関する記憶部には、第1検証情報11a1に加え、所定検証情報10a1が記憶される。ここで、第1アプリは、車載機器20に最初にインストールされたアプリである。言い換えると、第1アプリより前にインストールされたアプリは存在しない。そのため、第2アプリに関する記憶部に記憶される第1検証情報11a2のような、アプリ(ここでは第1アプリ)より前にインストールされたアプリに関する検証情報は存在しない。
【0039】
そこで、本実施形態においては、通信機器50が予め有している検証情報である「所定検証情報10b」が車載機器20の第1アプリに関する記憶部に「所定検証情報10a1」として記憶される。所定検証情報10の内容は、任意に設定可能であり、通信機器50に固有の固有情報(例えば製造番号など)によって得られる検証情報であればよい。一例として、所定検証情報10は、通信機器50に固有の固有情報(製造番号など)に、所定のハッシュ関数を掛け合わせることで得られるハッシュ値であってもよい。
【0040】
このように、本実施形態にあっては、アプリのインストールの日時情報や、アプリのインストール順など通信機器50および車載機器20に固有の固有情報等に基づいて検証情報を生成し、かかる検証情報に基づいてアプリの正規性を検証するように構成したので、例えば不正に改ざんされたアプリを精度よく検出することが可能になるが、これについては後述する。
【0041】
〔検証情報の生成について〕
次に、上記した所定検証情報10、第1検証情報11および第2検証情報12が生成されるタイミングなどについて説明する。
【0042】
車載機器20および通信機器50の初期の状態、具体的には、車載機器20に第1アプリおよび第2アプリがインストールされる前の状態では、通信機器50が所定検証情報10bを有しているのみである。すなわち、第1検証情報11および第2検証情報12は、まだ生成されていない。なお、所定検証情報10bは、通信機器50の記憶部(後述する管理記憶部71(図2参照))に記憶される。
【0043】
先ず、第1アプリのインストールについて説明する。具体的には、第1アプリのインストールの要求がなされると、通信機器50(管理ソフト)は、第1アプリを図示しない外部サーバからダウンロードする。そして、通信機器50において、ダウンロードされた第1アプリに正規性があることが検証された場合に、車載機器20へのインストールが行われる。
【0044】
詳しくは、ダウンロードされる第1アプリは、予めアプリハッシュ値を有しており、通信機器50は、かかるアプリハッシュ値を取得する。また、通信機器50は、ダウンロードされた第1アプリから、第1アプリのアプリ固有情報(例えば第1アプリのバイナリコード)も取得し、かかるアプリ固有情報に、所定のハッシュ関数を掛け合わせてアプリハッシュ値11xを算出する。
【0045】
通信機器50は、第1アプリから取得されたアプリハッシュ値と、アプリ固有情報から算出されたアプリハッシュ値11xとを比較して照合することで、第1アプリの正規性を検証する。例えば、通信機器50は、取得されたアプリハッシュ値と算出されたアプリハッシュ値11xとを比較して一致する場合、第1アプリは正規なアプリであると判定し、車載機器20へのインストールが行われる。
【0046】
一方、通信機器50は、取得されたアプリハッシュ値と算出されたアプリハッシュ値11xとが一致しない場合、第1アプリは正規なアプリではないと判定し、車載機器20へのインストールは行われない。
【0047】
通信機器50は、第1アプリのインストールが完了すると、第1検証情報11bを生成する。例えば、通信機器50は、第1アプリのインストールの日時情報に、所定のハッシュ関数を掛け合わせて機器ハッシュ値11yを算出する。そして、通信機器50は、算出されたアプリハッシュ値11xおよび機器ハッシュ値11yを含む第1検証情報11bを生成し、通信機器50の記憶部に記憶させる。なお、第1検証情報11bに含まれるアプリハッシュ値11xは、通信機器50が算出したものであってもよいし、第1アプリが予め有するアプリハッシュ値を用いてもよい。
【0048】
従って、第1アプリのインストール後には、通信機器50は、所定検証情報10bと第1検証情報11bとを有することとなる。
【0049】
また、通信機器50は、第1アプリのインストールが完了すると、第1アプリのインストールの日時情報と、自身が有している所定検証情報10(10b)とを車載機器20へ出力する。
【0050】
そして、車載機器20は、通信機器50から入力された情報に基づいて第1検証情報11a1を生成する。例えば、車載機器20は、第1アプリのアプリ固有情報に所定のハッシュ関数を掛け合わせてアプリハッシュ値11xを算出する。なお、車載機器20は、アプリハッシュ値11xの算出を行わず、第1アプリが予め有するアプリハッシュ値を用いてもよい。
【0051】
また、車載機器20は、第1アプリのインストールの日時情報に、所定のハッシュ関数を掛け合わせて機器ハッシュ値11yを算出する。そして、車載機器20は、アプリハッシュ値11xおよび機器ハッシュ値11yを含む第1検証情報11a1を生成し、第1アプリに関する記憶部(後述する第1アプリ記憶部41(図2参照))に記憶させる。また、車載機器20は、かかる記憶部に、通信機器50から入力された所定検証情報10(10a1)を、第1検証情報11a1とは別に記憶させる。
【0052】
従って、第1アプリのインストール後には、車載機器20は、第1アプリにおいて所定検証情報10a1と第1検証情報11a1とを有することとなる。なお、車載機器20は、例えばインストール後の第1アプリに対する不正な改ざんなどを検知するため、記憶部に記憶される所定検証情報10a1および第1検証情報11a1を定期的あるいは不定期に更新する。かかる不定期での更新の例としては、後述する検証処理の直前に更新するなどであるが、これに限定されるものではなく、更新のタイミングは任意に設定可能である。
【0053】
次いで、第2アプリのインストールについて説明する。具体的には、第2アプリのインストールの要求がなされると、通信機器50(管理ソフト)は、第2アプリを図示しない外部サーバからダウンロードする。そして、通信機器50において、ダウンロードされた第2アプリに正規性があると検証された場合に、車載機器20へのインストールが行われる。
【0054】
詳しくは、ダウンロードされる第2アプリは、予めアプリハッシュ値を有しており、通信機器50は、かかるアプリハッシュ値を取得する。また、通信機器50は、ダウンロードされた第2アプリから、第2アプリのアプリ固有情報(例えば第2アプリのバイナリコード)も取得し、かかるアプリ固有情報に、所定のハッシュ関数を掛け合わせてアプリハッシュ値12xを算出する。
【0055】
通信機器50は、第2アプリから取得されたアプリハッシュ値と、アプリ固有情報から算出されたアプリハッシュ値12xとを比較して照合することで、第2アプリの正規性を検証する。例えば、通信機器50は、取得されたアプリハッシュ値と算出されたアプリハッシュ値12xとを比較して一致する場合、第2アプリは正規なアプリであると判定し、車載機器20へのインストールが行われる。
【0056】
一方、通信機器50は、取得されたアプリハッシュ値と算出されたアプリハッシュ値12xとが一致しない場合、第2アプリは正規なアプリではないと判定し、車載機器20へのインストールは行われない。
【0057】
通信機器50は、第2アプリのインストールが完了すると、第2検証情報12bを生成する。例えば、通信機器50は、第2アプリのインストールの日時情報に、所定のハッシュ関数を掛け合わせて機器ハッシュ値12yを算出する。そして、通信機器50は、算出されたアプリハッシュ値12xおよび機器ハッシュ値12yを含む第2検証情報12bを生成し、通信機器50の記憶部に記憶させる。なお、第2検証情報12bに含まれるアプリハッシュ値12xは、通信機器50が算出したものであってもよいし、第2アプリが予め有するアプリハッシュ値を用いてもよい。
【0058】
従って、第2アプリのインストール後には、通信機器50は、所定検証情報10bと、第1検証情報11bと、第2検証情報12bとを有することとなる。
【0059】
また、通信機器50は、第2アプリのインストールが完了すると、第2アプリのインストールの日時情報と、自身が有している第2アプリのひとつ前にインストールされた第1アプリに関する検証情報、すなわち第1検証情報11(11b)とを車載機器20へ出力する。
【0060】
そして、車載機器20は、通信機器50から入力された情報に基づいて第2検証情報12a2を生成する。例えば、車載機器20は、第2アプリのアプリ固有情報に所定のハッシュ関数を掛け合わせてアプリハッシュ値12xを算出する。なお、車載機器20は、アプリハッシュ値12xの算出を行わず、第2アプリが予め有するアプリハッシュ値を用いてもよい。
【0061】
また、車載機器20は、第2アプリのインストールの日時情報に、所定のハッシュ関数を掛け合わせて機器ハッシュ値12yを算出する。そして、車載機器20は、アプリハッシュ値12xおよび機器ハッシュ値12yを含む第2検証情報12a2を生成し、第2アプリに関する記憶部(後述する第2アプリ記憶部42(図2参照))に記憶させる。また、車載機器20は、かかる記憶部に、通信機器50から入力された第1検証情報11(11a2)を、第2検証情報12a2とは別に記憶させる。
【0062】
従って、第2アプリのインストール後には、車載機器20は、第1アプリにおいて所定検証情報10a1と第1検証情報11a1とを有し、第2アプリにおいて第1検証情報11a2と第2検証情報12a2とを有することとなる。なお、車載機器20は、例えばインストール後の第2アプリに対する不正な改ざんなどを検知するため、記憶部に記憶される第1検証情報11a2および第2検証情報12a2を定期的あるいは不定期に更新する。かかる不定期での更新の例としては、検証処理の直前に更新するなどであるが、これに限られず、更新のタイミングは任意に設定可能である。
【0063】
〔検証処理について〕
次に、検証装置100が実行する検証処理について説明する。検証処理は、アプリの正規性を検証する処理である。例えば、検証処理は、インストールされたアプリの正規性を検証する処理であり、具体的には、アプリ(ここでは第1、第2アプリ)が不正に改ざんされたアプリとなっていないかなどを確認する処理である。
【0064】
具体的には、インストールされたアプリに対して改ざんなどがなされると、アプリの記憶部に記憶される検証情報(例えば第1検証情報11a1,11a2や第2検証情報12a2、所定検証情報10a1)の内容やアプリのアプリ固有情報が、インストール時あるいはダウンロード時のものに対して変わる(書き換えられる)。本実施形態に係る検証処理では、かかる検証情報やアプリ固有情報の変化の有無に基づいて、アプリの正規性を検証するようにした。
【0065】
ここで、アプリに対する改ざんの例について説明しておく。改ざんの例としては、アプリのバイナリコードやソースコードなどのアプリ固有情報が改ざんにより書き換えられるものがある。かかる改ざんがなされると、車載機器20によって更新時に算出されるアプリハッシュ値11x(12x)が、インストール時のアプリハッシュ値11x(12x)、すなわち通信機器50側に記憶されたアプリハッシュ値11x(12x)と異なることとなる。従って、本実施形態においては、更新後の(現在の)アプリハッシュ値11x(12x)とインストール時のアプリハッシュ値11x(12x)とを比較することで、アプリに対する改ざんを検知することができる。
【0066】
また、他の例としては、通信機器50を介さず、第1、第2アプリとは別の不正なインストールソフトによって、アプリに対する改ざん(書き換え)がなされるものがある。かかる改ざんにおいて、バイナリコード等のアプリ固有情報が書き換えられるようなものであれば、本実施形態においては、上記したようにアプリハッシュ値11x(12x)がインストール時のものと異なるようになるため、これによりアプリに対する改ざんを検知することができる。
【0067】
ここで、例えば改ざん後のアプリハッシュ値11x(12x)がインストール時のものと同じになるような高度な改ざんである場合であっても、本実施形態においては、機器ハッシュ値を用いてアプリに対する改ざんを検知することができる。すなわち、改ざんがなされると、車載機器20において、車載機器20(あるいは通信機器50)に固有の固有情報(例えばアプリのインストールの日時情報等)が変わる。そのため、車載機器20によって更新時に算出される機器ハッシュ値11y(12y)が、インストール時の機器ハッシュ値11y(12y)、すなわち通信機器50側に記憶された機器ハッシュ値11y(12y)と異なることとなる。従って、本実施形態においては、更新後の(現在の)機器ハッシュ値11y(12y)とインストール時の機器ハッシュ値11y(12y)とを比較することで、アプリに対する改ざんを検知することができる。
【0068】
以下、このようなアプリに対する改ざんの検知処理、言い換えると、アプリの正規性を検証する検証処理について詳説する。なお、以下では、通信機器50(管理ソフト)が検証処理を行う場合を例にとって説明するが、これに限られず、車載機器20が検証処理を行ってもよい。
【0069】
また、本実施形態に係る検証処理は複数(例えば3つ)ある。複数の検証処理のうち、第1検証処理は、通信機器50側の検証情報と車載機器20側の検証情報とを用いた、通信機器50と車載機器20との間での相互監視による検証処理である。第2検証処理は、通信機器50側の検証情報を用いた、通信機器50側での検証処理である。第3検証処理は、車載機器20側の検証情報を用いた、アプリとアプリとの間(ここでは第1アプリと第2アプリとの間)での相互監視による検証処理である。
【0070】
〔第1検証処理について〕
先ず第1検証処理について説明する。ここでは、第1検証処理において、第2アプリの正規性を検証する場合を例に挙げて説明する。
【0071】
第1検証処理では、第2検証情報12a2と第2検証情報12b、および、第1検証情報11a2と第1検証情報11bを用いて第2アプリの正規性を検証する。例えば、通信機器50は、第1検証処理を実行する所定のタイミングが到来すると、車載機器20の第2アプリに対し、車載機器20側に記憶されている第2検証情報12a2および第1検証情報11a2の送信要求を行う。かかる送信要求により、車載機器20は第2検証情報12a2および第1検証情報11a2を通信機器50へ送信する。
【0072】
そして、通信機器50は、車載機器20から送信された第2検証情報12a2と、通信機器50の記憶部に記憶されている第2検証情報12bとを比較して照合するとともに、車載機器20から送信された第1検証情報11a2と、通信機器50の記憶部に記憶されている第1検証情報11bとを比較して照合することで、第2アプリの正規性を検証する。
【0073】
詳しくは、通信機器50は、車載機器20から送信された第2検証情報12a2、すなわち、所定のタイミングが到来した時点で車載機器20側に記憶されている第2検証情報12a2と、通信機器50の記憶部に記憶され第2アプリがインストールされたときに生成される第2検証情報12bとを照合することで、第2アプリの正規性を検証する。
【0074】
具体的には、通信機器50は、第2検証情報12a2のアプリハッシュ値12xと、第2検証情報12bのアプリハッシュ値12xとが一致するか否かを判定する。また、通信機器50は、第2検証情報12a2の機器ハッシュ値12yと、第2検証情報12bの機器ハッシュ値12yとが一致するか否かを判定する。
【0075】
また、通信機器50は、車載機器20から送信された第1検証情報11a2、すなわち、所定のタイミングが到来した時点で車載機器20側に記憶されている第1検証情報11a2と、第1アプリがインストールされたときに生成されて通信機器50の記憶部に記憶され、第2アプリがインストールされたときにも通信機器50の記憶部に記憶されている第1検証情報11bとを照合することで、第2アプリの正規性を検証する。具体的には、通信機器50は、車載機器20側の第1検証情報11a2と、通信機器50側の第1検証情報11bとが一致するか否かを判定する。
【0076】
通信機器50は、第2検証情報12a2と第2検証情報12bとが一致し、かつ、第1検証情報11a2と第1検証情報11bとが一致した場合、第2アプリに正規性があると判定する、言い換えると、第2アプリは不正アプリではないと判定する。すなわち、通信機器50は、車載機器20側の第2検証情報12a2および第1検証情報11a2が、インストール時の検証情報である、通信機器50側の第2検証情報12bおよび第1検証情報11bに対して変わっていない(書き換えられていない)ことから、第2アプリは正規なアプリであり、不正アプリではないと判定する。
【0077】
他方、通信機器50は、第2検証情報12a2と第2検証情報12bとが不一致であった場合、または/および、第1検証情報11a2と第1検証情報11bとが不一致であった場合、第2アプリに正規性がないと判定する、言い換えると、第2アプリの正規性が検証されず、第2アプリは不正アプリであると判定する。すなわち、通信機器50は、車載機器20側の第2検証情報12a2や第1検証情報11a2が、インストール時の検証情報である、通信機器50側の第2検証情報12bや第1検証情報11bに対して変わっている(書き換えられている)ことから、現在の第2アプリは改ざんなどがなされた不正アプリであると判定する。
【0078】
なお、上記した第2検証情報12a2と第2検証情報12bとが不一致とは、アプリハッシュ値12xおよび機器ハッシュ値12yのうちの一部が不一致であることを意味するが、これに限られず、例えば全部が不一致であることを意味してもよい。
【0079】
このように、第1検証処理においては、車載機器20側の検証情報であって所定のタイミングが到来した時点(例えば現在)のアプリの検証情報(ここでは第2検証情報12a2や第1検証情報11a2)と、通信機器50側の検証情報であってインストール時のアプリの検証情報(ここでは第2検証情報12bや第1検証情報11b)とを用いて、通信機器50と車載機器20との間で相互監視する。これにより、アプリの正規性を検証する検証処理の精度を向上させることができ、よってアプリを備えた車載機器20のセキュリティ性を向上させることができる。
【0080】
なお、上記では、第1検証処理において、第2アプリの正規性を検証する例を示したが、第1アプリの正規性を検証する場合、通信機器50は、車載機器20の第1アプリ側の第1検証情報11a1および所定検証情報10a1と、通信機器50の第1検証情報11bおよび所定検証情報10bとを照合することで、検証処理を実行する。
【0081】
〔第2検証処理について〕
次に、第2検証処理について説明する。ここでは、第2検証処理において、第2アプリの正規性を検証する場合を例に挙げて説明する。
【0082】
第2検証処理では、アプリハッシュ値を用いて第2アプリの正規性を検証する。例えば、通信機器50は、第2検証処理を実行する所定のタイミングが到来すると、車載機器20の第2アプリに固有のアプリ固有情報(例えば第2アプリのバイナリコード)を取得する。通信機器50は、取得されたアプリ固有情報に所定のハッシュ関数を掛け合わせてアプリハッシュ値を再度算出する。すなわち、通信機器50は、所定のタイミングが到来した時点でアプリハッシュ値を算出する。
【0083】
そして、通信機器50は、所定のタイミングが到来した時点で算出されたアプリハッシュ値と、通信機器50の記憶部に記憶されている第2検証情報12bのアプリハッシュ値12xとを比較して照合することで、第2アプリの正規性を検証する。
【0084】
詳しくは、通信機器50は、所定のタイミングが到来した時点で再算出されたアプリハッシュ値と、通信機器50の記憶部に記憶されアプリがインストールされたときに算出されたアプリハッシュ値12xとを照合することで、第2アプリの正規性を検証する。
【0085】
具体的には、通信機器50は、再算出されたアプリハッシュ値と、第2検証情報12bのアプリハッシュ値12xとが一致するか否かを判定する。通信機器50は、再算出されたアプリハッシュ値と、第2検証情報12bのアプリハッシュ値12xとが一致した場合、第2アプリに正規性があると判定する、言い換えると、第2アプリは不正アプリではないと判定する。すなわち、通信機器50は、再算出されたアプリハッシュ値が、インストール時の検証情報であるアプリハッシュ値12xに対して変わっていない(書き換えられていない)ことから、第2アプリは正規なアプリであり、不正アプリではないと判定する。
【0086】
他方、通信機器50は、再算出されたアプリハッシュ値と、第2検証情報12bのアプリハッシュ値12xとが不一致であった場合、第2アプリに正規性がないと判定する、言い換えると、第2アプリの正規性が検証されず、第2アプリは不正アプリであると判定する。すなわち、通信機器50は、再算出されたアプリハッシュ値が、インストール時の検証情報であるアプリハッシュ値12xに対して変わっている(書き換えられている)ことから、現在の第2アプリは改ざんなどがなされた不正アプリであると判定する。
【0087】
このように、第2検証処理においては、インストール時からのアプリハッシュ値の変化を通信機器50(管理ソフト)で検出するようにしたので、アプリの正規性を検証する検証処理の精度を向上させることができ、よってアプリを備えた車載機器20のセキュリティ性を向上させることができる。
【0088】
なお、上記では、第2検証処理において、第2アプリの正規性を検証する例を示したが、第1アプリの正規性を検証する場合、通信機器50は、第1アプリのアプリ固有情報に基づいてアプリハッシュ値を再度算出し、算出されたアプリハッシュ値と、通信機器50の第1検証情報11bのアプリハッシュ値11xとを照合することで、検証処理を実行する。
【0089】
〔第3検証処理について〕
次に、第3検証処理について説明する。ここでは、第3検証処理において、第1アプリおよび第2アプリの正規性を検証する場合を例に挙げて説明する。また、第3検証処理を実行する所定のタイミングが、アプリの起動が要求されたとき(以下では第2アプリの起動が要求されたとき)である場合を例に挙げて説明する。
【0090】
第3検証処理では、第1検証情報11a1と第1検証情報11a2とを用いて第1、第2アプリの正規性を検証する。例えば、通信機器50は、ユーザなどによって第2アプリの起動が要求され第3検証処理を実行する所定のタイミングが到来すると、車載機器20の第2アプリに対し、車載機器20側に記憶されている第1検証情報11a2の送信要求を行う。言い換えると、通信機器50は、車載機器20の第2アプリに関する記憶部に記憶された検証情報であって、第2アプリより前にインストールされたアプリに関する検証情報、具体的には第2アプリのひとつ前にインストールされたアプリ(ここでは第1アプリ)に関する検証情報である第1検証情報11a2の送信要求を行う。かかる送信要求により、車載機器20は第1検証情報11a2を通信機器50へ送信する。
【0091】
また、通信機器50は、車載機器20の第1アプリに対し、車載機器20側に記憶されている第1検証情報11a1の送信要求を行う。言い換えると、通信機器50は、車載機器20の第1アプリに関する記憶部に記憶された検証情報であって、第1アプリに関する検証情報である第1検証情報11a1の送信要求を行う。かかる送信要求により、車載機器20は第1検証情報11a1を通信機器50へ送信する。
【0092】
そして、通信機器50は、車載機器20から送信された第1検証情報11a2と第1検証情報11a1とを比較して照合することで、第1、第2アプリの正規性を検証する。
【0093】
詳しくは、通信機器50は、所定のタイミングが到来した時点で車載機器20の第2アプリに関する記憶部に記憶されている第1検証情報11a2と、所定のタイミングが到来した時点で車載機器20の第1アプリに関する記憶部に記憶されている第1検証情報11a1とを照合することで、第1、第2アプリの正規性を検証する。
【0094】
具体的には、通信機器50は、第1検証情報11a2のアプリハッシュ値11xと、第1検証情報11a1のアプリハッシュ値11xとが一致するか否かを判定する。また、通信機器50は、第1検証情報11a2の機器ハッシュ値11yと、第1検証情報11a1の機器ハッシュ値11yとが一致するか否かを判定する。
【0095】
通信機器50は、第1検証情報11a2と第1検証情報11a1とが一致した場合、第1、第2アプリに正規性があると判定する、言い換えると、第1、第2アプリは不正アプリではないと判定する。すなわち、通信機器50は、車載機器20側の第1検証情報11a2および第1検証情報11a1が、インストール時の検証情報から変わっていない(書き換えられていない)と推定できることから、第1、第2アプリは正規なアプリであり、不正アプリではないと判定する。そして、車載機器20は、通信機器50によって第1、第2アプリに正規性があると判定された場合、第2アプリを起動させる。
【0096】
他方、通信機器50は、第1検証情報11a2と第1検証情報11a1とが不一致であった場合、第1、第2アプリ少なくともいずれかに正規性がないと判定する、正確には、第1、第2アプリの正規性が検証されず、第1、第2アプリのうち少なくとも一方は不正アプリであると判定する。すなわち、通信機器50は、車載機器20側の第1検証情報11a2および第1検証情報11a1が、インストール時の検証情報から変わっている(書き換えられている)ことから、現在の第1、第2アプリのうち少なくとも一方は不正に改ざんされたアプリであると判定する。そして、車載機器20は、通信機器50によって第1、第2アプリの正規性が検証されなかった場合、第2アプリの起動を行わない、言い換えると第2アプリの起動を禁止する。
【0097】
なお、上記した第1検証情報11a2と第1検証情報11a1とが不一致とは、アプリハッシュ値11xおよび機器ハッシュ値11yのうちの一部が不一致であることを意味するが、これに限られず、例えば全部が不一致であることを意味してもよい。
【0098】
このように、第3検証処理においては、車載機器20側の検証情報であって起動要求がなされたアプリ(ここでは第2アプリ)が有する、ひとつ前にインストールされたアプリ(ここでは第1アプリ)に関する検証情報(ここでは第1検証情報11a2)と、車載機器20側の検証情報であって起動要求がなされたアプリのひとつ前にインストールされたアプリ(ここでは第1アプリ)が有する検証情報(ここでは第1検証情報11a1)とを用いて、検証処理を行う。すなわち、第3検証処理においては、アプリとアプリとの間(ここでは第1アプリと第2アプリとの間)で相互監視する。これにより、アプリの正規性を検証する検証処理の精度を向上させることができ、よってアプリを備えた車載機器20のセキュリティ性を向上させることができる。
【0099】
なお、上記した第1~第3検証処理は、任意に組み合わせることができる。また、上記では、第1~第3検証処理は所定のタイミングが到来するときに実行される。なお、所定のタイミングは、例えば任意の時刻、任意の定期的な時間間隔などに設定される定期検証タイミング、または、アプリの起動要求がなされたタイミングなどであるが、これらに限定されるものではなく、不定期なタイミングや任意のタイミングに設定されてもよい。
【0100】
一例として、第1検証処理および第2検証処理は定期検証タイミングで実行され、第3検証処理はアプリの起動要求がなされたタイミングで実行される。なお、上記した検証処理の組み合わせ、および、検証処理の実行タイミングはあくまでも例示であって限定されるものではない。
【0101】
このように、本実施形態にあっては、アプリに固有のアプリ固有情報に基づいて生成されるアプリハッシュ値に加え、通信機器50あるいは車載機器20に固有の固有情報に基づいて生成される検証情報(具体的には機器ハッシュ値や、ひとつ前にインストールされたアプリに関する検証情報)を用いてアプリの正規性を検証するようにした。
【0102】
これにより、検証装置100は、例えばアプリハッシュ値のみで検証処理を行うような場合に比べて、不正に改ざんされたアプリを精度よく検出することが可能になるため、アプリの正規性を検証する検証処理の精度を向上させることができ、よって車載機器20のセキュリティ性を向上させることができる。
【0103】
また、本実施形態において、通信機器50あるいは車載機器20の固有情報には、アプリのインストール処理に関する情報が含まれるようにした。具体的に、固有情報には、対応するアプリがインストールされた日時を示す日時情報が含まれるようにした。
【0104】
これにより、アプリを備えた車載機器20において、比較的取得しやすい情報であるインストール処理に関する情報(例えば日時情報)を、固有情報として用いることができる。
【0105】
<検証装置を含む車載システム>
次に、実施形態に係る検証装置100を含む車載システムの構成について、図2を用いて説明する。図2は、実施形態に係る検証装置100を含む車載システム1の構成例を示すブロック図である。なお、図2のブロック図では、本実施形態の特徴を説明するために必要な構成要素のみを機能ブロックで表しており、一般的な構成要素についての記載を省略している。
【0106】
換言すれば、図2のブロック図に図示される各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。例えば、各機能ブロックの分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することが可能である。
【0107】
図2に示すように、車載システム1は、上記した検証装置100と、出力部80とを備える。
【0108】
出力部80は、後述するようにアプリの正規性が検証されなかった場合の対応を示す通知など、各種の情報を出力する。例えば、出力部80は、ディスプレイなどの表示部やスピーカなどの音声出力部を含み、通知などの各種の情報をユーザへ出力する。
【0109】
検証装置100は、車載機器20と、通信機器50とに設けられた各検証処理機能部により構成される。車載機器20は、車両に搭載される任意の機器である。車載機器20としては、例えばナビゲーション装置、車両制御装置、オーディオ装置などを用いることができるが、これらに限定されるものではない。
【0110】
また、図2において、車載機器20には、第1アプリ、第2アプリおよび第3アプリの3つのアプリがインストールされている例を示しているが、アプリの数は例示であって限定されるものではない。また、図2の例では、第1アプリ、第2アプリ、第3アプリの順で車載機器20にインストールされるものとする。
【0111】
通信機器50は、アプリの通信に関する処理、車載機器20のアプリを管理する処理、および、アプリの正規性が検証されなかった場合の対応通知の出力処理など、アプリに関する各種の処理を行うことができる機器である。通信機器50としては、例えばTCU(Telematics Control Unit)などを用いることができるが、これに限定されるものではない。また、通信機器50と車載機器20とは、無線通信や有線通信を介して通信可能に接続される。
【0112】
〔車載機器の構成について〕
先ず、車載機器20の詳細な構成について説明する。車載機器20は、アプリ制御部30と、車載機器側記憶部40とを備える。アプリ制御部30は、アプリ処理部31と、アプリ側生成部32とを備え、例えば、CPU(Central Processing Unit)、ROM(Read Only Memory)、RAM(Random Access Memory)、入出力ポートなどを有するコンピュータや各種の回路を含む。
【0113】
コンピュータのCPUは、例えば、ROMに記憶されたプログラムを読み出して実行することによって、アプリ制御部30のアプリ処理部31およびアプリ側生成部32として機能する。
【0114】
また、アプリ制御部30のアプリ処理部31およびアプリ側生成部32の少なくともいずれか一部または全部をASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等のハードウェアで構成することもできる。
【0115】
また、車載機器側記憶部40は、例えば、不揮発性メモリ、データフラッシュやハードディスクドライブといった記憶デバイスで構成される記憶部である。かかる車載機器側記憶部40は、第1アプリ記憶部41と、第2アプリ記憶部42と、第3アプリ記憶部43とを備える。
【0116】
第1アプリ記憶部41は、第1アプリに関する情報を記憶する記憶部である。第1アプリ記憶部41には、所定検証情報10a1と、第1検証情報11a1とが記憶される。所定検証情報10a1は、上記したように、通信機器50に関する検証情報であり、第1アプリがインストールされたときに通信機器50から出力されて記憶された情報である。
【0117】
第1検証情報11a1は、第1アプリに関する検証情報であり、第1アプリがインストールされたときに生成されて第1アプリ記憶部41に記憶される情報である。なお、第1アプリ記憶部41に記憶される所定検証情報10a1および第1検証情報11a1は、上記したように定期的あるいは不定期に更新される。
【0118】
ここで、図3を用いて、第1検証情報11a1について説明する。図3は、第1検証情報11a1の一例を示す図である。図3に示すように、第1検証情報11a1には、「検証ID」および「検証情報の内容」等の項目が含まれ、各項目は互いに関連付けられている。
【0119】
「検証ID」は、検証情報を識別する識別情報である。「検証情報の内容」は、検証情報の内容を示す情報である。「検証情報の内容」には、第1アプリハッシュ値および第1機器ハッシュ値などが含まれる。
【0120】
第1アプリハッシュ値は、第1アプリに固有のアプリ固有情報(例えば第1アプリのバイナリコード)に所定のハッシュ関数を掛け合わせることで得られるハッシュ値である。第1機器ハッシュ値は、通信機器50あるいは車載機器20に固有の固有情報(例えば第1アプリがインストールされた日時を示す日時情報)に所定のハッシュ関数を掛け合わせることで得られるハッシュ値である。このように、第1検証情報11a1は、これら第1アプリハッシュ値および第1機器ハッシュ値などを含む検証情報である。
【0121】
図2の説明に戻ると、第2アプリ記憶部42は、第2アプリに関する情報を記憶する記憶部である。第2アプリ記憶部42には、第1検証情報11a2と、第2検証情報12a2とが記憶される。
【0122】
第1検証情報11a2は、第2アプリがインストールされたときに通信機器50から出力されて第2アプリ記憶部42に記憶される情報である。第1検証情報11a2に含まれる検証情報の内容については、上記した第1検証情報11a1と同様であるため、ここでの説明を省略する(図3参照)。但し、情報の中身自体は、改ざんなどにより第1検証情報11a2と第1検証情報11a1とで異なる場合がある。
【0123】
第2検証情報12a2は、第2アプリに関する検証情報であり、第2アプリがインストールされたときに生成されて第2アプリ記憶部42に記憶される情報である。なお、第2アプリ記憶部42に記憶される第1検証情報11a2および第2検証情報12a2は、上記したように定期的あるいは不定期に更新される。
【0124】
ここで、図4を用いて、第2検証情報12a2について説明する。図4は、第2検証情報12a2の一例を示す図である。図4に示すように、第2検証情報12a2には、第1検証情報11a1と同様、「検証ID」および「検証情報の内容」等の項目が含まれ、各項目は互いに関連付けられている。
【0125】
第2検証情報12a2の「検証情報の内容」には、第2アプリハッシュ値および第2機器ハッシュ値などが含まれる。第2アプリハッシュ値は、第2アプリに固有のアプリ固有情報(例えば第2アプリのバイナリコード)に所定のハッシュ関数を掛け合わせることで得られるハッシュ値である。第2機器ハッシュ値は、通信機器50あるいは車載機器20に固有の固有情報(例えば第2アプリがインストールされた日時を示す日時情報)に所定のハッシュ関数を掛け合わせることで得られるハッシュ値である。このように、第2検証情報12a2は、これら第2アプリハッシュ値および第2機器ハッシュ値などを含む検証情報である。
【0126】
図2の説明に戻ると、第3アプリ記憶部43は、第3アプリに関する情報を記憶する記憶部である。第3アプリ記憶部43には、第2検証情報12a3と、第3検証情報13a3とが記憶される。
【0127】
第2検証情報12a3は、第3アプリがインストールされたときに通信機器50から出力されて第3アプリ記憶部43に記憶される情報である。第2検証情報12a3に含まれる検証情報の内容については、上記した第2検証情報12a2と同様であるため、ここでの説明を省略する(図4参照)。但し、情報の中身自体は、改ざんなどにより第2検証情報12a3と第2検証情報12a2とで異なる場合がある。
【0128】
第3検証情報13a3は、第3アプリに関する検証情報であり、第3アプリがインストールされたときに生成されて第3アプリ記憶部43に記憶される情報である。なお、第3アプリ記憶部43に記憶される第2検証情報12a3および第3検証情報13a3は、定期的あるいは不定期に更新される。
【0129】
ここで、図5を用いて、第3検証情報13a3について説明する。図5は、第3検証情報13a3の一例を示す図である。図5に示すように、第3検証情報13a3には、第1検証情報11a1等と同様、「検証ID」および「検証情報の内容」等の項目が含まれ、各項目は互いに関連付けられている。
【0130】
第3検証情報13a3の「検証情報の内容」には、第3アプリハッシュ値および第3機器ハッシュ値などが含まれる。第3アプリハッシュ値は、第3アプリに固有のアプリ固有情報(例えば第3アプリのバイナリコード)に所定のハッシュ関数を掛け合わせることで得られるハッシュ値である。第3機器ハッシュ値は、通信機器50あるいは車載機器20に固有の固有情報(例えば第3アプリがインストールされた日時を示す日時情報)に所定のハッシュ関数を掛け合わせることで得られるハッシュ値である。このように、第3検証情報13a3は、これら第3アプリハッシュ値および第3機器ハッシュ値などを含む検証情報である。
【0131】
図2の説明に戻ると、アプリ制御部30のアプリ処理部31は、第1アプリ、第2アプリおよび第3アプリに関する処理を行う。例えば、アプリ処理部31は、各アプリのインストール処理などを行うことができる。具体的には、アプリ処理部31は、通信機器50においてダウンロードされたアプリに正規性があることが検証された場合に通信機器50からインストールの実行指示を受け付け、かかるアプリのインストールを行う。また、アプリ処理部31は、インストールされたアプリを削除するアンインストール処理を行うことができる。
【0132】
また、アプリ処理部31は、通信機器50から出力される、検証情報やアプリ固有情報の送信要求に応じて、第1~第3アプリ記憶部41~43に記憶される検証情報や、第1~第3アプリのアプリ固有情報などを通信機器50へ送信することができる。
【0133】
アプリ側生成部32は、第1検証情報11a1、第2検証情報12a2、第3検証情報13a3などを生成することができる。なお、アプリ側生成部32は、生成部の一例である。
【0134】
先ず、第1検証情報11a1の生成について説明する。例えば、アプリ側生成部32は、第1アプリのインストールが完了すると、第1検証情報11a1を生成する。
【0135】
具体的には、第1アプリのインストールが完了すると、車載機器20には、第1アプリのインストールの日時情報が通信機器50から入力される。アプリ側生成部32は、第1アプリのアプリ固有情報に基づいて第1アプリハッシュ値を算出する。また、アプリ側生成部32は、入力された第1アプリのインストールの日時情報に基づいて第1機器ハッシュ値を算出する。そして、アプリ側生成部32は、第1アプリハッシュ値および第1機器ハッシュ値を含む第1検証情報11a1を生成し、第1アプリ記憶部41に記憶させる(図3参照)。
【0136】
また、第1アプリのインストールが完了すると、車載機器20には、通信機器50から所定検証情報10bが入力される。アプリ側生成部32は、入力された情報を、第1アプリ記憶部41に所定検証情報10a1として記憶させる。
【0137】
次に、第2検証情報12a2の生成について説明する。例えば、アプリ側生成部32は、第2アプリのインストールが完了すると、第2検証情報12a2を生成する。
【0138】
具体的には、第2アプリのインストールが完了すると、第2アプリのインストールの日時情報が通信機器50から入力される。アプリ側生成部32は、第2アプリのアプリ固有情報に基づいて第2アプリハッシュ値を算出する。また、アプリ側生成部32は、入力された第2アプリのインストールの日時情報に基づいて第2機器ハッシュ値を算出する。そして、アプリ側生成部32は、第2アプリハッシュ値および第2機器ハッシュ値を含む第2検証情報12a2を生成し、第2アプリ記憶部42に記憶させる(図4参照)。
【0139】
また、第2アプリのインストールが完了すると、車載機器20には、第2アプリのひとつ前にインストールされた第1アプリに関する第1検証情報11bが通信機器50から入力される。アプリ側生成部32は、入力された情報を、第2アプリ記憶部42に第1検証情報11a2として記憶させる。
【0140】
次に、第3検証情報13a3の生成について説明する。例えば、アプリ側生成部32は、第3アプリのインストールが完了すると、第3検証情報13a3を生成する。
【0141】
具体的には、第3アプリのインストールが完了すると、第3アプリのインストールの日時情報が通信機器50から入力される。アプリ側生成部32は、第3アプリのアプリ固有情報に基づいて第3アプリハッシュ値を算出する。また、アプリ側生成部32は、入力された第3アプリのインストールの日時情報に基づいて第3機器ハッシュ値を算出する。そして、アプリ側生成部32は、第3アプリハッシュ値および第3機器ハッシュ値を含む第3検証情報13a3を生成し、第3アプリ記憶部43に記憶させる(図5参照)。
【0142】
また、第3アプリのインストールが完了すると、車載機器20には、第3アプリのひとつ前にインストールされた第2アプリに関する第2検証情報12bが通信機器50から入力される。アプリ側生成部32は、入力された情報を、第2アプリ記憶部42に第3検証情報13a3として記憶させる。
【0143】
このように、アプリ側生成部32は、インストールの日時情報など通信機器50あるいは車載機器20に固有の固有情報に基づいて、第1検証情報11a1、第2検証情報12a2および第3検証情報13a3を生成し、車載機器側記憶部40に記憶させる。また、アプリ側生成部32は、ひとつ前にインストールされたアプリに関する検証情報など、通信機器50あるいは車載機器20に固有の固有情報に基づいて生成される検証情報である、所定検証情報10a1や第1検証情報11a2、第2検証情報12a3を車載機器側記憶部40に記憶させる。
【0144】
〔通信機器の構成について〕
次いで、通信機器50の詳細な構成について説明する。通信機器50は、通信部51と、管理制御部60と、通信機器側記憶部70とを備える。
【0145】
通信部51は、インターネット網などの通信ネットワークに双方向通信可能に接続する通信インターフェイスであり、例えば外部サーバなどと、アプリのダウンロードなどアプリに関する情報の送受信を行う。
【0146】
管理制御部60は、アプリ管理部61と、管理側生成部62と、検証部63と、通知部64とを備え、例えば、CPU、ROM、RAM、入出力ポートなどを有するコンピュータや各種の回路を含む。
【0147】
コンピュータのCPUは、例えば、ROMに記憶されたプログラムを読み出して実行することによって、管理制御部60のアプリ管理部61、管理側生成部62、検証部63および通知部64として機能する。
【0148】
また、管理制御部60のアプリ管理部61、管理側生成部62、検証部63および通知部64の少なくともいずれか一部または全部をASICやFPGA等のハードウェアで構成することもできる。
【0149】
また、通信機器側記憶部70は、例えば、不揮発性メモリ、データフラッシュやハードディスクドライブといった記憶デバイスで構成される記憶部である。かかる通信機器側記憶部70は、管理記憶部71を備える。
【0150】
管理記憶部71は、アプリケーションの管理に関する情報を記憶する記憶部である。管理記憶部71には、所定検証情報10bと、第1検証情報11bと、第2検証情報12bと、第3検証情報13bとが記憶される。なお、所定検証情報10b、第1~第3検証情報11b,12b,13bのうち、所定検証情報10bは、管理記憶部71に予め記憶される、言い換えると、アプリのインストール等が行われる前に記憶される。
【0151】
これら所定検証情報10b、第1~第3検証情報11b,12b,13bに含まれる検証情報の内容については、上記した所定検証情報10a1、第1~第3検証情報11a1,12a2,13a3と同様であるため、ここでの説明を省略する(図3~5参照)。但し、情報の中身自体は、改ざんなどにより異なる場合がある。すなわち、所定検証情報10bと所定検証情報10a1との間、第1検証情報11bと第1検証情報11a1との間、第2検証情報12bと第2検証情報12a2との間、第3検証情報13bと第3検証情報13a3との間で、改ざんなどにより異なる場合がある。
【0152】
管理制御部60のアプリ管理部61は、例えばアプリのダウンロードおよびインストールなどアプリの通信に関する管理処理を行うことができる。
【0153】
例えば、アプリ管理部61は、アプリのインストールの要求がなされると、対応するアプリを図示しない外部サーバからダウンロードする。なお、アプリのインストールの要求は、例えば車載機器20にアプリが追加されるときや、更新(リプログラミング)用のアプリが配信されるときに、通信機器50に入力される。
【0154】
アプリ管理部61は、ダウンロードされたアプリが正規なアプリであるか否かを判定する。一例としては、アプリ管理部61は、ダウンロードされるアプリが予め有しているアプリハッシュ値を取得する。また、アプリ管理部61は、ダウンロードされたアプリから、アプリのアプリ固有情報(例えばアプリのバイナリコード)を取得する。アプリ管理部61は、取得されたアプリ固有情報に所定のハッシュ関数を掛け合わせてアプリハッシュ値を算出する。
【0155】
アプリ管理部61は、アプリから取得されたアプリハッシュ値と算出されたアプリハッシュ値とを比較し、一致する場合、アプリは正規なアプリであると判定する。アプリ管理部61は、アプリが正規なアプリであると判定された場合、インストールの実行指示を車載機器20へ出力し、車載機器20においてアプリのインストールが行われる。
【0156】
アプリ管理部61は、アプリのインストールが完了すると、アプリのインストールの日時情報を、管理側生成部62および車載機器20へ出力する。
【0157】
また、アプリ管理部61は、アプリのインストールが完了すると、インストールが完了したアプリのひとつ前にインストールされたアプリに関する検証情報を車載機器20へ出力する。なお、ひとつ前にインストールされたアプリが存在しない場合、所定検証情報10bを車載機器20へ出力する。これにより、車載機器20のアプリ制御部30によってアプリに関する検証情報が車載機器側記憶部40に記憶されることは、既に述べた通りである。
【0158】
他方、アプリ管理部61は、アプリから取得されたアプリハッシュ値と算出されたアプリハッシュ値とが一致しない場合、アプリは正規なアプリではないと判定し、車載機器20へのインストールは行われない。
【0159】
管理側生成部62は、第1検証情報11b、第2検証情報12b、第3検証情報13bなどを生成することができる。なお、管理側生成部62は、生成部の一例である。
【0160】
例えば、管理側生成部62は、第1アプリのインストールが完了すると、第1検証情報11bを生成する。具体的には、第1アプリのインストールが完了すると、管理側生成部62は、第1アプリのアプリ固有情報に基づいて第1アプリハッシュ値を算出する。また、管理側生成部62は、第1アプリのインストールの日時情報に基づいて第1機器ハッシュ値を算出する。そして、管理側生成部62は、第1アプリハッシュ値および第1機器ハッシュ値を含む第1検証情報11bを生成し、管理記憶部71に記憶させる(図3参照)。
【0161】
例えば、管理側生成部62は、第2アプリのインストールが完了すると、第2検証情報12bを生成する。具体的には、第2アプリのインストールが完了すると、管理側生成部62は、第2アプリのアプリ固有情報に基づいて第2アプリハッシュ値を算出する。また、管理側生成部62は、第2アプリのインストールの日時情報に基づいて第2機器ハッシュ値を算出する。そして、管理側生成部62は、第2アプリハッシュ値および第2機器ハッシュ値を含む第2検証情報12bを生成し、管理記憶部71に記憶させる(図4参照)。
【0162】
例えば、管理側生成部62は、第3アプリのインストールが完了すると、第3検証情報13bを生成する。具体的には、第3アプリのインストールが完了すると、管理側生成部62は、第3アプリのアプリ固有情報に基づいて第3アプリハッシュ値を算出する。また、管理側生成部62は、第3アプリのインストールの日時情報に基づいて第3機器ハッシュ値を算出する。そして、管理側生成部62は、第3アプリハッシュ値および第3機器ハッシュ値を含む第3検証情報13bを生成し、管理記憶部71に記憶させる(図5参照)。
【0163】
このように、管理側生成部62は、アプリのインストールの日時情報など通信機器50あるいは車載機器20に固有の固有情報に基づいて、第1検証情報11b、第2検証情報12bおよび第3検証情報13bを生成し、管理記憶部71に記憶させる。
【0164】
検証部63は、上記のようにして生成された検証情報に基づいて、アプリの正規性を検証する検証処理を実行する。例えば、検証部63は、アプリのインストール後、所定のタイミングが到来した場合に、検証処理(第1~第3検証処理)を実行する。
【0165】
なお、所定のタイミングは、上記したように、定期検証タイミング、または、アプリの起動要求がなされたタイミングなどである。ここでは、定期検証タイミングで第1検証処理および第2検証処理が実行され、アプリの起動要求がなされたタイミングで第3検証処理が実行される場合を例に挙げて説明するが、これに限定されるものではない。
【0166】
〔第1検証処理の実行について〕
検証部63は、例えば定期検証タイミングが到来した場合に、第1検証処理を実行する。以下、第1検証処理で第2アプリの正規性を検証する場合を例に挙げて説明する。
【0167】
検証部63は先ず、車載機器20に対して第2検証情報12a2および第1検証情報11a2の送信要求を行う。詳しくは、検証部63は、第2アプリに関する検証情報であって、第2アプリに関する情報を記憶する第2アプリ記憶部42に記憶されている第2検証情報12a2および第1検証情報11a2の送信要求を行う。これにより、車載機器20から第2検証情報12a2および第1検証情報11a2が送信され、検証部63は、送信された第2検証情報12a2および第1検証情報11a2を取得する。すなわち、検証部63は、所定のタイミングである定期検証タイミングが到来した時点で第2アプリ記憶部42に記憶されている第2検証情報12a2および第1検証情報11a2を取得する。
【0168】
次に、検証部63は、管理記憶部71に記憶される第2検証情報12bおよび第1検証情報11bを取得する。すなわち、検証部63は、アプリケーションの管理に関する情報を記憶する管理記憶部71に記憶され第2アプリがインストールされたときに生成される第2検証情報12bと、第1アプリがインストールされたときに生成され第2アプリがインストールされたときに管理記憶部71に記憶されている第1検証情報11bとを取得する。
【0169】
そして、検証部63は、取得された第2検証情報12a2と第2検証情報12bとを比較して照合するとともに、第1検証情報11a2と第1検証情報11bとを比較して照合することで、第2アプリの正規性を検証する(図1の第1検証処理参照)。具体的には、検証部63は、第2検証情報12a2および第2検証情報12bにそれぞれ含まれる、アプリハッシュ値、機器ハッシュ値同士を比較し、第1検証情報11a2および第1検証情報11bにそれぞれ含まれる、アプリハッシュ値、機器ハッシュ値同士を比較して一致するか否かを判定する。
【0170】
検証部63は、第2検証情報12a2と第2検証情報12bとが一致し、かつ、第1検証情報11a2と第1検証情報11bとが一致した場合、第2アプリに正規性があると判定する。言い換えると、検証部63は、車載機器20側の第2検証情報12a2および第1検証情報11a2が、インストール時の検証情報である、通信機器50側の第2検証情報12bおよび第1検証情報11bに対して変わっていない(書き換えられていない)ことから、第2アプリは正規なアプリであり、不正アプリではないと判定する。
【0171】
他方、検証部63は、第2検証情報12a2と第2検証情報12bとが不一致であった場合、または/および、第1検証情報11a2と第1検証情報11bとが不一致であった場合、第2アプリに正規性がないと判定する。すなわち、検証部63は、車載機器20側の第2検証情報12a2や第1検証情報11a2が通信機器50側の第2検証情報12bや第1検証情報11bに対して変わっている(書き換えられている)ことから、現在の第2アプリは改ざんなどがなされた不正アプリであると判定する。
【0172】
このように、第1検証処理においては、車載機器20側の検証情報と通信機器50側の検証情報とを比較して相互監視することで、アプリの正規性を検証する検証処理の精度を向上させることができ、よってアプリを備えた車載機器20のセキュリティ性を向上させることができる。
【0173】
〔第2検証処理の実行について〕
検証部63は、例えば定期検証タイミングが到来した場合に、第2検証処理を実行する。以下、第2検証処理で第2アプリの正規性を検証する場合を例に挙げて説明する。
【0174】
例えば、検証部63は、定期検証タイミングが到来すると、車載機器20に対して第2アプリのアプリ固有情報の送信要求を行う。これにより、車載機器20から第2アプリのアプリ固有情報が送信され、検証部63は、送信された第2アプリのアプリ固有情報を取得する。検証部63は、取得された第2アプリのアプリ固有情報に所定のハッシュ関数を掛け合わせて、第2アプリのアプリハッシュ値を再度算出する。すなわち、検証部63は、定期検証タイミングが到来した時点の(現在の)第2アプリのアプリハッシュ値を算出する。
【0175】
次に、検証部63は、管理記憶部71に記憶される第2検証情報12bのアプリハッシュ値を取得する。すなわち、検証部63は、管理記憶部71に記憶され第2アプリがインストールされたときに算出される、第2検証情報12bのアプリハッシュ値を取得する。
【0176】
そして、検証部63は、定期検証タイミングが到来した時点で算出される第2アプリのアプリハッシュ値と、第2アプリがインストールされたときに算出される第2アプリのアプリハッシュ値とを比較して照合することで、第2アプリの正規性を検証する(図1の第2検証処理参照)。
【0177】
検証部63は、定期検証タイミング時の第2アプリのアプリハッシュ値と、インストール時の第2アプリのアプリハッシュ値とが一致した場合、第2アプリに正規性があると判定する。言い換えると、検証部63は、再算出された第2アプリのアプリハッシュ値が、インストール時の検証情報である第2アプリのアプリハッシュ値に対して変わっていない(書き換えられていない)ことから、第2アプリは正規なアプリであり、不正アプリではないと判定する。
【0178】
他方、検証部63は、定期検証タイミング時の第2アプリのアプリハッシュ値と、インストール時の第2アプリのアプリハッシュ値とが不一致であった場合、第2アプリに正規性がないと判定する。すなわち、検証部63は、再算出された第2アプリのアプリハッシュ値が、インストール時の第2アプリのアプリハッシュ値に対して変わっている(書き換えられている)ことから、現在の第2アプリは改ざんなどがなされた不正アプリであると判定する。
【0179】
このように、第2検証処理においては、定期検証タイミングが到来した時点の(現在の)アプリハッシュ値と、インストール時のアプリハッシュ値とを比較してインストール時からのアプリハッシュ値の変化を検出するようにしたので、アプリの正規性を検証する検証処理の精度を向上させることができ、よってアプリを備えた車載機器20のセキュリティ性を向上させることができる。
【0180】
〔第3検証処理の実行について〕
検証部63は、例えばアプリの起動要求がなされた場合に、第3検証処理を実行する。以下、第2アプリ等の正規性を検証する場合を例に挙げて説明する。
【0181】
検証部63は、第2アプリの起動要求がなされると先ず、車載機器20の第2アプリに対し、第2アプリ記憶部42に記憶される検証情報であって、第2アプリより前にインストールされた第1アプリに関する検証情報である第1検証情報11a2の送信要求を行う。これにより、車載機器20から第1検証情報11a2が送信され、検証部63は、送信された第1検証情報11a2を取得する。すなわち、検証部63は、第2アプリの起動要求がなされた時点で第2アプリ記憶部42に記憶されている第1検証情報11a2を取得する。
【0182】
次に、検証部63は、車載機器20の第1アプリに対し、第1アプリ記憶部41に記憶される第1検証情報11a1の送信要求を行う。これにより、車載機器20から第1検証情報11a1が送信され、検証部63は、送信された第1検証情報11a1を取得する。すなわち、検証部63は、第2アプリの起動要求がなされた時点で第1アプリ記憶部41に記憶されている第1検証情報11a1を取得する。
【0183】
そして、検証部63は、取得された第1検証情報11a2と第1検証情報11a1とを比較して照合することで、第1、第2アプリの正規性を検証する(図1の第3検証処理参照)。具体的には、検証部63は、第1検証情報11a2および第1検証情報11a1にそれぞれ含まれる、アプリハッシュ値および機器ハッシュ値同士を比較して一致するか否かを判定する。
【0184】
検証部63は、第1検証情報11a2と第1検証情報11a1とが一致した場合、第1、第2アプリに正規性があると判定する。言い換えると、検証部63は、第1検証情報11a2および第1検証情報11a1が、インストール時の検証情報から変わっていない(書き換えられていない)と推定できることから、第1、第2アプリは正規なアプリであり、不正アプリではないと判定する。
【0185】
他方、検証部63は、第1検証情報11a2と第1検証情報11a1とが不一致であった場合、第1、第2アプリの少なくともいずれかに正規性がないと判定する。すなわち、検証部63は、第1検証情報11a2および第1検証情報11a1が、インストール時の検証情報から変わっている(書き換えられている)ことから、現在の第1、第2アプリのうち少なくとも一方は改ざんなどがなされた不正アプリであると判定する。
【0186】
上記した検証処理が完了すると、検証部63は、上記した検証処理による検証結果(比較結果)を示す情報を、車載機器20および通知部64へ送信する。車載機器20のアプリ処理部31は、第1、第2アプリに正規性があることを示す検証結果の場合、第2アプリを起動させる。一方、アプリ処理部31は、第1、第2アプリの少なくともいずれかに正規性がないことを示す検証結果の場合、第2アプリの起動を行わない、言い換えると第2アプリの起動を禁止する。
【0187】
このように、第3検証処理においては、起動要求がなされた第2アプリの第2アプリ記憶部42が有する、第2アプリ以前にインストールされた第1アプリの第1検証情報11a2と、第2アプリ以前にインストールされた第1アプリの第1アプリ記憶部41が有する第1アプリの第1検証情報11a1とを用いて、アプリとアプリとの間(ここでは第1アプリと第2アプリとの間)で相互監視する。これにより、アプリの正規性を検証する検証処理の精度を向上させることができ、よってアプリを備えた車載機器20のセキュリティ性を向上させることができる。
【0188】
〔通知について〕
通知部64は、上記した各検証処理の検証結果を示す情報に応じた通知を行うことができる。例えば、通知部64は、検証処理によってアプリの正規性が検証されなかった場合、言い換えると、アプリが不正アプリであることを示す検証結果であった場合、当該アプリに対して行うべき対応を、出力部80を介して車載機器20のユーザに通知する。
【0189】
一例として、通知部64は、正規性が検証されなかったアプリについて、削除する処理(アンインストール処理)を促す通知を行うことができる。そして、かかる通知を受けたユーザの操作により、例えば車載機器20に対して、正規性が検証されなかったアプリの削除を要求する操作がなされた場合、車載機器20は、当該アプリを削除するアンインストール処理を行う。
【0190】
このように、アプリの正規性が検証されなかった場合、当該アプリケーションに対して行うべき対応を通知するよう構成したので、例えばユーザは、不正アプリを削除するなど適切な対応をとることが可能になる。
【0191】
また、通知部64は、検証処理によってアプリの正規性が検証された場合、当該アプリが正規なアプリであることを示す通知を行ってもよい。これにより、例えばユーザは、車載機器20のアプリの安全性を確認することができる。
【0192】
<実施形態に係る検証装置の制御処理>
次に、検証装置100における具体的な処理手順について図6を用いて説明する。図6は、検証装置100が実行する処理手順を示すフローチャートである。
【0193】
図6に示すように、検証装置100は、アプリのインストール要求があるか否かを判定する(ステップS10)。検証装置100は、アプリのインストール要求があると判定された場合(ステップS10,Yes)、アプリを外部サーバからダウンロードする処理を実行する(ステップS11)。
【0194】
次いで、検証装置100は、ダウンロードしたアプリが正規なアプリであるか否かを検証する(ステップS12)。検証装置100は、ダウンロードしたアプリが正規なアプリではない、すなわち正規性がないと検証された場合(ステップS12,No)、アプリのインストールを行わず、処理を終了する。
【0195】
検証装置100は、ダウンロードしたアプリが正規なアプリである、すなわち正規性があると検証された場合(ステップS12,Yes)、アプリの車載機器20へのインストールを行う(ステップS13)。
【0196】
次いで、検証装置100は、通信機器50あるいは車載機器20に固有の固有情報や、アプリに固有にアプリ固有情報などに基づいて検証情報を生成する(ステップS14)。なお、検証装置100は、ステップS10の処理において、アプリのインストール要求がないと判定された場合(ステップS10,No)、ステップS11~ステップS14の処理をスキップする。
【0197】
次いで、検証装置100は、定期検証タイミングが到来したか否かを判定する(ステップS15)。検証装置100は、定期検証タイミングが到来したと判定された場合(ステップS15,Yes)、第1検証処理を実行し(ステップS16)、続いて第2検証処理を実行する(ステップS17)。なお、図6の例では、第1検証処理、第2検証処理の順で処理が行われるようにしたが、これに限られず、例えば第2検証処理、第1検証処理の順で処理が行われてもよいし、第1、第2検証処理が同時に行われてもよい。
【0198】
次いで、検証装置100は、第1、第2検証処理において、アプリに正規性があることが検証されたか否かを判定する(ステップS18)。検証装置100は、アプリに正規性がないと判定された場合(ステップS18,No)、当該アプリに対して行うべき対応を通知する(ステップS19)、例えばアプリの削除を促す通知を行う。
【0199】
一方、検証装置100は、アプリに正規性があることが検証された場合(ステップS18,Yes)、あるいは、ステップS15において定期検証タイミングが到来していないと判定された場合(ステップS15,No)、アプリの起動要求がなされたか否かを判定する(ステップS20)。
【0200】
検証装置100は、アプリの起動要求がなされていないと判定された場合(ステップS20,No)、以降の処理をスキップする。他方、検証装置100は、アプリの起動要求がなされたと判定された場合(ステップS20,Yes)、第3検証処理を実行する(ステップS21)。
【0201】
次いで、検証装置100は、第3検証処理において、アプリに正規性があることが検証されたか否かを判定する(ステップS22)。検証装置100は、アプリに正規性があることが検証された場合(ステップS22,Yes)、アプリを起動させる(ステップS23)。
【0202】
他方、検証装置100は、アプリに正規性がないと判定された場合(ステップS22,No)、アプリを起動させずにステップS19に進み、当該アプリに対して行うべき対応を通知する、例えばアプリの削除を促す通知を行う。
【0203】
上述してきたように、実施形態に係る検証装置100は、生成部(アプリ側生成部32、管理側生成部62)と、検証部63とを備える。生成部は、アプリケーションに関する処理を行う機器(車載機器20、通信機器50)に固有の固有情報に基づいて検証情報を生成する。検証部63は、生成部によって生成された検証情報に基づいてアプリケーションの正規性を検証する検証処理を実行する。これにより、アプリケーションを備えた車載機器20のセキュリティ性を向上させることができる。
【0204】
なお、上記した実施形態において、アプリのバイナリコードやソースコードなどのアプリ固有情報に基づいてアプリハッシュ値が算出され、アプリのインストールの日時情報など通信機器50(あるいは車載機器20)に固有の固有情報に基づいて機器ハッシュ値がそれぞれ算出されるようにしたが、これに限定されるものではない。すなわち、例えばアプリ固有情報(バイナリコード等)と通信機器50等に固有の固有情報(インストールの日時情報等)を合成し、合成された情報に所定のハッシュ関数を掛け合わせてハッシュ値が算出されるようにし、かかるハッシュ値に基づいて検証処理が行われるように構成してもよい。
【0205】
なお、上記では、車載機器20および通信機器50が、それぞれ各種の処理を行うようにしたが、各種の処理が行われる装置は、上記に限定されるものではない。すなわち、車載機器20で行われる処理の一部あるいは全部が、通信機器50で行われるようにしてもよい。また、通信機器50で行われる処理の一部あるいは全部が、車載機器20で行われるようにしてもよい。
【0206】
さらなる効果や変形例は、当業者によって容易に導き出すことができる。このため、本発明のより広範な態様は、以上のように表しかつ記述した特定の詳細および代表的な実施形態に限定されるものではない。したがって、添付の特許請求の範囲およびその均等物によって定義される総括的な発明の概念の精神または範囲から逸脱することなく、様々な変更が可能である。
【符号の説明】
【0207】
1 車載システム
20 車載機器
30 アプリ制御部
32 アプリ側生成部
50 通信機器
60 管理制御部
62 管理側生成部
63 検証部
64 通知部
100 検証装置
図1
図2
図3
図4
図5
図6