JP2003536176A - 証拠ベースのセキュリティポリシーマネージャ - Google Patents

証拠ベースのセキュリティポリシーマネージャ

Info

Publication number
JP2003536176A
JP2003536176A JP2002503798A JP2002503798A JP2003536176A JP 2003536176 A JP2003536176 A JP 2003536176A JP 2002503798 A JP2002503798 A JP 2002503798A JP 2002503798 A JP2002503798 A JP 2002503798A JP 2003536176 A JP2003536176 A JP 2003536176A
Authority
JP
Japan
Prior art keywords
code
code group
permission
policy
assembly
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2002503798A
Other languages
English (en)
Other versions
JP2003536176A5 (ja
JP4738708B2 (ja
Inventor
エー.ラマチア ブライアン
エム.コーンフェルダー ローレン
ダレル フィー グレゴリー
ジェー.ツートンギ マイケル
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2003536176A publication Critical patent/JP2003536176A/ja
Publication of JP2003536176A5 publication Critical patent/JP2003536176A5/ja
Application granted granted Critical
Publication of JP4738708B2 publication Critical patent/JP4738708B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Databases & Information Systems (AREA)
  • Storage Device Security (AREA)
  • Computer And Data Communications (AREA)
  • Golf Clubs (AREA)
  • Road Signs Or Road Markings (AREA)

Abstract

(57)【要約】 証拠ベースのポリシーマネージャが、リソースロケーションから受け取られたコードアセンブリに関する許可交付セットを生成する。ポリシーマネージャは、ランタイム環境の確認モジュールおよびクラスローダとの組み合わせで、コンピュータシステム(例えば、WebクライアントまたはWebサーバ)において実行される。コードアセンブリに関して生成された許可交付セットが、ランタイム呼出しスタックの中で適用されて、システムが、コードアセンブリによる所与のシステム動作が許可されるかどうかを判定するのを助ける。コードアセンブリも証拠もともに、ローカルのオリジンから、またはネットワーク(例えば、インターネット)を介して遠隔のリソースロケーションから受け取られる。ポリシーマネージャは、セキュリティポリシー指定を構文解析するための実行モジュールと、1つまたは複数のコード階層を生成するための実行モジュールと、1つまたは複数のコードグループにおける受け取られたコードアセンブリのメンバシップを評価するための実行モジュールと、このメンバシップ評価に基づいて許可交付セットを生成するための実行モジュールとを含むことが可能である。ポリシーマネージャは、セキュリティポリシー指定の中で指定されたセキュリティポリシー定義に従って複数のポリシーレベルを生成することができる。各ポリシーレベルからの許可をマージして、コードアセンブリに関連する許可交付セットを生成し、実行スレッドのランタイム呼出しスタックの中で適用することができる。

Description

【発明の詳細な説明】
【0001】 本出願は、米国以外のすべての国々を指定する米国籍、米国所在のマイクロソ
フトコーポレーション(MICROSOFT CORPORATION)による
PCT出願として出願されている。
【0002】 (技術分野) 本発明は、一般に、コンピュータセキュリティに関し、より詳細には、オンラ
インコンピュータ活動に関する証拠ベースのセキュリティポリシーマネージャに
関する。
【0003】 (発明の背景) ユーザのシステムに対する許可のないアクセスを許すなどのセキュリティリス
クが、多くのオンライン活動に付き物である。したがって、ユーザのシステムを
保護するセキュリティ機構が開発されている。例えば、ユーザは、インターネッ
トからオンデマンドアプリケーションをダウンロードし、ブラウザ内からそのア
プリケーションを実行することができる。ユーザのシステムリソース(例えば、
ユーザのハードディスク上のディレクトリ)に対する許可のないアクセスを防止
するため、ユーザのシステムは、ブラウザ環境内で実施される「サンドボックス
」セキュリティによって保護されている。サンドボックスセキュリティは、セキ
ュアな領域の外部に常駐するシステムリソースにアプリケーションがアクセスす
るのを防止するようにアプリケーションが実行されるのが可能な、コンピュータ
メモリの限られたセキュアな領域に関わる。
【0004】 ただし、一部の状況では、ユーザは、ダウンロードされたアプリケーションが
、ユーザのシステム内部のあるリソースに制御されたアクセスを行うのを許すこ
とを望む。例えば、ユーザは、オンデマンドワードプロセッシングアプリケーシ
ョンを使用してドキュメントを生成した後、そのドキュメントをユーザのシステ
ムの中のディレクトリに保存するのを望む。
【0005】 そのようなアプリケーションにユーザのシステムに対するセキュアで、制御さ
れたアクセスを提供するための既存の手法は、あまりにも扱いにくく、柔軟性を
欠いている。一方では、例えば、所与のアプリケーションが許可セットに関連付
けられるセキュリティポリシーが、ポリシーデータベース内部で定義される。こ
のセキュリティポリシーは、オリジン情報、署名情報、およびアクセス制約との
組み合わせで、アプリケーションとユーザのシステムの間の「信頼される」関係
を定義するのに役立つ。
【0006】 次の例を考慮されたい。
【0007】
【表1】
【0008】 この例では、ソースロケーション“www.BobsWidgets.com
”からのアプレットが、BobsCertificateの中に含まれる公開鍵
に対応する秘密鍵で署名されている場合、このアプレットに、あるファイルアク
セス許可を交付する。アプレットは、従来、オペレーティングシステム内から直
接にではなく、ブラウザ内から実行されるように設計されたプログラムである。
このアプレットには、ホストシステム上の「/tmp」ディレクトリからファイ
ルを読み取り、また「/tmp/bwdir」ディレクトリの中にファイルを作
成し、書き込む許可が交付される。別の一般的な許可修飾子が、「実行する」許
可である。その他のセキュリティポリシー指定により、例えば、アプリケーショ
ンのソースに関わらず、またはアプリケーションに署名されているか、署名され
ていないかに関わらず、任意のシステムロケーションにおける任意のファイルに
アクセスする広い許可が交付されることが可能である。
【0009】 そのような手法では、セキュリティポリシーは、特に静的であり、長期間にわ
たり固定されたままである。インターネットを介するオンデマンドアプリケーシ
ョン処理がより一般的になるにつれ、実質的に、静的セキュリティポリシーでは
、あまりにも制約がある。さらに、実際に行われる(通常、システム管理者によ
って行われる)頻度の低いセキュリティポリシー変更は、セキュリティの弱点ま
たはセキュリティギャップを導入する、または前にアクセスの許可を受けたアプ
リケーションにアクセスを行うのを拒否することにより、許可されたアプリケー
ションが実行されるのが妨げられる可能性がある。このため、既存のセキュリテ
ィアーキテクチャは、ユーザのシステムに対するある量のアクセスをアプリケー
ション(またはアプリケーションの所与のコードアセンブリ)に任せることがで
きるかどうかを動的に、また柔軟に判定することができない。
【0010】 (発明の概要) 本発明によれば、以上の問題およびその他の問題が、リソースロケーションか
ら受け取られたコードアセンブリに対して許可交付セットを生成する証拠ベース
のポリシーマネージャによって解決される。コードアセンブリに関連する証拠は
、セキュリティポリシー指定の中で定義されるコードグループの集合との関係で
評価される。証拠に基づき、ポリシーマネージャは、コードグループ集合の1つ
または複数のコードグループにおけるそのコードアセンブリのメンバシップを判
定する。各コードグループは、コードグループ許可セットに関連している。コー
ドアセンブリがメンバであると見なされるコードグループに関するコードグルー
プ許可セットを使用して、そのコードアセンブリに関する許可交付セットが生成
される。その後、この許可交付セットは、ランタイム呼出しスタックの中で使用
されて、コードアセンブリによる所与のシステムオペレーションが、セキュリテ
ィポリシーによって許可されるかどうか(すなわち、許可交付セットが、そのシ
ステムオペレーションに関連する許可要件を満たすかどうか)が判定される。例
えば、保護されたディレクトリに書き込むには、コードアセンブリは、その保護
されたディレクトリに対する書込みオペレーションを許可する許可交付セットに
関連付けられていなければならない。
【0011】 本発明の実施形態では、リソースロケーションから受け取られたコードアセン
ブリに関する許可交付セットを生成するための方法が提供される。セキュリティ
ポリシー指定が、複数のコードグループを定義するポリシーマネージャによって
受け取られる。各コードグループは、コードグループ許可セットに関連している
。また、コードアセンブリに関連する証拠も、ポリシーマネージャによって受け
取られる。この証拠は、コードグループとの関係で評価されて、コードグループ
の1つまたは複数におけるコードアセンブリのメンバシップが判定される。1つ
または複数のコードグループ許可セットに基づいて許可交付セットが生成され、
各コードグループ許可セットが、コードアセンブリがメンバであるコードグルー
プに関連付けられるようになる。
【0012】 本発明の別の実施形態では、リソースロケーションから受け取られたコードア
センブリに関する許可交付セットを生成するためのポリシーマネージャが提供さ
れる。コードアセンブリは、証拠セットに関連している。コードグループ集合生
成器(ジェネレータ)が、セキュリティポリシー指定で指定された定義に従って
少なくとも1つのコードグループ集合を作成する。各コードグループ集合は、コ
ードグループ許可セットにそれぞれが関連する複数のコードグループを有する。
メンバシップエバリュエータが、証拠セットに基づいてコードグループ集合の1
つまたは複数のコードグループにおけるコードアセンブリのメンバシップを判定
する。許可セット生成器が、1つまたは複数のコードグループ許可セットに基づ
いて許可交付セットを生成して、コードアセンブリがメンバであると判定された
コードグループに各コードグループ許可セットが関連付けられるようにする。
【0013】 本発明のその他の実施形態では、製造品が、コンピュータプログラム製品とし
て提供される。コンピュータプログラム製品の一実施形態は、コンピュータシス
テムによって読取り可能であり、リソースロケーションから受け取られたコード
アセンブリに関する許可交付セットを生成するためのコンピュータプロセスを実
行するためのコンピュータプログラムを符号化するコンピュータプログラム記憶
媒体を提供する。コンピュータプログラム製品の別の実施形態は、コンピュータ
システムによる搬送波で実現され、リソースロケーションから受け取られたコー
ドアセンブリに関する許可交付セットを生成するためのコンピュータプログラム
を符号化するコンピュータデータ信号で提供される。リソースロケーションから
受け取られたコードアセンブリに関する許可交付セットを生成するためのコンピ
ュータプロセスをコンピュータシステム上で実行するためのコンピュータプログ
ラムを符号化するコンピュータ製品が提供される。コードアセンブリは、証拠セ
ットに関連している。複数のコードグループを有する少なくとも1つのコードグ
ループ集合を定義するセキュリティポリシー指定が受け取られる。各コードグル
ープは、コードグループ許可セットに関連している。証拠セットが、コードグル
ープ集合との関係で評価されて、コードグループ集合の1つまたは複数のコード
グループにおけるコードアセンブリのメンバシップが判定される。1つまたは複
数のコードグループ許可セットに基づいて許可交付セットが生成されて、コード
アセンブリがメンバであるコードグループに各コードグループ許可セットが関連
付けられるようになる。
【0014】 本発明の実施形態の大きな効用は、許可交付セットを生成する際にコードグル
ープの集合が使用されることである。セキュリティポリシー指定により、コード
グループ階層およびポリシーレベルを含むことが可能な1つまたは複数のコード
グループ集合の定義が可能になる。セキュリティポリシー指定の階層的性質によ
り、セキュリティポリシーの他のすべての態様に影響を及ぼすことなく、セキュ
リティポリシーを増分式に更新することに関して高速パフォーマンスおよび柔軟
性が可能になる。ポリシーマネージャは、コードアセンブリに関連する証拠を評
価して、1つまたは複数のコードグループにおけるコードアセンブリのメンバシ
ップを動的に判定し、対応するコードグループ許可セットをコードアセンブリに
関連付ける。
【0015】 本発明の実施形態の別の大きな効用は、許可交付セット生成の動的性質である
。許可交付セットは、コードグループ許可セットに基づいて動的に生成される。
また、コードグループ許可セット自体も、例えば、コードグループ階層をトラバ
ースして、コードアセンブリがメンバであると判定されたコードグループに関す
るコードグループ許可セットを集約することにより、動的に生成することができ
る。結果の許可交付セットが、ランタイム呼出しスタックの中で適用されて、コ
ードアセンブリによる所与のシステムオペレーションが許可されるかどうか判定
される。
【0016】 したがって、ポリシーマネージャは、セキュリティポリシー指定および自らに
利用可能な証拠に基づいてコードアセンブリの信頼されるステータスに関する根
拠のある判定を行い、システムオペレーションを許可するようにユーザに求める
必要性がないようにすることができる。さらに、この根拠のある判定は、任意の
複雑さを有し、セキュリティポリシー処理中に動的に判定されることが可能であ
る。本発明を特徴付ける以上の特徴およびその他の様々な特徴、ならびにその他
の利点は、以下の詳細な説明を読み、関連する図面を詳しく見ることで明白とな
る。
【0017】 (発明の詳細な説明) 本発明は、リソースロケーションから受け取られたコードアセンブリに関する
許可交付セットを生成する証拠ベースのポリシーマネージャを提供する。一般に
、コードアセンブリは、.EXEファイル、.DLLファイル、またはPE(「
可搬実行可能」)ファイルなどのパッケージ化されたコードの単位である。PE
ファイル形式に関するさらなる詳細は、1994年3月、http://msd
n.microsoft.com/library/techart/msdn
_peeringpe.htmにおいてマイクロソフトディベロッパーズネット
ワーク(Microsoft Developers Network)からの
論文で述べられている。ポリシーマネージャは、ランタイム環境の確認モジュー
ルおよびクラスローダと組み合わせで、コンピュータシステム(例えば、Web
クライアントまたはネットワーク化されたワークステーション)において実行す
ることができる。ただし、ポリシーマネージャは、ランタイム環境の外部でも実
行することができる。コードアセンブリに対して生成された許可交付セットが、
ランタイム呼出しスタックの中で適用されて、システムが、コードアセンブリに
よる所与のシステムオペレーションが許可されるかどうかを判定するのを助ける
。ポリシーマネージャは、コードアセンブリに関連して受け取られた許可要求を
処理することができる。さらに、コードアセンブリと証拠をともに、ローカルソ
ース(例えば、ローカルのマシン内部から)、ローカルネットワークまたは周辺
機器、またはネットワーク(例えば、インターネット)を介する遠隔リソースロ
ケーションから受け取ることができる。
【0018】 ポリシーマネージャは、セキュリティポリシーを構文解析するための実行モジ
ュール、1つまたは複数のコードグループ集合を生成するための実行モジュール
、1つまたは複数のコードグループにおける受け取られたコードアセンブリのメ
ンバシップを評価する実行モジュール、および許可交付セットを生成するための
実行モジュールを含むことが可能である。ポリシーマネージャは、セキュリティ
ポリシー指定の中で指定されたセキュリティポリシー定義に従って複数のポリシ
ーレベルを生成することができる。複数のポリシーレベルは、どのような許可を
コードアセンブリに交付することができるかを判定する目的で特定のコードアセ
ンブリに組み合わせで適用される複数のセキュリティポリシー記述から成ること
が可能である。例えば、1つのポリシーレベルが、マシン上で実行されるすべて
のコードに適用され、また別のポリシーレベルは、アセンブリの特定の実行に関
してマシンに現在、ログインしているユーザに応じて様々であることが可能であ
る。各ポリシーレベルからの許可セットをマージして、コードアセンブリに関連
し、実行スレッドのランタイム呼出しスタックの中で適用される許可交付セット
を生成することができる。
【0019】 図1は、本発明の実施形態における証拠ベースのセキュリティポリシーマネー
ジャ104を描いている。Webサーバなどのリソースロケーション100が、
ネットワーク(図示せず)を介してコンピュータシステム102(例えば、We
bクライアントまたはWebサーバ)によってアクセス可能である。リソースロ
ケーションは、一般に、URI(ユニフォームリソース識別子)で示され、UR
Iは、World Wide Web上のオブジェクトを参照するすべてのタイ
プの名前およびアドレスの総称である。URL(ユニフォームリソースロケータ
)は、一種のURIである。例としてのリソースには、限定するものとしてでは
なく、ネットワークを介してアクセス可能なドキュメント、イメージ、オーディ
オデータ、アプリケーション、ルーチン、ならびにその他のデータおよびコード
データストアが含まれることが可能である。リソースロケーションは、コンピュ
ータシステム102にローカルであることもコンピュータシステム102に遠隔
である(例えば、インターネットで結合される)ことも可能であることを理解さ
れたい。
【0020】 本発明の実施形態に関係のある1つのタイプのリソースが、コードアセンブリ
である。コードアセンブリは、例えば、アプレットコード、アプリケーションコ
ード、クラスコード、ルーチンコード、およびデータから成ることが可能である
。コードアセンブリに含まれるコードおよびデータは、バイトコード、中間コー
ド、マシンコード、およびデータ構成要素(クラス、イメージ、オーディオクリ
ップおよびビデオクリップ等)の形であることが可能である。さらに、リソース
ロケーションからダウンロードされる1つまたは複数のクラスを含むアーカイブ
ファイルにコードアセンブリをパッケージ化することもできる。本発明の一実施
形態では、アプリケーションのクラスを組み合わせてモジュール(リンクプロセ
スの出力)にし、また1つまたは複数のモジュールを組み合わせてコードアセン
ブリにすることができる。
【0021】 図1は、コンピュータシステム102上で実行されるダウンロードされたアプ
リケーションに関して描かれている。代替の実施形態は、ダウンロードされたア
プレット、ACTIVEXコントロール、ならびにその他のルーチンおよびオブ
ジェクトを含んでいてもよい。例としてのダウンロードされたアプリケーション
は、1つまたは複数のローカルまたは遠隔のコードアセンブリにおいて定義され
たオブジェクトから成る。ローカルコードアセンブリは、コンピュータシステム
102内部に記憶され、必要なときにメモリの中にロードされる。遠隔コードア
センブリは、リソースロケーション100のようなリソースロケーションからダ
ウンロードされる。
【0022】 コンピュータシステム102が、ランタイム環境を開始してダウンロードされ
たアプリケーションを実行し、コンピュータシステム102のセキュリティを管
理する。コンピュータシステム102のランタイム環境は、ランタイム環境の外
部にあるオペレーティングシステムシェル、ブラウザ、SQLサーバ、またはそ
の他のコードなどの「信頼されるホスト」によって初期化されることが可能であ
る。ホスト、ローダ113、または他の何らかの共用リソースが、アプリケーシ
ョンを構成する様々なコードアセンブリ106をコンピュータシステム102に
ダウンロードし、実行のために仮想マシン110にそのコードアセンブリ106
を渡すことによってアプリケーションの実行を開始する。
【0023】 仮想マシンは、別個のコンピュータの機能の多くを実行する自己完結型の動作
環境を提供する。例えば、ホストオペレーティングシステムに直接にアクセスす
ることなく、仮想マシンにおいてアプリケーションを実行することができる。こ
の設計は、少なくとも2つの利点を有する。
【0024】 システム独立性:アプリケーションは、システムの基礎となるハードウェアお
よびソフトウェアに関わらず、そのアプリケーションが書かれているプログラミ
ング言語をサポートする任意の仮想マシンにおいて同様に実行される。例えば、
同一のアプリケーション(すなわち、同一のプログラミングコード)が、異なる
タイプのマイクロプロセッサおよび異なるタイプのオペレーティングシステムを
有する、異なるコンピュータシステム上の仮想マシンにおいて実行されることが
可能である。
【0025】 セキュリティ:仮想マシンにおいて実行されているアプリケーションが、一般
に、保護されたシステムリソース(すなわち、オペレーティングシステム、ファ
イルシステム、メモリの保護された領域、接続されたネットワークまたは接続さ
れた周辺機器)にアクセスするのが防止される。ただし、本発明の実施形態は、
証拠およびセキュリティポリシーを評価して、アプリケーションが保護されたシ
ステムリソースにアクセスするのを許すかどうかを判定できることを理解された
い。所与のオペレーションに対する許可が交付された場合、アプリケーションは
、そのオペレーションに関して「信頼される」ものと見なされる。
【0026】 アプリケーション構成要素(例えば、ダウンロードされたコードアセンブリ1
06)が、コンピュータシステム102によって受け取られ、確認モジュール1
12が、コードアセンブリ106の中のダウンロードされたコードが、適切にフ
ォーマットされており、コード言語または仮想マシン110の安全制約に違反し
ないことを確かめる。具体的には、実施される安全制約により、悪意がある可能
性のあるコードが、そのコードの明確に定義されたインターフェースを介する以
外で、データにアクセスすることが防止される。確認されたコードが、コードア
センブリにとってアクセス不可能な(すなわち、実行環境にとってだけアクセス
可能な)機構を介してそのコードアセンブリに関連付けられた交付された許可セ
ットを検査または変更できないことが重要である。また、ポインタアドレス指定
が存在しないこと、内部スタックにオーバーフローまたはアンダーフローが生じ
るのが不可能なこと、コード命令が正しい型付きパラメータを有することを確認
するなどのその他の確認も行うことができる。次に、コードアセンブリは、クラ
スローダ113に渡され、クラスローダ113は、そのアプリケーションが、ラ
ンタイム環境内でシステムレベル構成要素に置き換わらないことを確実にする(
すなわち、クラスローダは、ホストによって提供されたコードアセンブリが、要
求されたときに実行されることを強制し、これにより、ダウンロードされたコー
ドアセンブリとの名前の競合を排除する)。その後、クラスローダ113は、仮
想マシン110からの要求に応答してランタイム呼出しスタック114上にコー
ドアセンブリ106をロードする。
【0027】 例えば、仮想マシンが、第2のコードアセンブリ(例えば、図2のパーサコー
ドアセンブリ)によって提供されるルーチンを呼び出す第1のコードアセンブリ
(例えば、図2のメインコードアセンブリ202)を実行する。クラスローダ1
13が、第2のコードアセンブリに関する仮想マシンの要求を受け取り、第2の
コードアセンブリをランタイム呼出しスタック114にロードして、第1のコー
ドアセンブリが、必要とされるルーチンを呼び出すことができるようにする。
【0028】 保護された領域に対する許可のないアクセスが防止されるのを確実にするため
、ダウンロードされたコードアセンブリ106のそれぞれに関連する証拠108
が、ポリシーマネージャ104に入力される。ポリシーマネージャ104は、各
コードアセンブリに関連する許可交付セットを判定する。また、セキュリティポ
リシー指定116もポリシーマネージャ104に入力されて、適切な交付の計算
を助ける。以上の入力に基づき、ポリシーマネージャ104は、各コードアセン
ブリに関する適切な交付を計算し、結果の許可交付セットをランタイム呼出しス
タック114に渡す。
【0029】 このため、ランタイム呼出しスタック114の中の各コードアセンブリは、対
応する許可交付セット(例えば、図2の許可交付セット208、210、および
212)に関連付けられている。交付セットが、ポリシーマネージャから受け取
られ、対応するコードアセンブリに関して計算された様々な許可を定義する。各
コードアセンブリに関連する許可は、すべて「証拠」108と呼ばれる、コード
アセンブリの相対的オリジン(例えば、ローカルまたは遠隔)、コードアセンブ
リの特定のオリジン(例えば、特定のURL)、またはコードアセンブリのその
他の信頼特性に基づいて大幅に異なる可能性がある。例としての信頼特性には、
暗号の強度が高い名前、AUTHENTICODE署名、および証拠に関連する
その他のセキュリティが含まれることが可能である。本発明の実施形態では、証
拠を使用して所与のコードアセンブリに関する許可交付セットが判定される。さ
らに、セキュリティポリシー指定116により、所与のコードアセンブリの証拠
が評価される所与の企業、マシン、ユーザ、アプリケーション等に関するセキュ
リティフレームワーク内で、複数のポリシーレベルを定義することが可能である
【0030】 図2は、呼び出された順序で積み重ねられた個々のコードアセンブリを含むラ
ンタイム呼出しスタック200を表している。個々のコードアセンブリは、遠隔
リソースロケーションからダウンロードすること、または図1のコンピュータシ
ステム102からローカルで取り出すことが可能である。個々のコードアセンブ
リは、図1の仮想マシン110によるアクセスおよび実行のためにクラスローダ
113によってランタイム呼出しスタック114にロードされる。
【0031】 代替のランタイム呼出しスタックは、呼出し連鎖の中のメソッドごとのスロッ
トを含む。交付セットは、呼出し連鎖の中のコードアセンブリ、コードアセンブ
リのモジュール、コードアセンブリのクラス、またはコードアセンブリのメソッ
ドに関連付けることができる。また、証拠も、コードアセンブリ、コードアセン
ブリのモジュール、コードアセンブリのクラス、またはコードアセンブリのメソ
ッドに関連付けることができる。
【0032】 一実施形態では、単一のアセンブリからのメソッドを同一の許可交付セットに
関連付ける。このため、許可交付セットは、呼出し連鎖が、別のコードアセンブ
リの中のメソッドに遷移したときだけに検査すればよい(すなわち、同一のコー
ドアセンブリ内で行われる呼出しは、許可交付セット検査を必要としないことが
可能である)。あるいは、本発明の範囲内で、クラス、モジュール、またはメソ
ッドを別々の許可交付セットに関連付けてもよい。
【0033】 例えば、コードアセンブリ202の中のメインアプリケーションクラスのオブ
ジェクトが、まず、クラスローダにより、図示するランタイム呼出しスタック2
00にロードされる。仮想マシンがそのメインクラスを実行すると、メインクラ
スは、コードアセンブリ204からパーサオブジェクトを作成し、そのパーサオ
ブジェクトの中のメソッドを呼び出してコンピュータシステムの保護された領域
の中のデータファイルを構文解析する。したがって、クラスローダが、コードア
センブリ204のパーサコードをランタイム呼出しスタック200にロードする
。その後、パーサオブジェクトが、コードアセンブリ206からファイルアクセ
スオブジェクトを作成し、そのファイルアクセスオブジェクトの中のメソッドを
呼び出して保護されたファイルに対する読取りオペレーションを行う。したがっ
て、クラスローダが、コードアセンブリ206のファイルアクセスコードをラン
タイム呼出しスタック200にロードする。
【0034】 各許可交付セットが、ランタイム呼出しスタックの中のコードアセンブリに対
応する。このため、保護されたリソースにアクセスしようとするコードアセンブ
リの試みが、関連する許可交付セット、ならびにランタイム呼出しスタック20
0の中のその他のコードアセンブリの許可交付セットに照らして評価される。図
2で示したアプリケーションによる保護されたファイルに対する読取りオペレー
ションの例では、メインコードアセンブリ202が、許可交付セット208に関
連している。メインコードアセンブリ202が、許可交付セット210に関連し
ているパーサコードアセンブリ204の中のメソッドを呼び出す(矢印214で
表される)。保護されたファイルにアクセスするため、パーサコードアセンブリ
204は、許可交付セット212に関連するファイルアクセスコードアセンブリ
206の中のメソッドを呼び出す(矢印216で表される)。ファイルアクセス
コードアセンブリ206が、保護されたファイルにアクセスすることができるか
どうかを判定するため、許可交付セット208と許可交付セット210の「共通
集合」が計算され、ファイルアクセスオペレーションが許可されるかどうかを判
定するのに使用される。例えば、許可交付セット210が、保護されたファイル
から読取りを行う許可を含むが、許可交付セット208は、それを含まない場合
には、保護されたファイルに対するアクセスが拒否される。代替の実施形態では
、その他の論理演算を使用して、ファイルアクセスオペレーションが許可される
かどうかを判定してもよい。
【0035】 一般に、「共通集合」演算(記号「 」で表される)は、オペランドセットの
共通要素をもたらす集合演算である。例えば、Set1が、要素A、B、および
Cを含み、Set2が、要素B、C、およびDを含む場合には、Set1とSe
t2の共通集合(すなわち、Set1□Set2)は、BおよびCに等しい。こ
れとは対照的に、「和集合」演算(記号「∪」で表される)は、オペランドセッ
トの中のすべての要素(すなわち、セットの中のすべての要素の重複しない集合
)をもたらす集合演算である。例えば、Set1が、要素A、B、およびCを含
み、Set2が、要素B、C、およびDを含む場合には、Set1とSet2の
和集合(すなわち、Set1∪Set2)は、A、B、C、およびDに等しい。
【0036】 図3は、本発明の実施形態における証拠ベースのセキュリティを管理するため
のコンピュータシステムを描いている。サーバ300が、通信網(図示せず)を
介してクライアント302に結合される。クライアント302は、ランタイム環
境(例えば、マイクロソフトコーポレーションからのCOM+2.0ランタイム
環境)を実行してクライアント302上のアプリケーションの実行を管理する。
本発明の実施形態では、ランタイム環境は、確認モジュール304、ローダモジ
ュール306、およびポリシーマネージャ308を含む。
【0037】 前述したとおり、仮想マシン312による実行のためにコードアセンブリが、
ランタイム呼出しスタック318にロードされる。コードアセンブリの第1のカ
テゴリは、ローカルコードアセンブリ314によって代表され、ローカルコード
アセンブリ314は、クライアント302上をオリジンとしているため、一般に
、信頼されるコードアセンブリと見なされる。これとは対照的に、コードアセン
ブリの第2のカテゴリは、ダウンロードされたコードアセンブリ316によって
代表され、ダウンロードされたコードアセンブリ316は、サーバ300などの
遠隔のリソースロケーションまたは信頼されないリソースロケーションをオリジ
ンとする可能性がある。ローカルコードアセンブリ314は一般に、信頼され、
ダウンロードされたコードアセンブリ316は暗黙に、信頼されないが、この規
約は、セキュリティポリシー指定326で制御することができ、また管理者の必
要性を満たすように変更することができる。本発明の実施形態では、ローカルコ
ードアセンブリ314およびダウンロードされたコードアセンブリ316が、確
認のために確認モジュール304に入力される。その後、コードアセンブリは、
ローダモジュール306に入力されてランタイム呼出しスタック318にロード
される。
【0038】 コードアセンブリ314および316は、一般に、各コードアセンブリに関す
る許可交付セットを計算するのに使用される証拠(または証明)に関連している
。一例としての証拠構成要素は、AUTHENTICODE署名であることが可
能である。別の例としての証拠構成要素は、PICS(インターネットコンテン
ツ選択のためのプラットフォーム)ラベルであり、PICSラベルは、インター
ネットリソースのプロパティ(例えば、実行可能コードがウイルス検査済みであ
る)を述べる。PICSラベルに関するさらなる詳細は、P.Resnickお
よびJ.Millerによる「PICS:Internet Access C
ontrols without Censorship(検閲なしのインター
ネットアクセス管理)」、Communications of ACM, 3
9(1996年)、87−93ページで述べられており、この論文は、www.
w3.org/pub/WWW/PICS/iacwcv2.htmにおいても
閲覧可能である。証拠のその他の例には、限定するものとしてではなく、購入の
証明またはライセンス、作成者識別子、ベンダ識別子、バージョニング情報、お
よびプログラム式の証明が含まれることが可能である。プログラム式の証明は、
例えば、他の証明によって行われたステートメントを検査し、ネットワークから
補足の情報をフェッチしてから、どの証拠ステートメントをポリシーマネージャ
308に提供するかを決定するプログラムコードの形態であることが可能である
【0039】 コードアセンブリ自体に関する証拠は、ホストによって提供されること、また
はコードアセンブリ自体から抽出することが可能である。ローカルの、またはホ
ストによって提供される証拠322は、暗黙に信頼され、真であると信じられる
。ただし、ダウンロードされた、またはアセンブリによって提供された証拠32
0は、暗黙に信頼されることはなく、自己確認が行われる(例えば、デジタル署
名されている)、または独立に確認されるものでなければならない。ダウンロー
ドされた証拠320は、1つまたは複数のリソースロケーションからダウンロー
ドされていることが可能であり、コードアセンブリのオリジンであるリソースロ
ケーションからダウンロードされた証拠に限定されない。
【0040】 ローカルの証拠322およびダウンロードされた証拠320は、ポリシーマネ
ージャ308に入力され、ポリシーマネージャ308は、セキュリティポリシー
に基づいてその証拠を評価する。ポリシーマネージャ308内部で、証拠が、セ
キュリティポリシー指定326(およびオプションとして、コードアセンブリに
よって要求された許可セットを定義する許可要求324)との組み合わせで評価
されて、所与のコードアセンブリに対応する最終の許可交付セットが生成される
【0041】 さらに、確認モジュール304における確認プロセス、およびポリシーマネー
ジャ308におけるセキュリティ管理プロセスが、同時に実行されることが可能
であり、この2つのプロセスは、互いに影響を及ぼすように通信することができ
る。例えば、ポリシーマネージャ308は、証拠を評価して、所与のコードアセ
ンブリの型の安全性が保証されるのを示すことができる。したがって、この型の
安全性の保証が、確認モジュール304に伝えられることが可能であり、確認モ
ジュール304は、その情報に基づいて型を検査するオペレーションをスキップ
することができる。あるいは、確認モジュール304が、所与のコードアセンブ
リが型の安全性の検査に合格しないと判定することができる。これに応答して、
確認モジュール304は、ポリシーマネージャ308と通信して、型の安全性の
検査に合格しなかったにも関わらず、そのコードアセンブリに実行の許可が交付
されるかどうかの照会を行うことができる。
【0042】 図4Aは、本発明の実施形態における証拠ベースのセキュリティを管理するた
めのポリシーマネージャを描いている。図4Aに関連して説明した実行可能な構
成要素が、コンピュータシステム上で実行可能なソフトウェアモジュールとして
実装されていることが可能である。あるいは、ハードウェアで、またはハードウ
ェアとソフトウェアの組み合わせで実装される実行可能な構成要素も、本発明の
範囲の中で企図される。
【0043】 ポリシーマネージャ400が、セキュリティポリシー指定402および証拠セ
ット404を受け取るように結合される。セキュリティポリシー指定402は、
コードアセンブリのカテゴリ(例えば、所与の発行元によって署名されたコード
アセンブリ)を定義するのに使用することができる1つまたは複数のコードグル
ープの定義を指定する。一実施形態では、コードグループは、1つまたは複数の
コードグループ集合に構成される。あるいは、コードグループを1つまたは複数
のコードグループ階層に構成してもよい。例としてのコードグループ階層を図6
で示している。また、セキュリティポリシー指定は、1つまたは複数のポリシー
レベルも定義することができる。証拠セット404は、コンピュータシステムに
よって受け取られたコードアセンブリに関連する信頼特性を定義する。
【0044】 本発明の一実施形態では、パーサ406が、セキュリティポリシー指定402
を受け取り、1つまたは複数のコードグループの定義を抽出する。各コードグル
ープは、メンバシップ基準、子定義(コードグループの0または1つ以上の子コ
ードグループを指定する)、およびコードグループ許可セットに関連している。
メンバシップ基準は、所与のコードグループに関するメンバシップの条件を指定
し、証拠セットは、対応するコードアセンブリがそのコードグループのメンバで
あると見なされるためには、その条件を満たさなければならない。子コードグル
ープ定義は、所与のコードグループの子を指定する。コードアセンブリが、第1
のコードグループ(すなわち、親コードグループ)におけるメンバシップを証明
した場合、そのコードアセンブリは、その親コードグループの子コードグループ
におけるメンバに入れるように考慮される。コードグループ許可セットは、コー
ドグループに割り当てることができる許可の集合を表す。コードアセンブリが、
コードグループのメンバであると判定された場合、関連する許可セットの許可が
、コードアセンブリに交付されることが可能であり、コードアセンブリは、ポリ
シーマネージャ内部でその他の操作を受ける。
【0045】 その他のコードグループ実施形態には、代替のデータ構成が含まれることが可
能である。例えば、一実施形態では、コードグループ集合はそれぞれがメンバシ
ップ基準および許可セットを含み、前述の子コードグループ定義を省略するコー
ドグループの1次元リストで表される。この実施形態では、1次元リストは、順
序付けられていても、順序付けられていなくてもよい。さらに、本発明の範囲内
でその他のデータ構成も企図される。
【0046】 本発明の例としての実施形態では、許可セットに命名を行い、セキュリティポ
リシー指定402の中で識別を可能にすることができる。同じ名前の付けられた
許可セットに複数のコードグループを割り当てることができる。このため、名前
付き許可セットに変更(例えば、個々の許可の挿入または削除)が行われた場合
、その変更は、その名前付き許可セットに関連するコードグループのすべてに影
響を及ぼす。例えば、異なるコードグループのメンバであるいくつかのエクスト
ラネットビジネスパートナのWebサイトに同じ許可を交付するため、単一の名
前の付けられた許可セットを定義し、そのいくつかのコードグループに割り当て
ることができる。
【0047】 本発明の実施形態では、3つのタイプの名前付き許可セットがサポートされる
。すなわち、(1)標準の許可セット−このセットは、事前定義され、変更する
ことができない、(2)事前定義された許可セット−このセットは、管理者が変
更することができる、および(3)カスタムの許可セット−このセットは、許可
セットの名前が標準の許可セットの名前または事前定義された許可セットの名前
と競合しない限り、ユーザが定義することができる。一実施形態では、標準の許
可セットは、すべてのポリシーレベルで利用可能であり、個別のどのポリシーレ
ベルでも再定義することができない(汎用範囲)。この実施形態では、事前定義
された許可セットおよびカスタムの許可セットは、任意の所与のポリシーレベル
の中で定義されて参照され、その他のポリシーレベルからは参照することができ
ない(ポリシーレベル範囲)。ただし、本発明の代替の実施形態では、どの許可
セットの範囲も、所与のポリシーレベルを超えて広がるのが可能であることを理
解されたい。
【0048】 表1は、本発明の実施形態で利用可能な標準の許可セットを説明している。イ
ンターネットセットおよびローカルイントラネットセットなどのいくつかの標準
の許可セットは、事前定義されているが、ユーザまたは管理者によって変更され
ることが可能である。確認スキップなどのその他の許可セットは、本発明の実施
形態では変更することができない。また、本発明の範囲内で代替の名前付き許可
セットも企図され、表1の中で説明する名前付き許可セットは、本発明を逸脱す
ることなく変更することができる。
【0049】
【表2】
【0050】 所与のコードグループに関連するコードグループ許可セットが、コードグルー
プに関連する許可を指定することができる。あるいは、所与のコードグループに
関連するコードグループ許可セットが、コードグループおよびすべての親元コー
ドグループに関連する許可を指定することができる。この柔軟性により、セキュ
リティポリシー指定の中で様々なセキュリティ構成(例えば、ポリシーレベル、
許可セット、メンバシップ基準等)を定義することが可能になる。以下で述べる
とおり、ポリシーマネージャは、そのような様々なセキュリティ構成に対応する
ように開発することができる。
【0051】 一実施形態では、セキュリティポリシー指定402は、それぞれが1つまたは
複数のコードグループを有する複数のポリシーレベルも指定することができる。
コードグループは、1つまたは複数のコードグループ集合またはコードグループ
階層に構成することができる。ポリシーレベルにより、管理者が、例えば、異な
るマシン、異なるユーザ、異なるアプリケーション、異なる期間、異なるユーザ
グループ等に関して異なるセキュリティポリシーを定義することが可能になる。
メンバシップエバリュエータ410は、所与のポリシーレベルに関するポリシー
レベル許可セットを生成する際、そのポリシーレベルに関連するコードグループ
全部をトラバースする。したがって、ポリシーマネージャ400は、個々のポリ
シーレベルに関連する許可セットを生成することができる。その後、複数のポリ
シーレベルからの許可セットを処理して(例えば、マージまたは選択して)、結
果の許可交付セット414を生成することができる。
【0052】 あるいは、セキュリティポリシー指定402が、1つまたは複数のコードグル
ープ集合を指定し、そのコードグループ集合にわたって複数のポリシーレベルを
割り振ることができる。この割振りを実施することができる一方法には、各コー
ドグループにポリシーレベルプロパティを追加することが含まれる。この方法で
は、メンバシップエバリュエータ410が、コードグループ集合全部をトラバー
スして所与のポリシーレベルに関するポリシーレベル許可セットを判定する際、
コードアセンブリは、そのポリシーレベルに関連するコードグループのメンバで
あることだけが判定される。この実施形態で複数のポリシーレベルを処理するた
め、1つまたは複数のコードグループ(またはコードグループ階層)は、各ポリ
シーレベルに関して一回、トラバースされる。本発明の範囲内でコードグループ
、コードグループ集合、およびポリシーレベルを管理するための代替の方法も企
図される。
【0053】 図示する実施形態では、コードグループ集合生成器408が、パーサ406か
ら構文解析された定義を受け取り、コンピュータシステムのメモリの中で1つま
たは複数のコードグループ集合を生成する。メンバシップエバリュエータ410
は、証拠セット404を受け取り、対応するコードアセンブリに関係する信頼特
性を抽出する。メンバシップエバリュエータ410は、コードグループ集合(例
としてのコードグループ階層の例示に関しては、図6を参照)全体をトラバース
して、コードアセンブリが、そのコードグループ集合の中の1つまたは複数のコ
ードグループのメンバであるかどうかを判定する。許可セット生成器412が、
メンバシップエバリュエータ410からメンバシップ判定を受け取り、適切な許
可交付セット414を生成する。
【0054】 本発明の代替の実施形態では、メンバシップエバリュエータ410および許可
セット生成器414が、同一の入力証拠セット404から同一の許可交付セット
414を常に計算することを保証する場合には、出力許可交付セット414は、
最初に計算した後、より高いパフォーマンスのためにキャッシュに入れることが
できる。この実施形態(図示せず)では、ポリシーマネージャ400が、入力証
拠セットから出力許可セットへのマッピングをキャッシュに入れる。証拠セット
が解決のためにポリシーマネージャに入力されたとき、ポリシーマネージャは、
まず、入力証拠セットに関してマッピングが存在するかどうかを調べる。存在す
る場合には、ポリシーマネージャは、そのマッピングの中に記憶された許可セッ
トを直接に戻し、メンバシップ生成器410および許可セット生成器412をバ
イパスする(入力証拠セットが、最終的に、キャッシュに入れられた結果と等し
い許可セットをもたらすため)。この実施形態では、ポリシーマネージャは、セ
キュリティポリシー指定402が変更されたときはいつでも、すべてのキャッシ
ュに入れられた証拠/許可セットマッピングを無効にする。というのは、あるセ
ットのマッピングは、特定のセキュリティポリシーに関してだけ有効だからであ
る。代替の実施形態では、所与の期間後、または所定のトリガイベントに応答し
てマッピングを無効にするなどの、その他のキャッシュポリシーも企図される。
【0055】 本発明の複数の実施形態を使用して、セキュリティポリシー指定402の構成
に応じて適切な許可交付セットを生成することができる。図4Bで示した実施形
態では、セキュリティポリシー指定が、単一のポリシーレベルを定義しているの
が可能である。このため、その単一のポリシーレベルに関して適切な許可セット
を生成するか、または選択するだけでよい。複数のポリシーレベルに関連する許
可セットをマージする、またはその許可セットから選択を行う補足の処理は、全
く必要とされない。
【0056】 したがって、図4Bで示すとおり、メンバシップ判定がコードグループ許可セ
ット生成器416によって受け取られ、許可セット生成器416が、許可交付セ
ット414を生成する。生成の一方法では、コードグループ許可セット生成器4
16が、コードグループ許可セットマージャ420を実行して、コードアセンブ
リがメンバであると見なされるコードグループに関連するコードグループ許可セ
ットの和集合を計算する。複数のポリシーレベルが指定されている場合、このマ
ージャは、ポリシーレベルごとに実行することができる。
【0057】 また、コードグループ許可セットの共通集合を計算し、または別のアルゴリズ
ム(例えば、重み付き、または重み付きでない選択プロセス、順序付きリストの
中で特定される第一番のもの等)に基づいてメンバコードグループから個別のコ
ードグループ許可セットを選択してコードグループ許可セット生成器416の出
力を決定することを限定としてではなく含む、代替の形態のマージャも本発明の
中で企図される。一例としてのマージャ操作は、「リストから第一番を選択する
」操作と呼ばれる。一実施形態では、所与のコードグループの子が、順序値また
は優先順位値に関連付けられる。したがって、所与のコードグループから戻され
るコードグループ許可セットは、コードアセンブリがメンバである最高位の子コ
ードグループの許可セットだけを含むことが可能である。あるいは、別の順序付
けアルゴリズムを使用してもよい。
【0058】 代替の実施形態では、コードグループ許可セット生成器416が、コードグル
ープ許可セットセレクタ422を実行して適切なコードグループ許可セットを選
択し、その選択したコードグループ許可セットを許可交付セット414として提
供する。コードグループ許可セットセレクタ422の効用の例は、各子コードグ
ループが、その子コードグループの許可、およびその子コードグループの親元の
許可を反映する許可セットに関連付けられたコードグループ階層に関して説明す
ることができる。このようにすると、マージャ操作は必要ない可能性がある。と
いうのは、子コードグループに関連する許可セットによって内在的にマージャが
表されるからである。さらに別の実施形態では、コードグループ許可セットセレ
クタ422を使用して、コードアセンブリがメンバである「排他」コードグルー
プの許可セットを選択することができる(図5に関連する排他プロパティフラグ
記述を参照)。
【0059】 少なくとも以上の構成において、コードグループ許可セット生成器416は、
コードグループ許可セットに基づいて許可交付セット414を生成することがで
きる。コードグループ許可セット生成器416は、コードグループ許可セットマ
ージャ420、コードグループ許可セットセレクタ422、代替の生成器構成要
素、または以上の構成要素の組み合わせを含むのが可能であることを理解された
い。
【0060】 図4Cで示す別の実施形態では、セキュリティポリシー指定が、複数のポリシ
ーレベルを定義しているのが可能である。複数のポリシーレベルが指定されてい
る場合、メンバシップエバリュエータ410は、そのポリシーレベルのいくつか
、またはすべてをトラバースして、各ポリシーレベルに関するコードグループメ
ンバシップを明らかにすることができる。次に、各ポリシーレベルに関するこの
コードグループメンバシップ判定が、コードグループ許可セット生成器416に
渡されて、各ポリシーレベルに関するポリシーレベル許可セットが生成される。
この実施形態では、ポリシーレベル許可セット生成器418が、ポリシーレベル
許可セットを受け取り、その許可セットから許可交付セット414を生成する。
ポリシーレベル許可セットは、コードアセンブリがメンバであると見なされた1
つまたは複数のコードグループに関連するコードグループ許可セットに基づいて
生成される。
【0061】 図4Cで示す実施形態では、ポリシーレベル許可セット生成器418は、ポリ
シーレベル許可セットセレクタ426を実行して適切なポリシーレベル許可セッ
トを選択するか、またはポリシーレベル許可セットマージャ424を実行してポ
リシーレベル許可セットの共通集合を計算する。したがって、ポリシーレベル許
可セット生成器418は、選択された許可セットまたはマージされた許可セット
を許可交付セット414として提供する。また、ポリシーレベル許可セットに対
して代替の集合演算を行い、または別の所定のアルゴリズム(例えば、順序付き
リストの中で特定される第一番の重み付き、または重み付きでない選択プロセス
等)に基づいてポリシーレベルから受け取られた個別のポリシーレベル許可セッ
トを選択してポリシーレベル許可セット生成器418の出力を決定することを限
定するものとしてではなく含む、代替の形態のマージャも本発明の中で企図され
る。
【0062】 ポリシーレベル許可セットセレクタ426の効用の例は、他のすべてのポリシ
ーレベルまたはコードグループに取って代わるポリシーレベルまたはコードグル
ープを有するセキュリティ構成において説明することができる(図5に関連して
説明する排他プロパティを参照)。このようにすると、その他のポリシーレベル
を関係がないもの、または無視されるべきものと見なすことができるため、マー
ジャ操作は、必要としないことが可能である。少なくとも以上の構成では、ポリ
シーレベル許可セット生成器418が、コードグループ許可セットに基づいて許
可交付セット414を生成することができる。ポリシーレベル許可セット生成器
418は、ポリシーレベル許可セットマージャ424、ポリシーレベル許可セッ
トセレクタ426、代替の生成器構成要素、または以上の構成要素の組み合わせ
を含むのが可能であることを理解されたい。
【0063】 図5は、本発明の実施形態においてポリシーマネージャが動作する例としての
ポリシーレベルを描いている。セキュリティポリシー指定500がポリシーマネ
ージャ502上で処理されて、1つまたは複数のセキュリティポリシーレベル5
06、508、および510が生成される(この処理は、ポリシーレベルのそれ
ぞれをポイントする破線で表される)。本発明の実施形態では、セキュリティポ
リシー指定500は、XML(エクステンシブルマークアップ言語)表現として
書かれる。ただし、代替の実施形態では、SGML(標準一般化マークアップ言
語)、HTML(ハイパーテキストマークアップ言語)、RDF(リソース記述
フレームワーク)、ビジュアルベーシック、およびその他の標準およびカストマ
イズされたデータ形式およびコード形式を限定するものとしてではなく含む、そ
の他のデータ形式も使用することができる。
【0064】 本発明の実施形態では、セキュリティポリシー指定500は、各ポリシーレベ
ルがコードグループから構成されたセキュリティポリシーの永続的な表現(例え
ば、ポリシーレベルの順序付けされた集合および/またはコードグループ集合)
である。より下位のポリシーレベルは、一般に、より高位のポリシーレベルより
制限的なポリシー制限を指定する。セキュリティポリシー指定500は、通常、
適切な許可を有するシステム管理者、ユーザ、またはアプリケーションセットア
ッププログラムによって生成される。例としてのポリシーレベルには、限定する
ものとしてではなく、企業ポリシーレベル、マシンポリシーレベル、ユーザポリ
シーレベル、およびアプリケーションポリシーレベルが含まれることが可能であ
る。
【0065】 本発明の一実施形態では、最高レベルのポリシーレベルは、任意の所与の企業
内部のすべてのシステムに適用されるセキュリティポリシーを定義することが可
能な企業ポリシーレベルである。より低いポリシーレベルは、所与のシステム上
のすべてのユーザに適用されるセキュリティポリシーを定義することが可能なマ
シンポリシーレベルである。ユーザポリシーレベルは、ユーザがどの個別のシス
テムにログインしているかに関わらず、所与のユーザに適用されるセキュリティ
ポリシーを定義することができる。アプリケーションポリシーレベルは、アプリ
ケーションを実行するユーザまたはシステムに関わらず、所与のアプリケーショ
ンに適用されるセキュリティポリシーを定義することができる。本発明の範囲内
で、さらなるポリシーレベルおよびポリシーレベル順序も企図される。
【0066】 また、セキュリティポリシー指定500は、コードグループ集合(例えば、コ
ードグループレベルの階層式集合)を使用してセキュリティを管理することもで
き、コードグループ集合は、メンバシップ条件によって定義され、許可セットお
よび特別の属性を含むか、または生成する。セキュリティポリシー指定500は
、関連するセットの許可を有するコードグループの宣言から成る。所与のコード
グループのメンバであるコードアセンブリには、そのコードグループに関連する
許可セットからの許可が交付されることが可能である。コードグループメンバシ
ップは、デジタル署名、コードアセンブリのオリジンなどのコードアセンブリに
関連する証拠セット504を使用してポリシーマネージャ502によって判定さ
れる。管理者は、新しいコードグループに属するコードアセンブリに追加の許可
を交付するため、コードグループ集合にコードグループを追加することができる
【0067】 本発明の実施形態では、コードグループに、「排他」プロパティフラグを属性
として与えることができ、このフラグは、その特定のコードグループに関連する
許可だけが、メンバのコードアセンブリに適用されるべきことを指定する。その
他のメンバコードグループからの許可セットは無視される(すなわち、マージさ
れない)。図4のコードグループ許可セットセレクタ422を使用して、「排他
」コードグループに関する許可セットだけを選択できることに留意されたい。
【0068】 本発明の実施形態では、コードグループは、「オール」コードアセンブリに対
応するルートノードを有するコードグループ階層の中で定義される。このルート
ノードは、子ノードを有する親コードグループを表し、子ノードのそれぞれも、
子ノードを有することが可能であり、以下同様で、コードグループ階層が形成さ
れる。限定するものとしてではなく、コードグループの順序付けされた、または
順序付けされていないリストを含め、代替のコードグループ集合およびコードグ
ループ階層も、本発明の範囲内で企図される。ポリシーマネージャ502が、あ
るコードアセンブリが親コードグループのメンバであると判定した場合には、そ
のコードアセンブリは、親コードグループの子に照らして試験されて子としての
メンバシップが判定される。例としてのコードグループタイプおよびメンバシッ
プ基準を表2で説明しているが、本発明の範囲内でその他のコードグループタイ
プも企図される。さらに、コードグループタイプをプロパティに関連付けること
ができる。例えば、コードグループタイプ「ソフトウェア発行元」を「発行元:
マイクロソフト」のように、特定の発行元「マイクロソフト」に関連付けること
ができる。
【0069】
【表3】
【0070】 さらに、セキュリティポリシー指定500は、複数のポリシーレベルを定義す
ることができる。図示する実施形態では、各ポリシーレベル(例えば、企業レベ
ル506、マシンレベル508、およびユーザレベル510)が、個別のコード
グループ階層を有する。前述したとおり、本発明の範囲内で、複数のポリシーレ
ベルが、1つまたは複数のコードグループ集合にわたって割り振られる構成など
の、その他のポリシーレベル構成を使用してもよい。例えば、単一のコードグル
ープ階層が、ルートノードの1つの子、およびその子の関連するサブツリーに各
ポリシーレベルが割り振られた、複数の子に関連する単一のルートノードを有す
ることが可能である。
【0071】 図示する実施形態では、図4のコードグループ許可セットマージャ420また
はコードグループ許可セットセレクタ422によるなどして、各ポリシーレベル
からポリシーレベル許可セット(例えば、企業レベル許可セット512、マシン
レベル許可セット514、またはユーザレベル許可セット516)が生成される
。ポリシーレベル許可セットマージャ518が、ポリシーレベル許可セット51
2、514、および516をマージして許可交付セット520を生成する。
【0072】 代替の実施形態では、ポリシーレベル許可セットマージャ518をポリシーレ
ベル許可セットセレクタ(図示せず)で置換または補完して、代替のポリシーレ
ベル許可セット生成器を提供してもよい。例えば、本発明の実施形態では、「排
他」コードグループに関連するコードグループ許可セットが、その他のポリシー
レベルのポリシーレベル許可セットに取って代わることが可能である。このため
、ポリシーレベル許可セットセレクタを使用して、この「排他」コードグループ
に関連するコードグループ許可セットを選択し、その他のポリシーレベルのポリ
シーレベル許可セットを無視することができる。
【0073】 図6は、本発明の実施形態における例としてのコードグループ階層601を示
している。コードグループの名前は、コードのクラスを表す。各コードグループ
は、コードグループ許可セットおよびオプションの子定義に関連している。本発
明の実施形態では、すべてのコードアセンブリが、「オール」コードグループ6
00(すなわち、図6のルートノード)のメンバである。どのコードアセンブリ
に交付される許可も、「オール」コードグループに関連する許可セットに含まれ
る。本発明の一実施形態では、「オール」コードグループに関連する許可セット
は、許可無し(すなわち、空のセット)を指定する。
【0074】 各コードアセンブリは、「オール」コードグループの各子のメンバシップ基準
に照らして評価され、この基準は、「オール」コードグループの子定義によって
指定される。図示するとおり、図6の「オール」コードグループは、4つの子コ
ードグループ、すなわち、「発行元:マイクロソフト」602、「ゾーン:イン
ターネット」604、「ゾーン:イントラネット」606、および「サイト: * .xyz.com」を有する。コードグループ602は、2つの子コードグル
ープ、すなわち、「名前:MS.Office」610および「名前:MS.W
indows(登録商標)」612を有する。コードグループ606は、2つの
子コードグループ、すなわち、「発行元:CorpAdmin」614および「
サイト: *.LocalWeb.com」616を有する。
【0075】 コードグループのメンバシップ評価は、コードグループ階層601の先頭で開
始する。すべてのコードアセンブリが、「オール」コードグループ600(すな
わち、ルートノード)のメンバである。したがって、コードアセンブリは、関連
する証拠に基づき、「オール」コードグループ600の各子コードグループにお
けるメンバシップについて評価される。コードアセンブリがメンバである各子コ
ードグループに関して、コードアセンブリは、関連する証拠に基づき、その子コ
ードグループの子のそれぞれにおけるメンバシップについて評価される。例えば
、コードアセンブリが、「*」がワイルドカード文字である「*.xyz.com
」にマッチするURLを有するWebサイトからダウンロードされている場合、
そのコードアセンブリは、コードグループ608のメンバと見なされる。コード
アセンブリが、コードグループのメンバと見なされない場合、コードグループに
照らしてそのコードアセンブリを評価することは必要ない。このメンバシップ評
価は、ポリシーマネージャがコードグループ階層をトラバースしながら継続する
【0076】 コードグループ階層の中のコードグループの特定の構成により、セキュリティ
ポリシーを分割し、精緻化することが可能になる。つまり、管理者が、特定のニ
ーズを反映させるようにコードグループ階層を構成することにより、そのニーズ
を満たすようにセキュリティポリシーを設計することができる。例えば、図示す
る実施形態では、管理者が、「発行元:マイクロソフト」コードグループ(図示
せず)、および関連する許可セットを「サイト:xyz.com」コードグルー
プ608の子コードグループとして挿入して、xyz.comのWebサイトを
オリジンとするマイクロソフトによって発行されたコードアセンブリに許可を割
り当てることができる。追加されたコードグループおよび許可セットは、マイク
ロソフトによって発行されたすべてのコードアセンブリ(コードグループ602
に対応する)に影響を与えるわけではなく、マイクロソフトによって発行され、
かつxyz.comのWebサイトをオリジンとするコードアセンブリだけに影
響を与える。親コードグループと子コードグループの間のこの関係は、論理AN
D関係を表し、したがって、コードアセンブリは、子コードグループと親コード
グループの両方のメンバである場合にだけ、子コードグループのメンバである。
これとは対照的に、兄弟コードグループ間の関係は、論理OR関係を表し、した
がって、コードアセンブリは、1つの兄弟コードグループのメンバであること、
別の兄弟コードグループのメンバであること、または両方の兄弟コードグループ
のメンバであることが可能である。
【0077】 また、フラットコードグループ構成も、そのような精緻化に対応することが可
能であるが、フラットコードグループ構成は、コードグループの数が増大するの
で、管理するのがはるかに困難である。さらに、コードグループ階層は、階層デ
ィレクトリ構造を表示するのに一般に使用される階層ツリービューコントロール
などでコードグループ関係を表すように、グラフィカルユーザインターフェース
で容易に表すことができる。また、階層コードグループ構成により、メンバシッ
プ評価中、コードグループ階層の大量のサブツリーがさらなるトラバースから除
外される(例えば、あるコードアセンブリが、親コードグループのメンバと見な
されない場合)ことで、パフォーマンス上の利点も提供される。
【0078】 図7は、本発明の実施形態を実施するために役立つ例としてのシステムを示し
ている。本発明の実施形態のための例としてのコンピュータシステムには、プロ
セッサユニット702と、システムメモリ704と、システムメモリ704を含
む様々なシステム構成要素をプロセッサユニット700に結合するシステムバス
706とを含む従来のコンピュータシステム700の形態の汎用コンピュータデ
バイスが含まれる。システムバス706は、様々なバスアーキテクチャの任意の
ものを使用するメモリバスまたはメモリコントローラ、周辺バス、およびローカ
ルバスを含むいくつかのタイプのバス構造の任意のものであることが可能である
。システムメモリは、読取り専用メモリ(ROM)708およびランダムアクセ
スメモリ(RAM)710を含む。コンピュータシステム700内部の要素間に
おける情報の転送を助ける基本ルーチンを含む基本入力/出力システム712(
BIOS)が、ROM708の中に記憶されている。
【0079】 コンピュータシステム700は、ハードディスクに対して読取りおよび書込み
を行うためのハードディスクドライブ712と、取外し可能な磁気ディスク71
6に対して読取りおよび書込みを行うための磁気ディスクドライブ714と、C
D ROM、DVD、またはその他の光媒体などの取外し可能な光ディスク71
9に対して読取りおよび書込みを行うための光ディスクドライブ718とをさら
に含む。ハードディスクドライブ712、磁気ディスクドライブ714、および
光ディスクドライブ718は、それぞれ、ハードディスクドライブインターフェ
ース720、磁気ディスクドライブインターフェース722、および光ディスク
ドライブインターフェース724でシステムバス706に接続される。以上のド
ライブおよび関連するコンピュータ可読媒体により、コンピュータシステム70
0のためのコンピュータ可読命令、データ構造、プログラム、およびその他のデ
ータの不揮発性ストーレッジが提供される。
【0080】 本明細書で説明する例としての環境は、ハードディスク、取外し可能な磁気デ
ィスク716、および取外し可能な光ディスク719を使用するが、データを記
憶することができるその他のタイプのコンピュータ可読媒体も、例としてのシス
テムで使用することができる。例としての動作環境で使用することができるその
他のタイプのコンピュータ可読媒体の例には、磁気カセット、フラッシュメモリ
カード、デジタルビデオディスク、ベルヌーイカートリッジ、ランダムアクセス
メモリ(RAM)、および読取り専用メモリ(ROM)が含まれる。
【0081】 オペレーティングシステム726、1つまたは複数のアプリケーションプログ
ラム728、その他のプログラムモジュール730、およびプログラムデータ7
32を含め、いくつかのプログラムモジュールが、ハードディスク、磁気ディス
ク716、光ディスク719、ROM708、またはRAM710の上に記憶さ
れていることが可能である。ユーザは、キーボード734、およびマウス736
またはその他のポインティングデバイスなどの入力デバイスを介してコンピュー
タシステム700にコマンドおよび情報を入力することができる。その他の入力
デバイスの例には、マイクロホン、ジョイスティック、ゲームパッド、サテライ
トディッシュ、およびスキャナが含まれることが可能である。以上の入力デバイ
ス、およびその他の入力デバイスは、しばしば、システムバス706に結合され
たシリアルポートインターフェース740を介して処理装置702に接続される
。それでも、以上の入力デバイスは、パラレルポート、ゲームポート、またはユ
ニバーサルシリアルバス(USB)などの他のインターフェースで接続されても
よい。また、モニタ742または他のタイプの表示デバイスも、ビデオアダプタ
744などのインターフェースを介してシステムバス706に接続される。モニ
タ742に加え、コンピュータシステムは、通常、スピーカおよびプリンタなど
のその他の周辺出力デバイス(図示せず)も含む。
【0082】 コンピュータシステム700は、遠隔コンピュータ746のような1つまたは
複数の遠隔コンピュータに対する論理接続を使用するネットワーク化された環境
で動作することができる。遠隔コンピュータ746は、コンピュータシステム、
サーバ、ルータ、ネットワークPC、ピアデバイス、またはその他の一般的なネ
ットワークノードであることが可能であり、通常、コンピュータシステム700
に関連して前述した要素の多く、またはすべてを含む。ネットワーク接続は、ロ
ーカルエリアネットワーク(LAN)748およびワイドエリアネットワーク(
WAN)750を含む。そのようなネットワーキング環境は、オフィス、企業全
体のコンピュータ網、イントラネット、およびインターネットで一般的である。
【0083】 LANネットワーキング環境で使用される場合、コンピュータシステム700
は、ネットワークインターフェースまたはネットワークアダプタ752を介して
ローカルネットワーク748に接続される。WANネットワーキング環境で使用
される場合、コンピュータシステム700は、通常、インターネットなどのワイ
ドエリアネットワーク750を介して通信を確立するためのモデム754または
その他の手段を含む。内部または外部にあることが可能なモデム754は、シリ
アルポートインターフェース740を介してシステムバス706に接続される。
ネットワーク化された環境では、コンピュータシステム700に関連して描いた
プログラムモジュール、またはプログラムモジュールの部分を遠隔メモリ記憶デ
バイスの中に記憶することができる。図示したネットワーク接続は、例としての
ものであり、コンピュータ間で通信リンクを確立するその他の手段も使用できる
ことが理解されよう。
【0084】 図示する実施形態では、セキュリティポリシー指定が、例えば、ハードディス
クドライブ712上のファイルからメモリ704に読み込まれることが可能であ
る。CPU702が、仮想マシンを実装し、リソースロケーションから受け取ら
れたコードアセンブリに関する許可交付セットを生成するコンピュータプロセス
のためのメモリ常駐命令コードを実行する。さらに、CPU702は、特許請求
の範囲で記載するポリシーマネージャを実装するソフトウェア構成要素も実行す
る。
【0085】 図8は、本発明の実施形態におけるリソースロケーションから受け取られたコ
ードアセンブリに関する許可交付セットを生成するためのオペレーションを示す
流れ図である。受け取るオペレーション800はセキュリティポリシー指定を受
け取る。作成するオペレーション802が、セキュリティポリシー指定から抽出
されたセキュリティポリシー定義に従って1つまたは複数のコードグループ集合
を作成または参照する。また、作成するオペレーション802は、その1つまた
は複数のコードグループ集合の内部で、コードグループ許可セットを適切なコー
ドグループに関連付ける。受け取るオペレーション804が、ランタイム環境に
ロードされたコードアセンブリに関連する、または関係する証拠を受け取る。評
価オペレーション806が、コードグループ階層との関係でその証拠を評価する
。メンバシップオペレーション808が、各コードグループのメンバシップ基準
に基づき、コードアセンブリがメンバであるコードグループを判定する。コード
アセンブリの証拠が、あるグループに関するメンバシップ基準を満たした場合、
そのコードアセンブリは、そのコードグループのメンバと見なされる。
【0086】 生成するオペレーション810が、コードアセンブリがメンバであるコードグ
ループのコードグループ許可セットに基づいて許可交付セットを生成する。本発
明の一実施形態では、生成するオペレーション810は、コードグループ許可セ
ット生成器(例えば、図4Bのコードグループ許可セット生成器416を参照)
によって達せられる。代替の実施形態、特にセキュリティポリシー指定によって
複数のポリシーレベルが指定される実施形態では、この生成するオペレーション
は、コードグループ許可生成器(例えば、図4Cのコードグループ許可セット生
成器416を参照)とポリシーレベル許可セット生成器(例えば、図4Cのポリ
シーレベル許可セット生成器418を参照)の組み合わせによって達せられる。
【0087】 図9は、本発明の実施形態におけるコードグループ集合をトラバースするため
のオペレーションを示す流れ図である。作成オペレーション900が、1つまた
は複数のコードグループ階層および関連するコードグループ許可セットを初期化
して、ルートコードグループをトラバース待ち行列に入れる。受け取るオペレー
ション902はコードアセンブリに関連する証拠を受け取る。トラバースオペレ
ーション904は、ルートコードグループ(すなわち、トラバース待ち行列の中
の第1のコードグループ)で開始する。評価オペレーション906が、現行のコ
ードグループのメンバシップリターンとの関係で証拠を評価する。例えば、コー
ドアセンブリが、「*」がワイルドカード文字である「*.xyz.com」にマ
ッチするURLを有するWebサイトからダウンロードされている場合、そのコ
ードアセンブリは、「サイト:*.xyz.com」のメンバシップ基準を有す
るコードグループのメンバと見なされる。コードアセンブリが現行のコードグル
ープのメンバと見なされた場合、判定オペレーション908が、オペレーション
フローを記録するオペレーション910に向かわせる。記録するオペレーション
910は、現行のコードグループのコードグループ許可セットを記録する。ある
いは、コードアセンブリが現行のコードグループのメンバと見なされなかった場
合、判定オペレーション910は、オペレーションフローを判定オペレーション
918に向かわせる。
【0088】 記録するオペレーション910の後、判定オペレーション912が、現行のコ
ードグループが「排他的」である(すなわち、「排他」プロパティに関連してい
る)かどうかを判定する。コードグループが排他的である場合、本発明の一実施
形態におけるオペレーションフローは、許可交付オペレーション922に分岐し
、許可交付オペレーション922は、排他許可セットをそのコードアセンブリに
関する許可交付セットとして提供する。判定オペレーション912が、現行のコ
ードグループが排他的でないと判定した場合には、待ち行列オペレーション91
4が、現行のコードグループの子を判定して、その子をトラバース待ち行列に追
加した後、処理が、判定オペレーション918に進む。
【0089】 判定オペレーション918は、トラバース待ち行列が空でない場合、トラバー
スするオペレーション916にオペレーションフローを向かわせる。トラバース
オペレーション916は、トラバース待ち行列の中の次のコードグループにトラ
バースする。あるいは、判定オペレーション916は、トラバース待ち行列が空
である場合、マージするオペレーション920にオペレーションフローを向かわ
せる。イマージするオペレーション920は、本発明の実施形態において記録さ
れたコードグループ許可セットの和集合を計算する。次に、許可交付オペレーシ
ョン922が、マージするオペレーション920の結果を許可交付セットとして
提供する。
【0090】 本発明の代替の実施形態では、コードアセンブリは、複数の排他的コードグル
ープのメンバであることが許されない。したがって、図9で示すオペレーション
は、排他的コードグループに遭遇し、コードアセンブリがそのグループのメンバ
であると見なされた後でさえ、コードグループ集合を通常どおりトラバースする
ように変更されている。この実施形態では、排他的コードグループに関連する許
可セットが、残りのトラバースが完了される間、またはコードアセンブリをメン
バとして有する第2の排他的コードグループに遭遇するまで記録される。第2の
グループ排他に遭遇した場合、誤りが報告される。遭遇しなかった場合、第1の
グループ排他に関連する許可セットが、許可交付オペレーション922で許可交
付セットとして提供される。
【0091】 「排他」プロパティは、いくつかの可能な属性の少なくとも1つを示すことが
可能である。本発明の一実施形態では、「排他」プロパティは、コードアセンブ
リが、「排他」プロパティを有するコードグループのメンバであると見なされる
場合には、「排他」コードグループに関連する許可セットだけ(その他の許可セ
ットが除外されて)にそのコードアセンブリが関連することを示すことが可能で
ある。ただし、「排他」プロパティは、代替の属性を示すことも可能である。例
えば、本発明の代替の実施形態では、「排他」プロパティは、「排他的」コード
グループより下の他のどの許可セットも、コードアセンブリに関連付けることが
できないことを意味していてもよい。
【0092】 本明細書で説明する本発明の実施形態は、1つまたは複数のコンピュータシス
テムにおける論理ステップとして実施される。本発明の論理オペレーションは、
(1)1つまたは複数のコンピュータシステムにおいて実行される一続きのプロ
セッサによって実施されるステップとして、また(2)1つまたは複数のコンピ
ュータシステム内部の相互に接続されたマシンモジュールとして実施される。実
施形態は、本発明を実施するコンピュータシステムのパフォーマンス要件に応じ
た選択の問題である。したがって、本明細書で説明する本発明の実施形態を構成
する論理オペレーションは、オペレーション、ステップ、オブジェクト、または
モジュールと様々に呼ばれる。
【0093】 以上の明細、例、およびデータにより、本発明の例としての実施形態の構造お
よび使用法の完全な説明が提供される。本発明の多くの実施形態を本発明の趣旨
および範囲を逸脱することなく実施することができるので、本発明は、頭記の特
許請求の範囲に存する。
【図面の簡単な説明】
【図1】 本発明の実施形態における証拠ベースのセキュリティポリシーマネージャを描
いた図である。
【図2】 本発明の実施形態におけるランタイム呼出しスタックを示す図である。
【図3】 本発明の実施形態における証拠ベースのセキュリティを管理するためのコンピ
ュータシステムを描いた図である。
【図4A】 本発明の実施形態における証拠ベースのセキュリティを管理するためのポリシ
ーマネージャを描いた図である。
【図4B】 本発明の実施形態におけるコードグループ許可セット生成器を使用して証拠ベ
ースのセキュリティを管理するためのポリシーマネージャを描いた図である。
【図4C】 本発明の実施形態における複数のポリシーレベルをサポートすることができる
証拠ベースのセキュリティを管理するためのポリシーマネージャを描いた図であ
る。
【図5】 本発明の実施形態におけるポリシーマネージャが動作する例としてのポリシー
レベルを描いた図である。
【図6】 本発明の実施形態における例としてのコードグループ階層を示す図である。
【図7】 本発明の実施形態を実施するのに役立つ例としてのシステムを示す図である。
【図8】 本発明の実施形態におけるリソースロケーションから受け取られたコードアセ
ンブリに関する許可交付セットを生成するための動作を示す流れ図である。
【図9】 本発明の実施形態におけるコードグループ階層をトラバースするための動作を
示す流れ図である。
───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,CY, DE,DK,ES,FI,FR,GB,GR,IE,I T,LU,MC,NL,PT,SE,TR),OA(BF ,BJ,CF,CG,CI,CM,GA,GN,GW, ML,MR,NE,SN,TD,TG),AP(GH,G M,KE,LS,MW,MZ,SD,SL,SZ,TZ ,UG,ZW),EA(AM,AZ,BY,KG,KZ, MD,RU,TJ,TM),AE,AG,AL,AM, AT,AU,AZ,BA,BB,BG,BR,BY,B Z,CA,CH,CN,CO,CR,CU,CZ,DE ,DK,DM,DZ,EC,EE,ES,FI,GB, GD,GE,GH,GM,HR,HU,ID,IL,I N,IS,JP,KE,KG,KP,KR,KZ,LC ,LK,LR,LS,LT,LU,LV,MA,MD, MG,MK,MN,MW,MX,MZ,NO,NZ,P L,PT,RO,RU,SD,SE,SG,SI,SK ,SL,TJ,TM,TR,TT,TZ,UA,UG, UZ,VN,YU,ZA,ZW (72)発明者 ローレン エム.コーンフェルダー アメリカ合衆国 98007−6937 ワシント ン州 ベルビュー ノース イースト セ カンド ストリート 14121 (72)発明者 グレゴリー ダレル フィー アメリカ合衆国 98034 ワシントン州 カークランド 100 アベニュー ノース イースト 12036 アパートメント イ ー303 (72)発明者 マイケル ジェー.ツートンギ アメリカ合衆国 98115 ワシントン州 シアトル 19 アベニュー ノース イー スト 7752 Fターム(参考) 5B017 AA07 BA06 【要約の続き】 ための実行モジュールとを含むことが可能である。ポリ シーマネージャは、セキュリティポリシー指定の中で指 定されたセキュリティポリシー定義に従って複数のポリ シーレベルを生成することができる。各ポリシーレベル からの許可をマージして、コードアセンブリに関連する 許可交付セットを生成し、実行スレッドのランタイム呼 出しスタックの中で適用することができる。

Claims (56)

    【特許請求の範囲】
  1. 【請求項1】 リソースロケーションから受け取られたコードアセンブリに
    関する許可交付セットを生成するための方法であって、 コードグループ許可セットにそれぞれが関連する複数のコードグループを定義
    するセキュリティポリシー指定を受け取るオペレーション、 前記コードアセンブリに関連する証拠を受け取るオペレーション、 前記コードグループに関連する前記証拠を評価して前記コードグループの1つ
    または複数における前記コードアセンブリのメンバシップを判定するオペレーシ
    ョン、および 前記コードアセンブリがメンバであるコードグループにそれぞれが関連する1
    つまたは複数のコードグループ許可セットに基づいて前記許可交付セットを生成
    するオペレーション を含むことを特徴とする方法。
  2. 【請求項2】 前記生成するオペレーションが、前記1つまたは複数のコー
    ドグループに関連する許可に基づいてコードグループ許可セットを動的に生成す
    るオペレーションを含むことを特徴とする請求項1に記載の方法。
  3. 【請求項3】 前記生成するオペレーションが、前記コードアセンブリがメ
    ンバである前記コードグループに関連するコードグループ許可セットに対して論
    理集合演算を計算して前記許可交付セットを生成するオペレーションを含むこと
    を特徴とする請求項1に記載の方法。
  4. 【請求項4】 前記計算するオペレーションが、前記コードグループの順序
    値に基づいて前記論理集合演算を計算するオペレーションを含むことを特徴とす
    る請求項3に記載の方法。
  5. 【請求項5】 前記生成するオペレーションが、前記コードアセンブリがメ
    ンバであるコードグループに関連する前記コードグループ許可セットの和集合を
    計算して前記許可交付セットを生成するオペレーションを含むことを特徴とする
    請求項1に記載の方法。
  6. 【請求項6】 セキュリティポリシー指定が、前記複数のコードグループに
    関連する少なくとも1つのコードグループ集合を定義し、前記生成するオペレー
    ションが、前記コードアセンブリがメンバである前記コードグループ集合の個別
    のコードグループに関連するコードグループ許可セットを選択して、前記許可交
    付セットを生成するオペレーションを含むことを特徴とする請求項1に記載の方
    法。
  7. 【請求項7】 前記セキュリティポリシー指定が、前記少なくとも1つのコ
    ードグループ集合をコードグループ階層として定義することを特徴とする請求項
    6に記載の方法。
  8. 【請求項8】 前記単一のコードグループに関連する前記コードグループ許
    可セットが選択されて前記許可交付セットが生成されるべきことを示す、前記単
    一のコードグループに関連する排他プロパティをさらに含むことを特徴とする請
    求項6に記載の方法。
  9. 【請求項9】 コードグループ階層の中の単一のコードグループより下に存
    在するコードグループに関連するどのコードグループ許可セットを使用しても前
    記許可交付セットが生成されないことを示す、前記単一のコードグループに関連
    する排他プロパティをさらに含むことを特徴とする請求項8に記載の方法。
  10. 【請求項10】 前記セキュリティポリシー指定が、前記複数のコードグル
    ープに関連するポリシーレベルをさらに定義し、また前記生成するオペレーショ
    ンが、 前記コードアセンブリがメンバであるコードグループに関連する前記コードグ
    ループ許可セットの和集合を計算してポリシーレベル許可セットを生成するオペ
    レーション、および 前記ポリシーレベル許可セットに基づいて前記許可交付セットを生成するオペ
    レーションを含むことを特徴とする請求項1に記載の方法。
  11. 【請求項11】 前記セキュリティポリシー指定が、前記複数のコードグル
    ープに関連する少なくとも1つのコードグループ集合、および前記少なくとも1
    つのコードグループ集合に関連するポリシーレベルをさらに定義し、また前記生
    成するオペレーションが、 前記コードアセンブリがメンバである前記コードグループ集合の個別のコード
    グループに関連するコードグループ許可セットを選択してポリシーレベル許可セ
    ットを生成するオペレーション、および 前記ポリシーレベル許可セットに基づいて前記許可交付セットを生成するオペ
    レーション を含むことを特徴とする請求項1に記載の方法。
  12. 【請求項12】 前記セキュリティポリシー指定が、前記複数のコードグル
    ープにそれぞれが関連する複数のポリシーレベルをさらに定義し、また前記生成
    するオペレーションが、 各ポリシーレベルに関して、前記コードアセンブリがメンバである前記ポリシ
    ーレベルの前記コードグループの中の個別のコードグループに関連するコードグ
    ループ許可セットを選択して対応するポリシーレベル許可セットを生成するオペ
    レーション、および 前記対応するポリシーレベル許可セットをマージして前記許可交付セットを生
    成するオペレーションを含むことを特徴とする請求項1に記載の方法。
  13. 【請求項13】 前記マージするオペレーションが、各ポリシーレベルに関
    連する前記対応するポリシーレベル許可セットの共通集合を計算するオペレーシ
    ョンを含むことを特徴とする請求項12に記載の方法。
  14. 【請求項14】 前記セキュリティポリシー指定が、複数のコードグループ
    にそれぞれが関連する複数のポリシーレベルをさらに定義し、また前記生成する
    オペレーションが、 各ポリシーレベルに関して、前記コードアセンブリがメンバである前記ポリシ
    ーレベルのコードグループに関連する前記コードグループ許可セットの和集合を
    計算して対応するポリシーレベル許可セットを生成するオペレーション、および 前記対応するポリシーレベル許可セットをマージして前記許可交付セットを生
    成するオペレーションを含むことを特徴とする請求項1に記載の方法。
  15. 【請求項15】 前記マージするオペレーションが、各ポリシーレベルに関
    連する前記対応するポリシーレベル許可セットの共通集合を計算するオペレーシ
    ョンを含むことを特徴とする請求項14に記載の方法。
  16. 【請求項16】 前記セキュリティポリシー指定が、前記複数のコードグル
    ープに関連する複数の順序付けされたポリシーレベルをさらに定義して、第1の
    ポリシーレベルが、第2のポリシーレベルより制限的なセキュリティポリシーを
    定義するようにすることを特徴とする請求項1に記載の方法。
  17. 【請求項17】 前記セキュリティポリシー指定から、前記複数のコードグ
    ループの中のコードグループに関するメンバシップ基準を抽出するオペレーショ
    ンをさらに含むことを特徴とする請求項1に記載の方法。
  18. 【請求項18】 前記評価するオペレーションが、 前記証拠から1つまたは複数の信頼特性を抽出するオペレーション、 前記メンバシップ基準との関係で前記信頼特性を評価するオペレーション、お
    よび 前記1つまたは複数の信頼特性が前記メンバシップ基準を満たす場合、前記コ
    ードアセンブリを前記コードグループのメンバとして識別するオペレーションを
    含むことを特徴とする請求項17に記載の方法。
  19. 【請求項19】 前記セキュリティポリシー指定から、前記複数のコードグ
    ループの中の各コードグループに関するコードグループ許可セットを抽出するオ
    ペレーションをさらに含むことを特徴とする請求項1に記載の方法。
  20. 【請求項20】 前記セキュリティポリシー指定が、前記複数のコードグル
    ープに関連する少なくとも1つのコードグループ階層を記述し、各コードグルー
    プ集合が、親コードグループを含む方法であって、 前記セキュリティポリシー指定から、前記少なくとも1つのコードグループ集
    合の中の前記親コードグループの少なくとも1つの子コードグループの定義を抽
    出するオペレーションをさらに含むことを特徴とする請求項1に記載の方法。
  21. 【請求項21】 前記評価するオペレーションが、 前記コードアセンブリが、前記親コードグループのメンバであるかどうかを判
    定するオペレーション、および 前記コードアセンブリが前記親コードグループのメンバである場合、前記コー
    ドアセンブリが、前記少なくとも1つの子コードグループのメンバであるかどう
    かを判定するオペレーションを含むことを特徴とする請求項20に記載の方法。
  22. 【請求項22】 前記コードアセンブリに対して確認を行うこと、 前記確認を行うオペレーションにおける前記コードアセンブリの確認の失敗を
    検出するオペレーション、および 前記許可交付セットに基づき、前記確認の失敗にも関わらず、前記コードアセ
    ンブリを実行することができるかどうかを判定するオペレーション をさらに含むことを特徴とする請求項1に記載の方法。
  23. 【請求項23】 前記許可交付セットに基づき、確認プロセスのステップが
    不必要であると判定するオペレーション、 前記確認プロセスの前記ステップをバイパスできることを確認モジュールに伝
    えるオペレーション、 前記確認モジュールを使用して前記コードアセンブリに対して前記確認プロセ
    スを行うこと、および 前記伝えるオペレーションに応答して前記確認プロセスの前記ステップをバイ
    パスするオペレーション をさらに含むことを特徴とする請求項1に記載の方法。
  24. 【請求項24】 コンピュータシステムによる搬送波で実現され、リソース
    ロケーションから受け取られたコードアセンブリに関する許可交付セットを生成
    するコンピュータプロセスを実行するためのコンピュータプログラムを符号化す
    るコンピュータデータ信号であって、前記コンピュータプロセスが、 コードグループ許可セットにそれぞれが関連する複数のコードグループを定義
    するセキュリティポリシー指定を受け取るオペレーション、 前記コードアセンブリに関連する証拠を受け取るオペレーション、 前記コードグループに関連する前記証拠を評価して前記1つまたは複数のコー
    ドグループにおける前記コードアセンブリのメンバシップを判定するオペレーシ
    ョン、および 前記コードアセンブリがメンバであるコードグループにそれぞれが関連する1
    つまたは複数のコードグループ許可セットに基づいて前記許可交付セットを生成
    するオペレーション を含むことを特徴とする信号。
  25. 【請求項25】 コンピュータシステムによって読取り可能な、リソースロ
    ケーションから受け取られたコードアセンブリに関する許可交付セットを生成す
    るコンピュータプロセスを実行するためのコンピュータプログラムを符号化する
    コンピュータプログラム記憶媒体であって、 前記コンピュータプロセスが、 コードグループ許可セットにそれぞれが関連する複数のコードグループを定義
    するセキュリティポリシー指定を受け取るオペレーション、 前記コードアセンブリに関連する証拠を受け取るオペレーション、 前記コードグループに関連する前記証拠を評価して1つまたは複数のコードグ
    ループにおける前記コードアセンブリのメンバシップを判定するオペレーション
    、および 前記コードアセンブリがメンバであるコードグループにそれぞれが関連する1
    つまたは複数のコードグループ許可セットに基づいて前記許可交付セットを生成
    するオペレーション を含むことを特徴とする媒体。
  26. 【請求項26】 リソースロケーションから受け取られた、証拠セットに関
    連するコードアセンブリに関する許可交付セットを生成するためのポリシーマネ
    ージャであって、 セキュリティポリシー指定の中で指定された定義に従い、コードグループ許可
    セットにそれぞれが関連する複数のコードグループをそれぞれが有する少なくと
    も1つのコードグループ集合を作成するコードグループ集合生成器と、 前記証拠セットに基づいて前記少なくとも1つのコードグループ集合の1つま
    たは複数のコードグループにおける前記コードアセンブリのメンバシップを判定
    するメンバシップエバリュエータと、 前記コードアセンブリがメンバであると判定されたコードグループにそれぞれ
    が関連する1つまたは複数のコードグループ許可セットに基づいて前記許可交付
    セットを生成する許可セット生成器とを含むことを特徴とするマネージャ。
  27. 【請求項27】 前記セキュリティポリシー指定を読取り、前記少なくとも
    1つのコードグループ集合の前記定義を生成するパーサをさらに含むことを特徴
    とする請求項26に記載のポリシーマネージャ。
  28. 【請求項28】 前記許可セット生成器が、前記コードアセンブリがメンバ
    である前記コードグループ集合の個別のコードグループのコードグループ許可セ
    ットを選択して前記許可交付セットを生成するコードグループ許可セットセレク
    タを含むことを特徴とする請求項26に記載のポリシーマネージャ。
  29. 【請求項29】 前記許可セット生成器が、前記コードアセンブリがメンバ
    であるコードグループに関連する前記コードグループ許可セットの論理集合演算
    を計算して前記許可交付セットを生成するコードグループ許可セットマージャを
    含むことを特徴とする請求項26に記載のポリシーマネージャ。
  30. 【請求項30】 前記論理集合演算が、各コードグループに関連する順序に
    基づくことを特徴とする請求項29に記載のポリシーマネージャ。
  31. 【請求項31】 前記許可セット生成器が、前記コードアセンブリがメンバ
    であるコードグループに関連する前記コードグループ許可セットの和集合を計算
    して前記許可交付セットを生成するコードグループ許可セットマージャを含むこ
    とを特徴とする請求項26に記載のポリシーマネージャ。
  32. 【請求項32】 前記コードグループ集合生成器が、前記セキュリティポリ
    シー指定の中で指定された、コードグループ集合にそれぞれが関連する複数のポ
    リシーレベルを生成するポリシーマネージャであって、 前記許可セット生成器が、 前記1つまたは複数のコードグループ許可セットに基づいて複数のポリシーレ
    ベル許可セットを生成するコードグループ許可セット生成器と、 前記コードグループ許可セット生成器から前記複数のポリシーレベル許可セッ
    トを受け取るように結合され、前記ポリシーレベル許可セットに基づいて前記許
    可交付セットを生成するポリシーレベル許可セット生成器とを含むことを特徴と
    する請求項26に記載のポリシーマネージャ。
  33. 【請求項33】 前記コードグループ許可セット生成器が、前記コードアセ
    ンブリがメンバである前記コードグループ集合の個別のコードグループに関連す
    るコードグループ許可セットを選択して前記ポリシーレベル許可セットを生成す
    るコードグループ許可セットセレクタを含むことを特徴とする請求項32に記載
    のポリシーマネージャ。
  34. 【請求項34】 前記コードグループ許可セット生成器が、前記コードアセ
    ンブリがメンバであるコードグループに関連する前記コードグループ許可セット
    の和集合を計算して前記ポリシーレベル許可セットを生成するコードグループ許
    可セットマージャを含むことを特徴とする請求項32に記載のポリシーマネージ
    ャ。
  35. 【請求項35】 前記ポリシーレベル許可セット生成器が、前記コードグル
    ープ許可セット生成器から受け取られた前記ポリシーレベル許可セットをマージ
    して前記許可交付セットを生成するポリシーレベル許可セットマージャを含むこ
    とを特徴とする請求項32に記載のポリシーマネージャ。
  36. 【請求項36】 前記ポリシーレベル許可セットマージャが、各ポリシーレ
    ベルに関連する前記ポリシーレベル許可セットの共通集合を計算することを特徴
    とする請求項35に記載のポリシーマネージャ。
  37. 【請求項37】 リソースロケーションから受け取られた、証拠セットに関
    連するコードアセンブリに関する許可交付セットを生成するためのコンピュータ
    プロセスをコンピュータシステム上で実行するためのコンピュータプログラムを
    符号化するコンピュータプログラム製品であって、 前記コンピュータプロセスが、 コードグループ許可セットにそれぞれが関連する1つまたは複数のコードグル
    ープを有する少なくとも1つのコードグループ集合を定義するセキュリティポリ
    シー指定を受け取るオペレーション、 前記コードグループ集合との関係で前記証拠セットを評価して、前記コードグ
    ループ集合の1つまたは複数のコードグループにおける前記コードアセンブリの
    メンバシップを判定するオペレーション、および 前記コードアセンブリがメンバであるコードグループにそれぞれが関連する1
    つまたは複数のコードグループ許可セットに基づいて前記許可交付セットを生成
    するオペレーション を含むことを特徴とする製品。
  38. 【請求項38】 前記生成するオペレーションが、前記コードアセンブリが
    メンバである前記コードグループ集合のコードグループに関連する前記コードグ
    ループ許可セットの和集合を計算して前記許可交付セットを生成するオペレーシ
    ョンを含むことを特徴とする請求項37に記載のプログラム製品。
  39. 【請求項39】 前記生成するオペレーションが、前記コードアセンブリが
    メンバである前記コードグループ集合の個別のコードグループに関連するコード
    グループ許可セットを選択して前記許可交付セットを生成するオペレーションを
    含むことを特徴とする請求項37に記載のプログラム製品。
  40. 【請求項40】 前記セキュリティポリシー指定が、前記1つまたは複数の
    コードグループに関連する複数のポリシーレベルをさらに定義し、また前記生成
    するオペレーションが、 各ポリシーレベルに関して、前記コードアセンブリがメンバであるコードグル
    ープに関連する前記コードグループ許可セットの和集合を計算して、対応するポ
    リシーレベル許可セットを生成するオペレーション、および 各ポリシーレベルの前記対応するポリシーレベル許可セットに基づいて前記許
    可交付セットを生成するオペレーション を含むことを特徴とする請求項37に記載のプログラム製品。
  41. 【請求項41】 1つまたは複数のコードグループ許可セットに基づいて前
    記許可交付セットを生成するオペレーションが、各ポリシーレベルに関連する前
    記対応するポリシーレベル許可セットの共通集合を計算するオペレーションをさ
    らに含むことを特徴とする請求項40に記載のプログラム製品。
  42. 【請求項42】 1つまたは複数のコードグループ許可セットに基づいて前
    記許可交付セットを生成するオペレーションが、前記対応するポリシーレベル許
    可セットのサブセットの共通集合を計算するオペレーションをさらに含むことを
    特徴とする請求項40に記載のプログラム製品。
  43. 【請求項43】 前記コンピュータプロセスが、前記セキュリティポリシー
    指定から、前記複数のコードグループの中のコードグループに関するメンバシッ
    プ基準を抽出するオペレーションをさらに含むことを特徴とする請求項37に記
    載のプログラム製品。
  44. 【請求項44】 前記評価するオペレーションが、前記証拠から1つまたは
    複数の信頼特性を抽出するオペレーション、 前記メンバシップ基準との関係で前記信頼特性を評価するオペレーション、お
    よび 前記信頼特性が前記メンバシップ基準を満たす場合、前記コードアセンブリを
    前記コードグループのメンバとして識別するオペレーション を含むことを特徴とする請求項43に記載のプログラム製品。
  45. 【請求項45】 前記コンピュータプロセスが、 前記証拠と関連して前記許可交付セットをキャッシュに入れるオペレーション
    、および 前記証拠が後に受け取られたのに応答して、前記証拠を再評価することなしに
    前記許可交付セットを出力するオペレーションをさらに含むことを特徴とする請
    求項37に記載のプログラム製品。
  46. 【請求項46】 リソースロケーションから受け取られた、証拠に関連する
    コードアセンブリに関係するセキュリティ管理を提供するコンピュータシステム
    であって、 セキュリティポリシー指定によって定義された少なくとも1つのコードグルー
    プ集合の中で構成された1つまたは複数のコードグループとの関係で前記証拠を
    評価して許可交付セットを生成するポリシーマネージャと、 前記許可交付セットを前記コードアセンブリに関連付けるランタイム呼出しス
    タックと、 前記許可交付セットがオペレーションに関連する許可要件を満たす場合、前記
    オペレーションを行うように前記コードアセンブリを実行する仮想マシンとを含
    むことを特徴とするシステム。
  47. 【請求項47】 前記ポリシーマネージャが、前記コードグループ集合との
    関係で前記証拠を評価して、前記コードグループ集合の1つまたは複数のコード
    グループにおける前記コードアセンブリのメンバシップを判定するメンバシップ
    エバリュエータを含むことを特徴とする請求項46に記載のコンピュータシステ
    ム。
  48. 【請求項48】 前記ポリシーマネージャが、前記コードアセンブリがメン
    バであるコードグループにそれぞれが関連する1つまたは複数のコードグループ
    許可セットに基づいて前記許可交付セットを生成する許可セット生成器をさらに
    含むことを特徴とする請求項47に記載のコンピュータシステム。
  49. 【請求項49】 リソースロケーションから受け取られたコードアセンブリ
    を確認する方法であって、 セキュリティポリシーを定義するセキュリティポリシー指定を受け取ること、 前記コードアセンブリに関連する証拠を受け取るオペレーション、 前記セキュリティポリシーとの関係で前記証拠を評価するオペレーション、 前記コードアセンブリに対して確認を行うオペレーション、 確認を行うオペレーションにおける前記コードアセンブリの確認の失敗を検出
    するオペレーション、および 前記評価するオペレーションに応答して、前記確認の失敗にも関わらず、前記
    コードアセンブリを実行することができるかどうかを判定するオペレーション を含むことを特徴とする方法。
  50. 【請求項50】 前記証拠を受け取るオペレーションが、前記コードアセン
    ブリのクラスに関連する証拠を受け取るオペレーションを含むことを特徴とする
    請求項49に記載の方法。
  51. 【請求項51】 前記証拠を受け取るオペレーションが、前記コードアセン
    ブリのモジュールに関連する証拠を受け取るオペレーションを含むことを特徴と
    する請求項49に記載の方法。
  52. 【請求項52】 前記証拠を受け取るオペレーションが、前記コードアセン
    ブリのメソッドに関連する証拠を受け取るオペレーションを含むことを特徴とす
    る請求項49に記載の方法。
  53. 【請求項53】 リソースロケーションから受け取られたコードアセンブリ
    を確認する方法であって、 セキュリティポリシーを定義するセキュリティポリシー指定を受け取るオペレ
    ーション、 前記コードアセンブリに関連する証拠を受け取るオペレーション、 前記セキュリティポリシーとの関係で前記証拠を評価するオペレーション、 前記評価するオペレーションに応答して許可交付セットを生成するオペレーシ
    ョン、 前記許可交付セットに基づき、確認プロセスのステップが不必要であると判定
    するオペレーション、 前記確認プロセスの前記ステップをバイパスできることを確認モジュールに伝
    えるオペレーション、 前記確認モジュールを使用して前記コードアセンブリに対して前記確認プロセ
    スを行うオペレーション、および 前記伝えるオペレーションに応答して前記確認プロセスの前記ステップをバイ
    パスするオペレーション を含むことを特徴とする方法。
  54. 【請求項54】 前記生成するオペレーションが、前記評価するオペレーシ
    ョンに応答して、前記コードアセンブリのモジュールに関連して前記許可交付セ
    ットを生成するオペレーションを含むことを特徴とする請求項53に記載の方法
  55. 【請求項55】 前記生成するオペレーションが、前記評価するオペレーシ
    ョンに応答して、前記コードアセンブリのクラスに関連して前記許可交付セット
    を生成するオペレーションを含むことを特徴とする請求項53に記載の方法。
  56. 【請求項56】 前記生成するオペレーションが、前記評価するオペレーシ
    ョンに応答して、前記コードアセンブリのメソッドに関連して前記許可交付セッ
    トを生成するオペレーションを含むことを特徴とする請求項53に記載の方法。
JP2002503798A 2000-06-21 2001-05-18 証拠ベースのセキュリティポリシーマネージャ Expired - Fee Related JP4738708B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/598,534 2000-06-21
US09/598,534 US7051366B1 (en) 2000-06-21 2000-06-21 Evidence-based security policy manager
PCT/US2001/016127 WO2001099030A2 (en) 2000-06-21 2001-05-18 Evidence-based security policy manager

Publications (3)

Publication Number Publication Date
JP2003536176A true JP2003536176A (ja) 2003-12-02
JP2003536176A5 JP2003536176A5 (ja) 2008-07-17
JP4738708B2 JP4738708B2 (ja) 2011-08-03

Family

ID=24395944

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002503798A Expired - Fee Related JP4738708B2 (ja) 2000-06-21 2001-05-18 証拠ベースのセキュリティポリシーマネージャ

Country Status (8)

Country Link
US (3) US7051366B1 (ja)
EP (1) EP1309906B1 (ja)
JP (1) JP4738708B2 (ja)
AT (1) ATE402450T1 (ja)
AU (1) AU2001274856A1 (ja)
DE (1) DE60134986D1 (ja)
HK (1) HK1055827A1 (ja)
WO (1) WO2001099030A2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006344198A (ja) * 2005-06-10 2006-12-21 Microsoft Corp スクリプトを介してメンバシップの割当てを行うための方法およびシステム

Families Citing this family (86)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8352400B2 (en) 1991-12-23 2013-01-08 Hoffberg Steven M Adaptive pattern recognition based controller apparatus and method and human-factored interface therefore
US7966078B2 (en) 1999-02-01 2011-06-21 Steven Hoffberg Network media appliance system and method
US20050154885A1 (en) * 2000-05-15 2005-07-14 Interfuse Technology, Inc. Electronic data security system and method
US7051366B1 (en) * 2000-06-21 2006-05-23 Microsoft Corporation Evidence-based security policy manager
US7669238B2 (en) * 2000-06-21 2010-02-23 Microsoft Corporation Evidence-based application security
US7350204B2 (en) * 2000-07-24 2008-03-25 Microsoft Corporation Policies for secure software execution
US7702785B2 (en) * 2001-01-31 2010-04-20 International Business Machines Corporation Methods, systems and computer program products for selectively allowing users of a multi-user system access to network resources
US7099663B2 (en) 2001-05-31 2006-08-29 Qualcomm Inc. Safe application distribution and execution in a wireless environment
JP4400059B2 (ja) * 2002-10-17 2010-01-20 株式会社日立製作所 ポリシー設定支援ツール
US8135795B2 (en) * 2003-04-03 2012-03-13 International Business Machines Corporation Method to provide on-demand resource access
US7389495B2 (en) * 2003-05-30 2008-06-17 Sun Microsystems, Inc. Framework to facilitate Java testing in a security constrained environment
US7493488B2 (en) * 2003-07-24 2009-02-17 International Business Machines Corporation Method to disable on/off capacity in demand
TWI263894B (en) * 2003-10-15 2006-10-11 Hon Hai Prec Ind Co Ltd System and method for quickly getting user's permission in access control list
US7770202B2 (en) * 2004-02-03 2010-08-03 Microsoft Corporation Cross assembly call interception
US7647629B2 (en) * 2004-02-03 2010-01-12 Microsoft Corporation Hosted code runtime protection
US7743423B2 (en) * 2004-02-03 2010-06-22 Microsoft Corporation Security requirement determination
US7546587B2 (en) 2004-03-01 2009-06-09 Microsoft Corporation Run-time call stack verification
JP2005346182A (ja) * 2004-05-31 2005-12-15 Fujitsu Ltd 情報処理装置、耐タンパ方法、耐タンパプログラム
US7540013B2 (en) * 2004-06-07 2009-05-26 Check Point Software Technologies, Inc. System and methodology for protecting new computers by applying a preconfigured security update policy
US7908653B2 (en) * 2004-06-29 2011-03-15 Intel Corporation Method of improving computer security through sandboxing
EP1783581A4 (en) * 2004-06-30 2010-08-25 Panasonic Corp PROVISION OF EXECUTION OF A PROGRAM AND METHOD OF EXECUTION
US7814308B2 (en) * 2004-08-27 2010-10-12 Microsoft Corporation Debugging applications under different permissions
WO2006082990A1 (en) * 2005-02-07 2006-08-10 Sony Computer Entertainment Inc. Methods and apparatus for secure processor collaboration in a multi-processor system
US20060259947A1 (en) * 2005-05-11 2006-11-16 Nokia Corporation Method for enforcing a Java security policy in a multi virtual machine system
US9652637B2 (en) 2005-05-23 2017-05-16 Avago Technologies General Ip (Singapore) Pte. Ltd. Method and system for allowing no code download in a code download scheme
US7844996B2 (en) * 2005-05-23 2010-11-30 Broadcom Corporation Method and apparatus for constructing an access control matrix for a set-top box security processor
US7913289B2 (en) * 2005-05-23 2011-03-22 Broadcom Corporation Method and apparatus for security policy and enforcing mechanism for a set-top box security processor
US8078740B2 (en) 2005-06-03 2011-12-13 Microsoft Corporation Running internet applications with low rights
US7793333B2 (en) * 2005-06-13 2010-09-07 International Business Machines Corporation Mobile authorization using policy based access control
US20070028300A1 (en) * 2005-07-28 2007-02-01 Bishop Ellis E System and method for controlling on-demand security
US8046678B2 (en) * 2005-08-22 2011-10-25 Yahoo! Inc. Employing partial evaluation to provide a page
US8225104B1 (en) * 2005-10-06 2012-07-17 Symantec Corporation Data access security
US7739731B2 (en) * 2006-01-09 2010-06-15 Oracle America, Inc. Method and apparatus for protection domain based security
EP1979812A4 (en) * 2006-02-01 2010-01-06 Nokia Corp ACCESS CONTROL
US7664865B2 (en) * 2006-02-15 2010-02-16 Microsoft Corporation Securely hosting a webbrowser control in a managed code environment
US9177176B2 (en) 2006-02-27 2015-11-03 Broadcom Corporation Method and system for secure system-on-a-chip architecture for multimedia data processing
US9904809B2 (en) 2006-02-27 2018-02-27 Avago Technologies General Ip (Singapore) Pte. Ltd. Method and system for multi-level security initialization and configuration
US7725922B2 (en) * 2006-03-21 2010-05-25 Novell, Inc. System and method for using sandboxes in a managed shell
US20070261124A1 (en) * 2006-05-03 2007-11-08 International Business Machines Corporation Method and system for run-time dynamic and interactive identification of software authorization requirements and privileged code locations, and for validation of other software program analysis results
US7743414B2 (en) * 2006-05-26 2010-06-22 Novell, Inc. System and method for executing a permissions recorder analyzer
US9489318B2 (en) 2006-06-19 2016-11-08 Broadcom Corporation Method and system for accessing protected memory
US8024770B2 (en) 2006-06-21 2011-09-20 Microsoft Corporation Techniques for managing security contexts
US8185737B2 (en) 2006-06-23 2012-05-22 Microsoft Corporation Communication across domains
US7805707B2 (en) * 2006-07-21 2010-09-28 Novell, Inc. System and method for preparing runtime checks
US7739735B2 (en) * 2006-07-26 2010-06-15 Novell, Inc. System and method for dynamic optimizations using security assertions
US7856654B2 (en) * 2006-08-11 2010-12-21 Novell, Inc. System and method for network permissions evaluation
US7823186B2 (en) * 2006-08-24 2010-10-26 Novell, Inc. System and method for applying security policies on multiple assembly caches
US8230235B2 (en) 2006-09-07 2012-07-24 International Business Machines Corporation Selective encryption of data stored on removable media in an automated data storage library
US8146084B1 (en) 2007-02-21 2012-03-27 Adobe Systems Incorporated Loading applications in non-designated isolation environments
US7770203B2 (en) * 2007-04-17 2010-08-03 International Business Machines Corporation Method of integrating a security operations policy into a threat management vector
US8402532B2 (en) * 2007-05-10 2013-03-19 Microsoft Corporation Host control of partial trust accessibility
US10019570B2 (en) 2007-06-14 2018-07-10 Microsoft Technology Licensing, Llc Protection and communication abstractions for web browsers
US8336023B2 (en) * 2007-10-22 2012-12-18 Oracle International Corporation Extensible code visualization
US8584212B1 (en) 2007-11-15 2013-11-12 Salesforce.Com, Inc. On-demand service security system and method for managing a risk of access as a condition of permitting access to the on-demand service
US8875259B2 (en) 2007-11-15 2014-10-28 Salesforce.Com, Inc. On-demand service security system and method for managing a risk of access as a condition of permitting access to the on-demand service
US8438636B2 (en) * 2008-01-11 2013-05-07 Microsoft Corporation Secure and extensible policy-driven application platform
US8296820B2 (en) * 2008-01-18 2012-10-23 International Business Machines Corporation Applying security policies to multiple systems and controlling policy propagation
US8631217B2 (en) * 2008-02-26 2014-01-14 International Business Machines Corporation Apparatus, system, and method for virtual machine backup
US20090222879A1 (en) * 2008-03-03 2009-09-03 Microsoft Corporation Super policy in information protection systems
US8533775B2 (en) * 2008-06-13 2013-09-10 Hewlett-Packard Development Company, L.P. Hierarchical policy management
US8272034B2 (en) * 2008-08-22 2012-09-18 Research In Motion Limited Methods and apparatus for maintaining permissions for client/server processing in a communication device
US8799986B2 (en) * 2009-05-07 2014-08-05 Axiomatics Ab System and method for controlling policy distribution with partial evaluation
SE534334C2 (sv) * 2009-05-07 2011-07-12 Axiomatics Ab Ett system och förfarande för att styra policydistribuering med partiell evaluering
US9407959B2 (en) 2009-09-21 2016-08-02 Adobe Systems Incorporated Monitoring behavior with respect to a software program
US8510569B2 (en) * 2009-12-16 2013-08-13 Intel Corporation Providing integrity verification and attestation in a hidden execution environment
US9443078B2 (en) 2010-04-20 2016-09-13 International Business Machines Corporation Secure access to a virtual machine
EP2400418A1 (fr) * 2010-06-23 2011-12-28 Trusted Logic Contrôle des propriétés de performance et de sécurité d'un logiciel par transformation de code
US9984229B1 (en) 2010-09-01 2018-05-29 Open Invention Network Llc Method and apparatus providing a multiple source evidence application trust model
US8646100B2 (en) 2011-06-03 2014-02-04 Apple Inc. Method for executing an application in a restricted operating environment
US8650550B2 (en) 2011-06-07 2014-02-11 Blackberry Limited Methods and devices for controlling access to computing resources
EP2533168B1 (en) * 2011-06-07 2017-01-25 BlackBerry Limited Method and devices for managing permission requests to allow access to computing resource
US9053337B2 (en) 2011-06-07 2015-06-09 Blackberry Limited Methods and devices for controlling access to a computing resource by applications executable on a computing device
US8763080B2 (en) 2011-06-07 2014-06-24 Blackberry Limited Method and devices for managing permission requests to allow access to a computing resource
US10445528B2 (en) * 2011-09-07 2019-10-15 Microsoft Technology Licensing, Llc Content handling for applications
US9223976B2 (en) * 2011-09-08 2015-12-29 Microsoft Technology Licensing, Llc Content inspection
US9047476B2 (en) * 2011-11-07 2015-06-02 At&T Intellectual Property I, L.P. Browser-based secure desktop applications for open computing platforms
US9100235B2 (en) 2011-11-07 2015-08-04 At&T Intellectual Property I, L.P. Secure desktop applications for an open computing platform
US9727848B2 (en) * 2013-04-29 2017-08-08 Alex Bligh Field programmable hierarchical cloud billing system
US9268948B2 (en) * 2013-06-24 2016-02-23 Intel Corporation Secure access enforcement proxy
US10360135B2 (en) * 2016-03-31 2019-07-23 Microsoft Technology Licensing, Llc Privilege test and monitoring
US10303780B2 (en) 2016-06-03 2019-05-28 Microsoft Technology Licensing, Llc Content preservation and policy lock features to provide immutability for regulated compliance
US9928365B1 (en) * 2016-10-31 2018-03-27 International Business Machines Corporation Automated mechanism to obtain detailed forensic analysis of file access
US10650156B2 (en) 2017-04-26 2020-05-12 International Business Machines Corporation Environmental security controls to prevent unauthorized access to files, programs, and objects
CN109768962B (zh) * 2018-12-13 2022-04-12 平安科技(深圳)有限公司 防火墙策略生成方法、装置、计算机设备及存储介质
US11397794B1 (en) 2019-03-25 2022-07-26 Amazon Technologies, Inc. Automated role management for resource accessing code
CN111222146B (zh) * 2019-11-14 2022-08-12 京东科技控股股份有限公司 权限校验方法、权限校验装置、存储介质与电子设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999030217A1 (en) * 1997-12-11 1999-06-17 Sun Microsystems, Inc. Protection domains to provide security in a computer system
WO1999057624A1 (en) * 1998-05-01 1999-11-11 Microsoft Corporation Intelligent trust management method and system
US6044467A (en) * 1997-12-11 2000-03-28 Sun Microsystems, Inc. Secure class resolution, loading and definition
US6044466A (en) * 1997-11-25 2000-03-28 International Business Machines Corp. Flexible and dynamic derivation of permissions
JP2004501467A (ja) * 2000-06-21 2004-01-15 マイクロソフト コーポレイション コードアセンブリに関連する許可要求を使用して許可セットをフィルタすること

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6052678A (en) * 1993-12-16 2000-04-18 Fujitsu Limited Problem solving operation apparatus using a state transition
US5644755A (en) * 1995-02-24 1997-07-01 Compaq Computer Corporation Processor with virtual system mode
US5978484A (en) 1996-04-25 1999-11-02 Microsoft Corporation System and method for safety distributing executable objects
US5958050A (en) 1996-09-24 1999-09-28 Electric Communities Trusted delegation system
US5915085A (en) 1997-02-28 1999-06-22 International Business Machines Corporation Multiple resource or security contexts in a multithreaded application
US6463535B1 (en) * 1998-10-05 2002-10-08 Intel Corporation System and method for verifying the integrity and authorization of software before execution in a local platform
US6687823B1 (en) * 1999-05-05 2004-02-03 Sun Microsystems, Inc. Cryptographic authorization with prioritized and weighted authentication
US7051366B1 (en) * 2000-06-21 2006-05-23 Microsoft Corporation Evidence-based security policy manager
US7131143B1 (en) * 2000-06-21 2006-10-31 Microsoft Corporation Evaluating initially untrusted evidence in an evidence-based security policy manager

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6044466A (en) * 1997-11-25 2000-03-28 International Business Machines Corp. Flexible and dynamic derivation of permissions
WO1999030217A1 (en) * 1997-12-11 1999-06-17 Sun Microsystems, Inc. Protection domains to provide security in a computer system
US6044467A (en) * 1997-12-11 2000-03-28 Sun Microsystems, Inc. Secure class resolution, loading and definition
WO1999057624A1 (en) * 1998-05-01 1999-11-11 Microsoft Corporation Intelligent trust management method and system
JP2002513961A (ja) * 1998-05-01 2002-05-14 マイクロソフト コーポレイション インテリジェントトラストマネジメントの方法およびシステム
JP2004501467A (ja) * 2000-06-21 2004-01-15 マイクロソフト コーポレイション コードアセンブリに関連する許可要求を使用して許可セットをフィルタすること

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006344198A (ja) * 2005-06-10 2006-12-21 Microsoft Corp スクリプトを介してメンバシップの割当てを行うための方法およびシステム
JP4726581B2 (ja) * 2005-06-10 2011-07-20 マイクロソフト コーポレーション スクリプトを介してメンバシップの割当てを行うための方法およびシステム

Also Published As

Publication number Publication date
EP1309906A2 (en) 2003-05-14
DE60134986D1 (de) 2008-09-04
ATE402450T1 (de) 2008-08-15
WO2001099030A3 (en) 2003-01-09
US7779460B2 (en) 2010-08-17
WO2001099030A2 (en) 2001-12-27
HK1055827A1 (en) 2004-01-21
US7051366B1 (en) 2006-05-23
EP1309906B1 (en) 2008-07-23
US20030041267A1 (en) 2003-02-27
AU2001274856A1 (en) 2002-01-02
US7207064B2 (en) 2007-04-17
US20070192839A1 (en) 2007-08-16
JP4738708B2 (ja) 2011-08-03

Similar Documents

Publication Publication Date Title
JP4738708B2 (ja) 証拠ベースのセキュリティポリシーマネージャ
US7251834B2 (en) Filtering a permission set using permission requests associated with a code assembly
US7131143B1 (en) Evaluating initially untrusted evidence in an evidence-based security policy manager
US7669238B2 (en) Evidence-based application security
US8239954B2 (en) Access control based on program properties
US6457130B2 (en) File access control in a multi-protocol file server
US6289458B1 (en) Per property access control mechanism
US5671412A (en) License management system for software applications
US6810389B1 (en) System and method for flexible packaging of software application licenses
US7146635B2 (en) Apparatus and method for using a directory service for authentication and authorization to access resources outside of the directory service
US7380267B2 (en) Policy setting support tool
US6317868B1 (en) Process for transparently enforcing protection domains and access control as well as auditing operations in software components
KR101137049B1 (ko) 호스트된 리소스로의 위임된 관리
US7149849B2 (en) Caching based on access rights in connection with a content management server system or the like
EP1625691B1 (en) System and method for electronic document security
US20040064721A1 (en) Securing uniform resource identifier namespaces
US20060101019A1 (en) Systems and methods of access control enabling ownership of access control lists to users or groups
WO2009148647A2 (en) Centralized enforcement of name-based computer system security rules
US7107538B1 (en) Enforcing security on an attribute of an object
US7076557B1 (en) Applying a permission grant set to a call stack during runtime
US20090012987A1 (en) Method and system for delivering role-appropriate policies
WO1999046665A1 (en) Method and apparatus for publishing documents in a protected environment

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080519

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080528

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101126

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110224

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110422

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110427

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4738708

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140513

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees