You are on page 1of 22

Int. J. Inf. Secur.

(2008) 7:285–305
DOI 10.1007/s10207-007-0051-9

REGULAR CONTRIBUTION

Modeling contextual security policies


Frédéric Cuppens · Nora Cuppens-Boulahia

Received: 4 September 2006 / Published online: 6 November 2007


© Springer-Verlag 2007

Abstract As computer infrastructures become more com- However, security policies must also be adapted to deal
plex, security models must provide means to handle more with new requirements: security rules in these policies are no
flexible and dynamic requirements. In the Organization longer static but dynamic, depending on the context. They
Based Access Control (OrBAC) model, it is possible to exp- must be also self-adaptive with respect to temporal condi-
ress such requirements using the notion of context. In OrBAC, tions, the user’s location, previous behavior of this user, etc.
each security rule (permission, prohibition, obligation or dis- Several different organizations must be able to express their
pensation) only applies in a given context. A context is viewed own policies and the security policy model must be able to
as an extra condition that must be satisfied to activate a given manage these different policies within a single framework.
security rule. In this paper, we present a taxonomy of differ- Classical access control models [7,28,40] are not sufficiently
ent types of context and investigate the data the information flexible to specify such context-dependent requirements.
system must manage in order to deal with these different In this paper, we shall show how the organization-based
contexts. We then explain how to model and evaluate them access control (OrBAC) model [34] is useful to deal with
in the OrBAC model. some of these new requirements. In OrBAC, the security
policy does not directly apply to subject, action and object.
Keywords Security policy · Context awareness · Access Instead, it defines permissions that applies within an organi-
control · OrBAC zation to control the activities performed by roles on views.
For instance, the policy might specify that role physician
1 Introduction has permission to perform activity consult on view medical
record.
Current computer infrastructures are becoming more and In OrBAC, specification of a security policy is actually not
more complex and difficult to manage securely. It does no restricted to permissions. A security policy may include four
longer correspond to monolithic architecture but instead must different types of security rule: permission, prohibition, obli-
manage a set of virtual communities that want to inter-operate gation and dispensation. Intuitively, a prohibition is a neg-
and share resources. A virtual community is a composition ative permission implying that one must not perform some
of heterogeneous and independently designed and managed action. An obligation is associated with an action someone
sub-organizations. When setting up a new community, it is must perform and is usually triggered when some conditions
necessary to identify participant roles, so role-based access are satisfied. Finally, a dispensation is a negative obligation
control (RBAC) model [40] provides concepts that are useful implying that one may not perform some action.
in this area. The OrBAC model also allows the administrators to spec-
ify complex security rules since one can consider that each
F. Cuppens (B) · N. Cuppens-Boulahia
security rule only applies in some given contexts. Our objec-
GET/ENST Bretagne, 2 rue de la Châtaigneraie,
35512 Cesson Sévigné Cedex, France tive is to further investigate this notion of context. To acti-
e-mail: frederic.cuppens@enst-bretagne.fr vate a given security rule, the subject, the action and the
N. Cuppens-Boulahia object must separately satisfy some conditions. In the OrBAC
e-mail: nora.cuppens-boulahia@enst-bretagne.fr model, these conditions are that the subject must be assigned

123
286 F. Cuppens, N. Cuppens-Boulahia

to a given role, the object must be used in a given view and the • I s_obliged(s, α, o) or
action implements some given activity. Besides these condi- • I s_dispensed(s, α, o).
tions, there are extra conditions that must be satisfied to acti-
vate a security rule. These extra conditions may be related meaning that a given subject s is permitted (resp. prohibited,
to very different notions, such as temporal or spatial require- obliged or dispensed) to perform a given action α on a given
ments. We call context such extra conditions. object o. For instance, the fact I s_ per mitted(J ohn, r ead,
In the following, we first investigate what kind of infor- Paul_medical_r ecor d) specifies that John is permitted to
mation a given information system must manage to provide read Paul’s medical record.
means to deal with contextual conditions. On the basis of this However, enumerating all these facts is a quite fastidious
analysis, we present several types of context—temporal, spa- and difficult to manage task. In particular, each time a new
tial, prerequisite, provisional and user-declared contexts— subject, or a new object, or a new action is created, it is nec-
and explain how to model them in the OrBAC model. Even essary to explicitly insert new facts specifying the security
if there has been a lot of work dealing with various kinds rules associated with this new subject, object or action.
of context (see Sect. 5 for a comparison and discussion), To simplify management of a security policy, rule-based
this is the first time that such different contexts may be languages have been proposed [20,26,31]. These languages
expressed within a unique access control model. We then are based on first-order logic with various restrictions to guar-
address the problem of context evaluation. Generally, secu- antee the decidability of logical derivation in these languages.
rity models are based on Datalog rules [45] which guaran- For instance, the rules must respect syntactic restrictions of
tee the decidability of query evaluation and its termination Datalog [45]. Using a rule-based language, an access control
in polynomial time. Using Datalog, queries are pre-com- policy is represented by a set of rules having the following
puted iteratively using a bottom-up strategy until conver- forms:
gence to a fixed-point. However, as suggested in [6], it would
not be possible to express most contextual conditions, for • ∀s, ∀α, ∀o, (Condition → I s_ per mitted(s, α, o))
instance, temporal or spatial contexts, using Datalog rules. • ∀s, ∀α, ∀o, (Condition → I s_ pr ohibited(s, α, o))
This is why we suggest an hybrid strategy that combines • ∀s, ∀α, ∀o, (Condition → I s_obliged(s, α, o))
the bottom up approach of Datalog with the top-down • ∀s, ∀α, ∀o, (Condition → I s_dispensed(s, α, o))
strategy as defined in the SLG algorithm [44] to evaluate
contextual conditions. This hybrid strategy that also guaran-
meaning that, for every subject s, action α and object o, if
tees decidability in polynomial time is further explained in
a given condition is satisfied,1 then subject s is permitted
Sect. 4.
(respectively, prohibited, obliged or dispensed) to perform
The remainder of this paper is organized as following.
action α on object o.
Section 2 recalls the OrBAC model. Section 3 presents a
Let us now further analyze the structure of Condition in
taxonomy of different types of context and how to model
the above rules. We suggest structuring Condition as fol-
them in the OrBAC model. Section 4 discusses decidability
lowing:
in OrBAC and presents an efficient strategy for query eval-
cond_subject (s)∧cond_action(α)∧cond_object (o)∧
uation that combines bottom-up and top-down algorithms.
constraint (s, α, o) where
Section 5 provides a comparison with related work. Finally,
Sect. 6 concludes the paper.
A preliminary version of this paper appeared in [19]. • cond_subject (s), cond_action(α) and cond_object (o)
are, respectively, the conditions the subject s, the action
α and the object o must separately satisfy so that the cor-
2 OrBAC model responding rule applies.
• constraint (s, α, o) is an additional condition that joins
2.1 Preamble subject s, action α and object o. Satisfying the constraint
is necessary to activate the rule.
The final objective of a security policy is to specify the secu-
rity rules (permissions, prohibitions, obligations or dispen- For instance, let us consider the rule “a physician is permit-
sations) that control the actions performed by subjects on ted to consult his or her patient’s medical record”. In this case,
objects. Using a logical notation, this might be represented cond_subject (s), cond_action(α) and cond_object (o),
by a set of facts having the following forms: respectively, correspond to the conditions that s is a phy-
sician, α is an action of consulting and o is a medical record.
• I s_ per mitted(s, α, o),
• I s_ pr ohibited(s, α, o), 1 Of course, this condition changes from one rule to another.

123
Modeling contextual security policies 287

constraint (s, α, o) is a condition that joins subject s and if the value n represents the name of s, Addr ess(s, a) is true
object o (in this example, action α is absent from the con- if the value a represents the address of s, etc.
straint), namely, o must be a record of physician s’s patient. Besides these application-dependent predicates used to
We shall now present OrBAC and explain how to model model the attributes of entities, there are several OrBAC
cond_subject (s), cond_action(α), cond_object (o) and built-in predicates. Both application-dependent and OrBAC
constraint (s, α, o). For this purpose, we need first to present built-in predicates are used to specify security policies in the
basic entities of the OrBAC model. OrBAC model. The objective of Sect. 2.3 is to present the
different OrBAC built-in predicates.

2.2 Basic concepts of OrBAC 2.3 Modeling the organization components

The central entity in OrBAC is the entity Organi zation. In OrBAC, cond_subject (s), cond_object (o) and cond_
Intuitively, an organization is any entity that is responsible action(α), respectively, correspond to conditions specify-
for managing a security policy. Thus, a company is an orga- ing that, in a given organization, a subject is empowered in a
nization but concrete security components such as a firewall role, an object is used into a view and an action implements an
may also be viewed as an organization. An organization can activity. This is represented by the following OrBAC built-in
also be seen as an organized group of subjects, assigned to predicates:
some roles in the organization. Note that a group of subjects
does not necessarily correspond to an organization. More • Empower is a predicate over domains Org × S × R.
precisely, the fact that each subject is assigned to a role in
the organization corresponds to some agreement between the
If org is an organization, s a subject and r a role, then
subjects to form an organization.
Empower (org, s, r ) means that org empowers subject s in
The objective of OrBAC is to specify the security pol-
role r . Unlike the TMAC model [43] or the RBAC model [40]
icy at the organizational level, which is independently of
which consider binary relations between organizations and
the implementation of this policy. Thus, instead of modeling
subjects or between subjects and roles, notice that our model
the policy by using the concrete and implementation-related
consider a ternary relation between organizations, subjects
concepts of subject, action and object, the OrBAC model sug-
and roles. This is useful to model situations where a given
gests reasoning with the roles that subjects, actions or objects
subject is assigned to several roles but in different organiza-
play in the organization. The role of a subject is simply called
tions.
as a role as in the RBAC model. On the other hand, the role
of an action is called an activity whereas the role of an object
• U se is a predicate over domains Org × O × V.
is called as a view.
The concept of view is different from the concept of class.
A class is a taxonomical concept used to structure the object If org is an organization, o is an object and v is a view, then
descriptions, i.e. a class groups objects that have similar char- U se(org, o, v) means that org uses object o in view v. This
acteristics. By contrast, a view is an organizational concept ternary relation is useful to characterize organizations that
used to structure the policy specification, i.e. a view groups give different definitions to the same view. For instance, take
objects on which the same security rules apply. the case of the view “medical record” defined in H 1 hospital
Finally, since security rules do not apply statically but as a set of Word documents and defined in H 2 hospital as a
their activation may depend on contextual conditions, the set of tuples in a relational database.
concept of context is explicitly introduced in OrBAC. Exam-
ples of context may be Night, Working-Hours or Urgency • Consider is a predicate over domains Org × A × A.
(see Sect. 3 for further details about the context definition).
Therefore, in OrBAC, there are eight basic sets of entities: If org is an organization, α is an action and a is an activ-
Org (a set of organizations), S (a set of subjects), A (a set of ity, then Consider (org, α, a) means that org considers that
actions), O (a set of objects), R (a set of roles), A (a set of action α implements the activity a. Since Consider is a
activities), V (a set of views) and C (a set of contexts). ternary relation, different organizations may decide that the
We assume that Org ⊆ S (that is any organization is a same action comes under distinct activities or that different
subject) and that S ⊆ O (that is any subject is an object). actions come under the same activity. For instance, activ-
Any entities in the OrBAC model may have some ity “consulting” corresponds, in H 1 hospital, to an action
attributes. This is represented by application-dependent pred- “read” that can be ran on data files whereas it corresponds,
icates that associate the entities with the value of these attri- in H 2 hospital, to action “select” that can be performed on
butes. For instance, if s is a subject, then N ame(s, n) is true relational databases.

