説明

セキュリティデバイス及び情報処理装置

【課題】TPMを具備しない情報処理装置にトラステッドブートを実現させること。
【解決手段】アプリケーションの動作環境を提供するプラットフォームを有した本体装置と着脱自在に接続される接続手段と、前記接続手段に接続された前記本体装置の起動時に、前記プラットフォームから当該プラットフォームを一意に特定可能なハッシュ値を算出する算出手段と、信頼性が確保された前記プラットフォームのハッシュ値を記憶する記憶手段と、前記算出手段が算出したハッシュ値と前記記憶手段に記憶されたハッシュ値とを比較し、両ハッシュ値が一致するか否かを判定する真正性判定手段と、前記真正性判定手段が不一致と判定した場合に、前記本体装置の使用を制限する制御手段と、を備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施の形態は、セキュリティデバイス及び情報処理装置に関するものである。
【背景技術】
【0002】
従来、コンピュータが具備するプラットフォーム(ハードウェア構成及びソフトウェア構成)の信頼性を確保するため、TPM(Trusted Platform Module)と呼ばれるセキュリティチップが用いられている。係るTPMは、情報処理装置本体のマザーボード上に搭載されており、該情報処理装置の起動時に自己の装置のプラットフォームの真正性を確認し、真正性(改変のない状態)を確認した場合にのみ起動を行う“トラステッドブート”という仕組みを実現させる。
【発明の概要】
【発明が解決しようとする課題】
【0003】
しかしながら、従来の技術では、装置本体の製造時にTPMを本体基板上に実装する必要があるため、TPMが未実装の情報処理装置ではトラステッドブートを実現することが困難であった。
【課題を解決するための手段】
【0004】
実施の形態のセキュリティデバイスは、接続手段と、算出手段と、記憶手段と、真正性判定手段と、制御手段とを備える。接続手段は、アプリケーションの動作環境を提供するプラットフォームを有した本体装置と着脱自在に接続される。算出手段は、接続手段に接続された本体装置の起動時に、プラットフォームから当該プラットフォームを一意に特定可能なハッシュ値を算出する。記憶手段は、信頼性が確保されたプラットフォームのハッシュ値を記憶する。真正性判定手段は、算出手段が算出したハッシュ値と前記記憶手段に記憶されたハッシュ値とを比較し、両ハッシュ値が一致するか否かを判定する。制御手段は、真正性判定手段が不一致と判定した場合に、本体装置の使用を制限する。
【図面の簡単な説明】
【0005】
【図1】図1は、第1の実施形態に係る情報処理システムの構成を模式的に示すブロック図である。
【図2】図2は、図1に示した情報処理装置の起動時における情報処理システムの動作を示すフローチャートである。
【図3】図3は、図2のPCR情報設定処理の手順を示すフローチャートである。
【図4】図4は、図2の真正性確認処理の手順を示すフローチャートである。
【図5】図5は、図1のセキュリティデバイスが実行する暗号鍵リカバリ処理の手順を示すフローチャートである。
【図6】図6は、図1に示したセキュリティデバイスの取り外し時における、情報処理システムの動作を示すフローチャートである。
【図7】図7は、第2の実施形態に係る情報処理システムの構成を模式的に示すブロック図である。
【図8】図8は、図7のセキュリティデバイスが実行するソフトウェア更新処理の手順を示すフローチャートである。
【図9】図9は、第3の実施形態に係る情報処理システムの構成を模式的に示すブロック図である。
【図10】図10は、図9のセキュリティデバイスが実行する起動アプリケーション制御処理の手順を示すフローチャートである。
【発明を実施するための形態】
【0006】
[第1の実施形態]
図1は、第1の実施形態に係る情報処理システム1の構成を模式的に示すブロック図である。同図に示すように、情報処理システム1は、情報処理装置10と、セキュリティデバイス20とを有している。
【0007】
情報処理装置10は、PCや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が動作可能な環境を提供する。また、制御部11は、セキュリティデバイス20から送信される暗号鍵をRAM(図示せず)に保持することで、この暗号鍵を用いて所定のデータ(コマンド、ファイル、フォルダ等)の暗号化/復号化を実行する。
【0010】
BIOS12は、情報処理装置10を構成する各部を制御するためのプログラムを記憶している。HDD13は、情報処理装置10の補助記憶装置であって、情報処理装置10の基本ソフトウェアとなるOS131や、所定の業務処理を実現させるためのプログラムであるアプリケーション132を記憶している。なお、HDD13内のデータが、後述する暗号鍵により暗号化されている形態としてもよい。
【0011】
USBインタフェース14は、USB機器を着脱自在に接続するためのインタフェースであって、USB機器と制御部11との間の通信を制御する。なお、本実施形態では、図1に示すように、USBインタフェース14にセキュリティデバイス20が接続された状態で使用される。
【0012】
LANインタフェース15は、インターネットやイントラネット等のネットワークNに接続するためのインタフェースであり、このネットワークNに接続された外部装置30と制御部11との間の通信を制御する。
【0013】
セキュリティデバイス20は、情報処理装置10のUSBインタフェース14に接続される耐タンパ性を有した外付けデバイスであって、本体装置となる情報処理装置10の起動を制御する。図1に示すように、セキュリティデバイス20は、制御部21、TPM22、認証処理部23、USBインタフェース24及び外部メモリ接続部25等を備えている。
【0014】
制御部21は、CPU、ROM及びRAM等により構成され、セキュリティデバイス20の各部の動作を統括的に制御する。具体的に、制御部21は、TPM22及び認証処理部23と協働し、情報処理装置10のプラットフォームの真正性確認に係る各種の処理(図2〜図6参照)を実行する。ここで“プラットフォーム”とは、アプリケーション132の動作環境を提供するための情報処理装置10の基盤であって、情報処理装置10のハードウェア構成と、BIOS12、OS131及びアプリケーション132等のソフトウェア構成とを組み合わせたものを意味する。
【0015】
また、制御部21は、セキュリティデバイス20の前回の取り外しが正規の操作で行われたか否かを記録するための正規操作フラグを、不揮発性で且つ書き込み可能な記録媒体である記憶領域211に保持している。ここで、正規の操作とは、情報処理装置10の正規操作者がセキュリティデバイス20を取り外すための所定の操作を行うことを意味する。
【0016】
TPM22は、耐タンパ性を有するセキュリティチップであって、コンピュータプラットフォームの真正性確認に係る各種の機能を有する。
【0017】
具体的に、TPM22は、情報処理装置10を構成する機器や当該情報処理装置10に接続された機器(以下、総称して構成機器という)について、各構成機器を識別可能な製品名や製造番号等を示す固有情報からハッシュ値を算出する。ここで算出されたハッシュ値は固有の値となるため、情報処理装置10のハードウェア構成を一意に特定することが可能となる。なお、ハッシュ値は、固有情報毎に算出する形態としてもよいし、複数の固有情報から一のハッシュ値を算出する形態としてもよい。また、セキュリティデバイス20自身も情報処理装置10の構成機器となるが、セキュリティデバイス20自身の固有情報を含める形態としてもよいし、含めない形態としてもよい。
【0018】
また、TPM22は、情報処理装置10の制御部11がプログラムとして実行するBIOS12、OS131及びアプリケーション132の各々について、そのプログラムのファイルイメージからハッシュ値を算出する。ここで算出されたハッシュ値は、固有の値となるためBIOS12、OS131及びアプリケーション132の各々を一意に特定することが可能となる。
【0019】
また、TPM22は、照合用となるハッシュ値の設定時(例えば、情報処理装置10への初回接続時等)において、情報処理装置10のハードウェア構成及びソフトウェア構成(BIOS12、OS131、アプリケーション132)について算出した各ハッシュ値を、記憶領域221に記憶する。ここで、記憶領域221は、書き換え可能な不揮発性の記憶媒体であって、PCR(Platform Configuration Register)に相当する。以下、記憶領域221に記憶した、ハードウェア構成及びソフトウェア構成のハッシュ値を総称して“PCR情報”という。
【0020】
また、TPM22は、各種データの暗号化/復号化に係る暗号鍵を生成する機能を有し、生成した暗号鍵を記憶領域221に記憶する。具体的に、暗号鍵は、セキュリティデバイス20と情報処理装置10との間で授受するコマンドを暗号化/復号化するために用いる。なお、暗号鍵の暗号方式及び生成方法は特に問わないものとするが、例えば、記憶領域221に記憶されたPCR情報を用いて、暗号鍵を生成する形態としてもよい。
【0021】
情報処理装置10の起動時において、TPM22は制御部21の制御の下、情報処理装置10のハードウェア構成及びソフトウェア構成についてのハッシュ値をそれぞれ算出すると、記憶領域221に記憶された対応する構成のハッシュ値と夫々比較し、両ハッシュ値が一致するか否かを判定する。ここで、TPM22がハードウェア構成及びソフトウェア構成の全てについて一致を確認すると、制御部21は、記憶領域221に記憶された暗号鍵を情報処理装置10に送信することで、この暗号鍵を情報処理装置10に保持させる。また、TPM22がハッシュ値の不一致を確認すると、制御部21は、情報処理装置10の使用を制限するための所定のエラー処理を実行する。
【0022】
ここで、エラー処理は情報処理装置10の使用を制限するためのものであり、その制限方法は種々の形態が挙げられる。例えば、情報処理装置10の起動処理をロックすることで、情報処理装置10が立ち上がらないよう制御する形態としてもよい。また、情報処理装置10及びTPM22が保持する後述する暗号鍵を消去することで、暗号化されたデータへのアクセスを制限する形態としてもよい。また、情報処理装置10のHDD13に記憶されたアプリケーション132を削除するよう制御することで、該アプリケーション132の使用を制限する形態としてもよい。
【0023】
認証処理部23は、制御部21と協働することで、セキュリティデバイス20の操作者が、予め定められた正規の操作者か否かを認証する。具体的に、認証処理部23は、初回設定時に登録された正規操作者の認証情報を照合用認証情報として、不揮発性の記憶媒体である記憶領域231に記憶し、次回以降入力される認証情報をこの照合用認証情報と照合することで、正規操作者か否かを判定する。認証情報の不一致により、認証処理部23がセキュリティデバイス20の操作者が正規操作者でないと判定すると、制御部21は上述したエラー処理を実行する。
【0024】
なお、認証処理部23の認証方式は特に問わず、公知の技術を用いることができる。例えば、図示しないテンキーやキーボードを介して入力されるユーザID及びパスワードの組を、認証情報として用いるパスワード認証方式としてもよい。また、操作者の指紋や顔画像、虹彩等の生体情報の読み取りを行う生体情報読取装置を別途備えることで、この生体情報を認証情報として用いるバイオメトリクス認証方式としてもよい。また、RFIDリーダ装置を別途備え、このRFIDリーダ装置で読み取り可能なRFIDカードを操作者に配布しておくことで、このRFIDカードに記憶された情報を認証情報として用いる方式としてもよい。
【0025】
USBインタフェース24は、情報処理装置10と着脱自在に接続するためのインタフェースであって、情報処理装置10と制御部21との間の通信を制御する。また、USBインタフェース24は、情報処理装置10から供給される電源を、セキュリティデバイス20の各部に供給する。
【0026】
外部メモリ接続部25は、USBメモリやフラッシュメモリ等の外部メモリMを接続するためのインタフェースである。外部メモリ接続部25は、例えば、USBインタフェース24と同様のUSBインタフェースや、フラッシュメモリ等を接続するためのメモリスロットを用いることができる。制御部21は、TPM22及び認証処理部23と協働することで、外部メモリ接続部25に接続された外部メモリMに対し、TPM22が生成した暗号鍵を書き込むバックアップ処理や、外部メモリMに記憶された暗号鍵をTPM22の記憶領域221に書き戻すリカバリ処理を実行する。
【0027】
次に、図2〜図6を参照して、情報処理システム1の動作について説明する。ここで、図2は、情報処理装置10の起動時における情報処理システム1の動作を示すフローチャートである。なお、本処理の前提として、セキュリティデバイス20は、情報処理装置10に接続されているものとする。
【0028】
まず、情報処理装置10の電源がオンとされ、この情報処理装置10の各部に電源が供給されると、制御部11は情報処理装置10の起動を開始する(ステップS11)。また、情報処理装置10の電源オンに伴い、USBインタフェース14を通じて供給される電源により、セキュリティデバイス20が起動する(ステップS21)。
【0029】
セキュリティデバイス20が起動すると、制御部21は、まず記憶領域211に保持された正規操作フラグの状態を確認し、その値が“1”であるかを判定する(ステップS22)。ここで、正規操作フラグが“1”の場合、後述するように、セキュリティデバイス20が正規の操作で情報処理装置10から取り外されたことを意味する。また、正規操作フラグが“0”の場合、後述するように、セキュリティデバイス20が非正規の操作で情報処理装置10から取り外されたことを意味する。
【0030】
ステップS22において、正規操作フラグが“0”と判定した場合(ステップS22;No)、制御部21は、自己のセキュリティデバイス20が非正規の操作で情報処理装置10から取り外されたと判断する。この場合、制御部21は、上述したエラー処理を実行し(ステップS36)、本処理を終了する。
【0031】
また、ステップS22において、正規操作フラグが“1”と判定した場合(ステップS22;Yes)、制御部21は、認証処理部23の動作を制御し、情報処理装置10の操作者から入力される認証情報の受付を開始させる。
【0032】
認証処理部23は、認証情報の入力を受け付けると(ステップS23)、記憶領域231に照合用認証情報が記憶されているか否かを判定する(ステップS24)。ここで、記憶領域231に記憶されていないと判定した場合(ステップS24;No)、認証処理部23は、ステップS23で入力を受け付けた認証情報を照合用認証情報として記憶領域231に記憶し(ステップS25)、ステップS28に移行する。
【0033】
また、照合用認証情報が記憶されていると判定した場合(ステップS24;Yes)、認証処理部23は、ステップS23で入力を受け付けた認証情報と、記憶領域231に記憶された照合用認証情報とを比較し(ステップS26)、両認証情報が一致するか否かを判定する(ステップS27)。ここで、認証処理部23が不一致と判定した場合(ステップS27;No)、制御部21は、非正規の操作者が操作していると判断する。そして、制御部21は、上述したエラー処理を実行し(ステップS36)、本処理を終了する。
【0034】
また、ステップS27において、認証処理部23が一致すると判定した場合(ステップS27;Yes)、制御部21は、正規操作者が操作していると判断し、ステップS28に移行する。
【0035】
一方、情報処理装置10では、制御部11が、BIOS12を起動し(ステップS12)、この起動が完了すると情報処理装置10の各部は動作可能な状態となる。これにより、USBインタフェース14とUSBインタフェース24との間の通信が確立する。なお、続くOS131の起動は、セキュリティデバイス20からのコマンドに応じて行うことになるため、制御部11は、OS131の起動を保留する。
【0036】
セキュリティデバイス20側では、制御部21が、USBインタフェース間の通信確立を検出すると(ステップS28)、TPM22と協働することで以下の処理を実行する。まず、制御部21は、TPM22の記憶領域221にPCR情報が記憶されているか否かを判定する(ステップS29)。ここで、PCR情報が記憶されていないと判定した場合(ステップS29;No)、制御部21は、初回設定と判断し、ステップS30のPCR情報登録処理を実行する。以下、図3を参照して、ステップS30のPCR情報登録処理について説明する。
【0037】
図3は、PCR情報設定処理の手順を示すフローチャートである。まず、制御部21は、USBインタフェース24を介して、情報処理装置10を構成する各構成機器の固有情報を検出すると(ステップS3011)、この検出結果をTPM22に出力することでハッシュ値を算出させる(ステップS3012)。そして、制御部21は、ステップS3012で算出されたハッシュ値を、ハードウェア構成のハッシュ値としてTPM22の記憶領域221に記憶する(ステップS3013)。
【0038】
続いて、制御部21は、USBインタフェース24を介して、情報処理装置10が保持するBIOS12のファイルイメージを検出すると(ステップS3014)、この検出結果をTPM22に出力することでハッシュ値を算出させる(ステップS3015)。そして、制御部21は、ステップS3015で算出されたハッシュ値を、BIOS12のハッシュ値としてTPM22の記憶領域221に記憶する(ステップS3016)。
【0039】
続いて、制御部21は、USBインタフェース24を介して、情報処理装置10のHDD13に記憶されたOS131のファイルイメージを検出すると(ステップS3017)、この検出結果をTPM22に出力することでハッシュ値を算出させる(ステップS3018)。そして、制御部21は、ステップS3018で算出されたハッシュ値を、OS131のハッシュ値としてTPM22の記憶領域221に記憶する(ステップS3019)。
【0040】
続いて、制御部21は、USBインタフェース24を介して、情報処理装置10のHDD13に記憶されたアプリケーション132のファイルイメージを検出すると(ステップS3020)、この検出結果をTPM22に出力することでハッシュ値を算出させる(ステップS3021)。そして、制御部21は、ステップS3021で算出されたハッシュ値を、アプリケーション132のハッシュ値としてTPM22の記憶領域221に記憶する(ステップS3022)。
【0041】
次いで、制御部21はTPM22と協働し、暗号鍵を生成すると(ステップS3023)、この暗号鍵を記憶領域221に記憶する(ステップS3024)。制御部21は、外部メモリ接続部25に外部メモリMが接続されているか否かを判定し、接続されていないと判定した場合(ステップS3025;No)、ステップS32に直ちに移行する。また、外部メモリ接続部25に外部メモリMが接続されていると判定した場合(ステップS3025;Yes)、制御部21はTPM22と協働し、ステップS3023で生成された暗号鍵を外部メモリMに記憶(バックアップ)した後(ステップS3026)、ステップS32に移行する。
【0042】
図2に戻り、制御部21は、TPM22の記憶領域221にPCR情報が記憶されていると判定すると(ステップS29;Yes)、ステップS31の真正性確認処理を実行する。以下、図4を参照して、ステップS31の真正性確認処理について説明する。
【0043】
図4は、真正性確認処理の手順を示すフローチャートである。まず、制御部21は、USBインタフェース24を介して、情報処理装置10を構成する各構成機器の固有情報を検出すると(ステップS3111)、この検出結果をTPM22に出力することでハッシュ値を算出させる(ステップS3112)。
【0044】
TPM22は、ステップS3012で算出したハッシュ値と、記憶領域221に記憶されたハードウェア構成のハッシュ値とを比較し(ステップS3113)、両ハッシュ値が一致するか否かを判定する(ステップS3114)。
【0045】
ここで、TPM22が不一致と判定すると(ステップS3114;No)、制御部21は、情報処理装置10の構成機器が改変されたと判断する。そして、制御部21は、上述したエラー処理を実行し(ステップS36)、本処理を終了する。また、TPM22が一致と判定すると(ステップS3114;Yes)、制御部21は、USBインタフェース24を介して、情報処理装置10が保持するBIOS12のファイルイメージを検出する(ステップS3115)。次いで、制御部21は、検出結果をTPM22に出力することでハッシュ値を算出させる(ステップS3116)。
【0046】
TPM22は、ステップS3116で算出したハッシュ値と、記憶領域221に記憶されたBIOS12のハッシュ値とを比較し(ステップS3117)、両ハッシュ値が一致するか否かを判定する(ステップS3118)。
【0047】
ここで、TPM22が不一致と判定すると(ステップS3118;No)、制御部21は、情報処理装置10のBIOS12が改変されたと判断する。そして、制御部21は、上述したエラー処理を実行し(ステップS36)、本処理を終了する。また、TPM22が一致と判定すると(ステップS3118;Yes)、制御部21は、USBインタフェース24を介して、情報処理装置10のHDD13に記憶されたOS131のファイルイメージを検出する(ステップS3119)。次いで、制御部21は、検出結果をTPM22に出力することでハッシュ値を算出させる(ステップS3120)。
【0048】
TPM22は、ステップS3120で算出したハッシュ値と、記憶領域221に記憶されたOS131のハッシュ値とを比較し(ステップS3121)、両ハッシュ値が一致するか否かを判定する(ステップS3122)。
【0049】
ここで、TPM22が不一致と判定すると(ステップS3122;No)、制御部21は、情報処理装置10のOS131が改変されたと判断する。そして、制御部21は、上述したエラー処理を実行し(ステップS36)、本処理を終了する。また、TPM22が一致と判定すると(ステップS3122;Yes)、制御部21は、USBインタフェース24を介して、情報処理装置10のHDD13に記憶されたアプリケーション132のファイルイメージを検出する(ステップS3123)。次いで、制御部21は、検出結果をTPM22に出力することでハッシュ値を算出させる(ステップS3124)。
【0050】
TPM22は、ステップS3124で算出したハッシュ値と、記憶領域221に記憶されたアプリケーション132のハッシュ値とを比較し(ステップS3125)、両ハッシュ値が一致するか否かを判定する(ステップS3126)。
【0051】
ここで、TPM22が不一致と判定すると(ステップS3126;No)、制御部21は、情報処理装置10のアプリケーション132が改変されたと判断する。そして、制御部21は、上述したエラー処理を実行し(ステップS36)、本処理を終了する。また、TPM22が一致と判定すると(ステップS3126;Yes)、ステップS32に移行する。
【0052】
図2に戻り、制御部21はTPM22と協働し、TPM22の記憶領域221に記憶された暗号鍵を、USBインタフェース24を介して情報処理装置10に送信する(ステップS32)。情報処理装置10では、USBインタフェース14を介して制御部11が暗号鍵を受け付けると、この暗号鍵をRAM(図示せず)に保持する(ステップS13)。これにより、制御部11は、RAMに保持した暗号鍵を用いることで、所定のデータの暗号化/復号化を行うことが可能となる。
【0053】
セキュリティデバイス20では、情報処理装置10に暗号鍵を提供すると、制御部21はTPM22と協働することで、OS131の起動を指示するコマンドを記憶領域221の暗号鍵を用いて暗号化し、この暗号化済みのコマンドを情報処理装置10へ送信する(ステップS33)。続いて、制御部21は、予め定められた暗号化対象のデータを、記憶領域221の暗号鍵を用いて暗号化する(ステップS34)。そして、制御部21は、正規操作フラグを“0”に設定することで、自己の装置が正規の操作で取り外されたか否かを検出可能な状態とし(ステップS35)、処理を終了する。
【0054】
なお、ステップS34において、暗号化対象となるデータは特に問わないものとする。例えば、各種判定処理の判定結果や、セキュリティデバイス20や情報処理装置10が行う処理内容等の履歴(ログデータ)を暗号化対象としてもよい。なお、この場合、ログデータの格納先は記憶領域211や外部メモリMであってもよい。
【0055】
一方、情報処理装置10では、制御部11が暗号化済みのコマンドを受け付けると、このコマンドをRAMに保持した暗号鍵を用いて復号する(ステップS14)。次いで、制御部11は、復号したコマンドの指示内容に従い、HDD13に記憶されたOS131の起動を開始し(ステップS15)、処理を終了する。このOS131の起動により、アプリケーション132の動作環境が提供される。
【0056】
このように、セキュリティデバイス20では、情報処理装置10の起動時に、情報処理装置10が具備するハードウェア構成及びソフトウェア構成の真正性を確認し、真正性が保持されていると判断した場合のみ、情報処理装置10の起動を許可するよう制御する。これにより、情報処理装置10のプラットフォーム(ハードウェア構成ソフトウェア構成)が所定の構成から改変されていた場合に、情報処理装置10が不用意に起動してしまうことを防止することができるため、情報処理装置10のセキュリティを向上させることができる。
【0057】
なお、情報処理装置10では、セキュリティデバイス20とのコマンド授受のために暗号鍵を用いる形態としたが、これに限らず、この暗号鍵によりHDD13自体が暗号化されている形態としてもよい。この場合、セキュリティデバイス20の制御部21は、記憶領域221に記憶された暗号鍵を用いることで、HDD13に記憶されたファイルイメージを検出することになる。
【0058】
次に、図5を参照して、セキュリティデバイス20が行う暗号鍵のリカバリ動作について説明する。図5は、セキュリティデバイス20が実行する暗号鍵リカバリ処理の手順を示すフローチャートである。なお、本処理の前提として、セキュリティデバイス20は情報処理装置10に接続された状態にあり、情報処理装置10のOS131の起動が完了した状態にあるものとする。
【0059】
まず、制御部21は、情報処理装置10からのコマンドや、図示しない操作ボタン等を介し、暗号鍵のリカバリを行う旨の指示を受け付けると(ステップS41)、認証処理部23の動作を制御し、情報処理装置10の操作者から入力される認証情報の受付を開始させる。
【0060】
認証処理部23は、認証情報の入力を受け付けると(ステップS42)、記憶領域231に記憶された照合用認証情報と比較し(ステップS43)、両認証情報が一致するか否かを判定する(ステップS44)。ここで、認証処理部23が不一致と判定した場合(ステップS44;No)、制御部21は、非正規の操作者が操作していると判断する。そして、制御部21は、上述したエラー処理を実行し(ステップS45)、本処理を終了する。
【0061】
また、ステップS44において、認証処理部23が一致すると判定した場合(ステップS44;Yes)、制御部21は、正規操作者が操作していると判断し、ステップS46以降の処理をTPM22と協働して実行する。
【0062】
ステップS46において、制御部21は、記憶領域221に記憶された暗号鍵を用いることで、暗号化対象とされた所定のデータを復号する(ステップS46)。次いで、制御部21は、外部メモリMに記憶された暗号鍵を読み出し、記憶領域221に記憶(上書き)することで、暗号鍵のリカバリを行う(ステップS47)。
【0063】
続いて、制御部21は、記憶領域221に記憶した新たな暗号鍵を用いることで、暗号化対象とされた所定のデータを暗号化する(ステップS48)。そして、制御部21は、記憶領域221に記憶した新たな暗号鍵を情報処理装置10に送信することで、情報処理装置10に保持させた後(ステップS49)、本処理を終了する。
【0064】
このように、セキュリティデバイス20では、暗号鍵のリカバリに際し、情報処理装置10の操作者が正規操作者か否かを判定し、正規操作者と場合に暗号鍵のリカバリ動作を許可するため、非正規操作者に暗号鍵が書き換えられてしまうことを防止することができる。また、リカバリ前の暗号鍵で暗号化されていたデータを該暗号鍵で復号化した後、リカバリ後の暗号鍵で再度暗号化を行うため、該データを引き続き利用することができる。
【0065】
次に、図6を参照して、セキュリティデバイス20を情報処理装置10から取り外す際の動作について説明する。図6は、セキュリティデバイス20の取り外し時における、情報処理システム1の動作を示すフローチャートである。なお、本処理の前提として、セキュリティデバイス20は情報処理装置10に接続された状態にあり、情報処理装置10のOS131の起動が完了した状態にあるものとする。
【0066】
まず、情報処理装置10において、情報処理装置10の操作者から図示しないキーボードやポインティングデバイスを介し、セキュリティデバイス20の取り外しが指示されると、制御部11はこの指示内容を受け付ける(ステップS51)。次いで、制御部11は、セキュリティデバイス20の取り外しを指示するコマンドを、セキュリティデバイス20との間で共有された暗号鍵を用いて暗号化すると(ステップS52)、USBインタフェース14を介してセキュリティデバイス20に送信する(ステップS53)。
【0067】
一方、セキュリティデバイス20では、情報処理装置10から暗号化されたコマンドを受信すると、制御部21はTPM22と協働し、このコマンドを記憶領域221に記憶された暗号鍵を用いて復号する(ステップS61)。続いて、制御部21は、復号したコマンドの指示内容に従い、自己の装置の取り外しが指示されたことを認識すると、認証処理部23の動作を制御し、情報処理装置10の操作者から入力される認証情報の受付を開始させる。
【0068】
認証処理部23は、認証情報の入力を受け付けると(ステップS62)、記憶領域231に記憶された照合用認証情報と比較し(ステップS63)、両認証情報が一致するか否かを判定する(ステップS64)。ここで、認証処理部23が不一致と判定した場合(ステップS64;No)、制御部21は、非正規の操作者が操作していると判断する。そして、制御部21は、情報処理装置10の使用を制限するため、上述したエラー処理を実行し(ステップS65)、本処理を終了する。
【0069】
また、ステップS64において、認証処理部23が一致すると判定した場合(ステップS64;Yes)、制御部21は、正規操作者から正規の操作手順で取り外しが指示されたと判断し、正規操作フラグを“1”に設定することで、セキュリティデバイス20の取り外しが正規の操作で行われたことを記録する(ステップS66)。そして、制御部21は、セキュリティデバイス20の各部を制御し、自己の装置を取り外し可能な状態に移行させると(ステップS67)、本処理を終了する。
【0070】
このように、セキュリティデバイス20では、正規操作フラグを用いることで、情報処理装置10からの前回の取り外しが正規の操作で行われたか否かを識別する。例えば、セキュリティデバイス20がいきなり取り外された場合や、非正規操作者がセキュリティデバイス20の取り外しを試みた場合等、非正規の操作でセキュリティデバイス20の取り外しが行われると、正規操作フラグは“0”のまま保持されることになる。この場合、セキュリティデバイス20は、情報処理装置10への次回接続時に、図2で説明したステップS22の判定結果によりステップS36のエラー処理を実行し、情報処理装置10の起動を制限する。これにより、セキュリティデバイス20が不用意に取り外されてしまうことを防止することができる。
【0071】
なお、情報処理装置10側においても、セキュリティデバイス20の取り外しが行われた場合には、情報処理装置10の終了やロック、暗号鍵の消去等、情報処理装置10を使用することができない状態に移行させることが好ましい。
【0072】
以上のように、本実施形態によれば、セキュリティデバイス20を用いることで、このセキュリティデバイス20が接続された本体装置(情報処理装置10)の真正性を確認し、この確認結果に応じて情報処理装置10の起動を制限することができる。そのため、情報処理装置10本体にセキュリティチップ(TPM)が未実装の場合であっても、セキュリティデバイス20を接続することで、情報処理装置10のトラステッドブートを実現することができる。
【0073】
なお、本実施形態では、セキュリティデバイス20において、制御部21及びTPM22のそれぞれを独立した機能部として説明したが、これに限らず、制御部21がTPM22の機能を一体的に有する形態としてもよい。
【0074】
また、本実施形態では、制御部21及び認証処理部23の各々が記憶領域を有する形態としたが、これに限らず、制御部21及び認証処理部23の各々が書込/読取可能な記憶媒体をセキュリティデバイス20内に設ける形態としてもよい。
【0075】
また、本実施形態では、外部メモリ接続部25に接続された外部メモリMに暗号鍵をバックアップする形態としたが、これに限らず、情報処理装置10を制御することで、この情報処理装置10のLANインタフェース15に接続された外部装置30にバックアップする形態としてもよい。
【0076】
また、本実施形態では、外部メモリ接続部25に接続された外部メモリMが保持する暗号鍵を記憶領域221にリカバリする形態としたが、これに限らず、情報処理装置10を制御することで、この情報処理装置10のLANインタフェース15に接続された外部装置30が保持する暗号鍵を記憶領域221にリカバリする形態としてもよい。
【0077】
[第2の実施形態]
次に、第2の実施形態について説明する。上述した第1の実施形態では、情報処理装置10のソフトウェア構成(BIOS12、OS131、アプリケーション132)のハッシュ値と、TPM22の記憶領域221に記憶されたPCR情報との同一性を判定することで、該ソフトウェア構成の真正性を確認することを説明した。本実施形態では、情報処理装置10に記憶されたソフトウェア(プログラム)のバージョンアップを行うのに好適な形態について説明する。なお、第1の実施形態と同様の構成要素については、同一の符号を付与し、その説明を省略する。
【0078】
図7は、第2の実施形態に係る情報処理システム2の構成を模式的に示すブロック図である。同図に示すように、情報処理システム2は、情報処理装置10と、セキュリティデバイス40とを有している。
【0079】
セキュリティデバイス40は、制御部41、TPM22、認証処理部23、USBインタフェース24及び外部メモリ接続部25等を備えている。また、本実施形態では、外部メモリ接続部25に外部メモリMが接続され、この外部メモリMに特定のアプリケーションをバージョンアップさせるためのアップデータM1が記憶されている。なお、アップデータM1には、適用対象となるアプリケーションの名称等を示す固有情報と、適用後のバージョンを示す版情報とが付帯されているものとする。
【0080】
制御部41は、CPU、ROM及びRAM等から構成され、上述した制御部21と同様の機能によりセキュリティデバイス40の各部の動作を統括的に制御する。また、制御部41は、本実施形態に固有の機能として、情報処理装置10に記憶されたアプリケーション132のバージョンアップを行う。
【0081】
具体的に、制御部41は、情報処理装置10のHDD13に記憶されたアプリケーション132の固有情報とバージョンを示す版情報を、自動又は操作者からの指示に応じて取得する。また、制御部41は、アプリケーション132の固有情報及び版情報と、外部メモリMに記憶されたアップデータM1の固有情報及び版情報と比較し、アプリケーション132の固有情報と同一で且つ、版情報がこのアプリケーション132よりも新しいバージョンのアップデータM1が存在するか否かを判定する。この判定の結果、該当するアップデータM1の存在を確認した場合、制御部41は、このアップデータM1とともに、対応するアプリケーション132のバージョンアップを指示するコマンドを情報処理装置10へ送信する。これにより、情報処理装置10の制御部11は、送信されたアップデータM1を用いることで、このアップデータM1に対応するアプリケーション132のバージョンアップを行う。
【0082】
また、制御部41は、アップデータM1によるバージョンアップ後、アプリケーション132のファイルイメージを検出すると、その検出結果をTPM22に出力することでハッシュ値を算出させる。そして、制御部41は、TPM22により算出されたハッシュ値を、バージョンアップ後のアプリケーション132のハッシュ値として、TPM22の記憶領域221に記憶させる。
【0083】
以下、図8を参照して、本実施形態の情報処理システム2の動作について説明する。ここで、図8は、セキュリティデバイス40が実行するソフトウェア更新処理の手順を示すフローチャートである。なお、本処理の前提として、セキュリティデバイス40は情報処理装置10に接続された状態にあり、情報処理装置10のOS131の起動が完了した状態にあるものとする。また、外部メモリ接続部25には、アップデータM1を保持する外部メモリMが接続されているものとする。
【0084】
まず、制御部41は、USBインタフェース24を介し、情報処理装置10のHDD13に記憶されたアプリケーション132の固有情報及び版情報を取得する(ステップS71)。次いで、制御部41は、ステップS71で取得した固有情報及び版情報と、外部メモリMに記憶されたアップデータM1の固有情報及び版情報とを比較する(ステップS72)。
【0085】
ここで、制御部41は、外部メモリMの中に、アプリケーション132の固有情報と同一で且つ、このアプリケーション132よりも新しいバージョンの版情報を有したアップデータM1が存在するか否かを判定する(ステップS73)。ここで、外部メモリMに記憶されたアップデータM1の中に、上記の条件に該当するものが存在しないと判定すると(ステップS73;No)、制御部41は本処理を直ちに終了する。
【0086】
また、ステップS73において、制御部41は、上記の条件に該当するアップデータM1が存在すると判定すると(ステップS73;Yes)、このアップデータM1とともに、このアップデータM1に対応するアプリケーション132のバージョンアップを指示するコマンド(暗号化済み)を、情報処理装置10へ送信する(ステップS74)。なお、ここではコマンドのみ暗号化する形態としたが、アップデータM1も暗号化する形態としてもよい。
【0087】
情報処理装置10では、セキュリティデバイス40からアップデータM1と、バージョンアップを指示するコマンドを受け付けると、制御部11は、RAMに保持した暗号鍵を用いてコマンドを復号する。そして、制御部11は、このコマンドの指示内容に従い、アップデータM1を用いて、このアップデータM1に対応するアプリケーション132のバージョンアップを行う。
【0088】
次いで、制御部41は、USBインタフェース24を介して、情報処理装置10のHDD13に記憶されたアプリケーション132のファイルイメージを検出すると(ステップS75)、検出結果をTPM22に出力することでハッシュ値を算出させる(ステップS76)。そして、制御部21は、ステップS76で算出されたハッシュ値を、アップデート後のアプリケーション132のハッシュ値として、TPM22の記憶領域221に記憶し(ステップS77)、本処理を終了する。
【0089】
また、ステップS73において、外部メモリMに記憶されたアップデータM1の中に、上記の条件に該当するものが存在しないと判定すると(ステップS73;No)、制御部41は、本処理を直ちに終了する。
【0090】
このように、本実施形態のセキュリティデバイス40によれば、情報処理装置10のアプリケーション132を容易にバージョンアップすることができるため、利便性を向上させることができる。
【0091】
なお、本実施形態では、情報処理装置10が具備するソフトウェア構成のうち、アプリケーション132のみをバージョンアップの対象としたが、これに限らず、BIOS12やOS131をバージョンアップさせるアップデータM1を用いることで、このBIOS12やOS131をバージョンアップさせる形態としてもよい。
【0092】
また、本実施形態では、外部メモリMにアップデータM1を保持する形態としたが、これに限らない。例えば、情報処理装置10のHDD13や、USBインタフェース14に接続された他のUSBメモリ等の他の記憶装置、LANインタフェース15に接続された記憶装置(例えば、外部装置30)にアップデータM1が保持されている形態としてもよい。この場合、セキュリティデバイス40の制御部41は、USBインタフェース24を介し、情報処理装置10に接続された記憶装置からアップデータM1を用いて、各種プログラムのバージョンアップを行うよう制御するものとする。
【0093】
[第3の実施形態]
次に、第3の実施形態について説明する。上述した第2の実施形態では、アップデータM1を用いてアプリケーション132をバージョンアップすることで、最新バージョンのアプリケーション132を実行可能とする形態を説明した。本実施形態では、バージョンアップ後のアプリケーション132に相当する最新バージョンのアプリケーション(以下、最新アプリケーションという)を別途用意し、この最新アプリケーションを実行させる形態について説明する。なお、第1の実施形態と同様の構成要素については、同一の符号を付与し、その説明を省略する。
【0094】
図9は、第3の実施形態に係る情報処理システム3の構成を模式的に示すブロック図である。同図に示すように、情報処理システム3は、情報処理装置10と、セキュリティデバイス50とを有している。
【0095】
セキュリティデバイス50は、制御部51、TPM22、認証処理部23、USBインタフェース24及び外部メモリ接続部25等を備えている。また、本実施形態では、外部メモリ接続部25に外部メモリMが接続され、この外部メモリMに最新アプリケーションM2が記憶されている。なお、最新アプリケーションM2には、その固有情報と版情報とが付帯されているものとする。
【0096】
制御部51は、CPU、ROM及びRAM等から構成され、上述した制御部21と同様の機能によりセキュリティデバイス50の各部の動作を統括的に制御する。また、制御部51は、本実施形態に固有の機能として、情報処理装置10に記憶されたアプリケーション132の版情報が、アプリケーション132の版情報が最新アプリケーションM2よりも古い場合、この最新アプリケーションM2を起動するよう情報処理装置10を制御する。
【0097】
具体的に、制御部51は、情報処理装置10の制御部11が、HDD13に記憶されたアプリケーション132を起動させる際に、このアプリケーション132の固有情報及び版情報を取得し、外部メモリMに記憶された最新アプリケーションM2の固有情報及び版情報と比較する。ここで、制御部51は、アプリケーション132の固有情報と同一で且つ、このアプリケーション132よりも版情報が新しいバージョンの最新アプリケーションM2が存在するか否かを判定する。この判定の結果、該当する最新アプリケーションM2が存在した場合、制御部51は、この最新アプリケーションM2の実行を指示するコマンドを情報処理装置10へ送信することで、アプリケーション132の代わりに、外部メモリMに記憶された最新アプリケーションM2の実行を、情報処理装置10の制御部11に指示する。
【0098】
以下、図10を参照して、情報処理システム3の動作について説明する。ここで、図10は、セキュリティデバイス50が実行する起動アプリケーション制御処理の手順を示すフローチャートある。なお、本処理の前提として、セキュリティデバイス50は情報処理装置10に接続された状態にあり、情報処理装置10のOS131の起動が完了した状態にあるものとする。また、情報処理装置10では、制御部11により、アプリケーション132の起動準備が行われた状態にあるものとする。
【0099】
まず、制御部51は、USBインタフェース24を介し、起動の対象とされたアプリケーション132の固有情報及び版情報を取得する(ステップS81)。次いで、制御部51は、ステップS81で取得した固有情報及び版情報と、外部メモリMに記憶された最新アプリケーションM2の固有情報及び版情報とを比較し(ステップS82)、アプリケーション132の固有情報と同一で、且つ、このアプリケーション132の版情報よりも新しいバージョンの最新アプリケーションM2が存在するか否かを判定する(ステップS83)。
【0100】
ここで、該当する最新アプリケーションM2が存在すると判定した場合(ステップS83;Yes)、制御部51は、該当する最新アプリケーションM2の起動を指示するコマンドを記憶領域221に記憶された暗号鍵で暗号化すると、このコマンドを情報処理装置10へ送信し(ステップS84)、本処理を終了する。この場合、情報処理装置10の制御部11は、ステップS84で送信されたコマンドの指示内容に従い、セキュリティデバイス50の外部メモリMに記憶された最新アプリケーションM2を実行する。
【0101】
また、ステップS83において、条件に該当する最新アプリケーションM2が存在しないと判定した場合(ステップS83;No)、制御部51は、HDD13に記憶されたアプリケーション132の実行(起動)を指示するコマンドを記憶領域221に記憶された暗号鍵で暗号化すると、このコマンドを情報処理装置10へ送信し(ステップS85)、本処理を終了する。この場合、情報処理装置10の制御部11は、ステップS85で送信されたコマンドの指示内容に従い、HDD13に記憶されたアプリケーション132を実行する。
【0102】
以上のように、本実施形態のセキュリティデバイス50によれば、情報処理装置10のHDD13に記憶されたアプリケーション132のバージョンが最新のものでない場合に、このアプリケーション132の真正性を確認した上で当該アプリケーション132の最新アプリケーションM2を情報処理装置10に実行させる。これにより、情報処理装置10のソフトウェア構成(アプリケーション132)を変えずに、最新のアプリケーションを実行させることができるため、情報処理装置10のソフトウェア構成を変更できない場合や、アプリケーションのバージョンを一時的に変更する場合等の利便性を向上させることができる。
【0103】
以上、本発明の実施形態について説明したが、本発明はこれに限定されるものではなく、本発明の主旨を逸脱しない範囲での種々の変更、置換、追加等が可能である。
【符号の説明】
【0104】
1 情報処理システム
10 情報処理装置
11 制御部
12 BIOS
13 HDD
131 OS
132 アプリケーション
14 USBインタフェース
15 LANインタフェース
20 セキュリティデバイス
21 制御部
211 記憶領域
22 TPM
221 記憶領域
23 認証処理部
231 記憶領域
24 USBインタフェース
25 外部メモリ接続部
30 外部装置
40 セキュリティデバイス
41 制御部
50 セキュリティデバイス
51 制御部
M 外部メモリ
M1 アップデータ
M2 最新アプリケーション
N ネットワーク
【先行技術文献】
【特許文献】
【0105】
【特許文献1】特許第3777170号

