(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0010】
以下、本発明を実施するための形態について、図を参照しながら説明する。なお、これは、あくまでも一例であって、本発明の技術的範囲はこれに限られるものではない。
(実施形態)
図1は、本実施形態に係る情報処理システム100の機能ブロック図である。
図2は、本実施形態に係るゲートウェイ1のソフトウェア構造50及びICチップ3の正当性確認データ42aを説明するための図である。
【0011】
<情報処理システム100>
図1に示す情報処理システム100は、ゲートウェイ1(中継装置)と、端末7(外部装置)と、データ収集サーバ8(外部装置)とを備える。そして、情報処理システム100は、各端末7が送信したデータを、ゲートウェイ1を介してデータ収集サーバ8に送信することで、データ収集サーバ8は、端末7のデータを収集するシステムである。
以下の説明において、ゲートウェイ1と、複数の端末7とは、温度管理が必要な各工場内に設けられ、データ収集サーバ8は、本社等に設けられるものとして説明する。また、各端末7は、工場内の各作業区画に設けられる。そして、端末7が温度データを取得してゲートウェイ1に送信し、データ収集サーバ8は、一定間隔でゲートウェイ1から送信されたデータを収集することで、工場内の温度を監視するものとして説明する。
なお、
図1には、データ収集サーバ8には、1つのゲートウェイ1が接続されているが、データ収集サーバ8には、複数のゲートウェイ1が接続されていてもよい。
【0012】
<ゲートウェイ1>
ゲートウェイ1は、通信ネットワークN1を介して端末7と接続され、通信ネットワークN2を介してデータ収集サーバ8と接続され、通信を中継する通信装置である。そして、ゲートウェイ1は、複数の端末7とデータ収集サーバ8との間で送受信されるデータを中継する。
通信ネットワークN1は、例えば、Wi−Fiや、Bluetooth(登録商標)等の近距離通信を行うためのローカルエリアネットワークである。また、通信ネットワークN2は、例えば、公衆回線や、携帯電話回線(例えば、3G(3rd Generation)やLTE(Long Term Evolution))等のインターネット接続回線のワイドエリアネットワークである。
【0013】
ゲートウェイ1は、ICチップ3を含んで構成される。そして、ゲートウェイ1は、起動時に、IC(Integrated Circuit)チップ3に記憶されている正当性判定プログラム41aを実行し、ゲートウェイ1のプラットフォーム(ハードウェア、ソフトウェア等)が第三者によって不正に改ざんされていないかどうかの正当性を確認する。また、ゲートウェイ1は、電源が投入されたまま継続して利用中に、記憶部20への書込みや書換えがあったときにも、正当性を確認する。
なお、ゲートウェイ1は、ICチップ3との間で通信可能な状態で、電源を投入及び使用する。
【0014】
ゲートウェイ1は、制御部10(装置制御部)と、記憶部20(装置記憶部)と、チップ接続部25と、広域通信部28と、近距離通信部29とを備える。
制御部10は、ゲートウェイ1の全体を制御するCPU(中央処理装置)である。制御部10は、記憶部20に記憶されているOS(オペレーティングシステム)や各種アプリケーションプログラムを適宜読み出して実行することにより、上述したハードウェアと協働して各種機能を実行する。
制御部10は、要求処理部11と、装置判定部12と、正当性確認要求部13(正当性確認部)と、結果処理部14と、情報消去部15とを備える。
【0015】
要求処理部11は、端末7、データ収集サーバ8や、通信ネットワークN1又は通信ネットワークN2を介して接続されたその他の装置(図示せず)(以下、これらをまとめて「外部装置」ともいう。)から書込み要求を受信したことに応じて、記憶部20に対して書込み処理を行う。ここで、その他の装置とは、例えば、端末7やデータ収集サーバ8になりすました第三者の装置等をいう。
装置判定部12は、書込み要求を送信した外部装置を識別する装置ID(IDentifier)によって、その外部装置が既に正当性を確認した装置であるか否かを判定する。
正当性確認要求部13は、外部装置が正当性を確認した装置でない場合に、ゲートウェイ1の正当性を確認する処理を、ICチップ3に対して依頼する。
結果処理部14は、正当性の確認結果に応じた処理を行う。
情報消去部15は、ログ領域22に記憶されている装置IDを消去する。
なお、各処理の詳細は、後述する。
【0016】
記憶部20は、制御部10が各種の処理を実行するために必要なプログラム、データ等を記憶するためのハードディスク、半導体メモリ素子等の記憶領域である。
記憶部20は、プログラム領域21と、ログ領域22とを備える。
プログラム領域21は、OSや、装置プログラム21a等のゲートウェイ1で実行する各プログラムを記憶する記憶領域である。
装置プログラム21aは、上述した制御部10の各機能を実行するプログラムである。
特徴値測定プログラム21bは、プログラム領域21に記憶された各プログラムのハッシュ値を算出するプログラムである。ハッシュ値は、例えば、SHA−1ハッシュ値である。
【0017】
図2(A)に示すように、ゲートウェイ1のプログラム領域21は、ソフトウェア構造50として、ブートローダ部51と、OS部52と、アプリケーション部53とを有する。ブートローダ部51と、OS部52と、アプリケーション部53とは、ブートローダ部51を下位にし、アプリケーション部53を上位にした階層構造になっている。
ブートローダ部51は、ブートローダを記憶し、OS部52は、OSを記憶している。また、アプリケーション部53は、各アプリケーションプログラムを記憶している。なお、プログラムAは、装置プログラム21aである。
特徴値測定プログラム21bは、例えば、ブートローダ部51と、OS部52とに分散して記憶されている。ブートローダ部51の特徴値測定プログラム21bは、ブートローダを測定対象にする。また、OS部52の特徴値測定プログラム21bは、OSと、アプリケーション部53の各プログラムとを測定対象にする。
【0018】
図1に戻り、ログ領域22は、正当性確認に関する処理のログを記憶する記憶領域である。
チップ接続部25は、ICチップ3とのインタフェース部である。チップ接続部25は、例えば、外部接続用の端子を備える。
広域通信部28は、データ収集サーバ8との間で通信をするためのインタフェースである。
近距離通信部29は、端末7との間で通信をするためのインタフェースである。
【0019】
<ICチップ3>
ICチップ3は、耐タンパ性を有するセキュアなチップである。ICチップ3は、1チップ構成になっている。ICチップ3は、例えば、カード媒体に設けられてもよい。
ICチップ3は、制御部30と、記憶部40と、装置接続部45とを備える。
制御部30は、ICチップ3の全体を制御するCPUである。制御部30は、記憶部40に記憶されているOSや各種アプリケーションプログラムを適宜読み出して実行することにより、上述したハードウェアと協働して各種機能を実行する。
制御部30は、正当性確認処理部31(正当性確認部)を備える。
【0020】
正当性確認処理部31は、ゲートウェイ1の正当性を確認する処理を、ゲートウェイ1から受け付けたことに応じて、記憶部40に記憶されている正当性判定プログラム41aを実行して、ゲートウェイ1の正当性を確認する。
具体的には、正当性確認処理部31は、ゲートウェイ1のプログラム領域21に記憶されている各プログラムのハッシュ値に基づいて特徴値を得る。そして、正当性確認処理部31は、特徴値と、ICチップ3に記憶されている正当性確認データ42aとを比較することで、ゲートウェイ1の正当性を確認する。
ここで、ゲートウェイ1が正当ではない場合とは、ゲートウェイ1に対して違法な接続等によってゲートウェイ1のプログラムが改ざんされたり、マルウェア等の不正なプログラムが書き込まれたりする場合をいう。なお、以下、ゲートウェイ1が正当ではない場合を、ゲートウェイ1が不当であるともいう。また、ゲートウェイ1が正当な場合とは、ゲートウェイ1に対する改ざんや違法な接続等がされておらず、マルウェア等の不正なプログラムが実行されていない場合をいう。
【0021】
記憶部40は、制御部30が各種の処理を実行するために必要なプログラム、データ等を記憶するための半導体メモリ素子等の記憶領域である。
記憶部40は、プログラム領域41と、データ領域42とを備える。
プログラム領域41と、データ領域42とは、例えば、EEPROM(Electrically Erasable and Programmable ROM)に有する。
プログラム領域41は、正当性判定プログラム41aを記憶している。
正当性判定プログラム41aは、ゲートウェイ1の正当性を判定するプログラムである。正当性判定プログラム41aは、例えば、TPMの機能を実行する。
データ領域42は、正当性確認データ42aを記憶している。
正当性確認データ42aは、ゲートウェイ1のプログラム領域21に記憶された各プログラムのハッシュ値と、ハッシュ値に対してデジタル署名をしたものとを、各プログラムの特徴値として予め記憶している。
図2(B)に示すように、正当性確認データ42aは、プログラムごと(ブートローダ、OS、プログラムA,B、・・・)に特徴値を有する。
【0022】
図1に戻り、装置接続部45は、ゲートウェイ1とのインタフェース部である。装置接続部45は、例えば、外部接続用の端子を備える。ICチップ3は、ゲートウェイ1に有するスロット部(図示せず)に差し込むことで、ゲートウェイ1との間で通信を行う。
ここで、ICチップ3は、上述したように耐タンパ性を有する。ICチップ3は、装置接続部45以外の経路でデータや処理内容を操作することができない。そして、ICチップ3で実行する機能は、ゲートウェイ1で動作するソフトウェアとは独立に動作する。よって、正当性判定プログラム41aや正当性確認データ42aの内容を、ゲートウェイ1で動作するプログラム等が不正に変更することはできない。
【0023】
<外部装置>
端末7は、温度センサ等のセンサ部(図示せず)を備え、センサ部が定期的に検出したデータを、ゲートウェイ1に送信する。
データ収集サーバ8は、各端末7が送信したデータをゲートウェイ1から受信して、データを収集及び解析する。
【0024】
<正当性確認処理>
次に、ゲートウェイ1での処理について説明する。
図3及び
図4は、本実施形態に係るゲートウェイ1の正当性確認処理のフローチャートである。
図5は、本実施形態に係るゲートウェイ1及びICチップ3の検証処理のフローチャートである。
図3のステップS(以下、「S」という。)10において、ユーザがゲートウェイ1の電源ボタン(図示せず)を操作したことで、ゲートウェイ1の制御部10は、ゲートウェイ1の電源をONにする。
S11において、制御部10(正当性確認要求部13)は、検証処理を行う。
【0025】
ここで、検証処理について、
図5に基づき説明する。
図5のS50において、ゲートウェイ1の制御部10(正当性確認要求部13)は、ICチップ3に対して正当性確認処理を依頼する。
S51において、ICチップ3の制御部30(正当性確認処理部31)は、ゲートウェイ1からの依頼を受けて、正当性判定プログラム41aを実行する。
S52において、制御部30(正当性確認処理部31)は、ゲートウェイ1に対して、特徴値測定プログラム21bの実行を指示する。
S53において、ゲートウェイ1の制御部10(正当性確認要求部13)は、特徴値測定プログラム21bを実行し、プログラム領域21に記憶されている各プログラムのハッシュ値を算出する。具体的には、まず、制御部10は、ブートローダ部51の特徴値測定プログラム21bを実行し、ブートローダのハッシュ値を算出する。次に、制御部10は、OS部52の特徴値測定プログラム21bを実行し、OSのハッシュ値と、アプリケーション部53の各プログラムのハッシュ値とを算出する。
S54において、制御部10(正当性確認要求部13)は、算出したハッシュ値を、ICチップ3に対して送信する。
【0026】
S55において、ICチップ3の制御部30(正当性確認処理部31)は、ゲートウェイ1からハッシュ値を受信する。
S56において、制御部30(正当性確認処理部31)は、受信したハッシュ値からデジタル署名を生成する。
S57において、制御部30(正当性確認処理部31)は、受信したハッシュ値及び生成したデジタル署名である特徴値と、データ領域42に記憶されている正当性確認データ42aとを比較する。なお、制御部30(正当性確認処理部31)は、正当性確認データ42aのハッシュ値を、デジタル署名を使って検証し、そのハッシュ値が改ざんされていないか確認してもよい。
S58において、制御部30(正当性確認処理部31)は、比較結果を、ゲートウェイ1に対して送信する。その後、制御部30は、本処理を終了する。
S59において、ゲートウェイ1の制御部10(正当性確認要求部13)は、比較結果を受信する。その後、制御部10は、処理を
図3に移す。
【0027】
図3に戻り、S12において、ゲートウェイ1の制御部10は、比較結果が一致であるか否かを判断する。ゲートウェイ1のプログラム領域21に改ざん等がされていない、つまり、ゲートウェイ1が正当である場合には、比較結果が一致する。他方、ゲートウェイ1のプログラム領域21に改ざん等がされている場合には、比較結果は不一致になる。比較結果が一致である場合(S12:YES)には、制御部10は、処理をS13に移す。他方、比較結果が不一致である場合(S12:NO)には、制御部10(結果処理部14)は、データ収集サーバ8にエラーを通知して(S13a)、電源をOFFにし(S14a)、本処理を終了する。
【0028】
このように、ゲートウェイ1の電源投入時に、ゲートウェイ1の正当性を確認する検証処理を行うことで、ゲートウェイ1が改ざん等されていない正当な状態であるかを判断する。そして、不当であると判断した場合には、ゲートウェイ1は、自身の電源を切断することで、ゲートウェイ1を、通信ネットワークN1及びN2から切り離し、改ざんされたゲートウェイ1を、端末7やデータ収集サーバ8に使用させないようにできる。
【0029】
S13において、ゲートウェイ1の制御部10は、タイマT1及びタイマT2を初期化して計時を開始する。ここで、タイマT1は、ログ領域22をクリアするために使用するものである。また、タイマT2は、端末7から受信したデータを、データ収集サーバ8に対して送信するために使用するものである。
S14において、制御部10は、タイマT1が規定時間(消去条件)になったか否かを判断する。規定時間を、例えば、24時間(基準時間)に設定することで、制御部10は、タイマT1が24時間以上になったときに、規定時間になったと判断する。タイマT1が規定時間になった場合(S14:YES)には、制御部10は、処理をS15に移す。他方、タイマT1が規定時間になっていない場合(S14:NO)には、制御部10は、処理を
図4のS17に移す。
S15において、制御部10(情報消去部15)は、ログ領域22をクリアする。
S16において、制御部10は、タイマT1を初期化して、計時を開始する。
【0030】
図4のS17において、制御部10(要求処理部11)は、外部装置からデータを受信したか否かを判断する。ここで、外部装置は、端末7や、データ収集サーバ8に限らない。また、データは、端末7から受信した温度データに限らない。例えば、データ収集サーバ8が送信したプログラムの機能を変更するための更新プログラムや、送信時間(後述する)の設定値の変更データ等を含む。データを受信した場合(S17:YES)には、制御部10は、処理をS18に移す。他方、データを受信していない場合(S17:NO)には、制御部10は、処理をS30に移す。
S18において、制御部10は、データを受信した外部装置の装置IDを取得する。装置IDは、例えば、外部装置のIPアドレス(Internet Protocol Address)やMACアドレス(Media Access Control address)等であり、外部装置を特定可能な識別情報である。
【0031】
S19において、制御部10(要求処理部11)は、受信したデータを、記憶部20に書き込む書込み処理を行う。その際、制御部10は、データを暗号化してもよい。
なお、データの書込みには、更新プログラムを含むと説明した。更新プログラムの場合、正当な者からの更新プログラムの送信であれば、更新プログラムと共に特徴値が送信される。その場合には、制御部10は、記憶部20に対して更新プログラムを書き込み、ICチップ3に特徴値の書込みを指示することで、ICチップ3の制御部30は、データ領域42の正当性確認データ42aに特徴値を書き込む。他方、不当な者からの更新プログラムの送信であれば、更新プログラムのみが送信される。その場合には、制御部10は、記憶部20に対して更新プログラムを書き込む処理のみを行う。
【0032】
S20において、制御部10(装置判定部12)は、S18において取得した装置IDがログ領域22に記憶されているか否かを判断する。取得した装置IDがログ領域22に記憶されている場合(S20:YES)には、制御部10は、処理をS23に移す。他方、取得した装置IDがログ領域に記憶されていない場合(S20:NO)には、制御部10は、処理をS21に移す。
S21において、制御部10(正当性確認要求部13)は、
図5に示す検証処理を行う。ここでの検証処理は、ゲートウェイ1の電源ON時に行ったものと同じである。
S22において、制御部10は、比較結果が一致であるか否かを判断する。比較結果が一致である場合(S22:YES)には、制御部10は、処理をS23に移す。他方、比較結果が不一致である場合(S22:NO)には、制御部10(結果処理部14)は、データ収集サーバ8に対してゲートウェイ1に不正なアタックがあった旨のエラーを通知し(S23a)、処理をS26に移す。
【0033】
S23において、制御部10(結果処理部14)は、S18で取得した装置IDを、現在日時に対応付けてログ領域22に記憶させる。なお、制御部10は、検証処理を行わなかった場合には、その旨を、ログ領域22に記憶させてもよい。具体的には、制御部10は、S18で取得した装置IDと、現在日時と、検証処理を省略した旨とを対応付けてログ領域22に記憶させる。その後、制御部10は、処理をS25に移す。
【0034】
このように、制御部10は、データの書込み処理の後に、ゲートウェイ1が正当であるか否かを確認する。よって、長時間電源が投入されたままであっても、ゲートウェイ1の正当性を確認できる。そして、データの書込みにより、プログラムが不正に改ざん等された場合であっても、その場合には、特徴値による比較結果が不一致になるので、改ざんを検出できる。
また、既に外部装置が正当性を確認できたものである場合には、次にその外部装置からデータを受信して書込みした後には、検証処理を省略する。よって、データの書込みがあった都度、常に検証処理を行わずに済む。
【0035】
S25において、ゲートウェイ1のユーザが電源ボタン(図示せず)を操作したことで、制御部10は、電源OFFを受け付けたか否かを判断する。電源OFFを受け付けた場合(S25:YES)には、制御部10は、処理をS26に移す。他方、電源OFFを受け付けていない場合(S25:NO)には、制御部10は、処理を
図3のS14に移す。
S26において、制御部10は、電源をOFFにして本処理を終了する。
【0036】
他方、S30において、制御部10は、タイマT2が送信時間になったか否かを判断する。ゲートウェイ1では、例えば、30分等の送信タイミングになった場合に、端末7から受信し記憶部20に記憶されたデータを、データ収集サーバ8にまとめて送信する。タイマT2が送信時間になった場合(S30:YES)には、制御部10は、処理をS31に移す。他方、タイマT2が送信時間になっていない場合(S30:NO)には、制御部10は、処理をS25に移す。
S31において、制御部10は、記憶部20に記憶された書込みデータを、データ収集サーバ8に対して送信する。また、制御部10は、送信済のデータを記憶部20から削除する。
S32において、制御部10は、タイマT2を初期化して、計時を開始する。その後、制御部10は、処理をS25に移す。
【0037】
このように、本実施形態によれば、ゲートウェイ1は、以下のような効果がある。
(1)データが書き込まれる度に、ゲートウェイ1に対して不正な改ざん等がされたか否かを検証できる。そして、不正な改ざん等が行われた場合には、例えば、ゲートウェイ1の電源を切断するので、ゲートウェイ1を通信ネットワークN1及びN2から切り離すことができ、ゲートウェイ1の使用を制限できる。
(2)ゲートウェイ1の起動時にも検証処理を行うことで正当性を確認できる。よって、ゲートウェイ1の電源が切断されている間に不正な行為等がされ改ざんがされた場合であっても、それを検出できる。
【0038】
(3)書込みデータの送信元の外部装置は、記憶部20に書込み後にゲートウェイ1の正当性が確認できた場合には、その後に同じ外部装置から書込みデータを受信したときに、正当性確認を行わない。よって、信頼性のある外部装置からのデータの書込み要求に対しては、検証処理を省略することで、処理を簡単にできる。
(4)検証処理の省略は、信頼された外部装置からであれば常に行うわけではなく、所定の場合には、再度検証処理を実行することで、正当性の確認を行う。そのため、常に正当性確認を省略することへの弊害を是正できる。
所定の場合として、例えば、最初に正当性を確認してから24時間を経過した場合等、時間の経過に応じて正当性の確認を行わせるようにできる。
【0039】
(5)ゲートウェイ1を通信ネットワークN2から切り離す前に、データ収集サーバ8にエラーを通知することで、データ収集サーバ8では、データ送信元のゲートウェイ1が不正になっていることを判別できる。
(6)正当性判定プログラム41aを、ICチップ3のセキュアな記憶領域に有するようにすることで、正当性判定プログラム41aの改ざんを防止できる。よって、正当性判定プログラム41aの信頼性を、高いものにできる。
【0040】
以上、本発明の実施形態について説明したが、本発明は上述した実施形態に限定されるものではない。また、実施形態に記載した効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、実施形態に記載したものに限定されない。なお、上述した実施形態及び後述する変形形態は、適宜組み合わせて用いることもできるが、詳細な説明は省略する。
【0041】
(変形形態)
(1)本実施形態では、専用装置としてのゲートウェイ1を説明した。しかし、ゲートウェイ1は、例えば、パーソナルコンピュータ(PC)、Wi−Fiルータ、携帯電話機、情報家電、自動車、組込システム等の様々な機器であってもよい。ゲートウェイ1は、M2M(Machine to Machine)のような、機器と機器とが通信ネットワークを介して互いに情報を通信することにより、自律的に高度な制御や動作を行うシステムへの適用に有用である。
(2)本実施形態では、ICチップ3をゲートウェイ1に対して接続部を介して接続するものとして説明した。しかし、ICチップは、ゲートウェイに対して取外しが可能であるか否かに限定されるものではない。よって、ICチップは、ゲートウェイに内蔵された組み込みのものでもよい。例えば、ICチップを、マザーボードに装着させてもよい。そのようにすることで、ICチップを取り替えることができないので、ゲートウェイの正当性をより確実に確認できる。
(3)本実施形態では、工場内での温度管理のためのシステムとして説明したが、これに限定されない。例えば、IOT(Internet of Things)を用いたシステム等、様々な用途に活用できる。
【0042】
(4)本実施形態では、ICチップ3に正当性判定プログラム41aを有するものとして説明した。しかし、ゲートウェイに正当性判定プログラムを有してもよい。そのようにすることで、ICチップに有する検証機能を、ゲートウェイに持たせることができる。
(5)本実施形態では、ゲートウェイ1は書込み要求を受信して書き込む処理を行うものとして説明したが、これに限定されない。ゲートウェイの記憶部に対して記憶させる処理であればよく、例えば、書き換え処理を含んでもよい。
【0043】
(6)本実施形態では、検証に使用する特徴値を、ハッシュ値と、ハッシュ値に対するデジタル署名とであるして説明したが、これに限定されない。例えば、ハッシュ値そのものであってもよい。但し、デジタル署名を含む方が、さらにセキュリティが向上する。
(7)本実施形態では、各プログラムのハッシュ値に基づいてゲートウェイの正当性を確認するものとして説明したが、これに限定されない。各プログラムに加えて、例えば、広域通信部や近距離通信部等のハードウェアのハッシュ値に基づいてゲートウェイの正当性を確認してもよい。
【0044】
(8)本実施形態では、ゲートウェイ1の特徴値測定プログラム21bは、ブートローダ部51とOS部52とに分散されて記憶するものとして説明した。そして、OS部52の特徴値測定プログラム21bがアプリケーション部53の各プログラムのハッシュ値をも算出するものとして説明した。しかし、アプリケーション部の各プログラムにも、特徴値測定プログラムを有するようにしてもよい。また、特徴値測定プログラムは、1つのみとし、例えば、OS部にのみ有するようにしてもよい。
(9)本実施形態では、ゲートウェイ1の特徴値測定プログラム21bは、ハッシュ値を算出し、ICチップ3にハッシュ値を送信するものとして説明した。しかし、ハッシュ値を算出するプログラムと、算出したハッシュ値を送信するプログラムとは、別のプログラムであってもよい。また、正当性確認プログラムに特徴値測定プログラムの機能を有するようにしてもよい。
【0045】
(10)本実施形態では、ログ領域22の消去条件を、最初に検証処理を行ってから24時間が経過した後として説明した。しかし、これに限定されない。例えば、基準日時に達した場合(○時△分等)であってもよい。また、ゲートウェイに判定回数部を備え、検証処理を省略した回数(例えば、5回等)に応じてログ領域を消去してもよい。さらに、ログ領域の消去条件を、時間と回数とを組み合わせたものにしてもよい。