123
288 F. Cuppens, N. Cuppens-Boulahia

2.4 Role, activity and view definition object and c a context, then H old(org, s, α, o, c) means
that within organization org, context c holds between
Instead of enumerating facts corresponding to instances of subject s, action α and object o.
predicate Empower , it is also possible to specify role
definitions which correspond to logical conditions that, when The conditions required for a given context to be linked,
satisfied, are used to derive that some subjects are automati- within a given organization, to subjects, objects and actions
cally empowered in the role associated with the role defini- will be formally specified by logical rules called context def-
tion. Role definition may be viewed as an extension of the inition. Note that context definitions generally do not corre-
attribute-based user-role assignment suggested in [4]. A role spond to Datalog rules and thus cannot be evaluated using the
definition corresponds to a logical rule that has the Empower standard Datalog bottom-up strategy (see Sect. 4 for further
predicate in the conclusion and respects the Datalog restric- explanations about this issue).
tions (see Sect. 4). For instance, a bookshop B S may consider A trivial example is the context Nominal which is true in
that a subject is empowered in role Gold_customer if this every circumstance. It is defined as follows:
subject is empowered in role Customer and if he or she has • ∀org, ∀s ∈ S, ∀α ∈ A, ∀o ∈ O,
been a customer for more than 10 years. This is modeled by H old(org, s, α, o, N ominal)
the following role definition:
As another example, the context Attending_physician may
• ∀s ∈ S, ∀d ∈ O, be defined in hospital H 1 as follows:
Empower (B S, s, Gold_customer )
• ∀s ∈ S, ∀α ∈ A, ∀o ∈ O,
← (Empower (B S, s, Customer ) ∧ Member shi p
H old(H 1, s, α, o, Attending_ physician)
(B S, s, d) ∧ d >= 10)
← (N ame_ patient (o, p) ∧ Patient (s, p))
that is, in hospital H 1, the context “attending physician”
where Member shi p(B S, s, d) is an application dependent
holds between subject s, action α and object o if o is a
predicate meaning that subject s has been a customer of book-
record corresponding to a patient p (represented by the
shop B S for d years.
application dependent predicate N ame_ patient (o, p))
Activity and view definitions are similarly used to auto-
and p is a patient of subject s (represented by the appli-
matically manage assignment of action to activity and object
cation dependent predicate Patient (s, p)).
to view. We assume that activity and view definitions also
respect the Datalog restrictions.
Modeling various types of context will be further analyzed
in Sect. 3.
2.5 Context definition
2.6 Context algebra
In Sect. 2.1, we introduce the condition constraint (s, α, o)
to model extra conditions a subject, an action and an object
We define a context algebra to build conjunctive, disjunctive
must satisfy to activate an access control rule. In OrBAC,
and negative contexts from more elementary contexts. For
these extra conditions are modeled through the notion of
this purpose, we introduce three OrBAC built-in functions
context. Each context has a name and its definition depends
&, ⊕ and ¯. If c1 and c2 are two contexts, then &(c1 , c2 )
on the organization. Note that we use the term “context” in
is a conjunctive contexts, ⊕(c1 , c2 ) is a disjunctive context
a broad sense since it actually corresponds to any constraint
and c1 is a negative context. We shall use the infix notations
that joins a subject, an action and an object.2 For instance,
c1 &c2 and c1 ⊕ c2 in place of the prefix notations &(c1 , c2 )
in the health care domain, the entity Context will cover cir-
and ⊕(c1 , c2 ). These composed contexts are defined by the
cumstances such as “urgency”, “medical research”, “attend-
following rules:
ing physician”, etc.
From a conceptual point of view, entities Organi zation, • ∀org ∈ Org, ∀s ∈ S, ∀α ∈ A, ∀o ∈ O, ∀c1 ∈ C, ∀c2 ∈
Subject, Object, Action and Context are linked together C,
by the OrBAC built-in predicate H old: H old(org, s, α, o, c1 &c2 )
← (H old(org, s, α, o, c1 )∧ H old(org, s, α, o, c2 ))
• H old is a predicate over domains Org × S × A × O × C. • ∀org ∈ Org, ∀s ∈ S, ∀α ∈ A, ∀o ∈ O, ∀c1 ∈ C, ∀c2 ∈
If org is an organization, s a subject, α an action, o an C,
H old(org, s, α, o, c1 ⊕ c2 )
2 ← (H old(org, s, α, o, c1 ) ∨ H old(org, s, α, o, c2 ))
Constraints do not apply systematically to all the parameters. For
instance, we may have constraints that simply join subject and object • ∀org ∈ Org, ∀s ∈ S, ∀α ∈ A, ∀o ∈ O, ∀c ∈ C,
or even constraints that are simply related to subject. H old(org, s, α, o, c) ← ¬H old(org, s, α, o, c)

123
Modeling contextual security policies 289

Evaluation of these composed contexts is further explained so that it is possible to derive Err or , then this update is
in Sect. 4. rejected.

2.7 Global constraints 2.8 Policy definition

In OrBAC it is also possible to define global constraints. A Using the materials presented in the previous sections, the
global constraint is distinct from the definition of contexts Condition expression introduced in Sect. 2.1 corresponds
presented in the previous sections. A context is associated in the OrBAC model to formulas having the following form:
with a security rule and defines conditions that must be sat-
isfied to active this security rule. By contrast, a global con- • Empower (Org, s, R) ∧ U se(Org, o, V )∧
straint is a condition associated with the security policy. If Consider (Org, α, A) ∧ H old(Org, s, α, o, C)
a global constraint is not satisfied, then this means that this
security policy is not consistent.
where s, o and α are variables corresponding respectively to
To specify global constraint in the OrBAC model, we use
a subject, an object and an action and Org, R, V , A and C
the OrBAC built in predicate Error:
are constants corresponding respectively to an organization,
a role, a view, an activity and a concept. For instance, the
• Err or is a predicate over the null domain, i.e. a predicate
rule “in hospital H , a physician is permitted to consult his or
of cardinality zero.
her patient’s medical record” may be represented by a rule
having the following form:
Using the Err or predicate, a global constraint correspo-
nds to a logical rule whose conclusion is Err or . If it is
• ∀s ∈ S, ∀α ∈ A, ∀o ∈ O,
actually possible to derive Err or from some global con-
(Condition → I s_ per mitted(s, α, o))
straint, then the security policy is not consistent.
where, in this case, Condition is the following formula:
Separation of duty between roles is an example of
Empower (H, s, Physician) ∧ U se(H, o, Medical_
frequently used constraints. To model separation of duty
r ecor d)∧ Consider (H, α, Consult)∧H old(H, s, α, o,
in OrBAC, we first introduce the following OrBAC built-in
Attending_ physician)
predicate Separated_r ole:

• Separated_r ole is a predicate over domains Org × R × However, this is not exactly the way an access control policy
Org × R. is specified in the OrBAC model. In OrBAC, we go one step
further by considering that the access control policy does
If org1 and org2 are organizations and r1 and r2 are roles, not directly apply to subject, action and object. Instead, the
then Separated_r ole(org1 , r1 , org2 , r2 ) means that role r1 access control policy is specified using the OrBAC built-
in organization org1 is separated from role r2 in organization in predicates Per mission, Pr ohibition, Obligation and
org2 . Dispensation defined as follows:
Using this Separated_r ole predicate, separation of duty
is then modeled as the following global constraint: • Per mission, Pr ohibition, Obligation and Dispen-
sation are predicates over domains Org ×R×A×V ×C
• ∀s ∈ S, ∀org1 ∈ Org, ∀org2 ∈ Org, ∀r1 ∈ R, ∀r2 ∈ If org is an organization, r a role, a an activity, v a view
R, and c a context then Per mission(org, r, a, v, c) (respec-
Separated_r ole(org1 , r1 , org2 , r2 ) ∧ tively, Pr ohibition(org, r, a, v, c), Obligation(org, r,
Empower (org1 , s, r1 ) ∧ a, v, c) or Dispensation(org, r, a, v, c)) means that in
Empower (org2 , s, r2 ) organization org role r is granted permission (respec-
→ Err or tively, prohibition, obligation or dispensation) to perform
activity a on view v within context c.
This constraint says that Err or is true if (1) role r1 in
organization org1 is separated from role r2 in organization The predicates Per mission, Pr ohibition, Obligation
org2 and (2) there is a subject s empowered in role r1 in and Dispensation enable a given organization to specify
organization org1 and (3) this subject is also empowered in permissions, obligations and prohibitions between roles,
role r2 in organization org2 . activities and views in a given context. Now, triples that
In the following, we assume that the security policy is con- are instances of the OrBAC built-in I s− per mitted are log-
sistent, i.e. it is not possible to derive the Err or predicate ically derived from permissions granted to roles, views and
from any global constraints. If the security policy is updated activities by the relationship Per mission. This is modeled

123
290 F. Cuppens, N. Cuppens-Boulahia