【特許請求の範囲】
【請求項1】
アプリケーションの動作環境を提供するプラットフォームを有した本体装置と着脱自在に接続される接続手段と、
前記接続手段に接続された前記本体装置の起動時に、前記プラットフォームから当該プラットフォームを一意に特定可能なハッシュ値を算出する算出手段と、
信頼性が確保された前記プラットフォームのハッシュ値を記憶する記憶手段と、
前記算出手段が算出したハッシュ値と前記記憶手段に記憶されたハッシュ値とを比較し、両ハッシュ値が一致するか否かを判定する真正性判定手段と、
前記真正性判定手段が不一致と判定した場合に、前記本体装置の使用を制限する制御手段と、
を備えたことを特徴とするセキュリティデバイス。
【請求項2】
前記本体装置を操作する操作者の認証情報と、予め定められた正規操作者の認証情報とを比較し、前記操作者が前記正規操作者か否かを判定する認証手段を更に備え、
前記制御手段は、前記認証手段が非正規操作者と判定した場合に、前記本体装置の起動を制限することを特徴とする請求項1に記載のセキュリティデバイス。
【請求項3】
前記算出手段が算出したハッシュ値を、信頼性が確保されたハッシュ値として前記記憶手段に登録する登録手段とを更に備え、
前記登録手段は、前記認証手段が正規操作者と判定した場合に、前記登録手段の動作を許可することを特徴とする請求項2に記載のセキュリティデバイス。
【請求項4】
所定のデータを暗号化/復号化するための暗号鍵を生成する暗号鍵生成手段と、
前記暗号鍵生成手段が生成した暗号鍵を前記本体装置に保持させる暗号鍵共有手段と、
を更に備え、
前記制御手段は、前記真正性判定手段が一致と判定した場合に、前記暗号鍵共有手段の動作を許可することを特徴とする請求項2又は3に記載のセキュリティデバイス。
【請求項5】
前記暗号鍵生成手段が生成した暗号鍵を外部記憶装置にバックアップするバックアップ手段を更に備え、
前記制御手段は、前記認証手段が正規操作者と判定した場合に、前記バックアップ手段の動作を許可することを特徴とする請求項4に記載のセキュリティデバイス。
【請求項6】
前記外部記憶装置にバックアップされた暗号鍵を、当該暗号鍵がバックアップされる直前の状態にリカバリするリカバリ手段を更に備え、
前記制御手段は、前記認証手段が正規操作者と判定した場合に、前記リカバリ手段の動作を許可することを特徴とする請求項5に記載のセキュリティデバイス。
【請求項7】
前記記憶手段は、前記暗号鍵生成手段が生成した暗号鍵を記憶し、
前記リカバリ手段は、前記記憶手段に記憶された暗号鍵を用いて前記所定のデータを復号し、前記外部記憶装置にバックアップされた暗号鍵を前記記憶手段に上書きした後、この暗号鍵を用いて前記所定のデータの暗号化を行い、
前記暗号鍵共有手段は、前記記憶手段に記憶された暗号鍵を前記本体装置に保持させることを特徴とする請求項6に記載のセキュリティデバイス。
【請求項8】
前記本体装置の起動時に、当該本体装置からの前回の取り外しが予め定められた正規の操作方法で行われたか否かを判定する取外判定手段を更に備え、
前記制御手段は、前記取外判定手段が非正規の操作方法で行われたと判定した場合に、前記本体装置の使用を制限することを特徴とする請求項1〜7の何れか一項に記載のセキュリティデバイス。
【請求項9】
前記プラットフォームは、前記本体装置のハードウェア構成と、前記アプリケーションを含むソフトウェア構成とを含むことを特徴とする請求項1〜8の何れか一項に記載のセキュリティデバイス。
【請求項10】
前記ソフトウェア構成に含まれた特定のプログラムのバージョンアップを行うバージョンアップ手段を更に備え、
前記算出手段は、前記バージョンアップ手段によるバージョンアップ直後のプログラムのハッシュ値を算出し、
前記登録手段は、前記算出手段が算出した前記バージョンアップ直後のプログラムのハッシュ値を、前記記憶手段に登録することを特徴とする請求項9に記載のセキュリティデバイス。
【請求項11】
前記本体装置のソフトウェア構成に含まれた特定のプログラムのバージョンを検出するバージョン検出手段と、
前記バージョン検出手段が検出したバージョンよりも新しい、最新のバージョンのプログラムが外部記憶装置に存在するか否かを判定するバージョン判定手段と、
前記バージョン判定手段が最新のバージョンのプログラムが存在すると判定した場合に、当該プログラムの起動を前記本体装置に指示する起動アプリケーション制御手段と、
を更に備え、
前記制御手段は、前記真正性判定手段が全てのハッシュ値の組について一致と判定した場合に、前記起動アプリケーション制御手段の動作を許可することを特徴とする請求項9に記載のセキュリティデバイス。
【請求項12】
アプリケーションの動作環境を提供するプラットフォームを有した情報処理装置であって、
請求項1〜11の何れか一項に記載のセキュリティデバイスが着脱自在に接続される接続手段と、
自己の装置の起動時に、前記接続手段に接続された前記セキュリティデバイスの制御に従い、前記アプリケーションの動作環境を実現する起動制御手段と、
を備えたことを特徴とする情報処理装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


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