説明

分散されたアプリケーション情報配信のセキュリティ保護

例示的な実施形態では、データ構造は、安全なアプリケーション命令プロトコルに適合する。データ構造は、第1のアプリケーションレベル要求および第2のアプリケーションレベル要求を含む。第1のアプリケーションレベル要求は、リクエスタからのアプリケーション固有の命令、およびリクエスタからのそのアプリケーション固有の命令に対するリクエスタ署名を有する。第2のアプリケーションレベル要求は、中間体からのアプリケーション固有の命令、および中間体からの少なくともアプリケーション固有の命令に対する中間体署名を有する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、分散されたアプリケーション情報配信のセキュリティ保護に関する。
【背景技術】
【0002】
最近の分散コンピューティングシステムでは、1群のユーザによる1つまたは複数の共用された計算資源の使用を最適化することがますます重要になってきている。この現象の一例が、グリッドコンピューティングシステムである。典型的なグリッドコンピューティング環境内では、いくつかの計算装置へのアクセスは、1組のジョブ管理システムにより制御される。ジョブ管理システムは、サブミットされたジョブに対する計算資源の割振りを決定し、これらのジョブのスケジューリングを決定するが、課金アカウント、セキュリティ資格証明書、並列に実行されるジョブ活動のロケーションなど、ジョブの実行状況の諸側面を決定することも時々あり得る。ジョブ管理システム(複数可)の目的は、グリッド環境のユーザからジョブ要求を受け取ること、および計算資源の全体の使用を最適化することである。コンピュータ資源は、スーパーコンピュータ、コンピューティングクラスタ、アプリケーションサーバ、デスクトップワークステーションなどを含むことができる。
【0003】
グリッドシステムがその一例である分散コンピューティングシステムは、多数のユーザおよびコンピュータをサポートする、アプリケーションおよび資源管理システムの階層を含むことができる。例えば、ユーザは、集中化したジョブマネジャに、アプリケーションを動作させるように依頼することができる。中央マネジャは、次に、計算クラスタの集合体を担当する補助的なジョブマネジャにアプリケーションを動作させるように依頼することができる。補助的なマネジャは、そのアプリケーションに最も適切な特定のコンピューティング資源を決定し、次いで、その計算クラスタのジョブマネジャにユーザのアプリケーションを動作させるように要求する。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】http://www.w3.org/2001/04/xmlenc#aesl28-cbc
【非特許文献2】http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgflp
【非特許文献3】http://www.w3.org/2001/04/xmlenc#kw-aes128
【発明の概要】
【発明が解決しようとする課題】
【0005】
このような階層的に管理された分散システムでは、ユーザのアプリケーション、および任意の補助的なマネジャを含む割り当てられた計算クラスタを担当する一連のジョブマネジャは、分散環境の全体の状態に基づいて動的に決定することができる。ジョブ要求がサブミットされた時点で、ユーザは、そのアプリケーションが最終的にどこで実行されるかの細部を知らない可能性があるので、アプリケーションの実行時に必要ないくつかの情報は、ジョブ要求を処理する1つまたは複数のジョブマネジャにより提供されなくてはならない、または提供されるのが適切である可能性が高い。既存のシステムは、このような情報のセキュリティに対して効率的で十分な保護を提供することに失敗している。
【課題を解決するための手段】
【0006】
例示的な実施形態では、データ構造は、安全なアプリケーション命令プロトコルに適合する。データ構造は、第1のアプリケーションレベル要求および第2のアプリケーションレベル要求を含む。第1のアプリケーションレベル要求は、リクエスタからのアプリケーション固有の命令、およびそのリクエスタからのアプリケーション固有の命令に対するリクエスタ署名を有する。第2のアプリケーションレベル要求は、中間体からのアプリケーション固有の命令、およびその中間体からの少なくともアプリケーション固有の命令に対する中間体署名を有する。
【0007】
この要約は、以下の詳細な説明でさらに説明する諸概念の選択を、簡略化した形で導入するために提供されている。この要約は、特許請求される保護対象の重要な特徴または本質的な特徴を特定するようには意図されておらず、特許請求される保護対象の範囲を決定する一助として使用されることも意図されていない。さらに、他の方法、システム、スキーム、装置、デバイス、媒体、手順、API、構成などの実施形態が本明細書で説明される。
【0008】
同様のおよび/または対応する態様、特徴、およびコンポーネントを参照するために、諸図面を通して同じ番号が使用される。
【図面の簡単な説明】
【0009】
【図1】分散されたアプリケーション情報配信のセキュリティ保護を実施できる例示的な分散コンピューティング環境のブロック図である。
【図2】送信されるアプリケーションレベル要求に対して、分散されたアプリケーション情報配信のセキュリティ保護が実施され得る一般的な例のコンピューティング環境を示すブロック図である。
【図3A】図2の例示的なコンピューティング環境で示されるものなど、例示的なアプリケーションレベル要求を示すブロック図である。
【図3B】図2の例示的なコンピューティング環境で示されるものなど、例示的なアプリケーションレベル要求を示すブロック図である。
【図3C】図2の例示的なコンピューティング環境で示されるものなど、例示的なアプリケーションレベル要求を示すブロック図である。
【図4】データにアクセスするための権利の委任を含む例示的なアプリケーションレベル要求を示すブロック図である。
【図5】図2の例示的なコンピューティング環境で示されるものなど、アプリケーションレベル通信の参加者上で実行することができる例示的なアプリケーションを示すブロック図である。
【図6】アプリケーションレベルで要求情報を安全に通信するための方法の例を示す流れ図である。
【図7】分散されたアプリケーション情報配信のセキュリティ保護を実施するために使用され得る例示的な装置のブロック図である。
【発明を実施するための形態】
【0010】
分散されたアプリケーション情報配信のセキュリティ保護への導入
本明細書で前述したように、いくつかの分散コンピューティングシステムは、多数のユーザおよびコンピューティング装置をサポートできるアプリケーションおよび資源管理システムの階層を含む。例のために過ぎないが、ユーザは、集中化したマネジャに、アプリケーションを動作させるように依頼することができる。中央マネジャは、次に、コンピューティング資源クラスタの集合体を担当する補助的なマネジャにアプリケーションを動作させるように依頼することができる。補助的なマネジャは、そのアプリケーションに最も適切な特定のコンピューティング資源を決定し、次いで、その特定のコンピューティング資源のマネジャに、そのアプリケーションを動作させるように要求する。
【0011】
このようなシステムでは、アプリケーションを動作させる必要のあるユーザと、アプリケーションを実際に動作させるコンピューティング資源との間に、通常、複数のマネジャタイプの中間体がある。前述のジョブマネジャは、このような環境中に存在するマネジャの1つのタイプである。存在することができ、ユーザのジョブ要求の処理を助けることのできる他のタイプの処理マネジャは、これだけに限らないが、メッセージ経路指定マネジャ、監査マネジャなどを含む。これらのマネジャは、総称的に、要求を処理する中間体と呼ぶことができる。要求を処理する中間体は、スケジュールされている途中の、または実行途中の他のアプリケーションに依存しているため、概して、アプリオリに決定することができない。これらの他のアプリケーションは、通常、いずれの単一の要求ユーザにも知られていない。
【0012】
既存の手法を用いる場合、アプリケーションの実行サイトで、複数のエンティティにより行われてきた可能性のある、アプリケーション情報(例えば、アプリケーション固有の命令)を認証し、および/またはその完全性を保証することは困難である。不適正な命令を使用することは、誤った課金、データのセキュリティ違反、誤った計算、サービスの拒否などの結果となるおそれがあるため、このようなアプリケーション情報のセキュリティは非常に重要になり得る。
【0013】
既存の手法は、概して、要求を行うエンティティが、要求の完全性を保証し、その要求を最終的に処理することになるエンティティにセキュリティで保護されたメッセージを送ることによって認証を実施できることを想定している。これらの既存の手法は、元のリクエスタ、および各中間のプロセッサが、最終的に誰がその要求を処理することになるかを知ることができないため、前述の分散コンピューティング環境中に存在する問題を完全には対処していない。したがって、それらは、従来の手法を用いてその要求を最終的に処理することになるエンティティに対して、セキュリティで保護されたメッセージを適正に形成することができない。それに代えて、その要求は、1組の独立したメッセージを用いて処理され通信されるが、メッセージのセキュリティは、ポイントツーポイントベースでコンテンツを保護するに過ぎない。
【0014】
図1は、分散されたアプリケーション情報配信のセキュリティ保護が実施され得る、例示的な分散コンピューティング環境100のブロック図である。図示のように、分散コンピューティング環境100は、「u」個のユーザ102、「p」個の処理マネジャ104、「c」個のコンピューティング資源106、要求108、およびデータ110を含む。分散コンピューティング環境100は、ジョブ活動が、少なくとも1つのコンピューティング資源106上でデータ110を用いて実施され得るように、ユーザ102からの要求108が、1つまたは複数の処理マネジャ104を介して通信される環境を表している。アプリケーションレベル通信の参加者または分散コンピューティング環境100のエンティティは、ユーザ102、処理マネジャ104、およびコンピューティング資源106を含む。
【0015】
より具体的には、分散コンピューティング環境100は、ユーザ102(1)、ユーザ102(2)、ユーザ102(3)・・・ユーザ102(u)を含み、「u」は何らかの正の整数である。それはまた、処理マネジャ104(1)、処理マネジャ104(2)、処理マネジャ104(3)、処理マネジャ104(4)・・・処理マネジャ104(p)を含み、「p」は何らかの正の整数である。さらに、分散コンピューティング環境100は、コンピューティング資源106(1)、コンピューティング資源106(2)、コンピューティング資源106(3)・・・コンピューティング資源106(c)を含み、「c」は何らかの正の整数である。
【0016】
前述の実施形態では、各ユーザ102は、何らかのタスクがデータ110に対して実施されるように依頼するタスク要求108を送信することができる。1つのデータエレメント110だけが図示されているが、各ユーザ102は、それ自体の各データ、共用データ、複数単位のデータなどと関連付けることができる。処理マネジャ104の階層に関しては、要求されたタスクを実施するようにコンピューティング資源106に直接依頼できるまで、要求108は、1つの処理マネジャ104から他の処理マネジャ104へと転送される。各コンピューティング資源106は、単一のコンピューティング装置、コンピューティング装置のクラスタ、コンピューティング装置のクラスタの一部などとすることができる。
【0017】
例示的なタスク要求が、分散コンピューティング環境100の一部として示されている。この例示的なタスク要求では、ユーザ102(2)は、データ110に対して動作される、または実行される必要のあるアプリケーションを有する。ユーザ102(2)は、1つの参加エンティティから次のエンティティへと伝達されるメッセージとして実現される要求108を作成する。要求108は、ユーザ102(2)から処理マネジャ104(1)に送信される。処理マネジャ104(1)は、要求108を処理マネジャ104(2)に転送する。処理マネジャ104(2)は、要求108を処理マネジャ104(3)に転送する。処理マネジャ104(3)は、要求108をコンピューティング資源106(2)に最終的に転送し、それが、要求されたタスクを実際に実施する。要求108は、その転送に先立って各処理マネジャ104により修正され得る。
【0018】
従来の見方からすると、図1に示すコンピュータシステム環境のタイプは、2つの潜在的なセキュリティ問題を生ずる。第1に、各中間のマネジャ(例えば、処理マネジャ104)および最終的な計算装置(複数可)(例えば、コンピューティング資源106)は、仕事をそのためにすることになる特定のユーザ(例えば、ユーザ102)および中間マネジャを規定するアクセス制御ポリシーを有する可能性が高い。ユーザ、マネジャ、および計算装置が、既存の大規模なコンピューティンググリッドおよび複数の会社を含む協働的ビジネスシステムにおいて典型的な制限されたクロスドメインの信頼関係を有する別々の管理ドメイン中に存在する場合、特にそれは正しい。したがって、中間体、または最終の計算装置に対する各要求(例えば、要求108)は、要求するユーザにより、またアプリケーション要求を処理した前の各中間体により提供される命令に関する認証情報を提供することが可能でなくてはならない。
【0019】
第2に、アプリケーションを動作させる計算装置(複数可)は、通常、ユーザにより特定されたデータ資源(例えば、データ110)へのアクセスを必要とする。このデータを保持するリポジトリは、そのデータに対して操作することのできる者を制限するアクセス制御ポリシーを有する可能性が高い。したがって、ユーザおよび/または処理する中間体は、データリポジトリが、データへのアクセスの許可を有効であるとして受け入れるためのセキュリティ資格証明書を有する実行アプリケーション(例えば、コンピューティング資源106で)を提供する何らかの機構を必要とする。
【0020】
これらの問題に対する既存の手法は、どのようにすれば、一連の動的に決定される中間のプロセッサにより徐々に増えて生成される1組のアプリケーション命令を、アプリケーション命令の各組の完全性を検証し、また各中間のプロセッサの認証を実施できるように通信できるかについて対処することに失敗しているので不十分である。したがって、このようなコンピューティングシステム全体のセキュリティがしばしば低下することになり、それはまた、有用性に悪影響を与えるおそれもある。
【0021】
第1のセキュリティ問題に関しては、既存のプロトコルは、参加エンティティの増分的な発見を伴うこの多段処理タイプを扱うように設計されていない。多くのプロトコルは、ポイントツーポイント用途(例えば、IPsec、SSL、DCE/RPCなど)のために設計されている。これらのポイントツーポイントプロトコルは、2つの知られたエンドポイント間で(すなわち、宛先エンドポイントは、メッセージの送信に先立って知られている必要がある)セキュリティで保護されたメッセージを送ることを可能にするが、2つのエンドポイント間のいずれの中間体も、不透明な2進データを見るだけである。前述した通信参加者間のメッセージフローをセキュリティで保護するために、このようなポイントツーポイントのプロトコルを使用することができるが、残念ながら、第1の参加者における着信要求に対するセキュリティと、次の参加者に向けた送出される要求に対するセキュリティとの間で定義された関係は何もない。
【0022】
いくつかの他のプロトコル(例えば、SOAP Message Security)は、知られたエンドポイントへのメッセージのセキュリティを処理するように設計されているが、中間のプロセッサに対するセキュリティは、別々に対処する。しかし、これらのプロトコルは、なお、そのエンドポイントが、アプリオリに知られていること、および経路指定の挙動により、動的に発見され得るのは中間体だけであることを仮定している。その結果、既存のシステムは、知られたエンドポイントで、メッセージの認証および完全性の保護が使用されるように意図されているポイントツーポイントのメッセージセキュリティを使用する傾向がある。
【0023】
既存のプロトコルを用いた安全なメッセージに依存することは、処理する中間体および計算装置のすべてが、同じ管理ドメイン中にある場合、またはその他の形で完全に互いに信頼する場合に、前述の分散コンピューティング環境に対して適切に実施することが可能になる。このような場合、このようなプロトコルが、推移的な信頼モデルの存在を仮定する(すなわち、そのプロトコルは、要求の受信者が送信者を信頼し、また含意(implication)によりその要求を送信者に送る者は誰でも信頼する、信頼モデルの存在を仮定する)ことは許容できる。しかし、完全に信頼することを正当化できない場合、この仮定は、敵意のある中間体が、実行すべきアプリケーションに影響を与える成功裡の間接的攻撃を開始させるおそれがある。さらに、完全に信頼するシナリオは、要求送信者の識別と、要求送信者がその要求中に符号化した情報に基づいて、粗粒度のアクセス制御が可能になるだけである。すなわち、いずれのアクセス制御も、最終的には、セキュリティで保護された要求メッセージを送ったエンティティの信頼に基づくだけである。
【0024】
第2のセキュリティ問題に関しては、権利の委任を可能にする既存の手法は、同様な限界を有する。例えば、Condorなどのいくつかのグリッドジョブ管理システムは、マッチメーキング(matchmaking)モードで動作する。Condorマネジャ(複数可)は、アプリケーションを動作させるための資源(複数可)を突き止め、これらの資源を予約し、次いで、要求発信者に、どの資源を使用してよいかを通知する。この予約手法は、リクエスタが、データ委任のセキュリティ資格証明書を、要求発信者のアプリケーションを動作させる実際の計算装置に渡す必要があるだけなので、委任の観点から許容することができる。
【0025】
しかし、この予約手法は、いくつかの負の側面を有する。第1に、要求発信者は、処理マネジャが適切な計算装置を発見するのにどれくらい時間がかかるかを知らないため、利用可能な状態に留まっている必要がある。おそらく、計算装置は、実際のアプリケーション、ならびにその関連する命令および委任の資格証明書が、合理的な時間量中に提供されない場合、資源の予約を取り消すことになる。第2に、リクエスタ発信者は、その計算装置に対して直接的なアクセスを必要とするが、これは、いくつかの複雑なシステムでは、ネットワークトポロジ、ファイアウォールなどにより実際的ではなく、可能でさえないこともあり得る。第3に、マネジャは、おそらく、どのような委任が必要であるかに気付くことがなく、したがって、適切な計算装置を選択するために、委任情報を使用することができない。
【0026】
いくつかの他の実施形態では、(例えば、MyProxyサーバを介して)要求発信者を代理する(proxy)ために使用され得る名前−パスワード資格証明書が、セキュリティ資格証明書へのアクセスを許可するために使用される。これらの名前−パスワード資格証明書は、通常、データとして中間マネジャに渡され、最終的に計算装置に渡される。それらは、暗号化されたメッセージで搬送することができるが、各中間マネジャおよび各計算装置では、平文データとして示される。その資格証明書にアクセスでき、次いでそれらを送った中間マネジャの完全な組を追跡することを可能にするプロトコルサポートは存在しない。このような追跡情報は、例えば、誰がセキュリティ資格証明書または他の情報にアクセスできる可能性があったかを監査するために、また何らかの予測しないアクセスが生じた場合に法的な調査を行うために重要なものとなり得る。要するに、既存の手法を用いると、要求発信者とアプリケーションを実際に動作させる最終的なコンピューティング資源との間で、アプリケーション固有の情報のセキュリティを保護するための適切な機構を提供することが困難である。
【0027】
対照的に、本明細書で説明するいくつかの実施形態を用いると、通信エンティティの参加者102、104、および/または106(図1による)に沿った送信経路は、安全なアプリケーション命令プロトコルを用いてセキュリティで保護され、および/または追跡可能にすることができる。例えば、各処理マネジャ104は、要求108の転送に先立ってアプリケーション固有の命令を追加することによって、要求108を増補する(augment)ように選ぶことができる。いくつかの分散コンピューティングネットワークでは、これらの増補的命令を追加することは、進んで実行しようとするすべての情報活動に対して、コンピューティング資源106により必要となり得る。各処理マネジャ104は、他の処理マネジャ104への転送に先立って要求108にデジタル的に署名することができる。要求の増補は、アプリケーションレベルで実施される。デジタル署名は、アプリケーション固有の情報に適用される。したがって、アプリケーションレベル通信の参加者102、104、および/または106は、特有のアプリケーション命令を提供するエンティティを認証し、またこのアプリケーション情報の完全性を検証することができる。さらに、参加するエンティティの識別を追跡することができる。
【0028】
より具体的には、前述の実施形態に関して、1組のアプリケーション固有の命令の送信者は、次の処理中間体が解読できる形で暗号化されたセキュリティ資格証明書情報を含めることができる。この処理中間体は、次いで、(i)他の処理中間体が解読できる形で、その資格証明書を再度符号化し、また(ii)中間体が作成した中間体供給のアプリケーション固有の命令の組の中にこの再度暗号化した資格証明書を含めることができる。このプロセスは、コンピューティング資源などの最終的な要求ハンドラに達するまで、ポイントツーポイントベースで継続される。資格証明書は要求ハンドラで使用される。前段落で説明したように、アプリケーション固有の命令の各組がデジタル的に署名される場合、平文の資格証明書にアクセスした各エンティティに関する検証可能な記録が提供される。
【0029】
分散されたアプリケーション情報配信のセキュリティ保護に関する例示的な実施形態
図2は、分散されたアプリケーション情報配信のセキュリティ保護が、アプリケーションレベル要求208に対して実施され得る一般的な例のコンピューティング環境200を示すブロック図である。図示のように、コンピューティング環境200は、リクエスタ202、複数の(処理する)中間体204、複数の要求ハンドラ206、アプリケーションレベル(タスク)要求208、およびデータ210を含む。コンピューティング環境200では、アプリケーションレベル通信の参加者またはエンティティは、リクエスタ202、中間体204、および要求ハンドラ206を含む。
【0030】
より具体的には、4つの処理中間体204(1)、204(2)、204(3)、および204(4)が示されている。3つの要求ハンドラ206(1)、206(2)、および206(3)が示されている。アプリケーションレベル要求208の4つのバージョンが示されている、すなわち、アプリケーションレベル要求A 208(A)、アプリケーションレベル要求B 208(B)、アプリケーションレベル要求C 208(C)、およびアプリケーションレベル要求D 208(D)である。アプリケーションレベル通信参加者の図示された各タイプの特定の数が、コンピューティング環境200中に示されているが、リクエスタ202、中間体204、および/または要求ハンドラ206のそれぞれの任意の数を、所与のアプリケーションレベル要求通信に含むことができる。
【0031】
前述の実施形態では、概して、リクエスタ202は、データ210と関連するアプリケーションレベル要求208を生成し、開始する。アプリケーションレベル要求208は、1つまたは複数の処理中間体204の間で、またその中で送信される。各処理中間体204は、アプリケーションレベル要求208を、次にどこに転送すべきかを決定する。本明細書の以下でさらに説明するように、各中間体204はまた、アプリケーションレベル要求208を、アプリケーション固有の命令をそれに追加することによって増補することができる。最終的に、中間体204は、アプリケーションレベル要求208を少なくとも1つの要求ハンドラ206に転送する。各要求ハンドラ206は、アプリケーションレベル要求208の一部として受信されたアプリケーションレベル命令に従って、またその関連するデータ210に従って、アプリケーションを実行することができる。
【0032】
図1に関しては、より具体的な分散コンピューティング環境100が示されている。図2の一般的なコンピューティング環境200の状況において、リクエスタ202は、ユーザ102として実現され、処理中間体204は、処理マネジャ104として実現され、また要求ハンドラ206は、コンピューティング資源106として実現され得る。さらに、アプリケーションレベル要求208は、要求108として実現され、またデータ210は、データ110として実現され得る。
【0033】
コンピューティング環境200に関して説明する実施形態では、リクエスタ202、中間体204、および要求ハンドラ206が1つまたは複数のネットワーク(図2では明示的に示されていない)により相互接続される。このようなネットワーク(複数可)の通信リンクを用いて、アプリケーションレベル要求208は、それが、要求されたタスクを実施できる少なくとも1つの要求ハンドラ206に提供されるまで、中間体204の間で、またその中で転送される。
【0034】
図2で示すように、また例示のために過ぎないが、アプリケーションレベル要求A 208(A)は、リクエスタ202により生成される。リクエスタ202は、アプリケーションレベル要求A 208(A)を中間体#1 204(1)に送信する。アプリケーションレベル要求208は、何らかのトランスポートプロトコルに従って通信されるメッセージの一部として送信され得る。利用されるトランスポートプロトコルは、アプリケーションレベル通信の参加者202、204、および206の間で異なる可能性がある。
【0035】
着信する要求208(A)の何らかの操作の後、中間体#1 204(1)は、アプリケーションレベル要求B 208(B)を中間体#2 204(2)に送信する。着信する要求208(B)の何らかの操作の後、中間体#2 204(2)は、アプリケーションレベル要求C 208(C)を中間体#3 204(3)に送信する。さらに、着信する要求208(B)の何らかの(おそらく異なる)操作の後、中間体#2 204(2)はまた、アプリケーションレベル要求D 208(D)を中間体#4 204(4)に送信する。
【0036】
中間体#3 204(3)は、アプリケーションレベル要求C 208(C)の要求されたタスクを2つの部分に分離する。それは、第1の部分を第1の要求ハンドラ206(1)に、また第2の部分を第2の要求ハンドラ206(2)に転送する。中間体#4 204(4)は、アプリケーションレベル要求D 208(D)の要求されたタスクを第3の要求ハンドラ206(3)に転送する。したがって、要求ハンドラ206(1)、206(2)、および206(3)はそれぞれ、アプリケーションレベル要求A 208(A)の元の要求されたタスクを実施することになる。
【0037】
図3A、3B、および3Cは、図2の例示的なコンピューティング環境で示されたものなど、例示的なアプリケーションレベル要求208を示すブロック図である。具体的には、図3Aは、アプリケーションレベル要求A 208(A)の例を示す。図3Bは、アプリケーションレベル要求B 208(B)の例を示す。図3Cは、アプリケーションレベル要求C 208(C)の例を示す。
【0038】
図3Aに関して説明する実施形態では、アプリケーションレベル要求A 208(A)は、リクエスタからのアプリケーション固有の命令302およびリクエスタ署名304を含む。リクエスタからのアプリケーション固有の命令302は、実行されることを要求するタスクを規定する情報である。例えば、それは、実行されるアプリケーション、およびアプリケーションが実行するデータ、ならびに任意の必要なセキュリティ資格証明書を規定することができる。より具体的には、リクエスタからのアプリケーション固有の命令302は、例示のためであり、これだけに限らないが、実行要件、初期化パラメータ、必要なデータソース、セキュリティコンテキスト情報などを含むことができる。リクエスタ202は、リクエスタからのアプリケーション固有の命令302に関する情報を確認し、アプリケーションレベル要求A 208(A)を作成する。
【0039】
リクエスタ署名304は、リクエスタ202による、リクエスタからのアプリケーション固有の命令302に適用されるデジタル署名である。言い換えると、デジタル署名手順が、アプリケーションレベル情報に適用される。その結果、中間体#1 204(1)に対応するエンティティなど、アプリケーションレベル要求A 208(A)をその後に続いて受信し、処理するエンティティは、リクエスタからのアプリケーション固有の命令302に対して、認証検査および完全性の検証を実施することができる。認証検査は、どのリクエスタ202がそのアプリケーション固有の命令302を生成したかを決定する。完全性の検証は、リクエスタからのアプリケーション固有の命令302の情報が、リクエスタ202により生成(また署名)された後に変更されていないことを検証する。
【0040】
図3Bに関して説明する実施形態では、アプリケーションレベル要求B 208(B)は、中間体#1からのアプリケーション固有の命令306(1)、中間体#1の署名308(1)、およびアプリケーションレベル要求A 208(A)を含む。中間体#1 204(1)は、リクエスタ202からの着信するアプリケーションレベル要求A 208(A)を受け入れ、また何らかの操作の後に、それを中間体#2 204(2)に転送すべきであると決定する。中間体#1 204(1)は、アプリケーションレベル要求A 208(A)をアプリケーションレベル要求B 208(B)中に有効にカプセル化する。
【0041】
中間体#1 204(1)は、アプリケーションレベル要求208を、補足的なアプリケーション固有の命令306をそれに追加することにより増補する。これらの補足的な命令は、中間体#1からのアプリケーション固有の命令306(1)として示される。それらは、図2の例における中間体#2 204(2)を含むことのできる、少なくとも1つの後続する受信者により処理されるように意図されている。中間体#1 204(1)はまた、中間体デジタル署名308を用いて、アプリケーションレベル要求208にデジタル的に署名する。このデジタル署名は、中間体#1署名308(1)として示されている。中間体#1署名308(1)は、アプリケーションレベル要求B 208(B)のアプリケーション固有の情報に対する署名である。これは、例えば、中間体#1からのアプリケーション固有の命令306(1)および/またはアプリケーションレベル要求A 208(A)を含むことができる。例えば、中間体# 204(1)が、そのアプリケーション固有の命令およびリクエスタ202により提供されたものが、独立して変更されていないことを保証する理由が存在する場合、中間体#1 204(1)はまた、アプリケーションレベル要求A 208(A)にデジタル的に署名することができる。
【0042】
図3Cに関して説明する実施形態では、アプリケーションレベル要求C 208(C)は、中間体#2からのアプリケーション固有の命令306(2)、中間体#2署名308(2)、およびアプリケーションレベル要求B 208(B)を含む。中間体#2 204(2)は、中間体#1 204(1)から着信するアプリケーションレベル要求B 208(B)を受け入れ、それを、少なくとも部分的に、また何らかの操作の後に、中間体#3 204(3)に転送すべきであると決定する。中間体#2 204(2)は、アプリケーションレベル要求B 208(B)をアプリケーションレベル要求C 208(C)中に有効にカプセル化する。
【0043】
中間体#2 204(2)は、アプリケーションレベル要求208を、補足的なアプリケーション固有の命令306をそれに追加することにより増補する。これらの補足的な命令は、中間体#2からのアプリケーション固有の命令306(2)として示されている。中間体#2 204(2)はまた、中間体デジタル署名308を用いて、アプリケーションレベル要求208にデジタル的に署名する。このデジタル署名は、中間体#2署名308(2)として示されている。中間体#2署名308(2)は、アプリケーションレベル要求C 208(C)のアプリケーション固有の情報に対する署名である。これは、例えば、中間体#2からのアプリケーション固有の命令306(2)、および/またはアプリケーションレベル要求B 208(B)を含むことができる。個別に示されていないが、アプリケーションレベル要求D 208(D)は、アプリケーションレベル要求C 208(C)に類似させた形で作成することができる。
【0044】
したがって、図2および3A〜3Cで示すように、アプリケーションレベル命令プロトコルの前述の実施形態は、着信するアプリケーションレベル要求208を有効にカプセル化し、送出するアプリケーションレベル要求208を生成する。送出するアプリケーションレベル要求は、アプリケーション固有の情報の少なくとも一部に対するデジタル署名308を含む。それはまた、補足的なアプリケーション固有の命令306を含むことができる。アプリケーションレベル要求208が、参加するアプリケーションレベル通信のノードまたはエンティティを介して伝送されると、図3Cにより特に示されるように、アプリケーションレベル要求208のネストされた組が作成される。
【0045】
各ネストされた要求に対するデジタル署名304および308と結合されたアプリケーションレベル要求208のこのネスティングは、参加者に、要求送信の連鎖を通して、アプリケーション固有の情報の認証および完全性の検証を実施することを可能にする。しかし、少なくとも最後の要求ハンドラ206(図2による)は、アプリケーションレベル要求208に従って要求されたタスクを実施するためにデータ210にアクセスする必要があり得る。いくつかの実施形態では、データ210にアクセスするには、データ210にアクセスするための権利が許可されている必要があり得る。したがって、このような実施形態では、要求ハンドラ206により要求されたタスクを実施することは、まず、データ210にアクセスするための権利を実施者(implementer)に許可することが必要となるはずである。前述の実施形態では、データ210へのこのアクセス権は、委任アクセス制御機構により許可され得る。
【0046】
図4は、データにアクセスするための権利の委任を含む例示的なアプリケーションレベル要求B 208(B)*を示すブロック図である。アプリケーションレベル要求B 208(B)*は、データ委任の権利情報が含まれたアプリケーションレベル要求B 208(B)(図3Bによる)である。本明細書の以下でさらに説明するように、任意のアプリケーションレベル要求208は、例えば、リクエスタからの権利の委任402および/または中間体からの権利の委任404の形で、データ委任の権利情報を含むことができる。
【0047】
図示のように、アプリケーションレベル要求B 208(B)*は、中間体#1からの権利の委任404(1)を含み、また要求ネスティングにより、アプリケーションレベル要求A 208(A)の一部である、リクエスタからの権利の委任402を有効に含む。前述の実施形態では、リクエスタ202が、アプリケーションレベル要求A 208(A)を作成する場合、それは、リクエスタからの権利の委任402を含む。リクエスタ202は、そのデータ210に対するアクセス権を有する。リクエスタ202は、どの要求ハンドラ(複数可)206が最終的にデータ210にアクセスするための権利が必要となるかを知らない可能性があるので、リクエスタ202は、データ210へのアクセス権を直接許可することはできないはずである。したがって、リクエスタ202は、データ210に対するアクセス権を委任するための権利を、後続するアプリケーションレベル通信の参加者(例えば、処理中間体204)に許可する。
【0048】
データ委任情報(例えば、リクエスタからの権利の委任402、中間体からの権利の委任404など)は、第2の参加者へと転送される、または延長され得る、第1の参加者への委任権を許可することである。言い換えると、(アプリケーションレベル要求B 208(B)*の)アプリケーションレベル要求A 208(A)の場合、リクエスタ202は、下流の通信参加者に、データ210へのアクセス権をさらに許可するための権利を、中間体#1 204(1)に委任する。中間体#1 204(1)は、中間体#1からの権利の委任404(1)を追加することによって、この委任権を利用する。言い換えると、アプリケーションレベル要求B 208(B)*の場合、中間体#1 204(1)は、データ210へのアクセス権を、他の下流の通信参加者にさらに許可するための権利を中間体#2 204(2)に委任する。この委任の連鎖は、選択された要求ハンドラ206に、データ210へのアクセス権が許可される(例えば、中間体#3 204(3)および/または中間体#4 204(4)により)まで延長され得る。この委任情報402および/または404が、許可されない参加者に開示されるべきではない秘密(例えば、パスワード、暗号化鍵など)を含む場合、このような情報は、次の処理エンティティがそれを解読できるように暗号化することができる。この処理エンティティは、次いで、次の処理エンティティのために、その秘密情報を再度暗号化することができ、また要求を増補するためのデータ委任情報をそれに含めることができる。
【0049】
したがって、いくつかの前述の実施形態は、要求を生成するリクエスタ、要求のハンドラ、およびその要求を処理し、リクエスタと要求ハンドラの間で転送する1つまたは複数の中間体の間の対話のための一般的なアプリケーションレベルのセキュリティプロトコルを提供する。アプリケーションレベルのセキュリティプロトコルの前述の実施形態は、これらのエンティティが、要求の発行に先立って知られている状況において使用することができる。さらにいくつかの前述の実施形態は、これらのエンティティがアプリオリに知られていないが、その要求がリクエスタと最終的な要求ハンドラの間で伝わるにつれて、エンティティが徐々に確立される、より複雑な場合を扱うことができる。
【0050】
図2における要求208のフローは、本明細書で説明するアプリケーションレベルのセキュリティプロトコルにより処理できる一般のメッセージフローパターンの一例を示す。前述のように、リクエスタ202から要求ハンドラ206への要求のフローは、有向グラフを形成する。いずれの中間体204においても、要求208は、潜在的に、複数のエンティティ(例えば、1つまたは複数の他の中間体204および/または要求ハンドラ206)に転送することができる。リクエスタ202から要求ハンドラ206への各フローは、論理的に別個のものとして処理され得る。図2に示すコンピューティング環境200は、したがって、3つの論理的に別々のフローを有していると見なすことができる。1つのフローに対する要求処理を他のフローで再使用できる可能性があることにより、実施効率を改善することができるが、このような再使用は、アプリケーションレベルのセキュリティプロトコルに影響を与えないで済む。したがって、以下の本明細書の説明では、明確化のために、単一の要求フローだけを扱う。
【0051】
前述のように、アプリケーションレベル要求208に対するネスティングプロセスは、デジタル署名304および308と併せて、リクエスタ202と、所与の要求メッセージを処理した任意の前の中間体204とを認証するための機構を提供する。さらに、ネスティングおよびデジタル署名は、元の要求と、中間体により追加された任意のアプリケーションレベルの処理命令とにおけるアプリケーションレベル情報の完全性を独立して検証するための機構を提供する。
【0052】
前述の実施形態では、メッセージ構成は、ネスティングプロセスを用いて達成され、またこのネスティングプロセスは、デジタル署名技術と結合される。デジタル署名は、例えば、公開鍵暗号技術に基づくことができる。以下のテキストおよび例示的なメッセージ要求フォーマットでは、リクエスタ202はリクエスタRと称し、中間体#1〜#n 204(1・・・n)は中間体M1〜Mnと称し、また要求ハンドラ206は要求ハンドラRHと称する。デジタル署名とネスティングを組み合わせたこの手法を用いて、鍵KRを有するリクエスタRは、最初の中間体M1に、
【0053】
【表1】

