Lecture 3Dr. Verma1 COSC 6397 – Information Assurance Module M2 – Protocol Specification and Verification University of Houston Rakesh Verma Lecture 3.

Slides:



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

CMSC 414 Computer (and Network) Security Lecture 22 Jonathan Katz.
University of Twente The Netherlands Centre for Telematics and Information Technology Verification of Security Protocols Sandro Etalle
University of Twente The Netherlands Centre for Telematics and Information Technology Verification of Security Protocols Sandro Etalle
University of Twente The Netherlands Centre for Telematics and Information Technology Design, Analysis and Verification of Security Protocols Ricardo Corin.
University of Twente The Netherlands Centre for Telematics and Information Technology Constraint Logic Programming for Verifying Security Protocols Sandro.
Spreading Alerts Quietly and the Subgroup Escape Problem Aleksandr Yampolskiy (Yale) Joint work with James Aspnes, Zoë Diamadi, Kristian Gjøsteen, and.
Last Class: The Problem BobAlice Eve Private Message Eavesdropping.
Non-monotonic Properties for Proving Correctness in a Framework of Compositional Logic Koji Hasebe Mitsuhiro Okada (Dept. of Philosophy, Keio University)
CSE331: Introduction to Networks and Security Lecture 22 Fall 2002.
Luu Anh Tuan. Security protocol Intruder Intruder behaviors Overhead and intercept any messages being passed in the system Decrypt messages that are.
Deeper Security Analysis of Web-based Identity Federation Apurva Kumar IBM Research – India.
Lect. 18: Cryptographic Protocols. 2 1.Cryptographic Protocols 2.Special Signatures 3.Secret Sharing and Threshold Cryptography 4.Zero-knowledge Proofs.
1 Lecture 3 The CSP approach to the specification and analysis of Security protocols Communicating Sequential Processes [Hoare 78] Mathematical framework.
Analysis of Security Protocols (I) John C. Mitchell Stanford University.
CNS2010handout 10 :: digital signatures1 computer and network security matt barrie.
Catriel Beeri Pls/Winter 2004/5 type reconstruction 1 Type Reconstruction & Parametric Polymorphism  Introduction  Unification and type reconstruction.
CMSC 414 Computer and Network Security Lecture 9 Jonathan Katz.
Modelling and Analysing of Security Protocol: Lecture 1 Introductions to Modelling Protocols Tom Chothia CWI.
CSE331: Introduction to Networks and Security Lecture 24 Fall 2002.
1 Protocols are programs too The meta-heuristic search for security protocols By John A. Clark.
CMSC 414 Computer and Network Security Lecture 18 Jonathan Katz.
More on RDT Robert John Walters. RDT – a reprise A Graphically based formal modelling language Models represented as diagrams (not text) Communications.
© 2005 The MITRE Corporation. All rights reserved For Internal MITRE Use Alice & Bob Specifications Jon Millen June 2005.
University of Twente The Netherlands Centre for Telematics and Information Technology Constraint Logic Programming for Verifying Security Protocols a gzipped.
Adaptively Secure Broadcast, Revisited
Programming Satan’s Computer
Executable specification of cryptofraglets with Maude for security verification Fabio Martinelli and Marinella Petrocchi IIT-CNR, Pisa Italy presented.
Class Relationships Lecture Oo10 Dependencies. References n Booch, et al, The Unified Modeling Language User Guide, Chapt 5 p.69, Chapt 9 130, Chapt 10.
Programming in Java Unit 3. Learning outcome:  LO2:Be able to design Java solutions  LO3:Be able to implement Java solutions Assessment criteria: 
A Survey of Authentication Protocol Literature: Version 1.0 Written by John Clark and Jeremy Jacob Presented by Brian Sierawski.
CSC 395 – Software Engineering Lecture 13: Object-Oriented Analysis –or– Let the Pain Begin (At Least I’m Honest!)
Security protocols  Authentication protocols (this lecture)  Electronic voting protocols  Fair exchange protocols  Digital cash protocols.
Security protocols and their verification Mark Ryan University of Birmingham Midlands Graduate School University of Birmingham April 2005 Steve Kremer.
Analysis of a Protocol for Dynamic Configuration of IPv4 Link Local Addresses Using Uppaal Miaomiao Zhang Frits W. Vaandrager Department of Computer Science.
CSCE 813 Internet Security Cryptographic Protocol Analysis.
Introduction to Problem Solving. Steps in Programming A Very Simplified Picture –Problem Definition & Analysis – High Level Strategy for a solution –Arriving.
Correctness Proofs and Counter-model Generation with Authentication-Protocol Logic Koji Hasebe Mitsuhiro Okada Department of Philosophy, Keio University.
6 June Lecture 2 1 TU Dresden - Ws on Proof Theory and Computation Formal Methods for Security Protocols Catuscia Palamidessi Penn State University,
1 Kyung Hee University Statecharts Spring Kyung Hee University Specifying Objects’ Behaviour  Interaction diagrams show message-passing behaviour.
Network Protocols Network Systems Security Mort Anvari.
CSCE 715: Network Systems Security Chin-Tser Huang University of South Carolina.
CS 425/ECE 428/CSE424 Distributed Systems (Fall 2009) Lecture 9 Consensus I Section Klara Nahrstedt.
Chap 15. Agreement. Problem Processes need to agree on a single bit No link failures A process can fail by crashing (no malicious behavior) Messages take.
HACNet Simulation-based Validation of Security Protocols Vinay Venkataraghavan Advisors: S.Nair, P.-M. Seidel HACNet Lab Computer Science and Engineering.
Object-Oriented Programming © 2013 Goodrich, Tamassia, Goldwasser1Object-Oriented Programming.
UNIVERSITY of WISCONSIN-MADISON Computer Sciences Department
1 Authenticated Key Exchange Rocky K. C. Chang 20 March 2007.
Fusion Design Overview Object Interaction Graph Visibility Graph Class Descriptions Inheritance Graphs Fusion: Design The overall goal of Design is to.
IT 221: Introduction to Information Security Principles Lecture 5: Message Authentications, Hash Functions and Hash/Mac Algorithms For Educational Purposes.
1 Authorization Sec PAL: A Decentralized Authorization Language.
Lecture 4 1 Honnor Projects Supervised by Catuscia Palamidessi The  -calculus, a small language for specification and verification of concurrency and.
Pertemuan #8 Key Management Kuliah Pengaman Jaringan.
Model Checking for Security Protocols Will Marrero, Edmund Clarke, Shomesh Jha.
Cryptographic Hash Function. A hash function H accepts a variable-length block of data as input and produces a fixed-size hash value h = H(M). The principal.
Formal Methods for Security Protocols
Security attacks.
Cryptographic Hash Function
Security Protocols Analysis
The Inductive Approach to Verifying Cryptographic Protocols
Man in the Middle Attacks
Symbolic Protocol Analysis
Expressing Security Properties in CSP
CDK4: Chapter 7 CDK5: Chapter 11 TvS: Chapter 9
Security Analysis of Network Protocols
Efficient Short-Password Key Exchange (ESP-KE)
CDK: Chapter 7 TvS: Chapter 9
CSCE 715: Network Systems Security
Protocol Verification by the Inductive Method
Formal Methods for Security Protocols
Presentation transcript:

Lecture 3Dr. Verma1 COSC 6397 – Information Assurance Module M2 – Protocol Specification and Verification University of Houston Rakesh Verma Lecture 3 of M2 (This work is supported in part by NSF)

Lecture 3Dr. Verma2 Contents of M2 Cryptographic basics Types of Protocols Security properties Taxonomy of Flaws and Attacks Specification of Protocols Specification of properties Protocol analysis

Lecture 3Dr. Verma3 System Scenarios Protocol roles provide ‘templates’ Set up a finite scenario for verification choose roles participating in the session instantiate the variables of the roles Instantiation used to: Say who is playing which role Introduce fresh nonces

Lecture 3Dr. Verma4 System Scenarios cont’d A->B : [A, Na]*pk(B) B->A : [Na, Nb]*pk(A) A->B : [Nb]*pk(B) A possible scenario: s1 = {initiator(a, B, na, Nb), responder(A, b, Na, nb)} one INITIATOR A played by agent a one RESPONDER B played by agent b

Lecture 3Dr. Verma5 Variables & Non-variables Consider the scenario {initiator(a, B, na, Nb), responder(A, b, Na,nb)} Variables indicate parameters that may assume any value (their value is not known at the start). For instance, the initiator here does not know in advance the name of the responder. Fresh nonces = new terms (ground terms that don’t occur elsewhere ).

