A Distributed Calculus for Role-Based Access Control



Similar documents
Roma and Conjugation of a RBAC System

Semantics and Verification of Software

A Propositional Dynamic Logic for CCS Programs

Software Model Checking. Equivalence Hierarchy

Software Verification and Testing. Lecture Notes: Temporal Logics

How To Write A Program Verification And Programming Book

Bindings, mobility of bindings, and the -quantifier

Monitoring Networks through Multiparty Session Types

Types for Role-based Access Control of Dynamic Web Data

Software Modeling and Verification

Introducing Formal Methods. Software Engineering and Formal Methods

Dynamic Process/Service Composition/Combination

CHAPTER 1 INTRODUCTION

An Observational Theory for Mobile Ad Hoc Networks

The CVS-Server Case Study: A Formalized Security Architecture

A logical approach to dynamic role-based access control

Chapter 23. Database Security. Security Issues. Database Security

CS377: Database Systems Data Security and Privacy. Li Xiong Department of Mathematics and Computer Science Emory University

Datavetenskapligt Program (kandidat) Computer Science Programme (master)

Formal Verification and Linear-time Model Checking

CryptographicallyEnforced

Observational Program Calculi and the Correctness of Translations

SOFTWARE ENGINEERING PROGRAM

InvGen: An Efficient Invariant Generator

Authenticity by Typing for Security Protocols

Curriculum Vitae. Jens Chr. Godskesen. IT University of Copenhagen Rued Langgaards Vej 7, DK-2300 Copenhagen S, Denmark

Institut für Parallele und Verteilte Systeme. Abteilung Anwendersoftware. Universität Stuttgart Universitätsstraße 38 D Stuttgart

The Halting Problem is Undecidable

The SPES Methodology Modeling- and Analysis Techniques

A STRUCTURED APPROACH TO NETWORK SECURITY PROTOCOL IMPLEMENTATION

Runtime Verification - Monitor-oriented Programming - Monitor-based Runtime Reflection

Announcements. SE 1: Software Requirements Specification and Analysis. Review: Use Case Descriptions

Inference of Probability Distributions for Trust and Security applications

Role Based Access Control

Andrew Pitts chapter for D. Sangorgi and J. Rutten (eds), Advanced Topics in Bisimulation and Coinduction, Cambridge Tracts in Theoretical Computer

Table of Contents. CHAPTER 1 Web-Based Systems 1. CHAPTER 2 Web Engineering 12. CHAPTER 3 A Web Engineering Process 24

ACVisualizer: A Visualization Tool for Api-Calculus

Database Security. Soon M. Chung Department of Computer Science and Engineering Wright State University

Chapter II. Controlling Cars on a Bridge

How To Write A First Order Test For A Language With A Non-Commutative Type System

CONFIGURATION MANAGEMENT PLAN GUIDELINES

Algorithmic Software Verification

Analyzing First-order Role Based Access Control

Which Semantics for Neighbourhood Semantics?

Offline sorting buffers on Line

Semantic Description of Distributed Business Processes

Static Analysis of the Insider Problem

Simulation-Based Security with Inexhaustible Interactive Turing Machines

SCADE Suite in Space Applications

Requirements Management John Hrastar

BM482E Introduction to Computer Security

Engineering Process Software Qualities Software Architectural Design

Reducing Clocks in Timed Automata while Preserving Bisimulation

Requirements for Software Deployment Languages and Schema

Multi-Objective Genetic Test Generation for Systems-on-Chip Hardware Verification

Formal Methods in Security Protocols Analysis

Integrating basic Access Control Models for efficient security along with encryption for the ERP System

Access Control Models Part I. Murat Kantarcioglu UT Dallas

ADVANCED SCHOOL OF SYSTEMS AND DATA STUDIES (ASSDAS) PROGRAM: CTech in Computer Science

Specification and Analysis of Contracts Lecture 1 Introduction

A logical approach to role-based access control in a distributed environment

[Refer Slide Time: 05:10]

CS510 Software Engineering

MEN'S FASHION UK Items are ranked in order of popularity.

Fixed-Point Logics and Computation

CHAPTER 22 Database Security Integration Using Role-Based Access Control

Interconnection Networks. Interconnection Networks. Interconnection networks are used everywhere!

Open Access to Call and Session Control in Mobile Networks

COMPUTER SCIENCE. Department of Mathematics & Computer Science

