説明

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

【課題】プラットフォーム完全性検証に要する時間を短縮できるシステムを提供する。
【解決手段】プラットフォーム完全検証システム1で利用されるUSBトークン10に記憶されるシンクライアントOSは,プラットフォーム完全性検証に必要な機能のみを備えている。プラットフォーム完全性検証に成功すると,完全性検証サーバ12からコンピュータ1に,シンクライアントサーバ13或いはシンクライアントサーバ14を利用するために必要な追加プログラム(例えば,リモートアクセスクライアント)が送信され,コンピュータ1上に展開されているシンクライアントOSに該追加プログラムが適用される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、シンクライアント端末として利用されるコンピュータのプラットフォーム完全性を検証するための技術に関する。
【背景技術】
【0002】
近年、企業などにおいて、ネットワーク通信機能など必要最小限の機能のみを持たせたシンクライアント端末と、機密情報などの情報資源の管理や、アプリケーションの処理などの機能を集約させたシンクライアントサーバとから構成されるシンクライアントシステム(Thin Client System)を導入するケースが増えている。
【0003】
企業がシンクライアントシステムを導入する背景には、(1)日本版SOX法への対応を目的とした内部統制の強化、(2)個人情報流出防止などを目的としたセキュリティの強化、(3)システムの運用管理コスト(パッチ情報、ライセンス管理など)の削減、(4)テレワーク(Telework)の実現等などがある。
【0004】
とりわけ、在宅勤務が可能となるテレワークは、地域活性化や少子高齢化問題などの解決手段として期待されており、テレワークを実現するためには、企業内と同じセキュアな環境で、企業内のLAN(Local Area Network)に設置されたシンクライアントサーバにリモートアクセスを行えることが必要となる。
【0005】
シンクライアントシステムを実現するために、シンクライアント端末として専用に機能するコンピュータを導入してもよいが、該コンピュータの導入は、コスト・利便性両方の面から望ましとは言えない。
【0006】
そこで、特許文献1にも記述されているように、シンクライアント端末として機能させるオペレーティングシステム(以下,「シンクライアントOS」と記す。OSは「Operating System」の略。)を,USBメモリ、CD−ROMなどの携帯型記憶デバイスに記憶させ、汎用のコンピュータをシンクライアント端末として利用するときに、シンクライアントOSを汎用のコンピュータ上で起動させる手法が用いられる。
【0007】
しかし、故意的或いは偶発的にしても、USBメモリなどの携帯型記憶デバイスに記憶されたシンクライアントOSが改竄されてしまうと、個人データなどの機密データが漏洩してしまう可能性があるため、汎用コンピュータのメモリに展開されるシンクライアントOSの改竄を発見するプラットフォーム完全性検証が必要とされる。
【0008】
シンクライアントOSに係らず、一般的なソフトウェアの改竄の脅威に対して、コンピュータ業界団体の一つであるTCG(TCG: Trusted Computing Group)では、TPM(TPM: Trusted Platform Module)と呼ばれるセキュリティチップをコンピュータのコンピュータ基板上に設け、ソフトウェアの信頼性を高める業界標準仕様の策定を進めている。
【0009】
しかし、現状では、この提案に沿ってTPMを実装したコンピュータは少なく、TCGが提案しているプラットフォーム完全性検証を行うのは難しい。
【0010】
そこで,本出願人は,既に,特許文献2において,TCGが策定しているTPMのような特定なセキュリティチップをコンピュータ基板上に設けることなくても、シンクライアント端末として利用されるコンピュータのプラットフォーム完全性を検証できる発明を開示している。
【0011】
特許文献2で本出願人が開示している発明では,シンクライアントOSをUSBメモリなどの携帯型記憶デバイスに記憶させ,該USBメモリに記憶されたシンクライアントOSを起動させたコンピュータに,該シンクライアントOSのイメージのハッシュ値を演算させ,該コンピュータからアクセスのあった完全性検証サーバが該ハッシュ値を検証することで,プラットフォーム完全性検証として,シンクライアント端末として利用されるコンピュータのメモリに展開されたシンクライアントOSの正当性を検証する。
【0012】
しかし,本出願人が特許文献2で開示している発明では,シンクライアント端末として利用されるコンピュータのメモリに展開されたシンクライアントOSのイメージのハッシュ値を演算するため,該コンピュータを操作するユーザが利用しない機能までもシンクライアントOSに含まれていると,必要以上にプラットフォーム完全性検証時に時間がかかりすぎてしまう問題がある。
【0013】
例えば,ユーザがリモートアクセスするシンクライアントサーバによってリモートアクセスクライアントが変わる場合,該ユーザが所持する携帯型記憶デバイスに記憶するシンクライアントOSには,ユーザが利用する/しないに係わらず,すべてのシンクライアントサーバにアクセス可能なように複数のリモートアクセスクライアントを実装しなければならならず,ユーザが利用しないシンクライアントサーバに対応したリモートアクセスクライアントまでも,ハッシュ値演算の対象になってしまっていた。
【0014】
また,USBメモリなどの携帯型記憶デバイスに記憶されたシンクライアントOSを何らかの理由(例えば,セキュリティ用パッチの適用)で更新しなければならないとき,シンクライアントOSの更新の有無によって,シンクライアントOSのイメージのハッシュ値も変わってしまう問題がある。
【0015】
【特許文献1】特開2007−299136号公報
【特許文献2】特願2008−012402号公報
【発明の開示】
【発明が解決しようとする課題】
【0016】
そこで,本発明は,特許文献2で本出願人が開示している発明のように,USBメモリなどの携帯型記憶デバイスに記憶されたシンクライアントOSのイメージのハッシュ値を利用して,プラットフォーム完全性検証する際に,プラットフォーム完全性検証に要する時間を短縮でき,更に,シンクライアントOSの更新にも容易に対応が図れるプラットフォーム完全性検証システム及び方法を提供することを目的とする。
【課題を解決するための手段】
【0017】
上述した課題を解決する第1の発明は,シンクライアント端末として利用されるコンピュータと、シンクライアントOS(OS: Operating System)のイメージが記憶された携帯型記憶デバイスと,外部から送信されたメッセージのデジタル署名を生成する手段を備えたセキュリティトークンと、インターネットを介して前記コンピュータと接続された完全性検証サーバとから、少なくとも構成されたプラットフォーム完全性検証システムであって、 前記携帯型記憶デバイスに記憶する前記シンクライアントOSは,前記コンピュータのメモリに展開された前記シンクライアントOSのイメージのハッシュ値を演算した後,前記ハッシュ値を含む構成証明メッセージのデジタル署名を前記セキュリティトークンに生成させ、前記構成証明メッセージと前記構成証明メッセージのデジタル署名を前記完全性検証サーバに送信する計測ソフトウェアと、前記コンピュータのメモリに展開された前記シンクライアントOSに前記完全性検証サーバから送信された追加プログラムを適用する追加プログラム用ソフトウェアを含み,前記完全性検証サーバは、前記シンクライアントOSが起動した前記コンピュータから送信された前記構成証明メッセージのデジタル署名と、前記構成証明メッセージの本体を検証するプラットフォーム完全性検証手段と,前記プラットフォーム完全性検証手段が前記構成証明メッセージの本体とデジタル署名の検証に成功した後,該コンピュータ上で起動している前記シンクライアントOSに適用する前記追加プログラムを該コンピュータに送信する追加プログラム送信手段を備え,前記携帯型記憶デバイスが前記コンピュータにマウントされたとき,前記シンクライアントOSを該コンピュータ上で起動させるように構成されていることを特徴とするプラットフォーム完全性検証システムである。
【0018】
更に,第2の発明は,第1の発明に記載のプラットフォーム完全性検証システムにおいて、前記完全性検証サーバから前記コンピュータに送信される前記追加プログラムは,シンクライアントサーバにリモートアクセスするために必要なアプリケーションであって,前記シンクライアントOSに含まれる前記追加プログラム用ソフトウェアは,アクセス要求する前記シンクライアントサーバの識別情報を送信するプログラムで,前記完全性検証サーバの前記追加プログラム送信手段は,前記コンピュータから送信された前記識別情報で特定される前記追加プログラムを前記コンピュータに送信することを特徴とするプラットフォーム完全性検証システムである。
【0019】
更に,第3の発明は,シンクライアント端末として利用されるコンピュータと、シンクライアントOS(OS: Operating System)のイメージが記憶された携帯型記憶デバイスと,外部から送信されたメッセージのデジタル署名を生成する手段を備えたセキュリティトークンと、インターネットワークを介して前記コンピュータと接続された完全性検証サーバとから、少なくとも構成されたプラットフォーム完全性検証方法であって、前記コンピュータを用いて,前記コンピュータにマウントされた前記携帯型記憶デバイスに記憶された前記シンクライアントOSを該コンピュータ上で起動させるステップ,前記シンクライアントOSが起動した前記コンピュータを用いて,前記コンピュータのメモリに展開された前記シンクライアントOSのイメージのハッシュ値を演算した後,前記ハッシュ値を含む構成証明メッセージのデジタル署名を前記セキュリティトークンに生成させ、前記構成証明メッセージと前記構成証明メッセージのデジタル署名を前記完全性検証サーバに送信するステップ,前記完全性検証サーバを用いて、前記シンクライアントOSが起動した前記コンピュータから送信された前記構成証明メッセージのデジタル署名と、前記構成証明メッセージの本体を検証するステップ,前記完全性検証サーバを用いて,該コンピュータ上で起動している前記シンクライアントOSに適用する前記追加プログラムを該コンピュータに送信するステップ,前記シンクライアントOSが起動した前記コンピュータを用いて,前記コンピュータのメモリに展開された前記シンクライアントOSに前記完全性検証サーバから送信された追加プログラムを適用するステップ,が実行されることを特徴とするプラットフォーム完全性検証方法である。
【0020】
上述した本発明によれば,プラットフォーム完全性検証に成功した後,前記コンピュータ上で起動している前記シンクライアントOSに適用する前記追加プログラムが前記完全性検証サーバから送信されるため,前記セキュリティトークンには,ユーザがシンクライアントサーバを利用するために必要な機能全てではなく,該機能の一部の機能を提供するシンクライアントOSのみを記憶すればよいため,該シンクライアントOSのサイズは小さく,該シンクライアントOSのハッシュ値を演算する時間が短くなり,プラットフォーム完全性検証に要する時間を短縮できる。
【0021】
更に,前記セキュリティトークンに格納されたシンクライアントOSで提供される機能以外で,前記シンクライアントサーバを利用するために必要な機能を実現するコンピュータプログラム(例えば,リモートアクセスクライアント)は,プラットフォーム完全性検証が成功した後に,前記セキュリティトークンが装着された前記コンピュータに前記追加プログラムとして前記完全性検証サーバから送信されるため,前記コンピュータプログラムを更新しなければならない場合(例えば,セキュリティパッチの適用)でも,容易に対応が図れるようになる。
【0022】
なお,本発明において,セキュリティトークンとは,ICカードのように,デジタル署名などに利用する暗号鍵などを耐タンパー性高く記憶し,外部装置からの要求に応じて,該暗号鍵を利用した演算を行う機能を備えた物理デバイスを意味する。更に,携帯型記憶デバイスとは,USBメモリのように,比較的大きな記憶容量を持ち,コンピュータに装着されたときに,補助記憶装置として認識される物理デバイスを意味する。
【発明の効果】
【0023】
このように,上述した本発明によれば,USBメモリなどの携帯型記憶デバイスに記憶されたシンクライアントOSのイメージのハッシュ値を利用して,プラットフォーム完全性検証する際に,プラットフォーム完全性検証に要する時間を短縮でき,更に,シンクライアントOSの更新にも容易に対応が図れるプラットフォーム完全性検証システム及び方法を提供できる。
【発明を実施するための最良の形態】
【0024】
ここから,本発明に係わる発明の好適な実施形態について,図を参照しながら詳細に説明する。図1は,本実施形態に係わるプラットフォーム完全性検証システム1を説明する図である。
【0025】
図1で図示したプラットフォーム完全性検証システム1は、シンクライアント端末として利用されるコンピュータ11と、セキュリティ管理されたLAN21(LAN: Loacal Area Network)に接続され、コンピュータ11からLAN21内のリソースへのリモートアクセスを管理する完全性検証サーバ12とから少なくとも構成されている。
【0026】
図1では、LAN21及びインターネット2の双方から隔離されたDMZ20(DMZ: DeMilitarized Zone)に,ファイヤーウォール機器20aやVPN機器20b(VPN: Virtual Private Network)が配置され,更に、LAN21内には、機密情報や営業情報など情報とこれらの情報を利用するためのアプリケーションなどが記憶されている2台のシンクライアントサーバ13およびシンクライアントサーバ14がルータ21aに接続されている。
【0027】
ユーザが所持するUSBトークン10は,Aladdin社製のeToken(登録商標)のように,セキュリティトークンの役割を果たすスマートカード用ICチップと,携帯型記憶デバイスの役割を果たすフラッシュメモリが組み合わされたデバイスで,該スマートカード用ICチップには,特許文献2の内容に従い,プラットフォーム完全性検証するために必要な機能(ここでは,デジタル署名の生成機能)が備えられている。
【0028】
また,ユーザが所持するUSBトークン10のフラッシュメモリには,ユーザがシンクライアントサーバ13或いはシンクライアントサーバ14を利用するために必要な機能全てではなく,該機能の一部の機能,例えば,プラットフォーム完全性検証を実行する機能のみを実現するためのシンクライアントオペレーティングシステム(OS: Operating System)が記憶されている。
【0029】
図1のプラットフォーム完全性検証システム1を構成する完全性検証サーバ12は、汎用的なウェブサーバで実現され、特許文献2で開示されている内容に従い,LAN21内に配置されたシンクライアントサーバ13或いはシンクライアントサーバ14にアクセスするコンピュータ11のプラットフォーム完全性検証を実行する機能に加え,プラットフォーム完全性検証に成功したコンピュータ11に対して,USBトークン10に記憶されているシンクライアントOSには備えられていないが,シンクライアントサーバ13或いはシンクライアントサーバ14にアクセスするために必要な追加プログラムを送信する機能を備えている。
【0030】
例えば,シンクライアントサーバ13に接続するためのリモートアクセスクライアント(Remote Access Client)がシンクライアントサーバ14と異なる場合,シンクライアントOSにはリモートアクセスクライアントを記憶させず,完全性検証サーバ12は,プラットフォーム完全性検証に成功したコンピュータ11がアクセス要求したシンクライアントサーバ13用或いはシンクライアントサーバ14用のリモートアクセスクライアントを追加プログラムとして,該コンピュータ11に送信する。
【0031】
このように,本実施形態におけるプラットフォーム完全性検証システム1においては,USBトークン10には,ユーザがシンクライアントサーバ13及びシンクライアントサーバ14を利用するために必要な機能全てではなく,該機能の一部の機能を提供するシンクライアントOSのみを記憶すればよいため,該シンクライアントOSのサイズは小さく,該シンクライアントOSのハッシュ値を演算する時間が短くなり,プラットフォーム完全性検証に要する時間を短縮できる。
【0032】
更に,USBトークン10に格納されたシンクライアントOSで提供される機能以外で,シンクライアントサーバ13或いはシンクライアントサーバ14を利用するために必要な機能を実現するコンピュータプログラム(例えば,リモートアクセスクライアント)は,プラットフォーム完全性検証が成功した後に,USBトークン10が装着されたコンピュータ11に追加プログラムとして完全性検証サーバ12から送信されるため,コンピュータプログラムを更新しなければならない場合(例えば,セキュリティパッチの適用)でも,容易に対応が図れるようになる。
【0033】
ここから,図1で図示したプラットフォーム完全性検証システム1で実行される手順について説明する。図2は,プラットフォーム完全性検証システム1で実行される手順を示したフロー図である。
【0034】
ユーザは、LAN21外のコンピュータ11を操作してLAN21内に設置されたシンクライアントサーバ13或いはシンクライアントサーバ14にリモートアクセスするとき、ユーザは、USBポートにUSBトークン10を接続させた状態でコンピュータ11を起動させると(図2のS1)、USBトークン10になどに備えられたブート機能によって、USBトークン10に記憶されたシンクライアントOSのイメージ(バイトコード)がコンピュータ11のメモリに展開され、コンピュータ11上でシンクライアントOSが起動する(図2のS2)。
【0035】
図3は,図2のS2でコンピュータ11のメモリに展開されるシンクライアントOSを説明する図である。
【0036】
図3に図示したように,図2のS2でコンピュータ11のメモリに展開されるシンクライアントOSには,シンクライアントサーバ13或いはシンクライアントサーバ14を利用するために必要な機能の一部として,プラットフォーム完全性検証を実行するために必要なプログラムである計測ソフトウェアが含まれ,シンクライアントサーバ13或いはシンクライアントサーバ14の利用に必要なリモートアクセスクライアントは含まれていない。
【0037】
シンクライアントOSが起動することで,コンピュータ11はシンクライアント端末として機能し,シンクライアント端末として機能するコンピュータ11は,まず,VPN機器20bに接続し,コンピュータ11とVPN機器20b間の通信を暗号化した後,完全性検証サーバ12にアクセスする(図2のS3)。
【0038】
完全性検証サーバ12は、コンピュータ11からアクセスを受けると、アクセスしたコンピュータ11に対してプラットフォーム完全性検証を要求し,特許文献2で開示されている発明に従い,完全性検証サーバ12とコンピュータ11間でプラットフォーム完全性検証処理が実行される(図2のS4)。
【0039】
プラットフォーム完全性検証処理が終了すると,完全性検証サーバ12は,プラットフォーム完全性検証の検証結果によって処理を分岐させる(図2のS5)。
【0040】
完全性検証サーバ12は,プラットフォーム完全性検証が成功したとき,プラットフォーム完全性検証の検証結果(成功)をコンピュータ11に送信した後,この手順を続行する(図2のS6)。また,完全性検証サーバ12は,プラットフォーム完全性検証が失敗したとき,プラットフォーム完全性検証の検証結果(失敗)をコンピュータ11に送信した後,この手順を終了する(図2のS6a)。
【0041】
プラットフォーム完全性検証に成功し,プラットフォーム完全性検証の検証結果(成功)をコンピュータ11が完全性検証サーバ12から受信すると,コンピュータ11は,シンクライアントサーバ13或いはシンクライアントサーバ14を利用するために必要な追加プログラムを特定する特定情報を完全性検証サーバ12に通知する(図2のS7)。
【0042】
コンピュータ11から完全性検証サーバ12に通知される特定情報は,完全性検証サーバ12が,該特定情報から追加プログラムを特定できる内容であれば任意でよい。例えば,アクセス要求するシンクライアントサーバ13或いはシンクライアントサーバ14のいずれかをユーザに選択させるための画面を,コンピュータ11に表示させ,ユーザがアクセス要求したシンクライアントサーバ13或いはシンクライアントサーバ14の識別情報(例えば,サーバ名やLAN21内のIPアドレス)を該特定情報とすることができる。
【0043】
完全性検証サーバ12は,追加プログラムの特定情報がコンピュータ11から通知されると,該特定情報で特定される追加プログラムを該コンピュータ11に送信する(図2のS8)。
【0044】
例えば,追加プログラムがリモートアクセスクライアントである場合,ユーザがアクセス要求したシンクライアントサーバ13或いはシンクライアントサーバ14の識別情報が通知されると,完全性検証サーバ12は,該識別情報で特定されるシンクライアントサーバ13或いはシンクライアントサーバ14に対応したリモートアクセスクライアントをコンピュータ11に追加プログラムとして送信する。
【0045】
コンピュータ11は,完全性検証サーバ12から追加プログラムを受信すると,コンピュータ11のメモリに該追加プログラムをインストールし,シンクライアントOSに該追加プログラムを追加する(図2のS9)。
【0046】
図4は,図2のS9で,追加プログラムが追加された後のシンクライアントOSを説明する図である。図4に図示したように,追加プログラムが追加された後のシンクライアントOSには,追加プログラムとして,ユーザが利用するシンクライアントサーバ13に対応したリモートアクセスクライアントが含まれ,ユーザがシンクライアントサーバ13を利用できるが,シンクライアントサーバ14のリモートアクセスクライアントは含まれていないため,ユーザはシンクライアントサーバ14を利用できない。
【0047】
コンピュータ11は,完全性検証サーバ12から送信された追加プログラムをメモリに展開されたシンクライアントOSに追加すると,該追加プログラムを利用して,シンクライアントサーバ13或いはシンクライアントサーバ14にアクセスし(図2のS10),この手順は終了する。
【0048】
ここから,図2で図示した手順のS4で実行されるプラットフォーム完全性検証処理について説明しておく。図5は,プラットフォーム完全性検証処理の手順を示したフロー図である。なお,図5で図示した手順の内容は,特許文献2で開示している内容と同じである。
【0049】
プラットフォーム完全性検証処理が開始されると、コンピュータ11は,プラットフォーム完全性検証に利用する乱数Rcを生成し、インターネット2を介して、乱数Rcを含む乱数生成要求メッセージを完全性検証サーバ12に送信する(図5のS20)。なお、コンピュータ11は、プラットフォーム完全性検証が終了するまで生成した乱数Rcをコンピュータ11のメモリに保持しておく。
【0050】
完全性検証サーバ12は、コンピュータ11から乱数Rcを受信すると、プラットフォーム完全性検証で利用する乱数Rsを生成し、乱数Rsをコンピュータ11に送信すると共に(図5のS21)、プラットフォーム完全性検証が終了するまで乱数Rc及び乱数Rsを完全性検証サーバ12のメモリに保持する。
【0051】
コンピュータ11は、完全性検証サーバ12から乱数Rsを受信すると、完全性検証サーバ12から送信された乱数Rsをコンピュータ11のメモリに保持した後、コンピュータ11のメモリに展開されたシンクライアントOSのイメージすべてから、定められたアルゴリズム(例えば、SHA1)に従いハッシュ値を演算し(図5のS22)、ハッシュ値、乱数Rc及び乱数Rsを結合した構成証明メッセージを生成する(図5のS23)。
【0052】
コンピュータ11は構成証明メッセージを生成すると、シンクライアントOSにハードコードされているMAC鍵を用い、定められた手順(例えば、ISO/IEC 9797-1に準じた手順)に従い、構成証明メッセージのMACを演算する。
【0053】
コンピュータ11は構成証明メッセージのMACを演算すると、構成証明メッセージ及びMACを含ませたコマンドメッセージをUSBトークン10に送信することで、構成証明メッセージのデジタル署名の生成をUSBトークン10に要求する(図5のS24)。
【0054】
USBトークン10は、構成証明メッセージ及びMACを含んだコマンドメッセージを受信すると、USBトークン10のスマートカード用ICチップがコマンドメッセージを解釈し、該スマートカード用ICチップは,MAC鍵を用い、コンピュータ11と同じアルゴリズムで構成証明メッセージからMACを演算し、コンピュータ11から送信されたMACと自身が演算したMACとが同一であるか検証することで、コンピュータ11で起動しているシンクライアントOSを検証する(図5のS25)。
【0055】
USBトークン10のスマートカード用ICチップは,構成証明メッセージのMACの検証に成功/失敗で処理を分岐させ(図5のS26)、構成証明メッセージのMACの検証に成功したときは、構成証明メッセージのデジタル署名を生成する処理を実行し、構成証明メッセージのMACの検証に失敗したときは、MACの検証に失敗したことを示すエラーメッセージをコンピュータ11に返信して、この手順を終了する。
【0056】
USBトークン10のスマートカード用ICチップは、構成証明メッセージのMACの検証に成功すると、デジタル署名秘密鍵を用い、定められたデジタル署名生成アルゴリズム(例えば、PKCS#1など)に従い、構成証明メッセージのデジタル署名を生成し、生成したデタル署名をコンピュータ11に返信する(図5のS27)。
【0057】
コンピュータ11は、USBトークン10のスマートカード用ICチップから、構成証明メッセージのデジタル署名を受信すると、インターネット2を介して、構成証明メッセージとデジタル署名を完全性検証サーバ12に送信する(図5のS28)。
【0058】
構成証明メッセージとデジタル署名を完全性検証サーバ12が受信すると、完全性検証サーバ12は、完全性検証サーバ12が記憶しているデジタル署名公開鍵を用いて、定められたアルゴリズムに従い、構成証明メッセージのデジタル署名を検証することで、デジタル署名を生成したUSBトークン10の正当性を検証する(図5のS29)。
【0059】
完全性検証サーバ12は、構成証明メッセージのデジタル署名の検証に成功すると、完全性検証サーバ12は、完全性検証サーバ12のメモリに保持されている乱数Rc及び乱数Rs、並びに、ハードディスクなどに記憶しているハッシュ値の期待値を参照し、構成証明メッセージに含まれる乱数Rc、乱数Rs及びハッシュ値が正しい値であるか確認することで、構成証明メッセージの正当性を検証し,プラットフォーム完全性検証を終了する(図5のS30)。
【0060】
ここから,図1で図示したプラットフォーム完全性検証システム1を構成するコンピュータ11、USBトークン10及び完全性検証サーバ12について説明する。
【0061】
図6は、携帯型記憶デバイスであるUSBトークン10のブロック図である。上述したように,図1で図示したUSBトークン10は、スマートカード用ICチップ10aとフラッシュメモリ10bが統合されたデバイスで,USBトークン10のスマートカード用ICチップ10aには,図5のS25からS27を実行するデジタル署名コマンド100と,デジタル署名コマンド100が利用する暗号鍵としてMAC鍵102とデジタル署名秘密鍵101が記憶されている。
【0062】
また,USBトークン10のフラッシュメモリ10bには,図2及び図5で図示した手順をコンピュータ11に実行させるためのシンクライアントOS104のイメージ(バイトコード)が記憶されている。
【0063】
このシンクライアントOS104には、図5のS20,S22,S23,S24及びS28を実行し,シンクライアントOS104のイメージのハッシュ値を演算する機能を備えたコンピュータプログラムである計測ソフトウェア105と,図2のS7及びS9を実行し,完全性検証サーバ12から送信される追加プログラムをシンクライアントOSに適用する追加プログラム用ソフトウェア107が含まれ、更に、計測ソフトウェアにはMAC鍵106がハードコードされている。
【0064】
図7は、シンクライアント端末として利用されるコンピュータ11のブロック図で、図7(a)は機能ブロック図、図7(b)はハードウェアブロック図である。
【0065】
図7(a)に図示しているように、プラットフォーム完全性検証をするために、コンピュータ11には、シンクライアントOSを起動させるためのブート手段110が備えられている。
【0066】
図7(b)に図示したようにコンピュータ11は、ハードウェア資源として、中央演算装置11a(CPU: Central Processing Unit)と、コンピュータ11のメインメモリであるRAM11b(RAM: Random Access Memory)と、BIOSが実装されるROM11c(ROM: Read-Only Memory)と、USB機器と通信するためのUSBインターフェース11dと、ネットワーク通信するためのネットワークインターフェース11eと、補助記憶装置として大容量のデータ記憶装置であるハードディスク11fを備え、ハードディスク11fには、シンクライアントシステムで利用されないときにブートされるOS、例えば、マイクロソフト社のWINDOWS(登録商標)が記憶されている。
【0067】
コンピュータ11のブート手段110は、コンピュータ11にUSBトークン10が装着されたことを検知すると、USBトークン10に記憶されたシンクライアントOSのイメージをRAM11bに展開し、シンクライアントOSを起動させる手段で、ブート手段110は,コンピュータ11のハードディスク11fに記憶されているOSの一つの機能や、ROM11cに実装されるBIOSの機能などで実現される。
【0068】
コンピュータ11のブート手段110によって,シンクライアントOSの計測ソフトウェアがコンピュータ11上で起動すると,コンピュータ11は,図5のS20,S22,S23,S24及びS28を実行する。すなわち,コンピュータ11は,コンピュータ11のRAM11bに展開されたシンクライアントOSのイメージのハッシュ値を演算した後、ハッシュ値を含む構成証明メッセージを生成する。
【0069】
そして、コンピュータ11は、シンクライアントOSにハードコートされたMAC鍵を用いて、構成証明メッセージの認証コードとしてMAC(MAC: Message Authentication Code)を演算し、構成証明メッセージと認証コードをUSBトークン10に送信することで、構成証明メッセージのデジタル署名の生成をUSBトークン10に要求し、構成証明メッセージのデジタル署名がUSBトークン10から送信されると、構成証明メッセージとデジタル署名を完全性検証サーバ12に送信する。
【0070】
なお、コンピュータ11が,完全性検証サーバ12が生成した乱数Rsを構成証明メッセージに含ませると、構成証明メッセージが毎回変わることになるため、同じ構成証明メッセージを不正に再利用することを防止できる。
【0071】
また、コンピュータ11が構成メッセージを生成する前に乱数Rcを生成し、生成した乱数Rcを完全性検証サーバ12に送信しておき、構成証明メッセージに乱数Rcを含ませることで、完全性検証サーバ12は、構成証明メッセージをコンピュータ11から受信したときに、間違いなく、プラットフォーム完全性を検証するコンピュータ11から送信された構成証明メッセージであることが判断できるようになる。
【0072】
更に,シンクライアントOSの追加プログラム用ソフトウェアが起動すると,コンピュータ11は,図2のS7及びS9を実行する。すなわち,コンピュータ11は,コンピュータ11では標準的なOS(例えば,Windows(登録商標))などのパッチコマンドと同様に,完全性検証サーバ12から追加プログラムを受信すると,該追加プログラムをシンクライアントOSに組み込む形式で,コンピュータ11のメモリにロードする。
【0073】
図8は、インターネット2を介してコンピュータ11と接続されている完全性検証サーバ12のブロック図である。図8(a)は機能ブロック図、図8(b)はハードウェアブロック図である。
【0074】
図8(a)に図示しているように、完全性検証サーバ12は,デジタル署名公開鍵121を利用して,構成メッセージのデジタル署名の検証する機能と,ハッシュ値の期待値122を利用して,構成証明メッセージの本体を検証する機能を備えたプラットフォーム完全性検証手段120と、プラットフォーム完全性検証に成功したコンピュータ11に対し、追加プログラムを送信する追加プログラム追加手段123を備え、これらの手段は,完全性検証サーバ12を各手段として機能させるためのコンピュータプログラムで実現される。
【0075】
図8(b)に図示しているように、完全性検証サーバ12は、ハードウェア資源として、CPU12aと、完全性検証サーバ12のメインメモリであるRAM12bと、BIOSが実装されるROM12cと、ネットワーク通信するためのネットワークインターフェース12dと、補助記憶装置として大容量のデータ記憶装置であるハードディスクを備え、ハードディスク12eには、コンピュータ11に送信する可能性のある様々な追加プログラムが記憶されている。
【0076】
完全性検証サーバ12のプラットフォーム完全性検証手段120は、図5のS21,S29及びS30を実行する手段で,コンピュータ11から、構成証明メッセージとデジタル署名を受信すると作動し、デジタル署名公開鍵121を用いて、定められたデジタル署名検証アルゴリズムに従い、構成証明メッセージのデジタル署名を検証することで、デジタル署名を生成したUSBトークン10の正当性を検証する。
【0077】
そして,プラットフォーム完全性検証手段120は、シンクライアントOSのハッシュ値の期待値122を参照し、構成証明メッセージに含まれるハッシュ値が正しい内容であるか確認することで、構成証明メッセージの正当性を検証する。
【0078】
なお、構成証明メッセージが乱数Rc及び乱数Rsを含んでいるとき、プラットフォーム完全性検証手段120は、シンクライアントOSのハッシュ値の期待値122に加え、RAMに記憶している乱数Rc及び乱数Rsを参照して、構成証明メッセージの正当性を検証する。
【0079】
完全性検証サーバ12の追加プログラム追加手段123は,図2のS8を実行する手段で,プラットフォーム完全性検証手段120がプラットフォーム完全性検証に成功し,シンクライアントサーバ13或いはシンクライアントサーバ14を利用するために必要な追加プログラムの特定情報をコンピュータ11から受信すると作動し,ハードディスク12eに記憶されている追加プログラムの中から,該特定情報で特定される追加プログラムを特定し,該追加プログラムを該コンピュータ11に送信する手段である。
【0080】
なお、本発明は、これまで説明した実施の形態に限定されることなく、種々の変形や変更が可能である。例えば,図1で図示したプラットフォーム完全性検証システム1においては,セキュリティトークンの機能と携帯型記憶デバイスの機能を兼ね備えたUSBトークン10を利用していたが,セキュリティトークンと携帯型記憶デバイスを個別の装置とすることもできる。
【0081】
このとき,ユーザは,セキュリティトークンとして,USBトークン10のスマートカード用ICチップ10aに備えられたデジタル署名コマンド100,MAC鍵102及びデジタル署名秘密鍵101を記憶したICカードを所持し,更に,携帯型記憶デバイスとして,USBトークン10のフラッシュメモリ10bに記憶していたシンクライアントOSを記憶したUSBメモリを所持し,シンクライアント端末として利用するコンピュータ11に該ICカードと通信するためのICカードリーダを備えさせる。
【図面の簡単な説明】
【0082】
【図1】プラットフォーム完全性検証システムを説明する図。
【図2】プラットフォーム完全性検証システムで実行される手順を示したフロー図。
【図3】コンピュータのメモリに展開されるシンクライアントOSを説明する図。
【図4】追加プログラムが適用された後のシンクライアントOSを説明する図。
【図5】プラットフォーム完全性検証処理の手順を示したフロー図。
【図6】USBトークンのブロック図。
【図7】コンピュータのブロック図。
【図8】完全性検証サーバのブロック図。
【符号の説明】
【0083】
1 プラットフォーム完全性検証システム
10 USBトークン
11 コンピュータ
12 完全性検証サーバ
13,14 シンクライアントサーバ


【特許請求の範囲】
【請求項1】
シンクライアント端末として利用されるコンピュータと、シンクライアントOS(OS: Operating System)のイメージが記憶された携帯型記憶デバイスと,外部から送信されたメッセージのデジタル署名を生成する手段を備えたセキュリティトークンと、インターネットを介して前記コンピュータと接続された完全性検証サーバとから、少なくとも構成されたプラットフォーム完全性検証システムであって、
前記携帯型記憶デバイスに記憶する前記シンクライアントOSは,前記コンピュータのメモリに展開された前記シンクライアントOSのイメージのハッシュ値を演算した後,前記ハッシュ値を含む構成証明メッセージのデジタル署名を前記セキュリティトークンに生成させ、前記構成証明メッセージと前記構成証明メッセージのデジタル署名を前記完全性検証サーバに送信する計測ソフトウェアと、前記コンピュータのメモリに展開された前記シンクライアントOSに前記完全性検証サーバから送信された追加プログラムを適用する追加プログラム用ソフトウェアを含み,
前記完全性検証サーバは、前記シンクライアントOSが起動した前記コンピュータから送信された前記構成証明メッセージのデジタル署名と、前記構成証明メッセージの本体を検証するプラットフォーム完全性検証手段と,前記プラットフォーム完全性検証手段が前記構成証明メッセージの本体とデジタル署名の検証に成功した後,該コンピュータ上で起動している前記シンクライアントOSに適用する前記追加プログラムを該コンピュータに送信する追加プログラム送信手段を備え,
前記携帯型記憶デバイスが前記コンピュータにマウントされたとき,前記シンクライアントOSを該コンピュータ上で起動させるように構成されていることを特徴とするプラットフォーム完全性検証システム。
【請求項2】
請求項1に記載のプラットフォーム完全性検証システムにおいて、前記完全性検証サーバから前記コンピュータに送信される前記追加プログラムは,シンクライアントサーバにリモートアクセスするために必要なアプリケーションであって,前記シンクライアントOSに含まれる前記追加プログラム用ソフトウェアは,アクセス要求する前記シンクライアントサーバの識別情報を送信するプログラムで,前記完全性検証サーバの前記追加プログラム送信手段は,前記コンピュータから送信された前記識別情報で特定される前記追加プログラムを前記コンピュータに送信することを特徴とするプラットフォーム完全性検証システム。
【請求項3】
シンクライアント端末として利用されるコンピュータと、シンクライアントOS(OS: Operating System)のイメージが記憶された携帯型記憶デバイスと,外部から送信されたメッセージのデジタル署名を生成する手段を備えたセキュリティトークンと、インターネットワークを介して前記コンピュータと接続された完全性検証サーバとから、少なくとも構成されたプラットフォーム完全性検証方法であって、
前記コンピュータを用いて,前記コンピュータにマウントされた前記携帯型記憶デバイスに記憶された前記シンクライアントOSを該コンピュータ上で起動させるステップ,
前記シンクライアントOSが起動した前記コンピュータを用いて,前記コンピュータのメモリに展開された前記シンクライアントOSのイメージのハッシュ値を演算した後,前記ハッシュ値を含む構成証明メッセージのデジタル署名を前記セキュリティトークンに生成させ、前記構成証明メッセージと前記構成証明メッセージのデジタル署名を前記完全性検証サーバに送信するステップ,
前記完全性検証サーバを用いて、前記シンクライアントOSが起動した前記コンピュータから送信された前記構成証明メッセージのデジタル署名と、前記構成証明メッセージの本体を検証するステップ,
前記完全性検証サーバを用いて,該コンピュータ上で起動している前記シンクライアントOSに適用する前記追加プログラムを該コンピュータに送信するステップ,
前記シンクライアントOSが起動した前記コンピュータを用いて,前記コンピュータのメモリに展開された前記シンクライアントOSに前記完全性検証サーバから送信された追加プログラムを適用するステップ,
が実行されることを特徴とするプラットフォーム完全性検証方法。


【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate