JP2006012033A - 木構造データによるアクセス制御手段 - Google Patents

木構造データによるアクセス制御手段 Download PDF

Info

Publication number
JP2006012033A
JP2006012033A JP2004191425A JP2004191425A JP2006012033A JP 2006012033 A JP2006012033 A JP 2006012033A JP 2004191425 A JP2004191425 A JP 2004191425A JP 2004191425 A JP2004191425 A JP 2004191425A JP 2006012033 A JP2006012033 A JP 2006012033A
Authority
JP
Japan
Prior art keywords
access
access control
data
decision tree
tree structure
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2004191425A
Other languages
English (en)
Other versions
JP4793839B2 (ja
Inventor
Michiharu Kudo
道治 工藤
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP2004191425A priority Critical patent/JP4793839B2/ja
Priority to US11/168,911 priority patent/US7505976B2/en
Publication of JP2006012033A publication Critical patent/JP2006012033A/ja
Priority to US12/364,011 priority patent/US7853613B2/en
Application granted granted Critical
Publication of JP4793839B2 publication Critical patent/JP4793839B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Automation & Control Theory (AREA)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】 多数の複雑な条件を含むポリシーを設定しても、ポリシーを構成するデータベースのデータ量を極力少なくするデータ構造を備えたアクセス制御装置を提供する。
【解決手段】 本発明のアクセス制御装置は、データソースの部分へのアクセスを制御するポリシーの入力を受けて、これらのポリシーを記憶し、記憶したポリシーから、木構造データを生成し、この木構造データを合成し、記憶し、アクセスの可否の判定を行う場合には、この記憶した木構造データから、アクセスの可否を判定する。
【選択図】 図1

Description

本発明は、例えば、木構造データによるアクセス制御手段に関する。さらに詳しくは、ユーザがデータベース・サーバに記憶されたデータへアクセスする際の制御を行う手段およびその方法に関する。
従来より、処理を行うデータを取得するために、このデータが記憶されたデータベース・サーバへアクセスすることが行われている。この際、ユーザはクライアントとなるコンピュータ端末を使用し、LAN(Local Area Network)やインターネットを経由して、データベース・サーバへアクセスし、データを取得する。ここで記憶されるデータは、例えばXML(eXtensible Markup Language)やHTML(Hyper Text Markup Language)によって記述される。特に、XMLにて記述された文書は、XML文書と呼ばれる。XML文書は、その文書に対して情報を提供する者の意図に従った構造化を行うことができる構造化文書として知られている。このようなXML文書は、遺伝子のゲノム情報のような大規模なデータベースから、医療カルテのような小規模なデータベースまで幅広く使用されている。
ここで、データベースの管理者は、このXML文書に対して、あるユーザがデータベースにアクセスした場合に、このアクセスをユーザによっては拒否する設定を行う場合がある。例えば、病院の医療カルテのデータベース管理者は、患者が自らの医療カルテのデータにアクセスできないように規制する必要がある。
具体的には、例えば、ポリシーと呼ばれる規則を用いて、アクセス制御を行う方法が知られている。例えば、ユーザの名前や役職、部署等に基づいて決定される。
そして、このポリシーを用いて、Windows(登録商標)ファイルシステムが採用しているように、ファイルやフォルダごとにアクセス制御を行う。これにより、許可がないユーザやユーザのグループが、該当ファイルやフォルダにアクセスするのを防止できる。
しかしながら、あるユーザに対して、そのファイル内の一部の部分にのみアクセスを許可し、残る部分についてはアクセスを拒否するという制御が要請される場合がある。
例えば、医療カルテが一つのXML文書ファイルとして作成され、データベースに記憶されている場合を想定する。このとき、医師はカルテの情報の全てにアクセスできるが、インターン生は患者の診断情報にしかアクセスできないことが好ましい。しかし、上述のアクセス制御の方法では、ファイル単位にしかポリシーを設定できないため、そのXML文書の一部分のみについてアクセスを制御することはできない。
このような問題を解決する方法として、XML文書の内部構造単位でアクセスを可能にする制御装置が知られている(特許文献1)。特許文献1には、XML文書内にポリシーを組み込むことで、文書の内部構造単位でアクセス制御装置が示されている。特許文献1のXML文書は、データベースのデータそのものであるレコードと、そのレコード各々に対して設定されるポリシーとを含んでいる。ユーザがXML文書の一部分へアクセスした場合に、アクセス制御装置は、組み込まれたポリシーを読み込んでアクセスを制御する。
しかしながら、このアクセス制御装置は、データベースのレコードが多い場合には適当ではない。なぜなら、データベースのレコードが増えると、このレコードのアクセスを規制するポリシーも増え、XML文書が巨大化するからである。
例えば、遺伝子のゲノム情報ではXML文書のレコードのデータ量は、1ギガバイト以上のサイズになる場合がある。そのうえ、このXML文書に対して、企業や学術団体等の多数のユーザがアクセスする。そのため、アクセスする多数のユーザの各々に対して、ポリシーの設定を行う必要があり、ポリシーのデータ量は、膨大なデータ量になる。したがって、レコードのデータ量、ポリシーのデータ量ともに膨大になり、XML文書のファイルは巨大化する。
そこで、ポリシーをXML文書から分離し、データベース化する方法が知られている(非特許文献1)。非特許文献1には、ポリシーをテーブル型データベースで構成する方法が開示されている。テーブル型データベースとは、XML文書の特定の部分を指定するパス式と、このパス式に対応する条件とから構成される。条件とは、パス式で指定される部分へのユーザのアクセスの可否を判断するための条件である。ユーザがアクセスすると、アクセス制御装置が、このアクセス要求に対するパス式を算出する。そして、アクセス制御装置は、このパス式に対応した条件を、テーブルから読み出し、ユーザがこの読み出した条件に適合すれば、そのパス式で指定されたXML文書の部分にアクセスを許可する。
ところで、ポリシーが多数の複雑な条件で構成される場合がある。この複雑な条件とは、具体的には、AND条件あるいはOR条件の組み合わせにより構成される条件に加えて、以下に述べる、データベースから読み出したデータ値を用いて判断する条件である。
データ値を用いて判断する条件を含むポリシーは、例えば、医療カルテに活用される。すなわち、例えば、患者の病気の「悪性度」が40%以上であれば、この患者本人のアクセスを拒否するというポリシーを、アクセス制御装置に設定すると、患者本人が医療カルテのデータにアクセスした場合には、アクセス制御装置は、その患者本人の「悪性度」を確認するために、患者の「悪性度」データが記録されたデータ値を検索し、このデータ値を読み出す。この読み出されたデータ値を用いて、悪性度が40%以上か、それ以下であるかを判断し、40%以上であれば、アクセスを拒否し、40%以上であれば、アクセスを許可する。
以上のテーブル型データベースでは、テーブル全体を、アクセス制御装置のメモリ等の記憶装置に記憶する必要がある。しかしながら、テーブル型データベースは、以上のデータ値を用いる条件を含むポリシーに対して、多数のデータ値をデータ値のソースファイルから読み込むため、テーブルのデータ量が増加する。
このように、テーブル型データベースでは、データ値を用いる条件を含むポリシーを、データベースに設定する場合に、ハードウェア資源の有効利用が困難であった。そのため、このような多数の複雑な条件を含むポリシーを設定しても、ポリシーを構成するデータベースのデータ量を極力少なくするデータ構造が望まれていた。
特開2001−273285号公報 戚乃箴,工藤道治、「XMLデータベースのためのパステーブルを用いたアクセス制御モデル」、コンピュータセキュリティ研究会、情報処理学会、2003年11月14日
データソースへのアクセスを制御するアクセス制御装置であって、前記データソースの部分へのアクセスを制御する複数のポリシーが入力されると、これらのポリシーを記憶するポリシー記憶手段と、前記複数のポリシーから、複数の木構造データを生成するアクセス決定木生成手段と、前記複数の木構造データを合成するアクセス決定木合成手段と、この合成した木構造データを記憶するアクセス決定木記憶手段と、前記データソースの部分へのアクセスがあった場合には、前記合成した木構造データから、前記部分へのアクセスの可否を判定するアクセス判定手段とを含む、アクセス制御装置。
この発明によれば、アクセス制御装置は、データソースの部分へのアクセスを制御する複数のポリシーが入力されると、これらのポリシーを記憶し、記憶されたこれらのポリシーから複数の木構造データを生成する。そして、アクセス制御装置は、この生成した複数の木構造データを合成し、データソースの部分へのアクセスがあった場合には、前記合成した木構造データから、前記部分へのアクセスの可否を判定する。
ここで、木構造データとは、複数の条件から構成されるポリシーに対して、条件に対応するノードと、このノードを関連づけるリンクとで構成される。具体的には、アクセス決定木生成手段は、入力された全てのポリシーに対して、各ポリシーで共通した条件を抽出して、この共通する条件を上位ノードとし、共通しない条件を下位ノードとし、共通する上位ノードを合成する。これにより、上位ノードで表現される条件を共通として、下位ノードで表現される条件のみが異なる木構造データとなる。複数のポリシーの共通の条件を上位ノードに配置することにより、ポリシーのデータベースのデータ量を減少させ、ハードウェア資源を有効に活用することができる。
本発明の木構造データとは、複数の条件から構成されるポリシーに対して、条件に対応するノードと、このノードを関連づけるリンクとで構成される。具体的には、アクセス決定木生成手段は、入力された全てのポリシーに対して、各ポリシーで共通した条件を抽出して、この共通する条件を上位ノードとし、共通しない条件を下位ノードとし、共通する上位ノードを合成する。これにより、上位ノードで表現される条件を共通として、下位ノードで表現される条件のみが異なる木構造データとなる。複数のポリシーの共通の条件を上位ノードに配置することにより、ポリシーのデータベースのデータ量を減少させ、ハードウェア資源を有効に活用することができる。
以下に、本発明の好適な実施形態を図面に基づいて説明する。
図1に示すように、アクセス制御システム1は、複数のユーザ端末20と、これらのユーザ端末20と通信回線ネットワーク30を介して接続されるアクセス制御装置10と、同様に、通信回線ネットワーク30を介してアクセス制御装置10と接続されるデータソース・サーバ32と、アクセス制御装置10に直接に接続されるデータソース記憶手段31とを備えている。
ユーザ端末20は、図2に示すように、CRTディスプレイや液晶ディスプレイ等の表示手段21と、キーボードやテンキー、マウス等の入力手段22と、ハードディスク、メモリ等の記憶手段23と、CPU等の制御手段24と、通信回線ネットワーク30に接続されるネットワーク・カード等の通信手段25とを備えている。ユーザ端末20は、ユーザが、通信回線ネットワーク30を介して、データソースとなるデータへのアクセスを行うクライアント機能を備える。ユーザ端末20は、ユーザがデータソースの部分へのアクセスを行う場合に、このデータソースの部分への読み出し、書き込み、更新等のアクションを行うためのアクセス要求を送信する。ここで、ユーザ端末20は、コンピュータ端末であってもよいし、携帯情報端末であってもよい。
通信回線ネットワーク30は、アクセス制御装置10とユーザ端末20とを接続するネットワークである。通信回線ネットワーク30は、LAN(Local Area Network)であってもよいし、インターネットであってもよい。
データソース・サーバ32は、アクセス制御される対象となるXML文書等のデータソースが記憶されているデータベース・サーバ、及びコンピュータである。また、データソース・サーバ32は、通信回線ネットワーク30を介して、アクセス制御装置10に接続されているが、アクセス制御装置10に直接的に接続されていてもよい。データソースはファイルとして記憶されたXML文書等であってよく、データソースの部分とは、XML文書等のデータソースの一部の領域のことである。例えば、XML文書内のタグで囲まれた領域である。
データソース記憶手段31は、XML文書等のデータソースが記憶されている装置である。例えば、データソース記憶手段31は、ハードディスクのような記憶手段であってもよい。また、データソース記憶手段31は、図1に示すように、アクセス制御装置10の外部に設置されていてもよいし、アクセス制御装置10の内部に設置されていてもよい。
アクセス制御装置10は、図3に示すように、通信手段11と、ポリシー記憶手段16と、アクセス決定木生成手段12と、アクセス決定木合成手段14と、アクセス決定木記憶手段17と、アクセス判定手段13と、整合性検証手段15とを備えている。
通信手段11は、通信ネットワーク30に接続され、ユーザ端末20やデータソース・サーバ32と通信を行う。
ポリシー記憶手段16は、ユーザ端末20から通信回線ネットワーク30を介して入力されたポリシーを記憶する記憶装置である。
アクセス決定木生成手段12は、この記憶されたポリシーを用いて木構造データを生成する。木構造データの生成は、ポリシーの条件をノードとし、このノードに対応する値をリンクとして生成する。値とは、例えば、ユーザの属性(ユーザ名やグループ名、アクセスを行う部分のパス値)や、データソースから読み出す値(以下「データ値」)を用いる。
アクセス決定木生成手段12は、一つのポリシーから複数の条件と値とを分離し、分離した各々の条件と値とから、複数のノードとリンクとを生成し、ノード間をリンクにより結合する。さらに、アクセス決定木生成手段12は、次のポリシーに対して同様に木構造データを生成する。このとき、アクセス決定木生成手段12は、先に生成した木構造とは独立して木構造データを生成してもよいが、図12にて後述するように、先に生成した木構造データの上位ノードを使用して、そのノードから新たにリンクを形成することで木構造データを生成してもよい。
アクセス決定木生成手段12は、第1のアクセス決定木と第2のアクセス決定木とを生成する。第1のアクセス決定木とは、データソースから値を読み出すことで、アクセスの可否の判定が行われる条件(以下「データ値を用いる条件」)を含まない条件からなる木構造データである。例えば、第1のアクセス決定木は、データ値を用いる条件を一切含まないポリシーで生成される。また、データ値を用いる条件を含むポリシーであっても、第1のアクセス決定木は、このポリシーのうち、データ値を用いる条件以外の条件から生成される。第2のアクセス決定木とは、データ値を読み出すことで、データ値を用いる条件のみからなる木構造データである。第2のアクセス決定木は、後述する述語式の条件から生成されてもよい。
アクセス決定木合成手段14は、この生成された複数の木構造データのうち、ノードとリンクとが共通である部分を合成する。
アクセス決定木記憶手段17は、この合成した木構造データを記憶する。
アクセス判定手段13は、ユーザ端末20からのアクセス要求を受信した場合には、この記憶された木構造データから、要求されたデータソースの部分へのアクセスの可否の判定を行う。このアクセスの可否の判定とは、アクセス要求に対して、アクセスを行うユーザが、このアクセス要求のアクションを実行してもよいかを判断することである。
アクセス判定手段13は、判定の際に、データソースの部分を制御する条件が、当該データソース又は他のデータソースからデータ値を読み出す必要がある条件であるかを判断する。すなわち、アクセス判定手段13は、データ値を読み出す必要がある条件で制御された、データソースの部分へのアクセス(以下「データ値を用いる条件で制御された部分へのアクセス」)であるか、そうでないアクセスであるかを、ユーザのアクセス要求から判断する。データ値を用いる条件で制御された部分へのアクセスである場合には、アクセス判定手段13は、データ値を読み出し、この読み出したデータ値からアクセスの可否を判定する。
アクセス制御装置10の各手段が実行する具体的な動作を、図4のフローチャートを用いて説明する。
管理者はアクセス判定の基準となるポリシーを入力する(ステップS01)。管理者による入力は、ユーザ端末20から行われる。ポリシーは、アクセス制御装置10が表示手段と入力手段とを備えている場合には、アクセス制御装置10から入力手段を介して入力される。入力されたポリシーは、ポリシー記憶手段16に記憶される。
次に、アクセス決定木生成手段12が、第1のアクセス決定木を生成する(ステップS02)。この第1のアクセス決定木が、アクセス決定木記憶手段17に記憶される。入力された残りのポリシーに対しても同様に、アクセス決定木生成手段12が、第1のアクセス決定木を生成する。このようにして、生成された複数の第1のアクセス決定木を、アクセス決定木合成手段14が合成する(ステップS03)。
次に、アクセス判定手段13は、ユーザ端末20から、データソース記憶手段31またはデータソース・サーバ32に記憶されたデータソースへのアクセス要求を待つ(ステップS04)。アクセス要求を受信した場合には、第1のアクセス決定木から、アクセス判定手段13が、アクセス判定を実行する(ステップS05)。
そして、このアクセス判定の実行中に、このアクセス要求がデータ値を用いる条件で制御される部分へのアクセスであるかを、アクセス判定手段13が判断する(ステップS06)。
データ値を用いる条件で制御される部分へのアクセスではない場合には、アクセス判定手段13は、アクセス判定が終了であるかの判断を行う(ステップS15)。アクセス判定手段13は、アクセス判定が終了ではないと判断した場合には、さらに第1のアクセス決定木からアクセスの可否の判定を行う(ステップS05)。アクセス判定手段13が、アクセス判定が終了であると判断した場合には、整合性検証手段15が、決定したアクセスの整合性を検証する(ステップS12)。
ユーザからのアクセスが、データ値を用いる条件で制御される部分へのアクセスである場合には、アクセス決定木生成手段12は、第2のアクセス決定木を生成する(ステップS07)。第2のアクセス決定木は、データ値を用いる条件から生成される木構造データである。第2のアクセス決定木は、アクセス決定木記憶手段17に記憶される。
第2のアクセス決定木に対して、アクセスを判定するには、判定の指標となるデータ値を読み出す必要がある。アクセス判定手段13が、データソースから、このデータ値を読み出す(ステップS08)。アクセス判定手段13は、この読み出したデータ値を用いて、第2のアクセス決定木から判定を実行する(ステップS09)。アクセス判定手段13は、アクセス判定が終了であるかの判断を行う(ステップS10)。アクセス判定が終了でなければ、アクセス判定手段13は、さらにアクセス判定を行う(ステップS05へ戻る)。
アクセス判定が終了であれば、アクセス判定手段13が、決定したアクセスの整合性を検証する(ステップS12)。そして、アクセス判定手段13が、検証した判定結果を出力する(ステップS13)。この結果を用いて、ユーザ端末20が、データソース記憶手段31又は、データソース・サーバ32に記憶されたデータソースのある部分へのアクセスを実行する。
具体的なポリシーを入力した場合に、アクセス制御装置10が、各手段によって、どのように判定を行うかについて説明する。以下のポリシーを入力し、アクセス制御装置10が、アクセス判定を行う場合について説明する。
「Aliceは、人事情報を閲覧できるが、秘密情報は閲覧できない。Bobは、人事情報も秘密情報も閲覧できない」というポリシーが入力されたとする。このポリシーを単純化するため、以下の表1に示されたパス式言語により記述されたアクセス制御ポリシーを使用する。表1のパス式言語の一部は、XPath(XML Path Language)を用いることができる。
Figure 2006012033
パス式言語の説明をする。Subject-Typeは、Subjectが、どのような種類であるかを定める。例えば、Subject-TypeをUserIDとして、Subjectをユーザ名とすることが可能である。その他に、Subject-TypeをGroupとし、Subjectをグループ名とすることも可能である。また、Objectは、アクセス制御を行う対象である。実際にユーザがアクセスを行うデータソースの位置もしくは部分を示す。Objectで指定されるパス式の各要素を、パス値とする。Access-modeは、SubjectとObjectとの条件を満たした場合の、判定の内容である。判定の内容とは、例えば、アクセス許可、拒否、という内容であってもよいし、読み出すためのアクセス可能、又は拒否という内容でもよい。本実施例では、ユーザが閲覧する際の判定について説明するが、ユーザが書き込むためのアクセスの可否の判定や、更新するためのアクセスの可否の判定、削除するためのアクセスの可否の判定についても同様に適用される。
Access-modeの、+Rとは、Objectで指定する部分以下の階層のノード全てを閲覧可能であることを示す。これに対して、+rは、その階層のノードのみ閲覧可能であることを示す。Access-modeにて+Rを採用した場合には、上位ノードが全ての下位ノードのAccess-modeを決定することができる。
さらに、Access-modeは、必ずしも判定の結論でなくてもよい。例えば、データソースからのデータ値を用いてアクセスの可否を判断する条件の場合には、Access-modeは、データ値が満たすべき条件式であってもよい。このような条件式を述語式とする。述語式については図8を用いて後述する。
アクセス制御ポリシーは、1または複数のルールにより構成される。例えば、1のルールは、以下のように表される。
Figure 2006012033
上述のAliceとBobのポリシーは、アクセス制御ポリシーを使用すると以下の(式2)のように記述される。ここで、人事情報はXML文書内のパス/site/peopleに示されるところに位置し、秘密情報は、同様に/site/secretで示されるところに位置するとする。(式2)では、3つのルールをアクセス制御ポリシーで記述している。
Figure 2006012033
図5のアクセス決定木100は、このアクセス制御ポリシーを用いて生成された。図に示すように、アクセス決定木100は、ノードとその下に一つ以上のリンクから構成される。リンクとは、各ノードを接続した経路である。リンクは1つのノードから、3つ以上あってもよい。各ノードには、アクセスの可否の判定を行うための属性が設定される。
属性とは、あるノードから次のノードへ移る場合の判断指標である。属性は、例えば、Subject-Typeとpathである。すなわち、アクセス決定木100では、Subject-Typeが、UserIDであるため、UserIDが属性となる。次のノードでは、Objectの各pathが属性となる。
各属性に対するパス式の要素からリンクを作成する。そのリンク先にまた新たなノードを作成し、属性を割当てる。
ユーザからアクセスがあったときには、このアクセス要求から算出されたパス式の各要素と、各属性とを比較して判定を行う。例えば、Aliceが“/site/people/”にアクセスするために、アクセス判定手段13が、アクセス決定木100を使用して判定を行う場合を説明する。まず、アクセス判定手段13は、アクセス要求を受信し、このアクセス要求のパス式の要素を分離する。図5の場合、属性はUserIDとpath1とpath2であるため、これに対応するパス式の要素は“Alice”、“site“、“people”であることを、アクセス判定手段13が判断する。これらを比較してアクセス判定手段13が、判定を行い、アクセス決定木100のリンクを辿る。末端のノードはAccess-modeが“許可”で設定されているため、このアクセスは許可される。
また、Aliceが、“/site/people/emailaddress”に対するアクセスを要求した場合を想定する。“/site/people/emailaddress”は、“/site/people/”の階層構造の下位ノードである。Aliceは“/site/people/”に対して、人事情報の全ての情報を閲覧可能(+R)であるために、下位ノードである“/site/people/emailaddress”に対しても、閲覧が許可される。このように、木構造データの末端ノードのAccess-modeにて、下位のノードのアクセス判定を、上位ノードが決定することができる。
次に、アクセス制御ポリシーから、アクセス決定木を生成する方法について、詳細に述べる。ここでは一例として、アクセス決定木生成手段12が、Subjectに対するアクセス決定木を生成した後に、Objectに対するアクセス決定木を生成する場合について説明する。しかし、SubjectとObjectとのアクセス決定木を生成する順番は任意であってよい。
図6にて、Subject-TypeとSubjectに対するアクセス決定木を示した。ここでは、アクセス決定木生成手段12が、(式3)に表されるルールのアクセス決定木を生成した。Subject-Typeとして選択されたUserIDは、あるノードから次のノードへリンクする際に、どちらのノードを選択するか判断するための属性である。この属性に対して、木構造の分岐を行う要素として「Alice」や「Bob」によりリンク先が生成される。
Figure 2006012033
図7にて、Subjectに対するアクセス決定木の生成方法が、フローチャートとして示されている。アクセス決定木生成手段12は、木構造の元となるルートノードを生成する(ステップS20)。このルートノードに対して、アクセス決定木生成手段12が、Subject-Typeを割当て、(式3)のようなアクセス制御ポリシーから、Subject-Typeを選択し、ルートノードの属性とする(ステップS21)。さらに、アクセス決定木生成手段12が、アクセス制御ポリシーから、一つのSubject(例えばAlice)を選択し、これをリンクのための値とし、そのリンク先に新しいノードを作成する(ステップS22)。(式3)のように、アクセス制御ポリシーが複数のルールで構成され、Subject-Typeが同じである場合には(ステップS23)、次のSubject((式3)ではBob)を選択し、アクセス決定木生成手段12が、リンクの生成と新しいノードの生成を行う。ここで、Bobのリンクは、AliceのルールにてルートノードとしたUserIDのノードから接続するように作成される。さらに、アクセス決定木生成手段12は、作成した各ノードに、Objectのアクセス決定木へのリンクの生成を行う(ステップS24)。
このような接続によりBobのリンクを作成することなく、例えば、Bobのルールのために、UserIDのルートノードと、Bobのリンクと、このリンク先のノードとを新たに作成した後に、Aliceのルールから作成したアクセス決定木と、アクセス決定木合成手段14が合成してもよい。
次に、アクセス制御ポリシーからObjectに対するアクセス決定木を生成する。図8は、Objectに対するアクセス決定木210を示した。図8では、(式4)、(式5)に表されるルールの、Object部分のみを示した。Object部分は、(式4)では、「/a/b」であり、(式5)では、「/a/c[@x>100]」である。特に、(式5)のObject部分の[@x>100]は、述語式とする。
Figure 2006012033
述語式は、データ値をデータソースから読み出して、そのデータ値からアクセス制御を行う場合の判断式である。この述語式の条件を満たす場合には、このノードに設定されたAccess-modeの判定内容が採用される。つまり、(式5)の述語式では、アクセス判定手段13が、条件変数Xに対応するデータ値を、データソースから読み出し、このデータ値が100より大きい場合は、アクセスを許可するということを意味する。述語式の@マークは、述語式とObjectの要素との境界を示す印であり、他のマークを使用してもよい。
さらに、述語式は、XML文書から読み出したデータ値を、述語式内の変数と比較する算術式である。一つの述語式で、ANDやORにより2つ以上の条件を重ねてもよい。例えば、(a/b/[@x>100] AND /a/b/[@c=“abc”])のように、Xとcとの条件値を、データ値と比較して、アクセスの可否を判定する判断式とすることができる。
図9にて、Objectに対するアクセス決定木の生成方法をフローチャートとして示した。アクセス決定木生成手段12は、Objectのルートノードを生成し(ステップS31)、Objectに“//”が含まれているかを判断する(ステップS32)。Objectに“//”が含まれている場合には、“//”処理を行う(ステップS33)。“//”処理については、図11を用いて後述する。
Objectに“//”が含まれていない場合には、アクセス決定木生成手段12は、Objectを“/”で分離したObjectの各要素をパス値とし、パス値の階層を維持して記憶する(ステップS34)。例えば、/a/b/dというObjectは、a、b、dというパス値に分離され、Objectの最初がaであり、aの次にbその次にdという階層を維持して記憶される。
ノードの属性となるpathを区別するために整数iを用いる。アクセス決定木生成手段12は、i=1(ステップS35)とした後に、パス値をノードからリンクさせ新しいノードを作成し(ステップS36)、この新しいノードのパス値をpathiの値とする(ステップS37)。
さらに、アクセス決定木生成手段12は、次のパス値がNULL(次の要素がない)であるかを判断し(ステップS38)、NULLでなければ、さらに下位の階層のノードを生成するため、iに1を加えて(ステップS39)、ステップS36に戻る。アクセス決定木生成手段12が、次のObjectがNULLであると判断した場合は、ノードの末端となる末端ノードに対して、Access-modeを設定する(ステップS40)。Access-modeは、通常は、アクセス決定木生成手段12により、アクセスの許可、拒否が設定される。しかし、(式5)の場合には、Access-modeは、アクセスの許可、拒否が設定されることに加えて、このアクセスの許可、拒否のための条件となる述語式も設定される。
Figure 2006012033
(式6)で示したように、Objectに“//”を含む場合がある。この場合には、例えばAliceは、/a/c/の下にどんな階層があっても、その下の階層である/dにアクセスできる。すなわち、“//”は、3番目の階層がどんなパス値であっても、その下の/dに対してアクセス可能ということを意味する。
図10にて、(式6)をアクセス決定木250として示した。path2=“c”までは、上述のObject要素の分解によりノードが作成される。“//”に達した際に、新たなアクセス決定木を生成する。この新たなアクセス決定木は、3つのノードから構成され、値が“d”であるときにリンクするノードと、値が“NULL”であるときにリンクするノードと、値が“その他全て”であるときにリンクするノードとからなる。値が“その他全て”であるときにリンクするノードは、“その他全て”以外の値のどの値にも適合しない場合に選択される。値が“その他全て”の場合は、iの値に1を加えて、新しく生成されたアクセス決定木のルートノードに戻る。
“//”処理のフローチャートが、図11に示されている。アクセス決定木生成手段12は、Objectを“//”と“//”とで分離し、分離した各パス値の階層を維持して記憶し、“//”の前と後の階層を“/”と区別するためにマークする(ステップS51)。アクセス決定木生成手段12は、このマーキングから、“//”の前の階層のパス値であるかを判断する(ステップS53)。“//”の前の階層のパス値でなければ、上述した“/”のアクセス決定木の生成処理が行われる(ステップS57からステップS61まで)。“//”の前の階層のパス値であれば、新たなアクセス決定木の生成を行う(ステップS54)。アクセス決定木生成手段12は、新たなアクセス決定木と、もとのアクセス決定木とのリンクを生成し(ステップS55)、Access-modeを設定する(ステップS56)。
新たなアクセス決定木の生成では、図10に示すように“//”の後ろのパス値から生成されるノード(図10ではパス値“d”)と、パス値がNULLのノードと、パス値が“その他全て”のノードとを生成する。そして、アクセス決定木生成手段12は、“//”の後ろのパス値から生成されるノードには、そのルールが指定する判定の内容を設定し、NULLのノードには、適用不可を設定する。さらに、アクセス決定木生成手段12は、“その他全て”のノードには、iの値を1加える処理を行う設定と、この新たなアクセス決定木のルートノードへリンクを設定する。
アクセス決定木を生成する方法としては、Subjectに対する決定木と、Objectに対する決定木とを別々に作り、合成する方法であってもよいし、図12にて示すように、アクセス制御ポリシーを構成するルールを一つ一つ読み込み、すでに記憶されている他のアクセス決定木のノードとリンクとを使用してアクセス決定木を生成する方法であってもよい。後者の場合の方法の例として、(式7)から(式10)のルールからアクセス決定木を生成する場合を考える。
Figure 2006012033
アクセス決定木生成手段12は、(式7)から、Step1のアクセス決定木351を生成し、(式8)のルールを、Step1のアクセス決定木351のノードに接続し、Step2のアクセス決定木352を生成する。これより、2つのルール((式7)と(式8))が、path2までの判断条件を、共有することができる。この共有部分が多い場合には、複雑なObject指定(パス式)に対して、効率的なデータ構造を作成することが可能である。引き続いて、(式9)からStep3のアクセス決定木353が生成され、(式10)からStep4のアクセス決定木354が生成される。
複数のアクセス決定木で、このような共有部分が最大となるように、アクセス決定木生成手段12が、pathの順番を入れ替えてもよい。すなわち、木構造データの共有部分が最も多くなるように、ノードの配置を変えてもよい。複数の木構造データで共有部分が多い場合には、木構造データ全体のデータ量が減少するため、アクセス制御装置10のハードウェア資源を有効に活用できる。
以上の説明では、アクセス判定が行われる前に、既にアクセス決定木が生成され、記憶されているが、アクセス決定木の生成のタイミングは、アクセス判定の実行中であってもよい。すなわち、ユーザからのアクセス要求があったときに、アクセス決定木を生成し、記憶し、アクセス判定を行ってもよい。
次に、アクセス決定木生成手段12により生成されたアクセス決定木に対して、ユーザからのアクセス要求があった場合に行うアクセス判定について、さらに詳細に説明する。図13は、アクセス判定時のフローチャートである。
アクセス判定手段13は、アクセス要求を受けて、アクセス要求の要素(以下「アクセス要求要素」)を分ける(ステップS71)。つまり、アクセス判定手段13は、アクセス要求から、そのアクセスの属性をSubject-Type、Subject、各パス値で分離する。この分離されたアクセス要求要素を用いて、アクセス判定を行う。
まず、アクセス判定手段13は、アクセス決定木記憶手段17に記憶されたアクセス決定木のうちアクセス決定木を一つ選択する(ステップS72)。次に、アクセス判定手段13は、この選択されたアクセス決定木のSubject-Typeの値と、アクセス要求要素のSubject-Typeの値とを比較する。両方のSubject-Typeの値が一致した場合には、アクセス判定手段13は、アクセス決定木のSubjectの値とアクセス要求のSubjectの値に適合するリンクが存在するかを確認する(ステップS73)。
適合するリンクが存在しない場合には、アクセス判定手段13は、このアクセス決定木ではアクセス判定を行うことが不可能と判断する。この場合、アクセス判定手段13は、このアクセス決定木以外のアクセス決定木(以下「他のアクセス決定木」)が、アクセス決定木記憶手段17に記憶されているかを確認する(ステップS77)。他のアクセス決定木が、記憶されている場合には、アクセス判定手段13は、他のアクセス決定木に対して、ステップS72からの処理を行う。
一方、他のアクセス決定木が、記憶されていない場合には、適用不可となる(ステップS78)。適用不可の場合とは、このSubjectに対するポリシーがそもそも存在しない場合か、あるいは、このポリシーに関する新たなアクセス決定木を生成する必要が生じている場合かのどちらかである。したがって、管理者は、前者の場合には、アクセスを許可するように設定してもよい。後者の場合には、アクセス決定木生成の処理を行ってもよい。
該当するリンクが存在した場合には、アクセス判定手段13は、アクセス要求要素のObjectのパス値と、アクセス決定木のパス値とを比較して、アクセス決定木のリンクを辿る(ステップS75)。リンクが存在する場合には、アクセス判定手段13は、iに1を加えて、さらに、深い階層までリンクを辿る(ステップS76)。リンクが存在しない場合には、アクセス判定手段13は、ステップS79の判断を行う。
次に、アクセス判定手段13は、比較を行なっているアクセス決定木のノードが、末端ノードであるかを判断する(ステップS79)。末端ノードであれば、アクセス判定手段13は、ステップS80の判断を行う。末端ノードでない場合には、アクセス判定手段13は、このアクセス決定木ではアクセス判定を行うことが不可能と判断する。この場合、アクセス判定手段13は、他のアクセス決定木が、アクセス決定木記憶手段17に記憶されているかを確認する(ステップS77)。他のアクセス決定木が、記憶されている場合には、アクセス判定手段13は、他のアクセス決定木に対して、ステップS72からの処理を行う。他のアクセス決定木が、記憶されていない場合には、アクセス判定手段13は、適用不可と判断する(ステップS78)。
アクセス判定手段13は、アクセス決定木の末端ノードであると判断した場合には、アクセス判定の条件となる述語式が付随しているかを判断する(ステップS80)。
述語式が付随していない場合には、アクセス判定手段13は、Access-modeに設定された判定の内容により判定を決定する(ステップS82)。ここで判定の決定は、中間決定であってもよく、整合性検証手段15が、この決定に対してアクセスの整合性検証を行ってもよい。
述語式が付随している場合には、アクセス判定手段13は、判定の決定と共に、述語式を確認し、データ値を用いる条件のアクセス判定を行う(ステップS81)。
ここで、末端ノードまでリンクを辿れるアクセス決定木が、複数存在することがある。すなわち、アクセス決定木の各ノードにおける属性が同一であるが、異なるアクセス決定木としてアクセス決定木記憶手段17に記憶されている場合である。この場合には、判定の決定が複数存在する場合があるが、整合性検証手段15がこの複数の結果のうち、どの結果が妥当であるかを検証してもよい。
例として、「ユーザ:Aliceが、“/site/people/person/emailaddress”を読みたい」というアクセス要求を行った場合に、アクセス判定手段13が行う判定について説明する。アクセス判定手段13は、このアクセス要求を、Subject-Type、Subject、Objectに分解し、アクセス要求要素とする。アクセス要求要素を(式11)にて示した。
Figure 2006012033
アクセス判定手段13は、アクセス決定木記憶手段17に記憶されたアクセス決定木から、アクセス決定木を選択し、Subject-TypeがUserIDで適合し、SubjectがAliceのリンクが存在するか確認する。すなわち、アクセス決定木として図5のアクセス決定木100を選んだ場合には、Subject-Typeは、UserIDであって、SubjectがAliceなので、アクセス判定手段13は、アクセス決定木の左のリンクをたどる。次に、Objectの第一パス“path1”はsiteであり、これもリンクに適合する。第二パス“path2”はpeopleであり、左のリンクに適合する。このノードは、既に末端ノードであるので、末端ノードに設定された、アクセス判定である、“アクセス可”が判定される。もし、Aliceがアクセスするパスが“/site/secret/blacklist”に対してである場合には、“/site/secret”の下のノードはアクセス拒否と設定されているため、アクセス拒否が判定される。
次に、Objectが“//”を含む場合の判定について述べる。この場合であっても、“/”のみでObjectが構成される場合と同様に、アクセス決定木を選択してリンクを辿ることで判定が決定される。
例えば、(式12)と、(式13)とで表されるアクセス制御ポリシーを想定する。図14は、このルールに対して生成されたObjectのアクセス決定木300、301を示す。Aliceが、“/site/people/person/name/”にアクセスする場合を想定する。アクセス要求要素の、Objectの要素は、(式13)のようにパス値により表される。
Figure 2006012033
Figure 2006012033
アクセス判定手段13は、Subject:Aliceのノードを経て、path1のノードに到達する。次に、アクセス判定手段13は、パス値“site”で適合したリンクを辿り、path2から、“その他全て”リンクを辿り、アクセス決定木301にリンクする。i=2であるので、アクセス判定手段13は、path2を検証し、アクセス決定木301の“その他全て”リンクを辿り、iに1が加わった後に、再度、アクセス決定木301のルートノードに戻る。このときには、i=3となるので、アクセス判定手段13は、path3を検証し、“person”に適合するリンクが存在するので、このリンクをたどり”アクセス許可”の判定結果が得られる。
上述のステップS81のデータ値を用いたアクセス制御について説明する。上述のように述語式がない場合には、アクセス判定手段13は、述語式に関する処理を行うことなく、アクセス判定を行う。これに対して、述語式がある場合には、アクセス判定手段13はアクセス決定木生成手段12に、データ値を用いて条件を判断するアクセス決定木(以下「データ値を用いるアクセス決定木」)を生成するように指示を行い、その生成された「データ値を用いるアクセス決定木」を用いてアクセス判定を行う。既に、データ値を用いるアクセス決定木が生成され、アクセス決定木記憶手段17に記憶されている場合には、アクセス決定木生成手段12が、アクセス決定木を生成することなく、アクセス判定手段13が、この記憶されたアクセス決定木から、アクセス判定を行う。
述語式を含んだ場合のアクセス決定木の生成について述べる。(式15)から(式20)までは、各ルールの中から、述語式のみを示した式である。これらの式は、式の右側の述語式の条件を満たす場合に、式の左に記載した+R(許可)又は-R(拒否)を行うことを意味している。(式17)のように、“[”が2重になって述語式を構成する場合がある。(式17)の場合は、条件がORにより並列しているため、(式15)と(式18)とに分離することができる。(式17)のように明らかにORで分離できるような述語式でなくても、例えば、加法標準型(disjunctive normal form)を使用することで、分離することもできる。
Figure 2006012033
述語式の特定の部分の名称を以下に定義する。まず、条件式とは、述語式のANDで分離した各々の式である。例えば、(式15)の条件式とは、“@salary>10000”の式と“@band=6”の式の各々の式のことである。特に、[@salary>10000 and @band=6]のように“[”で囲まれた範囲に、条件式が複数ある場合は、この2つの条件式を“[”で囲まれた複数の条件式とする。また、条件変数とは、@の次の変数であり、この例では、“salary”と“band”とである。さらに、条件値とは条件変数の条件とデータ値とで構成される。この例では“>10000”と、“=6”とである。
データ値を用いるアクセス制御のフローチャートを、図15に示した。アクセス判定手段13は、述語式をORで分離し(ステップS91)、述語式の中に“[”が、複数含まれているかを判断する(ステップS92)。“[”が複数含まれている場合とは、例えば(式20)の場合である。このとき、分離された各々の条件式に対して、アクセス決定木生成手段12は、アクセス決定木を生成する(ステップS98)。
条件式が“[”内に一つであれば、その条件式に対してのみ、ステップS95からステップS97までが行われる。これに対して、“[”で囲まれた範囲に条件式が複数ある場合には、アクセス決定木生成手段12は、一の条件式を選択し、その条件式に対してアクセス決定木を生成する。この生成の後に、アクセス決定木生成手段12は、次の条件式を選択し、アクセス決定木を生成するというように、複数の条件式の各々に対して、アクセス決定木の生成を行う(ステップS97)。
さらに具体的に、一の“[”,“]”で囲まれるアクセス決定木の生成について説明する。アクセス決定木生成手段12が、ルートノードを生成する(ステップS94)。次に、アクセス決定木生成手段12は、条件変数をルートノードの条件判断とし(ステップS95)、条件変数の条件をノードからリンクさせ、新しいノードを作成する(ステップS96)。さらに、ANDやORで条件式が続く場合には、アクセス決定木生成手段12は、次の条件式のアクセス決定木生成を行う(ステップS97)。条件式が終了する場合には、アクセス決定木生成手段12は、末端のノードにアクセスの許可、拒否を設定する。
アクセス決定木生成手段12は、“[”にて、一の“[”が終了した場合には、次の“[”に対してアクセス決定木を生成する。このための判断をステップS98にて行う。全ての条件式に対して、アクセス決定木の生成が終了したときには、この生成したデータ値を用いるアクセス決定木のルートノードと、データ値を用いないアクセス決定木の述語式を含む末端ノードとをリンク付ける(ステップS99)。
アクセス制御ポリシーとして、「(式15)かつ(式19)」のように、2つのルールを設定する場合がある。この場合には、各々のルールに対して、各々のアクセス決定木を生成するため、ステップS90からステップS99までを繰り返す。
図16は、(式15)の前半の条件式(@salary > 10000)から生成したアクセス決定木360と、(式15)の後半の条件式(@band=6)から生成したアクセス決定木361を示す。この2つのアクセス決定木から、矢印の下のアクセス決定木362が合成により生成する。これは、前半の条件式(@salary > 10000)を示すノードとリンクとを、両方のアクセス決定木が含むために、アクセス決定木合成手段14が、上位ノードを合成した。このような合成を行うことで、アクセス決定木の上位ノードのデータ量が減少し、アクセス制御ポリシーのデータ量を減少することができる。
述語式がある場合のアクセス決定木では、アクセス判定手段13が、述語式のためのデータ値をデータソースから読み出す。このデータ値を読み出す処理が、図17のフローチャートにより図示されている。まず、アクセス判定手段13は、データ値をデータソースから読み出す(ステップS105)。
この読み出したデータ値と条件変数とを用いて、アクセス判定手段13は、このデータ値が適合するリンクが存在するかを判断する(ステップS106)。存在すると判断すれば、さらに下位のノードに進み(ステップS107)、さらにリンクが存在するか判断する。リンクが存在しないならば、アクセス判定手段13は、アクセス決定木の末端のノードに到達しているかを判断する(ステップS108)。末端ノードでなければ、条件式に対応するノードは存在しないため、アクセス判定手段13は、このアクセス決定木では、適用不可となる(ステップS110)。末端ノードであれば、末端ノードに設定されたAccess-modeから、アクセス判定手段13は、アクセスの許可、拒否の判定を行う(ステップS109)。
述語式がある場合の好適な実施例として、アクセス判定手段13が、図18のXML文書400からデータ値を読み出す場合を想定する。述語式が条件変数として@incomeと@ageとを含むため、アクセス判定手段13が、@incomeと@ageとのデータ値を、データソースから読み出す。アクセス制御ポリシーは、(式21)と(式22)とからなるポリシーとする。このポリシーでは、Subject-TypeがGroupである場合について考える。ここで、AliceとBobとは、WorkerというGroupに属しているため、アクセス決定木401が、Subject-TypeとSubjectに対するアクセス決定木として生成される。また、(式21)と(式22)とのObject部分からアクセス決定木401が、生成される。
Figure 2006012033
このようなアクセス決定木401、402は、データ値を読み出す必要がないアクセス決定木であり、通常はこのアクセス決定木を用いてアクセスの可否の判定が行われる。しかし、以下のように、データ値を用いる条件で制御されたデータソースの部分へのアクセス要求があった場合には、以下のようにデータ値を読み出してアクセスの可否の判定を行う。
「Workerに属する者が、/site/people/person/nameにアクセスできるか?」という判定を、アクセス制御装置10が要求されたと想定する。アクセス判定手段13は、アクセス決定木401、402を辿り、Objectのアクセス決定木403を辿る。
リンクを辿ることで、述語式が設定されたノードに、判定の実行が達した場合には、アクセス決定木生成手段12は、データ値を用いるアクセス決定木402を生成する。アクセス決定木生成手段12は、ルートノードを作成し、このルートノードの属性を、“[”の最初の条件変数であるprofileとする。条件変数profileの値は、どんな値でも構わないため、profileのノードに対しては、“その他全て”を属性の値とする。次に、“age>13”と“income<10000”との条件式に対して、アクセス決定木生成手段12は、ノードとリンクを作成する。これら条件式はANDにより、並列した条件になっているため、ノードの順番は、“age>13”のノードの後に“income<10000”のノードがあってもよいし、その逆でもよい。いずれにおいても、末端のノードには、アクセスの可否の判定として、アクセス決定木生成手段12がAccess-modeを設定する。
アクセス判定手段13は、データソースとなるXML文書400から、データ値を読み出す。このとき、XML文書400には、Workerに属するAliceとBobとのそれぞれにincomeとageとのデータ値が記述されている。従って、アクセス判定手段13が、AliceとBobとの両方のデータ値を読み出す。
読み出されたデータ値は、(式23)、(式24)のように表される。これより、ageが13より大きいという条件は、AliceもBobも満たす。しかし、incomeの条件式から、Aliceはincomeが15000であるために、アクセスが拒否され、Bobはincomeが5000であるため、アクセスが許可される。
Figure 2006012033
以上のように、(式22)で指定される部分への、データソースへのアクセス(Aliceによる/site/secretへのアクセス)であれば、アクセス決定木401、402を用いることで、アクセス判定手段13は、アクセスの可否の判定を行う。しかし、(式17)のように、述語式で指定される部分へのアクセス(Aliceによる/site/people/person)である場合には、アクセスの可否の判定のためにデータ値を読み出す必要が生じる。このときには、アクセス決定木403を生成して、その述語式で指定される部分へのアクセスの可否の判定を行う。
これにより、データ値を用いる条件をノードとする木構造データを常にアクセス判定のためのデータとしてメモリ等の記憶装置に記憶しておく必要がない。
なお、Objectのアクセス決定木402、403は、SubjectがAlice、Bob、Workerのいずれかであっても、兼用して使用することができる。すなわち、Subjectのアクセス決定木に依存しないで、Objectのアクセス決定木402、403を使用することができる。例えば、Subjectに対するアクセス決定木401のみならず、図6のSubjectに対するアクセス決定木200に、アクセス決定木402、403をリンクさせることも可能である。この場合には、アクセス決定木200とアクセス決定木401とが、アクセス決定木402、403を、共有することが可能である。
さらに、データ値を用いるアクセス決定木と、データ値を用いないアクセス決定木とを生成した後に、同一のノードとリンクを備える複数のアクセス決定木を、アクセス決定木生成手段12が、合成してもよい。アクセス決定木の合成のフローチャートを図19に示した。アクセス決定木生成手段12は、複数のアクセス決定木のうち、あるノードとリンクとが、他のアクセス決定木のノードとリンクと同一であるかを判断し(ステップS121)、各々が同一である場合には、アクセス決定木の合成を行なう(ステップS122)。アクセス決定木の生成と合成が終了後に、アクセス整合性検証手段15が、アクセスの整合性の検証を行なってもよい(ステップS123)。
加えて、データ値を用いるアクセス決定木が生成された後に、上位ノードとなるデータ値を用いないアクセス決定木と結合してもよい。
このような実施形態を実現するアクセス制御方法を、コンピュータやサーバにて実行するためのプログラムにより実現することができる。このプログラムのための記憶媒体としては、DVDやMO、PD等の光学記憶媒体、テープ媒体、半導体メモリ等が挙げられる。また、専用通信ネットワークやインターネットに接続されたサーバシステムに設けられたハードディスク又はRAM等の記憶装置を記憶媒体として使用し、ネットワークを介してプログラムを提供してもよい。
以上、本発明の実施形態を説明したが、具体例を例示したに過ぎず、特に本発明を限定しない。また、本発明の実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、本発明の実施形態に記載された効果に限定されない。
以上の実施形態によると、以下の各項目に示すアクセス制御装置、アクセス制御方法、およびそれを記録したコンピュータ読取可能記憶媒体が実現される。
(1) データソースへのアクセスを制御するアクセス制御装置であって、前記データソースの部分へのアクセスを制御する複数のポリシーが入力されると、これらのポリシーを記憶するポリシー記憶手段と、前記複数のポリシーから、複数の木構造データを生成するアクセス決定木生成手段と、前記複数の木構造データを合成するアクセス決定木合成手段と、この合成した木構造データを記憶するアクセス決定木記憶手段と、前記データソースの部分へのアクセスがあったことに応答して、前記合成した木構造データから、前記部分へのアクセスの可否を判定するアクセス判定手段とを含む、アクセス制御装置。
(2) (1)記載のアクセス制御装置において、前記アクセス決定木合成手段が、前記複数の木構造データの共通部分を抽出し、この抽出した共通部分を木構造の上位ノードに配置することによって、前記複数の木構造データを合成することを特徴とするアクセス制御装置。
(3) (2)記載のアクセス制御装置において、前記アクセス決定木合成手段が、前記複数の木構造データの共通部分が最大となるように合成することを特徴とするアクセス制御装置。
(4) (1)記載のアクセス制御装置において、前記アクセスの可否の判定があった後に、この判定の整合性を検証する整合性検証手段を含むことを特徴とするアクセス制御装置。
(5) (1)記載のアクセス制御装置において、前記アクセス判定手段は、前記データソースの部分へのアクセスがあったことに応答して、前記データソースからデータ値を読み出し、このデータ値を用いて、前記合成した木構造データから、アクセスの可否を判定することを特徴とするアクセス制御装置。
(6) (1)記載のアクセス制御装置において、前記データソースの部分が、パス式言語のパス式により指定されることを特徴とするアクセス制御装置。
(7) (6)記載のアクセス制御装置において、前記アクセス決定木生成手段は、前記データソースの部分へのアクセスを行うユーザの属性と、前記パス式とにより木構造データを生成することを特徴とするアクセス制御装置。
(8) (6)記載のアクセス制御装置において、前記パス式言語が、Xpathであることを特徴とするアクセス制御装置。
(9) データソースへのアクセスを制御するアクセス制御方法であって、前記データソースの部分へのアクセスを制御する複数のポリシーが入力されると、これらのポリシーを、アクセス制御装置が記憶するステップと、前記複数のポリシーから、アクセス制御装置が複数の木構造データを生成するステップと、前記複数の木構造データを、アクセス制御装置が合成するステップと、この合成した木構造データを、アクセス制御装置が記憶するステップと、前記データソースの部分へのアクセスがあったことに応答して、前記合成した木構造データから、アクセス制御装置が前記部分へのアクセスの可否を判定するステップとを含む、アクセス制御方法。
(10) (9)記載のアクセス制御方法において、前記合成するステップでは、前記アクセス制御装置が、前記複数の木構造データの共通部分を抽出し、この抽出した共通部分を木構造の上位ノードに配置することによって、前記複数の木構造データを合成することを特徴とするアクセス制御方法。
(11) (10)記載のアクセス制御方法において、前記合成するステップでは、前記アクセス制御装置が、前記複数の木構造データの共通部分が最大となるように合成することを特徴とするアクセス制御方法。
(12) (9)記載のアクセス制御方法において、前記アクセス制御装置が、前記アクセスの可否の判定があった後に、この判定の整合性を検証するステップを含むことを特徴とするアクセス制御方法。
(13) (9)記載のアクセス制御方法において、前記木構造データを生成するステップでは、前記データソースの部分へのアクセスを行うユーザの属性と、前記データソースの部分を指定するパス式とにより、前記アクセス制御装置が木構造データを生成することを特徴とするアクセス制御方法。
(14) (9)から(13)のいずれかに記載のアクセス制御方法を実行するプログラムを記録したコンピュータ読取可能記録媒体。
本発明は、データ量が多いデータソースに対して多くのユーザがアクセスするデータベース・マネージメント・システムに対して適用可能であるのみならず、データ量が多い複数のデータソースが物理的に異なるサーバ等に記憶され、これらのデータソースに対して多くのユーザがアクセスするデータベース・マネージメント・システムに対しても適用可能である。
本発明のアクセス制御システムのハードウェア構成を示す図である。 ユーザ端末のハードウェア構成を示す図である。 アクセス制御装置のハードウェア構成を示す図である。 アクセス制御装置の各手段が実行する動作を示すフローチャート図である。 アクセス決定木を用いてアクセス判定を行う実施例を示す図である。 Subjectに対するアクセス決定木を生成した実施例を示す図である。 Subjectに対するアクセス決定木を生成するためのフローチャート図である。 Objectに対するアクセス決定木を生成した実施例を示す図である。 Objectに対するアクセス決定木を生成するためのフローチャート図である。 Objectに“//”を含んだ場合のアクセス決定木の実施例を示す図である。 Objectに“//”を含んだ場合に、アクセス決定木を生成するためのフローチャート図である。 アクセス決定木を合成する順番を示す図である。 アクセス判定の処理の順番を示すフローチャート図である。 Objectに“//”を含んだ場合のアクセス判定を示す図である。 データ値を用いて制御される部分へのアクセスがあった場合の処理を示すフローチャート図である。 条件式からアクセス決定木を生成し、合成することを示す図である。 データ値を読み出す場合に、アクセス判定手段の処理を示したフローチャート図である。 データ値を用いない条件と、データ値を用いる条件とから生成したアクセス決定木と、使用されるXML文書を示した図である。 アクセス決定木の合成の処理の手順を示したフローチャート図である。
符号の説明
1 アクセス制御システム
12 アクセス決定木生成手段
13 アクセス判定手段
14 アクセス決定木合成手段
15 整合性検証手段
16 ポリシー記憶手段
17 アクセス決定木記憶手段

Claims (14)

  1. データソースへのアクセスを制御するアクセス制御装置であって、
    前記データソースの部分へのアクセスを制御する複数のポリシーが入力されると、これらのポリシーを記憶するポリシー記憶手段と、
    前記複数のポリシーから、複数の木構造データを生成するアクセス決定木生成手段と、
    前記複数の木構造データを合成するアクセス決定木合成手段と、
    この合成した木構造データを記憶するアクセス決定木記憶手段と、
    前記データソースの部分へのアクセスがあったことに応答して、前記合成した木構造データから、前記部分へのアクセスの可否を判定するアクセス判定手段とを含む、アクセス制御装置。
  2. 請求項1記載のアクセス制御装置において、
    前記アクセス決定木合成手段が、前記複数の木構造データの共通部分を抽出し、この抽出した共通部分を木構造の上位ノードに配置することによって、前記複数の木構造データを合成することを特徴とするアクセス制御装置。
  3. 請求項2記載のアクセス制御装置において、
    前記アクセス決定木合成手段が、前記複数の木構造データの共通部分が最大となるように合成することを特徴とするアクセス制御装置。
  4. 請求項1記載のアクセス制御装置において、
    前記アクセスの可否の判定があった後に、この判定の整合性を検証する整合性検証手段を含むことを特徴とするアクセス制御装置。
  5. 請求項1記載のアクセス制御装置において、
    前記アクセス判定手段は、前記データソースの部分へのアクセスがあったことに応答して、前記データソースからデータ値を読み出し、このデータ値を用いて、前記合成した木構造データから、アクセスの可否を判定することを特徴とするアクセス制御装置。
  6. 請求項1記載のアクセス制御装置において、
    前記データソースの部分が、パス式言語のパス式により指定されることを特徴とするアクセス制御装置。
  7. 請求項6記載のアクセス制御装置において、
    前記アクセス決定木生成手段は、前記データソースの部分へのアクセスを行うユーザの属性と、前記パス式とにより木構造データを生成することを特徴とするアクセス制御装置。
  8. 請求項6記載のアクセス制御装置において、
    前記パス式言語が、Xpathであることを特徴とするアクセス制御装置。
  9. データソースへのアクセスを制御するアクセス制御方法であって、
    前記データソースの部分へのアクセスを制御する複数のポリシーが入力されると、これらのポリシーを、アクセス制御装置が記憶するステップと、
    前記複数のポリシーから、アクセス制御装置が複数の木構造データを生成するステップと、
    前記複数の木構造データを、アクセス制御装置が合成するステップと、
    この合成した木構造データを、アクセス制御装置が記憶するステップと、
    前記データソースの部分へのアクセスがあったことに応答して、前記合成した木構造データから、アクセス制御装置が前記部分へのアクセスの可否を判定するステップとを含む、アクセス制御方法。
  10. 請求項9記載のアクセス制御方法において、
    前記合成するステップでは、前記アクセス制御装置が、前記複数の木構造データの共通部分を抽出し、この抽出した共通部分を木構造の上位ノードに配置することによって、前記複数の木構造データを合成することを特徴とするアクセス制御方法。
  11. 請求項10記載のアクセス制御方法において、
    前記合成するステップでは、前記アクセス制御装置が、前記複数の木構造データの共通部分が最大となるように合成することを特徴とするアクセス制御方法。
  12. 請求項9記載のアクセス制御方法において、
    前記アクセス制御装置が、前記アクセスの可否の判定があった後に、この判定の整合性を検証するステップを含むことを特徴とするアクセス制御方法。
  13. 請求項9記載のアクセス制御方法において、
    前記木構造データを生成するステップでは、前記データソースの部分へのアクセスを行うユーザの属性と、前記データソースの部分を指定するパス式とにより、前記アクセス制御装置が木構造データを生成することを特徴とするアクセス制御方法。
  14. 請求項9から13のいずれかに記載のアクセス制御方法を実行するプログラムを記録したコンピュータ読取可能記録媒体。
JP2004191425A 2004-06-29 2004-06-29 木構造データによるアクセス制御手段 Expired - Fee Related JP4793839B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2004191425A JP4793839B2 (ja) 2004-06-29 2004-06-29 木構造データによるアクセス制御手段
US11/168,911 US7505976B2 (en) 2004-06-29 2005-06-28 Access controller using tree-structured data
US12/364,011 US7853613B2 (en) 2004-06-29 2009-02-02 Access controller using tree-structured data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004191425A JP4793839B2 (ja) 2004-06-29 2004-06-29 木構造データによるアクセス制御手段

Publications (2)

Publication Number Publication Date
JP2006012033A true JP2006012033A (ja) 2006-01-12
JP4793839B2 JP4793839B2 (ja) 2011-10-12

Family

ID=35507327

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004191425A Expired - Fee Related JP4793839B2 (ja) 2004-06-29 2004-06-29 木構造データによるアクセス制御手段

Country Status (2)

Country Link
US (2) US7505976B2 (ja)
JP (1) JP4793839B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010211540A (ja) * 2009-03-10 2010-09-24 Fujitsu Ltd 記憶媒体、検索方法および検索装置
WO2011152468A1 (ja) * 2010-06-03 2011-12-08 株式会社 東芝 アクセス制御装置及び記憶媒体

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4284497B2 (ja) * 2003-01-29 2009-06-24 日本電気株式会社 情報共有方法、装置、およびプログラム
JP4301513B2 (ja) * 2004-11-26 2009-07-22 インターナショナル・ビジネス・マシーンズ・コーポレーション ポリシーを用いたアクセス制御効果の判定方法
US7764612B2 (en) * 2005-06-16 2010-07-27 Acme Packet, Inc. Controlling access to a host processor in a session border controller
FR2896602B1 (fr) * 2006-01-26 2008-06-06 Commissariat Energie Atomique Procede de gestion de documents electroniques
GB0612433D0 (en) * 2006-06-23 2006-08-02 Ibm Method and system for defining a hierarchical structure
US7610315B2 (en) * 2006-09-06 2009-10-27 Adobe Systems Incorporated System and method of determining and recommending a document control policy for a document
US20080082519A1 (en) * 2006-09-29 2008-04-03 Zentner Michael G Methods and systems for managing similar and dissimilar entities
JP4367958B2 (ja) * 2006-12-27 2009-11-18 インターナショナル・ビジネス・マシーンズ・コーポレーション データへのアクセスを制御する技術
JP2008165432A (ja) * 2006-12-27 2008-07-17 Fujitsu Ltd クエリ制御プログラム、クエリ制御装置およびクエリ制御方法
US9767273B2 (en) * 2008-11-26 2017-09-19 Red Hat, Inc. Reliably terminating processes in a system with confined execution environments
US8479256B2 (en) * 2008-11-26 2013-07-02 Red Hat, Inc. Merging mandatory access control (MAC) policies in a system with multiple execution containers
US8312043B2 (en) * 2008-11-26 2012-11-13 Red Hat, Inc. Isolating an execution container in a system with mandatory access control (MAC)
US8363831B2 (en) 2009-09-23 2013-01-29 Intel Corporation Method and apparatus for allowing software access to navigational data in a decrypted media stream while protecting stream payloads
US9578030B2 (en) 2011-02-07 2017-02-21 Tufin Software Technologies Ltd. Method and system for analyzing security ruleset by generating a logically equivalent security rule-set
US8806569B2 (en) 2011-02-07 2014-08-12 Tufin Software Technologies Ltd. Method and system for analyzing security ruleset by generating a logically equivalent security rule-set
US9917817B1 (en) * 2013-06-10 2018-03-13 EMC IP Holding Company LLC Selective encryption of outgoing data
RU2014143713A (ru) * 2014-10-30 2016-05-27 Общество с ограниченной ответственностью "1С" Способ автоматизированного управления разделением информационных объектов, хранящихся в одной базе данных (варианты)
US10204149B1 (en) * 2015-01-13 2019-02-12 Servicenow, Inc. Apparatus and method providing flexible hierarchies in database applications
CN110276039B (zh) * 2019-06-27 2021-09-28 北京金山安全软件有限公司 页面元素的路径生成方法、装置和电子设备
US20240146769A1 (en) * 2021-02-24 2024-05-02 Ab Initio Technology Llc Systems and methods for managing privileges in a data processing system
CN115967564B (zh) * 2022-12-23 2024-02-02 星环信息科技(上海)股份有限公司 一种数据内容防护方法和存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0969077A (ja) * 1995-07-03 1997-03-11 Sun Microsyst Inc コンピュータ・システム管理に階層的ポリシーを実施するためのシステム及び方法
JP2001273285A (ja) * 2000-03-27 2001-10-05 Mitsubishi Electric Corp 開示情報制御装置及び開示情報制御方法
JP2002091816A (ja) * 2000-09-08 2002-03-29 Internatl Business Mach Corp <Ibm> アクセス制御システム
JP2002111650A (ja) * 2000-09-29 2002-04-12 Nippon Telegr & Teleph Corp <Ntt> 暗号処理装置、方法、及びそのプログラムを記録した記録媒体
JP2003242123A (ja) * 2002-02-21 2003-08-29 Hitachi Ltd 合議型アクセス制御方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6466932B1 (en) * 1998-08-14 2002-10-15 Microsoft Corporation System and method for implementing group policy
US6366913B1 (en) * 1998-10-21 2002-04-02 Netscape Communications Corporation Centralized directory services supporting dynamic group membership
US20020016840A1 (en) * 2000-05-12 2002-02-07 Shai Herzog Applying recursive policy for scoping of administration of policy based networking
US7873649B2 (en) * 2000-09-07 2011-01-18 Oracle International Corporation Method and mechanism for identifying transaction on a row of data
US20020111934A1 (en) * 2000-10-17 2002-08-15 Shankar Narayan Question associated information storage and retrieval architecture using internet gidgets
US20030028495A1 (en) * 2001-08-06 2003-02-06 Pallante Joseph T. Trusted third party services system and method
US20050004924A1 (en) * 2003-04-29 2005-01-06 Adrian Baldwin Control of access to databases
US8417745B2 (en) * 2004-04-27 2013-04-09 American Express Travel Related Services Company, Inc. System and method for file services

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0969077A (ja) * 1995-07-03 1997-03-11 Sun Microsyst Inc コンピュータ・システム管理に階層的ポリシーを実施するためのシステム及び方法
JP2001273285A (ja) * 2000-03-27 2001-10-05 Mitsubishi Electric Corp 開示情報制御装置及び開示情報制御方法
JP2002091816A (ja) * 2000-09-08 2002-03-29 Internatl Business Mach Corp <Ibm> アクセス制御システム
JP2002111650A (ja) * 2000-09-29 2002-04-12 Nippon Telegr & Teleph Corp <Ntt> 暗号処理装置、方法、及びそのプログラムを記録した記録媒体
JP2003242123A (ja) * 2002-02-21 2003-08-29 Hitachi Ltd 合議型アクセス制御方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JPN6010059823, 村田真、戸沢晶彦、工藤道治、羽田知史, "電子情報通信学会技術報告.ISEC,情報セキュリティ 静的解析を用いたXMLアクセス制御", [online], 20030710, [検索日 2010.06.08]、インターネット, p.83−p.90, JP, 遮断法人電子情報通信学会 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010211540A (ja) * 2009-03-10 2010-09-24 Fujitsu Ltd 記憶媒体、検索方法および検索装置
WO2011152468A1 (ja) * 2010-06-03 2011-12-08 株式会社 東芝 アクセス制御装置及び記憶媒体
JP2011253450A (ja) * 2010-06-03 2011-12-15 Toshiba Corp アクセス制御プログラム及び装置
US8719950B2 (en) 2010-06-03 2014-05-06 Kabushiki Kaisha Toshiba Access control apparatus and storage medium

Also Published As

Publication number Publication date
US20090204616A1 (en) 2009-08-13
US7853613B2 (en) 2010-12-14
JP4793839B2 (ja) 2011-10-12
US20050289150A1 (en) 2005-12-29
US7505976B2 (en) 2009-03-17

Similar Documents

Publication Publication Date Title
JP4793839B2 (ja) 木構造データによるアクセス制御手段
US8793489B2 (en) Method and system for controlling data access to organizational data maintained in hierarchical
US8306999B2 (en) Computer-implemented systems, methods, and computer program product for providing row-level security in a database network
US8539575B2 (en) Techniques to manage access to organizational information of an entity
JP4892179B2 (ja) データ項目のためのゾーンベースのセキュリティ管理
WO2020081240A1 (en) Multi-tenant authorization
US20100262624A1 (en) Discovery of inaccessible computer resources
US20130332891A1 (en) Techniques to manage access to organizational information of an entity
JP2006155104A (ja) ポリシーを用いたアクセス制御効果の判定方法
JP4275772B2 (ja) データベースシステム、データ管理方法及びデータ管理用ソフトウェアを記録した記録媒体
JP2008547118A (ja) 異種アプリケーションのための統一権限付与
US20020095432A1 (en) Document management system
WO2007105098A2 (en) System and method for providing hiearchical role-based access control
AU2005201002B2 (en) Method and system for displaying and managing security information
Marxer et al. Schematized access control for data cubes and trees
JP2011081642A (ja) 検索サーバ、情報検索方法、プログラムおよび記憶媒体
CN101794312A (zh) 基于安全视图的xml访问控制方法
JP2009087230A (ja) 情報処理装置、情報処理システム、及びプログラム
US20050086213A1 (en) Server apparatus, information providing method and program product therefor
JP2005004549A (ja) ポリシーサーバ、そのポリシー設定方法、アクセス制御方法、プログラム
Solanki et al. Resource and role hierarchy based access control for resourceful systems
JP4723930B2 (ja) 複合的アクセス認可方法及び装置
JP3565481B2 (ja) コンピュータのディレクトリアクセス制御システム及び方法
JP2009110241A (ja) 電子ファイル管理装置
JP7418238B2 (ja) 情報処理装置、情報処理方法、及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070622

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101019

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101224

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110405

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110607

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

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20110713

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110721

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20140805

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees