(57)【要約】【課題】クラウドシステム上で、ＶＭ及びアプリケーションの整合性を確保し、かつ、アプリベンダのライセンス管理を実現するクラウドシステムを提供する。【解決手段】複数の計算機を備える計算機システムであって、計算機システムは、仮想計算機に割り当てる計算機リソースを有する仮想計算機システムと、仮想計算機に関する整合性を検証する検証システムとを含み、仮想計算機システムは、ユーザからデプロイ要求を受け付けるデプロイ要求受付部と、対象イメージデータに対応づけられたセキュリティ強度以上のセキュリティ強度が設定されたサーバを検索するサーバ検索部と、サーバに対象イメージデータのデプロイを指示するデプロイ指示部と、サーバ上に仮想計算機を生成し、仮想計算機の起動時に取得され、仮想計算機に関する整合性の検証に用いられる整合性報告を検証サーバに対して送信する仮想計算機管理部とを有する。【選択図】図１
2014154050.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサ、前記プロセッサに接続されるメモリ、前記プロセッサに接続されるネットワークインタフェースを有する複数の計算機を備える計算機システムであって、
前記計算機システムは、
所定のアプリケーションを実行する仮想計算機に割り当てる計算機リソースを有する仮想計算機システムと、
前記仮想計算機に関する整合性を検証する検証システムと、を含み、
前記仮想計算機システムは、
前記仮想計算機に計算機リソースを提供する複数のサーバと、
前記複数のサーバ上で稼働する前記仮想計算機を管理する管理計算機と、
前記所定のアプリケーションを実行する仮想計算機を生成するためのイメージデータを格納するイメージデータ格納部と、を含み、
前記検証システムは、前記仮想計算機に関する整合性を検証する検証サーバを含み、
前記仮想計算機システムは、
前記イメージデータ、及び当該イメージデータに基づいて生成される前記仮想計算機の起動に要求されるセキュリティ強度が対応づけられたイメージデータ管理情報と、
前記サーバ、及び前記サーバに設定されたセキュリティ強度が対応づけられたサーバ管理情報と、を保持し、
前記仮想計算機システムを利用するユーザから、前記所定のアプリケーションを実行する仮想計算機を生成するための対象イメージデータの識別情報を含むデプロイ要求を受け付けるデプロイ要求受付部と、
前記イメージデータ管理情報及び前記サーバ管理情報に基づいて、前記対象イメージデータに対応づけられた前記セキュリティ強度以上の前記セキュリティ強度が設定された前記サーバを検索するサーバ検索部と、
前記検索されたサーバに前記対象イメージデータのデプロイを指示するデプロイ指示部と、
前記対象イメージデータを用いて、前記検索されたサーバ上に前記仮想計算機を生成し、前記生成された仮想計算機の起動時に取得され、前記仮想計算機に関する整合性の検証に用いられる第１の整合性報告を前記検証サーバに対して送信する仮想計算機管理部と、
を有し、
前記仮想計算機管理部は、前記検証サーバから送信される前記第１の整合性報告に対する検証処理の結果を受信し、
前記デプロイ要求受付部は、前記受信した第１の整合性報告に対する検証処理の結果に基づいて、前記対象イメージデータのデプロイ結果を出力することを特徴とする計算機システム。
【請求項２】
請求項１に記載の計算機システムであって、
前記計算機システムは、前記イメージデータ格納部に格納する前記イメージデータを配布するアプリケーション提供システムを含み、
前記アプリケーション提供システムは、
前記イメージデータによって生成される仮想計算機上で実行されるアプリケーションの整合性を検証し、また、前記アプリケーションの利用状態を監視する認証サーバと、
前記アプリケーションの利用状況を示す情報を格納するライセンスデータ格納部と、を含み、
前記仮想計算機管理部は、前記第１の整合性報告を前記認証サーバに送信し、
前記認証サーバは、
前記受信した第１の整合性報告を前記検証サーバに転送し、
前記受信した第１の整合性報告、及び前記検証サーバから受信した前記第１の整合性報告に対する検証処理の結果に基づいて、前記ライセンスデータ格納部に格納される情報を更新し、
前記受信した第１の整合性報告に対する検証処理の結果を前記仮想計算機管理部に転送することを特徴とする計算機システム。
【請求項３】
請求項２に記載の計算機システムであって、
前記アプリケーション提供システムは、秘密鍵及び公開鍵を保持し、
前記公開鍵と対応づけられた前記イメージデータが前記イメージデータ格納部に登録され、
前記仮想計算機管理部は、
前記公開鍵を用いて前記第１の整合性報告を暗号化し、
前記暗号化された第１の整合性報告を前記認証サーバに送信し、
前記認証サーバは、
前記秘密鍵を用いて前記暗号化された第１の整合性報告を復号化できるか否かを判定し、
前記秘密鍵を用いて前記暗号化された第１の整合性報告を復号化できると判定された場合、前記復号化された第１の整合性報告を前記検証サーバに転送することを特徴とする計算機システム。
【請求項４】
請求項２に記載の計算機システムであって、
前記イメージデータは、前記アプリケーションを実行する実行用仮想計算機を生成するための第１のイメージデータと、前記実行用仮想計算機上で実行される前記アプリケーションの整合性を検証するための通信を行う認証用仮想計算機を生成する第２のイメージデータと、を含み、
前記イメージデータ格納部には、一つ以上の前記第１のイメージデータ、及び一つ以上の前記第２のイメージデータを含むソフトウェアが格納され、
前記デプロイ要求に含まれる前記対象イメージデータの識別情報は、前記ソフトウェアの識別情報であり、
前記サーバ検索部は、
前記ユーザから指定された前記ソフトウェアに含まれる前記第１のイメージデータに対応づけられた前記セキュリティ強度以上の前記セキュリティ強度が設定された第１のサーバを検索し、
前記ユーザから指定されたソフトウェアに含まれる前記第２のイメージデータに対応づけられた前記セキュリティ強度以上の前記セキュリティ強度が設定された第２のサーバを検索し、
前記デプロイ指示部は、
前記検索された第１のサーバに、前記ユーザから指定されたソフトウェアに含まれる第１のイメージデータのデプロイを指示し、
前記検索された第２のサーバに、前記ユーザから指定されたソフトウェアに含まれる第２のイメージデータのデプロイを指示し、
前記第１のイメージデータによって生成された前記実行用仮想計算機は、第１の期間毎に、前記アプリケーションの実行状態を示す情報を含む第２の整合性報告を前記第２のイメージデータによって生成された前記認証用仮想計算機に送信し、
前記第２のイメージデータによって生成された前記認証用仮想計算機は、
前記第１の期間より長い第２の期間毎に、複数の前記第２の整合性報告を含む第３の整合性報告を前記認証サーバに送信し、
前記認証サーバから受信した前記第３の整合性報告に対する検証結果に基づいて、前記第２の整合性報告の応答を送信することを特徴とする計算機システム。
【請求項５】
請求項２に記載の計算機システムであって、
前記イメージデータ管理情報は、さらに、前記イメージデータを用いて生成される前記仮想計算機に必要な計算機リソースに関する情報が対応づけられ、
前記複数のサーバは、ＴＰＭを備える第３のサーバを含み、
前記サーバ検索部は、
前記対象イメージデータに対応づけられたセキュリティ強度が前記ＴＰＭを用いた前記仮想計算機の起動処理が必要であることを示す値である場合に、前記サーバ管理情報を参照して、前記第３のサーバを検索し、
前記第３のサーバにおける割当可能な計算機リソース量を算出し、
前記イメージデータ管理情報及び前記算出された割当可能な計算機リソース量に基づいて、前記検索された第３のサーバ上に前記対象イメージデータを用いて前記仮想計算機が生成可能であるか否かを判定し、
前記検索された第３のサーバ上に前記対象イメージデータを用いて前記仮想計算機が生成可能であると判定された場合、前記対象イメージデータを用いて前記仮想計算機を生成するためのデプロイ情報を出力することを特徴とする計算機システム。
【請求項６】
請求項５に記載の計算機システムであって、
前記仮想計算機管理部は、前記検索された第３のサーバ上に前記ＴＰＭをエミュレーションするための仮想ＴＰＭ用仮想計算機を生成し、
前記仮想ＴＰＭ用仮想計算機は、前記対象イメージデータを用いて生成される仮想計算機に割り当てる仮想ＴＰＭを生成し、
前記仮想計算機管理部は、
前記対象イメージデータ、前記生成された仮想ＴＰＭ、及び前記検索された第３のサーバの計算機リソースに基づいて、前記仮想計算機を生成し、
前記生成された仮想計算機は、前記第１の整合性報告に対する検証処理の結果に基づいて、前記所定のアプリケーションの実行を開始することを特徴とする計算機システム。
【請求項７】
請求項６に記載の計算機システムであって、
前記検索された第３のサーバは、前記仮想ＴＰＭに、前記イメージデータを用いた前記仮想計算機の起動処理時に実行されるプログラムの状態を示す値を書き込み、
前記仮想ＴＰＭ用仮想計算機は、前記仮想ＴＰＭに対して書き込まれた前記値を前記ＴＰＭに書き込み、
前記仮想計算機管理部は、前記ＴＰＭに書き込まれた値を含む前記第１の整合性報告を送信することを特徴とする計算機システム。
【請求項８】
プロセッサ、前記プロセッサに接続されるメモリ、前記プロセッサに接続されるネットワークインタフェースを有する複数の計算機を備える計算機システムにおける仮想計算機管理方法であって、
前記計算機システムは、所定のアプリケーションを実行する仮想計算機に割り当てる計算機リソースを有する仮想計算機システム、及び前記仮想計算機に関する整合性を検証する検証システムを含み、
前記仮想計算機システムは、
前記仮想計算機に計算機リソースを提供する複数のサーバと、
前記複数のサーバ上で稼働する前記仮想計算機を管理する管理計算機と、
前記所定のアプリケーションを実行する仮想計算機を生成するためのイメージデータを格納するイメージデータ格納部と、を含み、
前記検証システムは、
前記仮想計算機の整合性を検証する検証サーバと、
前記仮想計算機の整合性を検証するための情報を格納する検証用データ格納部と、を含み、
前記仮想計算機システムは、
前記イメージデータ、及び当該イメージデータに基づいて生成される前記仮想計算機の起動に要求されるセキュリティ強度が対応づけられたイメージデータ管理情報と、
前記サーバ、及び前記サーバに設定されたセキュリティ強度が対応づけられたサーバ管理情報と、を保持し、
前記方法は、
前記管理計算機が、前記仮想計算機システムを利用するユーザから、所定のアプリケーションを実行する前記仮想計算機を生成するための対象イメージデータの識別情報を含むデプロイ要求を受け付ける第１のステップと、
前記管理計算機が、前記イメージデータ管理情報及び前記サーバ管理情報に基づいて、前記対象イメージデータに対応づけられた前記セキュリティ強度以上の前記セキュリティ強度が設定された前記サーバを検索する第２のステップと、
前記管理計算機が、前記検索されたサーバに前記対象イメージデータのデプロイを指示する第３のステップと、
前記デプロイの指示を受信したサーバが、前記対象イメージデータを用いて前記仮想計算機を生成し、前記生成された仮想計算機の起動時に取得され、前記仮想計算機に関する整合性の検証に用いられる第１の整合性報告を前記検証サーバに対して送信する第４のステップと
前記デプロイの指示を受信したサーバが、前記検証サーバから送信される前記第１の整合性報告に対する検証処理の結果を受信する第５のステップと、
前記デプロイの指示を受信したサーバが、前記受信した第１の整合性報告に対する検証処理の結果を前記管理計算機に送信する第６のステップと、
前記管理計算機が、前記受信した第１の整合性報告に対する検証処理の結果に基づいて、前記対象イメージデータのデプロイ結果を前記ユーザに対して出力する第７のステップと、を含むことを特徴とする仮想計算機管理方法。
【請求項９】
請求項８に記載の仮想計算機管理方法であって、
前記計算機システムは、前記イメージデータ格納部に格納する前記イメージデータを配布するアプリケーション提供システムを含み、
前記アプリケーション提供システムは、
前記イメージデータによって生成される仮想計算機上で実行されるアプリケーションの整合性を検証し、また、前記アプリケーションの利用状態を監視する認証サーバと、
前記アプリケーションの利用状況を示す情報を格納するライセンスデータ格納部と、を含み、
前記第４のステップは、
前記デプロイの指示を受信したサーバが、前記第１の整合性報告を前記認証サーバに送信する第８のステップと、
前記認証サーバが、前記受信した第１の整合性報告を前記検証サーバに転送する第９のステップと、
前記認証サーバが、前記受信した第１の整合性報告、及び前記検証サーバから受信した前記第１の整合性報告に対する検証処理の結果に基づいて、前記ライセンスデータ格納部に格納される情報を更新する第１０のステップと、
前記認証サーバが、前記受信した第１の整合性報告に対する検証処理の結果を前記デプロイの指示を受信したサーバに転送する第１１のステップと、を含むことを特徴とする仮想計算機管理方法。
【請求項１０】
請求項９に記載の仮想計算機管理方法であって、
前記アプリケーション提供システムは、秘密鍵及び公開鍵を保持し、
前記公開鍵と対応づけられた前記イメージデータが前記イメージデータ格納部に登録され、
前記第８のステップは、
前記デプロイの指示を受信したサーバが、前記公開鍵を用いて前記第１の整合性報告を暗号化するステップと、
前記デプロイの指示を受信したサーバが、前記暗号化された第１の整合性報告を前記検証サーバに送信するステップと、を含み、
前記第９のステップは、
前記認証サーバが、前記秘密鍵を用いて前記暗号化された第１の整合性報告を復号化できるか否かを判定するステップと、
前記認証サーバが、前記秘密鍵を用いて前記暗号化された第１の整合性報告を復号化できると判定された場合、前記復号化された第１の整合性報告を前記検証サーバに転送するステップと、を含むことを特徴とする仮想計算機管理方法。
【請求項１１】
請求項９に記載の仮想計算機管理方法であって、
前記イメージデータは、前記アプリケーションを実行する実行用仮想計算機を生成するための第１のイメージデータ、及び前記実行用仮想計算機上で実行される前記アプリケーションの整合性を検証するための通信を行う認証用仮想計算機を生成する第２のイメージデータを含み、
前記イメージデータ格納部には、一つ以上の前記第１のイメージデータ、及び一つ以上の前記第２のイメージデータを含むソフトウェアが格納され、
前記第１のステップでは、前記ソフトウェアの識別情報を含む前記デプロイ要求を受け付け、
前記第２のステップは、
前記管理計算機が、前記ユーザから指定された前記ソフトウェアに含まれる前記第１のイメージデータに対応づけられた前記セキュリティ強度以上の前記セキュリティ強度が設定された第１のサーバを検索するステップと、
前記管理計算機が、前記ユーザから指定された前記ソフトウェアに含まれる前記第２のイメージデータに対応づけられた前記セキュリティ強度以上の前記セキュリティ強度が設定された第２のサーバを検索するステップと、を含み、
前記第３のステップは、
前記管理計算機が、前記検索された第１のサーバに、前記ユーザから指定されたソフトウェアに含まれる第１のイメージデータのデプロイを指示するステップと、
前記管理計算機が、前記検索された第２のサーバに、前記ユーザから指定されたソフトウェアに含まれる第２のイメージデータのデプロイを指示するステップと、を含み、
前記方法は、
前記第１のイメージデータによって生成された前記実行用仮想計算機が、第１の期間毎に、前記アプリケーションの実行状態を示す情報を含む第２の整合性報告を前記第２のイメージデータによって生成された前記認証用仮想計算機に送信するステップと、
前記第２のイメージデータによって生成された前記認証用仮想計算機が、前記第１の期間より長い第２の期間毎に、複数の前記第２の整合性報告を含む第３の整合性報告を前記認証サーバに送信するステップと、
前記第２のイメージデータによって生成された前記認証用仮想計算機が、前記認証サーバから受信した前記第３の整合性報告に対する検証処理の結果に基づいて、前記第２の整合性報告の応答を送信するステップと、を含むことを特徴とする仮想計算機管理方法。
【請求項１２】
請求項９に記載の仮想計算機管理方法であって、
前記イメージデータ管理情報は、さらに、前記イメージデータを用いて生成される前記仮想計算機に必要な計算機リソースに関する情報が対応づけられ、
前記複数のサーバは、ＴＰＭを備える第３のサーバを含み、
前記第２のステップは、
前記対象イメージデータに対応づけられたセキュリティ強度が前記ＴＰＭを用いた前記仮想計算機の起動処理が必要であることを示す値である場合に、前記サーバ管理情報を参照して、前記第３のサーバを検索するステップと、
前記第３のサーバにおける割当可能な計算機リソース量を算出するステップと、
前記イメージデータ管理情報及び前記算出された割当可能な計算機リソース量に基づいて、前記検索された第３のサーバ上に前記対象イメージデータを用いて前記仮想計算機が生成可能であるか否かを判定するステップと、
前記検索された第３のサーバ上に前記対象イメージデータを用いて前記仮想計算機が生成可能であると判定された場合、前記対象イメージデータを用いて前記仮想計算機を生成するためのデプロイ情報を出力するステップと、を含むことを特徴とする仮想計算機管理方法。
【請求項１３】
請求項１２に記載の仮想計算機管理方法であって、
前記第４のステップは、
前記第３のサーバが、前記ＴＰＭをエミュレーションするための仮想ＴＰＭ用仮想計算機を生成する第１２のステップと、
前記仮想ＴＰＭ用仮想計算機が、前記対象イメージデータを用いて生成される仮想計算機に割り当てる仮想ＴＰＭを生成する第１３のステップと、
前記第３のサーバが、前記対象イメージデータ、前記生成された仮想ＴＰＭ、及び前記検索された第３のサーバの計算機リソースに基づいて、前記仮想計算機を生成する第１４のステップと、
前記生成された仮想計算機が、前記第１の整合性報告に対する検証処理の結果に基づいて、前記所定のアプリケーションの実行を開始する第１５のステップと、を含むことを特徴とする仮想計算機管理方法。
【請求項１４】
請求項１３に記載の仮想計算機管理方法であって、
前記第１４のステップは、
前記検索された第３のサーバが、前記仮想ＴＰＭに、前記イメージデータを用いた前記仮想計算機の起動処理時に実行されるプログラムの状態を示す値を書き込むステップと、
前記仮想ＴＰＭ用仮想計算機が、前記仮想ＴＰＭに対して書き込まれた前記値を前記ＴＰＭに書き込むステップと、を含み、
前記第８のステップでは、前記ＴＰＭに書き込まれた値を含む前記第１の整合性報告が送信されることを特徴とする仮想計算機管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クラウドコンピューティング上で安全に仮想計算機を配布し、認証する技術に関する。
【背景技術】
【０００２】
半導体技術の進歩による計算機資源の高集積化及び高性能化に伴って、計算機リソースの有効活用及び運用コスト削減を目的とした仮想化技術が進展している。さらに、仮想サーバ（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ：ＶＭ）をイメージファイルとして配布するための規格（Ｏｐｅｎ  Ｖｉｒｔｕａｌ  Ｆｏｒｍａｔ：ＯＶＦ）が浸透し、任意の物理サーバ上で仮想サーバを稼働することが可能となっている。
【０００３】
一方、物理サーバ上で実行されるアプリケーションには、ライセンス等一定の制限の下実行可能なアプリケーションも多数存在する。
【０００４】
前述したようなアプリケーションを実行するＶＭをクラウドシステム上で多数実行する場合に、各ＶＭ上のアプリケーションがライセンス契約にしたがって実行されているかを検証し、また、ＶＭそのものを検証する必要となる。ＶＭそのものを検証するのは、ルートキット又はマルウェア等によってＶＭそのものが改竄され、アプリケーションが不正に実行されているか否かを確認する必要があるためである。
【０００５】
物理サーバが起動時の整合性（Ｉｎｔｅｇｒｉｔｙ）を検証するための方法として、ＴＰＭ（Ｔｒｕｓｔｅｄ  Ｐｌａｔｆｏｒｍ  Ｍｏｄｕｌｅ）を用いる方法が知られている（特許文献１及び特許文献２参照）。ＴＰＭは、物理サーバのハードウェアに組み込まれたチップであり、Ｔｒｕｓｔｅｄ  Ｃｏｍｐｕｔｉｎｇ  Ｇｒｏｕｐ（ＴＣＧ）によってハードウェア及びソフトウェアの仕様が開発されている（例えば、特許文献１及び特許文献２参照）。
【０００６】
さらに、ハイパバイザがＶＭ起動時の整合性を検証するために、仮想ＴＰＭを用いて物理ＴＰＭをエミュレーションする技術も知られている（例えば、非特許文献１参照）。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】米国特許出願公開第２００９／０２０４９６４号明細書
【特許文献２】米国特許出願公開第２０１１／０２０２７６５号明細書
【非特許文献】
【０００８】
【非特許文献１】Stefan Berger、外５名、「vTPM: Virtualizing the trusted platform module」、15th USENIX Security Symposium、pp.305-320
【発明の概要】
【発明が解決しようとする課題】
【０００９】
アプリベンダは、クラウドを用いてアプリケーションサービスを提供する場合、所定のアプリケーションを実行するＶＭのＯＶＦイメージファイルをクラウドシステム上に配布する。この場合、クラウドシステム上の管理サーバ等が、ＶＭ及びアプリケーションの整合性を検証し、整合性が確認された場合にアプリケーションを実行するＶＭを起動させる。
【００１０】
管理サーバ等は、整合性報告を第三者機関に送信することによって、ＶＭ及びアプリケーションの検証を行う必要がある。また、クラウドシステム上ではユーザの要求に応じてアプリケーションが実行されるため、アプリベンダが当該アプリケーションのライセンス管理を行うための機能が提供されていない。
【００１１】
したがって、クラウドシステムでは、安全なＶＭの起動を実現する必要があり、また、アプリベンダがクラウドシステム上で実行されるアプリケーションの利用状態を把握する必要がある。
【００１２】
本発明は、前述した課題を解決するためになされた発明である。すなわち、クラウドシステム上で、ＶＭ及びアプリケーションの整合性を確保し、かつ、アプリベンダのライセンス管理を実現するシステム及び方法を提供する。
【課題を解決するための手段】
【００１３】
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、プロセッサ、前記プロセッサに接続されるメモリ、前記プロセッサに接続されるネットワークインタフェースを有する複数の計算機を備える計算機システムであって、前記計算機システムは、所定のアプリケーションを実行する仮想計算機に割り当てる計算機リソースを有する仮想計算機システムと、前記仮想計算機に関する整合性を検証する検証システムと、を含み、前記仮想計算機システムは、前記仮想計算機に計算機リソースを提供する複数のサーバと、前記複数のサーバ上で稼働する前記仮想計算機を管理する管理計算機と、前記所定のアプリケーションを実行する仮想計算機を生成するためのイメージデータを格納するイメージデータ格納部と、を含み、前記検証システムは、前記仮想計算機に関する整合性を検証する検証サーバを含み、前記仮想計算機システムは、前記イメージデータ、及び当該イメージデータに基づいて生成される前記仮想計算機の起動に要求されるセキュリティ強度が対応づけられたイメージデータ管理情報と、前記サーバ、及び前記サーバに設定されたセキュリティ強度が対応づけられたサーバ管理情報と、を保持し、前記仮想計算機システムを利用するユーザから、前記所定のアプリケーションを実行する仮想計算機を生成するための対象イメージデータの識別情報を含むデプロイ要求を受け付けるデプロイ要求受付部と、前記イメージデータ管理情報及び前記サーバ管理情報に基づいて、前記対象イメージデータに対応づけられた前記セキュリティ強度以上の前記セキュリティ強度が設定された前記サーバを検索するサーバ検索部と、前記検索されたサーバに前記対象イメージデータのデプロイを指示するデプロイ指示部と、前記対象イメージデータを用いて、前記検索されたサーバ上に前記仮想計算機を生成し、前記生成された仮想計算機の起動時に取得され、前記仮想計算機に関する整合性の検証に用いられる第１の整合性報告を前記検証サーバに対して送信する仮想計算機管理部と、を有し、前記仮想計算機管理部は、前記検証サーバから送信される前記第１の整合性報告に対する検証処理の結果を受信し、前記デプロイ要求受付部は、前記受信した第１の整合性報告に対する検証処理の結果に基づいて、前記対象イメージデータのデプロイ結果を出力することを特徴とする。
【発明の効果】
【００１４】
本発明によれば、仮想計算機システムでは、仮想計算機に関する整合性が検証されるため、安全なアプリケーションサービスを提供することが可能となる。すなわち、セキュアなアプリケーションサービスを提供することできる。
【００１５】
上記した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。
【図面の簡単な説明】
【００１６】
【図１】本発明の実施例１における計算機システムの構成の一例を示す説明図である。
【図２】本発明の実施例１のＶＭ管理サーバのハードウェア構成及びソフトウェア構成の一例を説明するブロック図である。
【図３】本発明の実施例１のＴＰＭ搭載物理サーバのハードウェア構成及びソフトウェア構成の一例を示すブロック図である。
【図４】本発明の実施例１の物理サーバのハードウェア構成及びソフトウェア構成の一例を示すブロック図である。
【図５】本発明の実施例１におけるＴＰＭの構成例を示すブロック図である。
【図６】本発明の実施例１のＶＭパッケージの一例を示す説明図である。
【図７】本発明の実施例１のＶＭ割当表の一例を示す説明図である。
【図８】本発明の実施例１の物理サーバ構成表の一例を示す説明図である。
【図９】本発明の実施例１のＶＭパッケージ管理表の一例を示す説明図である。
【図１０】本発明の実施例１におけるＶＭ管理サーバがデプロイ要求を受信した場合に実行する処理を説明するフローチャートである。
【図１１】本発明の実施例１の物理サーバ検索部が実行する物理サーバの検索処理の一例を説明するフローチャートである。
【図１２】本発明の実施例１におけるデプロイ指示部が実行するデプロイ処理を説明するフローチャートである。
【図１３Ａ】本発明の実施例１のＴＰＭ搭載物理サーバが実行するＴｒｕｓｔｅｄ  ＶＭの起動処理を説明するフローチャートである。
【図１３Ｂ】本発明の実施例１のＴＰＭ搭載物理サーバが実行するＴｒｕｓｔｅｄ  ＶＭの起動処理を説明するフローチャートである。
【図１４】本発明の実施例１の認証サーバが実行する処理を説明するフローチャートである。
【図１５】本発明の実施例２のＴＰＭ搭載物理サーバのハードウェア構成及びソフトウェア構成の一例を示すブロック図である。
【図１６】本発明の実施例２におけるＴｒｕｓｔｅｄアプリケーションの認証処理を説明するシーケンス図である。
【図１７】本発明の実施例３のＶＭパッケージの一例を示す説明図である。
【図１８】本発明の実施例３の認証サーバが実行する処理を説明するフローチャートである。
【発明を実施するための形態】
【００１７】
以下、図面を用いて実施例について説明する。
【実施例１】
【００１８】
図１は、本発明の実施例１における計算機システムの構成の一例を示す説明図である。
【００１９】
本発明の計算機システムは、図１に示すようにクラウドシステム１０００、アプリケーション提供システム４００、及び検証機関システム５００から構成される。クラウドシステム１０００、アプリケーション提供システム４００、及び検証機関システム５００は、ネットワーク２００を介して互いに接続される。なお、本発明はネットワーク２００の種別に限定されず、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、及びＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）等のいずれを用いてもよい。また、本発明はネットワーク２００の接続方式に限定されず、有線又は無線いずれであってもよい。
【００２０】
また、ネットワーク２００には、ユーザ３１０が使用する端末３００が接続される。ユーザ３１０は端末３００を操作することによって、クラウドサービスを利用することができる。
【００２１】
クラウドシステム１０００は、クラウドサービスを提供するプロバイダの計算機システムである。クラウドサービスでは、ユーザ３１０の希望に応じて、所定のアプリケーションを実行する仮想計算機（ＶＭ）から構成される業務システムが提供される。ユーザ３１０は、提供される業務システムを用いて所定のサービス等を利用する。なお、本発明は、クラウドサービスを用いて提供される業務システムの種類に限定されない。
【００２２】
クラウドシステム１０００は、ＶＭ管理サーバ１１００、複数のＴＰＭ搭載物理サーバ１２００、複数の物理サーバ１３００、及びＶＭパッケージ管理ＤＢ１４００を備える。
【００２３】
ＶＭ管理サーバ１１００、複数のＴＰＭ搭載物理サーバ１２００、複数の物理サーバ１３００、及びＶＭパッケージ管理ＤＢ１４００は、管理ＮＷ１００６を介して互いに接続される。また、ＶＭ管理サーバ１１００、複数のＴＰＭ搭載物理サーバ１２００、複数の物理サーバ１３００、及びＶＭパッケージ管理ＤＢ１４００は、業務ＮＷ１００５を介してネットワーク２００と接続される。
【００２４】
ＶＭ管理サーバ１１００は、ＴＰＭ搭載物理サーバ１２００及び物理サーバ１３００上に生成されるＶＭを管理する計算機である。ＶＭ管理サーバ１１００のハードウェア構成及びソフトウェア構成の詳細については図２を用いて後述する。
【００２５】
複数のＴＰＭ搭載物理サーバ１２００及び複数の物理サーバ１３００は、ＶＭに割り当てる計算機リソースを提供する計算機である。ＴＰＭ搭載物理サーバ１２００は後述するようにセキュリティチップであるＴＰＭ１２７０（図３参照）を備える。一方、物理サーバ１３００はＴＰＭを備えていない。
【００２６】
ＴＰＭ搭載物理サーバ１２００上では、Ｔｒｕｓｔｅｄハイパバイザ１２１０が稼働する。また、ＴＰＭ搭載物理サーバ１２００上には、Ｔｒｕｓｔｅｄハイパバイザ１２１０によって管理される仮想ＴＰＭ用ＶＭ１２２０、及びＴｒｕｓｔｅｄ  ＶＭ１２３０が稼働する。
【００２７】
ここで、Ｔｒｕｓｔｅｄハイパバイザ１２１０及びＴｒｕｓｔｅｄ  ＶＭ１２３０は、後述する検証処理によって改ざん等が行われていないことが確認されたハイパバイザ及びＶＭを示す。すなわち、Ｔｒｕｓｔｅｄハイパバイザ１２１０及びＴｒｕｓｔｅｄ  ＶＭ１２３０は、セキュアなハイパバイザ及びＶＭである。
【００２８】
物理サーバ１３００上では、ハイパバイザ１３１０が稼働する。また、物理サーバ１３００上には、ハイパバイザ１３１０によって管理されるＶＭ１３３０が稼働する。
【００２９】
本実施例では、Ｔｒｕｓｔｅｄハイパバイザ１２１０及びＴｒｕｓｔｅｄ  ＶＭ１２３０は、後述するように改ざんされていないことが保証されているため、全ての機能が有効化されている。一方、ハイパバイザ１３１０及びＶＭ１３３０は、一部の機能のみが有効化されている。
【００３０】
ＴＰＭ搭載物理サーバ１２００及び物理サーバ１３００のハードウェア構成及びソフトウェア構成については、図３及び図４を用いて後述する。
【００３１】
なお、ＴＰＭ搭載物理サーバ１２００にはストレージ１５００が接続され、また、物理サーバ１３００にはストレージ１６００が接続される。
【００３２】
ＶＭパッケージ管理ＤＢ１４００は、ＶＭを稼働させるために必要なＶＭパッケージ１４１０を管理するデータベースである。ＶＭパッケージ１４１０は、後述するようにアプリケーション提供システム４００から送信される。
【００３３】
アプリケーション提供システム４００は、所定のアプリケーションを提供するアプリベンダの計算機システムである。アプリケーション提供システム４００は、クラウドシステム１０００に対してＶＭパッケージ１４１０を送信する。また、アプリケーション提供システム４００は、アプリケーションのライセンスを管理する。
【００３４】
アプリケーション提供システム４００は、認証サーバ４１０、ＶＭパッケージ配信サーバ４２０、ライセンスＤＢ４３０、及びＶＭパッケージＤＢ４４０を備える。認証サーバ４１０及びＶＭパッケージ配信サーバ４２０は、ネットワーク４０５を介してネットワーク２００と接続される。
【００３５】
認証サーバ４１０は、クラウドシステム１０００から整合性報告を受信し、整合性報告を検証機関システム５００に転送する。また、認証サーバ４１０が、整合性報告に基づいて、ライセンスＤＢ４３０を更新する。これによって、アプリベンダは、アプリケーションの利用状況を把握することができる。例えば、アプリケーションが実行された処理の回数等を把握することができる。そのため、アプリケーション提供システム４００は、アプリケーションの実行回数に応じた課金等を条件とするアプリケーションのライセンスを適切に管理することができる。
【００３６】
なお、ライセンスＤＢ４３０に格納される情報は、クラウドシステム１０００上のアプリケーションの実行状態を把握可能な情報であればどのような情報でもよい。例えば、ライセンスＤＢ４３０には、ＶＭパッケージ１４１０の識別情報、ユーザ３１０の識別情報、及び整合性報告が対応づけられた情報等が格納される。
【００３７】
ＶＭパッケージ配信サーバ４２０は、ＶＭパッケージＤＢ４４０に格納されるＶＭパッケージ１４１０をクラウドシステム１０００に配信する。これによって、不特定多数のユーザ３１０に対してアプリケーションを提供することが可能となる。
【００３８】
なお、本発明は、ＶＭパッケージ１４１０が配信されるタイミングに限定されない。アプリベンダが配信を希望する場合にＶＭパッケージ１４１０が配信されてもよいし、ユーザ３１０から要求された場合にＶＭパッケージ１４１０が配信されてもよい。本実施例では、予め、ユーザ３１０が希望するアプリケーションを実現するためのＶＭパッケージ１４１０がクラウドシステム１０００に配信されているものとする。
【００３９】
検証機関システム５００は、ＶＭパッケージ１４１０を用いて生成されたＶＭの改ざん、及びアプリケーションの改ざん等を検証する。検証機関システム５００は、検証サーバ５１０、ＩＩＤＢ（Ｉｎｔｅｇｒｉｔｙ  Ｉｎｆｏｒｍａｔｉｏｎ  ＤａｔａＢａｓｅ）５２０、及びＶＵＬＤＢ（ＶＵＬｎｅｒａｂｉｌｉｔｙ  ＤａｔａＢａｓｅ）５３０を備える。なお、検証サーバ５１０は、ネットワーク５０５を介してネットワーク２００と接続される。
【００４０】
ＩＩＤＢ５２０は、検証処理に必要なデータを格納するデータベースである。本実施例ではＩＩＤＢ５２０には、ＶＭパッケージ１４１０を用いて生成されるＶＭのハッシュ値の情報が格納される。
【００４１】
ＶＵＬＤＢ５３０は、脆弱性に関するデータを格納するデータベースである。検証サーバ５１０は、ＩＩＤＢ５２０及びＶＵＬＤＢ５３０に基づいて、ＶＭの改ざん、ユーザのなりすまし等を検証する。また、検証サーバ５１０は、検証結果をアプリケーション提供システム４００に送信する。
【００４２】
なお、検証サーバ５１０が実行する検証処理は、公知のものを用いればよいため本実施例では詳細な説明を省略する。
【００４３】
本実施例では、アプリケーション提供システム４００を経由して、検証結果がクラウドシステム１０００に送信される。
【００４４】
図２は、本発明の実施例１のＶＭ管理サーバ１１００のハードウェア構成及びソフトウェア構成の一例を説明するブロック図である。
【００４５】
ＶＭ管理サーバ１１００は、ハードウェアとして、ＣＰＵ１１０１、メモリ１１０２、ＴＰＭ（Ｔｒｕｓｔｅｄ  Ｐｌａｔｆｏｒｍ  Ｍｏｄｕｌｅ）１１０３、ＢＭＣ（Ｂａｓｅｂｏａｒｄ  Ｍａｎａｇｅｍｅｎｔ  Ｃｏｎｔｒｏｌｌｅｒ）１１０４、及びネットワークインタフェース１１０５を備える。
【００４６】
ＣＰＵ１１０１は、メモリ１１０２に格納されるプログラムを実行する。ＣＰＵ１１０１がプログラムを実行することによって、ＶＭ管理サーバ１１００が有する機能を実現することができる。以下、プログラムを主体に処理を説明する場合、ＣＰＵ１１０１によってプログラムが実行されていることを示す。
【００４７】
メモリ１１０２は、ＣＰＵ１１０１によって実行されるプログラム、及び当該プログラムの実行に必要な情報を格納する。メモリ１１０２に格納されるプログラム及び情報については後述する。
【００４８】
ＴＰＭ１１０３は、セキュアなＶＭ、ＯＳ等の起動を実現するためのチップである。ＴＰＭ１１０３は、乱数生成及びＲＳＡ暗号処理を行う暗号化コプロセッサ、並びに、鍵等の情報を格納する記憶領域を備える。ＴＰＭ１１０３の詳細については、図５を用いて後述する。
【００４９】
ＢＭＣ１１０４は、ＶＭ管理サーバ１１００の管理機能を提供するチップである。ＢＭＣ１１０４によって提供される管理機能には、障害検出機能、電源制御機能、及び障害報告機能等が含まれる。
【００５０】
ネットワークインタフェース１１０５は、ネットワークを介して外部の装置と通信するためのインタフェースである。本実施例では、ネットワークインタフェース１１０５は、業務ＮＷ１００５及び管理ＮＷ１００６に接続される。
【００５１】
ここで、メモリ１１０２に格納されるプログラム及び情報について説明する。
【００５２】
メモリ１１０２には、デプロイ要求受付部１１３０、物理サーバ検索部１１３１、及びデプロイ指示部１１３２を実現するためのプログラムが格納される。また、メモリ１１０２には、ＶＭ割当表１１１０、物理サーバ構成表１１２０、及びＶＭパッケージ管理表１１４０が格納される。
【００５３】
デプロイ要求受付部１１３０は、ユーザ３１０からデプロイ要求を受け付ける。デプロイ要求には、ＶＭパッケージ１４１０の名称等が含まれる。物理サーバ検索部１１３１は、デプロイ要求に基づいて、所定の条件を満たす物理サーバを検索する。デプロイ指示部１１３２は、検索された物理サーバに対して、所定のＶＭパッケージ１４１０のデプロイ指示を送信する。
【００５４】
ＶＭ割当表１１１０は、各物理サーバ上で稼働するＶＭを管理するための情報を格納する。ＶＭ割当表１１１０の詳細については、図７を用いて後述する。物理サーバ構成表１１２０は、クラウドシステム１０００における物理サーバの構成を管理するための情報を格納する。物理サーバ構成表１１２０の詳細については、図８を用いて後述する。
【００５５】
ＶＭパッケージ管理表１１４０は、ＶＭパッケージ管理ＤＢ１４００に格納されるＶＭパッケージ１４１０に関する情報を格納する。ＶＭパッケージ管理表１１４０の詳細については、図９を用いて後述する。
【００５６】
なお、メモリ１１０２に格納されるプログラム及び情報は、図示しないストレージ装置に格納されていてもよい。この場合、ＣＰＵ１１０１が、ストレージ装置からプログラム及び情報を読み出し、読み出されたプログラム及び情報をメモリ１１０２上に展開する。
【００５７】
なお、ＶＭ管理サーバ１１００は、図２に示す各機能部を一つの機能部として備えていてもよい。例えば、デプロイ処理部として備える形態が考えられる。
【００５８】
図３は、本発明の実施例１のＴＰＭ搭載物理サーバ１２００のハードウェア構成及びソフトウェア構成の一例を示すブロック図である。図４は、本発明の実施例１の物理サーバ１３００のハードウェア構成及びソフトウェア構成の一例を示すブロック図である。
【００５９】
ＴＰＭ搭載物理サーバ１２００は、ハードウェアとしてＣＰＵ１２５０、メモリ１２６０、ＴＰＭ１２７０、ＢＭＣ１２８０、及びネットワークインタフェース１２９０を備える。
【００６０】
ＣＰＵ１２５０、メモリ１２６０、ＴＰＭ１２７０、ＢＭＣ１２８０、及びネットワークインタフェース１２９０は、ＣＰＵ１１０１、メモリ１１０２、ＴＰＭ１１０３、ＢＭＣ１１０４、及びネットワークインタフェース１１０５と同一のものであるため説明を省略する。
【００６１】
また、ＴＰＭ搭載物理サーバ１２００は、ＣＲＴＭ（Ｃｏｒｅ  Ｒｏｏｔ  ｏｆ  Ｔｒｕｓｔ  Ｍｅａｓｕｒｅｍｅｎｔ）１２４２、Ｂｏｏｔ  Ｆｉｒｍｗａｒｅ１２４４、及びＢｏｏｔ  Ｍａｎａｇｅｒ１２４７を備える。
【００６２】
ＣＲＴＭ１２４２は、Ｔｒｕｓｔｅｄ  Ｂｏｏｔにおいて最初に実行されるコードであり、ＴＰＭ搭載物理サーバ１２００の基盤上のチップに予め格納される。
【００６３】
Ｂｏｏｔ  Ｆｉｒｍｗａｒｅ１２４４は、Ｔｒｕｓｔｅｄハイパバイザ１２１０を起動するまでにＴＰＭ搭載物理サーバ１２００を管理するソフトウェアである、例えば、Ｂｏｏｔ  Ｆｉｒｍｗａｒｅ１２４４は、ＢＩＯＳが考えられる。
【００６４】
Ｂｏｏｔ  Ｍａｎａｇｅｒ１２４７は、ハイパバイザ及びＯＳ等を起動するためのソフトウェアである。Ｂｏｏｔ  Ｍａｎａｇｅｒ１２４７は、ＣＰＵ１２５０によってストレージ１５００等からメモリ１２６０上に読み出され、ＣＰＵ１２５０によって実行される。
【００６５】
Ｔｒｕｓｔｅｄハイパバイザ１２１０は、ＴＰＭ１２７０を用いた起動されたハイパバイザである。Ｔｒｕｓｔｅｄハイパバイザ１２１０は、Ｋｅｒｎｅｌ  Ｌｏａｄｅｒ１２１１を含み、仮想ＴＰＭ用ＶＭ１２２０、及び複数のＴｒｕｓｔｅｄ  ＶＭ１２３０を管理する。
【００６６】
Ｔｒｕｓｔｅｄ  ＶＭ１２３０は、所定のアプリケーションを実行するＶＭである。Ｔｒｕｓｔｅｄ  ＶＭ１２３０は、Ｔｒｕｓｔｅｄ  ＯＳ１２３５、Ｔｒｕｓｔｅｄアプリケーション１２３６、及びフロントエンドＴＰＭドライバ（ＦＥ−ＴＰＭＤ）１２３２を備える。
【００６７】
また、Ｔｒｕｓｔｅｄ  ＶＭ１２３０には、仮想ＴＰＭ（ｖＴＰＭ）１２３１が割り当てられる。なお、Ｔｒｕｓｔｅｄ  ＶＭ１２３０は、図示しない仮想ＣＰＵ、仮想メモリ、及び仮想ネットワークインタフェース等も割り当てられる。
【００６８】
Ｔｒｕｓｔｅｄ  ＯＳ１２３５及びＴｒｕｓｔｅｄアプリケーション１２３６は、ＦＥ−ＴＰＭＤ１２３２を介してｖＴＰＭ１２３１を操作する。
【００６９】
仮想ＴＰＭ用ＶＭ１２２０は、ｖＴＰＭを実現するためのＶＭであり、ｖＴＰＭマネージャ１２３３、ＴＰＭドライバ１２２１、及びバックエンドＴＰＭドライバ（ＢＥ−ＴＰＭＤ）１２２２を備える。
【００７０】
ｖＴＰＭマネージャ１２３３は、ｖＴＰＭ１２３１に対する操作をエミュレーションする。ｖＴＰＭマネージャ１２３３は、ＦＥ−ＴＰＭＤ１２３２を介した操作をＢＥ−ＴＰＭＤ１２２２を介して受け付ける。さらに、ｖＴＰＭマネージャ１２３３は、ＴＰＭドライバ１２２１を介して、ＴＰＭ１２７０を操作する。
【００７１】
なお、本実施例では、仮想ＴＰＭ用ＶＭ１２２０がＴＰＭ１２７０のエミュレーションを行うが、本発明はこれに限定されない。例えば、Ｔｒｕｓｔｅｄハイパバイザ１２１０がＴＰＭ１２７０のエミュレーションを行ってもよい。この場合、Ｔｒｕｓｔｅｄハイパバイザ１２１０がＴＰＭドライバ１２２１、及びｖＴＰＭマネージャ１２３３を備える。
【００７２】
物理サーバ１３００は、ハードウェアとしてＣＰＵ１３５０、メモリ１３６０、ＢＭＣ１３８０、及びネットワークインタフェース１３９０を備える。
【００７３】
ＣＰＵ１３５０、メモリ１３６０、ＢＭＣ１３８０、及びネットワークインタフェース１３９０は、ＣＰＵ１１０１、メモリ１１０２、ＢＭＣ１１０４、及びネットワークインタフェース１１０５と同一のものであるため説明を省略する。
【００７４】
また、ＴＰＭ搭載物理サーバ１２００は、Ｂｏｏｔ  Ｆｉｒｍｗａｒｅ１３４４、及びＢｏｏｔ  Ｍａｎａｇｅｒ１３４７を備える。Ｂｏｏｔ  Ｆｉｒｍｗａｒｅ１３４４、及びＢｏｏｔ  Ｍａｎａｇｅｒ１３４７は、Ｂｏｏｔ  Ｆｉｒｍｗａｒｅ１２４４、及びＢｏｏｔ  Ｍａｎａｇｅｒ１２４７と同一であるため説明を省略する。
【００７５】
ハイパバイザ１３１０は、通常の起動方法を用いて起動されたハイパバイザである。ハイパバイザ１３１０は、Ｋｅｒｎｅｌ  Ｌｏａｄｅｒ１３１１を含み、複数のＶＭ１３３０を管理する。
【００７６】
ＶＭ１３３０は、所定のアプリケーションを実行するＶＭである。ＶＭ１３３０は、ＯＳ１３３５、及びアプリケーション１３３６を備える。
【００７７】
ＶＭ１３３０は、図示しない仮想ＣＰＵ、仮想メモリ、及び仮想ネットワークインタフェース等も割り当てられる。ただし、ＶＭ１３３０には、ｖＴＰＭ１２３１が割り当てられていない。
【００７８】
図５は、本発明の実施例１におけるＴＰＭ１２７０の構成例を示すブロック図である。
【００７９】
ＴＰＭ１２７０は、暗号化コプロセッサ１２７１、Ｏｐｔ−ｉｎ１２７２、ＮＶＲＡＭ１２７３、Ｅｎｄｏｒｓｅｍｅｎｔ  Ｋｅｙ１２７４、ＰＣＲ１２７５、Ｐｏｗｅｒ  Ｄｅｔｅｃｔｉｏｎ１２７６、Ｅｘｅｃｕｔｉｏｎ  Ｅｎｇｉｎｅ１２７７、Ｐｒｏｇｒａｍ  Ｃｏｄｅ１２７８、及びＩ／Ｏ１２７９を備える。
【００８０】
暗号化コプロセッサ１２７１は、ランダムデータの生成、非対称鍵（公開鍵及び秘密鍵）の生成、及びデータの暗号化等を行う。暗号化コプロセッサ１２７１は、乱数生成部、ＳＨＡ−１演算部、及びＲＳＡ演算部を備える。また、暗号化コプロセッサ１２７１は、ＤＳＡ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｔｕｒｅ  Ａｌｇｏｒｉｔｈｍ）演算部、及び楕円曲線演算部を備えていてもよい。
【００８１】
Ｏｐｔ−ｉｎ１２７２は、ＴＰＭ１２７０の状態を管理する。具体的には、ＴＰＭ１２７０の電源ＯＮ／ＯＦＦ、有効化／無効化、及び起動／停止等の状態を制御する。
【００８２】
ＮＶＲＡＭ１２７３は、ＴＰＭ１２７０の状態、ＴＰＭ１２７０固有の識別情報等を格納する。また、ＮＶＲＡＭ１２７３は、Ｅｎｄｏｒｓｅｍｅｎｔ  Ｋｅｙ１２７４を格納する。ここで、Ｅｎｄｏｒｓｅｍｅｎｔ  Ｋｅｙ１２７４は、公開鍵及び秘密鍵のペアを表す。
【００８３】
ＰＣＲ１２７５は、ＴｒｕｓｔｅｄＢｏｏｔ時の物理サーバの構成に関する予測値（ブートコンポーネントに関するハッシュ値）を格納するレジスタである。ブートコンポーネントに関するハッシュ値は、ブートコンポーネントの状態、構成等を示す計測値に基づいて算出される。なお、ＴＰＭ１２７０は、複数のＰＣＲ１２７５を備える。
【００８４】
Ｐｏｗｅｒ  Ｄｅｔｅｃｔｉｏｎ１２７６は、ＴＰＭ１２７０の電源を管理する。Ｅｘｅｃｕｔｉｏｎ  Ｅｎｇｉｎｅ１２７７は、Ｉ／Ｏ１２７９を介して受信したＴＰＭコマンドを実行するためのＰｒｏｇｒａｍ  Ｃｏｄｅ１２７８を実行する。ここで、Ｐｒｏｇｒａｍ  Ｃｏｄｅ１２７８は、ＴＰＭ１２７０の各種処理を実現するためのプログラムコードである。Ｉ／Ｏ１２７９は、ＴＰＭ１２７０と外部の装置とを接続する。
【００８５】
なお、本発明のＴＰＭ１２７０は図５に示す構成に限定されず、少なくともＰＣＲ１２７５を備えていればよい。
【００８６】
次に、ＶＭパッケージ１４１０について説明する。
【００８７】
図６は、本発明の実施例１のＶＭパッケージ１４１０の一例を示す説明図である。
【００８８】
ＶＭパッケージ１４１０は、複数のＯＶＦイメージファイル１４１１、複数のＯＶＦ署名１４１２、及びパッケージ署名１４１５を含む。
【００８９】
ＯＶＦイメージファイル１４１１は、所定のアプリケーションを実行するＶＭを生成するためのイメージファイルである。
【００９０】
複数のＯＶＦ署名１４１２は、ＯＶＦイメージファイル１４１１の改ざん等（ＯＶＦイメージファイル１４１１の整合性）を検証するために用いられるデジタル署名である。本実施例では、一つのＯＶＦイメージファイル１４１１に対して一つのＯＶＦ署名１４１２が対応づけられる。
【００９１】
また、本実施例では、ＶＭパッケージ１４１０には、ＴＰＭ搭載物理サーバ１２００又は物理サーバ１３００上に生成されるＶＭ、及びＶＭ上で実行されるアプリケーションの種類毎に、複数種類のＯＶＦイメージファイル１４１１が含まれる。また、ＶＭパッケージ１４１０には、仮想ＴＰＭ用ＶＭ１２２０を生成するためのＯＶＦイメージファイル１４１１も含まれる。
【００９２】
パッケージ署名１４１５は、ＶＭパッケージ１４１０自体の整合性を検証するために用いられるデジタル署名である。
【００９３】
次に、ＶＭ管理サーバ１１００が保持するテーブルについて説明する。
【００９４】
図７は、本発明の実施例１のＶＭ割当表１１１０の一例を示す説明図である。
【００９５】
ＶＭ割当表１１１０は、ＶＭ  ＩＤ１１１１、ＯＶＦ種別１１１２、物理サーバＩＤ１１１３、割当リソース１１１４、及び通信先ＶＭ  ＩＤ１１１７を含む。
【００９６】
ＶＭ  ＩＤ１１１１は、クラウドシステム１０００内で稼働するＶＭを一意に識別するための識別子である。
【００９７】
ＯＶＦ種別１１１２は、ＶＭ  ＩＤ１１１１に対応するＶＭを生成するために用いられたＯＶＦイメージファイル１４１１の種別を識別するための情報である。
【００９８】
図７に示す例では、Ｔｒｕｓｔｅｄ認証用ＶＭ、Ｔｒｕｓｔｅｄ実行用ＶＭ、認証用ＶＭ、及び実行用ＶＭの四つの種類のＯＶＦイメージファイル１４１１が存在する。
【００９９】
Ｔｒｕｓｔｅｄ認証用ＶＭ及び認証用ＶＭは、検証機関システム５００との間でアプリケーションの認証処理を実行するＶＭである。Ｔｒｕｓｔｅｄ実行用ＶＭ及び実行用ＶＭは、アプリケーションを実行するＶＭである。また、Ｔｒｕｓｔｅｄ認証用ＶＭ及びＴｒｕｓｔｅｄ実行用ＶＭは整合性が保証されたセキュアなＶＭであり、認証用ＶＭ及び実行用ＶＭは整合性が保証されていないＶＭである。
【０１００】
実施例１では、アプリケーションの起動後に行われる認証処理を考慮しないものとする。実施例２において、アプリケーションの起動後の認証処理について説明する。
【０１０１】
物理サーバＩＤ１１１３は、ＶＭ  ＩＤ１１１１に対応するＶＭが稼働する物理サーバを一意に識別するための識別子である。
【０１０２】
割当リソース１１１４は、ＶＭ  ＩＤ１１１１に対応するＶＭに割り当てられる計算機リソースに関する情報である。割当リソース１１１４は、割当ＣＰＵコア１１１５、及び割当メモリ量１１１６を含む。割当ＣＰＵコア１１１５は、ＶＭに割り当てられたＣＰＵコアの数である。割当メモリ量１１１６は、ＶＭに割り当てられたメモリ容量である。
【０１０３】
なお、割当リソース１１１４には、ＣＰＵのクロック数、及びネットワーク帯域等の情報が格納されてもよい。
【０１０４】
通信先ＶＭ  ＩＤ１１１７は、ＶＭ  ＩＤ１１１１に対応するＶＭが通信する他のＶＭを一意に識別するための識別子である。
【０１０５】
図８は、本発明の実施例１の物理サーバ構成表１１２０の一例を示す説明図である。
【０１０６】
物理サーバ構成表１１２０は、物理サーバＩＤ１１２１、ＣＰＵコア数１１２２、ＣＰＵ性能１１２３、メモリ量１１２４、ＴＰＭ搭載１１２５、管理ＩＰアドレス１１２６を含む。
【０１０７】
物理サーバＩＤ１１２１は、物理サーバを一意に識別するための識別子であり、物理サーバＩＤ１１１３と同一の情報である。
【０１０８】
ＣＰＵコア数１１２２は、物理サーバＩＤ１１２１に対応する物理サーバが備えるＣＰＵのコア数である。ＣＰＵ性能１１２３は、物理サーバＩＤ１１２１に対応する物理サーバが備えるＣＰＵの性能である。本実施例では、ＣＰＵのクロック数がＣＰＵ性能として格納される。メモリ量１１２４は、物理サーバＩＤ１１２１に対応する物理サーバが備えるメモリの容量である。
【０１０９】
ＴＰＭ搭載１１２５は、物理サーバＩＤ１１２１に対応する物理サーバがＴＰＭ１２７０を備えるか否かを示す情報である。ＴＰＭ１２７０を備える物理サーバの場合、ＴＰＭ搭載１１２５には「有」が格納され、ＴＰＭ１２７０の備えていない物理サーバの場合、ＴＰＭ搭載１１２５には「無」が格納される。
【０１１０】
これによって、ＴＰＭ搭載１１２５が「有」の場合、物理サーバＩＤ１１２１に対応するサーバはＴＰＭ搭載物理サーバ１２００であり、ＴＰＭ搭載１１２５が「無」の場合、物理サーバＩＤ１１２１に対応するサーバは物理サーバ１３００であることが分かる。
【０１１１】
本実施例では、ＴＰＭ搭載１１２５は、物理サーバに設定されたセキュリティ強度に関連するカラムである。したがって、ＴＰＭ搭載１１２５の代わりに、設定セキュリティ強度１１２５というカラムを用いてもよい。この場合、設定セキュリティ強度１１２５には、図９の要求セキュリティ強度１１４０５と同様に値が格納される。
【０１１２】
管理ＩＰアドレス１１２６は、管理ＮＷ１１０６内における物理サーバＩＤ１１２１に対応する物理サーバのＩＰアドレスである。
【０１１３】
図９は、本発明の実施例１のＶＭパッケージ管理表１１４０の一例を示す説明図である。
【０１１４】
ＶＭパッケージ管理表１１４０は、ＶＭパッケージＩＤ１１４０１、ＶＭパッケージ名１１４０２、ＯＶＦ  ＩＤ１１４０３、ＯＶＦ種別１１４０４、要求セキュリティ強度１１４０５、要求リソース１１４０６、及び宛先アドレス１１４１０を含む。
【０１１５】
ＶＭパッケージＩＤ１１４０１は、ＶＭパッケージ管理ＤＢ１４００内に含まれるＶＭパッケージ１４１０を一意に識別するための識別子である。ＶＭパッケージ名１１４０２は、ＶＭパッケージＩＤ１１４０１に対応するＶＭパッケージ１４１０の名称である。ＶＭパッケージ名１１４０２は、アプリケーションを提供するベンダによって設定される名称である。
【０１１６】
ＯＶＦ  ＩＤ１１４０３は、パッケージＩＤ１１４０１に対応するＶＭパッケージ１４１０に含まれるＯＶＦイメージファイル１４１１の識別子である。ＯＶＦ種別１１４０４は、ＯＶＦ  ＩＤ１１４０３に対応するＯＶＦイメージファイル１４１１の種別を識別するための情報である。ＯＶＦ種別１１４０４は、ＯＶＦ種別１１１２と同一の情報である。
【０１１７】
要求セキュリティ強度１１４０５は、ＯＶＦ  ＩＤ１１４０３に対応するＯＶＦイメージファイル１４１１のデプロイ時に要求されるセキュリティ強度を示す情報である。本実施例では、ＴＰＭ搭載物理サーバ１２００にデプロイするＯＶＦイメージファイル１４１１の場合、要求セキュリティ強度１１４０５には「１」が格納される。また、物理サーバ１３００にデプロイするＯＶＦイメージファイル１４１１の場合、要求セキュリティ強度１１４０５には「０」が格納される。なお、要求セキュリティ強度１１４０５に格納される値は、「０」又は「１」に限定されない。
【０１１８】
要求リソース１１４０６は、ＯＶＦ  ＩＤ１１４０３に対応するＯＶＦイメージファイル１４１１を用いて生成されるＶＭに必要な計算機リソースの情報である。要求リソース１１４０６は、要求ＣＰＵ性能１１４０７、要求メモリ量１１４０８、及び要求仮想ＮＷ数１１４０９を含む。
【０１１９】
要求ＣＰＵ性能１１４０７は、ＯＶＦイメージファイル１４１１を用いて生成されるＶＭに必要なＣＰＵの性能に関する情報である。要求メモリ量１１４０８は、ＯＶＦイメージファイル１４１１を用いて生成されるＶＭに必要なメモリの容量に関する情報である。要求仮想ＮＷ数１１４０９は、ＯＶＦイメージファイル１４１１を用いて生成されるＶＭに必要な仮想ネットワークの数に関する情報である。
【０１２０】
宛先アドレス１１４１０は、ＶＭパッケージＩＤ１１４０１に対応するＶＭパッケージ１４１０を提供するアプリケーション提供システム４００のＩＰアドレスである。本実施例では、デプロイ処理の実行時に、宛先アドレス１１４１０に対応するＩＰアドレス宛に整合性報告が送信される。
【０１２１】
以下、本実施例における処理の詳細についてフローチャートを用いて説明する。
【０１２２】
図１０は、本発明の実施例１におけるＶＭ管理サーバ１１００がデプロイ要求を受信した場合に実行する処理を説明するフローチャートである。
【０１２３】
ＶＭ管理サーバ１１００は、ユーザ３１０からデプロイ要求を受信すると処理を開始する（ステップＳ２０００）。具体的には、デプロイ要求受付部１１３０が、ネットワーク２００及び業務ＮＷ１００５を介して、端末３００から送信されたデプロイ要求を受信する。
【０１２４】
なお、デプロイ要求には、デプロイ対象となるＶＭパッケージ１４１０を特定するための情報が含まれる。例えば、ＶＭパッケージ１４１０の識別子、又はＶＭパッケージ１４１０の名称等が含まれる。本実施例では、デプロイ要求には、ＶＭパッケージ１４１０の名称が含まれているものとする。
【０１２５】
以下の説明において、指定されたＶＭパッケージ１４１０に含まれるＯＶＦイメージファイル１４１１を対象ＯＶＦイメージファイル１４１１とも記載する。
【０１２６】
ＶＭ管理サーバ１１００は、受信したデプロイ要求に基づいて、物理サーバの検索処理を実行する（ステップＳ２１００）。具体的には、物理サーバ検索部１１３１が、対象ＯＶＦイメージファイル１４１１毎に、デプロイ条件を満たす物理サーバを検索する。ここで、デプロイ条件とは、対象ＯＶＦイメージファイル１４１１をデプロイするための条件を示す。
【０１２７】
なお、物理サーバの検索処理の詳細については、図１１を用いて後述する。
【０１２８】
ＶＭ管理サーバ１１００は、物理サーバの検索処理の結果に基づいて、全ての対象ＯＶＦイメージファイル１４１１のデプロイが可能であるか否かを判定する（ステップＳ２２００）。
【０１２９】
全ての対象ＯＶＦイメージファイル１４１１のデプロイができないと判定された場合、ＶＭ管理サーバ１１００は、ユーザ３１０に対してデプロイが失敗した旨を応答し（ステップＳ２５００）、処理を終了する。具体的には、デプロイ要求受付部１１３０が、業務ＮＷ１００５及びネットワーク２００を介して、端末３００に対してデプロイが失敗した旨を通知する。
【０１３０】
全ての対象ＯＶＦイメージファイル１４１１のデプロイが可能であると判定された場合、ＶＭ管理サーバ１１００は、デプロイ処理を実行する（ステップＳ２３００）。具体的には、デプロイ指示部１１３２が、検索された物理サーバに対して、対象ＯＶＦイメージファイル１４１１をデプロイする。なお、デプロイ処理の詳細については、図１２を用いて後述する。
【０１３１】
ＶＭ管理サーバ１１００は、ユーザ３１０に対してデプロイ処理の結果を応答し（ステップＳ２４００）、処理を終了する。具体的には、デプロイ要求受付部１１３０が業務ＮＷ１００５及びネットワーク２００を介して、端末３００に対してデプロイ処理の結果を通知する。
【０１３２】
図１１は、本発明の実施例１の物理サーバ検索部１１３１が実行する物理サーバの検索処理の一例を説明するフローチャートである。
【０１３３】
物理サーバ検索部１１３１は、デプロイ要求受付部１１３０から呼び出されると処理を開始する（ステップＳ２１００）。
【０１３４】
物理サーバ検索部１１３１は、受信したデプロイ要求に基づいてＶＭパッケージ管理表１１４０を参照し、対象ＯＶＦイメージファイル１４１１を一つ選択する（ステップＳ２１０１）。
【０１３５】
具体的には、物理サーバ検索部１１３１は、ＶＭパッケージ管理表１１４０を参照し、デプロイ要求に含まれるＶＭパッケージ１４１０の名称と一致するＶＭパッケージ名１１４２のエントリを検索する。さらに、物理サーバ検索部１１３１は、当該エントリのＯＶＦ  ＩＤ１１４０３を参照し、一つのＯＶＦ  ＩＤ１１４０３を選択する。
【０１３６】
物理サーバ検索部１１３１は、物理サーバ構成表１１２０を参照し、処理対象の物理サーバを一つ選択する（ステップＳ２１０２）。本実施例では、物理サーバ検索部１１３１は、物理サーバ構成表１１２０の上のエントリから順に選択する。なお、計算機リソースの性能に基づいてエントリが選択されてもよい。例えば、ＣＰＵコア数１１２２の値が大きい順に選択する方法が考えられる。
【０１３７】
物理サーバ検索部１１３１は、選択された物理サーバが選択された対象ＯＶＦイメージファイル１４１１のデプロイに必要な要求セキュリティ強度を満たすか否かを判定する（ステップＳ２１０３）。具体的には、以下のような処理が実行される。
【０１３８】
物理サーバ検索部１１３１は、ＶＭパッケージ管理表１１４０を参照し、選択された対象ＯＶＦイメージファイル１４１１に対応するエントリの要求セキュリティ強度１１４０５の値が「０」より大きいか否かを判定する。
【０１３９】
要求セキュリティ強度１１４０５の値が「０」以下、すなわち、要求セキュリティ強度１１４０５の値が「０」であると判定された場合、物理サーバ検索部１１３１は、選択された物理サーバが選択された対象ＯＶＦイメージファイル１４１１のデプロイに必要な要求セキュリティ強度を満たすと判定する。
【０１４０】
要求セキュリティ強度１１４０５の値が「０」より大きい、すなわち、要求セキュリティ強度１１４０５の値が「１」であると判定された場合、物理サーバ検索部１１３１は、物理サーバ構成表１１２０を参照し、選択された物理サーバに対応するエントリのＴＰＭ搭載１１２５が「有」であるか否かを判定する。
【０１４１】
ＴＰＭ搭載１１２５が「有」でないと判定された場合、物理サーバ検索部１１３１は、選択された物理サーバが選択された対象ＯＶＦイメージファイル１４１１のデプロイに必要な要求セキュリティ強度を満たさないと判定する。
【０１４２】
ＴＰＭ搭載１１２５が「有」であると判定された場合、物理サーバ検索部１１３１は、選択された物理サーバが選択された対象ＯＶＦイメージファイル１４１１のデプロイに必要な要求セキュリティ強度を満たすと判定する。
【０１４３】
以上がステップＳ２１０３の処理である。
【０１４４】
ステップＳ２１０３において選択された物理サーバが選択された対象ＯＶＦイメージファイル１４１１のデプロイに必要な要求セキュリティ強度を満たすと判定された場合、物理サーバ検索部１１３１は、選択された物理サーバにおける割当可能な計算機リソース量を算出する（ステップＳ２１０４）。さらに、物理サーバ検索部１１３１は、計算機リソースの算出結果に基づいて対象ＯＶＦイメージファイル１４１１のデプロイに必要な計算機リソースを確保できるか否かを判定する（ステップＳ２１０５）。具体的には、以下のような処理が実行される。
【０１４５】
物理サーバ検索部１１３１は、ＶＭ割当表１１１０を参照して、物理サーバＩＤ１１１３が選択された物理サーバの識別子（物理サーバＩＤ１１２１）と一致するエントリを抽出する。
【０１４６】
物理サーバ検索部１１３１は、抽出された全てのエントリの割当ＣＰＵコア１１１５の合計値を算出する。物理サーバ検索部１１３１は、選択された物理サーバのＣＰＵコア数１１２２から算出された合計値を減算することによって、割当可能なＣＰＵコア数を算出する。
【０１４７】
なお、選択されたＯＶＦイメージファイル１４１１のＯＶＦ種別１１１２が「Ｔｒｕｓｔｅｄ認証」又は「Ｔｒｕｓｔｅｄ実行」の場合、物理サーバ検索部１１３１は、前述した合計値に仮想ＴＰＭ用ＶＭ１２２０に必要なＣＰＵコア数を加算する。物理サーバ検索部１１３１は、当該合計値を用いて割当可能なＣＰＵコア数を算出する。
【０１４８】
物理サーバ検索部１１３１は、抽出された全てのエントリの割当メモリ量１１１６の合計値を算出する。物理サーバ検索部１１３１は、選択された物理サーバのメモリ量１１２４から算出された合計値を減算することによって、割当可能なメモリ量を算出する。
【０１４９】
なお、選択されたＯＶＦイメージファイル１４１１のＯＶＦ種別１１１２が「Ｔｒｕｓｔｅｄ認証」又は「Ｔｒｕｓｔｅｄ実行」の場合、物理サーバ検索部１１３１は、前述した合計値に仮想ＴＰＭ用ＶＭ１２２０に必要なメモリ量を加算する。物理サーバ検索部１１３１は、当該合計値を用いて割当可能なメモリ量を算出する。
【０１５０】
物理サーバ検索部１１３１は、算出された割当可能なＣＰＵコアと、ＣＰＵ性能１１２３の値とを乗算して、乗算値が要求ＣＰＵ性能１１４７より大きいか否かを判定する。
【０１５１】
乗算値が要求ＣＰＵ性能１１４７以下の場合、物理サーバ検索部１１３１は、ＯＶＦイメージファイル１４１１のデプロイに必要な計算機リソース量を確保できないと判定する。
【０１５２】
乗算値が要求ＣＰＵ性能１１４７より大きい場合、物理サーバ検索部１１３１は、割当可能なメモリ量が要求メモリ量１１４８より大きいか否かを判定する。
【０１５３】
割当可能なメモリ量が要求メモリ量１１４８以下の場合、物理サーバ検索部１１３１は、対象ＯＶＦイメージファイル１４１１のデプロイに必要な計算機リソース量を確保できないと判定する。
【０１５４】
割当可能なメモリ量が要求メモリ量１１４８より大きい場合、物理サーバ検索部１１３１は、対象ＯＶＦイメージファイル１４１１のデプロイに必要な計算機リソース量を確保できると判定する。
【０１５５】
以上がステップＳ２１０４及びステップＳ２１０５の処理である。
【０１５６】
ステップＳ２１０５において対象ＯＶＦイメージファイル１４１１のデプロイに必要な計算機リソース量を確保できないと判定された場合、物理サーバ検索部１１３１は、ステップＳ２１０８に進む。
【０１５７】
ステップＳ２１０５において対象ＯＶＦイメージファイル１４１１のデプロイに必要な計算機リソース量を確保できると判定された場合、物理サーバ検索部１１３１は、ＶＭパッケージ１４１０に含まれる全ての対象ＯＶＦイメージファイル１４１１の処理が完了したか否かを判定する（ステップＳ２１０６）。このとき、物理サーバ検索部１１３１は、選択された対象ＯＶＦイメージファイル１４１１の識別子と選択された物理サーバの識別子とを対応づけたデプロイ情報を生成又は更新する。また、デプロイ情報には、対象ＯＶＦイメージファイル１４１１を用いたＶＭの生成に必要な情報、すなわち、割当リソース１１１４に格納される情報も含まれる。
【０１５８】
ＶＭパッケージ１４１０に含まれる全ての対象ＯＶＦイメージファイル１４１１の処理が完了していないと判定された場合、物理サーバ検索部１１３１は、ステップＳ２１０１に戻り、同様の処理を実行する。
【０１５９】
ＶＭパッケージ１４１０に含まれる全ての対象ＯＶＦイメージファイル１４１１の処理が完了していると判定された場合、物理サーバ検索部１１３１は、デプロイ情報を含む処理開始指示を出力し（ステップＳ２１０７）、処理を終了する。
【０１６０】
なお、デプロイ情報には、対象ＯＶＦイメージファイル１４１１の要求セキュリティ強度１１４０５の値も含まれる。
【０１６１】
ステップＳ２１０３において選択された物理サーバが要求セキュリティ強度を満たさないと判定された場合、又は、対象ＯＶＦイメージファイル１４１１のデプロイに必要な計算機リソース量を確保できないと判定された場合、物理サーバ検索部１１３１は、選択可能な物理サーバが存在するか否かを判定する（ステップＳ２１０８）。
【０１６２】
すなわち、物理サーバ構成表１１２０に含まれる全てのエントリについて処理が完了したか否かが判定される。物理サーバ構成表１１２０に含まれる全てのエントリについて処理が完了している場合、選択可能な物理サーバが存在しないと判定される。
【０１６３】
選択可能な物理サーバが存在すると判定された場合、物理サーバ検索部１１３１は、ステップＳ２１０２に戻り同様の処理を実行する。
【０１６４】
選択可能な物理サーバが存在しないと判定された場合、物理サーバ検索部１１３１は、デプロイ要求受付部１１３０に対して検索の失敗を応答し（ステップＳ２１０９）、処理を終了する。
い。
【０１６５】
以下の説明では、ＯＶＦイメージファイル１４１１のデプロイに必要な計算機リソース量を確保できると判定された物理サーバを対象物理サーバとも記載する。
【０１６６】
図１２は、本発明の実施例１におけるデプロイ指示部１１３２が実行するデプロイ処理を説明するフローチャートである。
【０１６７】
デプロイ指示部１１３２は、物理サーバ検索部１１３１から処理開始指示を受信すると処理を開始する（ステップＳ２３００）。
【０１６８】
デプロイ指示部１１３２は、デプロイ情報を参照して、対象ＯＶＦイメージファイル１４１１を一つ選択する（ステップＳ２３０１）。
【０１６９】
デプロイ指示部１１３２は、選択された対象ＯＶＦイメージファイル１４１１に対応づけられた要求セキュリティ強度の値が「０」より大きいか否かを判定する（ステップＳ２３０２）。すなわち、Ｔｒｕｓｔｅｄ  ＶＭ１２３０のデプロイ処理であるか否かが判定される。
【０１７０】
対象ＯＶＦイメージファイル１４１１に対応づけられた要求セキュリティ強度の値が「０」より大きいと判定された場合、デプロイ指示部１１３２は、対象物理サーバにＴｒｕｓｔｅｄ  ＶＭの起動指示を送信する（ステップＳ２３０３）。さらに、デプロイ指示部１１３２は、対象物理サーバに対象ＯＶＦイメージファイル１４１１を送信する（ステップＳ２３０４）。この場合、ＴＰＭ搭載物理サーバ１２００が対象物理サーバとなる。
【０１７１】
このとき、デプロイ指示部１１３２は、仮想ＴＰＭ用ＶＭ１２２０を生成するためのＯＶＦイメージファイル１４１１を対象物理サーバに送信する。また、デプロイ指示部１１３２は、対象ＯＶＦイメージファイル１４１１を提供するアプリケーション提供システム４００の宛先アドレス１１４１０もＴＰＭ搭載物理サーバ１２００に送信する。
【０１７２】
なお、仮想ＴＰＭ用ＶＭ１２２０を生成するためのＯＶＦイメージファイル１４１１は、選択された対象ＯＶＦイメージファイル１４１１が含まれるＶＭパッケージ管理ＤＢ１４００から取得されるものとする。ただし、本発明はこれに限定されず、Ｔｒｕｓｔｅｄハイパバイザ１２１０が全てのＶＭパッケージ１４１０に共通する仮想ＴＰＭ用ＶＭ１２２０を生成するための情報を保持していてもよい。
【０１７３】
ＴＰＭ搭載物理サーバ１２００は、Ｔｒｕｓｔｅｄ  ＶＭ１２３０の起動指示及びＯＶＦイメージファイル１４１１を受信した後、Ｔｒｕｓｔｅｄ  ＶＭ１２３０の起動処理を実行する。Ｔｒｕｓｔｅｄ  ＶＭ１２３０の起動処理については図１３Ａ及び図１３Ｂを用いて後述する。
【０１７４】
デプロイ指示部１１３２は、対象物理サーバから整合性報告の検証結果を受信し（ステップＳ２３０５）、当該検証結果が整合性がある旨を示す検証結果であるか否かを判定する（ステップＳ２３０６）。
【０１７５】
整合性がある旨を示す検証結果であると判定された場合、デプロイ指示部１１３２は、ステップＳ２３１０に進む。
【０１７６】
整合性がない旨を示す検証結果であると判定された場合、デプロイ指示部１１３２は、デプロイ結果として「ＮＧ」を出力し（ステップＳ２３０７）、処理を終了する。
【０１７７】
このとき、デプロイ指示部１１３２は、Ｔｒｕｓｔｅｄ  ＶＭ１２３０の起動指示を送信したＴＰＭ搭載物理サーバ１２００、及びＶＭ１３３０の起動指示を送信した物理サーバ１３００に、起動処理の中止を送信するものとする。
【０１７８】
ステップＳ２３０２において対象ＯＶＦイメージファイル１４１１に対応づけられた要求セキュリティ強度の値が「０」である場合、すなわち、通常のＶＭ１３３０のデプロイ処理である場合、デプロイ指示部１１３２は、対象物理サーバにＶＭの起動指示を送信する（ステップＳ２３０８）。さらに、デプロイ指示部１１３２は、対象物理サーバに対象ＯＶＦイメージファイル１４１１を送信する（ステップＳ２３０９）。この場合、物理サーバ１３００が対象物理サーバとなる。
【０１７９】
物理サーバ１３００は、ＶＭの起動指示及びＯＶＦイメージファイル１４１１を受信した後、ハイパバイザ１３１０がＶＭ１３３０を生成し、生成されたＶＭ１３３０上にＯＳ１３３５を起動させる。なお、ＶＭ１３３０の生成方法、ＯＳ１３３５の起動方法は公知の技術を用いればよいため詳細な説明は省略する。
【０１８０】
ステップＳ２３０９の処理の後、又は、ステップＳ２３０６において整合性がある旨を示す検証結果であると判定された場合、デプロイ指示部１１３２は、デプロイ情報に含まれる全てのＯＶＦイメージファイル１４１１について処理が完了したか否かを判定する（ステップＳ２３１０）。
【０１８１】
デプロイ情報に含まれる全てのＯＶＦイメージファイル１４１１について処理が完了していないと判定された場合、デプロイ指示部１１３２は、ステップＳ２３０１に戻り、同様の処理を実行する。
【０１８２】
デプロイ情報に含まれる全てのＯＶＦイメージファイル１４１１について処理が完了したと判定された場合、デプロイ指示部１１３２は、デプロイ結果として「ＯＫ」を出力し（ステップＳ２３１１）、処理を終了する。
【０１８３】
前述したように、本実施例では、Ｔｒｕｓｔｅｄ  ＶＭ１２３０をデプロイする場合に、要求セキュリティ強度１１４０５が所定の値以上である物理サーバが検索される。すなわち、ＴＰＭ搭載物理サーバ１２００が検索される。これによって、ＶＭの改ざん、及びユーザのなりすまし等を未然に防ぐことができ、また、不正なアプリケーションの実行、及び不正なアプリケーションの拡散等を防ぐことができる。
【０１８４】
図１３Ａ及び図１３Ｂは、本発明の実施例１のＴＰＭ搭載物理サーバ１２００が実行するＴｒｕｓｔｅｄ  ＶＭ１２３０の起動処理を説明するフローチャートである。
【０１８５】
ＴＰＭ搭載物理サーバ１２００は、ＶＭ管理サーバ１１００からＴｒｕｓｔｅｄ  ＶＭ１２３０の起動指示及び対象ＯＶＦイメージファイル１４１１を受信すると、Ｔｒｕｓｔｅｄ  ＶＭ１２３０の起動処理を開始する（ステップＳ３０００）。
【０１８６】
まず、ＴＰＭ搭載物理サーバ１２００が起動しているか否かが判定される（ステップＳ３００１）。具体的には、ＢＭＣ１１０４が、電源ＯＮの状態である否かを判定する。電源ＯＮの状態である場合には、ＴＰＭ搭載物理サーバ１２００が起動していると判定される。
【０１８７】
ＴＰＭ搭載物理サーバ１２００が起動していると判定された場合、ステップＳ３００３の処理から開始される。
【０１８８】
一方、ＴＰＭ搭載物理サーバ１２００が起動していないと判定された場合には、ＢＭＣ１１０４は、ＴＰＭ搭載物理サーバ１２００の電源をＯＮの状態にする。ＴＰＭ搭載物理サーバ１２００は、電源がＯＮの状態になるとＴｒｕｓｔｅｄ  Ｂｏｏｔ処理を実行する（ステップＳ３００２）。具体的には、以下のような処理が実行される。
【０１８９】
ＣＰＵ１２５０がＣＲＴＭ１２４２のハッシュ値を取得し、ＣＲＴＭ１２４２のハッシュ値をＰＣＲ１２７５に書き込む。その後、ＣＰＵ１２５０は、ＣＲＴＭ１２４２を実行する。さらに、ＣＲＴＭ１２４２を実行するＣＰＵ１２５０は、Ｂｏｏｔ  Ｆｉｒｍｗａｒｅ１２４４のハッシュ値を取得し、Ｂｏｏｔ  Ｆｉｒｍｗａｒｅ１２４４のハッシュ値をＰＣＲ１２７５に書き込む。その後、ＣＰＵ１２５０は、Ｂｏｏｔ  Ｆｉｒｍｗａｒｅ１２４４を起動する。
【０１９０】
Ｂｏｏｔ  Ｆｉｒｍｗａｒｅ１２４４は、Ｂｏｏｔ  Ｍａｎａｇｅｒ１２４７のハッシュ値を取得し、Ｂｏｏｔ  Ｍａｎａｇｅｒ１２４７のハッシュ値をＰＣＲ１２７５に書き込む。その後、Ｂｏｏｔ  Ｆｉｒｍｗａｒｅ１２４４は、Ｂｏｏｔ  Ｍａｎａｇｅｒ１２４７を起動する。
【０１９１】
以上がステップＳ３００２の処理である。
【０１９２】
次に、ＴＰＭ搭載物理サーバ１２００は、Ｔｒｕｓｔｅｄハイパバイザ１２１０が起動しているか否かを判定する（ステップＳ３００３）。例えば、Ｔｒｕｓｔｅｄ  Ｂｏｏｔ処理の途中であるか否かが判定される。
【０１９３】
Ｔｒｕｓｔｅｄハイパバイザ１２１０が起動していると判定された場合、ＴＰＭ搭載物理サーバ１２００は、ステップＳ３００５に進む。
【０１９４】
Ｔｒｕｓｔｅｄハイパバイザ１２１０が起動していないと判定された場合、ＴＰＭ搭載物理サーバ１２００は、Ｔｒｕｓｔｅｄ  Ｂｏｏｔ処理を継続する（ステップＳ３００４）。具体的には、以下のような処理が実行される。
【０１９５】
Ｂｏｏｔ  Ｍａｎａｇｅｒ１２４７が、Ｋｅｒｎｅｌ  Ｌｏａｄｅｒ１２１１を読み出し、読み出されたＫｅｒｎｅｌ  Ｌｏａｄｅｒ１２１１のハッシュ値を取得し、Ｋｅｒｎｅｌ  Ｌｏａｄｅｒ１２１１のハッシュ値をＰＣＲ１２７５に書き込む。その後、Ｂｏｏｔ  Ｍａｎａｇｅｒ１２４７は、Ｋｅｒｎｅｌ  Ｌｏａｄｅｒ１２１１を実行する。
【０１９６】
Ｋｅｒｎｅｌ  Ｌｏａｄｅｒ１２１１は、Ｔｒｕｓｔｅｄハイパバイザ１２１０のイメージを読み出し、読み出されたＴｒｕｓｔｅｄハイパバイザ１２１０のイメージのハッシュ値を取得し、Ｔｒｕｓｔｅｄハイパバイザ１２１０のイメージのハッシュ値をＰＣＲ１２７５に格納する。その後、Ｋｅｒｎｅｌ  Ｌｏａｄｅｒ１２１１は、Ｔｒｕｓｔｅｄハイパバイザ１２１０を起動する。
【０１９７】
以上がステップＳ３００４の処理である。
【０１９８】
次に、ＴＰＭ搭載物理サーバ１２００は、仮想ＴＰＭ用ＶＭ１２２０が起動しているか否かを判定する（ステップＳ３００５）。具体的には、Ｔｒｕｓｔｅｄハイパバイザ１２１０が、仮想ＴＰＭ用ＶＭ１２２０が起動しているか否かを判定する。
【０１９９】
仮想ＴＰＭ用ＶＭ１２２０が起動していると判定された場合、ＴＰＭ搭載物理サーバ１２００は、ステップＳ３００７に進む。
【０２００】
仮想ＴＰＭ用ＶＭ１２２０が起動していないと判定された場合、ＴＰＭ搭載物理サーバ１２００は、Ｔｒｕｓｔｅｄ  Ｂｏｏｔ処理を継続する（ステップＳ３００６）。具体的には、以下のような処理が実行される。
【０２０１】
Ｔｒｕｓｔｅｄハイパバイザ１２１０が、仮想ＴＰＭ用ＶＭ１２２０を生成するためのＯＶＦイメージファイル１４１１を読み出し、読み出されたＯＶＦイメージファイル１４１１のハッシュ値を取得し、ＯＶＦイメージファイル１４１１のハッシュ値をＰＣＲ１２７５に書き込む。
【０２０２】
その後、Ｔｒｕｓｔｅｄハイパバイザ１２１０は、読み出されたＯＶＦイメージファイル１４１１を用いて仮想ＴＰＭ用ＶＭ１２２０を生成し、生成された仮想ＴＰＭ用ＶＭ１２２０を起動する。なお、仮想ＴＰＭ用ＶＭ１２２０の生成方法、及び起動方法は公知の技術を用いればよいため説明を省略する。
【０２０３】
以上がステップＳ３００６の処理である。
【０２０４】
次に、ＴＰＭ搭載物理サーバ１２００は、ｖＴＰＭ１２３１を生成する（ステップＳ３００７）。ＴＰＭ搭載物理サーバ１２００は、受信した対象ＯＶＦイメージファイル１４１１を用いて所定のＴｒｕｓｔｅｄ  ＶＭ１２３０を生成する（ステップＳ３００８）。
【０２０５】
具体的には、Ｔｒｕｓｔｅｄハイパバイザ１２１０が、仮想ＴＰＭ用ＶＭ１２２０を制御してｖＴＰＭ１２３１を生成する。Ｔｒｕｓｔｅｄハイパバイザ１２１０は、ｖＴＰＭ１２３１、及び、所定の計算機リソースを割り当てることによってＴｒｕｓｔｅｄ  ＶＭ１２３０を生成する。
【０２０６】
この時点では、計算機リソースが割り当てられた状態であり、Ｔｒｕｓｔｅｄ  ＶＭ１２３０上ではＴｒｕｓｔｅｄ  ＯＳ１２３５、及びＴｒｕｓｔｅｄアプリケーション１２３６は稼働していない。なお、ｖＴＰＭ１２３１の生成方法は公知の技術を用いればよいため説明を省略する。
【０２０７】
ＴＰＭ搭載物理サーバ１２００は、受信したＯＶＦイメージファイル１４１１に対応するＯＶＦ署名１４１２を用いて、当該ＯＶＦイメージファイル１４１１を検証する（ステップＳ３００９）。
【０２０８】
このとき、ＴＰＭ搭載物理サーバ１２００は、ＶＭパッケージ管理ＤＢ１４００から、受信したＯＶＦイメージファイル１４１１に対応するＯＶＦ署名１４１２を取得する。なお、ＯＶＦ署名１４１２を用いたＯＶＦイメージファイル１４１１の検証処理は公知の技術を用いればよいため説明を省略する。
【０２０９】
ステップＳ３００９の検証処理の結果がエラーである場合、ＴＰＭ搭載物理サーバ１２００は、ＶＭ管理サーバ１１００に不正である旨の検証結果を出力し、処理を終了する。ステップＳ３００９の検証処理の結果がエラーでない場合、ＴＰＭ搭載物理サーバ１２００はステップＳ３０１０に進む。
【０２１０】
ＴＰＭ搭載物理サーバ１２００は、受信したＯＶＦイメージファイル１４１１のハッシュ値を取得し、ＯＶＦイメージファイル１４１１のハッシュ値をＰＣＲ１２７５に書き込む（ステップＳ３０１０）。
【０２１１】
具体的には、Ｔｒｕｓｔｅｄハイパバイザ１２１０が、受信したＯＶＦイメージファイル１４１１のハッシュ値を取得し、取得されたＯＶＦイメージファイル１４１１のハッシュ値をＰＣＲ１２７５に書き込む。
【０２１２】
ＴＰＭ搭載物理サーバ１２００は、受信したＯＶＦイメージファイル１４１１を提供するアプリケーション提供システム４００に、整合性報告を送信する（ステップＳ３０１１）。
【０２１３】
具体的には、Ｔｒｕｓｔｅｄハイパバイザ１２１０が、受信した宛先アドレス１１４１０に対応するＩＰアドレス宛に、整合性報告を送信する。整合性報告には、ＰＣＲ１２７５に格納されるハッシュ値が含まれる。
【０２１４】
なお、整合性報告には、生成されたＴｒｕｓｔｅｄ  ＶＭ１２３０に割り当てられたｖＴＰＭ１２３１の鍵情報が含まれてもよい。ここで、ｖＴＰＭ１２３１の鍵情報は、ｖＴＰＭ１２３１におけるＥｎｄｏｒｓｅｍｅｎｔ  Ｋｅｙ１２７４に対応するものである。
【０２１５】
なお、アプリケーション提供システム４００が実行する処理については、図１４を用いて後述する。
【０２１６】
ＴＰＭ搭載物理サーバ１２００は、アプリケーション提供システム４００から整合性報告の結果を受信すると（ステップＳ３０１２）、当該整合性報告の結果が整合性がある旨を示す結果であるか否かを判定する（ステップＳ３０１３）。
【０２１７】
整合性報告の結果が不正である旨を示す結果であると判定された場合、ＴＰＭ搭載物理サーバ１２００は、整合性報告の結果を応答し（ステップＳ３０１６）、処理を終了する。
【０２１８】
整合性報告の結果が整合性がある旨を示す結果であると判定された場合、ＴＰＭ搭載物理サーバ１２００は、受信したＯＶＦイメージファイル１４１１を用いて、Ｔｒｕｓｔｅｄ  ＯＳ１２３５を起動する（ステップＳ３０１４）。
【０２１９】
Ｔｒｕｓｔｅｄ  ＯＳ１２３５の起動処理は様々な形態が考えられる。本実施例では例えば以下のような起動処理が実行される。
【０２２０】
Ｔｒｕｓｔｅｄハイパバイザ１２１０が、仮想的なＢＩＯＳのハッシュ値を取得し、仮想的なＢＩＯＳのハッシュ値をｖＴＰＭ１２３１のＰＣＲ１２７５に書き込む。その後、Ｔｒｕｓｔｅｄハイパバイザ１２１０が、仮想的なＢＩＯＳを起動する。仮想的なＢＩＯＳは、Ｔｒｕｓｔｅｄハイパバイザ１２１０によってエミュレーションされたＢＩＯＳである。このとき、ｖＴＰＭ１２３１へのハッシュ値の書き込みは、仮想ＴＰＭ用ＶＭ１２２０によってエミュレーションされる。
【０２２１】
その後、仮想的なＢＩＯＳは仮想的なカーネルローダを呼び出し、仮想的なカーネルローダは、Ｔｒｕｓｔｅｄ  ＯＳ１２３５を起動する。このとき、仮想的なＢＩＯＳは仮想的なカーネルローダのハッシュ値を取得し、仮想的なカーネルローダは、Ｔｒｕｓｔｅｄ  ＯＳ１２３５のハッシュ値を取得する。仮想的なＢＩＯＳ及び仮想的なカーネルローダは、それぞれ、取得されたハッシュ値をｖＴＰＭ１２３１のＰＣＲに書き込む。このとき、ｖＴＰＭ１２３１のＰＣＲへのハッシュ値の書き込みは、仮想ＴＰＭ用ＶＭ１２２０によってエミュレーションされ、ＰＣＲ１２７５に書き込まれる。
【０２２２】
以上がＴｒｕｓｔｅｄ  ＯＳ１２３５の起動処理の一例である。
【０２２３】
次に、ＴＰＭ搭載物理サーバ１２００は、受信したＯＶＦイメージファイル１４１１を用いて、Ｔｒｕｓｔｅｄアプリケーション１２３６を起動する（ステップＳ３０１５）。
【０２２４】
具体的には、Ｔｒｕｓｔｅｄ  ＯＳ１２３５が、Ｔｒｕｓｔｅｄアプリケーション１２３６のハッシュ値を取得し、Ｔｒｕｓｔｅｄアプリケーション１２３６のハッシュ値をｖＴＰＭ１２３１のＰＣＲに書き込む。その後、Ｔｒｕｓｔｅｄ  ＯＳ１２３５がＴｒｕｓｔｅｄアプリケーション１２３６を実行する。
【０２２５】
ＴＰＭ搭載物理サーバ１２００は、整合性報告の結果を応答し（ステップＳ３０１６）、処理を終了する。
【０２２６】
図１４は、本発明の実施例１の認証サーバ４１０が実行する処理を説明するフローチャートである。
【０２２７】
認証サーバ４１０は、ＴＰＭ搭載物理サーバ１２００から整合性報告を受信すると（ステップＳ４００１）、受信した整合性報告を検証機関システム５００に転送する（ステップＳ４００２）。
【０２２８】
検証機関システム５００では、検証サーバ５１０が、整合性報告、ＩＩＤＢ５２０、及びＶＵＬＤＢ５３０に基づいて所定の検証処理を実行し、検証結果を出力する。検証サーバ５１０は、出力された検証結果をアプリケーション提供システム４００に送信する。なお、検証処理は公知の技術を用いればよいため説明を省略する。
【０２２９】
認証サーバ４１０は、検証結果を受信すると（ステップＳ４００３）、当該検証結果に基づいてライセンスＤＢ４３０を更新する（ステップＳ４００４）。具体的には以下のような処理が実行される。
【０２３０】
認証サーバ４１０は、検証結果を解析し、整合性報告の内容が正しい旨の検証結果であるか否かを判定する。
【０２３１】
整合性報告の内容が正しい旨の検証結果であると判定された場合、認証サーバ４１０は、ライセンスＤＢ４３０に新たに生成されたＶＭに関する情報を追加する。一方、整合性報告の内容が誤りである旨の検証結果であると判定された場合、認証サーバ４１０は、ライセンスＤＢ４３０を更新することなく次のステップに進む。
【０２３２】
認証サーバ４１０は、受信した検証結果をＴＰＭ搭載物理サーバ１２００に対して転送し（ステップＳ４００５）、処理を終了する。
【０２３３】
以上で説明したように、整合性報告がアプリケーション提供システム４００に送信される。これによって、アプリケーション提供システムを運用するアプリベンダは、提供するＶＭパッケージ１４１０の利用状況を把握することができる。
【０２３４】
実施例１によれば、セキュリティ強度に基づいてデプロイ先の物理サーバが選択されるためＶＭ、ＯＳ、及びアプリケーションの整合性を保証することができる。これによって、安全なクラウドサービスを実現することができる。また、実施例１では、アプリケーション提供システム４００を介して整合性報告が送信される。これによって、アプリケーション提供システム４００が、クラウドシステム１０００上で稼働するアプリケーションの利用状態を把握することができる。
【実施例２】
【０２３５】
Ｔｒｕｓｔｅｄ  ＯＳ１２３５の起動後、Ｔｒｕｓｔｅｄ  ＶＭ１２３０とアプリケーション提供システム４００との間では、Ｔｒｕｓｔｅｄアプリケーション１２３６の改ざん等を監視するために認証処理が周期的に実行される。ここで、Ｔｒｕｓｔｅｄアプリケーション１２３６の認証処理では、ライセンス数、アプリケーションの実行状態等の状態が確認される。
【０２３６】
この場合、認証処理における通信がボトルネックとなって、ユーザ３１０が要求する性能を発揮できない場合がある。実施例２では、Ｔｒｕｓｔｅｄアプリケーション１２３６の整合性を保証し、かつ、Ｔｒｕｓｔｅｄアプリケーション１２３６の処理性能の低下を抑止するシステムについて説明する。
【０２３７】
以下、実施例１との差異を中心に説明する。
【０２３８】
計算機システムの構成は、実施例１と同一であるため説明を省略する。また、ＶＭ管理サーバ１１００、及び物理サーバ１３００のハードウェア構成及びソフトウェア構成は、実施例１と同一であるため説明を省略する。
【０２３９】
図１５は、本発明の実施例２のＴＰＭ搭載物理サーバ１２００のハードウェア構成及びソフトウェア構成の一例を示すブロック図である。
【０２４０】
ＴＰＭ搭載物理サーバ１２００のハードウェア構成は実施例１と同一である。実施例２では、Ｔｒｕｓｔｅｄ認証用ＶＭ２２３０及びＴｒｕｓｔｅｄ実行用ＶＭ２２４０の二つＶＭが存在する点が実施例１と異なる。その他のソフトウェア構成は、実施例１と同一である。
【０２４１】
Ｔｒｕｓｔｅｄ認証用ＶＭ２２３０は、アプリケーション提供システム４００との間の通信を行うＶＭである。Ｔｒｕｓｔｅｄ認証用ＶＭ２２３０上では、Ｔｒｕｓｔｅｄチェッカ１２３７が実行される。Ｔｒｕｓｔｅｄチェッカ１２３７は、Ｔｒｕｓｔｅｄアプリケーション１２３６の認証処理を実行するアプリケーションである。
【０２４２】
また、Ｔｒｕｓｔｅｄ実行用ＶＭ２２４０は、アプリベンダが提供するアプリケーションであるＴｒｕｓｔｅｄアプリケーション１２３６を実行するＶＭである。
【０２４３】
したがって、実施例２のＶＭパッケージ１４１０には、Ｔｒｕｓｔｅｄ認証用ＶＭ２２３０を生成するためのＯＶＦイメージファイル１４１１と、Ｔｒｕｓｔｅｄ実行用ＶＭ２２４０を生成するためのＯＶＦイメージファイル１４１１とが含まれる。
【０２４４】
なお、Ｔｒｕｓｔｅｄ実行用ＶＭ２２４０は、Ｔｒｕｓｔｅｄアプリケーション１２３６の認証を行うため、Ｔｒｕｓｔｅｄ認証用ＶＭ２２３０と通信するように設定される。また、ＴＰＭ搭載物理サーバ１２００上では、一つのＴｒｕｓｔｅｄ認証用ＶＭ２２３０と、一つ以上のＴｒｕｓｔｅｄ実行用ＶＭ２２４０が稼働する。
【０２４５】
次に、実施例２の各処理について説明する。
【０２４６】
ＶＭ管理サーバ１１００が実行する処理は実施例１と同一であるため説明する。実施例２では、Ｔｒｕｓｔｅｄ  ＶＭ１２３０の起動処理が異なる。
【０２４７】
ステップ３００１からステップＳ３００７までの処理は実施例１の処理と同一である。
【０２４８】
ステップＳ３００８では、ＴＰＭ搭載物理サーバ１２００は、Ｔｒｕｓｔｅｄ認証用ＶＭ２２３０及びＴｒｕｓｔｅｄ実行用ＶＭ２２４０を生成する。
【０２４９】
ステップＳ３００９からステップＳ３０１３では、ＴＰＭ搭載物理サーバ１２００は、Ｔｒｕｓｔｅｄ認証用ＶＭ２２３０及びＴｒｕｓｔｅｄ実行用ＶＭ２２４０のそれぞれについて整合性報告の送信、及び整合性報告の結果の判定処理を実行する。
【０２５０】
ステップＳ３０１３において、Ｔｒｕｓｔｅｄ認証用ＶＭ２２３０及びＴｒｕｓｔｅｄ実行用ＶＭ２２４０の両方のＶＭの整合性報告の結果が整合性がある旨を示す結果であるか否かを判定する。
【０２５１】
両方のＶＭの整合性報告の結果が整合性がある旨を示す結果であると判定された場合、ＴＰＭ搭載物理サーバ１２００は、Ｔｒｕｓｔｅｄ認証用ＶＭ２２３０上でＴｒｕｓｔｅｄ  ＯＳ１２３５を起動する。その後、ＴＰＭ搭載物理サーバ１２００は、Ｔｒｕｓｔｅｄ実行用ＶＭ２２４０上でＴｒｕｓｔｅｄ  ＯＳ１２３５を起動する。
【０２５２】
さらに、ＴＰＭ搭載物理サーバ１２００は、Ｔｒｕｓｔｅｄ認証用ＶＭ２２３０上でＴｒｕｓｔｅｄチェッカ１２３７を起動させ、Ｔｒｕｓｔｅｄ実行用ＶＭ２２４０上でＴｒｕｓｔｅｄアプリケーション１２３６を起動させる。
【０２５３】
これによって、Ｔｒｕｓｔｅｄ実行用ＶＭ２２４０及びＴｒｕｓｔｅｄ認証用ＶＭ２２３０の整合性が保証される。すなわち、ＶＭ、ＯＳ、及びアプリケーションの改ざん等が行われていないことが保証される。
【０２５４】
図１６は、本発明の実施例２におけるＴｒｕｓｔｅｄアプリケーション１２３６の認証処理を説明するシーケンス図である。
【０２５５】
ＴＰＭ搭載物理サーバ１２００上では、Ｔｒｕｓｔｅｄ認証用ＶＭ２２３０及びＴｒｕｓｔｅｄ実行用ＶＭ２２４０が稼働する。また、Ｔｒｕｓｔｅｄ認証用ＶＭ２２３０では、Ｔｒｕｓｔｅｄチェッカ１２が実行される。Ｔｒｕｓｔｅｄ実行用ＶＭ２２４０上では、Ｔｒｕｓｔｅｄアプリケーション１２３６が実行される。
【０２５６】
Ｔｒｕｓｔｅｄアプリケーション１２３６は、周期的に、認証報告ＡをＴｒｕｓｔｅｄチェッカ１２３７に送信する。
【０２５７】
Ｔｒｕｓｔｅｄチェッカ１２３７は、認証報告Ａを受信すると、認証報告Ａに基づいて認証処理を実行し、認証結果をＴｒｕｓｔｅｄアプリケーション１２３６に送信する。認証報告Ａには例えばライセンス番号やアプリケーションの実行回数などが含まれる。
【０２５８】
Ｔｒｕｓｔｅｄチェッカ１２３７は、複数の認証報告Ａが含まれる認証報告Ｂを認証サーバ４１０に送信する。
【０２５９】
認証サーバ４１０は、認証報告Ｂに基づいて認証処理を実行する。認証サーバ４１０が実行する認証処理は公知のものを用いればよいため詳細な説明を省略する。
【０２６０】
このとき、認証サーバ４１０は、少なくとも一つの認証報告Ａに対する認証処理の結果が不正である場合、不正である旨の認証結果をＴｒｕｓｔｅｄチェッカ１２３７に送信する。Ｔｒｕｓｔｅｄチェッカ１２３７は、一度不正であると判定されたＴｒｕｓｔｅｄアプリケーション１２３６に対しては、以降、正当な認証結果を返さないことによって、当該Ｔｒｕｓｔｅｄアプリケーションの不正な実行を防止する。なお、前述した認証処理の判定方法は一例であって、本発明はこれに限定されない。
【０２６１】
以上で説明したように、Ｔｒｕｓｔｅｄアプリケーション１２３６とＴｒｕｓｔｅｄチェッカ１２３７との間の通信はメモリ１２６０内の通信である。したがって、頻繁な認証処理における通信が、Ｔｒｕｓｔｅｄアプリケーション１２３６の処理性能に影響しない。
【０２６２】
実施例２によれば、アプリケーションの処理性能を低下させることなく、実行中のアプリケーションの認証を行うことができる。
【実施例３】
【０２６３】
実施例３では、Ｔｒｕｓｔｅｄハイパバイザ１２１０が整合性報告を暗号化して送信する。
【０２６４】
以下、実施例１との差異を中心に説明する。
【０２６５】
計算機システムの構成は、実施例１と同一であるため説明を省略する。また、ＶＭ管理サーバ１１００、及び物理サーバ１３００のハードウェア構成及びソフトウェア構成は、実施例１と同一であるため説明を省略する。
【０２６６】
図１７は、本発明の実施例３のＶＭパッケージ１４１０の一例を示す説明図である。
【０２６７】
実施例３におけるＶＭパッケージ１４１０には、新たに公開鍵１４１６が含まれる。公開鍵１４１６は、アプリケーション提供システム４００において生成された公開鍵である。
【０２６８】
例えば、ＶＭパッケージ配信サーバ４２０が、予め、公開鍵及び秘密鍵を生成し、生成された公開鍵を含むＶＭパッケージ１４１０をクラウドシステム１０００に配信する。これによって、図１７に示すようなＶＭパッケージ１４１０がＶＭパッケージ管理ＤＢ１４００に登録される。なお、秘密鍵は、ＶＭパッケージ配信サーバ４２０から認証サーバ４１０に出力されるものとする。すなわち、認証サーバ４１０が秘密鍵を保持する。
【０２６９】
前述した鍵の管理方法は一例であって、認証サーバ４１０が公開鍵及び秘密鍵を生成してもよい。
【０２７０】
次に、実施例２の各処理について説明する。
【０２７１】
ＶＭ管理サーバ１１００が実行する処理は実施例１と同一であるため説明する。実施例２では、Ｔｒｕｓｔｅｄ  ＶＭ１２３０の起動処理が異なる。
【０２７２】
ステップＳ３００１からステップＳ３０１０の処理は、実施例１と同一の処理である。
【０２７３】
ステップＳ３０１１において、Ｔｒｕｓｔｅｄハイパバイザ１２１０は、ＯＶＦイメージファイル１４１１に含まれる公開鍵１４１６を用いて、整合性報告を暗号化する。例えば、ＰＣＲ１２７５に格納される全てのハッシュ値が暗号化される。その後、Ｔｒｕｓｔｅｄハイパバイザ１２１０は、暗号化された整合性報告を認証サーバ４１０に送信する。
【０２７４】
ステップＳ３０１２からステップＳ３０１６の処理は、実施例１と同一の処理である。
【０２７５】
図１８は、本発明の実施例３の認証サーバ４１０が実行する処理を説明するフローチャートである。
【０２７６】
認証サーバ４１０は、ＴＰＭ搭載物理サーバ１２００から、暗号化された整合性報告を受信すると（ステップＳ４００１）、秘密鍵を用いて暗号化された整合性報告を復号化する（ステップＳ４１０１）。さらに、認証サーバ４１０は、暗号化された整合性報告を復号化できたか否かを判定する（ステップＳ４１０２）。
【０２７７】
暗号化された整合性報告を復号化できたと判定された場合、認証サーバ４１０は、ステップ４００２からステップＳ４００５の処理を実行する。なお、ステップＳ４００２からステップ４００５の処理は実施例１の処理と同一である。
【０２７８】
暗号化された整合性報告を復号化できないと判定された場合、認証サーバ４１０は、受信した整合性報告を検証機関システム５００に転送することなく、処理を終了する。
【０２７９】
また、実施例３ではＴＰＭ搭載物理サーバ１２００が実行する処理が一部異なる。
【０２８０】
ステップＳ３０１２において、ＴＰＭ搭載物理サーバ１２００は、検証結果を受信したか否かを判定する。例えば、予めタイムアウトの時間を設定し、当該時間以上検証結果の応答がない場合、ＴＰＭ搭載物理サーバ１２００は、検証結果を受信していないと判定する。
【０２８１】
検証結果を受信したと判定された場合、ＴＰＭ搭載物理サーバ１２００は、ステップＳ３０１３からステップＳ３０１６までの処理を実行する。
【０２８２】
検証結果を受信していないと判定された場合、ＴＰＭ搭載物理サーバ１２００は、不正である旨の検証結果を応答し（ステップＳ３０１６）、処理を終了する。
【０２８３】
実施例３によれば、不正なアプリケーション提供システム４００による認証等を防ぐことができるため、計算機システムにおけるセキュリティを高める効果がある。
【０２８４】
なお、本実施例で例示した種々のソフトウェアは、電磁的、電子的及び光学式等の種々の記録媒体（例えば、非一時的な記憶媒体）に格納可能であり、インターネット等の通信網を通じて、コンピュータにダウンロード可能である。本実施例では、ソフトウェアによる制御を用いた例について説明したが、その一部をハードウェアによって実現することも可能である。
【０２８５】
以上、本発明を添付の図面を参照して詳細に説明したが、本発明はこのような具体的構成に限定されるものではなく、添付した請求の範囲の趣旨内における様々な変更及び同等の構成を含むものである。
【符号の説明】
【０２８６】
２００  ネットワーク
３００  端末
４００  アプリケーション提供システム
４０５  ネットワーク
４１０  認証サーバ
４２０  ＶＭパッケージ配信サーバ
４３０  ライセンスＤＢ
４４０  ＶＭパッケージＤＢ
５００  検証機関システム
５０５  ネットワーク
５１０  検証サーバ
５２０  ＩＩＤＢ
５３０  ＶＵＬＤＢ
１０００  クラウドシステム
１００５  業務ＮＷ
１００６  管理ＮＷ
１１００  ＶＭ管理サーバ
１１３０  デプロイ要求受付部
１１３１  物理サーバ検索部
１１３２  デプロイ指示部
１１４０  ＶＭパッケージ管理表
１２００  ＴＰＭ搭載物理サーバ
１２１０  Ｔｒｕｓｔｅｄハイパバイザ
１２２０  仮想ＴＰＭ用ＶＭ
１２２１  ＴＰＭドライバ
１２２２  ＦＥ−ＴＰＭＤ
１２３０  Ｔｒｕｓｔｅｄ  ＶＭ
１２３１  ｖＴＰＭ
１２３２  ＢＥ−ＴＰＭＤ
１２３３  ｖＴＰＭマネージャ
１２３５  Ｔｒｕｓｔｅｄ  ＯＳ
１２３６  Ｔｒｕｓｔｅｄアプリケーション
１２３７  Ｔｒｕｓｔｅｄチェッカ
１２４２  ＣＲＴＭ
１２４４  Ｂｏｏｔ  Ｆｉｒｍｗａｒｅ
１２４７  Ｂｏｏｔ  Ｍａｎａｇｅｒ
１２５０  ＣＰＵ
１２６０  メモリ
１２７０  ＴＰＭ
１２８０  ＢＭＣ
１２９０  ネットワークインタフェース
１３００  物理サーバ
１３１０  ハイパバイザ
１３３０  ＶＭ
１３３５  ＯＳ
１３３６  アプリケーション
１３４４  Ｂｏｏｔ  Ｆｉｒｍｗａｒｅ
１３４７  Ｂｏｏｔ  Ｍａｎａｇｅｒ
１３５０  ＣＰＵ
１３６０  メモリ
１３８０  ＢＭＣ
１３９０  ネットワークインタフェース
１４００  ＶＭパッケージ管理ＤＢ
１４１０  ＶＭパッケージ
１４１１  ＯＶＦイメージファイル
１４１２  ＯＶＦ署名
１４１５  パッケージ署名
１４１６  公開鍵
１５００  ストレージ
１６００  ストレージ
２２３０  Ｔｒｕｓｔｅｄ認証用ＶＭ
２２４０  Ｔｒｕｓｔｅｄ実行用ＶＭ
【図１】
2014154050.tif 000003
【図２】
2014154050.tif 000004
【図３】
2014154050.tif 000005
【図４】
2014154050.tif 000006
【図５】
2014154050.tif 000007
【図６】
2014154050.tif 000008
【図７】
2014154050.tif 000009
【図８】
2014154050.tif 000010
【図９】
2014154050.tif 000011
【図１０】
2014154050.tif 000012
【図１１】
2014154050.tif 000013
【図１２】
2014154050.tif 000014
【図１３Ａ】
2014154050.tif 000015
【図１３Ｂ】
2014154050.tif 000016
【図１４】
2014154050.tif 000017
【図１５】
2014154050.tif 000018
【図１６】
2014154050.tif 000019
【図１７】
2014154050.tif 000020
【図１８】
2014154050.tif 000021