説明

プラットフォーム完全性検証システムおよび方法

【課題】特定なセキュリティチップをコンピュータ基板上に設けることなく、クライアントのプラットフォーム完全性を検証できるシステムを提供する。
【解決手段】クライアント10は、USBメモリ30に記憶されたシンクライアントOS310のイメージを読取り起動させると、シンクライアントOS310のハッシュ値を含む構成証明メッセージを生成し、構成証明メッセージとそのMACをSIM20に送信する。SIM20は、MACを検証した後、構成証明メッセージのデジタル署名を生成し、生成したデジタル署名をクライアント10に返信する。クライアント10は、SIM20が生成したデジタル署名と構成証明メッセージを認証サーバ40に送信し、認証サーバ40は、デジタル署名と構成証明メッセージの検証に成功したときのみ、クライアント10に対し、LAN62内のPC55へのアクセスを許可する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、シンクライアントとして利用されるクライアントのプラットフォームの完全性を検証するシステムおよび方法に関する。
【背景技術】
【0002】
近年、企業などにおいて、クライアントに必要最小限の機能のみを持たせ、機密情報などの情報資源の管理や、アプリケーションの処理などの機能をサーバに集約させたシンクライアントシステム(Thin Client System)の導入が増えてきている。
【0003】
シンクライアントシステムの導入の背景には、(1)日本版SOX法に対応すべく内部統制の強化、(2)クライアントからの個人情報流出防止などを目的としたセキュリティの強化、(3)クライアントの運用管理コスト(パッチ情報、ライセンス管理など)の削減、(4)テレワーク(Telework)の実現等などがある。
【0004】
とりわけ、在宅勤務が可能となるテレワークは、地域活性化や少子高齢化問題などの解決手段として期待されており、テレワークを実現するためには、企業内と同じセキュアな環境で、社内に設置されたコンピュータやサーバにリモートアクセスを行えることが必要となる。
【0005】
シンクライアントシステムを実現するために、シンクライアントシステム専用のコンピュータを導入してもよいが、シンクライアントシステム専用のコンピュータの導入は、コスト・利便性両方の面から望ましとは言えない。
【0006】
そこで、特許文献1にも記述されているように、USBメモリ、CD−ROMなどの携帯可能なデバイスや、ネットワークストレージにシンクライアントシステム専用のOSオペレーティングシステム(OS: Operating System)を記憶させて、汎用のコンピュータをシンクライアントシステムのクライアントとして利用するときに、シンクライアントシステム専用のOSを汎用のコンピュータ上でブートさせる手法が用いられる。
【0007】
しかし、故意的或いは偶発的にしても、USBメモリなどに記憶されたシンクライアントシステム専用のOSが改竄されてしまうと、個人データなどの機密データが漏洩する可能性があるため、クライアントのメモリに展開されるシンクライアントシステム専用のOSの改竄を発見するプラットフォーム完全性検証が必要とされる。
【0008】
【特許文献1】特開2007−299136号公報
【発明の開示】
【発明が解決しようとする課題】
【0009】
シンクライアントシステム専用のOSに係らず、一般的なソフトウェアの改竄の脅威に対して、コンピュータ業界団体の一つであるTCG(TCG: Trusted Computing Group)では、TPM(TPM: TrustedPlatform Module)と呼ばれるセキュリティチップをコンピュータのコンピュータ基板上に設け、ソフトウェアの信頼性を高める業界標準仕様の策定を進めている。
【0010】
しかし、現状では、この提案に沿ってTPMを実装したコンピュータは少なく、現状では、TCGが提案しているプラットフォーム完全性検証を行うのは難しい。
【0011】
そこで、上述した問題を鑑みて、本発明は、TCGが策定しているTPMのような特定なセキュリティチップをコンピュータ基板上に設けることなくても、シンクライアントシステムで利用されるクライアントのプラットフォーム完全性を検証できるシステムおよび方法を提供することを目的とする。
【課題を解決するための手段】
【0012】
上述した課題を解決する第1の発明は、シンクライアントに利用されるクライアントと、クライアントに装着される携帯型記憶デバイスと、物理的なデバイスであるセキュリティトークンと、インターネットワークを介して前記クライアントと接続された認証サーバとから、少なくとも構成されたプラットフォーム完全性検証システムであって、前記携帯型記憶デバイスは、前記クライアントをシンクライアントとして動作させるためのオペレーティングシステム(OS: Operating System)のイメージを記憶し、前記クライアントは、マウントした前記携帯型記憶デバイスに記憶された前記OSのイメージを読取り、前記OSを前記クライアント上で起動させるブート手段と、前記クライアントのメモリに展開された前記OSのイメージから演算したハッシュ値を含む構成証明メッセージを生成し、前記構成証明メッセージから演算した認証コードと共に前記構成証明メッセージを前記セキュリティトークンに送信することで、前記構成証明メッセージのデジタル署名の生成を前記セキュリティトークンに要求し、前記セキュリティトークンから前記構成証明メッセージのデジタル署名を受信すると、前記構成証明メッセージのデジタル署名と前記構成証明メッセージを前記認証サーバに送信する計測手段を備え、前記セキュリティトークンは、前記構成証明メッセージのデジタル署名の生成に利用する第1のデジタル署名鍵を記憶する手段と、前記計測ソフトウェアから送信された前記構成証明メッセージを参照することで前記認証コードを検証し、前記認証コードの検証に成功すると、前記構成証明メッセージのデジタル署名を生成し、生成した前記構成証明メッセージのデジタル署名を返信する手段とを備え、前記認証サーバは、前記構成証明メッセージのデジタル署名の検証に利用する第2のデジタル署名鍵と前記OSのハッシュ値の期待値を記憶する手段と、前記第2のデジタル署名鍵を利用して、前記計測手段から送信された前記構成証明メッセージのデジタル署名を検証するデジタル署名検証手段と、前記構成証明メッセージのデジタル署名の検証に成功したときに、前記OSのハッシュ値の期待値と受信した前記構成証明メッセージに含まれる前記ハッシュ値が一致しているか確認することで、前記構成証明メッセージを検証するメッセージ検証手段を備え、前記携帯型記憶デバイスに記憶された前記OSには、前記OS上で動作し、前記計測手段として前記クライアントを機能させるためのコンピュータプログラムである計測ソフトウェアが含まれることを特徴とするプラットフォーム完全性検証システムである。
【0013】
上述した第1の発明によれば、前記第1のデジタル署名鍵を記憶した前記セキュリティトークンがプラットフォーム完全性検証に利用されるため、前記クライアントのコンピュータ基板上にTPMなどの特別なセキュリティチップを設ける必要はなくなる。
【0014】
なお、本発明において、前記セキュリティトークンとは、社員証などで普及しているICカード、SIM(Subscriber Identity Module)、UIM(Universal Subscriber Identity Module)などの、データを秘匿に記憶でき、更に、演算機能を備えた携帯可能なデバイスを意味し、前記携帯型記憶デバイスは、CD−ROM、DVDまたはUSBメモリなどを意味している。
【0015】
前記認証サーバに備えられた前記メッセージ検証手段が、前記構成証明メッセージのデジタル署名を検証するのは、信頼性のあるユーザが操作している前記クライアントであるか検証するためである。予め信頼性のあるユーザに対してのみ前記セキュリティトークンを配布しておけば、前記構成証明メッセージのデジタル署名を検証することによって、前記クライアントを操作しているユーザをも検証できることになる。
【0016】
なお、前記OSのハッシュ値を演算するために、前記クライアント上で起動する前記計測ソフトウェアの信頼性を、前記セキュリティモジュールは、前記計測ソフトウェアが演算する前記認証コードを用いて検証する。
【0017】
更に、第2の発明は、第1の発明に記載のプラットフォーム完全性検証システムにおいて、前記クライアントに備えられた計測手段は、前記OSのハッシュ値を演算する前に、前記認証サーバに対して第1の乱数の生成を要求し、前記認証サーバから受信した前記第1の乱数と前記OSのハッシュ値を前記構成証明メッセージに含ませ、前記認証サーバは、前記クライアントから前記第1の乱数の生成要求を受けると、前記第1の乱数を生成すると共に、前記第1の乱数を保持し、前記メッセージ検証手段は、前記構成証明メッセージを検証するときに、前記OSのハッシュ値に加え、前記構成証明メッセージに含まれる前記第1の乱数の一致を確認することを特徴とする。
【0018】
上述した第2の発明によれば、前記認証サーバが生成した前記第1の乱数を前記構成証明メッセージに含ませることで、前記構成証明メッセージの内容は、プラットフォーム完全性検証を行うごとに変わるため、前記構成証明メッセージが再利用されることを防止できる。
【0019】
更に、第3の発明は、第2の発明に記載のプラットフォーム完全性検証システムにおいて、前記クライアントに備えられた計測手段は、前記認証サーバに対して第1の乱数の生成を要求するときに、第2の乱数を生成し、生成した前記第2の乱数を前記認証サーバに送信し、前記第1の乱数および前記第2の乱数を前記構成証明メッセージに含ませ、前記認証サーバは、前記クライアントから前記第1の乱数の生成要求を受けたときに受信した前記第2の乱数を保持し、前記メッセージ検証手段は、前記構成証明メッセージを検証するときに、前記OSのハッシュ値および前記第1の乱数に加え、前記第2の乱数の一致を確認することを特徴とする。
【0020】
上述した第3の発明によれば、前記クライアントに備えられた前記計測手段が生成した前記第2の乱数を前記構成証明メッセージに含ませることで、前記クライアントの成りすます行為を防止することができる。
【0021】
更に、第4の発明は、シンクライアントに利用されるクライアントと、前記クライアントに装着される携帯型記憶デバイスと、物理的なデバイスであるセキュリティトークンと、インターネットワークを介して前記クライアントと接続された認証サーバとを、少なくとも利用したプラットフォーム完全性検証方法であって、前記クライアントに前記携帯型記憶デバイスがマウントされたときに、前記クライアントをシンクライアントとして動作させるためのオペレーティングシステム(OS: Operating System)のイメージを前記携帯型記憶デバイスから読み込み、前記OSを前記クライアント上で起動させるステップa、前記クライアントが、前記OSのイメージから演算したハッシュ値を含む構成証明メッセージを生成し、構成証明メッセージから演算した認証コードと共に前記構成証明メッセージを前記セキュリティトークンに送信することで、前記構成証明メッセージのデジタル署名の生成を前記セキュリティトークンに要求するステップb、前記セキュリティトークンが、前記計測ソフトウェアから送信された前記構成証明メッセージの認証コードを検証し、認証コードの検証に成功すると、前記構成証明メッセージのデジタル署名の生成に利用する第1のデジタル署名鍵を利用して、前記構成証明メッセージのデジタル署名を生成し、生成した前記構成証明メッセージのデジタル署名を前記クライアントに返信するステップc、前記クライアントが、前記セキュリティトークンから前記構成証明メッセージのデジタル署名を受信すると、前記セキュリティトークンが生成したデジタル署名と前記構成証明メッセージを前記認証サーバに送信するステップd、
前記認証サーバが、前記構成証明メッセージのデジタル署名の検証に利用する第2のデジタル署名鍵を利用して、前記計測手段から送信された前記構成証明メッセージのデジタル署名を検証し、前記構成証明メッセージのデジタル署名の検証に成功したときに、前記OSのハッシュ値の期待値と受信した前記構成証明メッセージに含まれる前記ハッシュ値が一致しているか確認することで、前記構成証明メッセージを検証するステップe、を含み、前記ステップaで起動する前記OSには、前記OS上で動作し、前記ステップbおよび前記ステップdを前記クライアントに機能させるためのコンピュータプログラムである計測ソフトウェアが含まれ、前記ステップaにおいて、前記クライアントは、前記OSを起動させた後に、前記計測ソフトウェアを起動させるステップであることを特徴とするプラットフォーム完全性検証方法である。
【0022】
更に、第5の発明は、第4の発明に記載のプラットフォーム完全性検証方法において、前記ステップbの前に、前記クライアントが、前記ハッシュ値を演算する前に、前記認証サーバに対して第1の乱数の生成を要求し、前記認証サーバが前記第1の乱数を前記クライアントに送信するステップa1が実行され、前記ステップbは、前記クライアントが、前記認証サーバから受信した前記第1の乱数と前記OSのハッシュ値を前記構成証明メッセージに含ませるステップで、前記ステップeは、前記認証サーバが、前記構成証明メッセージを検証するときに、前記OSのハッシュ値に加え、前記第1の乱数の一致を確認するステップであることを特徴とする。
【0023】
更に、第6の発明は、第5の発明に記載のプラットフォーム完全性検証システムにおいて、前記ステップa1は、前記認証サーバに対して第1の乱数の生成を要求するときに、前記クライアントが、第2の乱数を生成し、生成した前記第2の乱数を前記認証サーバに送信するステップで、前記ステップbは、前記クライアントが、前記第1の乱数、前記第2の乱数および前記OSのハッシュ値を前記構成証明メッセージに含ませるステップで、前記ステップeは、前記認証サーバが、前記構成証明メッセージを検証するときに、前記OSのハッシュ値および前記第1の乱数に加え、前記第2の乱数の一致を確認するステップであることを特徴とする。
【0024】
上述した第4の発明から第6の発明によれば、第1の発明から第3の発明と同様の効果が得られる。
【発明の効果】
【0025】
このように、本発明によれば、TCGが策定しているTPMのような特定なセキュリティチップをコンピュータ基板上に設けることなくても、シンクライアントシステムで利用されるクライアントのプラットフォーム完全性を検証できるシステムおよび方法を提供できる。
【発明を実施するための最良の形態】
【0026】
ここから、本実施形態に係るプラットフォーム完全性検証システムおよび方法について、図を参照しながら詳細に説明する。図1は、プラットフォーム完全性検証システムが適用されたシンクライアントシステム1を説明する図である。
【0027】
図1に図示したシンクライアントシステム1は、セキュリティトークンであるSIM20と、SIM20が装着されるSIMリーダ50と、携帯型記憶デバイスであるUSBメモリ30と、SIMリーダ50およびUSBメモリ30が装着されるクライアント10と、DMZ(DMZ: DeMilitarized Zone)を形成するためのファイヤーオール機器51と、DMZ61に設置されるVPN機器52(VPN: Virtual Private Network)と、LAN62(LAN: Local Area Network)内に設置されるRADIUSサーバ53(Radius Server, Radius: Remote Authentication Dial In User Service)と、認証サーバ40(Authenticaion Server)と、ルータ54(Router)と、ルータ54に接続された社内のパーソナルコンピュータ55(PC: Personal Computer)とから構成されている。
【0028】
本実施形態に係るシンクライアントシステム1は、テレワークを実現するために実施されるシステムで、LAN62にアクセスするときにユーザが利用するクライアント10は、自宅に設置されているPCや、持ち運び可能なノート型のPCや、或いは、インターネットカフェに設置されているPCなどの汎用的なPCなどを想定し、シンクライアントオペレーティングシステム(OS: Operating System)が汎用的なPC上で動作することで、シンクライアントシステム1のクライアント10として汎用的なPCは機能する。
【0029】
ユーザがクライアント10を利用してLAN62にアクセスするとき、クライアント10を利用するユーザの認証に加え、クライアント10のプラットフォーム完全性検証を必要とし、本実施形態において、クライアント10のプラットフォーム完全性検証として、シンクライアントOS310が改竄されていないことが検証される。
【0030】
LAN62内に設置されたRADIUSサーバ53は、クライアント10を利用するユーザを認証する機能を担い、RADIUSサーバ53は、VPN機器52を介して、LAN62にアクセスするクライアント10から送信されるユーザ名と認証データ(例えば、ユーザパスワード)を用いて、クライアント10を利用するユーザを認証し、ユーザの認証に成功すると、ユーザの認証に成功したことを示すメッセージをVPN機器52に送信し、VPN52機器は、クライアント10とVPN機器52間をVPNで接続する。
【0031】
ファイヤーウォール機器51で形成されるDMZ61に設置されるVPN機器52は、Ipsec(Ipsec: Security Architecture for Internet Protocol)を利用して、インターネット60を介してLAN62にアクセスするクライアント10と送受信するデータを暗号化することで、VPNを構築するために設置される機器である。
【0032】
図1で図示した機器の中で、プラットフォーム完全性検証システムとして機能するために必要な機器は、シンクライアントとして動作するクライアント10と、携帯型記憶デバイスであるUSBメモリ30と、セキュアトークンであるSIM20と、クライアント10とインターネットを介して接続された認証サーバ40とであって、SIM20は、特許文献2、3等で開示されているような、USBコネクタを備えたSIMリーダ50に装着され利用される。
【特許文献2】特開2004−118771号公報
【特許文献3】特開2004−133843号公報
【0033】
図2は、携帯型記憶デバイスであるUSBメモリ30のブロック図である。USBメモリ30としては、ブートアップ機能が備えられた市販されているUSBメモリ30を用いることができ、USBメモリ30は、USBドライバや、フラッシュメモリを外部記憶装置としてコンピュータに認識させる機能を備えたドライバチップと、データを記憶するためのフラッシュメモリを備えている。
【0034】
本実施形態において、USBメモリ30のフラッシュメモリ301には、クライアント10上で動作するシンクライアントOS310のイメージ(バイトコード)が記憶されている。シンクライアントOS310には、シンクライアントOS310のイメージのハッシュ値を演算する機能を備えたコンピュータプログラムである計測ソフトウェア311が含まれ、更に、計測ソフトウェア311が利用する暗号鍵としてMAC鍵312がハードコードされている。
【0035】
図3は、シンクライアントとして利用されるクライアント10のブロック図で、図3(a)は機能ブロック図、図3(b)はハードウェアブロック図である。
【0036】
図3(a)に図示しているように、プラットフォーム完全性検証をするために、クライアント10には、ブート手段110と計測手段111が備えられている。
【0037】
図3(b)に図示したようにクライアント10は、ハードウェア資源として、中央演算装置(CPU: Central Processing Unit)100と、クライアント10のメインメモリであるRAM101(RAM: Random Access Memory)と、BIOSが実装されるROM102(ROM: Read-Only Memory)と、USB機器と通信するためのUSBインターフェース103と、ネットワーク通信するためのネットワークインターフェース104と、補助記憶装置として大容量のデータ記憶装置105(例えば、ハードディスク)を備え、大容量のデータ記憶装置105には、シンクライアントシステム1のクライアント10として利用されないときにブートされるクライアントOS106、例えば、マイクロソフト社のWINDOWS(登録商標)が記憶されている。
【0038】
クライアント10のブート手段110は、クライアント10にUSBメモリ30が装着されたことを検知すると、USBメモリ30をマウントし、USBメモリ30に記憶されたシンクライアントOS310のイメージをRAM101に展開し、シンクライアントOS310を起動させる手段で、ブート手段110は、クライアント10に記憶されているクライアントOS106の一つの機能や、RAM102に実装されるBIOSの機能などで実現される。
【0039】
クライアント10のブート手段110によって、シンクライアントOS310がクライアント10上で起動すると、シンクライアントOS310に含まれる計測ソフトウェア311が自動的に起動する。計測ソフトウェア311とは、クライアント10を本発明の計測手段111として機能させるためのコンピュータプログラムで、この計測ソフトウェア311が起動することで、クライアント10に計測手段111が具備されることになる。
【0040】
クライアント10の計測手段111は起動すると、シンクライアントOS310のイメージのハッシュ値を演算した後、ハッシュ値を含む構成証明メッセージを生成する。そして、計測手段111は、シンクライアントOS310にハードコートされたMAC鍵312を用いて、構成証明メッセージの認証コードとしてMAC(MAC: Message Authentication Code)を演算し、構成証明メッセージと認証コードをSIM20に送信することで、構成証明メッセージのデジタル署名の生成をSIM20に要求し、構成証明メッセージのデジタル署名がSIM20から送信されると、構成証明メッセージとデジタル署名を認証サーバ40に送信する。
【0041】
なお、計測手段111が構成証明メッセージを生成する前に、認証サーバ40が生成した乱数Rsを構成証明メッセージに含ませておくと、構成証明メッセージが毎回変わることになるため、同じ構成証明メッセージを不正に再利用することを防止できる。また、計測手段111が構成メッセージを生成する前に乱数Rcを生成し、生成した乱数Rcを認証サーバ40に送信し、構成証明メッセージに乱数Rcを含ませることで、認証サーバ40は、構成証明メッセージをクライアント10から受信したときに、間違いなく、プラットホーム完全性を検証するクライアント10から送信された構成証明メッセージであることが判断できるようになる。
【0042】
図4は、セキュリティデバイスであるSIM20のブロック図である。図4に図示したように、SIM20は、ハードウェア資源として、CPU200と、RAM201と、CPUを動作させるコンピュータプログラムが実装されるROM202(ROM: Read-Only Memory)と、ISO/7816規格のUART203(UART: Universal Asynchronous Receiver Transmitter)と、データが記憶される電気的に書換え可能なメモリとしてEEPROM204(EEPROM: Electronically Erasable and Programmable Read Only Memory)を備え、SIM20が装着されるSIMリーダ50とは、ISO/7816規格に準じデータをやりとりする。
【0043】
SIM20のEEPROM204には、クライアント10のプラットフォーム完全性検証で利用される暗号鍵として、MAC鍵212とデジタル署名秘密鍵211が記憶されている。また、SIM20のROM202には、MAC鍵212を用いて、クライアント10の計測手段111が生成する構成証明メッセージのMACを検証し、構成証明メッセージの検証に成功すると、デジタル署名秘密鍵211を用いて、構成証明メッセージのデジタル署名を生成する手段となるデジタル署名コマンド210が実装されている。
【0044】
なお、本実施形態では、デジタル署名コマンド210をROM202に実装しているが、JAVA(登録商標)などのマルチアプリケーションOSをROM202実装し、デジタル署名コマンド210をEEPROM204に実装させてもよい。
【0045】
図5は、インターネット60を介してクライアント10と接続されている認証サーバ40のブロック図である。図5(a)は機能ブロック図、図5(b)はハードウェアブロック図である。
【0046】
図5(a)に図示しているように、プラットフォーム完全性検証をするために、認証サーバ40は、SIM20が生成したデジタル署名を検証するときに利用するデジタル署名公開鍵412を記憶し、構成証明メッセージのデジタル署名を検証するデジタル署名検証手段410と、構成証明メッセージの正当性を検証するメッセージ検証手段411とを備え、それぞれの手段は、認証サーバ40を各手段として機能させるためのコンピュータプログラムで実現される。
【0047】
図5(b)に図示しているように、認証サーバ40は、ハードウェア資源として、CPU400と、認証サーバ40のメインメモリであるRAM401と、BIOSが実装されるROM402と、ネットワーク通信するためのネットワークインターフェース403と、補助記憶装置として大容量のデータ記憶装置404(例えば、ハードディスク)を備え、大容量のデータ記憶装置404には、認証サーバ40上で動作するサーバOS405が記憶され、サーバOS405には、デジタル署名検証手段410およびメッセージ検証手段411として認証サーバ40を機能させるためのコンピュータプログラムと、SIM20に記憶されているデジタル署名秘密鍵211と対になるデジタル署名公開鍵412と、シンクライアントOS310のハッシュ値の期待値413が含まれる。
【0048】
認証サーバ40のデジタル署名検証手段410は、クライアント10から、構成証明メッセージとデジタル署名を受信すると作動し、認証サーバ40のデジタル署名検証手段410は、認証サーバ40のデータ記憶装置404に記憶されているデジタル署名公開鍵412を用いて、定められたデジタル署名検証アルゴリズムに従い、構成証明メッセージのデジタル署名を検証することで、デジタル署名を生成したSIM20の正当性を検証する。
【0049】
認証サーバ40のメッセージ検証手段411は、デジタル署名検証手段410が、構成証明メッセージのデジタル署名の検証に成功すると作動し、メッセージ検証手段411は、シンクライアントOS310のハッシュ値の期待値413を参照し、構成証明メッセージに含まれるハッシュ値が正しい内容であるか確認することで、構成証明メッセージの正当性を検証する。
【0050】
なお、構成証明メッセージが乱数Rcおよび乱数Rsを含んでいるとき、メッセージ検証手段411は、シンクライアントOS310のハッシュ値の期待値413に加え、RAM401に記憶している乱数Rcおよび乱数Rsを参照して、構成証明メッセージの正当性を検証する。
【0051】
ここから、プラットフォームの完全性を検証する手順について説明する。図6は、シンクライアントOS310がクライアント10上で起動する手順を示したフロー図で、図7は、プラットフォームの完全性を検証する手順を示したフロー図である。
【0052】
まず、図6を参照しながら、シンクライアントOS310がクライアント10上で起動する手順について説明する。USBメモリ30がクライアント10に装着されると、クライアント10はUSBインターフェース103を利用して、USBメモリ30とデータのやり取りすることで、クライアント10に装着されたUSBメモリ30をマウントする(S1)。
【0053】
USBメモリ30をマウントすると、クライアント10のブート手段110が作動し、ブート手段110は、シンクライアントOS310のイメージの読出しをUSBメモリ30に要求し(S2)、USBメモリ30は、フラッシュメモリ301に記憶されたシンクライアントOS310のイメージを、クライアント10に送信する(S3)。
【0054】
USBメモリ30からシンクライアントOS310のイメージが送信されると、クライアント10のブート手段110は、USBメモリ30から受信したシンクライアントOS310のイメージをRAM101に展開し、クライアント10上でシンクライアントOS310を起動させる(S4)。
【0055】
シンクライアントOS310がクライアント10上で起動すると、クライアント10を計測手段111として機能させるための計測ソフトウェア311が自動的に起動し、クライアント10に計測手段111が具備され、クライアント10の計測手段111が作動する(S5)。
【0056】
次に、図7を参照しながら、プラットフォーム完全性を検証する手順について説明する。図6で示した手順が実行されて、クライアント10の計測手段111が作動すると、計測手段111は、プラットフォーム完全性検証に利用する乱数Rcを生成し、インターネット60を介して、乱数Rcを含む乱数生成要求メッセージを認証サーバ40に送信する(S10)。なお、クライアント10の計測手段111は、プラットフォーム完全性検証が終了するまで生成した乱数Rcをクライアント10のRAM101に保持しておく。
【0057】
認証サーバ40は、クライアント10から乱数Rcを受信すると、プラットフォーム完全性検証で利用する乱数Rsを生成し、乱数Rsをクライアント10に送信すると共に(S11)、プラットフォーム完全性検証が終了するまで乱数Rcおよび乱数Rsを認証サーバ40のRAM401に保持する。
【0058】
クライアント10の計測手段111は、認証サーバ40から乱数Rsを受信すると、認証サーバ40から送信された乱数Rsをクライアント10のRAM101に保持した後、クライアント10のRAM101に展開されたシンクライアントOS310のイメージすべてから、定めらたアルゴリズム(例えば、SHA1)に従いハッシュ値を演算し(S12)、ハッシュ値、乱数Rcおよび乱数Rsが結合された構成証明メッセージを生成する(S13)。
【0059】
クライアント10の計測手段111は構成証明メッセージを生成すると、シンクライアントOS310にハードコードされているMAC鍵312を用い、定められた手順(例えば、ISO/IEC 9797-1に準じた手順)に従い、構成証明メッセージのMACを演算する。
【0060】
クライアント10の計測手段111は構成証明メッセージのMACを演算すると、構成証明メッセージおよびMACをコマンドメッセージのデータに含ませ、SIMリーダ50を介して、デジタル署名コマンドのコマンドメッセージをSIM20に送信することで、構成証明メッセージのデジタル署名の生成をSIM20に要求する(S14)。
【0061】
SIM20は、構成証明メッセージおよびMACを含んだデジタル署名コマンド210のコマンドメッセージを受信すると、SIM20のデジタル署名コマンド210を作動させ、デジタル署名コマンド210は、SIM20に記憶されているMAC鍵212を用い、クライアント10の計測手段111と同じアルゴリズムで構成証明メッセージからMACを演算し、クライアント10から送信されたMACと自身が演算したMACとが同一であるか検証することで、クライアント10で起動している計測ソフトウェア311を検証する(S15)。
【0062】
SIM20のデジタル署名コマンド210は、構成証明メッセージのMACの検証に成功/失敗で処理を分岐させ(S16)、構成証明メッセージのMACの検証に成功したときは、構成証明メッセージのデジタル署名を生成する処理を実行し、構成証明メッセージのMACの検証に失敗したときは、MACの検証に失敗したことを示すエラーメッセージをクライアント10に返信して、この手順を終了する。
【0063】
SIM20のデジタル署名コマンド210は、構成証明メッセージのMACの検証に成功すると、デジタル署名秘密鍵を用い、定められたデジタル署名生成アルゴリズム(例えば、PKCS#1など)に従い、構成証明メッセージのデジタル署名を生成し、生成したデジタル署名をクライアント10に返信する(S17)。
【0064】
クライアント10の計測手段111は、SIM20から、構成証明メッセージのデジタル署名を受信すると、インターネット60を介して、構成証明メッセージとデジタル署名を認証サーバ40に送信する(S18)。
【0065】
構成証明メッセージとデジタル署名を認証サーバ40が受信すると、認証サーバ40のデジタル署名検証手段410が作動し、デジタル署名検証手段410は、構成証明メッセージとデジタル署名をクライアント10から受信すると、認証サーバ40が記憶しているデジタル署名公開鍵412を用いて、定められたアルゴリズムに従い、構成証明メッセージのデジタル署名を検証することで、デジタル署名を生成したSIM20の正当性を検証する(S19)。
【0066】
認証サーバ40は、構成証明メッセージのデジタル署名の検証に成功すると、認証サーバ40のメッセージ検証手段411が作動し、メッセージ検証手段411は、認証サーバ40のRAM401に保持されているRcおよびRs、並びに、データ記憶装置405に記憶しているハッシュ値の期待値413を参照し、構成証明メッセージに含まれるRc、Rsおよびハッシュ値が正しい値であるか確認することで、構成証明メッセージの正当性を検証する。
【0067】
そして、認証サーバ40のメッセージ検証手段411は、構成証明メッセージの検証に成功/失敗で処理を分岐させ(S20)、構成証明メッセージの検証に成功したときは、認証サーバ40は、クライアント10のLAN62へのアクセスを許可するメッセージをVPN機器52に送信し、クライアント10からLAN62に設置されたPC55へのアクセスを許可し(S21)、この手順を終了し、構成証明メッセージの検証に成功したときは、クライアント10からLAN62に設置されたPC55へのアクセスを許可することなく、この手順を終了する(S20)。
【0068】
プラットフォーム完全性検証にSIM20を利用するのは、プラットフォーム完全性検証に利用するデジタル署名秘密鍵をSIM20に記憶させ、特別なチップ(例えば、TPM)が実装されていない汎用的なコンピュータであっても、プラットフォーム完全性検証を実現可能とするためである。
【0069】
認証サーバ40が構成証明メッセージを検証するときには、上述したようにSIM20の正当性が検証され、SIM20の検証には、公開暗号方式の暗号鍵対で、SIM20に記憶されたデジタル署名秘密鍵211と認証サーバ40に記憶されたデジタル署名公開鍵412とが利用される。
【0070】
デジタル署名秘密鍵211をSIM20に記憶させておけば、プラットフォーム完全性検証に利用されるデジタル署名秘密鍵211が漏洩し悪用されることを防止でき、更に、LAN62へのアクセスが予め許可されたユーザにのみ、デジタル署名秘密鍵211を記憶させたSIM20を配布しておけば、許可されたユーザにのみがリモートアクセスでLAN62にアクセスすることが可能になる。
【0071】
なお、上述した実施形態では、SIM20はSIMリーダ50に装着されて利用されているが、特許文献4で開示されているUSBメモリキーのような、USBメモリ30とSIM20が一体化された携帯型記憶デバイスを用いてもよい。
【特許文献4】特開2006−227679号公報
【図面の簡単な説明】
【0072】
【図1】シンクライアントシステムを説明する図。
【図2】USBメモリのブロック図。
【図3】クライアントのブロック図。
【図4】SIMのブロック図。
【図5】認証サーバのブロック図。
【図6】シンクライアントOSが起動する手順を示したフロー図。
【図7】プラットフォームの完全性を検証する手順を示したフロー図。
【符号の説明】
【0073】
1 シンクライアントシステム
10 クライアント
110 ブート手段
111 計測手段
20 SIM
210 デジタル署名コマンド
211 デジタル署名秘密鍵
212 MAC鍵
30 USBメモリ
310 シンクライアントOS
311 計測ソフトウェア
312 MAC鍵
40 認証サーバ
410 デジタル署名検証手段
411 メッセージ検証手段
412 デジタル署名公開鍵
413 ハッシュ値の期待値


【特許請求の範囲】
【請求項1】
シンクライアントに利用されるクライアントと、クライアントに装着される携帯型記憶デバイスと、物理的なデバイスであるセキュリティトークンと、インターネットワークを介して前記クライアントと接続された認証サーバとから、少なくとも構成されたプラットフォーム完全性検証システムであって、前記携帯型記憶デバイスは、前記クライアントをシンクライアントとして動作させるためのオペレーティングシステム(OS: Operating System)のイメージを記憶し、前記クライアントは、マウントした前記携帯型記憶デバイスに記憶された前記OSのイメージを読取り、前記OSを前記クライアント上で起動させるブート手段と、前記クライアントのメモリに展開された前記OSのイメージから演算したハッシュ値を含む構成証明メッセージを生成し、前記構成証明メッセージから演算した認証コードと共に前記構成証明メッセージを前記セキュリティトークンに送信することで、前記構成証明メッセージのデジタル署名の生成を前記セキュリティトークンに要求し、前記セキュリティトークンから前記構成証明メッセージのデジタル署名を受信すると、前記構成証明メッセージのデジタル署名と前記構成証明メッセージを前記認証サーバに送信する計測手段を備え、前記セキュリティトークンは、前記構成証明メッセージのデジタル署名の生成に利用する第1のデジタル署名鍵を記憶する手段と、前記計測手段から送信された前記構成証明メッセージを参照することで前記認証コードを検証し、前記認証コードの検証に成功すると、前記構成証明メッセージのデジタル署名を生成し、生成した前記構成証明メッセージのデジタル署名を返信する手段とを備え、前記認証サーバは、前記構成証明メッセージのデジタル署名の検証に利用する第2のデジタル署名鍵と前記OSのハッシュ値の期待値を記憶する手段と、前記第2のデジタル署名鍵を利用して、前記計測手段から送信された前記構成証明メッセージのデジタル署名を検証するデジタル署名検証手段と、前記構成証明メッセージのデジタル署名の検証に成功したときに、前記OSのハッシュ値の期待値と受信した前記構成証明メッセージに含まれる前記ハッシュ値が一致しているか確認することで、前記構成証明メッセージを検証するメッセージ検証手段を備え、前記携帯型記憶デバイスに記憶された前記OSには、前記OS上で動作し、前記計測手段として前記クライアントを機能させるためのコンピュータプログラムである計測ソフトウェアが含まれていることを特徴とするプラットフォーム完全性検証システム。
【請求項2】
請求項1に記載のプラットフォーム完全性検証システムにおいて、前記クライアントに備えられた計測手段は、前記OSのハッシュ値を演算する前に、前記認証サーバに対して第1の乱数の生成を要求し、前記認証サーバから受信した前記第1の乱数と前記OSのハッシュ値を前記構成証明メッセージに含ませ、前記認証サーバは、前記クライアントから前記第1の乱数の生成要求を受けると、前記第1の乱数を生成すると共に、前記第1の乱数を保持し、前記メッセージ検証手段は、前記構成証明メッセージを検証するときに、前記OSのハッシュ値に加え、前記構成証明メッセージに含まれる前記第1の乱数の一致を確認することを特徴とするプラットフォーム完全性検証システム。
【請求項3】
請求項2に記載のプラットフォーム完全性検証システムにおいて、前記クライアントに備えられた計測手段は、前記認証サーバに対して第1の乱数の生成を要求するときに、第2の乱数を生成し、生成した前記第2の乱数を前記認証サーバに送信し、前記第1の乱数および前記第2の乱数を前記構成証明メッセージに含ませ、前記認証サーバは、前記クライアントから前記第1の乱数の生成要求を受けたときに受信した前記第2の乱数を保持し、前記メッセージ検証手段は、前記構成証明メッセージを検証するときに、前記OSのハッシュ値および前記第1の乱数に加え、前記第2の乱数の一致を確認することを特徴とするプラットフォーム完全性検証システム。
【請求項4】
シンクライアントに利用されるクライアントと、前記クライアントに装着される携帯型記憶デバイスと、物理的なデバイスであるセキュリティトークンと、インターネットワークを介して前記クライアントと接続された認証サーバとを、少なくとも利用したプラットフォーム完全性検証方法であって、前記クライアントに前記携帯型記憶デバイスがマウントされたときに、前記クライアントをシンクライアントとして動作させるためのオペレーティングシステム(OS: Operating System)のイメージを前記携帯型記憶デバイスから読み込み、前記OSを前記クライアント上で起動させるステップa、前記クライアントが、前記OSのイメージから演算したハッシュ値を含む構成証明メッセージを生成し、構成証明メッセージから演算した認証コードと共に前記構成証明メッセージを前記セキュリティトークンに送信することで、前記構成証明メッセージのデジタル署名の生成を前記セキュリティトークンに要求するステップb、前記セキュリティトークンが、前記計測ソフトウェアから送信された前記構成証明メッセージの認証コードを検証し、認証コードの検証に成功すると、前記構成証明メッセージのデジタル署名の生成に利用する第1のデジタル署名鍵を利用して、前記構成証明メッセージのデジタル署名を生成し、生成した前記構成証明メッセージのデジタル署名を前記クライアントに返信するステップc、前記クライアントが、前記セキュリティトークンから前記構成証明メッセージのデジタル署名を受信すると、前記セキュリティトークンが生成したデジタル署名と前記構成証明メッセージを前記認証サーバに送信するステップd、前記認証サーバが、前記構成証明メッセージのデジタル署名の検証に利用する第2のデジタル署名鍵を利用して、前記計測手段から送信された前記構成証明メッセージのデジタル署名を検証し、前記構成証明メッセージのデジタル署名の検証に成功したときに、前記OSのハッシュ値の期待値と受信した前記構成証明メッセージに含まれる前記ハッシュ値が一致しているか確認することで、前記構成証明メッセージを検証するステップe、を含み、前記ステップaで起動する前記OSには、前記OS上で動作し、前記ステップbおよび前記ステップdを前記クライアントに機能させるためのコンピュータプログラムである計測ソフトウェアが含まれ、前記ステップaにおいて、前記クライアントは、前記OSを起動させた後に、前記計測ソフトウェアを起動させるステップであることを特徴とするプラットフォーム完全性検証方法。
【請求項5】
請求項4に記載のプラットフォーム完全性検証方法において、前記ステップbの前に、前記クライアントが、前記ハッシュ値を演算する前に、前記認証サーバに対して第1の乱数の生成を要求し、前記認証サーバが前記第1の乱数を前記クライアントに送信するステップa1が実行され、前記ステップbは、前記クライアントが、前記認証サーバから受信した前記第1の乱数と前記OSのハッシュ値を前記構成証明メッセージに含ませるステップで、前記ステップeは、前記認証サーバが、前記構成証明メッセージを検証するときに、前記OSのハッシュ値に加え、前記第1の乱数の一致を確認するステップであることを特徴とするプラットフォーム完全性検証方法。
【請求項6】
請求項5に記載のプラットフォーム完全性検証システムにおいて、前記ステップa1は、前記認証サーバに対して第1の乱数の生成を要求するときに、前記クライアントが、第2の乱数を生成し、生成した前記第2の乱数を前記認証サーバに送信するステップで、前記ステップbは、前記クライアントが、前記第1の乱数、前記第2の乱数および前記OSのハッシュ値を前記構成証明メッセージに含ませるステップで、前記ステップeは、前記認証サーバが、前記構成証明メッセージを検証するときに、前記OSのハッシュ値および前記第1の乱数に加え、前記第2の乱数の一致を確認するステップであることを特徴とするプラットフォーム完全性検証方法。


【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2009−175923(P2009−175923A)
【公開日】平成21年8月6日(2009.8.6)
【国際特許分類】
【出願番号】特願2008−12402(P2008−12402)
【出願日】平成20年1月23日(2008.1.23)
【出願人】(000002897)大日本印刷株式会社 (14,506)
【Fターム(参考)】