Contents. Introduction and System Engineering 1. Introduction 2. Software Process and Methodology 16. System Engineering 53

Identity Management and Access Control

Lecture 9: Requirements Modelling

Chapter 4 Software Lifecycle and Performance Analysis

The Classes P and NP

Dynamically Authorized Role-Based Access Control for Secure Distributed Computation

Fabio Patrizi DIS Sapienza - University of Rome

Third Party Data Session Control in the Evolved Packet System

Access Control Intro, DAC and MAC. System Security

Arithmetic Coding: Introduction

Transcription:

A Distributed Calculus for Role-Based Access Control Chiara Braghin joint work with D. Gorla and V. Sassone MyThS Meeting, Venice, June, 14th, 2004 A Distributed Calculus for Role-Based Access Control p.1/18

RBAC Why: Role-Based Access Control is attracting increasing attention because: it reduces complexity and cost of security administration; permission s management is less error-prone; it is flexible (rôle s hierarchy, separation of duty, etc.); it is least privilege-oriented. A Distributed Calculus for Role-Based Access Control p.2/18

RBAC Why: Role-Based Access Control is attracting increasing attention because: it reduces complexity and cost of security administration; permission s management is less error-prone; it is flexible (rôle s hierarchy, separation of duty, etc.); it is least privilege-oriented. Our work: Formalize the behaviour of concurrent and distributed systems under security policies defined in a RBAC fashion, similar to the types developed in Dπ and Klaim to implement discretionary access control the types developed for Boxed Ambients to implement mandatory access control A Distributed Calculus for Role-Based Access Control p.2/18

Contents the RBAC96 model a formal framework for concurrent systems running under a RBAC policy: an extension of the π-calculus a type system ensuring that the specified policy is respected during computations a bisimulation to reason on systems behaviours some useful applications of the theory: finding the minimal schema to run a given system refining a system to be run under a given schema minimize the number of users in a given system. A Distributed Calculus for Role-Based Access Control p.3/18

The Basic RBAC model USER ASSIGNMENT PERM. ASSIGNMENT USERS ROLES PERMISSIONS SESSIONS A Distributed Calculus for Role-Based Access Control p.4/18

The starting point: π-calculus Concurrent processes communicating on channels. Processes: P, Q ::= a(x).p u v.p [u = v]p (νa:r)p nil P Q!P A Distributed Calculus for Role-Based Access Control p.5/18

The Syntax of our Calculus Concurrent processes communicating on channels. Processes: P, Q ::= a(x).p u v.p [u = v]p (νa:r)p nil P Q!P role R.P yield R.P A Distributed Calculus for Role-Based Access Control p.5/18

The Syntax of our Calculus Concurrent processes communicating on channels. Processes: P, Q ::= a(x).p u v.p [u = v]p (νa:r)p nil P Q!P role R.P yield R.P User Sessions: r{ P } ρ A Distributed Calculus for Role-Based Access Control p.5/18

The Syntax of our Calculus Concurrent processes communicating on channels. Processes: P, Q ::= a(x).p u v.p [u = v]p (νa:r)p nil P Q!P role R.P yield R.P Systems: A, B ::= 0 r{ P }ρ A B (νa r :R)A A Distributed Calculus for Role-Based Access Control p.5/18

The Syntax of our Calculus Concurrent processes communicating on channels. Processes: P, Q ::= a(x).p u v.p [u = v]p (νa:r)p nil P Q!P role R.P yield R.P Systems: A, B ::= 0 r{ P }ρ A B (νa r :R)A Channels are allocated to users to enable a distibuted implementation A Distributed Calculus for Role-Based Access Control p.5/18

Dynamic Semantics It is given in the form of a reduction relation Communication: s{ a r n.p } ρ r{ a(x).q } ρ A Distributed Calculus for Role-Based Access Control p.6/18

Dynamic Semantics It is given in the form of a reduction relation Communication: s{ a r n.p } ρ r{ a(x).q } ρ s{ P } ρ r{ Q[n/x] } ρ A Distributed Calculus for Role-Based Access Control p.6/18

Dynamic Semantics It is given in the form of a reduction relation Communication: s{ a r n.p } ρ r{ a(x).q } ρ s{ P } ρ r{ Q[n/x] } ρ Rôle activation: r{ role R.P } ρ A Distributed Calculus for Role-Based Access Control p.6/18