by the following general rule called Concrete Permission • Conflict between obligation and dispensation. This con-
Derivation.3 flict occurs when it is possible to derive, for some subject
s, action α and object o:
• ∀org ∈ Org, ∀s ∈ S, ∀o ∈ O, ∀α ∈ A, ∀r ∈ R, ∀v ∈
I s_obliged(s, α, o) ∧ I s_dispensed(s, α, o)
V, ∀a ∈ A, ∀c ∈ C,
• Conflict between obligation and prohibition. This conflict
Per mission(org, r, a, v, c)∧
occurs when it is possible to derive, for some subject s,
Empower (org, s, r ) ∧ U se(org, o, v)∧
action α and object o:
Consider (org, α, a)∧
I s_obliged(s, α, o) ∧ I s_ pr ohibited(s, α, o)
H old(org, s, α, o, c)
However, since an obligation implies a permission, if
→ I s− per mitted(s, α, o)
there is a conflict between an obligation and a prohibition,
that is s is permitted to perform α on o, if (1) organiza- then there is also a conflict between a permission and a
tion org, within the context c, grants role r permission prohibition.
to perform activity a on view v and (2) org empowers So, a conflict between an obligation and prohibition is
subject s in role r and (3) org uses object o in view v and actually not a primary conflict.
(4) org considers that action α implements activity a and
(5) within org, the context c holds between s, α and o.
Thus, we have two primary conflicts to manage in OrBAC:
In OrBAC, we also assume that if a subject if obliged to (1) conflict between permission and prohibition and (2) con-
preform a given action on an object, then this subject must be flict between obligation and dispensation.
permitted to perform this action on this object. This principle When some conflicts occur in the policy, we need strat-
is modeled by the following logical rule: egies to solve these conflicts. The basic principle to define
such strategies is assigning priorities to security rules. Thus,
• ∀s ∈ S, ∀o ∈ O, ∀α ∈ A,
in case of conflict, the security rule with higher priority takes
I s− obliged(s, α, o) → I s− per mitted(s, α, o)
precedence over the other security rule. In our approach, we
Similarly, if a subject is prohibited to perform a given actually manage conflicts at the abstract level and provide
action on an object, then this subject must be dispensed from sufficient conditions to guarantee that the absence of conflict
performing this action on this object: at the abstract level also guarantee the absence of conflict
at the concrete level. We shall not further develop this issue
• ∀s ∈ S, ∀o ∈ O, ∀α ∈ A, here, but this problem is extensively investigated in [16].
I s− pr ohibited(s, α, o) → I s− dispensed(s, α, o)

2.9 Conflict management 2.10 Policy application

In OrBAC, it is thus possible to specify a security policy by The purpose of a security policy is to control how subjects
combining permission, prohibition, obligation and dispen- access to objects. In this section, we assume the existence of a
sation. This provides a very expressive and flexible frame- trusted reference monitor which is in charge of enforcing the
work to express various security requirements. For instance, security policy. We also consider that when a subject wants
it is possible to specify general security rules corresponding to perform an action on an object, this subject must first send
to permissions (respectively, obligations) and then specify a request to this reference monitor.
possible exceptions to these general rules corresponding to The objective of this section is to define the security
prohibitions (respectively, dispensations). requirements to be enforced by this reference monitor. We
However, when a security policy model includes the pos- first introduce the following built-in predicates Request,
sibility to specify both permissions, prohibitions, obligations Accept and V iolation:
and dispensations, some conflicts may occur. We identify the
following possible conflicts: • Request, Accept, Deny and V iolation are predicates
over domains S × A × O
• Conflict between permission and prohibition. This con-
If s is a subject, α an action and o an object, then Request
flict occurs when it is possible to derive, for some subject
(s, α, o) means that s is requesting to perform action α
s, action α and object o:
on object o, Accept (s, α, o) means that this request is
I s_ per mitted(s, α, o) ∧ I s_ pr ohibited(s, α, o)
accepted, Deny(s, α, o) means that this request is denied
3
and V iolation(s, α, o) means that the security policy is
Three similar general rules respectively called concrete prohibition,
violated.
obligation and dispensation derivation exist to derive instances of
I s− pr ohibited, I s− Obliged and I s− dispensed from relationships Using these predicates, we define the following security
Pr ohibition, Obligation and Dispensation. requirements:

123
Modeling contextual security policies 291

Fig. 1 OrBAC global


evaluation architecture Abstract
Security
Policy
Empower instances
+ role definition
+ role hierarchy

Role enablement Consider instances


+ activity definition
Conflict management + activity hierarchy
Activity enablement
+ derivation module
View enablement Use instances
+ view definition
Concrete permission, + view hierarchy
obligation, prohibition
and dispensation
Constraint Global constraints
enforcement
Request Decision module
Context evaluation Information
system
Reference monitor

Accept Deny Violation

• Close policy requirement: A request must be accepted to do so. In a more realistic setting, a subject may have some
only if it is permitted by the policy: delay to request for an access before a violation occurs. See
∀s ∈ S, ∀o ∈ O, ∀α ∈ A, the Nomad model that shows how to specify and manage
Request (s, α, o) ∧ I s− per mitted(s, α, o) → Accept obligations associated with delays [18].
(s, α, o)
If it is not possible to explicitly derive Accept (s, α, o) 2.11 Summary
then Deny(s, α, o) is implicitly derived.
• Open policy requirement: A request must be denied There are several ways to specify a security policy. A first
only if it is prohibited by the policy: way consists in explicitly enumerating a set of facts spec-
∀s ∈ S, ∀o ∈ O, ∀α ∈ A, ifying the privileges (permissions, prohibitions, obligations
Request (s, α, o) ∧ I s− pr ohibited(s, α, o) → Deny and dispensations) of subjects to perform actions on objects.
(s, α, o) However, this approach is very difficult to manage. A second
If it is not possible to explicitly derive Deny(s, α, o) then way is to specify a set of logical rules specifying the condi-
Accept (s, α, o) is implicitly derived. tions that must be satisfied to derive that subjects are per-
• Obligation requirement: The policy is violated when a mitted, prohibited, obliged or dispensed to perform actions
subject does not request an access when it is obliged to on objects. However, specifying this set of security rules is a
do so: complex and error prone task.
∀s ∈ S, ∀o ∈ O, ∀α ∈ A, The OrBAC model suggests an hybrid approach sum-
I s− obliged(s, α, o)∧¬Request (s, α, o) → V iolation marized in Fig. 1. The abstract security policy is specified
(s, α, o) by enumerating a set of facts corresponding to privileges.
However, these privileges do not concern subject, action and
When implementing the reference monitor, only one of object but role, activity and view. Thus, the reference module
the close or open security requirement must be implemented. includes three components respectively called role enable-
This is an administrative decision to choose between one of ment, activity enablement and view enablement that man-
these two requirements. age explicit instances (corresponding to facts) or implicit
Regarding the obligation requirement, it should be part of instances (derived from role, activity or view definitions)
the security policy to specify what happens when a violation of predicates Empower , Consider and U se. As further
occurs. This generally corresponds to the activation of new explained in Sect. 4, these three enablement components are
security rules when such a violation occurs. Also note that, based on the bottom-up evaluation strategy of Datalog. The
in the above obligation requirement, we consider that a sub- reference monitor includes functionalities to enforce global
ject must immediately request an access when it is obliged constraints and manage conflicts. As mentioned in Sect. 2.9,

123
292 F. Cuppens, N. Cuppens-Boulahia

Fig. 2 Context taxonomy and


required data

conflicts are managed at the abstract level so that we can Sub_r ole(org, r1 , r2 )
guarantee that no conflict can occur at the concrete level. The → Per mission(org, r1 , a, v, c)
reference monitor also includes a decision module that • Sub_view and Sub_activit y are similarly defined as
enforces the close (or open) policy requirement and the obli- relations over domains Org × V × V and Org × A × A.
gation requirement as defined in Sect. 2.10. This decision • Sub_organi zation is a relation over domains Org ×
module takes request as inputs and provides accept, deny or Org.
violation as outputs. To make its decision, the decision mod-
ule requests the derivation module that applies the four gen- How to manage inheritance of privileges through these
eral derivation rules shown in Sect. 2.8 to derive what actions different hierarchies is further explained in [17].
subjects are concretely permitted, prohibited, obliged or dis-
pensed to perform on objects. When the decision depends
on some contextual conditions, the derivation module asks 3 Context in OrBAC
the context evaluation module for evaluation of the context
associated with the abstract security rules. As explained in 3.1 Taxonomy of contexts
Sect. 4, derivation and context evaluation modules are no
longer based on the bottom-up evaluation strategy of Datal- As we have just seen, we use contexts to express different
og but use a top-bottom strategy. types of extra conditions that control activation of rules spec-
Notice that in [34], it is suggested to define hierarchies ified in the security policy. In this section, we investigate the
over roles but also organizations, activities and views, and to following contexts (see Fig. 2) and show how we model them
associate permission inheritance with these different hierar- in OrBAC:
chies. This is modeled as follows:
• the Temporal context that depends on the time at which
• Sub_r ole, is a relation over domains Org × R × R. the subject is requesting for an access to the system,
If org is an organization, and r1 and r2 are roles, then • the Spatial context that depends on the subject location,
Sub_r ole(org, r1 , r2 ) means that, in organization org, • the User-declared context that depends on the subject
role r1 is a sub-role (also called senior role) of role r2 . objective (or purpose),
Permissions, prohibitions, obligations and dispensations • the Prerequisite context that depends on characteristics
are inherited through the role hierarchy. For instance, that join the subject, the action and the object.
inheritance of permissions is modeled by the following • the Provisional context that depends on previous actions
rule: the subject has performed in the system.
∀org ∈ Org, ∀r1 ∈ R, ∀r2 ∈ R, ∀v ∈ V, ∀a ∈ A,
∀c ∈ C, As suggested in Fig. 1, we also assume that each organi-
Per mission(org, r2 , a, v, c)∧ zation manages some information system that stores and

123
Modeling contextual security policies 293