【0054】
を含むメッセージを送る。「要求」は、リクエスタからのアプリケーション固有の命令302(図3A〜4による)に対応する。「KRによる署名」は、リクエスタ署名304に対応する。リクエスタ署名304は、例えば、SHA−1ダイジェストアルゴリズムを用いた、要求コンテンツ情報に対するRSA署名を用いて実施することができる。
【0055】
中間体M1は、その署名を検査して要求がリクエスタRから来ていることを認証し、送信中にそれが変更されていないことを検証することができる。鍵KM1を有する中間体M1が、鍵KM2を有する第2の中間体M2に要求を転送することを決定した場合、中間体M1は、
【0056】
【表2】

【0057】
を含むメッセージを送る。「M2に対するM1命令」は、中間体#2 204(2)に対して中間体#1 204(1)により追加された中間体#1からのアプリケーション固有の命令306(1)(図3B〜4による)に対応する。「KM1による署名」は、中間体#1の署名308(1)に対応する。「M2に対するM1命令」(または中間体306からの任意のアプリケーション固有の命令)は、実施者M1により、さらなるアプリケーション固有の命令が何も追加されない場合は、ヌルとなり得る。
【0058】
中間体M2は、次に、2つの署名(304および308(1))を使用して、[1]「M2に対するM1命令」が中間体M1から生成されたこと、[2]中間体M1が元の要求を有していたこと、[3]元の要求がリクエスタRから来たこと、および[4]署名が適用されたため、何も変更されていないことを判定することができる。中間体M2は、次いで、この情報を使用して、中間体M1とリクエスタRの両方のために、このような要求を進んで処理するかどうか判定することができる。
【0059】
この手法は、最終的に、実際の要求ハンドラに到達するまで、「n」個の中間体Mを通して継続される、ただし、「n」は何らかの整数である。この実際の要求ハンドラは、
【0060】
【表3】

