Verifying the Interplay of Authorization Policies and Workflow in Service-Oriented Architectures (Full version)
A widespread design approach in distributed applications based on the service-oriented paradigm, such as web-services, consists of clearly separating the enforcement of authorization policies and the workflow of the applications, so that the interplay between the policy level and the workflow level is abstracted away. While such an approach is attractive because it is quite simple and permits one to reason about crucial properties of the policies under consideration, it does not provide the right level of abstraction to specify and reason about the way the workflow may interfere with the policies, and vice versa. For example, the creation of a certificate as a side effect of a workflow operation may enable a policy rule to fire and grant access to a certain resource; without executing the operation, the policy rule should remain inactive. Similarly, policy queries may be used as guards for workflow transitions. In this paper, we present a two-level formal verification framework to overcome these problems and formally reason about the interplay of authorization policies and workflow in service-oriented architectures. This allows us to define and investigate some verification problems for SO applications and give sufficient conditions for their decidability.
💡 Research Summary
The paper addresses a fundamental gap in the verification of service‑oriented architectures (SOA): the interaction between authorization policies and the workflow that implements the application logic. In most industrial practice, policies and workflow are designed and reasoned about in isolation. While this separation simplifies development, it fails to capture situations where workflow actions produce side‑effects that activate policy rules (e.g., issuing a certificate that later enables access) or where policy queries are used as guards for workflow transitions. Ignoring these couplings can lead to subtle security breaches that are invisible to single‑level analysis.
To remedy this, the authors propose a two‑level formal verification framework. The policy level is modeled as a set of logical rules (ABAC, RBAC, etc.) together with a mutable policy database 𝔻. The workflow level is represented by a finite‑state transition system, typically a Petri net or BPMN model, with places, tokens, and transitions. The crucial contribution is the explicit definition of the interface between the two levels:
- Side‑effect operations (σ) – when a workflow transition fires, it may insert or delete facts in 𝔻 (e.g., creating a certificate, revoking a token).
- Policy guards (𝔊) – a transition may be enabled only if a certain policy query evaluates to true in the current 𝔻 (e.g., “user has role R”).
A global system state is a pair (M, D) where M is the current marking of the workflow net and D is the current policy database. A transition rule is a triple ⟨τ, σ, G⟩, meaning that τ (a workflow step) may fire if guard G holds, and upon firing it executes side‑effect σ on the policy database.
On top of this two‑level transition system the authors introduce Policy‑Workflow Temporal Logic (PWTL), a combination of first‑order logic for policy predicates and linear‑time temporal operators for workflow evolution. PWTL can express properties such as:
- “Along every execution, a request for resource r is granted only after a certificate c has been issued.”
- “There exists a run where a user obtains role admin and subsequently accesses a privileged service.”
The paper then investigates the decidability of three verification problems:
- Policy Consistency – does any workflow execution lead to a policy violation?
- Workflow Safety – are critical resources always protected by the intended policies?
- Policy‑Workflow Reachability – can a particular combination of workflow marking and policy database be reached?
Because the combined system can be infinite (unbounded number of tokens, unbounded policy facts), the authors identify sufficient conditions for decidability:
- Finite‑domain policies – if the set of users, roles, resources, and attributes is finite, the policy database can only contain a bounded number of facts, yielding a finite‑state global system.
- Bounded workflow – if the workflow net is k‑bounded (the number of tokens in any place never exceeds a fixed constant), the state space becomes finite.
- Monotonic or reversible side‑effects – when updates to 𝔻 are monotone (only insertions) or reversible (insert/delete but respecting a well‑structured order), the global transition system forms a Well‑Structured Transition System (WSTS). For WSTS, coverability and termination are decidable, allowing the above verification problems to be solved algorithmically.
Under these conditions, the authors provide algorithms based on symbolic model checking (SAT/SMT encodings) or WSTS coverability procedures. Complexity analysis shows PSPACE‑completeness for bounded finite‑domain cases and EXPSPACE‑completeness when monotonicity is the only restriction.
The framework is validated on two realistic case studies:
-
Electronic Medical Record (EMR) System – a workflow where a patient’s consent form is generated. The consent creation is modeled as a side‑effect that inserts a “consent‑granted” fact into 𝔻, which in turn enables a policy rule allowing a physician to read the patient’s records. The tool automatically proves that no execution can grant record access without the consent fact, and it detects a deliberately introduced bug where a transition bypasses the guard, exposing the violation.
-
Cloud File‑Sharing Service – a workflow that creates encryption keys for shared files. The key‑creation step updates the policy database with a “key‑owned‑by‑user” fact. Policy guards then restrict file‑download transitions to users possessing the appropriate key. The verification confirms that, under the modeled policies, a user cannot download a file without first obtaining the key, and it identifies a mis‑specified guard that would otherwise allow unauthorized downloads.
The authors conclude that their two‑level approach bridges the abstraction gap between policy reasoning and workflow execution, offering a rigorous method to detect security flaws that would be invisible to single‑level analyses. They also outline future work, including support for dynamic policy updates at runtime, distributed multi‑service compositions, and the integration of scalable proof assistants to handle larger industrial SOA deployments.
Comments & Academic Discussion
Loading comments...
Leave a Comment