Abstract
We present an approach to the proactive enforcement of provisions and obligations, suitable for building policy enforcement mechanisms that both prevent and cause system actions. Our approach encompasses abstract requirements for proactive policy enforcement, a system model describing how enforcement mechanisms interact with and control target systems, and concrete policy languages and associated enforcement mechanisms. As examples of policy languages, we consider finite automata and timed dynamic condition response (DCR) graphs. We use finite automata to illustrate the basic principles and DCR graphs to show how these principles can be adapted to a practical, real-time policy language. In both cases, we show how to algorithmically determine whether a given policy is enforceable and, when this is the case, construct an associated enforcement mechanism. Our approach improves upon existing formalisms in two ways: (1) we exploit the target system’s existing functionality to avert policy violations proactively, rather than compensate for them reactively; and (2) rather than requiring the manual specification of remedial actions in the policy, we deduce required actions directly from the policy.
Introduction
Problem context. Many security requirements can be decomposed into provisions and obligations [7,29,38,40]. Provisions specify conditions or properties dependent on the present and the past. They cover most traditional access control requirements. For example, access to customer records is granted to users in the role of customer-relations manager, provided customer consent was previously granted. Obligations, in contrast, impose conditions on the future that an agent or process should fulfil. For example, a hospital may be required to delete patient records within 14 days after a patient’s release.
Provisions and their enforcement by access control mechanisms are well understood. Obligations are less well understood, and subject to active research [2,4,19–21,23,24,30,31,33–37,48,53]. The enforcement of obligations is difficult as, to be enforceable, obligations must be associated with deadlines. A simple but limited enforcement mechanism is to associate obligations with access control rules, whereby the enforcement mechanism immediately takes the obliged action when the rule grants access, for example, logging the taken action. Alternatively, obligations may be associated with deadlines, whose expiration triggers remedial actions to be taken by the enforcement mechanism.
The state of the art generally handles obligations in limited ways, like those suggested above. The theory of how to handle obligations is underdeveloped, especially when deadlines are involved. With few exceptions, policy violations are not prevented, rather they are remediated. Namely, the enforcement mechanism witnesses a deadline expiring, but is powerless to prevent the concomitant policy violation and is reduced to taking remedial actions after the fact, such as logging, lowering a reputation rating, etc. Moreover, the enforcement mechanism’s interaction with the target system is often too limited for effective obligation enforcement or the exact extent of the mechanism’s control over the target system is unclear. While an enforcement mechanism can intercept actions and prevent them from happening, it cannot, a priori, force the target system to take action when required. Existing mechanisms tend to take only actions independent of the target system’s functionality, such as logging or sending notifications. We expand on these points and discuss exceptions in Section 8.
Problem addressed. We tackle the problem of proactive policy enforcement and the design of enforcement mechanisms that direct the target system to prevent policy violations. Not every policy can be enforced, and enforceability depends on the enforcement mechanism’s precise powers over the target system. We distinguish between whether an enforcement mechanism can (1) control an action by denying that it happens at a given point in time, (2) proactively cause an action to happen in the target system, or (3) merely observe that an action happens in the target system.
The above distinctions are critical. For example, at a hospital it is (or should be) observable when a patient dies. However it is neither meaningful for an enforcement mechanism to deny nor cause this action happen. In other cases, a mechanism may control whether the action is allowed, but not cause the action to happen by itself. For instance, a hospital IT system may be able to deny the immediate re-admission of a released patient; however, it cannot outright cause a patient to be readmitted, as that would require the patient’s consent. Finally, some actions may be both controllable and causable. For example, the enforcement mechanism can both deny and proactively cause the transfer of records from the hospital IT system’s local data storage to a remote archive, depending on the circumstances. Such distinctions between controllable (in the sense of denying) and uncontrollable (but observable) actions are well-known in other areas, such as supervisory-control theory [50].1
We follow established terminology where possible. For example, controllable and uncontrollable come from supervisory control theory, whereas to deny (an action) comes from the security literature on access control.
These observations motivate the following technical questions, answered in this paper. Given a policy in a specification language that distinguishes between causable and controllable actions, how do we construct a proactive enforcement mechanisms for it? In particular, can we efficiently compute a sequence of actions sufficient to resolve an impending obligation violation? And in what sense can this be done transparently in that the enforcement mechanism alters the target system’s behavior only when absolutely required by the policy?
Approach taken. Answering these questions necessarily involves a system model, a policy language, and an enforcement mechanism. In the first part of this paper, we present our underlying theory of proactive enforcement. We start, in Section 2, by presenting our model of systems and policies. The system model must clarify how the target system and the enforcement mechanism interact and what the mechanism can and cannot cause or control in the target system. The policy language must be expressive enough to formulate practical policies, yet constrained enough that we can efficiently compute (1) whether a policy is enforceable and (2) which actions are needed to avert impending obligation violations. In Section 3, we specify our requirements for a proactive enforcement mechanism, which connects the system model and the policy, using the latter to compute action sequences for execution within the former. We also establish basic technical results about such mechanisms and relate different enforcement requirements.
In the second part of the paper, we consider two representative policy languages and show how to construct enforcement mechanisms from policies expressed in each of them. First, in Section 5, we show how, and under what conditions, we can construct proactive enforcement mechanisms from finite automata. We introduce the key idea of a resolver, which is the part of the enforcement mechanism that causes sequences of actions to occur to prevent an obligation’s violation, and we show how to construct one. Second, we consider a richer, industrial-strength, policy language: the DCR process modeling language [12,16,27]. This is a declarative graphical process notation that incorporates both causality and time, and is used in industry to specify and build case-management systems. Specifically, in Section 6 we present DCR processes and their underlying theory and in Section 7 we show when and how a policy specified as a DCR process is enforceable. Additionally, we present a nontrivial example.
Contributions. Conceptually, we present a framework for reasoning about and constructing enforcement mechanisms for timed provisions and obligations. Our enforcement mechanisms are novel in that they deduce those actions necessary to avert policy violations and proactively cause the target system to take these actions in the nick of time, that is, whenever a deadline is about to be missed.
This approach improves upon existing formalisms in two ways (see also the discussion on related work in Section 8). First, we proactively exploit the target system’s existing functionality to avert policy violations, rather than to compensate reactively for them. Second, rather than requiring the manual specification of remedial actions in the policy, we deduce relevant actions directly from the policy.
Technically, we show how to construct enforcement mechanisms for two different policy languages and study associated decision problems. For policies specified by automata we define the notion of a derived enforcement mechanism and characterize the policy automaton for which such a mechanism exists. For policies specified by timed DCR processes we show that the enforceability of policies expressed as timed DCR processes is decidable but NP-hard. We then give a sufficient polynomial time verifiable condition for a DCR policy to be enforceable. Moreover, we give an algorithm that, given a DCR state of an enforceable DCR policy, computes a sequence of actions that, when executed on the target system, will discharge impending obligations.
Scope and structure. We focus exclusively on policies governing the sequencing of actions. This helps focus our presentation on the central issue of proactive policy enforcement. We leave open extensions to policy languages that handle other features like actions dependent on data, and the question of whether and how comparable enforcement mechanisms can be realized in other formalisms.
This paper is a substantially revised and extended version of the conference publication [5]. The present paper completely reworks the formal development, dispensing with the notion of a “directed language” in favor of a direct definition of a proactive enforcement mechanism. This change enables a smoother presentation of the use of DCR as a policy language. We also use it to develop new results on how to derive enforcement mechanisms from policies specified as finite automata in Section 5 and to establish a close relationship to Edit Automata [36].
Formalization. We have formalized the core theory of proactive enforcement in Isabelle/HOL and our theory files are available on-line at [11]. We have, however, not formalized our applications of the theory to other models like Edit Automata and DCR graphs. To make precise exactly what has and has not been verified in Isabelle, the definitions, lemmas, and theorems that have been formalized are marked with a black box in this paper, like the one at the end of this paragraph.
The remainder of this paper is organized as follows. In Section 2, we introduce our system model and the notion of policies as languages. In Section 3, we define requirements and establish properties of enforcement mechanisms. In this section we also show that edit automata can be used to depict our enforcement mechanisms and in Section 4 we formalize a tight relationship between these two formalisms. We provide examples of policy languages and enforcement for policies given by finite automata in Section 5 and timed dynamic condition response graphs in Sections 6–7. In Section 8 we make extensive comparisons with related work and in Section 9 we draw conclusions.
System model
The target system and the enforcement mechanism (also called a Policy Enforcement Point, or simply PEP) are independently running processes. The target system takes actions. The enforcement mechanism must, somehow, ensure that these actions conform to a given security policy.
Now how does an enforcement mechanism accomplish this? Following [36,48], the result of enforcement should be a stream of actions performed by the target system and the enforcement mechanism. Clearly, the mechanism should ensure that this stream complies with the policy being enforced. However, rather than retroactively translating the target system’s output as done in most previous work, our focus is on proactive enforcement: the enforcement mechanism directs the target system to be policy compliant by suppressing and causing actions in the target system. In particular, the mechanism cannot cause actions to happen that are not enabled in the target system and thereby add to its possible system behaviors.
More concretely, the enforcement mechanism has just two ways of manipulating the target system:
It may selectively deny the target system certain actions
It may selectively instruct or cause the target system to undertake certain actions
Not every action can be denied: If the target system is an aircraft, we cannot reasonably deny it the action “warn the pilot that an engine has failed.” Conversely, not every action can be caused: the “refuel the aircraft” action is not available to commercial aircraft while in flight. As such, we classify the actions of the target system as “uncontrollable” (those that cannot be denied) and “causable” (those that we may force upon the target system at any time).
We sketch the interaction of the enforcement mechanism and the target system in Fig. 1.