【0061】
を含むメッセージを受け取る。
【0062】
暗号化デジタル署名KRおよびKM1・・・KMnは、中間体および要求ハンドラによりアプリケーションレイヤで理解されたデータに対して行われる。これは、送信されたメッセージを認証し、完全性を保護するために、通信のセキュリティ保護に広く使用されるネットワークのセキュリティプロトコルのデジタル署名とは全く異なる。これらの広く使用されるメッセージのデジタル署名は、通常、使用される特定の低レイヤセキュリティプロトコル用に符号化されたメッセージコンテンツおよびメッセージヘッダを共にカバーする。したがって、ヘッダは、概して、諸中間体にわたって意味を有しておらず、また使用されるメッセージングプロトコルは、要求フローに参加するすべてのエンティティ間で同一ではない可能性があるため、このようなメッセージデジタル署名は、これらのアプリケーションに対して使用することができない。
【0063】
図4を参照して前述したように、データアクセスに対する権利の委任はまた、動的に発見されたメッセージフローの参加者に即して、アプリケーションレベルのセキュリティプロトコルの使用を実行することができる。いくつかの前述の実施形態は、したがって、様々な参加エンティティ間で、委任情報を渡すための機構を提供する。このデータ委任情報を渡すことは、フロー中のエンティティを動的に発見できることに対処する。言い換えると、データ委任情報を渡すことは、リクエスタが最初に要求を作成する場合、データのアクセス権を、どの要求ハンドラに委任すべきかをリクエスタが直接示す方法がない可能性のあることに対処している。
【0064】
リクエスタからの権利の委任402および/または中間体からの権利の委任404など、セキュリティ資格証明書情報を暗号化することができる。各処理中間体204は、それらを解読し、任意の適切な分析を行い、それらをおそらく変更し、次いで、要求208を転送する前に再度暗号化することができる。暗号化は、任意の一般に使用される暗号(例えば、非特許文献1参照)または特別に適応された暗号を用いて適用することができる。関連する解読鍵は、一般に利用可能な技法(例えば、非特許文献2で説明されているRSA鍵トランスポート)、または特別に設計された技法を用いて通信することができる。関連する解読鍵はまた、AES鍵ラップ(例えば、非特許文献3)を用いて通信することもできる。他の暗号化、解読、および鍵トランスポート手法を、代替的に使用することもできる。
【0065】
権利の委任を伴う分散されたアプリケーション情報配信のセキュリティ保護に関するいくつかの前述の実施形態は、リクエスタのデータアクセス権を要求ハンドラに委任するためにどの機構が使用されるかに関して全く分かっていない。例示的な委任機構は、例としてであり、これに限らないが、(i)MyProxyサービスで使用される物など、委任資格証明書をアンロックするために使用される名前−パスワードの対、(ii)ISOのREL(Rights Expression Language;権利記述言語)などのポリシー言語を用いて、各処理中間体で生成される一連の明示的な委任ポリシー/資格証明書、(iii)Microsoft(登録商標)からのSecPAL(商標)(Security Policy Assertion Language)言語、(iv)それらのいくつかの組合せなどを含む。例示的な実施形態は、グリッドコンピューティング分散ジョブ管理のために開発されている1つまたは複数のSOAPベースのウェブのサービスプロトコルと共に使用されるXML符号化を使用することができる。
【0066】
前述の例示的な手法は、リクエスタ、および各処理中間体に所望の委任を符号化させて、メッセージ通信フローに参加している次のエンティティに送ることである。その機構が、名前−パスワード資格証明書およびMyProxyサービスを含む場合、それは、暗号化されてフロー中の次のエンティティに送られる名前−パスワードの形を取ることに加えて、使用するMyProxyサービスへの参照の形を取る。その機構が、ポリシー言語手法の1つを含む場合、それはフロー中に参加している次のエンティティが、必要なデータにアクセスする権利を有すること、および/またはこれらの権利を他の者に委任することを示す資格証明書の作成を伴う。
【0067】
そうではあるが、このようなデータ委任資格証明書は、リクエスタまたは現在の処理中間体により「発行される」、またはデジタル的に署名される。権利の委任情報は、次いで、(図4の組合せで示されるように)前述の認証情報と組み合わされて、アプリケーションレベルのセキュリティプロトコルの前述の他の実施形態を形成することができる。例示のためだけであるが、権利の委任コンポーネントを有するアプリケーションレベルのセキュリティプロトコルの前述の実施形態は、概して、以下のようにフォーマット化することができる、ただし、「データアクセス権」は「DAR」により表される。
【0068】
【表4】

