Skip to content

Advertisement

  • Research
  • Open Access

Inconsistency resolving of safety and utility in access control

EURASIP Journal on Wireless Communications and Networking20112011:101

https://doi.org/10.1186/1687-1499-2011-101

Received: 14 November 2010

Accepted: 18 September 2011

Published: 18 September 2011

Abstract

Policy inconsistencies may arise between safety and utility policies due to their opposite objectives. In this work we provide a formal examination of policy inconsistencies resolution for the coexistence of static separation-of-duty (SSoD) policies and strict availability (SA) policies. Firstly, we reduce the complexity of reasoning about policy inconsistencies by static pruning technique and minimal inconsistency cover set. Secondly, we present a systematic methodology for measuring safety loss and utility loss, and evaluate the safety-utility tradeoff for each choice. Thirdly, we present two prioritized-based resolutions to deal with policy inconsistencies based on safety-utility tradeoff. Finally, experiments show the effectiveness and efficiency of our approach.

Keywords

  • access control
  • safety
  • utility
  • separation-of-duty

1. Introduction

The safety and utility policies are very important in an access control system for ensuring security and availability when performing a certain task. Safety policies are used to describe safety requirements which ensure that users who should not have access do not get access. Such focus on safety requirements probably stems from the fact that safety policies have been mostly viewed as a tool for restricting access. An example of the safety policy is a static separation-of-duty (SSoD) policy, which precludes any group of users from possessing too many permissions [1]. An equally important aspect of access control is the utility policies that enables access [2, 3]. In our previous work [4], we have introduced the notion of availability policies which is an example of an utility policy. In this paper, we introduce the notion of strict availability (SA) policies, which is also an example of utility policy that requires that the cooperation among at most a certain number of users is necessary to perform a task. Due to their opposite objectives, safety policies and utility policies can conflict with each other. For example, let p1 and p2 be two permissions, and u1 and u2 two users. Assume that an SSoD policy requires that neither u1 nor u2 possess all permissions in {p1, p2}. An SA policy requires both u1 and u2 possess all permissions in {p1, p2}. Clearly, the two policies cannot be satisfied simultaneously.

This paper examines this kind of conflict: policy inconsistencies that result from the incompatibility between safety policies and utility policies, especially for the coexistence of SSoD policies and SA policies. Policy inconsistencies differ from the traditional policy conflicts [5] in that the composition of safety and utility policies is never supposed to be inconsistent. That means policy inconsistencies are checked at compile-time to prevent the construction of any safety or utility policy that may conflict with each other. A policy inconsistency results in a policy compilation error. Hence, the resolution for policy inconsistencies is a policy design problem, whereas policy conflicts are resolved at runtime. In practice, the policy administrator may define many safety and utility policies and these policies may be inconsistent. However, it is not easy to detect and resolve these policy inconsistencies. Thus, it is very important to help the policy administrator to detect and resolve the policy inconsistencies at compile-time. The above discussion motivates the problem considered in this paper.

In our previous work [4], we have addressed the problem of consistency checking for the coexistence of safety and utility policies [4]. In this paper, we aim for providing a formal examination of policy inconsistency resolution for safety and utility policies, which can help the policy administrators to specify reasonable access control policies when both safety and utility policies coexist. Our contributions are as follows:

  • We formally define the policy inconsistency for the coexistence of safety policies and utility policies.

  • We describe a static pruning technique that aims to reduce the number of policies that need to be taken into account.

  • We compute the minimal inconsistency cover set that is responsible for the policy inconsistencies; thus we only need to examine the minimum number of policies.

  • We present a systematic methodology for measuring safety loss and utility loss, and evaluate the safety-utility tradeoff for each candidate resolution.

  • We present two prioritized-based resolutions to deal with policy inconsistencies for safety and utility policies based on safety-utility tradeoff.

The remainder of this paper is organized as follows. Section 2 formally defines the policy inconsistency problem for the coexistence of safety policies and utility policies. Section 3 presents prioritized-based resolutions for policy inconsistencies. The evaluation and illustration of our approaches are given in Section 4. Section 5 discusses related work, and Section 6 concludes and discusses the future work.

2. Policy inconsistency problem

We assume that there are two countably infinite sets in an access control state: U (the set of all possible users), and P (the set of all possible permissions). An access control state ε is a binary relation UP U × P, which determines the set of permissions a user possesses. Note that by assuming that an access control state ε is given by a binary relation UP U × P, we are not assuming permissions are directly assigned to users; rather, we assume only that one can calculate the relation UP from the access control state.

Safety policies are used to describe safety requirements which ensure that users who should not have access do not get access. A safety policy is specified by giving a predicate on sets of executions. If conditions on (users, permissions) are satisfied, then a set U of users are prohibited from covering a set P of permissions. One example of a safety policy is an static separation-of-duty (SSoD) policy. SSoD policy is considered as a fundamental principle of information security that has been widely used in business, industry, and government applications [6]. An SSoD policy typically constrains the assignment of permissions to users, which precludes any group of users from possessing too many permissions. We first reproduce the definitions of SSoD policies from [4].

Definition 1. An SSoD policy ensures that at least k users from a user set are required to perform a task that requires all these permissions. It is formally defined as

  • P and U denote the set of permissions and the set of users, respectively.

  • UP U × P, is a user-permission assignment relation.

  • auth_p ε (u) = {p|(p P ) ((u, p) UP)}.

  • (P, U, k) SSoD, U' U : |U' | < k uU' auth_p ε (u) P.

where P = {p1, ..., p m }, U = {u1, ..., u n }, each p i in P is a permission, u j in U is a user, and m, n, and k are integers, such that 2 ≤ kmin(m, n), where min returns the smaller value of the two. We write an SSoD policy as ssod <P, U, k>. An access control state ε satisfies an SSoD policy e = ssod <P, U, k>, which is denoted by sat e (ε). And sat E (ε) represents ε satisfies a set E of SSoD policies.

A utility policy is also specified by giving a predicate on sets of executions. If conditions on (users, permissions) are satisfied, then a set U of users are obligated to possess all the permissions in P. We now introduce the notion of strict availability (SA) policies, which is an example of utility policies that states properties about enabling access in access control. An SA policy requires that the cooperation among at most a certain number of users is necessary to perform a task.

Definition 2. An strict availability (SA) policy ensures that all size-t subsets of U are required to complete a task that requires all these permissions in P. It is formally defined as

  • P and U denote the set of permissions and the set of users, respectively.

  • UP U × P, is a user-permission assignment relation.

  • auth_p ε (u) = {p|(p P) ((u, p) UP)}.

  • (P, U, t) SA, U' U : |U' | = t uU' auth_p ε (u) P.

Where P = {p1, ..., p m }, U = {u1, ..., u n }, each p i in P is a permission, u j in U is a user, and m, n, and t are integers, such that 1 ≤ tmin(m, n), where min returns the smaller value of the two, and the variable t in size-t is used to represent the cardinality of a set. We write an SA policy as sa <P, U, t>. An access control state ε satisfies an SA policy f = sa <P, U, t>, which is denoted by sat f (ε). And sat F (ε) represents ε satisfies a set F of SA policies.

Definition 3. UCP (the Utility Checking Problem) is defined as follows: Given an access control state ε and a set F of SA policies, determining whether sat F (ε) is true.

Theorem 1. UCP is in P.

PROOF. Given an access control state ε and a set F of SA policies, if for each SA policy f = sa(P, U, t) in F that sat f (ε) is true, then sat F (ε) is true. In the following, we prove that sat f (ε) is true if and only if each permission p P is assigned to no less than (|U| + 1 - t) users in the user set U, where |U| represents the cardinality of set U.

