
It is possible to show that the model defined above “includes” GRBAC [1] and
E-P3P [2]. A GRBAC system is a triple (H, A, R), where H = {GH, T H, EH}
(GH is subject hierarchy, T H is object hierarchy and EH is environment hierar-
chy). A GRBAC policy rule [1] is a tuple (S, O, E, op, permission bit), where S ∈
GH, O ∈ T H, E ∈ EH, op ∈ A and permission bit ∈ {+, −}. There is no prece-
dence over GRBAC policy rules, hence the set P is absent. An E-P3P system is a tuple
(H, S, A, R, P), where H = {GH, T H, P H}, S = {O, C} (GH is subject hierarchy,
T H is object hierarchy, P H is purpose hierarchy, O is the set of obligations and C is
the set of conditions). An E-P3P policy rule [2] is a tuple (i, t, p, u, r, a,
o,
c), inside
which i ∈ P, t ∈ T H, p ∈ P H, u ∈ GH , r ∈ {+, −}, a ∈ A,
o ∈ O and
c ∈ C.
According to the definition of a policy rule, an access request α can be expressed
as α = (α
H
1
, ..., α
H
n
, α
S
1
, ..., α
S
m
, α
A
) where α
H
i
∈ H
i
or α
H
i
= null, n ≥ i ≥ 1;
α
S
i
∈ S
i
or α
S
i
= null, m ≥ i ≥ 0; α
A
∈ A. A set of policy rules Γ
α
is used
to validate α, where Γ
α
⊆ Γ . All policy rules in Γ
α
are called matching rules of α.
Matching rules must satisfy the following properties:
• ∀γ ∈ Γ
α
, α
H
i
≤ γ
H
i
, where n ≥ i ≥ 1.
• ∀γ ∈ Γ
α
, γ
S
i
= α
S
i
, where m ≥ i ≥ 0.
•
∀γ ∈ Γ
α
, γ
A
= α
A
.
The validation of α in Γ
α
consists of n sub-validations from α
H
1
to α
H
n
. That is,
∀α
H
i
∈ α where n ≥ i ≥ 1, α
H
i
needs to be validated according to the matching rule
set Γ
α
whether α
H
i
is authorized for α
A
. If and only if all of these hierarchy elements
are authorized for α
A
, α is granted.
∀γ ∈ Γ
α
, where γ = (γ
H
1
, ..., γ
H
n
, γ
S
1
, ..., γ
S
m
, γ
A
, γ
R
, γ
P
), we can assign a
tuple (γ
R
, γ
P
) to γ
H
1
, ..., γ
H
n
. An authorization of an element y ∈ H is a tuple
(ruling, precedence) inside which ruling ∈ R, precedence ∈ P; it is denoted as
A
i
y
where i is the index of the authorization. Due to the optional property of P, the
precedence entry of an authorization is also optional. The ruling entry of A
i
y
is denoted
as A
i
y
.ruling and the precedence entry of A
i
y
is denoted as A
i
y
.precedence. We call
an authorization explicitly defined by policy rules explicit authorization; obviously for
an explicit authorization A, A.ruling ∈ {+, −}. Authorization may also be derived by
hierarchy semantics, we call a derived authorization implicit authorization; for an im-
plicit authorization A, A.ruling ∈ {⊕, ª}. If an explicit authorization A
1
y
i
of y
i
∈ H
propagates to y
j
∈ H, then A
1
y
i
is converted to an implicit authorization A
1
y
j
by the
following processes: if A
1
y
i
.ruling = +, then A
1
y
j
.ruling = ⊕; if A
1
y
i
.ruling = −,
then A
1
y
j
.ruling = ª; A
1
y
j
.precedence = A
1
y
i
.precedence.
Here is an example of assigning explicit authorizations, assume Γ
α
= {γ
1
, γ
2
};
γ
1
= (..., γ
1H
i
, ..., read, +, 1), γ
2
= (..., γ
2H
i
, ..., read, −, 2), where γ
1H
i
= γ
2H
i
=
y ∈ H
i
; then A
1
y
= (+, 1), A
2
y
= (−, 2). Two authorizations A
i
y
, A
j
y
are inequable
if either A
i
y
.ruling 6= A
j
y
.ruling or A
i
y
.precedence 6= A
j
y
.precedence holds. When
an element of a hierarchy has more than one inequable authorizations, conflicts arise.
Our system provides methods of conflicts resolution, called authorization precedence
policy. In our system, conflicts can be solved either manually or automatically. For a
hierarchy H
i
= (Y
i
, ≤
i
), the System Security Officer (SSO) defines a manual resolution
set M R
i
⊆ Y
i
. If an element y ∈ MR
i
has authorization conflicts, we assign y with
139