*Manuscript
Click here to view linked References
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
domRBAC: An Access Control Model for Modern
Collaborative Systems
Antonios Gouglidis∗, Ioannis Mavridis
Department of Applied Informatics, University of Macedonia, 156 Egnatia Str., 54006,
Thessaloniki, Greece.
Abstract
Modern collaborative systems such as the Grid computing paradigm are capable of providing resource sharing between users and platforms. These
collaborations need to be done in a transparent way among the participants
of a virtual organization (VO). A VO may consist of hundreds of users and
heterogeneous resources. In order to have a successful collaboration, a list of
vital importance requirements should be fulfilled, viz. collaboration among
domains, to ensure a secure environment during a collaboration, the ability to enforce usage constraints upon resources, and to manage the security
policies in an easy and efficient way. In this article, we propose an enhanced
role based access control model entitled domRBAC for collaborative applications, which is based on the ANSI INCITS 359-2004 access control model.
The domRBAC is capable of differentiating the security policies that need
to be enforced in each domain and to support collaboration under secure
inter-operation. Cardinality constraints along with context information are
incorporated to provide the ability of applying simple usage management of
resources for the first time in a role-based access control model. Furthermore, secure inter-operation is assured among collaborating domains during
role assignment automatically and in real-time. Yet, domRBAC, as an RBAC
approach, intrinsically inherits all of its virtues such as ease of management,
and separation of duty relationships with the latter also being supported in
multiple domains. As a proof of concept, we implement a simulator based on
Corresponding author. University of Macedonia, Thessaloniki, Greece.
Email addresses: agougl@uom.gr (Antonios Gouglidis), mavridis@uom.gr (Ioannis
Mavridis)
URL: http://users.uom.gr/~agougl/ (Antonios Gouglidis)
∗
Preprint submitted to Computers and Security
January 13, 2012
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
the definitions of our proposed access control model and conduct experimental studies to demonstrate the feasibility and performance of our approach.
Keywords: Access control, Cross-domain authorization, Grid computing,
RBAC, Resource usage management, Secure inter-operation
1. Introduction
Modern collaborative systems are becoming the de facto platform for the
implementation of applications. These applications may vary in nature and
are capable of solving different types of problem sets posed from either the
scientific community or the business sector. Nevertheless, in most cases, the
need for excessive processing power and large storage space is required. In
collaborative systems, as the Grid, the notion of users, resources, and of virtual organizations (VOs) play an important role. To this effect, we explicitly
set the following definitions, mainly based on (Benantar, 2005; Chakrabarti,
2007; Ferraiolo et al., 2003; Foster & Tuecke, 2005; Sandhu & Samarati,
1994). A user in a Grid environment can be a set of user identifiers or a set
of invoked services that can perform on request one or more operations on
a set of resources. A resource in a Grid environment can be any sharable
hardware or software asset in a domain and upon which an operation can be
performed. Lastly, a domain can be defined as a protected computing environment, consisted of users and resources under an access control policy. The
collaboration that can be established among domains leads to the formation
of a virtual organization. Yet, as in all types of computing systems, the role
of access control in the Grid is to control and limit the actions or operations
that are performed by a user on a set of resources. In brief, it enforces the access control policy of the system, and at the same time it prevents the access
policy from subversion. Access control in the literature is also referred to as
access authorization or simply authorization. A Grid access control policy
can be defined as a Grid security requirement that specifies how a user may
access a specific resource and when. Such a policy can be enforced in a Grid
system through an access control mechanism. The latter is responsible for
granting or denying a user access upon a resource. Therefore, an access control model can be defined as an abstract container of a collection of access
control mechanism implementations, which is capable of preserving support
for the reasoning of the system policies through a conceptual framework.
In this article we propose the domRBAC model, which is an access control
2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
model designed to enforce access control under secure inter-operation in collaborative systems, as the Grid computing paradigm. The proposed model
is based on the domRBAC model defined in (Gouglidis & Mavridis, 2011).
Specifically, the domRBAC access control model is redefined in this paper
regarding the hierarchical domRBAC and role inheritance management. The
updated version of domRBAC is making use of more efficient algorithms and
data structures in the process of identifying a violation. Yet, it defines a new
function for preventing privilege escalation, which can be caused by a new
inter-domain role assignment. Moreover, since the definition of domRBAC is
based on the ANSI INCITS 359-2004 standard (ANSI, 2004), it also supports
all the components of the RBAC model, namely the core RBAC, hierarchical
RBAC, static separation of duty relations, and dynamic separation of duty
relations. The domRBAC access control model is defined in such way to be
both secure and efficient in order to cope with the requirements posed by
modern collaborative computing systems. Such functionality includes along
with the foregoing, support for multiple domains and the capability of applying simple usage management policies upon resources for the first time in a
role based approach. By the term of usage management we refer to the management of the usage of resources across and within domains (Jamkhedkar
et al., 2010).
The remainder of this paper is organized as follows: Section 2 provides
information about related research and presents our motivation. Section 3
provides sufficient details regarding the formal definition of domRBAC, and
section 4 provides implementation aspects concerning the former definitions.
Section 5 presents a prototype simulator that we have implemented according
to our access control model definitions and details some experimental results.
In section 6 we compare the proposed access control model with existing
solutions, where applicable. Finally, section 7 summarizes this article.
2. Related Work and Motivation
In collaborative systems like the Grid computing paradigm, various access
control models are implemented into mechanisms in order to preserve support
for the reasoning of the system’s policies. The most mainstream access control models are based on two models; viz. role-based access control (RBAC)
and attribute-based access control (ABAC), which is mainly introduced to
overcome a number of RBACs shortcomings (Yuan & Tong, 2005). However,
the latter type of access control models lack in most cases of a proper formal
3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
definition, apart from the usage control model (UCONABC ) (Sandhu & Park,
2003), which encompasses traditional access control, trust management and
digital rights management for the protection of digital resources.
The RBAC access control model has received considerable attention from
researchers, mainly due to its abstraction and generalization. It is abstract
because it includes only properties that are relevant to security, and it is
general since it supports various designs that can all be interpreted as valid
ones. More of RBACs virtues are the support of a significant number of
principles, namely the least privilege, separation of administrative functions
and separation of duties (Sandhu et al., 1996). Furthermore, RBAC is capable of supporting constraints, as the static and dynamic separation of duty
relationships, and last but not least it can enforce role based administration.
However, RBAC lacks decentralized management of policies and it cannot
support any type of usage management.
In order for RBAC to overcome some of its limitations regarding collaboration, a number of solutions were proposed that had to do with secure
inter-operation, which is capable of tackling this issue. Research in (Shafiq
et al., 2005) proposed an integer programming (IP)-based approach for optimal resolution of the examined conflicts. A policy integration framework
is used for the merging of the individual RBAC policies into a global policy.
However, this approach is not dynamic since the global policy is not a result of an incremental composition of the inter-domain policies. In (Chen &
Crampton, 2007) an inter-domain role-mapping approach based on the least
privilege principle is suggested. Yet, the applied greedy algorithm may not
compute optimal solutions, and from a security perspective may fail to find a
safe solution. Research in (Shehab et al., 2005) presents a protocol for secure
inter-operation, which is based on the idea of access paths and access path’s
constraints. Nonetheless, the protocol does not check for violations during an inter-domain role assignment. Rather, it assumes that inter-domain
role mappings already exist. In (Zhang & Parashar, 2004) the DRBAC is
presented as a dynamic context-aware access control model for Grid applications. However, the management of inter-domain policies is not tackled.
Nevertheless, resource usage management, to the best of our knowledge, is
completely absent from existing RBAC-based models.
Attribute based access control (ABAC) has lately gained a lot of attention
due to the development of Internet based distributed systems. However, in
contrast to RBAC, attribute based access control, as already stated, has not
been standardized yet. The only exception is the UCONABC model. In such
4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
access control approaches, access decisions are provided on resources based
on the requesters owned attributes. The advantage of these approaches is
that it is possible to provide access to users in a collaborative environment
without the need for them to be known by the resource a priori. Thus,
they natively support distributed access control and collaboration among
domains. UCONABC is the only one that is capable of enforcing usage control. Nonetheless, functionalities such as administration and delegation are
still absent. Another ABAC approach that gained considerable attention is
the eXtensible Access Control Markup Language (XACML) that is an OASIS
standard (OASIS, 2011). In XACML, the access control policies are specified
in an XML-based language and exchanged among systems over the Web. A
basic characteristic of XACML is its ability to support access control in a
interoperable and flexible way. However, there are open world scenarios that
XACML is unable to support. A number of XACML’s shortcomings along
with a number of enhancements to be made to the standard are presented in
(Ardagna et al., 2011).
In Grid systems, the existence of various access control models, inevitably
led to the implementation of different Grid authorization mechanisms. Additionally, each mechanism tried to further implement features not intrinsically
supported by the implemented model (e.g. support of inter-domain collaborations, quality of service and so on). Representative authorization mechanisms
in Grid systems are the Community Authorization Service (CAS) (Pearlman
et al., 2002), the Virtual Organization Membership Service (VOMS) (Alfieri
et al., 2004), Akenti (Thompson et al., 2003), PERMIS (Chadwick et al.,
2003; Chadwick, 2005), and Usage Based Authorization (Zhang et al., 2006).
Regarding mobile Grid systems, there are various architectures that have
been proposed to provide solutions, as the virtual cluster approach in (Phan
et al., 2002), the mobile OGSI.NET (Chu & Humphrey, 2004) and the Akogrimo project (Racz et al., 2007). Yet, the proposed authorization mechanisms
are complementary to existing Grid authorization services, as the A4C infrastructure in Akogrimo.
In collaborative systems as the Grid, we identify a list of non-functional
access control requirements that must be fulfilled. These are, as identified
in (Gouglidis & Mavridis, 2012), the support of interoperability among participating domains, the existence of a secure collaborative environment, the
support of resource usage management and ease of policy management. After an analysis of existing access control approaches, namely the RBAC and
ABAC, it is concluded that the aforementioned cannot fully support all the
5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
requirements that are posed by modern collaborative systems. More specifically, it is realized that neither of them can tackle the difficulties risen by the
defined Grid access control requirements flawlessly. Yet, the implementation
of the access control approaches into a Grid authorization mechanism has
the same level of applicability in Grid applications. This means that also the
mechanisms cannot handle well the defined requirements of modern collaborative systems. This is mainly a result of applying general purpose access
control models that are not specifically designed to tackle the requirements
of such systems. Hence, motivated by the absence of an access control model
able to fulfill the requirements of modern collaborative systems, as the Grid,
we further proceed with the definition of a new access control model.
3. The domRBAC Access Control Model
We define our proposed access control model as an enhancement of the
ANSI INCITS 359-2004 (ANSI, 2004). Although the ANSI standard cannot
originally support the extra functionality required by modern collaborative
systems, it provides a solid background for a new role based access control
model. This section discusses the domRBAC model in a systematic manner, by providing all the required modifications and additions in the formal
definitions of its base model.
3.1. Elements
The domRBAC model consists of the following six basic elements: users,
roles, sessions, operations, objects, and containers. A basic difference between the ANSI INCITS 359-2004 and domRBAC is that the latter can support access control among participating domains. A domain can be defined as
a protected computing environment, consisted of users and resources/objects
under an access control policy. Such a functionality is of vital importance
since it governs inter-operations among domains. Figure 1 illustrates the
proposed access control model. Henceforth, we use the terms object and
resource interchangeably.
Sessions, objects and operations are three concepts that are commonly
used in access control. The latter two form a new element of permissions. A
permission or a privilege is an approval to perform an operation on one or
more RBAC protected objects. In domRBAC, the aforementioned elements
provide the same functionality in their familiar sense. As in all role-based
6
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
models, sessions are dynamic elements. They are used as intermediary entities between the users and roles elements. The user element usually depicts
a physical person who interfaces with a computer system. User elements,
in role-based models, are assigned to role elements and vice-versa. Sessions,
in role-based models, are used to enforce dynamic security policies to computing systems. Each user can be associated with many sessions, and each
session may have a combination of many active roles. In regard to objects,
they are used to represent an entity in a computing system. Control of access
to objects can be coarse-grained or fine-grained, depending on the computing
system. For instance, the sharing of files and exhaustible system resources
can be considered an example of coarse-grained access control. On the contrary, the granting of access in a database on the level of record or field is an
example of fine-grained access control. Yet, in domRBAC, an object can be
associated with many container elements. The container element is explained
in detail later in this section. Lastly, the element of operations provides a
set of allowed operations on objects. Both operations and objects are system
dependent. This means that different types of operations applies to different
objects.
Roles in domRBAC are enriched with the notion of domains, and are expressed in pairs of domains and roles. For the naming of the roles, we use the
DomainRole notation. Thus, the Domain prefix indicates the role’s domain
name, and the Role suffix indicates the name of the role. A formal definition
is given later in definition 1.ii. The naming notation is used only for the element of roles. Nonetheless, when assigning users or permissions to roles, it is
understood that the former two are also bounded by the role’s domain name.
Through the role’s naming convention, the domRBAC model can distinguish
the security policies enforced among the autonomous domains.
The container is an abstract element that incorporates additional decision factors employed by the access decision function. The container can
handle both the environment and usage level information. The environment
attributes are used to set time constraints, spatial information and so on
and so forth. Yet, the usage level attributes can limit the usage of shared
resources. The information specified in the container element is based on
(Neumann & Strembeck, 2003). Thus, a container attribute can represent
a certain property of the environment or usage levels. A container function provides a mechanism to obtain the current value of a specific container
attribute. Lastly, a container condition is a predicate that compares the
current value of a container attribute either with a predefined constant, or
7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
another container attribute of the same domain. A significant enhancement
of domRBAC, when compared to the ANSI INCITS 359-2004, is that the
element of container can support resource usage policies.
Moreover, domRBAC can support additional constraints, namely static
and dynamic role cardinality constraints, which can be applied to the process
of role assignment and role activation, respectively. This means that the
number of roles that can be assigned to and/or activated by the users of
a system can be managed. The constraint of role cardinality is introduced
to fulfill both requirements posed by the system administrators as well as
resource owners. Administrators can use static role cardinality to limit the
assignment of critical roles with users. Furthermore, dynamic role cardinality
can be used for setting quality of service rules. Resource owners can manage
the usage of their resources by limiting the number of users that utilizes them.
Thus, it is feasible to create license agreements between users and resource
owners. This leads users to receive high quality services in a computing
system.
Furthermore, the domRBAC model supports the identification of interdomain violations, in an automated way. The inter-domain violations are
caused due to new immediate inter-domain role inheritance relations. The
supported violations are: cyclic inheritance, privilege escalation, violation
of static separation of duty relations in a domain, and violation of dynamic
separation of duty relations in a domain. The domRBAC model is designed
to preserve the security principle among collaborators. Nevertheless, the
autonomy of a domain may be willing to be compromised (Shafiq et al.,
2005). In the rest of this section, all formal definitions are given in the Z
formal description language (ISO/IEC-13568, 2002), as it also happens in
the ANSI INCITS 359-2004 standard.
3.2. Definitions
3.2.1. Definition 1. Core domRBAC.
The formal definition of core domRBAC model, based on (ANSI, 2004),
is extended as follows:
i. USERS, ROLES, OPS, OBS, CNTRS, stands for users, roles, operations, objects and containers, respectively.
ii. ddomain rrole ∈ ROLES is a role expressed in a DomainRole format, where
Domain denotes a domain name and Role denotes a role name. For
example, if a role rm belongs to a domain di , we write di rm .
8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
iii. UA ⊆ USERS × ROLES, a many-to-many mapping user-to-role assignment relation.
iv. assigned users(di rm :ROLES) → 2U SERS , the mapping of role di rm onto
a set of users.
Formal definition: assigned users(di rm ) = {u ∈ USERS | (u,di rm ) ∈
UA}.
v. PRMS = 2(OP S×OBS), the set of permissions.
vi. PA ⊆ PRMS × ROLES, a many-to-many mapping permission-to-role
assignment relation.
vii. assigned permissions(di rm :ROLES) → 2P RM S , the mapping of role di rm
onto a set of permissions.
Formal definition: assigned permissions(di rm )={p ∈ PRMS | (p,di rm )
∈ PA}.
viii. CA ⊆ CNTRS × OBS, a many-to-many mapping container-to-object
assignment relation.
ix. assigned containers(o: OBS) → 2CN T RS , the mapping of object o onto
a set of containers.
Formal definition: assigned containers(o)={c ∈ CNTRS | (c,o) ∈ CA}.
x. Op(p: PRMS) → {op ⊆ OP S}, the permission to operation mapping,
which gives the set of operations associated with permission p.
xi. Ob(p: PRMS) → {ob ⊆ OBS}, the permission to object mapping,
which gives the set of objects associated with permission p.
xii. SESSIONS = the set of sessions.
xiii. session user(s: SESSIONS) → USERS, the mapping of session s onto
a corresponding user.
xiv. session roles(s: SESSIONS) → 2ROLES , the mapping of session s onto
a set of roles.
Formal definition: session roles(s) ⊆ {di rm ∈ ROLES | (session user(s),di rm )
∈ UA}.
xv. avail session perms(s: SESSIONS)
→ 2P RM S , the permissions available
S
to a user in a session = di rm ∈session roles(s) assigned permissions(di rm ).
3.2.2. Definition 2. Hierarchical domRBAC.
The hierarchical domRBAC is defined to cope with inter-domain role
inheritance relations. Henceforth, we use i and j to refer to domains, where
+
i = j if we refer to an intra-domain relation, and i = j if we refer to interdomain relations (intra − domain ⊆ inter − domain).
9
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
i. RH ⊆ ROLES × ROLES is a partial order on ROLES called the
inheritance relation, written as ≥, where di rm ≥ dj rn only if all permissions of dj rn are also permissions of di rm , and all users of di rm are
also users of dj rn . Formal definition: di rm ≥ dj rn ⇒
authorized permissions(dj rn ) ⊆ authorized permissions(di rm )∧
authorized users(i,j) (di rm ) ⊆ authorized users(i,j)(dj rn ).
ii. authorized users(i,j) (di rm : ROLES) → 2U SERS , the mapping of role
di rm onto a set of users in the presence of a role hierarchy.
Formal definition: authorized users(i,j)(di rm ) = {u ∈ USERS|dj rn ≥
di rm ∧ (u, dj rn ) ∈ UA}.
iii. authorized permissions(i,j) (di rm : ROLES) → 2P RM S , the mapping
of role di rm onto a set of permissions in the presence of a role hierarchy.
Formal definition: authorized permissions(i,j) (di rm ) = {p ∈ P RMS|di rm ≥
dj rn ∧ (p, dj rn ) ∈ P A}.
Definition 2.iii, in domRBAC, is based on the corrected formal definition
of authorized permissions, as this is identified in (Li et al., 2007).
3.2.3. Definition 3. Constrained domRBAC.
Separation of duty (SoD) is a fundamental security principle that is supported in domRBAC. SoD serves as a requirement for critical operations,
which are divided among two or more people, so that no single individual
can compromise security. SoD methods are categorized into two broad categories, namely that of static and dynamic. Static SoD (SSD) are constraints
that are placed on roles at the time roles are assigned to users. SSD are
further defined in the presence of a hierarchy, where it works in the same
way as in the latter case except that when enforcing the constraints both inherited roles and directly assigned roles are considered. Dynamic SoD (DSD)
are constraints that are invoked when users are using the system to activate
already assigned roles (Ferraiolo et al., 2003).
Apart from the support of static and dynamic separation of duty constraints in each domain, domRBAC supports static and dynamic role cardinality constraints. Static role cardinality constraints can restrict the number
of users assigned to a role, to a maximum number. Moreover, dynamic role
cardinality constraints can restrict the number of users that activate a role,
to a maximum number in all concurrent sessions. In the following, we redefine SSD and DSD in the presence of domains, and we define static and
dynamic role cardinality.
10
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
i. Static Separation of duty (SSD): SSD ⊆ (2ROLES × N) is a collection of pairs (di rs,n) in SSD, where each di rs is a role set in a domain
di , t a subset of roles in di rs, and n is a natural number ≥2, with the
property that no user of domain di is assigned to n or more roles from
the set di rs in each (di rs,n) ∈ SSD.
Formal definition:
∀(dT
i rs, n) ∈ SSD, ∀t ⊆ di rs : |t| ≥ n
⇒ di rm ∈t assigned users(di rm ) = ∅.
ii. SSD in the presence of a hierarchy: In the presence of a role hierarchy SSD is redefined based on authorized users rather than assigned
users as follows:
Formal definition:
∀(dT
i rs, n) ∈ SSD, i = j, ∀t ⊆ di rs : |t| ≥ n
⇒ di rm ∈t authorized users(i,j)(di rm ) = ∅.
iii. Dynamic Separation of Duty (DSD): DSD ⊆ (2ROLES × N) is a
collection of pairs (di rs,n) in DSD, where each di rs is a role set and n
a natural number ≥2, with the property that no subject may activate
n or more roles from the set di rs in each dsd ∈ DSD.
Formal definition:
∀di rs ∈ 2ROLES , n ∈ N, (di rs, n) ∈ DSD ⇒ n ≥ 2.|di rs| ≥ n, and
∀s ∈ SESSIONS, ∀di rs ∈ 2ROLES ,
∀role subset ∈ 2ROLES , ∀n ∈ N, (di rs, n) ∈ DSD,
role subset ⊆ di rs, role subset ⊆ session roles(s)
⇒ |role subset| < n.
iv. Static role cardinality (SRC): If static role cardinality constraint is
required for any role di rm , then di rm cannot be assigned to more than
a maximum number of users.
SRC ⊆ (ROLES × N) is a collection of pairs (di rm , n) in static role
cardinality, where di rm is a role rm in a domain di and n is a natural
number ≥ 0, with the property that the number of users assigned with
role di rm cannot exceed the number n in each (di rm , n) ∈ SRC.
Formal definition:
di rm ∈ ROLES, n ∈ N, n ≥ 0,
∀(di rm , n) ∈ SRC ⇒ |assigned users(di rm )| ≤ n.
v. SRC in the presence of a hierarchy: In the presence of a role hierarchy static role cardinality constraint is redefined based on authorized
users rather than assigned users as follows:
11
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
+
di rm ∈ ROLES, i = j, n ∈ N, n ≥ 0,
∀(di rm , n) ∈ SRC ⇒ |authorized users(i,j) (di rm )| ≤ n.
vi. Dynamic role cardinality constraint (DRC): If dynamic role cardinality is required for any role di rm , then di rm cannot be activated for
more than a maximum number of authorized users in all concurrent
sessions of a system.
DRC ⊆ (ROLES × N) is a collection of pairs (di rm , n) in dynamic
role cardinality, where di rm is a role rm and n is a natural number ≥ 0,
with the property that the number of concurrent role activations by
users authorized for role di rm cannot exceed the number n.
Formal definition:
di rm ∈ ROLES, n ∈ N, n ≥ 0,
P
∀s ∈ SESSIONS, (di rm ,n) ∈ DRC ⇒ |di rm ∩ session roles(s)| ≤ n.
After defining both the container element and the DRC constraint, we
elaborate on the supported types of resource usage policies. The first type is
via the container element, by declaring the required attribute value, function
and condition of the container. However, this type of resource usage policy
is unable to provide quality of service to consumers since each container
element restricts the usage of a resource on per role activation. A second
type of resource usage policy with quality of service capabilities is provided
via the combination of the container element and DRC constraint. This type
of resource usage policy enforcement restricts the usage of a resource on all
concurrent role activations.
3.2.4. Definition 4. Role Inheritance Management.
The domRBAC model aims at providing a comprehensive solution to secure inter-operation based on the principles of security, autonomy and containment (Ravi Sandhu, 2008). In order to establish a secure inter-operation
among the participating domains, domRBAC provides two new administrative commands for managing inter-domain role inheritance relations. The
administrative commands can be used by the administrator of each domain,
according to the interoperability requirements of each system. Their objective is to check for a number of violations before committing an inter-domain
role inheritance relation. Thus, based on the definitions 4.i, 4.ii, 4.iii and
4.iv, we introduce the InterdomainPolicyViolation function for the checking
of inter-domain violations due to the inter-domain role inheritance relations,
and two new inter-domain administrative commands AddInterdomainInheri12
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
tance and DeleteInterdomainInheritance for establishing and discarding immediate inter-domain inheritance relationships, respectively. Intra-domain
management not listed below is handled the same as in the ANSI INCITS
359-2004 standard.
i. Intra-domain violation of role assignment: As stated in (Shafiq
et al., 2005) an inter-domain policy causes a violation of role assignment
constraint of domain di if it is allowed to a user u of domain di to access
a local role di rm even though u is not directly assigned to di rm or any
of the roles that are senior to di rm in the role hierarchy of domain di .
We identify role assignment violations by checking for cyclic inheritance
in the inter-domain role hierarchy graph. Role assignment violations
can occur due to the addition of a new immediate inter-domain inheritance relationship di rmasc ≫ dj rndesc between existing roles di rmasc ,
dj rndesc , where di rmasc is a role ascendant of dj rndesc .
ii. Privilege escalation: Apart from cycle inheritance, we identify another case that may lead to privilege escalation due to a new interdomain role assignment. The applied methodology ensures that the
principle of security is preserved during the collaboration at the cost
of reducing inter-operation. The security principle ensures that if an
access is not permitted within an individual domain, it must not be
permitted under secure inter-operation.
iii. Intra-domain violation of SSD relationships: An inter-domain
policy causes an intra-domain violation of SSD relationships of domain
di if it is allowed to a user u of domain di to be assigned to any two
conflicting roles di rm and di rn of domain di . We identify violations
of SSD relationships, using the following properties (Ferraiolo et al.,
2003):
Property 1: If there are two roles di rm and dj rn that are mutually
exclusive, then neither one should inherit the other, either directly or
indirectly.
Property 2: If there are two roles di rm and dj rn that are mutually
exclusive, then there can be no third role that inherits both of them.
iv. Intra-domain violation of DSD relationships: An inter-domain
policy causes an intra-domain violation of DSD relationships of domain
di if it is allowed to a user u of domain di to activate any two conflicting roles di rm and di rn of domain di . We identify violations of DSD
relationships similarly to definition 4.iii due to the following property
(Ferraiolo et al., 2003):
13
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
Property 3: If SSD holds, then DSD is maintained. Thus, properties 1
and 2 must be guaranteed.
v. InterdomainPolicyViolation: This function checks if any of the
aforementioned violations occur during the creation of a new interdomain role assignment. Hence, it returns true if a violation occurs
and false otherwise.
vi. AddInterdomainInheritance: This command establishes a new immediate inter-domain inheritance relationship di rmasc ≫ dj rndesc between existing roles di rmasc , dj rndesc . The command is valid if and only
if di rmasc and dj rndesc are members of the ROLES dataset, di rmasc is not
an immediate ascendant of dj rndesc , and violations of role assignment
and of SSD and DSD relationships do not occur.
Formal definition:
AddInterdomainInheritance(di rmasc , dj rndesc : NAME)⊳
di rmasc , dj rndesc ∈ ROLES;
InterdomainP olicyV iolation(dj rndesc ) = f alse;
¬(di rmasc ≫ dj rndesc ); ¬(dj rndesc ≥ di rmasc )
≥′ =≥ ∪{dr, dq : ROLES|dr ≥ di rmasc ∧ dj rndesc ≥ dq • dr 7→ dq}⊲
vii. DeleteInterdomainInheritance: This command deletes an existing immediate inter-domain inheritance relationship di rmasc ≫ dj rndesc .
The command is valid if and only if the roles di rmasc and dj rndesc are
members of the ROLES dataset, and di rmasc is an immediate ascendant of dj rndesc . The new inter-domain inheritance relation is computed
as the reflexive-transitive closure of the immediate inheritance relation
resulted after deleting the relationship di rmasc ≫ dj rndesc .
Formal definition:
DeleteInterdomainInheritance(di rmasc , dj rndesc : NAME)⊳
di rmasc , dj rndesc ∈ ROLES; (di rmasc ≫ dj rndesc )
≥′ = (≫ {di rmasc 7→ dj rndesc })∗ ⊲
4. Implementation Aspects
In this section a series of implementation aspects of the model are discussed. Our approach utilizes algorithms derived from the theory of graphs.
This is done since firstly graphs help in the visualization of inter-domain
role inheritance relations, secondly adjacency lists make it easy to find subgraphs and finally adjacency queries are fast. Knowing that role hierarchies
14
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
are represented as sparse graphs, we choose to use linked lists for their representation instead of matrices since the former is more efficient. A list of
implementation aspects follow in the rest of this section.
i. G = (V, E) is the inter-domain role hierarchy directed graph, which
consists of a finite, nonempty set of role vertices V ⊆ ROLES and a
+
set of edges E. Each edge is an ordered pair (di rm , dj rn ), i = j of role
vertices that indicates the following relation: di rm ≥ dj rn .
ii. A path in a G graph is a sequence of edges (di r1 , di r2 ), (di r2 , di r3 ), . . .,
(di rn−1 , di rn ). This path is from role vertex di r1 to role vertex di rn and
has length n-1. The path represents not immediate inheritance relation
between role vertex di r1 and di rn .
iii. An adjacency list representation for graph G = (V, E) is an array
L of |V | lists, one for each role vertex in V . For each role vertex
di rm , there is a pointer Ldi rm to a linked list containing all the role
vertices that are adjacent to di rm . A linked list is terminated by a nil
pointer. Henceforth, we refer to the adjacency list as AG . We also
set AG [di rm , dj rn ] = 1 if there is an edge from role vertex di rm to role
vertex dj rn , and AG [di rm , dj rn ] = 0 otherwise. Despite the fact that
the latter notation is mostly used in matrices, we choose to use it also
in linked lists for simplicity and readability reasons.
iv. The transitive closure of a graph G = (V, E) is a graph G∗ = (V, E ∗ )
such that E ∗ contains an edge (u, v) if and only if G contains a path
(of at least one edge) from u to v. The algorithm used to implement
the transitive closure is based on the detection of strong components
(Nuutila, 1995; Purdom, 1970), having a worst case time complexity
of O(|V ||E|). Henceforth, we refer to the transitive closure list of a
directed graph G = (V, E) with adjacency list AG as TG . Furthermore,
we set TG [di rm , dj rn ] = 1 if there is a path from di rm to dj rn of length
1 or more, and 0 otherwise.
In turn, we provide the algorithms that implement definitions 4.i to 4.v.
v. Intra-domain violation of role assignment: The algorithm for
detecting cycles is given in Figure 2. In short, we iterate onto every
vertex di r of the transitive closure list, and for each adjacent vertex dj r
to vertex di r we check if vertex di r = dj r. In such case, TG [di r, dj r] = 1
since there is a path from di r to dj r of length one or more.
15
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
vi. Privilege escalation: We describe the algorithm that implements the
current function using an example. Assume that we have two domains
d1 and d2 , as shown in Figure 3. In domain d1 we have role d1 ra that
inherits role d1 rb . Likewise, in domain d2 we have role d2 rc that inherits
roles d2 rd and d2 re . Let users u1 and u2 be assigned to roles d2 rd and
d2 re , respectively. At first, we commit an inter-domain role assignment
between roles d2 rd and d1 ra (d2 rd inherits d1 ra ). The latter role assignment does not raise any problem to the security nor the autonomy
principles. Now, if we try to make a new inter-domain role assignment
between d1 rb and d2 re (d1 rb inherits d2 re ), user u1 of domain d2 can
then activate role d2 re , even though it was not assigned with him/her
at the beginning. Through this process, a user can get more privileges
in his/her parent domain. Thus, in domRBAC, we identify such cases
and we reject the inter-domain role assignments. In order to identify
this kind of privilege escalation cases we work as follows. Assume that
we want to make the aforementioned inter-domain role assignment between roles d1 rb and d2 re (d1 rb inherits d2 re ). We gradually check for
each role in the target domain d2 if there is a role d2 rx that may lead its
assigned users to gain more privileges in their parent domain. To identify such cases we assume that the initial inter-domain role assignment
can be applied and we check for each role d2 rx , which is in equal or lower
depth when compared with role d2 re , if TG [d2 re , d2 rx ] 6= TGd2 [d2 re , d2 rx ]
or TG [d2 rx , d2 re ] 6= TGd2 [d2 rx , d2 re ], where TGd2 is the transitive closure
list of domain d2 with all inter-domain role assignments excluded. If
yes, then we raise an error and we discard the inter-domain role assignment. Otherwise, we commit the inter-domain role assignment. The
algorithm for preserving the security principle is given in Figure 4. For
simplicity reasons, we describe the algorithm using the TG , TGi notation that was previously defined, instead of describing analytically the
iterations onto the list data structures.
vii. Intra-domain violation of SSD relationships: The algorithm for
detecting intra-domain violations of SSD relationships is given in Figure
5. In more detail, we check for each pair of SSD relationship, if the new
role assignment raises an error. In order to do so, we iterate onto the
transitive closure list and we firstly check for each SSD pair if Property 1
is being violated. If yes, a violation has been occurred and the function
returns true. Otherwise, we continue to check for each SSD pair if
Property 2 is being violated. If yes, a violation has been occurred and
16
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
the function returns true. Otherwise, no violation has been occurred
and the function returns false. Specifically, Property 1 is maintained
in lines 2-11, and Property 2 in lines 12-19.
viii. Intra-domain violation of DSD relationships: The algorithm for
detecting intra-domain violations of DSD relationships is given in Figure 6.
ix. InterdomainPolicyViolation: Figure 7 presents the implementation of the function with function parameter di rndesc with the latter being a role that can be inherited by any role di rnasc . It is worthy to mention that the function parameter is only required by the sp violation
function. All the other functions check for violations in all domains.
The following example illustrated in Figure 8 shows how the aforementioned functions are used to identify any of the supported violations. Let’s
assume a multi-domain access control policy that allows collaboration between domain d1 and domain d2 . Domain d1 has the following roles: d1 ra ,
d1 rb , d1 rc , d1 rd and d1 re . Role d1 ra inherits all permissions of d1 rb which
further inherits d1 re . Role d1 rc inherits all permissions of d1 rd which further
inherits d1 re . An SSD relation is specified for d1 rb and d1 rc meaning that
these roles cannot be assigned to the same user simultaneously. Domain
d2 has the following roles: d2 rf and d2 rg . Role d2 rf inherits all permissions of d2 rg . The multi-domain access control policy defines the following
inter-domain inheritance relationships between domains d1 and d2 , which are
applied in the following chronological order.
(a) Role d1 rb inherits role d2 rg .
(b) Role d2 rg inherits role d1 rc .
The inter-domain role relationship described in (a) does not raise any of the
discussed violations. Regarding the inter-domain role relationship in (b) we
work as follows:
Step 1. Assuming that the inter-domain role relationship in (b) can be
applied, the required adjacency and transitive closure list representations
are constructed, as follows:
17
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
V ertex
d 1 ra :
d 1 rb :
d 1 rc :
AG =
d
1 rd :
d 1 re :
d
r :
2 f
d 2 rg :
Linked list
V ertex
d1 rb → nil
d 1 ra :
d1 re → d2 rg → nil
d 1 rb :
d1 rd → nil
AGd1 =
d
d1 re → nil
1 rc :
dr :
nil
1 d
d 1 re :
d2 rg → nil
d1 rc → nil
V ertex
d 1 ra :
d 1 rb :
d 1 rc :
TG =
d 1 rd :
d 1 re :
d
r :
2 f
d 2 rg :
TGd1
Linked list
d1 rb → nil
d1 re → nil
d1 rd → nil
d1 re → nil
nil
Linked list
d1 rb → d1 rc → d1 rd → d1 re → d2 rg → nil
d1 rc → d1 rd → d1 re → d2 rg → nil
d1 rd → d1 re → nil
d1 re → nil
nil
d2 rg → d1 rc → d1 rd → d1 re → nil
d1 rc → d1 rd → d1 re → nil
V ertex
d 1 ra :
d 1 rb :
=
d 1 rc :
d
r :
1 d
d 1 re :
Linked list
d1 rb → d1 re → nil
d1 re → nil
d1 rd → d1 re → nil
d1 re → nil
nil
Step 2. The InterdomainP olicyV iolation function is executed using the
d1 rc as function parameter. In turn, the rest functions are executed, namely
the ci violation(), sp violation(d1 rc ), ssd violation(), and dsd violation().
The only existing SSD relationship pair is that of (d1 rb , d1 rc ). The computations are performed based on the predefined algorithms. As resulted,
two different types of violations are identified. The first is identified by the
sp violation(d1 rc ) function call. This happens because during the collaboration, role d1 ra inherits role d1 rc . However, the latter inheritance relationship
did not exist in the initial domain d1 , thus, it may lead to privilege escalation. A second violation is determined by the ssd violation() function, since
18
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
it identifies that the inter-domain relationship allows to role d1 rb to access
the permissions of role d1 rc through d2 rg . This is not permissible, since the
former two roles are mutually exclusive. The identification of the two violations will discard the inter-domain inheritance relationship, assumed in the
hypothesis of step 1.
Concerning the implementation of the domRBAC model, a number of
performance issues had to be solved. Such issues were related to the need
for continually re-creating new adjacency and transitive closure lists. Hence,
when the re-creation of the adjacency list is required, we update (insert or
delete) only the parts of the structure that needs to change, and not the whole
adjacency list. In a similar way to the update operation of the adjacency list,
there is a need to update the transitive closure, when we add a new edge to
a graph, or remove an existing one. To improve the construction time of the
transitive closure list, we do not re-create it from scratch. Instead the only
new paths we add are the ones which use the new edge (u, v). These paths
will be of the form a
u→v
b, where
is used as a logical connective
and interpreted as leads to. We can find all these new paths by looking in
the old transitive closure for the vertices a ∈ A which had paths to u and
for vertices b ∈ B which v had paths to.
S The new edges
S in the transitive
closure will then be (a, b), where a ∈ A u and b ∈ B v. If we represent
the transitive closure graph G with an adjacency matrix, we can very easily
find the sets A and B. A will include all the vertices which have a one (1)
in the column u and B will be all the vertices which have a one (1) in the
row v. Since the number of vertices in each set A or B is bounded by V ,
the total number of edges needed to be added is O(V 2 ) (Carlstrom, 2004).
However, since information is stored in lists, the equivalent total number of
edges needed to be added becomes significantly lower.
5. Simulation and Experimental Study
This section introduces the overall architecture of the simulator, which
implements the part that is responsible for the management of policies since
the majority of domRBAC’s enhancements are heavily depended on the management of inter-domain policies in real-time. The goal of the simulator is to
produce a series of experimental results, so as to check the applicability and
efficiency of the domRBAC during collaboration.
19
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
5.1. The domRBAC Simulator
The domRBAC simulator is capable of checking security policies and to
decide either to commit or reject a policy. Hence, it serves as an Access
Control Decision Function (ADF), which together with the Access Control
Enforcement Function (AEF) implements the concept of reference monitor
(Ferraiolo et al., 2003). An ADF is responsible for the making of access
control decisions. The decisions are made based on information applied by
the access control policy rules, the context in which the access request is
made, and the Access Control Decision Information (ADI) (ITU, 1995). The
ADI is a portion in the Access Control Information (ACI) function, which
includes any information used for access control purposes, including contextual information. Lastly, the AEF is responsible for the enforcement of the
decision taken from the ADF. The concept of reference monitor in open systems has been standardized with the X.812 access control framework (ITU,
1995). The core simulator is implemented in the Debian Linux 2.6.32-5-686
platform using the C++ 4.4.5 programming language and making use of the
BOOST 1.42.0 C++ library (Boost, 2011). The graphical user interface is
built using the Qt 4.6.3 (Nokia, 2011).
Figure 9 illustrates the overall architecture of the domRBAC simulator.
The simulator is capable of reading access control policies from two different types of input files. The first file type is in the XML (W3C, 2011) and
the second in the DOT language (Graphviz, 2011). DOT is a plain text
graph description language, which can describe in a simple way graphs that
both humans and computer programs can use. The XML file is currently
using a custom syntax opposed to that of XACML RBAC (OASIS, 2011),
for simplicity reasons. Due to the modular design of the simulator, this can
be changed in the future. The XML file can be validated along with an
XSD file (W3C, 2011) to an external validation engine, in order to check
the correctness of the XML file. The content of the XSD file is presented
in Appendix A. The XML policies are loaded in the core of the simulator
using the SAX streaming API (XML-DEV, 2011), since policies can get too
big for the available memory. There is also support for the DOM tree-based
API (W3C, 2005), only for the part of the simulator that handles the viewing
of the available policies. Both parsers are implemented using the equivalent
libraries provided by the Qt. However, since the writing of policies can be
cumbersome, the domRBAC simulator is capable of loading files that are
described in the DOT language. In order to produce random and of different
size input data, we used the NetworkX python package (NetworkX, 2011) for
20
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
the creation of DOT files. Furthermore, the visualization of security policies
is possible through the Graphviz library (Graphviz, 2010). Using a configuration file, where a list of parameters can be defined, the core simulator can
start the simulation by creating random role assignments. The latter is performed by the random policy generator, which is responsible for the creation
of additional policies on top of the imported access control policies. During
the simulation a number of role assignments, SSD and DSD relationships are
randomly requested, based on the information described in the configuration
file. However, after each request the simulator automatically checks if any
type of violation is being raised. If not, it commits the requested role assignment, and otherwise, it rejects the role assignment. The main interface of the
simulator is depicted in Figure 10. On the left side of the screen, the loaded
access control policies are available in tree-view, and on the right side the
access control policies, the adjacency and transitive closure lists are being
visualized, each one on a different tab. On the top of the screen there is a
menu with all the available options (e.g. check for violations, run simulation
and so on), and on the bottom a console logs all the actions of the domRBAC
simulator.
Since domRBAC depends heavily on both adjacency and transitive closure lists, we use state-of-the-art functions provided by the BOOST C++
library, in order to construct and compute them. In more detail, we use
the adjacency list class that implements a generalized adjacency list graph
structure. This is a two-dimensional structure, where each element of the
first dimension represents a vertex, and each of the vertices contains a onedimensional structure that is its edge list. Regarding the computation of
the transitive closure we make use of the transitive closure() function, which
transforms the input graph g into the transitive closure graph tc. Concerning
the update operations in both lists, we update only the required information,
as described in section 4.
5.2. Performance Evaluation
As an access control management decision is dynamically determined by
checking if any violation occurs during a cross-domain role assignment, the
performance of the system should be considered. Using the domRBAC simulator, a list of performance metrics are captured during various stress tests.
The metrics are mostly considered with time values and memory consumption. The technical characteristics of the test platform were: 1.6GHz Intel
Mobile Pentium processor, 786MB of RAM, and using the Debian Linux
21
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
2.6.32-5-686 platform. The simulator was compiled using the -O3 optimization parameter, in order to increase performance (Free Software Foundation,
2008). The test cases were created using the gnc graph function that returns a growing network with copying (GNC) directed graph, which is built
by adding nodes one at a time with a link to one previously added node,
chosen uniformly at random, and to all of that nodes successors (NetworkX,
2011). In turn, the simulator loads the role hierarchies of each domain and
randomly performs role assignment operations, as well as static and dynamic
separation of duty relationships. After each new request of role assignment,
the simulator checks if the role assignment will be committed or discarded
based on the inter-domain policy violation function and logs the transaction.
The latter can be repeated continuously and in real-time, in order to collect
performance data.
For the performance evaluation of the proposed access control model, we
performed a series of simulations on different data sets. More specifically, we
used test cases of 50, 100, 150 and 200 domains containing 100 roles each,
called as group ’A’ of data, and of 5, 10, 15 and 20 domains containing 1000
roles each, called as group ’B’ data. Thus, we created collaborative domains
that contained 5000, 10000, 15000 and 20000 roles, respectively. This was
done in order to analyze the behavior of the model. For instance, a collaborative system that consists of 5000 roles, in the above-mentioned data sets, can
be the result of a combination of 50 domains containing each 100 roles or of
5 domains containing each 1000 roles. Table 1 summarizes the performance
of the ADF’s memory consumption along with decision time values and a
number of violations. This information is the result of a simulation of 5000
random role assignment, SSD and DSD requests. It can be seen in group’s
’A’ data set that the simulation leads to higher numbers of inter-domain role
assignments and to lower numbers of SSD and DSD relationships, in contrast
to group’s ’B’ data set. This behavior is logical and expected to be seen since
the low number of roles in a domain have a negative effect regarding the creation of new SSD and DSD relationships. Furthermore, the low number of
roles combined with a high number of domains act in favor of creating more
inter-domain role assignments. Yet, such a behavior results to a slightly
higher memory consumption of approximately 3% on average in the adjacency lists, which is increased to the level of 17% on average in the transitive
closure lists. Moreover, the high number of violations depicted in Table 1 is
the result of domRBAC’s design decisions since domRBAC tries to preserve
the security privilege instead of gaining inter-operation. In general, it is not
22
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
a feasible task to create a global multi-domain policy where inter-operation
is allowed among domains without violating the security or the autonomy of
a participating domain (Shafiq et al., 2005). However, the violation of a domain’s security in not permissible. Nevertheless, the autonomy of a domain
may be willing to be compromised. For the overall autonomy loss (OAL) and
overall interoperability level (OIL) of the collaborative system we use similar
equations, as in (Shafiq et al., 2005). Hence, for calculating the autonomy
loss and interoperability level we use the equations 1 and 2, respectively. In
1 the OAL is calculated by subtracting the total number of committed intrarole assignments from the total number of requested intra-role assignments
during the simulation period, and dividing the difference by the latter to get
the value of OAL. Similarly to OAL, in 2 the OIL is calculated by subtracting
the total number of violations occurred due to inter-role assignments from
the total number of requested inter-role assignments during the simulation
period, and dividing the difference by the latter to get the value of OIL. Using
the aforementioned expressions the autonomy loss and inter-operation level
reached at 6% and 7.5% in group’s ’A’ data set and 2% and 8% in group’s
’B’ data set, respectively.
OAL =
(Intra role assignments) − (Committed intra role assignments)
(Intra role assignments)
(1)
OIL =
(Inter role assignments) − (Inter violations)
(Inter role assignments)
(2)
Additionally, we present a performance evaluation concerning the time
required to compute the data structures used in domRBAC and the time
that is required for the ADF to check and identify potential violations. Appendix B.1 and Appendix B.2 include the descriptive statistical measures in
detail, viz. mean, median, mode, maximum and standard deviation values,
of groups ’A’ and ’B’, respectively. Figures 11 and 12 illustrate the mean
and maximum time values of calculations, respectively. Maximum decision
time, in both cases, is calculated as the sum of the adjacency list creation,
transitive closure list creation and of a maximum value of cycle inheritance,
privilege escalation, SSD and DSD violation. The creation of the transitive
closure list presupposes the creation of the adjacency list. Hence, it is required to add both time values. We further add the maximum time value
23
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
among violations since violation algorithms can be executed concurrently.
In case a violation is determined by a thread that implements a function
that identifies a violation, the former sends a signal to the other threads to
terminate calculations, and it further returns a true value to indicate the
determination of a violation. The maximum decision time regarding mean
values ranges approximately from 2 to 50 milliseconds, and from 120 to 1142
milliseconds in worst cases (maximum values). As shown, the ADF performs
better when the collaboration is the result of group’s ’A’ data set opposed
to that of group’s ’B’ data set. Furthermore, based on the results, it is concluded that the ADF performs with higher values during the identification of
SSD and DSD violations in group ’A’ data, instead of that in ’B’. In addition,
standard deviation shows that dispersion of time values is higher in group
’B’ data set. This means that data points are spread out over a large range
of values. It is noteworthy that the mode statistical measure in all cases is
between 0 to 2 milliseconds and the mean value equal to 0 milliseconds. This
is mostly due to the identification of a large number of violations. Regarding
the median and maximum time values we can once again observe that are
lower in group’s ’A’ data set. Figure 13 shows in a logarithmic scale a comparison of the mean and maximum decision time values, where both lines
show a similar behavior, with the maximum values being 1.6% and 18.5%
higher in average opposed to the equivalent mean values, in group ’A’ and
’B’ data set, respectively.
Based on the analysis of the collected data, the results show that the
performance is acceptable for the Grid computing paradigm, as well as for
general collaboration requirements.
6. Discussion
Despite the existence of a large number of proposed and implemented
access control models, there are only a few, to the best of our knowledge
that provide information relevant to their performance. Moreover, performance comparison among access control models seems to be a difficult task
since different performance metrics are provided, if any, in each one of them.
Hence, only a partial comparison of the results can be made.
In (Zhang et al., 2008) a performance analysis of a usage-based security
framework for collaborative systems, is presented. The test case included an
analysis of a file sharing prototype system. The performance analysis have
shown that ADF’s performance for updating the code of a software module
24
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
varied between 2304 to 15958 milliseconds, depending on the experiment’s
input data set. Knowing that there cannot be a direct comparison between
the framework in (Zhang et al., 2008) and domRBAC simulator, we examine
the processing time in order to check if existing time delays of our ADF are
within acceptable time limits. Hence, in regard to domRBAC’s ADF we
identified a latency of 1142 milliseconds in worst cases and thus it can be
concluded that such delays are within acceptable limits since the latency is
significantly lower.
In regard to secure inter-operation, in (Shafiq et al., 2005) there is an
analysis that shows the trade-off between interoperability and autonomy for
two collaborating domains. The domains consist of a maximum number
of 20 roles each. Autonomy loss can be set at different levels, based on
the requirements of the collaboration. Hence, autonomy loss varied from
39% to 52%, and interoperability level from 30% to 36%. However, this
approach is not dynamic as in the proposed model. Instead, the merging
of the individual RBAC policies into a global policy needs to be done from
scratch, in order to gain the optimality criterion of maximizing inter-domain
role accesses without exceeding the autonomy losses beyond an acceptable
limit. Regarding the simulation results in domRBAC, the autonomy loss and
inter-operation reached the level of 4% and 7.75% on average, respectively.
It is noteworthy that in the simulation the data sets had significantly higher
number of roles, compared to that in (Shafiq et al., 2005), and moreover
that in the proposed access control model the global policy is a result of a
continually changing environment. Autonomy or inter-operation thresholds
are not supported in domRBAC.
Therefore, based on the comparative data, we verified the efficiency of the
proposed access control model in regard to its performance and provided level
of autonomy loss and inter-operation. In regard to security, this is preserved
and assured due to the existence of the inter-domain policy violation function.
7. Conclusions
An access control model is proposed in this article for collaborative systems, as the Grid. To meet scalability, security and basic usage management
requirements in access control, the proposed domRBAC model is used to support various security policies for collaborative environments. Our proposed
access control model is capable of enforcing security policies among multiple
domains, having each different security policies. Furthermore, domRBAC as25
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
sures a secure collaborative environment by gradually and in real-time checking for violations, which can be caused by new inter-domain role assignments.
Moreover, it provides basic resource usage management for the first time in a
role based approach. An implemented simulator capable of enforcing multidomain security policies demonstrated the feasibility of our access control
model. A performance study shows that domRBAC can perform well even
when implemented in low-end systems. Additionally, through a comparative
review it is shown that the proposed access control model is able to perform
better in many cases compared with existing implementations. Yet, due to
design decisions that requires the maintenance of the security principle, the
proposed access control model, results in relatively lower interoperability levels, yet acceptable, compared with existing solutions. In overall, compared to
other similar approaches, the domRBAC model provides access control with
adequate dynamics for computing systems, as the Grid, and also manages to
fulfill critical requirements of modern collaborative environments.
Appendix A. The XSD file
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="DomainRole_Graph"> <xs:complexType>
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element name="Organization"/>
<xs:element name="DomainRole" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence> </xs:complexType> </xs:element>
<xs:element name="Organization">
<xs:complexType> <xs:sequence>
<xs:element name="Org_Name" type="xs:string"/>
</xs:sequence> </xs:complexType> </xs:element>
<xs:element name="Org_Name"> <xs:complexType mixed="true"/>
</xs:element>
<xs:element name="DomainRole">
<xs:complexType> <xs:sequence>
<xs:element name="Name" type="xs:string"/>
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element name="Inter_Parent_Role"
type="xs:string" minOccurs="0" maxOccurs="1"/>
</xs:sequence>
26
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element name="Inter_Child_Role"
type="xs:string" minOccurs="0" maxOccurs="1"/>
</xs:sequence>
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element name="Intra_Parent_Role"
type="xs:string" minOccurs="0" maxOccurs="1"/>
</xs:sequence>
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element name="Intra_Child_Role"
type="xs:string" minOccurs="0" maxOccurs="1"/>
</xs:sequence>
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element name="SSD_Role"
type="xs:string" minOccurs="0" maxOccurs="1"/>
</xs:sequence>
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element name="DSD_Role"
type="xs:string" minOccurs="0" maxOccurs="1"/>
</xs:sequence>
<xs:element name="SR_Cardinality"
type="xs:unsignedLong" minOccurs="0" maxOccurs="1"/>
<xs:element name="DR_Cardinality"
type="xs:unsignedLong" minOccurs="0" maxOccurs="1"/>
</xs:sequence> </xs:complexType>
</xs:element>
<xs:element name="Name">
<xs:complexType mixed="true"/>
</xs:element>
<xs:element name="Inter_Parent_Role">
<xs:complexType mixed="true"/>
</xs:element>
<xs:element name="Inter_Child_Role">
<xs:complexType mixed="true"/>
</xs:element>
<xs:element name="Intra_Parent_Role">
<xs:complexType mixed="true"/>
</xs:element>
27
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
<xs:element name="Intra_Child_Role">
<xs:complexType mixed="true"/>
</xs:element>
<xs:element name="SSD_Role">
<xs:complexType mixed="true"/>
</xs:element>
<xs:element name="DSD_Role">
<xs:complexType mixed="true"/>
</xs:element>
<xs:element name="SR_Cardinality">
<xs:complexType mixed="true"/>
</xs:element>
<xs:element name="DR_Cardinality">
<xs:complexType mixed="true"/>
</xs:element>
</xs:schema>
Appendix B. Statistical measures
Appendix B.1. Group A data set
Appendix B.2. Group B data set
References
Alfieri, R., Cecchini, R., Ciaschini, V., Dell’ Agnello, L., Frohner, A., Gianoli,
A., Lorentey, K., & Spataro, F. (2004). Voms, an authorization system for
virtual organizations. In Grid Computing (pp. 33–40). Springer.
ANSI (2004). Ansi incits 359-2004, role based access control.
Ardagna, C., De Capitani di Vimercati, S., Paraboschi, S., Pedrini, E., Samarati, P., & Verdicchio, M. (2011). Expressive and deployable access control
in open web service applications. Services Computing, IEEE Transactions
on, 4 , 96 –109.
Benantar, M. (2005). Access Control Systems: Security, Identity Management and Trust Models. Springer-Verlag New York, Inc.
Boost (2011). Boost c++ libraries.
28
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
Carlstrom, B. (2004). Design and analysis of algorithms, problem set no.6
solutions.
Chadwick, D. (2005). Authorisation in grid computing. Information Security
Technical Report, 10 , 33–40.
Chadwick, D., Otenko, A., & Ball, E. (2003). Role-based access control with
x. 509 attribute certificates. Internet Computing, IEEE , 7 , 62–69.
Chakrabarti, A. (2007). Grid computing security. Spinger-Verlag.
Chen, L., & Crampton, J. (2007). Inter-domain role mapping and least
privilege. In SACMAT ’07: Proceedings of the 12th ACM symposium on
Access control models and technologies (pp. 157–162). New York, NY,
USA: ACM.
Chu, D. C., & Humphrey, M. (2004). Mobile ogsi.net: Grid computing on
mobile devices. Grid Computing, IEEE/ACM International Workshop on,
0 , 182–191.
Ferraiolo, D. F., Kuhn, D. R., & Chandramouli, R. (2003). Role-Based Access
Control . Artech House, Inc.
Foster, I., & Tuecke, S. (2005). Describing the elephant: The different faces
of it as service. Queue, 3 , 26–29.
Free Software Foundation, I. (2008). Using the gnu compiler collection.
Gouglidis, A., & Mavridis, I. (2011). Role-based secure inter-operation
and resource usage management in mobile grid systems. In C. Ardagna,
& J. Zhou (Eds.), Information Security Theory and Practice. Security
and Privacy of Mobile Devices in Wireless Communication (pp. 38–53).
Springer Berlin / Heidelberg volume 6633 of Lecture Notes in Computer
Science.
Gouglidis, A., & Mavridis, I. (2012). Computational and data grids: Principles, applications and design. chapter Grid Access Control Models and
Architectures. (pp. 217–234). IGI Global.
Graphviz (2010). Graphviz - graph visualization software.
Graphviz (2011). The dot language.
29
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
ISO/IEC-13568 (2002). Information technology z - formal specification notation - syntax, type system and semantics. International Standard.
ITU (1995). Information technology - open systems interconnection - security
frameworks for open systems: Access control framework.
Jamkhedkar, P. A., Heileman, G. L., & Lamb, C. C. (2010). An interoperable
usage management framework. In Proceedings of the tenth annual ACM
workshop on Digital rights management DRM ’10 (pp. 73–88). New York,
NY, USA: ACM.
Li, N., Byun, J., & Bertino, E. (2007). A critique of the ansi standard on
role-based access control. Security Privacy, IEEE , 5 , 41 –49.
NetworkX (2011). Networkx.
Neumann, G., & Strembeck, M. (2003). An approach to engineer and enforce
context constraints in an rbac environment. In SACMAT ’03: Proceedings
of the eighth ACM symposium on Access control models and technologies
(pp. 65–79). New York, NY, USA: ACM.
Nokia (2011). Qt - cross-platform application and ui framework.
Nuutila, E. (1995). Efficient transitive closure computation in large digraphs.
Ph.D. thesis Acta Polytechnica Scandinavica, Helsinki University of Technology.
OASIS (2011). Oasis extensible access control markup language (xacml) tc.
Pearlman, L., Welch, V., Foster, I., Kesselman, C., & Tuecke, S. (2002).
A community authorization service for group collaboration. In Policies
for Distributed Systems and Networks. Proceedings. Third International
Workshop on (pp. 50–59). IEEE.
Phan, T., Huang, L., & Dulan, C. (2002). Challenge: integrating mobile
wireless devices into the computational grid. In Proceedings of the 8th
annual international conference on Mobile computing and networking (p.
278). ACM.
Purdom, P. (1970). A transitive closure algorithm. BIT Numerical Mathematics, 10 , 76–94. 10.1007/BF01940892.
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
Racz, P., Burgos, J., Inacio, N., Morariu, C., Olmedo, V., Villagra, V.,
Aguiar, R., & Stiller, B. (2007). Mobility and qos support for a commercial
mobile grid in akogrimo. In Mobile and Wireless Communications Summit,
2007. 16th IST (pp. 1 –5).
Ravi Sandhu, V. B. (2008). The ascaa principles for next-generation rolebased access control. In Proc. 3rd International Conference on Availability,
Reliability and Security (ARES) (pp. xxvii–xxxii). Barcelona, Spain volume 6.
Sandhu, R., & Park, J. (2003). Usage control: A vision for next generation
access control. In Computer Network Security (pp. 17–31). Springer Berlin
/ Heidelberg volume 2776.
Sandhu, R. S., Coyne, E. J., Feinstein, H. L., & Youman, C. E. (1996).
Role-based access control models. IEEE Computer , 29 , 38–47.
Sandhu, R. S., & Samarati, P. (1994). Access control: Principles and practice.
IEEE Communications Magazine, 32 , 40–48.
Shafiq, B., Joshi, J. B. D., Bertino, E., & Ghafoor, A. (2005). Secure interoperation in a multidomain environment employing rbac policies. IEEE
Trans. on Knowl. and Data Eng., 17 , 1557–1577.
Shehab, M., Bertino, E., & Ghafoor, A. (2005). Serat: Secure role mapping technique for decentralized secure interoperability. In SACMAT ’05:
Proceedings of the tenth ACM symposium on Access control models and
technologies (pp. 159–167). New York, NY, USA: ACM.
Thompson, M., Essiari, A., & Mudumbai, S. (2003). Certificate-based authorization policy in a pki environment. ACM Transactions on Information
and System Security (TISSEC), 6 , 566–588.
W3C (2005). Document object model (dom).
W3C (2011). Xml technology.
XML-DEV (2011). Simple api for xml.
Yuan, E., & Tong, J. (2005). Attributed based access control (abac) for web
services. Web Services, IEEE International Conference on, 0 , 561–569.
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
Zhang, G., & Parashar, M. (2004). Dynamic context-aware access control for
grid applications. In Grid Computing, 2003. Proceedings. Fourth International Workshop on (pp. 101–108). IEEE.
Zhang, X., Nakae, M., Covington, M., & Sandhu, R. (2006). A usage-based
authorization framework for collaborative computing systems. In Proceedings of the 11th ACM symposium on Access control models and technologies
(pp. 180–189). ACM.
Zhang, X., Nakae, M., Covington, M. J., & Sandhu, R. (2008). Toward a
usage-based security framework for collaborative computing systems. ACM
Trans. Inf. Syst. Secur., 11 , 1–36.
32
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
Figure 1: The domRBAC access control model.
1.
2.
3.
4.
5.
6.
ci violation() : boolean
for each vertex di r ∈ TG
for each adjacent vertex dj r to di r
if (di r = dj r)
return true
return false
Figure 2: Identification of cycles in role assignment
Figure 3: Privilege escalation example.
33
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
1. sp violation(di rj ) : boolean
2.
for each vertex di r ∈ domain i where di r ≥ di rj
3.
if (TG [di rj , di r] 6= TGi [di rj , di r]) or
4.
(TG [di r, di rj ] 6= TGi [di r, di rj ])
5.
return true
6.
return false
Figure 4: Assurance of the security principle
1. ssd violation() : boolean
2.
for each SSD pair (di rm , di rn )
3.
for each vertex dr ∈ TG
4.
if (dr = di rm )
5.
for each adjacent vertex d′ r to dr
6.
if (d′ r = di rn )then
7.
return true
8.
if (dr = di rn )
9.
for each adjacent vertex d′ r to dr
10.
if (d′ r = di rm )then
11.
return true
12.
for each SSD pair (di rm , di rn )
13.
for each vertex dr ∈ TG
14.
f oundSSDRole = 0
15.
for each adjacent vertex d′ r to dr
16.
if (d′ r = di rm ) or (d′ r = di rn )
17.
f oundSSDRole + +
18.
if f oundSSDRole = 2 then
19.
return true
20.
return false
Figure 5: Intra-domain violation of SSD relationships
34
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
1. dsd violation() : boolean
2.
for each DSD pair (di rm , di rn )
3.
for each vertex dr ∈ TG
4.
if (dr = di rm )
5.
for each adjacent vertex d′ r to dr
6.
if (d′ r = di rn )then
7.
return true
8.
if (dr = di rn )
9.
for each adjacent vertex d′ r to dr
10.
if (d′ r = di rm )then
11.
return true
12.
for each DSD pair (di rm , di rn )
13.
for each vertex dr ∈ TG
14.
f oundDSDRole = 0
15.
for each adjacent vertex d′ r to dr
16.
if (d′ r = di rm ) or (d′ r = di rn )
17.
f oundDSDRole + +
18.
if f oundDSDRole = 2 then
19.
return true
20.
return false
Figure 6: Intra-domain violation of DSD relationships
1. InterdomainPolicyViolation(di rndesc ) : boolean
2.
return ci violation() or
3.
sp violation(di rndesc ) or
4.
ssd violation() or
5.
dsd violation()
Figure 7: Inter-domain policy violation function
35
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
Figure 8: A multidomain access control policy defining interoperation between d1 and d2 .
Figure 9: Overall architecture of the domRBAC simulator.
36
Figure 10: The main interface of the domRBAC simulator.
20*1000
Domains * Roles per domain
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
15*1000
10*1000
5*1000
200*100
150*100
100*100
50*100
0,00
10,00
20,00
30,00
40,00
50,00
60,00
msec
Adjacency list
SSD violation
Transitive closure list
DSD violation
Cycle inheritance
Maximum Decision Time
Privilege escalation
Figure 11: Time of computations - mean values.
37
Domains * Roles per domain
20*1000
15*1000
10*1000
5*1000
200*100
150*100
100*100
50*100
0,00
200,00
400,00
600,00
800,00
1000,00
1200,00
1400,00
msec
Adjacency list
SSD violation
Transitive closure list
DSD violation
Cycle inheritance
Maximum Decision Time
Privilege escalation
Figure 12: Time of computations - max values.
10000,00
1000,00
msec
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
100,00
10,00
1,00
50*100
100*100
150*100
200*100
5*1000
10*1000
15*1000
Domains * Roles per domain
Mean values
Max values
Figure 13: Comparison of mean and max values.
38
20*1000
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
Figure 14: Statistics of experiment with 50 domains of 100 roles each.
Figure 15: Statistics of experiment with 100 domains of 100 roles each.
Figure 16: Statistics of experiment with 150 domains of 100 roles each.
Figure 17: Statistics of experiment with 200 domains of 100 roles each.
39
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
Figure 18: Statistics of experiment with 5 domains of 1000 roles each.
40
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
Figure 19: Statistics of experiment with 10 domains of 1000 roles each.
Figure 20: Statistics of experiment with 15 domains of 1000 roles each.
Figure 21: Statistics of experiment with 20 domains of 1000 roles each.
41
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
Table 1: Performance evaluation of ADF’s memory usage and identified violations (5000 requests)
42
DomainsRoles
per
domain
Role
assignments
SSD
DSD
Interdomain
Adj.
list
(KB)
50
100
150
200
5
10
15
20
5362
10029
14979
19925
5970
10553
15456
20379
88
44
39
38
251
108
147
129
111
34
45
35
244
110
117
152
266
52
52
64
77
53
22
20
10362
20029
29979
39925
10970
20553
30456
40379
100
100
100
100
1000
1000
1000
1000
Trans.
closure
list
(KB)
39788
62120
90448
114294
48662
65166
100485
164882
Role
viol.
SSD
viol.
DSD
viol.
4565
4865
4870
4875
3947
4413
4503
4591
8
2
1
0
50
12
15
3
12
1
0
0
25
12
8
6