説明

情報処理装置及びプログラム

【課題】トラステッドブートを行うコンピュータのセキュリティを向上させること。
【解決手段】自己の装置の起動(トラステッドブート)後の所定のタイミングで、起動制御手段が保持するPCR情報と、前記プラットフォーム情報取得手段が取得した現時点でのプラットフォーム情報との組を、真正性が保証された時点でのPCR情報とプラットフォーム情報との組を保持する管理サーバに送信することで、当該管理サーバに両組が一致するか否かの一致判定を要求し、不一致となったハードウェア構成及びソフトウェア構成の何れかの構成について、当該構成に応じた対処方法を指示した応答情報を、管理サーバから受信し、この応答情報に基づいて不一致となった構成を制御する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施の形態は、情報処理装置及びプログラムに関するものである。
【背景技術】
【0002】
従来、コンピュータが有するプラットフォーム(ハードウェア構成及びソフトウェア構成)の信頼性を確保するため、TPM(Trusted Platform Module)と呼ばれるセキュリティチップが用いられている。係るTPMは、コンピュータの起動時に、予め保持しておいた自己の装置のプラットフォームのハッシュ値と、現時点でのプラットフォームのハッシュ値とを比較し、両ハッシュ値が一致した場合にのみ起動を行う“トラステッドブート”という仕組みを実現させる。
【発明の概要】
【発明が解決しようとする課題】
【0003】
しかしながら、従来の技術では、コンピュータの起動後において、不正に改変されたプラットフォームのハッシュ値をTPMが保持してしまった場合これを検出することができず、セキュリティ上改善の余地があった。
【課題を解決するための手段】
【0004】
実施の形態の情報処理装置は、起動制御手段と、プラットフォーム情報取得手段と、送信手段と、受信手段と、制御手段とを備える。起動制御手段は、自己の装置が具備するハードウェア構成及びソフトウェア構成の各要素を一意に特定可能なハッシュ値をPCR情報として予め保持し、自己の装置の起動時に取得した前記各要素ハッシュ値と前記PCR情報とが一致した場合に、自己の装置の起動を許可する。プラットフォーム情報取得手段は、ハードウェア構成及びソフトウェア構成から、当該ハードウェア構成及びソフトウェア構成の各要素を示したプラットフォーム情報を取得する。送信手段は、自己の装置の起動後の所定のタイミングで、起動制御手段が保持するPCR情報と、プラットフォーム情報取得手段が取得した現時点でのプラットフォーム情報との組を、信頼性が確保された時点でのPCR情報とプラットフォーム情報との組を保持する管理サーバに送信し、この両組が一致するか否かの一致判定を管理サーバに要求する。受信手段は、一致判定の結果、不一致となった前記ハードウェア構成及び前記ソフトウェア構成の何れかの要素について、当該要素に応じた対処方法を指示した応答情報を管理サーバから受信する。制御手段は、応答情報に基づいて、不一致となった要素を制御する。
【図面の簡単な説明】
【0005】
【図1】図1は、実施形態に係る情報処理システムの構成を模式的に示すブロック図である。
【図2】図2は、図1に示した管理テーブルのデータ構成の一例を示す図である。
【図3】図3は、PCR情報及びプラットフォーム情報の登録時における情報処理システムの動作を示すフローチャートである。
【図4】図4は、図3に示した照合用ハッシュ値登録処理の手順を示すフローチャートである。
【図5】図5は、情報処理装置の起動時における情報処理システムの動作を示すフローチャートである。
【図6】図6は、図5に示した真正性確認処理の手順を示すフローチャートである。
【図7】図7は、情報処理装置のアプリケーション起動時における情報処理システムの動作を示すフローチャートである。
【図8】図8は、暗号鍵の再生成時における情報処理装置及びセキュリティデバイスの動作を示すフローチャートである。
【発明を実施するための形態】
【0006】
図1は、本実施形態に係る情報処理システム1の構成を模式的に示すブロック図である。同図に示すように、情報処理システム1は、情報処理装置10と、セキュリティデバイス20と、管理サーバ30とを有している。
【0007】
情報処理装置10は、PC(Personal Computer)やPOS端末等、真正性の保護対象となる情報処理装置であって、制御部11、BIOS(Basic Input/Output System)12、HDD(Hard Disk Drive)13、USBインタフェース14及びLANインタフェース15等を備えている。
【0008】
制御部11は、CPU(Central Processing Unit)、ROM(Read Only Memory)及びRAM(Random Access Memory)等で構成され、情報処理装置10の各部の動作を統括的に制御する。
【0009】
具体的に、制御部11は、情報処理装置10の起動時において、BIOS12に記憶されたプログラムを実行することで、情報処理装置10に搭載された各部を動作可能な状態とする。また、制御部11は、BIOS12を実行した後、セキュリティデバイス20から送信されるコマンドに従いHDD13に記憶されたOS131を実行することで、アプリケーション132を実行可能な環境を提供する。
【0010】
また、制御部11は、アプリケーション132の起動に際し、後述するPCR情報を要求するコマンドをセキュリティデバイス20に送信することで、セキュリティデバイス20からPCR情報を取得する。そして、制御部11は、管理サーバ30から受信したPCR情報を、自己の装置を識別する端末識別情報と、プラットフォームを特定する後述するプラットフォーム情報とともに管理サーバ30に送信する。
【0011】
ここで、“端末識別情報”は、情報処理装置10を識別可能な情報であって、例えば、LANインタフェース15に割り当てられたIPアドレスや、ネットワークNでの情報処理装置10のホストネームを用いることができる。また、“プラットフォーム”とは、アプリケーション132の動作環境を提供するための基盤であって、情報処理装置10のハードウェア構成と、BIOS12、OS131及びアプリケーション132等のソフトウェア構成とを組み合わせたものを意味する。
【0012】
また、制御部11は、端末識別情報、PCR情報及びプラットフォーム情報の送信に伴い、管理サーバ30から送信される応答情報の指示内容に従い、アプリケーション132の起動や情報処理装置10の各部の動作を制御する。また、制御部11は、セキュリティデバイス20から送信される暗号鍵をRAM(図示せず)に保持することで、この暗号鍵を用いて所定のデータ(コマンド、ファイル、フォルダ等)の暗号化/復号化を行う。
【0013】
BIOS12は、情報処理装置10を構成する各部を制御するためのプログラムを記憶している。HDD13は、情報処理装置10の補助記憶装置であって、情報処理装置10の基本ソフトウェアとなるOS131や、所定の業務処理を実現させるためのプログラムであるアプリケーション132を記憶している。なお、HDD13内のデータが、後述する暗号鍵により暗号化されている形態としてもよい。
【0014】
USBインタフェース14は、USB機器を着脱自在に接続するためのインタフェースであって、USB機器と制御部11との間の通信を制御する。なお、本実施形態では、USBインタフェース14にセキュリティデバイス20が接続された状態で使用されることを前提としている。
【0015】
LANインタフェース15は、インターネットやイントラネット等のネットワークNに接続するためのインタフェースであり、ネットワークNに接続された管理サーバ30と制御部11との間の通信を制御する。
【0016】
セキュリティデバイス20は、情報処理装置10のUSBインタフェース14に接続される耐タンパ性を有した外付けデバイスである。セキュリティデバイス20は、情報処理装置10の起動時にプラットフォームの真正性を確認することで、情報処理装置10のトラステッドブートを実現させる。
【0017】
図1に示すように、セキュリティデバイス20は、制御部21、TPM22、認証処理部23及びUSBインタフェース24等を備えている。
【0018】
制御部21は、CPU、ROM及びRAM等により構成され、セキュリティデバイス20の各部の動作を統括的に制御する。具体的に、制御部21は、TPM22及び認証処理部23と協働し、情報処理装置10のプラットフォームの真正性確認に係る各種の処理を実行する。
【0019】
また、制御部21は、後述するPCR情報を要求するコマンドを情報処理装置10から受け付けると、TPM22と協働することで、後述する記憶領域221に記憶されたPCR情報を読み出し情報処理装置10に送信する。
【0020】
TPM22は、ハードウェア耐タンパ性をもつセキュリティチップであって、コンピュータプラットフォームの真正性確認に係る各種の機能を有する。
【0021】
具体的に、TPM22は、情報処理装置10を構成する各機器や当該情報処理装置10に接続された各機器(以下、総称して構成機器という)について、各構成機器を識別可能な製品名や製造番号等の固有情報からハッシュ値を算出する。ここで算出されたハッシュ値は、固有の値となるため現在の構成機器、つまりハードウェア構成を一意に特定することが可能となる。なお、ハッシュ値は、固有情報毎に算出する形態としてもよいし、複数の固有情報から一のハッシュ値を算出する形態としてもよい。また、セキュリティデバイス20自身も情報処理装置10の構成機器となるが、セキュリティデバイス20自身の固有情報を含める形態としてもよいし、含めない形態としてもよい。
【0022】
また、TPM22は、情報処理装置10の制御部11がプログラムとして実行するBIOS12、OS131及びアプリケーション132の各々について、そのプログラムのファイルイメージからハッシュ値を算出する。ここで算出されたハッシュ値は、固有の値となるためBIOS12、OS131及びアプリケーション132のそれぞれを一意に特定することが可能となる。
【0023】
また、TPM22は、照合用となるハッシュ値の設定時(例えば、情報処理装置10への初回接続時等)において、情報処理装置10のハードウェア構成及びソフトウェア構成について算出した各ハッシュ値を記憶領域221に記憶する。ここで、記憶領域221は、書き換え可能な不揮発性の記憶媒体であって、PCR(Platform Configuration Register)に相当する。以下、記憶領域221に記憶した、ハードウェア構成及びソフトウェア構成(BIOS12、OS131、アプリケーション132)のハッシュ値を総称して“PCR情報”という。
【0024】
また、TPM22は、情報処理装置10とのコマンド授受に必要な暗号鍵を生成する機能を有し、生成した暗号鍵を記憶領域221に記憶する。ここで、暗号鍵は、セキュリティデバイス20と情報処理装置10との間で授受するコマンドや、所定のデータ(ファイル、フォルダ)を暗号化/復号化するためのものである。
【0025】
ここで、暗号化対象となるデータは特に問わないものとする。例えば、情報処理装置10とセキュリティデバイス20との間で授受される通信内容や、各種判定処理の判定結果、情報処理装置10の制御部11が行う処理内容等の履歴をログファイルとして記憶領域211や情報処理装置10に出力するよう設定されている場合、このログファイルを暗号化の対象とする形態としてもよい。なお、暗号鍵の暗号方式及び生成方法は特に問わないものとするが、例えば、記憶領域221に記憶されたPCR情報(ハッシュ値)を用いて、暗号鍵を生成する形態としてもよい。
【0026】
情報処理装置10の起動時において、制御部21はTPM22と協働し、情報処理装置10のハードウェア構成及びソフトウェア構成のそれぞれについてハッシュ値を算出すると、記憶領域221に記憶された対応するハッシュ値と比較し、一致するか否かを判定する。ここで、TPM22が全てのハッシュ値について一致を確認すると、制御部21は、記憶領域221に記憶された暗号鍵を情報処理装置10に送信することで、この暗号鍵を情報処理装置10に保持させる。また、TPM22がハッシュ値の不一致を確認すると、制御部21は、プラットフォームが改変されたと判断し、情報処理装置10の起動又は使用を制限するエラー処理を実行する。
【0027】
ここで、エラー処理は情報処理装置10の起動や使用を制限するためのものであり、その制限方法は種々の形態が挙げられる。例えば、情報処理装置10の起動処理をロックすることで、情報処理装置10が立ち上がらないよう制御する形態としてもよい。また、情報処理装置10及びTPM22が保持する暗号鍵を消去するよう制御することで、該暗号鍵で暗号化されたデータへのアクセスを制限する形態としてもよい。また、情報処理装置10のHDD13に記憶されたアプリケーション132を削除するよう制御することで、該アプリケーション132の起動や使用を制限する形態としてもよい。
【0028】
認証処理部23は、制御部21と協働することで、セキュリティデバイス20の操作者が、予め定められた正規の操作者か否かを認証する。具体的に、認証処理部23は、予め登録された正規操作者の認証情報を照合用認証情報として、不揮発性の記憶媒体である記憶領域231に記憶し、次回以降入力される認証情報をこの照合用認証情報と照合することで、正規操作者か否かを判定する。認証情報の不一致により、認証処理部23がセキュリティデバイス20の操作者が正規操作者でないと判定すると、制御部21は上述したエラー処理を実行する。
【0029】
なお、認証処理部23の認証方式は特に問わず、公知の技術を用いることができる。例えば、図示しないテンキーやキーボードを介して入力されるユーザID及びパスワードの組を、認証情報として用いるパスワード認証方式としてもよい。また、操作者の指紋や顔画像、虹彩等の生体情報の読み取りを行う生体情報読取装置を別途備えることで、この生体情報を認証情報として用いるバイオメトリクス認証方式としてもよい。また、RFIDリーダ装置を別途備え、このRFIDリーダ装置で読み取り可能なRFIDカードを操作者に配布しておくことで、このRFIDカードに記憶された情報を認証情報として用いる方式としてもよい。
【0030】
USBインタフェース24は、情報処理装置10と着脱自在に接続するためのインタフェースであって、情報処理装置10と制御部21との間の通信を制御する。また、USBインタフェース24は、情報処理装置10から供給される電源を、セキュリティデバイス20の各部に供給する。
【0031】
管理サーバ30は、ネットワークNを介して情報処理装置10に接続されるサーバー装置である。図1に示すように、管理サーバ30は、制御部31、HDD32及びLANインタフェース33等を備えている。
【0032】
制御部31は、CPU、ROM及びRAM等で構成され、管理サーバ30の各部の動作を統括的に制御する。具体的に、制御部31は、LANインタフェース33を介して、情報処理装置10から、端末識別情報、プラットフォーム情報及びPCR情報を含んだ登録要求を受け付けると、これらの情報を関連付け管理テーブル321に登録する。
【0033】
図2は、管理テーブル321のデータ構成の一例を示す図である。同図に示すように、管理テーブル321は、端末識別情報が登録される領域と、プラットフォーム情報が登録される領域と、PCR情報が登録される領域と、バックアッププログラムが登録される領域とから構成されている。ここで、プラットフォーム情報が登録される領域は、ハードウェア構成となる接続機器の各要素と、ソフトウェア構成となるBIOS、OS及びアプリケーションの各要素とから構成され、各要素に対応する固有情報がそれぞれ登録される。また、プラットフォーム情報の各要素に関連付けて、対応するハッシュ値が登録される。
【0034】
バックアッププログラムには、プラットフォーム情報に登録されたBIOS、OS及びアプリケーションの要素の固有情報に対応するプログラム本体(以下、バックアッププログラムという)が関連付けて登録(バックアップ)されている。ここで、バックアッププログラムは、その真正性が確認されたものであるとする。なお、バックアッププログラムの登録方法は特に問わないものとする。例えば、BIOS、OS及びアプリケーションの要素の固有情報に基づいて、制御部31が、これらのプログラムを提供する製造メーカ等の信頼性のおけるインターネットサイトからバックアッププログラムを取得し、管理テーブル321に登録する形態としてもよい。
【0035】
なお、図2では、プラットフォーム情報として、ハードウェア構成及びソフトウェア構成の各要素の固有情報を保持する例を示しているが、これに限らず、他の情報を保持する形態としてもよい。例えば、情報処理装置10において、アプリケーション132の設定に係る設定ファイルや、各種のログファイル等の保護対象とされたデータ(以下、保護データという)をプラットフォーム情報の一要素として保持する形態としてもよい。
【0036】
図1に戻り、制御部31は、情報処理装置10から端末識別情報、プラットフォーム情報及びPCR情報を含んだ真正性の確認要求を受け付けると、この端末識別情報に関連付けられたプラットフォーム情報及びPCR情報を管理テーブル321から読み出す。そして、制御部31は、情報処理装置10から受け付けたプラットフォーム情報及びPCR情報と、管理テーブル321から読み出したハードウェア構成及びソフトウェア構成との対応する各要素について、その固有情報及びハッシュ値の両値を比較し、一致するか否かを判定する。また、情報処理装置10から受け付けたプラットフォーム情報に保護データが含まれる場合には、管理テーブル321に登録された対応する保護データと比較し、一致するか否かを判定する。
【0037】
ここで、制御部31は、情報処理装置10から送信されたハードウェア構成及びソフトウェア構成の全ての要素について、管理テーブル321に登録されたものとの一致を確認、即ちプラットフォームに改変が無いことを確認すると、その旨を指示する応答信号をセキュリティデバイス20に送信する。
【0038】
また、制御部31は、情報処理装置10から送信されたハードウェア構成及びソフトウェア構成のうち何れかの要素について不一致を確認すると、この不一致となった要素について、当該要素に応じた対処方法を指示した応答情報をセキュリティデバイス20に送信する。
【0039】
具体的に、制御部31は、ハードウェア構成について不一致を確認した場合、情報処理装置10のハードウェア構成が改変されたと判断する。この場合、制御部31は、ハードウェア構成のうち不一致となった接続機器(例えば、情報処理装置10のUSBインタフェース14に接続されたセキュリティデバイス20以外の外部機器)の使用を禁止することを指示した指示内容を、応答情報としてセキュリティデバイス20に送信する。
【0040】
また、BIOSについて不一致を確認した場合、制御部31は、情報処理装置10のBIOS12が改変されたと判断する。この場合、制御部31は、BIOSに関連付けられたバックアッププログラムとともに、当該バックアッププログラムを用いてBIOS12を復旧することを指示した指示内容を、応答情報として情報処理装置10に送信する。なお、BIOS12の改変により、アプリケーション132の機能が情報処理装置10の正常動作に影響を及ぼす可能性がある場合、このアプリケーション132の機能の一部又は全てを禁止する指示内容を応答情報に含めることが好ましい。
【0041】
また、OSについて不一致を確認した場合、制御部31は、情報処理装置10のOS131が改変されたと判断する。この場合、制御部31は、OSに関連付けられたバックアッププログラムとともに、当該バックアッププログラムを用いてOS131を復旧することを指示した指示内容を、応答情報としてセキュリティデバイス20に送信する。なお、OS131の改変により、アプリケーション132の機能が情報処理装置10の正常動作に影響を及ぼす可能性がある場合、このアプリケーション132の機能の一部又は全てを禁止する指示内容を応答情報に含めることが好ましい。また、HDD13内のデータが暗号鍵により暗号化されている場合、この暗号鍵が盗まれている可能性もあるため、暗号鍵を再生成することを指示した指示内容を応答情報に含めることが好ましい。
【0042】
また、アプリケーションについて不一致を確認した場合、制御部31は、アプリケーション132が改変されたと判断する。この場合、制御部31は、アプリケーションに関連付けられたバックアッププログラムとともに、当該バックアッププログラムを用いてアプリケーション132を復旧することを指示した指示内容を、応答情報としてセキュリティデバイス20に送信する。また、アプリケーション132の改変により、このアプリケーション132自身の機能が情報処理装置10の正常動作に影響を及ぼす可能性がある場合、このアプリケーション132の機能の一部又は全てを禁止する指示内容を応答情報として送信する形態としてもよい。また、HDD13内のデータが暗号鍵により暗号化されている場合、この暗号鍵が盗まれている可能性もあるため、暗号鍵を再生成することを指示した指示内容を応答情報に含めることが好ましい。
【0043】
なお、保護データについて不一致を確認した場合、制御部31は、情報処理装置10の保護データが改変されたと判断し、管理テーブル321に登録された対応する保護データとともに、この保護データを用いて情報処理装置10内の保護データを復旧(上書き)することを指示した指示内容を、応答情報としてセキュリティデバイス20に送信する。
【0044】
HDD32は、管理サーバ30の補助記憶装置であって、制御部31が実行するプログラム(OSや各種アプリケーションを含む)や、上述した管理テーブル321を記憶している。
【0045】
LANインタフェース33は、インターネットやイントラネット等のネットワークNに接続するためのインタフェースであり、ネットワークNに接続された情報処理装置10と制御部31との間の通信を制御する。
【0046】
次に、図3〜図8を参照して、情報処理システム1の動作について説明する。ここで、図3は、PCR情報及びプラットフォーム情報の登録時における情報処理システム1の動作を示すフローチャートである。なお、本処理の前提として、情報処理装置10の電源がオフ状態にあるものとする。また、セキュリティデバイス20及び管理サーバ30は、情報処理装置10に接続されているものとする。
【0047】
まず、情報処理装置10の電源がオンとされ、この情報処理装置10の各部に電源が供給されると、制御部11は情報処理装置10の起動を開始する(ステップS11)。また、情報処理装置10の電源オンに伴い、USBインタフェース14を通じて供給される電源により、セキュリティデバイス20が起動する(ステップS21)。
【0048】
セキュリティデバイス20が起動すると、制御部21は、認証処理部23の動作を制御し、情報処理装置10の操作者から入力される認証情報の受付を開始させる。認証処理部23は、認証情報の入力を受け付けると(ステップS22)、記憶領域231に記憶された照合用認証情報と比較し(ステップS23)、両認証情報が一致するか否かを判定する(ステップS24)。ここで、認証処理部23が不一致と判定した場合(ステップS24;No)、制御部21は、正規の操作者以外の者が操作していると判断する。そして、制御部21は、上述したエラー処理を実行した後(ステップS25)、本処理を終了する。
【0049】
また、ステップS24において、認証処理部23が一致と判定した場合(ステップS24;Yes)、制御部21は、正規の操作者が操作していると判断し、ステップS26の処理に移行する。
【0050】
一方、情報処理装置10では、制御部11がBIOS12を起動し(ステップS12)、この起動が完了すると情報処理装置10の各部は動作可能な状態となる。これにより、USBインタフェース14とUSBインタフェース24との間の通信が確立する。なお、続くOS131の起動は、セキュリティデバイス20からのコマンドに応じて行うことになるため、制御部11は、OS131の起動を保留する。
【0051】
セキュリティデバイス20では、制御部21がUSBインタフェース間の通信の確立を検出すると(ステップS26)、TPM22と協働することで照合用ハッシュ値登録処理を実行する(ステップS27)。以下、図4を参照して、ステップS27の照合用ハッシュ値登録処理について説明する。
【0052】
図4は、照合用ハッシュ値登録処理の手順を示すフローチャートである。まず、制御部21は、USBインタフェース24を介して、情報処理装置10を構成する各構成機器の固有情報を検出すると(ステップS2711)、この検出結果をTPM22に出力することでハッシュ値を各々算出させる(ステップS2712)。そして、制御部21は、ステップS2712で算出されたハッシュ値を、ハードウェア構成のハッシュ値としてTPM22の記憶領域221に記憶する(ステップS2713)。
【0053】
続いて、制御部21は、USBインタフェース24を介して、情報処理装置10が保持するBIOS12のファイルイメージを検出すると(ステップS2714)、この検出結果をTPM22に出力することでハッシュ値を算出させる(ステップS2715)。そして、制御部21は、ステップS2715で算出されたハッシュ値を、BIOS12のハッシュ値としてTPM22の記憶領域221に記憶する(ステップS2716)。
【0054】
続いて、制御部21は、USBインタフェース24を介して、情報処理装置10のHDD13に記憶されたOS131のファイルイメージを検出すると(ステップS2717)、この検出結果をTPM22に出力することでハッシュ値を算出させる(ステップS2718)。そして、制御部21は、ステップS2718で算出されたハッシュ値を、OS131のハッシュ値としてTPM22の記憶領域221に記憶する(ステップS2719)。
【0055】
続いて、制御部21は、USBインタフェース24を介して、情報処理装置10のHDD13に記憶されたアプリケーション132のファイルイメージを検出すると(ステップS2720)、この検出結果をTPM22に出力することでハッシュ値を算出させる(ステップS2721)。そして、制御部21は、ステップS2721で算出されたハッシュ値を、アプリケーション132のハッシュ値としてTPM22の記憶領域221に記憶する(ステップS2722)。なお、ステップS2716、S2719及びS2722で記憶領域221に記憶された各ハッシュ値は、情報処理装置10のソフトウェア構成を一意に特定するものとなる。
【0056】
次いで、制御部21はTPM22と協働することで、暗号鍵を生成すると(ステップS2723)、この生成した暗号鍵をTPM22の記憶領域221に記憶し(ステップS2724)、図3のステップS28に移行する。
【0057】
図3に戻り、制御部21はTPM22と協働し、記憶領域221に記憶された暗号鍵を読み出すと、USBインタフェース24を介して情報処理装置10に送信する(ステップS28)。一方、情報処理装置10では、制御部11がUSBインタフェース14を介してセキュリティデバイス20から暗号鍵を受け付けると、この暗号鍵をRAMに保持する(ステップS113)。これにより、制御部11は、RAMに保持した暗号鍵を用いることで、この暗号鍵により暗号化されたコマンドや各種データの暗号化/復号化が可能となる。
【0058】
また、セキュリティデバイス20では、情報処理装置10に暗号鍵を送信すると、制御部21は、TPM22の記憶領域221に記憶された暗号鍵を用いて、OS131の起動を指示するコマンドを暗号化し、この暗号化済みのコマンドを情報処理装置10へ送信する(ステップS29)。
【0059】
一方、情報処理装置10では、制御部11がステップS29で送信された暗号化済みのコマンドを受け付けると、RAMに保持した暗号鍵を用いてコマンドを復号する(ステップS14)。次いで、制御部11は、復号したコマンドに従い、HDD13に記憶されたOS131を起動する(ステップS15)。
【0060】
また、セキュリティデバイス20では、情報処理装置10のOS131が起動すると、制御部21はTPM22と協働し、記憶領域221に記憶されたハードウェア構成及びソフトウェア構成(BIOS、OS、アプリケーション)の各ハッシュ値をPCR情報として取得する(ステップS30)。次いで、制御部21は、PCR情報を管理サーバ30への送信を指示するコマンドとともに暗号鍵で暗号化し、情報処理装置10へ送信する(ステップS31)。
【0061】
情報処理装置10では、制御部11が、ステップS31で送信されたPCR情報及びコマンドを受け付けると、RAMに保持した暗号鍵を用いて復号する(ステップS16)。次いで、制御部11は、復号したコマンドに従い、自己の装置のハードウェア構成及びソフトウェア構成の各要素が有する固有情報をプラットフォーム情報として取得する(ステップS17)。そして、制御部11は、端末識別情報、PCR情報及びプラットフォーム情報とともに、これらの情報の登録要求を管理サーバ30へ送信する(ステップS18)。なお、ステップS17の処理において、情報処理装置10の保護データをプラットフォーム情報に含める形態としてもよい。
【0062】
一方、管理サーバ30では、制御部31が、情報処理装置10から送信された端末識別情報、PCR情報及びプラットフォーム情報の登録要求を受け付けると、これらの情報を関連付けて管理テーブル321に登録し(ステップS41)、本処理を終了する。
【0063】
上記の処理で管理サーバ30の管理テーブル321に登録されたPCR情報及びプラットフォーム情報は、以下に説明する各処理において、情報処理装置10の信頼性が確保された時点でのPCR情報及びプラットフォーム情報として取り扱われる。
【0064】
次に、図5を参照して、情報処理装置10の起動時の動作について説明する。ここで、図5は、情報処理装置10の起動時における情報処理システム1の動作を示すフローチャートである。なお、本処理の前提として、情報処理装置10の電源がオフ状態にあるものとする。また、セキュリティデバイス20は、情報処理装置10に接続されているものとする。
【0065】
ステップS51、S52及びステップS61〜S66は、上述したステップS11、S12及びステップS21〜S28と同様の処理であるため説明を省略する。セキュリティデバイス20では、USBインタフェース間の通信確立を検出すると、制御部21はTPM22と協働し、真正性確認処理を実行する(ステップS67)。以下、図6を参照して、ステップS67の真正性確認処理について説明する。
【0066】
図6は、真正性確認処理の手順を示すフローチャートである。まず、制御部21は、USBインタフェース24を介して、情報処理装置10を構成する各構成機器の固有情報を検出すると(ステップS6711)、この検出結果をTPM22に出力することでハッシュ値を各々算出させる(ステップS6712)。
【0067】
次いで、制御部21はTPM22と協働し、ステップS6712で算出されたハッシュ値と、記憶領域221に記憶されたハードウェア構成のハッシュ値とを比較し(ステップS6713)、両ハッシュ値が一致するか否かを判定する(ステップS6714)。ここで、両ハッシュ値が不一致と判定すると(ステップS6714;No)、制御部21は、情報処理装置10の構成機器が改変されたと判断する。そして、制御部21は、上述したエラー処理を実行した後(ステップS6727)、本処理を終了する。
【0068】
また、ステップS6714において、両ハッシュ値が一致と判定すると(ステップS6714;Yes)、制御部21は、USBインタフェース24を介して、情報処理装置10が保持するBIOS12のファイルイメージを検出する(ステップS6715)。次いで、制御部21は、検出結果をTPM22に出力することでハッシュ値を算出させる(ステップS6716)。
【0069】
次いで、制御部21はTPM22と協働し、ステップS6716で算出されたハッシュ値と、記憶領域221に記憶されたBIOS12のハッシュ値とを比較し(ステップS6717)、両ハッシュ値が一致するか否かを判定する(ステップS6718)。ここで、両ハッシュ値が不一致と判定すると(ステップS6718;No)、制御部21は、情報処理装置10のBIOS12が改変されたと判断する。そして、制御部21は、上述したエラー処理を実行した後(ステップS6727)、本処理を終了する。
【0070】
また、ステップS6718において、両ハッシュ値が一致と判定すると(ステップS6718;Yes)、制御部21は、USBインタフェース24を介して、情報処理装置10のHDD13に記憶されたOS131のファイルイメージを検出する(ステップS6919)。次いで、制御部21は、検出結果をTPM22に出力することでハッシュ値を算出させる(ステップS6720)。
【0071】
次いで、制御部21はTPM22と協働し、ステップS6720で算出されたハッシュ値と、記憶領域221に記憶されたOS131のハッシュ値とを比較し(ステップS6721)、両ハッシュ値が一致するか否かを判定する(ステップS6722)。ここで、両ハッシュ値が不一致と判定すると(ステップS6722;No)、制御部21は、情報処理装置10のOS131が改変されたと判断する。そして、制御部21は、上述したエラー処理を実行した後(ステップS6727)、本処理を終了する。
【0072】
また、ステップS6722において、両ハッシュ値が一致と判定すると(ステップS6722;Yes)、制御部21は、USBインタフェース24を介して、情報処理装置10のHDD13に記憶されたアプリケーション132のファイルイメージを検出する(ステップS6723)。次いで、制御部21は、検出結果をTPM22に出力することでハッシュ値を算出させる(ステップS6724)。
【0073】
次いで、制御部21はTPM22と協働し、ステップS6724で算出されたハッシュ値と、記憶領域221に記憶されたアプリケーション132のハッシュ値とを比較し(ステップS6725)、両ハッシュ値が一致するか否かを判定する(ステップS6726)。ここで、両ハッシュ値が不一致と判定すると(ステップS6726;No)、制御部21は、情報処理装置10のアプリケーション132が改変されたと判断する。そして、制御部21は、上述したエラー処理を実行した後(ステップS6727)、本処理を終了する。また、ステップS6726において、両ハッシュ値が一致と判定すると(ステップS6726;Yes)、図5のステップS68に移行する。
【0074】
図5に戻り、制御部21はTPM22と協働し、TPM22の記憶領域221に記憶された暗号鍵を、USBインタフェース24を介して情報処理装置10に送信する(ステップS68)。情報処理装置10では、制御部11がセキュリティデバイス20から暗号鍵を受け付けると、この暗号鍵をRAM(図示せず)に保持する(ステップS53)。
【0075】
また、セキュリティデバイス20では、情報処理装置10に暗号鍵を送信すると、制御部21は、TPM22の記憶領域221に記憶された暗号鍵を用いて、OS131の起動を指示するコマンドを暗号化し、この暗号化済みのコマンドを情報処理装置10へ送信する(ステップS69)。
【0076】
一方、情報処理装置10では、制御部11がステップS69で送信された暗号化済みのコマンドを受け付けると、RAMに保持した暗号鍵を用いてコマンドを復号する(ステップS54)。次いで、制御部11は、復号したコマンドに従い、HDD13に記憶されたOS131を起動する(ステップS55)。
【0077】
このように、セキュリティデバイス20では、情報処理装置10の起動時に、情報処理装置10が具備するハードウェア構成及びソフトウェア構成の真正性を確認し、この真正性が保持されていると判断した場合のみ、情報処理装置10の起動を許可するよう制御する。これにより、情報処理装置10のプラットフォーム(ハードウェア構成及びソフトウェア構成)が所定の構成から改変されていた場合に、情報処理装置10が不用意に起動してしまうことを防止することができるため、情報処理装置10のセキュリティを向上させることができる。
【0078】
次に、図7を参照して、情報処理装置10がアプリケーション132を実行する際の情報処理システム1の動作について説明する。図7は、情報処理装置10のアプリケーション起動時における情報処理システム1の動作を示すフローチャートである。なお、本処理の前提として、情報処理装置10及びセキュリティデバイス20は、図5の処理で真正性の確認が正常に終了した状態にあるものとする。
【0079】
まず、情報処理装置10の制御部11は、HDD13に記憶されたアプリケーション132の起動に先立つ起動準備として(ステップS71)、PCR情報を要求するコマンドを暗号鍵で暗号化すると、この暗号化済みのコマンドをセキュリティデバイス20へ送信する(ステップS72)。なお、アプリケーション132の起動は、情報処理装置10の操作者から指示される形態としてもよいし、制御部11が自動で起動する形態としてもよい。
【0080】
一方、セキュリティデバイス20では、制御部21がTPM22と協働し、ステップS72で情報処理装置10から送信されたコマンドを記憶領域221の暗号鍵で復号すると(ステップS81)、このコマンドの指示内容に従い、記憶領域221に記憶されたハードウェア構成及びソフトウェア構成の各ハッシュ値をPCR情報として読み出す(ステップS82)。次いで、制御部21は、読み出したPCR情報を記憶領域221の暗号鍵で暗号化した後、情報処理装置10へ送信する(ステップS83)。
【0081】
情報処理装置10では、制御部11がRAMに保持した暗号鍵を用いて、ステップS83でセキュリティデバイス20から送信されたPCR情報を復号する(ステップS73)。次いで、制御部11は、自己の装置のハードウェア構成及びソフトウェア構成の各要素が有する固有情報をプラットフォーム情報として取得する(ステップS74)。続いて、制御部11は、端末識別情報と、PCR情報と、プラットフォーム情報とを含んだ真正性の確認要求を管理サーバ30へ送信する(ステップS75)。なお、ステップS74の処理において、情報処理装置10の保護データをプラットフォーム情報に含める形態としてもよい。
【0082】
一方、管理サーバ30では、制御部31が、情報処理装置10から確認要求を受け付けると、この確認要求に含まれたPCR情報及びプラットフォーム情報と、この確認要求に含まれた端末識別情報に対応する管理テーブル321のPCR情報及びプラットフォーム情報とを比較し(ステップS91)、対応する要素同士が一致するか否かを判定する(ステップS92)。
【0083】
ここで、制御部31は、ハードウェア構成及びソフトウェア構成の全ての要素について一致を確認すると(ステップS92;Yes)、情報処理装置10のプラットフォームの真正性が保持されていると判断し、その旨を示した応答情報を情報処理装置10に送信する(ステップS93)。また、ステップS92において、ハードウェア構成及びソフトウェア構成のうち何れかの要素について不一致を確認すると(ステップS92;No)、制御部31は、この不一致となった要素について、当該要素に応じた対象方法を指示した応答情報を、セキュリティデバイス20に送信する(ステップS94)。
【0084】
情報処理装置10では、管理サーバ30から応答情報を受け付けると、制御部11は、この応答情報が真正性の保持を指示するものか否かを判定する(ステップS76)。ここで、真正性の保持を示すものと判定した場合(ステップS76;Yes)、制御部11は、アプリケーション132を起動し(ステップS77)、本処理を終了する。
【0085】
一方、ステップS76において、応答情報が真正性の保持を指示するもの以外と判定した場合、即ち、プラットフォームの改変が通知された場合には、制御部11は、この応答情報で指示された指示内容に従い、自己の装置を保護するための対応処理を実行する(ステップS78)。
【0086】
ここで、ステップS78の対応処理の内容は、応答情報で指示された指示内容に準じたものとなる。例えば、指示内容が、特定の接続機器の使用を禁止することを指示するものである場合、制御部11は、指定された接続機器を認識しないよう無効化することで、情報処理装置10の操作者が使用できないよう制御する。これにより、不正なデバイスが情報処理装置10に接続された場合であっても、このデバイスの使用を抑制することができるため、情報処理装置10のセキュリティを向上させることができる。
【0087】
また、指示内容が、特定のプログラム(BIOS12、OS131又はアプリケーション132)の復旧を指示するものである場合、制御部11は、この指示内容とともに受け付けたバックアッププログラムを用いて指定されたプログラムの復旧を行う。ここで、復旧とは、バックアッププログラムの再導入(インストール)や、バックアッププログラムでの上書き等を意味する。
【0088】
なお、指示データが、保護データの復旧を指示するものである場合、制御部11は、この指示内容とともに受け付けた保護データを用いて、既存の保護データを上書する。
【0089】
これにより、プログラムの改竄や不正なプログラムへの置き換えが行われ、このプログラムのハッシュ値がセキュリティデバイス20の記憶領域221に登録されてしまった場合であっても、正規のプログラムに復旧することができるため、不正なプログラムが実行されてしまうことを抑制することができる。なお、この場合、セキュリティデバイス20が保持するソフトウェア構成のハッシュ値も不正なプログラムを特定するものとなっているため、復旧後のプログラムのハッシュ値を記憶領域221に登録することを指示したコマンドを、制御部11がセキュリティデバイス20に送信することが好ましい。
【0090】
また、指示内容が、アプリケーション132の実行を一部制限又は禁止するものである場合、制御部11は、ステップS71で起動準備を行ったアプリケーション132が有する機能の一部又は全てを無効化するよう制御する。これにより、情報処理装置10の正常動作に影響を及ぼす可能性のある、アプリケーション132の機能の一部又は全てを無効化することができるため、情報処理装置10のセキュリティを向上させることができる。
【0091】
また、指示内容が、暗号鍵の再生成を指示したものである場合、制御部11は、暗号鍵の再生成を依頼するコマンドを生成し暗号鍵を用いて暗号化すると、セキュリティデバイス20へ送信する。以下、図8を参照して、暗号鍵の再生成を行う際の情報処理装置10とセキュリティデバイス20の動作について説明する。
【0092】
図8は、暗号鍵の再生成時における情報処理装置10及びセキュリティデバイス20の動作を示すフローチャートである。まず、情報処理装置10では、制御部11が暗号鍵の再生成を指示する応答情報を受け付けると(ステップS101)、暗号鍵の再生成を要求するコマンドを暗号鍵で暗号化し、セキュリティデバイス20へ送信する(ステップS102)。
【0093】
一方、セキュリティデバイス20では、ステップS102で送信された暗号化済みのコマンドを受け付けると、制御部21はTPM22と協働し、記憶領域221に記憶された暗号鍵を用いて復号する(ステップS111)。続いて、制御部21は、ステップS111で復号したコマンドの指示内容に従い、以下の処理を実行する。まず、制御部21はTPM22と協働し、記憶領域221に記憶された既存の暗号鍵を用いることで、暗号化対象とされた所定のデータを復号する(ステップS112)。
【0094】
次いで、制御部21はTPM22と協働し、新たな暗号鍵を生成すると(ステップS113)、この暗号鍵を記憶領域221に記憶(上書き)する(ステップS114)。続いて、制御部21はTPM22と協働し、記憶領域221に記憶した新たな暗号鍵を用いて、暗号化対象とされた所定のデータを暗号化する(ステップS115)。そして、制御部21は、記憶領域221に記憶した新たな暗号鍵を情報処理装置10に送信し(ステップS116)、処理を終了する。
【0095】
情報処理装置10では、セキュリティデバイス20から送信された新たな暗号鍵を受け付けると、制御部11は、この暗号鍵をRAMに保持し(ステップS103)、処理を終了する。
【0096】
これにより、制御部11では、新たな暗号鍵を用いてデータの暗号化/復号化を行うことが可能となる。また、既存の暗号鍵で暗号化されていたデータを該暗号鍵で復号した後、新たな暗号鍵で暗号化を行うため、このデータを引き続き利用することができる。なお、セキュリティデバイス20にて暗号鍵の生成を行う前に(ステップS112の前)、認証処理部23にて正規操作者か否か確認を行う処理を含める形態としてもよい。
【0097】
図7に戻り、制御部21は、ステップS78の対応処理を実行すると、この対応処理を実行した条件の下で、アプリケーション132を起動し(ステップS79)、本処理を終了する。
【0098】
以上のように、本実施形態によれば、情報処理装置10の起動(トラステッドブート
)後の所定のタイミングで、セキュリティデバイス20のPCR情報と情報処理装置10のプラットフォーム情報とを管理サーバ30に送信する。また、管理サーバ30は、情報処理装置10から送信されたPCR情報とプラットフォーム情報との組を、真正性が保証された時点でのPCR情報とプラットフォーム情報との組と比較し、不一致となった前記ハードウェア構成及び前記ソフトウェア構成の何れかの要素について、その対処方法を指示した応答情報を情報処理装置10に送信する。情報処理装置10では、管理サーバ30から提供された応答情報に基づき、情報処理装置10を保護するための制御を不一致となった構成に施す。
【0099】
これにより、情報処理装置10のプラットフォームが改変され、且つこの改変された状態のハッシュ値が、セキュリティデバイス20のPCR情報として記憶されてしまった場合であっても、管理サーバ30が提供する応答情報に基づいて情報処理装置10を保護することができるため、情報処理装置10のセキュリティを向上させることができる。
【0100】
また、本実施形態では、情報処理装置10の起動時において、そのプラットフォームの真正性の確認をセキュリティデバイス20が行うため、情報処理装置10にセキュリティチップ(TPM)が実装されていない場合あっても、セキュリティデバイス20を接続することでトラステッドブートを実現することができる。
【0101】
以上、本発明の実施形態について説明したが、本発明はこれに限定されるものではなく、本発明の主旨を逸脱しない範囲での種々の変更、置換、追加等が可能である。
【0102】
例えば、上記実施形態では、セキュリティデバイス20において、制御部21とTPM22とが独立的に設けられた例を説明したが、制御部21がTPM22の機能を一体的に有する形態としてもよい。
【0103】
また、上記実施形態では、情報処理装置10のセキュリティチップ(TPM22)を、外付けのセキュリティデバイス20に搭載する形態としたが、これに限らず、セキュリティデバイス20の各部を、情報処理装置10自体が搭載する形態としてもよい。なお、この形態の場合、情報処理装置10の制御部11は、セキュリティデバイス20の制御部21と同様の機能を有するものとする。
【0104】
また、上記実施形態では、情報処理装置10の制御部11は、アプリケーション132の実行に際して図7の動作を行う形態としたが、これに限らず、情報処理装置10の起動後の任意のタイミングで行う形態としてもよい。
【符号の説明】
【0105】
1 情報処理システム
10 情報処理装置
11 制御部
12 BIOS
13 HDD
131 OS
132 アプリケーション
14 USBインタフェース
15 LANインタフェース
20 セキュリティデバイス
21 制御部
211 記憶領域
22 TPM
221 記憶領域
23 認証処理部
231 記憶領域
24 USBインタフェース
30 管理サーバ
31 制御部
32 HDD
321 管理テーブル
33 LANインタフェース
N ネットワーク
【先行技術文献】
【特許文献】
【0106】
【特許文献1】特許第3777170号