System model.
Whenever the target system wishes to take a controllable action, it requests permission from the enforcement mechanism (top arrow), which responds by reactively instructing the target system to execute some number of causable actions, and then granting or denying the requested action (second arrow from top).
Whenever the enforcement mechanism observes a deadline approaching, it may proactively instruct the target system to execute causable actions (second to last arrow).
Finally, whenever the target system performs an uncontrollable action, it informs the enforcement mechanism that it does so (bottom arrow).
We restrict our attention to discrete time systems as, for example, in [8,43], and we assume that enforcement mechanisms can only proactively cause actions within a time-step, just before a
Recall that the objective of the enforcement mechanism is to regulate the target system so that its observable actions conform to a (timed) security policy. However, whether the mechanism can actually achieve this depends (1) on the exact method of synchronization between the target system and the enforcement mechanism and (2) what timing guarantees they both provide. We discuss these aspects next.
Synchronization. The key question is how uncontrollable actions may interleave with controllable ones, both within the target system and within the enforcement mechanism. Here is an example where we write
The simple solution to problems like the above is to assume that the target system and the enforcement mechanism operate synchronously; for example, the target system suspends operation while waiting for a request to the enforcement mechanism to complete.
In practice, it may be possible to avoid such draconian measures. E.g., we may exploit additional knowledge about the sequencing of target system operations: some uncontrollable actions may be known to not happen in certain system states. For instance, we may safely assume that the uncontrollable action “engine failure detected” does not happen when the engine is not engaged. Alternatively, we may be in the fortunate position that the security policy is closed under commutation of uncontrollable and other actions within some time limit. A policy like “the uncontrollable action d must be followed by action a within 3 seconds” has this property: If we guarantee that the follow-up action a happens 2.5 seconds after d, we can safely commute d with arbitrary other actions within the first 2 seconds.
Time. Since our security policies are timed policies, the enforcement mechanism must itself be fast enough to process requests from the target system, and the target system must be fast enough in executing any caused sequences of actions.
Recall that we work with a discrete time model: Time advances in ticks, with some number of actions happening between ticks. Consider the policy “in every time period (between two consecutive ticks), the action b must happen.” We can imagine that the target system attempts to execute b, but the enforcement mechanism uses so much time processing the request
We resolve this situation by making real-time assumptions. Namely, we assume that the actions of the target system will always fit inside a tick. If requests happen seldomly and slowly enough that the enforcement mechanism can “keep up” and the target system similarly “keeps up” with caused events, we can avoid the above unfortunate situation. More specifically, we assume upper bounds on the rate of actions by the target system, the round-trip time between the target system and the enforcement mechanism, and the processing time of the target system. Altogether, these bounds limit the number of actions per time unit that can be undertaken by the target system. Taking a “tick” to be such a time unit, we avoid the above unfortunate situation.
Establishing semantic assumptions. The theory we will present only guarantees that the enforcement mechanism will observe actions conforming to the given security policy, under implicit assumptions about the enforcement mechanism being “fast enough.” For a concrete application of our theory, it is necessary also to establish that this “correctness at the enforcement mechanism” entails also “correctness at the target system.” We conclude this section with a few examples of system where such correctness can reasonably be established.
The enforcement mechanism and the target system are truly synchronous and therefore the enforcement mechanism controls when the target system acts. This means that the target system is incapable of taking actions of any kind while waiting for responses from the enforcement mechanism. Examples of such a setup include a target system controlled by a virtual machine, a debugger, or an instrumented CPU, which pauses the target system after each processing step while making enforcement decisions, and which causes actions by direct manipulation of the data and code of the target system. The tolerances for the timing of uncontrollable events are such that the causable actions may pre-empt them, provided the causable actions do so only with negligible impact on the timing of uncontrollable actions. Think of an operating system handling keyboard inputs, where a keystroke is an uncontrollable action: The human operating the keyboard will neither perceive nor care about his input being delayed a few milliseconds while, say, the operating system is executing enforcement mechanism instructions to log network packets. The causable actions and uncontrollable actions are independent in the sense of Mazurkiewicz [39] (see also [52]). That is, we assume that the target system is such that we cannot meaningfully distinguish between uncontrollable actions before, during, or after causable actions. Think of an enforcement mechanism inserting an access control check before database access inside a web application, where new TCP connections from clients constitute the uncontrollable actions. The access control actions have no bearing on opening TCP connections and vice versa and the two sets of actions can be processed, indeed interleaved, in any order.
Target system and policies
Prior to formalizing systems and policies, we first introduce relevant notation. For a finite alphabet Σ of actions, we write
We now turn to our system model. A target system is a language over an alphabet comprising uncontrollable actions, controllable actions, causable actions, and time. We account for time by including a special
A target system
In this definition, prefix closure formalizes that the target system S produces actions consecutively. The progression of time is modelled by
We note that if the target system contains the string
A security policy
As a first simple example, consider the informal policy over the actions
Consider the informal policy over the actions 
However, this example also highlights a discrepancy between, on the one hand, the formalization of time as discrete time steps, which progresses only on the
Note that, since the real time of the system is progressing continuously, this has the consequence that the above policy will both reject valid sequences and permit invalid sequences. For example, in the sequence
(Obligations).
Consider the informal policy over the actions 
Note that the right-most state, representing the state in which
Note that our notion of policy does not require time to progress. Whereas in practice time will progress, our formal development of enforcement mechanism, transparency, and soundness in the following sections does not in fact depend on this assumption. In particular, this means our results can be applied in settings where time is irrelevant. Hence we work in the more general setting without this assumption.
Enforcement mechanisms
Formalization
Our system model formalizes an enforcement mechanism that can replace each single input action x with either nothing (so it suppresses x), x itself (no-op), or a sequence of caused events (insertions) followed by x or nothing. Hence our enforcement mechanism constitutes a variant of a Mealy machine adapted to our system model. The output language is
(Enforcement mechanism).
Let for all for all
These conditions formalize that the mechanism respects time, causability, and controllability in accordance with the cases (A)–(C) of our system model on page 250. In Definition 6, Condition (1) says that the replacement function may insert any sequence of causable actions before time progresses. This intervention is justified by (B), in particular the principle that the enforcement mechanism may plan executions “in the nick of time.” Condition (2) says that controllable actions can be preceded by causable actions and optionally also suppressed. This intervention is justified by (A). Finally, Condition (3) says that uncontrollable actions must always be taken when present, which follows directly from (C).
An enforcement mechanism gives rise to an enforcement function, which modifies an input sequence by repeatedly applying both the replacement and update functions.
(Enforcement function).
An enforcement mechanism
Recall the policy
In terms of notation, it will be convenient to represent enforcement mechanisms graphically, using a notation similar to that of edit automata [35,36] and deterministic Mealy automata. Given an enforcement mechanism
We graphically depict the enforcement mechanism 
A key technical property of enforcement functions is that they operate on input sequences an event at a time. Given an input sequence
Notation. Given a function
Let
By induction on σ, we have that
A monotone function on words is one where if
For any enforcement mechanism
We must show for any σ, τ that
We start with the core requirement for an enforcement mechanism: it upholds the given policy.
(Soundness).
Let
Note that the enforcement mechanism is sound with respect to a policy and not any particular target system. That is, a sound enforcement mechanism can be combined with any target system and the result will conform with the given policy.
The enforcement mechanism
However, soundness is only part of the story. Enforcement mechanisms are traditionally also required to be transparent. This is formulated in [35, p. 5] as:
An enforcement mechanism must preserve the semantics of executions that already obey the property in question.
The informal definition cited above is compatible with most formal notions of transparency given in the literature, also under other names. For example, the notion of “precise enforcement” [35, Definition 2] prohibits enforcement from modifying the target system actions when the target system stays within the policy. The notion of “effective enforcement” [35, Definition 3] relaxes this requirement, whereby the enforcement mechanism may modify the target system only up to a system-specific equivalence.
We argue that these previous notions are all too weak. In particular, they all release the enforcement mechanism from all obligations after the target system has transgressed once. Namely, if the target system ever attempts to violate the policy, even just once, the enforcement mechanism is subsequently completely free to modify the target system’s behavior, even if the target system never attempts further transgressions. Hence we strengthen this requirement to the point where the enforcement mechanism must admit any additional actions that are policy-compatible with the corrected behavior of the target system observed so far.
Let
This definition corresponds closely to the intuition that a transparent enforcement mechanism must change the target system’s behavior “as little as possible.” It follows from transparency that if
It is easy to see that the enforcement mechanism
Consider again the policy 
(We have again omitted
This example may give the impression that under our notion of transparency, an enforcement mechanism must necessarily react identically to identical violations. This is not the case: although it cannot act more restrictively, it may add additional actions. We illustrate this with the following example.
Consider again the policy 
It is straightforward to verify that this enforcement mechanism is both sound and transparent.
We note a few properties of transparency. First, one can construct an enforcement mechanism that is transparent but not sound. The easy example is to take the enforcement mechanism to be the identity function, which is clearly transparent, since it never takes any corrective action. Non-trivial examples can also be constructed, which do take corrective actions, but do not always direct the target system back into the policy, or sometimes allow the system to transgress.
Second, any sound and transparent enforcement mechanism is the identity on already correct inputs; that is, our notion of transparency generalizes the traditional ones.
Let
By induction on σ, using the definition of transparency. □
Third, a sound enforcement function of a transparent and sound enforcement mechanism is idempotent. Recall that a function f is idempotent if
Let
Because
Finally, we note that if a sound and transparent enforcement mechanism exists for a policy, that policy must allow time to progress.
Let
Consider some
We consider in this section the relationship between our enforcement mechanisms and edit automata introduced in [35]. Edit automata are a class of finite automata generalizing security automata [48] that can not only suppress prohibited actions but can add obliged ones. The relationship to edit automata goes beyond shared notation: an enforcement mechanism in the sense of Definition 6 directly induces an edit automaton. We follow the original presentation of edit automata, but allow ourselves the slight generalization where edit automaton may insert more than one symbol; this generalization is straightforward (but tedious and unhelpful) to remove.
Notation. We write
An edit automaton [35] over an alphabet Σ is a five-tuple S is a set of states,
Edit automata have a labelled-transition semantics as defined in Fig. 2. They take an input in

Edit automata semantics.
Note that we may construct an edit automaton that replaces an input symbol with a string of outputs by performing a suppression followed by insertions: Suppose in state s we wish the symbol a to be replaced with
Let
We show that the edit automaton induced by an enforcement mechanism has the same semantics as the enforcement mechanism, in the sense that whenever the edit automaton consume its input and outputs a sequence α, then the enforcement mechanism also outputs α on that same input. The converse is false, for the technical reason that the edit automaton consumes remaining input and terminates when faced with a situation it does not know how to response to, whereas the enforcement function in that case is undefined. Recall from Definition 7 that an enforcement mechanism
Let T be a target system,
By induction on σ.
Base case. Assume
Inductive step. Assume that
[
[
In this section, we shall show how to automatically derive sound and transparent enforcement mechanisms from policies specified as finite automata. The key insight will be that automata defining policies implicitly give rise to proactive enforcement mechanisms.
Automata defining policies
Since we are interested in timed obligations and provisions, we require an automata model supporting an appropriate notion of time. There are various such models and we will use one based on an explicit representation of the passage of time as a
Notation. Recall the notation
A policy automaton over Σ is a finite automaton
These automata define policies via their associated language. As we require that policies are prefix closed (see Definition 2), our policy-defining automata are everywhere accepting.
Let A be a policy automaton over Σ. Then the language
By Definition 2, we must show that
Recall the policy “when
Consider the policy over the actions

Examples of policy automata and induced mechanisms. Dashed edges indicate where the resolver is used.
The question we now address is: given security policies specified as finite automata, like those in Figs 3a and 3c, how do we construct a sound and transparent enforcement mechanism for that policy? To this end, we introduce a device called a resolver. A resolver f for a policy automaton F tells us how to find a path
(Resolver).
Let
When a policy automaton has resolver that is defined for all non-controllable actions, we can then derive an enforcement mechanism from the policy automaton.
Let F be a policy automaton over Σ, suppose
These conditions say that either (1) the policy automaton is willing to do the action a outright, or (2) the requested action a is a tick, and the policy automaton can get to a state where it can do a using only causable actions, or (3) it has the power to deny a.
Ad (2), for the notion
Let
We must justify this definition by proving that
Let
We must show that the replacement function r satisfies Conditions 1–3 of Definition 6.
(1) Consider some
(2) Consider some
(3) Consider some
We proceed to prove that the induced enforcement mechanism is both sound and transparent. For this result, we will need the following lemma, which says that running an output of the induced enforcement mechanism through the original automaton yields the same state as if one had simply iterated the induced mechanism’s state update function. Let F be a policy automaton resolvable at By induction on σ. The base case is trivial. In the inductive step, because F is resolvable we may proceed by cases on the three conditions in Definition 28; each case corresponds directly to a defining clause in Definition 29. It is now straightforward to verify each individual case. □ Let F be a policy automaton over Σ that is resolvable at (i) (ii) (i) A denying resolver. Consider the automaton specifying the provision policy of Fig. 3c. A resolver for this automaton must handle the situation that either Here is an example application of this enforcement mechanism denying an attempt to execute (ii) A proactive resolver. Alternatively, rather than denying Here is an example application of this enforcement mechanism proactively executing an a to enable b:
These two examples demonstrate how we may choose between (i) the traditional enforcement of provisions (deny when prerequisites are not met) by supplying a trivial resolver or (ii) the proactive enforcement of provisions by causing the prerequisites by supplying a non-trivial resolver. (iii) Resolving a deadline in the nick of time. Finally, consider the automaton specifying the obligation-policy of Fig. 3a: When “ Here is an example of applying the enforcement mechanism to an input string, where the enforcement mechanism inserts a missing
The examples from Section 2.3 that we have used until now have been designed to be small and suitable for illustrations. We now provide part of a larger, more realistic example: a health-care data retention policy as might be found in regulations like HIPAA [9]. We use this example, taken from [3, Section 3.3], to illustrate here policies specified by finite automata, and subsequently, in Section 6, policies specified declaratively using DCR processes.
The policy targets hospitals, which must balance the dual requirements of protecting patients’ privacy while documenting the treatments given and the procedures followed. The tension between doctors collecting and using data and hospitals protecting the data over the long-term is resolved by retaining patient records in a central hospital database during the treatment and moving the records to an access restricted archive shortly after the patient’s release. In practice, the associated policy might look like this:
Records must be archived and deleted within 14 days of the patient’s release, unless the patient is re-admitted within those 14 days.
Records cannot be deleted unless they have been previously archived after the patient’s last release.
Records must not be unarchived before at least 8 years have passed after they were last archived
Records can not be deleted, archived, or unarchived while the patient is admitted to the hospital.
Policy activities
Policy activities
We list the actions associated with this policy in Table 1. Note that for simplicity and clarity, in our formalization we will consider only a single fixed patient and set of records.
Rule 1 can be split in two parts, the first part stating that “Records must be archived within 14 days of the patient’s release, unless the patient is re-admitted within those 14 days.” and the other part stating that “Records must be deleted within 14 days of the patient’s release, unless the patient is re-admitted within those 14 days.”

Automaton for first part of rule 1: “Records must be deleted within 14 days of release, unless the patient is re-admitted within those 14 days.”

Automaton for second part of rule 1: “Records must be archived within 14 days of release, unless the patient is re-admitted within those 14 days.”
We give finite automata corresponding to the two parts of the rule in Figs 4 and 5. Note that we use labels like
The automaton corresponding to a policy consisting of both parts of the rule is obtained as a (synchronous) product automaton of the two automata, i.e. an automaton with states being pairs

Automaton for rule 1: “Records must be deleted and archived within 14 days of release, unless the patient is re-admitted within those 14 days.”
Even in this simplified setting, this example shows that finite automata are not always convenient for expressing policies. In particular, while automata provide a general purpose specification language, they are relatively verbose. An automaton is as large as the state space it describes, which limits its practicality for most nontrivial policies. Large state spaces may also arise as a consequence of the exponential blow up of the size of the automaton when the number of activities is increased as well as due to the representation of time as ticks. For example, when specifying the hospital data retention policy in Figs 4, 5 and 6, we must resort to meta-notation to represent “14 days worth of ticks.” One may use more complex automata models, such as timed automata or Petri Nets [49], which represent time more compactly, but the explicit state space representation remains inconvenient for policies giving rise to large state spaces. Moreover, if the policy rules are provided in natural language, as in the example above, the translation from rules to automata results in a large representational gap that must be bridged.
An alternative to explicit state-based models is to use a rule-centric, declarative specification language like a temporal or deontic logic. By using a declarative formalism, we avoid representing the state space explicitly. Moreover, textual rules like the four rules given above are often declarative in nature, fitting rule-centric formalisms much more neatly than state-based ones like finite state automata. When this is the case, the use of a declarative formalism also reduces the complexity associated with manually translating from textual descriptions to formal specifications; in the ideal case there is a one-to-one correspondence, known as the isomorphism principle [6].
In the next section, we therefore describe how to use a declarative specification language as a policy language and we propose the use of timed DCR graphs [28]. Compared to other commonly used declarative specification languages, such as LTL, DCR graphs allow us to compute plans directly on the declarative specification. Moreover, as we will see, the semantics of DCR graphs is close enough to finite automata that we can directly apply the theory developed in the present section. Indeed, in Section 7, we show how our theory of resolvable policy automata can be combined with the DCR graph policy model to produce practically useful enforcement mechanisms for policies specified as DCR graphs.
Automaton for rule 3: “Records must be archived for at least 8 years.”
In this section, we present policy dynamic condition response graphs, a sublanguage of dynamic condition (DCR) graphs, as an example of a declarative specification language and an alternative to using finite automata for specifying timed properties. Instead of specifying a policy in terms of states and transitions, a DCR graph describes (i) the causal relationships between actions declaratively in terms of condition and response relations between events labelled with actions and (ii) dynamic conflict relationships between actions in terms of exclusions and inclusions between events. A marking of the events provides an operational run-time representation. This formalism is very expressive: DCR graphs can represent the union of regular and ω-regular languages [15,41]. This means that it can represent both represent safety and liveness properties and also that it is more expressive than LTL.
The DCR formalism was introduced in [27,41] as an event-based model for specifying distributed workflows and case management processes. It has subsequently been developed into an industrial-strength policy language specifying rules for governmental case management processes [13–15,17,26,28]. In particular, the language is supported by cloud-based design tools offered by DCRSolutions.net and a process engine is available as a web service (free for academic use) and has been embedded in the commercial WorkZone Enterprise Information Management system offered by NEC Corporation.2
In the present paper, we restrict our attention to policy DCR graphs, a subclass of DCR graphs representing security policies that are only safety properties. As for the automaton models given in the previous section, the acceptance criteria for policy DCR graphs is simplified compared to general DCR graphs, as policy graphs specify prefix closed languages. Also, whereas general DCR graphs allow the specification of unbounded deadlines (representing “eventually”), policy DCR graphs only allow the specification of finitary deadlines. For this purpose, let
A policy DCR graph is a tuple
, where
An event
We represent a marking as a finite sequence of pairs of events and event states, e.g.,
The five relations (arrows) regulate both which events may execute in a given marking, and how such an execution modifies that marking. Relations are sometimes called constraints because their purpose is to constrain the possible executions of the graph. In particular, a graph with no relations and an initial marking defined as
The exclusion/inclusion relations and the associated parts of the state is a unique feature of DCR graphs: Relations from excluded events are ignored, and excluded events can not be executed. This provides a direct way to express defeasible rules as we will exemplify below in Example 35.
We write
Again we write
We write
We write
We write
Below we exemplify DCR policies by formulating the rules discussed in Section 5.3. Recall the obligation of the hospital given Section 5.3, where the event Now, the first rule of the example given in Section 5.3 also states an exception to the rule above: The deletion should happen “unless the patient is re-admitted within those 14 days.” This is exception can be modelled conveniently using the exclude relation.
To model the provision given by the third rule, that the event We ignore here the general problem of translating ticks to calendar times and the non-trivial complications with time zones, leap years, etc. that translation entails.
Finally, to model the fourth rule, which states that records cannot be deleted or archived prior to the patient’s release, we use an exclude relation from
The complete policy given in Section 5.3 is thus modelled by 15 relations and 5 events.
Below we formalize when an event e in a DCR graph is enabled in a given marking M and the effect on the marking M when executing e, yielding a new marking
We extend the term notation for relations to sets of relations by writing a sequence of relation terms separated by a vertical bar. This allows us to specify and refer to a timed DCR graph as a term
(Enabled events).
Let G be a policy DCR graph with marking M. An event e of G is enabled, written
A
Thus enabled events (a) are included, (b) their included conditions have already been executed at least the number of time steps ago specified in the delay, and (c) have no required included milestones.
We proceed to formalize how the marking is updated when an enabled event e is executed. First, for a DCR graph G with events Let G be a timed DCR graph, with timed marking M. When Now, the effect of executing the Consider the DCR graph
(Execution).
,
), and
For a timed DCR graph G represented by the term
The transitions
A timed DCR graph
A run of
The LTS has a notion of acceptance: a run is accepting iff it is non-Zeno and every included, required response event in an intermediate marking will eventually be executed or excluded. For finite runs this is equivalent to requiring that it ends in a state with no included pending events. Recall that we write “
A finite or infinite run
A trace of a process
Note the distinction between events and labels in the definition of a trace. While DCR graphs derive some of their expressive power from this distinction [16], in most practical modelling scenarios labels and events are one-to-one. When we develop theory for enforcing DCR policies in the next section, we will work at the level of events. Policy specifications that do require the distinction between events and label will require additional work to apply the present theory.
We now consider what is necessary for a DCR policy to be proactively enforceable. Namely, when does an enforcement mechanism exist for a policy? The key insight is that DCR processes have a semantics based on finite labelled transition systems, which in turn can be viewed as finite automata. This means that provided we can construct resolvers for those transition systems, we can directly apply the theory of Section 5 to DCR graphs to produce practically usable enforcement mechanisms.
First, we define how the LTS of a DCR process gives rise to a policy automaton. Recall from Definition 39 that a timed DCR graph
Let
Note that the policy automaton ignores the labelling of the DCR process. This is meaningful in the common case where labels and events are 1–1; we leave the (less helpful) extension to non-trivial label mappings for future work.
We will be interested specifically in the case where all events of the target system are controllable, that is, the enforcement mechanism can always deny an action. In this case, all we need of a policy will be that we can always cause our way to meeting a deadline.
Let
That is, in any reachable state with one or more deadlines about to be missed, one may execute some sequence of the events in the set S to avoid missing those deadlines.
Let
It suffices to show that A is resolvable at
If (1) is the case, we are done, so suppose not. By construction,
Hence, any DCR process for which we can find a way to avoid missing deadlines can be used as the definition of a security policy, and we can derive a sound and transparent enforcement mechanism for that policy. The question then becomes: When can we be sure that a given DCR process can always reach a point where it meets its deadlines?
First, let us see an example of a DCR process that cannot meet its deadlines, a so-called time-locked DCR process.
Consider a hospital data retention rule as in Example 35, stating that a patient record must be archived within 14 days and the patient record must not be unarchived before 8 years after it has been archived.
Suppose now we were to add the constraints
Let us see a concrete example, where we start in the initial policy state, and follow how the markings in the policy evolve during an execution of policy events. In the table below, each row represents a state of the graph. The first row is the initial state, the second row is the state after the execution of the event 
In the last state, the event
A process
We conclude that a DCR policy is not necessarily enforceable, even if all events are controllable and causable: If there is a time-lock in a policy, then there are target systems for which no sound and transparent enforcement mechanism exists, since one cannot prevent time from advancing.
Let
This theorem begets the question whether we can decide if a DCR process is time-lock free. As it happens, time-lock–freedom is decidable, but NP-hard. We sketch the development here; see the Appendix for details.
To see that time-lock–freedom is decidable, we note that the LTS of a DCR process is extended bisimilar [25] to a finite one.
It is decidable whether a DCR process P is time-lock free.
By reduction from boolean satisfiability, we then find that deciding time-lock–freedom is NP-hard. Time-lock–freedom is intimately tied to the question of reachability event executions, since we can resolve a potential time-lock iff we can find a way to execute events that are pending with deadline zero. This observation will be useful in the next section, so we note the NP-hardness of this reachability problem already now. Let
There exists an
(a) Deciding eventual executability of any e in any DCR process P is NP-hard and (b) deciding time-lock–freedom for DCR processes is NP-hard.
We have just seen that the existence of an enforcement mechanism for a DCR policy depends precisely on the policy’s time-lock–freedom. We now give a polynomial-time computable sufficient condition for a DCR policy to be time-lock free, which also supports the effective computation of a sequence of events that averts violating a given deadline. Anticipating an application of Theorem 32, we call such a DCR policy “resolvable.” We will subsequently use this notion to define a sound and transparent enforcement mechanism for resolvable DCR policies.
A DCR process P is time-lock–free iff it is S-resolvable for some S.
It is easily verified that the policy
Note that a DCR process P can be time-lock–free and yet have no way to accept. For example, consider the process
From Proposition 48 and Theorem 51, we find immediately a bound on the complexity of determining resolvability:
Let P be a DCR process and let
Given NP-hardness, we require a tractable approximation to resolvability in practice. We begin by considering which events may reach deadlines. We call these busy events.
An event e is busy in
Note that, as defined, busy events may have the indefinite deadline ω. We can identify busy events in time polynomial in the size of the DCR process:
An event e is busy in
The only way to violate an obligation is to neither execute nor exclude a busy event when its deadline arrives. Clearly, either (1) the busy event must be under the enforcement mechanism’s control or (2) an alternative event that excludes the busy event must be under the enforcement mechanism’s control. In the following, we will focus just on the first option. To this end, we define dependable events.
An event e is dependable in P iff in any
The following proposition follows immediately.
Let P be a DCR process, let B be the set of busy events of P, and suppose every event in B is dependable. Then P is B-resolvable.
This proposition provides an approximation for resolvability that can be computed in time polynomial in P, since we can approximate the busy events using Lemma 56 and dependable events with those that have no conditions or milestones. In practice, however, it is unlikely that every busy event is dependable. For example, in our policy from Section 5.3,
Let
The inhibitors of an event e are (the transitive closure of) those events that may cause e to be not executable because they are milestones or conditions for e.
Let X be a set of events of a DCR process The inhibition graph For any two nodes e, f in For any two nodes e, f in
Intuitively, a set of events is dependable if, when we build the graph of those events’ dependencies (milestones and conditions), the dependencies form a directed acyclic graph (1), and we can eventually execute any event in the set by simply executing the events in that acyclic graph in a topological order, i.e., “bottom-up”.
Care must be taken because of the interplay between responses and milestones. We must avoid the situation where resolving a dependency by executing it re-blocks a previously resolved dependency by either reinstating a milestone or a condition (2). Similarly, we must ensure that no event in the set depends any other event in the set with a delay (3).
Let P have busy events B. If B is dependable, then P is
The actual algorithm is simply this: Given a subset We return to our data retention example of Example 35. Inspecting the relations, we see that the inhibition graph has only the two edges:
It is instructive to see what an implementation of the enforcement mechanism one derives from a DCR process using Theorem 44 looks like in practice. Taking apart the various definitions involved, we see that this enforcement mechanism allows the target system to execute as long as it stays within the policy. If the target system deviates by attempting an action that is not allowed (“not enabled” in DCR parlance), it is simply denied. If time is about to progress (
This construction can be automated: All we need is a mechanical way to derive from a given DCR process a corresponding
Figure 8 gives the F# code implementing this enforcement mechanism for illustration purposes, where enforcement happens at the points indicated with (i), (ii), and (iii) in comments.

F# implementation of a DCR policy enforcement mechanism.
At point (i), the enforcement mechanism is presented with a target system action which is enabled in the DCR process, that is, admitted by the policy. This action is simply granted.
At point (ii), the enforcement mechanism is presented with a (non-
At point (iii), the enforcement mechanism is arriving at a deadline, and uses the
Our prototype uses the policy
In this section, we compare our approach with related policy specification languages for handling obligations and with alternative enforcement mechanisms.
Specification
The idea of adding obligations to policies was first proposed by Minsky and Lockman [40]. They augmented permissions with tasks to be executed within a stated deadline after an access request is granted. This deadline corresponds, for example, to the passage of time or is triggered by other events. Park and Sandhu examined obligations in the context of usage control [44] and Bettini et al. [7] systematically considered the combination of provisions and obligations within a datalog formalism. In both cases, the emphasis is on policy specification (and, in the case of [7], also analysis), rather than applications to enforcement and monitoring.
Obligations have also been used in languages such as PONDER [10] and XACML [42]. Obligations there are triggered by events: an event’s occurrence directly results in actions to discharge the obligation. This is in contrast to our work where obligations are associated with events that become pending but need not be immediately discharged.
Temporal logics are, of course, well suited for specifying properties based on the past (provisions) and future (obligations). For example, linear-time temporal logics (LTL) have been used in [4,23,30,53] to formalize regulations with obligations and usage-control policies. LTL formulas are closely related to DCR processes: Core (untimed) DCR processes are equivalent in their expressivity to ω-regular languages [15], whereas (propositional) LTL is equivalent to a subset of ω-regular languages, namely the star-free languages [51]. DCR processes also have the advantage that their operational semantics does not depend on the possibly exponential translation to (e.g. Büchi) automata, which is most often employed for LTL; see, for example, the use of LTL and Büchi automata to formalize (untimed) obligations in [18].
Notations for Business Process Modelling share many of the aims and qualities of LTL variants based on Büchi automata, and high-level system descriptions have been formalized using BPMN notation for the purpose of policy monitoring, such as [1]. Researchers in this field have also explored using process models as policy specifications for enforcement. For example, [22] presents a model-checking framework for Petri Nets, where nets capture security policies for physical access control. We explore enforcement further in the next section.
Enforcement
Obligations are fundamentally more difficult to enforce than provisions. For provisions, policy monitoring and enforcement are equivalent. Any enforceable policy can be monitored as the enforcement mechanism’s denial of an action signifies a policy violation when that action takes place. Conversely, a monitor can serve as a policy decision point for an enforcement mechanism. When policies contain obligations, there are monitorable policies that cannot be enforced, in particular when one distinguishes, as we have done (see also [33]), between actions that can be controlled by the enforcement mechanism versus those that can only be observed [2].
Our solution is for the (standard) setting where one interacts with the target system as a black box, which one can neither examine nor modify. Even with these restrictions, enforceability is a rich concept that depends on the underlying mechanism used [20,24], for example, whether the mechanism can only suppress actions, like security automata [48], or can initiate or change actions as with edit automata [35,36] or mandatory results automata (MRA) [37].
As with our approach, edit automata and MRA share the ability to proactively change behavior to enforce policies. They differ though in that neither formalism handles real-time constraints, which is an essential aspect of obligations. Their system models are quite different too. Our system model essentially extends that of security automata with additional target-system interfaces of controllable and causable actions. The MRA system model interposes the enforcement mechanism between the target system and an execution platform. For edit automata, no distinction is made between observable and controllable events and hence it remains open what an edit automaton can actually control on the target system.
Enforcement of timed obligations has also been studied in [45]. The enforcement mechanism they propose operates by taking as input a sequence of actions σ produced by the target systems and transforming it into an output sequence
A number of enforcement mechanisms have been proposed for obligations, like those for PONDER and XACML, which do not involve any sophisticated calculations. They enforce obligations simply by executing the appropriate actions (such as logging information) when the obligation to do so arises. Li et al. [34] provide operational extensions to XACML enforcement such as support for pre-obligations and on-going obligations, as introduced in the UCON model [44] – see also Elrakaiby et al. [19] who study enforcement of UCON-style obligations in the context of active databases.
In the Business Process Modelling space, enforcement of process model compliance is generally envisioned as an integral part of applications: users of workflow systems are only allowed to instruct the system to act within the confines of the underlying process model. However, work on separate enforcement mechanism in this space does exist, e.g., [32], where the authors propose an enforcement mechanism for a Petri-net based process specifications.
Finally, there is related work in other communities. For example, in supervisory-control theory for discrete event systems [46], a supervisor process (in our work, enforcement mechanism) attempts to control the behavior of a generator process (in our work, the target system) over its controllable events, which corresponds to our mechanism without the ability to force actions. Subsequent extensions of supervisory-control theory to timed discrete event systems [8,50] include delays and deadlines of each event and a designated subset of so-called forcible events. The supervisor process can now disable the tick (time) actions in case a forcible event is enabled. But the target system may choose to perform a non-forcible event; indeed the supervisor cannot enforce that a forcible event happens as in our approach. Also closely related is the research of Renard et al. [47] who present an automata-based framework for enforcing regular timed properties with uncontrollable events. Their enforcement mechanisms work by buffering and delaying input events so that the output satisfies a specified policy. Again, in contrast, our mechanisms do not buffer and delay, but actively schedule controllable events to prevent obligations’ violations.
Conclusions and future work
Obligations are a central notion found in a wide range of security policies such as those for usage control, data protection and privacy, and digital rights management. We have investigated their specification and enforcement in a black-box setting where the enforcement mechanism proactively computes and schedules those events needed to prevent policy violations. As not all policies in this setting are enforceable, we have also established complexity results for enforceability for both policies specified by automata and by DCR processes.
Our work shows how to avoid the violation of obligations by proactively taking actions. We have assumed that the sequence of actions caused proactively can always be executed within a single time-step. If time is measured in hours or days this is usually reasonable. However, for finer time granularities or if resolving an obligation requires delays, one would need to support
Our approach in this paper is not limited to obligations: one can reasonably consider proactively avoiding the violations of provisions too. For example, suppose we have the provision “action a can happen only if b previously happened”, and suppose the string w contains no occurrences of b. The present approach would suppress a, i.e.,
Finally, with respect to the usefulness of proactive enforcement in practice, the proof of the pudding is in the eating. We are presently engaged in a large-scale case study of policy enforcement with a major European railway service. While it seems that our policy language is well-suited for capturing temporal constraints between actions, the formalism presented here does not handle actions depending on data. An extension to handle data is currently underway.
Footnotes
Proofs
Here we provide the remaining proofs for all lemmas and theorems in the paper. Suppose m is sound and transparent. By the definition of a time-lock, there exists a Immediate from Proposition 66. □ Let B be a boolean satisfiability problem over atoms, conjunction, and negation. That is, B is a string in the language
For each atom a, add the relations For each non-leaf node n, add the relations For each non-leaf node For each non-leaf node (a) is immediate from Lemma 50. For (b), let B be a boolean satisfiability problem, suppose Suppose P is not S-resolvable for any S. By definition, there then exists a state from which time cannot advance after any finite sequence of events, and so P has a time-lock. Suppose instead P is S-resolvable for some S, and suppose for a contradiction that Immediate from the definition of busy events. □
If X is dependable for
Immediate from the definition. □ Suppose a subsequence of at each at each Clearly, each This proof also provides an algorithm for computing
Define a marking
For