For the "only if" part, sat f (ε) being true means that the users in each size-t subsets of U together possess all the permissions in P. Suppose, for the sake of contradiction, that sat f (ε) is true, and there exists a permission p P that is only assigned to (|U| - t) users in U. Then we can find a user set U' where |U| = t, and each users in U' do not possess p. Thus sat f (ε) is false, and this contradicts the assumption; therefore, each permission p P must be assigned to no less than (|U| + 1 - t) users in U.

For the "if" part, if each permission p P is assigned to no less than (|U|+ 1 - t) users in U, then the users in each size-t user set U' will together possess p. Thus all the permissions in p will be covered by each size-t user set. In other word, the users in each size-t user set together are authorized for all permissions in P. Therefore, sat f (ε) is true.

Together with the above discussions, we now give a linear-time algorithm for determining whether sat F (ε) is true: For each SA policy sa <P, U, t> in F, and for each permission p P. One first computes the set of all users the permission p is a member of, and compares this number with (|U|+1-t). This algorithm has a time complexity of O(N U N P M), where N U is the number of users in U, N P the number of permission in P, and M is the number of SA policies.   □

An availability policy ap<P, U, t> ensures that there exists a size-t subset of U that the users in this subset are required to possess all these permissions in P[4]. We now show that sa<P, U, t> is at least as restrictive as ap<P, U, t>.

Definition 4. Let P1and P2be two policies. We say that P1is at least as restrictive as P2(denoted by P1 P2) if ε ( s a t P 1 ( ε ) s a t P 2 ( ε ) ) . When P1 p2but not P2 p1, we say that P1is more restrictive than P2(denoted by P1 P2). And when (P1 p2) (P2 p1), we say P1and P2are equivalent (denoted by P1 P2).

By definition, the relation among all policies is a partial order. The relation among all policies is a quasi order.

Theorem 2. Given an SA policy f = sa<P, U, t>, and an availability policy g = ap<P, U, t>, f g if and only if |U| > t.

