(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0010】
以下に、開示技術の実施形態の一例を、図面に基づいて説明する。なお、以下の実施例は、一例を示すに過ぎず、開示技術を限定するものではない。また、以下の実施例は、矛盾しない範囲で適宜組合せてもよい。
【0011】
(システム構成)
図1は、実施形態にかかるシステム構成を示す図である。
図1に示すように、実施形態にかかるシステム1は、保守サーバ100A、保守端末200A−1〜200A−x、・・・、保守サーバ100N、保守端末200N−1〜200N−y、P−EMAサーバ300、H−EMAサーバ400を有する。保守サーバ100A、保守端末200A−1〜200A−x、・・・、保守サーバ100N、保守端末200N−1〜200N−y、P−EMAサーバ300は、公衆網もしくは閉域網であるネットワーク2を介して接続される。P−EMAサーバ300と、H−EMAサーバ400は、通信可能にケーブルもしくはネットワークを介して接続される。
【0012】
システム1において、1つの保守サーバ100Aと、複数の保守端末200A−1〜200A−xが1つの装置グループをなし、1つの保守サーバ100Nと、複数の保守端末200N−1〜100N−yが1つの装置グループをなす。なお、1つの装置グループに含まれる保守サーバおよび保守端末の数は、システム1の構成要件にしたがった任意の数である。そして、システム1における装置グループの数も、システム1の構成要件にしたがった任意の数である。
【0013】
そして、保守サーバ100Aは、TPM(Trusted Platform Module)チップ10Aを有する。保守端末200A−1〜200A−xは、TPMチップ20A−1〜20A−xをそれぞれ有する。同様に、保守サーバ100Nは、TPMチップ10Nを有する。保守端末200N−1〜200N−xは、TPMチップ20N−1〜20N−yをそれぞれ有する。
【0014】
なお、以下では、保守サーバ100A〜100Nを総称する場合には、保守サーバ100と称する。また、保守端末200A−1〜200A−x、・・・、保守端末200N−1〜200N−yを総称する場合には、保守端末200と称する。また、保守サーバ100が有するTPMチップをTPMチップ10と総称し、保守端末200が有するTPMチップをTPMチップ20と総称する。
【0015】
なお、図示はしないが、ネットワーク2には、保守サーバ100および保守端末200と暗号化通信をおこなうための鍵を管理するCA(Certificate Authority)サーバが接続されている。
【0016】
保守端末200は、保守の対象となる電気機器(図示せず)に接続される、保守作業員が利用する端末装置である。電気機器は、例えば、パーソナルコンピュータ、サーバコンピュータ、プリンタ、ネットワーク機器、外部ストレージ、携帯電話、スマートフォン、冷蔵庫、洗濯機、テレビ、ステレオコンポ、医療機器、工作機器などである。保守作業員は、電気機器が設置される作業現場に到着した後に、電気機器と保守端末200を接続する。保守端末200は、電気機器と接続されると、電気機器が有するエージェントから、電気機器の構成情報や電気機器で発生した障害の情報など、電気機器の動作にかかる各種情報を取得し、保守サーバ100へ送信する。保守サーバは、保守端末から送られてくる保守端末と電気機器との間のすべての通信内容を含む通信履歴と、保守端末と保守サーバとの間のすべての通信内容を含む通信履歴を保存するとともに、それぞれの通信履歴のハッシュ値を計算して保守サーバ内に保存して、または保存せずに、それぞれのハッシュ値をP−EMAサーバ300に送信する。このハッシュ値には通信履歴に関する属性情報、例えば通信機器対の名称、通信機器ID、通信時刻等が付随してもよい。P−EMAサーバ300は、保守サーバから送付されてきたハッシュ値をその属性情報とともに保存する。また、このハッシュ値とそれに付随する属性情報は電子署名を付してもよい。
【0017】
P−EMAとは、Private(もしくはPersonal)−Environment Management Authorityの略である。P−EMAサーバ300は、保守サーバ100に蓄積されている上記通信履歴の真正性の担保と保守サーバ100の動作の正当性を担保するための機能を有する装置である。P−EMAサーバ300は、この機能を提供するために、私的機関等により設置、管理される。P−EMAサーバ300は、例えば、業界ごとに設置されてもよい。
【0018】
H−EMAとは、Hyper−Environment Management Authorityの略である。H−EMAサーバ400は、システム監査体系において、P−EMAサーバ300の上位に位置づけられる。H−EMAサーバ400は、P−EMAサーバ300から受信した電気機器の動作にかかる各種情報を管理し、その真正性を監査するための機能を有する装置である。H−EMAサーバ400は、P−EMAサーバ300に蓄積されたハッシュ値等やP−EMAサーバ300の動作状況を管理し、P−EMAサーバの動作の正当性を担保する機能を提供するために、公的機関または、準公的機関等により設置、管理される。
【0019】
なお、上述のP−EMAサーバ300およびH−EMAサーバ400は、特許第4818664号に開示される環境管理局に類するものである。P−EMAサーバ300およびH−EMAサーバ400は、TPMチップを局内に含む。P−EMAサーバ300およびH−EMAサーバ400は、例えば、保守サーバ100Aや保守端末200A−1のような管理対象電子機器に組み込まれているソフトウェアやハードウェアの正規品情報を管理し、必要に応じ保守サーバ100Aや保守端末200A−1等の監査を行う機能を有する。なお、保守サーバ100Aや保守端末200A−1等の認証にかかる行為は従来技術であるPKIシステムに従う。その際に、署名鍵管理等については、IETF RFC5792/5793に開示されているTCG技術を応用してもよい。
【0020】
ところで、
図1に示す保守サーバ100、保守端末200、P−EMAサーバ300、H−EMAサーバ400は、TCG(Trusted Computing Group)技術を利用して、セキュアにデータ通信を実行することを前提とする。実施形態で利用するTCG技術の一例について説明する。インターネットに接続される端末、デバイスは常にセキュリティの脅威に曝され、ウィルス、スパイウェア、その他悪質なスクリプト、不正アクセスなどにより、プラットフォームを構成するソフトウェア構造に予期せぬ改変が加えられる場合がある。このようなリスクに対して、TCGでは、プラットフォームの信頼性を保障することにより、安全なコンピューティング環境を実現する。ここで、プラットフォームとは、ハードウェア、OS、アプリケーションなどを示す。
【0021】
例えば、ソフトウェアの改竄という脅威に対して、従来のソフトウェアのみに依存するセキュリティ対策には限界がある。このため、TCGでは、TPMチップをプラットフォームに埋め込み、かかるTPMチップを信頼のルートとして、改竄が極めて困難な、信頼できるコンピューティング環境を構築している。また、TPMチップを利用することで、ハードウェアベースのデータおよび証明書の保護、安全な暗号処理環境の実現ができる。
【0022】
次に、TPMチップについて説明する。TPMチップは、電子機器にバインドされるバードウェアのチップであり、耐タンパー性を持つ。TPMチップは電子機器から取り外しができないように、電子機器の主要な構成パーツに物理的にバインドされる。例えば、電子機器の構成パーツは、マザーボードなどに対応する。TPMチップは、実装される機能、メモリ領域、プロセッサのパワーを極力抑えて動作するように設計されているため、低コストで製造でき、様々な電気機器やプラットフォームに適用できる。
【0023】
例えば、TPMの機能には、RSA(Rivest Shamir Adleman)秘密鍵を生成および保管する機能、RSA秘密鍵による署名、暗号化、復号する機能が含まれる。RSAでは、秘密鍵と公開鍵とのペアを作成する。また、TPMの機能には、SHA−1(Secure Hash Algorithm 1)のハッシュ値を算出する機能、電気機器の環境情報を保持する機能が含まれる。TPMは、バインドされた電気機器が起動した時点で、BIOS(Basic Input/Output System)、OS(Operating System)ローダ、OSカーネルへのブートプロセスにおけるソフトウェアコードを計測する。そして、TPMは、計測したソフトウェアコードをハッシュ化して、TPM内部のレジスタに登録する。また、TPMは、バインドされた電子機器のハードウェアの情報を収集し、ハードウェアの情報をハッシュ化して、TPM内部のレジスタに登録する。
【0024】
TCGでは、上位のアプリケーションやライブラリからハードウェアデバイスであるTPMチップを利用するためソフトウェアスタックとソフトウェアインターフェースを規定する。このソフトウェアスタックはTSS(TCG Software Stack)と呼ばれ、リソースが制限されるTPMチップの機能を保管するソフトウェアモジュールから構成されている。電子機器のアプリケーションは、TSSの提供するインターフェースを利用して、上述したTPMチップの機能にアクセスすることができる。
【0025】
(P−EMAサーバの構成)
図2は、実施形態にかかるP−EMAサーバの構成を示すブロック図である。
図2に示すように、実施形態にかかるP−EMAサーバ300は、通信部310、入力部320、表示部330、インターフェース部340、TPMチップ350、記憶部360、制御部370を有する。P−EMAサーバ300が有する各構成要素は、バス380によって相互に接続される。
【0026】
通信部310は、ネットワーク2を介して保守サーバ100、保守端末200と通信をおこなう。また、通信部310は、H−EMAサーバ400と通信をおこなう。入力部320は、P−EMAサーバ300への各種情報の入力を受け付ける入力装置であり、例えば、キーボード、マウス、タッチパネルなどである。表示部330は、制御部370から出力される各種情報を表示する表示装置であり、例えば、液晶ディスプレイなどである。インターフェース部340は、H−EMAサーバ400と接続するためのインターフェースである。
【0027】
TPMチップ350は、上述したTCG技術に準拠するTPMチップであり、後述するように、制御部370と協働して動作し、保守サーバ100および保守端末200との通信の安全性を保証する。例えば、TPMチップ350は、制御部370の各部からの要求に応じて、情報のハッシュ値算出(ハッシュ化)や、TPMチップにより暗号化された情報を復号する。
【0028】
記憶部360は、ポリシーテーブル361a、ハッシュ値ログ362b、ペアリングテーブル363a、ペアリングテーブル更新ログ363b、アクセスログ364bを有する。また、記憶部360は、プログラム管理テーブル365a、プログラム更新ログ365b、ファイル群366、プログラム動作ログ367b、TPM拡張保護領域368、一時テーブル369を有する。TPM拡張保護領域368は、TPMチップ350により記憶部360内に確保された領域であり、TPMチップ350のみがアクセス可能な領域である。記憶部360は、例えば、ハードディスク装置、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ(Flash Memory)などの半導体メモリ素子などの記憶装置である。記憶部360が有する各種情報の詳細は、後述する。なお、以降、TPMチップ内の領域および上記TPM拡張保護領域368をTPMチップにより確保された領域と呼ぶ。
【0029】
制御部370は、ハッシュ値ログ送受信部371、テーブル更新部372、アクセス監視部373、プログラム更新部374、プログラム実行監視部375、不正プログラム検出部376を有する。制御部370は、後述するポリシーテーブル361aに記述されたポリシーにしたがい動作する。制御部370は、例えば、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)などの集積装置である。または、制御部370は、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)などの電子回路である。
【0030】
ハッシュ値ログ送受信部371は、保守サーバ100(もしくは保守端末200)から受信した、TPMチップ10(もしくはTPMチップ20)によりそれぞれハッシュ値が算出されて付加された各種情報、例えば、電気機器の動作にかかる各種情報を受信する。保守サーバ100(もしくは保守端末200)から受信した、ハッシュ値が算出されて付加された各種情報、例えば、電気機器の動作にかかる各種情報を、ハッシュ値ログと呼ぶ。そして、ハッシュ値ログ送受信部371は、記憶部360のハッシュ値ログ362bにハッシュ値ログを記憶させる。ハッシュ値ログは、ハッシュ値を算出する基礎になる基礎情報と、基礎情報に基づいて算出されたハッシュ値を含む。ハッシュ値ログ送受信部371は、送信元である保守サーバ100もしくは保守端末200の識別情報と、ハッシュ値ログと対応付けて、1件ずつハッシュ値ログ362bに記憶させる。なお、このハッシュ値の算出にあたっては、適宜ポリシーを定め、そのポリシーにしたがって実行する。
【0031】
また、ハッシュ値ログ送受信部371は、TPMチップ350により、ハッシュ値ログ362bに記憶させた、例えばn(nは自然数)件のハッシュ値ログを単位として、n件のハッシュ値ログに基づくハッシュ値をさらに算出する。そして、ハッシュ値ログ送受信部371は、まとめたn件のハッシュ値ログに基づくハッシュ値を、n件のハッシュ値ログとともに、H−EMAサーバ400へ送信する。
【0032】
なお、n件のハッシュ値ログのまとめ方は、ハッシュ値ログの送信元の保守サーバ100および保守端末200の組合せにおいて、例えば、ハッシュ値ログのタイムスタンプの順序でn件ずつのハッシュ値ログをまとめる。すなわち、ハッシュ値ログ送受信部371は、保守対象の電気機器に接続される保守端末200および保守端末200を管理する保守サーバ100の組合せごとに、ハッシュ値ログのタイムスタンプの順序でn件ずつのハッシュ値ログをまとめる。言い換えると、P−EMAサーバ300には、時刻の経過に応じて、保守サーバ100、保守端末200から受信したハッシュ値ログが蓄積されていく。ハッシュ値ログ送受信部371は、n件のハッシュ値ログが蓄積されたタイミングで、TPMチップ350によりn件のハッシュ値ログのハッシュ値を算出し、算出したハッシュ値をH−EMAサーバ400へ送信する。これにより、保守対象の電気機器のいずれのグループ単位のいずれの時刻のハッシュ値ログに不正が含まれるかが、H−EMAサーバ400で特定できる。
【0033】
テーブル更新部372は、ペアリングテーブル363aの初期書き込み、書き換えをおこなう。ペアリングテーブル363aの初期書き込み、書き換えの指示は、入力部320や、保守サーバ100などから入力される。ペアリングテーブル363aは、後述するように、保守サーバ100と、保守端末200との対応付けを管理するテーブルである。そして、テーブル更新部372は、ペアリングテーブル363aの初期書き込み、書き換えの都度、最新のペアリングテーブル363aに基づくハッシュ値を算出し、最新のペアリングテーブル363aとともにペアリングテーブル更新ログ363bに記憶させる。そして、テーブル更新部372は、最新のペアリングテーブルに基づくハッシュ値を、H−EMAサーバ400へ送信する。なお、テーブル更新部372は、以上の処理を、P−EMAサーバ300の起動時、再起動時にもおこなう。
【0034】
アクセス監視部373は、ネットワーク2を介した外部装置からP−EMAサーバ300へのアクセスを監視する。そして、アクセス監視部373は、ネットワーク2を介した外部装置からP−EMAサーバ300へのアクセスの監視結果を、アクセスコントロールログとしてアクセスログ364bに記憶させる。例えば、アクセス監視部373は、P−EMAサーバ300へ接続が許可された保守サーバ100以外かつ保守端末200以外のその他の装置からのアクセスに対してアクセス不可としたことを、アクセスコントロールログとしてアクセスログ364bに記憶させる。そして、アクセス監視部373は、TPMチップ350により、アクセスログ364bに記憶させたアクセスコントロールログのハッシュ値を算出する。そして、アクセス監視部373は、アクセスログ364bにおいて、アクセスログ364bに記憶させたアクセスコントロールログに算出したハッシュ値を対応付けて記憶させるとともに、算出したハッシュ値をH−EMAサーバ400へ送信する。
【0035】
プログラム更新部374は、P−EMAサーバ300で動作する全てのプログラムの初期インストール、更新をおこなう。P−EMAサーバ300で動作するプログラムの初期インストール、更新は、プログラム更新部374以外はおこなうことができない。以下、P−EMAサーバ300で動作するプログラムは、ハッシュ値ログ送受信部371としてコンピュータを機能させるプログラム、テーブル更新部372としてコンピュータを機能させるプログラムを含む。また、P−EMAサーバ300で動作するプログラムは、アクセス監視部373としてコンピュータを機能させるプログラム、プログラム更新部374としてコンピュータを機能させるプログラムを含む。また、P−EMAサーバ300で動作するプログラムは、プログラム実行監視部375としてコンピュータを機能させるプログラム、不正プログラム検出部376としてコンピュータを機能させるプログラムを含む。
【0036】
なお、P−EMAサーバ300で動作するプログラムの初期インストール、更新の指示は、入力部320などから入力される。あるいは、P−EMAサーバ300で動作するプログラムの初期インストール、更新の指示は、ネットワーク2を介した外部の信頼できる装置から受信してもよい。P−EMAサーバ300で動作する全てのプログラムは、プログラム管理テーブル365aにより管理される。プログラム管理テーブル365aは、後述するように、プログラムの識別情報、インストール日時、初期バージョン、最終更新日時、最新バージョンを対応付けて管理するテーブルである。
【0037】
そして、プログラム更新部374は、P−EMAサーバ300で動作するプログラムの初期インストール、更新の都度、プログラム管理テーブル365aを書き換える。そして、プログラム更新部374は、更新前のプログラムデータをプログラム更新ログ365bに記憶させる。そして、プログラム更新部374は、TPMチップ350により、更新後のプログラムデータに基づくハッシュ値を算出し、更新後のプログラムデータとともにプログラム更新ログ365bに記憶させる。そして、プログラム更新部374は、更新後のプログラムデータに基づくハッシュ値を、更新後のプログラムデータとともにH−EMAサーバ400へ送信する。また、プログラム更新部374は、TPMチップ350により、初期インストール、更新の都度、更新後のプログラム管理テーブル365aに基づくハッシュ値を算出し、更新後のプログラム管理テーブル365aとともにH−EMA400へ送信する。また、プログラム更新部374は、更新後のプログラムデータおよび更新後のプログラム管理テーブル365aに基づくハッシュ値を、TPMチップ350により、TPM拡張保護領域368に記憶させる。
【0038】
プログラム実行監視部375は、P−EMAサーバ300で動作する全てのプログラムの実行を監視する。なお、上述したように、P−EMAサーバ300で動作するプログラムは、ハッシュ値ログ送受信部371としてコンピュータを機能させるプログラム、テーブル更新部372としてコンピュータを機能させるプログラムを含む。また、P−EMAサーバ300で動作するプログラムは、アクセス監視部373としてコンピュータを機能させるプログラム、プログラム更新部374としてコンピュータを機能させるプログラムを含む。また、P−EMAサーバ300で動作するプログラムは、プログラム実行監視部375としてコンピュータを機能させるプログラム、不正プログラム検出部376としてコンピュータを機能させるプログラムを含む。
【0039】
プログラム実行監視部375は、P−EMAサーバ300で動作する全てのプログラムの実行にともなう動作ログを取得し、後述するプログラム動作ログ367bに記憶させる。プログラム実行監視部375は、プログラムの実行にともなう動作ログとして、プログラムの識別情報、動作内容、動作日時を含む1件の動作ログごとに、動作ログに基づくハッシュ値を算出し、動作ログに対応付けてプログラム動作ログ367bに記憶させる。そして、プログラム実行監視部375は、各動作ログに基づく各ハッシュ値をH−EMAサーバ400へ送信する。なお、プログラム実行監視部375は、動作ログごとにハッシュ値を算出し、H−EMAサーバ400へ送信することとしてもよい。あるいは、プログラム実行監視部375は、プログラム単位もしくは動作日時単位で複数の動作ログをまとめ、まとめた動作ログの単位でハッシュ値を算出し、H−EMAサーバ400へ送信することとしてもよい。
【0040】
不正プログラム検出部376は、P−EMAサーバ300の起動時もしくは予め定められた周期により、P−EMAサーバ300内に存在するファイル群366のファイルの属性をチェックする。そして、不正プログラム検出部376は、P−EMAサーバ300内に存在するファイルのうち、実行可能な属性を有するファイルを抽出する。そして、不正プログラム検出部376は、抽出した実行可能な属性を有するファイルのうち、P−EMAサーバ300上で動作するOS以外およびミドルウェアのファイル以外のファイルの一覧を一時テーブル369に展開する。
【0041】
そして、不正プログラム検出部376は、一時テーブル369に含まれるファイルが、プログラム管理テーブル365aに登録されているか否かを判定する。そして、不正プログラム検出部376は、一時テーブル369に含まれるファイル(プログラム)のうち、プログラム管理テーブル365aに登録されていないプログラムが存在する場合には、次の動作をおこなう。すなわち、不正プログラム検出部376は、ポリシーテーブル361aに記述されたポリシーにしたがい、例えば、表示部330から警告などを出力したり、P−EMAサーバ300を停止したりする。なお、不正プログラム検出部376は、生成した一時テーブル369に基づくハッシュ値を算出し、一時テーブル369とともにH−EMAサーバ400へ送信する。
【0042】
(P−EMAサーバが有するポリシーテーブル)
図3は、P−EMAサーバが有するポリシーテーブルを示す図である。P−EMAサーバ300が有するポリシーテーブル361aは、P−EMAサーバ300の動作ポリシーを記述する。ポリシーテーブル361aは、例えば、「ハッシュ値ログのハッシュ値を算出するデータ数の単位」が“n件”であるとは、「n件のハッシュ値ログごとにハッシュ値ログをとりまとめ、とりまとめたハッシュ値ログに基づいてハッシュ値を算出する」ことを指す。
【0043】
また、ポリシーテーブル361aは、「ペアリングテーブル更新ログの保存期間」、「ペアリングテーブル更新ログのハッシュ値算出サイクル」、「アクセスログの保存期間」などのポリシーが記述されている。P−EMAサーバ300は、ポリシーテーブル361aに記述されたこれらのポリシーにしたがい、各処理をおこなう。なお、各ログのハッシュ値算出サイクルは、時間単位、日単位、週単位、月単位など、任意の時間を設定できる。また、ポリシーテーブル361aに記述される各ログの保存期間は、P−EMAサーバ300のポリシーテーブル361aに記述される、対応する各ログの保存期間以上である。つまり、同一のログは、P−EMAサーバ300よりも、H−EMAサーバ400がより長く保存する。
【0044】
(P−EMAサーバが有するペアリングテーブル)
図4は、P−EMAサーバが有するペアリングテーブルを示す図である。ペアリングテーブル363aは、保守サーバ100と、保守端末200との対応付けを記憶する。
図4に示すように、例えば、「AAA」の保守サーバ100には、「A001」、「A002」、・・・の保守端末200が対応付けられている。すなわち、「AAA」の保守サーバ100および「A001」、「A002」、・・・の保守端末200は、1組の管理単位を構成する。つまり、「A001」、「A002」、・・・の保守端末200は、各保守端末200が対象とする電気機器の動作にかかる各種情報を、「AAA」の保守サーバ100へ送信することになる。
【0045】
(P−EMAサーバが有するプログラム管理テーブル)
図5は、P−EMAサーバが有するプログラム管理テーブルを示す図である。
図5に示すように、プログラム管理テーブル365aは、各プログラムの識別情報に、当該プログラムの(初期)インストール日時、当該プログラムの初期バージョン、当該プログラムの最終更新日時、当該プログラムの最新バージョンを対応付けて管理する。
図5を参照すると、例えば、「プログラム(の識別情報)」が“PE1”のプログラムは、「インストール日時」が“y1/m1/d1/h1/mm1/s1”であることが分かる。また、例えば、「プログラム(の識別情報)」が“PE1”のプログラムは、「初期バージョン」が“V1”であり、「最終更新日時」が“Y1/M1/D1/H1/MM1/S1”であり、「最新バージョン」が「V3」であることが分かる。
【0046】
(P−EMAサーバが有するファイル群)
図6は、P−EMAサーバが有するファイル群を示す図である。ファイル群366は、P−EMAサーバ300が保持する全てのファイルを示す。
図6によれば、P−EMAサーバ300は、例えば、“F1”、“F2”、・・・のファイルを有することが分かる。なお、ファイル群366は、階層形式でファイルが保持され、例えば、実行形式の属性を有するファイルは、特定の階層をたどった先の特定のパスで示される格納領域に保持される。
【0047】
(P−EMAサーバが有するハッシュ値ログ)
図7は、P−EMAサーバが有するハッシュ値ログを示す図である。
図7に示すように、ハッシュ値ログ362bは、ハッシュ値および算出日時を少なくとも含む各ハッシュ値ログを含むとともに、n件のハッシュ値ログをまとめたデータに基づき算出されたハッシュ値を対応付けて記憶する。なお、
図7には図示しないが、ハッシュ値ログ362bにおいて、各ハッシュ値ログは、当該ハッシュ値ログの送信元の装置の識別情報とともに記憶されてもよい。または、ポリシーテーブル361aに記述されるポリシーにしたがい、保守サーバ100および保守端末200の装置グループごとに、n件のハッシュ値ログをまとめ、まとめたデータに基づき算出されたハッシュ値を対応付けて記憶することとしてもよい。
【0048】
(P−EMAサーバが有するペアリングテーブル更新ログ)
図8は、P−EMAサーバが有するペアリングテーブル更新ログを示す図である。ペアリングテーブル更新ログ363bは、ペアリングテーブル363aが新規作成、レコードの新規追加、レコード更新される都度に、更新前のペアリングテーブル363aのデータを待避する。そして、ペアリングテーブル更新ログ363bは、待避した更新前のペアリングテーブル363aのデータに、更新後のペアリングテーブル363aのデータに基づくハッシュ値を対応付けて記憶する。なお、ペアリングテーブル363aの新規作成時には、「更新前テーブルデータ」は“−(Null)”であり、「更新日時」は“新規作成日時”となる。例えば、
図8に示すように、「更新日時」が“Y3/M3/D3/H3/MM3/S3”のペアリングテーブル363aの「更新前テーブルデータ」は“ペアリングテーブルデータ1”である。また、“ペアリングテーブルデータ1”に基づく「ハッシュ値」は、“ペアリングテーブルハッシュ値1”である。
【0049】
(P−EMAサーバが有するアクセスログ)
図9は、P−EMAサーバが有するアクセスログを示す図である。アクセスログ364bは、ネットワーク2を介して外部の装置からアクセスがあった場合に、アクセスの識別情報に、アクセス日時、アクセス内容および対応アクション、ハッシュ値を対応付けて記憶する。
図9によれば、アクセスログ364bは、アクセスログとして、例えば、「アクセス」が“アクセス1”のアクセスが、「アクセス日時」が“y5/m5/d5/h5/mm5/s5”にあったことを示す。そして、“アクセス1”のアクセスに対する「アクセス内容および対応アクション」が“保守サーバXからのアクセス→ブロック”を含むことを示す。そして、“アクセス1”のアクセスログに基づく「ハッシュ値」として“アクセスハッシュ値1”が算出され、“アクセス1”のアクセスログに対応付けて記憶される。なお、「アクセス内容および対応アクション」は、ポリシーテーブル361aに記述されるポリシーにしたがって、アクセスが許可されない外部の装置からのアクセスをブロックし、アクセスが許可された外部の装置からのアクセスのみを許可するなどを含む。
【0050】
(P−EMAサーバが有するプログラム更新ログ)
図10は、P−EMAサーバが有するプログラム更新ログを示す図である。プログラム更新ログ365bは、P−EMAサーバ300で動作するプログラムが更新される都度に、更新前のプログラムのデータおよび更新前のプログラム管理テーブル365aのデータを待避する。そして、プログラム更新ログ365bは、更新後のプログラムのデータに基づくハッシュ値および更新後のプログラム管理テーブル365aのデータに基づくハッシュ値を対応付けて記憶する。例えば、
図10に示すように、「更新日時」が“Y5/M5/D5/H5/MM5/S5”の「更新前プログラム」が“更新前プログラムデータ1”であり、「更新後プログラム」が“更新後プログラムデータ1”であり、「更新前プログラム管理テーブルデータ」が“更新前プログラム管理テーブルデータ1”であるプログラム更新ログを含む。また、「更新前プログラム」が“更新前プログラムデータ1”、「更新後プログラム」が“更新後プログラムデータ1”であるプログラム更新ログに基づく「ハッシュ値」は、“更新後プログラムデータハッシュ値1”である。また、「更新前プログラム管理テーブルデータ」が“更新前プログラムデータ1”である更新ログに対応する更新後プログラム管理テーブル365aに基づく「ハッシュ値」は、“更新後プログラム管理テーブルデータハッシュ値1”である。
【0051】
(P−EMAサーバが有するプログラム動作ログ)
図11は、P−EMAサーバが有するプログラム動作ログを示す図である。プログラム動作ログ367bは、P−EMAサーバ300でプログラムが動作する都度に、プログラムの識別情報、動作内容、動作日時を対応付けて含むプログラム動作ログを記憶する。そして、各プログラム動作ログのデータに基づくハッシュ値を対応付けて記憶する。例えば、
図11に示すように、「プログラム」“PE1”が「動作内容」“起動”を「動作日時」“y7/m7/d7/h7/mm7/s7”におこなったことを示すプログラム動作ログを記憶する。そして、プログラム動作ログ367bは、「プログラム」、「動作内容」、「動作日時」を含むプログラム動作ログに基づく「ハッシュ値」は、“プログラム動作ログハッシュ値1”である。
【0052】
(P−EMAサーバで実行されるハッシュ値ログのハッシュ値算出処理)
図12は、P−EMAサーバで実行されるハッシュ値ログのハッシュ値算出処理を示すフローチャートである。先ず、P−EMAサーバ300の制御部370のハッシュ値ログ送受信部371は、ハッシュ値ログのハッシュ値算出タイミングであるか否かを判定する(ステップS11)。例えば、ハッシュ値ログのハッシュ値算出タイミングは、保守サーバ100または保守端末200から受信したハッシュ値ログがn(nは自然数)件に達したか否かなどである。ハッシュ値ログのハッシュ値算出タイミングであると判定した場合(ステップS11Yes)、ハッシュ値ログ送受信部371は、ステップS12へ処理を移す。一方、ハッシュ値ログのハッシュ値算出タイミングでないと判定した場合(ステップS11No)、ハッシュ値ログ送受信部371は、ステップS11を繰り返す。
【0053】
ステップS12では、ハッシュ値ログ送受信部371は、n件のハッシュ値ログのハッシュ値を算出する。そして、ハッシュ値ログ送受信部371は、算出したハッシュ値を、算出の基礎となったハッシュ値ログに対応付けてハッシュ値ログ362bに記憶させるとともに、算出したハッシュ値をH−EMAサーバ400へ送信する(ステップS13)。ステップS13の処理が終了すると、ハッシュ値ログ送受信部371は、処理を終了する。
【0054】
(P−EMAサーバで実行されるペアリングテーブル更新ログのハッシュ値算出処理)
図13は、P−EMAサーバで実行されるペアリングテーブル更新ログのハッシュ値算出処理を示すフローチャートである。先ず、P−EMAサーバ300の制御部370のテーブル更新部372は、ペアリングテーブル更新ログ363bにおいて、更新前のペアリングテーブル363aを待避させる(ステップS21)。そして、テーブル更新部372は、ペアリングテーブル363aを更新する(ステップS22)。
【0055】
そして、テーブル更新部372は、更新後のペアリングテーブル363aのハッシュ値を算出する。そして、テーブル更新部372は、算出したハッシュ値を、算出の基礎となった更新前のペアリングテーブル363aに対応付けてペアリングテーブル更新ログ363bに記憶させる(ステップS23)。そして、テーブル更新部372は、算出したハッシュ値をH−EMAサーバ400へ送信する(ステップS24)。ステップS24の処理が終了すると、テーブル更新部372は、処理を終了する。
【0056】
(P−EMAサーバで実行されるアクセスログのハッシュ値算出処理)
図14は、P−EMAサーバで実行されるアクセスログのハッシュ値算出処理を示すフローチャートである。先ず、P−EMAサーバ300の制御部370のアクセス監視部373は、アクセスが許可された保守サーバ100もしくは保守端末200からのアクセスがあるか否かを判定する(ステップS31)。アクセスが許可された保守サーバ100もしくは保守端末200からのアクセスがある場合(ステップS31Yes)、アクセス監視部373は、ステップS32へ処理を移す。一方、アクセスが許可された保守サーバ100もしくは保守端末200からのアクセスがない場合(ステップS31No)、アクセス監視部373は、ステップS31を繰り返す。
【0057】
なお、アクセスが許可された保守サーバ100もしくは保守端末200からのアクセスがない場合(ステップS31No)は、アクセスが許可されない外部の装置からのアクセスがなった場合も含む。この場合も、アクセス監視部373は、
図9に示すアクセスログ364bに、「アクセス」、「アクセス日時」、「アクセス内容および対応アクション」、「ハッシュ値」を記憶させる。この場合、「アクセス内容および対応アクション」は、“アクセスが許可されない外部の装置からのアクセス→ブロック”という内容になる。
【0058】
ステップS32では、アクセス監視部373は、アクセスが許可された保守サーバ100もしくは保守端末200からのアクセスのログをアクセスログ364bに記憶させる。そして、アクセス監視部373は、アクセスが許可された保守サーバ100もしくは保守端末200からのアクセスのログに基づくハッシュ値を算出し、算出の基礎となったアクセスのログに対応付けてアクセスログ364bに記憶させる(ステップS33)。そして、アクセス監視部373は、算出したハッシュ値をH−EMAサーバ400へ送信する(ステップS34)。ステップS34が終了すると、アクセス監視部373は、処理を終了する。
【0059】
(P−EMAサーバで実行されるプログラム管理テーブル更新ログのハッシュ値算出処理)
図15は、P−EMAサーバで実行されるプログラム管理テーブル更新ログのハッシュ値算出処理を示すフローチャートである。先ず、P−EMAサーバ300の制御部370のプログラム更新部374は、更新前の該当プログラムをプログラム更新ログ365bに待避させる(ステップS41)。そして、プログラム更新部374は、該当プログラムおよびプログラム管理テーブル365aの該当プログラム部分を更新する(ステップS42)。そして、プログラム更新部374は、TPMチップ350により、更新後の該当プログラムおよびプログラム管理テーブルのハッシュ値を算出する(ステップS43)。そして、プログラム更新部374は、算出した更新後の該当プログラムおよびプログラム管理テーブルのハッシュ値を、H−EMAサーバ400へ送信する(ステップS44)。そして、プログラム更新部374は、TPMチップ350により、算出した更新後の該当プログラムおよびプログラム管理テーブルのハッシュ値を、TPM拡張保護領域368に記憶させる(ステップS45)。ステップS45の処理が終了すると、プログラム更新部374は、処理を終了する。
【0060】
なお、TPM拡張保護領域368に記憶された更新後のプログラムおよびプログラム管理テーブルのハッシュ値は、P−EMAサーバ300の再起動時もしくは所定周期で、プログラムおよびプログラム管理テーブルの真正性を確認するために、参照される。
【0061】
(P−EMAサーバで実行されるプログラム実行ログのハッシュ値算出処理)
図16は、P−EMAサーバで実行されるプログラム実行ログのハッシュ値算出処理を示すフローチャートである。先ず、P−EMAサーバ300の制御部370のプログラム実行監視部375は、P−EMAサーバ300で実行中のプログラムの実行ログを取得し、プログラム動作ログ376bに記憶させる(ステップS51)。そして、プログラム実行監視部375は、プログラムの実行ログごとに当該プログラムの実行ログに基づくハッシュ値を算出する。そして、プログラム実行監視部375は、プログラムの実行ログに基づくハッシュ値を、算出の基礎となったプログラムの実行ログに対応付けてプログラム動作ログ367bに記憶させる(ステップS52)。そして、プログラム実行監視部375は、算出したプログラムの実行ログに基づくハッシュ値を、H−EMAサーバ400へ送信する(ステップS53)。ステップS53の処理が終了すると、プログラム実行監視部375は、処理を終了する。
【0062】
(P−EMAサーバで実行される不正プログラム検出処理)
図17は、P−EMAサーバで実行される不正プログラム検出処理を示すフローチャートである。先ず、P−EMAサーバ300の制御部370の不正プログラム検出部376は、P−EMAサーバ300内の全てのファイルの属性をチェックする(ステップS61)。そして、不正プログラム検出部376は、P−EMAサーバ300内のファイルのうち、実行属性を持つファイルを一時テーブル369に記憶させる(ステップS62)。そして、不正プログラム検出部376は、一時テーブル369に記憶される実行属性を持つファイルのうち、P−EMAサーバ300のOSおよびミドルウェアのファイルを除外する(ステップS63)。そして、不正プログラム検出部376は、OSおよびミドルウェアのファイルを除外された実行属性を持つファイルが記憶される一時テーブル369と、プログラム管理テーブル365aとを比較する(ステップS64)。
【0063】
そして、OSおよびミドルウェアのファイルを除外した実行属性を持つファイルが記憶される一時テーブル369と、プログラム管理テーブル365aとの内容が一致する場合(ステップS65Yes)、不正プログラム検出部376は、処理を終了する。一方、OSおよびミドルウェアのファイルを除外した実行属性を持つファイルが記憶される一時テーブル369と、プログラム管理テーブル365aとの内容が一致しない場合(ステップS65No)、不正プログラム検出部376は、ステップS66へ処理を移す。
【0064】
ステップS66では、不正プログラム検出部376は、一時テーブル369に存在し、かつ、プログラム管理テーブル365aに存在しないプログラムの動作ログをプログラム動作ログ367bから取得して保存する。そして、不正プログラム検出部376は、ステップS66で取得した、一時テーブル369に存在し、かつ、プログラム管理テーブル365aに存在しないプログラムの動作ログに基づくハッシュ値を算出する(ステップS67)。そして、不正プログラム検出部376は、一時テーブル369の内容に基づくハッシュ値を算出する(ステップS68)。そして、不正プログラム検出部376は、ステップS67およびステップS68で算出した各ハッシュ値を、H−EMAサーバ400へ送信する(ステップS69)。
【0065】
(H−EMAサーバの構成)
図19は、実施形態にかかるH−EMAサーバの構成を示すブロック図である。
図18に示すように、実施形態にかかるH−EMAサーバ400は、入力部420、表示部430、インターフェース部440、TPMチップ450、記憶部460、制御部470を有する。H−EMAサーバ400が有する各構成要素は、バス480によって相互に接続される。入力部420、表示部430は、P−EMAサーバ300の入力部320、表示部330と同様の機能を有する。インターフェース部440は、P−EMAサーバ300と接続するためのインターフェースである。
【0066】
TPMチップ450は、P−EMAサーバ300のTPMチップ350と同様であり、後述するように、制御部470と協働して動作し、P−EMAサーバ300との通信の安全性を保証する。例えば、TPMチップ450は、制御部470の各部からの要求に応じて、情報のハッシュ値算出(ハッシュ化)や、TPMチップにより暗号化された情報を復号する。
【0067】
記憶部460は、ポリシーテーブル461、ハッシュ値ログのハッシュ値462、ペアリングテーブル更新ログのハッシュ値463を有する。また、記憶部460は、アクセスログのハッシュ値464、プログラム管理テーブル更新ログのハッシュ値465、プログラム動作ログのハッシュ値466、一時テーブルのハッシュ値467を有する。ポリシーテーブル461については、後述する。記憶部460は、例えば、ハードディスク装置、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ(Flash Memory)などの半導体メモリ素子などの記憶装置である。
【0068】
制御部470は、ハッシュ値送受信部471、監査処理実行部472を有する。制御部470は、ポリシーテーブル461に記述されたポリシーにしたがい動作する。制御部470は、例えば、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)などの集積装置である。または、制御部470は、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)などの電子回路である。
【0069】
ハッシュ値送受信部471は、P−EMAサーバ300から受信した、TPMチップ350によりハッシュ値が算出されて付加された各種情報を受信し、記憶部460に記憶させる。各種情報は、ハッシュ値ログ362bのハッシュ値、ペアリングテーブル更新ログ363bのハッシュ値である。また、各種情報は、アクセスログ364bのハッシュ値、プログラム更新ログ365bのハッシュ値、プログラム動作ログ367bのハッシュ値、一時テーブル369のハッシュ値である。
【0070】
ハッシュ値ログ362bのハッシュ値は、ハッシュ値ログのハッシュ値462に記憶される。また、ペアリングテーブル更新ログ363bのハッシュ値は、ペアリングテーブル更新ログのハッシュ値463に記憶される。また、アクセスログ364bのハッシュ値は、アクセスログのハッシュ値464に記憶される。また、プログラム更新ログ365bのハッシュ値は、プログラム更新ログのハッシュ値465に記憶される。また、プログラム動作ログ367bのハッシュ値は、プログラム動作ログのハッシュ値466に記憶される。また、一時テーブル369のハッシュ値は、一時テーブルのハッシュ値467に記憶される。
【0071】
監査処理実行部472は、後述する監査処理を実行し、ポリシーテーブル461に記述されるポリシーに沿って、監査結果に応じたアクションを実行する。
【0072】
(H−EMAサーバが有するポリシーテーブル)
図19は、H−EMAサーバが有するポリシーテーブルを示す図である。ポリシーテーブル461は、H−EMAサーバ400の動作ポリシーを記述する。ポリシーテーブル461は、例えば、「ハッシュ値不一致の場合のアクション」が“P−EMAサーバ停止”であるとは、具体的には、次の処理を指す。
図17のステップS65でNoとなり、ステップS69で、P−EMAサーバ300から、一時テーブル369に存在し、かつ、プログラム管理テーブル365aに存在しないプログラムの動作ログおよび一時テーブル369に基づくハッシュ値が送信されたとする。この場合に、P−EMAサーバ300の非改竄性が保証できないとして、P−EMAサーバ300を停止させることを指す。そのほか、ポリシーテーブル461は、
図19に示すように、「ハッシュ値ログのハッシュ値の保存期間」、「ペアリングテーブル更新ログハッシュ値の保存期間」など、P−EMAサーバ300から受信した各ハッシュ値の保存期間などの規定が記述される。
【0073】
同様に、ハッシュ値ログのハッシュ値462、ペアリングテーブル更新ログのハッシュ値463、アクセスログのハッシュ値464は、P−EMAサーバ300から送信され、記憶するハッシュ値である。また、プログラム更新ログのハッシュ値465、プログラム動作ログのハッシュ値466、一時テーブルのハッシュ値467は、P−EMAサーバ300から送信され、記憶するハッシュ値である。
【0074】
(H−EMAサーバで実行されるP−EMAサーバ監査処理)
図20は、H−EMAサーバで実行されるP−EMAサーバ監査処理を示すフローチャートである。先ず、H−EMAサーバ400の監査処理実行部472は、P−EMAサーバ300の監査対象のハッシュ値を決定する(ステップS71)。そして、監査処理実行部472は、P−EMAサーバ300から、監査対象の該当部分のハッシュ値を取得する(ステップS72)。そして、監査処理実行部472は、自装置であるH−EMAサーバ400が記憶するハッシュ値と、P−EMAサーバ300から取得したハッシュ値とが一致するか否かを判定する(ステップS73)。自装置であるH−EMAサーバ400が記憶するハッシュ値と、P−EMAサーバ300から取得したハッシュ値とが一致する場合(ステップS73Yes)、監査処理実行部472は、監査異常なしとして、処理を終了する。
【0075】
一方、自装置であるH−EMAサーバ400が記憶するハッシュ値と、P−EMAサーバ300から取得したハッシュ値とが一致しない場合(ステップS73No)、監査処理実行部472は、監査異常ありとする。例えば、監査処理実行部472は、ポリシーテーブル461の規定にしたがい、P−EMAサーバ300に対して、稼働停止を指示する(ステップS74)。つまり、P−EMAサーバ300から、P−EMAの権限を剥奪する。ステップS74の処理が終了すると、監査処理実行部472は、処理を終了する。なお、ステップS74の処理は、一例を示すに過ぎず、例えば、ポリシーテーブル461に、P−EMA300の設置現場へ向かい、原因調査をおこなう指示を出力するポリシーが記述されているならば、その旨の指示を表示部430から出力することになる。つまり、ステップS74の処理は、ポリシーテーブル461に記述されている規定内容に応じたものになる。
【0076】
以上の実施形態によれば、P−EMAサーバ300からH−EMAサーバ400へ送信されるハッシュ値は、ハッシュ値の算出基礎となるログとともに送信されることとした。しかし、ハッシュ値の算出基礎となるログを識別する情報であれば、いずれの情報であってもよい。ハッシュ値の算出基礎となるログを識別する情報が、ハッシュ値とともにH−EMAサーバ400へ送信されることによっても、P−EMAサーバ300が保持するログの監査をおこなうことができる。
【0077】
また、P−EMAサーバ300からH−EMAサーバ400へ送信されるハッシュ値は、各ログの1件ごとに基づくハッシュ値であってもよい。または、P−EMAサーバ300からH−EMAサーバ400へ送信されるハッシュ値は、装置グループ、日時、各ログの内容もしくは種別などに基づきとりまとめた各ログの複数ごとに基づくハッシュ値であってもよい。
【0078】
(実施形態による効果)
以上の実施形態によれば、例えば、P−EMAサーバ300は、保守サーバ100や保守端末200から受信したハッシュ値ログを蓄積し、蓄積したログをポリシーにしたがってまとめた情報に基づくハッシュ値を算出する。また、例えば、P−EMAサーバ300は、自装置へのアクセスログ、プログラムの実行ログ、プログラムの更新ログを蓄積し、蓄積したログに基づきハッシュ値を算出する。そして、例えば、P−EMAサーバ300は、算出したハッシュ値を、H−EMAサーバ400へ保管させる。これにより、例えば、H−EMAサーバ400は、自装置が保管するハッシュ値に基づきP−EMAサーバ300を何時でも監査でき、P−EMAサーバ300の非改竄性を担保することができる。
【0079】
また、例えば、P−EMAサーバ300は、自装置で動作するプログラムのインストールおよび更新を、専用の更新プログラムでのみ実施可能とする。このため、例えば、P−EMAサーバ300は、意図しない不正なプログラムがインストールされたり、意図しないプログラムの更新がなされたりすることを防止でき、自装置で動作するプログラムの正当性を確保できる。
【0080】
さらに、例えば、P−EMAサーバ300は、自装置で動作するプログラムを管理テーブルで管理し、プログラムのインストールおよび更新の都度、管理テーブルを更新する。また、例えば、P−EMAサーバ300は、専用の更新プログラムでプログラムのインストールおよび更新をおこなう際には、動作ログを蓄積する。そして、例えば、P−EMAサーバ300は、管理テーブルの変更履歴をログとして蓄積し、専用の更新プログラムの動作ログとともに、ハッシュ値を算出する。そして、例えば、P−EMAサーバ300は、算出したハッシュ値を、H−EMAサーバ400へ保管させる。これにより、例えば、H−EMAサーバ400は、自装置が保管するハッシュ値に基づきP−EMAサーバ300で動作するプログラムに関して何時でも監査でき、P−EMAサーバ300のプログラムの非改竄性をより強く担保することができる。