manages different types of information. To control context information system has a trusted clock, and that this clock
activation, this information system must provide the infor- can be queried at any time by the reference monitor to assess
mation required to check that conditions associated with the the temporal context of the query. We consider the entity
context definition are satisfied or not. The following list gives clock as an object called Global_clock.
the kind of information related to the contexts we have just We associate the following attributes to Global_clock:
mentioned: T ime, Day, W eek, Month, Y ear . The corresponding pred-
icates make it possible to obtain the current time, the current
• A global clock to check the temporal context, day, the current week, etc.
• the subject environment and the software and hardware This is not the purpose of this section to define a complete
architecture to check the spatial context, set of predicates to be used to manage time but the interested
• the subject purpose to check the user-declared context, reader can have a look at [38] for an extensive discussion.
• the system database to check the prerequisite context, Instead, our objective in this section is to show how vari-
• an history of the action carried out, to check the provi- ous temporal contexts can be defined using these predicates.
sional context. The general principle to build temporal contexts is to define
functions that applies to the set T of times and return a tem-
Figure 2 presents the correspondence between the contexts poral context. In the following sub-section, we give several
and the required data. If the information system does not examples to illustrate this principle.
provide some information in this list, then obviously the cor- However, notice that the semantics of a temporal context
responding context cannot be managed by the access control assessment may be subtle. For instance, let us consider a func-
policy. tion timeinter val(t1, t2). Usually, this function is evaluated
Note that in our approach, a context actually corresponds using the system local clock. However, if the security pol-
to a condition that joins a subject, an object and an action. icy needs to synchronize the timing across several specified
However, one or several of these parameters may be optional. points, an external timing source is necessary. Thus, as the
This means that we can, for instance, consider constraints semantics may differ from one environment to another with
that only apply to a subject, an object or an action. In this respect to the security requirements, to the access reques-
case, the constraint may be modeled by, respectively, defin- tor and the requested organization, several supports to the
ing “contextual” roles, activities or views. For instance, if temporal context assessment may be required (see [38] for
we have a permission that applies to role physician in the further details).
temporal context “night”, we can consider a contextual role
“night physician”. This approach has been suggested several 3.2.2 Basic temporal contexts
times before in the literature (see [33] for example). How-
ever, in the general case, we argue that this approach leads to We can first define two functions be f or e_time and a f ter _
quite artificial roles (see Sect. 5.2 for a more detailed discus- time that applies to the set T and return a temporal context
sion). Moreover, it does not applies when the constraint joins defined as follows:
several parameters, for instance, a subject and an object as
for instance the Attending_ physician context presented in • ∀org ∈ Org, ∀s ∈ S, ∀α ∈ A, ∀o ∈ O, ∀t ∈ T, ∀t ∈
Sect. 2.5. T,
H old(org, s, α, o, a f ter _time(t)) ← (T ime(Global_
3.2 Temporal context clock, t ) ∧ t ≥ t)
• ∀org ∈ Org, ∀s ∈ S, ∀α ∈ A, ∀o ∈ O, ∀t ∈ T, ∀t ∈
3.2.1 Principle T,
H old(org, s, α, o, be f or e_time(t))←(T ime(Global_
With temporal contexts, it should be possible to express that clock, t ) ∧ t ≤ t)
a given action made by a given user on a given object is
authorized only at a given time, after or before a given time, We can similarly define two functions be f or e_date and
or during a given time interval. The temporal conditions a f ter _date that apply to the set of Date and return a tempo-
can correspond to a day of the week, or to a time of the ral context. We also consider a function on_day that applies
day, etc. For instance, a physician within an hospital may to the set of Day and return a temporal context defined as
be allowed to access the medical record server only during follows:
the working hours, that is between 8:00 Am and 19:00 Pm for
example. • ∀org ∈ Org, ∀s ∈ S, ∀α ∈ A, ∀o ∈ O, ∀d ∈ Day,
To validate a given query for an access, it is necessary to H old(org, s, α, o, on_day(d)) ← Day(Global_
be able to evaluate the current time. Thus, we assume that the clock, d)

123
294 F. Cuppens, N. Cuppens-Boulahia

3.2.3 Composed temporal context colleague’s payrolls over the manager’s shoulder. Spatial
context is used to express this kind of condition.
Using the basic temporal contexts, we can define more com- We can distinguish two different types of spatial context.
plex temporal contexts using the context algebra, for instance: The physical spatial context and the logical spatial context.
The first one corresponds to the physical location of the user,
• night = a f ter _time(23:00) ⊕ be f or e_time(8:00) namely his or her office, a security area, a specific building,
• weekend = on_day(satur day) ⊕ on_day(sunday) the country, etc. The logical spatial context corresponds to
• wor king_hour s = a f ter _time(08 : 00) & be f or e_ the “logical location” he or she stands in. For example, it can
time(19 : 00) & weekend be the computer, the network or the sub-network, the cell in
the case of radio communication such as in UMTS, etc.
Notice that context definition actually depends on the orga- In some cases, physical and logical spatial contexts are
nization. For instance, in an organization where employees highly correlated. The network IP address from which a
works on Saturday but not on Monday, context wor king_ user is connected probably corresponds to a specific physical
hour s would be defined as follows: place such as a department area. Note that due to the expand-
ing use of global position system (GPS) tools, it could be
• wor king_hour s = a f ter _time(08 : 00) & be f or e_ possible to locate a user or a terminal independently of the
time(19 : 00) network.
& on_day(sunday) & on_day(monday) If an organization allows its employees the use of Mobile
IP, it is necessary to take into account from which network a
3.2.4 Examples of permissions using temporal context request is emitted. A user will generally get less permissions
if he or she is connected from a customer’s office. Moreover,
Let us consider the following rule: “In hospital H 1, a phy- the development of wireless technologies such as Wi-Fi moti-
sician is permitted to consult the medical record database vates this work. The security policy must make it possible to
med_db during working hours”. This is expressed by the take into account the fact that a user is connected through a
following fact: wire network, a wireless network, or on which Wi-Fi access
point he or she is attached.
• Per mission(H 1, physician, consult, med_db, In the remainder of this section, we shall first present how
wor king_hour s) to, respectively, specify physical and logical spatial contexts.
We shall then give examples of how these contexts may be
used when specifying a security policy.
Let us now assume that the role car diologist is also per-
mitted to consult med_db on Sunday. This is expressed by
3.3.2 Physical spatial contexts
the following fact:
As suggested by the Open GIS Consortium [12], we first
• Per mission(H 1, car diologist, consult, med_db,
assume the existence of a set S O of spatial objects (also
wor king_hour s ⊕ on_day(sunday))
called spatial features in [12]). Examples of spatial objects
may be Rennes, France or the Office_232 in the hospital H1.
If we assume that car diologist is a senior role of physician, Note that a physical organization such as the hospital H1 can
it would be actually sufficient to specify that car diologist belong to the set S O.
is permitted to consult med_db on Sunday, since the permis- We assume that spatial objects are associated with location
sion in temporal context wor king_hour s will be inherited functions so that it is possible to determine if a given subject is
from physician. located in the area of a given spatial object. For this purpose,
we introduce the OrBAC built-in predicate I s_located:
3.3 Spatial context
• I s_located is a predicate over domains Org × S × S O
3.3.1 Principle If org is an organization, s is a subject and so is a spatial
object, then I s_located(org, s, so) means that the loca-
Knowing the location from where the user makes the request tion functions used in organizations org can determine
can be useful to specify the access control policy. For exam- that subject s is located in the area of spatial object so.
ple an hospital manager may be granted the right to read all
employees’ payrolls. But she must read those payrolls in a Note that the truth of the I s_located predicate depends on
secure area, for example in her own office. It thus reduces the organization. This means that a given organization may
the possibility of curious employees being able to read their be able to determine that some subject is located in the area

123
Modeling contextual security policies 295

of some spatial object which may not be the case for another actually an hybrid context, that is a combination of a physical
organization. spatial context and a prerequisite context (see Sect. 3.5).
We then define a function location that applies to the set
S O of spatial objects and return a physical spatial context 3.3.3 Logical spatial contexts
defined as follows:
The logical spatial contexts depend on the characteristics of
• ∀org ∈ Org, ∀s ∈ S, ∀α ∈ A, ∀o ∈ O, ∀so ∈ S O, the network and computer infrastructure of the organization.
H old(org, s, α, o, location(so)) ← I s_located The logical location of a subject depends on some of these
(org, s, so) characteristics such as on which host this subject is logged,
This rule says that a given subject is performing a given to which subnetwork this host is connected, how this host
action on a given object in the context location(so) if is connected to the subnetwork, etc. We can also define the
this subject is located in the area of spatial subject so. logical location of the object to be accessed by determining
on which host this object is stored.
In OrBAC, spatial objects as other objects are grouped As suggested for instance in [46], it is possible to define
into views. For instance, the fact U se(H 1, O f f ice_232, a set of predicates to model the network and computer char-
O f f ice) means that the organization H 1 uses the spatial acteristics. For this purpose, we need:
object O f f ice_232 in view O f f ice. We say that a view v
• Predicates to determine the logical location of the sub-
is a spatial view if it contains spatial objects and we denote
ject, for example Login(s, h) (subject s is logged on
SV the set of spatial views.
host h),
We can then generalize the function location so that it also
• Predicates to determine the logical location of the object,
applies to the set SV of spatial views and return a physical
for example Storage(o, h) (object o is stored on host h),
spatial context. This physical spatial context is defined as
• Predicates to model the network infrastructure, for exam-
follows:
ple Location_zone(h, net) (host h is connected to the
network net), H ost_os(h, os) (host h is running operat-
• ∀org ∈ Org, ∀s ∈ S, ∀α ∈ A, ∀o ∈ O, ∀sv ∈ SV, ing system os),
∀so ∈ S O, • Predicates to model the security of communication
H old(org, s, α, o, location(sv)) ← (U se(org, so, channels, for example Authenticated(ch, ac) (authen-
sv) ∧ I s_located(org, s, so)) tication method ac has been successfully used during
This rule says that a given subject is performing a given the initialization of channel ch), Encr yption(ch, en)
action on a given object in the context location(sv) (encryption method en is used for channel ch),
(where sv is a spatial view for instance O f f ice) if this • Predicates to model application security, for example
subject is located in the area of some spatial subject so Application(org, α, t) (organization org has assigned
and so is used in the spatial view sv. trust level t to the action α).

It is also possible to define more “customized” contexts, To illustrate how these predicates may be used, let us con-
for instance, the context per sonal_o f f ice may be defined sider a company C that has a secured area S A in which
as follows: specific security requirements are enforced. For example,
there is no possibility of optical eavesdropping [36]. S A cor-
• ∀org ∈ Org, ∀s ∈ S, ∀α ∈ A, ∀o ∈ O, ∀ po ∈ S O, responds to the name of a specific subnetwork. Users are
H old(org, s, α, o, per sonal_o f f ice) ← allowed to consult certain documents on their laptop only in
(Per sonal_o f f ice(org, s, po) ∧ I s_located(org, this area. If a given subnetwork address is allocated in this
s, po)) area, then the IP address of the terminal that is making a
request is enough to locate it. Thus, using the above-defined
Login and Location_zone predicates, the logical context
In this rule, we consider that Per sonal_o f f ice(org,
in_secur ed_ar ea can be defined as follows:
s, po) is an application-dependent predicate that says that, in
organization org, the spatial object po is the personal office • ∀s ∈ S, ∀α ∈ A, ∀o ∈ O, ∀host ∈ O,
of subject s. So the rule says that a given subject is perform- H old(C, s, α, o, in_secur ed_ar ea) ←
ing an action on an object in the context per sonal_o f f ice Login(s, host) ∧ Location_zone(host, S A)
if this subject is located in his or her personal office.
Note that the evaluation of context per sonal_o f f ice A similar idea can be used in the case of Mobile IP. In this
requires a query to the system database to evaluate the predi- case, the local agent must manage the network where the
cate Per sonal_o f f ice(org, s, po). So this context is mobile hosts are.

123
296 F. Cuppens, N. Cuppens-Boulahia

