Internet Security CSCE 813 Communicating Sequential Processes.

Slides:



Advertisements
Similar presentations
Security attacks. - confidentiality: only authorized parties have read access to information - integrity: only authorized parties have write access to.
Advertisements

Ch-11 Project Execution and Termination. System Testing This involves two different phases with two different outputs First phase is system test planning.
COMMUNICATING SEQUENTIAL PROCESSES C. A. R. Hoare The Queen’s University Belfast, North Ireland.
Testing Concurrent/Distributed Systems Review of Final CEN 5076 Class 14 – 12/05.
1 Lecture 3 The CSP approach to the specification and analysis of Security protocols Communicating Sequential Processes [Hoare 78] Mathematical framework.
Chair of Software Engineering Concurrent Object-Oriented Programming Prof. Dr. Bertrand Meyer Lecture 11: An introduction to CSP.
OOP Design Patterns Chapters Design Patterns The main idea behind design patterns is to extract the high level interactions between objects and.
28.2 Functionality Application Software Provides Applications supply the high-level services that user access, and determine how users perceive the capabilities.
Java Programming, 3e Concepts and Techniques Chapter 4 Decision Making and Repetition with Reusable Objects.
Spin Tutorial (some verification options). Assertion is always executable and has no other effect on the state of the system than to change the local.
Getting Started with MPI Self Test with solution.
1 Operational Semantics Mooly Sagiv Tel Aviv University Textbook: Semantics with Applications.
CSE 555 Protocol Engineering
CPSC 668Set 16: Distributed Shared Memory1 CPSC 668 Distributed Algorithms and Systems Fall 2006 Prof. Jennifer Welch.
Esterel Overview Roberto Passerone ee249 discussion section.
1 © Wolfgang Pelz UML2 UML Part Two. 2 © Wolfgang Pelz UML2 Chapters Four & Twelve Interaction Diagrams.
The IDE (Integrated Development Environment) provides a DEBUGGER for locating and correcting errors in program logic (logic errors not syntax errors) The.
1 Ivan Lanese Computer Science Department University of Bologna Italy Concurrent and located synchronizations in π-calculus.
CS 711 Fall 2002 Programming Languages Seminar Andrew Myers 2. Noninterference 4 Sept 2002.
A Klaim specification of the Handover protocol: logic-based and type-based analysis Michele Loreti and Daniele Gorla Dipartimento di Sistemi e Informatica.
Guide To UNIX Using Linux Third Edition
Advanced Behavioral Modeling
1 Functional Testing Motivation Example Basic Methods Timing: 30 minutes.
1 Chapter Client-Server Interaction. 2 Functionality  Transport layer and layers below  Basic communication  Reliability  Application layer.
Introduction Distributed Algorithms for Multi-Agent Networks Instructor: K. Sinan YILDIRIM.
© The McGraw-Hill Companies, 2006 Chapter 4 Implementing methods.
Benjamin Gamble. What is Time?  Can mean many different things to a computer Dynamic Equation Variable System State 2.
Concurrency: processes & threads1 ©Magee/Kramer Chapter 2 Processes & Threads.
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 3: Operating-System Structures System Components Operating System Services.
CIS 540 Principles of Embedded Computation Spring Instructor: Rajeev Alur
1 Modeling interactions and behavior Lecturer Dr. Mai Fadel.
CS551 - Lecture 8 1 CS551 Modelling with Objects (Chap. 3 of UML) Yugi Lee STB #555 (816)
Introduction to CSP Alexandre Mota
 Repository Model  Client-Server Model  Layered Model  Modular decomposition styles  Object Models  Function Oriented Pipelining  Control Styles.