Dynamic Semantics It is given in the form of a reduction relation Communication: s{ a r n.p } ρ r{ a(x).q } ρ s{ P } ρ r{ Q[n/x] } ρ Rôle activation: r{ role R.P } ρ r{ P } ρ {R} A Distributed Calculus for Role-Based Access Control p.6/18

Dynamic Semantics It is given in the form of a reduction relation Communication: s{ a r n.p } ρ r{ a(x).q } ρ s{ P } ρ r{ Q[n/x] } ρ Rôle activation: r{ role R.P } ρ r{ P } ρ {R} Rôle deactivation: r{ yield R.P } ρ A Distributed Calculus for Role-Based Access Control p.6/18

Dynamic Semantics It is given in the form of a reduction relation Communication: s{ a r n.p } ρ r{ a(x).q } ρ s{ P } ρ r{ Q[n/x] } ρ Rôle activation: r{ role R.P } ρ r{ P } ρ {R} Rôle deactivation: r{ yield R.P } ρ r{ P } ρ {R} A Distributed Calculus for Role-Based Access Control p.6/18

RBAC schema Permissions are capabilities that enable process actions. Thus, A = {R, R?, R! } R R is the set of permissions. A Distributed Calculus for Role-Based Access Control p.7/18

RBAC schema Permissions are capabilities that enable process actions. Thus, A = {R, R?, R! } R R is the set of permissions. In our framework, the RBAC schema is a pair of finite relations (U ; P), such that U fin (N u C) R P fin R A A Distributed Calculus for Role-Based Access Control p.7/18

An Example A banking scenario: two users, the client r and the bank s cashiers are modelled as channels c 1,..., c n of user s the rôles available are client and cashier. r{ role client.enqueue s r.dequeue(z).z req 1..z req k.z stop.yield client } ρ s{ (ν free)(!enqueue(x).free(y).dequeue x y Π n i=1 frees c s i Π n i=1!c i(x).( [x = withdrw_req] < > [x = dep_req] < >... [x = stop]free s c s i ) ) } ρ A Distributed Calculus for Role-Based Access Control p.8/18

Static Semantics - Types The syntax of types: Types T ::= UT C User Types UT ::= ρ[a 1 : R 1 (T 1 ),..., a n : R n (T n )] Channel Types C ::= R(T ) A Distributed Calculus for Role-Based Access Control p.9/18

Static Semantics - Types The syntax of types: Types T ::= UT C User Types UT ::= ρ[a 1 : R 1 (T 1 ),..., a n : R n (T n )] Channel Types C ::= R(T ) Γ; ρ P r P states that P respects Γ and P when it is run in a session of r with rôles ρ activated A Distributed Calculus for Role-Based Access Control p.9/18

Static Semantics - Types The syntax of types: Types T ::= UT C User Types UT ::= ρ[a 1 : R 1 (T 1 ),..., a n : R n (T n )] Channel Types C ::= R(T ) Γ; ρ P r P states that P respects Γ and P when it is run in a session of r with rôles ρ activated A typing environment is a mapping from user names and variables to user types that respects the assignments in U A Distributed Calculus for Role-Based Access Control p.9/18

Static Semantics - The Type System An example: performing input actions. (T-Input) Γ a: R(T ) R? P(ρ) Γ, x T ; ρ P r P Γ; ρ P r a(x).p A Distributed Calculus for Role-Based Access Control p.10/18

Static Semantics - The Type System An example: performing input actions. (T-Input) Γ a: R(T ) R? P(ρ) Γ, x T ; ρ P r P Γ; ρ P r a(x).p Type Safety: Let A be a well-typed system for (U; P). Then, whenever A (ν a r :R)(A r{ b(x).p } ρ ), it holds that either b r :S a r :R and S? P(ρ), or b r ã r and S? P(ρ), where {S} = U(b r ) A Distributed Calculus for Role-Based Access Control p.10/18

The Example Again The banking scenario again: now each available operation is modelled as a different channel (wdrw = withdraw, opn = open account, cc = credit card request) the communication among different channels requires different rôles P is such that {(rich_client, cc! ), (rich, rich_client )} P. A Distributed Calculus for Role-Based Access Control p.11/18

The Example Again The banking scenario again: now each available operation is modelled as a different channel (wdrw = withdraw, opn = open account, cc = credit card request) the communication among different channels requires different rôles P is such that {(rich_client, cc! ), (rich, rich_client )} P. r{ role client.enqueue s r.dequeue(z).z creditcard_req.cc s signature.z stop } {user} A Distributed Calculus for Role-Based Access Control p.11/18

