Title: A FineGrained Access Control System for XML Documents
1A Fine-Grained Access Control System for XML
Documents
- Chen Yang
- imchy_at_is.pku.edu.cn
- 2005?5?27?
2- Ernesto Damiani, Sabrina De Capitani Di
Vimercati, Stefano Paraboschi, and Pierangela
Samarati, A Fine-Grained Access Control System
for XML Documents, ACM Transactions on
Information and System Security, Vol. 5, No. 2,
May 2002, Pages 169-202.
3Contents
- Introduction
- Preliminary Concepts
- Authorization Subjects
- Authorization Objects
- Access Authorization Specifications
- Requester's View On Documents
- Supporting Write Actions
- Software Architecture
- Conclusions
4Introduction
- Different approaches have been proposed that
address the problem of protecting information in
a Web system, but these approaches typically
operate at the file-system level. - Part of this problem is due to the limitations of
HTML, historically used to design Web documents.
5Introduction
- The extensible markup language (XML) is de facto
the standard language for the exchange of
information on the Internet and represents an
important opportunity to provide fine-grained
access control. - XML, XSL, XLink, XPath
- This paper exploits XMLs own capabilities to
define and implement an authorization model for
regulating access to XML documents.
6Introduction
- The rationale for their approach is defining an
XML markup for a set of security elements
describing the protection requirements of XML
documents. - This security markup can be used to provide both
instance and schema-level authorizations at the
granularity of XML elements.
7Introduction
- The enforcement of the requirements stated by the
authorizations produces a view of the documents
for each requester the view includes only the
information that the requester is entitled to
see.
8Contents
- Introduction
- Preliminary Concepts
- Authorization Subjects
- Authorization Objects
- Access Authorization Specifications
- Requester's View On Documents
- Supporting Write Actions
- Software Architecture
- Conclusions
9Preliminary Concepts
10Preliminary Concepts
11Preliminary Concepts
12Preliminary Concepts
13Contents
- Introduction
- Preliminary Concepts
- Authorization Subjects
- Authorization Objects
- Access Authorization Specifications
- Requester's View On Documents
- Supporting Write Actions
- Software Architecture
- Conclusions
14Authorization Subjects
- Subjects requesting access are characterized by a
triple ltuser-id, IP-address, sym-addressgt. - e.g., ltchenyang, 162.105.70.202, is.pku.edu.cngt
15Authorization Subjects
- Their model also supports user groups and
location patterns. - A group is a set of users defined at the server.
- Groups do not need to be disjoint and can be
nested. - A location pattern is an expression identifying a
set of physical locations. () - e.g., 162.105.. or 162.105., .pku.edu.cn
16Authorization Subjects
- Definition Hierarchy. A hierarchy is a triple (X,
Y, ), where is a partial order on Y, called
the dominance relation, and X Y is the set of
minimal elements of Y with respect to the partial
order.
17Authorization Subjects
- A user-group hierarchy UGH (U, UG, UG), where
U is a set of user identifiers and UG U?G, with
G a set of group names in which users are
organized. Given two elements x, y ? UG, x UG y
if and only if x is a member of y. In most
practical applications the hierarchy is rooted at
a group, called Public or Any, to whom everybody
(directly or indirectly) belongs.
18Authorization Subjects
- An IP hierarchy IPH (I, IP, IP), where I is a
set of completely specified numerical addresses
and IP is a set of IP patterns. Given two
elements x, y ? IP, x IP y if and only if each
component of y is either the wild card character
or is equal to the corresponding (positionwise
from left to right) component of x.
19Authorization Subjects
- A symbolic name hierarchy SNH (S, SN, SN),
where S is a set of completely specified symbolic
names and SN is a set of symbolic name patterns.
Given two elements x, y ? SN, x SN y if and only
if each component of y is either the wild card
character or is equal to the corresponding
(positionwise from right to left) component of x.
20Authorization Subjects
21Authorization Subjects
- User-group hierarchies are arbitrary DAGs, and IP
and symbolic name hierarchies are necessarily
trees. - Only the user-group hierarchy needs to be
explicitly defined and stored at the server (or
retrieved at access control time).
22Authorization Subjects
- We allow the specification of authorizations with
reference to both user/group and location, not
only to one of them.
23Authorization Subjects
- Definition Authorization subject hierarchy. The
authorization subject hierarchy is a hierarchy
ASH (R, AS, AS), where R ltUISgt, AS
ltUGIPSNgt, and ltugi, ipi, snigt AS ltugj, ipj,
snjgt , if and only if ugi UG ugj, ipi IP ipj,
and sni SN snj.
24Authorization Subjects
- Authorizations can be defined with reference to
any of the elements of ASH. - e.g.
- ltchenyang, , gt
- ltPublic, 162.105.70.202, gt
- ltchenyang, ,is.pku.edu.cngt
25Contents
- Introduction
- Preliminary Concepts
- Authorization Subjects
- Authorization Objects
- Access Authorization Specifications
- Requester's View On Documents
- Supporting Write Actions
- Software Architecture
- Conclusions
26Authorization Objects
- URI path expressions
- Definition Path expression. A path expression on
a document tree is a sequence of element names or
predefined functions separated by character /
(slash) l1/l2//ln. Path expressions may
terminate with an attribute name as the last term
of the sequence. Attribute names are
syntactically distinguished by preceding them
with special character _at_.
27Authorization Objects
- absolute or relative
- path expression may contain "." or ".." or "//"
- /department//leader
- path expressions may also include functions
- The name of a function and its arguments are
separated by a double colon . - research/ancestordepartment
- ps/attributexlinkhref
- /department/childmedical staff//city
28Authorization Objects
29Authorization Objects
- The syntax for XPath expressions also permits us
to associate conditions with the nodes of a path. - Conditional expressions may be combined via and
and or operators to build Boolean expressions.
30Authorization Objects
- e.g.
- /department/research/project/publications/psposit
ion()1 - /department./_at_name "Medicine" and ./division
"Cardiology"/medical staff/nurse - /department/research/project./_at_type"public"1
31Contents
- Introduction
- Preliminary Concepts
- Authorization Subjects
- Authorization Objects
- Access Authorization Specifications
- Requester's View On Documents
- Supporting Write Actions
- Software Architecture
- Conclusions
32Access Authorization Specifications
- Basic Features of the Access Authorizations
- granularity from DTD (meaning the set of its
instances) to single elements/attributes within
individual documents - authorizations can be positive or negative
- local/recursive authorizations
- authorizations propagate until overridden by an
authorization on a more specific object
33Access Authorization Specifications
- Basic Features of the Access Authorizations
- (organization) DTD-level, (site) DTD-level,
instance-level - "most specific takes precedence" principle
- allow users to specify instance-level
authorizations as soft and DTD-level
authorizations as hard
34Access Authorization Specifications
- The priority order from the highest to the
lowest is LDH, RDH, L, R, LD, RD, LS, and RS
35Access Authorization Specifications
- Access Authorizations
- Definition Access Authorization. An access
authorization a ? Auth is a five-tuple of the
form ltsubject, object, action, sign, typegt,
where - subject ? AS is the subject to whom the
authorization is granted - object is either a URI in Obj or is of the form
URIPE - action read is the action being authorized or
forbidden - sign ? , - is the sign of the authorization
- type ? LDH, RDH, L, R, LD, RD, LS, RS is the
type of the authorization
36Access Authorization Specifications
37Access Authorization Specifications
- Example
- Hospital's policy (organization DTD-level)
- Department and division names are publicly
accessible. a-b - Information about the name and home address of
medical staff and of patients must be accessible
to the members of Administrative group connected
from domain .hospital.com. c-d - Information about the salary of the medical staff
and the cost of the therapy of all patients of
the hospital must be accessible to the members of
group Administrative connected from host
159.101.80.5. e-f Everybody else must be
explicitly forbidden access to this information.
g-h
38Access Authorization Specifications
- Example
- department's policy (site DTD-level)
- Information about medical staff working in the
Medicine department with exception of their
salary and home address, is publicly accessible.
i-j-k - Information about patients hospitalized in a
given division is accessible only to the
physicians working in the same division. m-n - Information about the research activity of the
Medicines divisions is accessible only to the
medical staff of the hospital. o-p
39Access Authorization Specifications
- Example
- division's policy (instance level)
- Information about private projects of the
Cardiology division is accessible to the
physicians working in the Cardiology division
when connected from network 159.. q No one
else can access information about private
projects. r - Information about patients illnesses is
accessible to nurses of the Cardiology division
unless otherwise stated at the DTD level. s - Information about name, drug, and room of
patients hospitalized in the Cardiology division
is accessible to the members of NurseC group.
t-u-v
40Contents
- Introduction
- Preliminary Concepts
- Authorization Subjects
- Authorization Objects
- Access Authorization Specifications
- Requester's View On Documents
- Supporting Write Actions
- Software Architecture
- Conclusions
41Requester's View On Documents
- Document Tree Labeling
- this paper associates with each node n an array,
n.veclabel, of eight components - t?LDH,RDH,L,R,LD,RD,LS,RS
- n.veclabelt.sign , - or e
- n.veclabelt.Allowed
- n.veclabelt.Denied
- n.finlabel
42Requester's View On Documents
43Requester's View On Documents
- conflict resolution policy
- most specific subject takes precedence
- denials take precedence
- permissions take precedence
- nothing takes precedence
- This paper combines two conflict resolution
policies. - most specific subject/denials take precedence
44Requester's View On Documents
45Requester's View On Documents
46Requester's View On Documents
- the three values , -, and e are interpreted as
values of three-valued logic of Lukasiewicz - e is mapped to 0 (false)
- is mapped to 1 (true)
- - is mapped to ½ (indeterminate)
- n.veclabelt.sign ? (-n.veclabelt.sign ?
p.veclabelt.sign) - n.veclabelt.sign ? p.veclabelt.sign
- masklocal sets to e the sign field of components
LDH, L, LD, and LS.
47Requester's View On Documents
48Requester's View On Documents
49Requester's View On Documents
- The pruned document may be not valid with respect
to the DTD referenced by the original XML
document. - To avoid this problem, a loosening transformation
is applied to the DTD. - Loosening a DTD simply means to define as
optional all the elements and attributes marked
as required in the original DTD.
50Requester's View On Documents
51Requester's View On Documents
- performance
- authorization objects
- XPath
- exponential time for the evaluation of path
expressions - several works identify restrictions on XPath that
reduce its complexity characteristics - Buneman et al. 2000
- Deutsch and Tannen 2001
- Mendelzon and Wood 1995
52Requester's View On Documents
- performance
- the evaluation of node labels
- InitialLabel linear in the number of
authorizations associated with the document - GetFinalLabel and Prune linear in the number of
nodes in the document - SetLabel quadratic in the highest number of
authorizations of a given type that are
associated with the node - It is, however, legitimate to assume the number
of such authorizations to be very small, and
limited by a reasonable constant, making the
SetLabel method also linear in the number of
nodes in the document.
53Contents
- Introduction
- Preliminary Concepts
- Authorization Subjects
- Authorization Objects
- Access Authorization Specifications
- Requester's View On Documents
- Supporting Write Actions
- Software Architecture
- Conclusions
54Supporting Write Actions
- insert, delete, and update
- Insert operations are evaluated by executing the
labeling process on the document with the new
node inserted. - positive ?insert successfully
- negative ? remains unchanged
- Deletion of a node is permitted only if the
labeling of the document produces a final
positive label for the node to be deleted.
55Supporting Write Actions
- Updates are evaluated by executing the labeling
process on both the existing document and on the
document that results from the execution of the
update. - if the final label associated with the node being
updated is positive in both versions the
operation is completed successfully - otherwise it is rejected
56Supporting Write Actions
- When the XML document is modified, the system
must also check the correctness of the document
with respect to the DTD and, if the document is
not valid, the write must not be accepted. - write requests often refer to sets of nodes
(typically a subtree in the document) - a transactional mechanism based on the deferral
of controls
57Contents
- Introduction
- Preliminary Concepts
- Authorization Subjects
- Authorization Objects
- Access Authorization Specifications
- Requester's View On Documents
- Supporting Write Actions
- Software Architecture
- Conclusions
58Software Architecture
59Software Architecture
- Parsing
- the syntax check
- obtain an object-oriented document graph
according to the DOM format - Compute view
- Compute-view algorithm
- Unparsing
60Software Architecture
- The Java Implementation
- http//seclab.dti.unimi.it/xml-sec
- DOM API IBMs XML4J processor
61Contents
- Introduction
- Preliminary Concepts
- Authorization Subjects
- Authorization Objects
- Access Authorization Specifications
- Requester's View On Documents
- Supporting Write Actions
- Software Architecture
- Conclusions
62Conclusions
- The access control system proves simple and of
easy integration with existing applications. - future work
- the consideration of requests in the form of
generic queries - extension of the model to role- and
credential-based authorizations - the investigation of performance optimizations