【特許請求の範囲】
【請求項1】
自己の装置が具備するハードウェア構成及びソフトウェア構成の各要素を一意に特定可能なハッシュ値をPCR情報として予め保持し、自己の装置の起動時に取得した前記各要素ハッシュ値と前記PCR情報とが一致した場合に、自己の装置の起動を許可する起動制御手段と、
前記ハードウェア構成及びソフトウェア構成から、当該ハードウェア構成及びソフトウェア構成の各要素を示したプラットフォーム情報を取得するプラットフォーム情報取得手段と、
自己の装置の起動後の所定のタイミングで、前記起動制御手段が保持するPCR情報と、前記プラットフォーム情報取得手段が取得した現時点でのプラットフォーム情報との組を、信頼性が確保された時点での前記PCR情報と前記プラットフォーム情報との組を保持する管理サーバに送信し、この両組が一致するか否かの一致判定を前記管理サーバに要求する送信手段と、
前記一致判定の結果、不一致となった前記ハードウェア構成及び前記ソフトウェア構成の何れかの要素について、当該要素に応じた対処方法を指示した応答情報を前記管理サーバから受信する受信手段と、
前記応答情報に基づいて、前記不一致となった要素を制御する制御手段と、
を備えたことを特徴とする情報処理装置。
【請求項2】
前記制御手段は、前記応答情報に前記ハードウェア構成に含まれた特定のハードウェアの使用を禁止する指示内容が含まれる場合に、この特定のハードウェアを無効化するよう制御することを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記制御手段は、前記応答情報に前記ソフトウェア構成に含まれた特定のプログラムの復旧の指示する指示内容が含まれる場合に、この特定のプログラムを復旧することを特徴とする請求項1又は2に記載の情報処理装置。
【請求項4】
前記制御手段は、前記応答情報に前記ソフトウェア構成に含まれた特定のプログラムの機能の一部又は全てを無効化する指示内容が含まれる場合に、この特定のプログラムの実行に際し、当該プログラムの機能の一部又は全てを無効化することを特徴とする請求項1〜3の何れか一項に記載の情報処理装置。
【請求項5】
所定のデータを暗号化/復号化する暗号鍵を生成する暗号鍵生成手段を更に備え、
前記制御手段は、前記応答情報に前記暗号鍵を再生成する指示内容が含まれる場合に、前記暗号鍵再生成手段に前記暗号鍵を再生成させることを特徴とする請求項1〜4の何れか一項に記載の情報処理装置。
【請求項6】
前記起動制御手段及び前記暗号鍵生成手段は、自己の装置と着脱自在に接続されたセキュリティデバイスに設けられていることを特徴とする請求項5に記載の情報処理装置。
【請求項7】
コンピュータを、
自己の装置が具備するハードウェア構成及びソフトウェア構成の各要素を一意に特定可能なハッシュ値をPCR情報として予め保持し、自己の装置の起動時に取得した前記ハードウェア構成及びソフトウェア構成のハッシュ値と前記PCR情報とが一致した場合に、自己の装置の起動を許可する起動制御手段と、
前記ハードウェア構成及びソフトウェア構成から、当該前記ハードウェア構成及びソフトウェア構成の各要素を示したプラットフォーム情報を取得するプラットフォーム情報取得手段と、
自己の装置の起動後の所定のタイミングで、前記起動制御手段が保持するPCR情報と、前記プラットフォーム情報取得手段が取得した現時点でのプラットフォーム情報との組を、真正性が保証された時点での前記PCR情報と前記プラットフォーム情報との組を保持する管理サーバに送信し、この両組が一致するか否かの一致判定を前記管理サーバに要求する送信手段と、
前記一致判定の結果、不一致となった前記ハードウェア構成及び前記ソフトウェア構成の何れかの要素について、当該要素に応じた対処方法を指示した応答情報を前記管理サーバから受信する受信手段と、
前記応答情報に基づいて、前記不一致となった要素を制御する制御手段と、
して機能させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2012−9938(P2012−9938A)
【公開日】平成24年1月12日(2012.1.12)
【国際特許分類】
【出願番号】特願2010−141667(P2010−141667)
【出願日】平成22年6月22日(2010.6.22)
【出願人】(000003562)東芝テック株式会社 (5,631)
【Fターム(参考)】