JP4545430B2 - アクセス権の矛盾・冗長ルール検出を行うアクセス制御システム及びそのコンピュータプログラム - Google Patents
アクセス権の矛盾・冗長ルール検出を行うアクセス制御システム及びそのコンピュータプログラム Download PDFInfo
- Publication number
- JP4545430B2 JP4545430B2 JP2003422707A JP2003422707A JP4545430B2 JP 4545430 B2 JP4545430 B2 JP 4545430B2 JP 2003422707 A JP2003422707 A JP 2003422707A JP 2003422707 A JP2003422707 A JP 2003422707A JP 4545430 B2 JP4545430 B2 JP 4545430B2
- Authority
- JP
- Japan
- Prior art keywords
- class
- rule
- identification symbol
- subject
- access right
- 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.)
- Expired - Lifetime
Links
- 238000004590 computer program Methods 0.000 title description 3
- 238000000034 method Methods 0.000 claims description 115
- 238000001514 detection method Methods 0.000 claims description 85
- 238000006243 chemical reaction Methods 0.000 claims description 47
- 238000012545 processing Methods 0.000 claims description 43
- 230000008094 contradictory effect Effects 0.000 claims description 31
- 238000000605 extraction Methods 0.000 claims description 31
- UOACKFBJUYNSLK-XRKIENNPSA-N Estradiol Cypionate Chemical compound O([C@H]1CC[C@H]2[C@H]3[C@@H](C4=CC=C(O)C=C4CC3)CC[C@@]21C)C(=O)CCC1CCCC1 UOACKFBJUYNSLK-XRKIENNPSA-N 0.000 claims description 3
- 239000000284 extract Substances 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000000116 mitigating effect Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
Images
Landscapes
- Storage Device Security (AREA)
Description
そのようなアクセス制御のシステムにおいて、アクセスする主体である個人・システム等は「サブジェクト(Subject)」(=主体)と呼ばれており、アクセスされる客体であるファイル、アプリケーション、サービス等は「オブジェクト(Object)」(=客体)と呼ばれている。通常、サブジェクトやオブジェクトは、その特権、役職、種類などに応じてグループにまとめられる。このグループはロール(=階級)と呼ばれている。ロールの例としては課長・部長等の役職、所属組織、機密ファイル・公開ファイル等のファイル種別などがある。
一般的に、アクセス制御システムでは、サブジェクト及びオブジェクト間、または、サブジェクトロール及びオブジェクトロール間にアクセス権の有無、即ちアクセス可能または禁止を設置することによりアクセスの制御を行う。この設定された情報の1つ1つはルール(=規則)と呼ばれており、ルールを集めた全体はアクセスコントロールリスト(以下、ACL:Access Control List)と呼ばれている。アクセス制御システムは、主体が客体へアクセスしたいというリクエストを受け取った場合、そのリクエストに含まれる主体と客体をACLと照らし合わせてチェックすることにより、リクエストを受け入れるべきか拒否するべきかを判断する。(例えば、非特許文献1によるアクセス制御方法がある。)
しかし、管理者の誤設定などの原因により、ACLの中において同一のサブジェクトまたはサブジェクトロールとオブジェクトもしくはオブジェクトロールの同一の組み合わせに相反するアクセス権が設定されてしまう場合がある。つまり、ある1つのルールにおいて、あるサブジェクトは、あるオブジェクトにアクセス可能と設定されているにも関わらず、別のルールにおいて、当該サブジェクトが当該オブジェクトに対してアクセス禁止と設定されている場合である。このような場合、2つのルールが互いに矛盾していると呼ばれている。ACLの中に矛盾するルールが存在する場合、システムはアクセスを許可すべきなのか、禁止すべきなのかを判断することができないため、何らかの方法を用いて矛盾するルールを事前に検出し回避する手段を講じる必要がある。
特許文献1に示す従来の技術では、ACLに記述されているルールの主体と客体の組み合わせが完全に一致し、アクセス権が相反するルールが存在する場合には、それらを矛盾するルールとして静的、即ちシステム稼動前に検出することが可能である。また、動的、即ちシステム運用時に発生したリクエストを逐一、全ACLと照らし合わせてチェックすることにより、矛盾を検出することも可能である。さらに、矛盾が発生した場合には「許可優先」あるいは「禁止優先」などの強制的な回避ルールを事前に定義しておくことにより、矛盾を回避することを可能としている。
デビット エフ フェライオロ(David F. Ferraiolo),ラビ エス サンダウ(Ravi S. Sandhu),サーバン アイ ガビリラ(Serban I.Gavrilia),ディー リチャード クーン(D. Richard Kuhn),ラマスァミィ チャンドラモウリィ(Ramaswamy Chandramouli),「プロポーズド エヌアイエスティ スタンダード フォー ロール−ベイスド アクセス コントロール(Proposed NIST standard for Role-based access control)」,(米国),エーシーエム トランザクション オン インフォメーション アンド システム セキュリティ(ACM Transactions on Information and System Security),第4巻(Vol.4),第3号(No.3),2001年8月(August 2001),p224−274
階層関係を持つロールのアクセス制御においては、次のようなアクセス権の伝播を考えることが一般的である。即ち、あるロールに属するサブジェクトがあるオブジェクトに対してアクセス可能と設定されている場合には、それより上位のロールに属するサブジェクトも同一のオブジェクトに対してアクセスが許可されていると考えられる。逆に、あるロールに属するサブジェクトがあるオブジェクトに対してアクセス禁止と設定されている場合には、それより下位のロールに属するサブジェクトも同一のオブジェクトに対してアクセスが禁止されていると考えられる。このようなアクセス権の規則が伝播規則と呼ばれている。ロールを用いたアクセス制御は一般的であるが、伝播規則を考慮してアクセス制御を行う場合には、矛盾の検出がより複雑になる。
例えば、サブジェクトロールとして、「一般社員」「課長」「部長」「副本部長」「本部長」というロールが存在していると仮定する。これらの属性は階層関係になっており、一番階層の低いのが「一般社員」であり、一番高いのが「本部長」である。この時、以下のような2つのルールを考える。
ルール1:(“Subject Role=課長”は“Object Role=機密ファイル”にアクセス可能)
ルール2:(“Subject Role=副本部長”は“Object Role=機密ファイル”にアクセス禁止)
一見したところ上記のルール1及びルール2はサブジェクトに設定されているサブジェクトロールが異なるため、矛盾していないように思える。しかし、ここで伝播規則を考慮すると矛盾が発生する。ルール1では「課長」に「機密ファイル」へのアクセスが許可されている為、伝播規則により、「課長」より上位の役職である「部長」「副本部長」「本部長」にも同様のアクセス権が設定されていると考えるべきである。逆に、ルール2では、「副本部長」が「機密ファイル」へアクセスすることを禁止しているため、伝播規則により、「副本部長」より下位の役職である「一般社員」「課長」「部長」にも同様のアクセス権が設定されていると考えるべきである。つまり、上記の2つのルールにより、サブジェクトロールが「課長」「部長」「副本部長」のいずれかに属する社員に対して「許可」と「禁止」の両方のアクセス権が設定されており矛盾が発生している。
従来の技術では、上記で示したロールの構造(以下、ロール構造)に従って発生する伝播規則に起因した矛盾を静的に検出することが不可能であるという問題がある。静的に矛盾を検出できない場合、システム稼動後に露呈する矛盾に対して、管理者はリアルタイムに対処を施さなければならない。そのため、サービスの一時停止などの応急措置が必要となる可能性がある。
を備えることを特徴とする。
式(1)の記号はχ以上の自然数のうち、最小の自然数を意味する場合に、式(2)を満たす場合には冗長設定であるアクセス権制御規則を検出したと判定する手段と、読み出した前記伝播規則がPermitPropagation(down)かつProhibitPropagationまたはPermitPropagation(down)である場合に、前記式(2)または、式(3)の式を満たす場合には冗長設定であるアクセス権制御規則を検出したと判定する手段と、前記伝播規則が設定されていない場合に、式(4)を満たす場合には矛盾するアクセス権制御規則を検出したと判定する手段と、を備えたことを特徴とする。
図1は、本発明の一実施形態によるアクセス制御システムの構成を示す概略ブロック図である。
リクエスター1は、あるオブジェクト、即ち「客体」に対するアクセスの要求を行うサブジェクト、即ち「主体」であり、人であったり、アプリケーションソフトウェアであったりする。リクエスト受付部3は、リクエスター1からのリクエストを受け付け、そのリクエストをアクセス許可判断部4に転送する役目を担っている。アクセス許可判断部4は、受信したリクエストをACLと照らし合わせて解析し、そのリクエストが許可されるか拒否されるかを判断する。判断結果は、リクエスト受付部3に返信され、アクセスが許可された場合には、サブジェクトに対してオブジェクトへのアクセスを提供し、アクセスが拒否された場合には、サブジェクトにその旨を通知する。サブジェクトロールリポジトリ5は、アクセス制御に用いられるサブジェクトが属するロール、即ち「階級」の情報を保持するデータベースであり、ロール構造に関する情報も保持している。オブジェクトロールリポジトリ6は、アクセス制御に用いられるオブジェクトが属するロールの情報を保持するデータベースであり、ロール構造に関する情報も保持される。ACLリポジトリ7は、アクセス制御を行うためのルール、即ち「規則」が保持されているデータベースであり、ACLリポジトリ7にはアクセス制御ルールの一覧が保存されている。伝播規則リポジトリ8は、アクセス権制御のルールに適用される伝播規則を設定するためのデータベースであり、伝播規則リポジトリ8には、伝播規則の一覧が保存されている。
矛盾ルール検出処理部9は、ロール変換手段10と矛盾ルール検出手段11と矛盾部分抽出手段12から構成されている。ロール変換手段10は、サブジェクトロールリポジトリ5及びオブジェクトロールリポジトリ6に保存されているロールの情報を矛盾ルールの検出を行うことができる形式に変換する。矛盾ルール検出手段11は、ACLリポジトリ7からルールを抽出し、ルールの矛盾の有無を解析する。矛盾部分抽出手段12は、矛盾ルール検出手段11より検出された互いに矛盾するルールの対を解析することにより、どのサブジェクトロールとどのオブジェクトロールの組み合わせに相反するアクセス権が設定されているかを抽出する。
冗長ルール検出処理部13は、ロール変換手段14と冗長ルール検出手段15から構成されている。ロール変換手段14は、サブジェクトロールリポジトリ5及びオブジェクトロールリポジトリ6に保存されているロールの情報を、冗長ルールの検出を行うことができる形式に変換する。冗長ルール検出手段15は、ACLリポジトリ7からルールを抽出し、冗長して設定されているルールの有無を解析する。
アクセス制御システム2の管理者は、アクセス制御の対象となるサブジェクトロールをサブジェクトロールリポジトリ5に、オブジェクトロールをオブジェクトロールリポジトリ6に設定する。次に、これらの設定された情報を基に、アクセス制御を行うためのACLをACLリポジトリ7に設定する。伝播規則を有効にする場合には、伝播規則を伝播規則リポジトリ8に設定し、その状態を有効に設定する。伝播規則が伝播規則リポジトリ8に有効に設定されている場合は、その伝播規則がACLに適用される。
矛盾ルールを検出する矛盾ルール検出処理部9では、矛盾ルール検出処理が行われる。最初に行われるロール変換手段10は、サブジェクトロールリポジトリ5及びオブジェクトロールリポジトリ6の内容をそれぞれの検出処理において処理が可能な形式に変換する。そして、矛盾ルール検出手段11は、ACLリポジトリ7からルールを抽出して、矛盾あるか否かを検出する。矛盾がある場合には、矛盾部分抽出手段12が、矛盾部分抽出処理を行い、どのサブジェクトロールとどのオブジェクトロールの組み合わせに相反するアクセス権が設定されているかを導き出しその結果を管理者に通知する。
冗長ルールを検出する冗長ルール検出処理部13では、冗長ルール検出処理が行われる。最初に行われるロール変換手段14は、サブジェクトロールリポジトリ5及びオブジェクトロールリポジトリ6の内容をそれぞれの検出処理において処理が可能な形式に変換する。そして、冗長ルール検出手段15は、ACLリポジトリ7からルールを抽出して、冗長があるか否かを検出する。冗長が検出された場合には、その旨を管理者に通知する。ここまでの処理は、システム稼動前、即ち静的に実行される。
矛盾ルール検出処理部9及び冗長ルール検出処理部13は、アクセス制御システム2と独立して動作可能なシステム構成となっている。そのため、アクセス制御システム2の仕様にとらわれることなく比較的容易に、矛盾ルール検出処理部9及び冗長ルール検出処理部13をシステムに統合することが可能である。
アクセス制御システム2が稼動すると、リクエスター1から、リクエスト受付部3に対して、オブジェクトに対するアクセスのリクエストが発行される。リクエスト受付部3は、そのリクエストをアクセス許可判断部4に転送する。アクセス許可判断部4では、受信したリクエストが許可されるべきか禁止されるべきかをACLの情報に基づいて判断し、判断結果をリクエスト受付部3に返信する。リクエスト受付部3は、その返信の内容に基づいて、オブジェクトを提供したり、アクセスを拒否したりする。
矛盾ルール検出処理部9及び冗長ルール検出処理部13において、最初にロール変換手段10及びロール変換手段14が矛盾ルール及び冗長ルールの検出を可能にするため前処理を行う。その前処理とは、サブジェクトロールリポジトリ5及びオブジェクトロールリポジトリ6に保存されているロールの情報に対して行う処理であり、ロール構造が木構造をしている場合、各ノードに以下に説明する方法で識別番号を付与することにより、矛盾するルール及び冗長するルールの検出を容易にすることが可能となる。
木構造の例を図4に示す。木構造において各点はノードと呼ばれている。ここで、木構造とは1つのルートを持ち、かつ各ノードは有限個の子ノードを持つものであって、深さが有限なものとする。ルートノードとは一番上位に位置するノードである。また、ルートノードの深さを1として、以降ノードが1つ下の階層に下がる毎に、深さも1つ下がるものとする。また、あるノードに対して、それに接続する深さが1つ深いノードを子ノードとする。逆に、あるノードに対して、それに接続する深さが1つ浅いノードを親ノードとする。さらに、あるノードから上にたどって到達できるノードの集合を祖先ノード、下にたどって到達できるノードの集合を子孫ノードとする。
本実施形態では、木の各ノードが1つのロールに対応しているものと想定する。木構造で示されるロールの例としては、図5に示すような社員の役職等が考えられる。
手順1:与えられた木の全ノードについて、そのノードが持つ子ノードの数を検索し、そのうち最大のものをmaxとする。図6では、深さが4で左から4番目に位置するノードが最大の子ノードを有しており、その数は4個である。従って、max=4となる。
手順2:深さに応じて、各ノードに第1識別記号を付与する。ルートの第1識別記号は1となり、ルートの子ノードの第1識別記号は2となる。この時、深さの最大値をdepとすると、図6ではdep=7となる。
手順3:ルートノードの第2識別記号を1とする。ルートノード以外のノードの第2識別記号は次の手順で付与する。ある親ノードの第2識別記号を n としたとき、max(n-1)は(n-1)にmaxを乗じた値を示し、その子ノードの第2識別記号は左から順番にmax(n-1)+1,max(n-1)+2,・・・,max(n-1)+maxとする。第2識別記号は第1識別記号が小さいノードから順次計算するものとする。また、max個の子ノードを持たないノードについては、第2識別記号の計算を途中で打ち切り、次のノードの計算を行うようにする。
以上が、ノードへの識別記号付与の処理手順である。上記、手順に従えば、全ての木構造に対して識別記号を一意に付与することが可能である。
また、上記の手順1において、1つの木において、あるノードが保持する最大の子ノードの数をmaxとしている。しかし、実際には、あるノードが保持する最大の子ノード数以上の任意の自然数をmaxとして手順2以降の作業を行ってもよい。つまり、上記の例では4以上の任意の自然数をmaxに設定しても問題はない。例えば、max=全ノード数などとしても良い。
ルールの記述形式:Auth±(SubjectRole=“○○○○○”,ObjectRole=“○○○○○”)
ここで、Auth+は許可を表し、Auth-は禁止を表すものとする。例えば、
Auth+(SubjectRole=“部長”,ObjectRole=“機密ファイル”)というルールは、サブジェクトロールが部長に属するサブジェクトはオブジェクトロールが機密ファイルに属するオブジェクトにアクセスが許可されていることを定義している。また、
Auth-(SubjectRole=“課長”,ObjectRole=“重要ファイル”)
というルールは、サブジェクトロールが課長に属するサブジェクトはオブジェクトロールが重要ファイルに属するオブジェクトにアクセスが禁止されていることを定義している。
最も単純な形式の矛盾ルールの例としては、以下のような2つのルールがある。1つめのルールがAuth+(SubjectRole=“部長”,ObjectRole=“機密ファイル”)であり、2つめのルールがAuth-(SubjetRole=“部長”,ObjectRole=“機密ファイル”)の場合である。
次に、本実施形態で前提とする3種類の伝播規則について説明する。伝播規則とは、ACLに明示的に設定されたアクセス権が、ロール構造に基づいて、ある一定の規則で他のロール間のアクセス権に伝播して、アクセス権の設定範囲を拡張することを定める規則である。ACLに明示的に宣言されたルールに対して、伝播規則に従って設定されたアクセス権は暗黙的に設定されたアクセス権と呼ばれている。伝播規則には以下の3つの規則がある。
1つめは、PermitPropagation(down)であり、ルール:Auth+(SubjectRole=“A”,ObjectRole=“B”)がACLで設定されている場合に、サブジェクトロールがAの祖先ノードに該当する全サブジェクトロールに所属するサブジェクトから、オブジェクトロールがBの子孫ノードに該当する全オブジェクトロールに所属するオブジェクトへのアクセスを許可する規則である。
2つめは、PermitPropagation(up)であり、ルール:Auth+(SubjectRole=“A”,ObjectRole=“B”)がACLで設定されている場合に、サブジェクトロールがAの祖先ノードに該当する全サブジェクトロールに所属するサブジェクトから、オブジェクトロールがBの祖先ノードに該当する全オブジェクトロールに所属するオブジェクトへのアクセスを許可する規則である。
3つめは、ProhibitPropagationであり、ルール:Auth-(SubjectRole=“A”,ObjectRole=“B”)がACLで設定されている場合に、サブジェクトロールがAの子孫ノードに該当する全サブジェクトロールに所属するサブジェクトから、オブジェクトロールがBの子孫ノードに該当する全オブジェクトロールに所属するオブジェクトへのアクセスを禁止する規則である。
これらの3種類の伝播規則のうちどれを使うかは、伝播規則リポジトリ8の中で定義されている。なお、伝播規則は1つのみを使用する場合の他に、複数を組み合わせて使用してもよく、逆に1つも使用していなくても良いものとする。
矛盾ルール検出処理は、大きく分けて「矛盾ルール抽出処理」・「矛盾ルール判定処理」・「矛盾部分抽出処理」の3つの処理から構成される。
最初に、矛盾ルール抽出処理について図8を参照して説明する。ACLリポジトリ7からACLを読み出し、ACLに記述されているルールから矛盾ルールとなる可能性のあるルールの組み合わせを抽出する。即ち、ACLに含まれる全てのルールの組み合わせをチェックし、Auth+とAuth-の組を抽出する。そして、抽出されたこれらの組を矛盾ルール検出処理に引き渡す。ルールの数がn個の場合には、組み合わせの総数はnC2=n(n-1)/2となる(ステップS8−1)。全てのルールに連続で番号を振り、総当たりで検出を行うため、iとjのパラメータを設定する。iに0を設定し(ステップS8−2)、iがnより小さい場合に、処理を継続するループを設定する(ステップS8−3とステップS8−12の間)。iにi+1を設定する(ステップS8−4)。jにiを設定する(ステップS8−5)。次に、jがn以下の場合に処理を継続するループを設定する(ステップS8−6とステップS8−11の間)。jにj+1を設定する(ステップS8−7)。もし、iとjが等しい場合(Yesの場合)には、同じルールを判定する処理となるためスキップし、次の組み合わせに進むためステップS8−6に戻る。iとjが等しくない場合(Noの場合)には次の処理に進む(ステップS8−8)。i番目のルールがAuth+かつj番目のルールがAuth-であるか、または、i番目のルールがAuth-かつj番目のルールがAuth+であるかを判定する。この判定は、Auth+同士、Auth-同士の判定処理を除外するためである。もし、上記判定条件に一致しない場合(Noの場合)は次の組み合わせに進むためステップS8−6に戻る。上記判定条件に一致する場合(Yesの場合)には次の矛盾ルール判定処理へ進む(ステップS8−9)。i番目とj番目のルールを引数として、矛盾ルール判定処理を呼び出す(ステップS8−10)。矛盾ルール判定処理の後、jがn以下の場合にはステップS8−6に戻り、jを1増やして次の組み合わせについて処理を行い(ステップS8−11)、jがnを超えると、次にiがn以上になるまでステップS8−3に戻って処理を行う(ステップS8−12)。この処理により、ACLリポジトリ7の中のルールのうちAuth+とAuth-の組み合わせが抽出され、その組み合わせについて矛盾ルール判定処理が行われることになる。
の記号はχ以上の自然数のうち、最小の自然数を意味するものとする。
矛盾ルール判定処理には引数として、以下の2つのルールが渡される。このとき、サブジェクトロール及びオブジェクトロールは、ロール変換手段10で上述した識別記号を用いた形式で記述されており、Auth+のサブジェクトロールはP(a,b)として、オブジェクトロールはQ(c,d)としてAuth+(SubjectRole=“P(a,b)”,ObjectRole=“Q(c,d)”)のように設定される。同様にAuth-のサブジェクトロールはP(e,f)として、オブジェクトロールはQ(g,h)としてAuth-(SubjectRole=“P(e,f)”,ObjectRole=“Q(g,h)”)のように設定される。ここでa、c、e、gは第1識別記号であり、b、d、f、hは第2識別記号である(ステップS10−1)。
2つのルールが矛盾ルールとなるかならないかは、伝播規則リポジトリ8に、どのような伝播規則が定義されているかにより異なる。本実施形態では、以下の6種類の伝播規則が設定されている場合の矛盾ルールの判定処理について説明する。6種類のうち、1つめはPermitPropagation(up)+ProhibitPropagation、2つめはPermitPropagation(down)+ProhibitPropagation、3つめはPermitPropagation(up)、4つめはPermitPropagation(down)、5つめはProhibitPropagation、6つめはPropagtion無しである。この前提で設定されている伝播規則を伝播規則リポジトリ8から読み出し、設定が有効である伝播規則に従って処理を分岐する(ステップS10−2)。
「PermitPropagation(up)+ProhibitPropagation」「PermitPropagation(up)」「ProhibitPropagation」のいずれかの伝播規則が伝播規則リポジトリ8に有効として設定されている場合には、式(2)の条件に一致するか否かで矛盾ルールであるか否かを判定することができる(ステップS10−3)。条件に一致しない場合(Noの場合)、処理は終了し、条件に一致する場合(Yesの場合)には矛盾検出として判定され(ステップS10−4)、検出された部分を引数として矛盾部分抽出処理を呼び出す(ステップS10−5)。
「PermitPropagation(down)+ProhibitPropagation」「PermitPropagation(down)」「PermitPropagation(down)」のいずれかの伝播規則が伝播規則リポジトリ8により設定されている場合には、式(2)または、式(3)の条件に一致するか否かで矛盾ルールであるか否かを判定することができる(ステップS10−6)。条件に一致しない場合(Noの場合)、処理は終了し、条件に一致する場合(Yesの場合)には矛盾検出として判定され(ステップS10−7)、検出された部分を引数として矛盾部分抽出処理を呼び出す(ステップS10−8)。
Propagation無しの場合には式(4)の条件に一致しない場合(Noの場合)、処理は終了し、条件に一致する場合(Yesの場合)には矛盾検出として判定され(ステップS10−10)、検出された部分を引数として矛盾部分抽出処理を呼び出す(ステップS10−11)。
それ以外の伝播規則の場合には判定不能として処理される(ステップS10−12)。
1つめの組み合わせは、PermitPropagation(up)+ProhibitPropagationの場合に式(2)の条件に合致して矛盾が検出された場合の矛盾部分はサブジェクトロールが式(5)を満たし、オブジェクトロールが式(6)を満たす部分となる。
2つめの組み合わせは、PermitPropagation(up)の場合で式(2)の条件に合致して矛盾が検出された場合の矛盾部分は、サブジェクトロールがP(e,f)で、オブジェクトロールがQ(g,h)の部分となる。
3つめの組み合わせは、ProhibitPropagationの場合で式(2)の条件に合致して矛盾が検出された場合の矛盾部分は、サブジェクトロールがP(a,b)でオブジェクトロールがQ(c,d)の部分となる。
4つめの組み合わせは、PermitPropagation(down)+ProhibitPropagationの場合で、式(2)の条件に合致して矛盾が検出された場合の矛盾部分は、サブジェクトロールが式(5)を満たし、オブジェクトロールが式(7)を満たす部分となる。式(7)において、depoは識別記号付与方法において決定されたオブジェクトロールのdep値を意味するものとする。
5つめの組み合わせは、PermitPropagation(down)の場合で式(2)の条件に合致して矛盾が検出された場合の矛盾部分は、サブジェクトロールがP(e,f)で、オブジェクトロールがQ(g,h)の部分となる。
6つめの組み合わせは、PermitPropagation(down)+ProhibitPropagationの場合で式(3)の条件に合致して矛盾が検出された場合の矛盾部分は、サブジェクトロールが式(5)を満たし、オブジェクトロールが式(8)を満たす部分となる。
7つめの組み合わせは、PermitPropagation(down)の場合で式(3)の条件に合致して矛盾が検出された場合の矛盾部分はサブジェクトロールがP(a,b)で、オブジェクトロールがQ(c,d)の部分がとなる。
8つ目の組み合わせは、Propagation無しの場合で、式(4)の条件に合致して矛盾が検出された場合の矛盾部分は、サブジェクトロールがP(a,b)で、オブジェクトロールがQ(c,d)の部分となる。
矛盾部分抽出処理により抽出された矛盾部分は、管理者に通知され、管理者は矛盾無くアクセス制御が行われるよう、それらのルールに対して回避策を講じる必要がある。
また、上記1つめと4つめと6つめの組み合わせにおいては、式で示されるサブジェクトロールの集合が、式で示されるオブジェクトロールの集合に対して相反するアクセス権を設定していることを意味する。また、4つめ及び6つめの組み合わせで示す式(5)、式(7)、式(8)を用いてサブジェクトロール及びオブジェクトロールを導くと、実際には存在しないサブジェクトロールやオブジェクトロールが導かれる可能性がある。これは、付与された識別記号に起因して発生する。この問題を避けるために抽出された矛盾部分に該当するサブジェクトロールやオブジェクトロールが実際に存在するか否かをチェックする必要がある。
冗長ルールの例としては次のものが考えられる。例えば、サブジェクトロール構造として「一般社員」「課長」「部長」「副本部長」「本部長」というロールが存在していると仮定する。これらの属性は階層関係になっており、一番階層の低いのが「一般社員」であり、一番高いのが「本部長」である。さらに伝播規則リポジトリ8にPermitPropagation(up)が設定されているとする。ここで、以下のような2つのルールを考える。
ルール1:Auth+(SubjectRole=“課長”,ObjectRole=“機密ファイル”)
ルール2:Auth+(SubjectRole=“副本部長”,ObjectRole=“機密ファイル”)
この時、ルール1では、サブジェクトロールが「課長」に属するサブジェクトが「機密ファイル」にアクセスすることを許可している。伝播規則により、サブジェクトロールが「部長」「副本部長」「本部長」に属するサブジェクトが「機密ファイル」にアクセスすることが同時に許可される。さらに、ルール2では、サブジェクトロールが「副本部長」に属するサブジェクトが「機密ファイル」にアクセスすることを許可している。伝播規則により、サブジェクトロールが「本部長」に属するサブジェクトが「機密ファイル」にアクセスすることが同時に許可される。
つまり、ルール2で設定されているアクセス権は全てルール1で設定済みであり、ルール2はACLの中に不要である。この時、ルール2は冗長ルールと呼ばれる。
冗長ルール検出方法におけるその他の前提条件は、上述した矛盾ルール検出方法における前提条件と同じである。
最初に、図11を参照して冗長ルール抽出処理について説明する。ACLリポジトリ7からACLを読み出し、ACLに記述されているルールから冗長ルールとなる可能性のあるルールの組み合わせを抽出する。即ち、ACLに含まれる全てのルールの組み合わせをチェックし、Auth+とAuth+、または、Auth-とAuth-のルールの組を抽出する。ルールの数がn個の場合には、組み合わせの総数はnC2=n(n-1)/2となる(ステップS11−1)。全てのルールに連続で番号を振り、総当たりで検出を行うため、iとjのパラメータを設定する。iに0を設定し(ステップS11−2)、iがnより小さい場合に、処理を継続するループを設定する(ステップS11−3とステップS11−12の間)。iにi+1を設定する(ステップS11−4)。jにiを設定する(ステップS11−5)。次に、jがn以下の場合に処理を継続するループを設定する(ステップS11−6とステップS11−11の間)。jにj+1を設定する(ステップS11−7)。もし、iとjが等しい場合(Yesの場合)には、同じルールを判定する処理となるためスキップし、次の組み合わせに進むためステップS11−6に戻る。iとjが等しくない場合(Noの場合)には次の処理に進む(ステップS11−8)。i番目のルールがAuth+かつj番目のルールがAuth+であるか、または、i番目のルールがAuth-かつj番目のルールがAuth-であるかを判定する。この判定は、Auth+とAuth-の組み合わせの判定処理を除外するためである。もし、上記判定条件に一致しない場合(Noの場合)は次の組み合わせに進むためステップS11−6に戻る。上記判定条件に一致する場合(Yesの場合)には次の冗長ルール判定処理へ進む(ステップS11−9)。i番目とj番目のルールを引数として、冗長ルール判定処理を呼び出す(ステップS11−10)。矛盾ルール判定処理の後、jがn以下の場合にはステップS11−6に戻り、jを1増やして次の組み合わせに進み(ステップS11−11)、jがnを超えると、次にiがn以上になるまでステップS11−3に戻って処理を行う(ステップS11−12)。この処理により、ACLリポジトリ7の中にあるルールのうちAuth++同士、Auth-同士の組み合わせが抽出され、その組み合わせについて冗長ルール判定処理が行われることになる。
上記処理において、矛盾ルール抽出処理の場合と同様に、ACLのルールを予めAuth+とAuth-の2組に分類して並べ替えをしておくことで冗長ルールを簡略化することができる。
冗長ルール判定処理には引数として、以下の2つのルールが渡されている。
ルール1:Auth+(SubjectRole=“P(a,b)”,ObjectRole=“Q(c,d)”)
ルール2:Auth+(SubjectRole=“P(e,f)”,ObjectRole=“Q(g,h)”)
または、
ルール1:Auth-(SubjectRole=“P(a,b)”,ObjectRole=“Q(c,d)”)
ルール2:Auth-(SubjectRole=“P(e,f)”,ObjectRole=“Q(g,h)”)
上記のように、サブジェクトロール及びオブジェクトロールは、ロール変換手段14により付与された識別記号を用いた形式で記述されている。また、冗長ルール検出処理においても、矛盾ルール検出処理で用いたものと同様の識別記号付与手順により付与された記号を用いて検出することが可能である。
上記において、a≦eとなるようにルール1とルール2を決定する。特にa=eの場合は、どちらをルール1にしてもルール2としても良い(ステップS12−1)。
2つのルールのうち片方が冗長ルールとなるかならないかは、伝播規則リポジトリ8にどのような伝播規則が定義されているかにより異なる。本実施形態では、以下の6種類の伝播規則が設定されている場合の冗長ルールの判定処理について説明する。6種類のうち、1つめはPermitPropagation(up)+ProhibitPropagation、2つめはPermitPropagation(down)+ProhibitPropagation、3つめはPermitPropagation(up)、4つめはPermitPropagation(down)、5つめはProhibitPropagation、6つめはPropagtion無しである。この前提で設定されている伝播規則を伝播規則リポジトリ8から読み出し、設定が有効である伝播規則に従って処理を分岐する(ステップS12−2)。
「PermitPropagation(up)+ProhibitPropagation」「PermitPropagation(up)」「ProhibitPropagation」のいずれかの伝播規則が伝播規則リポジトリ8に有効として設定されている場合には、上記した矛盾ルール判定処理で用いた式(2)の条件に一致するか否かで冗長ルールであるか否かを判定することができる(ステップ12−3)。条件に一致しない場合(Noの場合)、処理は終了し、条件に一致する場合(Yesの場合)には冗長検出として判定される(ステップS12−4)。
「PermitPropagation(down)+ProhibitPropagation」「PermitPropagation(down)」のいずれかの伝播規則が伝播規則リポジトリ8により設定されている場合には、同様に式(2)または式(3)の条件に一致するか否かで冗長ルールであるか否かを判定することができる(ステップS12−5)。条件に一致しない場合(Noの場合)、処理は終了し、条件に一致する場合(Yesの場合)には冗長検出として判定される(ステップS12−6)。
Propagation無しの場合には、同様に式(4)の条件に一致しない場合(Noの場合)、処理は終了し、条件に一致する場合(Yesの場合)には冗長検出として判定される(ステップS12−8)。
それ以外の伝播規則の場合には判定不能として処理される(ステップS12−9)。
上記手順に従い、冗長ルールであると検出された場合には、管理者にその旨が通知され、管理者は冗長ルールと判定されたルールを削除することにより、ACLから不要なルールを排除し、ACLの管理作業軽減を図ることができる。
サブジェクトロールリポジトリには、以下のような形式で図13に示すサブジェクトロールが保存されているものとする。
Sr1(Sr2(Sr3(Sr5(Sr10),Sr6),Sr4(Sr7,Sr8,Sr9(Sr12,Sr13))))
括弧の中は子ノードであることを表している。
ACLには以下の3つのルールが予め設定されているものとする。
ルール100:Auth+(SubjectRole=”Sr12”,ObjectRole=”Or1”)
ルール101:Auth-(SubjectRole=”Sr4”,ObjectRole=”Or1”)
ルール102:Auth+(SubjectRole=”Sr2”,ObjectRole=”Or1”)
伝播規則リポジトリ8には、以下の2つの伝播規則が有効になっているものとする。
・ PermitPropagation(up)
・ ProhibitPropagation
本実施形態の信頼性を確認するため、まず、上記の前提であるサブジェクトロール構造、ACL、伝播規則に基づいてACLに矛盾ルールと冗長ルールが含まれていることを手作業により確認する。
まず、ルール100は、サブジェクトロールがSr12に属するサブジェクトが、Or1のオブジェクトロールに属するオブジェクトへアクセスすることを許可している。このルールにPermitPropagation(up)を適用することにより、サブジェクトロールがSr1,Sr2,Sr4,Sr9に属するサブジェクトも、Or1のオブジェクトロールに属するオブジェクトへアクセスすることが許可される。
次に、ルール101は、サブジェクトロールがSr4に属するサブジェクトが、Or1のオブジェクトロールに属するオブジェクトへアクセスすることを禁止している。このルールにProhibitPropagationを適用することにより、サブジェクトロールがSr7,Sr8,Sr9,Sr11,Sr12,Sr13に属するサブジェクトも、Or1のオブジェクトロールに属するオブジェクトへアクセスすることが禁止される。
最後に、ルール102は、サブジェクトロールがSr2に属するサブジェクトが、Or1のオブジェクトロールに属するオブジェクトへアクセスすることを許可している。このルールにPermitPropagtion(up)を適用することにより、サブジェクトロールがSr1に属するサブジェクトも、Or1のオブジェクトロールに属するオブジェクトへアクセスすることが許可される。
以上から、導かれた事実を整理すると、図14に示すように各ロールにアクセス権が設定されていることがわかる。ここで、図14中の記号+は許可を、記号−は禁止を示している。ACLと図14を照らし合わせることにより、以下の事実がわかる。1点目は、ルール100とルール101は矛盾ルールである。2点目は、矛盾部分はサブジェクトロールがSr4,Sr9,Sr12で、オブジェクトロールがOr1である。3点目は、ルール102は冗長ルールである。
矛盾ルール抽出処理では、Auth+及びAuth-のルールの組み合わせが抽出の対象となる。従って、例に示すACLの場合は、ルール100とルール101の組み合わせ及びルール101とルール102の組み合わせの2組が矛盾ルール判定の対象となる。
最初に、ルール100とルール101の組み合わせについて矛盾ルール判定を行う。図10の矛盾ルール検出処理のフローチャートに従うと、
・Auth+のサブジェクトロールはP(a,b)
・Auth+のオブジェクトロールはQ(c,d)
・Auth-のサブジェクトロールはP(e,f)
・Auth-のオブジェクトロールはQ(g,h)
と定義されている。従って、Sr12=P(a,b)よりa=5,b=16となり、Sr4=P(e,f)よりe=3,f=2となる。また、Or1=Q(c,d)よりc=1,d=1となり、Or1=Q(g,h)よりg=1,h=1となる。これらは、式(2)の条件を満足する。従って、ルール100とルール101の組み合わせは矛盾ルールであると判定される。
次に、ルール101とルール102の組み合わせについて矛盾ルール判定を行う。上記と同様に、Sr2=P(a,b)よりa=2,b=1,Sr4=P(e,f)よりe=3,f=2となる。また、Or1=Q(c,d)よりc=1,d=1となり、Or1=Q(g,h)よりg=1,h=1となる。これらは、式(2)を満足しない、従って、ルール101とルール102の組み合わせは矛盾ルールでないと判定される。
・ルール1のサブジェクトロールはP(a,b)
・ルール1のオブジェクトロールはQ(c,d)
・ルール2のサブジェクトロールはP(e,f)
・ルール2のオブジェクトロールはQ(g,h)
・ルール1とルール2はa≦eとなるように決定
と定義されている。従って、ルール102がルール1となり、ルール100がルール2となる。さらに、Sr2=P(a,b)よりa=2,b=1となり、Sr12=P(e,f)よりe=5,f=16となる。また、Or1=Q(c,d)よりc=1,d=1となり、Or1=Q(g,h)よりg=1,h=1となる。これらは式(2)を満足する。従ってルール102は冗長ルールであると判定される。
2 アクセス制御システム
3 リクエスト受付部
4 アクセス許可判断部
5 サブジェクトロールリポジトリ
6 オブジェクトロールリポジトリ
7 ACLリポジトリ
8 伝播規則リポジトリ
9 矛盾ルール検出処理部
10 ロール変換手段
11 矛盾ルール検出手段
12 矛盾部分抽出手段
13 冗長ルール検出処理部
14 ロール変換手段
15 冗長ルール検出手段
Claims (5)
- コンピュータシステムにおけるファイルやアプリケーションやサービス等の客体の種類に応じて設定されるアクセス権限のレベルを示す客体階級の情報を前記客体に対応付けて保存した客体階級データベースと、前記客体にアクセスする個人やシステム等の主体の種類に応じて設定されるアクセス権限のレベルを示す主体階級の情報を前記主体に対応付けて保存した主体階級データベースと、ある主体階級に属する主体がある客体階級に属する客体にアクセスすることを許可するか禁止するかを前記主体階級と前記客体階級の組み合わせに対して定めたアクセス権制御規則の情報を保存したアクセス権制御規則データベースと、前記アクセス権制御規則に含まれる前記主体階級と前記客体階級の間のアクセス権を、所定の規則に基づいて、当該主体階級及び当該客体階級と上位または下位の階級の関係にある主体階級及び客体階級の間のアクセス権として適用する伝播規則の情報を保存した伝播規則データベースと、前記主体から前記客体へのアクセスの要求を受信するリクエスト受付部と、前記リクエスト受付部からリクエストを受信し、前記アクセス権制御規則データベースに設定されている前記アクセス権制御規則を基に、前記主体階級に属する主体が前記客体階級に属する客体にアクセスすることを許可するか禁止するかを判断するアクセス許可判断部と、を備えたアクセス制御システムにおいて、
前記主体階級データベース及び前記客体階級データベースから全ての前記主体階級及び前記客体階級の情報を読出し、前記主体階級及び前記客体階級の情報を、それぞれの階級構造における地位を一意に特定できる識別記号へ変換する階級情報変換手段と、
前記階級情報変換手段から前記識別記号が付与された前記主体階級及び前記客体階級の情報を受信し、前記伝播規則データベースから前記伝播規則を読出し、前記アクセス権制御規則データベース内のアクセス権制御規則に前記伝播規則を適用し、前記伝播規則を適用した後の前記主体階級と前記客体階級の上位階級、下位階級及び同位階級の間のアクセス権において、矛盾するアクセス権を発生させる前記アクセス権制御規則を前記識別記号に基づいて検出する矛盾ルール検出手段と、
前記矛盾ルール検出手段で検出された矛盾する前記アクセス権制御規則の中から、矛盾がある前記主体階級と前記客体階級の組み合わせを前記識別記号を用いて抽出し、その結果を通知する矛盾部分抽出手段と、
からなる矛盾ルール検出処理部を備え、
前記主体階級及び前記客体階級は、それぞれの階級の地位をノードとする木構造として構成されており、前記階級情報変換手段は、
最上段に位置するノードの深さを1とし、一段下がる毎に深さが1つ増える規則に基づいて、前記ノードに前記ノードの深さに応じて第1識別記号を付与する手段と、
あるノードに接続する深さが1つ深いノードを子ノードとする場合に、前記木構造の全てのノードの子ノードの数を検索し、最大子ノード数を検出する手段と、
最上段に位置するノードに第2識別記号として1を付与し、最上段に位置するノード以外のノードには、前記第1識別記号が小さい前記ノードから順に、前記ノードの親の第2識別記号をnとしたとき、max(n-1)は(n-1)に前記最大子ノード数を乗じて求めた値を表し、max(n-1)に1加えたものと初期値とし、当該親の1番目の子ノードに第2識別記号として初期値を付与し、2番目以降の子ノードには、1つ前の子ノードに付与した第2識別記号に1加えたものを第2識別記号として付与する手段と、
を備え
前記伝播規則は、前記木構造において、あるノードから見て上位にたどって到達できるノードの集合を祖先ノード、下位にたどって到達できるノードの集合を子孫ノードとする場合に、
前記アクセス権制御規則の中の1規則として、ある主体階級とある客体階級の間のアクセスを許可する設定がある場合、当該主体階級の祖先ノードに該当する全ての階級に属する主体から、当該客体階級の子孫ノードに該当する全ての階級に属する客体へのアクセスを許可するPermitPropagation(down)という規則と、
前記アクセス権制御規則の1規則として、ある主体階級とある客体階級の間のアクセスを許可する設定がある場合、当該主体階級の祖先ノードに該当する全ての階級に属する主体から、当該客体階級の祖先ノードに該当する全ての階級に属する客体へのアクセスを許可するPermitPropagation(up)という規則と、
前記アクセス権制御規則の1規則として、ある主体階級とある客体階級の間のアクセスを禁止する設定がある場合、当該主体階級の子孫ノードに該当する全ての階級に属する主体から、当該客体階級の子孫ノードに該当する全ての階級に属する客体へのアクセスを禁止するProhibitPropagationという規則と、
PermitPropagation(down)とPermitPropagation(up)とProhibitPropagationの任意の組み合わせから構成される規則と、
を備え、
前記矛盾ルール検出手段は、
前記アクセス権制御規則データベースに設定されている全ての前記アクセス権制御規則の中から任意の2つのアクセス権制御規則を選択して得られる組み合わせのうち、許可の規則と禁止の規則の組み合わせのみを全て抽出する手段と、
前記階級情報変換手段から受信した、前記第1識別記号と前記第2識別記号が付与された前記主体階級及び前記客体階級の情報に基づいて、抽出した前記アクセス権制御規則の組み合わせの許可の規則の主体階級の識別記号のうち第1識別記号をaに代入し、第2識別記号をbに代入し、客体階級の識別記号のうち第1識別記号をcに代入し、第2識別記号をdに代入し、禁止の規則の主体階級の識別記号のうち第1識別記号をeに代入し、第2識別記号をfに代入し、客体階級の識別記号のうち第1識別記号をgに代入し、第2識別記号をhに代入する手段と、
前記階級情報変換手段から受信した、前記主体階級の木構造の最大子ノード数をmaxsに代入し、前記客体階級の木構造の最大子ノード数をmaxoに代入する手段と、
前記伝播規則データベースから有効に設定されている前記伝播規則を読出す手段と、
読み出した前記伝播規則がPermitPropagation(up)かつProhibitPropagationまたはPermitPropagation(up)またはProhibitPropagationである場合に、
読み出した前記伝播規則がPermitPropagation(down)かつProhibitPropagationまたはPermitPropagation(down)である場合に、
前記式(2)または、
前記伝播規則が設定されていない場合に、
を備え、
前記矛盾部分抽出手段は、
前記客体階級の木構造の深さの最大値をdepoに代入する手段と、前記矛盾ルール検出手段から受信した、前記矛盾するアクセス権制御規則に基づいて、
前記伝播規則がPermitPropagation(up)かつProhibitPropagationの場合で、かつ
前記式(2)の条件に合致して矛盾が検出された場合に、
前記伝播規則がPermitPropagation(up)の場合で、かつ前記式(2)の条件に合致して矛盾が検出された場合に、第1識別記号がeで、第2識別記号がfである前記主体階級と第1識別記号がgで第2識別記号がhである前記客体階級が矛盾部分であることを抽出する手段と、
前記伝播規則がProhibitPropagationの場合で、かつ前記式(2)の条件に合致して矛盾が検出された場合に、第1識別記号がaで、第2識別記号がbである前記主体階級と第1識別記号がcで第2識別記号がdである前記客体階級が矛盾部分であることを抽出する手段と、
前記伝播規則がPermitPropagation(down)かつProhibitPropagationの場合で、かつ前記式(2)の条件に合致して矛盾が検出された場合に、式(5)を満たす前記主体階級と
前記伝播規則がPermitPropagation(down)の場合で、かつ前記式(2)の条件に合致して矛盾が検出された場合に、第1識別記号がeで、第2識別記号がfである前記主体階級と第1識別記号がgで第2識別記号がhである前記客体階級が矛盾部分であることを抽出する手段と、
前記伝播規則がPermitPropagation(down)かつProhibitPropagationの場合で、かつ前記式(3)の条件に合致して矛盾が検出された場合に、前記主体階級が前記式(5)を満たす前記主体階級と
前記伝播規則がPermitPropagation(down)の場合で、かつ前記式(3)の条件に合致して矛盾が検出された場合に、第1識別記号がaで、第2識別記号がbである前記主体階級と第1識別記号がcで第2識別記号がdである前記客体階級が矛盾部分であることを抽出する手段と、
前記伝播規則が設定されていない場合で、かつ前記式(4)の条件に合致して矛盾が検出された場合に、第1識別記号がaで、第2識別記号がbである前記主体階級と第1識別記号がcで第2識別記号がdである前記客体階級が矛盾部分であることを抽出する手段と、
を備えたことを特徴とするアクセス制御システム。 - 前記主体階級データベース及び前記客体階級データベースから全ての前記主体階級及び前記客体階級の情報を読出し、前記主体階級及び前記客体階級の情報を、それぞれの階級構造における地位を一意に特定できる識別記号へ変換する階級情報変換手段と、
前記階級情報変換手段から前記識別記号が付与された前記主体階級及び前記客体階級の情報を受信し、前記伝播規則データベースから前記伝播規則を読出し、前記アクセス権制御規則データベース内のアクセス権制御規則に前記伝播規則を適用し、前記伝播規則を適用した後の前記主体階級と前記客体階級の上位階級、下位階級及び同位階級の間のアクセス権において、冗長となるアクセス権を発生させる前記アクセス権制御規則を前記識別記号に基づいて検出し、冗長が検出された場合にはその旨を通知する冗長ルール検出手段と、
からなる冗長ルール検出処理部をさらに備え、
前記冗長ルール検出手段は、
前記アクセス権制御規則データベースに設定されている全ての前記アクセス権制御規則の中から任意の2つのアクセス権制御規則を選択して得られる組み合わせのうち、許可の規則同士の組み合わせと、禁止の規則同士の組み合わせを全て抽出する手段と、
前記階級情報変換手段から受信した、前記第1識別記号と前記第2識別記号が付与された前記主体階級及び前記客体階級の情報に基づいて、抽出した前記アクセス権制御規則の組み合わせの主体階級情報の第1識別記号を比較した場合に、第1識別記号の値が小さい方の規則の主体階級の識別記号のうち第1識別記号をaに代入し、第2識別記号をbに代入し、客体階級の識別記号のうち第1識別記号をcに代入し、第2識別記号をdに代入し、他方の規則の主体階級の識別記号のうち第1識別記号をeに代入し、第2識別記号をfに代入し、客体階級の識別記号のうち第1識別記号をgに代入し、第2識別記号をhに代入する手段と、
前記階級情報変換手段から受信した、前記主体階級の木構造の最大子ノード数をmaxsに代入し、前記客体階級の木構造の最大子ノード数をmaxoに代入する手段と、
前記伝播規則データベースから前記伝播規則を読出す手段と、
読み出した前記伝播規則がPermitPropagation(up)かつProhibitPropagationまたはPermitPropagation(up)またはProhibitPropagationである場合に、
式(1)の記号はχ以上の自然数のうち、最小の自然数を意味する場合に、式(2)を満たす場合には冗長設定であるアクセス権制御規則を検出したと判定する手段と、
読み出した前記伝播規則がPermitPropagation(down)かつProhibitPropagationまたはPermitPropagation(down)である場合に、
前記式(2)または、式(3)を満たす場合には冗長設定であるアクセス権制御規則を検出したと判定する手段と、
前記伝播規則が設定されていない場合に、式(4)を満たす場合には矛盾するアクセス権制御規則を検出したと判定する手段と、
を備えたことを特徴とする請求項1に記載のアクセス制御システム。 - 前記伝播規則は、運用に応じて前記伝播規則データベース内で変更可能としたことを特徴とする請求項1または2に記載のアクセス制御システム。
- コンピュータシステムにおけるファイルやアプリケーションやサービス等の客体の種類に応じて設定されるアクセス権限のレベルを示す客体階級の情報と、前記客体にアクセスする個人やシステム等の主体の種類に応じて設定されるアクセス権限のレベルを示す主体階級の情報と、前記主体階級に属する主体が前記客体階級に属する客体にアクセスすることを許可するか禁止するかを前記主体階級と前記客体階級の組み合わせに対して定めたアクセス権制御規則の情報と、前記アクセス権制御規則に含まれる前記主体階級と前記客体階級の間のアクセス権を、所定の規則に基づいて、当該主体階級及び当該客体階級と上位または下位の階級の関係にある主体階級及び客体階級の間のアクセス権として適用する伝播規則の情報と、に基づいてアクセス制御を実行するコンピュータを、
前記主体階級データベース及び前記客体階級データベースから全ての前記主体階級及び前記客体階級の情報を読出し、前記主体階級及び前記客体階級の情報を、それぞれの階級構造における地位を一意に特定できる識別記号へ変換する階級情報変換手段と、
前記階級情報変換手段から前記識別記号が付与された前記主体階級及び前記客体階級の情報を受信し、前記伝播規則データベースから前記伝播規則を読出し、前記アクセス権制御規則データベース内のアクセス権制御規則に前記伝播規則を適用し、前記伝播規則を適用した後の前記主体階級と前記客体階級の上位階級、下位階級及び同位階級の間のアクセス権において、矛盾するアクセス権を発生させる前記アクセス権制御規則を前記識別記号に基づいて検出する矛盾ルール検出手段と、
前記矛盾ルール検出手段で検出された矛盾する前記アクセス権制御規則の中から、矛盾がある前記主体階級と前記客体階級の組み合わせを前記識別記号に基づいて抽出し、その結果を通知する矛盾部分抽出手段として機能させ、
前記主体階級及び前記客体階級は、それぞれの階級の地位をノードとする木構造として構成されており、前記階級情報変換手段は、
最上段に位置するノードの深さを1とし、一段下がる毎に深さが1つ増える規則に基づいて、前記ノードに前記ノードの深さに応じて第1識別記号を付与する手段と、
あるノードに接続する深さが1つ深いノードを子ノードとする場合に、前記木構造の全てのノードの子ノードの数を検索し、最大子ノード数を検出する手段と、
最上段に位置するノードに第2識別記号として1を付与し、最上段に位置するノード以外のノードには、前記第1識別記号が小さい前記ノードから順に、前記ノードの親の第2識別記号をnとしたとき、max(n-1)は(n-1)に前記最大子ノード数を乗じて求めた値を表し、max(n-1)に1加えたものと初期値とし、当該親の1番目の子ノードに第2識別記号として初期値を付与し、2番目以降の子ノードには、1つ前の子ノードに付与した第2識別記号に1加えたものを第2識別記号として付与する手段と、
を備え
前記伝播規則は、前記木構造において、あるノードから見て上位にたどって到達できるノードの集合を祖先ノード、下位にたどって到達できるノードの集合を子孫ノードとする場合に、
前記アクセス権制御規則の中の1規則として、ある主体階級とある客体階級の間のアクセスを許可する設定がある場合、当該主体階級の祖先ノードに該当する全ての階級に属する主体から、当該客体階級の子孫ノードに該当する全ての階級に属する客体へのアクセスを許可するPermitPropagation(down)という規則と、
前記アクセス権制御規則の1規則として、ある主体階級とある客体階級の間のアクセスを許可する設定がある場合、当該主体階級の祖先ノードに該当する全ての階級に属する主体から、当該客体階級の祖先ノードに該当する全ての階級に属する客体へのアクセスを許可するPermitPropagation(up)という規則と、
前記アクセス権制御規則の1規則として、ある主体階級とある客体階級の間のアクセスを禁止する設定がある場合、当該主体階級の子孫ノードに該当する全ての階級に属する主体から、当該客体階級の子孫ノードに該当する全ての階級に属する客体へのアクセスを禁止するProhibitPropagationという規則と、
PermitPropagation(down)とPermitPropagation(up)とProhibitPropagationの任意の組み合わせから構成される規則と、
を備え、
前記矛盾ルール検出手段は、
前記アクセス権制御規則データベースに設定されている全ての前記アクセス権制御規則の中から任意の2つのアクセス権制御規則を選択して得られる組み合わせのうち、許可の規則と禁止の規則の組み合わせのみを全て抽出する手段と、
前記階級情報変換手段から受信した、前記第1識別記号と前記第2識別記号が付与された前記主体階級及び前記客体階級の情報に基づいて、抽出した前記アクセス権制御規則の組み合わせの許可の規則の主体階級の識別記号のうち第1識別記号をaに代入し、第2識別記号をbに代入し、客体階級の識別記号のうち第1識別記号をcに代入し、第2識別記号をdに代入し、禁止の規則の主体階級の識別記号のうち第1識別記号をeに代入し、第2識別記号をfに代入し、客体階級の識別記号のうち第1識別記号をgに代入し、第2識別記号をhに代入する手段と、
前記階級情報変換手段から受信した、前記主体階級の木構造の最大子ノード数をmaxsに代入し、前記客体階級の木構造の最大子ノード数をmaxoに代入する手段と、
前記伝播規則データベースから有効に設定されている前記伝播規則を読出す手段と、
読み出した前記伝播規則がPermitPropagation(up)かつProhibitPropagationまたはPermitPropagation(up)またはProhibitPropagationである場合に、
読み出した前記伝播規則がPermitPropagation(down)かつProhibitPropagationまたはPermitPropagation(down)である場合に、
前記式(2)または、
前記伝播規則が設定されていない場合に、
を備え、
前記矛盾部分抽出手段は、
前記客体階級の木構造の深さの最大値をdepoに代入する手段と、前記矛盾ルール検出手段から受信した、前記矛盾するアクセス権制御規則に基づいて、
前記伝播規則がPermitPropagation(up)かつProhibitPropagationの場合で、かつ
前記式(2)の条件に合致して矛盾が検出された場合に、
前記伝播規則がPermitPropagation(up)の場合で、かつ前記式(2)の条件に合致して矛盾が検出された場合に、第1識別記号がeで、第2識別記号がfである前記主体階級と第1識別記号がgで第2識別記号がhである前記客体階級が矛盾部分であることを抽出する手段と、
前記伝播規則がProhibitPropagationの場合で、かつ前記式(2)の条件に合致して矛盾が検出された場合に、第1識別記号がaで、第2識別記号がbである前記主体階級と第1識別記号がcで第2識別記号がdである前記客体階級が矛盾部分であることを抽出する手段と、
前記伝播規則がPermitPropagation(down)かつProhibitPropagationの場合で、かつ前記式(2)の条件に合致して矛盾が検出された場合に、式(5)を満たす前記主体階級と
前記伝播規則がPermitPropagation(down)の場合で、かつ前記式(2)の条件に合致して矛盾が検出された場合に、第1識別記号がeで、第2識別記号がfである前記主体階級と第1識別記号がgで第2識別記号がhである前記客体階級が矛盾部分であることを抽出する手段と、
前記伝播規則がPermitPropagation(down)かつProhibitPropagationの場合で、かつ前記式(3)の条件に合致して矛盾が検出された場合に、前記主体階級が前記式(5)を満たす前記主体階級と
前記伝播規則がPermitPropagation(down)の場合で、かつ前記式(3)の条件に合致して矛盾が検出された場合に、第1識別記号がaで、第2識別記号がbである前記主体階級と第1識別記号がcで第2識別記号がdである前記客体階級が矛盾部分であることを抽出する手段と、
前記伝播規則が設定されていない場合で、かつ前記式(4)の条件に合致して矛盾が検出された場合に、第1識別記号がaで、第2識別記号がbである前記主体階級と第1識別記号がcで第2識別記号がdである前記客体階級が矛盾部分であることを抽出する手段と、
を備える矛盾ルール検出プログラム。 - コンピュータシステムにおけるファイルやアプリケーションやサービス等の客体の種類に応じて設定されるアクセス権限のレベルを示す客体階級の情報と、前記客体にアクセスする個人やシステム等の主体の種類に応じて設定されるアクセス権限のレベルを示す主体階級の情報と、前記主体階級に属する主体が前記客体階級に属する客体にアクセスすることを許可するか禁止するかを前記主体階級と前記客体階級の組み合わせに対して定めたアクセス権制御規則の情報と、前記アクセス権制御規則に含まれる前記主体階級と前記客体階級の間のアクセス権を、所定の規則に基づいて、当該主体階級及び当該客体階級と上位または下位の階級の関係にある主体階級及び客体階級の間のアクセス権に適用する伝播規則の情報と、に基づいてアクセス制御を実行するコンピュータを、
前記主体階級データベース及び前記客体階級データベースから全ての前記主体階級及び前記客体階級の情報を読出し、前記主体階級及び前記客体階級の情報を、それぞれの階級構造における地位を一意に特定できる識別記号へ変換する階級情報変換手段と、
前記階級情報変換手段から前記識別記号が付与された前記主体階級及び前記客体階級の情報を受信し、前記伝播規則データベースから前記伝播規則を読出し、前記アクセス権制御規則データベース内のアクセス権制御規則に前記伝播規則を適用し、前記伝播規則を適用した後の前記主体階級と前記客体階級の上位階級、下位階級及び同位階級の間のアクセス権において、冗長となるアクセス権を発生させる前記アクセス権制御規則を前記識別記号に基づいて検出し、冗長が検出された場合にはその旨を通知する冗長ルール検出手段として機能させ、
前記主体階級及び前記客体階級は、それぞれの階級の地位をノードとする木構造として構成されており、前記階級情報変換手段は、
最上段に位置するノードの深さを1とし、一段下がる毎に深さが1つ増える規則に基づいて、前記ノードに前記ノードの深さに応じて第1識別記号を付与する手段と、
あるノードに接続する深さが1つ深いノードを子ノードとする場合に、前記木構造の全てのノードの子ノードの数を検索し、最大子ノード数を検出する手段と、
最上段に位置するノードに第2識別記号として1を付与し、最上段に位置するノード以外のノードには、前記第1識別記号が小さい前記ノードから順に、前記ノードの親の第2識別記号をnとしたとき、max(n-1)は(n-1)に前記最大子ノード数を乗じて求めた値を表し、max(n-1)に1加えたものと初期値とし、当該親の1番目の子ノードに第2識別記号として初期値を付与し、2番目以降の子ノードには、1つ前の子ノードに付与した第2識別記号に1加えたものを第2識別記号として付与する手段と、
を備え
前記伝播規則は、前記木構造において、あるノードから見て上位にたどって到達できるノードの集合を祖先ノード、下位にたどって到達できるノードの集合を子孫ノードとする場合に、
前記アクセス権制御規則の中の1規則として、ある主体階級とある客体階級の間のアクセスを許可する設定がある場合、当該主体階級の祖先ノードに該当する全ての階級に属する主体から、当該客体階級の子孫ノードに該当する全ての階級に属する客体へのアクセスを許可するPermitPropagation(down)という規則と、
前記アクセス権制御規則の1規則として、ある主体階級とある客体階級の間のアクセスを許可する設定がある場合、当該主体階級の祖先ノードに該当する全ての階級に属する主体から、当該客体階級の祖先ノードに該当する全ての階級に属する客体へのアクセスを許可するPermitPropagation(up)という規則と、
前記アクセス権制御規則の1規則として、ある主体階級とある客体階級の間のアクセスを禁止する設定がある場合、当該主体階級の子孫ノードに該当する全ての階級に属する主体から、当該客体階級の子孫ノードに該当する全ての階級に属する客体へのアクセスを禁止するProhibitPropagationという規則と、
PermitPropagation(down)とPermitPropagation(up)とProhibitPropagationの任意の組み合わせから構成される規則と、
を備え、
前記冗長ルール検出手段は、
前記アクセス権制御規則データベースに設定されている全ての前記アクセス権制御規則の中から任意の2つのアクセス権制御規則を選択して得られる組み合わせのうち、許可の規則同士の組み合わせと、禁止の規則同士の組み合わせを全て抽出する手段と、
前記階級情報変換手段から受信した、前記第1識別記号と前記第2識別記号が付与された前記主体階級及び前記客体階級の情報に基づいて、抽出した前記アクセス権制御規則の組み合わせの主体階級情報の第1識別記号を比較した場合に、第1識別記号の値が小さい方の規則の主体階級の識別記号のうち第1識別記号をaに代入し、第2識別記号をbに代入し、客体階級の識別記号のうち第1識別記号をcに代入し、第2識別記号をdに代入し、他方の規則の主体階級の識別記号のうち第1識別記号をeに代入し、第2識別記号をfに代入し、客体階級の識別記号のうち第1識別記号をgに代入し、第2識別記号をhに代入する手段と、
前記階級情報変換手段から受信した、前記主体階級の木構造の最大子ノード数をmaxsに代入し、前記客体階級の木構造の最大子ノード数をmaxoに代入する手段と、
前記伝播規則データベースから前記伝播規則を読出す手段と、
読み出した前記伝播規則がPermitPropagation(up)かつProhibitPropagationまたはPermitPropagation(up)またはProhibitPropagationである場合に、
式(1)の記号はχ以上の自然数のうち、最小の自然数を意味する場合に、式(2)を満たす場合には冗長設定であるアクセス権制御規則を検出したと判定する手段と、
読み出した前記伝播規則がPermitPropagation(down)かつProhibitPropagationまたはPermitPropagation(down)である場合に、
前記式(2)または、式(3)を満たす場合には冗長設定であるアクセス権制御規則を検出したと判定する手段と、
前記伝播規則が設定されていない場合に、式(4)を満たす場合には矛盾するアクセス権制御規則を検出したと判定する手段と、
を備える冗長ルール検出プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003422707A JP4545430B2 (ja) | 2003-12-19 | 2003-12-19 | アクセス権の矛盾・冗長ルール検出を行うアクセス制御システム及びそのコンピュータプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003422707A JP4545430B2 (ja) | 2003-12-19 | 2003-12-19 | アクセス権の矛盾・冗長ルール検出を行うアクセス制御システム及びそのコンピュータプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2005182478A JP2005182478A (ja) | 2005-07-07 |
JP4545430B2 true JP4545430B2 (ja) | 2010-09-15 |
Family
ID=34783499
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003422707A Expired - Lifetime JP4545430B2 (ja) | 2003-12-19 | 2003-12-19 | アクセス権の矛盾・冗長ルール検出を行うアクセス制御システム及びそのコンピュータプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4545430B2 (ja) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4874670B2 (ja) * | 2006-02-23 | 2012-02-15 | 株式会社エヌ・ティ・ティ・データ | ポリシー管理装置、ポリシー管理プログラムおよびポリシー管理方法 |
WO2008081648A1 (ja) * | 2007-01-05 | 2008-07-10 | Nec Corporation | アクセス権管理方法、アクセス権管理システムおよびアクセス権管理用プログラム |
EP2110744A4 (en) | 2007-02-05 | 2010-08-04 | Fujitsu Ltd | DIRECTIVE CHANGE PROCESSING PROGRAM, DIRECTIVE CHANGE PROCESSING METHOD AND DIRECTIVE MODIFICATION PROCESSING DEVICE |
JP4506837B2 (ja) * | 2008-01-15 | 2010-07-21 | 日本電気株式会社 | 権限譲渡装置、権限譲渡システム、権限譲渡方法及び権限譲渡プログラム |
JP2009193289A (ja) * | 2008-02-14 | 2009-08-27 | Nec Corp | アクセス権管理方法、アクセス権管理システム及びアクセス権管理用プログラム |
KR101317050B1 (ko) | 2009-03-18 | 2013-11-21 | 닛본 덴끼 가부시끼가이샤 | 폴리시 생성 및 변환 시스템, 폴리시 배부 시스템, 그 방법 및 컴퓨터 판독가능 기록 매체 |
CN102349078A (zh) | 2009-03-19 | 2012-02-08 | 日本电气株式会社 | 访问控制表转换系统及其方法和程序 |
JP5423424B2 (ja) | 2010-01-25 | 2014-02-19 | 富士ゼロックス株式会社 | アクセス権管理プログラム、アクセス権管理装置及びデータ処理システム |
KR101697301B1 (ko) * | 2016-08-29 | 2017-01-17 | 주식회사 넷앤드 | Dbms에 대한 보안을 강화하는 방법 및 시스템 |
CN108540427B (zh) * | 2017-03-02 | 2021-09-07 | 株式会社理光 | 冲突检测方法和检测设备、访问控制方法和访问控制装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003186708A (ja) * | 2001-12-20 | 2003-07-04 | Fujitsu Ltd | アクセス権矛盾検出装置および解析ルール作成装置 |
JP2005055998A (ja) * | 2003-08-07 | 2005-03-03 | Fuji Xerox Co Ltd | アクセス権設定装置、アクセス権設定方法、及びそのプログラム |
-
2003
- 2003-12-19 JP JP2003422707A patent/JP4545430B2/ja not_active Expired - Lifetime
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003186708A (ja) * | 2001-12-20 | 2003-07-04 | Fujitsu Ltd | アクセス権矛盾検出装置および解析ルール作成装置 |
JP2005055998A (ja) * | 2003-08-07 | 2005-03-03 | Fuji Xerox Co Ltd | アクセス権設定装置、アクセス権設定方法、及びそのプログラム |
Also Published As
Publication number | Publication date |
---|---|
JP2005182478A (ja) | 2005-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6647388B2 (en) | Access control system, access control method, storage medium and program transmission apparatus | |
JP5645034B2 (ja) | アクセス制御プログラム、システム及び方法 | |
US7827206B2 (en) | System and method for managing changes to business rules | |
US5689699A (en) | Dynamic verification of authorization in retention management schemes for data processing systems | |
JP4545430B2 (ja) | アクセス権の矛盾・冗長ルール検出を行うアクセス制御システム及びそのコンピュータプログラム | |
JP4747591B2 (ja) | 機密文書検索システム、機密文書検索方法、および機密文書検索プログラム | |
US7380267B2 (en) | Policy setting support tool | |
KR101751088B1 (ko) | 자원 속성에 기초한 자원 액세스의 제어 | |
US7574745B2 (en) | Information processing apparatus, information processing method, computer-readable medium having information processing program embodied therein, and resource management apparatus | |
US8122484B2 (en) | Access control policy conversion | |
US8601531B1 (en) | System authorization based upon content sensitivity | |
Yao et al. | Dynamic access control and authorization system based on zero-trust architecture | |
US7370344B2 (en) | Computer-implemented data access security system and method | |
US20080168529A1 (en) | System and method for security planning with soft security constraints | |
JPWO2011030455A1 (ja) | セキュア監査システム及びセキュア監査方法 | |
CN108292346A (zh) | 从静态权限和访问事件中提取物理访问控制策略 | |
CN107154925A (zh) | 用于授予访问权限的方法和装置 | |
Weippl et al. | Content-based Management of Document Access Control. | |
JPH06214863A (ja) | 情報資源管理装置 | |
JP4723930B2 (ja) | 複合的アクセス認可方法及び装置 | |
CN113641702B (zh) | 一种语句审计后与数据库客户端交互处理方法和装置 | |
JP2005332049A (ja) | ポリシ変換方法、ポリシ移行方法およびポリシ評価方法 | |
Costantino et al. | Analysis of data sharing agreements | |
Chen et al. | Coverage-Based Testing of Obligations in NGAC Systems | |
Boulares et al. | Insider threat likelihood assessment for flexible access control |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060213 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060317 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090915 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20091116 |
|
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: 20100622 |
|
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: 20100630 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130709 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 Ref document number: 4545430 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
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 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
EXPY | Cancellation because of completion of term |