(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-03-27
(45)【発行日】2024-04-04
(54)【発明の名称】情報処理装置および情報処理装置のファイル処理方法
(51)【国際特許分類】
G06F 21/51 20130101AFI20240328BHJP
G06F 21/64 20130101ALI20240328BHJP
【FI】
G06F21/51
G06F21/64
(21)【出願番号】P 2022572903
(86)(22)【出願日】2021-08-24
(86)【国際出願番号】 JP2021031059
(87)【国際公開番号】W WO2022145085
(87)【国際公開日】2022-07-07
【審査請求日】2023-01-12
(31)【優先権主張番号】P 2020219552
(32)【優先日】2020-12-28
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】502129933
【氏名又は名称】株式会社日立産機システム
(74)【代理人】
【識別番号】110001689
【氏名又は名称】青稜弁理士法人
(72)【発明者】
【氏名】山田 大樹
(72)【発明者】
【氏名】藤岡 孝芳
(72)【発明者】
【氏名】白根 一登
【審査官】宮司 卓佳
(56)【参考文献】
【文献】国際公開第2020/075303(WO,A1)
【文献】特開2019-096271(JP,A)
【文献】特開2020-082441(JP,A)
【文献】特開2019-215754(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/51
G06F 21/64
(57)【特許請求の範囲】
【請求項1】
実行ファイルによりアプリケーションソフトウェアの機能を実行する情報処理装置であって、
前記情報処理装置は、
アプリケーションソフトウェアの改ざんを検知し、アプリケーションソフトウェアを起動するアプリケーション管理部と、
ファイルに対するハッシュを生成するハッシュ生成部とを備え、
前記アプリケーション管理部は、前記ハッシュ生成部により生成された前記実行ファイルのハッシュを保持し、
前記アプリケーション管理部は、アプリケーションソフトウェアを起動する際に、前記ハッシュ生成部により起動するアプリケーションソフトウェアの実行ファイルのハッシュを生成し、
既に保持された実行ファイルのハッシュと、生成された実行ファイルのハッシュとを比較し、一致しないときには、当該アプリケーションを起動
せず、
前記アプリケーションソフトウェアは、さらに、デフォルトの設定情報を記憶するデフォルト設定ファイルを保持し、
前記アプリケーション管理部は、アプリケーションソフトウェアを起動する際に、前記ハッシュ生成部により、起動するアプリケーションソフトウェアの設定ファイルのハッシュを生成し、
既に保持された設定ファイルのハッシュと、生成された設定ファイルのハッシュとを比較し、一致しないときには、前記ハッシュ生成部により前記デフォルト設定ファイルのハッシュを生成し、
前記アプリケーションソフトウェアの保持する設定ファイルの情報を前記デフォルト設定ファイルの情報により上書きし、
生成した前記デフォルト設定ファイルのハッシュを、前記アプリケーションソフトウェアの設定ファイルのハッシュとして保持することを特徴とする情報処理装置。
【請求項2】
前記アプリケーション管理部は、アプリケーションソフトウェアの実行ファイルが変更された場合に、保持する前記実行ファイルのハッシュを更新することを特徴とする請求項1の情報処理装置。
【請求項3】
前記アプリケーションソフトウェアは、実行のための設定情報を記憶する設定ファイルを保持し、
前記アプリケーション管理部は、前記ハッシュ生成部により生成された前記設定ファイルのハッシュを保持し、
前記アプリケーション管理部は、アプリケーションソフトウェアの設定ファイルが変更された場合に、保持する前記設定ファイルのハッシュを更新することを特徴とする請求項1の情報処理装置。
【請求項4】
アプリケーションソフトウェアの機能を実行する情報処理装置のファイル処理方法であって、
前記情報処理装置は、
アプリケーションソフトウェアの改ざんを検知し、アプリケーションソフトウェアを起動するアプリケーション管理部と、
ファイルに対するハッシュを生成するハッシュ生成部とを備え、
前記アプリケーションソフトウェアは、実行のための設定情報を記憶する設定ファイルと、デフォルトの設定情報を記憶するデフォルト設定ファイルと、アプリケーションソフトウェアの実行のための実行ファイルとを保持し、
前記アプリケーション管理部が、前記ハッシュ生成部により生成された前記実行ファイルのハッシュと前記設定ファイルのハッシュとを保持するステップと、
前記アプリケーション管理部が、アプリケーションソフトウェアの実行ファイルが変更された場合に、保持する前記実行ファイルのハッシュを更新するステップと、
前記アプリケーション管理部が、アプリケーションソフトウェアの設定ファイルが変更された場合に、保持する前記設定ファイルのハッシュを更新するステップと、
前記アプリケーション管理部が、アプリケーションソフトウェアを起動する際に、前記ハッシュ生成部により起動するアプリケーションソフトウェアの実行ファイルのハッシュを生成し、既に保持された実行ファイルのハッシュと、生成された実行ファイルのハッシュとを比較し、一致しないときには、当該アプリケーションを起動しないステップと、
前記アプリケーション管理部が、アプリケーションソフトウェアを起動する際に、前記ハッシュ生成部により、起動するアプリケーションソフトウェアの設定ファイルのハッシュを生成し、既に保持された設定ファイルのハッシュと、生成された設定ファイルのハッシュとを比較し、一致しないときには、前記ハッシュ生成部により前記デフォルト設定ファイルのハッシュを生成するステップと、
前記アプリケーションソフトウェアの保持する設定ファイルの情報を前記デフォルト設定ファイルの情報により上書きするステップと、
生成した前記デフォルト設定ファイルのハッシュを、前記アプリケーションソフトウェアの設定ファイルのハッシュとして保持するステップとを有することを特徴とする情報処理装置のファイル処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理システムおよび情報処理装置のファイル処理方法に係り、特に、メインメモリの制限がある場合であっても、不正なアプリケーションの起動や異常な設定の適用を防止し、情報処理装置に関わるサイバー攻撃の被害を低減するのに好適な情報処理装置、情報処理システムおよび情報処理装置のファイル処理方法に関する。
【背景技術】
【0002】
近年、無線ルータなどの通信端末がエッジデバイスとして、データの一次処理や、プロトコル変換など多様な処理を行うケースが増加している。さらに、通信機能を含むこれらのアプリケーションソフトウェア(以下、単に「アプリケーション」という)の更新・追加を実施するFOTA(Firmware Over The Air)の技術が確立されつつある。
【0003】
エッジデバイスの機能が向上するに伴い、これらの端末を狙ったサイバー攻撃の手段も高度化されてきており、例えば、DoS(Denial of Service)攻撃のように大量の通信データを投げかけて、装置の機能を停止させるものから、端末の制御を奪って他者に悪意のある攻撃を仕掛けさせるボットネットの一員とする不正プログラムの導入など、サイバー攻撃の手法は多様化が進んでいる。このようなサイバー攻撃を防止するためには、セキュリティに関わる設定を正しく行い、機能を実行するアプリケーションの改ざんを検知し、不正なアプリケーションの混入を防ぐ必要がある。
【0004】
このようなソフトウェアのセキュリティに関しては、例えば、特許文献1の記載の技術がある。この特許文献1では、プログラムのハッシュを用いた改ざん検知を行い、改ざんを検知した場合に、改ざんのおそれのあるプログラムではなく、別の領域に格納された旧バージョンのプログラムを起動する技術が開示されている。この特許文献1に記載された情報処理装置では、ROM(Read Only Memory)である第1記憶部にプリインストールプログラムをインストールし、書き換え可能なメモリ領域である第2記憶部に平常時に使用するプログラムをインストールする。そして、第2記憶部に保存されているプログラムに対し改ざん検知を行い、改ざんを検知した場合には、第1記憶部に指定のプログラムの旧バージョンがプリインストールされていればそれを実行する。これにより、プログラムの実行可否を規定したプログラム情報を改ざんされた場合でも、出荷時にプリインストールされたプログラムの利用を可能としユーザの利便性を確保することができるとしている。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
一般に、エッジデバイスは安価で大量に生産される背景から、メモリや記憶装置の容量が制限されることが多い。特許文献1に記載された技術の場合には、情報処理装置が十分にROMや書き換え可能なメモリ領域を有することが前提となっており、エッジデバイスでの適用が難しい。また、特許文献1では、プログラムのみを改ざん検知の対象としているが、プログラムの動作には設定値が必要であり、設定値も改ざん検知の対象に含めなければプログラムが異常動作する可能性がある。
【0007】
本発明の目的は、情報処理装置にメモリ量の制限がある場合にも、不正なアプリケーションの起動や異常な設定の適用を防止し、情報処理装置に関わるサイバー攻撃の被害を低減することのできる情報処理装置を提供することにある。
【課題を解決するための手段】
【0008】
本発明の情報処理装置の構成は、好ましくは、実行ファイルによりアプリケーションソフトウェアの機能を実行する情報処理装置であって、情報処理装置は、アプリケーションソフトウェアの改ざんを検知し、アプリケーションソフトウェアを起動するアプリケーション管理部と、ファイルに対するハッシュを生成するハッシュ生成部とを備え、アプリケーション管理部は、ハッシュ生成部により生成された実行ファイルのハッシュを保持し、アプリケーション管理部は、アプリケーションソフトウェアを起動する際に、ハッシュ生成部により起動するアプリケーションソフトウェアの実行ファイルのハッシュを生成し、既に保持された実行ファイルのハッシュと、生成された実行ファイルのハッシュとを比較し、一致しないときには、当該アプリケーションを起動しないようにしたものである。
【発明の効果】
【0009】
本発明によれば、情報処理装置にメモリ量の制限がある場合にも、不正なアプリケーションの起動や異常な設定の適用を防止し、情報処理装置に関わるサイバー攻撃の被害を低減することのできる情報処理装置を提供することができる。
【図面の簡単な説明】
【0010】
【
図1】実施形態1に係る情報処理装置の機能構成図である。
【
図2】実施形態1に係る情報処理装置のハードウェア・ソフトウェア構成図である。
【
図3】アプリケーション設定選択メニュー画面の一例を示す図である。
【
図4】アプリケーション設定画面の一例を示す図である。
【
図5】実行ファイル選択画面の一例を示す図である。
【
図6】設定ファイル、実行ファイル更新時処理の一例を示すフローチャートである。
【
図7】設定ファイル、実行ファイル更新時処理の一例を示すシーケンス図である。
【
図8】実施形態1のアプリケーション起動処理の一例を示すフローチャートである。
【
図9】実施形態1のアプリケーション起動処理の一例を示すシーケンス図である。
【
図10】実施形態2に係る情報処理装置の機能構成図である。
【
図11】ファイル取得要求のデータの一例を示す図である。
【
図12】実施形態2のアプリケーション起動処理の一例を示すフローチャートである。
【
図13】設定ファイル、実行ファイルのハッシュ適用処理の一例を示すフローチャートである。
【
図14】データ配信サーバにおけるファイル配信処理の一例を示すフローチャートである。
【
図15】情報処理装置が配信サーバからファイルを取得する処理の一例を示すシーケンス図である。
【
図16】実施形態3に係る情報処理装置の機能構成図である。
【
図18】ファイル検証要求のデータの一例を示す図である。
【
図19】全体ハッシュの概念について説明する図である。
【
図20】情報処理装置から発信されるファイル検証依頼処理を示すフローチャートである。
【
図21】データ配信サーバにおけるファイル検証処理を示すフローチャートである。
【
図22】ファイル検証処理の一連の流れを示すシーケンス図である。
【発明を実施するための形態】
【0011】
以下、本発明に係る各実施形態を、
図1ないし
図22を用いて説明する。
【0012】
〔実施形態1〕
以下、本発明に係る実施形態1を、
図1ないし
図9を用いて説明する。
【0013】
先ず、
図1および
図2を用いて実施形態1に係る情報処理装置の構成について説明する。
本実施形態の情報処理装置は、アプリケーションを実行するために設計された装置であり、予め設定された設定情報、あるいは、GUI(Graphical User Interface)により設定した設定情報に基づいてアプリケーションを実行する。情報処理装置100は、
図1に示されるように、ユーザインタフェース部110、アプリケーション管理部120、ハッシュ生成部130と、一つ以上のアプリケーション140(
図1では、140-1、140-2、…と表記)からなる。
【0014】
アプリケーション140は、設定ファイル141(
図1では、141-1、141-2、…と表記)、デフォルト設定ファイル142(
図1では、142-1、142-2、…と表記)、実行ファイル143を保持する。設定ファイル141は、アプリケーション140に関する設定情報を保持するファイルである。デフォルト設定ファイル142は、アプリケーション140に関する設定情報を保持するファイルであり、通常、アプリケーション140を更新しない限り書き換えられることはない。実行ファイル143は、アプリケーション140の処理を行う実行形式のファイルまたはシェルファイルである。なお、一つのアプリケーション140に複数の実行ファイル143を保持し、起動する実行ファイル143をユーザが選択できるようにしてもよい。
【0015】
ユーザインタフェース部110は、ユーザ1に対して画面に対しての表示やコマンド、データなどの入出力を提供する機能部である。ユーザ1は、ユーザインタフェース部110を介してアプリケーションの設定を変更することができ、それは、アプリケーションの設定ファイル141に反映される。
【0016】
アプリケーション管理部120は、各アプリケーション140に関する処理と管理を行なう機能部である。アプリケーション管理部120は、改ざん検知部121、アプリケーション起動部122、アプリケーション設定部123のサブ機能部からなる。
【0017】
改ざん検知部121は、アプリケーション140に関する設定ファイル141や実行ファイル143に関する悪意ある者による改ざんを検知する機能部である。アプリケーション起動部122は、各アプリケーション140を起動する機能部である。アプリケーション設定部123は、アプリケーションの設定ファイル141を更新する機能部である。改ざんを検知は、アプリケーション140の設定ファイル141、実行ファイル143からハッシュを生成し、予め生成しておいたそれらのハッシュと比較することにより行なう(詳細は後述)。
【0018】
そのため、アプリケーション管理部120は、設定ファイル141のハッシュのファイル150(以下、「設定ハッシュ」という)と、実行ファイル143のハッシュのファイル151(以下、「実行ハッシュ」という)を保持する。アプリケーション管理部120は、設定ファイル141、実行ファイル143をハッシュ生成部130に入力して、設定ハッシュ150、実行ハッシュ151を作成して保持し、各アプリケーション140の起動時に、保持する設定ハッシュ150、実行ハッシュ151により、起動するアプリケーション140の設定ファイル141の改ざんを検知した場合や、設定ファイル141が存在しない場合には、アプリケーション管理部120が、当該アプリケーション140のデフォルト設定ファイル142の情報をアプリケーション140の設定ファイル141に上書きし、アプリケーション140を起動する。
【0019】
ハッシュ生成部130は、アプリケーション140の設定ファイル141と実行ファイル143に対するハッシュを生成する機能部である。ハッシュは、ハッシュ関数により生成され、固定長の値で、同一の入力に対し、理想的には同一の結果を返すことを特徴とする。逆に一部でも入力に異なる箇所はあれば、基本的に異なるハッシュが生成されるため、暗号化や改ざん検知に利用されている技術である。なお、本発明は、ハッシュ生成方法(MD5やSHA-1、SHA2など)のアルゴリズムに依らず、ファイルやデータに対し、固定値のダイジェスト値が得られるハッシュ生成方法であればよい。
【0020】
次に、
図2を用いて情報処理装置10のハードウェア・ソフトウェア構成について説明する。
情報処理装置100のハードウェア構成としては、例えば、
図2に示されるパーソナルコンピュータのような一般的な情報処理装置で実現される。
【0021】
情報処理装置100は、CPU(Central Processing Unit)302、主記憶装置304、ネットワークI/F(InterFace)306、表示I/F308、入出力I/F310、補助記憶I/F312が、バスにより結合された形態になっている。
【0022】
CPU302は、情報処理装置100の各部を制御し、主記憶装置304に必要なプログラムをロードして実行する。
【0023】
主記憶装置304は、通常、RAMなどの揮発メモリで構成され、CPU302が実行するプログラム、参照するデータが記憶される。
【0024】
ネットワークI/F306は、ネットワーク5と接続するためのインタフェースである。
【0025】
表示I/F308は、LCD(Liquid Crystal Display)などの表示装置320を接続するためのインタフェースである。
【0026】
入出力I/F310は、入出力装置を接続するためのインタフェースである。
図2の例では、キーボード330とポインティングデバイスのマウス332が接続されている。
【0027】
補助記憶I/F312は、HDD(Hard Disk Drive)350やSSD(Solid State Drive)などの補助記憶装置を接続するためのインタフェースである。
【0028】
HDD350は、大容量の記憶容量を有しており、本実施形態を実行するためのプログラムが格納されている。情報処理装置10には、アプリケーション管理プログラム360、ハッシュ生成プログラム370、ユーザインタフェースプログラム380がインストールされている。
【0029】
アプリケーション管理プログラム360、ハッシュ生成プログラム370、ユーザインタフェースプログラム380は、それぞれアプリケーション管理部120、ハッシュ生成部130、ユーザインタフェース部110の機能を実現するプログラムである。
【0030】
アプリケーション管理プログラム360は、改ざん検知モジュール361、アプリケーション起動モジュール362、アプリケーション設定モジュール363からなる。改ざん検知モジュール361、アプリケーション起動モジュール362、アプリケーション設定モジュール363は、それぞれ改ざん検知部121、アプリケーション起動部122、アプリケーション設定部123の機能を実現するモジュールである。
【0031】
また、HDD350は、設定ファイル141(
図2では、141-1、141-2、…と表記)、デフォルト設定ファイル142(
図2では、142-1、142-2、…と表記)、実行ファイル143(
図2では、143-1、143-2、…と表記)、設定ハッシュ150(
図2では、150-1、150-2、…と表記)、実行ハッシュ151(
図2では、151-1、151-2、…と表記)を格納している。
【0032】
次に、
図3ないし
図5を用いて実施形態1に係る情報処理装置が提供するユーザインタフェースについて説明する。
【0033】
ユーザ1は、マウスやキーボードを操作することにより、
図3に示されるアプリケーション設定選択メニュー画面200を呼び出し、表示することができる。アプリケーション設定選択メニュー画面200は、各アプリケーション140の設定のためのメニューを選択するための画面である。
【0034】
ユーザ1は、各アプリケーション140に対応するアイコン201(
図3では、201a、201b、…と表記)を選択することにより、
図4に示されるアプリケーション設定画面202を呼び出し表示することができる。アプリケーション設定画面202は、各アプリケーション140毎の詳細な設定をするため入出力を受け付ける画面である。
【0035】
ユーザ1は、設定項目203(
図4では、203a、203b、…と表記)を入力し、設定変更ボタン204を選択することにより、ユーザが入力した設定情報を、設定ファイルに反映することができる。ユーザインタフェース部110は、設定変更ボタン204が選択されると、GUIの入力に従い、設定ファイル141を更新する。
【0036】
また、ユーザ1は、実行ファイル変更ボタン205を選択すると、
図5に示される実行ファイル選択画面206を呼び出し表示する。実行ファイル選択画面206は、該当するアプリケーション140の起動時に呼び出される実行ファイルを選択する画面である。
【0037】
実行ファイル選択画面206には、情報処理装置100に格納された実行ファイル名称207と格納日時が表示されている。ユーザ1は、実行ファイル名称207を選択し、実行ファイル変更実行ボタン208を選択することにより、アプリケーション140の実行ファイル143を変更することができる。実行ファイル名称207は、選択されることにより色が反転し、選択状態となる。そして、ユーザインタフェース部110は、実行ファイル変更実行ボタンが選択されると、実行ファイル名称の情報が、アプリケーション管理部120に送られる。
【0038】
次に、
図6ないし
図9を用いて情報処理装置の処理について説明する。
先ず、
図6および
図7を用いて設定ファイル、実行ファイル更新時処理について説明する。
【0039】
設定ファイル、実行ファイル更新の更新は、最初にアプリケーション140をインストールしたとき、インストール後に、ユーザがアプリケーション140の設定を変更するときに行われる。
【0040】
先ず、ユーザインタフェース部110を介して、ユーザがアプリケーション140をインストールしたり、ユーザがアプリケーション140の設定を変更して、アプリケーション140の設定ファイル141および実行ファイル143、あるいは、設定ファイル141が変更される(
図6のS101、
図7のA101、A102、A103)。
【0041】
次に、アプリケーション管理部120は、変更されたファイル情報を、ハッシュ生成部130に渡して、ハッシュ生成部130は、渡されたファイル情報に基づいて、ハッシュを生成し(S102、A104)、変更したファイルのハッシュを返す(A105)。
【0042】
次に、アプリケーション管理部120は、送られてきたハッシュに基づいて、設定ファイル141、実行ファイル143に対して、それぞれ設定ハッシュ150、実行ハッシュ151として格納する(S103)。
【0043】
次に、
図8および
図9を用いて設定ファイル、実行ファイル更新時処理について説明する。
先ず、アプリケーション管理部120は、ユーザまたは外部プログラムの指示によって、起動指示を受けたとき、該当するアプリケーション140の設定ファイル141、実行ファイル143をアクセスする(
図8のS201、
図9のA201)。
【0044】
次に、アプリケーション管理部120は、設定ファイルが存在しているか否かを判定し(S202)、存在するときには(S202:YES)、S204に行き、存在しないときには(S202:NO)、S203に行く。
【0045】
設定ファイルが存在しないときには、アプリケーション管理部120は、デフォルト設定ファイル142をアクセスし、デフォルト設定ファイル142を設定ファイル141として複製する(S203)。
【0046】
次に、アプリケーション管理部120は、設定ファイル141、実行ファイル143の情報をハッシュ生成部130に送り(A202)、ハッシュ生成部130は、それぞれのファイルに対応するハッシュを生成し(S204)、アプリケーション管理部120に送る(A203)。
【0047】
次に、アプリケーション管理部120の改ざん検知部121は、受取ったハッシュと、保持している設定ハッシュ150、実行ハッシュ151を比較し(S205)、受取ったハッシュと実行ハッシュ151が一致するときには(S206:YES)、S207に行き、一致しないときには(S206:NO)、処理を終了する。また、受取ったハッシュと、保持する実行ハッシュ151が一致しないときには、警告メッセージを表示するようにしてもよい。
【0048】
受取ったハッシュと実行ハッシュ151が一致し、設定ハッシュ150が一致するときには(S207:YES)、S210にいき、設定ハッシュ150が一致しないときには(S207:NO)、S208に行く。
【0049】
設定ハッシュ150が一致しないときには、アプリケーション管理部120は、デフォルト設定ファイル142の情報を設定ファイル141に上書きする(S208)。
【0050】
次に、アプリケーション管理部120は、S203で変更した設定ファイル141の情報をハッシュ生成部130に送り、ハッシュ生成部130は、その設定ファイルのハッシュを生成し、アプリケーション管理部120に送る。アプリケーション管理部120は、その情報に基づいて、設定ハッシュ150を格納する(S209、
図9には図示せず)。
【0051】
次に、設定ハッシュ150が一致するときには、アプリケーション管理部120は、アプリケーション140に指示し、アプリケーションを起動する(S210、A204)。
【0052】
実施形態1によると、新たな設定ファイル141や実行ファイル143が更新される際には、ファイルに対応するハッシュを設定ハッシュ150、実行ハッシュ151として保存しておき、アプリケーション140の起動時には、保存したファイルと、起動時に利用される設定ファイル141や実行ファイル143と比較することにより、その設定ファイル141や実行ファイル143が正当なものであるか否かを検証する。すなわち、ハッシュが異なると、適切な手順で編集・変更されたファイルでないとみなし、不正な動作を遮断するため、設定ハッシュ150が異なる場合はデフォルト設定の置き換えを行い、実行ハッシュ151が異なる場合は、アプリケーション140の起動を中止する。これにより、情報処理装置100のアプリケーション140は、正当なもののみ実行され、改ざんのおそれのあるアプリケーション140の起動は阻止される。
【0053】
これにより、ディレクトリトラバーサルやSQLインジェクション、不正な侵入等によって改変された設定ファイル141や実行ファイル143の利用を防止することができる。さらに、機能を悪用したサイバー攻撃への加担(ボットネットやDDoS攻撃、攻撃の踏み台等)も防止することができる。しかも、本実施形態で活用するハッシュは、固定長のビット列であり、情報処理装置100のメモリ量に対して占める割合が予想可能な上、複雑な機能を実現する場合であっても、設定ファイル141や実行ファイル143に対して、十分にデータ量は小さく、情報処理装置のメモリを圧迫することはない。
【0054】
〔実施形態2〕
次に、本発明の実施形態2を、
図10ないし
図15を用いて説明する。
【0055】
実施形態1ではハッシュを用いて、設定ファイル141と実行ファイル143の正当性を検証することにより、ファイルの改ざんや不正なファイルの混在を防止する情報処理装置100について説明した。
【0056】
しかしながら、情報処理装置100単体で対策を取ると、設定ファイル141や実行ファイル143の改ざんを検知した場合には、アプリケーシションを起動しない、デフォルト設定へ戻すという対策しかないため、結果として情報処理装置100の機能が制限されてしまう。このことから、実施形態2では、情報処理装置100が設定ファイル141と実行ファイル143の改ざんを検知した際に、正しい設定ファイル141や実行ファイル143をダウンロードするためのデータ配信サーバ700を設ける。
【0057】
以下では、実施形態1と異なった所を中心に説明する。
【0058】
先ず、
図10を用いて実施形態2に係る情報処理システムの全体構成を説明する。
実施形態2情報処理システムは、
図10に示されるように、情報処理装置100とデータ配信サーバ700から構成され、情報処理装置100とデータ配信サーバ700は、ネットワーク5により接続されている。ネットワーク5は、インターネットのようなグローバルネットワークであってもよいし、LAN(Local Area Network)であってもよい。
【0059】
データ配信サーバ700は、機能部として配信管理部701を有し、配信データベース710を保持する。配信管理部701は、情報処理装置100のアプリケーション管理部120からの問い合わせに対し、配信データベース710から必要なデータを取得し、返信する。
【0060】
配信データベース710は、配信管理部701が参照する情報処理装置100に適用される各アプリケーションごとの設定ファイル141、実行ファイル143にそれぞれ対応する設定ファイル711(
図10では、711-1、711-2、…と表記)や実行ファイル713(
図10では、713-1、713-2、…と表記)が格納されたデータベースである。
【0061】
また、情報処理装置100は、実施形態1の機能部に、サーバ通信部124を有する。サーバ通信部124は、データ配信サーバ700と通信を行うための機能部である。
【0062】
次に、
図11を用いて実施形態2で使用されるデータ構造について説明する。
ファイル取得要求は、アプリケーション140の起動時に、情報処理装置100のアプリケーション管理部120が、ネットワーク5を介してデータ配信サーバ700に対して行なう処理である(詳細は後述)。
【0063】
ここでは、ファイル取得要求のデータの一例として、JSON(Java Script Object Notation)形式で記述した例について説明する。JSON形式は、{“key”:“value”}のように、{}の中にキーと値をコロンで区切って記述した形式である。
【0064】
以下、
図11に従い、各キーについて説明する。
(K101)DeviceID:送信元となる情報処理装置100を一意に特定できる識別子を格納する。配信管理部701は、DeviceIDごとに各アプリケーション140の設定ファイル711、実行ファイル713を管理しており、このDeviceIDに基づき、必要なファイルを配信データベース710から取得できるようになっている。
(K102)application:取得するファイルがどのアプリケーション140に適用するかを示すキーである。本キーにはアプリケーション140を識別する識別子を格納する。
(K103)FileType: 取得する対象が設定ファイル711か、実行ファイル713かを指定するキーである。設定ファイル711の場合は、setting、実行ファイル713の場合は、executionの文字列を格納する。
【0065】
次に、
図12ないし
図15を用いて実施形態2に係る情報処理システムの処理について説明する。
【0066】
先ず、
図12を用いて実施形態2の情報処理システムにおけるアプリケーション起動処理について説明する。
図12のS301、S302、S303は、それぞれ実施形態1の
図8のS201、S204、S205と同様である。
【0067】
生成したハッシュと実行ハッシュ151が一致するときには(S304:YES)、S308に行き、一致しないときには(S304:NO)、処理を終了する。
【0068】
受取ったハッシュと実行ハッシュ151が一致しないときには、実行ファイルの取得、ハッシュ化適用処理を行う(S305、詳細は
図13により後述)。
【0069】
次に、生成したハッシュと実行ハッシュ151が一致し、設定ハッシュ150が一致するときには(S306:YES)、S308に行き、設定ハッシュ150が一致しないときには(S306:NO)、S307に行く。
【0070】
設定ハッシュ150が一致するときには、設定ファイルの取得、ハッシュ化適用処理を行う(S307、詳細は
図13により後述)。
【0071】
次に、アプリケーション管理部120は、アプリケーション140に指示し、アプリケーションを起動する(S308)。
【0072】
次に、
図13を用いて設定ファイル、実行ファイルの取得、ハッシュ化適用処理の詳細について説明する。
これは、
図12のS305、S307に共通の処理である。
【0073】
先ず、アプリケーション管理部120は、サーバ通信部124を介して、データ配信サーバ700に、
図11に示したデータ構造を有した、対象となるファイルの取得要求を行なう(S401)。
【0074】
次に、アプリケーション管理部120は、対象となるファイルの受信を待ちうけ、データ配信サーバ700から対象となるファイルを受信したときには(S402:YES)、S404に行く。
【0075】
次に、アプリケーション管理部120は、ハッシュ生成部130の情報を渡し、ハッシュ生成部130は、受信したファイルのハッシュを生成し(S403)、アプリケーション管理部120に生成したハッシュを返す。
【0076】
次に、アプリケーション管理部120は、受信したファイルの設定ハッシュ150、実行ハッシュ151を格納する(S404)。
【0077】
次に、アプリケーション管理部120は、受信したファイルの情報を、アプリケーション140に送り、アプリケーション140は、設定ファイル141、または、実行ファイル143として登録する(S405)。
【0078】
次に、
図14および
図15を用いてデータ配信サーバのファイル配信処理について説明する。
【0079】
先ず、データ配信サーバ700は、情報処理装置100からネットワーク5を介して、ファイル要求を受信したときに(S501:YES、A301)、A502に行く。
【0080】
次に、データ配信サーバ700の配信管理部701は、受信した
図11に示したファイル取得要求の内容を解析し(S502)、その解析結果に従い、配信データベース710に問い合わせる(query)(S503、A302)。
【0081】
そして、配信管理部701は、返答のファイル情報に従って(A304)、ネットワーク5を介して取得したファイルを要求元の情報処理装置100に送信する(S504、A304)。
【0082】
その後に、情報処理装置100のアプリケーション140は、受信したファイルを設定ファイル141、または、実行ファイル143として登録する(A305)。
【0083】
実施形態2によると、情報処理装置100はデータ配信サーバ700と連携することによって、設定ファイル141や実行ファイル143が改ざんされた場合にも、データ配信サーバから正しい設定ファイル711や設定ファイル743を取得し、機能の制限を受けることなく、アプリケーション140を起動することができる。
【0084】
〔実施形態3〕
実施形態2では、情報処理装置100は、アプリケーション140ごとに設定ファイル141や実行ファイル143の改ざんを検知した場合に、データ配信サーバ700から改ざん前の設定ファイル711や実行ファイル713を取得した。
【0085】
しかしながら、不正なアクセスを受けた場合には、可能な全ての範囲にデータの改ざんを適用することが想定される。この場合、実施形態2の情報処理システムでは、アプリケーション140起動のつど問い合わせを行い、データを取得することから、通信量が増加してしまう。特に、産業用途のIoTでは情報処理装置100とデータ配信サーバ700間をLTE(Long Term Evolution)網で接続することが多く、データ通信量が通信料金に大きく影響することが予想される。また、産業用途に用意された回線は、多量の機器を接続する性質から通信帯域が貧弱であることが多い。このことから、複数のアプリケーション140をまとめて改ざん検知を行う場合には、問い合わせ回数を減らし、なおかつ通信データ量を抑える必要がある。
【0086】
実施形態3の情報処理システムでは、情報処理装置100が全アプリケーション140の設定ハッシュ150と実行ハッシュ151から全体ハッシュを生成し、データ配信サーバ700へ通知することにより、全てのアプリケーション140を対象として改ざん検知を可能とする。
【0087】
さらに、不正なアクセスを受けた場合には、保存されたハッシュも含めて改ざんされてしまうことにより、改ざんの検知が困難になる可能性がある。実施形態3の情報処理システムによれば、情報処理装置100が不正なアクセスを受けた場合にも、検証に必要なハッシュの情報をデータ配信サーバ700で管理することにより、情報処理装置100が本来の動作に必要な設定ファイル711や実行ファイル713を取得する手段を提供する。
【0088】
以下、実施形態2比較して異なる所を中心に説明する。
【0089】
先ず、
図16を用いて実施形態3に係る情報処理システムの全体構成を説明する。
実施形態2情報処理システムは、
図16に示されるように、データ配信サーバ700に、検証データベース720が追加された構成である。検証データベース720には、検証テーブル800が格納されている。検証テーブル800は、配信管理部701が、アプリケーション管理部120からファイル検証要求を受信した際に、送信されてくるハッシュを検証するために参照するテーブルである。
【0090】
次に、
図17および
図18を用いて実施形態2の情報処理システムに用いられるデータ構造について説明する。
【0091】
検証テーブル800は、DeviceID800a、適用確認条件800b、配布ファイル800cの各カラムから構成される。
【0092】
DeviceID800aは、情報処理装置100を一意に特定可能な識別子を格納するカラムである。適用確認条件800bは、配信管理部701にて、情報処理装置100が正しいファイルを適用しているかを確認する条件を格納するカラムである。
図17の例では、”Hash“=”…”として、情報処理装置100の全てのアプリケーション140の設定ファイル141と実行ファイル143のハッシュから生成される全体ハッシュを検証する条件式が格納されている。図では示してないが、ファイル生成日時、ファイル更新日時などのその他の条件を付け加えてもよい。適用確認条件800bを適用して、偽となる場合には、配信管理部701が、情報処理装置100に適切なファイルが適用されていないと判断し、必要なファイルを情報処理装置100に配信するものとする。配布ファイル800cは、適用確認条件が偽となる場合に配布するファイル情報、例えば、配布するファイルのファイル名やファイルパス、URLを格納するカラムである。
【0093】
次に、
図18を用いてファイル検証要求のデータについて説明する。
ここでも、ファイル取得要求のデータの一例として、JSON形式で記述した例について説明する。
【0094】
以下、
図11に従い、各キーについて説明する。
(K201)DeviceID:送信元となる情報処理装置100を一意に特定できるIDである。配信管理部701は、このDeviceIDごとに配信ファイルを管理しており、この識別子に基づいて、必要なファイルを配信データベース710から取得する。
(K202)Hash:アプリケーション管理部120の保持する全ての設定ハッシュ150と実行ハッシュ151から生成した全体ハッシュを格納する。
【0095】
なお、ファイル検証要求として、その他の検証条件をキーとして付け加えてもよい。
【0096】
次に、
図19を用いて全体ハッシュの概念について説明する。
全体ハッシュは、一つの情報処理装置100について一つ生成されるものであり、そのため、全体ハッシュを生成するためには、アプリケーション管理部120が保持する全ての設定ハッシュ150と実行ハッシュ151を結合して、ハッシュ生成部130に送り、ハッシュ生成部130は全ハッシュを結合したファイルから、全体ハッシュを生成する。
【0097】
これは、情報処理装置100が、例えば、ルータのような通信装置であれば、全ファームウェアをまとめたハッシュを作るイメージである。
【0098】
なお、各アプリケーションごとにファイル検証を行いたいときには、一つのアプリケーションが保持する設定ハッシュ150と実行ハッシュ151の全てを結合して全体ハッシュとしてもよい。
【0099】
また、本実施形態ではファームウェアなどの改ざん検知を目的にして、情報処理装置100が、データ配信サーバ700に全体ハッシュを通知したが、例えば、全アプリケーション140のバージョン検証にも使用できる。他にも、アプリケーション140の追加・削減のために配信管理部701がアプリケーション管理部120へ指示を与える用途にも使用することできる。
【0100】
次に、
図20ないし
図22を用いて実施形態3の情報処理システムの処理について説明する。
先ず、
図20および
図22を用いて情報処理装置から発信されるファイル検証依頼について説明する。
【0101】
ユーザ1のGUIからの操作や、情報処理装置100の起動時、アプリケーション140起動時、周期的なトリガーを契機にファイル検証が開始される。
【0102】
先ず、情報処理装置100のアプリケーション管理部120は、サーバ通信部124を介して、
図18に示されたデータ構造に従って、データ配信サーバ700に、ファイル検証要求を送信する(S601、A401)。
【0103】
そして、アプリケーション管理部120は、データ配信サーバ700から応答を待ちうけ、応答を受信したときには(S602:YES、A406)、S603に行く。
【0104】
次に、NULLでないファイルを受信したときは(S603:YES)、S604に行き、NULLを受信したときには(S603:NO)、処理を終了する。
【0105】
NULLでないファイルを受信したときは、受信ファイルの取得、ハッシュ化適用処理を行う(S604、A407)。これは、実施形態2の
図13の処理と同様である。
【0106】
次に、
図21および
図22を用いてデータ配信サーバにおけるファイル検証処理について説明する。
【0107】
データ配信サーバ700の配信管理部701は、情報処理装置100からのファイル検証要求を受信したとき(S701:YES、A401)、S702に行く。
【0108】
データ配信サーバ700の配信管理部701は、検証データベース720に問合せ(A402、A403)、受信した
図18に示したファイル検証要求のハッシュの情報(K202)と
図17に示した検証テーブル800のDeviceID800aと配信確認条件ファイル800bの情報により、全体ハッシュの整合性を検証する(S702)。
【0109】
ファイル検証要求のハッシュの情報と配信確認条件が一致するときには(S703:YES)、配信データベース710に問合せ(A404、A405)、対象となるファイル(配布ファイル800cの記載されたファイル)を、要求元の情報処理装置100に配信し(S704、A404、)、ファイル検証要求のハッシュの情報と配信確認条件が一致しないときには(S703:NO)、NULLを、要求元の情報処理装置100に送信する(S705)。そして、割り込み処理や中断処理(図示せず)がない限り、S701に戻る。
【0110】
実施形態3によると、情報処理装置100が全アプリケーション140の設定ハッシュ150と実行ハッシュ151から全体ハッシュを生成し、データ配信サーバ700へ通知することにより、全てのアプリケーション140を対象として改ざん検知を可能とする。これにより、アプリケーション140起動毎に、情報処理装置100とデータ配信サーバ700間での通信が不要となり通信量を削減することができる。また、データ配信サーバ700から複数のファイルをまとめて、圧縮し送信することにより、データ通信量を削減できる。さらに、検証に必要なハッシュの情報を、データ配信サーバ700が管理するため、情報処理装置100が不正にアクセスされ、ファイルの正当性を検証不能な場合にも、ファイル検証を可能とする。
【0111】
また、検証時においても元のファイルより大幅にデータ量が少ないハッシュのデータを、データ配信サーバ700に送るため、通信帯域が貧弱なときでも、ネットワークの帯域を圧迫することなく、通信データ量を抑えることができる。
【符号の説明】
【0112】
1…ユーザ
5…ネットワーク
100…情報処理装置
110…ユーザインタフェース部
120…アプリケーション管理部
130…ハッシュ生成部
140…アプリケーション
141、711…設定ファイル
142…デフォルト設定ファイル
143、713…実行ファイル
150…設定ハッシュ
151…実行ハッシュ
200…アプリケーション設定選択メニュー画面
201…アイコン
202…アプリケーション設定画面
203…設定項目
204…設定変更ボタン
205…実行ファイル変更ボタン
206…実行ファイル選択画面
207…実行ファイル名称
208…実行ファイル変更実行ボタン
700…データ配信サーバ
701…配信管理部
710…配信データベース
720…検証データベース
800…検証テーブル