【0069】
図5は、図2の例示的なコンピューティング環境中で示されたものなど、アプリケーションレベル通信の参加者上で実行することができる例示的なアプリケーション502を示すブロック図である。図示のように、アプリケーション502は、10個のモジュール504〜522を含む。これらの10個のモジュールは、受信器504、アプリケーション固有の情報抽出器506、アプリケーション固有の情報分析器508、メッセージ参加者認証器510、メッセージ情報の完全性検証器512、メッセージ増補器514、メッセージ署名器516、情報暗号化器518、情報解読器520、および送信器522である。
【0070】
10個のモジュールが、アプリケーション502に関して示され、以下で説明されているが、アプリケーション命令に対するアプリケーションレベルのセキュリティプロトコル中で参加エンティティとして機能しているアプリケーションは、任意の数のモジュールを含むことができる。以下の説明は、主として、中間体204として機能しているアプリケーション502を対象とする。そうではあるが、アプリケーション502の機能は、リクエスタ202、要求ハンドラ206などの他のエンティティに対しても同様の物であり得る。しかし、いくつかの違いが存在する可能性がある。例えば、要求ハンドラ206は、メッセージ増補器514またはメッセージ署名器516を必要としない可能性がある。リクエスタ202は、要求208を生成するので、アプリケーション固有の情報抽出器506またはアプリケーション固有の情報分析器508を必要としない可能性がある。他方で、リクエスタ202のアプリケーション502中に両方を含むことは、リクエスタそれ自体が、要求208の送信経路の何らかの要求追跡の法的な分析を行うことを可能にする。
【0071】
前述の実施形態では、受信器504は、アプリケーションレイヤよりも低位のコンピュータの通信スタックレイヤから、着信する要求208を受け入れる。同様に、送信器522は、低位レイヤの通信トランスポートプロトコルを用いて、他の中間体204または要求ハンドラ206に転送するために、送出する要求208を、アプリケーションレイヤから通信スタックの低位レイヤに送る。
【0072】
前述の実施形態では、アプリケーション固有の情報抽出器506は、着信する要求208からアプリケーション固有の情報を抽出する。アプリケーション固有の情報の例には、これだけに限らないが、リクエスタからのアプリケーション固有の命令302、中間体からのアプリケーション固有の命令306、リクエスタからの権利の委任402、中間体からの権利の委任404などが含まれる。アプリケーション固有の情報分析器508は、抽出されたアプリケーション固有の情報を分析して、その要求を次にどこに転送すべきかを決定する。次の参加ノードは、例えば、他の中間体または要求ハンドラとすることができる。アプリケーション固有の情報分析器508はまた、その抽出されたアプリケーション固有の情報を分析して、必要な場合、送出する要求208用として、この次のノードのためにどのような追加のアプリケーション固有の命令を着信する要求208に追加すべきかを決定する。
【0073】
メッセージ参加者認証器510は、要求208および/または増補的アプリケーション固有の情報の元を認証するためにデジタル署名を使用する。したがって、メッセージ参加者認証器510は、リクエスタ署名304を使用して、リクエスタからのアプリケーション固有の命令302を有する元の要求208(A)が、リクエスタ202によって開始されたことを認証することができる。それはまた、中間体#1の署名308(1)を使用して、アプリケーション固有の命令306(1)を有するカプセル化された要求208(B)が、中間体#1 204(1)から転送されたことを認証することができる。
【0074】
メッセージ情報の完全性検証器512は、それぞれがネストされたデジタル署名304および308を使用して、それぞれがネストされたアプリケーション固有の情報の完全性を検証する。より具体的には、メッセージ情報の完全性検証器512は、リクエスタ署名304を使用して、リクエスタからのアプリケーション固有の命令302および/またはリクエスタからの権利の委任402の完全性を検証する。メッセージ情報の完全性検証器512はまた、中間体署名308を使用して、中間体からのアプリケーション固有の命令306および/または中間体からの権利の委任404を検証することができる。
【0075】
メッセージ増補器514は、任意のさらなる所望の処理命令を追加する。例えば、メッセージ増補器514は、次のエンティティ受信者(例えば、中間体または要求ハンドラ)に対する新しいアプリケーション固有の命令306を追加することができ、および/または次のエンティティ受信者に対するデータアクセス権を含むデータ委任権404を追加することができる。メッセージ署名器516は、アプリケーションレベル情報にデジタル的に署名して、中間体署名308を作成する。デジタル署名手順は、次のエンティティ受信者用である、中間体からのアプリケーション固有の命令306など、増補的情報に対して適用することができる。代替的には、デジタル署名手順はまた、要求208が作成され、命令が追加されている順序の検証を提供するように、ネストされたアプリケーションレベル要求208に対して実施することもできる。
【0076】
暗号化および解読は、それぞれ、情報暗号化器518および情報解読器520で処理される。情報は、情報解読器520により解読することができる。情報は、情報暗号化器518により暗号化され、および/または再度暗号化され得る。情報は、例えば、セキュリティ資格証明書情報とすることができる。より一般的には、情報は、これだけに限らないが、アプリケーション固有の命令302および/または306、権利の委任402および/または404などを含む所与の任意のデータとすることができる。
【0077】
図6は、アプリケーションレベルの要求情報を安全に通信するための方法の例を示す流れ図600である。流れ図600は8個のブロック602〜616を含む。流れ図600のアクションは他の環境中で、また様々なハードウェアおよびソフトウェアの組合せを用いて実施することができるが、図2〜5のいくつかの態様は、流れ図600の方法の一例を示すために使用される。例えば、流れ図600のアクションは、処理中間体204により実施され得る。
【0078】
ブロック602では、アプリケーションレベルで、リクエスタによりデジタル的に署名された要求を有する着信メッセージが受信される。例えば、中間体#2 204(2)は、リクエスタ202により少なくとも部分的に署名されたアプリケーションレベル要求B 208(B)を有するメッセージを受信することができる。アプリケーションレベル要求B 208(B)は、リクエスタ署名304を含むアプリケーションレベル要求A 208(A)をカプセル化する。
【0079】
ブロック604で、受信された要求が前の中間体からの任意のアプリケーション固有の命令を有するかどうかが判定される。例えば、アプリケーションレベル要求B 208(B)が、前の中間体306からの任意のアプリケーション固有の命令を含むかどうかを判定することができる。図3Bで示すように、アプリケーションレベル要求B 208(B)は、中間体#1からのアプリケーション固有の命令306(1)を含む。
【0080】
受信されたメッセージが、前の中間体からのアプリケーション固有の命令を有する場合、ブロック606で、そのアプリケーション固有の中間体命令が要求から抽出される。例えば、中間体#1からのアプリケーション固有の命令306(1)を抽出することができる。
【0081】
ブロック606の後、またはブロック604で「No」の判断の後、アプリケーション固有のリクエスタ命令が、ブロック608で、要求から抽出される。例えば、リクエスタからのアプリケーション固有の命令302が抽出され得る。したがって、ブロック606および608の後、いずれのアプリケーション固有の命令も、それがリクエスタから発信されたものであろうと、前の中間体からのものであろうと抽出されている。デジタル署名304/308および/または権利の委任402/404などの他のアプリケーション固有の情報もまた、抽出することができる。
【0082】
ブロック610で、抽出されたアプリケーション固有の情報が分析される。例えば、アプリケーション固有のリクエスタ命令302および/またはアプリケーション固有の中間体命令306が分析されて、その要求を、他の中間体に転送すべきか、要求ハンドラに転送すべきか、またはその一方もしくは両方に転送すべきかを判定することができる。言い換えると、分析は、その要求の後続する受信者となるべき少なくとも1つのエンティティの識別を決定することができる。分析はまた、現在の中間体によって、どのようなアプリケーション固有の命令を要求に追加すべきかを決定することもできる。
【0083】
デジタル署名保護が使用されている場合、リクエスタ署名304および/または中間体署名(複数可)308が抽出され、またそれを、アプリケーションレベル要求208の完全性を認証し、および/または分析するために使用することができる。データ委任情報が、アプリケーションレベル要求208中に含まれる場合、リクエスタからの権利の委任402、および/または中間体からの権利の委任404が抽出され、また特に、下流の参加者にデータアクセス権をさらに委任するために、分析で使用することができる。
【0084】
ブロック612で、要求が、後続するエンティティに対するアプリケーションレベル命令を追加することにより増補される。例えば、ブロック610の分析に応じて、中間体#2 204(2)は、中間体#2からのアプリケーション固有の命令306(2)など、後続する中間体に対するアプリケーション固有の命令306を追加することができる。委任の権利が送られている場合、中間体#2 204(2)はさらに、中間体#2 からの権利の委任404を追加することにより要求を増補して、データアクセス権の推移的な委任連鎖を継続することができる。
【0085】
ブロック614では、アプリケーションレベルで追加された命令を有する増補された要求は、デジタル的に署名され送出メッセージが作成される。例えば、中間体#2 204(2)は、追加されたアプリケーション固有の命令306(2)および/またはネストされたアプリケーションレベル要求208(AおよびB)にデジタル的に署名して、中間体#2の署名308(2)を作成することができる。
【0086】
ブロック616で、デジタル的に署名された送出メッセージが、後続するエンティティに向けて送信される。例えば、中間体#2 204(2)は、アプリケーションレベル要求C 208(C)を中間体#3 204(3)に向けて送信することができる。中間体#3 204(3)はまた、要求ハンドラ206(1)および206(2)への後続する通信のために、それらの間の論理的関係および信頼関係に応じて、前述のアプリケーションレベルのセキュリティプロトコルの諸態様を適用することもできる。
【0087】
図7は、分散されたアプリケーション情報配信のセキュリティ保護を実施するために使用できる例示的な装置702のブロック図である。複数の装置702は、1つまたは複数のネットワーク714にわたって通信することができる。ネットワーク714は、インターネット、イントラネット、イーサネット(登録商標)、無線ネットワーク、有線ネットワーク、公衆網、専用ネットワーク、ケーブルネットワーク、デジタル加入者回線(DSL)ネットワーク、電話ネットワーク、ファイバネットワーク、グリッドコンピュータネットワーク、資源クラスタのネットワーク、そのいくつかの組合せなどとすることができる。
【0088】
図示のように、2つの装置702(1)および702(n)は、アプリケーションレベル要求208の転送など、ネットワーク714を介するメッセージ通信の送信に従事することができる。2つの装置702が、具体的に示されているが、実施形態に応じて、1つまたは2を超える装置702を使用することもできる。リクエスタ202、中間体204、要求ハンドラ206などが、装置702として実現され得る。
【0089】
概して、装置702は、任意のコンピュータ、あるいはサーバ装置、ワークステーションもしくは他の一般のコンピュータ装置、データ記憶リポジトリ装置、携帯情報端末(PDA)、移動電話、ゲームプラットフォーム、娯楽装置、ルータコンピューティングノード、またはそれらの何らかの組合せなどの処理可能な装置を表すことができる。図示のように、装置702は、1つまたは複数の入力/出力(I/O)インターフェース704、少なくとも1つのプロセッサ706、および1つまたは複数の媒体708を含む。媒体708は、プロセッサ実行可能命令710を含む。
【0090】
装置702の前述の実施形態では、I/Oインターフェース704は、(i)ネットワーク714にわたり通信するためのネットワークインターフェース、(ii)表示画面上に情報を表示するための表示装置インターフェース、(iii)1つまたは複数のマンマシンインターフェースなどを含むことができる。(i)のネットワークインターフェースの例は、ネットワークカード、モデム、1つまたは複数のポート、ネットワーク通信スタックなどを含む。(ii)の表示装置インターフェースの例は、グラフィックスドライバ、グラフィックスカード、画面またはモニタ用のハードウェアまたはソフトウェアドライバなどを含む。(iii)のマンマシンインターフェースの例は、有線でまたは無線でマンマシンインターフェース装置712(例えば、キーボード、リモート、マウス、または他のグラフィカルなポインティング装置など)に通信する物を含む。
【0091】
概して、プロセッサ706は、プロセッサ実行可能命令710などのプロセッサ実行可能命令を実行し、実施し、および/またはその他の形で実現することができる。媒体708は、1つまたは複数のプロセッサアクセス可能媒体からなる。言い換えると、媒体708は、装置702による機能の性能を実現するために、プロセッサ706により実行可能なプロセッサ実行可能命令710を含むことができる。
【0092】
したがって、分散されたアプリケーション情報配信のセキュリティ保護の実現は、プロセッサ実行可能命令の一般的なコンテキストで記述され得る。概して、プロセッサ実行可能命令は、特定のタスクを実施する、および/または可能にする、および/または特定の抽象型を実施するルーチン、プログラム、アプリケーション、コーディング、モジュール、プロトコル、オブジェクト、コンポーネント、メタデータおよびその定義、データ構造、アプリケーションプログラミングインターフェース(API)などを含む。プロセッサ実行可能命令は、別個の記憶媒体中に位置し、異なるプロセッサにより実行され、および/または様々な送信媒体を介して伝播され、またはその媒体上に存在することができる。
【0093】
プロセッサ(複数可)706は、任意の適用可能な、処理可能技術を用いて実施することができる。媒体708は、装置702の一部として含まれる、および/または装置702によりアクセス可能な任意の利用可能な媒体とすることができる。それは揮発性および不揮発性媒体、取外し可能および取外し不能媒体、記憶および送信媒体(例えば、無線のまたは有線の通信チャネル)を含む。例えば、媒体708は、プロセッサ実行可能命令710の長期間の大容量記憶のためのディスクアレイ、現在実行されている、および/またはそのほかの形で処理されている命令の短期間記憶のためのランダムアクセスメモリ(RAM)、通信を送信するためのネットワーク714上のリンク(複数可)などを含むことができる。
【0094】
具体的に示したように、媒体708は、少なくともプロセッサ実行可能命令710を含む。概して、プロセッサ実行可能命令710は、プロセッサ706によって実行された場合、装置702に、本明細書で説明した様々な機能を実施させることができる。このような機能は、これだけに限らないが、(i)図2に示されたアプリケーションレベル通信の参加者を実現すること、(ii)流れ図600(図6による)で示されたこれらのアクションを実施すること、(iii)図3A、3B、3C、および4で示されたこれらのデータ構造(複数可)208を実施すること、(iv)図5で示されたアプリケーション502を実現することなどを含む。例のために過ぎないが、プロセッサ実行可能命令710は、1つまたは複数のアプリケーションレベル要求208、アプリケーション502、それらの何らかの組合せなどを含むことができる。
【0095】
図1〜7の装置、アクション、態様、特徴、機能、手順、モジュール、データ構造、プロトコル、コンピューティングシステム、コンポーネントなどは、複数のブロックに分割された図で示されている。しかし、図1〜7が説明され、および/または示された順序、相互接続、相互関係、レイアウトなどは、限定的に解釈されることを意図しておらず、分散されたアプリケーション情報配信のセキュリティ保護のために、1つまたは複数のシステム、方法、装置、手順、媒体、装置、API、構成などを実施するように任意の方法で、任意の数のブロックを変更し、組み合わせ、再配置し、増補し、除外することができる。
【0096】
システム、媒体、デバイス、方法、手順、装置、機構、スキーム、手法、プロセス、構成、および他の実施形態が、構造的、論理的、アルゴリズム的、および機能的な特徴および/または図に固有の言語で記述されているが、添付の特許請求の範囲で定義される本発明は、前述の特定の機能または行為に必ずしも限定されないことを理解されたい。そうではなくて、前述の特定の特徴および行為は、特許請求の範囲を実施する例示的な形態として開示される。