Let us consider another example. In a wireless network, As a third rule “a hospital manager is permitted to consult
some user is allowed to access a specific resource from every- payroll if he or she is located in his or her office or in a secure
where but only with his or her own laptop. The attribute bool- area”:
ean host_M AC is allocated to the entity user that indicates • Per mission(H 1, manager, consult, payr oll,
if the MAC address of the packet received is really the MAC in_ per sonal_o f f ice ⊕ in_secur e_ar ea)
address of the user’s laptop. The context on_ per sonal_
laptop is then defined as follows:
Finally, “a nurse is permitted to consult the prescription if
• ∀s ∈ S, ∀α ∈ A, ∀o ∈ O, he our she is located in a hospital service”:
H old(C, s, a, o, on_ per sonal_laptop) ← host_
• Per mission(H 1, nur se, consult, pr escri ption,
M AC(s)
location(hosp_ser vice))
Note that specific security mechanisms must be implemented
to prevent a malicious user to bypass access control require- In this last example, we used a spatial view hosp_ser vice
ments by forging his or her own packets, and choosing the to define a physical spatial context. For example, if ser vice_
appropriate IP address or MAC address. This is not our objec- 12 is a service of hospital H 1, then a nurse will be permitted
tive to discuss such security issues in this paper. to consult the nurse record when located in ser vice_12.
However, these two examples only correspond to specific
logical spatial contexts defined by some given organization. 3.4 User-declared context
Using the above predicates and as suggested in [46], it would
be more interesting to define generic contexts that specify a 3.4.1 Principle
trust level associated with the execution of some action by
a given subject on a given role. Thus, if T L is a set of trust In some circumstances, a subject according to the role he
level then, we could define a set of contexts tr ust_level(l) or she is empowered in the organization may be allowed
for each l ∈ T L. to declare that he or she performs some activities in a given
Defining these kind of contexts would be very useful, context. When declaring a context, a subject will obtain some
especially when several systems having different security specific permissions and possibly also some obligations or
policies have to inter-operate. To be effective, this approach prohibitions. For instance, a subject empowered in the role
must be based on an ontology to formally define the set of medical researcher may be permitted to declare that he or
predicates to be used and a risk analysis to fix the defini- she is performing an epidemiological analysis. By doing so,
tion of the tr ust_level contexts. This issue clearly requires this subject will get the permission to have an access to some
further work that goes beyond the scope of this paper. statistical database.
In our approach, user declared contexts are modeled as
3.3.4 Example of permissions using spatial contexts follows. Declaring a context actually corresponds to creat-
ing a special object called purpose object and inserting this
Let us first consider the following rule: “In hospital H 1, a object in a view called Pur pose (if this insertion is permitted
physician located inside H 1 is permitted to consult the med- by the policy). Thus, we first consider a set of purpose objects
ical record database med_db”. This is expressed by the fol- denoted P O. Purpose objects are used to describe the user-
lowing fact: declared context activated by some subject. Purpose objects
have two attributes Reci pient and Declar ed_ pur pose
• Per mission(H 1, physician, consult, med_db,
defined as follows.
location(H 1))
• Reci pient is a predicate over domains P O × S
Note here that the organization H 1 is used as a spatial If po is a purpose object belonging to P O and s is a sub-
object to define a physical spatial context. ject, then Reci pient ( po, s) means that s is the subject
Let us then assume that “a physician located outside H 1 is who takes advantage of the declared purpose po.
permitted to consult the medical record of med_db but only • Declar ed_ pur pose is a predicate over domains P O ×
on his or her personal laptop”. This is modeled as follows: PV
Here, we assume the existence of a set of purpose val-
• Per mission(H 1, physician, consult, med_db, ues denoted P V . Examples of purpose values are Medi-
location(H 1) & on_ per sonal_laptop) cal_reseach, Epidemiology, Hemophilia, Cancer, etc.
Thus, if po is a purpose object and pv is a purpose value
Here we have used a conjunctive context between a (neg- then Declar ed_ pur pose( po, pv) means that pv is the
ative) physical spatial context and a logical spatial context. purpose value associated with the declared purpose po.

123
Modeling contextual security policies 297

We then define a function user _declar ed that applies to medical researcher may be permitted to declare that his or
the set P V of purpose values and return a user declared con- her assistant will perform some activity in some given con-
text defined as follows: text. In this case, the subjects are different but the declarant
must be a medical researcher and the recipient must be the
• ∀org ∈ Org, ∀s ∈ S, ∀α ∈ A, ∀o ∈ O, ∀ po ∈ P O, medical researcher’s assistant.
∀ pv ∈ P V, In our approach, we use other contexts, generally
H old(org, s, α, o, user _declar ed( pv)) ← prerequisite contexts, to model this kind of constraints that
U se(org, po, Pur pose)∧ associates the declarant and the recipient. In the next sub-
Reci pient ( po, s) ∧ Declar ed_ pur pose( po, pv) section, we define the Per sonal_ pur pose context (to spec-
that is, in organization org, subject s performs action α on ify that the declarant must be equal to the recipient) and the
object o in the user declared context user _declar ed( pv) Assistant_ pur pose context (to specify that the recipient
if there is a purpose object po used in view Pur pose by must be a declarant’s assistant).
organization org such that s is the recipient associated To sum up, the definition of a user-declared context has
with po and pv is the declared purpose associated with two steps:
po. 1. Specification of roles who are permitted to declare some
given purpose.
Note that it is possible to consider sub-views of view 2. Specification of roles that are permitted to perform some
Pur pose. In particular, we consider that each purpose value activities in the associated user-declared context.
pv in P V is also a sub-view of Pur pose that corresponds
to restriction of the view Pur pose on the declared purpose
We illustrate these two steps in the following sub-section.
value pv.4 This is defined by the following view definition:
Notice also that activation of a user-declared context is often
associated with provisional obligation (see Sect. 3.6).
• ∀org ∈ Org, ∀ po ∈ P O, ∀ pv ∈ P V,
U se(org, po, pv) ←
U se(org, po, Pur pose)∧Declar ed_ pur pose( po, pv) 3.4.2 Example of user-declared context

Let us illustrate these two steps through the following two


We can also consider that sub-views of view Pur pose
examples:
may be associated with some specific attributes (see below
for examples). • Rule 1: In hospital H 1, a user empowered in the role
The access control policy then specifies that some roles “medical researcher” is permitted to declare the context
are permitted to insert some objects in the view Pur pose or “epidemiological analysis” for himself or herself. In this
in a sub-view of the view Pur pose. This last case is useful context, this user is permitted to have an access to some
to specify, for example, that a medical researcher is permit- statistical database.
ted to declare the epidemiological analysis purpose but not • Rule 2: In hospital H 2, a user empowered in the role
another purpose. “medical researcher” is permitted to declare the context
By inserting an object in the view Pur pose, a subject will “medical research” for one of his or her assistant. In this
declare that another subject will perform some activity in a context, this assistant is permitted to have an access to
given context. Note that in our model, there are two subjects some research database.
involved in the process of context declaration: the subject
who is declaring the context (the declarant) and the subject First step: Regarding Rule 1, we specify that subjects
who takes advantage of this declaration (the recipient). The empowered in role Medical_r esear cher are permitted to
policy can specify that these two subjects must be identical. declare the purpose E pidemiology that applies to them-
For instance, in the above example, the medical researcher selves:
may be only permitted to declare a context that applies to
himself or herself. However, it is also possible that the policy • Per mission(H 1, Medical_r esear cher, declar e,
specifies that these two subjects may be different, provided E pidemiology, Per sonal_ pur pose)
that these subjects satisfy some constraints. For instance, a
In this Per mission, declar e is an activity and Per sonal_
4 This corresponds to a classical abuse of notation in the object- pur pose is a context defined as follows:
oriented approach. For instance, let us consider a class Employee
having an attribute Employment. Then we can define a sub-class
• ∀org, ∀s ∈ S, ∀α ∈ A, ∀ po ∈ P O,
Engineer of Employee that groups employees whose attribute value H old(org, s, α, po, Per sonal_ pur pose) ←
for Employment is equal to Engineer . U se(org, po, Pur pose) ∧ Reci pient ( po, s)

123
298 F. Cuppens, N. Cuppens-Boulahia

that is a subject s is in context Per sonal_ pur pose if there By inserting an object in this view, a physician is allowed to
is a purpose object po having s as a recipient. declare that he or she is consulting a given patient in urgency.
Regarding Rule 2, we specify that subjects empowered in View Urgent_consultation has three attributes:
role Medical_r esear cher are permitted to declare the pur- Reci pient (inherited from view Pur pose), Declar ed_
pose Medical_r esear ch that applies to one of their assis- pur pose (also inherited from view Pur pose and instantiated
tants: to the purpose value Urgent_consultation) and a third attri-
bute Admitted_ patient. If po is a purpose object belonging
• Per mission(H 1, Medical_r esear cher, declar e, to view Urgent_consultation, then Admitted_ patient
Medical_r esear ch, Assistant_ pur pose) ( po, patient) represents the name of the patient admitted
in urgency.
where Assistant_ pur pose is a context defined as follows: First step: We specify that physicians are permitted to
declare that they are consulting a patient in urgency:
• ∀org, ∀s ∈ S, ∀s ∈ S, ∀α ∈ A, ∀ po ∈ P O,
H old(org, s, α, po, Assistant_ pur pose) ← • Per mission(H 1, Physician, declar e,
U se(org, po, Pur pose) ∧ Urgent_consultation,
Reci pient ( po, s ) ∧ Assistant (s, s ) Per sonal_ pur pose)

that is a subject s is in context Assitant_ pur pose if there Second step: We specify the permission that applies to a phy-
is a purpose object po having s as a recipient where s is sician in the user-declared context of Urgent_consultation.
an assistant of s (represented by the application-dependent For instance, we can consider that a physician is permitted
predicate Assistant (s, s )). to consult the patient’s medical record:
Second step: Regarding Rule 1, we specify that subjects
empowered in the role Medical_r esear cher are permitted • Per mission(H 1, Physician, consult,
to consult objects belonging to view Statistic_database in Medical_r ecor d, user _declar ed
the user-declared context E pidemiology: (Urgent_consultation))