PROOF. For the "only if", We show that if f g then |U| > t. Suppose, for the sake of contradiction that |U|t. By Definition 2, t|U|, then |U| = t. For any access control state ε, if sat g (ε) is true, then (U' U) (|U' | = t)[uU'auth_p ε (u) P], and U' = U as |U| = t. Then U' U |U' | = t(uU'auth_p ε (u) P) has the same meaning as (U' U) (|U' | = t) (uU'auth_p ε (u) P). That means P1 P2, which contradicts the assumption. Therefore, if f g then |U| > t.

For the "if" part, if |U| > t then f g. By Definition 2, for each access control state ε that satisfies f if and only if the users in all size-t subsets of U together possess all the permissions in P, Let U' is a subset of U, that the users in U' together possess all of the permissions in P, and |U' | = t, then ε satisfies ap<P, U, t>. Therefore, ε(sat f (ε) sat g (ε)), and f g. We construct a new state ε' that satisfies g but does not satisfy f as follows: assign all permissions in P to only one user u U, but do not assign any permissions in P to any other users in U. Then we can find a user set ( U U ) ( | U | = t ) [ u U a u t h - p ε ( u ) P ] , and sat g (ε') is true. However, for any user set U'' that (U'' U) (|U'' | = t) (u U''), as u U a u t h - p ε ( u ) P , sat f (ε') is false. Therefore, if |U| > t, then f g.   □

Intuitively, SA policies are a natural complement to SSoD policies in access control. Neither SA nor SSoD by itself is sufficient to capture both safety and utility requirements. Without the utility requirement, an access control state can satisfy any SSoD policy if the state does not contain any user set that covers all the permissions needed to accomplish the sensitive task. Similarly, without the safety requirement, any SA policy can be satisfied by giving all permissions to all users, which allows each single user be able to accomplish any task. In many cases, it is desirable for an access control system to have both SSoD and SA policies. However, these policies may conflict with each other due to their opposite objectives. Therefore, a formal description of policy inconsistency is necessary to detect and resolve it.

Definition 5. CCP (the Consistency Checking Problem) is defined as follows: Given a set E of SSoD policies and a set F of SA policies, determining that whether there exists an access control state ε that sat E (ε) sat F (ε) is true.

Corollary 1. CCP is coNP-complete.

PROOF. That CCP is coNP-complete follows directly from the fact that the problem of determining whether sat E (ε) is true is coNP-complete (Theorem 1 in [4]), and the problem of determining whether sat F (ε) is true is in P (Theorem 1).   □

Consider the following example of SSoD and SA policies. It is not easy to check whether the policies in the set Q is consistent.

Example 1. Consider a set Q of SSoD and SA policies as follows.
Q = { e 1 , e 2 , f 1 , f 2 } e 1 = s s o d { p 1 , p 2 , p 3 } , { u 1 , u 2 , u 3 } , 2 e 2 = s s o d { p 1 , p 2 } , { u 1 , u 2 } , 2 f 1 = s a { p 1 , p 2 } , { u 1 , u 2 , u 3 } , 2 f 2 = s a { p 2 , p 3 } , { u 2 , u 3 } , 1

We now show that the above SSoD and SA policies are inconsistent. Given any access control state ε, if s a t f 2 ( ε ) is true, that means p2 and p3 must be authorized to both u2 and u3. If s a t f 1 ( ε ) is true, then p1 must be authorized to either u2 or u3. If u2 possesses p1, u2 will possess all of the permissions in {p1, p2, p3}, which violates both e1 and e2. If u3 possesses p1, u3 will possess all of the permissions in {p1, p2, p3}, which violates both e1. Therefore, there does not exist an access control state ε that satisfies all of the four policies in Q.

In general, there may be many policy inconsistencies in a large access control policy set. Thus the following issues should be considered: (1) A large number of policy inconsistencies are possible, but many of them may be the result of a small number of policies that apply to aggregates. The key is to figure out the minimum number of policies that are responsible for the policy inconsistencies. (2) Once all the inconsistencies are known, we must determine the appropriate resolutions with little effort to resolve them, and estimate their impact on the policies. Like traditional policy conflict resolution, the theoretical resolution of policy inconsistencies is basically the same: remove some policies in the policy set. The primary difficulty is to determine which policies should be removed, and the resolution addresses the inconsistency most effectively.

3. Policy inconsistency resolution approaches

In this section, we provide a formal examination of policy inconsistencies resolution for the coexistence of SSoD and SA policies.

3.1. Reducing complexity

Once all the inconsistencies are known, we must find a way to resolve them. However, determining which policy to remove is difficult because there may be many policy inconsistencies. In order to simplify the resolution task, we consider as few policies as possible. Thus we reduce the complexity of reasoning about policy inconsistencies by the techniques of static pruning and minimal inconsistency cover set.

3.1.1. Static pruning

SSoD and SA policies can conflict with each other due to their opposite objectives. In general, not all SSoD or SA policies should be taken into account as they do not cause inconsistencies. The following theorem asserts that the special cases of SSoD(or SA) policies do not affect its compatibility with SA(or SSoD) policies. This enables us to remove them from our consideration. This greatly simplifies the problem.

Theorem 3. Let Q = {e1, ..., e m , f1, ..., f n }, where e i = ssod <P i , U i , k i > (1 ≤ im), f j = a p P j , U j , t j ( 1 j n ) . If e i Q[(|P i - R| > 0) (|U i T| = 0)], where R = j = 1 n P j , T = j = 1 n U j , then let Q' = Q' - {e i }; If f j Q [ ( | U j S | < t j ) ( | P j W | = 0 ) ] , where S = i = 1 m U i , W = i = 1 m P i , then let Q' = Q' - {f j }. Q is consistent if and only if Q' is consistent.

PROOF. For the "only if" part, it is clear that if Q is consistent then Q' is consistent as Q' Q.

For the "if" part, we show that if Q' is consistent then Q is consistent. Q' is consistent implies that there exists an access control state ε satisfies all policies in Q'. We now construct a new state ε' that satisfies both Q' and Q as follows: for each e i Q/Q', where |P i - R| > 0. Add all users in U i to ε, but do not assign any permissions in P i R. In this way, ε' satisfies e i as no less than k i users in U i together having all permissions in P i , and note that adding new users will not lead to inconsistency of policies in Q'. If |U i T| = 0, not assigning any permission in P i to any user in U i will not lead to inconsistency of policies in Q', but the new state satisfies e i . For each f j Q/Q', where | U j S | < t j , add all users in U j to ε, and assign all permissions in P j to each user in U j S . Then there is at least one user u U j / S in each size-t j user set in U j , as u has all the permissions in P j , thus each size-t j user set in U j together having all the permissions in P j . In this way, ε' satisfies f j , and note that adding new users, and assigning permissions to these new users will not lead to violation of policies in Q'. If | P j W | = 0 , assigning any permissions in P j to each user in U j will not lead to inconsistency of policies in Q', and thus the new state ε' satisfies f j . Therefore, Q is consistent if and only if Q' is consistent.   □

3.1.2. Minimal inconsistency cover set

There may exist many policy inconsistencies in a policy set which contains a large number of SSoD and SA policies. But many of these inconsistencies may result from only a small number of these policies, and they may be disjoint with each other. We find the minimal inconsistency cover set is the minimal number of policies that represent a policy inconsistency. Therefore, the key question is how to organize the policy inconsistencies, so as to examine the minimum number of policies that are responsible for all the inconsistencies.

Definition 6. We define a minimal inconsistency cover (MIC) set responsible for a policy inconsistency that includes the smallest number of policies.

Note that for a policy inconsistency, there might be several policy sets that are responsible for this inconsistency. By definition, we say that a set S is an MIC set, if there does not exist another set S' responsible for this inconsistency and S' S. We have the following property for MIC.

Theorem 4. Given any two MIC sets A and B, let P A denotes the union of permissions in all policies in A, and U A denotes the union of users in all policies in A. P B and U B have the similar meanings. Then (P A P B = ) (U A U B = ).

PROOF. We assume that (P A P B = ) (U A U B = ) is false, then (P A P B ) (U A U B ). There are four cases should be considered:
  1. (1)

    Permissions and users for {e 1 , ..., e m } A(m ≥ 1) and { e 1 , . . . , e n } B ( n 1 ) are shared;

     
  2. (2)

    Permissions and users for {e 1 , ..., e m } A(m ≥ 1) and {f 1 , ..., f n } B(n ≥ 1) are shared;

     
  3. (3)

    Permissions and users for {f 1 , ..., f m } A(m ≥ 1) and { f 1 , , f n } B ( n 1 ) are shared;

     
  4. (4)

    Permissions and users for {e 1 , ..., e m , f 1 , ..., f n } A(m ≥ 1, n ≥ 1) and { e 1 , , e l , f 1 , , f k } B ( l 1 , k 1 ) are shared.

     

For case (1), there exists at least one permission p P { e 1 , , e m } , but p does not belong to any other policies in A. By Theorem 3, {e1, ..., e m } does not affect the inconsistency of other permissions in A, and thus {e1, ..., e m } can be removed from A. This would contradict the assertion that A is an MIC set. Moreover, there exists at least one permission p P { e 1 , , e n } , but p does not belong to any other policies in B. Thus { e 1 , . . . , e n } also can be removed from B. For case (2) and case (3), the proof is essentially the same as the case (1). It should be noted that there exists at least one user u belongs to the policies in {f1, ..., f n }, but u does not belong to any other policies in B. Thus {f1, ..., f n } should be removed from B by Theorem 3. For case (4), no policies can be removed from { e 1 , , e m , f 1 , , f n } { e 1 , , e l , f 1 , , f k } , which means these policies may conflict with each other due to their opposite objectives. Therefore, these policies should be included by only one MIC set. This would contradict the assertion that A and B are two MIC sets. Together with the above discussions, given any two MIC sets, that (P A P B = ) (U A U B = ). □

We now give an algorithm to generate the MIC sets for an access control policy set. Algorithm 1 includes an underlying presumption that all SSoD and SA policies which do not cause policy inconsistencies have been removed from our consideration by using "static pruning" technique. Given a policy set Q, the algorithm first divides Q into several subsets by the step 1 to 20. By the step 21 to 27, the algorithm combines the different sets which share the permissions and users. This algorithm has a worst-case time complexity of O(mnMN), where m is the number of SSoD policies, n is the number of SA policies, M is the number of users, N is the number of permissions. The fact that CCP is intractable (coNP-complete) means that there exist difficult problem instances that take exponential time in the worst case, while efficient algorithms for CCP exist when the number of policies is not too large. MIC helps to reduce the complexity of reasoning about policy inconsistencies.

Example 2. Continuing from Example 1, we add four policies {e3, e4, f3, f4} to Q, Consider the combination of following SSoD and SA policies.
Q = { e 1 , e 2 , e 3 , e 4 , f 1 , f 2 , f 3 , f 4 } e 1 = s s o d { p 1 , p 2 , p 3 } , { u 1 , u 2 , u 3 } , 2 e 2 = s s o d { p 1 , p 2 } , { u 1 , u 2 } , 2 e 3 = s s o d { p 4 , p 5 } , { u 4 , u 5 } , 2 e 4 = s s o d { p 4 , p 5 , p 6 } , { u 4 , u 5 , u 6 } , 2 f 1 = s a { p 1 , p 2 } , { u 1 , u 2 , u 3 } , 2 f 2 = s a { p 2 , p 3 } , { u 2 , u 3 } , 1 f 3 = s a { p 5 , p 6 } , { u 4 , u 6 } , 1 f 4 = s a { p 4 , p 5 , p 6 } , { u 4 , u 6 } , 2

By Theorem 3, no policy can be removed from our consideration by static pruning. But the permissions in {p4, p5, p6} and the users in {u4, u5, u6} only exist in {e3, e4, f3, f4}, and the policies in {e3, e4, f3, f4} do not affect the consistency of {e1, e2, f1, f2}. By Algorithm 1, Q' can be divided into two policy set Q 1 = { e 1 , e 2 , f 1 , f 2 } , and Q 2 = { e 3 , e 4 , f 3 , f 4 } , such that each set is an MIC set. As shown in Example 1, the policies in Q 1 are inconsistent. It is easy to find that the policies in Q 2 are inconsistent, too. Continuing from Example 2, assume that there exist another two policies e5 = ssod <p1, p2, p4, p5, p6}, {u1, u2, u3, u4, u5, u6}, 3> and f5 = sa <{p1, p2, p3, p4, p5, p6}, {u1, u2, u4, u6}, 3>, then the whole policies in {e1, e2, e3, e4, e5, f1, f2, f3, f4, f5} is only one MIC set.

3.2. Measuring the safety-utility tradeoff

Given an MIC set for a policy inconsistency. Often, there may exist many choices for resolving this inconsistency. An interesting question for them is "which choice is optimal?". Our methodology helps policy administrators answer this question.

Algorithm 1. ComputeMIC (Q)

Input: Q = {e1, ..., e m , f1, ..., f n }

Output: the MIC sets of Q : S1, ..., S x

1: initialize S1 = , i = 1, j = 1, k = 1;

2: while (i < m||j < n) do

3:    if ( ( P e i P S k ) ( U e i U S k ) ) then

4:       S k = S k e i ;

5:       i + +;

6:    else

7:       k + +;

8:       continue;

9:    end if

10:       k = 1;

11:    if ( ( P f j P S k ) ( U f j U S k ) ) then

12:       S k = S k f j ;

13:       j + +;

14:    else

15:       k++;

16:       continue;

17:    end if

18:    k = 1;

19: end while;

20: MIC(Q) ← S1, ..., S x ;

21: for S k MIC(Q) do

22:    if S t M I C ( Q ) [ ( P S t P S k ) ( U S t U S k ) ] then

23:       MIC(Q) = MIC(Q) - S t - S k ;

24:       S k = S k S t ;

25:       MIC(Q) ← S k ;

26:    end if

27: end for

28: return MIC(Q).

Example 3. Let us consider the same policies as the one from Example 1. After removing some policies from Q, the rest of policies will be consistent with each other. For example, resolving the policy inconsistency has the following choices.

  • Removing only one policy:{e1}, {f1}, or {f2}.

  • Removing two policies:{e1, e2}, {e1, f1}, {e1, f2}, {e2, f1}, {e2, f2}, or {f1, f2}.

  • Removing three policies:{e1, e2, f1}, {e1, e2, f2}, {e1, f1, f2}, or {e2, f1, f2}.

Currently we lack a method for measuring the safety-utility tradeoff in policy inconsistency resolving. Removing SSoD policies result in safety loss for the whole safety requirement in Q. Similarly, Removing SA policies result in utility loss for the whole utility requirement in Q. Hence before making the choice, one must ensure that the safety loss and utility loss are limited to an acceptable level. To use our method, one must choose a measure for safety loss (S loss ) and utility loss (U loss ).

Definition 7. Let e1and e2be two SSoD policies, we say that S l o s s e 1 S l o s s e 2 if and only if e1 e2. And S l o s s e 1 > S l o s s e 2 if and only if e1 e2.

Where S l o s s e 1 denotes the safety loss caused by removing e1. As is intuitive, choosing to remove the policy with higher restrictive will cause more safety (or utility) loss.

Theorem 5. For any SSoD policies e1= ssod <P1, U1, k1> and e2= ssod <P2, U2, k2>, e1 e2if and only if (U1 U2) (k1≥ k2 + | P1 - P2|).

PROOF. For the "if" part, given (U1 U2) (k1≥ k2 + | P1 - P2|), we show that ε ( ¬ s a t e 2 ( ε ) ¬ s a t e 1 ( ε ) ) . There are two cases for (U1 U2) (k1 k2 + | P1 - P2|): (1) P1 P2, (2) P1 P2. ¬ s a t e 2 ( ε ) being true means that there exist k2-1 users in U2 together having all the permissions in P2. For case (1), there also exists k2-1 users in U1 together having all the permissions in P1 as (P1 P2) (U1 U2), and (k1k2 + |P1 - P2|) (k1- 1) ≥ (k2 - 1). Therefore, there exists k1-1 users in U1 together having all the permissions in P1, in other words, ¬ s a t e 1 ( ε ) is true. For case (2), there also exist k2-1 users in U1 together having all the permissions in P1 {P2 - P1} as (U1 U2). At most |P1 - P2| users together having all the permissions in {P2 - P1}, and (k1k2 + | P1 - P2|) (k2 - 1) ≤ (k1 - 1) - |P1 - P2|. Thus there exists k1-1 users in U1 together having all the permissions in P1, s a t e 1 ( ε ) is also false. Therefore, ε ( ¬ s a t e 2 ( ε ) ¬ s a t e 1 ( ε ) ) is true.

For the "only if" part, given e1 e2, we show that (U1 U2) (k1k2 + |P1 - P2|) is true. Suppose, for the sake of contradiction, that ¬((U1 U2) (k1k2 + |P1 - P2|)) is true. In other words, both U1 U2 and k1k2 + |P1 - P2| are false. Let e1 and e2 are two SSoD policies, where e1 = ssod <P1, U1, k1>, e2 = ssod <P2, U2, k2>. If U1 U2 is false, then u U2/U1. Assuming that s a t e 1 ( ε ) is true, assign all the permissions in P2 to u, and then s a t e 2 ( ε ) is false as k2> 1. Therefore, U1 U2 is true. If k1k2 + |P1 - P2| is false, then k1< k2 + |P1 - P2|. If P1 P2, then k1< k2 k1k2 - 1. s a t e 1 ( ε ) being true means that at least k1 users in U1 together having all the permissions in P1. We assume that there exist k1 users in U1 together having all the permissions in P1 in ε; then there exist k2-1 users in U2 together having all the permissions in P2 as to ε (let U1 = U2, and these k1 users also have all the permissions in {P2 - P1}), then s a t e 2 ( ε ) is false. If P1 P2, let k1< k2 + |P1 - P2|; given an access control state ε that s a t e 1 ( ε ) is true, for each permission in {P2 - P1}, assign it to |P1 - P2| different users, and these users are not assigned any other permissions in P1, and then k1-|P1 - P2| users together having all the permissions in P1. Therefore, there exist less than k2 users in U2 together having all the permissions in P2 (let U1 = U2), and therefore, s a t e 2 ( ε ) is false. This contradicts the assumption that e1 e2. Therefore, if e1 e2, then (U1 U2) (k1k2 + |P1 - P2|).   □

Definition 8. Let f1and f2be two SA policies, we say that U l o s s f 1 U l o s s f 2 if and only if f1 f2. And U l o s s f 1 > U l o s s f 2 if and only if f1 f2.

Theorem 6. For any SA policies f1= sa <P1, U1, t1> and f2= sa <P2, U2, t2>, f1 f2if and only if (P1 P2) (U1 U2) (t1t2).

PROOF. For the "if" part, given (P1 P2) (U1 U2) (t1t2), we show that ε ( s a t f 1 ( ε ) s a t f 2 ( ε ) ) is true. s a t f 1 ( ε ) being true means that any size-t1 user set U 1 from U1 together having all the permissions in P1. Since (P1 P2) (U1 U2) (t1t2), for each U 1 U 2 U 1 , u U 1 a u t h - p ε ( u ) P 1 P 2 , and | U 1 | = t 1 t 2 . Therefore, s a t f 2 ( ε ) is also true.

For the "only if" part, given f1 f2, we show that (P1 P2) (U1 U2) (t1t2) is true. Suppose, for the sake of contradiction, that ¬( P1 P2) (U1 U2) (t1t2) is true, thus (P1 P2) (U1 U2) (t1> t2) is true, then P P2/P1. Assuming that there exists an access control state ε, and s a t f 1 ( ε ) is true. Let P be not assigned to any user in U2, that does not affect s a t f 1 ( ε ) . But s a t f 2 ( ε ) is false, as no size-t2 user set from U2 can together cover P2. Thus the assumption is false, and P1 P2 is true.

If U1 U2 is true, then u U2/ U1. We now can construct a state ε that makes s a t f 2 ( ε ) true, but s a t f 1 ( ε ) false. By Theorem 1, sat f (ε) being true means that each size-t user sets from U cover the permission set P. The above discussion shown that P1 P2 is true, and let t1 = t2. As |U2| + 1 - t2> |U1| + 1 - t1, s a t f 1 ( ε ) is true, which contradicts the assumption, and thus U1 U2 is true.

If t1> t2 is true, let f 1 = s a P 2 , U 2 , t 1 . As shown above, f 1 f 1 , such as for any state ε that ¬ s a t f 1 ( ε ) ¬ s a t f 1 ( ε ) . Thus we only need to construct a state ε that s a t f 2 ( ε ) is true, but s a t f 1 ( ε ) is false as follows. Find a size-t1 user set U' U2, and partition P2 into t1 disjoint sets v 1 , , v t 1 , such that the permissions in each set be assigned to each user in U', respectively. Without any one user in U' can not cover P2. Since t1> t2, we can find a size-t2 user set U'' U' that the users in U'' do not together have all the permissions in P2. In other words, s a t f 1 ( ε ) is false, and s a t f 1 ( ε ) is also false. This contradicts the assumption, and thus t1t2 is true. Consequently, if f1 f2, then (P1 P2) (U1 U2) (t1t2).   □

After computing the rank of S loss for each SSoD policy and U loss for each SA policy. A fundamental problem in inconsistency resolving is how to make the right tradeoff between safety and utility. However, it is inappropriate to directly compare safety with utility. The most important reason is that removing SSoD policies will increase the safety loss for the whole policies, but will not increase the utility gain. Similarly, removing SA policies will increase the utility loss for the whole policies, but will not increase the safety gain. For example, if we choose to remove {e1, e2} in Example 5, then S loss = 100%, U loss = 0%. And if we choose to remove {f1, f2}, then S loss = 0%, U loss = 100%.

If safety and utility cannot be directly compared, how should one consider them in a policy set for inconsistency resolution? For this, given a number of policy sets that are candidates for removing, for each of which we measure its safety loss S loss and its utility loss U loss . We can obtain a set of (S loss , U loss ) pairs, one for each set. An ideal (but unachievable) choice will have the smallest S loss and U loss . For this, we need to be able to compare two different (S loss , U loss ) pairs.

Definition 9. Given two pairs (S loss , U loss )1, and (S loss , U loss )2, we define (S loss , U loss )1 ≤ (S loss , U loss )2if and only if ( S l o s s 1 S l o s s 2 ) ( U l o s s 1 U l o s s 2 ) . And (S loss , U loss )1 < (S loss , U loss )2if and only if ( S l o s s 1 < S l o s s 2 ) ( U l o s s 1 < U l o s s 2 ) .

Definition 10. Let A and B be two policy sets; removing A will caused (S loss , U loss ) A , and removing B will caused (S loss , U loss ) B . We say that the choice of removing A is at least as optimal as removing B (denoted by (S loss , U loss ) A (S loss , U loss ) B ) if (S loss , U loss ) A ≤ (S loss , U loss ) B . And the the choice of removing A is better than removing B (denoted by (S loss , U loss ) A (S loss , U loss ) B ) if (S loss , U loss ) A < (S loss , U loss ) B .

Example 4. Let us consider the following policy sets from Example 3 that can be removed to resolve the policy inconsistency. S1 = {e1}, S2 = {f1}, S3 = {e1, e2}, S4 = {f1, f2}, S5 = {e1, e2, f1}.

Obviously, ( S l o s s , U l o s s ) S 1 < ( S l o s s , U l o s s ) S 3 < ( S l o s s , U l o s s ) S 5 , and ( S l o s s , U l o s s ) S 2 < ( S l o s s , U l o s s ) S 4 < ( S l o s s , U l o s s ) S 5 . Thus S1 and S2 are two ideal choices to resolve the policy inconsistency.

3.3. Prioritized-based resolution

The notion of priority is very important in the study of knowledge based systems, since inconsistencies have a better chance to be resolved. The following subsections present two prioritized-based approaches to deal with policy inconsistencies. We first present the possibilistic logic approach, which selects one consistent subbase. And we then give the lexicographical inference approach, which selects several maximally consistent subbases [7]. We assume that knowledge bases Ψ are prioritized. Prioritized knowledge bases have the form Ψ = Ψ E Ψ F , where Ψ E = S 1 E U U S m E , Ψ F = S 1 F U U S n F , E and F denote all the SSoD and SA policies in the system, respectively. Formulas in S i E (or S i F ) have the same level of priority and have higher priority than the ones in S j E (or S j F ) where j > i. S 1 E (or S 1 F ) contains the one which have the highest priority in Ψ, and S m E (or S n F ) contains the one which have the lowest priority in Ψ.

3.3.1. Possibilistic logic approach

Possibilistic logic approach selects one suitable consistent prioritized sub-base of Ψ, whereas the other policies in complement set for the subbase of Ψ

Algorithm 2. GeneratePoss(Ψ)

Input: knowledge bases Ψ = Ψ E Ψ F

Output: Poss(Ψ)

1: initialize P o s s ( Ψ ) = S 1 E S 1 F , i = 1, j = 1;

2: while (im&&jn) do

3:    if Poss(Ψ) is inconsistent then

4:        P o s s ( Ψ ) = P o s s ( Ψ ) - S i E - S j F ;

5:       if P o s s ( Ψ ) S i E is consistent then

6:           P o s s ( Ψ ) = P o s s ( Ψ ) S i E ;

7:          i++;

8:       else

9:          for e S i E do

10:             if Poss(Ψ) p is consistent then

11:                Poss(Ψ) = Poss(Ψ) p;

12:             end if

13:          end for

14:       end if

15:       if P o s s ( Ψ ) S i E is consistent then

16:           P o s s ( Ψ ) = P o s s ( Ψ ) S j F ;

17:          j + +;

18:       else

19:          for f S j F do

20:             if Poss(Ψ) f is consistent then

21:                Poss(Ψ) = Poss(Ψ) f;

22:             end if

23:          end for

24:       end if

25:    else

26:       i++;

27:       j ++;

28:        P o s s ( Ψ ) = P o s s ( Ψ ) S i E S j F ;

29:    end if

30: end while;

31: return Poss(Ψ).

should be removed. We should extract a subbase φ(Ψ) from Ψ, which is made of the first x-important and consistent strata(levels): φ(Ψ) = S1 S x , such that S1 S x is consistent, but S1 Sx+1 is inconsistent.

Definition 11. We define Poss(Ψ) as the set of the preferred consistent possibilistic subbase of Ψ : Poss(Ψ) = {A: A Ψ is consistent and B Ψ is consistent where B A}.

We now give an algorithm to compute the Poss(Ψ) for Ψ (shown in Algorithm 2). This algorithm iteratively adds the SSoD and SA policies with higher priority. Removal of the policies not in Poss(Ψ) is essential to satisfy the consistency for the other policies in Ψ. This algorithm has a best-case time complexity of O(mn), and a worst-case time complexity of O(mnM 2 N ), wherem is the number of SSoD policies, n is the number of SA policies, M is the number of users, and N is the number of permissions.

Example 5. Consider the combination of following SSoD and SA policies.
Q = { e 1 , e 2 , f 1 , f 2 , f 3 } e 1 = s s o d { p 1 , p 2 , p 3 } , { u 1 , u 2 , u 3 } , 2 e 2 = s s o d { p 1 , p 2 } , { u 1 , u 2 } , 2 f 1 = s a { p 1 , p 2 , p 3 , p 4 } , { u 1 , u 2 , u 3 , u 4 } , 3 f 2 = s a { p 1 , p 2 , p 3 } , { u 1 , u 2 , u 3 } , 3 f 3 = s a { p 1 , p 2 } , { u 1 , u 2 } , 1

By Theorems 5 and 6, we can find that e1 e2, f1 f2. Thus Ψ = Ψ E Ψ F , where Ψ E = S 1 E S 2 E , Ψ F = S 1 F S 2 F , S 1 E = { e 1 } , S 2 E = { e 2 } , S 1 F = { f 1 } , S 2 F = { f 2 , f 3 } . By Algorithm 2, P o s s ( Ψ ) = S 1 E S 1 F S 2 E { f 2 } = { e 1 , e 2 , f 1 , f 2 } . Therefore, the removal of f3 is an optimal choice to resolve the policy inconsistency.

3.3.2. Lexicographical inference approach

The possibilistic way of dealing with inconsistency is not entirely satisfactory since it only considers the first x-important consistent formulas having the highest priority. However, the less certain formulas may be not responsible for inconsistencies that should also be taken into account. The idea of lexicographical inference approach is to select not only one consistent subbase but several maximally consistent subbases. Obviously, the lexicographical inference is more expensive than the possibilistic logic.

Definition 12. A consistent subbase A Ψ is said to be lexicographically preferred to a consistent subbase B Ψ, denoted by A lex B, if there exists a level i(1 ≤ im) and j(1 ≤ jn) such that:
( | A S i E | > | B S i E | ) ( x [ 1 , i ) , | A S x E | = | B S x E | ) ( | A S j E | > | B S j E | ) ( x [ 1 , j ) , | A S y E | = | B S y E | .

Definition 13. We define Lex(Ψ) as the set of all preferred consistent lexicographical subbases of Ψ : Lex(Ψ) = {A: A Ψ is consistent and B Ψ is consistent, B lex A}.

We now give an algorithm to generate Lex(Ψ) that covers all preferred consistent possibilistic subbases of Ψ. The algorithm is similar to Algorithm 2, but we add following improvements as follows. Given the knowledge bases Ψ = Ψ E Ψ F : if P o s s ( Ψ ) S i E or P o s s ( Ψ ) S j F is inconsistent, the algorithm does not stop (While in Algorithm 2, any policies in S k E , S l F will not be considered, where k > i, l > j), by repeatedly adding policies in S k E and S l F to Poss(Ψ). In the enumeration approach, the algorithm tries all possibilities. Eventually, the algorithm outputs all preferred consistent possibilistic subbases of Ψ, such as Lex(Ψ). In Example 4. There exists two lexicographically consistent subbases that A = {e1, e2, f1, f2}, B = {e1, f1, f2, f3}, then Lex(Ψ) = {A, B}.

4. Illustration and evaluation

Given the results shown in Section 3, we define the following approach to policy inconsistencies resolution.
  1. 1.

    Removing SSoD and SA policies from our consideration which do not cause inconsistencies by static pruning.

     
  2. 2.

    Generating MIC sets.

     
  3. 3.

    Consistency checking for each MIC set.

     
  4. 4.

    Extracting priorities based on safety-utility tradeoff.

     
  5. 5.

    Employing possibilistic logic (or lexicographical inference)approach

     

4.1. Running example

We now give a running example to show the validity of our approach for policy inconsistency resolving.

Example 6. Considering the task of ordering and paying for goods given by Clark and Wilson[6], there are four steps: (1) ordering the goods and recording the details of the order; (2) recording the arrival of the invoice and verifying that the details on the invoice match the details on the order; (3) verifying that the goods have been received and the features of the goods match the details on the invoice; (4) authorizing payment to the supplier against the invoice. We add another two steps: (5) checking the status of the task, and (6) commenting on the task. We have a permission corresponding to each step in the task. The permission set is {order, goods, invoice, payment, check, comment}. Assuming that there are eight users {alice, bob, carl, doris, eric, fox, harris, george} who prepare to accomplish this task. The policy administrator may define many policies that require safety and utility properties in this example and these policies may be inconsistent. Thus it is very important to help the policy administrators to specify reasonable access control policies without inconsistencies. Assuming that the policy administrator defines the following policies.
Q = { e 1 , e 2 , e 3 , e 4 , e 5 , f 1 , f 2 , f 3 , f 4 , f 5 } e 1 = s s o d { o r d e r , g o o d s , i n v o i c e } , { a l i c e , b o b , c a r l } , 2 e 2 = s s o d { o r d e r , g o o d s } , { a l i c e , b o b } , 2 e 3 = s s o d { p a y m e n t , c h e c k } , { d o r i s , e r i c , f o x } , 2 e 4 = s s o d { p a y m e n t , c h e c k , c o m m e n t } , { d o r i s , e r i c , f o x } , 2 e 5 = s s o d { p a y m e n t , c o m m e n t } , { d o r i s , e r i c , f o x } , 2 f 1 = s a { o r d e r , g o o d s , i n v o i c e , p a y m e n t } , { a l i c e , b o b , c a r l , d o r i s } , 3 f 2 = s a { o r d e r , g o o d s , i n v o i c e } , { a l i c e , b o b , c a r l } , 3 f 3 = s a { o r d e r , g o o d s } , { a l i c e , b o b , c a r l } , 2 f 4 = s a { p a y m e n t , c h e c k } , { d o r i s , e r i c } , 1 f 5 = s a { p a y m e n t , c h e c k } , { d o r i s , g e o r g e } , 2

We now implement the proposed approach to resolve the policy inconsistency problem in Q. Firstly, by Theorem 3, we find that e4, e5 and f5 can be removed from our consideration. Let Q' = {e1, e2, e3, f1, f2, f3, f4}, thus we only need to consider the policies in Q'. Secondly, by Algorithm 1, we can get two MIC sets: {e1, e2, f1, f2, f3} and {e3, f4}. Let Q A = {e1, e2, f1, f2, f3}, Q B = {e3, f4}. Thirdly, we check whether the policies in each MIC set are consistent, and find that the policies in Q A are inconsistent, but the policies in Q B are consistent. Thus we only need to resolve the policy inconsistency in Q A (Section 4.2 will give a more detailed description of consistency checking approach). Fourthly, we measure the safety loss for each SSoD policy and the utility loss for each SA policy. Via Theorem 5, we find that e1 e2, f1 f2. Thus we can have the form for prioritized knowledge bases Ψ = Ψ E Ψ F (where Ψ E = S 1 E S 2 E , Ψ F = S 1 F S 2 F , S 1 E = { e 1 } , S 2 E = { e 2 } , S 1 F = { f 1 } , S 2 F = { f 2 , f 3 } .). We give the method for computing the S loss and U loss for each SSoD and SA policy, respectively as follows:

  • S l o s s e = r a n k ( e ) Σ { e Ψ E } r a n k ( e )

  • U l o s s f = r a n k ( f ) Σ { f Ψ F } r a n k ( f )

Let rank(e1) = 2, rank(e2) = 1, rank(f1) = 2, and rank(f2) = rank(f3) = 1. Thus S l o s s e 1 = 2 2 × 1 + 1 × 1 × 1 0 0 % 6 6 . 7 % , S l o s s e 2 3 3 . 3 % , U l o s s f 1 = 5 0 % , U l o s s f 2 = U l o s s f 3 = 2 5 % . Lastly, we employ Algorithm 2 to generate possibilistic logic subbase Poss(Ψ) = {e1, e2, f1, f2}, and compute its safety-utility pair (S loss , U loss )Poss(Ψ) = (0, 25%). We also generate Lex(Ψ) and find that there exist two lexicographically consistent subbases that Lex(Ψ) = {Q1, Q2}, where Q1 = {e1, e2, f1, f2}, and Q2 = {e2, f1, f2, f3}. ( S l o s s , U l o s s ) Q 1 = ( 0 , 2 5 % ) , ( S l o s s , U l o s s ) Q 2 = ( 6 6 . 7 % , 0 % ) .

The results above can help the policy administrator to resolve the policy inconsistency by removing some policies, and can specify reasonable access control policies. For example, if the safety requirement is more critical than the utility requirement in this running example, the policy administrator can choose to remove f3, as it causes no safety loss, but 25% utility loss. Otherwise, he can choose to remove e1 where it causes about 66.7% safety loss, but no utility loss.

4.2. Performance evaluation

In order to understand the effectiveness of our approach, we have implemented two algorithms, and performed several experiments using the running example as shown in Section 4.1. One is called improved algorithm based on our approach as discussed in above sections (employ the possibilistic logic approach), whereas the other is called straightforward algorithm discussed based on consistency checking problem [4]. The implementation of these two algorithms was written in Java. Experiments were carried out on a machine with an Intel(R) Core(TM)2 Duo CPU T5750 running at 2.0 GHz, and with DDR2 2 GB 667 Mhz RAM, running Microsoft Windows XP Professional.

Straightforward algorithm

Each time a new SSoD (or SA) policy is generated by a policy administrator, the algorithm determines whether this policy is consistent with already existing policies. If the answer to the consistency checking problem is "yes", then the new SSoD (or SA) policy is allowed to be added to the access control system. Otherwise, it will be disallowed. Finally, the generated policies are consistent. We also add the following improvements that greatly reduce the running time.
  1. (1)

    Removing SSoD and SA policies from our consideration which do not cause policy inconsistencies using "static pruning" technique.

     
  2. (2)

    Reducing the number of access control states that need to be considered. Given an access control state ε, for each SA policy f = sa<P, U, t>, ε satisfies f if and only if for each size-t set of users from U such that these users together possessing all permissions in P. One only needs to compute the set of permissions of each size-t subsets of U, and check whether it is a superset of P. There exist C | U | t size-t user sets for U. If the return for the algorithm is "no", then we know that the state ε does not satisfy f, and thus need not to be considered. By Lemma 1, for the sake of "least privilege" principle, in order to ensure sat f (ε) being true, we let each permission p P be assigned to only (|U| + 1 - t) users in U. This can greatly reduce the number of access control states that should be taken into consideration.

     

(3)Reduction to SAT: Given an SSoD policy e = ssod<P, U, k> and an access control state ε, we have shown that determining whether sat e (ε) is true is coNP-complete problem [8]. Thus we can use the algorithms for SAT to solve this problem. The SAT solver we use is SAT4J [9]. The translation works are as follows. Given an SSoD policy e = ssod<P, U, k> and an access control state ε, for each u i U, we have a propositional variable v i . This variable is true if u i is a member of size-(k-1) user set U' U to cover all the permissions in P. Then we have the following two kinds of constraints. For each p P, let u i 1 , u i 2 , , u i x be the users who are authorized for p. We add the first constraint v i 1 + v i 2 + + v i x 1 , which ensures that all the permissions in P are covered by U'. There are |P| such constraints. Then we add the second constraint v1 + v2 + + v n k - 1(n = |U|), which ensures that |U' |k - 1. There is only one such constraint. If the return for the algorithm is "true", then we know that sat e (ε) is false; otherwise, sat e (ε) is true.

We assume that the order of the policies generating as e1, f1, e2, f2, e3, f3, e4, f4, e5, f5. Some of our experimental results are presented in Table 1. As we can see in Table 1, the SSoD and SA policies should be considered for improved algorithm is only 5. However, each time a new SSoD (or SA) policy is added, it should check whether the new policy is consistent with already existing policies in the access control system, and the total number of policies need be considered for straightforward algorithm is 1341. And the number of access control states should be considered for improved algorithm is only 324. The runtime for straightforward algorithm is 1810.4 s, but only 178.2 s for improved algorithm. The results above show that our improved algorithm solves policy inconsistencies more efficiently than straightforward algorithm. As policy inconsistencies are checked at compile time, which is not expected to happen frequently, relative slow running time may be acceptable in some situations.
Table 1

Comparisons between straightforward algorithm (SA) and improved algorithm (IA)

Policies

e 1

f 1

e 2

f 2

e 3

f 3

e 4

f 4

e 5

f 5

Total

Policies

SA

0

0

0

3

3

4

3

5

8

9

34

 

IA

0

0

0

0

0

0

0

0

0

5

5

States

SA

0

0

0

9

9

9

9

9

648

648

1341

 

IA

0

0

0

0

0

0

0

0

0

324

324

Runtime

SA

0

0

0

3.5

4.3

5.0

3.8

8.1

829.4

956.3

1810.4

 

IA

0

0

0

0

0

0

0

0

0

178.2

178.2

5. Related work

We examine related work in four categories: safety analysis, utility analysis, policy conflicts, and policy inconsistencies.

Safety analysis has been the main research area in access control for several decades. Harrison et al. [10] formalized a simple safety analysis that determining whether an access control system can reach a state in which an unsafe access is allowed in the context of the well-known access matrix model. Following that, there have been various efforts in designing access control systems in which simple safety analysis is decidable or efficiently decidable, e.g., Li et al. [2] generalized safety analysis in the context of a trust management framework. They also studied the safety analysis in the context of role-based access control (RBAC), where they gave a precise definition of a family of safety analysis problems in RBAC. It is more general than safety analysis that is studied in the literature [6]. SoD policy has been considered as a fundamental principle of information security; the concept of SoD can be traced back to 1975 when Saltzer and Schroeder [11] took it as one of the design principles for protecting information, under the name "separation-of-privilege". Later on, SoD has been vastly studied by various researchers as a principle to avoid frauds. It has been recognized that "one of RBAC's great advantages is that SoD rules can be implemented in a natural and efficient way" [12]. Various frameworks have been developed for specifying SoD in the context of access control. However, it should be noted that most existing approaches on SoD only consider authorization constraint sets with exact two elements. We employ the definition for SoD by our previous work [8], which considers the total number of available users as a limitation factor through referring to the Jason's work [13]. In general, the problem of deciding whether a term is satisfied by a set of users is NP-complete [14]. Therefore, it comes as no surprise that directly enforcing SSoD policies is intractable (coNP-complete) [4]. Li et al. [15] seek to enforce an SSoD constraint using SMER(statically mutually exclusive roles) constraints, but provide no analysis of the complexity of computing the set of all such constraints. Chen et al. [16] study some variations on the set cover problem, and show that the RSSoD generation problem is NP-hard.

Safety policy is mostly viewed as a tool for restricting access. An equally important aspect of access control is to enable access. We introduce the notion of utility policies in this paper, which state properties about enabling access in access control. Li et al. introduces the related concept of availability policies in [2, 6], which discriminates whether a user always possesses certain permissions across state changes. A similar concept is resiliency policy [3], which requires an access control system to be resilient to the absence of users. Following the preliminary version of this paper, Wang and Li [17] studied resiliency in workflow authorization systems. They proposed three levels of resiliency in workflow systems, namely, static resiliency, decremental resiliency and dynamic resiliency. Unlike the work by Li et al., the availability policy in [4] is a high-level requirement, and it is expressed in terms of restrictions on permission set and user set. AS shown in Theorem 2, SA policy is strict type of availability policy. Such policies are particularly useful when evaluating whether the access control configuration of a system is ready for emergency response. When an emergency such as a natural diaster or a terrorist attack occurs, an organization may need any teams of employees to respond to the emergency.

Policy-based authorization systems are becoming more common as information systems become larger and more complex. The overall authorization policy may be defined by different entities, which may produce conflicting authorization decisions. Arbitrary rules can be used to resolve Policy conflicts, but typically a generic resolution method is defined, such as first rule wins in firewalls or denials take precedence in ASL [18]. However, resolution of policy conflicts by manual intervention of policy administrator is a slow and ad hoc process and provides no guarantee on the optimality of the resulting interoperation system. Gong et al. [19] have investigated interoperation of systems employing multilevel access control policies. They have proposed several optimization techniques for resolution of interoperation conflicts. Ferrari and Thuraisingham have identified that several conflict resolution strategies may be useful depending on the domain [20]. In the current systems, rules and policy combination algorithms are defined on a static basis during policy composition, which is not desirable in dynamic systems with fast changing environments. Apurva Mohan et al. [21] propose a framework that supports the need for changing the rule and policy combination algorithms dynamically based on contextual information and also eliminates the need to recompose policies. The resolution for policy inconsistencies differs from policy conflicts that is resolved at compile-time. That means it is a static conflict resolution which is independent of access control system environments.

Policy inconsistencies may arise between safety and utility policies due to their opposite objectives. And in many cases, it is desirable for access control system to have both of safety and utility policies. Li et al. [4] attempts to address the problem of consistency checking for safety and availability in the context of access control. Based on the consistency checking method, it can help the policy administrator to specify reasonable access control policies without policy inconsistencies. However, this approach has its own shortcomings, the computing cost is usually unacceptable, and it does not consider optimization on tradeoff between safety and utility. In this paper, we provide a formal examination of policy inconsistencies resolution for safety and utility policies, especially for the coexistence of static separation-of-duty (SSoD) policies and strict availability (SA) policies. The experimental results show the validity of our approach. The resolution for policy inconsistencies is very important for policy administrators to specify reasonable access control policies when both safety and utility policies coexists.

6. Conclusion and future work

In this paper, we handled policy inconsistency of safety and utility policies based on the safety-utility tradeoff in the context of access control. We formally defined the policy inconsistency for the coexistence of safety policies and utility policies, and some key formal properties that resolved policy inconsistencies. We first reduced the complexity of reasoning about policy inconsistencies by static pruning and MIC sets; we then presented a systematic method for measuring safety loss and utility loss; Finally, we evaluated the safety-utility tradeoff, and presented two prioritized-based approaches to deal with policy inconsistencies. Our work can help the policy administrators to specify reasonable access control policies.

In the future research, we intend to address the policy inconsistencies by modifying policies rather than removing policies. It is difficult because there may be many choices, and to find the best choice is a challenging work. Continuing from Example 6, removing the SSoD policy e1 = ssod<{order, goods, invoice}, {alice, bob, carl}, 2>, or the SA policy f3 = sa<{order, goods}, {alice, bob, carl}, 2> can both resolve the policy inconsistency. Assuming that we modify e1 as e 1 = s s o d < { o r d e r , g o o d s , i n v o i c e } , { a l i c e , b o b } , 2 > , or modify f3 as f 3 = s a < { o r d e r , g o o d s } , { a l i c e , b o b } , 2 > . Then the policy inconsistency also can be resolved, and both of the safety loss and utility loss is lesser than removing e1 or f3.

Declarations

Acknowledgements

This work is supported by National Natural Science Foundation of China under Grant 60873225, Zhejiang Province Education Foundation under Grant No.201120897.

Authors’ Affiliations

(1)
College of Mathematics-Physical and Information Engineering, Zhejiang Normal University, Jinhua, China
(2)
College of Computer Science and Technology, Huazhong University of Science and Technology, Wuhan, China
(3)
Department of Computer Science, College of Engineering, Qatar University, Doha, Qatar

References

  1. Clark DD, Wilson DR: A comparison of commercial and military computer security policies. In Proceedings of 8th IEEE Symposium on Security and Privacy (SP). IEEE Computer Society Press, Oakland, California, USA; 1987:184-195.Google Scholar
  2. Li N, Mitchell JC, Winsborough WH: Beyond proof-of-compliance: security analysis in trust management. J ACM 2005, 52(3):474-514. 10.1145/1066100.1066103MathSciNetView ArticleGoogle Scholar
  3. Li N, Tripunitara MV, Wang Q: Resiliency policies in access control. ACM Trans Inf Syst Secur 2009, 12(4):113-137.View ArticleGoogle Scholar
  4. Li R, Lu J, Lu Z, Ma X: Consistency checking of safety and availability in access control. IEICE Trans Inf Syst Soc 2010, E93-D(3):491-502. 10.1587/transinf.E93.D.491View ArticleGoogle Scholar
  5. Benferhat S, El Baida R, Cuppens F: A stratification-based approach for handling conflicts in access control. In Proceedings of the 8th Symposium on Access Control Models and Technologies. Villa Gallia, Como, Italy; 2003:189-195.Google Scholar
  6. Li N, Tripunitara MV: Security analysis in role-based access control. ACM Trans Info Sys Secur 2006, 9(4):391-420. 10.1145/1187441.1187442View ArticleGoogle Scholar
  7. Dubois D, Lang J, Prade H: Possibilistic logic. In Handbook of Logic in Artifical Intelligence and Logic Programming. Volume 3. Oxford University Press, Oxford; 1994:439-513.Google Scholar
  8. Lu J, Li R, Lu Z, Hu J, Ma X: Specification and enforcement of static separation-of-duty policies in usage control. In Proceeding 12th Information Security Conference (ISC). Pisa, Italy; 2009:403-410.View ArticleGoogle Scholar
  9. Le Berre D, project leader: SAT4J: A satisfiability library for Java.2006. [http://www.sat4j.org/]Google Scholar
  10. Harrison MA, Ruzzo WL, Ullman JD: Protection in operating systems. Commun ACM 1976, 19(8):461-471. 10.1145/360303.360333MATHMathSciNetView ArticleGoogle Scholar
  11. Saltzer JH, Schroeder MD: The protection of information in computer systems. Proceed IEEE 2005, 63(9):1278-1308.View ArticleGoogle Scholar
  12. Sandhu R, Coyne E, Feinstein H, Youman C: Role-based access control models. Computer 1996, 29(2):38-47. 10.1109/2.485845View ArticleGoogle Scholar
  13. Crampton J: Specifying and enforcing constraints in role-based access control. In Proceedings 8th ACM Symposium on Access Control Models and Technologies (SACMAT). Villa Gallia, Como, Italy; 2003:43-50.Google Scholar
  14. Li N, Wang Q: Beyond separation of duty: an algebra for specifying high-level security policies. J ACM 2008, 55(3):1-46.MathSciNetView ArticleGoogle Scholar
  15. Li N, Tripunitara MV, Bizri Z: On mutually exclusive roles and separation-of-duty. ACM Trans Info Syst Secur 2007, 10(2):231-272.Google Scholar
  16. Chen L, Crampton J: Set covering problems in role-based access control. In Proceedings of 14th European Symposium on Research in Computer Security. Saint-Malo, France; 2009:689-704.Google Scholar
  17. Wang Q, Li N: Satisfiability and resiliency in workflow systems. In Proceedings 12th European Symposium on Research in Computer Security. Dresden, Germany; 2007:90-105.Google Scholar
  18. Jajodia S, Samarati P, Subrahmanian VS: A logical language for expressing authorizations. In Proceedings of 18th IEEE Symposium on Security and Privacy (SP). Oakland, California, USA; 1997:31-42.Google Scholar
  19. Gong L, Qian X: Computational issues in secure interoperation. IEEE Trans Soft Eng 1996, 22(1):14-23.Google Scholar
  20. Ferrari E, Thuraisingham B: Secure database systems. In Advanced Databases: Technology and Design. Edited by: Diaz O, Piattini M. Artech House, London; 2000.Google Scholar
  21. Mohan A, Blough DM: An attribute-based authorization policy framework with dynamic conflict resolution. In Proceedings of 9th Symposium on Identity and Trust on the Internet. New York, NY, USA; 2010:37-50.View ArticleGoogle Scholar

Copyright

© Lu et al; licensee Springer. 2011

This article is published under license to BioMed Central Ltd. This is an Open Access article distributed under the terms of the Creative Commons Attribution License (http://creativecommons.org/licenses/by/2.0), which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.

Advertisement