Lecture 3Dr. Verma6 More System Scenarios for NS {initiator(a,b,na,nb), responder(a,b,na,nb)} the ‘honest’ scenario (but unrealistic) {initiator(a,B,na,Nb), responder(A,b,Na,nb)} may not communicate with each other {initiator(a,b,na,nb), responder(A,B,Na,Nb)} a may also play the responder role {initiator(a,b,na,nb), responder(c,d,nc,nd)} no communication!

Lecture 3Dr. Verma7 The Network Model Network/Intruder Scenario Agent Role Network - intruder: Dolev-Yao. send(t) recv(t)

Lecture 3Dr. Verma8 Constraint Store knowledge (K) the intruder’s knowledge: the set of intercepted messages constraint store: {msg_1:K_1, …, msg_n:K_n} msg_1, …, msg_n: messages (terms) K_1, …, K_n: knowledges (set of messages) Is satisfiable: each msg_i is generable using K_i.

Lecture 3Dr. Verma9 Some Definitions Substitution σ is more general than substitution ρ if there is a substitution θ such that ρ = θσ (composition) Given two terms that are unifiable, there is a most general unifier (mgu). Prolog quirk – omits occurs check for efficiency.

Lecture 3Dr. Verma10 Overview of the Verification Algorithm A step of the verification algorithm: choose an event e from a role of S Two cases: e = send(t) t is added to the intruder’s knowledge e = recv(t) add constraint t:K to the constraint store if constraint store is solvable, proceed otherwise, stop

Lecture 3Dr. Verma11 Finding Secrecy Flaws What is a secrecy flaw? To check if na remains secret, one just has to add to the scenario the singleton role [recv(na)] na remains secret the intruder cannot output it! in practice we define a special role secrecy(X) = [recv(X)].

Lecture 3Dr. Verma12 Finding Authentication Flaws More complex than checking secrecy. What is an authentication flaw? Various definitions. Basically: an input event recv(t) without corresponding preceding output event send(t). Can be checked by e.g., running the responder strand without an initiator role.

Lecture 3Dr. Verma13 From abstract notation to implementation notation Abstract notation role_name(Var1,…,VarN) = [Events]. Concrete notation role_name(Var1,...,VarN,[Events]). Abstract Notation initiator(A,B,Na,Nb) = [ send([A,Na]*pk(B)), recv([Na,Nb]*pk(A)), send(Nb*pk(B)) ]). % Implementation Notation initiator(A,B,Na,Nb,[ send([A,Na]*pk(B)), recv([Na,Nb]*pk(A)), send(Nb*pk(B)) ]).

Lecture 3Dr. Verma14 Specification of NS % Initiator role initiator(A,B,Na,Nb,[ send([A,Na]*pk(B)), recv([Na,Nb]*pk(A)), send(Nb*pk(B)) ]). % Responder role responder(A,B,Na,Nb,[ recv([A,Na]*pk(B)), send([Na,Nb]*pk(A)), recv(Nb*pk(B)) ]). % Standard secrecy-checking role secrecy(X,[recv(X)]).

Lecture 3Dr. Verma15 Scenarios in Practice scenario([ [name_1,Var_1],..., [name_n,Var_n] ] ) :- role_1(...,Var_1),... role_n(...,Var_n).

Lecture 3Dr. Verma16 For Instance What do we achieve with this scenario? scenario([ [alice, Init1], [bob, Resp1], [sec, Secr1] ] ) :- initiator(a,B,na,Nb,Init1), responder(a,b,Na,nb,Resp1), secrecy(nb, Secr1).

Lecture 3Dr. Verma17 Last Details (1): Initial intruder knowledge & has_to_finish % Set up the initial intruder knowledge initial_intruder_knowledge([a,b,e]). % specify which roles we want to force to finish (only sec in this example) has_to_finish([sec]).