Coupling Cohesion Chandan R. Rupakheti Steve Chenoweth (Chapter 18)
CORRECTNESS CRITERIA FOR CONCURRENCY & PARALLELISM 6/16/2010 Correctness Criteria for Parallelism & Concurrency 1.
Conformance Test Experiments for Distributed Real-Time Systems Rachel Cardell-Oliver Complex Systems Group Department of Computer Science & Software Engineering.
ECE450 - Software Engineering II1 ECE450 – Software Engineering II Today: Design Patterns VIII Chain of Responsibility, Strategy, State.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 13. Review Shared Data Software Architectures – Black board Style architecture.
Distributed Programming Concepts and Notations. Inter-process Communication Synchronous Messages Asynchronous Messages Select statement Remote procedure.
Java Programming, 2E Introductory Concepts and Techniques Chapter 4 Decision Making and Repetition with Reusable Objects.
Internal and Confidential Cognos CoE COGNOS 8 – Event Studio.
CSC3315 (Spring 2009)1 CSC 3315 Lexical and Syntax Analysis Hamid Harroud School of Science and Engineering, Akhawayn University
G.v. Bochmann, revised Jan Comm Systems Arch 1 Different system architectures Object-oriented architecture (only objects, no particular structure)
CSCE 668 DISTRIBUTED ALGORITHMS AND SYSTEMS Fall 2011 Prof. Jennifer Welch CSCE 668 Set 16: Distributed Shared Memory 1.
Source Level Debugging of Parallel Programs Roland Wismüller LRR-TUM, TU München Germany.
CIS 540 Principles of Embedded Computation Spring Instructor: Rajeev Alur
Programming Logic and Design Fourth Edition, Comprehensive Chapter 14 Event-Driven Programming with Graphical User Interfaces.
Model Checking Lecture 1. Model checking, narrowly interpreted: Decision procedures for checking if a given Kripke structure is a model for a given formula.
Software Systems Verification and Validation Laboratory Assignment 4 Model checking Assignment date: Lab 4 Delivery date: Lab 4, 5.
Fusion Design Overview Object Interaction Graph Visibility Graph Class Descriptions Inheritance Graphs Fusion: Design The overall goal of Design is to.
Design and implementation Chapter 7 – Lecture 1. Design and implementation Software design and implementation is the stage in the software engineering.
Operational Semantics Mooly Sagiv Tel Aviv University Sunday Scrieber 8 Monday Schrieber.
Model Checking Lecture 1: Specification Tom Henzinger.
Introduction to distributed systems description relation to practice variables and communication primitives instructions states, actions and programs synchrony.
CEN6502, Spring Understanding the ORB: Client Side Structure of ORB (fig 4.1) Client requests may be passed to ORB via either SII or DII SII decide.
Operational Semantics Mooly Sagiv Reference: Semantics with Applications Chapter 2 H. Nielson and F. Nielson
Operational Semantics Mooly Sagiv Reference: Semantics with Applications Chapter 2 H. Nielson and F. Nielson
Nguyen Thi Thanh Nha HMCL by Roelof Kemp, Nicholas Palmer, Thilo Kielmann, and Henri Bal MOBICASE 2010, LNICST 2012 Cuckoo: A Computation Offloading Framework.
Sequence diagrams Lecture 5. Main terms  Interaction  Life line  Activation  Executable behavior and derived behavior  Messages  Trajectory  Frame.
Internet Security CSCE 813 Communicating Sequential Processes.
Security attacks.
Finite State Machines Dr K R Bond 2009
CPE555A: Real-Time Embedded Systems
ISA 763 Security Protocol Verification
Turing Machines Acceptors; Enumerators
Chapter 3: Selection Structures: Making Decisions
Chapter 3: Selection Structures: Making Decisions
Chapter 5 Architectural Design.
CS561 Computer Architecture Hye Yeon Kim
Presentation transcript:

Internet Security CSCE 813 Communicating Sequential Processes

CSCE Farkas2 Reading Today: – Modelling and analysis of security protocols: Chapter 1 Next Class: – Modelling and analysis of security protocols: Chapter 1 and 2

CSCE Farkas3 CSP Objectives Model dynamics Model and analyze concurrency – E.g., calculation intensive systems, distributed applications Support parallelism

CSCE Farkas4 CSP Notation for describing systems of parallel agents that communicate by passing messages between them Formal study of systems – Concurrency – Security Mathematical notation for describing interaction – Different components influence each other

CSCE Farkas5 CSP Components Processes Operators Communication: visible events:  Invisible (internal) event:  CSP: allows to describe the states in which processes might be  allows to work out what actions are immediately possible for the process and what the result states of the actions are

CSCE Farkas6 Message Passing Synchronous: both processes MUST be ready to communicate Non-buffered sends and receives Explicit naming of source and destination processes

CSCE Farkas7 Messages Process AProcess B Send (B, message)Receive (A, message) Input command: ? e.g., keyboard?m Output command: ! e.g., screen?average

CSCE Farkas8 Communication Process P executes and input command specifying process Q as its source AND Process Q executes an output command specifying process P as its destination AND The target variable in the input statement matches the value in the output statement

CSCE Farkas9 Program Equivalence Two programs P1 and P2 are equivalent if they produce patterns of visible actions that cannot be distinguished by an observer. Only the communications of a program matters!

CSCE Farkas10 Communication Prefix: given a process P and a communication a in , a → P is a program that – Performs a then – Behaves as P Given in, out in  what is – in → out → P Process Stop: no visible or non-visible action – Given a in  what is a → Stop

CSCE Farkas11 Build Processes Consider: Given a,b,c in  – Proc = a → b → c → Stop – Proc: finite succession of choices before stopping – Proc’s environment might choose not to accepted any of a,b,c, so it might get stuck before Stop

