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

Global Analysis and Distributed Systems Software Architecture Lecture # 5-6.
Designing an Architecture 1.Design Strategy Decomposition Designing to Architecturally Significant Requirements Generate and Test This generate-and test.
Models of Concurrency Manna, Pnueli.
Enforcing Concurrent Temporal Behaviors Doron Peled, Dept. of CS University of Warwick.
Concurrency Important and difficult (Ada slides copied from Ed Schonberg)
Chapter 1: The Context of SA&D Methods
1 Statecharts for the many: Algebraic State Transition Diagrams Marc Frappier GRIL – Groupe de recherche en ingénierie du logiciel.
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.
28.2 Functionality Application Software Provides Applications supply the high-level services that user access, and determine how users perceive the capabilities.
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.
Copyright © 2003 by The McGraw-Hill Companies, Inc. All rights reserved. Business and Administrative Communication SIXTH EDITION.
Software Architecture for DSD DSD Team. Overview What is software architecture and why is it so important? The role of architecture in determining system.
An Introduction to Input/Output Automata Qihua Wang.
1 Programming for Engineers in Python Autumn Lecture 5: Object Oriented Programming.
Review of “Embedded Software” by E.A. Lee Katherine Barrow Vladimir Jakobac.
© 2005 Prentice Hall3-1 Stumpf and Teague Object-Oriented Systems Analysis and Design with UML.
PROBABILITY MODELS. 1.1 Probability Models and Engineering Probability models are applied in all aspects of Engineering Traffic engineering, reliability,
© 2007 Pearson Education Inc., Upper Saddle River, NJ. All rights reserved.1 Computer Networks and Internets with Internet Applications, 4e By Douglas.
© Andy Wellings, 2003 Roadmap  Introduction  Concurrent Programming  Communication and Synchronization  Completing the Java Model  Overview of the.
System behaviors: state machine diagrams
1 Ivan Lanese Computer Science Department University of Bologna Italy Concurrent and located synchronizations in π-calculus.
Network Theorems SUPERPOSITION THEOREM THÉVENIN’S THEOREM
Lecture 8 Epidemic communication, Server implementation.
COS 420 DAY 22. Agenda Assignment 4 Corrected 2 B’s Assignment 5 posted Chap Due May 4 Final exam will be take home and handed out May 4 and Due.
Chapter 8 Asynchronous System Model by Mikhail Nesterenko “Distributed Algorithms” by Nancy A. Lynch.
1 Functional Testing Motivation Example Basic Methods Timing: 30 minutes.
RefWorks: Advanced February 13, What We’ll Cover Today Managing Your Personal Database Searching Your Personal Database Linking to the Full Text.
Signals and Systems March 25, Summary thus far: software engineering Focused on abstraction and modularity in software engineering. Topics: procedures,
Conditional & Joint Probability A brief digression back to joint probability: i.e. both events O and H occur Again, we can express joint probability in.
C ONFORMANCE C HECKING OF P ROCESSES B ASED ON M ONITORING R EAL B EHAVIOR Jason Ree 4/18/11 UNIST School of Technology Management.
Chapter 6 Operating System Support. This chapter describes how middleware is supported by the operating system facilities at the nodes of a distributed.
Introduction Distributed Algorithms for Multi-Agent Networks Instructor: K. Sinan YILDIRIM.
Benjamin Gamble. What is Time?  Can mean many different things to a computer Dynamic Equation Variable System State 2.
AUTOMATA THEORY Reference Introduction to Automata Theory Languages and Computation Hopcraft, Ullman and Motwani.
SDS Foil no 1 Process Algebra Process Algebra – calculating with behaviours.
(Business) Process Centric Exchanges
Dynamic Games & The Extensive Form
SE: CHAPTER 7 Writing The Program
Lecture 7: Requirements Engineering
PAT: Getting started.
Introduction to CSP Alexandre Mota
7 Systems Analysis and Design in a Changing World, Fifth Edition.
A Use Case Primer 1. The Benefits of Use Cases  Compared to traditional methods, use cases are easy to write and to read.  Use cases force the developers.
Submodule construction in logics 1 Gregor v. Bochmann, University of Ottawa Using First-Order Logic to Reason about Submodule Construction Gregor v. Bochmann.
Exercise Your your Library ® RefWorks: Advanced November 21, 2006.
Architectural Design of Distributed Applications Chapter 13 Part of Design Analysis Designing Concurrent, Distributed, and Real-Time Applications with.
Internet Security CSCE 813 Communicating Sequential Processes.
1 More About Turing Machines “Programming Tricks” Restrictions Extensions Closure Properties.
Netprog: Corba Object Services1 CORBA 2.0 Object Services Ref: The Essential Distributed Objects Survival Guide: Orfali, Harky & Edwards.
Probabilistic Anonymity Mohit Bhargava, IIT New Delhi Catuscia Palamidessi, INRIA Futurs & LIX.
MPRI 3 Dec 2007Catuscia Palamidessi 1 Why Probability and Nondeterminism? Concurrency Theory Nondeterminism –Scheduling within parallel composition –Unknown.
How to Use the Library Catalog Objective: Students will understand how to locate information using a library catalog.
Chapter 8 Asynchronous System Model by Mikhail Nesterenko “Distributed Algorithms” by Nancy A. Lynch.
Lecture 17 Undecidability Topics:  TM variations  Undecidability June 25, 2015 CSCE 355 Foundations of Computation.
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.
Model Checking Lecture 1: Specification Tom Henzinger.
Agenda  Quick Review  Finish Introduction  Java Threads.
Collecting Copyright Transfers and Disclosures via Editorial Manager™ -- Editorial Office Guide 2015.
1 An Overview of UML. 2 The Unified Modeling Language UML is a graphical language used by software engineers to model software systems during development.
RefWorks: Advanced November 23, 2005.
Security attacks.
CPE555A: Real-Time Embedded Systems
DSS & Warehousing Systems
ISA 763 Security Protocol Verification
State Machine Diagrams
ENGINEERING MANAGEMENT (GE 404)
Non-preemptive Semantics for Data-race-free Programs
Presentation transcript:

Internet Security CSCE 813 Communicating Sequential Processes

CSCE Farkas2 Project Related Work Need to know by now: – What is the problem domain? – What is the specific problem you’re addressing? – What solutions are out there (if there is any)? – What are the limitations of these solutions? – How your proposed approach overcome some of these limitations?

CSCE Farkas3 Related Work Format: 1. Problem Overview 2. Related work 2.1 Research on problem domain 2.2 Research on specific problem 2.3 Limitation of existing research References

CSCE Farkas4 Related Work Organize existing work into categories, e.g., on what specific problem they solve, what is the nature of the proposed solution, etc. Don’t just list the different papers in a sequential order! Briefly explain what problems they address and what the main contributions are. Be critical!

CSCE Farkas5 References Be precise! Use full references, with authors, title, where it was published, when, and the page numbers If you supply URLs, list when the URL was downloaded Organize references in alphabetical order Use one of the accepted bibliography format See mat/Bibliography%20Format.htm for more formatting on references mat/Bibliography%20Format.htm

Back to CSP

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

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

CSCE Farkas9 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)

CSCE Farkas10 Choice Operator Choice operator:  – Gives the option between the actions of two processes then – Behaves like the one chosen Revisit: if A = B  C then ?x : A → P(x) = (?x : B → P(x))  (?x : C → Q(x) ) If B and C are disjoint: together they give all the choices in A What happens if B and C overlap?

CSCE Farkas11 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 Farkas12 Time-Based Choice P  t Q – Chose choices offered by P for t time units and – If nothing is chosen, it behaves like Q Similar traces than other choice if no time is recorded Can be P  Q where t is non-deterministic

CSCE Farkas13 Conditional Choice If-then-else Choice is based on condition – if b then P else Q Example: FW(s) = in?x → (if valid(x,s) then out!x → FW(newstate(s,x)) else FW(newstate(s,x)) ) Revisit non-deterministic machine: NDM = in?x → (NDM  out!x → NDM)

CSCE Farkas14 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 Farkas15 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 Farkas16 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 Farkas17 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 Farkas18 General Interleaving P ||| Q when P || Ø Q P and Q use disjoint sets of events

CSCE Farkas19 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 Farkas20 Use of Parallel Operators Achieve a particular overall behavior For example, build constraints on traces – P || X Q, where P is any process, and all Q’s processes belong to X => P is only allowed to do things in X that Q permits. – E.g., example on page 54

CSCE Farkas21 Hiding and Renaming Hiding: – Internal details are not visible to outsiders – If X in  and P is a process than P \ X behaves like P but all events in X are hidden (turned into invisible actions) Renaming: – Alphabet replacement (relation) – P[[R]] behaves like P but all visible events a from P are renamed by whatever R associates a with – Use to make copies – e.g., P [[ a,a / b,c ]] – both b and c are mapped to a – e.g., P [[ b,c / a,a ]] – both a is mapped to b and c (offers the choice of b and c to the environment but the state after either of these choices is the same

CSCE Farkas22 Additional operators Sequential composition P ; Q – Does whatever P does until terminates and then does what Q does Process Skip : successful termination – Special event:  -- always the final event – e.g., a → b → Skip, terminates successfully after events a and b – e.g., (a → Skip) ; P same external behavior as a → P

CSCE Farkas23 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 Farkas24 CSP Operators P \ Xevent hiding P[[R]] process relation renaming Skip successful termination P ; Qsequential composition

CSCE Farkas25 Process Behavior Concurrent processes may lead to: Deadlock: each process is willing to do something but the entire system cannot agree on any action Livelock: infinite sequence of internal (hidden) communication occur between the components. Similar external appearance to deadlock Non-determinism: both processes P1 and p2 are willing to talk to a third one Q which has to make a choice.

CSCE Farkas26 Traces Sequences of visible events until an arbitrary finite time E.g., – traces(Stop) = { } – traces(a → P  b → Skip) = { n, n^, n^ n in N } Traces model – Nonempty – Prefix closed (if s^t is in trace, so is s) We can calculate traces(P) for any CSP P

CSCE Farkas27 Next Class: Modeling security protocols in CSP