• Per mission(H 1, Medical_r esear cher, consult, However, this is probably not what we want because in
Statistic_database, user _declar ed(E pidemiology)) this case, when declaring the context Urgent_consultation,
a physician would get an access to every medical record. We
Regarding Rule 2, we specify that subjects empowered in may prefer to further restrict this last permission so that a
the role Medical_assistant are permitted to consult objects physician will only get an access to the medical record of a
belonging to view Reseach_database in the user-declared patient admitted in urgency by this physician. In this case,
context Medical_r esear ch: we have to “customize” the user-declared context Urgent_
consultation. This is done by considering the context
• Per mission(H 1, Medical_assistant, consult, Urgency defined as follows:
Reseach_database, user _declar ed
(Medical_r esear ch)) • ∀s ∈ S, ∀α ∈ A, ∀o ∈ O, ∀ po ∈ P O, ∀ patient ∈ S,
H old(H 1, s, α, o, Urgency) ←
3.4.3 Urgency as a user-declared context U se(H 1, po, Urgent_consultation)∧
Reci pient ( po, s)∧
Managing urgency is an important requirement of medical Admitted_ patient ( po, patient)∧
applications. However, it is a complex problem to character- N ame_ patient (o, patient)
ize the conditions that, when satisfied, activate the urgency
context. Actually, we argue that it would not be possible to that is, in the organization H 1, subject s performs action
give an exhaustive specification of such conditions. And even α on object o in the context Urgency if there is a pur-
though this would be possible, it would be quite difficult for pose object po in view Urgent_consultation for a recipient
the information system to automatically check that one of whose name is s and for an admitted patient whose name is
these conditions is satisfied because most of them actually patient and o is an object related to this patient admitted in
depend on the physician’s judgement. urgency (represented by the application-dependent predicate
This is why we suggest modeling urgency as a user- N ame_ patient (o, patient)).
declared context. Thus, we first define a purpose value We can now specify that a physician is permitted to con-
Urgent_consultation and we associate it with a view sult the medical record of a patient admitted in urgency by
Urgent_consultation which is a sub-view of view Pur pose. this physician:

123
Modeling contextual security policies 299

• Per mission(H 1, Physician, consult, is absent. This will be possible if the database actually stores
Medical_r ecor d, Urgency) such information.
If this is not the case, then another possibility would be
3.5 Prerequisite context to define the context Absent_ physician as a user-declared
context. For instance, the nurse may be permitted to declare
3.5.1 Principle this context for a given patient. Of course, the two policies
will not be identical since, in this second case, the nurse will
In many cases, a permission (or an obligation or a prohibition) be responsible for declaring the context Absent_ physician.
is granted to a subject, but only if some specific conditions This means that the fact that a given context will be defined
are satisfied. For instance, let us turn back to the example as a prerequisite context or as a user-declared context strongly
presented in Sect. 2.8. This example says that a physician is depends on the data stored in the system database.
permitted to consult the patient’s medical record. However, a
specific condition must be satisfied, that is this record corre- 3.6 Provisional context
sponds to the physician’s patient. This condition is modeled
by a context called Attending_ physician. 3.6.1 Principle
We assume that the information required to check this con-
text, namely, the set of patients attended by each physician, The notion of provisional obligation was first introduced in
is stored into the system database. Thus, the evaluation of [30,35]. A provisional obligation is an obligation to perform
such a context is done by querying the database. This kind some action that applies when some subject performs another
of contexts are called prerequisite context. action, generally in a given context (typically when the con-
text is user-declared). In this case, the provisional obligation
3.5.2 Examples of prerequisite context is automatically triggered as a counterpart of the action per-
formed by the subject.
We already give in the previous sections examples of con- We suggest modeling this notion using another type of
text that involve in their definition prerequisite conditions: context called provisional context. For this purpose, we shall
the context Per sonal_o f f ice (see Sect. 3.3) or the contexts first assume that each organization manages a log file, that
Per sonal_ pur pose, Assistant_ pur pose or Urgency (see stores data about previous actions done by subjects in this
Sect. 3.4). organization. This is modeled by a view called Log.
Let us consider another example: “In hospital H 1, a nurse Objects belonging to view Log correspond to entries in
is granted the permission to consult a medical record in the the log files. These objects have five attributes: Log_actor ,
context where the physician of the corresponding patient is Log_action, Log_target, Log_date, and Log_context. If
absent”. This corresponds to the following permission: l is a log file entry, then these attributes respectively repre-
sents the subject s (Log_actor (l, s)) who is performing an
• Per mission(H 1, N ur se, consult, Medical_r ecor d, action α (Log_action(l, α)) on an object o (Log_target
Medical_ Absent_ physician) (l, o)) at a given date d (Log_date(l, d)) in a context c
where the prerequisite context Absent_ physician is (Log_context (l, c)).
expressed as follows: The reference monitor is responsible for inserting entries
• ∀s ∈ S, ∀α ∈ A, ∀o ∈ O, ∀s ∈ S, ∀ patient ∈ S, in the log file. When a request is accepted by the reference
H old(H 1, s, α, o, Absent_ physician) ← monitor, then this monitor will register in the log file the
U se(H 1, o, Medical_r ecor d)∧ requested subject, action and object and the corresponding
N ame_ patient (o, patient)∧ date of the request. The registered context corresponds to the
Empower (H 1, s , physician)∧ security rules that were applied to accept the request. Since
Patient (s , patient)∧ there may be several such security rules, this means that sev-
Status(s , Absent) eral associated contexts may be actually registered in the log
that is subject s performs action α on object o in con- entry.
text Absent_ physician if o is a medical record of some
patient patient and the physician s of this patient is 3.6.2 Example of provisional context
absent (represented by the application-dependent predi-
cate Status(s , Absent)). To illustrate the approach, let us show how to model the fol-
lowing rule: “In the hospital H 1, if a physician consults a
Note that we decide to define the context Absent_ physi- given patient’s medical record in a context of urgency, then
cian as a prerequisite context, that is it is evaluated by que- this physician has a provisional obligation to send a medical
rying the database to check if the physician of a given patient report to the attending physician of this patient”.

123
300 F. Cuppens, N. Cuppens-Boulahia

To model this rule, we first define a provisional context The advantage of this approach is that we only need to
called Urgent_consultation as follows: check (past) historical data to define provisional context.
Note also that a permission may be viewed as provisional
• ∀s ∈ S, ∀α ∈ A, ∀o ∈ O, ∀l ∈ O, ∀α ∈ A, (and not only an obligation). We are currently applying this
H old(H 1, s, α, o, Urgent_consultation) ← notion of provisional permission to workflow access control.
U se(H 1, l, Log) ∧ Log_actor (l, s)∧ This will be useful to model that, in a workflow, permissions
Log_action(l, α )∧Consider (H 1, α , consult)∧ are granted as the user advances in a given task.
Log_context (l, Urgency)

that is, in H 1, subject s performs action α on object o in 4 Decidability and complexity


provisional context Urgent_consultation if an entry l was
logged in view Log with (1) subject s as an actor, (2) an action The OrBAC model is based on first-order logic. The main
α that is considered a consult activity and (3) a context of drawback of full first-order logic is that it leads to undecid-
Urgency. able theory. Thus, we have to restrict the regulated system
We then define a view Medical_r epor t having three definition to obtain a decidable and tractable theory. One
attributes: Addr essee (the subject who is supposed to receive way to proceed is to consider that a regulated system cor-
the report), N ame_ patient (the patient’s name concerned responds to a Datalog program [45]. Datalog programs do
by the report) and Content (the content of this medical not allow the use of functional terms. Furthermore, Datalog
report). Based on this view, we define a view Med_r epor t_ programs must only include both defined and safe rules. A
to_attending_ physician which corresponds to the rule is defined if every variable that appears in the conclusion
following view definition: also appears in the premise. A rule is safe if it only provides
means to derive a finite set of new facts.
In a pure Datalog program, rules do not contain any neg-
• ∀r ep ∈ O, ∀ patient ∈ S, ∀s ∈ S,
ative literal. Pure Datalog guarantees that any access control
U se(H 1, r ep, Med_r epor t_to_attending_
policy will be decidable in polynomial time. However, pure
physician) ←
Datalog expressivity is very restricted.
U se(H 1, r ep, Medical_r epor t) ∧ N ame_
In Datalog¬ , the negation restriction is relaxed. Negative
patient (r ep, patient)∧
literals are allowed but rules must be stratified. Stratifying a
Addessee(r ep, s) ∧ Patient (s, patient)
Datalog program consists in ordering rules so that if a rule
contains a negative literal then the rule that defines this literal
Using this provisional context and this view, we can then is computed first. A stratified Datalog¬ program is comput-
specify that a physician has a provisional obligation to send able in polynomial time.
a medical report to the attending physician of this patient: We actually assume that the definition of security poli-
cies using the OrBAC model obeys the Datalog¬ restriction
• Obligation(H 1, Physician, send, except the definition of contexts through the H old predicate.
Med_r epor t_to_attending_ More precisely, the security rules correspond to ground
physician, Urgent_consultation) close facts specified using the Per mission, Obligation,
Pr ohibition and Dispensiation predicates. Regarding the
3.6.3 Other applications of provisional context specifications of predicates Empower , U se and Consider ,
we also consider that they correspond to facts or to rules (cor-
In [35], the authors consider two different types of provi- responding to role, view or activity definitions) that respect
sional obligation: obligations that are triggered after execut- the Datalog¬ restrictions. We also assume that the H old
ing a given action (see the example in the previous section) predicate is not used in the premises of these rules.
and obligation that must be fulfilled before executing a given By contrast, we cannot assume that the definition of con-
action. texts corresponds to Datalog¬ rules for the following reasons:
Let us call “before obligation” the second type of provi-
sional obligation and let us assume that a before obligation • These rules contain functional terms. In particular, the
o1 must be fulfilled before a permission p1 is granted. In our context algebra presented in section 2.6 may be used to
approach, before obligation o1 is actually modeled as a per- derive infinite functional terms by iteratively applying the
mission. If a given user performs the action corresponding to functions &, ⊕ and ¯ to build more complex contexts.
this permission, then a given provisional context is activated. • These rules are not always safe. For instance, temporal
In this provisional context, the (provisional) permission p1 context definitions such as a f ter _time(t) may derive an
will be granted. infinite set of new facts when time t is not fixed.

123
Modeling contextual security policies 301

