11.07.2015 Views

Designing Fast and Scalable XACML Policy Evaluation Engines

Designing Fast and Scalable XACML Policy Evaluation Engines

Designing Fast and Scalable XACML Policy Evaluation Engines

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

IEEE TRANSACTIONS ON COMPUTERS, MANUSCRIPT ID XXXX 4any application. The idea is similar to logical expressionnormalization. <strong>Policy</strong> normalization has two major benefits.First, we will choose a normal form that has a simple logicalstructure. This simplifies the task of developing efficient policyevaluation algorithms. Second, policy normalization enablesthe reuse of policy evaluation algorithms. That is, to apply ourpolicy evaluation algorithms to a policy from any language,we simply convert that policy to its corresponding normalizedform. The policy normal form that we propose is a sequence ofrange rules, which we call the sequential range rule representation.The format of a range rule is〈predicate〉 → 〈decision〉.A request has z attributes F 1 ,···,F z , where the domain ofeach attribute F i , denoted D(F i ), is a range of integers. The〈predicate〉 defines a set of requests over the attributes F 1through F z . The 〈decision〉 defines the action (permit ordeny) to take upon the requests that satisfy the predicate. Thepredicate of a rule is specified as F 1 ∈ S 1 ∧ ··· ∧ F z ∈ S zwhere each S i is a range of integers <strong>and</strong> S i is a subset of thedomain of F i . The semantics of a sequence of rules followsFirst-Applicable (i.e., first-match); that is, the decision for arequest is the decision of the first rule that the request matches.To serve as a security policy, a sequence of range rules mustbe complete (i.e., for any valid request there is at least onematching rule). Fig. 3(b) shows a sequence of range rules.To further facilitate the development of fast policy evaluationalgorithms, we propose to convert our normalized policiesto a canonical representation. Our canonical representation ofa policy is a reduced <strong>Policy</strong> Decision Diagram (similar toa firewall decision diagrams [13], [14]). A <strong>Policy</strong> DecisionDiagram (PDD) with a decision set DS <strong>and</strong> over attributesF 1 ,···,F z is an acyclic <strong>and</strong> directed graph that has thefollowing five properties: (1) There is exactly one node that hasno incoming edges. This node is called the root. The nodesthat have no outgoing edges are called terminal nodes. (2)Each node v has a label, denoted F(v). If v is a nonterminalnode, then F(v) ∈ {F 1 ,···,F z }. If v is a terminal node,then F(v) ∈ DS. (3) Each edge e:u → v is labeled witha nonempty set of integers, denoted I(e), where I(e) is asubset of the domain of u’s label (i.e., I(e) ⊆ D(F(u))). (4)A directed path from the root to a terminal node is called adecision path. No two nodes on a decision path have the samelabel. (5) The set of all outgoing edges of a node v, denotedE(v), satisfies the following two conditions: (a) consistency:I(e)∩I(e ′ ) = ∅ for any two distinct edgese <strong>and</strong>e ′ inE(v); (b)completeness: ⋃ e∈E(v)I(e)=D(F(v)). Fig. 9 shows a PDD.The first step in policy normalization is numericalization.The process of <strong>XACML</strong> policy numericalization is to convertthe strings in an <strong>XACML</strong> policy into integer values. <strong>Policy</strong> numericalizationenables our <strong>XACML</strong> policy evaluation engineto use efficient integer comparison, instead of inefficient stringmatching, in processing <strong>XACML</strong> requests. The process of<strong>XACML</strong> policy normalization is to convert an <strong>XACML</strong> policywith a hierarchical structure into an equivalent policy with aflat structure <strong>and</strong> at the same time to convert an <strong>XACML</strong>policy with four rule/policy combining algorithms into anequivalent policy with only one rule combining algorithm,which is First-Applicable. <strong>Policy</strong> normalization enables our<strong>XACML</strong> policy evaluation engine to process an <strong>XACML</strong>request without comparing the request against all the rulesin an <strong>XACML</strong> policy.There are many technical challenges in <strong>XACML</strong> policynormalization <strong>and</strong> canonical representation: non-integer values,recursive specification, scattered predicates, multi-valuedrules, multi-valued requests, all-match to first-match conversion,unifying rule/policy combining algorithms, complex<strong>XACML</strong> functions, <strong>and</strong> indeterminate evaluation. Next, foreach challenge, we formulate the problem, present our solution,<strong>and</strong> give an example. Fig. 2 shows the notations used inthe paper.S Subject R ResourceA Action p decision permitd decision deny na decision NotApplicableX an <strong>XACML</strong> policy or X ′ normalization result of Xpolicy set R i a rule in an <strong>XACML</strong> policyA X’s combining algorithm F i an attributer i a range rule v a node in a PDDD(F i) domain of attribute F i F(v) label of node ve an edge in a PDD e.t the node that edge eI(e) label of edge e points toP a decision path in a PDD V a node in a structure treeQ a request O(Q) the set of all <strong>XACML</strong>F(Q) the first original <strong>XACML</strong> rules that Q matchesrules that Q matches OB an origin blockFig. 2: Summary of notationsA. <strong>XACML</strong> <strong>Policy</strong> NumericalizationProblem: In sequential range rules, the constraints on eachattribute are specified using integers. However, in <strong>XACML</strong>rules, the constraints on each attribute are specified usingASCII strings.Solution: For each attribute (typically subject, resource, oraction), we first map each distinct value of the attribute thatappears in an <strong>XACML</strong> policy to a distinct integer, <strong>and</strong> all themapped integers of that attribute should form a range. Afternumericalizing every rule in an <strong>XACML</strong> policy, we add ruleR −1 : true → NotApplicable as the last rule to make thesequence of range rules complete. We denote this last rule asR −1 for distinguishing it from the original <strong>XACML</strong> rules.Example: Taking the policy in Fig. 1 as an example, wemap each distinct attribute value to a distinct integer as shownin Fig. 3(a). The converted rules after mapping are shown inFig. 3(b). Note that d denotes deny, p denotes permit, <strong>and</strong> nadenotes NotApplicable.Subject Resource ActionStudent: 0Secretary: 1Professor: 2Lecturer: 3Grades: 0Records: 1Change: 0Read: 1R 1 : S ∈ [0,1] ∧ R ∈ [0,0] ∧ A ∈ [0,0] → dR 2 : S ∈ [1,3] ∧ R ∈ [0,1] ∧ A ∈ [0,1] → pR 3 : S ∈ [0,0] ∧ R ∈ [1,1] ∧ A ∈ [0,1] → pR −1 : S ∈ [0,3] ∧ R ∈ [0,1] ∧ A ∈ [0,1] → naFig. 3: Numericalization table for the <strong>XACML</strong> policy in Fig. 1 <strong>and</strong>the numericalized rulesB. Recursive SpecificationProblem: A policy of the sequential range rule representationhas a flat structure as a sequence of rules. However,an <strong>XACML</strong> policy is specified recursively <strong>and</strong> therefore hasa hierarchical structure. In <strong>XACML</strong>, a policy set contains asequence of policies or policy sets, which may further containpolicies or policy sets.Solution: We parse <strong>and</strong> model an <strong>XACML</strong> policy as atree, where each terminal node represents an individual rule,each nonterminal node whose children are all terminal nodesrepresents a policy, <strong>and</strong> each nonterminal node whose childrenare all nonterminal nodes represents a policy set. Because thistree represents the structure of the <strong>XACML</strong> policy, we call it(a)(b)

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!