JP5145340B2 - 論理分解を用いるセキュリティ言語変換 - Google Patents

論理分解を用いるセキュリティ言語変換 Download PDF

Info

Publication number
JP5145340B2
JP5145340B2 JP2009527617A JP2009527617A JP5145340B2 JP 5145340 B2 JP5145340 B2 JP 5145340B2 JP 2009527617 A JP2009527617 A JP 2009527617A JP 2009527617 A JP2009527617 A JP 2009527617A JP 5145340 B2 JP5145340 B2 JP 5145340B2
Authority
JP
Japan
Prior art keywords
language
security
logic
assertion
fact
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.)
Active
Application number
JP2009527617A
Other languages
English (en)
Other versions
JP2010503129A (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 JP2010503129A publication Critical patent/JP2010503129A/ja
Application granted granted Critical
Publication of JP5145340B2 publication Critical patent/JP5145340B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/36User authentication by graphic or iconic representation
    • 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
    • G06F21/6236Protecting 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 between heterogeneous systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • 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

Description

本発明は、論理分解を用いるセキュリティ言語変換に関する。
コンピュータおよび他の電子デバイスは、人々の職業(professional)生活および個人的(personal)生活に浸透している。職業セッティングで、人々は、プロジェクト協同作業中に機密情報を交換し、共有する。個人的セッティングで、人々は、電子商取引およびプライベート情報の伝送に従事する。上記および多数の他の実例で、電子セキュリティは、重要であると考えられる。
電子セキュリティパラダイムは、職業情報を秘密に保ち、個人情報をプライベートに保つことができる。電子セキュリティパラダイムは、あるレベルの暗号化ならびに/またはウィルス、ワーム、およびスパイウェアなどのマルウェアに対する保護を伴う場合がある。情報の暗号化とマルウェアからの保護との両方が、歴史的に、特に最近2〜3年に強く注目されてきた。
しかし、情報へのアクセスの制御は、電子情報の安全性を保護することの同等に重要な態様である。これは、利益が電子情報の共有および/または転送から引き出されるシナリオに特にあてはまる。そのようなシナリオでは、所定の人々がアクセスを許可され、他の人々が除外されなければならない。
アクセス制御は、早期の時分割システム以降の共有されるコンピュータおよびアプリケーションサーバの共通の特徴であった。情報へのアクセスを制御するのに使用された、多数の異なる手法がある。これらの手法は、あるリソースへのアクセスを要求するエンティティの認証と、許可されるアクセスを認可する機構との組合せにおいて、共通の基礎(common foundation)を共有する。認証機構は、パスワード、Kerberos、およびx.509証明書を含む。その目的は、リソースを制御するエンティティが、要求するエンティティ、または要求するそのエンティティに関する情報を明確に識別することを可能にすることである。
認可の例は、アクセス制御リスト(ACL)と、eXtensible Access Control Markup Language(XACML)またはPrivilEge and Role Management Infrastructure(PERMIS)などのポリシベースの機構とを含む。これらの機構は、どのエンティティが、ファイルシステム内のファイル、ハードウェアデバイス、データベース情報などの所与のリソースにアクセスできるかを定義する。これらの機構は、リクエスタに関する認証された情報とリソースへの許可されるアクセスとの間のマッピングを提供することによって、この認可を実行する。
コンピュータシステムが、インターネットなどの大規模ネットワークを介してよりユニバーサルに接続されるようになってきたので、これらの機構は、発展するアクセス制御要求の扱いにおいて若干制限があり、柔軟でないことがわかってきた。地理的に分散したユーザおよびコンピュータリソースのシステム、具体的には複数の管理ドメインにまたがるシステムは、現在展開されているテクノロジによって不十分に対処されている多数の課題を提示する。
セキュリティ言語構造を、論理言語構造に変換することができ、逆も同様である。論理分解は、たとえば論理言語構造を使用して達成され得る。例示的な実施形態において、セキュリティ言語アサーションの少なくとも1つの論理言語ルールへの変換を説明する。他の例示的な実施形態では、論理言語を反映する証明グラフのセキュリティ言語を反映する証明グラフへの変換を説明する。もう1つの例示的な実施形態では、決定性アルゴリズムを使用する論理言語プログラムの評価を説明する。
この概要は、「発明を実施するための形態」でさらに後述される概念の抜粋を単純化された形で紹介するために提供される。この概要は、請求される主題の主要な特徴または本質的特徴を識別することを意図されたものではなく、請求される主題の範囲を判定する際の助けとして使用されることを意図されたものでもない。さらに、他の方法、システム、方式、装置、デバイス、媒体、プロシージャ、API、配置、プロトコルなどの実施態様を、本明細書で説明する。
同一の符号が、図面のすべてを通じて、類似するおよび/または対応する態様、特徴、およびコンポーネントを参照するのに使用される。
例示的セキュリティ方式を実施できる例示的な一般的な環境を示すブロック図である。 2つのデバイスと複数の例示的なセキュリティ関連コンポーネントとを有する例示的なセキュリティ環境を示すブロック図である。 例示的なセキュリティ関連データがセキュリティ関連コンポーネントの間で交換される、図2の例示的なセキュリティ環境を示すブロック図である。 本明細書で説明するセキュリティ関連実施態様に使用できる例示的なデバイスを示すブロック図である。 一般的なセキュリティ方式の例示的なアサーションフォーマットを示すブロック図である。 非集中認可ポリシの柔軟な指定および実施を可能にするセキュリティ言語を有する例示的なセキュリティ方式を示すブロック図である。 認可クエリ評価が効率的に完了することを保証するためにセキュリティ言語の安全性をチェックする方法の例を示す流れ図である。 セキュリティ言語を論理言語に変換する方法の例を示す流れ図である。 テーブル化を用いる例示的な決定的評価アルゴリズムを示すブロック図である。 評価アルゴリズム中に作られ、グラフフラグメントを含む、例示的な論理言語証明グラフを示すブロック図である。 論理言語証明グラフをセキュリティ言語証明グラフに変換する方法の例を示す流れ図である。 条件セマンティックスルールに関する論理言語の例示的な証明フラグメントを示すブロック図である。 条件セマンティックスルールに関する図12Aに対応するセキュリティ言語の例示的な証明フラグメントを示すブロック図である。 委任セマンティックスルールに関する論理言語の例示的な証明フラグメントを示すブロック図である。 委任セマンティックスルールに関する図13Aに対応するセキュリティ言語の例示的な証明フラグメントを示すブロック図である。 別名セマンティックスルールに関する論理言語の例示的な証明フラグメントを示すブロック図である。 別名セマンティックスルールに関する図14Aに対応するセキュリティ言語の例示的な証明フラグメントを示すブロック図である。
[例示的なセキュリティ環境]
図1は、例示的セキュリティ方式100を実施できる例示的な一般的な環境を示すブロック図である。セキュリティ方式(security scheme)100は、セキュリティに対する統合された手法を表す。図示されているように、セキュリティ方式100は、複数のセキュリティ概念すなわち、セキュリティトークン100(A)、セキュリティポリシ100(B)、および評価エンジン100(C)を含む。一般に、セキュリティトークン100(A)およびセキュリティポリシ100(B)は、合同で評価エンジン100(C)に入力を供給する。評価エンジン100(C)は、それらの入力を受け入れ、あるリソースへのアクセスを許可すべきか拒否すべきかを示す認可出力を生産する。
説明される実施態様では、セキュリティ方式100を、1つまたは複数のデバイス102にオーバーレイし、かつ/または一体化することができ、デバイス102は、ハードウェア、ソフトウェア、ファームウェア、これらのなんらかの組合せなどからなるものとすることができる。図示されているように、「d」個のデバイス(「d」はなんらかの整数である)が、1つまたは複数のネットワーク104を介して相互接続される。より具体的には、デバイス102(1)、デバイス102(2)、デバイス102(3)…デバイス102(d)は、ネットワーク104を介して通信することができる。
各デバイス102は、セキュリティ方式100の少なくとも一部を実装することができる任意のデバイスとすることができる。そのようなデバイスの例は、コンピュータ(たとえば、クライアントコンピュータ、サーバコンピュータ、パーソナルコンピュータ、ワークステーション、デスクトップ機、ラップトップ機、パームトップ機など)、ゲーム機(たとえば、コンソール、ポータブルゲームデバイスなど)、セットトップボックス、テレビジョン、消費者エレクトロニクス(たとえば、DVDプレイヤ/レコーダ、ビデオカメラ、ディジタルビデオレコーダ(DVR)など)、携帯情報端末(PDA)、携帯電話機、ポータブルメディアプレイヤ、これらのなんらかの組合せなどを含むが、これらに限定はされない。例示的な電子デバイスを、本明細書で、下で特に図4を参照して説明する。
ネットワーク104は、一緒にリンクされ、かつ/または互いの上にオーバーレイされた任意の1つまたは複数のネットワークから形成することができる。ネットワーク104の例は、インターネット、電話網、イーサネット、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、ケーブルネットワーク、ファイバネットワーク、ディジタル加入者回線(DSL)ネットワーク、セルラネットワーク、Wi−Fi(登録商標)ネットワーク、WiMAX(登録商標)ネットワーク、仮想プライベートネットワーク(VPN)、これらのなんらかの組合せなどを含むが、これらに限定はされない。ネットワーク104は、複数のドメイン、1つまたは複数のグリッドネットワークなどを含むことができる。これらのネットワークのそれぞれまたはネットワークの組合せを、任意のネットワーキング標準規格に従って動作しているものとすることができる。
図示されているように、デバイス102(1)は、それと対話しているユーザ106に対応する。デバイス102(2)は、その上で実行されているサービス108に対応する。デバイス102(3)は、リソース110に関連する。リソース110は、デバイス102(3)の一部とするか、デバイス102(3)とは別々とすることができる。
ユーザ106、サービス108、および任意の所与のデバイス102などのマシンは、例示的なエンティティの非網羅的リストを形成する。エンティティは、時々、リソース110にアクセスすることを望む場合がある。セキュリティ方式100は、正しく認証され、認可されたエンティティが、リソース110にアクセスすることを許可されるが、他のエンティティが、リソース110にアクセスするのを防がれることを保証する。
図2は、2つのデバイス102(A)および102(B)と複数の例示的なセキュリティ関連コンポーネントとを有する例示的なセキュリティ環境200を示すブロック図である。セキュリティ環境200は、セキュリティトークンサービス(STS)オーソリティなどのオーソリティ202をも含む。デバイス102(A)は、エンティティ208に対応する。デバイス102(B)は、リソース110に関連する。セキュリティ方式100は、より複雑な環境で実施することができるが、この比較的単純な2デバイスのセキュリティ環境200を使用して、例示的なセキュリティ関連コンポーネントを説明する。
図示されているように、デバイス102(A)は、2つのセキュリティ関連コンポーネント、すなわち、セキュリティトークン204およびアプリケーション210を含む。セキュリティトークン204は、1つまたは複数のアサーション206を含む。デバイス102(B)は、5つのセキュリティ関連コンポーネント、すなわち、認可コンテキスト212、リソースガード214、監査ログ216、認可エンジン218、およびセキュリティポリシ220を含む。セキュリティポリシ220は、信頼および認可ポリシ222、認可クエリテーブル224、および監査ポリシ226を含む。
各デバイス102を異なって構成することができ、それでも、各デバイス102がセキュリティ方式100のすべてまたは一部を実施することができる。たとえば、デバイス102(A)は、複数のセキュリティトークン204および/またはアプリケーション210を有することができる。もう1つの例として、デバイス102(B)は、監査ログ216または監査ポリシ226を含まないものとすることができる。他の構成も可能である。
説明される実施態様では、オーソリティ202は、アサーション206を有するセキュリティトークン204をエンティティ208に発行する。アサーション206は、「セキュリティポリシアサーション言語(security policy assertion language)の例示的な特性」と題するセクション内を含む下記において、本明細書にて説明する。したがって、エンティティ208は、セキュリティトークン204に関連する。動作時に、エンティティ208は、セキュリティトークン204によって、リソース110にアクセスするのにアプリケーション210を使用することを望む。
リソースガード214は、リソース110にアクセスする要求を受け取り、デバイス102(B)の他のセキュリティ関連コンポーネントと共に、認証および認可プロセスを効率的に管理する。信頼および認可ポリシ222は、その名前が示す通り、セキュリティ環境200内でエンティティを信頼し、アクションを認可することを対象とするポリシを含む。信頼および認可ポリシ222には、たとえば、セキュリティポリシアサーション(図2には明示的には図示せず)を含めることができる。認可クエリテーブル224は、アクセス要求などの要求されたアクションを適当な認可ポリシにマップする。監査ポリシ226は、セキュリティ環境200内でのセキュリティ方式100の実施に関係付けられる監査責任および監査タスクを詳細に描写する。
認可コンテキスト212は、要求するエンティティを認証するのに使用されるアサーション206をセキュリティトークン204から収集し、セキュリティポリシアサーションを信頼および認可ポリシ222から収集する。認可コンテキスト212内のこれらの収集されたアサーションは、アサーションコンテキストを形成する。したがって、認可コンテキスト212には、さまざまなアサーションに加えて、他の情報を含めることができる。
認可コンテキスト212からのアサーションコンテキストおよび認可クエリテーブル224からの認可クエリは、認可エンジン218に供給される。このアサーションコンテキストおよび認可クエリを使用して、認可エンジン218は、認可判断を行う。リソースガード214は、この認可判断に基づいてアクセス要求に応答する。監査ログ216は、たとえば要求されたリソース110の識別および/または認可エンジン218によって実行されたアルゴリズム的評価ロジックなど、監査情報を含む。
図3は、例示的なセキュリティ関連データがセキュリティ関連コンポーネントの間で交換される、例示的なセキュリティ環境200を示すブロック図である。セキュリティ関連データは、例示的なアクセス要求動作をサポートして交換される。この例示的なアクセス要求動作では、エンティティ208は、アプリケーション210を使用してリソース110にアクセスすることを望み、それを行うことの認可をセキュリティトークン204を用いて示す。したがって、アプリケーション210は、アクセス要求*をリソースガード214に送る。図3のこの説明では、アスタリスク(すなわち、「*」)は、述べられたセキュリティ関連データが図3に明示的に示されていることを示す。
説明される実施態様では、エンティティ208は、トークン*すなわちセキュリティトークン204を用いて、リソースガード214に対してそれ自体を認証する*。リソースガード214は、トークンアサーション*を認可コンテキスト212に転送する。これらのトークンアサーションは、セキュリティトークン204のアサーション206(図2の)である。セキュリティポリシ220は、認可クエリテーブル*をリソースガード214に供給する。この認可クエリテーブルは、認可クエリテーブルモジュール224から導出される。リソースガード214に送られる認可クエリテーブルは、現在のアクセス要求に直接に関係付けられる1つまたは複数の部分に制限することができる。
ポリシアサーションが、セキュリティポリシ220によって信頼および認可ポリシ222から抽出される。このポリシアサーションには、信頼関連アサーションと認可関連アサーションとの両方を含めることができる。セキュリティポリシ220は、このポリシアサーション*を認可コンテキスト212に転送する。認可コンテキスト212は、トークンアサーションとポリシアサーションとをアサーションコンテキストに組み合わせる。このアサーションコンテキスト*は、丸に囲まれた「A」によって示されるように、認可コンテキスト212から認可エンジン218に供給される。
認証クエリが、認証クエリテーブルから確認される。リソースガード214は、認証クエリ(認証クエリ*)を認可エンジン218に供給する。認可エンジン218は、この認証クエリおよびアサーションコンテキストを評価アルゴリズムで使用して、認可判断を作る。この認可判断(認可判断*)が、リソースガード214に返される。エンティティ208がリソースガード214によってリソース110へのアクセスを許可されるか*どうかは、この認可判断に依存する。認可判断が肯定的である場合には、アクセスが許可される。その一方で、認可エンジン218によって発行された認可判断が否定的である場合には、リソースガード214は、エンティティ208がリソース110にアクセスするのを許可しない。
認可プロセスを、その認可プロセスに対して相補的なセマンティックスを使用して監査することもできる。監査は、認可プロセスの監視ならびに/あるいはたとえば認可エンジン218によって論理的に実行される評価アルゴリズムのすべての中間結果および/または最終結果のストレージを必然的に伴う。そのために、セキュリティポリシ220は、監査ポリシ226からの監査ポリシ*を認可エンジン218に供給する。少なくとも、監査が要求される時に、監査情報を有する監査レコード*を、認可エンジン218から監査ログ216に転送することができる。その代わりに、監査情報を、たとえば認可判断の一部としてまたは別々に、リソースガード214を介して監査ログ216にルーティングすることができる。
図4は、本明細書で説明するセキュリティ関連実施態様に使用できる例示的なデバイス102のブロック図である。複数のデバイス102が、1つまたは複数のネットワーク104を介して通信することができる。図示されているように、2つのデバイス102(A/B)および102(d)は、ネットワーク104を介する通信交換にかかわることができる。2つのデバイス102が具体的に図示されているが、実施態様に応じて、1つまたは3つ以上のデバイス102を使用することができる。
一般に、デバイス102は、クライアントデバイスまたはサーバデバイス、ワークステーションまたは他の一般的なコンピュータデバイス、PDA、携帯電話機、ゲーミングプラットフォーム、エンターテイメントデバイス、図1を参照して上でリストしたデバイスの1つ、これらのなんらかの組合せなど、任意のコンピュータまたは処理の可能なデバイスを表すことができる。図示されているように、デバイス102は、1つまたは複数の入出力(I/O)インターフェース404、少なくとも1つのプロセッサ406、および1つまたは複数の媒体408を含む。媒体408は、プロセッサ実行可能命令410を含む。
デバイス102の説明される実施態様では、I/Oインターフェース404に、(i)ネットワーク104を介して通信するネットワークインターフェース、(ii)ディスプレイスクリーンに情報を表示するディスプレイデバイスインターフェース、(iii)1つまたは複数のマンマシンインターフェースなどを含めることができる。(i)ネットワークインターフェースの例は、ネットワークカード、モデム、1つまたは複数のポートなどを含む。(ii)ディスプレイデバイスインターフェースの例は、グラフィックスドライバ、グラフィックスカード、スクリーンまたはモニタ用のハードウェアまたはソフトウェアドライバなどを含む。印刷デバイスインターフェースを、同様にI/Oインターフェース404の一部として含めることができる。(iii)マンマシンインターフェースの例は、マンマシンインターフェースデバイス402(たとえば、キーボード、リモート、マウスまたは他のグラフィカルポインティングデバイスなど)とワイヤによってまたは無線で通信するものを含む。
一般に、プロセッサ406は、プロセッサ実行可能命令410などのプロセッサ実行可能命令を実行し、遂行し、かつ/または実施することができる。媒体408は、1つまたは複数のプロセッサアクセス可能媒体からなる。言い換えると、媒体408には、デバイス102による機能の実行を実現するためにプロセッサ406によって実行可能なプロセッサ実行可能命令410を含めることができる。
したがって、セキュリティ関連実施態様の実現を、プロセッサ実行可能命令の全般的な文脈で説明することができる。一般に、プロセッサ実行可能命令は、特定のタスクを実行し、かつ/もしくは可能にし、ならびに/あるいは特定の抽象データ型を実施する、ルーチン、プログラム、アプリケーション、コーディング、モジュール、プロトコル、オブジェクト、コンポーネント、メタデータおよびその定義、データ構造、アプリケーションプログラミングインターフェース(API)、スキーマなどを含む。プロセッサ実行可能命令は、別々の記憶媒体に配置し、異なるプロセッサによって実行し、かつ/またはさまざまな伝送媒体を介して伝搬するかその伝送媒体に現存するものとすることができる。
プロセッサ(1つまたは複数)406は、任意の適用可能な処理可能なテクノロジを使用して実施することができる。媒体408は、デバイス102の一部として含められ、かつ/またはデバイス102によってアクセス可能な、任意の使用可能な媒体とすることができる。媒体408は、揮発性媒体および不揮発性媒体、取り外し可能媒体および取り外し不能媒体、ならびに記憶媒体および伝送媒体(たとえば、無線または有線の通信チャネル)を含む。たとえば、媒体408には、プロセッサ実行可能命令410の長期マスストレージ用のディスク/フラッシュメモリ/光媒体のアレイ、現在実行されつつある命令の短期記憶用のランダムアクセスメモリ(RAM)、通信(たとえば、セキュリティ関連データ)を伝送するネットワーク104上のリンク(1つまたは複数)などを含めることができる。
具体的に図示されているように、媒体408は、少なくともプロセッサ実行可能命令410を含む。一般に、プロセッサ実行可能命令410は、プロセッサ406によって実行された時に、デバイス102が、さまざまな流れ図に示されたアクションを含む、本明細書で説明されるさまざまな機能を実行することを可能にする。例としてのみ、プロセッサ実行可能命令410に、セキュリティトークン204、そのアサーション206のうちの少なくとも1つ、認可コンテキストモジュール212、リソースガード214、監査ログ216、認可エンジン218、セキュリティポリシ220(たとえば、信頼および認可ポリシ222、認可クエリテーブル224、および/または監査ポリシ226など)、これらのなんらかの組合せなどを含めることができる。図4に明示的に図示されてはいないが、プロセッサ実行可能命令410に、アプリケーション210および/またはリソース110を含めることもできる。
[セキュリティポリシアサーション言語の例示的な特性]
このセクションでは、セキュリティポリシアサーション言語(SecPAL)の実装の例示的な特性を説明する。このセクションのSecPALの実装は、比較的略式的で、例としてのみ説明される。このセクションのSecPALの実装は、エンドツーエンドソリューションの作成に用いられる広範囲のセキュリティポリシおよびセキュリティトークンの義務に対処する能力を有する。これらのセキュリティポリシおよびセキュリティトークンの責任は、限定ではなく例として、明示的信頼関係を記述すること、セキュリティトークン発行ポリシを表すこと、アイデンティティ、属性、能力、および/または委任(delegation)ポリシを含むセキュリティトークンを提供すること、リソース認可および委任ポリシを表すことなどを含む。
説明される実施態様では、SecPALは、柔軟で扱いやすい形でセキュリティを表す宣言的な論理ベースの言語である。SecPALは、包括的とすることができ、信頼関係、認可ポリシ、委任ポリシ、アイデンティティおよび属性アサーション、能力アサーション、撤回(revocation)、監査要件などを表す均一な(uniform)機構を提供することができる。この均一性は、セキュリティ方式を理解でき、分析可能なものにすることに関して具体的な利益をもたらす。この均一な機構は、別個のセキュリティテクノロジの間のセマンティック変換および調停の必要を回避するか、少なくとも大幅に削減することを可能にすることによって、セキュリティ保証をも改善する。
SecPALの実装は、次の例示的な特徴のうちのいずれをも含むことができる。[1]SecPALは、比較的理解しやすいものにすることができる。SecPALは、そのアサーションを英文として読むことを可能にする定義構文を使用することができる。また、SecPALの文法は、ユーザが、明瞭に定義されたセマンティックスを有する少数の主語−動詞−目的語(たとえば、主語−動詞句)構造を理解することだけを必要とするように制限することができる。最後に、アサーションのコレクションに基づいて演繹(推論)可能なfact(事実)を評価するアルゴリズムは、少数の比較的単純なルールに頼るものとすることができる。
[2]SecPALは、その採用および既存システムへの統合を容易にするために、その実施態様において業界標準インフラストラクチャを活用することができる。たとえば、形式モデルからの単純なマッピングであるXML(extensible markup language)構文を使用することができる。これは、標準的なパーサおよび構文正当性検証ツールの使用を可能にする。これは、完全性、出所の証明、および機密性に関するW3CのXML Digital Signature標準規格およびXML Encryption標準規格の使用をも可能にする。
[3]SecPALは、分散ポリシオーサリングおよびコンポジションをサポートすることによって、分散ポリシ管理を可能にすることができる。これは、ポリシまたはポリシの一部分が、割り当てられた管理義務に基づいてどこで作成されるかを支配する異なる動作モデルへの柔軟な採用を可能にする。ポリシオブジェクトのディジタル署名および暗号化への標準手法の使用は、そのセキュア分散を可能にする。[4]SecPALは、効率的で安全な評価を可能にする。入力に対する単純な構文チェックが、評価が終了し、正しい回答を作ることを保証するのに十分である。
[5]SecPALは、アイデンティティ管理のために要求されるポリシ、認可判断、監査、およびPKI(public-key infrastructure)をサポートするアクセス制御要件の完全なソリューションを提供することができる。対照的に、ほとんどの他の手法は、セキュリティ問題のスペクトルのうちの1つのサブセットに焦点を合わせ、対処することしかできない。[6]SecPALは、Grid環境および他のタイプの分散システムに関するセキュリティ問題の処理を含むがこれに限定はされない複数の目的に関して十分に表現力のあるものとすることができる。拡張性は、特定のシステムの必要への適合を可能にしながら言語セマンティックスおよび評価プロパティを維持する形で可能にされる。
図5は、一般的なセキュリティ方式の例示的なアサーションフォーマット500を示すブロック図である。本明細書で別な形で説明される実施態様に使用されるセキュリティ方式アサーションは、例示的なアサーションフォーマット500とは異なる場合がある。しかし、アサーションフォーマット500は、セキュリティ方式アサーションの1つの例示的なフォーマットの基本的な図示であり、一般的なセキュリティ方式のさまざまな態様の例示的な説明される実施態様を理解するための基礎を提供する。
アサーションフォーマット500の最上行に示されているように、主要レベルでの例示的なアサーションは、principal(プリンシパル)部分502、says(言う)部分504、およびclaim(主張)部分506を含む。逐語的には、アサーションフォーマット500の主要レベルは、「principal」 says 「claim」によって表すことができる。
アサーションフォーマット500の次の行では、claim部分506が、例示的な構成部分に分離されている。したがって、例示的なclaim部分506は、fact部分508、if(もしも)部分510、「n」個の条件fact1…n部分508(1…n)、およびc部分512を含む。添字「n」は、なんらかの整数値を表す。凡例524によって示されるように、c部分512は、制約部分を表す。単一の制約だけが図示されているが、c部分512は、実際には複数の制約を表す場合がある(たとえば、c1、…、cm)。if部分510の右側の条件fact部分508(1…n)および制約512(1…m)の組を、前件(antecedent)と称する場合がある。
逐語的には、claim部分506は、fact if fact1,…,factn,cによって表すことができる。したがって、全体的なアサーションフォーマット500は、逐語的にはprincipal says fact if fact1,…,factn,cと表すことができる。しかし、アサーションは、principal says factのように単純なものとすることができる。アサーションのこの省略された3部バージョンでは、if部分510から始まりc部分512まで延びる条件部分が、省略されている。
各fact部分508を、さらにその構成部分に副分割することもできる。例示的な構成部分は、e部分514およびverb phrase(動詞句)部分516である。凡例524によって示されているように、e部分514は、式(expression)部分を表す。逐語的には、fact部分508は、e verbphraseによって表すことができる。
各e部分すなわち式部分514は、2つの例示的なオプションのうちの1つをとることができる。この2つの例示的な式オプションは、constant(定数)514(c)およびvariable(変数)514(v)である。principalは、constant 514(c)および/またはvariable 514(v)の下に含めることができる。
各verb phrase部分516も、3つの例示的なオプションのうちの1つをとることができる。この3つの例示的なverb phraseオプションは、1つまたは複数のe1…n部分514(1…n)が続くpredicate(述部)部分518、fact部分508が続くcan assert(アサートできる)部分520、および式部分514が続くalias(別名)部分522である。逐語的には、これらの3つのverb phraseオプションは、それぞれpredicate e1…en、can assert fact、およびalias eによって表すことができる。整数「n」は、fact 508(1…n)および式514(1…n)について異なる値をとることができる。
一般に、SecPALステートメントは、セキュリティプリンシパルによって作られるアサーションの形である。セキュリティプリンシパルは、通常、暗号鍵によって識別され、その結果、システム境界にまたがってセキュリティプリンシパルを認証できるようになる。最も単純な形において、アサーションは、あるfactが有効である(たとえば、fact部分508を含むclaim 506によって表される)とプリンシパルが考えていることを述べるものである。アサーションは、1つまたは複数の他のfactが有効であり、条件の何らかの集合が満足される(たとえば、fact部分508からif部分510、条件fact部分508(1…n)、c部分512まで延びるclaim部分506によって表される)場合に、あるfactが有効であることを述べることもできる。制約512を全く伴わない条件fact 508(1…n)および/または条件fact 508(1…n)を全く伴わない制約512も存在し得る。
説明される実施態様では、factは、principalに関するステートメントである。factステートメントの4つの例示的なタイプを、本明細書のこのセクションで説明する。第1に、factは、principalがリソースに対するアクション(1つまたは複数)を行う権利を有することを、「action verb(アクション動詞)」を用いて述べることができる。例示的なaction verbは、call(呼び出す)、send(送る)、read(読み取る)、list(リストする)、execute(実行する)、write(書き込む)、modify(変更する)、append(追加する)、delete(削除する)、install(インストールする)、own(所有する)などを含むが、これらに限定はされない。リソースは、universal resource indicator(URI)または任意の他の手法によって識別することができる。
第2に、factは、principal識別子と1つまたは複数の属性との間の束縛を「possess(所有する)」動詞を使用して表すことができる。例示的な属性は、電子メール名、通称、グループ名、役職、アカウント名、ドメインネームサーバ/サービス(DNS)名、インターネットプロトコル(IP)アドレス、デバイス名、アプリケーション名、組織名、サービス名、アカウント識別/識別子(ID)などを含むがこれらに限定はされない。factの例示的な第3のタイプは、同一のprincipalを表すために、「alias」動詞を使用して2つのprincipal識別子を定義できることである。
「修飾子」またはfact修飾子を、上の3つのfactタイプのいずれかの一部として含めることができる。修飾子は、アサータが、factが有効と考えられる場合に成り立たなければならないとそのアサータが考える環境パラメータ(たとえば、時刻、principal位置など)を示すことを可能にする。そのようなステートメントは、アサータと、これらの修飾子値に基づく頼る当事者の妥当性チェックとの間できれいに分離することができる。
factの例示的な第4のタイプは、「can assert」動詞によって定義される。この「can assert」動詞は、信頼関係および委任を表す柔軟で強力な機構を提供する。たとえば、「can assert」動詞は、あるprincipal(A)が、第2のprincipal(B)によってアサートされたあるタイプのfactを信じるつもりがあることを述べることを可能にする。たとえば、アサーション「A says B can assert fact0(AはBがfact0をアサートできると言う)」および「B says fact0(Bはfact0と言う)」とを与えられれば、fact0が有効であるとAが信じると結論することができ、したがって、「A says fact0(Aはfact0と言う)」と演繹することができる。
そのような信頼アサーションおよび委任アサーションは、(i)下流委任を許可するために、束縛されず、推移的とするか、(ii)下流委任を防止するために束縛されるものとすることができる。修飾子を「can assert」タイプのfactに適用することができるが、これらの「can assert」タイプのfactへの修飾子のサポートの省略は、所与のセキュリティ方式のセマンティックスおよび評価安全性プロパティを大幅に単純化することができる。
説明される実施態様では、具体的なfactを述べることができ、あるいは、変数を使用してポリシ式を記述することができる。変数は、型付きであり、制限なし(たとえば、正しい型のすべての具体的な値と一致することを許可される)または制限付き(たとえば、指定されたパターンに基づく具体的な値の部分集合と一致することを要求される)のいずれかとすることができる。
セキュリティ認可判断は、適用可能なセキュリティポリシ(たとえば、セキュリティポリシ220)およびセキュリティトークン(たとえば、1つまたは複数のセキュリティトークン204)からのアサーションのコレクション(たとえば、アサーションコンテキスト)に対する認可クエリの評価アルゴリズム(たとえば、認可エンジン218で行うことができる評価アルゴリズム)に基づく。認可クエリは、論理式であり、この論理式は、factおよび/または条件を組み合わせる非常に複雑なものになる場合がある。これらの論理式には、たとえば、付随する条件および/または制約を伴うまたは伴わないのいずれであれ、factに対するAND、OR、および/またはNOT論理演算を含めることができる。
認可クエリに対するこの手法は、所与のアクションを認可する前に、何を知らなければならず、何が有効でなければならないかを定義する柔軟な機構を提供する。クエリテンプレート(たとえば、認可クエリテーブル224からの)は、全体的なセキュリティ方式の一部を形成し、異なるタイプのアクセス要求および他の動作/アクションについて適当な認可クエリを宣言的に述べることを可能にする。
[論理分解を用いるセキュリティ言語変換の例示的な実装]
セキュリティは、現代のコンピューティングシステムにおいてクリティカルである。セキュリティを、認可されるアクセスを決定する効率的で高保証の柔軟な機構を用いて容易にすることができる。これは、ポリシベースの手法を使用して達成可能である。そのようなシステムでは、ポリシは、アクセス判断を行い、実施するための基礎になるコードを変更する必要なしに現在の必要を反映するように変化することができる。
既存の手法は、特に複雑な分散コンピューティング環境で、これらの必要を十分に満足することができない。ACLなどの単純なルールベースのポリシは、非常に効率的ではあるが十分に柔軟ではない。XACMLなどのより複雑なルールベースのポリシシステムは、より非効率的な評価と引き換えにより高い柔軟性を提供する。さらに、そのようなルールベースのポリシシステムは、機能的制限(たとえば、委任サポートの欠如)を有する。
従来の論理ベースのポリシモデルは、一般に、最良の機能性を提供するが、他の問題がないわけではない。これらのモデルの一部は、適当な評価安全性プロパティを提供しない。言い換えると、所与の認可判断アルゴリズムが、終了することを保証することができない。他のいくつかのモデルは、非常に非効率的である。さらなる他のいくつかのモデルは、理論的には健全であるが、商用システムで実装するのに実用的とは考えられない。
必要なものは、実装するために実用的であると同時に非常に柔軟であり、効率的な評価ならびに保証された終了を保証する必須の評価安全性プロパティを有する、論理ベースのセキュリティポリシ言語である。例示的なセキュリティポリシ言語の説明される実施態様は、これらの領域での改善をもたらす。
下のセクションでは、例示的なセキュリティ言語を説明する。多くの場所で、この説明は、比較的厳格な論理的基礎によってサポート可能なセキュリティ言語モデルを提供する限り、正確である。厳格な論理的基礎を含む例示的に説明される実施態様は、理論的基盤が理解されることを保証するために提供される。しかし、セキュリティ言語の任意の所与の実世界実施態様が、厳格な論理的説明の諸態様のうちの任意の特定の(すべてより少ない)態様を含まない場合がある。したがって、本願の発明は、本明細書で説明される特定の詳細な実施形態のいずれによるのでもなく、特許請求の範囲によって定義されなければならない。
1 論理分解のためのセキュリティ言語式の序説
セキュリティ言語の式の複数の例示的な実施態様を、本明細書で提供する。これらの実施態様は、結果のセキュリティポリシを効率的なある種の形で論理的に分解できるように設計されている。
図6は、非集中認可ポリシの柔軟な指定および実施を可能にするセキュリティ言語602を有する例示的なセキュリティ方式600を示すブロック図である。セキュリティ方式600は、アサーション構文604および認可クエリ構文606を含む。セキュリティ方式は、複数のセマンティックスルール608(x)をも含む。例示的なセマンティックスルールは、条件セマンティックスルール608(1)、委任セマンティックスルール608(2)、および別名セマンティックスルール608(3)を含むが、これらに限定はされない。これらのセマンティックスルール608(x)は、合同で言語セマンティックス602を形成する。
アサーション構文604、認可クエリ構文606、および言語セマンティックス608のそれぞれは、例示的なセキュリティ言語602の形成および管理に寄与する。セキュリティ方式は、アサーション構文安全性チェック610および認可クエリ安全性チェック612をも含む。アサーション構文安全性チェック610および認可クエリ安全性チェック612を、セキュリティ言語602に一体化して、認可クエリの取り扱いやすさを保証するのを助けることができる。
下のセクション2では、セキュリティ言語のアサーションの例示的な構文およびセマンティックスを説明する。セクション3では、認可クエリの例示的な構文およびセマンティックスを説明する。セクション4では、アサーションおよび認可クエリの安全性原理を説明する。これらの安全性プロパティは、正しく適用された時に、認可クエリ評価が終了することを保証することができ、その評価が効率的に進行することを保証することができる。
2 例示的なセキュリティ言語の構文およびセマンティックス
例示的なセキュリティ言語のコア構文を、ここで説明する。セキュリティ構文の追加の構文は、たとえば単一のアサーション内の一連の権利を委任するための、アサーションのグループ化のために設けることができるが、これらの構文などの追加は、コア構文に限定することができる。セキュリティ言語の例示的な実施態様は、定数、関数、および変数の型付け規律を強制することもできるが、そのような型付け強制は、ここでは、コア構文に集中するために省略する。
アサーション
認可ポリシは、次の形のアサーションの集合として指定される。
A says fact if fact1,…,factn,c
ここで、factは、たとえば誰かがファイルを読み取る権利を有することなど、プリンシパルに関するプロパティを述べる述部にわたる。例示的な実施態様では、アサーションは、ホーン節に似たものとすることができるが、(1)アサーションは、アサートされるclaimを発行し、その証人となるあるプリンシパルAによって修飾され、(2)factは、キーワードcan assertを使用することによってネストすることができ、これによって、委任権利が指定され、(3)アサーション内の変数は、cすなわち、たとえば時間的制約、不等性制約、木構造制約、正規表現制約などを表すことができるファーストオーダーの式(first order formula)によって制約されるという相違を有する。
次のリスティングに、本明細書で使用されるアサーション構文604の用語法を示す。
Figure 0005145340
説明される実施態様では、変数は、文字列および整数のみの範囲にまたがるが、predicate、fact、claim、およびassertionの範囲にはまたがらない。構文の句は、変数を含まない場合にグラウンド(ground)である。集合PredicateNamesは、can assert、can assert0、およびaliasを含んではならない。関数および述部は、固定されたアリティを有する。述部は、そのオブジェクトパラメータ用の穴を有する動詞句である。述部が複数の単語を有する場合に、これらの穴は、たとえばhas access from[−]till[−]など、その述部の中で固定された位置にあるように見えるものとすることができる。
このテキストの残りでは、通常はprincipalを記述するために、定数のメタ変数としてA、B、C、およびDを使用する。アイテムの(おそらくは空の)リスト(またはタプル)を表すのにベクトル表記を使用し、たとえば、f(e1,…,en)を
Figure 0005145340
と書く場合がある。
factは、上の構文定義からわかるように、ネストすることができる。ネストされたfactは、次に定義するようにfactがフラットである場合に、あるn≧1について、e1 can assertD1…en can assertDn factの形になる。
2つの定義を下に提示する。第1の定義は、フラットfactを定義し、第2の定義は、アサーションの諸部分を定義する。
定義2.1 factは、can assertがその中に現れない場合に限ってフラットであり、そうでない場合にはネストされている。
たとえば、Alice says Bob can read fというfactはフラットであるが、Alice says Charlie can assert0 Bob can read fはフラットではない。
定義2.2 A says fact if fact1,…,factn,cがアサーションであるものとする。Aは、その発行者であり、factiは、その条件factであり、cは、その制約である。factは、アサーションの主factまたはアサートされるfactと考えることができる。
制約
制約は、下に示す例示的な基本制約領域を拡張するすべての制約領域にまたがる。基本制約は、整数不等性(たとえば、時間的制約を表すため)、ツリー順序制約(たとえば、ディレクトリ用)、および正規表現(たとえば、アドホックフィルタリング用)を含む。基本制約の例を、下に示す。
Figure 0005145340
追加の制約を、決定可能性に影響せず、取り扱いやすさに大きくは影響せずに追加することができる。しかし、所望のレベルの取り扱いやすさを維持するために、グラウンド制約の妥当性を多項式時間でチェックできることが好ましい。
たとえばFalse、e1≠e2、またはc1 or c2など、基本的な制約の表記から導出できる制約のシュガード表記(sugared notation)を使用する。アサーションでは、通常はTrue制約を省略し、アサーションが条件factを有しない時にはifをも省略する。
セマンティックス
これから言語セマンティックス608の形式的な定義を与える。まず、グラウンド式の記号を定義する。定数Aの記号は、単にAであり、したがって[[A]]=Aである。関数
Figure 0005145340
の記号は、
Figure 0005145340
がグラウンドである場合に定義され、やはり定数であるが、システム状態ならびに
Figure 0005145340
に依存する場合がある。たとえば、[[CurrentTime()]]は、おそらくは、異なる時刻に呼び出された時に異なる定数を返す。しかし、単一の認可クエリ評価が、システム状態に関して原子的であると仮定する。すなわち、式を複数回評価できる場合であっても、その記号は、単一の評価中には同一である。
所与の定数cについて、cが有効である場合に限って|=cと書く。次では、基本制約領域内の有効性を定義する。
|=True
|=e1=e2 [[e1]および[[e2]]が等しい定数である場合に限って
|=e1≦e2 [[e1]]および[[e2]]が整数定数であり、[[e1]]≦[[e2]]の場合に限って
Figure 0005145340
[[e1]]および[[e2]]が木定数であり、[[e1]]が[[e2]]の子孫であるかこれと等しい場合に限って
|=e matches pattern [[e]]が、patternと一致する文字列定数である場合に限って
|=not(c) |=cが成り立たない場合に限って
|=c1,c2 |=c1かつ|=c2である場合に限って
この文書の残りでは、置換θを、変数を定数および変数にマッピングする関数と呼ぶ。置換は、制約、述部、fact、claim、アサーションなどに自然な形で拡張され、通常はポストフィックス表記で書かれる。構文Xの句に現れる変数の集合を、Vars(X)と書く。
説明される実施態様では、セキュリティ言語は、3つの演繹ルールを含む。これから、この言語のセマンティックスを把握するためにこの3つの演繹ルールを提示する。各ルールは、AC,D|=A says factの形の前提の集合および単一の結果を有し、ここで、Vars(fact)=φかつD∈{0,∞}である。直観的には、この演繹関係は、結果をアサーションコンテキストACから導出できる場合に成り立つ。導出フラグD=0の場合には、導出ルール(can assert)は、導出に使用されない。
条件セマンティックスルール608(1)は、次の通りである。
Figure 0005145340
一般的な委任ディレクティブ動詞の「can assert」動詞実施態様を伴う委任セマンティックスルール608(2)は、次の通りである。
Figure 0005145340
別名セマンティックスルール608(3)は、次の通りである。
Figure 0005145340
ルール(cond)は、定数によって置換されたすべての自由変数と一致するAC内のアサーションの演繹を可能にする。説明される厳密な論理実施態様では、条件factは、演繹可能でなければならず、置換は、やはり制約(1つまたは複数)を有効にしなければならない。委任フラグDは、すべての条件factに伝搬される。
言い換えると、アサーションコンテキストAC、委任フラグD、プリンシパルA、および置換θを与えられれば、次のすべてが成り立つ場合に、「AC,D|=A says fact θ」を導出することができる。
(1)アサーションコンテキストAC内にルール「A says fact if fact1,…,factk,c」があり、
(2)リスト「fact1」,…,「factk」内の「facti」ごとに「AC,D|=A says facti θ」を導出することができ、
(3)制約「cθ」が有効であり、
(4)fact「fact θ」がグラウンドである。
ルール(can assert)は、Aによって作られたcan assertアサーションをBによって作られた一致するアサーションと組み合わせることによって、Aによって作られたアサーションを演繹する。説明される厳密な論理実施態様では、このルールは、委任フラグが∞である時に適用される。Bによって作られた一致するアサーションは、Aのcan assertアサーションから入手される委任フラグDを用いて証明されなければならない。
言い換えると、アサーションコンテキストAC、プリンシパルA、およびファクトfactを与えられれば、次の両方が成り立つようになるプリンシパルBおよび委任フラグDがある場合に、「AC,∞|=A says fact」を導出することができる。
(1)「AC,∞|=A says B can assertD fact」を導出することができ、
(2)「AC,D|=B says fact」を導出することができる。
ルール(alias)は、Cについて成り立つすべてのfactがBについても成り立つことを述べる。
言い換えると、アサーションコンテキストAC、委任フラグD、プリンシパルA、B、およびC、ならびに動詞句「verbphrase」を与えられれば、次の両方が成り立つ場合に、「AC,D|=A says B verbphrase」を導出することができる。
(1)「AC,D|=A says C verbphrase」を導出することができ、
(2)「AC,D|=A says B alias C」を導出することができる。
次の命題は、演繹関係の基本プロパティを述べ、上のルールに対する帰納によって確立される。
命題2.3 AC,D|=A says factならば、Vars(fact)=φである。
命題2.4 AC,0|=A says factならば、AC,∞|=A says factである。
命題2.5 AC1,D|=A says factならば、すべてのAC2について、AC1 ∪ AC2,D|=A says factが成り立つ。
命題2.6 ACAが、その発行者がAであるAC内のすべてのアサーションの集合であるものとする。ACA,0|=A says factである場合に限って、AC,0|=A says factである。
3 認可クエリ
認可要求は、アサーションコンテキスト(ローカルアサーションならびにインポートされたアサーションを含む)を照会することによって判断される。論理言語の説明される実施態様では、認可クエリに、否定を含む論理結合子によって組み合わされた、A says factおよび制約cの形の原子的クエリのコレクションを含めることができる。例示的な認可クエリ構文606は、次の通りである。
Figure 0005145340
結果のクエリ言語は、原子的クエリだけが考慮される他の論理ベースの言語より表現力がある。たとえば、義務、しきい値、および拒否ポリシの分離を、否定および制約を用いて原子的クエリを構成することによって表すことができる。説明される実施態様では、否定は、アサーション言語内では許容されない。というのは、再帰言語との否定の結合が、意味論的曖昧さをもたらし、しばしば、より高い計算的複雑さまたは決定不可能性という結果になるからである。否定の使用を認可クエリのレベルに制限する(これらの特徴をアサーション言語自体に追加するのではなく)ことによって、否定が再帰から効果的に分離され、これによって、通常は否定に関連する問題が回避される。
クエリのセマンティックスは、関係
Figure 0005145340
によって定義される。次では、εが、空の置換であるものとする。否定されたクエリおよび制約が、グラウンド化されることと、第2のクエリが第1のクエリの結果によってインスタンス化される場合があるので、合接が交換可能ではないこととに留意されたい。
Figure 0005145340
クエリqおよび認可コンテキストACを与えられれば、認可アルゴリズムは、
Figure 0005145340
になるすべての置換θの集合を返さなければならない。クエリがグラウンドである場合には、回答集合は、空である(「no」を意味する)か、空の置換εを含むシングルトン集合である(「yes」を意味する)かのいずれかになる。クエリが変数を含む場合には、回答集合内の置換は、クエリ木を作る変数割り当てのすべてである。
次のセクションすなわちセクション4では、変数割り当てのこの集合が有限であり、意味があることを保証する安全性条件を説明する。下のセクション9で、認可クエリを評価するアルゴリズムを与える。
認可クエリテーブル
概念上、認可クエリは、ローカルポリシの一部であり、命令的コードとは別に保持することができる。セキュリティ言語の説明される実施態様では、ローカルアサーションコンテキストに属する認可クエリは、認可クエリテーブルと呼ばれる単一の場所に保持される。このテーブルは、パラメータ化されたメソッド名をクエリにマッピングすることによって、認可クエリへのインターフェースを提供する。要求時に、リソースガードは、このテーブルによって認可クエリにマッピングされるメソッドを呼び出し(クエリを直接に発行するのではなく)、次に、この認可クエリが、アサーションコンテキストを照会するのに使用される。
たとえば、認可クエリテーブルは、次のマッピングを含むことができる。
Figure 0005145340
たとえば、Aliceが、支払いPayment47を認可することを試みる場合に、リソースガードは、canAuthorizePayment(Alice,Payment47)を呼び出し、これが、次のクエリをトリガする。
Figure 0005145340
結果の回答集合(要求が拒否されなければならない場合には空集合、またはidの変数割り当てのいずれか)が、リソースガードに返され、次に、このリソースガードは、認可判断に従ってポリシを実施することができる。
4 安全性
セキュリティ言語の例示的な実施態様では、認可アルゴリズムは、入力が何であろうと、終了し、説明されているセマンティックスに関する回答の完全な集合を返すことを要求される。さらなる制限なしには、これを保証することはできない。というのは、制約領域が制約コンパクトではないからである。したがって、説明される実施形態では、比較的単純で純粋に構文的な制限が、アサーションおよびクエリに対して強制される。
定義4.1 (アサーション安全性チェック610(図6の)):A says fact if fact1,…,factn,cがアサーションであるものとする。変数x∈Vars(fact)は、x∈Vars(fact1)∪…∪Vars(factn)の場合に限って安全である。
アサーションA says fact if fact1,…,factn,cは、次の場合に限って安全である。
1.factがフラットである場合には、Vars(fact)内のすべての変数は安全であり、
そうではない(すなわち、factがe can assertD fact’の形である)場合には、eのすべての変数は安全である、あるいは、より具体的には、eは安全な変数または定数であり、
2.Vars(c)⊆Vars(fact)∪Vars(fact1)∪…∪Vars(factn)であり、
3.fact1,…,factnがフラットである。
安全なアサーションのいくつかの例は、次の通りである。
Figure 0005145340
安全でないアサーションのいくつかの例は、次の通りである。
Figure 0005145340
安全性条件は、下のセクション8で説明する論理言語変換の評価が、すべての場合に終了し、完全であることを保証する。さらに、安全性条件は、セクション8の評価アルゴリズム内での制約の単純な処理を可能にする。というのは、クエリがフラットである限り、条件述部が処理される時に制約のすべての変数が完全にインスタンス化され、したがって制約を伝搬させる必要がなく、複雑な制約解決アルゴリズムを実装する必要がないからである。
ここで、アサーションコンテキストのアサーションが安全であるならば置換の集合が有限であることを保証する、認可クエリに対する安全性条件を定義する。さらに、この条件は、セクション9で定義される、合接の伝搬に関する左から右への評価ルールを仮定して、not(q) or cの形のサブクエリが評価時にグラウンドになることを保証する。
まず、形
Figure 0005145340
の判定を伴う演繹関係
Figure 0005145340
を定義し、ここで、qはクエリであり、IおよびOは変数の集合である。直観的には、集合Iは、クエリのコンテキストによってグラウンド化される変数を表し、Oは、クエリによってグラウンド化される変数を表す。
次の演繹関係は、推論ルールに基づく認可クエリに対する構文チェック612(図6の)を提供する。一番上が証明される場合に、一番下も証明されると考えることができる。
安全なアサーション推論ルールは、
Figure 0005145340
である。
安全な合接推論ルールは、
Figure 0005145340
である。
安全な離接推論ルールは、
Figure 0005145340
である。
安全な否定推論ルールは、
Figure 0005145340
である。
安全な制約推論ルールは、
Figure 0005145340
である。
定義4.2 (認可クエリ安全性612(図6の)):認可クエリqは、
Figure 0005145340
になる変数の集合Oが存在する場合に限って安全である。
安全性のチェックは、すべてのサブクエリを再帰的にトラバースし、これによって集合O(クエリおよびIによって必ず一意に決定される)を構築することによって行うことができる。
安全なクエリおよび安全でないクエリの例を、下の表に示す。次の例では、「,」および「or」は、左側結合である。
Figure 0005145340
図7は、認可クエリ評価が効率的に完了することを保証するためにセキュリティ言語の安全性をチェックする方法の例を示す流れ図700である。流れ図700は、3つの「主」ブロック702〜706および4つの「副」ブロック702(1)/(2)/(3)および704(1−5)を含む。流れ図700のアクションは、他の環境内でおよびさまざまなハードウェア/ソフトウェア/ファームウェア組合せを用いて実行することができるが、図1〜6の特徴、コンポーネント、および態様の一部が、この方法の例を例示するのに使用される。
説明される実施態様では、ブロック702で、アサーションコンテキストのアサーションの安全性をチェックする。たとえば、定義4.1を、アサーションコンテキストACの各アサーションに適用することができる。したがって、ブロック702(1)で、アサーションの初期変数が安全であることを検証する。たとえば、定義4.1のパート(1)を適用することができる。たとえば、初期変数は、factの変数(factがフラットである場合)または式eの変数(factがフラットではない場合)である。
ブロック702(2)で、制約変数もアサーション内の他のどこかに存在することを検証する。たとえば、定義4.1のパート(2)を適用することができる。ブロック702(3)で、条件factがフラットであることを検証する。たとえば、定義4.1のパート(3)を適用することができる。
ブロック704で、認可クエリの安全性をチェックする。たとえば、定義4.2を認可クエリに適用することができる。ブロック704(1−5)で、認可クエリの構文に依存して、安全推論ルールのうちの1つまたは複数を認可クエリに適用して、準拠を確認し、クエリの安全性を保証する。例示的な推論ルールは、アサーション、合接、離接、否定、および制約である。
アサーションコンテキストがそのチェックに合格しない(ブロック702で)または認可クエリがそのチェックに合格しない(ブロック704で)場合には、終了しないか完全ではないアサーションコンテキストおよび/または認可クエリを評価する試みを避けるために、評価アルゴリズムを異常終了することができる。安全性が成功してチェックされた(ブロック702および704)後に、ブロック706で、認可クエリをアサーションコンテキストと共に評価することができる。
5 アサーションの満了および撤回
セキュリティ言語の説明される実施態様では、満了日付を、通常の動詞句パラメータとして表すことができる。
Figure 0005145340
時々、満了日付を指定するか、それ自体の有効なタイムスパン要件をセットすることは、アクセプタ次第としなければならない。この場合に、アサーションは、日付を強制せずに日付を含めるだけとすることができる。
Figure 0005145340
その後、アクセプタは、アサーションの妥当性に関するそれ自体の時間ベースの制約を強制するのに日付を使用することができる。
Figure 0005145340
アサーションは、スケジューリングされた満了日付の前に撤回されなければならない場合がある。撤回が、明示的に信頼される発行者の暗号鍵が危険にさらされたことに起因して必要になる場合に、撤回は、もはやその鍵を信頼してはならないことを、頼る当事者に知らせることによって行われる。次に、頼る当事者は、その鍵への明示的な信頼を表すポリシを除去する。しかし、発行者が、その発行者が過去に行ったアサーションを撤回することを必要とすることの方が、はるかにより一般的である。これは、アサーションに関するプリンシパルに関連する暗号鍵が危険にさらされたこと、プリンシパルの関係のなんらかの変化(たとえば、雇用における変化)、またはプリンシパルの側での悪意のある振る舞いに起因する可能性がある。たとえば、上の例示的なアサーションは、Aliceが大学を退学する場合には撤回されなければならない。
すべてのアサーションMが、識別子(たとえばシリアル番号)IDMに関連すると仮定する。撤回(および撤回の委任)は、説明される実施態様では、動詞句revokes IDMを有する撤回アサーションによって表すことができる。たとえば、撤回アサーション
Figure 0005145340
は、Aによって発行され、識別子IDを有するすべてのアサーションを、2007年7月31日より後に撤回する。
定義5.1 (撤回アサーション):アサーションは、安全であり、次の形である場合に撤回アサーションである。
Figure 0005145340
アサーションコンテキストACと撤回アサーションACrevの集合とを与えられ、AC ∩ ACrev=φである場合には、認可クエリを評価する前に、AC内のACrevによって撤回されるすべてのアサーションが除去される。フィルタリングされたアサーションコンテキストは、次によって定義される。
AC−{M|M∈AC,AはMの発行者,ACrev,∞|=A says A revokes IDM
ACおよびACrevが互いに素であるという条件は、撤回アサーションを撤回できないことを意味する(少なくとも、セキュリティ言語の説明される実施態様ではできない)。撤回アサーションをお互いによって撤回できるようにすることは、論理プログラミングでの否定された本体述部(negated body predicates)と同一の問題および意味論的曖昧さを引き起こす。これらの問題は、形式的には、たとえば層化可能な撤回集合のみを許容することまたは明確な基礎を与えられたモデルを計算することによって克服可能ではあるが、これらの手法は、商用システムでの使用を奨励するのに十分に単純ではない。
6 論理分解を用いるセキュリティ言語変換の序説
本明細書で上述したセキュリティ言語の例示的な実施態様は、人間がよく理解できる形でセキュリティポリシを表す機構を提供する。さらに、このセキュリティ言語を、安全性についてチェックすることができる。しかし、セキュリティポリシを、認可判断を行うために評価する必要もある。
そのために、既存の論理言語を活用することができる。長期にわたって開発されてきた、完全にテストされた既存の論理言語がある。これらの論理言語と共に使用できる役立つツールもある。例示的な適用可能な論理言語が、Datalog、具体的には制約付きDatalog(constrained Datalog)である。しかし、他の論理言語をその代わりに利用することができる。
本明細書で、そのような既存の論理言語をセキュリティ言語と共に使用することを可能にする技法および機構を説明する。セキュリティ言語を、セクション7で説明するように、論理言語に変換することができる。セクション8では、論理言語で実行されるテーブル化を用いる評価アルゴリズムを説明する。この評価アルゴリズムは、論理言語で証明グラフを作ることができる。セクション9では、論理言語を反映する証明グラフをセキュリティ言語を反映する証明グラフに変換する技法を説明する。したがって、この評価アルゴリズムを含む認可プロセスを、セキュリティ言語に関して分析することができる。
7 論理言語への変換
説明されるセキュリティ言語の例示的なアサーションセマンティックスは、セクション2の3つの演繹ルールによって定義される。このセマンティックスは、既に提案した、ある形の形式論理への変換に関して定義されたセマンティックスより理解でき、直観的である。それでも、このセマンティックスは、セキュリティ言語アサーションコンテキストを同等の論理言語プログラムに効率的に変換できるようになるのに有用である。次に、既知の複雑さ結果(たとえば、多項式データ複雑さ)を活用し、変換された論理言語プログラムをクエリ評価に使用することができ、これをセクション8で説明する。
これから、安全なアサーションコンテキストを同等の論理言語プログラムに変換するアルゴリズムを説明する。例としてのみ、安全なアサーションコンテキストを制約付きDatalogプログラムに変換する。次では、e1 saysk factの形の式をDatalog述部として扱い、ここで、kは、変数または0または∞のいずれかである。これは、述部名が、can assertの下付き文字を含む、式内に現れるすべてのインフィックス演算子(says、can assert、alias、revokes、および述部名)の文字列連結である、述部のシュガード表記と考えることができる。述部の引数は、これらのインフィックス演算子の間の集められた式である。たとえば、式
Figure 0005145340
は、
Figure 0005145340
の省略表現である。
アルゴリズム7.1 アサーションコンテキストACの変換は、次のように進む。
1.fact0がフラットである場合に、アサーション
Figure 0005145340
は、ルール
Figure 0005145340
に変換され、ここで、kは、新しい変数である。
2.そうでない場合には、fact0は、あるn≧1について、
Figure 0005145340
の形であり、ここで、factはフラットである。
i∈{0..n−1}について
Figure 0005145340
Figure 0005145340
であることに留意されたい。アサーション
Figure 0005145340
は、次のようにn+1個のDatalogルールに変換される。
(a)Datalogルール
Figure 0005145340
を追加する。ここで、kは新しい変数である。
(b)i∈{1..n}のそれぞれについて、Datalogルール
Figure 0005145340
を追加する。ここで、xは新しい変数である。
3.最後に、
A saysk e verbphrase:− …
の形の上で作成されたDatalogルールのそれぞれについて、ルール
A saysk x verbphrase:−
A saysk x alias e,
A saysk e verbphrase
を追加する。ここで、xは新しい変数である。kが、新しい変数ではなく、定数またはオリジナルルールからとられた変数のいずれかであることに留意されたい。
図8は、セキュリティ言語を論理言語に変換する方法の例を示す流れ図800である。流れ図800は、7つのブロック802〜814を含む。流れ図800のアクションは、他の環境内でおよびさまざまなハードウェア/ソフトウェア/ファームウェア組合せを用いて実行することができるが、図1〜6の特徴、コンポーネント、および態様の一部が、この方法の例を例示するのに使用される。流れ図800は、少なくとも部分的に上のアルゴリズム7.1を表す。
説明される実施態様では、ブロック802で、アサートされたfactおよび0個以上の条件factを有するセキュリティ言語アサーションが、アサーションコンテキストから抽出される。ブロック804で、アサートされたfactがフラットであるかどうかを判定する。そうである場合には、ブロック806で、アサーションを、主factおよび0個以上の付帯条件を有する論理言語ルールに変換する。たとえば、アルゴリズム7.1のパート1を実行することができる。主factは、アサートされたfactに対応し、付帯条件は、条件factに対応する。これらの異なる用語は、セキュリティ言語アサーションコンテキストの諸部分からの論理言語プログラムの異なる部分の逐語的区別を明瞭にするために使用されるものである。
その一方で、アサートされたfactがフラットではないと判定される(ブロック804で)場合には、セキュリティアサーションは、ブロック808および810によって変換される。factがフラットではない場合には、アサーションは、少なくとも1つの委任ディレクティブ動詞(たとえば、can assert、can sayなど)を伴う委任アサーションである。
ブロック808で、主factおよび0個以上の付帯条件を有する論理言語ルールを追加する(たとえば、成長する論理言語プログラムに)。たとえば、アルゴリズム7.1のパート2(a)を実行することができる。ブロック810で、セキュリティ言語アサーションのアサートされたfactの委任ディレクティブ動詞ごとに、無制限の委任深さと委任を表す新しい変数とを有する論理言語ルールを追加する。より具体的には、この新しい変数は、その権利が委任されようとしているプリンシパルを表す。たとえば、アルゴリズム7.1のパート2(b)を実行することができる。
ブロック812で、作成された(ブロック806または808/810で)式を伴うアサートされたfactを有する論理言語ルールごとに、別名機能とその別名のオブジェクトを表す新しい変数とを有するもう1つの論理言語ルールを論理言語プログラムに追加する。たとえば、アルゴリズム7.1のパート3を実行することができる。ブロック814で、これによって、セキュリティ言語アサーションコンテキストの入力アサーションに対応する論理言語プログラムセグメントを作る。流れ図800のアクションは、所与のアサーションコンテキスト内のアサーションごとに繰り返される。
アサーションの例示的な変換は、次の通りである。
Figure 0005145340
は、ステップ2aおよび2bで、
Figure 0005145340
に変換される。
最後に、ステップ3で、次のルールも追加される。
Figure 0005145340
定義7.2 (結果演算子):直接結果演算子(immediate consequence operator)TPは、グラウンド化された述部の集合の間の関数であり、次のように定義される。
Figure 0005145340
演算子TPは、単調かつ連続であり、その最小の固定点TP w(φ)は、Pから演繹可能なすべてのグラウンドfactを含む。
命題7.3 (健全さおよび完全さ):Pが、アサーションコンテキストACのDatalog変換であるものとする。AC,D|=A says factの場合に限って、A saysD fact∈TP w(φ)である。
8 テーブル化を用いる論理言語評価
上のセクションでは、安全なセキュリティ言語アサーションの集合を、同等の少なくとも部分的に安全な制約付きDatalogプログラムにどのように変換できるかを示した。演繹データベースのコンテキストでは、ボトムアップ手法が、Datalog評価に最も頻繁に使用される。その場合に、プログラムのモデルまたはその最小固定点(安全性に起因して有限である)は、一度だけ計算される。これは、完全で終了する手順であるという利益を有し、クエリ評価は、固定点が構築されたならば高速である。
しかし、ボトムアップ評価は、セキュリティ言語の説明される実施態様にはそれほど適切ではない。というのは、アサーションコンテキストが一定ではないからである。実際に、アサーションコンテキストは、異なる要求の間で完全に異なる場合がある。すべての要求に関するモデルの計算は、関連しないゴールの評価をもたらすので効率的ではない。さらに、我々が関心を持つクエリは、通常、完全にまたは部分的にインスタンス化され、したがって、トップダウンのゴール指向手法が、より適切であると思われる。
最も広く知られたトップダウン評価アルゴリズムは、Prologで使用されるSLD導出である。残念ながら、SLD導出は、述部の一部が再帰的定義を有する場合に、安全なDatalogプログラムに関してさえ無限ループに入る可能性がある。この問題は、深さ優先ではなく幅優先検索戦略が使用される場合であっても残り、ループは、SLD探索木が無限なので発生する。テーブル化またはメモイング(memoing)は、なんらかのボトムアップ技法をトップダウン分解戦略に組み込むことによって終了を保証する手法である。基本的な発想は、出会ったサブゴールおよびその回答のテーブルを保持することによって無限探索木を枝刈りし、テーブル内にまだ存在しない場合に限ってサブゴールを計算することである。
ここで、テーブル化に基づく決定性アルゴリズムを説明し、これを、論理言語プログラムに変換済みのセキュリティ言語アサーションに適用する。2つのグローバルテーブルが、評価プロセス中に保持される。
図9は、テーブル化を用いる例示的な決定的評価アルゴリズム900を示すブロック図である。評価アルゴリズム900は、5つのモジュール902すなわち、QUERYモジュール902(1)、RESOLVE−CLAUSEモジュール902(2)、RESOLVEモジュール902(3)、PROCESS−ANSWERモジュール902(4)、およびPROCESS−SUBGOALモジュール902(5)を含む。評価アルゴリズム900は、2つのテーブル904すなわち、Ansテーブル904(1)およびWaitテーブル904(2)をも含む。
第1のテーブルすなわちAnsテーブル904(1)は、述部をグラウンド述部の集合にマップする。サブゴールP(インスタンス化されていないか、部分的にまたは完全にインスタンス化された)が計算される場合に、Pは、Ansの領域に追加され、どの時点でも、Ans(P)は、それまでに見つかったPに対する回答(これらはPのグラウンドインスタンスである)の集合を返す。評価プロセスの終りに、Ansは、ルートゴールを含むすべての出会ったサブゴールに対する完全な回答を含む。
第2のテーブルは、Waitテーブル904(2)である。このテーブルは、述部Pを
Figure 0005145340
の形のサブゴールおよび述部
Figure 0005145340
にマップする。このサブゴールは、次のように解釈することができる。Pは、証明木のトップレベル述部であり、P0は、次に解くべき述部であり、
Figure 0005145340
は、P0の後に解かなければならない述部のリストであり、cは、述部変数に対する制約であり、Sは、連続的に絞り込むことによってこれまでに見つかったインスタンス化を記憶するPのインスタンスである。
この評価アルゴリズムに関係する複数の用語および概念を、下で定義し、かつ/または説明する。
定義8.1 置換ρは、θ=ρθ’になる置換θ’が存在する場合に限って、θより一般的である。
定義8.2 PおよびQが、2つの述部であるものとする。置換θは、Pθ=Qθである場合に限って、PおよびQのユニファイヤ(unifier)である。置換θは、PおよびQの他のどのユニファイヤより一般的である場合に限って、PおよびQの最も一般的なユニファイヤである。
定義8.3 述部Pの変数リネーミングは、θがPに現れる変数の集合上の順列を定義するようになる置換θである。
2つの述部PおよびQがユニファイ可能である場合に、PおよびQは、変数リネーミングまで一意である、最も一般的なユニファイヤをも有する。これを、Mgu(P,Q)によって表す。最も一般的なユニファイヤを見つけることは、比較的単純であるが、線形時間で動作する、より複雑なアルゴリズムがある。
追加の用語および概念を、下で定義し、かつ/または説明する。
定義8.4 PおよびQが、2つの述部であるものとする。ある置換θについてP=Qθである場合に限って、Pは、Qのインスタンスである。PがQによって包含されるとも言い、P=>Qと書く。
命題8.5 PおよびQの最も一般的なユニファイヤが存在し、θがPの変数リネーミングである場合に限って、P=>Qである。
次の擬似コードは、評価アルゴリズムの例を提供するものである。これを、下でさらに説明する。
Figure 0005145340
1 if θ=Mgu(P0,P0’)が存在する and d=Simplify(cθ)が充足可能である then
Figure 0005145340
2 if P0⇒P0’になるP0’∈Dom(Ans)が存在する
Figure 0005145340
ルールの集合
Figure 0005145340
に関する述部Pに対する回答を見つけるために、当初に空のAnsテーブルおよびWaitテーブルを用いて(すなわち、Dom(Ans)=Dom(Wait)=φ)、ルーチンQUERY(P)を呼び出す。
5つのモジュール902のそれぞれを、下で説明する。
QUERY(モジュール902(1))は、RESOLVE−CLAUSE(P)を呼び出すことによって新しい証明木を産む。その呼出しの後に、Ans(P)に、正しい完全な回答が投入される。
RESOLVE−CLAUSE(モジュール902(2))は、RESOLVEを呼び出すことによって、Fresh(P)に対して
Figure 0005145340
に含まれる各ルールを分解する。関数Fresh(P)は、
Figure 0005145340
のどこにも現れない変数を新しいものにするために、Pに含まれるすべての変数をリネームする。
RESOLVE(モジュール902(3))は、
Figure 0005145340
の形のサブゴールおよび述部P’0をパラメータとしてとる。RESOLVE内のSimplify関数は、制約に対して、すべての種類の、同等性を保存する単純化(たとえば、(False,c)≡False)を実行することができる。最低限でも、Simplify関数は、グラウンド制約を真または偽に単純化しなければならない。行1に対する充足可能性チェックを過剰近似することは安全である。すなわち、「偽」は、cθが実際に充足不能である場合に限って返されなければならないが、「真」は、Simplify(cθ)が完全にはインスタンス化されない限り、cθが充足不能である場合であっても返されてよい。したがって、近似充足可能性チェックの単純な実施態様は、単純化された制約がまだ完全にはインスタンス化されていない時に、必ず「真」を返すことができる。
ユニフィケーションおよび充足可能性チェックが成功する場合に、2つのサブケースがある。リスト
Figure 0005145340
が空であり(この場合には、SθがPに対する回答であることがわかる)、さらに、これは、安全性に起因して、グラウンド回答である。その後、PROCESS−ANSWERを呼び出して、この回答をさらに処理する。そうでない場合には、次に解くべき述部としてリスト内の最初の述部を選ぶことによって、左から右への評価戦略を使用し、第1パラメータ以外のすべてのパラメータに置換θをプッシュしてPROCESS−SUBGOALを呼び出す。第1パラメータPは、オリジナルゴールが何であったかを記憶するのに使用されるので、未変更のままにされる。仮の解Sが、Sθに絞り込まれる。
PROCESS−ANSWER(モジュール902(4))は、Pに対する回答をとり、Ansテーブル904(1)を更新する。Waitテーブル904(2)は、この回答を待っているすべての一時停止されたサブゴールを含む。各一時停止されたサブゴールは、新たに見つかった回答と一緒にRESOLVEを呼び出すことによって再開される。
PROCESS−SUBGOAL(モジュール902(5))は、次に解くべき述部としてP0を有するサブゴールを引数としてとり、それを包含するAnsテーブル904(1)内の既存のサブゴールP’0が既にあるかどうかをチェックする。ある場合には、P’0の既存の回答を再利用することができ(RESOLVEを呼び出すことによって)、したがって、P0の新しい証明木を開始する必要はない。さらに、サブゴールのコピーが、P’0のWaitエントリに追加され、その結果、P’0に対するすべての将来の回答も使用されるようになる。Ansテーブル904(1)内のどのエントリもP0を包含しない場合に限って、新しい証明木が、RESOLVE−CLAUSEへの呼出しによって産み出される。その前に、サブゴールを含むP0のエントリが、Waitテーブル904(2)内に作成される。
追加の定義および定理を、下で説明する。
定義8.6
Figure 0005145340
は、呼出しが終了する場合に、等式なしのルールの集合
Figure 0005145340
ならびに当初は空のAnsテーブルおよびWaitテーブル904のコンテキストでの呼出しQUERY(P)の戻り値と定義される。そうでない場合には、
Figure 0005145340
は未定義である。
定理8.7 (終了):
Figure 0005145340
は、すべての部分的に安全なクエリPについて定義され、有限である。
定理8.8 (健全さおよび完全さ):Pが、部分的に安全なクエリであるものとする。
Figure 0005145340
は、TP w(φ)に含まれるPのすべてのグラウンドインスタンスの集合と等しい。
図10は、評価アルゴリズム中に作られ、グラフフラグメント1006を含む、例示的な論理言語証明グラフ1000のブロック図である。図示されているように、論理言語証明グラフ1000は、複数の節点(node)1002および複数の有向辺(directed edge)1004を含む。具体的に言うと、論理言語証明グラフ1000は、10個の節点1002(1…10)を含む。しかし、論理言語証明グラフ1000には、任意の個数の節点1002および任意の個数の有向辺1004を含めることができる。2つの有向辺1004(1)および1004(2)は、明示的にラベルを付けられている。有向辺1004は、節点1002の間の論理演繹を示す。
セキュリティポリシのテストおよびトラブルシューティングを行う時には、認可判断の根拠を見られることが有用である場合がある。これは、上のセクション2のセマンティックルールシステムに従って構築された対応する証明グラフのビジュアル表現および/または逐語表現とすることができる。評価中に作られる証明グラフを、監査のためにアーカイブすることもできる。
論理言語証明グラフ1000の葉節点は、長方形の節点1002(4)、1002(5)、1002(6)、1002(8)、1002(9)、および1002(10)によって表される。非葉節点は、円形の節点1002(1)、1002(2)、1002(3)、および1002(7)によって表される。円は、付帯条件(たとえば、本体述部)を提供する節点である。論理言語証明グラフ1000の長方形の葉節点は、オリジナルのアサーションコンテキストからのアサーションから変換されたルールである。他の節点は、導出されたステートメントであり、これらは、上で説明した決定的テーブル化アルゴリズムが評価に使用される場合には回答テーブル(たとえば、Ansテーブル904(1))からとられる。
論理言語証明グラフ1000は、例示的なフラグメント1006に分離される。具体的に言うと、3つのフラグメント1006(1、2、3)が示されているが、証明グラフを、任意の個数のフラグメント1006に分離することができる。各フラグメント1006は、全体的な証明グラフの構造の一部を形成する。その結果、各フラグメント1006は、節点(1つまたは複数)1002および有向辺(1つまたは複数)1004を含む。
セキュリティ言語に馴染みのある誰かが分析、トラブルシューティング、および/または監査などを実行するために、論理言語証明グラフ1000を、対応するセキュリティ言語証明グラフ(全体として別々には図示せず)に変換することができる。この変換をもたらすために、パターンマッチングプロセスが実行される。論理言語フラグメント1006が、対応するセキュリティ言語フラグメントとマッチングされる。
説明される実施態様では、パターンマッチングプロセスで使用できるサンプルセキュリティ言語フラグメントは、それぞれ、セキュリティ言語からのセマンティックスルールにめいめいが関連する。論理言語フラグメントとセキュリティ言語フラグメントとの間の例示的なフラグメント対応を、下で図12A、12B、13A、13B、14A、および14Bを参照して説明する。
説明される特定の例示的な実施態様では、上で図9を参照して提示したアルゴリズムを変更して、クエリ評価中にDatalog証明グラフを構築することができる。証明グラフは、有向非循環グラフである。クエリに対する回答ごとに、グラフ内に1つのルート節点がある。すべての非葉節点が、A saysD factの形のグラウンドDatalog述部であり、子節点としてDatalogルール、インスタンス化された条件fact、およびインスタンス化された制約を有する。葉節点は、AC内のDatalogルールまたは有効なグラウンド制約のいずれかである。例を、図12A、13A、および14Aの左パネルとして示す)。
上のアルゴリズム7.1の実行中に、各生成されるDatalogルールが、それが生成されるアルゴリズムステップ(すなわち、1、2(a)、2(b)、または3)を用いてラベルを付けられる場合に、Datalog証明グラフは、対応するセキュリティ論理証明グラフへの変換に十分な情報を含む。
図11は、論理言語証明グラフをセキュリティ言語証明グラフに変換する方法の例を示す流れ図1100である。流れ図1100は、5つのブロック1102〜1110を含む。流れ図1100のアクションは、他の環境内でおよびさまざまなハードウェア/ソフトウェア/ファームウェア組合せを用いて実行することができるが、図1〜10の特徴、コンポーネント、および態様の一部が、この方法の例を例示するのに使用される。
説明される実施態様では、ブロック1102で、論理評価中の論理言語を反映する第1証明グラフを作る。たとえば、論理言語証明グラフ1000を、論理評価中に作ることができる。論理評価は、変換を介してセキュリティ言語アサーションコンテキストから導出される論理言語プログラムに対して実施される。
ブロック1104で、第1証明グラフのフラグメントを識別する。たとえば、論理言語証明グラフ1000のフラグメント1006を識別することができる。
ブロック1106で、論理言語を反映する第1証明グラフのフラグメントを、セキュリティ言語を反映する第2証明グラフの対応するフラグメントに変換する。たとえば、論理言語(たとえば、Datalogなど)を反映する論理言語証明グラフ1000のフラグメント1006を、セキュリティ言語(たとえば、ポリシアサーションセキュリティ言語)を反映する第2証明グラフの対応するフラグメントに変換する。たとえば、第1証明グラフのフラグメントの論理言語パターンを、複数の可能なセキュリティ言語パターンから選択された対応するセキュリティ言語パターンとマッチングすることができる。これらのセキュリティ言語パターンは、たとえば、セキュリティ言語のセマンティックスルールに関連するものとすることができる。
ブロック1108で、フラグメントの識別およびそのフラグメントの変換を、第1証明グラフのフラグメントごとに繰り返す。たとえば、次のフラグメントの矢印1112によって示されるように、論理言語証明グラフ1000の別のフラグメント1006を識別し、セキュリティ言語証明グラフの対応するフラグメントに変換することができる。
ブロック1110で、論理言語証明グラフをトラバースし、変換し終えたならば、セキュリティ言語を反映する第2証明グラフを出力する。第2証明グラフは、第1証明グラフのめいめいのフラグメントに対応するフラグメントを含む。セキュリティ言語を反映するこの第2証明グラフを、アーカイブし、かつ/または監査することもできる。
図12Aおよび12Bは、それぞれ、条件セマンティックスルールに関する論理言語および対応するセキュリティ言語の例示的な証明フラグメントのブロック図である。条件セマンティックスルールのセキュリティ言語証明グラフフラグメントサンプル1200Bを、図12Bに示す。評価中に作られる証明グラフ内に存在し得る対応する論理言語証明グラフ(たとえば、親を伴う証明節点)フラグメント1200Aを、図12Aに示す。楕円の節点は、証明された付帯条件を表し、長方形の節点は、ルールまたは制約を表す。これらのグラフフラグメント1200は、アルゴリズム7.1の変換ステップ1または2(a)に関係する。
図13Aおよび13Bは、それぞれ委任セマンティックスルールに関する論理言語および対応するセキュリティ言語の例示的な証明フラグメントのブロック図である。委任セマンティックスルールのセキュリティ言語フラグメントサンプル1300Bを、図13Bに示す。評価中に作られる証明グラフ内に存在し得る対応する論理言語フラグメント1300Aを、図13Aに示す。これらのグラフフラグメント1300は、変換ステップ2(b)に関係する。
図14Aおよび14Bは、それぞれ別名セマンティックスルールに関する論理言語および対応するセキュリティ言語の例示的な証明フラグメントのブロック図である。別名セマンティックスルールのセキュリティ言語フラグメントサンプル1400Bを、図14Bに示す。評価中に作られる証明グラフ内に存在し得る対応する論理言語フラグメント1400Aを、図14Aに示す。これらのグラフフラグメント1400は、変換ステップ3に関係する。
9 認可クエリの評価
前のセクションからのアルゴリズムに基づいて、これから、セクション3で定義した複雑な認可クエリをどのように評価するかを説明することができる。次では、ACが、アサーションコンテキストであり、
Figure 0005145340
が、そのDatalog変換であり、εが、空の置換であるものとする。認可クエリに対する関数AuthAnsACを、次のように定義する。
Figure 0005145340
次の定理は、AuthAnsACが、安全な認可クエリを評価するアルゴリズムであることを示す。
定理9.1 (認可クエリ評価の有限性、健全さ、および完全さ):すべての安全なアサーションコンテキストACおよび安全な認可クエリqについて、
1.AuthAnsAC(q)が定義され、有限であり、
2.θ∈AuthAnsAC(q)の場合に限って
Figure 0005145340
である。
図1〜14Bのデバイス、アクション、態様、特徴、関数、プロシージャ、モジュール、データ構造、プロトコル、コンポーネントなどは、複数のブロックに分割された図で図示されている。しかし、図1〜14Bが説明され、かつ/または図示される順序、相互接続、相互関係、レイアウトなどは、限定として解釈されることを意図されたものではなく、論理分解を用いるセキュリティ言語変換のための1つまたは複数のシステム、方法、デバイス、プロシージャ、媒体、装置、API、プロトコル、配置などを実施するために、任意の個数のブロックを任意の形で変更し、組み合わせ、再配置し、補足し、省略することなどができる。
システム、媒体、デバイス、方法、プロシージャ、装置、機構、方式、手法、プロセス、配置、および他の実施態様を、構造的、論理的、アルゴリズム的、および機能的な特徴に固有の言葉および/または図で説明してきたが、添付の特許請求の範囲で定義される本発明が、必ずしも上で説明された特定の特徴または動作に限定されないことを理解されたい。そうではなく、上で説明された特定の特徴および動作は、特許請求の範囲を実施する例示的な形として開示されたものである。

Claims (15)

  1. 論理分解を用いるセキュリティ言語変換のためにコンピュータが実行する方法であって、前記方法は、
    セキュリティプリンシパル、アサートされる事実、0個以上の条件事実および0個以上の制約を含み、前記0個以上の条件事実が有効でありかつ前記0個以上の制約を満たす場合のみに、前記セキュリティプリンシパルが前記アサートされる事実が有効であると述べるというフォーマットを有する、セキュリティ言語アサーションについて、前記コンピュータが備える判定手段が、前記アサートされる事実がフラットであるかどうかを判定するステップであって、前記アサートされる事実に、「アサートできる」を含む委任ディレクティブ動詞があれば、前記アサートされる事実がフラットではないと判定され、そうでなければ、前記アサートされる事実がフラットであると判定される、ステップと、
    前記アサートされる事実がフラットではないと判定される場合に、前記コンピュータが備える論理言語ルール変換手段が、前記セキュリティ言語アサーションを論理言語ルールのセットに変換するステップであって、前記論理言語ルールは、条件論理言語ルールと、委任論理言語ルールおよび別名論理言語ルールを含み、前記論理言語ルールのセットに変換するステップは、
    前記コンピュータが備える条件論理言語ルールを作成する手段が、前記セキュリティ言語アサーションから条件論理言語ルールを作成することであって、前記作成される論理言語ルールは主事実および0個以上の付帯条件を有し、前記主事実が前記アサートされる事実に対応し、前記0個以上の付帯条件が前記0個以上の条件事実に対応する、ことと、
    前記コンピュータが備える委任論理言語ルールを作成する手段が、前記アサートされる事実の委任ディレクティブ動詞ごとに、委任ディレクティブ動詞に対応する権利が新しく委任されることを表す委任論理言語ルールを作成することであって、前記委任論理言語ルールは、前記権利が委任されようとしている受任者を表す新しい変数を有し、かつ前記委任の下流委任の数が制限されない、ことと
    を含む、ステップと
    を備えることを特徴とする方法。
  2. 前記論理言語ルールのセットに変換するステップは、前記コンピュータが備える別名論理言語ルールを作成する手段が、前記委任論理言語ルールに関して、別名論理言語ルールを作成することをさらに含み、前記作成される別名論理言語ルールは、前記受任者の別名オブジェクトを表す新しい変数を有することを特徴とする請求項1に記載の方法。
  3. 前記コンピュータが備える変換する手段が、複数のセキュリティ言語アサーションを含むアサーションコンテキストのセキュリティ言語アサーションごとに前記判定および前記変換を繰り返すことにより、前記アサーションコンテキストを論理言語プログラムに変換するステップと、
    前記コンピュータが備える評価する手段が、リソースへのアクセスを許可すべきかどうかを決定するために、前記アサーションコンテキストに対する認可クエリを評価するステップであって、前記アサーションコンテキストに対する認可クエリは、前記変換した論理言語プログラムを使用して評価されるステップと
    をさらに備えることを特徴とする請求項2に記載の方法。
  4. 前記評価するステップは、
    前記論理言語プログラムを反映する第1の証明グラフを作ること
    を含み、前記第1の証明グラフは、前記論理言語プログラムに含まれる論理言語ルールに関連する論理言語証明フラグメントを1つ以上有し、
    前記方法は、
    前記コンピュータが備える第2の証明グラフに変換する手段が、前記第1の証明グラフを、前記セキュリティ言語アサーションを反映する第2の証明グラフに変換するステップ
    をさらに備え、前記第2の証明グラフに変換するステップは、
    前記第1証明グラフの論理言語証明フラグメントを、前記第2証明グラフの対応するセキュリティ言語証明フラグメントに変換することと、
    前記第1証明グラフの論理言語証明フラグメントごとに当該変換を繰り返すことと
    を含むことを特徴とする請求項3に記載の方法。
  5. 前記評価するステップは
    テーブル化に基づく決定性アルゴリズムを適用すること
    を含み、前記テーブル化は、前記評価において使用される前記論理言語プログラムの論理言語ルールに関して、述部を、変数を含まないグラウンド述部の集合にマッピングする第1テーブルと、述部を、トップレベル述部、次に解くべき述部、およびその後に解くべき述部のリストを含むサブゴールにマッピングする第2テーブルとを利用することを特徴とする請求項3に記載の方法。
  6. 論理分解を用いるセキュリティ言語変換のための方法をコンピュータに実行させるためのコンピュータ可読命令を記憶したコンピュータ可読記録媒体であって、前記方法は、
    セキュリティプリンシパル、アサートされる事実、0個以上の条件事実および0個以上の制約を含み、前記0個以上の条件事実が有効でありかつ前記0個以上の制約を満たす場合のみに、前記セキュリティプリンシパルが前記アサートされる事実が有効であると述べるというフォーマットを有する、セキュリティ言語アサーションについて、前記コンピュータが備える判定手段が、前記アサートされる事実がフラットであるかどうかを判定するステップであって、前記アサートされる事実に、「アサートできる」を含む委任ディレクティブ動詞があれば、前記アサートされる事実がフラットではないと判定され、そうでなければ、前記アサートされる事実がフラットであると判定される、ステップと、
    前記アサートされる事実がフラットではないと判定される場合に、前記コンピュータが備える論理言語ルール変換手段が、前記セキュリティ言語アサーションを論理言語ルールのセットに変換するステップであって、前記論理言語ルールは、条件論理言語ルールと、委任論理言語ルールおよび別名論理言語ルールを含み、前記論理言語ルールのセットに変換するステップは、
    前記コンピュータが備える条件論理言語ルールを作成する手段が、前記セキュリティ言語アサーションから条件論理言語ルールを作成することであって、前記作成される論理言語ルールは主事実および0個以上の付帯条件を有し、前記主事実が前記アサートされる事実に対応し、前記0個以上の付帯条件が前記0個以上の条件事実に対応する、ことと、
    前記コンピュータが備える委任論理言語ルールを作成する手段が、前記アサートされる事実の委任ディレクティブ動詞ごとに、委任ディレクティブ動詞に対応する権利が新しく委任されることを表す委任論理言語ルールを作成することであって、前記委任論理言語ルールは、前記権利が委任されようとしている受任者を表す新しい変数を有し、かつ前記委任の下流委任の数が制限されない、ことと
    を含む、ステップと
    を備えることを特徴とするコンピュータ可読記録媒体。
  7. 前記論理言語ルールのセットに変換するステップは、前記コンピュータが備える別名論理言語ルールを作成する手段が、前記委任論理言語ルールに関して、別名論理言語ルールを作成することをさらに含み、前記作成される別名論理言語ルールは、前記受任者の別名オブジェクトを表す新しい変数を有することを特徴とする請求項6に記載のコンピュータ可読記録媒体。
  8. 前記コンピュータが備える変換する手段が、複数のセキュリティ言語アサーションを含むアサーションコンテキストのセキュリティ言語アサーションごとに前記判定および前記変換を繰り返すことにより、前記アサーションコンテキストを論理言語プログラムに変換するステップと、
    前記コンピュータが備える評価する手段が、リソースへのアクセスを許可すべきかどうかを決定するために、前記アサーションコンテキストに対する認可クエリを評価するステップであって、前記アサーションコンテキストに対する認可クエリは、前記変換した論理言語プログラムを使用して評価されるステップと
    をさらに備えることを特徴とする請求項7に記載のコンピュータ可読記録媒体。
  9. 前記評価するステップは、
    前記論理言語プログラムを反映する第1の証明グラフを作ること
    を含み、前記第1の証明グラフは、前記論理言語プログラムに含まれる論理言語ルールに関連する論理言語証明フラグメントを1つ以上有し、
    前記方法は、
    前記コンピュータが備える第2の証明グラフに変換する手段が、前記第1の証明グラフを、前記セキュリティ言語アサーションを反映する第2の証明グラフに変換するステップ
    をさらに備え、前記第2の証明グラフに変換するステップは、
    前記第1証明グラフの論理言語証明フラグメントを、前記第2証明グラフの対応するセキュリティ言語証明フラグメントに変換することと、
    前記第1証明グラフの論理言語証明フラグメントごとに当該変換を繰り返すことと
    を含むことを特徴とする請求項8に記載のコンピュータ可読記録媒体。
  10. 前記評価するステップは
    テーブル化に基づく決定性アルゴリズムを適用すること
    を含み、前記テーブル化は、前記評価において使用される前記論理言語プログラムの論理言語ルールに関して、述部を、変数を含まないグラウンド述部の集合にマッピングする第1テーブルと、述部を、トップレベル述部、次に解くべき述部、およびその後に解くべき述部のリストを含むサブゴールにマッピングする第2テーブルとを利用することを特徴とする請求項8に記載のコンピュータ可読記録媒体。
  11. 論理分解を用いるセキュリティ言語変換のためのコンピュータシステムであって、前記コンピュータシステムは、
    セキュリティプリンシパル、アサートされる事実、0個以上の条件事実および0個以上の制約を含み、前記0個以上の条件事実が有効でありかつ前記0個以上の制約を満たす場合のみに、前記セキュリティプリンシパルが前記アサートされる事実が有効であると述べるというフォーマットを有する、セキュリティ言語アサーションについて、前記アサートされる事実がフラットであるかどうかを判定する判定手段であって、前記アサートされる事実に、「アサートできる」を含む委任ディレクティブ動詞があれば、前記アサートされる事実がフラットではないと判定され、そうでなければ、前記アサートされる事実がフラットであると判定される、判定手段と、
    前記アサートされる事実がフラットではないと判定される場合に、前記セキュリティ言語アサーションを論理言語ルールのセットに変換する論理言語ルール変換手段であって、前記論理言語ルールは、条件論理言語ルールと、委任論理言語ルールおよび別名論理言語ルールを含む、論理言語ルール変換手段と
    を備え、前記論理言語ルール変換手段は、
    前記セキュリティ言語アサーションから条件論理言語ルールを作成する手段であって、前記作成される論理言語ルールは主事実および0個以上の付帯条件を有し、前記主事実が前記アサートされる事実に対応し、前記0個以上の付帯条件が前記0個以上の条件事実に対応する、手段と、
    前記アサートされる事実の委任ディレクティブ動詞ごとに、委任ディレクティブ動詞に対応する権利が新しく委任されることを表す委任論理言語ルールを作成する手段であって、前記委任論理言語ルールは、前記権利が委任されようとしている受任者を表す新しい変数を有し、かつ前記委任の下流委任の数が制限されない、手段と
    を含むことを特徴とするコンピュータシステム。
  12. 前記論理言語ルール変換手段は、
    前記委任論理言語ルールに関して、別名論理言語ルールを作成する手段
    をさらに含み、前記作成される別名論理言語ルールは、前記受任者の別名オブジェクトを表す新しい変数を有することを特徴とする請求項11に記載のコンピュータシステム。
  13. 前記コンピュータシステムは、
    複数のセキュリティ言語アサーションを含むアサーションコンテキストのセキュリティ言語アサーションごとに前記判定および前記変換を繰り返すことにより、前記アサーションコンテキストを論理言語プログラムに変換する手段と、
    リソースへのアクセスを許可すべきかどうかを決定するために、前記アサーションコンテキストに対する認可クエリを評価する手段であって、前記アサーションコンテキストに対する認可クエリは、前記変換した論理言語プログラムを使用して評価される、手段と
    をさらに備えることを特徴とする請求項12に記載のコンピュータシステム。
  14. 前記評価する手段は、
    前記論理言語プログラムを反映する第1の証明グラフを作り、前記第1の証明グラフは、前記論理言語プログラムに含まれる論理言語ルールに関連する論理言語証明フラグメントを1つ以上有し、
    前記コンピュータシステムは、
    前記第1の証明グラフを、前記セキュリティ言語アサーションを反映する第2の証明グラフに変換する手段
    をさらに備え、前記第2の証明グラフに変換する手段は、
    前記第1証明グラフの論理言語証明フラグメントを、前記第2証明グラフの対応するセキュリティ言語証明フラグメントに変換し、
    前記第1証明グラフの論理言語証明フラグメントごとに当該変換を繰り返す
    ことを特徴とする請求項13に記載のコンピュータシステム。
  15. 前記評価する手段は、
    テーブル化に基づく決定性アルゴリズムを適用し、前記テーブル化は、前記評価において使用される前記論理言語プログラムの論理言語ルールに関して、述部を、変数を含まないグラウンド述部の集合にマッピングする第1テーブルと、述部を、トップレベル述部、次に解くべき述部、およびその後に解くべき述部のリストを含むサブゴールにマッピングする第2テーブルとを利用することを特徴とする請求項13に記載のコンピュータシステム。
JP2009527617A 2006-09-11 2007-09-10 論理分解を用いるセキュリティ言語変換 Active JP5145340B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/530,556 US8656503B2 (en) 2006-09-11 2006-09-11 Security language translations with logic resolution
US11/530,556 2006-09-11
PCT/US2007/078081 WO2008033786A1 (en) 2006-09-11 2007-09-10 Security language translations with logic resolution

Publications (2)

Publication Number Publication Date
JP2010503129A JP2010503129A (ja) 2010-01-28
JP5145340B2 true JP5145340B2 (ja) 2013-02-13

Family

ID=39171320

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009527617A Active JP5145340B2 (ja) 2006-09-11 2007-09-10 論理分解を用いるセキュリティ言語変換

Country Status (8)

Country Link
US (2) US8656503B2 (ja)
EP (1) EP2062150B1 (ja)
JP (1) JP5145340B2 (ja)
KR (1) KR101448319B1 (ja)
CN (1) CN101512505B (ja)
CA (2) CA2658132C (ja)
IL (2) IL196524A (ja)
WO (1) WO2008033786A1 (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000079452A2 (en) * 1999-06-18 2000-12-28 Echarge Corporation Method and apparatus for ordering goods, services and content over an internetwork using a virtual payment account
US8532978B1 (en) * 2008-10-31 2013-09-10 Afrl/Rij Natural language interface, compiler and de-compiler for security policies
US8407807B2 (en) * 2010-05-25 2013-03-26 Microsoft Corporation Dynamic assertion providers for logic-based security policy languages
US20150074154A1 (en) * 2012-02-29 2015-03-12 Media Patents, S.L. Method of secure storing of content objects, and system and apparatus thereof
US11334884B2 (en) * 2012-05-04 2022-05-17 Institutional Cash Distributors Technology, Llc Encapsulated security tokens for electronic transactions
WO2013166518A1 (en) * 2012-05-04 2013-11-07 Institutional Cash Distributors Technology, Llc Secure transaction object creation, propagation and invocation
US10423952B2 (en) * 2013-05-06 2019-09-24 Institutional Cash Distributors Technology, Llc Encapsulated security tokens for electronic transactions
US20130347063A1 (en) * 2012-06-21 2013-12-26 Microsoft Corporation Handling claims traversing security boundaries
US8689285B1 (en) * 2012-09-14 2014-04-01 Siemens Product Lifecycle Management Software Inc. Rule-based derived-group security data management
CN103020714B (zh) * 2012-12-10 2015-04-15 东南大学 一种基于生成-验证的认知描述程序的求解方法
US9356918B2 (en) * 2013-03-13 2016-05-31 Google Inc. Identification delegation for devices
US9325739B1 (en) 2013-04-29 2016-04-26 Amazon Technologies, Inc. Dynamic security policy generation
US9948468B2 (en) * 2014-12-23 2018-04-17 Mcafee, Llc Digital heritage notary
CN105429965A (zh) * 2015-11-04 2016-03-23 上海电机学院 协商信任规则的冲突消解方法
US10410010B2 (en) 2016-03-08 2019-09-10 Oracle International Corporation Language-localized policy statements
CN111708539B (zh) * 2020-06-17 2021-07-06 腾讯科技(深圳)有限公司 一种应用程序代码转换方法、装置、电子设备和存储介质

Family Cites Families (119)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4868877A (en) * 1988-02-12 1989-09-19 Fischer Addison M Public key/signature cryptosystem with enhanced digital signature certification
US5214702A (en) * 1988-02-12 1993-05-25 Fischer Addison M Public key/signature cryptosystem with enhanced digital signature certification
US5649099A (en) * 1993-06-04 1997-07-15 Xerox Corporation Method for delegating access rights through executable access control program without delegating access rights not in a specification to any intermediary nor comprising server security
US7133846B1 (en) * 1995-02-13 2006-11-07 Intertrust Technologies Corp. Digital certificate support system, methods and techniques for secure electronic commerce transaction and rights management
US5765153A (en) * 1996-01-03 1998-06-09 International Business Machines Corporation Information handling system, method, and article of manufacture including object system authorization and registration
US6216231B1 (en) * 1996-04-30 2001-04-10 At & T Corp. Specifying security protocols and policy constraints in distributed systems
US6484261B1 (en) * 1998-02-17 2002-11-19 Cisco Technology, Inc. Graphical network security policy management
US6256734B1 (en) * 1998-02-17 2001-07-03 At&T Method and apparatus for compliance checking in a trust management system
US6189103B1 (en) * 1998-07-21 2001-02-13 Novell, Inc. Authority delegation with secure operating system queues
US6367009B1 (en) * 1998-12-17 2002-04-02 International Business Machines Corporation Extending SSL to a multi-tier environment using delegation of authentication and authority
CA2296989C (en) * 1999-01-29 2005-10-25 Lucent Technologies Inc. A method and apparatus for managing a firewall
JP2000235497A (ja) 1999-02-15 2000-08-29 Nippon Telegr & Teleph Corp <Ntt> ポリシマクロ方法及びポリシマクロプログラムを格納した記憶媒体
AU3266900A (en) 1999-03-15 2000-10-04 Texar Software Corp. Computer security system
US7127605B1 (en) * 1999-05-10 2006-10-24 Axalto, Inc. Secure sharing of application methods on a microcontroller
US7260715B1 (en) * 1999-12-09 2007-08-21 Koninklijke Philips Electronics N.V. Method and apparatus for revocation list management
JP3546787B2 (ja) 1999-12-16 2004-07-28 インターナショナル・ビジネス・マシーンズ・コーポレーション アクセス制御システム、アクセス制御方法、及び記憶媒体
US6779120B1 (en) * 2000-01-07 2004-08-17 Securify, Inc. Declarative language for specifying a security policy
US7246370B2 (en) * 2000-01-07 2007-07-17 Security, Inc. PDstudio design system and method
US7313692B2 (en) * 2000-05-19 2007-12-25 Intertrust Technologies Corp. Trust management systems and methods
US7024592B1 (en) 2000-08-07 2006-04-04 Cigital Method for reducing catastrophic failures in continuously operating software systems
GB2368929B (en) 2000-10-06 2004-12-01 Andrew Mather An improved system for storing and retrieving data
JP2002163235A (ja) 2000-11-28 2002-06-07 Mitsubishi Electric Corp アクセス権限譲渡装置、共有リソース管理システム及びアクセス権限設定方法
US7363339B2 (en) * 2000-12-22 2008-04-22 Oracle International Corporation Determining group membership
AU2002234254B2 (en) * 2001-01-17 2005-04-21 Contentguard Holdings, Inc. Method and apparatus for managing digital content usage rights
US7243090B2 (en) 2001-05-16 2007-07-10 Sun Microsystems, Inc. System and method for specification tracking in a Java compatibility testing environment
US6895503B2 (en) * 2001-05-31 2005-05-17 Contentguard Holdings, Inc. Method and apparatus for hierarchical assignment of rights to documents and documents having such rights
US6976009B2 (en) * 2001-05-31 2005-12-13 Contentguard Holdings, Inc. Method and apparatus for assigning consequential rights to documents and documents having such rights
US7426635B1 (en) * 2001-06-28 2008-09-16 Entrust Technologies Limited Bulk certificate lifetime allocation systems, components and methods
EP1303097A3 (en) * 2001-10-16 2005-11-30 Microsoft Corporation Virtual distributed security system
US7367014B2 (en) * 2001-10-24 2008-04-29 Bea Systems, Inc. System and method for XML data representation of portlets
US7155720B2 (en) * 2001-10-26 2006-12-26 Hewlett-Packard Development Company, L.P. Dynamic task assignment in workflows
JP2003140890A (ja) * 2001-10-31 2003-05-16 Asgent Inc 電子機器設定情報作成方法及び装置並びにセキュリティポリシー作成方法及び関連装置
US7844610B2 (en) * 2003-12-12 2010-11-30 Google Inc. Delegated authority evaluation system
US7184985B2 (en) * 2002-05-30 2007-02-27 Microsoft Corporation Method, system, and apparatus for providing secure access to a digital work
US7596692B2 (en) * 2002-06-05 2009-09-29 Microsoft Corporation Cryptographic audit
CN1663174A (zh) * 2002-06-17 2005-08-31 皇家飞利浦电子股份有限公司 用于在设备之间进行验证的方法
AU2003253667A1 (en) * 2002-06-18 2003-12-31 Arizona Board Of Regents, Acting For Arizona State University Assignment and management of authentication and authorization
US6931530B2 (en) * 2002-07-22 2005-08-16 Vormetric, Inc. Secure network file access controller implementing access control and auditing
WO2004010258A2 (en) * 2002-07-22 2004-01-29 Trusted Media Networks, Inc. System and method for validating security access across a network layer and a local file layer
US7770212B2 (en) * 2002-08-15 2010-08-03 Activcard System and method for privilege delegation and control
US7512782B2 (en) * 2002-08-15 2009-03-31 Microsoft Corporation Method and system for using a web service license
US7376840B2 (en) * 2002-09-30 2008-05-20 Lucent Technologies, Inc. Streamlined service subscription in distributed architectures
US7171202B2 (en) 2002-09-30 2007-01-30 Siemens Aktiengesellschaft Verifying check-in authentication by using an access authentication token
US20040068757A1 (en) * 2002-10-08 2004-04-08 Heredia Edwin Arturo Digital signatures for digital television applications
WO2004036425A1 (en) * 2002-10-17 2004-04-29 Simplima Ltd. System and method for secure usage right management of digital products
US7451217B2 (en) 2002-12-19 2008-11-11 International Business Machines Corporation Method and system for peer-to-peer authorization
JP2004206187A (ja) 2002-12-24 2004-07-22 Hitachi Ltd コミュニティ管理システム
US20040128546A1 (en) 2002-12-31 2004-07-01 International Business Machines Corporation Method and system for attribute exchange in a heterogeneous federated environment
US7219154B2 (en) 2002-12-31 2007-05-15 International Business Machines Corporation Method and system for consolidated sign-off in a heterogeneous federated environment
US7249373B2 (en) 2003-01-15 2007-07-24 Microsoft Corporation Uniformly representing and transferring security assertion and security response information
US7703128B2 (en) 2003-02-13 2010-04-20 Microsoft Corporation Digital identity management
US7290138B2 (en) * 2003-02-19 2007-10-30 Microsoft Corporation Credentials and digitally signed objects
US7543140B2 (en) * 2003-02-26 2009-06-02 Microsoft Corporation Revocation of a certificate and exclusion of other principals in a digital rights management (DRM) system based on a revocation list from a delegated revocation authority
WO2004081756A2 (en) * 2003-03-12 2004-09-23 Nationwide Mutual Insurance Co Trust governance framework
US8281374B2 (en) * 2005-09-14 2012-10-02 Oracle International Corporation Attested identities
US7644275B2 (en) * 2003-04-15 2010-01-05 Microsoft Corporation Pass-thru for client authentication
FR2854294B1 (fr) * 2003-04-22 2005-07-01 France Telecom Procede de signature electronique avec mecanisme de delegation, equipements et programmes pour la mise en oeuvre du procede
US20040221174A1 (en) * 2003-04-29 2004-11-04 Eric Le Saint Uniform modular framework for a host computer system
US20050108176A1 (en) * 2003-04-30 2005-05-19 Jarol Scott B. Configurable rules based content item consumption
US7900240B2 (en) * 2003-05-28 2011-03-01 Citrix Systems, Inc. Multilayer access control security system
US7512785B2 (en) * 2003-07-18 2009-03-31 Intel Corporation Revocation distribution
US20050033811A1 (en) * 2003-08-07 2005-02-10 International Business Machines Corporation Collaborative email
US20050066198A1 (en) * 2003-09-02 2005-03-24 Gelme Andrew A. Controlling cooperation between objects in a distributed software environment
US7389273B2 (en) * 2003-09-25 2008-06-17 Scott Andrew Irwin System and method for federated rights management
WO2005033892A2 (en) 2003-10-03 2005-04-14 Sony Electronics, Inc. Rendering rights delegation system and method
US7340447B2 (en) * 2003-10-09 2008-03-04 Oracle International Corporation Partitioning data access requests
US7930757B2 (en) 2003-10-31 2011-04-19 Adobe Systems Incorporated Offline access in a document control system
KR20050042694A (ko) 2003-11-04 2005-05-10 한국전자통신연구원 보안토큰을 이용한 전자거래방법 및 그 시스템
US7546640B2 (en) 2003-12-10 2009-06-09 International Business Machines Corporation Fine-grained authorization by authorization table associated with a resource
US7546641B2 (en) * 2004-02-13 2009-06-09 Microsoft Corporation Conditional access to digital rights management conversion
US7496649B2 (en) * 2004-02-20 2009-02-24 Microsoft Corporation Policy application across multiple nodes
US7664828B2 (en) * 2004-02-20 2010-02-16 Microsoft Corporation Invalid policy detection
JP4750020B2 (ja) 2004-03-30 2011-08-17 インターナショナル・ビジネス・マシーンズ・コーポレーション ユーザ認証のためのシステム、方法、およびプログラムならびに該プログラムを記録した記録媒体
US7823192B1 (en) * 2004-04-01 2010-10-26 Sprint Communications Company L.P. Application-to-application security in enterprise security services
JP2005309780A (ja) 2004-04-21 2005-11-04 Ntt Docomo Inc Icカード及び権限委譲制御方法
US7559080B2 (en) * 2004-05-04 2009-07-07 Microsoft Corporation Automatically generating security policies for web services
JP2005332049A (ja) 2004-05-18 2005-12-02 Nippon Telegr & Teleph Corp <Ntt> ポリシ変換方法、ポリシ移行方法およびポリシ評価方法
US20060005010A1 (en) * 2004-06-16 2006-01-05 Henrik Olsen Identification and authentication system and method for a secure data exchange
US20060005227A1 (en) * 2004-07-01 2006-01-05 Microsoft Corporation Languages for expressing security policies
US7533265B2 (en) * 2004-07-14 2009-05-12 Microsoft Corporation Establishment of security context
US20060048216A1 (en) 2004-07-21 2006-03-02 International Business Machines Corporation Method and system for enabling federated user lifecycle management
US7669226B2 (en) * 2004-07-30 2010-02-23 International Business Machines Corporation Generic declarative authorization scheme for Java
US7299171B2 (en) * 2004-08-17 2007-11-20 Contentguard Holdings, Inc. Method and system for processing grammar-based legality expressions
US7506364B2 (en) * 2004-10-01 2009-03-17 Microsoft Corporation Integrated access authorization
WO2006045402A1 (en) 2004-10-26 2006-05-04 Telecom Italia S.P.A. Method and system for transparently authenticating a mobile user to access web services
US20060106856A1 (en) * 2004-11-04 2006-05-18 International Business Machines Corporation Method and system for dynamic transform and load of data from a data source defined by metadata into a data store defined by metadata
US8135576B2 (en) 2004-11-12 2012-03-13 Oracle International Corporation System for enterprise knowledge management and automation
US20090126022A1 (en) * 2004-11-25 2009-05-14 Nec Corporation Method and System for Generating Data for Security Assessment
KR20060063348A (ko) 2004-12-07 2006-06-12 한국전자통신연구원 인터넷에서 인증 assertion을 이용한 접속시간제어 방법
US7953979B2 (en) 2004-12-15 2011-05-31 Exostar Corporation Systems and methods for enabling trust in a federated collaboration
US7562382B2 (en) * 2004-12-16 2009-07-14 International Business Machines Corporation Specializing support for a federation relationship
US20060156391A1 (en) * 2005-01-11 2006-07-13 Joseph Salowey Method and apparatus providing policy-based revocation of network security credentials
JP2006221506A (ja) 2005-02-14 2006-08-24 Hitachi Software Eng Co Ltd ユーザパスワード認証システムにおける権限委譲方法
US7500097B2 (en) 2005-02-28 2009-03-03 Microsoft Corporation Extendable data-driven system and method for issuing certificates
US20060225055A1 (en) * 2005-03-03 2006-10-05 Contentguard Holdings, Inc. Method, system, and device for indexing and processing of expressions
US20060200664A1 (en) 2005-03-07 2006-09-07 Dave Whitehead System and method for securing information accessible using a plurality of software applications
US7509489B2 (en) * 2005-03-11 2009-03-24 Microsoft Corporation Format-agnostic system and method for issuing certificates
US7770206B2 (en) * 2005-03-11 2010-08-03 Microsoft Corporation Delegating right to access resource or the like in access management system
US7774830B2 (en) * 2005-03-14 2010-08-10 Microsoft Corporation Access control policy engine controlling access to resource based on any of multiple received types of security tokens
US7631346B2 (en) 2005-04-01 2009-12-08 International Business Machines Corporation Method and system for a runtime user account creation operation within a single-sign-on process in a federated computing environment
US7584499B2 (en) * 2005-04-08 2009-09-01 Microsoft Corporation Policy algebra and compatibility model
US7702746B2 (en) * 2005-04-21 2010-04-20 International Business Machines Corporation Web services response templates
US7657746B2 (en) 2005-04-22 2010-02-02 Microsoft Corporation Supporting statements for credential based access control
US8245051B2 (en) 2005-05-13 2012-08-14 Microsoft Corporation Extensible account authentication system
US8555061B2 (en) 2005-05-13 2013-10-08 Microsoft Corporation Transparent code
US7614082B2 (en) * 2005-06-29 2009-11-03 Research In Motion Limited System and method for privilege management and revocation
US20070038609A1 (en) 2005-08-11 2007-02-15 William Wu System and method of query paraphrasing
US20070043607A1 (en) 2005-08-22 2007-02-22 Raytheon Company Method to incorporate user feedback into planning with explanation
US8056114B2 (en) * 2005-08-23 2011-11-08 The Boeing Company Implementing access control policies across dissimilar access control platforms
US7788499B2 (en) 2005-12-19 2010-08-31 Microsoft Corporation Security tokens including displayable claims
US7757280B2 (en) * 2006-01-17 2010-07-13 International Business Machines Corporation Method and system for memory protection and security using credentials
US7882539B2 (en) * 2006-06-02 2011-02-01 Microsoft Corporation Abstracting security policy from, and transforming to, native representations of access check mechanisms
US8024770B2 (en) * 2006-06-21 2011-09-20 Microsoft Corporation Techniques for managing security contexts
US20080066158A1 (en) * 2006-09-08 2008-03-13 Microsoft Corporation Authorization Decisions with Principal Attributes
US20080066169A1 (en) * 2006-09-08 2008-03-13 Microsoft Corporation Fact Qualifiers in Security Scenarios
US7814534B2 (en) * 2006-09-08 2010-10-12 Microsoft Corporation Auditing authorization decisions
US8060931B2 (en) 2006-09-08 2011-11-15 Microsoft Corporation Security authorization queries
US8201215B2 (en) * 2006-09-08 2012-06-12 Microsoft Corporation Controlling the delegation of rights
US8938783B2 (en) * 2006-09-11 2015-01-20 Microsoft Corporation Security language expressions for logic resolution

Also Published As

Publication number Publication date
US8656503B2 (en) 2014-02-18
US20080066171A1 (en) 2008-03-13
IL225701A (en) 2015-02-26
EP2062150A4 (en) 2012-02-15
CA2884079A1 (en) 2008-03-20
IL225701A0 (en) 2013-06-27
US20140165139A1 (en) 2014-06-12
CA2658132A1 (en) 2008-03-20
EP2062150A1 (en) 2009-05-27
US9282121B2 (en) 2016-03-08
IL196524A (en) 2013-04-30
KR101448319B1 (ko) 2014-10-07
CN101512505B (zh) 2011-09-07
IL196524A0 (en) 2009-11-18
EP2062150B1 (en) 2017-10-25
WO2008033786A1 (en) 2008-03-20
JP2010503129A (ja) 2010-01-28
CN101512505A (zh) 2009-08-19
CA2658132C (en) 2016-01-05
KR20090055555A (ko) 2009-06-02

Similar Documents

Publication Publication Date Title
JP5145340B2 (ja) 論理分解を用いるセキュリティ言語変換
US8938783B2 (en) Security language expressions for logic resolution
JP5266229B2 (ja) セキュリティ許可照会
JP5535631B2 (ja) 権利の委譲を制御すること
Becker et al. SecPAL: Design and semantics of a decentralized authorization language
US7814534B2 (en) Auditing authorization decisions
US20020087859A1 (en) Trust management systems and methods
US8095969B2 (en) Security assertion revocation
US20080065899A1 (en) Variable Expressions in Security Assertions

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100811

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120124

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120424

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120502

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120524

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120629

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121001

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: 20121026

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: 20121126

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

Free format text: PAYMENT UNTIL: 20151130

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5145340

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250