• These rules are not always defined. For instance, in tem- have seen earlier, the context makes it possible to express
poral context definitions, subjects, actions and objects are different kinds of constraint.
respectively universally quantified over the set S, A and In the RBAC family models [40], RBAC2 introduces the
O but are not further constrained in the premises of the notion of constraints that control user-role assignment,
rule. This may lead to evaluate large Cartesian products permission-role assignment and session-role assignment con-
which is not efficient. straints. Thus, RBAC2 makes it potentially possible to estab-
lish security rules that depend on certain context information.
Even though the constraints are not modeled in the initial
To solve these problems, our proposal is the following.
RBAC model, some work have been done to formalize them
We first restrict the theory so that we do not attempt to
[2,3].
evaluate any contexts but only relevant contexts. A context
Many existing works also attempt to extend the RBAC
is relevant if it appears in the definition of a security rule.
model to deal with access control based on users’ location
As a consequence, a relevant context is always of finite size
context [9,13–15,23,27,42,46,47] or temporal context [8,
and since the rules of Sect. 2.6 for the context algebra con-
32,33]. Most of these approaches suggest combining the con-
verge to the evaluation of smaller size contexts, the process of
cept of role with spatial or temporal contextual conditions to
relevant context evaluation terminates. This solved the first
obtain “contextual” roles.
aforementioned problem.
Hence, [14] offers to broaden the role concept to the secu-
A relevant context is always fully instantiated. For inst-
rity requests environment. In the generalized model [15], the
ance, we shall never attempt to evaluate a f ter _time(t)
environment context is specified through a new type of role
where t is a variable. This solve the second problem.
called the environment role. It is thus possible to express the
Finally, in Datalog, queries are pre-computed iteratively
constraints which are related to time intervals and trusted
using a bottom-up strategy until convergence to a fixed-
locations. Moreover, the environment role hierarchy makes
point. As mentioned in [6], this would not be an acceptable
the contextual information management easier. In [27], the
strategy when the queries depend on function calls over the
authors discuss the identification of role with respect to loca-
environment, for example, for getting the current time to eval-
tion and assign the permissions in specific sessions consider-
uate the temporal contexts. Thus, a top-down evaluation is
ing the role and location with emphasis on roles belonging to
clearly more adapted to evaluate the relevant contexts. How-
some organization. The GEO-RBAC model [9], which pos-
ever, the usual top-down algorithms based on SLD and used
sibly is the most expressive location based RBAC model,
in Prolog does not guarantee termination even when a finite
assumes that users can use a role only from a particular loca-
fixed-point exists. By contrast the SLG algorithm preserves
tion, and the role and its associated permissions are prede-
the termination [44]. This approach is far more efficient than
fined for that location. In [46], a distributed RBAC approach
the bottom-up method when we have fully instantiated H old
is presented which is based on logical location-dependant
predicates to evaluate. This will be generally the case when
conditions. An extensive set of predicates is defined to model
we have to decide that a given access must be accepted or
the network and computer characteristics and used to specify
denied. This solves the third aforementioned problem.
the scheduling of distributed on-line processes for automated
To sum up, our approach is to pre-compute the evalua-
location-dependant negotiating procedures.
tion of the Empower , U se and Consider predicates using
In [8], the authors propose another extension of the RBAC
a bottom-up strategy. This is possible since rules defining
model, called temporal role-based access control (TRBAC).
these predicates respect the Datalog¬ restrictions and do not
This work does not aim to express temporal conditions over
include the H old predicate. Then, we complete the evalua-
the time of the action corresponding to the security request
tion of queries using the top-down strategy as defined in the
but offer means to activate roles periodically or thanks to
SLG algorithm.
a trigger. The TRBAC model is then refined in GTRBAC
This hybrid strategy guarantees the decidability of query
[33] where temporal constraints and locations are separated
evaluation in the OrBAC model and its termination in poly-
with locations being structured in physical, logical and hybrid
nomial time.
location hierarchies.
The concept of purpose was also suggested in several pri-
vacy models for instance the privacy model [22]. In order to
5 Related work and discussion enforce privacy, it should be checked whether the purpose
of the task, currently performed by the user who wants to
5.1 Related work access personal data, corresponds to the purpose for which
that personal data were obtained.
Several approaches have been proposed to model context In several works related to context, the context corre-
management in access control and security policies. As we sponds to the ongoing activity in which the permissions are

123
302 F. Cuppens, N. Cuppens-Boulahia

requested. In this case, controlling the workflow makes it a single framework. It was precisely one of our objectives in
possible to “filter” the privileges granted to users. [24,25] this paper to define such an homogeneous unified framework.
provide a model based on TMAC, called C-TMAC, in which Moreover, we argue that the notion of “contextual” role
users obtain permissions according to their role and the team that was suggested in several models generally corresponds
in which they are involved. A context which defines the time, to artificial roles and sometimes to misleading roles. For
the location, etc, is associated the team. These attributes are instance, let us consider a role urgency physician. This is
used to reduce permissions granted to each role. This model a new role corresponding to “special” physicians that work
is particularly adapted to collaborative environments. in a service of urgency. It is clear that such a role urgency
Through C-TMAC, contexts are used to take into account physician is distinct from a “standard” physician working in
the need-to-know requirement, and the notion of just-in-time a context of urgency. In particular, the permissions assigned
permission activation. A great number of works such as [29] to this urgency physician are distinct from those assigned
are based on this idea. to a standard physician (even if this standard physician is
The expression of a workflow environment through the working in a context of urgency). Moreover, an urgency phy-
context can also be considered as a means to respond to the sician does not perform all his or her activities in a context
least privilege principle. The option of expressing contexts of urgency.
is useful in the case of business and transaction activities. In Thus, it is important to clearly separate the concepts of
such areas, the access control decision depends on specific role and context. In our approach, a context is actually not
sequences of events [1,5,10,11]. In [1], the workflow autho- attached to the role but to the security rules. Thus, we can
rization model (WAM) is defined that is capable of speci- assign, to the role urgency physician, security rules that apply
fying authorizations in such a way that subjects gain access in contexts different from the one of urgency (when the role
to required objects only during the execution of the task. urgency physician does not perform an activity in a context
In [11], the authors describe a context-sensitive access con- of urgency).
trol model in which the rights are granted according to the Our approach also clearly separates the concept of organi-
actual task. The multiple tasks are defined in a global process. zation and the spatial context of being located in an
The context is activated through reference to this process organization. Thus, there is a clear distinction between a sub-
definition. ject being empowered in a given role in a given organization
Contextual conditions are also useful to specify usage con- (represented by the predicate Empower ) and a subject being
trol policies as suggested in the UCON model [39]. In this located in a given organization (represented by the predicate
model, preconditions are checked to grant the access and on- I s_located). We also separate the security rules defined by
going conditions are checked during the access. Moreover, some organization and that apply when a subject is located
it is also possible to specify environmental conditions that in the spatial context of the same or another organization
do not depend on the subject which is requesting the access, (represented by location(org)).
for instance temporal conditions. The taxonomy of contexts For example, let us consider two hospitals H 1 and H 2. It
we suggest in this paper may help in structuring the different is then possible to consider security rules defined in organi-
conditions suggested in UCON. zation H 1 and in the spatial context location(H 1) (which
If an access or usage control model must allow the expres- apply to subjects empowered in hospital H 1 when they are
sion of contexts, it is also important to be able to evaluate physically located in hospital H 1) or security rules defined
this context. Holbein et al. [29] showed how to apply a con- in organization H 1 and in the spatial context location(H 2)
text-dependent access control mechanism on a commercial (which apply to subjects empowered in hospital H 1 when
platform. Through the antigone condition framework (ACF), they are physically located in hospital H 2). Similarly, we can
McDaniel [37] provided a means to specify, implement and also consider other security rules defined in organization H 2
evaluate the context which is viewed as a set of external con- and in the spatial context location(H 1) or location(H 2).
ditions. Evaluation of contextual conditions associated with By contrast, a “combined” role such as H 1_ physician
usage control requirements is discussed in [41]. is ambiguous since it may be interpreted as a “contextual”
role (corresponding to physician located in hospital H 1) or
an “organizational” role (corresponding to physician empow-
5.2 Discussion ered in hospital H 1).
We also introduce the concept of user declared context
The different existing models make it possible to capture to model that a user specifies that he or she will perform
information related to time, or to the user location, or to the some activities in a given purpose. The user declared con-
team to which the user belong, or to the current workflow, etc. texts are also useful to model contexts that are difficult to
Even though all these models are useful, they do not provide describe using environmental conditions such as the urgency
means to express a large number of different contexts within context.

123
Modeling contextual security policies 303

The last type of concept we consider in this paper is the systems generally provide such historical data through audit
provisional context. It is used to model security rules whose trail. Provisional obligation was already suggested in previ-
activation depends on the history of previously actions per- ous research work. Provisional permission may be also useful
formed by the user. We present the basic principles to model to model situations where users obtain permissions as their
this kind of context in our formalism. We are currently refin- work proceeds. Similarly, provisional prohibition is another
ing this approach to define a model for workflow security but useful context to model situations where the user’s previous
this is out of the scope of our purpose to develop this aspect activity leads to prohibition.
here. There were several other proposals to model contexts
This paper has presented a formalism to express the main within an access control model but this is the first time that all
types of context that are useful to specify a security policy. the different contexts are expressed within a unique homo-
We do not claim that this taxonomy is complete and that geneous framework. We are currently further investigating
other types of context could not be considered. In particular the notion of provisional context, in particular to model
and as suggested in [21], the concept of intrusion context management of rights in workflow system. We are also
can be introduced to specify security rules to be activated applying this model in the framework of relational database
as a response to an intrusion. The approach is based on an administration.
intrusion detection framework that launches alerts when an
attack is detected. As suggested in [21], the attack described Acknowledgments This work was partially funded by the RNRT
project Politess.
in the alert is mapped onto an intrusion context so that secu-
rity rules associated with this context is activated when this
attack is detected.