Lecture 3Dr. Verma18 The Origination Assumption Roles are ‘parametric’, i.e. may contain variables We have to avoid sending out uninstantiated variables (only the intruder may do so). We must satisfy the origination assumption: Any variable should appear for the first time in a recv event So, we add events of the form recv(X), where appropriate

Lecture 3Dr. Verma19 Specification of NS with O.A. % Initiator role initiator(A,B,Na,Nb,[ recv([A,B]), send([A,Na]*pk(B)), recv([Na,Nb]*pk(A)), send(Nb*pk(B)) ]). % Responder role responder(A,B,Na,Nb,[ recv([A,Na]*pk(B)), send([Na,Nb]*pk(A)), recv(Nb*pk(B)) ]). scenario([[alice,Init1], [bob,Resp1], [sec,Secr1]]) :- initiator(a,B,na,Nb,Init1), responder(a,b,Na,nb,Resp1), secrecy(nb, Secr1).

Lecture 3Dr. Verma20 Last Steps Before Execution… Decide whether we want Prolog to stop at first solution it finds, or iterate and show them all. Click on Verify

Lecture 3Dr. Verma21 The Results For each run, the tool visualizes: which events of a role could not be completed (note: the tools tries to complete each role, but this is sometimes impossible) the complete run.

Lecture 3Dr. Verma22 Examples of Results (1) SOLUTION FOUND State: [[alice,[]],[bob,[recv(nb * pk(b))]],[sec,[]]]. alice finishedsec finished! bob did not finish

Lecture 3Dr. Verma23 Examples of Results (2) SOLUTION FOUND State: [[a,[]],[b,[recv(nb * pk(b))]],[sec,[]]] Trace: [a,send([a,na] * pk(e))] [b,recv([a,na] * pk(b))] [b,send([na,nb] * pk(a))] [a,recv([na,nb] * pk(a))] [a,send(nb * pk(e))] [sec,recv(nb)]

Lecture 3Dr. Verma24 What if we try another scenario? scenario([ [alice1,Init1], [alice2,Init2], [bob,Resp1], [sec,Secr1] ] ) :- initiator(a,b,na,Nb,Init1), initiator(b,A,na,Nb,Init1), responder(a,b,Na,nb,Resp1), secrecy(nb, Secr1). TRY THIS!

Lecture 3Dr. Verma25 Looking for authentication flaws in Needham-Schroeder Consider (again) the scenario: No secrecy check this time. But, if B is not b, and the responder role finishes, we have an authentication attack! {initiator(a,B,na,Nb), responder(a,b,Na,nb)}

Lecture 3Dr. Verma26 Looking for authentication flaws in Needham-Schroeder cont’d We only have to specify has_to_finish for b: has_to_finish([b]). And verify again…

Lecture 3Dr. Verma27 Results: the first reported trace SOLUTION FOUND State: [[a,[]],[b,[]]] Trace: [a,send([a,na] * pk(b))] [b,recv([a,na] * pk(b))] [b,send([na,nb] * pk(a))] [a,recv([na,nb] * pk(a))] [a,send(nb * pk(b))] [b,recv(nb * pk(b))] This is a normal run This is a correct trace. To find a flaw we must look for B not instantiated to b!

Lecture 3Dr. Verma28 Results: the right trace SOLUTION FOUND State: [[a,[]],[b,[]]] Trace: [a,send([a,na] * pk(e))] [b,recv([a,na] * pk(b))] [b,send([na,nb] * pk(a))] [a,recv([na,nb] * pk(a))] [a,send(nb * pk(e))] [b,recv(nb * pk(b))]

Lecture 3Dr. Verma29 Exercise for home For the TMN protocol: Encode and Verify the protocol: try many scenarios Could you find any flaw? Compare this attack to the one in Clark & Jacob Try other protocols discussed in class and those listed in the tool.

Lecture 3Dr. Verma30 Primary References J. Millen and V. Shmatikov, Constraint Solving for Bounded-Process Cryptographic Protocol Analysis R. Corin and S. Etalle, An Improved Constraint-based System for the Verification of Security Protocols