CSCE Farkas12 Build Processes Recursion: processes “go on forever” Looping back to a state they have been before 1. Alt = to → fro → Alt 2. Dalt = to → fro → to → fro → Dalt 3. Malt1 = to → Malt2 4. Malt2 = fro → Malt1 5. Nalt = to → fro → Dalt 1. 1, 2, 5, and (3,4) are equivalent programs

CSCE Farkas13 Prefix Offering a single action Offering of choice: any set of visible actions – If A  , ?x : A → P(x) represent all the actions in A – x is the parameter of P -- parameters can be used in events or manipulated – When a  A is chosen, it behaves like P(a) Example: always prepared to offer any event from A   – RUN A = ?x : A → RUN A

CSCE Farkas14 Compound events Coding Machine example – CM1(s) = ?x : L  {off} → CM1’ (s,x) – CM1’(s,off) = Stop – CM1’(s,x) = crypt(s,x) → CM1(newstate(s,x)) (x  L) Action: channel name followed by zero or more data components Coding Machine example without off – CM2(s) = in?x → out!crypt(s,x) → CM2(newstate(s,x))

CSCE Farkas15 Choice Operators Deterministic finite state machine over finite  – e.g., P i = ? X : A i → P i ’(x) Choice operator:  – Gives the option between the actions of two processes then – Behaves like the one chosen

CSCE Farkas16 Choice Operator Example Choice – if A = B  C then ?x : A → P(x) = (?x : B → P(x))  (?x : C → P(x) ) Stop and equivalence – if A = A  Ø then ?x : A → P(x) = (?x : A → P(x))  Stop that is P  P  Stop – If B= Ø then ?x : B → P(x)  Stop

CSCE Farkas17 Choice Operator Revisit: if A = B  C then ?x : A → P(x) = (?x : B → P(x))  (?x : C → P(x) ) If B and C are disjoint: together they give all the choices in A What happens if B and C overlap? – Given processes P and Q, what does P  Q mean? – Choosing an action x  B  C what is the result of (?x : B → P(x))  (?x : C → Q(x) ) – CSP allows the implementor to make a choice between the two sides – After action x, the process may behave as P(x) or Q(x), the environment has no control over it.

CSCE Farkas18 Non-determinism Program acts nondeterministically if it is unpredictable The program is allowed to make internal decision that affect how it behaves as viewed from the outside Implementation is allowed to choose E.g., (a → a → Stop)  (a → b → Stop)

CSCE Farkas19 Non-Deterministic Choice P  Q – behaves like P or like Q – User has no control over which – Can be implemented using two internal actions – Implementer is not required to implement this way (can choose either P or Q or (P or Q)) Useful for model degree of unpredictability, like communication medium that transmits data correctly or loose it.

CSCE Farkas20 Non-Deterministic Choice P  Q and P  Q have identical traces: sequences of visible communications In most circumstances it cannot be told whether a non-deterministic choice was made by observing the process. What is the difference between (a → P) Stop and (a → P)  Stop ?

CSCE Farkas21 Parallel Operators Put sequential processes parallel System state: state of each component – Number of possible states increases exponentially with the size of the network How to put processes together for parallel network? How to check whether such a network satisfies a specification?

CSCE Farkas22 Parallel Combination Just an other process to which any of the previous operators can be applied. Each parallel process is equivalent to a sequential one (with infeasibly large number of states) CSP processes influence each other by affecting what communications they can perform.

CSCE Farkas23 Parallel Combination Synchronize all visible actions – P || Q can perform a   only when P and Q can – (?x : A → P(x)) || (?x : B → Q(x)) = ?x : A  B → (P(x) || Q(x))

CSCE Farkas24 Parallel Combinations Interfaces parallel operator: P || X Q – Synchronize all events in X Example: – P = ?x : A → P’(x) – Q = ?x : B → Q’(x) – P || X Q = ?x : X  A  B → (P’(x) || Q’(x))  ?x : A \ X → (P’(x) || X Q)  ?x : B \ X → (P|| X Q’(x))

CSCE Farkas25 Alphabet Controlled P X || Y Q Each process is given control of a particular set of events No process is ever permitted to communicate outside of its own alphabet Interface between two processes: intersection of their alphabet

CSCE Farkas26 CSP Operators Stopprocess does nothing a → Pevent prefix ?x:A → Pevent prefix choice P  Qchoice between two processes P Qnondeterministic choice P || Qlockstep parallel P || X Qinterface parallel P X || Y Qsynchronizing parallel

CSCE Farkas27 Next Class: CSP CH 1 finish Modeling security protocols in CSP