References
6 Conclusion 1. Adam, N., Atluri, V., Huang, W.-K.: Modeling and analysis of
workflows using petri nets. J Int. Inf. Syst. 10(2), 131–158 (1998)
In this paper, we present a model that includes an explicit 2. Ahn, G.-J., Sandhu, R.: Role-based authorization constraints
expression of context and show how to use it to specify specification. ACM Trans. Inf. Syst. Secur. 3(4), 207–226 (2000)
3. Ahn, G.-J., Shin, M.E.: Role-based authorization constraints
dynamic and flexible access control rules. We suggest a tax- specification using object constraint language. In: 10th IEEE
onomy of different types of context and model them in the International Workshops on Enabling Technologies: Infrastructure
OrBAC model. Starting from elementary contexts, we also for Collaborative Enterprises (WETICE 2001), MA, USA, (2001)
define conjunctive, disjunctive and negative contexts. 4. Al-Kahtani, M.A., Sandhu, R.: A model for attribute-based uSer-
role assignment. In: 18th Annual Computer Security Applications
To control activation of a given context, the information Conference (ACSAC’02), Las Vegas, Nevada, December 2002
system must store different data: temporal data to manage 5. Atluri, V., Huang, W.-K.: An authorization model for workflows.
temporal context, user environment and system architecture In: ESORICS’96, vol. 1146. LNCS (1996)
representation for spatial context, and application data stored 6. Becker, M., Sewell, P.: Cassandra: flexible trust management,
applied to eelctronic health records. In: The Computer Security
in the information base to define prerequisite context. Foundations Workshop (CSFW), Pacific Grove, CA, June 2004
We also show that it is sometimes not possible to express 7. Bell, D.E., La Padula, L.J.: Secure computer systems: unified
all the possible conditions required to activate some contexts. exposition and multics interpretation. Technical Report ESD-TR-
For instance, if we consider the medical context of urgency, 75-306, MTR-2997, Rev. 1, MITRE Corporation, Bedfort, MA,
March 1976
there are many different possibilities so that it is actually 8. Bertino, E., Bonatti, P.A., Ferrari, E.: A Temporal role-based access
impossible to provide an exhaustive definition of such a con- control model. ACM Trans. Inf. Syst. Secur. 4(3), 191–233 (2001)
text. In this case, we suggest defining the urgency context 9. Bertino, E., Catania, E., Damiani, M., Persasca, P.: GEO-RBAC:
as a user-declared context: this is the responsibility of some A spatially aware RBAC. In: 10th ACM Symposium on Access
Control Models and Technologies (SACMAT 2005), Chantilly,
authorized user to declare that this context is activated. VA, USA, May 2001
Thus, to activate a user-declared context, the user must be 10. Bertino, E., Ferrari, E., Atluri, V.: An Authorization Model for
authorized to declare some objective (or purpose) of his or Supporting the Specification and Enforcement of Authorization
her activity. This is modeled by views, a given user-declared Constraints in Workflow Management Systems. ACM Trans. Inf.
Syst. Secur. 2(1), 65–104 (1999)
context being activated by inserting a given object in this 11. Cholewka, D.G., Botha, R.A., Eloff, J.H.P.: A context-sensitive
view. access control model and prototype implementation. In: IFIP TC
Finally, we define provisional context. This is used to 11 16th Annual Working Conference on Information Security,
model permissions, obligations or prohibitions that depend Beijing, China, August 2000
12. Open GIS Consortium. Open GIS Simple Features Specification
on previous actions performed by the user. To control activa- for SQL. Revision January 1, 1999
tion of provisional context, the information system must store 13. Corradi, A., Montanari, R., Tibaldi, D.: Context-based access
historical data of what happens in the system. Information control in ubiquitous environments. In: 3rd IEEE International

123
304 F. Cuppens, N. Cuppens-Boulahia

Symposium on Network Computing and Applications (NCA), platform. In: IFIP 14th International Conference on Informa-
August 2004 tion Security (IFIP/Sec’98), Vienna-Budapest, Austria-Hungary,
14. Covington, M.J., Long, W., Srinivasan, S., Dey, A., Ahamad, M., August 31–September 4 1998
Abowd, G.: Securing context-aware applications using environ- 30. Jajodia, S., Kudo, M., Subrahmanian, V.S.: Provisional authori-
ment roles. In: 6th ACM Symposium on Access Control Mod- zations. In: Ghosh, A. (ed.) E-commerce Security and Privacy.
els and Technologies (SACMAT 2001), Chantilly, Virginia, USA, pp. 133–159. Kluwer, Norwell (2001)
May 2001 31. Jajodia, S., Samarati, P., Subrahmanian, V.S.: A logical language
15. Covington, M.J., Moyer, M.J., Ahamad, M.: Generalized role- for expressing authorizations. In: Proceedings of IEEE Symposium
based access control for securing future applications. In: Proceed- on Security and Privacy, pp. 31–42, Oakland, CA, USA (1997)
ings of the 23rd National Information Systems Security Confer- 32. Joshi, J.B.D., Bertino, E., Ghafoor, A.: Analysis of expressiveness
ence, (NISSC), Baltimore, MD, USA, October 2000 and design issues for a temporal role based access control model.
16. Cuppens, F., Cuppens-Boulahia, N., Ben Ghorbel M.: High-level IEEE Trans. Dependable Secur. Comput. 2(2), 157–175 (2005)
conflict management strategies in advanced access control mod- 33. Joshi, J.B.D., Bertino, E., Latif, U., Ghafoor, A.: Generalized tem-
els. Electronic Notes in Theoretical Computer Science (ENTCS), poral role-based access control model. IEEE Trans. Knowl. Data
186, July 2007 Eng. 17(1), 4–23 (2005)
17. Cuppens, F., Cuppens-Boulahia, N., Miège, A.: Inheritance hier- 34. Kalam, A.A.E., El Baida, R., Balbiani, P., Benferhat, S., Cuppens,
archies in the Or-BAC Model and Application in a network envi- F., Deswarte, Y., Miège, A., Saurel, C., Trouessin, G.: Organiza-
ronnement. In: 2nd Foundation of Computer Security Workshop, tion based access control. In: 8th IEEE International Workshop on
Turku, Finlande, July (2004) Policies for Distributed Systems and Networks (POLICY 2003),
18. Cuppens, F., Cuppens-Boulahia, N., Sans, T.: Nomad: A Security Lake Como, Italy, June (2003)
Model with Non Atomic Actions and Deadlines. In: The computer 35. Kudo, M., Hada, S.: XML document security based on provi-
security foundations workshop (CSFW), Aix en Provence, France sional authorization. In: Proceedings of the 7th ACM Conference
(2005) on Computer and Communication Security (CCS 2000). Athens,
19. Cuppens, F., Miège, A.: Modeling contexts in the Or-BAC model. Greece (2000)
In: 19th Annual Computer Security Applications Conference 36. Kuhn, M.G.: Optical time-domain eavesdropping risks of CRT
(ACSAC’03) 2003 displays. In: Proceedings of the 2002 IEEE Symposium on Secu-
20. Damianou, N., Dulay, N., Lupu, E., Sloman, M.: The Ponder rity and Privacy, Oakland, CA, USA (2002)
Policy Specification Language. In: International Workshop, Poli- 37. McDaniel, P.: On context in Authorization Policy. In: Proceed-
cies for Distributed Systems and Neworks (Policy 2001), Bristol, ings of the 8th ACM Symposium On Access Control Models and
UK, January (2001) Technologies (SACMAT 2003). Como, Italy, June 2003
21. Debar, H., Thomas, Y., Cuppens-Boulahia, N., Cuppens, F.: Using 38. Pan, F., Hobbs, J.: Time in OWL-S. In: AAAI Spring Symposium
contextual security policies for threat response. In: Detection of Series on Semantic Web Services. Palo Alto, CA, USA (2004)
Intrusions and Malware, and Vulnerability Assessment (DIMVA) 39. Park, J., Sandhu, R.S.: The UCON ABC usage control model. ACM
(2006) Trans. Inf. Sys. Secur. 7(1), 128–174 (2004)
22. Fischer-Hubner, S., Ott, A.: From a formal privacy model to its 40. Sandhu, R.S., Coyne, E.J., Feinstein, H.L., Youman, C.E.: Role-
implementation. In: Proceedings of the 21st National Information based access control models. IEEE Comput. 29(2), 38–47 (1996)
Systems Security Conference (1998) 41. Sans, T., Cuppens, F., Cuppens-Boulahia, N.: A flexible and dis-
23. Fu, S., Xu C.-Z.: A coordinated spatio-temporal access control tributed architecture to enforce dynamic access control. In: 21st
model for mobile computing in coalition environments. In: 19th IFIP TC-11 International Information Security Conference (SEC
IEEE International Parallel and Distributed Processing Sympo- 2006), Karlstad, Sweden, May 2006
sium, April 2005 42. Strembeck, M., Neumann, G.: An integrated approach to engineer
24. Georgiadis, C., Mavridis, I., Pangalos, G.: Context and role and enforce context constraints in RBAC environements. ACM
based hybrid access control for collaborative environments. In: Trans. Inf. Sys. Secur. 7(3), 392–427 (2004)
Proceedings of the Fifth Nordic Workshop on Secure IT Sys- 43. Thomas, R.K.: TMAC: A primitive for applying RBAC in
tems — Encouraging Co-operation (NORDSEC 2000), Reykjavik, collaborative environment. In: 2nd ACM, Workshop on RBAC,
Iceland, October 2000 pp. 13–19. FairFax, VA (1997)
25. Georgiadis, C.K., Mavridis, I., Pangalos, G., Thomas R.K.: 44. Toman, D.: Memoing evaluation for constraint extensions of
Flexible team-based access control using contexts. In: 6th ACM datalog. Constraints 2(3/4), 337–359 (1997)
Symposium on Access Control Models and Technologies (SAC- 45. Ullman, J.D.: Principles of Database and Knowledge-Base
MAT 2001), Chantilly, VA, USA, May (2001) Systems, vol. II. Computer Science Press, New York (1989)
26. Halpern, J., Weissman, V.: Using first-order logic to reason about 46. Wedde, H., Lischka, M.: Role-based access control in Ambient
policies. In: Proceedings of the 16th IEEE Computer Security and remote Space. In: 9th ACM Symposium on Access Control
Foundations Workshop (CSFW’03) 2003 Models and Technologies (SACMAT 2004), Yorktown Heights,
27. Hansen, F., Oleshchuk, V.: Spatial role-based access control model New York, USA, June 2004
for wireless networks. In: IEEE 58th Vehicular Technology Con- 47. Zhang, G., Parashar, M.: Dynamic context-aware access control for
ference, VTC 2003-Fall, vol. 3, October (2003) grid applications. In: 4th International Wrokshop on Grid Comput-
28. Harrison, M., Ruzzo, W., Ullman, J.: Protection in operating sys- ing, November (2003)
tems. CACM 19(8), 461–471 (1976)
29. Holbein, R., Morger, O., Nitsche, U., Teufel, S.: Realization of
a context-dependent access control mechanism on a commercial

123
Modeling contextual security policies 305

Author’s biographies Nora Cuppens-Boulahia is a


teaching researcher at the ENST
Frédéric Cuppens is a full pro- Bretagne. She holds an engi-
fessor at the ENST Bretagne. He neering degree in computer sci-
holds an engineering degree in ence and a PhD from ENSAE.
computer science, a PhD and an Her research interest includes
Habilitation thesis. He has been formalization of security pol-
working for more than 15 years icies and security properties,
on various topics of computer cryptographic protocol analysis
security including definition of and formal validation of security
formal models of security poli- properties. She is giving courses
cies, access control to network in various domains of computer
and information systems, intru- security including network, oper-
sion detection and formal tech- ating system and database secu-
niques to deploy and analyze rity, risk analysis and security
security policies and prove security properties. He has published more evaluation criteria. She has published more than 40 technical papers
than 80 technical papers in refereed journals and conference proceed- in refereed journals and conference proceedings.
ings. He served on several conference programme committees and was
the Programme Committee Chair of ESORICS 2000 and IFIP SEC
2004.

123

You might also like