(57)【特許請求の範囲】
【請求項１】
シンクライアントに利用されるクライアントと、クライアントに装着される携帯型記憶デバイスと、物理的なデバイスであるセキュリティトークンと、インターネットワークを介して前記クライアントと接続された認証サーバとから、少なくとも構成されたプラットフォーム完全性検証システムであって、前記携帯型記憶デバイスは、前記クライアントをシンクライアントとして動作させるためのオペレーティングシステム（OS: Operating System）のイメージを記憶し、前記クライアントは、マウントした前記携帯型記憶デバイスに記憶された前記ＯＳのイメージを読取り、前記ＯＳを前記クライアント上で起動させるブート手段と、前記クライアントのメモリに展開された前記ＯＳのイメージから演算したハッシュ値を含む構成証明メッセージを生成し、前記構成証明メッセージから演算した認証コードと共に前記構成証明メッセージを前記セキュリティトークンに送信することで、前記構成証明メッセージのデジタル署名の生成を前記セキュリティトークンに要求し、前記セキュリティトークンから前記構成証明メッセージのデジタル署名を受信すると、前記構成証明メッセージのデジタル署名と前記構成証明メッセージを前記認証サーバに送信する計測手段を備え、前記セキュリティトークンは、前記構成証明メッセージのデジタル署名の生成に利用する第１のデジタル署名鍵を記憶する手段と、前記計測手段から送信された前記構成証明メッセージを参照することで前記認証コードを検証し、前記認証コードの検証に成功すると、前記構成証明メッセージのデジタル署名を生成し、生成した前記構成証明メッセージのデジタル署名を返信する手段とを備え、前記認証サーバは、前記構成証明メッセージのデジタル署名の検証に利用する第２のデジタル署名鍵と前記ＯＳのハッシュ値の期待値を記憶する手段と、前記第２のデジタル署名鍵を利用して、前記計測手段から送信された前記構成証明メッセージのデジタル署名を検証するデジタル署名検証手段と、前記構成証明メッセージのデジタル署名の検証に成功したときに、前記ＯＳのハッシュ値の期待値と受信した前記構成証明メッセージに含まれる前記ハッシュ値が一致しているか確認することで、前記構成証明メッセージを検証するメッセージ検証手段を備え、前記携帯型記憶デバイスに記憶された前記ＯＳには、前記ＯＳ上で動作し、前記計測手段として前記クライアントを機能させるためのコンピュータプログラムである計測ソフトウェアが含まれていることを特徴とするプラットフォーム完全性検証システム。
【請求項２】
請求項１に記載のプラットフォーム完全性検証システムにおいて、前記クライアントに備えられた計測手段は、前記ＯＳのハッシュ値を演算する前に、前記認証サーバに対して第１の乱数の生成を要求し、前記認証サーバから受信した前記第１の乱数と前記ＯＳのハッシュ値を前記構成証明メッセージに含ませ、前記認証サーバは、前記クライアントから前記第１の乱数の生成要求を受けると、前記第１の乱数を生成すると共に、前記第１の乱数を保持し、前記メッセージ検証手段は、前記構成証明メッセージを検証するときに、前記ＯＳのハッシュ値に加え、前記構成証明メッセージに含まれる前記第１の乱数の一致を確認することを特徴とするプラットフォーム完全性検証システム。
【請求項３】
請求項２に記載のプラットフォーム完全性検証システムにおいて、前記クライアントに備えられた計測手段は、前記認証サーバに対して第１の乱数の生成を要求するときに、第２の乱数を生成し、生成した前記第２の乱数を前記認証サーバに送信し、前記第１の乱数および前記第２の乱数を前記構成証明メッセージに含ませ、前記認証サーバは、前記クライアントから前記第１の乱数の生成要求を受けたときに受信した前記第２の乱数を保持し、前記メッセージ検証手段は、前記構成証明メッセージを検証するときに、前記ＯＳのハッシュ値および前記第１の乱数に加え、前記第２の乱数の一致を確認することを特徴とするプラットフォーム完全性検証システム。
【請求項４】
シンクライアントに利用されるクライアントと、前記クライアントに装着される携帯型記憶デバイスと、物理的なデバイスであるセキュリティトークンと、インターネットワークを介して前記クライアントと接続された認証サーバとを、少なくとも利用したプラットフォーム完全性検証方法であって、前記クライアントに前記携帯型記憶デバイスがマウントされたときに、前記クライアントをシンクライアントとして動作させるためのオペレーティングシステム（OS: Operating System）のイメージを前記携帯型記憶デバイスから読み込み、前記ＯＳを前記クライアント上で起動させるステップａ、前記クライアントが、前記ＯＳのイメージから演算したハッシュ値を含む構成証明メッセージを生成し、構成証明メッセージから演算した認証コードと共に前記構成証明メッセージを前記セキュリティトークンに送信することで、前記構成証明メッセージのデジタル署名の生成を前記セキュリティトークンに要求するステップｂ、前記セキュリティトークンが、前記計測ソフトウェアから送信された前記構成証明メッセージの認証コードを検証し、認証コードの検証に成功すると、前記構成証明メッセージのデジタル署名の生成に利用する第１のデジタル署名鍵を利用して、前記構成証明メッセージのデジタル署名を生成し、生成した前記構成証明メッセージのデジタル署名を前記クライアントに返信するステップｃ、前記クライアントが、前記セキュリティトークンから前記構成証明メッセージのデジタル署名を受信すると、前記セキュリティトークンが生成したデジタル署名と前記構成証明メッセージを前記認証サーバに送信するステップｄ、前記認証サーバが、前記構成証明メッセージのデジタル署名の検証に利用する第２のデジタル署名鍵を利用して、前記計測手段から送信された前記構成証明メッセージのデジタル署名を検証し、前記構成証明メッセージのデジタル署名の検証に成功したときに、前記ＯＳのハッシュ値の期待値と受信した前記構成証明メッセージに含まれる前記ハッシュ値が一致しているか確認することで、前記構成証明メッセージを検証するステップｅ、を含み、前記ステップａで起動する前記ＯＳには、前記ＯＳ上で動作し、前記ステップｂおよび前記ステップｄを前記クライアントに機能させるためのコンピュータプログラムである計測ソフトウェアが含まれ、前記ステップａにおいて、前記クライアントは、前記ＯＳを起動させた後に、前記計測ソフトウェアを起動させるステップであることを特徴とするプラットフォーム完全性検証方法。
【請求項５】
請求項４に記載のプラットフォーム完全性検証方法において、前記ステップｂの前に、前記クライアントが、前記ハッシュ値を演算する前に、前記認証サーバに対して第１の乱数の生成を要求し、前記認証サーバが前記第１の乱数を前記クライアントに送信するステップａ１が実行され、前記ステップｂは、前記クライアントが、前記認証サーバから受信した前記第１の乱数と前記ＯＳのハッシュ値を前記構成証明メッセージに含ませるステップで、前記ステップｅは、前記認証サーバが、前記構成証明メッセージを検証するときに、前記ＯＳのハッシュ値に加え、前記第１の乱数の一致を確認するステップであることを特徴とするプラットフォーム完全性検証方法。
【請求項６】
請求項５に記載のプラットフォーム完全性検証システムにおいて、前記ステップａ１は、前記認証サーバに対して第１の乱数の生成を要求するときに、前記クライアントが、第２の乱数を生成し、生成した前記第２の乱数を前記認証サーバに送信するステップで、前記ステップｂは、前記クライアントが、前記第１の乱数、前記第２の乱数および前記ＯＳのハッシュ値を前記構成証明メッセージに含ませるステップで、前記ステップｅは、前記認証サーバが、前記構成証明メッセージを検証するときに、前記ＯＳのハッシュ値および前記第１の乱数に加え、前記第２の乱数の一致を確認するステップであることを特徴とするプラットフォーム完全性検証方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シンクライアントとして利用されるクライアントのプラットフォームの完全性を検証するシステムおよび方法に関する。
【背景技術】
【０００２】
近年、企業などにおいて、クライアントに必要最小限の機能のみを持たせ、機密情報などの情報資源の管理や、アプリケーションの処理などの機能をサーバに集約させたシンクライアントシステム（Thin Client System）の導入が増えてきている。
【０００３】
シンクライアントシステムの導入の背景には、（１）日本版ＳＯＸ法に対応すべく内部統制の強化、（２）クライアントからの個人情報流出防止などを目的としたセキュリティの強化、（３）クライアントの運用管理コスト（パッチ情報、ライセンス管理など）の削減、（４）テレワーク(Telework)の実現等などがある。
【０００４】
とりわけ、在宅勤務が可能となるテレワークは、地域活性化や少子高齢化問題などの解決手段として期待されており、テレワークを実現するためには、企業内と同じセキュアな環境で、社内に設置されたコンピュータやサーバにリモートアクセスを行えることが必要となる。
【０００５】
シンクライアントシステムを実現するために、シンクライアントシステム専用のコンピュータを導入してもよいが、シンクライアントシステム専用のコンピュータの導入は、コスト・利便性両方の面から望ましとは言えない。
【０００６】
そこで、特許文献１にも記述されているように、ＵＳＢメモリ、ＣＤ−ＲＯＭなどの携帯可能なデバイスや、ネットワークストレージにシンクライアントシステム専用のＯＳオペレーティングシステム（OS: Operating System）を記憶させて、汎用のコンピュータをシンクライアントシステムのクライアントとして利用するときに、シンクライアントシステム専用のＯＳを汎用のコンピュータ上でブートさせる手法が用いられる。
【０００７】
しかし、故意的或いは偶発的にしても、ＵＳＢメモリなどに記憶されたシンクライアントシステム専用のＯＳが改竄されてしまうと、個人データなどの機密データが漏洩する可能性があるため、クライアントのメモリに展開されるシンクライアントシステム専用のＯＳの改竄を発見するプラットフォーム完全性検証が必要とされる。
【０００８】
【特許文献１】特開２００７−２９９１３６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
シンクライアントシステム専用のＯＳに係らず、一般的なソフトウェアの改竄の脅威に対して、コンピュータ業界団体の一つであるＴＣＧ（TCG: Trusted Computing Group）では、ＴＰＭ(TPM: TrustedPlatform Module)と呼ばれるセキュリティチップをコンピュータのコンピュータ基板上に設け、ソフトウェアの信頼性を高める業界標準仕様の策定を進めている。
【００１０】
しかし、現状では、この提案に沿ってＴＰＭを実装したコンピュータは少なく、現状では、ＴＣＧが提案しているプラットフォーム完全性検証を行うのは難しい。
【００１１】
そこで、上述した問題を鑑みて、本発明は、ＴＣＧが策定しているＴＰＭのような特定なセキュリティチップをコンピュータ基板上に設けることなくても、シンクライアントシステムで利用されるクライアントのプラットフォーム完全性を検証できるシステムおよび方法を提供することを目的とする。
【課題を解決するための手段】
【００１２】
上述した課題を解決する第１の発明は、シンクライアントに利用されるクライアントと、クライアントに装着される携帯型記憶デバイスと、物理的なデバイスであるセキュリティトークンと、インターネットワークを介して前記クライアントと接続された認証サーバとから、少なくとも構成されたプラットフォーム完全性検証システムであって、前記携帯型記憶デバイスは、前記クライアントをシンクライアントとして動作させるためのオペレーティングシステム（OS: Operating System）のイメージを記憶し、前記クライアントは、マウントした前記携帯型記憶デバイスに記憶された前記ＯＳのイメージを読取り、前記ＯＳを前記クライアント上で起動させるブート手段と、前記クライアントのメモリに展開された前記ＯＳのイメージから演算したハッシュ値を含む構成証明メッセージを生成し、前記構成証明メッセージから演算した認証コードと共に前記構成証明メッセージを前記セキュリティトークンに送信することで、前記構成証明メッセージのデジタル署名の生成を前記セキュリティトークンに要求し、前記セキュリティトークンから前記構成証明メッセージのデジタル署名を受信すると、前記構成証明メッセージのデジタル署名と前記構成証明メッセージを前記認証サーバに送信する計測手段を備え、前記セキュリティトークンは、前記構成証明メッセージのデジタル署名の生成に利用する第１のデジタル署名鍵を記憶する手段と、前記計測ソフトウェアから送信された前記構成証明メッセージを参照することで前記認証コードを検証し、前記認証コードの検証に成功すると、前記構成証明メッセージのデジタル署名を生成し、生成した前記構成証明メッセージのデジタル署名を返信する手段とを備え、前記認証サーバは、前記構成証明メッセージのデジタル署名の検証に利用する第２のデジタル署名鍵と前記ＯＳのハッシュ値の期待値を記憶する手段と、前記第２のデジタル署名鍵を利用して、前記計測手段から送信された前記構成証明メッセージのデジタル署名を検証するデジタル署名検証手段と、前記構成証明メッセージのデジタル署名の検証に成功したときに、前記ＯＳのハッシュ値の期待値と受信した前記構成証明メッセージに含まれる前記ハッシュ値が一致しているか確認することで、前記構成証明メッセージを検証するメッセージ検証手段を備え、前記携帯型記憶デバイスに記憶された前記ＯＳには、前記ＯＳ上で動作し、前記計測手段として前記クライアントを機能させるためのコンピュータプログラムである計測ソフトウェアが含まれることを特徴とするプラットフォーム完全性検証システムである。
【００１３】
上述した第１の発明によれば、前記第１のデジタル署名鍵を記憶した前記セキュリティトークンがプラットフォーム完全性検証に利用されるため、前記クライアントのコンピュータ基板上にＴＰＭなどの特別なセキュリティチップを設ける必要はなくなる。
【００１４】
なお、本発明において、前記セキュリティトークンとは、社員証などで普及しているＩＣカード、ＳＩＭ（Subscriber Identity Module）、ＵＩＭ（Universal Subscriber Identity Module）などの、データを秘匿に記憶でき、更に、演算機能を備えた携帯可能なデバイスを意味し、前記携帯型記憶デバイスは、ＣＤ−ＲＯＭ、ＤＶＤまたはＵＳＢメモリなどを意味している。
【００１５】
前記認証サーバに備えられた前記メッセージ検証手段が、前記構成証明メッセージのデジタル署名を検証するのは、信頼性のあるユーザが操作している前記クライアントであるか検証するためである。予め信頼性のあるユーザに対してのみ前記セキュリティトークンを配布しておけば、前記構成証明メッセージのデジタル署名を検証することによって、前記クライアントを操作しているユーザをも検証できることになる。
【００１６】
なお、前記ＯＳのハッシュ値を演算するために、前記クライアント上で起動する前記計測ソフトウェアの信頼性を、前記セキュリティモジュールは、前記計測ソフトウェアが演算する前記認証コードを用いて検証する。
【００１７】
更に、第２の発明は、第１の発明に記載のプラットフォーム完全性検証システムにおいて、前記クライアントに備えられた計測手段は、前記ＯＳのハッシュ値を演算する前に、前記認証サーバに対して第１の乱数の生成を要求し、前記認証サーバから受信した前記第１の乱数と前記ＯＳのハッシュ値を前記構成証明メッセージに含ませ、前記認証サーバは、前記クライアントから前記第１の乱数の生成要求を受けると、前記第１の乱数を生成すると共に、前記第１の乱数を保持し、前記メッセージ検証手段は、前記構成証明メッセージを検証するときに、前記ＯＳのハッシュ値に加え、前記構成証明メッセージに含まれる前記第１の乱数の一致を確認することを特徴とする。
【００１８】
上述した第２の発明によれば、前記認証サーバが生成した前記第１の乱数を前記構成証明メッセージに含ませることで、前記構成証明メッセージの内容は、プラットフォーム完全性検証を行うごとに変わるため、前記構成証明メッセージが再利用されることを防止できる。
【００１９】
更に、第３の発明は、第２の発明に記載のプラットフォーム完全性検証システムにおいて、前記クライアントに備えられた計測手段は、前記認証サーバに対して第１の乱数の生成を要求するときに、第２の乱数を生成し、生成した前記第２の乱数を前記認証サーバに送信し、前記第１の乱数および前記第２の乱数を前記構成証明メッセージに含ませ、前記認証サーバは、前記クライアントから前記第１の乱数の生成要求を受けたときに受信した前記第２の乱数を保持し、前記メッセージ検証手段は、前記構成証明メッセージを検証するときに、前記ＯＳのハッシュ値および前記第１の乱数に加え、前記第２の乱数の一致を確認することを特徴とする。
【００２０】
上述した第３の発明によれば、前記クライアントに備えられた前記計測手段が生成した前記第２の乱数を前記構成証明メッセージに含ませることで、前記クライアントの成りすます行為を防止することができる。
【００２１】
更に、第４の発明は、シンクライアントに利用されるクライアントと、前記クライアントに装着される携帯型記憶デバイスと、物理的なデバイスであるセキュリティトークンと、インターネットワークを介して前記クライアントと接続された認証サーバとを、少なくとも利用したプラットフォーム完全性検証方法であって、前記クライアントに前記携帯型記憶デバイスがマウントされたときに、前記クライアントをシンクライアントとして動作させるためのオペレーティングシステム（OS: Operating System）のイメージを前記携帯型記憶デバイスから読み込み、前記ＯＳを前記クライアント上で起動させるステップａ、前記クライアントが、前記ＯＳのイメージから演算したハッシュ値を含む構成証明メッセージを生成し、構成証明メッセージから演算した認証コードと共に前記構成証明メッセージを前記セキュリティトークンに送信することで、前記構成証明メッセージのデジタル署名の生成を前記セキュリティトークンに要求するステップｂ、前記セキュリティトークンが、前記計測ソフトウェアから送信された前記構成証明メッセージの認証コードを検証し、認証コードの検証に成功すると、前記構成証明メッセージのデジタル署名の生成に利用する第１のデジタル署名鍵を利用して、前記構成証明メッセージのデジタル署名を生成し、生成した前記構成証明メッセージのデジタル署名を前記クライアントに返信するステップｃ、前記クライアントが、前記セキュリティトークンから前記構成証明メッセージのデジタル署名を受信すると、前記セキュリティトークンが生成したデジタル署名と前記構成証明メッセージを前記認証サーバに送信するステップｄ、
前記認証サーバが、前記構成証明メッセージのデジタル署名の検証に利用する第２のデジタル署名鍵を利用して、前記計測手段から送信された前記構成証明メッセージのデジタル署名を検証し、前記構成証明メッセージのデジタル署名の検証に成功したときに、前記ＯＳのハッシュ値の期待値と受信した前記構成証明メッセージに含まれる前記ハッシュ値が一致しているか確認することで、前記構成証明メッセージを検証するステップｅ、を含み、前記ステップａで起動する前記ＯＳには、前記ＯＳ上で動作し、前記ステップｂおよび前記ステップｄを前記クライアントに機能させるためのコンピュータプログラムである計測ソフトウェアが含まれ、前記ステップａにおいて、前記クライアントは、前記ＯＳを起動させた後に、前記計測ソフトウェアを起動させるステップであることを特徴とするプラットフォーム完全性検証方法である。
【００２２】
更に、第５の発明は、第４の発明に記載のプラットフォーム完全性検証方法において、前記ステップｂの前に、前記クライアントが、前記ハッシュ値を演算する前に、前記認証サーバに対して第１の乱数の生成を要求し、前記認証サーバが前記第１の乱数を前記クライアントに送信するステップａ１が実行され、前記ステップｂは、前記クライアントが、前記認証サーバから受信した前記第１の乱数と前記ＯＳのハッシュ値を前記構成証明メッセージに含ませるステップで、前記ステップｅは、前記認証サーバが、前記構成証明メッセージを検証するときに、前記ＯＳのハッシュ値に加え、前記第１の乱数の一致を確認するステップであることを特徴とする。
【００２３】
更に、第６の発明は、第５の発明に記載のプラットフォーム完全性検証システムにおいて、前記ステップａ１は、前記認証サーバに対して第１の乱数の生成を要求するときに、前記クライアントが、第２の乱数を生成し、生成した前記第２の乱数を前記認証サーバに送信するステップで、前記ステップｂは、前記クライアントが、前記第１の乱数、前記第２の乱数および前記ＯＳのハッシュ値を前記構成証明メッセージに含ませるステップで、前記ステップｅは、前記認証サーバが、前記構成証明メッセージを検証するときに、前記ＯＳのハッシュ値および前記第１の乱数に加え、前記第２の乱数の一致を確認するステップであることを特徴とする。
【００２４】
上述した第４の発明から第６の発明によれば、第１の発明から第３の発明と同様の効果が得られる。
【発明の効果】
【００２５】
このように、本発明によれば、ＴＣＧが策定しているＴＰＭのような特定なセキュリティチップをコンピュータ基板上に設けることなくても、シンクライアントシステムで利用されるクライアントのプラットフォーム完全性を検証できるシステムおよび方法を提供できる。
【発明を実施するための最良の形態】
【００２６】
ここから、本実施形態に係るプラットフォーム完全性検証システムおよび方法について、図を参照しながら詳細に説明する。図１は、プラットフォーム完全性検証システムが適用されたシンクライアントシステム１を説明する図である。
【００２７】
図１に図示したシンクライアントシステム１は、セキュリティトークンであるＳＩＭ２０と、ＳＩＭ２０が装着されるＳＩＭリーダ５０と、携帯型記憶デバイスであるＵＳＢメモリ３０と、ＳＩＭリーダ５０およびＵＳＢメモリ３０が装着されるクライアント１０と、ＤＭＺ（DMZ: DeMilitarized Zone）を形成するためのファイヤーオール機器５１と、ＤＭＺ６１に設置されるＶＰＮ機器５２（VPN: Virtual Private Network）と、ＬＡＮ６２(LAN: Local Area Network)内に設置されるＲＡＤＩＵＳサーバ５３（Radius Server, Radius:  Remote Authentication Dial In User Service）と、認証サーバ４０（Authenticaion Server）と、ルータ５４（Router）と、ルータ５４に接続された社内のパーソナルコンピュータ５５（PC: Personal Computer）とから構成されている。
【００２８】
本実施形態に係るシンクライアントシステム１は、テレワークを実現するために実施されるシステムで、ＬＡＮ６２にアクセスするときにユーザが利用するクライアント１０は、自宅に設置されているＰＣや、持ち運び可能なノート型のＰＣや、或いは、インターネットカフェに設置されているＰＣなどの汎用的なＰＣなどを想定し、シンクライアントオペレーティングシステム（OS: Operating System）が汎用的なＰＣ上で動作することで、シンクライアントシステム１のクライアント１０として汎用的なＰＣは機能する。
【００２９】
ユーザがクライアント１０を利用してＬＡＮ６２にアクセスするとき、クライアント１０を利用するユーザの認証に加え、クライアント１０のプラットフォーム完全性検証を必要とし、本実施形態において、クライアント１０のプラットフォーム完全性検証として、シンクライアントＯＳ３１０が改竄されていないことが検証される。
【００３０】
ＬＡＮ６２内に設置されたＲＡＤＩＵＳサーバ５３は、クライアント１０を利用するユーザを認証する機能を担い、ＲＡＤＩＵＳサーバ５３は、ＶＰＮ機器５２を介して、ＬＡＮ６２にアクセスするクライアント１０から送信されるユーザ名と認証データ（例えば、ユーザパスワード）を用いて、クライアント１０を利用するユーザを認証し、ユーザの認証に成功すると、ユーザの認証に成功したことを示すメッセージをＶＰＮ機器５２に送信し、ＶＰＮ５２機器は、クライアント１０とＶＰＮ機器５２間をＶＰＮで接続する。
【００３１】
ファイヤーウォール機器５１で形成されるＤＭＺ６１に設置されるＶＰＮ機器５２は、Ｉｐｓｅｃ（Ipsec: Security Architecture for Internet Protocol）を利用して、インターネット６０を介してＬＡＮ６２にアクセスするクライアント１０と送受信するデータを暗号化することで、ＶＰＮを構築するために設置される機器である。
【００３２】
図１で図示した機器の中で、プラットフォーム完全性検証システムとして機能するために必要な機器は、シンクライアントとして動作するクライアント１０と、携帯型記憶デバイスであるＵＳＢメモリ３０と、セキュアトークンであるＳＩＭ２０と、クライアント１０とインターネットを介して接続された認証サーバ４０とであって、ＳＩＭ２０は、特許文献２、３等で開示されているような、ＵＳＢコネクタを備えたＳＩＭリーダ５０に装着され利用される。
【特許文献２】特開２００４−１１８７７１号公報
【特許文献３】特開２００４−１３３８４３号公報
【００３３】
図２は、携帯型記憶デバイスであるＵＳＢメモリ３０のブロック図である。ＵＳＢメモリ３０としては、ブートアップ機能が備えられた市販されているＵＳＢメモリ３０を用いることができ、ＵＳＢメモリ３０は、ＵＳＢドライバや、フラッシュメモリを外部記憶装置としてコンピュータに認識させる機能を備えたドライバチップと、データを記憶するためのフラッシュメモリを備えている。
【００３４】
本実施形態において、ＵＳＢメモリ３０のフラッシュメモリ３０１には、クライアント１０上で動作するシンクライアントＯＳ３１０のイメージ（バイトコード）が記憶されている。シンクライアントＯＳ３１０には、シンクライアントＯＳ３１０のイメージのハッシュ値を演算する機能を備えたコンピュータプログラムである計測ソフトウェア３１１が含まれ、更に、計測ソフトウェア３１１が利用する暗号鍵としてＭＡＣ鍵３１２がハードコードされている。
【００３５】
図３は、シンクライアントとして利用されるクライアント１０のブロック図で、図３（ａ）は機能ブロック図、図３（ｂ）はハードウェアブロック図である。
【００３６】
図３（ａ）に図示しているように、プラットフォーム完全性検証をするために、クライアント１０には、ブート手段１１０と計測手段１１１が備えられている。
【００３７】
図３（ｂ）に図示したようにクライアント１０は、ハードウェア資源として、中央演算装置（CPU: Central Processing Unit）１００と、クライアント１０のメインメモリであるＲＡＭ１０１（RAM: Random Access Memory）と、ＢＩＯＳが実装されるＲＯＭ１０２（ROM: Read-Only Memory）と、ＵＳＢ機器と通信するためのＵＳＢインターフェース１０３と、ネットワーク通信するためのネットワークインターフェース１０４と、補助記憶装置として大容量のデータ記憶装置１０５（例えば、ハードディスク）を備え、大容量のデータ記憶装置１０５には、シンクライアントシステム１のクライアント１０として利用されないときにブートされるクライアントＯＳ１０６、例えば、マイクロソフト社のＷＩＮＤＯＷＳ（登録商標）が記憶されている。
【００３８】
クライアント１０のブート手段１１０は、クライアント１０にＵＳＢメモリ３０が装着されたことを検知すると、ＵＳＢメモリ３０をマウントし、ＵＳＢメモリ３０に記憶されたシンクライアントＯＳ３１０のイメージをＲＡＭ１０１に展開し、シンクライアントＯＳ３１０を起動させる手段で、ブート手段１１０は、クライアント１０に記憶されているクライアントＯＳ１０６の一つの機能や、ＲＡＭ１０２に実装されるＢＩＯＳの機能などで実現される。
【００３９】
クライアント１０のブート手段１１０によって、シンクライアントＯＳ３１０がクライアント１０上で起動すると、シンクライアントＯＳ３１０に含まれる計測ソフトウェア３１１が自動的に起動する。計測ソフトウェア３１１とは、クライアント１０を本発明の計測手段１１１として機能させるためのコンピュータプログラムで、この計測ソフトウェア３１１が起動することで、クライアント１０に計測手段１１１が具備されることになる。
【００４０】
クライアント１０の計測手段１１１は起動すると、シンクライアントＯＳ３１０のイメージのハッシュ値を演算した後、ハッシュ値を含む構成証明メッセージを生成する。そして、計測手段１１１は、シンクライアントＯＳ３１０にハードコートされたＭＡＣ鍵３１２を用いて、構成証明メッセージの認証コードとしてＭＡＣ（MAC: Message Authentication Code）を演算し、構成証明メッセージと認証コードをＳＩＭ２０に送信することで、構成証明メッセージのデジタル署名の生成をＳＩＭ２０に要求し、構成証明メッセージのデジタル署名がＳＩＭ２０から送信されると、構成証明メッセージとデジタル署名を認証サーバ４０に送信する。
【００４１】
なお、計測手段１１１が構成証明メッセージを生成する前に、認証サーバ４０が生成した乱数Ｒｓを構成証明メッセージに含ませておくと、構成証明メッセージが毎回変わることになるため、同じ構成証明メッセージを不正に再利用することを防止できる。また、計測手段１１１が構成メッセージを生成する前に乱数Ｒｃを生成し、生成した乱数Ｒｃを認証サーバ４０に送信し、構成証明メッセージに乱数Ｒｃを含ませることで、認証サーバ４０は、構成証明メッセージをクライアント１０から受信したときに、間違いなく、プラットホーム完全性を検証するクライアント１０から送信された構成証明メッセージであることが判断できるようになる。
【００４２】
図４は、セキュリティデバイスであるＳＩＭ２０のブロック図である。図４に図示したように、ＳＩＭ２０は、ハードウェア資源として、ＣＰＵ２００と、ＲＡＭ２０１と、ＣＰＵを動作させるコンピュータプログラムが実装されるＲＯＭ２０２（ROM: Read-Only Memory）と、ＩＳＯ／７８１６規格のＵＡＲＴ２０３（UART: Universal Asynchronous Receiver Transmitter）と、データが記憶される電気的に書換え可能なメモリとしてＥＥＰＲＯＭ２０４（EEPROM: Electronically Erasable and Programmable Read Only Memory）を備え、ＳＩＭ２０が装着されるＳＩＭリーダ５０とは、ＩＳＯ／７８１６規格に準じデータをやりとりする。
【００４３】
ＳＩＭ２０のＥＥＰＲＯＭ２０４には、クライアント１０のプラットフォーム完全性検証で利用される暗号鍵として、ＭＡＣ鍵２１２とデジタル署名秘密鍵２１１が記憶されている。また、ＳＩＭ２０のＲＯＭ２０２には、ＭＡＣ鍵２１２を用いて、クライアント１０の計測手段１１１が生成する構成証明メッセージのＭＡＣを検証し、構成証明メッセージの検証に成功すると、デジタル署名秘密鍵２１１を用いて、構成証明メッセージのデジタル署名を生成する手段となるデジタル署名コマンド２１０が実装されている。
【００４４】
なお、本実施形態では、デジタル署名コマンド２１０をＲＯＭ２０２に実装しているが、ＪＡＶＡ（登録商標）などのマルチアプリケーションＯＳをＲＯＭ２０２実装し、デジタル署名コマンド２１０をＥＥＰＲＯＭ２０４に実装させてもよい。
【００４５】
図５は、インターネット６０を介してクライアント１０と接続されている認証サーバ４０のブロック図である。図５（ａ）は機能ブロック図、図５（ｂ）はハードウェアブロック図である。
【００４６】
図５（ａ）に図示しているように、プラットフォーム完全性検証をするために、認証サーバ４０は、ＳＩＭ２０が生成したデジタル署名を検証するときに利用するデジタル署名公開鍵４１２を記憶し、構成証明メッセージのデジタル署名を検証するデジタル署名検証手段４１０と、構成証明メッセージの正当性を検証するメッセージ検証手段４１１とを備え、それぞれの手段は、認証サーバ４０を各手段として機能させるためのコンピュータプログラムで実現される。
【００４７】
図５（ｂ）に図示しているように、認証サーバ４０は、ハードウェア資源として、ＣＰＵ４００と、認証サーバ４０のメインメモリであるＲＡＭ４０１と、ＢＩＯＳが実装されるＲＯＭ４０２と、ネットワーク通信するためのネットワークインターフェース４０３と、補助記憶装置として大容量のデータ記憶装置４０４（例えば、ハードディスク）を備え、大容量のデータ記憶装置４０４には、認証サーバ４０上で動作するサーバＯＳ４０５が記憶され、サーバＯＳ４０５には、デジタル署名検証手段４１０およびメッセージ検証手段４１１として認証サーバ４０を機能させるためのコンピュータプログラムと、ＳＩＭ２０に記憶されているデジタル署名秘密鍵２１１と対になるデジタル署名公開鍵４１２と、シンクライアントＯＳ３１０のハッシュ値の期待値４１３が含まれる。
【００４８】
認証サーバ４０のデジタル署名検証手段４１０は、クライアント１０から、構成証明メッセージとデジタル署名を受信すると作動し、認証サーバ４０のデジタル署名検証手段４１０は、認証サーバ４０のデータ記憶装置４０４に記憶されているデジタル署名公開鍵４１２を用いて、定められたデジタル署名検証アルゴリズムに従い、構成証明メッセージのデジタル署名を検証することで、デジタル署名を生成したＳＩＭ２０の正当性を検証する。
【００４９】
認証サーバ４０のメッセージ検証手段４１１は、デジタル署名検証手段４１０が、構成証明メッセージのデジタル署名の検証に成功すると作動し、メッセージ検証手段４１１は、シンクライアントＯＳ３１０のハッシュ値の期待値４１３を参照し、構成証明メッセージに含まれるハッシュ値が正しい内容であるか確認することで、構成証明メッセージの正当性を検証する。
【００５０】
なお、構成証明メッセージが乱数Ｒｃおよび乱数Ｒｓを含んでいるとき、メッセージ検証手段４１１は、シンクライアントＯＳ３１０のハッシュ値の期待値４１３に加え、ＲＡＭ４０１に記憶している乱数Ｒｃおよび乱数Ｒｓを参照して、構成証明メッセージの正当性を検証する。
【００５１】
ここから、プラットフォームの完全性を検証する手順について説明する。図６は、シンクライアントＯＳ３１０がクライアント１０上で起動する手順を示したフロー図で、図７は、プラットフォームの完全性を検証する手順を示したフロー図である。
【００５２】
まず、図６を参照しながら、シンクライアントＯＳ３１０がクライアント１０上で起動する手順について説明する。ＵＳＢメモリ３０がクライアント１０に装着されると、クライアント１０はＵＳＢインターフェース１０３を利用して、ＵＳＢメモリ３０とデータのやり取りすることで、クライアント１０に装着されたＵＳＢメモリ３０をマウントする（Ｓ１）。
【００５３】
ＵＳＢメモリ３０をマウントすると、クライアント１０のブート手段１１０が作動し、ブート手段１１０は、シンクライアントＯＳ３１０のイメージの読出しをＵＳＢメモリ３０に要求し（Ｓ２）、ＵＳＢメモリ３０は、フラッシュメモリ３０１に記憶されたシンクライアントＯＳ３１０のイメージを、クライアント１０に送信する（Ｓ３）。
【００５４】
ＵＳＢメモリ３０からシンクライアントＯＳ３１０のイメージが送信されると、クライアント１０のブート手段１１０は、ＵＳＢメモリ３０から受信したシンクライアントＯＳ３１０のイメージをＲＡＭ１０１に展開し、クライアント１０上でシンクライアントＯＳ３１０を起動させる（Ｓ４）。
【００５５】
シンクライアントＯＳ３１０がクライアント１０上で起動すると、クライアント１０を計測手段１１１として機能させるための計測ソフトウェア３１１が自動的に起動し、クライアント１０に計測手段１１１が具備され、クライアント１０の計測手段１１１が作動する（Ｓ５）。
【００５６】
次に、図７を参照しながら、プラットフォーム完全性を検証する手順について説明する。図６で示した手順が実行されて、クライアント１０の計測手段１１１が作動すると、計測手段１１１は、プラットフォーム完全性検証に利用する乱数Ｒｃを生成し、インターネット６０を介して、乱数Ｒｃを含む乱数生成要求メッセージを認証サーバ４０に送信する（Ｓ１０）。なお、クライアント１０の計測手段１１１は、プラットフォーム完全性検証が終了するまで生成した乱数Ｒｃをクライアント１０のＲＡＭ１０１に保持しておく。
【００５７】
認証サーバ４０は、クライアント１０から乱数Ｒｃを受信すると、プラットフォーム完全性検証で利用する乱数Ｒｓを生成し、乱数Ｒｓをクライアント１０に送信すると共に（Ｓ１１）、プラットフォーム完全性検証が終了するまで乱数Ｒｃおよび乱数Ｒｓを認証サーバ４０のＲＡＭ４０１に保持する。
【００５８】
クライアント１０の計測手段１１１は、認証サーバ４０から乱数Ｒｓを受信すると、認証サーバ４０から送信された乱数Ｒｓをクライアント１０のＲＡＭ１０１に保持した後、クライアント１０のＲＡＭ１０１に展開されたシンクライアントＯＳ３１０のイメージすべてから、定めらたアルゴリズム（例えば、ＳＨＡ１）に従いハッシュ値を演算し（Ｓ１２）、ハッシュ値、乱数Ｒｃおよび乱数Ｒｓが結合された構成証明メッセージを生成する（Ｓ１３）。
【００５９】
クライアント１０の計測手段１１１は構成証明メッセージを生成すると、シンクライアントＯＳ３１０にハードコードされているＭＡＣ鍵３１２を用い、定められた手順（例えば、ISO/IEC 9797-1に準じた手順）に従い、構成証明メッセージのＭＡＣを演算する。
【００６０】
クライアント１０の計測手段１１１は構成証明メッセージのＭＡＣを演算すると、構成証明メッセージおよびＭＡＣをコマンドメッセージのデータに含ませ、ＳＩＭリーダ５０を介して、デジタル署名コマンドのコマンドメッセージをＳＩＭ２０に送信することで、構成証明メッセージのデジタル署名の生成をＳＩＭ２０に要求する（Ｓ１４）。
【００６１】
ＳＩＭ２０は、構成証明メッセージおよびＭＡＣを含んだデジタル署名コマンド２１０のコマンドメッセージを受信すると、ＳＩＭ２０のデジタル署名コマンド２１０を作動させ、デジタル署名コマンド２１０は、ＳＩＭ２０に記憶されているＭＡＣ鍵２１２を用い、クライアント１０の計測手段１１１と同じアルゴリズムで構成証明メッセージからＭＡＣを演算し、クライアント１０から送信されたＭＡＣと自身が演算したＭＡＣとが同一であるか検証することで、クライアント１０で起動している計測ソフトウェア３１１を検証する（Ｓ１５）。
【００６２】
ＳＩＭ２０のデジタル署名コマンド２１０は、構成証明メッセージのＭＡＣの検証に成功／失敗で処理を分岐させ（Ｓ１６）、構成証明メッセージのＭＡＣの検証に成功したときは、構成証明メッセージのデジタル署名を生成する処理を実行し、構成証明メッセージのＭＡＣの検証に失敗したときは、ＭＡＣの検証に失敗したことを示すエラーメッセージをクライアント１０に返信して、この手順を終了する。
【００６３】
ＳＩＭ２０のデジタル署名コマンド２１０は、構成証明メッセージのＭＡＣの検証に成功すると、デジタル署名秘密鍵を用い、定められたデジタル署名生成アルゴリズム（例えば、PKCS#1など）に従い、構成証明メッセージのデジタル署名を生成し、生成したデジタル署名をクライアント１０に返信する（Ｓ１７）。
【００６４】
クライアント１０の計測手段１１１は、ＳＩＭ２０から、構成証明メッセージのデジタル署名を受信すると、インターネット６０を介して、構成証明メッセージとデジタル署名を認証サーバ４０に送信する（Ｓ１８）。
【００６５】
構成証明メッセージとデジタル署名を認証サーバ４０が受信すると、認証サーバ４０のデジタル署名検証手段４１０が作動し、デジタル署名検証手段４１０は、構成証明メッセージとデジタル署名をクライアント１０から受信すると、認証サーバ４０が記憶しているデジタル署名公開鍵４１２を用いて、定められたアルゴリズムに従い、構成証明メッセージのデジタル署名を検証することで、デジタル署名を生成したＳＩＭ２０の正当性を検証する（Ｓ１９）。
【００６６】
認証サーバ４０は、構成証明メッセージのデジタル署名の検証に成功すると、認証サーバ４０のメッセージ検証手段４１１が作動し、メッセージ検証手段４１１は、認証サーバ４０のＲＡＭ４０１に保持されているＲｃおよびＲｓ、並びに、データ記憶装置４０５に記憶しているハッシュ値の期待値４１３を参照し、構成証明メッセージに含まれるＲｃ、Ｒｓおよびハッシュ値が正しい値であるか確認することで、構成証明メッセージの正当性を検証する。
【００６７】
そして、認証サーバ４０のメッセージ検証手段４１１は、構成証明メッセージの検証に成功／失敗で処理を分岐させ（Ｓ２０）、構成証明メッセージの検証に成功したときは、認証サーバ４０は、クライアント１０のＬＡＮ６２へのアクセスを許可するメッセージをＶＰＮ機器５２に送信し、クライアント１０からＬＡＮ６２に設置されたＰＣ５５へのアクセスを許可し（Ｓ２１）、この手順を終了し、構成証明メッセージの検証に成功したときは、クライアント１０からＬＡＮ６２に設置されたＰＣ５５へのアクセスを許可することなく、この手順を終了する（Ｓ２０）。
【００６８】
プラットフォーム完全性検証にＳＩＭ２０を利用するのは、プラットフォーム完全性検証に利用するデジタル署名秘密鍵をＳＩＭ２０に記憶させ、特別なチップ（例えば、ＴＰＭ）が実装されていない汎用的なコンピュータであっても、プラットフォーム完全性検証を実現可能とするためである。
【００６９】
認証サーバ４０が構成証明メッセージを検証するときには、上述したようにＳＩＭ２０の正当性が検証され、ＳＩＭ２０の検証には、公開暗号方式の暗号鍵対で、ＳＩＭ２０に記憶されたデジタル署名秘密鍵２１１と認証サーバ４０に記憶されたデジタル署名公開鍵４１２とが利用される。
【００７０】
デジタル署名秘密鍵２１１をＳＩＭ２０に記憶させておけば、プラットフォーム完全性検証に利用されるデジタル署名秘密鍵２１１が漏洩し悪用されることを防止でき、更に、ＬＡＮ６２へのアクセスが予め許可されたユーザにのみ、デジタル署名秘密鍵２１１を記憶させたＳＩＭ２０を配布しておけば、許可されたユーザにのみがリモートアクセスでＬＡＮ６２にアクセスすることが可能になる。
【００７１】
なお、上述した実施形態では、ＳＩＭ２０はＳＩＭリーダ５０に装着されて利用されているが、特許文献４で開示されているＵＳＢメモリキーのような、ＵＳＢメモリ３０とＳＩＭ２０が一体化された携帯型記憶デバイスを用いてもよい。
【特許文献４】特開２００６−２２７６７９号公報
【図面の簡単な説明】
【００７２】
【図１】シンクライアントシステムを説明する図。
【図２】ＵＳＢメモリのブロック図。
【図３】クライアントのブロック図。
【図４】ＳＩＭのブロック図。
【図５】認証サーバのブロック図。
【図６】シンクライアントＯＳが起動する手順を示したフロー図。
【図７】プラットフォームの完全性を検証する手順を示したフロー図。
【符号の説明】
【００７３】
１  シンクライアントシステム
１０  クライアント
１１０  ブート手段
１１１  計測手段
２０  ＳＩＭ
２１０  デジタル署名コマンド
２１１  デジタル署名秘密鍵
２１２  ＭＡＣ鍵
３０  ＵＳＢメモリ
３１０  シンクライアントＯＳ
３１１  計測ソフトウェア
３１２  ＭＡＣ鍵
４０  認証サーバ
４１０  デジタル署名検証手段
４１１  メッセージ検証手段
４１２  デジタル署名公開鍵
４１３  ハッシュ値の期待値
【図１】
0004993122.tif 000002
【図２】
0004993122.tif 000003
【図３】
0004993122.tif 000004
【図４】
0004993122.tif 000005
【図５】
0004993122.tif 000006
【図６】
0004993122.tif 000007
【図７】
0004993122.tif 000008