説明

信用証明に基づくアクセス制御のサポート記述

サポート記述は、別のエンティティにより所有され、あるいは管理されるリソースにアクセスする1つのエンティティからの要求を許可するかどうかを決定するために必要な証明を安全に効果的に構築し、あるいは確認することを援助するために提供される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般的にアクセス制御に係わり、より詳細には、分散型のアクセス制御システムにおける信用証明に基づくアクセス制御に関する
【背景技術】
【0002】
コンピュータ環境は、様々なエンティティとリソースを含むことができる。エンティティは、ユーザ、オペレーティングシステム、アプリケーション、プロセス、スレッド、およびオブジェクトなどを含むことができる。リソースは、情報、ファイル、ネットワーク接続、プロパティ、およびオブジェクトの方法などを備えうる。一般に、1つのエンティティ(「クライアント」)が別のエンティティ(「サーバ」)により所有され、あるいは管理されたリソースにアクセスしたいとき、クライアントはサーバにアクセス要求を発行する。サーバは、アクセス要求を許可するかどうかを決定するためにリソースを管理するプログラム「リソースマネージャ」を使用することができる。決定処理は、一般にアクセス制御処理と呼ばれる。リソースマネージャは、上記リソースのために予め設定されたアクセスポリシー(「使用ポリシー」)を参考にすることにより決定する。リソースマネージャ、リソース、および上記関連する使用ポリシーは、上記サーバの一部と見なされうる。リソースマネージャ、および上記関連する使用ポリシーは、アクセス制御システムを構成する。
【0003】
従来のアクセス制御システムは、どのエンティティがリソースにアクセスできるかに関して静的および閉鎖的となる傾向がある。このようなアクセス制御システムにおいて、クライアントは、通常サーバにローカルに知られた認証されたエンティティであり、決定するのに必要な情報は、一般にサーバ上でローカルに利用可能である。結果として、サーバは、局所的なアクセス制御の全体的な複雑さを管理する必要があり、管理業務のいくつかを他のエンティティに委任することができない。
【0004】
インターネットのような分散型のダイナミックなコンピュータ環境の発展は、静的および閉鎖的なアクセス制御システムを不十分なものにさせた。例えば、サーバにローカルに知られていないエンティティが、サーバ上のリソースへのアクセスを要求しうる。エンティティは、その決定処理の間使用するためにリソースマネージャに情報を供給する。エンティティにより供給された情報は、要求されたアクセスをエンティティに許可する前に、エンティティに証明するように要求するサーバからの提案への応答となりうる。このような応答は、証明(proof)とも呼ばれる。上記エンティティは、上記アクセス要求に従い信用証明記述を提供しうる。信用証明記述は、誰が上記エンティティであるかを識別するための情報を供給する。信用証明記述は、誰が上記エンティティであるか決定するのを援助するために使用される証明情報以上のものを備えうる。また、信用証明記述は、追加のポリシー記述を備えうる。ポリシー記述の認証性と完全性が現在の暗号技術により保障されることができるため、リソースの所有者は、リモートでポリシー記述を作成し、ポリシー記述をクライアントに供給する。次いで、クライアントは、リソースのリソースマネージャにポリシー記述を提示する。次いで、リソースマネージャは、ポリシー記述の正確性をチェックし、リソースの所有者と情報を交換する。結局、リソースマネージャは、ポリシー記述において表現されたようにリソースの所有者の意思に一致した方法でアクセスを供給しうる。
【0005】
暗号により保護された記述を通してリモートでポリシーを構成する権能は、アクセス制御システムが従来の閉鎖的かつ静的なモデルを逸脱する多くの機会を提供する。例えば、クライアントは、当該クライアントを予め定められたグループのメンバーであると認証するエンティティにより作成された記述を提示する可能性がある。また、クライアントは、リソースの所有者により記載され、グループのメンバーがエンティティに従いリソースにアクセスする可能性があるという言う記述を提示する可能性もある。同時に、これらの記述は、クライアントがリソースにアクセスすることができなければならないことを暗示する。このような例において、リソースマネージャは、クライアントを認証されたグループのメンバーであると認証するエンティティについての事前の知識がない可能性がある。また、リソースマネージャは、リソースの所有者がこの特定のアクセス制御決定の目的についてのみ認証権能をエンティティに委任したことを事前に知らない可能性がある。
【0006】
ISO権利表現言語(XrML 2.x)および委任論理(Delegation Logic)のような特定のアプローチは、アクセス制御決定が記述自体から象徴的に計算されるように、論理形式の記述を表現する。更に具体的には、これらのアプローチは、述語計算にこれらの基礎を有し、アクセスが所有者の意思に従い許可されなければならないかどうかについてのこれらのコンピュータ処理は、証明を発見することに等しい。証明に基づくアプローチには、いくつかの利点がある。最も重要な利点は、それがなぜアクセスが許可されるべきであるかについて数学的に証明できる理由を提供することである。もう1つの利点は、所有者の意思を見出すために、表現の意味をいくつかの他の形態に翻訳する必要がないことである。つまり、推論は表現レベルそのものでなされることができる。
【0007】
種々の委任シナリオを可能とするために、リソースマネージャは、クライアントにより供給された記述を処理する必要があり、要求されたアクセスを許可するかしないかについて決定する必要がある。複数の記述が測定可能でかつ管理可能な方法によるアクセスを暗示するのを許容するため、リソースマネージャは、クライアントにより供給された記述に内在する意味と固有の意思を論証する必要がある。このような論証処理は、「証明計算(computing the proof)」、あるいは「定理証明(theorem proving)」と呼ばれうる。
【発明の開示】
【発明が解決しようとする課題】
【0008】
しかしながら、定理証明の処理は、煩雑になる可能性がある。宣言型の認証システムは、PROLOGのような宣言型のプログラム言語と密接な関係にある。定理証明は、C++、C#、あるいは、JAVAのようなプログラムシステムに多く見られるような命令的な意味論とコンピュータ的に等しい。そのように、定理証明は、任意の計算問題、すなわち任意のコンピュータプログラムをコード化するのに使用される可能性がある。そのように、理論上の限界は、どれくらい速く証明が計算されることができるかに関して存在する。例えば、完全な述語計算のための最悪のケースでは、C++、およびC#等において答えられない質問が存在するのと同じように、証明計算時に終了することを保障できる既存のアルゴリズムが存在しない場合がある。結果として、アクセス制御に関する決定は、このクラスの問題には決して到達できない可能性がある。開いた末端は、リソースマネージャを敵の攻撃に公開しうる。例えば、クライアントは、限りないサイズの証明を構築することを含む証明計算をリソースマネージャに厳しく仕事を課すために、偽りのアサーションを組み込む可能性がある。また、偽りのアサーションは、証明の不存在を結論付けるために、リソースマネージャに時間と空間の限りない量を消費させるようにする可能性がある。リソースマネージャが終わりのない計算を入るとき、リソースマネージャは他のエンティティへのサービスを否定しなければならない。このような状況はサービス不能攻撃と呼ばれ、それはネットワーク経路サービスを遮断し、ネットワークを使用不能な状態にする可能性がある。
【0009】
それゆえ、終わりのない計算によりもたらされるサービス不能攻撃のような否定的な結果を避けるために、リソースマネージャの煩わしい計算から証明を取り除く必要がある。
【0010】
本発明は、サポート記述、すなわち安全で効果的な確認のために証明を構築するのを援助する追加のアサーションを提供することにより上述で特定された必要性について対処する。追加のアサーションは、証明計算の代わりに、リソースマネージャが証明を検査し確認することを可能にする。
【課題を解決するための手段】
【0011】
本発明の1つの態様は、サーバコンポーネント、クライアントコンポーネント、および1以上のサポート記述、すなわち追加のアサーションを備えるシステムを提供する。サーバコンポーネントは、リソースを所有し、あるいは管理する何れかのエンティティである。リソースは、誰がリソースにアクセスできるか指示する使用ポリシーに関連する。クライアントコンポーネントは、リソースにアクセスすることを要求するいずれかのエンティティである。システムは、1以上のエンティティ(「補助クライアント」)により補われる可能性がある。クライアントコンポーネントおよび/または補助クライアントは、サーバコンポーネントに信用証明記述および/または追加のアサーションのような情報を供給する。信用証明記述は、クライアントコンポーネントが誰であるかについて識別する。上記信用証明記述は、上記クライアントコンポーネントが予め定められたグループのメンバーであることを認証する記述のような補助クライアントの何れかにより供給される認証記述も含みうる。クライアントコンポーネントは、サーバコンポーネントのための信用されたエンティティでない可能性がある。サーバコンポーネントがクライアントコンポーネントにより供給される情報から生じる証明が正しいことを確認できる限り、サーバコンポーネントはクライアントコンポーネントに要求されたアクセスを許可する。
【0012】
1以上のアサーションは、クライアントコンポーネントが要求されたアクセスを許可されるべきであることを実証する証明を構築する方法を指示するために使用される。1以上のアサーションは、サーバコンポーネントにより供給される可能性があり、要求されたアクセスが許可されるべきであることを実証する証明を構築するために、クライアントコンポーネントにより使用される可能性がある。あるいは、クライアントコンポーネントは、次いでアクセス要求が許可されるべきであることを実証する証明を構築するサーバコンポーネントに、1以上のアサーションと信用証明記述を供給することができる。アサーションは、値を変数に割り当てることができ、信用証明あるいは使用ポリシーの1つに必須の節を証明することができる。本発明の一態様によれば、1以上のアサーションは、要求されたアクセスが許可されるべきかどうかを決定するのに必要な証明の全ての代わりに、その一部のみを構築する方法を指示することができる。
【0013】
本発明の別の態様は、クライアントコンポーネントからのアクセス要求を受信するとすぐに、サーバコンポーネントがクライアントコンポーネントに提案を送信する方法を提供する。提案は、クライアントコンポーネントが要求されたアクセスを許可されるべきであることを実証する証明を構築するのを援助するさらなるアサーションを含む。
【0014】
本発明の更なる別の態様は、信用証明記述と追加のアサーションに従い、クライアントコンポーネントがサーバコンポーネントにアクセス要求を送信する方法を提供する。追加のアサーションは、サーバコンポーネントに要求されたアクセスを許可するべきかどうかの結果を引き出すために信用証明記述を使用する方法について指示する。
【0015】
追加のアサーションを供給するのが、クライアントコンポーネント、あるいはサーバコンポーネントであるかどうかに関わりなく、サーバコンポーネントは追加のアサーションを適用することから生じる証明を検査し、証明が正しいかどうかを決定する。もし証明が正しければ、アクセス要求が許可される。そうでなければ、アクセス要求は拒否される。要約すると、本発明は、サポート記述、すなわち証明を安全に効率的に能率的に構築し確認する援助となる追加のアサーション、を提示することにより証明の煩わしい計算により提示される問題を軽減する。従って、本発明は、要求されたアクセスを許可するべきかどうかを決定する証明の計算の代わりに、リソースマネージャの仕事を単純に証明の有効性をチェックすることに減少する。
【0016】
上述の態様と本発明に付随する利点の多くは、添付の図面と組み合わされるとき、以下の詳細な説明を参照にしてよりよく理解されるとさらにすぐに理解されるようになる。
【発明を実施するための最良の形態】
【0017】
図1は、本発明の態様を実施する例示的なシステム100を示すブロック図である。図1に示すように、システム100は、サーバ102コンポーネント(「サーバ」)と、クライアント104コンポーネント(「クライアント」)と、任意の1以上の補助クライアント112とを備える。サーバ102は、少なくとも1つのリソース106と、誰が上記リソース106にアクセスできるかを指示する対応する使用ポリシー108とを備える。サーバ102は、上記クライアント104および/または補助クライアント112により提出されるアクセス要求と信用証明118を検査するリソースマネージャ110を更に備える可能性がある。クライアント104は、サーバ102上の上記リソース106にアクセスすることを要求する何れかのエンティティである。
【0018】
システム100は、1以上の補助クライアント112により補助される可能性がある。補助クライアント112は、サーバ102かあるいはクライアント104の何れかに情報を提供することができる。例えば、もしクライアント104が企業である場合、補助クライアント112はその企業の子会社あるいはパートナーである可能性がある。本発明の典型的な実施形態において、補助クライアント112はそれ自身に共同事業者を有する可能性があり、そのそれぞれはそれ自身に関連要素などを有する可能性もある。関連要素の全ての異なる層は、全体で補助クライアント112と見なされる。
【0019】
クライアント104は、リソース106にアクセスするために、リソースマネージャ110にアクセス要求および/または信用証明118を送信する。信用証明、すなわち信用証明記述は、クライアント104がリソース106にアクセスする資格があることを証明するために使用される。信用証明記述は、クライアント104および/または1以上の補助クライアント112で供給されうる。補助クライアント112は、クライアント104に、あるいは直接サーバ102に信用証明を送信しうる。リソースマネージャは受信されたアクセス要求および/または信用証明118を処理し、使用ポリシー108に従い受信されたアクセスを許可するべきかどうかを決定する。次いでリソースマネージャは、アクセス要求に関する決定120をクライアント104に送信し返す。
【0020】
更に重要なことは、本発明の典型的な実施形態において、システム100は、更に追加のアサーション114を具備する。追加のアサーションは、クライアント104および/または1以上の補助クライアント112によりサーバ102に供給されうる。このような状況においては、追加のアサーション114は、リソースマネージャ110に使用ポリシー108により特定される必要条件を満たすために受信された信用証明を処理する方法について指示する。本発明のいくつかの典型的な実施形態において、追加のアサーション114は、リソースマネージャ110がクライアント104からアクセス要求を受信するとすぐに、リソースマネージャ110によりクライアント104へ供給されうる。クライアント104は、リソース106へのアクセスを要求するための証明を構築するために、追加のアサーション114を使用する。追加のアサーション114は、アクセス要求を許可するべきかどうか決定するための証明計算から、リソースマネージャ110を開放する。その代わりに、追加のアサーション114は、リソースマネージャが証明の正確さを検査するのみとすることを可能にする。図4は、典型的な追加のアサーションを示し、詳細は後述される。
【0021】
システム100は、本発明がどこで適用できるかについて示すただの典型的な実施形態である。システム100のコンポーネントは、単一のコンピュータシステム上に存在する可能性があり、ネットワーク上に分散される可能性もある。一般的に言って、システム100は、サーバ102のようなコンポーネントがリソース106に要求されたアクセスを許可する決定120のような決定を行うための情報を提供するためにクライアント104のような別のコンポーネントを必要とする何れかの状況の中にでも存在することができる。そのような状況は、例えば、別のサーバマシンへのサーバマシン、別のクライアントマシンへのクライアントマシン、同じマシン内の2つのエンティティ、および信頼されたネットワーク内の2つの異なる処理などを具備する。要約すると、本発明は1つのエンティティが決定を行うために別のエンティティから情報を必要とするいずれの場合でも適用可能である。
【0022】
本発明の典型的な実施形態は、単なるデータのみとは対照的に、論理形式により使用ポリシー、信用証明記述、およびアサーションを表現するアクセス制御言語を使用する。分散型のアクセス制御システムにおいて、クライアント104は、リソースへのアクセスを要求するために必要な信用証明記述を発行を補助クライアント112の複数の層に委任する可能性がある。もしデータが信用証明記述のために使用された場合には、1つのエンティティから別のエンティティへデータを転送するそれぞれのレベルにおいて、データの意味が検査され、および計算される必要がある。その一方で、もし信用証明記述が論理フォーマットで表現された場合には、分散型のアクセス制御システムは、信用証明記述の表現が固有の意味を明らかにする時ので、滑らかに、そして無限にスケールすることができる。
【0023】
本発明の典型的な実施形態において、例えば使用ポリシー記述および信用証明記述のような記述は、多くのアクセス制御言語で広く使用される3つの概念を使用する。第1の概念は、ポリシー記述の変数の使用である。例えば、リソース106のための使用ポリシー108は、「Paramaは、Xを読むことができる」と記述する可能性があり、ここで、変数「X」は一般的に定量化された変数、すなわち変数Xはどんな値でもとることができることを示す。ポリシー記述は、変数Xがとることができる値を制限する制約を具備する可能性もある。例えば、使用ポリシー108は、「Paramaは、Xがテキストファイルである、Xを読むことができる。」と記述する可能性がある。本発明の記述により利用される第2の概念は、ポリシー記述が誰がリソースにアクセスするための信用証明記述あるいはアサーションを証明できるかを特定する権能を有するということである。例えば、使用ポリシー108は、「acme.comは、リソース106へのアクセスを許可するアサーションを行うができる。」と記述する可能性がある。本発明の典型的な実施形態における記述は、記述が他のアサーションに基づくアサーションを含むことを許容する第3の概念を使用する。例えば、使用ポリシー108は、「Paramaは、そのParamaが企業Aに従い、企業Aの従業員であるならば、リソース106にアクセスすることができる。」と記述する可能性がある。
【0024】
本発明の典型的な実施形態において、上記クライアント104および/または1以上の補助クライアント112は、関連する信用証明記述を所有しうる。あるいは、信用証明記述は、他のどこかに記録されうる。次いで、信用証明記述への参照のみが、サーバ102に送信される。
【0025】
図2〜5は、典型的な使用ポリシー記述200、信用証明記述300、追加のアサーション400、および使用ポリシー記述200と信用証明記述300と追加のアサーション400を統合した統合記述500を示す。図2〜5において使用される典型的な記述は、上述の3つの概念を表現し、あるいは組み合わせる。図2〜5は、図1を参照して記載される。これらの典型的な記述において使用される実施形態は、システム100の典型的なエンティティを反映する。例えば、「Contosa.com」はサーバ102である可能性があり、「Parama」は、「Contosa.com」上のウェブサービスにアクセスすることを要求するクライアント104である可能性があり、「Fabrikam.com」と「Fabrikam.com」のパートナーである「Acme.com」は、補助クライアント112である可能性がある。
【0026】
図2は、使用ポリシー108のような使用ポリシーにより供給されうる1つの典型的な使用ポリシー記述200を示す。使用ポリシー記述200は、「Contosa.com」が、「XがFabrikam.comにより許可されるゴールドスターメンバーであるならば、XはContosa.comウェブサービスにアクセスすることができる。」と言うことを記述する。Xが「Contosa.com」ウェブサービスにアクセスすることを要求するクライアントであると仮定する。使用ポリシー記述200に従い、もしXが「Fabrikam.com」により許可されるゴールドスターメンバーであることを証明することができれば、次いでXは「Contosa.com」ウェブサービスにアクセスすることができる。
【0027】
システム100のような分散型のアクセス制御システムにおいて、分散のレベルが増加するとき、サーバ102はクライアント104を知らない可能性がある。サーバ102は、クライアントについての記述を作成するために、他のエンティティに頼る可能性がある。それゆえ、サーバ102がクライアント104から受信する信用証明記述は、クライアント104および/または1以上の補助クライアント112を含むいくつかのエンティティにより供給される信用証明記述を備える可能性がある。図3は、サーバ「Contosa.com」がクライアント「Parama」および/または補助クライアント「Fabrikam.com」および「Acme.com」から受信する可能性のある1組の信用証明記述300を示す。図3に示すように、信用証明記述300Aは、「Fabrikam.com」が「もしXがFabrikam.comのパートナーであるならば、Xはゴールドスターメンバー証明書を発行することができる。」と言うことを記述する。この記述は、「Fabrikam.com」が、「Fabrikam.com」のパートナーが誰であるかを指定することも暗示している。信用証明記述300Bは、「Fabrikam.com」が「Acme.comは、Fabrikam.comパートナーである。」と言うことを記述する。信用証明記述300Cは、「Acme.com」が「Paramaは、ゴールドスターメンバーである。」と言うことを記述する。
【0028】
ここで、「Parama」が「Contosa.com」にアクセス要求し、信用証明記述300を提示すると仮定する。従来通りに、「Contosa.com」のリソースマネージャは、「Parama」が要求されたアクセスを有するべきか、有してはならないかの証明を計算するために使用ポリシー記述200と信用証明記述300を通して機能する必要がある。上記リソースマネージャは、どの信用証明記述が使用ポリシーに適用できるかを決定するために、信用証明記述のそれぞれを通して見る。上記信用証明記述は、リソースマネージャが決定をするのを可能にする転送論理を供給する。もしリソースマネージャが発生する可能性のある多くの信用証明記述を受信するならば、例えば補助クライアントの多くの層が「Parama」への信用証明記述の供給に関わるとき、リソースマネージャにより実行される計算処理は、任意に難しくなる可能性がある。多くの信用証明記述が存在するとき、サーバが証明を促すように信用証明記述を配置することは困難になる。たぶん、計算処理は、決して終わらない。サーバ102は限りない検索スペースを潜在的に必要とする可能性があり、実際に、要求されたアクセスを許可するべきかどうか判明するのにどれくらい時間がかかるかについて、演繹的に知ることはできない。
【0029】
本発明の一態様は、関連する信用証明記述を使用して証明を構築する方法を指示する追加のアサーションを提供することによりこの問題に対処する。例えば、アサーションは使用ポリシー記述において値を変数に割り当てることができる。アサーションは、またユーザポリシー記述において1つの必須の節を指示することもできる。図4は、典型的なクライアント「Parama」が典型的なサーバ「Contosa.com」に供給する可能性のある典型的な追加のアサーション400を示す。図4に示すように、アサーション400Aは、「記述#1においてXをParamaと入れ替えなさい」と記述する。アサーション400Bは、「記述#2においてXをAcme.comと入れ替えなさい」と記述する。アサーション400Cは、「記述#6を満足するために、記述#3を使用しなさい」と記述する。アサーション400Dは、「記述#7において記述#4を正しいと判定しなさい」と記述する。アサーション400Eは、「記述#5を満足するために、記述#8を使用しなさい」と記述する。
【0030】
追加のアサーション400は、証明に到達するために信用証明記述300をまとめる方法を「Contosa.com」のリソースマネージャに通知する。その結果、「Parama」が信用証明記述300のために可能な結果のすべての種類を検索することにより「Contosa.com」ウェブサービスにアクセスできるかどうか立証するための潜在的に未決定な量の仕事に向かう代わりに、「Contosa.com」ウェブサービスのリソースマネージャは、ただ明白な追加のアサーション400の指示従う必要があるだけである。追加のアサーションは、このように本発明が証明に到達するための使用ポリシーと信用証明記述を処理する組織的で効率的な方法を提供することを可能にする。
【0031】
図5は、ユーザポリシー記述200と信用証明の統合記述300上の追加のアサーション300における指示を実行する「Contosa.com」のリソースマネージャから生じた統合記述500を示す。図5に示すように、統合記述500Aは、「Contosa.com」が「ParamaがFabrikam.com.により許可されるゴールドスターメンバーであるならば、Paramaはリソースにアクセスすることができる」と言うことを記述する。統合記述500Bは、「Fabrikam.com」が「Acme.comがFabrikam.com.によるFabrikam.comのパートナーであるならば、Acme.comはゴールドスターメンバー証明書を発行することができる」と言うことを記述する。統合記述500Cは、「Fabrikam.com」が「Acme.comは、ゴールドスターメンバー証明書を発行することができる」と言うことを記述する。統合記述500Dは、「Fabrikam.com」が「Paramaは、ゴールドスターメンバーである」と言うことを記述する。統合記述500Eは、このように「Contosa.com」が「Paramaは、Contosa.comウェブサービスにアクセスすることができる。」と言うことと結論を下す。
【0032】
それゆえ、典型的なサーバ「Contosa.com」のためのリソースマネージャは、「Contosa.com」が「Contosa.com」ウェブサービスへの「Parama」のアクセスを暗黙のうちに認証したことを直接的な方法で結論付けるために、追加のアサーション400を使用することができる。追加のアサーション400のそれぞれに適用するとき、「Contosa.com」がチェックする必要とすることは、このアサーションを適用することが可能であるということだけである。言い換えると、アサーションを提示するエンティティは、使用ポリシー記述200と信用証明記述300により暗示されない何かを「Contosa.com」にさせることができない。
【0033】
追加のアサーションは、サーバかクライアントの何れかに提供されることができる。クライアントあるいは補助クライアントからの追加のアサーションを受信するとすぐに、サーバのリソースマネージャは、証明を構築するために追加のアサーションを使用し、次いで証明を計算する代わりに証明を検査する。本発明の典型的な実施形態において、サーバが一組の信用証明記述と追加のアサーションを受信し、読み通すとすぐに、サーバは要求されたアクセス要求を許可するべきかどうかを把握することができる。
【0034】
あるいは、サーバはクライアントに追加のアサーションを供給することができる。クライアントからアクセス要求を受信するとすぐに、サーバは提案で応じることができる。上記提案は、要求されたアクセスを獲得するためにサーバのために証明を構築する方法をクライアントに指示する追加のアサーションを含む可能性がある。このように、サーバは、クライアントから必要とされた証明を受信する。サーバがする必要があることは、証明が要求されたリソースと関連する使用ポリシーに従い有効な結論を提供するかどうか決定するために、証明を検査することだけである。
【0035】
本発明の典型的な実施形態において、サーバはクライアントにより供給される証明を信頼する必要はない。サーバは、信用証明記述と追加のアサーションの正確さをチェックすることができる。これは、サーバのリソースマネージャが証明でないものを証明であるとだまされて信じることはできないので、信用証明記述と追加のアサーションが信頼されたエンティティから来る必要がないことを意味する。アサーションが実施をリソースマネージャに頼む段階は、使用ポリシーにおける変数の置き換えのような既に使用ポリシーにより暗示される動作しか、作成するべきではない。それゆえ、クライアントは間違いの証明に到達するためにサーバを誘導するために、サーバにうそをつくことができない。もし供給される追加のアサーションが間違いならば、サーバは証明を発見することができない。追加のアサーションは、サーバが証明を作成するのを援助できるだけであり、偽の証明を作成するようにサーバをだますことはできない。もし追加のアサーションが間違いならば、サーバは証明に到達することができない。これは、迷路を進むことに類似している。証明計算は、困難でありうる迷路から経路を発見するようである。反対に、与えられた経路が正しい経路であるかどうか確認することは、より簡単である。もし与えられた経路が迷路の出口に通じるならば、与えられた経路は正しい経路である。追加のアサーションは、「与えられた経路」に等しい。もしそれらがサーバを証明に到達させられるならば、与えられた追加のアサーションの一組は正しく、もしサーバがそれらを使用して証明に到達することができなければ、与えられた追加のアサーションは間違いであり、無視される。
【0036】
本発明の典型的な実施形態において、サーバあるいはクライアントにより提供される追加のアサーションは、要求されたアクセスを許可するべきかどうかを決定するために必要な全ての証明の代わりに、一部分の証明のみを作成する可能性がある。例えば、サーバは何れのエンティティにもその使用ポリシーを明らかにしないことを決定する可能性がある。従って、サーバは、クライアントが必要に応じて隠されたユーザポリシーによりクライアントの識別を証明することを可能とする追加のアサーションを供給するのみである。例えば、「Contosa.com」は使用ポリシー記述200を明らかにしないことを決定する可能性がある。それゆえ、「Contosa.com」は、使用ポリシー記述200についての知識を有さないクライアントで、それが「Fabrikam.com」により認証されるゴールドスターメンバーであることを証明することを典型的なクライアント「Parama」に要求する。あるいは、サーバは、定理証明で上述されたような終りのない計算の危険となりやすい従来の定理証明器と関連する。そのような危険を軽減するために、追加のアサーションは、証明の「難しい」部分を構築するために使用されることができ、従来の定理証明の単純で、安全な変形をマイナーな隙間を満たすために残したままにしておく。このようなアプローチにおいて、証明の安全で表現力豊かな計算を提供するために、定理の検証と証明は一緒に働く。
【0037】
本発明の典型的な実施形態において、図1の中でも示されるサーバ102は、監査コンポーネント116を含む。監査コンポーネント116は、要求されたアクセスを許可するか、許可しないかについてのリソースマネージャの論理処理を記録して、保存する。監査コンポーネント116により記録される情報は、リソースマネージャが結論に到達するために処理する論理処理および/または様々な記述を識別する可能性がある。それゆえ、監査情報は、誰がリソースにアクセスしたかどうかだけでなく、なぜアクセスが許可されたかについても明らかにする可能性がある。監査情報は、アクセス制御システムがどのように動作するか、誰がリソースを要求したか、なぜ要求が許可されたか、およびどのように要求が許可されたかを分析することに役立つ。例えば、監査情報は、「Parama」が「Contosa.com」ウェブサービスの利用を要求したことと、「Parama」が「Fabrikam.com」により認証されるゴールドスターメンバーであることが証明されたのでアクセスが許可されたこととを提供する可能性がある。本発明の典型的な実施形態において、監査情報は、使用された追加のアサーションのセットを含む。
【0038】
図6は、例えばサーバ102のようなサーバがアクセス要求を処理し、アクセス要求を許可するべきかどうかの決定に到達する典型的なルーチン600を示す。具体的には、ルーチン600は、サーバがアクセス要求を受信したかどうかを決定することにより開始される。決定ブロック602を参照する。もしサーバがアクセス要求を受信しない場合には、ルーチン600は更に進まない。もしサーバがアクセス要求を受信した場合には、ルーチン600は、クライアントに要求されたアクセスが許可される前に、サーバがアクセス要求を送信するクライアントに証明することを望む提案を応答することに進む。ブロック604を参照する。提案は、要求されたリソースのための使用ポリシーを識別する可能性がある。提案は、これらの使用ポリシーにおいて複数の使用ポリシー記述といくつかの変数の間の関係を識別する証明構築を含む可能性がある。提案は、クライアントに証明構築を具現化する方法を指示する追加のアサーションを更に具備する可能性がある。例えば、追加のアサーションは、クライアントに、使用ポリシー記述において状態を満足する方法および/または使用ポリシー記述において変数のための特定の値を発見する方法について提案する可能性がある。
【0039】
次いで、ルーチン600は、提案に応答してクライアントから証明を受信するために待機する。ルーチン600は、そのような証明を受信したかどうかを決定する。決定ブロック606を参照する。もし決定ブロック606の答えが「NO」である場合には、ルーチン600はそれ以上進まない。もしルーチン600がクライアントから証明を受信する場合には、ルーチン600は証明の検査に進む。ブロック608を参照する。受信された証明の検査において、ルーチン600は、証明が正しいかどうか決定する。決定ブロック610を参照する。正しい証明は、クライアントが要求されたリソースにアクセスする権利があることと、証明が真実の記述を構成することとを実証する。もし決定ブロック610の答えが、受信された証明が正しいことを意味する「YES」である場合には、ルーチン600は、アクセス要求の許可に進む。ブロック614を参照する。一方、決定ブロック610の答えが、受信された証明が誤っていることを意味する「NO」である場合には、ルーチン600は、アクセス要求を拒否する。ブロック612を参照する。次いで、ルーチン600は終了する。
【0040】
図7は、クライアントがサーバのリソースにアクセスするためのサーバからの許可を求める典型的なルーチン700を示す。具体的には、ルーチン700は、クライアントがサーバのリソースにアクセスしたいかどうかを決定することにより開始される。決定ブロック702を参照する。もし答えが「NO」である場合には、ルーチン700はさらに進まない。もしクライアントがサーバのリソースにアクセスしたい場合には、ルーチン700はアクセス要求をサーバに送信する。ブロック704を参照する。次いで、ルーチン700は、サーバから提案を受信するために待機する。ルーチン700は、提案が受信されたどうかを決定する。決定ブロック706を参照する。もし答えが「NO」である場合には、ルーチン700はさらに進まない。もしクライアントがサーバから提案を受信する場合には、ルーチン700は提案に従い証明の構築に進む。ブロック708を参照する。証明は、提案において特定される必要条件を満足するデータと論理段階を含む。もし提案が証明を構築する方法を指示する追加のアサーションを含む場合には、証明は追加のアサーションに従い構築される。もし受信された提案が追加のアサーションを含まない場合には、構築された証明はクライアントが誰であるかを識別する信用証明記述を含む。構築された証明は、サーバにアクセス要求を許可するべきかどうかの決定に到達するために供給された信用証明記述を使用する方法について指示する追加のアサーションを含む可能性がある。次いで、ルーチン700は、構築された証明をサーバに送信する。ブロック710を参照する。ルーチン700は終了する。本発明の典型的な実施形態において、もしクライアントがサーバがアクセス要求を決定するために何を必要とするかを前もって知っている場合には、クライアントは、アクセス要求をサーバに送信するときに必要な信用証明記述と追加のアサーションも供給する。その結果、サーバは提案を送信する必要がない。
【0041】
本発明の好ましい実施形態が示され、記述される一方で、様々な変化が本発明の精神および範囲から逸脱することなくその中でなされることができることはいうまでもない。
【図面の簡単な説明】
【0042】
【図1】本発明の態様を実施するための例示的なシステムを示すブロック図である。
【図2】典型的な使用ポリシー記述を示すテキストの図である。
【図3】クライアントにより供給される典型的な信用証明記述を示すテキストの図である。
【図4】アクセス要求の証明を援助する典型的な追加のアサーションを示すテキストの図である。
【図5】図2において示された使用ポリシー記述と、図3において示された信用証明記述と、図4において示された追加のアサーションとを統合する結果である典型的な統合記述を示すテキストの図である。
【図6】サーバがアクセス要求を処理するための典型的なルーチンを示すフローチャートである。
【図7】クライアントがサーバ上でリソースにアクセスする許可を求めるための典型的なルーチンを示すフローチャートである。