The Example Again The banking scenario again: now each available operation is modelled as a different channel (wdrw = withdraw, opn = open account, cc = credit card request) the communication among different channels requires different rôles P is such that {(rich_client, cc! ), (rich, rich_client )} P. r{ role client.enqueue s r.dequeue(z).z creditcard_req.cc s signature.z stop } {user} r{ role rich_client.enqueue s r.dequeue(z).z creditcard_req.cc s signature.z stop } {rich} A Distributed Calculus for Role-Based Access Control p.11/18

LTS Semantics The labels of the LTS are derived from those of the π-calculus: µ ::= τ a r n a r n : R a r n a r n : R the LTS relates configurations, i.e. pairs (U; P) A made up of a RBAC schema (U; P) and a system A. Example: (LTS-F-Input) U(a r ) = {R} R? P(ρ) n dom(u) (U; P) r{ a(x).p } ρ a r n:s (U {n : S}; P) r{ P [n/x] } ρ A Distributed Calculus for Role-Based Access Control p.12/18

Bisimulation Equivalence We can define a standard bisimulation over the LTS (Bisimulation) It is a binary symmetric relation S between configurations such that, if (D, E) S and D µ D, there exists a configuration E such that E ˆµ = E and (D, E ) S. Bisimilarity,, is the largest bisimulation. the bisimulation is adequate with respect to a standardly defined (typed) barbed congruence. A Distributed Calculus for Role-Based Access Control p.13/18

Some Algebraic Laws if an action is not enabled, then the process cannot evolve: r{ α.p } ρ 0 if P(ρ) does not enable α A Distributed Calculus for Role-Based Access Control p.14/18

Some Algebraic Laws if an action is not enabled, then the process cannot evolve: r{ α.p } ρ 0 if P(ρ) does not enable α Differently from some distributed calculi, a terminated session does not affect the evolution of the system: r{ nil } ρ 0 A Distributed Calculus for Role-Based Access Control p.14/18

Some Algebraic Laws if an action is not enabled, then the process cannot evolve: r{ α.p } ρ 0 if P(ρ) does not enable α Differently from some distributed calculi, a terminated session does not affect the evolution of the system: r{ nil } ρ 0 the user performing an output action is irrelevant; the only relevant aspect is the set of permissions activated when performing the action: r{ b s n.nil } ρ t{ b s n.nil } ρ A Distributed Calculus for Role-Based Access Control p.14/18

Finding the Minimal Schema Goal: to look for a minimal schema to execute a given system A while mantaining its behaviour w.r.t. (U; P) Algorithm: fix a metrics (number of rôles in the schema, permissions associated to each rôle, etc.) define the set CONF A = {(U ; P ) A : (U ; P ) is a RBAC schema} of configurations for A partition CONF A w.r.t. and consider the equivalence class containing (U; P) A choose the minimal schema according to the chosen metrics A Distributed Calculus for Role-Based Access Control p.15/18

Refining Systems Goal: to add rôle activations/deactivations within a system in such a way that the resulting system can be executed under a given schema (U; P) we want a rôle to be active only when needed the refining procedure replaces any input/output prefix α occurring in session r{ } ρ with the sequence of prefixes role R.α.yield R where R is formed by rôles assigned to r, activable when having activated ρ and enabling the execution of α the refining procedure adapts the type system Improvement: we can give an algorithm to minimize the number of these actions added A Distributed Calculus for Role-Based Access Control p.16/18

Relocating Activities Goal: to transfer a process from one user to another without changing the overall system behaviour, in order to minimize the number of users in a system it is possible to infer axiomatically judgments of the form: (U; P) r{ P } ρ (U; P) s{ P } ρ This judgment says that the process P can be executed by r and s without affecting the overall system behaviour. Thus, the session r{ P } ρ can be removed. If no other session of r is left in the system, then r is a useless user and is erased. A Distributed Calculus for Role-Based Access Control p.17/18

Conclusion We have defined a formal framework for reasoning about concurrent systems running under an RBAC schema; a number of papers deal with the specification and verification of RBAC schema; Future Works: extend the framework to deal with more complex RBAC models; prove that bisimilarity is complete for barbed congruence; study information flow in terms of RBAC? http://www.dsi.unive.it/~dbraghin/publications.html A Distributed Calculus for Role-Based Access Control p.18/18