【特許請求の範囲】
【請求項1】
安全なアプリケーション命令プロトコルのためのデータ構造(208)を備えるプロセッサ実行可能命令(710)を含む1つまたは複数のプロセッサでアクセス可能な媒体(708)であって、前記データ構造は、
リクエスタからのアプリケーション固有の命令(302)、および前記リクエスタからの前記アプリケーション固有の命令に対するリクエスタ署名(304)を含む第1のアプリケーションレベル要求(208(A))と、
中間体からのアプリケーション固有の命令(306)、および前記中間体からの少なくとも前記アプリケーション固有の命令に対する中間体署名(308)を含む第2のアプリケーションレベル要求(208(B))と
を含むことを特徴とする1つまたは複数のプロセッサでアクセス可能な媒体。
【請求項2】
前記第1のアプリケーションレベル要求が、前記第2のアプリケーションレベル要求内にネストされることを特徴とする請求項1に記載の1つまたは複数のプロセッサでアクセス可能な媒体。
【請求項3】
前記第1のアプリケーションレベル要求はさらに、データにアクセスするための、前記リクエスタからの権利の委任を含むことを特徴とする請求項1に記載の1つまたは複数のプロセッサでアクセス可能な媒体。
【請求項4】
前記第2のアプリケーションレベルは要求さらに、データにアクセスするための、前記中間体からの権利の委任を含むことを特徴とする請求項1に記載の1つまたは複数のプロセッサでアクセス可能な媒体。
【請求項5】
前記中間体署名がまた、前記中間体からの権利の前記委任に対して行われることを特徴とする請求項4に記載の1つまたは複数のプロセッサでアクセス可能な媒体。
【請求項6】
前記中間体署名がまた、前記第1のアプリケーションレベル要求に対して行われることを特徴とする請求項1に記載の1つまたは複数のプロセッサでアクセス可能な媒体。
【請求項7】
前記第1のアプリケーションレベル要求はさらに、前記リクエスタからの、データアクセスのための権利の委任を含み、また前記第2のアプリケーションレベル要求はさらに、前記中間体からの、データアクセスのための権利の委任を含み、
前記第1のアプリケーションレベル要求が、前記第2のアプリケーションレベル要求内にネストされており、
前記データ構造はさらに、
他の中間体からのアプリケーション固有の命令、前記他の中間体からの少なくとも前記アプリケーション固有の命令に対する他の中間体署名、および前記他の中間体からのデータアクセスのための権利の委任を含む第3のアプリケーションレベル要求を含み、また前記第1のアプリケーションレベル要求および前記第2のアプリケーションレベル要求が、前記第3のアプリケーションレベル要求内にネストされることを特徴とする請求項1に記載の1つまたは複数のプロセッサでアクセス可能な媒体。
【請求項8】
データアクセスのための権利の前記委任のそれぞれは、委任情報を含み、また前記情報が暗号化されることを特徴とする請求項7に記載の1つまたは複数のプロセッサでアクセス可能な媒体。
【請求項9】
安全なアプリケーション命令プロトコルを実施するアプリケーション(502)を含む装置(702)であって、前記アプリケーションは、
着信するアプリケーションレベル要求(208)をカプセル化するための、また後続するエンティティに対するアプリケーション固有の命令(306)を追加するためのメッセージ増補器(514)と、
前記後続するエンティティに対する少なくとも前記アプリケーション固有の命令にデジタル的に署名するための、また送出される中間体署名(308)を追加するためのメッセージ署名器(516)と
を備えることを特徴とする装置。
【請求項10】
前記着信するアプリケーションレベル要求は、リクエスタからのアプリケーション固有の命令、および前記リクエスからの前記アプリケーション固有の命令に対するリクエスタ署名を含むことを特徴とする請求項9に記載の装置。
【請求項11】
前記着信するアプリケーションレベル要求はさらに、中間体からのアプリケーション固有の命令、および前記中間体からの前記アプリケーション固有の命令に対する中間体署名を含むことを特徴とする請求項10に記載の装置。
【請求項12】
前記着信するアプリケーションレベル要求から、前記リクエスタからの前記アプリケーション固有の命令、および前記中間体からの前記アプリケーション固有の命令を抽出するためのアプリケーション固有の情報抽出器と、
前記リクエスタからの前記アプリケーション固有の命令、および前記中間体からの前記アプリケーション固有の命令を分析して、前記後続するエンティティに対する識別を決定し、また前記後続するエンティティに対するアプリケーション固有の命令を決定するためのアプリケーション固有の情報分析器と
をさらに備えることを特徴とする請求項11に記載の装置。
【請求項13】
前記リクエスタ署名を用いて、前記リクエスタからの前記アプリケーション固有の命令が、本当に前記リクエスタから生成されたこと、および前記中間体署名を用いて、前記中間体からの前記アプリケーション固有の命令が、本当に前記中間体から生成されたことを認証するためのメッセージ参加者認証器をさらに備える特徴とする請求項11に記載の装置。
【請求項14】
前記リクエスタ署名を用いて、前記リクエスタからの前記アプリケーション固有の命令が、前記リクエスタにより署名された後に変更されていないこと、および前記中間体署名を用いて、前記中間体からの前記アプリケーション固有の命令が、前記中間体により署名された後に変更されていないことを検証するための、メッセージ情報の完全性検証器をさらに備えることを特徴とする請求項11に記載の装置。
【請求項15】
前記メッセージ増補器はさらに、前記後続するエンティティが、データにアクセスできるように、または前記データにアクセスするために権利をさらに委任できるように、権利の委任情報を追加することを特徴とする請求項9に記載の装置。
【請求項16】
前記メッセージ署名器は、前記着信するアプリケーションレベル要求および前記追加された権利の委任情報にデジタル的に署名して、前記送出される中間体署名を有する送出アプリケーションレベル要求を作成し、また前記装置は、前記送出アプリケーションレベル要求を前記後続するエンティティに向けて転送することを特徴とする請求項15に記載の装置。
【請求項17】
アプリケーションレベルで、リクエスタによりデジタル的に署名された要求を有する着信メッセージを受信するステップ(602)と、
後続するエンティティに対するアプリケーション固有の命令を追加することにより、前記要求を増補するステップ(612)と、
前記アプリケーション固有の命令にデジタル的に署名して(614)、前記要求、前記アプリケーション固有の命令、および前記アプリケーション固有の命令に対するデジタル署名を含む送出メッセージを作成するステップと、
前記後続するエンティティに向けて、前記送出メッセージを送信するステップ(616)と
を含むことを特徴とする方法。
【請求項18】
前記増補するステップは、
前記後続するエンティティに対する権利の委任情報を追加することにより前記要求を増補するステップを含み、権利の前記委任情報は、前記後続するエンティティが、前記要求と関連するデータにアクセスすることを可能にし、または前記データへの権利をさらに委任することを可能にすることを特徴とする請求項17に記載の方法。
【請求項19】
前記要求から、前の中間体により生成されたアプリケーション固有の中間体命令を抽出するステップと、
前記要求から、前記リクエスタにより生成されたアプリケーション固有のリクエスタ命令を抽出するステップと、
前記アプリケーション固有の中間体命令、および前記アプリケーション固有のリクエスタ命令を分析して、前記後続するエンティティに対する識別を決定するステップと
をさらに含むことを特徴とする請求項17に記載の方法。
【請求項20】
前記要求から、前記リクエスタにより生成された前記アプリケーション固有のリクエスタ命令、および前記リクエスタ署名を抽出するステップと、
前記リクエスタ署名を用いて、前記アプリケーション固有のリクエスタ命令が、前記リクエスタにより生成されたことを認証するステップと、
前記リクエスタ署名を用いて、前記アプリケーション固有のリクエスタ命令の完全性を検証するステップと
をさらに含むこと特徴とする請求項17に記載の方法。

【図1】
image rotate

【図2】
image rotate

【図3A】
image rotate

【図3B】
image rotate

【図3C】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公表番号】特表2010−508594(P2010−508594A)
【公表日】平成22年3月18日(2010.3.18)
【国際特許分類】
【出願番号】特願2009−534953(P2009−534953)
【出願日】平成19年11月1日(2007.11.1)
【国際出願番号】PCT/US2007/083390
【国際公開番号】WO2008/057970
【国際公開日】平成20年5月15日(2008.5.15)
【出願人】(500046438)マイクロソフト コーポレーション (3,165)
【Fターム(参考)】