(57)【要約】【課題】プラットフォーム完全性検証に要する時間を短縮できるシステムを提供する。【解決手段】プラットフォーム完全検証システム１で利用されるＵＳＢトークン１０に記憶されるシンクライアントＯＳは，プラットフォーム完全性検証に必要な機能のみを備えている。プラットフォーム完全性検証に成功すると，完全性検証サーバ１２からコンピュータ１に，シンクライアントサーバ１３或いはシンクライアントサーバ１４を利用するために必要な追加プログラム（例えば，リモートアクセスクライアント）が送信され，コンピュータ１上に展開されているシンクライアントＯＳに該追加プログラムが適用される。【選択図】図１
2010128818.tif 000002
【特許請求の範囲】
【請求項１】
シンクライアント端末として利用されるコンピュータと、シンクライアントＯＳ（OS: Operating System）のイメージが記憶された携帯型記憶デバイスと，外部から送信されたメッセージのデジタル署名を生成する手段を備えたセキュリティトークンと、インターネットを介して前記コンピュータと接続された完全性検証サーバとから、少なくとも構成されたプラットフォーム完全性検証システムであって、
前記携帯型記憶デバイスに記憶する前記シンクライアントＯＳは，前記コンピュータのメモリに展開された前記シンクライアントＯＳのイメージのハッシュ値を演算した後，前記ハッシュ値を含む構成証明メッセージのデジタル署名を前記セキュリティトークンに生成させ、前記構成証明メッセージと前記構成証明メッセージのデジタル署名を前記完全性検証サーバに送信する計測ソフトウェアと、前記コンピュータのメモリに展開された前記シンクライアントＯＳに前記完全性検証サーバから送信された追加プログラムを適用する追加プログラム用ソフトウェアを含み，
前記完全性検証サーバは、前記シンクライアントOSが起動した前記コンピュータから送信された前記構成証明メッセージのデジタル署名と、前記構成証明メッセージの本体を検証するプラットフォーム完全性検証手段と，前記プラットフォーム完全性検証手段が前記構成証明メッセージの本体とデジタル署名の検証に成功した後，該コンピュータ上で起動している前記シンクライアントＯＳに適用する前記追加プログラムを該コンピュータに送信する追加プログラム送信手段を備え，
前記携帯型記憶デバイスが前記コンピュータにマウントされたとき，前記シンクライアントＯＳを該コンピュータ上で起動させるように構成されていることを特徴とするプラットフォーム完全性検証システム。
【請求項２】
請求項１に記載のプラットフォーム完全性検証システムにおいて、前記完全性検証サーバから前記コンピュータに送信される前記追加プログラムは，シンクライアントサーバにリモートアクセスするために必要なアプリケーションであって，前記シンクライアントＯＳに含まれる前記追加プログラム用ソフトウェアは，アクセス要求する前記シンクライアントサーバの識別情報を送信するプログラムで，前記完全性検証サーバの前記追加プログラム送信手段は，前記コンピュータから送信された前記識別情報で特定される前記追加プログラムを前記コンピュータに送信することを特徴とするプラットフォーム完全性検証システム。
【請求項３】
シンクライアント端末として利用されるコンピュータと、シンクライアントＯＳ（OS: Operating System）のイメージが記憶された携帯型記憶デバイスと，外部から送信されたメッセージのデジタル署名を生成する手段を備えたセキュリティトークンと、インターネットワークを介して前記コンピュータと接続された完全性検証サーバとから、少なくとも構成されたプラットフォーム完全性検証方法であって、
前記コンピュータを用いて，前記コンピュータにマウントされた前記携帯型記憶デバイスに記憶された前記シンクライアントＯＳを該コンピュータ上で起動させるステップ，
前記シンクライアントＯＳが起動した前記コンピュータを用いて，前記コンピュータのメモリに展開された前記シンクライアントＯＳのイメージのハッシュ値を演算した後，前記ハッシュ値を含む構成証明メッセージのデジタル署名を前記セキュリティトークンに生成させ、前記構成証明メッセージと前記構成証明メッセージのデジタル署名を前記完全性検証サーバに送信するステップ，
前記完全性検証サーバを用いて、前記シンクライアントOSが起動した前記コンピュータから送信された前記構成証明メッセージのデジタル署名と、前記構成証明メッセージの本体を検証するステップ，
前記完全性検証サーバを用いて，該コンピュータ上で起動している前記シンクライアントＯＳに適用する前記追加プログラムを該コンピュータに送信するステップ，
前記シンクライアントＯＳが起動した前記コンピュータを用いて，前記コンピュータのメモリに展開された前記シンクライアントＯＳに前記完全性検証サーバから送信された追加プログラムを適用するステップ，
が実行されることを特徴とするプラットフォーム完全性検証方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シンクライアント端末として利用されるコンピュータのプラットフォーム完全性を検証するための技術に関する。
【背景技術】
【０００２】
近年、企業などにおいて、ネットワーク通信機能など必要最小限の機能のみを持たせたシンクライアント端末と、機密情報などの情報資源の管理や、アプリケーションの処理などの機能を集約させたシンクライアントサーバとから構成されるシンクライアントシステム（Thin Client System）を導入するケースが増えている。
【０００３】
企業がシンクライアントシステムを導入する背景には、（１）日本版ＳＯＸ法への対応を目的とした内部統制の強化、（２）個人情報流出防止などを目的としたセキュリティの強化、（３）システムの運用管理コスト（パッチ情報、ライセンス管理など）の削減、（４）テレワーク(Telework)の実現等などがある。
【０００４】
とりわけ、在宅勤務が可能となるテレワークは、地域活性化や少子高齢化問題などの解決手段として期待されており、テレワークを実現するためには、企業内と同じセキュアな環境で、企業内のＬＡＮ（Local Area Network）に設置されたシンクライアントサーバにリモートアクセスを行えることが必要となる。
【０００５】
シンクライアントシステムを実現するために、シンクライアント端末として専用に機能するコンピュータを導入してもよいが、該コンピュータの導入は、コスト・利便性両方の面から望ましとは言えない。
【０００６】
そこで、特許文献１にも記述されているように、シンクライアント端末として機能させるオペレーティングシステム（以下，「シンクライアントＯＳ」と記す。OSは「Operating System」の略。）を，ＵＳＢメモリ、ＣＤ−ＲＯＭなどの携帯型記憶デバイスに記憶させ、汎用のコンピュータをシンクライアント端末として利用するときに、シンクライアントＯＳを汎用のコンピュータ上で起動させる手法が用いられる。
【０００７】
しかし、故意的或いは偶発的にしても、ＵＳＢメモリなどの携帯型記憶デバイスに記憶されたシンクライアントＯＳが改竄されてしまうと、個人データなどの機密データが漏洩してしまう可能性があるため、汎用コンピュータのメモリに展開されるシンクライアントＯＳの改竄を発見するプラットフォーム完全性検証が必要とされる。
【０００８】
シンクライアントＯＳに係らず、一般的なソフトウェアの改竄の脅威に対して、コンピュータ業界団体の一つであるＴＣＧ（TCG: Trusted Computing Group）では、ＴＰＭ(TPM: Trusted Platform Module)と呼ばれるセキュリティチップをコンピュータのコンピュータ基板上に設け、ソフトウェアの信頼性を高める業界標準仕様の策定を進めている。
【０００９】
しかし、現状では、この提案に沿ってＴＰＭを実装したコンピュータは少なく、ＴＣＧが提案しているプラットフォーム完全性検証を行うのは難しい。
【００１０】
そこで，本出願人は，既に，特許文献２において，ＴＣＧが策定しているＴＰＭのような特定なセキュリティチップをコンピュータ基板上に設けることなくても、シンクライアント端末として利用されるコンピュータのプラットフォーム完全性を検証できる発明を開示している。
【００１１】
特許文献２で本出願人が開示している発明では，シンクライアントＯＳをＵＳＢメモリなどの携帯型記憶デバイスに記憶させ，該ＵＳＢメモリに記憶されたシンクライアントＯＳを起動させたコンピュータに，該シンクライアントＯＳのイメージのハッシュ値を演算させ，該コンピュータからアクセスのあった完全性検証サーバが該ハッシュ値を検証することで，プラットフォーム完全性検証として，シンクライアント端末として利用されるコンピュータのメモリに展開されたシンクライアントＯＳの正当性を検証する。
【００１２】
しかし，本出願人が特許文献２で開示している発明では，シンクライアント端末として利用されるコンピュータのメモリに展開されたシンクライアントＯＳのイメージのハッシュ値を演算するため，該コンピュータを操作するユーザが利用しない機能までもシンクライアントOSに含まれていると，必要以上にプラットフォーム完全性検証時に時間がかかりすぎてしまう問題がある。
【００１３】
例えば，ユーザがリモートアクセスするシンクライアントサーバによってリモートアクセスクライアントが変わる場合，該ユーザが所持する携帯型記憶デバイスに記憶するシンクライアントＯＳには，ユーザが利用する／しないに係わらず，すべてのシンクライアントサーバにアクセス可能なように複数のリモートアクセスクライアントを実装しなければならならず，ユーザが利用しないシンクライアントサーバに対応したリモートアクセスクライアントまでも，ハッシュ値演算の対象になってしまっていた。
【００１４】
また，ＵＳＢメモリなどの携帯型記憶デバイスに記憶されたシンクライアントＯＳを何らかの理由（例えば，セキュリティ用パッチの適用）で更新しなければならないとき，シンクライアントＯＳの更新の有無によって，シンクライアントＯＳのイメージのハッシュ値も変わってしまう問題がある。
【００１５】
【特許文献１】特開２００７−２９９１３６号公報
【特許文献２】特願２００８−０１２４０２号公報
【発明の開示】
【発明が解決しようとする課題】
【００１６】
そこで，本発明は，特許文献２で本出願人が開示している発明のように，ＵＳＢメモリなどの携帯型記憶デバイスに記憶されたシンクライアントＯＳのイメージのハッシュ値を利用して，プラットフォーム完全性検証する際に，プラットフォーム完全性検証に要する時間を短縮でき，更に，シンクライアントＯＳの更新にも容易に対応が図れるプラットフォーム完全性検証システム及び方法を提供することを目的とする。
【課題を解決するための手段】
【００１７】
上述した課題を解決する第１の発明は，シンクライアント端末として利用されるコンピュータと、シンクライアントＯＳ（OS: Operating System）のイメージが記憶された携帯型記憶デバイスと，外部から送信されたメッセージのデジタル署名を生成する手段を備えたセキュリティトークンと、インターネットを介して前記コンピュータと接続された完全性検証サーバとから、少なくとも構成されたプラットフォーム完全性検証システムであって、  前記携帯型記憶デバイスに記憶する前記シンクライアントＯＳは，前記コンピュータのメモリに展開された前記シンクライアントＯＳのイメージのハッシュ値を演算した後，前記ハッシュ値を含む構成証明メッセージのデジタル署名を前記セキュリティトークンに生成させ、前記構成証明メッセージと前記構成証明メッセージのデジタル署名を前記完全性検証サーバに送信する計測ソフトウェアと、前記コンピュータのメモリに展開された前記シンクライアントＯＳに前記完全性検証サーバから送信された追加プログラムを適用する追加プログラム用ソフトウェアを含み，前記完全性検証サーバは、前記シンクライアントOSが起動した前記コンピュータから送信された前記構成証明メッセージのデジタル署名と、前記構成証明メッセージの本体を検証するプラットフォーム完全性検証手段と，前記プラットフォーム完全性検証手段が前記構成証明メッセージの本体とデジタル署名の検証に成功した後，該コンピュータ上で起動している前記シンクライアントＯＳに適用する前記追加プログラムを該コンピュータに送信する追加プログラム送信手段を備え，前記携帯型記憶デバイスが前記コンピュータにマウントされたとき，前記シンクライアントＯＳを該コンピュータ上で起動させるように構成されていることを特徴とするプラットフォーム完全性検証システムである。
【００１８】
更に，第２の発明は，第1の発明に記載のプラットフォーム完全性検証システムにおいて、前記完全性検証サーバから前記コンピュータに送信される前記追加プログラムは，シンクライアントサーバにリモートアクセスするために必要なアプリケーションであって，前記シンクライアントＯＳに含まれる前記追加プログラム用ソフトウェアは，アクセス要求する前記シンクライアントサーバの識別情報を送信するプログラムで，前記完全性検証サーバの前記追加プログラム送信手段は，前記コンピュータから送信された前記識別情報で特定される前記追加プログラムを前記コンピュータに送信することを特徴とするプラットフォーム完全性検証システムである。
【００１９】
更に，第3の発明は，シンクライアント端末として利用されるコンピュータと、シンクライアントＯＳ（OS: Operating System）のイメージが記憶された携帯型記憶デバイスと，外部から送信されたメッセージのデジタル署名を生成する手段を備えたセキュリティトークンと、インターネットワークを介して前記コンピュータと接続された完全性検証サーバとから、少なくとも構成されたプラットフォーム完全性検証方法であって、前記コンピュータを用いて，前記コンピュータにマウントされた前記携帯型記憶デバイスに記憶された前記シンクライアントＯＳを該コンピュータ上で起動させるステップ，前記シンクライアントＯＳが起動した前記コンピュータを用いて，前記コンピュータのメモリに展開された前記シンクライアントＯＳのイメージのハッシュ値を演算した後，前記ハッシュ値を含む構成証明メッセージのデジタル署名を前記セキュリティトークンに生成させ、前記構成証明メッセージと前記構成証明メッセージのデジタル署名を前記完全性検証サーバに送信するステップ，前記完全性検証サーバを用いて、前記シンクライアントOSが起動した前記コンピュータから送信された前記構成証明メッセージのデジタル署名と、前記構成証明メッセージの本体を検証するステップ，前記完全性検証サーバを用いて，該コンピュータ上で起動している前記シンクライアントＯＳに適用する前記追加プログラムを該コンピュータに送信するステップ，前記シンクライアントＯＳが起動した前記コンピュータを用いて，前記コンピュータのメモリに展開された前記シンクライアントＯＳに前記完全性検証サーバから送信された追加プログラムを適用するステップ，が実行されることを特徴とするプラットフォーム完全性検証方法である。
【００２０】
上述した本発明によれば，プラットフォーム完全性検証に成功した後，前記コンピュータ上で起動している前記シンクライアントＯＳに適用する前記追加プログラムが前記完全性検証サーバから送信されるため，前記セキュリティトークンには，ユーザがシンクライアントサーバを利用するために必要な機能全てではなく，該機能の一部の機能を提供するシンクライアントＯＳのみを記憶すればよいため，該シンクライアントOSのサイズは小さく，該シンクライアントOSのハッシュ値を演算する時間が短くなり，プラットフォーム完全性検証に要する時間を短縮できる。
【００２１】
更に，前記セキュリティトークンに格納されたシンクライアントＯＳで提供される機能以外で，前記シンクライアントサーバを利用するために必要な機能を実現するコンピュータプログラム（例えば，リモートアクセスクライアント）は，プラットフォーム完全性検証が成功した後に，前記セキュリティトークンが装着された前記コンピュータに前記追加プログラムとして前記完全性検証サーバから送信されるため，前記コンピュータプログラムを更新しなければならない場合（例えば，セキュリティパッチの適用）でも，容易に対応が図れるようになる。
【００２２】
なお，本発明において，セキュリティトークンとは，ＩＣカードのように，デジタル署名などに利用する暗号鍵などを耐タンパー性高く記憶し，外部装置からの要求に応じて，該暗号鍵を利用した演算を行う機能を備えた物理デバイスを意味する。更に，携帯型記憶デバイスとは，ＵＳＢメモリのように，比較的大きな記憶容量を持ち，コンピュータに装着されたときに，補助記憶装置として認識される物理デバイスを意味する。
【発明の効果】
【００２３】
このように，上述した本発明によれば，ＵＳＢメモリなどの携帯型記憶デバイスに記憶されたシンクライアントＯＳのイメージのハッシュ値を利用して，プラットフォーム完全性検証する際に，プラットフォーム完全性検証に要する時間を短縮でき，更に，シンクライアントＯＳの更新にも容易に対応が図れるプラットフォーム完全性検証システム及び方法を提供できる。
【発明を実施するための最良の形態】
【００２４】
ここから，本発明に係わる発明の好適な実施形態について，図を参照しながら詳細に説明する。図１は，本実施形態に係わるプラットフォーム完全性検証システム１を説明する図である。
【００２５】
図１で図示したプラットフォーム完全性検証システム１は、シンクライアント端末として利用されるコンピュータ１１と、セキュリティ管理されたＬＡＮ２１（LAN: Loacal Area Network）に接続され、コンピュータ１１からＬＡＮ２１内のリソースへのリモートアクセスを管理する完全性検証サーバ１２とから少なくとも構成されている。
【００２６】
図１では、ＬＡＮ２１及びインターネット２の双方から隔離されたＤＭＺ２０（DMZ: DeMilitarized Zone）に，ファイヤーウォール機器２０ａやＶＰＮ機器２０ｂ（VPN: Virtual Private Network）が配置され，更に、ＬＡＮ２１内には、機密情報や営業情報など情報とこれらの情報を利用するためのアプリケーションなどが記憶されている２台のシンクライアントサーバ１３およびシンクライアントサーバ１４がルータ２１ａに接続されている。
【００２７】
ユーザが所持するＵＳＢトークン１０は，Aladdin社製のeToken（登録商標）のように，セキュリティトークンの役割を果たすスマートカード用ICチップと，携帯型記憶デバイスの役割を果たすフラッシュメモリが組み合わされたデバイスで，該スマートカード用ICチップには，特許文献２の内容に従い，プラットフォーム完全性検証するために必要な機能（ここでは，デジタル署名の生成機能）が備えられている。
【００２８】
また，ユーザが所持するＵＳＢトークン１０のフラッシュメモリには，ユーザがシンクライアントサーバ１３或いはシンクライアントサーバ１４を利用するために必要な機能全てではなく，該機能の一部の機能，例えば，プラットフォーム完全性検証を実行する機能のみを実現するためのシンクライアントオペレーティングシステム（OS: Operating System）が記憶されている。
【００２９】
図１のプラットフォーム完全性検証システム１を構成する完全性検証サーバ１２は、汎用的なウェブサーバで実現され、特許文献２で開示されている内容に従い，ＬＡＮ２１内に配置されたシンクライアントサーバ１３或いはシンクライアントサーバ１４にアクセスするコンピュータ１１のプラットフォーム完全性検証を実行する機能に加え，プラットフォーム完全性検証に成功したコンピュータ１１に対して，ＵＳＢトークン１０に記憶されているシンクライアントＯＳには備えられていないが，シンクライアントサーバ１３或いはシンクライアントサーバ１４にアクセスするために必要な追加プログラムを送信する機能を備えている。
【００３０】
例えば，シンクライアントサーバ１３に接続するためのリモートアクセスクライアント（Remote Access Client）がシンクライアントサーバ１４と異なる場合，シンクライアントＯＳにはリモートアクセスクライアントを記憶させず，完全性検証サーバ１２は，プラットフォーム完全性検証に成功したコンピュータ１１がアクセス要求したシンクライアントサーバ１３用或いはシンクライアントサーバ１４用のリモートアクセスクライアントを追加プログラムとして，該コンピュータ１１に送信する。
【００３１】
このように，本実施形態におけるプラットフォーム完全性検証システム１においては，ＵＳＢトークン１０には，ユーザがシンクライアントサーバ１３及びシンクライアントサーバ１４を利用するために必要な機能全てではなく，該機能の一部の機能を提供するシンクライアントＯＳのみを記憶すればよいため，該シンクライアントOSのサイズは小さく，該シンクライアントOSのハッシュ値を演算する時間が短くなり，プラットフォーム完全性検証に要する時間を短縮できる。
【００３２】
更に，ＵＳＢトークン１０に格納されたシンクライアントＯＳで提供される機能以外で，シンクライアントサーバ１３或いはシンクライアントサーバ１４を利用するために必要な機能を実現するコンピュータプログラム（例えば，リモートアクセスクライアント）は，プラットフォーム完全性検証が成功した後に，ＵＳＢトークン１０が装着されたコンピュータ１１に追加プログラムとして完全性検証サーバ１２から送信されるため，コンピュータプログラムを更新しなければならない場合（例えば，セキュリティパッチの適用）でも，容易に対応が図れるようになる。
【００３３】
ここから，図１で図示したプラットフォーム完全性検証システム１で実行される手順について説明する。図２は，プラットフォーム完全性検証システム１で実行される手順を示したフロー図である。
【００３４】
ユーザは、ＬＡＮ２１外のコンピュータ１１を操作してＬＡＮ２１内に設置されたシンクライアントサーバ１３或いはシンクライアントサーバ１４にリモートアクセスするとき、ユーザは、ＵＳＢポートにＵＳＢトークン１０を接続させた状態でコンピュータ１１を起動させると（図２のＳ１）、ＵＳＢトークン１０になどに備えられたブート機能によって、ＵＳＢトークン１０に記憶されたシンクライアントＯＳのイメージ（バイトコード）がコンピュータ１１のメモリに展開され、コンピュータ１１上でシンクライアントＯＳが起動する（図２のＳ２）。
【００３５】
図３は，図２のＳ２でコンピュータ１１のメモリに展開されるシンクライアントOSを説明する図である。
【００３６】
図３に図示したように，図２のＳ２でコンピュータ１１のメモリに展開されるシンクライアントOSには，シンクライアントサーバ１３或いはシンクライアントサーバ１４を利用するために必要な機能の一部として，プラットフォーム完全性検証を実行するために必要なプログラムである計測ソフトウェアが含まれ，シンクライアントサーバ１３或いはシンクライアントサーバ１４の利用に必要なリモートアクセスクライアントは含まれていない。
【００３７】
シンクライアントＯＳが起動することで，コンピュータ１１はシンクライアント端末として機能し，シンクライアント端末として機能するコンピュータ１１は，まず，ＶＰＮ機器２０ｂに接続し，コンピュータ１１とＶＰＮ機器２０ｂ間の通信を暗号化した後，完全性検証サーバ１２にアクセスする（図２のＳ３）。
【００３８】
完全性検証サーバ１２は、コンピュータ１１からアクセスを受けると、アクセスしたコンピュータ１１に対してプラットフォーム完全性検証を要求し，特許文献２で開示されている発明に従い，完全性検証サーバ１２とコンピュータ１１間でプラットフォーム完全性検証処理が実行される（図２のＳ４）。
【００３９】
プラットフォーム完全性検証処理が終了すると，完全性検証サーバ１２は，プラットフォーム完全性検証の検証結果によって処理を分岐させる（図２のＳ５）。
【００４０】
完全性検証サーバ１２は，プラットフォーム完全性検証が成功したとき，プラットフォーム完全性検証の検証結果（成功）をコンピュータ１１に送信した後，この手順を続行する（図２のＳ６）。また，完全性検証サーバ１２は，プラットフォーム完全性検証が失敗したとき，プラットフォーム完全性検証の検証結果（失敗）をコンピュータ１１に送信した後，この手順を終了する（図２のＳ６ａ）。
【００４１】
プラットフォーム完全性検証に成功し，プラットフォーム完全性検証の検証結果（成功）をコンピュータ１１が完全性検証サーバ１２から受信すると，コンピュータ１１は，シンクライアントサーバ１３或いはシンクライアントサーバ１４を利用するために必要な追加プログラムを特定する特定情報を完全性検証サーバ１２に通知する（図２のＳ７）。
【００４２】
コンピュータ１１から完全性検証サーバ１２に通知される特定情報は，完全性検証サーバ１２が，該特定情報から追加プログラムを特定できる内容であれば任意でよい。例えば，アクセス要求するシンクライアントサーバ１３或いはシンクライアントサーバ１４のいずれかをユーザに選択させるための画面を，コンピュータ１１に表示させ，ユーザがアクセス要求したシンクライアントサーバ１３或いはシンクライアントサーバ１４の識別情報（例えば，サーバ名やＬＡＮ２１内のＩＰアドレス）を該特定情報とすることができる。
【００４３】
完全性検証サーバ１２は，追加プログラムの特定情報がコンピュータ１１から通知されると，該特定情報で特定される追加プログラムを該コンピュータ１１に送信する（図２のＳ８）。
【００４４】
例えば，追加プログラムがリモートアクセスクライアントである場合，ユーザがアクセス要求したシンクライアントサーバ１３或いはシンクライアントサーバ１４の識別情報が通知されると，完全性検証サーバ１２は，該識別情報で特定されるシンクライアントサーバ１３或いはシンクライアントサーバ１４に対応したリモートアクセスクライアントをコンピュータ１１に追加プログラムとして送信する。
【００４５】
コンピュータ１１は，完全性検証サーバ１２から追加プログラムを受信すると，コンピュータ１１のメモリに該追加プログラムをインストールし，シンクライアントＯＳに該追加プログラムを追加する（図２のＳ９）。
【００４６】
図４は，図２のＳ9で，追加プログラムが追加された後のシンクライアントＯＳを説明する図である。図４に図示したように，追加プログラムが追加された後のシンクライアントＯＳには，追加プログラムとして，ユーザが利用するシンクライアントサーバ１３に対応したリモートアクセスクライアントが含まれ，ユーザがシンクライアントサーバ１３を利用できるが，シンクライアントサーバ１４のリモートアクセスクライアントは含まれていないため，ユーザはシンクライアントサーバ１４を利用できない。
【００４７】
コンピュータ１１は，完全性検証サーバ１２から送信された追加プログラムをメモリに展開されたシンクライアントＯＳに追加すると，該追加プログラムを利用して，シンクライアントサーバ１３或いはシンクライアントサーバ１４にアクセスし（図２のＳ１０），この手順は終了する。
【００４８】
ここから，図２で図示した手順のS４で実行されるプラットフォーム完全性検証処理について説明しておく。図５は，プラットフォーム完全性検証処理の手順を示したフロー図である。なお，図５で図示した手順の内容は，特許文献２で開示している内容と同じである。
【００４９】
プラットフォーム完全性検証処理が開始されると、コンピュータ１１は，プラットフォーム完全性検証に利用する乱数Ｒｃを生成し、インターネット２を介して、乱数Ｒｃを含む乱数生成要求メッセージを完全性検証サーバ１２に送信する（図５のＳ２０）。なお、コンピュータ１１は、プラットフォーム完全性検証が終了するまで生成した乱数Ｒｃをコンピュータ１１のメモリに保持しておく。
【００５０】
完全性検証サーバ１２は、コンピュータ１１から乱数Ｒｃを受信すると、プラットフォーム完全性検証で利用する乱数Ｒｓを生成し、乱数Ｒｓをコンピュータ１１に送信すると共に（図５のＳ２１）、プラットフォーム完全性検証が終了するまで乱数Ｒｃ及び乱数Ｒｓを完全性検証サーバ１２のメモリに保持する。
【００５１】
コンピュータ１１は、完全性検証サーバ１２から乱数Ｒｓを受信すると、完全性検証サーバ１２から送信された乱数Ｒｓをコンピュータ１１のメモリに保持した後、コンピュータ１１のメモリに展開されたシンクライアントＯＳのイメージすべてから、定められたアルゴリズム（例えば、ＳＨＡ１）に従いハッシュ値を演算し（図５のＳ２２）、ハッシュ値、乱数Ｒｃ及び乱数Ｒｓを結合した構成証明メッセージを生成する（図５のＳ２３）。
【００５２】
コンピュータ１１は構成証明メッセージを生成すると、シンクライアントＯＳにハードコードされているＭＡＣ鍵を用い、定められた手順（例えば、ISO/IEC 9797-1に準じた手順）に従い、構成証明メッセージのＭＡＣを演算する。
【００５３】
コンピュータ１１は構成証明メッセージのＭＡＣを演算すると、構成証明メッセージ及びＭＡＣを含ませたコマンドメッセージをＵＳＢトークン１０に送信することで、構成証明メッセージのデジタル署名の生成をＵＳＢトークン１０に要求する（図５のＳ２４）。
【００５４】
ＵＳＢトークン１０は、構成証明メッセージ及びＭＡＣを含んだコマンドメッセージを受信すると、ＵＳＢトークン１０のスマートカード用ＩＣチップがコマンドメッセージを解釈し、該スマートカード用ＩＣチップは，ＭＡＣ鍵を用い、コンピュータ１１と同じアルゴリズムで構成証明メッセージからＭＡＣを演算し、コンピュータ１１から送信されたＭＡＣと自身が演算したＭＡＣとが同一であるか検証することで、コンピュータ１１で起動しているシンクライアントOSを検証する（図５のＳ２５）。
【００５５】
ＵＳＢトークン１０のスマートカード用ＩＣチップは，構成証明メッセージのＭＡＣの検証に成功／失敗で処理を分岐させ（図５のＳ２６）、構成証明メッセージのＭＡＣの検証に成功したときは、構成証明メッセージのデジタル署名を生成する処理を実行し、構成証明メッセージのＭＡＣの検証に失敗したときは、ＭＡＣの検証に失敗したことを示すエラーメッセージをコンピュータ１１に返信して、この手順を終了する。
【００５６】
ＵＳＢトークン１０のスマートカード用ＩＣチップは、構成証明メッセージのＭＡＣの検証に成功すると、デジタル署名秘密鍵を用い、定められたデジタル署名生成アルゴリズム（例えば、PKCS#1など）に従い、構成証明メッセージのデジタル署名を生成し、生成したデタル署名をコンピュータ１１に返信する（図５のＳ２７）。
【００５７】
コンピュータ１１は、ＵＳＢトークン１０のスマートカード用ＩＣチップから、構成証明メッセージのデジタル署名を受信すると、インターネット２を介して、構成証明メッセージとデジタル署名を完全性検証サーバ１２に送信する（図５のＳ２８）。
【００５８】
構成証明メッセージとデジタル署名を完全性検証サーバ１２が受信すると、完全性検証サーバ１２は、完全性検証サーバ１２が記憶しているデジタル署名公開鍵を用いて、定められたアルゴリズムに従い、構成証明メッセージのデジタル署名を検証することで、デジタル署名を生成したＵＳＢトークン１０の正当性を検証する（図５のＳ２９）。
【００５９】
完全性検証サーバ１２は、構成証明メッセージのデジタル署名の検証に成功すると、完全性検証サーバ１２は、完全性検証サーバ１２のメモリに保持されている乱数Ｒｃ及び乱数Ｒｓ、並びに、ハードディスクなどに記憶しているハッシュ値の期待値を参照し、構成証明メッセージに含まれる乱数Ｒｃ、乱数Ｒｓ及びハッシュ値が正しい値であるか確認することで、構成証明メッセージの正当性を検証し，プラットフォーム完全性検証を終了する（図５のＳ３０）。
【００６０】
ここから，図１で図示したプラットフォーム完全性検証システム１を構成するコンピュータ１１、ＵＳＢトークン１０及び完全性検証サーバ１２について説明する。
【００６１】
図６は、携帯型記憶デバイスであるＵＳＢトークン１０のブロック図である。上述したように，図１で図示したＵＳＢトークン１０は、スマートカード用ＩＣチップ１０ａとフラッシュメモリ１０ｂが統合されたデバイスで，ＵＳＢトークン１０のスマートカード用ＩＣチップ１０ａには，図５のＳ２５からＳ２７を実行するデジタル署名コマンド１００と，デジタル署名コマンド１００が利用する暗号鍵としてＭＡＣ鍵１０２とデジタル署名秘密鍵１０１が記憶されている。
【００６２】
また，ＵＳＢトークン１０のフラッシュメモリ１０ｂには，図２及び図５で図示した手順をコンピュータ１１に実行させるためのシンクライアントＯＳ１０４のイメージ（バイトコード）が記憶されている。
【００６３】
このシンクライアントＯＳ１０４には、図５のＳ２０，Ｓ２２，Ｓ２３，Ｓ２４及びＳ２８を実行し，シンクライアントＯＳ１０４のイメージのハッシュ値を演算する機能を備えたコンピュータプログラムである計測ソフトウェア１０５と，図２のＳ７及びＳ９を実行し，完全性検証サーバ１２から送信される追加プログラムをシンクライアントＯＳに適用する追加プログラム用ソフトウェア１０７が含まれ、更に、計測ソフトウェアにはＭＡＣ鍵１０６がハードコードされている。
【００６４】
図７は、シンクライアント端末として利用されるコンピュータ１１のブロック図で、図７（ａ）は機能ブロック図、図７（ｂ）はハードウェアブロック図である。
【００６５】
図７（ａ）に図示しているように、プラットフォーム完全性検証をするために、コンピュータ１１には、シンクライアントOSを起動させるためのブート手段１１０が備えられている。
【００６６】
図７（ｂ）に図示したようにコンピュータ１１は、ハードウェア資源として、中央演算装置１１ａ（CPU: Central Processing Unit）と、コンピュータ１１のメインメモリであるＲＡＭ１１ｂ（RAM: Random Access Memory）と、ＢＩＯＳが実装されるＲＯＭ１１ｃ（ROM: Read-Only Memory）と、ＵＳＢ機器と通信するためのＵＳＢインターフェース１１ｄと、ネットワーク通信するためのネットワークインターフェース１１ｅと、補助記憶装置として大容量のデータ記憶装置であるハードディスク１１ｆを備え、ハードディスク１１ｆには、シンクライアントシステムで利用されないときにブートされるＯＳ、例えば、マイクロソフト社のＷＩＮＤＯＷＳ（登録商標）が記憶されている。
【００６７】
コンピュータ１１のブート手段１１０は、コンピュータ１１にＵＳＢトークン１０が装着されたことを検知すると、ＵＳＢトークン１０に記憶されたシンクライアントＯＳのイメージをＲＡＭ１１ｂに展開し、シンクライアントＯＳを起動させる手段で、ブート手段１１０は，コンピュータ１１のハードディスク１１ｆに記憶されているＯＳの一つの機能や、ＲＯＭ１１ｃに実装されるＢＩＯＳの機能などで実現される。
【００６８】
コンピュータ１１のブート手段１１０によって，シンクライアントOSの計測ソフトウェアがコンピュータ１１上で起動すると，コンピュータ１１は，図５のＳ２０，Ｓ２２，Ｓ２３，Ｓ２４及びＳ２８を実行する。すなわち，コンピュータ１１は，コンピュータ１１のＲＡＭ１１ｂに展開されたシンクライアントＯＳのイメージのハッシュ値を演算した後、ハッシュ値を含む構成証明メッセージを生成する。
【００６９】
そして、コンピュータ１１は、シンクライアントＯＳにハードコートされたＭＡＣ鍵を用いて、構成証明メッセージの認証コードとしてＭＡＣ（MAC: Message Authentication Code）を演算し、構成証明メッセージと認証コードをＵＳＢトークン１０に送信することで、構成証明メッセージのデジタル署名の生成をＵＳＢトークン１０に要求し、構成証明メッセージのデジタル署名がＵＳＢトークン１０から送信されると、構成証明メッセージとデジタル署名を完全性検証サーバ１２に送信する。
【００７０】
なお、コンピュータ１１が，完全性検証サーバ１２が生成した乱数Ｒｓを構成証明メッセージに含ませると、構成証明メッセージが毎回変わることになるため、同じ構成証明メッセージを不正に再利用することを防止できる。
【００７１】
また、コンピュータ１１が構成メッセージを生成する前に乱数Ｒｃを生成し、生成した乱数Ｒｃを完全性検証サーバ１２に送信しておき、構成証明メッセージに乱数Ｒｃを含ませることで、完全性検証サーバ１２は、構成証明メッセージをコンピュータ１１から受信したときに、間違いなく、プラットフォーム完全性を検証するコンピュータ１１から送信された構成証明メッセージであることが判断できるようになる。
【００７２】
更に，シンクライアントOSの追加プログラム用ソフトウェアが起動すると，コンピュータ１１は，図２のＳ７及びＳ９を実行する。すなわち，コンピュータ１１は，コンピュータ１１では標準的なOS（例えば，Windows（登録商標））などのパッチコマンドと同様に，完全性検証サーバ１２から追加プログラムを受信すると，該追加プログラムをシンクライアントＯＳに組み込む形式で，コンピュータ１１のメモリにロードする。
【００７３】
図８は、インターネット２を介してコンピュータ１１と接続されている完全性検証サーバ１２のブロック図である。図８（ａ）は機能ブロック図、図８（ｂ）はハードウェアブロック図である。
【００７４】
図８（ａ）に図示しているように、完全性検証サーバ１２は，デジタル署名公開鍵１２１を利用して，構成メッセージのデジタル署名の検証する機能と，ハッシュ値の期待値１２２を利用して，構成証明メッセージの本体を検証する機能を備えたプラットフォーム完全性検証手段１２０と、プラットフォーム完全性検証に成功したコンピュータ１１に対し、追加プログラムを送信する追加プログラム追加手段１２３を備え、これらの手段は，完全性検証サーバ１２を各手段として機能させるためのコンピュータプログラムで実現される。
【００７５】
図８（ｂ）に図示しているように、完全性検証サーバ１２は、ハードウェア資源として、ＣＰＵ１２ａと、完全性検証サーバ１２のメインメモリであるＲＡＭ１２ｂと、ＢＩＯＳが実装されるＲＯＭ１２ｃと、ネットワーク通信するためのネットワークインターフェース１２ｄと、補助記憶装置として大容量のデータ記憶装置であるハードディスクを備え、ハードディスク１２ｅには、コンピュータ１１に送信する可能性のある様々な追加プログラムが記憶されている。
【００７６】
完全性検証サーバ１２のプラットフォーム完全性検証手段１２０は、図５のＳ２１，Ｓ２９及びＳ３０を実行する手段で，コンピュータ１１から、構成証明メッセージとデジタル署名を受信すると作動し、デジタル署名公開鍵１２１を用いて、定められたデジタル署名検証アルゴリズムに従い、構成証明メッセージのデジタル署名を検証することで、デジタル署名を生成したＵＳＢトークン１０の正当性を検証する。
【００７７】
そして，プラットフォーム完全性検証手段１２０は、シンクライアントＯＳのハッシュ値の期待値１２２を参照し、構成証明メッセージに含まれるハッシュ値が正しい内容であるか確認することで、構成証明メッセージの正当性を検証する。
【００７８】
なお、構成証明メッセージが乱数Ｒｃ及び乱数Ｒｓを含んでいるとき、プラットフォーム完全性検証手段１２０は、シンクライアントＯＳのハッシュ値の期待値１２２に加え、ＲＡＭに記憶している乱数Ｒｃ及び乱数Ｒｓを参照して、構成証明メッセージの正当性を検証する。
【００７９】
完全性検証サーバ１２の追加プログラム追加手段１２３は，図２のＳ８を実行する手段で，プラットフォーム完全性検証手段１２０がプラットフォーム完全性検証に成功し，シンクライアントサーバ１３或いはシンクライアントサーバ１４を利用するために必要な追加プログラムの特定情報をコンピュータ１１から受信すると作動し，ハードディスク１２ｅに記憶されている追加プログラムの中から，該特定情報で特定される追加プログラムを特定し，該追加プログラムを該コンピュータ１１に送信する手段である。
【００８０】
なお、本発明は、これまで説明した実施の形態に限定されることなく、種々の変形や変更が可能である。例えば，図１で図示したプラットフォーム完全性検証システム１においては，セキュリティトークンの機能と携帯型記憶デバイスの機能を兼ね備えたＵＳＢトークン１０を利用していたが，セキュリティトークンと携帯型記憶デバイスを個別の装置とすることもできる。
【００８１】
このとき，ユーザは，セキュリティトークンとして，ＵＳＢトークン１０のスマートカード用ＩＣチップ１０ａに備えられたデジタル署名コマンド１００，ＭＡＣ鍵１０２及びデジタル署名秘密鍵１０１を記憶したＩＣカードを所持し，更に，携帯型記憶デバイスとして，ＵＳＢトークン１０のフラッシュメモリ１０ｂに記憶していたシンクライアントOSを記憶したＵＳＢメモリを所持し，シンクライアント端末として利用するコンピュータ１１に該ＩＣカードと通信するためのＩＣカードリーダを備えさせる。
【図面の簡単な説明】
【００８２】
【図１】プラットフォーム完全性検証システムを説明する図。
【図２】プラットフォーム完全性検証システムで実行される手順を示したフロー図。
【図３】コンピュータのメモリに展開されるシンクライアントOSを説明する図。
【図４】追加プログラムが適用された後のシンクライアントＯＳを説明する図。
【図５】プラットフォーム完全性検証処理の手順を示したフロー図。
【図６】ＵＳＢトークンのブロック図。
【図７】コンピュータのブロック図。
【図８】完全性検証サーバのブロック図。
【符号の説明】
【００８３】
１  プラットフォーム完全性検証システム
１０  ＵＳＢトークン
１１  コンピュータ
１２  完全性検証サーバ
１３，１４  シンクライアントサーバ
【図１】
2010128818.tif 000003
【図２】
2010128818.tif 000004
【図３】
2010128818.tif 000005
【図４】
2010128818.tif 000006
【図５】
2010128818.tif 000007
【図６】
2010128818.tif 000008
【図７】
2010128818.tif 000009
【図８】
2010128818.tif 000010