【特許請求の範囲】
【請求項1】
変数および/または必須の節を含む論理形式を使用するアクセス制御言語を採用するシステムであって、
少なくとも1つのリソースおよび前記リソースにアクセスするための関連する使用ポリシーとリンク付けされたサーバコンポーネントと、
前記リソースへのアクセスを要求するクライアントコンポーネントと、
前記要求されたアクセスが許可されるべきであることを実証する証明を構築する方法を指示する1以上のアサーションと
を備えることを特徴とするシステム。
【請求項2】
前記クライアントコンポーネントは、サーバコンポーネントにとって信用されたエンティティではないことを特徴とする請求項1に記載のシステム。
【請求項3】
少なくとも1つの補助クライアントを更に備え、前記補助クライアントは前記クライアントコンポーネントのために情報を供給する任意のエンティティであることを特徴とする請求項1に記載のシステム。
【請求項4】
前記証明は、全ての必要な情報が受信された後でのみ構築されることを特徴とする請求項3記載のシステム。
【請求項5】
前記1以上のアサーションは、値を変数に置き換えることを指示することを特徴とする請求項1記載のシステム。
【請求項6】
前記1以上のアサーションは、少なくとも1つの必須の節を証明することを指示することを特徴とする請求項1記載のシステム。
【請求項7】
前記1以上のアサーションは、必須の節を再帰的に証明することを指示することを特徴とする請求項1記載のシステム。
【請求項8】
前記1以上のアサーションは、前記要求されたアクセスが許可されるべきであることを実証する証明の一部のみを構築する方法を指示することを特徴とする請求項1記載のシステム。
【請求項9】
前記1以上のアサーションは、前記要求されたアクセスが許可されるべきであることを実証する証明を構築するクライアントコンポーネントにより使用されることを特徴とする請求項1記載のシステム。
【請求項10】
前記1以上のアサーションは、前記要求されたアクセスが許可されるべきであることを実証する証明を構築するサーバコンポーネントにより使用されることを特徴とする請求項1記載のシステム。
【請求項11】
前記サーバコンポーネントは、前記要求されたアクセスがなぜ許可され、あるいは拒否されるのかを記録する監査コンポーネントをさらに備えることを特徴とする請求項1記載のシステム。
【請求項12】
前記監査コンポーネントは、前記証明を記録することを特徴とする請求項11記載のシステム。
【請求項13】
前記サーバコンポーネントは、前記クライアントコンポーネントと少なくとも1つの補助クライアントからなるグループから選択された供給者から前記クライアントコンポーネントに関する少なくとも1つの信用証明記述を受信することを特徴とする請求項1記載のシステム。
【請求項14】
前記信用証明記述は前記供給者以外の位置で記録され、前記供給者は前記信用証明記述を前記サーバコンポーネントに供給する間、前記信用証明記述を参照することを特徴とする請求項1記載のシステム。
【請求項15】
使用ポリシーに関連付けされたリソースと関連するエンティティ(「サーバ」)と、前記リソースにアクセスすることを要求するエンティティ(「クライアント」)との間で通信するコンピュータ実行方法であって、
前記サーバが前記クライアントから前記リソースへのアクセス要求を受信するとすぐに、前記サーバは、前記クライアントが前記アクセス要求を許可されるべきであることを実証する証明を構築するのに前記クライアントの援助となる追加のアサーションを含む提案を前記クライアントに送信することと、
前記証明を受信するとすぐに前記サーバが前記証明を検査することと、
もし前記証明が正しければ前記サーバが前記アクセス要求を許可することと、
もし前記証明が正しくなければ前記サーバが前記アクセス要求を拒否することと
を備えることを特徴とするコンピュータ実行方法。
【請求項16】
前記サーバから前記提案を受信するとすぐに、前記クライアントが前記証明を構築するために前記提案に含まれる追加のアサーションを使用する段階をさらに備えることを特徴とする請求項15記載のコンピュータ実行方法。
【請求項17】
使用ポリシーに関連付けされたリソースと関連するエンティティ(「サーバ」)と、前記リソースにアクセスすることを要求するエンティテイ(「クライアント」)との間で通信するコンピュータ実行方法であって、
前記クライアントが信用証明記述および1以上の追加のアサーションに従って前記サーバへアクセス要求を送信する段階を備え、1以上の追加のアサーションが前記要求されたアクセスが許可されるべきであることを実証する証明を構築する方法を前記サーバに指示することを特徴とするコンピュータ実行方法。
【請求項18】
前記クライアントあるいは前記サーバ以外のエンティティが、いくつかの前記信用証明記述および前記1以上の追加のアサーションを供給する段階を備えることを特徴とする請求項17記載のコンピュータ実行方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公表番号】特表2008−538641(P2008−538641A)
【公表日】平成20年10月30日(2008.10.30)
【国際特許分類】
【出願番号】特願2008−507919(P2008−507919)
【出願日】平成18年4月20日(2006.4.20)
【国際出願番号】PCT/US2006/015116
【国際公開番号】WO2006/116103
【国際公開日】平成18年11月2日(2006.11.2)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.JAVA
【出願人】(500046438)マイクロソフト コーポレーション (3,165)
【Fターム(参考)】