(57)【特許請求の範囲】
【請求項１】
証明サーバを使用して、コンピューティングプラットフォーム上で実行中のランタイム時のアプリケーションのための証明サービスを提供する方法であって、該方法は、
該コンピューティングプラットフォームから遠隔の該証明サーバによって、
ランタイム時の該アプリケーションの属性を示すランタイム実行コンテキストと、
該アプリケーションに関するセキュリティ情報を提供するセキュリティコンテキストと
を受信することと、
該証明サーバによって、該受信されたランタイム実行コンテキストおよび該受信されたセキュリティコンテキストに基づいて、証明結果として、該アプリケーションと関連付けられたセキュリティリスクを示すレポートを生成することと、
該証明サーバによって、該アプリケーションと関連付けられた該証明結果を送信することと
を含む、方法。
【請求項２】
前記証明サーバによって、その後の実行コンテキストにおける変更に対する基準として、アプリケーションアーチファクトを生成することと、
該ランタイム実行コンテキストへのその後の変更が、該生成されたアプリケーションアーチファクトに基づいて追跡されるように、該生成されたアプリケーションアーチファクトを送信することと
をさらに含む、請求項１に記載の方法。
【請求項３】
前記証明結果および前記アプリケーションアーチファクトをデジタル的に署名することをさらに含む、請求項２に記載の方法。
【請求項４】
前記受信されたセキュリティコンテキストは、内省的セキュリティコンテキストである、請求項１に記載の方法。
【請求項５】
前記アプリケーションと関連付けられたセキュリティリスクを示す前記レポートを生成することは、前記証明サーバによって、前記受信されたランタイム実行コンテキストおよび前記受信された内省的セキュリティコンテキストに関する１つ以上のセキュリティアサーションを生成することを含む、請求項１に記載の方法。
【請求項６】
前記証明サーバが、複数の協調サービスを使用して、前記アプリケーションを認証することをさらに含む、請求項１に記載の方法。
【請求項７】
一組の認証ルールを前記証明結果に従って適用することによって、識別プロバイダが、前記アプリケーションとのユーザのトランザクションを制御することをさらに含む、請求項１に記載の方法。
【請求項８】
一組の認証ルールを前記証明結果に従って適用することによって、ネットワークアクセスエンフォーサが、前記アプリケーションへのユーザのネットワークアクセスを制御することをさらに含む、請求項１に記載の方法。
【請求項９】
前記証明サーバが、異なる分類によってセキュリティリスクのレベルを示す、前記証明結果の中の信頼指標を提供することをさらに含み、それにより、前記アプリケーションとのユーザのトランザクションに関する制限が、該証明結果の中の該信頼指標によって示される該セキュリティリスクのレベルに基づいて識別プロバイダによって適用される、請求項１に記載の方法。
【請求項１０】
前記ユーザのトランザクションに関する制限の適用は、ネットワークアクセスエンフォーサが、前記アプリケーションへのユーザのネットワークアクセスに関する制限を適用することを含む、請求項９に記載の方法。
【請求項１１】
前記ユーザのトランザクションに関する制限の適用は、ウェブアプリケーションが、ルーティング決定を適用し、前記ユーザを代替コンピュータプラットフォームにリダイレクトすることを含む、請求項９に記載の方法。
【請求項１２】
ネットワークアクセスエンフォーサによって、前記証明結果に基づいて、前記アプリケーションへのユーザのアクセスを制御することをさらに含む、請求項１に記載の方法。
【請求項１３】
命令が記憶されているコンピュータ読み取り可能な記憶媒体であって、該命令は、コンピューティングデバイスによって実行される場合、証明サーバを使用してクライアント−サーバトランザクションまたはピアツーピアトランザクションにおけるアプリケーションの相互証明を提供するための動作を実行することを該コンピューティングデバイスに行わせ、該動作は、
該証明サーバが、第１のアプリケーションアーチファクトを生成および送信することと、
該証明サーバが、該証明サーバによってクライアント−サーバトランザクションにおけるクライアントに送信された、または、該証明サーバによって該ピアツーピアトランザクションにおける第２のピアに送信された該第１のアプリケーションアーチファクトを該クライアント−サーバトランザクションにおけるサーバから、または、該ピアツーピアトランザクションにおける第１のピアから受信および照合することと、
該クライアント−サーバトランザクションまたは該ピアツーピアトランザクションにおいて使用される相互に関係付けられたアプリケーションについてのアプリケーションステートメントを生成し、該クライアントおよび該サーバに、または、該第１のピアおよび該第２のピアに送信することと
を含む、コンピュータ読み取り可能な記憶媒体。
【請求項１４】
前記動作は、
前記証明サーバが、第２のアプリケーションアーチファクトを生成および送信することと、
該証明サーバが、該証明サーバによってクライアント−サーバトランザクションにおけるサーバに送信された、または、該証明サーバによって該ピアツーピアトランザクションにおける第１のピアに送信された該第２のアプリケーションアーチファクトを前記クライアント−サーバトランザクションにおけるクライアントから、または、前記ピアツーピアトランザクションにおける第２のピアから受信および照合することと
をさらに含む、請求項１３に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１５】
前記クライアントおよび前記サーバへの、または、前記第１のピアおよび前記第２のピアへの前記アプリケーションステートメントの送信は、動作を含み、該動作は、
前記証明サーバが、
前記相互に関係付けられたアプリケーションのうちのクライアントアプリケーションに関する該アプリケーションステートメントを前記クライアント−サーバトランザクションのサーバに、および、該相互に関係付けられたアプリケーションのうちのサーバアプリケーションに関する該アプリケーションステートメントを該クライアント−サーバトランザクションのクライアントに、または
該相互に関係付けられたアプリケーションのうちの第１のピアアプリケーションに関する該アプリケーションステートメントを前記ピアツーピアトランザクションの第２のピアに、および、該相互に関係付けられたアプリケーションのうちの第２のピアアプリケーションに関する該アプリケーションステートメントを該ピアツーピアトランザクションの第１のピアに
送信することと、
該送信されたアプリケーションステートメントに少なくとも部分的に基づいて、関連付けられたアプリケーションとのデータ交換をトランザクションするか否かを決定することと
を含む、請求項１４に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１６】
前記アプリケーションステートメントを生成することは、
該アプリケーションステートメントの中に、信頼指標およびコンテキストアサーションを含むこと
を含み、
前記関連付けられたアプリケーションとのデータ交換をトランザクションするか否かを決定することは、
それぞれの信頼指標を一組のルールと比較することと、
該比較に基づいて、データ交換をトランザクションするか否かを決定することと
を含む、請求項１５に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１７】
起動中のウェブアプリケーションまたはウェブサーブレットの真正性の証明を提供するための方法であって、該方法は、ウェブサーバと証明サーバとを含むシステムによって実行され、該方法は、
該ウェブサーバが、起動中のウェブアプリケーションまたはサーブレットインスタンスのためのアプリケーションアーチファクトを要求することと、
該ウェブサーバが、該ウェブサーバと該証明サーバとの間にセキュアなチャネルを確立することと、
該ウェブサーバが、該ウェブアプリケーションまたは該サーブレットインスタンスの実行コンテキストに対応する少なくとも１つのハッシュファイルダイジェストを生成することと、
該ウェブサーバが、該ウェブアプリケーションまたは該ウェブサーブレットインスタンスの少なくとも１つの要素または該実行コンテキストに対応する少なくとも１つのファイル属性を決定することと、
該証明サーバが、アプリケーションレポートを識別プロバイダに送信することと、
該証明サーバが、受信されたセキュリティコンテキストおよび受信されたローカル実行コンテキストに基づいて、アサーションを生成することと、
該証明サーバが、該レポートの中の信頼指標を該識別プロバイダに伝送することと、
該識別プロバイダが、該起動中のウェブアプリケーションまたは該ウェブサーブレットの証明を提供することと
を含む、方法。
【請求項１８】
前記証明は、ユーザとの確立された接続における任意のデータ交換の着手に先立って提供される、請求項１７に記載の方法。
【請求項１９】
前記証明は、ユーザとのネットワーク接続の確立に先立って提供される、請求項１７に記載の方法。
【請求項２０】
前記ウェブサーバが、ユーザ入力に応答してアクセスされるべきデジタルアイコンとして前記ウェブアプリケーションに関する証明情報をレンダリングすることをさらに含む、請求項１９に記載の方法。
【請求項２１】
自己管理およびオンプレミスの、またはアウトソースのサービスプロバイダ管理インフラストラクチャ上にホストされた起動中のアプリケーションを継続的にモニタリングするためのシステムであって、該システムは、
標的ユーザまたはサービスプログラムをホストするための機器化された標的プラットフォームと、
アプリケーション証明サービスであって、該サービスは、
検査ベースのランタイムローカル実行コンテキストおよび内省ベースのセキュリティコンテキストに関する複数のアサーションを含む、グローバルに一意の、不透明な、および時間依存のアプリケーションアーチファクトおよびアプリケーションステートメントを生成することと、
該機器化された標的プラットフォームを修正することであって、該修正することは、該機器化された標的プラットフォームのイメージの再適用、スナップショット、または隔離のうちの１つ以上を含む、ことと
のためのものである、アプリケーション証明サービスと、
該機器化された標的プラットフォーム上の起動中のアプリケーションプロセスを発見、識別、および検査するための、および少なくとも該ランタイムローカル実行コンテキストを含むメタデータを生成するためのランタイムモニタと、
協調サービスであって、該サービスは、
該機器化された標的プラットフォーム上で起動する標的アプリケーションのための内省されるセキュリティコンテキストを提供することと、
該機器化された標的プラットフォーム上で起動する標的アプリケーションのための実行可能ファイルバイナリを分析することと
を行うように構成されている、協調サービスと、
グラフィカルユーザインターフェースであって、該インターフェースは、
該証明サービスのメタデータリポジトリから、動的アサーションを要求および受信することであって、該動的アサーションは、該ローカル実行コンテキスト、すなわち、機器化された標的プラットフォーム上で起動中のアプリケーションインスタンスの該内省されるセキュリティコンテキストに関する、ことと、
該動的アサーションをシステムアドミニストレータに継続的に表示することと、
該動的アサーションおよび所定の基準に基づいて、アラートをプロビジョニングおよび発信することと
を行うように構成されている、グラフィカルユーザインターフェースと
を備える、システム。
【請求項２２】
ネットワークアクセスエンフォーサは、証明サービスから、動的アプリケーションステートメントをサブスクライブおよび受信することにより、前記コンテキストアサーションを分析し、認証されたユーザが、証明されたアプリケーションインスタンスへのネットワークアクセスが許可または拒否されるか否かを決定する、請求項２１に記載のシステム。
【請求項２３】
前記グラフィカルユーザインターフェースは、クライアント特有のダッシュボードまたはポータル上に、機器化された標的プラットフォーム上で起動する前記アプリケーションを表示し、各関連付けられたアプリケーション実行コンテキストのために、
サービスホスト名、
サービス領域、
サービスプリンシパル名、
プロダクトバージョン、
プロダクトベンダ、
１つ以上の分類ベースの信頼指標、
アクティブなネットワークサービスポート、または
実行可能ファイルバイナリ
のうちの少なくとも１つを提示する、請求項２１に記載のシステム。
【請求項２４】
識別プロバイダをさらに備え、該識別プロバイダは、前記証明サービスからの動的アプリケーションステートメントをクエリすることにより、前記コンテキストアサーションを分析し、認証されたユーザが、確立された接続において、証明されたアプリケーションインスタンスとのデータ交換をトランザクションするために、認証を許可または拒否されるか否かを決定する、請求項２１に記載のシステム。
【請求項２５】
ネットワークアクセスエンフォーサをさらに備え、該ネットワークアクセスエンフォーサは、サブスクリプションに基づいて、証明サービスから受信された動的アプリケーションステートメントの中に含まれる分類ベースの信頼指標を分析することにより、認証されたユーザが、証明されたアプリケーションインスタンスへのネットワークアクセスが許可または拒否されるか否かを決定する、請求項２１に記載のシステム。
【請求項２６】
識別プロバイダは、サブスクリプションに基づいて、証明サービスから受信された動的アプリケーションステートメント内に含まれる分類ベースの信頼指標を分析することにより、認証されたユーザが、確立された接続において、証明されたアプリケーションインスタンスとのデータ交換をトランザクションするための認証を許可または拒否されるか否かを決定する、請求項２１に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願の相互参照）
本願は、米国仮特許出願６１／４４３，８５４号（名称「ＳＹＳＴＥＭ  ＡＮＤ  ＭＥＴＨＯＤ  ＦＯＲ  ＡＰＰＬＩＣＡＴＩＯＮ  ＡＴＴＥＳＴＡＴＩＯＮ」、２０１１年２月１７日出願）の利益を主張し、この出願は、参照することによりその全体が本明細書に援用される。
【０００２】
（開示の分野）
本開示は、データセンター仮想化の分野に関し、より具体的には、ランタイム時のアプリケーションの証明を提供するためのシステムおよび方法に関する。
【背景技術】
【０００３】
（関連技術の記載）
コンピューティングにおける最近の傾向の１つは、クラウドコンピューティングに向かう傾向であり、例えば、企業ソフトウェアは、もはや、顧客によって所有されず、代わりに、情報技術インフラストラクチャが、第三者によって提供され得、ソフトウェアアプリケーションは、サービス供与として販売される場合がある。
【発明の概要】
【課題を解決するための手段】
【０００４】
本開示される技術は、１つ以上のアプリケーションを発見し、および／または複数のアサーション（または、ステートメント）を使用して、またはそれに基づいて、ランタイム時の機器化された標的プラットフォーム上のアプリケーションを証明するための方法、装置、および／またはシステムとして具現化されてもよい。
【０００５】
本開示される技術はまた、複数の因子に基づいて、動的アプリケーション発見、識別、モニタリング、および／または証明によって、クラウドコンピューティング環境における可視性、制御、および／またはコンプライアンスを有効にする、複数のサービスのための方法、装置、および／またはシステムとして具現化されてもよい。
【０００６】
本開示される技術はまた、アプリケーションの動的証明に基づいて、ユーザ／アプリケーション接続を確立するためのさらなる方法、装置、および／またはシステム、ならびに／あるいは、例えば、ネットワークパケット内のカプセル化ヘッダと関連付けられたトポロジーベースの座標の代わりに、コンテキストを意識したビジネス論理に基づいてプロビジョニングされるセキュリティ制御として具現化されてもよい。
【０００７】
本開示される技術はまた、アプリケーションの動的証明に基づいて、認証相の間、確立された接続において、ユーザ／アプリケーショントランザクションおよび／またはデータ交換を認可するためのなおもさらなる方法、装置、および／またはシステムとして具現化されてもよい。
【０００８】
本開示される技術はまた、機器化された標的プラットフォーム上で起動するウェブおよび非ウェブアプリケーション（例えば、全ウェブおよび非ウェブアプリケーション）を検査するためのランタイムモニタ用の付加的方法、装置、および／またはシステムとして具現化されてもよい。本システムは、証明サーバを使用し、アプリケーションアーチファクトを生成し、および／またはアプリケーションステートメントまたはクレームを発行するように構成される、証明サービス（または、ブローカー）を含んでもよい。アプリケーションアーチファクトは、機器化されたプラットフォーム（限定されないが、携帯情報端末（ＰＤＡ）、タブレットコンピューティングデバイス、ｉＰｈｏｎｅＴＭ、ｉＰｏｄＴＭ、ｉＰａｄＴＭ、Ｇｏｏｇｌｅ  Ｉｎｃ．製Ａｎｄｒｏｉｄオペレーティングシステム（ＯＳ）を動作させるデバイス、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）Ｍｏｂｉｌｅ  ＯＳを起動させるデバイス、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）Ｐｈｏｎｅ  ＯＳを起動させるデバイス、Ｓｙｍｂｉａｎ  ＯＳを起動させるデバイス、Ｈｅｗｌｅｔｔ  Ｐａｃｋａｒｄ，Ｉｎｃ．製ウェブＯＳを起動させるデバイス、携帯電話、ＢｌａｃｋＢｅｒｒｙ（登録商標）デバイス、スマートフォン、ハンドヘルドコンピュータ、ネットブックコンピュータ、パームトップコンピュータ、ラップトップコンピュータ、ウルトラモバイルＰＣ、ポータブルゲームシステム、ゲームコンソール、またはコンピュータ、マイクロプロセッサを有する、別の類似タイプのコンピューティングデバイス等）上に識別されたアプリケーションインスタンスを表してもよい（例えば、規定または所定の期限を有するアプリケーションアーチファクトを使用して、例えば、ランタイム時に、グローバルに、一意に、不透明下、および／または時間依存様式において）。アプリケーションステートメントは、検査されたランタイム実行コンテキストおよび／またはインテリジェンスベースのセキュリティコンテキストに関する少なくとも１つのステートメント（または、クレーム）を含んでもよい。
【０００９】
ランタイムモニタは、ローカル証明プロセスを使用後、アプリケーションの実行コンテキストを検査するように構成されてもよい。各個別のアプリケーションの実行コンテキストは、関連付けられたファイル、プロセス、および／またはネットワークエポック（例えば、ソケットイベント）を含んでもよい。本システムは、コンピューティングプラットフォーム（例えば、機器化された標的プラットフォーム）上の標的アプリケーションの証明およびセキュリティコンテキスト要求に基づいて、ウェブまたは非ウェブアプリケーション（例えば、クライアント−サーバまたはピアツーピアアプリケーション）に対して、ユーザを認証するように構成される、任意のタイプの識別プロバイダを含んでもよい。
【００１０】
本開示される技術はまた、１つ以上の発行されたアプリケーションステートメント（例えば、証明サービスまたは別のエンティティによって発行された）に応答して、機器化された標的プラットフォーム上の標的アプリケーションへの認証されたユーザの物理的アクセスを制御するためのネットワークアクセスエンフォーサを含み得る、方法、装置、および／またはシステムとして具現化されてもよい。
【００１１】
本開示される技術はまた、１つ以上の発行されたアプリケーションステートメント（例えば、証明サービスによって発行された）に応答して、機器化された標的プラットフォーム上の標的アプリケーションとのトランザクションを着手するために、認証されたユーザの認証を制御するための識別プロバイダを含む、別の方法、装置、および／またはシステムとして具現化されてもよい。
【００１２】
本開示される技術はまた、少なくとも、起動中のアプリケーションインスタンス（例えば、とりわけ、ユーザプログラムまたはサービスプログラム）のための登録された名称（例えば、登録されたグローバル一意セキュリティプリンシパル名）を含み得る、アプリケーションアーチファクトによって具現化されてもよい。証明サービスは、機器化された標的プラットフォーム上の起動中のアプリケーションインスタンスのランタイムローカル実行コンテキストに基づいて、アーチファクトを生成するように構成されてもよい。
【００１３】
本開示される技術はまた、（１）起動中のアプリケーションインスタンスのための登録された名称（例えば、登録されたグローバル一意セキュリティプリンシパル名）、（２）デジタル的に署名された証明書、（３）作成および／または修正タイムスタンプ、（４）複数の協調サービスからのセキュリティコンテキストアサーション、（５）アクティブなリッスンおよび／またはオープンネットワークポート（例えば、ウェルノウンおよび／またはエフェメラル）のリスト、（６）アプリケーションによって使用されるネットワークアドレス、（７）プロダクト発行元、（８）プロダクトバージョン、および／または（９）他のランタイムローカル実行コンテキスト情報のうちの少なくとも１つを含み得る、１つ以上のアプリケーションステートメントまたはクレームによって具現化されてもよい。
【００１４】
本開示される技術はまた、１つ以上の起動中のアプリケーションの内省されたセキュリティコンテキストに関する属性値アサーションを含み得る、１つ以上のアプリケーションステートメントまたはクレームによって具現化されてもよい。内省されたセキュリティコンテキストは、複数の協調サービスのうちの１つ（例えば、任意の１つ）から受信されてもよい。
【００１５】
本開示される技術はまた、（１）アプリケーションホワイトリストサービス（例えば、任意のアプリケーションホワイトリストサービス）、（２）脆弱性査定サービス、（３）パッチ管理サービス、（４）アンチウイルスサービス（５）予測および挙動分析エンジン、（６）編成サービス、（７）ネットワーク侵入検出または防止サービス、（８）オープンフロースイッチコントローラ、および／または（９）マルウェア分析システムを含み得る、複数の協調サービスによって具現化されてもよい。
【００１６】
本開示される技術はまた、（１）単一サインオンサービスまたは仲介認証サービスを含み得る、識別プロバイダ、（２）例えば、ネットワークファイアウォール、ロードバランサ、および／またはＶＰＮゲートウェイ等のデバイスを含み得、アプリケーションステートメントまたはクレームに基づいて、アクセスを制御するためのポリシー実施ポイントとして構成され得る、ネットワークアクセスエンフォーサによって具現化されてもよい。
【００１７】
本開示される技術はまた、ウェブアプリケーション（例えば、コンテナ要素内のサーブレット）の真正性を評価するための方法、装置、および／またはシステムとして具現化されてもよい。本方法は、証明サービスから、ウェブアプリケーションのためのランタイムアプリケーションアーチファクトを要求するステップと、アプリケーションアーチファクトに基づいて、証明サービスから、アプリケーションステートメントを要求するステップとを含んでもよい。本方法はさらに、複数の協調サービスから、例えば、証明サービスによって、機器化された標的プラットフォーム上のウェブアプリケーションのためのコンテキスト（例えば、内省ベースのセキュリティコンテキスト）を要求するステップを含んでもよい。本方法はまた、機器化された標的プラットフォームと、証明サービスを提供するサーバとの間に通信チャネル（例えば、セキュアな通信チャネル）を確立するステップと、ウェブアプリケーションの少なくとも１つの構成要素に対応するアプリケーションステートメントを生成するステップとを含んでもよい。本方法は、親／子関連付けおよび／またはローダ依存性に基づいて、アプリケーション構成要素に関するステートメントを生成するステップと、アプリケーションステートメントを識別プロバイダに伝送するステップとを含んでもよい。本方法はさらに、パッシブウェブクライアントまたはブラウザとともに含まれるべき、かつそれによってネイティブにレンダリングされるべき、ウェブアプリケーションの多因子信頼指標を生成するステップを含んでもよい。
【００１８】
本開示される技術は、非ウェブクライアント−サーバアプリケーションおよび／またはピアツーピアアプリケーションの真正性を評価するための別の方法、装置、および／またはシステムとして具現化されてもよい。本方法は、証明サービスから、例えば、ランタイムモニタによって、アプリケーションのためのアプリケーションアーチファクトを要求するステップと、証明サービスから、例えば、ネットワークアクセスエンフォーサによって、アプリケーションステートメントを要求するステップとを含んでもよい。本方法はさらに、証明サービスによって、複数の協調サービスから、機器化された標的プラットフォーム上のアプリケーションのためのコンテキスト（例えば、内省ベースのセキュリティコンテキスト）を要求するステップを含んでもよい。本方法はまた、機器化された標的プラットフォーム上のアプリケーションの実行コンテキストにおける変更（例えば、任意の変更）の通知を要求するステップ、またはそれをサブスクライブするステップを含んでもよい。本方法は、加えて、複数の識別プロバイダおよび／またはネットワークアクセスエンフォーサによるサブスクリプション要求のうちの少なくとも１つに基づいて、アプリケーションに関する（についての）１つ以上のアプリケーションステートメントまたはクレームを生成および公開するステップを含んでもよい。本方法はさらに、物理的または論理的アクセス制御決定のためのアプリケーションの多因子信頼指標を受信または生成し、公開するステップを含んでもよい。
【００１９】
本開示される技術はまた、トランザクションまたはデータ交換（例えば、任意のトランザクションまたはデータ交換）の着手に先立って、ピアの真正性を評価するために、クライアント−サーバおよび／またはピアツーピアアプリケーションのための方法、装置、および／またはシステムとして具現化されてもよい。本方法は、証明サービス（または、証明サーバ）から、アプリケーションのそれぞれのためのアプリケーションアーチファクトを要求し得る、クライアント−サーバアプリケーションおよび／またはピアツーピアアプリケーションを含んでもよく、さらに、アーチファクト交換に基づいて、証明サービスから、各ピアアプリケーションのための１つ以上のアプリケーションステートメントを要求してもよい。本方法はさらに、証明サービスによって、複数の協調サービスから、これらの機器化された標的プラットフォーム上のアプリケーションのためのコンテキスト（例えば、内省ベースのセキュリティコンテキスト）を要求するステップを含んでもよい。本方法はさらに、アプリケーション間の発行されたアプリケーションアーチファクトのセキュアな交換と、照合プロセス（証明サービスと交換されたアーチファクトのバックチャネル照合等）とを含んでもよい。本方法はさらに、交換されたアプリケーションアーチファクトに基づいて（または、それに応答して）、証明サービスから、１つ以上のアプリケーションステートメントを要求するステップと、ピアアプリケーションによって、または１つ以上のアプリケーションステートメントを受信する、ネットワークアクセスエンフォーサによって、アプリケーションステートメントの受信に応答して、トランザクションにおける他のまたは各アプリケーションの真正性を決定するステップとを含んでもよい。
【００２０】
本開示される技術はまた、リアルタイムまたはほぼリアルタイム（例えば、閾値周期内）で、クラウドコンピューティングインフラストラクチャ内のプライベートおよび／または公共仮想データセンターにホストされた実行中または起動中（例えば、全起動中の）アプリケーションの識別、属性、および／または証明情報を表示し、継続的に更新するための方法、装置、および／またはシステムとして具現化されてもよい。本方法は、１つ以上の分類ベースの信頼指標と、複数の機器化された標的プラットフォーム上に割り当てられたアクティブなリッスンおよび／またはオープンネットワークポート（例えば、ウェルノウンおよびエフェメラル）とを表示するステップを含んでもよい。
【００２１】
本開示される技術はまた、ユーザ認証方法、ユーザの役割、証明サービスから、サブスクリプションベースのアプリケーションステートメントを介して、機器化された標的プラットフォーム上で起動する、動的に発見および証明されたアプリケーションに基づいて、アクセス制御ポリシーを確立するための方法、装置、および／またはシステムとして具現化されてもよい。本方法はまた、ビジネス論理（とりわけ、役割ベースのアクセス制御、認証要件、および／またはビジネスアプリケーションのライン）をネットワークファブリック内のネットワークトポロジーベースの物理的制約（例えば、とりわけ、ＩＰアドレス、ＭＡＣアドレス、ＶＬＡＮ識別子、および／またはサブネットアドレス）から分断するステップを含んでもよく、ポリシー文法にコンテキストを意識した論理的属性（とりわけ、ユーザ識別および／またはアプリケーション識別）を含んでもよい。本方法はさらに、認証決定のために使用される、アプリケーションステートメント内に含まれ得る、分類ベースの動的信頼指標を利用し得る、アクセス制御ルールを確立するステップを含んでもよい。
例えば、本願発明は以下の項目を提供する。
（項目１）
証明サーバを使用して、コンピューティングプラットフォーム上で実行中のランタイム時のアプリケーションのための証明サービスを提供する方法であって、該方法は、
該コンピューティングプラットフォームから遠隔の該証明サーバによって、
ランタイム時の該アプリケーションの属性を示すランタイム実行コンテキストと、
該アプリケーションに関するセキュリティ情報を提供するセキュリティコンテキストと
を受信することと、
該証明サーバによって、該受信されたランタイム実行コンテキストおよび該受信されたセキュリティコンテキストに基づいて、証明結果として、該アプリケーションと関連付けられたセキュリティリスクを示すレポートを生成することと、
該証明サーバによって、該アプリケーションと関連付けられた該証明結果を送信することと
を含む、方法。
（項目２）
前記証明サーバによって、その後の実行コンテキストにおける変更に対する基準として、アプリケーションアーチファクトを生成することと、
該ランタイム実行コンテキストへのその後の変更が、該生成されたアプリケーションアーチファクトに基づいて追跡されるように、該生成されたアプリケーションアーチファクトを送信することと
をさらに含む、項目１に記載の方法。
（項目３）
前記証明結果および前記アプリケーションアーチファクトをデジタル的に署名することをさらに含む、項目２に記載の方法。
（項目４）
前記受信されたセキュリティコンテキストは、内省的セキュリティコンテキストである、項目１に記載の方法。
（項目５）
前記アプリケーションと関連付けられたセキュリティリスクを示す前記レポートを生成することは、前記証明サーバによって、前記受信されたランタイム実行コンテキストおよび前記受信された内省的セキュリティコンテキストに関する１つ以上のセキュリティアサーションを生成することを含む、項目１に記載の方法。
（項目６）
複数の協調サービスを使用して、前記アプリケーションを認証することをさらに含む、項目１に記載の方法。
（項目７）
一組の認証ルールを前記証明結果に従って適用することによって、前記アプリケーションとのユーザのトランザクションを制御することをさらに含む、項目１に記載の方法。
（項目８）
一組の認証ルールを前記証明結果に従って適用することによって、前記アプリケーションへのユーザのネットワークアクセスを制御することをさらに含む、項目１に記載の方法。
（項目９）
異なる分類によってセキュリティリスクのレベルを示す、前記証明結果の中の信頼指標を提供することをさらに含み、それにより、前記アプリケーションとのユーザのトランザクションに関する制限が、該証明結果の中の該信頼指標によって示される該セキュリティリスクのレベルに基づいて適用される、項目１に記載の方法。
（項目１０）
前記ユーザのトランザクションに関する制限の適用は、前記アプリケーションへのユーザのネットワークアクセスに関する制限を適用することを含む、項目９に記載の方法。
（項目１１）
前記ユーザのトランザクションに関する制限の適用は、ルーティング決定を適用し、前記ユーザを代替コンピュータプラットフォームにリダイレクトすることを含む、項目１に記載の方法。
（項目１２）
ネットワークアクセスエンフォーサによって、前記証明結果に基づいて、前記アプリケーションへのユーザのアクセスを制御することをさらに含む、項目１に記載の方法。
（項目１３）
命令が自身に記憶されている非一過性コンピュータ可読媒体であって、該命令は、コンピューティングデバイスによって実行される場合、証明サーバを使用して、該コンピューティングデバイスに、クライアント−サーバまたはピアツーピアトランザクションにおけるアプリケーションの相互証明を提供するための動作を行わせ、該動作は、
該証明サーバによって、第１のアプリケーションアーチファクトを生成および送信することと、
該第１のアプリケーションアーチファクトを受信および照合することであって、該第１のアプリケーションアーチファクトは、該クライアントサーバトランザクションにおけるサーバから、または該ピアツーピアトランザクションにおける第１のピアから該証明サーバによって、クライアントサーバトランザクションにおけるクライアントに、または該ピアツーピアトランザクションにおける第２のピアに、該証明サーバによって送信される、ことと、
該クライアント−サーバまたはピアツーピアトランザクションにおいて使用される相互に関係付けられたアプリケーションについてのアプリケーションステートメントを生成し、該クライアントおよび該サーバに、または該第１および第２のピアに送信することと
を含む、コンピュータ可読媒体。
（項目１４）
前記動作は、
前記証明サーバによって、第２のアプリケーションアーチファクトを生成および送信することと、
該第２のアプリケーションアーチファクトを受信および照合することであって、該第２のアプリケーションアーチファクトは、前記クライアントサーバトランザクションにおけるクライアントから、または前記ピアツーピアトランザクションにおける第２のピアから該証明サーバによって、クライアントサーバトランザクションにおけるサーバに、または該ピアツーピアトランザクションにおける第１のピアに、該証明サーバによって送信される、ことと
をさらに含む、項目１３に記載のコンピュータ可読媒体。
（項目１５）
前記クライアントおよび前記サーバへの、または前記第１および第２のピアへの前記アプリケーションステートメントの送信は、動作を含み、該動作は、
前記証明サーバによって、
前記相互に関係付けられたアプリケーションのうちのクライアントアプリケーションに関する該アプリケーションステートメントを前記クライアント−サーバトランザクションのサーバに、および該相互に関係付けられたアプリケーションのうちのサーバアプリケーションに関する該アプリケーションステートメントを該クライアント−サーバトランザクションのクライアントに、または
該相互に関係付けられたアプリケーションのうちの第１のピアアプリケーションに関する該アプリケーションステートメントを前記ピアツーピアトランザクションの第２のピアに、および該相互に関係付けられたアプリケーションのうちの第２のピアアプリケーションに関するアプリケーションステートメントを該ピアツーピアトランザクションの第１のピアに
送信することと、
該送信されたアプリケーションステートメントに少なくとも部分的に基づいて、関連付けられたアプリケーションとのデータ交換をトランザクションするか否かを決定することと
を含む、項目１４に記載のコンピュータ可読媒体。
（項目１６）
前記アプリケーションステートメントを生成することは、
該アプリケーションステートメントの中に、信頼指標およびコンテキストアサーションを含むこと
を含み、
前記関連付けられたアプリケーションとのデータ交換をトランザクションするか否かを決定することは、
それぞれの信頼指標を一組のルールと比較することと、
該比較に基づいて、データ交換をトランザクションするか否かを決定することと
を含む、項目１５に記載のコンピュータ可読媒体。
（項目１７）
証明サーバを使用して、起動中のウェブアプリケーションまたはウェブサーブレットの真正性の証明を提供するための方法であって、該方法は、
起動中のウェブアプリケーションまたはサーブレットインスタンスのためのアプリケーションアーチファクトを要求することと、
ウェブサーバと該証明サーバとの間にセキュアなチャネルを確立することと、
該ウェブアプリケーションまたはサーブレットインスタンスの実行コンテキストに対応する少なくとも１つのハッシュファイルダイジェストを生成することと、
該ウェブアプリケーションまたはウェブサーブレットインスタンスの少なくとも１つの要素または該実行コンテキストに対応する少なくとも１つのファイル属性を決定することと、
アプリケーションレポートを識別プロバイダに送信することと、
受信されたセキュリティコンテキストおよび受信されたローカル実行コンテキストに基づいて、アサーションを生成することと、
該レポートの中の信頼指標を該識別プロバイダに伝送することと、
ウェブブラウザによってレンダリングするためのデジタルアイコンとして、該起動中のウェブアプリケーションまたはウェブサーブレットの証明を提供することと
を含む、方法。
（項目１８）
前記証明は、ユーザとの確立された接続における任意のデータ交換の着手に先立って提供される、項目１７に記載の方法。
（項目１９）
前記証明は、ユーザとのネットワーク接続の確立に先立って提供される、項目１７に記載の方法。
（項目２０）
ユーザ入力に応答してアクセスされるべき前記ウェブアプリケーションに関する証明情報をレンダリングすることをさらに含む、項目１９に記載の方法。
（項目２１）
自己管理およびオンプレミスの、またはアウトソースのサービスプロバイダ管理インフラストラクチャ上にホストされた起動中のアプリケーションを継続的にモニタリングするためのシステムであって、該システムは、
標的ユーザまたはサービスプログラムをホストするための機器化された標的プラットフォームと、
アプリケーション証明サービスであって、該サービスは、
検査ベースのランタイムローカル実行コンテキストおよび内省ベースのセキュリティコンテキストに関する複数のアサーションを含む、グローバルに一意の、不透明な、および時間依存のアプリケーションアーチファクトおよびアプリケーションステートメントを生成することと、
該機器化された標的プラットフォームを修正することであって、該修正することは、該機器化された標的プラットフォームのイメージの再適用、スナップショット、または隔離のうちの１つ以上を含む、ことと
のためのものである、アプリケーション証明サービスと、
該機器化された標的プラットフォーム上の起動中のアプリケーションプロセスを発見、識別、および検査するための、および少なくとも該ランタイムローカル実行コンテキストを含むメタデータを生成するためのランタイムモニタと、
協調サービスであって、該サービスは、
該機器化された標的プラットフォーム上で起動する標的アプリケーションのための内省されるセキュリティコンテキストを提供することと、
該機器化された標的プラットフォーム上で起動する標的アプリケーションのための実行可能ファイルバイナリを分析することと
を行うように構成されている、協調サービスと、
グラフィカルユーザインターフェースであって、該インターフェースは、
該証明サービスのメタデータリポジトリから、動的アサーションを要求および受信することであって、該動的アサーションは、該ローカル実行コンテキスト、すなわち、機器化された標的プラットフォーム上で起動中のアプリケーションインスタンスの該内省されるセキュリティコンテキストに関する、ことと、
該動的アサーションをシステムアドミニストレータに継続的に表示することと、
該動的アサーションおよび所定の基準に基づいて、アラートをプロビジョニングおよび発信することと
を行うように構成されている、グラフィカルユーザインターフェースと
を備える、システム。
（項目２２）
ネットワークアクセスエンフォーサは、証明サービスから、動的アプリケーションステートメントをサブスクライブおよび受信することにより、前記コンテキストアサーションを分析し、認証されたユーザが、証明されたアプリケーションインスタンスへのネットワークアクセスが許可または拒否されるか否かを決定する、項目２１に記載のシステム。
（項目２３）
前記グラフィカルユーザインターフェースは、クライアント特有のダッシュボードまたはポータル上に、機器化された標的プラットフォーム上で起動する前記アプリケーションを表示し、各関連付けられたアプリケーション実行コンテキストのために、
サービスホスト名、
サービス領域、
サービスプリンシパル名、
プロダクトバージョン、
プロダクトベンダ、
１つ以上の分類ベースの信頼指標、
アクティブなネットワークサービスポート、または
実行可能ファイルバイナリ
のうちの少なくとも１つを提示する、項目２１に記載のシステム。
（項目２４）
識別プロバイダをさらに備え、該識別プロバイダは、前記証明サーバからの動的アプリケーションステートメントをクエリすることにより、前記コンテキストアサーションを分析し、認証されたユーザが、確立された接続において、証明されたアプリケーションインスタンスとのデータ交換をトランザクションするために、認証を許可または拒否されるか否かを決定する、項目２１に記載のシステム。
（項目２５）
ネットワークアクセスエンフォーサをさらに備え、該ネットワークアクセスエンフォーサは、サブスクリプションに基づいて、証明サービスから受信された動的アプリケーションステートメントの中に含まれる分類ベースの信頼指標を分析することにより、認証されたユーザが、証明されたアプリケーションインスタンスへのネットワークアクセスが許可または拒否されるか否かを決定する、項目２１に記載のシステム。
（項目２６）
識別プロバイダは、サブスクリプションに基づいて、証明サービスから受信された動的アプリケーションステートメント内に含まれる分類ベースの信頼指標を分析することにより、認証されたユーザが、確立された接続において、証明されたアプリケーションインスタンスとのデータ交換をトランザクションするための認証を許可または拒否されるか否かを決定する、項目２１に記載のシステム。
【００２２】
本発明は、付随の図面と併せて熟読されることによって、以下の発明を実施するための形態から最も理解される。一般的実践に従って、図面の種々の特徴／要素は、正確な縮尺で描かれていない場合がある。共通参照数字は、類似特徴／要素を表す。以下の図が、図面に含まれる。
【図面の簡単な説明】
【００２３】
【図１】図１は、種々の例示的実施形態による、例示的システム／アーキテクチャを図示する概略図である。
【図２】図２は、種々の例示的実施形態による、クラウドコンピューティング環境において、アプリケーションをモニタリングおよび証明する方法を図示する概略図である。
【図３】図３は、種々の例示的実施形態による、クラウドコンピューティング環境において、アプリケーションをモニタリングおよび証明する別の方法を図示する概略図である。
【図４】図４は、種々の例示的実施形態による、クラウドコンピューティング環境において、アプリケーションをモニタリングおよび証明するさらなる方法を図示する概略図である。
【図５】図５は、種々の例示的実施形態による、Ｓｉｍｐｌｅ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  ａｎｄ  Ｓｅｃｕｒｉｔｙ  Ｌａｙｅｒ（ＳＡＳＬ）対応クライアントおよびサーバアプリケーションをモニタリングおよび証明する方法を図示する概略図である。
【図６】図６は、種々の例示的実施形態による、整合性ダッシュボードを含む、例示的セキュリティ管理コンソールを図示する概略図である。
【図７】図７は、種々の例示的実施形態による、認証ダッシュボードを含む、別の例示的ポリシー管理コンソールを図示する概略図である。
【図８】図８は、本開示される技術の種々の例示的実施形態による、方法を図示する流れ図である。
【図９】図９は、本開示される技術の種々の例示的実施形態による、方法を図示する流れ図である。
【図１０】図１０は、本開示される技術の種々の例示的実施形態による、方法を図示する流れ図である。
【図１１】図１１は、本開示される技術の種々の例示的実施形態による、方法を図示する流れ図である。
【図１２】図１２は、本開示される技術の種々の例示的実施形態による、方法を図示する流れ図である。
【図１３】図１３は、本開示される技術の種々の例示的実施形態による、方法を図示する流れ図である。
【図１４】図１４は、実施形態が実装され得る、例示的コンピュータシステムの略図である。
【発明を実施するための形態】
【００２４】
本発明は、具体的実施形態を参照して、図示および本明細書に説明されるが、本発明は、示される詳細に限定されることを意図するものではない。むしろ、種々の修正は、請求項の均等物の適用範囲および活動範囲内において、本発明から逸脱することなく、その詳細に行われてもよい。
【００２５】
多くの企業は、以下を含む、種々の理由から、ＩＴインフラストラクチャからクラウドコンピューティング環境（例えば、第三者が、共有コンピューティングリソースを提供し得、それらのリソース上で起動するアプリケーションが、複数の顧客へのサービスとして供与される）へと移行しつつある：とりわけ、（１）コンピューティング能力の増加、（２）記憶容量の増加、および／または（３）ネットワーク帯域幅の増加。企業アプリケーションおよびミッションクリティカルなアプリケーションは、クラウド内で実行され得る。適正なシステムおよびアプリケーションセキュリティを伴わない場合、クラウドは、これらのアプリケーションを危険に曝し、多大なる財政的損失を生じさせ得る。データ機密性、データ整合性、およびデータ可用性は、そのようなアプリケーションが、これらの第三者によって制御され得るときでさえ、クラウドコンピューティング環境において、維持することができる。例えば、企業は、自己管理オンプレミスデータセンターからサービス−プロバイダ管理アウトソース仮想データセンター（例えば、クラウドコンピューティング環境）へと移行しつつある。クラウドは、従来の情報技術システムおよびアプリケーションが、これらのサービス−プロバイダ管理アウトソース仮想データセンターから、透過的に実行されることを有効にし得る。より新しい技術が出現するにつれて、クラウドインフラストラクチャは、企業運用に対して透過的かつそれに伴ってスケーラブルに進化し得る。そのような環境におけるセキュリティは、新たな課題となり得る。
【００２６】
ある例示的実施形態では、アプリカントは、証明プロセス（例えば、単一因子または多因子証明を介して）を使用して、ネットワーク上へアプリケーションをサインオンまたは認証することによって、セキュア化されてもよい。多因子プロセスでは、アプリケーションは、少なくとも２つの因子に基づいて、認定されてもよい。第１の因子は、とりわけ、（１）アプリケーションフィンガープリントとしてのアプリケーションのハッシュ、（２）アプリケーションによって呼び出される他のアプリケーション／プロセス、（３）アプリケーションによって使用されるポート、（４）アプリケーションによるコンピューティング、記憶、およびネットワークリソース使用、および／または（５）アプリケーションを実行するプラットフォーム等のアプリケーションの１つ以上の属性（例えば、アプリケーションのランタイムインスタンス）を識別し得る。そのような情報は、現在の実行コンテキストにおいて、ローカルに利用可能であってもよい（例えば、アプリケーションを起動するコンピューティングプラットフォームにおいて）。第２の因子は、オペレーティング環境外部のセキュリティインテリジェンス（例えば、アプリケーションを起動するコンピューティングプラットフォームと別個の第三者（例えば、信頼できる第三者））からのアプリケーションの属性に基づいて、アプリケーションに関して分かることを識別し得る。
【００２７】
自己管理および社内企業データセンター内にホストされているアプリケーションは、プライベート／公共クラウド内のアウトソースサービスプロバイダ管理仮想データセンターへと徐々に乗り換えつつあり得る。本乗り換えから、可視性および直接制御が喪失され得る。種々の例示的実施形態は、処理中のアプリケーションをモニタリングし、可視性を増加させ、アウトソースサービスプロバイダ管理仮想データセンター内で実行するアプリケーションの証明を有効にするための手段を含む。ウェブおよび多層アプリケーションが、クラウド内で急増するにつれて、有意な数のウェブベースの脅威が、信頼できるウェブサイトから発生するため、第三者証明書機関によって発行された証明書に基づく、セキュアな接続は、セキュリティおよびコンプライアンスに対して不適正となり得る。
【００２８】
概して、アクセス制御機構は、論理的属性ならびに動的ローカル実行コンテキストおよび／または総合的セキュリティコンテキスト（例えば、ローカル実行コンテキストならびにセキュリティインテリジェンスの両方に基づく）ではなく、静的コンテキストおよび物理的制約に基づく。ビジネス論理の動作要素として、ユーザ／アプリケーション結合に基づく、物理的および論理的アクセス制御、ならびに仮想化され、流動的ネットワーク内の論理的属性が、クラウドコンピューティング環境において使用され（サービスモデルとして、ユーティリティベースのインフラストラクチャ、プラットフォーム、および／またはソフトウェアのために）、テナント間の決定的機密性を伴って、マルチテナントまたは共有リソースのために拡張し、それを実行可能にし得る。
【００２９】
アクセス制御機構は、機器化された標的（ホスティング）コンピューティングプラットフォーム、特定のアプリケーションのランタイムベースに基づくポリシーステートメント（例えば、グラマー）、物理的制約または実施方法から独立した時間的および環境的コンテキスト、双方向ユーザ、ネットワークアクセスエンフォーサ、および識別プロバイダに通知するための証明ブローカー（サービスまたはサーバ）を含んでもよい。
【００３０】
シングルサインオン（ＳＳＯ）機構および多層アプリケーション（例えば、ウェブ、アプリケーション、データベース層）の複合は、アウトソースマルチテナントクラウドサービスインフラストラクチャにおいて、非コンプライアンスのより高いリスクを導入し得る。真正性のあるアプリケーション証明方法がない場合、ユーザの認証情報の偽装および委譲は、例えば、サービスのマルチホップ遷移チェーンにおいて、サービス間トランザクションが、暗黙的信頼に基づき得る、クラウド内およびクラウド間コンピューティング環境の両方に対して、深刻なセキュリティ脅威をもたらし得る。
【００３１】
図１は、種々の例示的実施形態による、例示的ネットワーク１５０を図示する概略図である。
【００３２】
図１を参照すると、例示的ネットワーク１５０は、コンピューティングプラットフォーム（または、機器化された標的プラットフォーム）１００上で実行または起動し得る、ウェブベースのアプリケーション１０３または非ウェブベースのアプリケーション１０４を発見および識別し得るランタイムモニタ１０２と、起動中のアプリケーションの識別を証明するための要求を受信し得る、および１つ以上の協調サービス１１０にクエリを行い、起動中のアプリケーションのコンテキスト（例えば、セキュリティコンテキストおよび／または内省ベースのセキュリティコンテキスト）を要求し得る証明ブローカー１０９とを含んでもよい。アプリケーションは、例えば、アプリケーションが、使用されるために適切であることの保証または証明を所望し得るアクティブまたはパッシブクライアントアプリケーション１１６を介して、ユーザ（または、エンドユーザ）１１５によって動作され得るアクセスリクエスタ１１４（例えば、別のコンピューティングプラットフォーム）によって使用することを対象とするアプリケーションであってもよい。
【００３３】
証明ブローカー１０９（または、協調サービス１１０）は、起動中の標的アプリケーションに関するアサーションを含み得る、アプリケーションステートメントまたはレポート１１７を生成するように構成されてもよく、ステートメントまたはレポート１１７をリクエスタ、第三者、および／またはエンドユーザに配信してもよい。プラットフォーム１００は、例えば、任意のコンピューティングデバイス１０１および／または仮想プラットフォーム（例えば、とりわけ、コンピュータ、マイクロプロセッサ、携帯情報端末（ＰＤＡ）、スマートフォン、ノートブックコンピュータ、および／またはハードウェア上で起動する仮想サーバ）を含んでもよい。コンピューティングデバイスは、例えば、とりわけ、オペレーティングシステムソフトウェア、アプリケーション、およびランタイムモニタソフトウェア等のコンピューティングプラットフォームソフトウェアの実行のためのマイクロプロセッサ１３０と、データ、メタデータ、およびソフトウェア記憶のためのメモリ１４０とを含んでもよい。
【００３４】
証明ブローカー１０９は、アプリケーションアーチファクト１０７（例えば、機器化されたプラットフォーム１００上で起動する、発見または識別されたアプリケーションの状態の記録を維持し得る）を機器化されたプラットフォーム１００上で起動する、発見または識別されたアプリケーションのためのランタイムモニタ１０２に発行してもよい。ランタイムモニタ１０２は、アプリケーションアーチファクト１０７を使用して、アプリケーションのアプリケーション実行コンテキスト１０５を記述するための属性値アサーション（例えば、各個別の起動中のアプリケーションと関連付けられた１つ以上の属性値についてのアサーション）を生成してもよい。
【００３５】
例えば、証明サービスまたは装置は、（１）コンピューティングプラットフォーム１０１から、ランタイム時のアプリケーションの属性を示すランタイム実行コンテキスト１０５、およびアプリケーションに関するセキュリティ情報を提供するセキュリティコンテキスト１１１を遠隔で受信し、（２）証明結果として、受信されたランタイム実行コンテキスト１０５および受信されたセキュリティコンテキスト１１１に基づいて、アプリケーションと関連付けられたセキュリティリスクを示すレポート１１７を生成し、および／または（３）アプリケーションと関連付けられた証明結果を送信するための処理ユニット１３５と、生成されたレポートを記憶するためのメモリ１４５とを含んでもよい。
【００３６】
第２の実施例として、ランタイムモニタまたはモニタリング装置は、（１）ランタイム時のアプリケーションの属性を示すランタイム実行コンテキスト１０５を生成し、（２）ランタイム実行コンテキスト１０５を証明サービスまたはサーバ１０９に送信し、（３）ランタイム実行コンテキスト１０５へのその後の変更を追跡するためのアプリケーションアーチファクト１０７を受信し、および／または（５）変更を示すアプリケーションの属性に応答して、アプリケーションアーチファクト１０７を使用して、更新された実行コンテキストとして、ランタイム実行コンテキスト１０５を更新および送信するための処理ユニット１３０（例えば、コンピューティングプラットフォーム１０１と共有されるプロセッサまたは別個のプロセッサ）と、アプリケーションアーチファクト１０７を記憶するためのメモリ１４０とを含んでもよい。
【００３７】
アプリケーションアーチファクトは、以前のアサーションを含んでもよく、またはアプリケーションを以前のアサーションに関連付ける識別子を提供してもよい。アプリケーション実行コンテキスト１０５は、少なくとも、標的アプリケーションのベース（または、静的）、時間的（または、動的）、および／または環境的側面あるいは属性を含んでもよい。リクエスタ（例えば、ネットワークアクセスエンフォーサ１１３、例えば、ネットワークファイアウォール、ロードバランサ、ＶＰＮゲートウェイ、および／または識別プロバイダ１１２、例えば、セキュリティトークンサービス（ＳＴＳ）、シングルサインオン（ＳＳＯ）ソリューション）は、アプリケーションステートメントまたはレポート１１７を証明ブローカー１０９からサブスクライブしてもよい。
【００３８】
ある例示的実施形態では、機器化されたプラットフォーム１００上のランタイムモニタ１０２による、アプリケーション実行コンテキスト１０５のための属性値アサーションの生成は、例えば、起動中の標的アプリケーション１０３または１０４のロードされた（例えば、全てロードされたおよび／または処理中の）構成要素に対するファイルハッシュダイジェストおよび／またはファイル属性（例えば、ファイルサイズ、発行元詳細、作成および／または修正タイムスタンプ、デジタル署名、およびプロダクトバージョン）の集合を含んでもよい。アプリケーション実行コンテキスト１０５は、親−子プロセス関連付けおよび／またはローダ依存性、ウェルノウンまたはエフェメラルである、アクティブなリッスンおよび／またはオープンネットワークポートに関する情報を含んでもよい。アプリケーション実行コンテキスト１０５はまた、実行可能ファイルバイナリを含んでもよい。ランタイムモニタ１０２は、アプリケーション実行コンテキスト通知内に、証明ブローカー１０９へのデジタル的に署名されたレポートとして、そのような集合を生成および報告してもよい。
【００３９】
ある例示的実施形態では、協調サービス１１０を使用する、標的である機器化されたプラットフォーム１００上の起動中の標的アプリケーション１０３または１０４の評価の結果として（または、それに基づいて）、証明ブローカー１０９は、アプリケーションステートメント通知１１８を介して、アプリケーションステートメントまたはレポート１１７を発行してもよい。発行されたアプリケーションステートメントまたはレポート１１７は、デジタル的に署名され、そのアプリケーション識別子として、アプリケーションインスタンスの名称（例えば、アプリケーションインスタンスのグローバル一意セキュリティプリンシパル名または他のアプリケーション識別子）を含んでもよい。アプリケーションインスタンスは、ユーザプログラムまたはサービスプログラムであってもよい。そのような名称の一実施例は、「サービス／ホスト名＠領域」であり得る。
【００４０】
アプリケーションステートメントまたはレポート１１７は、機械識別子として、機器化されたプラットフォーム１００上のアプリケーションインスタンスのランタイム実行コンテキスト１０５およびアプリケーションセキュリティコンテキスト１１１を記述し得る、属性値アサーションを含んでもよい。アプリケーション識別子は、サービスディレクトリ内の発行元指定プロダクト名または登録されたサービスプリンシパル名であってもよい。機械識別子は、とりわけ、ＩＰｖ４／ＩＰｖ６アドレス、ディレクトリネットワークサービス（ＤＮＳ）ホスト名、ＭＡＣアドレス、製造番号（例えば、ＩＴまたは製造業者発行製造番号）、ＲＦＩＤ、および／または他のデバイス識別子であってもよい。証明ブローカー１０９は、リクエスタ１１２、１１３、または１１４に、１つ以上のレーティング（例えば、標的アプリケーションに対するアプリケーション信用レーティング）を含み得る、信頼指標を提供してもよい。
【００４１】
信頼指標は、例えば、（１）アプリケーションの脆弱性、（２）アプリケーションのコンプライアンス、（３）アプリケーションの参照整合性、および／または（４）標的アプリケーションのパッチレベルに基づいて、分類されてもよい。これらのレーティングは、複数の協調サービス１１０のうちの１つ以上との通信または相互作用に基づいて、証明ブローカー１０９によって決定されてもよい。信頼指標は、分類または平均によって重み付けされる、各分類に対する値および／または全体的値を含んでもよい。重み付けは、既定、プリセット、またはユーザ入力に基づいて決定されてもよい。信頼指標は、協調サービス１１０のうちの１つ以上の評価の数値表現であってもよい。
【００４２】
ある例示的実施形態では、アプリケーションステートメントまたはレポート１１７は、アイコンまたは他のインジケータ（ウェブページ上で視覚的である、または聴覚的インジケータのいずれかであって、例えば、ウェブページの下側のアイコン）をレンダリングするために、パッシブクライアント１１６（例えば、ウェブブラウザ）によって使用されてもよい。インジケータは、ユーザ１１５へのウェブアプリケーションの真正性のインジケータ（または、証明）であってもよい。例えば、ユーザ１１５は、証明アイコンをクリックして、アクセスしたウェブアプリケーションに対して、証明ブローカー１０９によって発行されたウェブアプリケーション特有情報を閲覧してもよい。証明ブローカー１０９は、そのような証明サービスを提供する、第三者の独立した、信頼できるエンティティであってもよい。ユーザ１１５は、証明ブローカー１０９によって供与されるアプリケーション証明が、現在のものである（例えば、アプリケーション証明の期限が切れていない）ことを確認してもよい。
【００４３】
ユーザ１１５またはアクセスリクエスタ１１４（例えば、ユーザのコンピューティングプラットフォーム）は、証明ブローカー１０９から、アプリケーションステートメントまたはレポート（または、クレーム）１１７が、アプリケーションステートメント１１７内のタイムスタンプおよび／またはメッセージシーケンス処理に基づいて、アクセスしたウェブアプリケーションの最近（例えば、最新）の照合されたコンテキスト査定を表すことを確認してもよい。クレームが、最新の照合されたコンテキスト査定を表すという決定は、複数の協調サービス１１０のうちの１つ以上を介して収集された連結情報に基づいてもよい。
【００４４】
アプリケーションステートメントまたはレポート１１７は、１つ以上のネットワークアクセスエンフォーサ１１３（例えば、とりわけ、ネットワークファイアウォール、ロードバランサ、および／またはＶＰＮゲートウェイ）、１つ以上の識別プロバイダ１１２（例えば、とりわけ、ＳＴＳ、および／またはＳＳＯサービス）、および／またはアクティブクライアント１１６（例えば、とりわけ、Ｓｉｍｐｌｅ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  ａｎｄ  Ｓｅｃｕｒｉｔｙ  Ｌａｙｅｒ（ＳＡＳＬ）対応クライアント−サーバおよび／またはピアツーピアアプリケーション）によって受信および解釈され、機器化されたプラットフォーム１００上の標的アプリケーション１０３または１０４に関するコンテキスト情報が利用されてもよい。
【００４５】
ランタイムモニタ１０２は、機器化されたプラットフォーム１００のオペレーティングシステム１２０上のアプリケーションのプロセス開始（例えば、全プロセス開始）、プロセス終了（例えば、全プロセス終了）、およびネットワークエポック（例えば、ソケットイベント）を発見、識別、および追跡してもよい。起動中のアプリケーションのローカル実行コンテキストは、ランタイム時に決定されてもよく、証明ブローカーサービス１０９への通信チャネル１０６を経由して、属性値アサーションとして、報告されてもよい。
【００４６】
ある例示的実施形態では、通信チャネル１０６は、セキュアな通信チャネルであってもよく、および／または通信は、公知の暗号化／暗号解読方法を介して、セキュア化されてもよい。証明ブローカー１０９は、複数の協調サービス１１０のうちの１つ以上から、機器化されたプラットフォーム１００上で起動中のアプリケーションのための内省ベースのセキュリティコンテキスト（例えば、履歴状態情報と、種々の検査方法を使用して、ある時間周期にわたってサンプリングされた測定とに基づく、評価および挙動または予測分析）を要求してもよい。
【００４７】
ある例示的実施形態では、協調サービス１１０は、標的アプリケーションおよびプラットフォーム１００のジャストインタイム検査（例えば、査定スキャン）を行ってもよい。協調サービス１１０は、例えば、ＩＴサービス管理スケジュールに基づいて、最新の検査レポートを調べてもよく、アプリケーション実行コンテキスト１０５に関する要求された証明をリクエスタ１１２、１１３または１１４、あるいはユーザ１１５に返してもよい。
【００４８】
証明ブローカー１０９は、アプリケーションに対するその後の実行コンテキスト変更通知２０７（図２参照）のための基準として、起動中のアプリケーション１０３または１０４のためのアプリケーションアーチファクト１０７を生成し、ランタイムモニタ１０２に返してもよい。起動中のアプリケーションのローカル実行コンテキスト１０５内の変更（例えば、任意の変更）は、証明ブローカー１０９との相互作用（例えば、ランタイムモニタ１０２による証明ブローカー１０９への通信）をトリガし、変更されたローカル実行コンテキストを有する、標的アプリケーションの証明のためのアプリケーションステートメントまたはレポート１１７を再発行し得る。例えば、標的アプリケーションのハッシュが変更される、または標的アプリケーションのファイルサイズが変更されると、更新された証明が、ランタイムモニタ１０２によって開始され、証明ブローカー１０９によって提供されてもよい。証明ブローカー１０９は、協調サービス１１０のうちの１つ以上にクエリを行い、変更された標的アプリケーションと関連付けられた更新されたアプリケーションステートメントまたはレポート１１８を決定してもよい。
【００４９】
ある例示的実施形態では、証明ブローカー１０９は、標的アプリケーションの真正性または異なる（例えば、独立）分類に基づく複数の値の信頼指標について、信頼（または、リスク）を表す、単一信頼値を提供してもよい。他の例示的実施形態では、証明ブローカー１０９は、リクエスタ１１２、１１３、および／または１１４、あるいはランタイムモニタ１０２が、他の情報の種々の属性を分析し得るように、標準的形式において、信頼指標および他の情報を提供してもよい。例えば、ランタイムモニタ１０２は、アプリケーション証明ポリシーを記憶してもよく、またはそこへのアクセスを有してもよく、ローカル実行コンテキストおよびアプリケーションステートメントまたはレポート１１７を証明ポリシーと比較し、標的アプリケーションが、リクエスタによって使用するために認証されたか否かを決定してもよい。識別プロバイダ１１２は、例えば、ウェブアプリケーション１０３からウェブリダイレクトを受信し、ユーザ（例えば、双方向ユーザ）１１５がログインするための仲介認証セレモニーを行ってもよい。
【００５０】
ある例示的実施形態では、ウェブアプリケーション１０３は、アプリケーションアーチファクト要求１０６を介して、アプリケーションアーチファクト１０７を証明ブローカー１０９から要求してもよい。ウェブアプリケーション１０３は、識別プロバイダ１１２へのウェブリダイレクトにおいて受信されたアプリケーションアーチファクト１０７を含んでもよい。識別プロバイダ１１２は、バックチャネルクエリ１１８を行い、受信されたアプリケーションアーチファクト１０７が、証明ブローカー１０９によって発行されたものであることを検証し、ウェブアプリケーション１０３の真正性を確認してもよい。識別プロバイダ１１２は、次いで、ウェブアプリケーション１０３のためのアプリケーションステートメントまたはレポート１１７を受信してもよい。アプリケーション証明の視覚的、聴覚的、またはプログラム的表示は、アクセスリクエスタ１１４を介して、アクセスリクエスタ１１４またはユーザ１１５に提供されてもよい。
【００５１】
双方向ユーザ１１５またはリクエスタ１１４は、例えば、ログインフォーム上の視覚的インジケータまたはアイコンの形態として、アプリケーション真正性の視覚的または聴覚的証明を受信してもよい。証明は、ウェブアプリケーション１０３との任意のトランザクションを進める前に、許諾または拒否されてもよく、あるいは証明は、ユーザ１１５またはリクエスタ１１４によって拒否されない場合、所定またはユーザ規定時間周期後、自動的に許諾されてもよい。
【００５２】
ネットワークアクセスエンフォーサ１１３は、証明ブローカー１０９から、アプリケーションステートメントまたはレポート１１７をサブスクライブしてもよく、複数の標的機械またはプラットフォーム１００上の複数の標的アプリケーション１０３あるいは１０４を発見してもよい。証明ブローカー１０９とネットワークアクセスエンフォーサ１１３との間の通信１１８のための通信プロトコルは、例えば、とりわけ、（１）Ｓｉｍｐｌｅ  Ｏｂｊｅｃｔ  Ａｃｃｅｓｓ  Ｐｒｏｔｏｃｏｌ（ＳＯＡＰ）、（２）Ｒｅｐｒｅｓｅｎｔａｔｉｏａｌ  Ｓｔａｔｅ  Ｔｒａｎｓｆｅｒ（ＲＥＳＴ）、または（３）Ｔｒｕｓｔｅｄ  Ｃｏｍｐｕｔｉｎｇ  Ｇｒｏｕｐ’ｓ  （ＴＣＧ’ｓ）  Ｉｎｔｅｒｆａｃｅ  ｆｏｒ  Ｍｅｔａｄａｔａ  Ａｃｃｅｓｓ  Ｐｏｉｎｔｓ（ＩＦ−ＭＡＰ）仕様等の任意の規格ベースのプロトコルおよびメッセージ交換データ構造または方式であってもよい。
【００５３】
証明ブローカー１０９は、ネットワークアクセスエンフォーサ１１３のために、リアルタイムまたはほぼリアルタイムアプリケーションステートメントまたはレポート１１７を伴う通知を公開し、物理的アクセス制御（例えば、物理的に、標的アプリケーションへのアクセスを有効にする、またはアクセスをブロックするための制御）を適用してもよい。ネットワークアクセスエンフォーサ１１３による物理的アクセスを有効または無効にする決定は、アプリケーションステートメントまたは記録１１７内の（例えば、トランスポート層における）属性値アサーションに基づいてもよい。属性値アサーションは、例えば、標的アプリケーション１０３または１０４に割り当てられる静的（例えば、ウェルノウン）および／または動的（例えば、エフェメラル）ネットワークポートを含んでもよい。
【００５４】
アクティブクライアントアプリケーション１１６および／またはサーバアプリケーション１０４（例えば、Ｓｉｍｐｌｅ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  ａｎｄ  Ｓｅｃｕｒｉｔｙ  Ｌａｙｅｒ（ＳＡＳＬ）プロトコルを使用する）は、相互証明ハンドシェークのために、受信されたアプリケーションステートメントまたはレポート１１７をプログラム的に要求および／または使用してもよい。例えば、ＳＡＳＬプロトコルを使用して、そのような相互証明ハンドシェークは、認証情報の所有の証拠との認証ハンドシェークを開始する前に、整合性交換プロファイルによって定義されてもよい。
【００５５】
図２は、種々の例示的実施形態による、クラウドコンピューティング環境において、アプリケーションをモニタリングおよび証明する方法を図示する、概略図である。
【００５６】
図２を参照すると、例示的ネットワーク２５０は、ランタイムモニタ２０１、機器化された標的プラットフォーム２００、証明ブローカー２０２、メタデータデータベース２１０、および／または複数の協調サービス２０３を含んでもよい。
【００５７】
ランタイムモニタ２０１は、機器化された標的プラットフォーム上のアプリケーション２００のランタイム実行を発見、検査、識別、および／または証明してもよい。証明ブローカー２０２は、登録されたアプリケーションインスタンス２０４のための受信されたアプリケーション実行コンテキスト（または、アプリケーション実行コンテキスト変更通知）２０７に基づいて、アプリケーションアーチファクト２０６を発行してもよい。ランタイムモニタ２０１、あるいはアクセスリクエスタ１１４またはユーザ１１５からの要求に応答して、証明ブローカー（または、証明サーバ）２０２は、複数の協調サービス（または、協調サーバ）２０３のうちの１つ以上のクエリ２０５を開始してもよい。クエリ２０５は、標的アプリケーションのためのセキュリティコンテキスト（例えば、内省ベースのセキュリティコンテキスト）の検索を含んでもよい。
【００５８】
ある例示的実施形態では、機器化された標的プラットフォーム２００上で起動するアプリケーションは、直接、または証明ブローカー２０２を介してのいずれかにおいて、ランタイムモニタ２０１から受信されたアプリケーション実行コンテキストに基づいて、識別のために、協調サービス２０３のうちの１つ以上を使用して照合されてもよい。
【００５９】
ランタイムモニタ２０１は、アプリケーションエポック（例えば、プロセスおよび／またはソケットイベント）のために、機器化された標的プラットフォーム２００に関するプロセスの実行コンテキストを検査してもよい。アプリケーションプロセス開始の検出に応答して、またはその後、ランタイムアプリケーション実行コンテキスト（例えば、メタデータ）が、生成されてもよい。メタデータは、（１）ファイルハッシュダイジェスト、（２）起動中の標的アプリケーションのロードされた構成要素のためのファイル属性（例えば、ファイルサイズ、発行元詳細、作成および／または修正タイムスタンプ、デジタル署名、および／またはプロダクトバージョン）、（３）親−子プロセス関連付け、（４）ローダ依存性、および／または（５）ウェルノウンおよび／またはエフェメラルであり得る、アクティブなリッスンおよび／またはオープンネットワークポートに関する情報、ならびに／あるいは実行可能ファイルバイナリを含んでもよい。起動中のアプリケーションは、生成されたアプリケーション実行コンテキストを証明ブローカー２０２に提供することによって、登録２０４されてもよい。
【００６０】
ある例示的実施形態では、証明ブローカー２０２は、機器化された標的プラットフォーム２００上で起動中のアプリケーションの真正性をクエリ２０５と照合してもよい。ランタイムモニタ２０１から収集されたメタデータを含み得る、クエリ２０５は、証明ブローカー２０２から送信され、１つ以上の協調サービス２０３によって受信されてもよい。クエリ２０５は、機器化されたプラットフォーム２００上の起動中の標的アプリケーションと関連付けられたリスク（信頼）のレベルを示し得る、起動中のアプリケーションのためのセキュリティコンテキストを要求してもよい。
【００６１】
証明ブローカー２０２は、時間依存かつグローバル的に一意であり得る、動的に変化するアプリケーションアーチファクト２０６を生成してもよい。アプリケーションアーチファクト２０６は、受信されたアプリケーション実行コンテキストに基づいてもよく、証明ブローカー２０２は、生成されたアプリケーションアーチファクトをランタイムモニタ２０１に返してもよい。ランタイムモニタ２０１は、例えば、アクティブなリッスンおよびオープンネットワークポート（例えば、ウェルノウンおよびエフェメラル）および／またはアプリケーションの終了を含む、状態変更に対して、起動中のアプリケーションのそれぞれを検査してもよい。これらの検査は、例えば、オープンシステム相互接続（ＯＳＩ）スタックのトランスポート層で生じてもよい。
【００６２】
ある例示的実施形態では、実行コンテキストに関連する要素等、他のタイプの状態変更が、検査されてもよい。任意のコンテキスト（状態）変更は、リアルタイムまたはほぼリアルタイムで、アプリケーション実行コンテキスト変更通知２０７によって、ランタイムモニタ２０１から、証明ブローカー２０２に、通知されてもよい。証明ブローカー２０２は、複数の機器化された標的プラットフォーム２００のうちの１つ以上上の登録されたアプリケーション（例えば、各登録された起動中のアプリケーション）のために、ローカルデータベースまたは遠隔リポジトリ２１０（例えば、ＩＦ−ＭＡＰサーバ等）内に持続的および／または一時的状態情報（例えば、メタデータを含む）を記憶してもよい。
【００６３】
図３は、別の種々の例示的実施形態による、クラウドコンピューティング環境において、アプリケーションをモニタリングおよび証明する方法を図示する、概略図である。
【００６４】
図３を参照すると、例示的ネットワーク３５０は、双方向ユーザ３００、機器化された標的プラットフォーム３０１、ウェブアプリケーション３０２、識別プロバイダ３０３、証明ブローカー３０４、および協調サービス３０５を含んでもよい。ウェブアプリケーション３０２は、ウェブアプリケーション３０２のランタイム多因子証明のために、証明ブローカー３０４と相互作用してもよい。動作フローは、例えば、制御パス内の中間ノード要素に関する認証制御のためのセッションの接続後相において、適用されるように、機構を有効にしてもよい。
【００６５】
双方向ユーザ３００は、ネットワークを経由して、物理的接続を確立してもよく、アプリケーションアクセス要求３０６を開始し、機器化された標的プラットフォーム３０１上にホストされたウェブアプリケーション３０２とのトランザクションを着手または開始してもよい。
【００６６】
ある例示的実施形態では、ウェブアプリケーション３０２は、ランタイムアプリケーション実行コンテキスト（例えば、メタデータ）を生成し得る、コード要素（例えば、ウェブサーブレットまたは他の処理要素等）を実行してもよく、ランタイムアプリケーション実行コンテキストの生成されたメタデータを送信することによって、自動的に、クエリ３０７を証明ブローカー３０４に開始してもよい。
【００６７】
ある例示的実施形態では、証明ブローカー３０４は、受信されたメタデータの照合クエリ３１１（例えば、リアルタイムまたはほぼリアルタイム）を協調サービス３０５のうちの１つ以上に送信し、クエリされた協調サービス３０５から、アプリケーションセキュリティコンテキスト３１２を受信することによって、機器化された標的プラットフォーム３０１上で起動中のウェブアプリケーション３０２の真正性を照合してもよい。証明ブローカー３０４は、アプリケーションアーチファクト３０８を生成してもよく、アプリケーションアーチファクトをウェブアプリケーション３０２に送信してもよい。
【００６８】
ウェブアプリケーション３０２は、証明ブローカー３０４とのバックチャネル通信３１０を使用して、アプリケーションアーチファクト３０９を照合し得る、識別プロバイダ３０３へのアサーション（例えば、セキュリティアサーションマークアップ言語（ＳＡＭＬまたはマークアップの他の一般的形態）において）として、受信されたアプリケーションアーチファクト３０９を含んでもよい（例えば、マークアップとして、埋め込んでもよい）。
【００６９】
ある例示的実施形態では、証明ブローカー（または、証明サーバ）３０４は、起動中のアプリケーションに対する内省ベースのセキュリティコンテキストを協調サービス３０５に要求してもよい。
【００７０】
種々の例示的実施形態では、識別プロバイダ３０３は、関連付けられたドメイン（例えば、領域）内において、双方向ユーザ３００との直接双方向認証シーケンスを開始してもよい。ユーザ３００に表示されるログインフォーム（または、ウェブページ）は、アプリケーション証明３１３を含んでもよい。アプリケーション証明３１３は、アクセスしたウェブアプリケーションのための証明アイコンを含む、任意の知覚可能インジケータであってもよい。例えば、証明アイコンは、例えば、識別、プロダクトバージョン、発行元、修正タイムスタンプ、および／または信頼指標等のウェブアプリケーション３０２に関する情報を含んでもよい。ユーザ３００は、信頼指標情報を含む、情報が、トランザクション（例えば、起動中の標的アプリケーションの使用）を継続するために容認可能であるか否かを決定してもよく、認証情報３１４の所有の証拠を提供し、ユーザ３００を識別プロバイダ３０３に認証してもよい。
【００７１】
ユーザ認証は、起動中のアプリケーションを使用するために、トランザクションを継続するか否かの決定後に生じるように開示されるが、ユーザ認証は、ログインプロセスの任意の段階で生じてもよく、起動中のアプリケーションを使用するか否かのそのような決定に先立って生じてもよいことが想定される。
【００７２】
ある例示的実施形態では、信頼指標と関連付けられた値は、一般的尺度（例えば、１から１０の尺度）に基づいて提供されてもよく、標的アプリケーションを使用することが、低リスクを示す、緑色、標的アプリケーションを使用することが、中間リスクを示す、黄色、および標的アプリケーションを使用することが、高リスクを示す、赤色等、一般的視覚的方式によって、ユーザ３００に提示されてもよい。
【００７３】
ある例示的実施形態では、識別プロバイダ３０３は、証明ブローカー３０４にクエリ３１５を行い、ウェブアプリケーション３０２へのアクセスが、証明ブローカー３０４のために構成される認証プロファイルに基づいて、認証されたユーザ３００が、ウェブアプリケーション３０２とのデータ交換をトランザクションするために付与され得るかを決定してもよい。
【００７４】
種々の例示的実施形態では、識別プロバイダ３０３は、規格ベースの認証、属性、および／または認証ステートメントあるいはレポート３１６をウェブアプリケーション３０２に返してもよい。ウェブアプリケーション３０２は、証明ブローカー３０４から受信されたアプリケーションステートメントまたはレポート３１６と、事前に確立されたまたはシステムアドミニストレータ確立アクセスあるいは証明ポリシーとに基づいて、選択的に、機器化されたプラットフォーム３０１上の標的アプリケーションのためのアクセスをユーザ３００に付与してもよく、または選択的に、ユーザ３００による機器化されたプラットフォーム３０１上の標的アプリケーションへのアクセスをブロックしてもよい。
【００７５】
アプリケーションステートメントまたはレポート３１６は、例えば、ユーザの識別に関する情報、とりわけ、パスワード、ＰＩＮ、スマートカード等の１つ以上の認証因子、およびユーザディレクトリ（例えば、とりわけ、アクティブディレクトリ）、役割ベースの管理システム（例えば、とりわけ、ＯｒａｃｌｅまたはＳＡＰ）、および／または関係データベース（例えば、とりわけ、ＭＳ−ＳＱＬ、ＭｙＳＱＬ、またはＯｒａｃｌｅＤＢ）における既存の役割を含んでもよい。アクセスはまた、複数の因子に基づいて、付与または拒否（ブロック）されてもよい。
【００７６】
例えば、識別プロバイダ３０３は、特有分類（例えば、コンプライアンス）に対する信頼指標における懸念レベル（例えば、高）に基づいて、認証されたユーザ３００へのアクセスを拒否してもよい。信頼指標の分類に対する懸念レベルは、証明ブローカー３０４のためにプロビジョニングされる、ユーザ／アプリケーションポリシー結合において表されてもよい。証明ブローカー３０４またはその外部におけるポリシー決定論理の結果は、１つ以上のアプリケーションステートメントまたはレポートとして、ウェブアプリケーション３０２に返されてもよい。
【００７７】
識別プロバイダ３０３は、識別記憶（または、キャッシュ）を使用して、パスワードを管理し得る、中間シングルサインオン（ＳＳＯ）エンティティ（または、機能）を表してもよく、ユーザ３００の代わりに、認証セレモニーを行ってもよい。認証は、ユーザ３００に透過性であるように行われてもよい。
【００７８】
図４は、種々の例示的実施形態による、クラウドコンピューティング環境において、アプリケーションをモニタリングおよび証明するさらなる方法を図示する、概略図である。
【００７９】
図４を参照すると、例示的ネットワーク４５０は、機器化された標的プラットフォーム４００、ランタイムモニタ４０１、証明ブローカー４０２、協調サービス４０３、双方向ユーザ４０４、および／またはネットワークアクセスエンフォーサ４０５を含んでもよい。ユーザ４０４は、ネットワーク４５０を経由して、物理的接続を確立してもよく、アプリケーションアクセス要求４１１を開始し、機器化された標的プラットフォーム４０１上にホストされた標的アプリケーションとのトランザクションを着手または開始してもよい。
【００８０】
機器化された標的プラットフォーム４００上で起動するアプリケーションは、アプリケーション実行コンテキストおよび状態変更のために、ランタイムモニタ４０１によって検査されてもよい。動作フローは、セッション（例えば、インターネットプロトコル（ＩＰ）または非ＩＰセッション）の接続確立相の間またはその時点において、中間システムにおける認証制御またはデータパス内の装置に適用される例示的機構であり得る。
【００８１】
ランタイムモニタ４０１は、アプリケーションエポック（例えば、プロセスおよび／またはソケットイベント）に対して、機器化された標的プラットフォーム４００を検査してもよい。ランタイムモニタ４０１によるアプリケーションプロセス開始の検出に応答して、ランタイムモニタは、例えば、起動中の標的アプリケーションのロードされた構成要素のためのファイルハッシュダイジェストおよび／またはファイル属性を含み得る、ランタイムアプリケーション実行コンテキスト（例えば、メタデータ）を生成してもよい。起動中の標的アプリケーションは、ランタイムモニタ４０１によって、開始通知４０６を介して、証明ブローカー４０２に登録されてもよく、ランタイムアプリケーション実行コンテキスト（例えば、メタデータを含み得る）は、ランタイムモニタ４０１によって、アプリケーション実行コンテキスト変更通知４０８を介して、証明ブローカー４０２に送信されてもよい。ある例示的実施形態では、通知４０６および４０８は、ともに生じてもよい。
【００８２】
ある例示的実施形態では、証明ブローカー４０２は、機器化された標的プラットフォーム４００上で起動中のアプリケーションの真正性を、１つ以上の協調サービス４０３との受信されたメタデータのリアルタイムまたはほぼリアルタイム交換４０９と、交換されたメタデータに基づく、アプリケーションセキュリティコンテキスト４１０の戻りと照合してもよい。証明ブローカー４０２はまた、１つ以上の協調サービス４０３に、例えば、マルウェア分析システムによって、実行可能ファイルバイナリの静的、動的、および／または仮想実行分析を行うよう要求してもよい。
【００８３】
ある例示的実施形態では、証明ブローカー４０２は、１つ以上の協調サービス４０３によって行われる、要求された分析に応答して、手動または自動化方法を使用して、機器化された標的プラットフォーム４００を修正してもよい。
【００８４】
証明ブローカー４０２は、動的アプリケーションアーチファクト（例えば、グローバル一意であってもよく、かつ時間依存であってもよい）４０７を生成してもよく、アプリケーションアーチファクト４０７をランタイムモニタ４０１に発行してもよい。ランタイムモニタ４０１は、例えば、アクティブなリッスンおよび／またはオープンネットワークポート（例えば、ＯＳＩスタックのトランスポート層において）、ならびにアプリケーションの終了を含む、コンテキスト（状態）変更に対して、機器化された標的プラットフォーム上４００で起動中のアプリケーションを検査してもよい。
【００８５】
ある例示的実施形態では、実行コンテキストに関連する要素等、他のタイプの状態変更が、検査されてもよい。コンテキスト（または、状態）変更４０８（例えば、任意のコンテキスト変更）は、リアルタイムまたはほぼリアルタイムで、証明ブローカー４０２に通知されてもよい。証明ブローカー４０２は、複数の機器化された標的プラットフォーム４００上の登録された起動中のアプリケーションのために、持続的および一時的状態情報をローカルデータベースまたは遠隔リポジトリ２１０（図２参照）に記憶してもよい。
【００８６】
ネットワークアクセスエンフォーサ４０５は、証明ブローカー４０２から、ウェブサービスとして、ウェブサービスプロトコルインターフェース４１２、４１３を経由して、複数の機器化された標的プラットフォーム４００上の起動中のアプリケーション（例えば、全起動中のアプリケーション）のためのアプリケーションステートメントまたはレポート（例えば、クレーム）の通知（例えば、公開）を登録またはサブスクライブしてもよい。証明ブローカー４０２は、リアルタイムまたはほぼリアルタイムで、最新アプリケーションステートメントまたはレポート４１３を複数のサブスクライバ４０５またはユーザ４０４に公開してもよい。アプリケーションステートメントまたはレポートは、（１）登録された名称（例えば、グローバル一意サービスプリンシパル名）等のアプリケーション識別子、（２）機械識別子、（３）プロダクト識別子、（４）プロダクトバージョン、（５）アクティブなリッスンおよび／またはオープンネットワークポート、（６）標的アプリケーションによって使用されるネットワークアドレス、および／または（７）１つ以上の協調サービス４０３によって行われるセキュリティコンテキスト査定４１０に基づく信頼指標を含んでもよい。信頼指標は、とりわけ、（１）協調サービス４０３のうちの１つによって行われた最近（例えば、最新）のセキュリティコンテキスト査定、（２）異なる協調サービス４０３からの相関データ、および／または（３）各セキュリティコンテキスト査定と関連付けられた、重み付けされた平均に基づいてもよい。
【００８７】
ネットワークアクセスエンフォーサ４０５は、証明ブローカー４０２のために構成されたユーザ特有アプリケーション結合に対して、証明ブローカー４０２にクエリを行い、動的多因子アプリケーション証明に基づく認証制御と、ローカル実行コンテキスト４０８および査定されたセキュリティコンテキスト４１０に基づくリアルタイム（または、ほぼリアルタイム）信頼指標とを決定してもよい。例えば、仮想または物理的ネットワークファイアウォール専用機等のネットワークアクセスエンフォーサ４０５は、証明ブローカー４０２のためにプロビジョニングされるユーザ／アプリケーションポリシー結合として表されるような特有分類（例えば、パッチレベル）に対する信頼指標における懸念レベル（「高」）（例えば、「高」、「中間」、および「低」の３つのレベルの序列システムから）に基づいて、認証されたユーザへのアクセスを拒否してもよい。３つのレベルの序列システムが図示されるが、より多いまたはより少ないレベルを伴う序列システムが可能であることが想定される。
【００８８】
図５は、種々の例示的実施形態による、Ｓｉｍｐｌｅ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  ａｎｄ  Ｓｅｃｕｒｉｔｙ  Ｌａｙｅｒ（ＳＡＳＬ）対応クライアントおよびサーバアプリケーションをモニタリングおよび証明する方法を図示する、概略図である。
【００８９】
図５を参照すると、例示的ネットワーク５５０は、クライアントアプリケーション５００、サーバアプリケーション５０１、証明ブローカー５０２、協調サービス５０３、および／またはアプリケーションプログラミングインターフェース（ＡＰＩ）ライブラリ５１６を含んでもよい。
【００９０】
Ｓｉｍｐｌｅ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  Ｓｅｃｕｒｉｔｙ  Ｌａｙｅｒ（ＳＡＳＬ）プロトコルが図示されるが、クライアント−サーバとピアツーピアアプリケーションとの間の任意のアプリケーション層プロトコル、またはネットワークセキュリティプロトコル、例えば、ＩＰＳｅｃ  Ａｕｔｈｅｎｔｉｃａｔｅｄ  Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ（ＡｕｔｈＩＰ）またはＩｎｔｅｒｎｅｔ  Ｋｅｙ  Ｅｘｃｈａｎｇｅ（ＩＫＥ）が、クライアントアプリケーション５００およびサーバアプリケーション５０１の機能を提供するために拡張および／または使用されてもよいことが想定される。
【００９１】
ある例示的実施形態では、クライアントアプリケーション５０１およびサーバアプリケーション５０１は、静的または動的に、ＡＰＩライブラリ５１６（例えば、Ｔｒｕｓｔ−ａｓ−ａ−Ｓｅｒｖｉｃｅ（ＴＡＡＳ）ＡＰＩライブラリ）にリンクされてもよい。ＡＰＩライブラリ５１６は、アプリケーションのための一組のプロシージャ呼び出しを実装し、より高いレベルのアプリケーションから、実装詳細を隠し得る、証明サービスまたはブローカー５０２とメッセージ（例えば、不透明および／またはセキュアなメッセージ）を交換してもよい。
【００９２】
一例示的実施形態が、ＡＰＩライブラリ５１６に対して図示されるが、任意のアプリケーションフレームワークが、ＡＰＩライブラリ５１６によって提供される一組のプロシージャ呼び出しを実装するために拡張されてもよいことが想定される。
【００９３】
サーバアプリケーション５０１は、ランタイムサーバアプリケーション実行コンテキスト５０４を送信し、サーバアプリケーションアーチファクト５０５を要求し、サーバアプリケーションアーチファクト５０５を証明サービス（例えば、証明ブローカーまたは証明サーバ）５０２から受信してもよい。アプリケーション実行コンテキスト５０４は、親−子プロセス関連付けおよびローダ依存性を含む、起動中のサーバアプリケーション５０１の構成要素のファイルハッシュダイジェストおよびファイル属性を含んでもよい。
【００９４】
クライアントアプリケーション５００は、サーバアプリケーション５０１へのネットワーク接続を確立してもよく、認証のためのプロファイル交換を開始してもよい。
【００９５】
認証交換（例えば、クライアントアプリケーション５００と関連付けられたユーザを認証するため）完了後、クライアントアプリケーション５００は、ランタイムクライアントアプリケーション実行コンテキスト５０６を送信してもよく、クライアントアプリケーションアーチファクト５０７を証明ブローカーまたはサービスまたはサーバ５０２から要求してもよい。クライアントアプリケーション実行コンテキスト５０６は、親−子プロセス関連付けおよびローダ依存性を含む、起動中のクライアントアプリケーション５００の構成要素のファイルハッシュダイジェストおよびファイル属性を含んでもよい。クライアントアプリケーションアーチファクト５０７の受信に応答して、またはその後、クライアントアプリケーション５００は、受信されたアプリケーションアーチファクト（５０８として示される）をサーバアプリケーション５０１に伝送してもよい。サーバアプリケーション５０１は、クライアントアーチファクト検証５０９のために、受信されたクライアントアプリケーションアーチファクト５０７を証明サーバ５０２に送信してもよく、クライアントアプリケーション５００のためのクライアントアプリケーションステートメントまたはレポート５１１を要求してもよい。
【００９６】
ある例示的実施形態では、証明ブローカー５０２は、協調サービス５０３のうちの１つ以上から、クライアントアプリケーション５００に対する内省ベースのセキュリティコンテキスト５１０のための要求５２０を開始してもよい。要求された協調サービス５０３は、クライアントアプリケーションセキュリティコンテキスト５１０を収集および生成してもよく、クライアントアプリケーションセキュリティコンテキスト５１０を証明ブローカー５０２に送信してもよい。クライアントアプリケーションステートメントまたはレポート５１１は、証明ブローカー５０２によって、クライアントアプリケーションセキュリティコンテキスト５１０から生成されてもよく、クライアントアプリケーション５００のためのランタイム実行コンテキスト５０４およびインテリジェンスベースのセキュリティコンテキスト５１０に関するアサーションを含んでもよい。証明サーバ５０２からのクライアントアプリケーションステートメントまたはレポート５１１の受信に応答して、サーバアプリケーション５０１は、クライアントアプリケーション５００の証明が適正であるか否かを決定してもよい。
【００９７】
ある例示的実施形態では、信頼指標は、クライアントアプリケーションステートメントまたはレポート５１１内に含まれてもよく、例えば、サーバアプリケーション５０１によって、分析され、クライアントアプリケーション５００とのデータ交換をトランザクションすべきか否かを決定してもよい。
【００９８】
クライアントアプリケーションステートメント５１１の受信およびクライアントアプリケーション５００とのデータ交換をトランザクションするための決定に応じて、またはその後、サーバアプリケーション５０１は、受信されたサーバアプリケーションアーチファクト（５１２として示される）をクライアントアプリケーション５００に伝送してもよい。クライアントアプリケーション５００は、サーバアーチファクト５１３の検証のために、受信されたサーバアプリケーションアーチファクト５１２を証明サーバ５０２に送信してもよく、サーバアプリケーション５０１のためのアプリケーションステートメントまたはレポート５１５を要求してもよい。
【００９９】
ある例示的実施形態では、証明ブローカー５０２は、協調サービス５０３のうちの１つ以上から、サーバアプリケーション５０１に対する内省ベースのセキュリティコンテキスト５１４のための要求５１９を開始してもよい。要求された協調サービス５０３は、サーバアプリケーションセキュリティコンテキスト５１４を収集および生成してもよく、サーバアプリケーションセキュリティコンテキスト５１４を証明ブローカー５０２に送信してもよい。証明ブローカー５０２によって生成されたサーバアプリケーションステートメントまたはレポート５１５は、サーバアプリケーション５０１のためのランタイム実行コンテキストおよびインテリジェンスベースのセキュリティコンテキストに関するアサーションを含んでもよい。証明ブローカーまたはサービス５０２からのサーバアプリケーションステートメントまたはレポート５１５の受信に応答して、またはその後、クライアントアプリケーション５００は、サーバアプリケーション５０１の証明が適正であるか否か決定してもよい。ある例示的実施形態では、サーバアプリケーションステートメント内に含まれる信頼指標は、例えば、クライアントアプリケーションによって分析され、サーバアプリケーション５０１とのデータ交換をトランザクションすべきか否か決定してもよい。
【０１００】
アプリケーションステートメント内に含まれる信頼指標は、要求アプリケーションによって分析されてもよいが、ある例示的実施形態では、ＡＰＩライブラリ５１６は、標準的レーティン尺度が、各要求アプリケーションに提供され得、要求アプリケーションが、リスク閾値を超える特定のレーティングを伴うアプリケーションへのアクセスを拒否する、および／またはリスク閾値以下の特定のレーティングを伴うアプリケーションへのアクセスを付与するための設定を既定し得るように、標準的および／またはカスタム差込フィルタを提供し、分類ベースの信頼指標を正規化してもよい。ある例示的実施形態では、リスク閾値またはその近傍のアプリケーションは、付加的協調サービス５０３に基づいて、あるいはそのようなアクセスを付与または拒否する、ユーザのシステムアドミニストレータ入力に基づいて、一時的に、アクセスが拒否され、さらなる分析のために保留されてもよい。
【０１０１】
図６は、本発明の種々の例示的実施形態による、整合性ダッシュボード６００を含む、例示的セキュリティ管理コンソール６５０を図示する、概略図である。
【０１０２】
図６を参照すると、例示的セキュリティ管理コンソール６５０は、整合性ダッシュボードまたはディスプレイウィンドウ６００を視覚的に表示してもよい。整合性ダッシュボードまたはディスプレイウィンドウ６００は、ダッシュボードクロック６０１、発見および識別されたアプリケーション６０２、サービス領域６０３、機器化された標的プラットフォーム６０４、プロダクトベンダ６０５、プロダクトバージョン６０６、アクティブなネットワークサービスポート６０７、および信頼指標６０８を含む、情報フィールドを含んでもよい。
【０１０３】
情報フィールドは、リアルタイムまたはほぼリアルタイムで、表示および／または更新されてもよい。例えば、機器化された標的プラットフォーム６０４上で起動する識別および証明されたアプリケーション６０２、サービス領域６０３、プロダクトベンダ６０５、プロダクトバージョン６０６、現在の分類ベースの信頼指標６０８、およびアプリケーションのための現在アクティブなネットワークサービスポート６０７が、ダッシュボードクロック６０１によって示されるように、ほぼリアルタイムで、整合性ダッシュボード６００上に表示されてもよい。ダッシュボード６００は、管理制御（図示せず）を含み、大局的視野のためのフィルタを作成し、複数の定義された基準に基づいて、セキュリティアラートを発行する、および／または随伴報告サービスを提供してもよい。
【０１０４】
整合性ダッシュボードは、特有情報フィールドとともに、特定の配列で示されるが、他の情報フィールドおよび配列も、可能であることが想定される。例えば、アプリケーションステートメントまたはレポートあるいはネットワーク管理システムから利用可能な他のネットワーク管理情報内に含まれる付加的属性もまた、表示されてもよい。
【０１０５】
図７は、本発明の種々の例示的実施形態による、認証ダッシュボード７００を含む、別の例示的ポリシー管理コンソール７５０を図示する、概略図である。
【０１０６】
図７を参照すると、認証ダッシュボードまたは制御ウィンドウ７００は、例えば、クラウドクライアント（または、テナント）７０１によってプロビジョニングおよび解析される、情報フィールドを含んでもよく、ユーザ７０２、役割７０３、認証領域７０４、認証タイプ７０５、機器化されたサービスホスト（または、標的プラットフォーム）７０６、サービス領域７０７、識別および証明されたアプリケーション７０８、プロダクトバージョン７０９、および／またはプロダクトベンダ７１０を含んでもよい。
【０１０７】
各クラウドクライアント７０１のための認証ダッシュボード７００は、ユーザ７０２、複数のユーザ、役割７０３または複数の役割、および証明されたアプリケーションインスタンス７０７、７０８のためのポリシー（または、ルールセット）を定義するための複数のポリシー構成要素（または、ルール）を含んでもよい。ダッシュボード７００は、管理制御（図示せず）を含み、大局的視野のためのフィルタを作成し、複数の定義された基準に基づいて、セキュリティアラートを発行し、および／または随伴報告サービスを提供してもよい。フィルタは、例えば、ランタイムアクセス制御決定のための認証タイプ（または、認証方法）７０５によって、認証されたユーザのフィルタリングを有効にしてもよい。図示される認証ダッシュボード７００の各行は、クラウドクライアント７０１のための本システムアドミニストレータによって作成されたポリシーのステートメントを表し得る（または、それに対応する）情報フィールド（例えば、コンテンツ）を含む。
【０１０８】
ある例示的実施形態では、ある認証ドメイン（または、領域）内で認証されたユーザが、異なる標的サービスドメイン（または、領域）内にホストされたアプリケーションへのポリシーベースのアクセスがプロビジョニングされ得るように、異なるホスティング領域にわたるサービスのフェデレーションが、表示されてもよい。
【０１０９】
ある例示的実施形態では、例えば、証明ブローカー１０２は、複数のホスティング領域にわたって、アプリケーションアーチファクトおよびアプリケーションステートメントをサービス要求するように構成されてもよい。
【０１１０】
整合性および認証ダッシュボードは、特有情報フィールドを伴って、特定の配列で示されるが、他の情報フィールドおよび配列も、可能であって、これらのダッシュボードは、情報フィールドのうちの任意の１つを使用して解析され、異なる大局的視野を生成してもよいことが想定される。
【０１１１】
認証ダッシュボード（または、コンソール）を使用して、クラウドクライアントの本システムアドミニストレータによって作成されるアクセス制御ポリシーは、証明のためのコンテキスト情報が、ランタイムローカル実行コンテキストおよび内省されたセキュリティコンテキストを含み得るように、証明された起動中のアプリケーションインスタンスに関する、ランタイムコンテキストを意識した論理的属性に基づいてもよい。ルールが、ＩＰｖ４／ＩＰｖ６アドレス、ポート番号、ＭＡＣアドレス、ネットワーク識別子、サブネット、ＶＬＡＮ識別子、あるいはその組み合わせまたは変形例のうちの少なくとも１つを含む、ネットワークトポロジーベースの静的属性を要求し得る、物理的制約は、存在しない。
【０１１２】
種々の実施形態が、クラウド環境において、コンテキストを意識したポリシーを作成する観点において説明されたが、それらに限定されない。本方法は、例えば、その間のセキュアなトランザクションを維持する、任意の数のコンピュータシステム間で実施され得る。
【０１１３】
図８は、種々の例示的実施形態による、方法８００を図示する、流れ図である。
【０１１４】
図８を参照すると、本方法８００は、証明サーバ１０９を使用して、コンピューティングプラットフォーム１０１上で実行中のランタイム時のアプリケーションのための証明サービスまたはブローカー１０９を提供してもよい。ブロック８１０では、コンピューティングプラットフォーム１０１から遠隔の証明サーバ１０９は、（１）ランタイム時のアプリケーションの属性を示すランタイム実行コンテキスト１０５、および（２）アプリケーションに関するセキュリティ情報を提供するセキュリティコンテキスト１１１を受信してもよい。ブロック８２０では、証明サーバ１０９は、証明結果として、受信されたランタイム実行コンテキスト１０５および受信されたセキュリティコンテキスト１１１に基づいて、アプリケーションと関連付けられたセキュリティリスクを示す、レポート１１７を生成してもよい。ブロック８３０では、証明サーバ１０９は、アプリケーションと関連付けられた証明結果を送信してもよい。
【０１１５】
ある例示的実施形態では、ブロック８３０において、証明サーバ１０９はまた、１つ以上のアプリケーション（１０３、１０４）と関連付けられた証明結果に基づいて、協調サービス１１０（例えば、編成サービス）に自動化修正要求を送信し、機器化されたプラットフォーム１００に関する動作（例えば、機器化されたプラットフォームのイメージの再適用、スナップショット、または隔離のため）を開始してもよい。
【０１１６】
ある例示的実施形態では、証明サーバ１０９は、その後の実行コンテキスト１０５における変更に対する基準として、アプリケーションアーチファクト１０８を生成してもよく、ランタイム実行コンテキスト１０５に対するその後の変更が、生成されたアプリケーションアーチファクト１０８に基づいて、追跡されるように、生成されたアプリケーションアーチファクト１０８を送信してもよい。
【０１１７】
ある例示的実施形態では、証明結果およびアプリケーションアーチファクト１０８は、デジタル的に署名されてもよい。
【０１１８】
ある例示的実施形態では、受信されたセキュリティコンテキスト１１１は、内省的セキュリティコンテキストであってもよく、証明サーバ１０９は、受信されたランタイム実行コンテキスト１０５および受信された内省的セキュリティコンテキスト１１１に関する、１つ以上のセキュリティアサーションを生成してもよい。
【０１１９】
ある例示的実施形態では、アプリケーションとのユーザのトランザクションは、証明結果に従って、一組の認証ルールを適用することによって、制御されてもよい。これらおよび他の例示的実施形態では、アプリケーションへのユーザのネットワークアクセスは、一組の認証ルールおよび証明結果に基づいて、制御されてもよい。
【０１２０】
ある例示的実施形態では、証明結果内の信頼指標は、アプリケーションとのユーザのトランザクションに関する制限が、証明結果内の信頼指標によって示されるセキュリティリスクのレベルに基づいて、適用され得るように、異なる分類別に、セキュリティリスクのレベルを示すように提供されてもよい。
【０１２１】
ある例示的実施形態では、ユーザのトランザクションに関する制限は、ルーティング決定の適用および代替コンピュータプラットフォームへのユーザのリダイレクトを含んでもよい。
【０１２２】
図９は、種々の例示的実施形態による、方法９００を図示する、流れ図である。
【０１２３】
図９を参照すると、方法９００は、ランタイムモニタ１０２を使用して、コンピューティングプラットフォーム１０１上で実行中のランタイム時のアプリケーションのための証明サービスを提供してもよい。ブロック９１０では、コンピューティングプラットフォーム１０１におけるランタイムモニタ１０２は、ランタイム時のアプリケーションの属性を示す、ランタイム実行コンテキスト１０５を生成してもよい。ブロック９２０では、ランタイムモニタ１０２は、ランタイム実行コンテキスト１０５を証明サーバ１０９に送信してもよい。ブロック９３０では、ランタイムモニタは、ランタイム実行コンテキスト１０５へのその後の変更を追跡するために、アプリケーションアーチファクト１０７を受信してもよい。ブロック９４０では、アプリケーションアーチファクト１０７を使用する、ランタイムモニタ１０２は、変更を示す、アプリケーションの属性に応答して、更新された実行コンテキストとして、ランタイム実行コンテキスト１０５を更新および送信してもよい。
【０１２４】
ある例示的実施形態では、ランタイム実行コンテキスト１０５の生成は、ランタイムモニタ１０２が、コンピューティングプラットフォーム１０１上で起動中のアプリケーションプロセスを検査するステップと、少なくとも、ローカルランタイム実行コンテキストを含む、メタデータを生成するステップとを含んでもよい。
【０１２５】
図１０は、種々の例示的実施形態による、方法１０００を図示する、流れ図である。
【０１２６】
図１０を参照すると、方法１０００は、証明サーバ５０２を使用して、ランタイム時に、第１および第２の相互に関係付けられたアプリケーション５００および５０１のための相互証明を提供してもよい。第１のアプリケーション５００は、第１のコンピューティングプラットフォーム５３０上で起動してもよく、第２のアプリケーション５０１は、第２のコンピューティングプラットフォーム５３１上で起動してもよい。ブロック１０１０では、第１および第２のコンピューティングプラットフォーム５３０および５３１から遠隔の証明サーバ５０２は、ランタイム時の第１のアプリケーション５００の属性を示す、第１のアプリケーション５００の第１のランタイム実行コンテキスト５０６と、ランタイム時の第２のアプリケーション５０１の属性を示す、第２のアプリケーション５０１の第２のランタイム実行コンテキスト５０４とを受信してもよい。ブロック１０２０では、証明サーバ５０２は、（１）第１の証明結果として、受信された第１のランタイム実行コンテキスト５０６に基づく、第１のアプリケーション５００と関連付けられたセキュリティリスクを示す、第１のレポート５１５と、（２）第２の証明結果として、受信された第２のランタイム実行コンテキスト５０４に基づく、第２のアプリケーション５０１と関連付けられたセキュリティリスクを示す、第２のレポート５１１とを生成してもよい。ブロック１０３０では、証明サーバ５０２は、相互証明のために、第１のアプリケーション５００と関連付けられた第１の証明結果を第２のコンピューティングプラットフォーム５３１に、第２のアプリケーション５０１と関連付けられた第２の証明結果を第１のコンピューティングプラットフォーム５３０に、送信してもよい。
【０１２７】
ある例示的実施形態では、ウェブブラウザは、第１の証明結果が送信されたことを示す、アイコンをレンダリングしてもよく、アイコンのユーザ選択に応答して、ウェブブラウザを介してアクセスされたウェブアプリケーションである、第１のアプリケーションに関する証明結果をレンダリングしてもよい。
【０１２８】
ある例示的実施形態では、証明サーバ５０２は、第１のアプリケーション５００のその後の実行コンテキストにおける変更に対する基準として、第１のアプリケーションアーチファクト５０７と、第２のアプリケーション５０１のその後の実行コンテキストにおける変更に対する基準として、第２のアプリケーションアーチファクト５０５とを生成してもよく、第１および第２のランタイム実行コンテキスト５０６および５０４へのその後の変更が、それぞれ、生成された第１および第２のアプリケーションアーチファクト５０７および５０５に基づいて、第１および第２の相互に関係付けられたアプリケーション５００および５０１内で追跡され得るように、生成されたアプリケーションアーチファクト５０７および５０５を送信してもよい。
【０１２９】
ある例示的実施形態では、リクエスタ、例えば、ユーザ１１５による、第１のアプリケーション５００へのアクセスは、第１の証明結果に基づいて、かつ第２の証明結果に基づいて、独立して、制御されてもよい。
【０１３０】
図１１は、種々の例示的実施形態による、起動中のアプリケーションの証明を提供する方法を図示する、流れ図である。
【０１３１】
図１１を参照すると、方法１１００は、起動中のアプリケーション（例えば、ウェブまたは非ウェブアプリケーション）の証明を提供してもよい。ブロック１１１０では、証明サーバ４０２は、複数のサブスクライバ４１２またはユーザ３００に対して、起動中のアプリケーションのコンテキスト変更通知４０８のサブスクリプションを登録してもよい。ブロック１１２０では、証明サービスまたはサーバ４０２は、起動中のアプリケーションに関するアサーションを生成してもよい。ブロック１１３０では、証明サービスまたはサーバ４０２は、コンテキスト変更通知４０８の受信に応答して、複数のサブスクライバ４１２またはユーザ３００に、起動中のアプリケーションのアサーションを送信してもよい。アサーションは、少なくとも、起動中のアプリケーションのセキュリティリスクのレベルを示す、信頼指標を含んでもよい。
【０１３２】
図１２は、種々の例示的実施形態による、方法１２００を図示する、流れ図である。
【０１３３】
図１２を参照すると、方法１２００は、証明サーバを使用して、クライアント−サーバまたはピアツーピアトランザクションにおけるアプリケーションの相互証明を提供してもよい。ブロック１２１０では、証明サーバ５０２は、（１）クライアント−サーバトランザクションにおける、クライアント５３０と関連付けられたランタイム実行コンテキスト５０６における変更を追跡するための第１のアプリケーションアーチファクト５０７と、（２）クライアント−サーバトランザクションにおける、サーバ５３１と関連付けられた第２のアプリケーションアーチファクト５０５とを生成してもよい。ブロック１２２０では、証明サーバ５０２は、第１のアプリケーションアーチファクト５０７をクライアント５３０に、第２のアプリケーションアーチファクト５０５をサーバ５３１に、送信してもよい。ブロック１２３０では、第１および第２のアプリケーションアーチファクト５０７および５０５は、クライアント５３０およびサーバ５３１がそれぞれ、第１および第２のアプリケーションアーチファクト５０７および５０５を有し、クライアントサーバトランザクションのためのクライアント５３０およびサーバ５３１と関連付けられたランタイム実行コンテキスト５０６および５０４における変更を相互に追跡するように交換されてもよい。
【０１３４】
クライアントとサーバとの間のクライアント−サーバトランザクションが示されるが、相互証明は、ピアツーピア環境における、第１のピアと第２のピアとの間、あるいは第１、第２、および／またはさらなるピア間において、証明サーバによって、提供されてもよいことが想定される。
【０１３５】
図１３は、種々の例示的実施形態による、方法１３００を図示する、流れ図である。
【０１３６】
図１３を参照すると、方法１３００は、証明サーバを使用して、クライアント−サーバまたはピアツーピアトランザクションにおいて、アプリケーションの相互証明を提供してもよい。ブロック１３１０では、証明サーバ５０２は、第１のアプリケーションアーチファクト５０７を生成および送信してもよい。ブロック１３２０では、証明サーバ５０２は、クライアント−サーバトランザクションにおける、サーバ５３１から、証明サーバ５０２によって、クライアントサーバトランザクションにおける、クライアント５３０に送信された第１のアプリケーションアーチファクト５０７を受信および検証してもよい。ブロック１３３０では、証明サーバ５０２は、クライアント−サーバトランザクションにおいて使用される、相互に関係付けられたアプリケーション５００および５０１に関して、アプリケーションステートメント５１１および５１５を生成し、クライアント５３０およびサーバ５３１に送信してもよい。例えば、クライアント５３０およびサーバ５３１へのアプリケーションステートメント５１１および５１５の送信は、証明サーバ５０２によって、（１）クライアント−サーバトランザクションのサーバ５３１への相互に関係付けられたアプリケーション５００、５０１のクライアントアプリケーション５００についてのアプリケーションステートメント５１１と、クライアント−サーバトランザクションのクライアント５３０への相互に関係付けられたアプリケーション５００、５０１のサーバアプリケーション５０１についてのアプリケーションステートメント５１５を送信するステップを含んでもよい。
【０１３７】
ある例示的実施形態では、証明サーバ５０２は、第２のアプリケーションアーチファクト５０５を生成および送信してもよく、クライアントサーバトランザクションでは、第２のアプリケーションアーチファクト５０５をクライアント５３０から受信してもよく、クライアントサーバトランザクションでは、証明サーバ５０２によって、サーバ５３１に送信される第２のアプリケーションアーチファクト５０５を検証してもよい。
【０１３８】
ある例示的実施形態では、ランタイム時のアプリケーションのための証明サービスを提供する方法は、以下のステップのうちの１つ以上を含んでもよい：機器化された標的プラットフォームによって、標的ユーザまたはサービスプログラムをホスティングするステップと、アプリケーション証明サービスによって、（１）グローバル一意であって、不透明、かつ時間依存アプリケーションアーチファクト、および（２）検査ベースのランタイムローカル実行コンテキストおよび内省ベースのセキュリティコンテキストに関する複数のアサーションを含む、少なくとも１つのアプリケーションステートメントを生成するステップと、ランタイムモニタによって、機器化された標的プラットフォーム上で起動中のアプリケーションプロセスを検査するステップと、ランタイムモニタによって、少なくとも、ランタイムローカル実行コンテキストを含む、メタデータを生成するステップと、識別プロバイダによって、ユーザをウェブアプリケーションに対して認証するステップと、ウェブサービス要求に基づいて、ウェブアプリケーションのローカル実行および内省されたセキュリティコンテキストの証明を提供するステップと、ネットワークアクセスエンフォーサによって、サブスクリプションベースのアプリケーション証明サービスを使用して、標的アプリケーションへの認証されたユーザのアクセスを制御するステップと、および／または協調サービスによって、機器化された標的プラットフォーム上で起動する標的アプリケーションのための、内省されたベースのセキュリティコンテキストを提供するステップ。
【０１３９】
ある例示的実施形態では、起動中のウェブアプリケーションまたはウェブサーブレットの真正性の証明を提供するための方法は、以下のステップのうちの１つ以上を含んでもよい：起動中のウェブアプリケーションまたはサーブレットインスタンスのためのアプリケーションアーチファクトを要求するステップと、ウェブサーバと証明サーバとの間にセキュアなチャネルを確立するステップと、ウェブアプリケーションまたはサーブレットインスタンスの実行コンテキストに対応する、少なくとも１つのハッシュファイルダイジェストを生成するステップと、ウェブアプリケーションまたはウェブサーブレットインスタンスの少なくとも１つの要素または実行コンテキストに対応する、少なくとも１つのファイル属性を決定するステップと、アプリケーションレポートを識別プロバイダに送信するステップと、受信されたセキュリティコンテキストおよび受信されたローカル実行コンテキストに基づいて、アサーションを生成するステップと、レポート内において、信頼指標を識別プロバイダに伝送するステップと、および／またはウェブブラウザによってレンダリングするためのデジタルアイコンとして、起動中のウェブアプリケーションまたはウェブサーブレットの証明を提供するステップ。
【０１４０】
ある例示的実施形態では、証明は、（１）ユーザとの確立された接続において、任意のデータ交換を着手するステップ、および／または（２）ユーザとのネットワーク接続を確立するステップに先立って、提供されてもよい。
【０１４１】
ある例示的実施形態では、アクセスされるべきウェブアプリケーションに関する証明情報をレンダリングするステップは、ユーザ入力に応答してもよい。
【０１４２】
ある例示的実施形態では、自己管理およびオンプレミス上、またはアウトソースサービスプロバイダ管理インフラストラクチャ上にホストされた起動中のアプリケーションを継続的にモニタリングするためのシステムは、以下のうちの１つ以上を含んでもよい：標的ユーザまたはサービスプログラムをホストするための機器化された標的プラットフォームと、検査ベースのランタイムローカル実行コンテキストおよび内省ベースのセキュリティコンテキストに関する複数のアサーションを含む、グローバル一意であって、不透明、かつ時間依存アプリケーションアーチファクトおよびアプリケーションステートメントを生成するためのアプリケーション証明サービスと、機器化された標的プラットフォーム上の起動中のアプリケーションプロセスを発見、識別、および検査し、少なくとも、ランタイムローカル実行コンテキストを含むメタデータを生成するためのランタイムモニタと、機器化された標的プラットフォーム上で起動する標的アプリケーションのための内省されたセキュリティコンテキストを提供するための協調サービスと、および／または（１）動的アサーションを証明サービスのメタデータリポジトリから要求および受信するためと（動的アサーションは、機器化された標的プラットフォーム上で起動中のアプリケーションインスタンスのローカル実行コンテキストおよび内省されたセキュリティコンテキストに関する）、（２）動的アサーションをシステムアドミニストレータに継続的に表示し、動的アサーションおよび所定の基準に基づいて、アラートをプロビジョニングおよび発報するためのグラフィカルユーザインターフェース。
【０１４３】
ある例示的実施形態では、ネットワークアクセスエンフォーサは、動的アプリケーションステートメントを証明サービスからサブスクライブおよび受信し、コンテキストアサーションを分析して、認証されたユーザが、証明されたアプリケーションインスタンスへのネットワークアクセスを許可または拒否されるか否かを判断してもよい。
【０１４４】
ある例示的実施形態では、グラフィカルユーザインターフェースは、クライアント特有ダッシュボードまたはポータル上に、機器化された標的プラットフォーム上で起動するアプリケーションを表示してもよく、各関連付けられたアプリケーション実行コンテキストに対して、以下のうちの少なくとも１つを提示してもよい：（１）サービスホスト名、（２）サービス領域、（３）サービスプリンシパル名、（４）プロダクトバージョン、（５）プロダクトベンダ、（６）１つ以上の分類ベースの信頼指標、または（７）アクティブなネットワークサービスポート。
【０１４５】
ある例示的実施形態では、識別プロバイダは、証明サーバからの動的アプリケーションステートメントにクエリを行い、コンテキストアサーションを分析して、認証されたユーザが、確立された接続において、証明されたアプリケーションインスタンスとのデータ交換をトランザクションするために認証を許可または拒否されるか否かを決定してもよい。
【０１４６】
ある例示的実施形態では、ネットワークアクセスエンフォーサは、証明サービスからのサブスクリプションに基づいて、受信された動的アプリケーションステートメント内に含まれる分類ベースの信頼指標を分析して、認証されたユーザが、証明されたアプリケーションインスタンスへのネットワークアクセスを許可または拒否されるか否か決定してもよい。
【０１４７】
ある例示的実施形態では、識別プロバイダは、証明サービスからのサブスクリプションに基づいて、受信された動的アプリケーションステートメント内に含まれる分類ベースの信頼指標を分析し、認証されたユーザが、確立された接続において、証明されたアプリケーションインスタンスとのデータ交換をトランザクションするための認証を許可または拒否されるか否かを決定してもよい。
【０１４８】
ある例示的実施形態では、認証されたユーザと、自己管理およびオンプレミス上、またはアウトソースサービスプロバイダ管理インフラストラクチャ上にホストされた証明された起動中のアプリケーションとの間のネットワーク接続またはデータ交換トランザクションのためのコンテキストを意識したポリシーを作成するための方法は、以下のステップのうちの１つ以上を含んでもよい：機器化された標的プラットフォームによって、標的ユーザまたはサービスプログラムをホスティングするステップと、アプリケーション証明サービスによって、検査ベースのランタイムローカル実行コンテキストおよび内省ベースのセキュリティコンテキストに関する複数のアサーションから成る、グローバル一意であって、不透明、かつ時間依存アプリケーションアーチファクトおよびアプリケーションステートメントを生成するステップと、ランタイムモニタによって、機器化された標的プラットフォーム上で起動中のアプリケーションプロセスを発見、識別、および検査するステップと、ランタイムモニタによって、少なくとも、ランタイムローカル実行コンテキストを含む、メタデータを生成するステップと、識別プロバイダによって、ウェブアプリケーションのローカル実行および内省されたセキュリティコンテキストの証明を提供するためのウェブサービス要求に基づいて、ユーザをウェブアプリケーションに認証するステップと、ネットワークアクセスエンフォーサによって、サブスクリプションに基づく、アプリケーション証明サービスを使用して、標的アプリケーションへの認証されたユーザのアクセスを制御するステップと、協調サービスによって、機器化された標的プラットフォーム上で起動する標的アプリケーションのための内省されたセキュリティコンテキストを提供するステップと、および／またはグラフィカルユーザインターフェースを使用して、ユーザディレクトリまたはデータベースにおいて区別された名称によってアノテートされたユーザ、および登録されたグローバル一意セキュリティプリンシパル名によってアノテートされたアプリケーションに対するアクセス制御ルールを作成するステップ。
【０１４９】
ある例示的実施形態では、動的分類ベースの信頼指標に基づいて、認証のための容認可能閾値を既定する、コンテキストを意識したアクセス制御ポリシーが、作成されてもよい。
【０１５０】
例示的実施形態は、コンピューティングデバイスまたは機器化されたプラットフォームの観点から説明されたが、図１４に図示されるコンピュータシステム１４００等のマイクロプロセッサ／汎用コンピュータ上のソフトウェア内に実装されてもよいことが想定される。種々の実施形態では、種々の構成要素の機能のうちの１つ以上は、図１４を参照して以下に説明される、コンピュータシステム１４００等のコンピューティングデバイスを制御する、ソフトウェア内に実装されてもよい。
【０１５１】
図１−１３に示される本発明の側面、あるいはその任意の部分または機能は、ハードウェア、ソフトウェアモジュール、ファームウェア、その上に記憶された命令を有する非一過性コンピュータ可読媒体、またはそれらの組み合わせを使用して、実装されてもよく、１つ以上のコンピュータシステムまたは他の処理システム内に実装されてもよい。
【０１５２】
図１４は、本発明の実施形態またはその一部が、コンピュータ可読コードとして実装され得る、例示的コンピュータシステム１４００を図示する。例えば、図１−５のネットワークシステム１５０、２５０、３４０、４５０、および５５０は、ハードウェア、ソフトウェア、ファームウェア、その上に記憶された命令を有する非一過性コンピュータ可読媒体、またはそれらの組み合わせを使用して、コンピュータシステム１４００内に実装することができ、１つ以上のコンピュータシステムまたは他の処理システム内に実装されてもよい。ハードウェア、ソフトウェア、またはそのような任意の組み合わせは、図１−５のネットワークシステムを実装するために使用される、モジュールおよび構成要素のいずれかを具現化してもよい。
【０１５３】
プログラマブル論理が、使用される場合、そのような論理は、市販の処理プラットフォームまたは特殊目的デバイス上で実行されてもよい。当業者は、開示される主題の実施形態が、マルチコアマルチプロセッサシステム、ミニコンピュータ、メインフレームコンピュータ、分散機能とともにリンクまたはクラスタ化されたコンピュータ、ならびに事実上、任意のデバイス内に埋め込まれ得る、パーベイシブまたは小型コンピュータを含む、種々のコンピュータシステム構成によって実践することができることを理解し得る。
【０１５４】
例えば、少なくとも１つのプロセッサデバイスおよびメモリが、前述の説明される実施形態を実装するために使用されてもよい。プロセッサデバイスは、単一プロセッサ、複数のプロセッサ、またはそれらの組み合わせであってもよい。プロセッサデバイスは、１つ以上のプロセッサ「コア」を有してもよい。
【０１５５】
本発明の種々の実施形態は、本例示的コンピュータシステム１４００の観点から説明される。本説明を熟読後、他のコンピュータシステムおよび／またはコンピュータアーキテクチャを使用して、本発明を実装するための方法が、当業者に明白となるであろう。動作は、連続プロセスとして説明され得るが、動作のうちのいくつかは、実際は、並行して、同時に、および／または分散環境において、かつ単一またはマルチプロセッサ機械によってアクセスするために、ローカルまたは遠隔に記憶されたプログラムコードによって、行われてもよい。加えて、いくつかの実施形態では、動作の順序は、開示される主題の精神から逸脱することなく、並べ替えられてもよい。
【０１５６】
プロセッサデバイス１４０４は、特殊目的または汎用プロセッサデバイスであってもよい。当業者によって理解されるように、プロセッサデバイス１４０４はまた、マルチコア／マルチプロセッサシステム内の単一プロセッサであってもよく、そのようなシステムは、単独で動作する、あるいはコンピューティングデバイスのクラスタとして、クラスタまたはサーバファーム内で動作する。プロセッサデバイス１４０４は、例えば、バス、メッセージキュー、ネットワーク、またはマルチコアメッセージ受渡し方式で、通信インフラストラクチャ１４０６に接続されてもよい。
【０１５７】
コンピュータシステム１４００はまた、メインメモリ１４０８、例えば、ランダムアクセスメモリ（ＲＡＭ）を含み、また、二次メモリ１４１０を含んでもよい。二次メモリ１４１０は、例えば、ハードディスクドライブ１４１２、リムーバブル記憶ドライブ１４１４を含んでもよい。リムーバブル記憶ドライブ１４１４は、フロッピー（登録商標）ディスクドライブ、磁気テープドライブ、光ディスクドライブ、フラッシュメモリ、または同等物を備えてもよい。
【０１５８】
リムーバブル記憶ドライブ１４１４は、公知の様式において、リムーバブル記憶ユニット１４１８から読み取り、および／またはそこに書き込む。リムーバブル記憶ユニット１４１８は、リムーバブル記憶ドライブ１４１４によって読み取られ、そこに書き込まれる、フロッピー（登録商標）ディスク、磁気テープ、光ディスク等を備えてもよい。当業者によって理解されるように、リムーバブル記憶ユニット１４１８は、コンピュータソフトウェアおよび／またはデータが中に記憶されている非一過性コンピュータ使用可能記憶媒体を含む。
【０１５９】
代替実装では、二次メモリ１４１０は、コンピュータプログラムまたは他の命令が、コンピュータシステム１４００にロードされることを可能にするための他の類似手段を含んでもよい。そのような手段は、例えば、リムーバブル記憶ユニット１４２２およびインターフェース１４２０を含んでもよい。そのような手段の実施例は、プログラムカートリッジおよびカートリッジインターフェース（ビデオゲームデバイスに見出されるもの等）、リムーバブルメモリチップ（ＥＰＲＯＭ、またはＰＲＯＭ等）および関連付けられたソケット、ならびにソフトウェアおよびデータが、リムーバブル記憶ユニット１４２２からコンピュータシステム１４００に転送されることを可能にする、他のリムーバブル記憶ユニット１４２２およびインターフェース１４２０を含んでもよい。
【０１６０】
コンピュータシステム１４００はまた、通信インターフェース１４２４を含んでもよい。通信インターフェース１４２４は、ソフトウェアおよびデータが、コンピュータシステム１４００と外部デバイスとの間で転送されることを可能にする。通信インターフェース１４２４は、モデム、ネットワークインターフェース（Ｅｔｈｅｒｎｅｔ（登録商標）カード等）、通信ポート、ＰＣＭＣＩＡスロットおよびカード、または同等物を含んでもよい。通信インターフェース１４２４を介して転送されるソフトウェアおよびデータは、通信インターフェース１４２４によって受信可能な電子、電磁、光学、または他の信号であり得る、信号の形態であってもよい。これらの信号は、通信パス１４２６を介して、通信インターフェース１４２４に提供されてもよい。通信パス１４２６は、信号を搬送し、ワイヤまたはケーブル、光ファイバ、電話回線、携帯電話リンク、ＲＦリンク、あるいは他の通信チャネルを使用して実装されてもよい。
【０１６１】
本書では、用語「コンピュータプログラム媒体」、「非一過性コンピュータ可読媒体」、および「コンピュータ使用可能媒体」は、概して、リムーバブル記憶ユニット１４１８、リムーバブル記憶ユニット１４２２、およびハードディスクドライブ１４１２内にインストールされたハードディスク等の媒体を指すために使用される。通信パス１４２６を経由して搬送された信号はまた、本明細書に説明される論理を具現化することができる。コンピュータプログラム媒体およびコンピュータ使用可能媒体はまた、メモリ半導体（例えば、ＤＲＡＭ等）であり得る、メインメモリ１４０８および二次メモリ１４１０等のメモリを指し得る。これらのコンピュータプログラムプロダクトは、ソフトウェアをコンピュータシステム１４００に提供するための手段である。
【０１６２】
コンピュータプログラム（コンピュータ制御論理とも呼ばれる）は、メインメモリ１４０８および／または二次メモリ１４１０内に記憶される。コンピュータプログラムはまた、通信インターフェース１４２４を介して、受信されてもよい。そのようなコンピュータプログラムは、実行されると、本明細書に論じられるように、本発明を実装するために、コンピュータシステム１４００を有効にする。特に、コンピュータプログラムは、実行されると、前述の図８−１３の流れ図８００、９００、１０００、１１００、１２００、および１３００によって図示される方法における段階等、本発明のプロセスを実装するために、プロセッサデバイス１４０４を有効にする。故に、そのようなコンピュータプログラムは、コンピュータシステム１４００のコントローラを表す。本発明が、ソフトウェアを使用して実装される場合、ソフトウェアは、コンピュータプログラムプロダクト内に記憶され、リムーバブル記憶ドライブ１４１４、インターフェース１４２０、およびハードディスクドライブ１４１２、または通信インターフェース１４２４を使用して、コンピュータシステム１４００にロードされてもよい。
【０１６３】
本発明の実施形態はまた、任意のコンピュータ使用可能媒体上に記憶されたソフトウェアを備える、コンピュータプログラムプロダクトを対象としてもよい。そのようなソフトウェアは、１つ以上のデータ処理デバイス内で実行されると、データ処理デバイスを本明細書に説明されるように動作させる。本発明の実施形態は、任意のコンピュータ使用可能または可読媒体を採用する。コンピュータ使用可能媒体の実施例として、一次記憶デバイス（例えば、任意のタイプのランダムアクセスメモリ）、二次記憶装置デバイス（例えば、ハードドライブ、フロッピー（登録商標）ディスク、ＣＤＲＯＭＳ、ＺＩＰディスク、テープ、磁気記憶デバイス、および光学記憶デバイス、ＭＥＭＳ、ナノテクノロジー記憶デバイス等）、および通信媒体（例えば、有線および無線通信ネットワーク、ローカルエリアネットワーク、広域ネットワーク、イントラネット等）が挙げられるが、それらに限定されない。
【０１６４】
概要および要約セクションを除く、発明を実施するための形態セクションは、請求項を解釈するために使用されることを意図することを理解されたい。概要および要約セクションは、発明者によって想起されるような、全部ではないが、１つ以上の本発明の例示的実施形態を記載しており、したがって、本発明および添付の請求項をいかようにも限定することを意図するものではない。
【０１６５】
本発明の実施形態は、規定された機能の実装およびその関係を図示する、機能的構築ブロックを用いて前述されている。これらの機能的構築ブロックの境界は、説明の便宜上、本明細書では、随意に画定されている。代替境界も、規定された機能およびその関係が、適切に果たされる限り、画定されることができる。
【０１６６】
具体的実施形態の前述の説明は、他者が、本発明の一般的概念から逸脱することなく、過度の実験を伴うことなく、当該技術分野内の知識を適用することによって、種々のアプリケーションのために、そのような具体的実施形態を容易に修正および／または適応することができるように、本発明の一般的性質を完全に明らかにするであろう。したがって、そのような適応および修正は、本明細書に提示される教示および手引きに基づく、開示される実施形態の均等物の意味および範囲内であることが意図される。本明細書の語句または専門用語は、本明細書の専門用語または語句が、教示および手引きに照らして、当業者によって解釈されるように、限定ではなく、説明目的のためのものであることを理解されたい。
【０１６７】
本発明は、具体的実施形態を参照して、図示および本明細書に説明されるが、本発明は、示される詳細に限定されることを意図するものではない。むしろ、種々の修正が、請求項の均等物の適用範囲および活動範囲内において、本発明から逸脱することなく、その詳細に行われてもよい。
【図１】
0005961638.tif 000002
【図２】
0005961638.tif 000003
【図３】
0005961638.tif 000004
【図４】
0005961638.tif 000005
【図５】
0005961638.tif 000006
【図６】
0005961638.tif 000007
【図７】
0005961638.tif 000008
【図８】
0005961638.tif 000009
【図９】
0005961638.tif 000010
【図１０】
0005961638.tif 000011
【図１１】
0005961638.tif 000012
【図１２】
0005961638.tif 000013
【図１３】
0005961638.tif 000014
【図１４】
0005961638.tif 000015