Analysis of Security Protocols

Slides:



Advertisements
Similar presentations
Automated Theorem Proving Lecture 1. Program verification is undecidable! Given program P and specification S, does P satisfy S?
Advertisements

Universally Composable Symbolic Analysis of Cryptographic Protocols
University of Twente The Netherlands Centre for Telematics and Information Technology Constraint Logic Programming for Verifying Security Protocols Sandro.
Comparative Succinctness of KR Formalisms Paolo Liberatore.
Introducing Formal Methods, Module 1, Version 1.1, Oct., Formal Specification and Analytical Verification L 5.
Automatic Verification Book: Chapter 6. What is verification? Traditionally, verification means proof of correctness automatic: model checking deductive:
SECURITY AND VERIFICATION Lecture 4: Cryptography proofs in context Tamara Rezk INDES TEAM, INRIA January 24 th, 2012.
Lecture 3Dr. Verma1 COSC 6397 – Information Assurance Module M2 – Protocol Specification and Verification University of Houston Rakesh Verma Lecture 3.
Automated Reasoning Systems For first order Predicate Logic.
Logic.
1 Mechanical Verification of Timed Automata Myla Archer and Constance Heitmeyer Presented by Rasa Bonyadlou 24 October 2002.
Luu Anh Tuan. Security protocol Intruder Intruder behaviors Overhead and intercept any messages being passed in the system Decrypt messages that are.
Introduction to Computability Theory
Analysis of Security Protocols (I) John C. Mitchell Stanford University.
Constraint Logic Programming Ryan Kinworthy. Overview Introduction Logic Programming LP as a constraint programming language Constraint Logic Programming.
Analysis of Security Protocols (V) John C. Mitchell Stanford University.
Analysis of Security Protocols (III) John C. Mitchell Stanford University.
Analysis of Security Protocols (IV) John C. Mitchell Stanford University.
Protocol Verification by the Inductive Method John Mitchell Stanford TECS Week2005.
Overview of Cryptography Anupam Datta CMU Fall A: Foundations of Security and Privacy.
Transaction Ordering Verification using Trace Inclusion Refinement Mike Jones 11 January 2000.
1 Ivan Lanese Computer Science Department University of Bologna Italy Concurrent and located synchronizations in π-calculus.
Model Checking for Security Anupam Datta CMU Fall A: Foundations of Security and Privacy.
Security Analysis of Network Protocols TECS Week Reference: John Mitchell Stanford 2005.
Inductive Verification of Protocols Anupam Datta CMU Fall A: Foundations of Security and Privacy.
Cryptography Lecture 8 Stefan Dziembowski
Notes for Chapter 12 Logic Programming The AI War Basic Concepts of Logic Programming Prolog Review questions.
Executable specification of cryptofraglets with Maude for security verification Fabio Martinelli and Marinella Petrocchi IIT-CNR, Pisa Italy presented.
Computational Complexity Theory Lecture 2: Reductions, NP-completeness, Cook-Levin theorem Indian Institute of Science.
© UCL Crypto group oct.-15 On the Perfect Encryption Assumption in the Study of Security Protocols O. Pereira and J.-J. Quisquater UCL Crypto Group
Pattern-directed inference systems
CSCE 813 Internet Security Cryptographic Protocol Analysis.
1 Reasoning about Concrete Security in Protocol Proofs A. Datta, J.Y. Halpern, J.C. Mitchell, R. Pucella, A. Roy.
Formal Specification of Intrusion Signatures and Detection Rules By Jean-Philippe Pouzol and Mireille Ducassé 15 th IEEE Computer Security Foundations.
Correctness Proofs and Counter-model Generation with Authentication-Protocol Logic Koji Hasebe Mitsuhiro Okada Department of Philosophy, Keio University.
Network Protocols Network Systems Security Mort Anvari.
Lecture 5 1 CSP tools for verification of Sec Prot Overview of the lecture The Casper interface Refinement checking and FDR Model checking Theorem proving.
1 Propositional Logic Limits The expressive power of propositional logic is limited. The assumption is that everything can be expressed by simple facts.
CS357 Lecture 13: Symbolic model checking without BDDs Alex Aiken David Dill 1.
Model Checking for Security Protocols Will Marrero, Edmund Clarke, Shomesh Jha.
Logical Agents. Outline Knowledge-based agents Logic in general - models and entailment Propositional (Boolean) logic Equivalence, validity, satisfiability.
On the (im)possibility of perennial message recognition protocols without public-key cryptography Peeter Laud Cybernetica AS & University of Tartu
Iliano Cervesato ITT Industries, NRL Washington, DC
Attacks on Public Key Encryption Algorithms
Security Analysis of Network Protocols
Matching Logic An Alternative to Hoare/Floyd Logic
Security Analysis of Network Protocols
Security Protocols Analysis
SMT-Based Verification of Parameterized Systems
Introduction to Automata Theory
The Inductive Approach to Verifying Cryptographic Protocols
Man in the Middle Attacks
Soundness of Formal Encryption in the Presence of Key Cycles
Protocol Composition Logic (PCL)
IS 2935: Developing Secure Systems
Protocol Verification by the Inductive Method
Logic for Computer Security Protocols
CDK4: Chapter 7 CDK5: Chapter 11 TvS: Chapter 9
Security Analysis of Network Protocols
Resolution Proofs for Combinational Equivalence
Efficient Short-Password Key Exchange (ESP-KE)
Computer Security: Art and Science, 2nd Edition
Lecture 10: Network Security.
Cryptography Lecture 5.
CDK: Chapter 7 TvS: Chapter 9
This Lecture Substitution model
CSCE 715: Network Systems Security
Protocol Verification by the Inductive Method
Formal Methods for Security Protocols
Cryptography Lecture 18.
Presentation transcript:

Analysis of Security Protocols John C. Mitchell Stanford University

Outline Introduction to protocols and security Security vs correctness Examples and general concepts Standard approach: analyze protocol+intruder Unifying protocol formalism Communication and intruder model Specific projects based on standard approach Theorem-proving, state enumeration methods, ... Mention some of own projects, results

Correctness vs Security Program or System Correctness Program satisfies specification For reasonable input, get reasonable output Program or System Security Program resists attack For unreasonable input, output not completely disastrous Main differences Active interference from environment Refinement techniques may fail

Important Modeling Decisions How powerful is the adversary? Simple replay of previous messages Block messages; Decompose, reassemble and resend Statistical analysis, partial info from network traffic Timing attacks How much detail in underlying data types? Plaintext, ciphertext and keys atomic data or bit sequences Encryption and hash functions “perfect” cryptography algebraic properties: encr(x*y) = encr(x) * encr(y) for RSA encrypt(k,msg) = msgk mod N

Needham-Schroeder Key Exchange { A, Noncea } { Noncea, Nonceb } { Nonceb} Kb A B Ka Kb Result: A and B share two private numbers not known to any observer without Ka-1, Kb -1

Anomaly in Needham-Schroeder [Lowe] { A, Na } Ke A E { Na, Nb } Ka { Nb } Ke { Na, Nb } { A, Na } Evil agent E tricks honest A into revealing private key Nb from B. Kb Ka B Evil E can then fool B.

Outline Introduction to protocols and security Security vs correctness Examples and general concepts Standard approach: analyze protocol+intruder Unifying protocol formalism Communication and intruder model Specific projects based on standard approach Theorem-proving, state enumeration methods, ... Mention some of own projects, results

Analyzing Security Protocols Non-formal approaches (can be useful, but no tools…) Some crypto-based proofs [Bellare, Rogaway] BAN and related logics Axiomatic semantics of protocol steps Methods based on operational semantics Intruder model derived from Dolev-Yao Protocol gives rise to set of traces Perfect encryption Possible to include known algebraic properties

Example projects and tools Prove protocol correct Paulson’s “Inductive method”, others in HOL, PVS, etc. Bolignano -- Abstraction methods MITRE -- Strand spaces Process calculus approach: Abadi-Gordon spi-calculus Search using symbolic representation of states Meadows: NRL Analyzer, Millen: Interrogator Exhaustive finite-state analysis FDR, based on CSP [Lowe, Roscoe, Schneider, …] Mur -- specialized input language Clarke et al. -- state search with axiomatic intruder model

Explicit Intruder Method Informal Protocol Description Formal Protocol Intruder Model Analysis Tool Gee whiz. Looks OK to me.

A notation for inf-state systems Formal Logic (      ) Process Calculus Finite Automata Proof search (Horn clause) Multiset rewriting Define protocol, intruder in minimal framework Disadvantage: need to introduce new notation

Protocol Notation Non-deterministic infinite-state systems Facts F ::= P(t1, …, tn) t ::= x | c | f(t1, …, tn) States { F1, …, Fn } Multiset of facts Includes network messages, private state Intruder will see messages, not private state Multi-sorted first-order atomic formulas

State Transitions Transition What this means F1, …, Fk  x1 … xm. G1, … , Gn What this means If F1, …, Fk in state , then a next state ’ has Facts F1, …, Fk removed G1, … , Gn added, with x1 … xm replaced by new symbols Other facts in state  carry over to ’ Free variables in rule universally quantified Pattern matching in F1, …, Fk can invert functions

Finite-State Example q1 q0 q3 q2 Predicates: State, Input Function:  b a q0 b q3 b a b q2 Predicates: State, Input Function:  Constants: q0, q1, q2, q3, a, b, nil Transitions: State(q0), Input(a  x)  State(q1), Input(x) State(q0), Input(b  x)  State(q2), Input(x) ... b

Existential Quantification Natural-deduction proof rule [y/x] ( elim) x.   Summary: for proof from x., choose new symbol and proceed from [y/x] y not free in any other hypothesis

Turing Machine Predicates Constants Current(state,cell) -- current state, tape pos. Contents(cell, symbol) -- contents of tape cell Adjacent(cell, cell) -- keep cells in order Constants q0, q1, q2, … -- finite set of states c0, ceot -- initial tape cells “0”, “1”, “b” -- tape symbols

Turing Machine (II) Transitions Adjacent(c0, ceot) Adjacent(c, ceot)  c’. Adjacent(c,c’), Adjacent(c’,ceot) Current(qi,c), Contents(c,“0”), Adjacent(c,c’)  Current(qk,c’), Contents(c,“1”), Adjacent(c,c’) Current(qi,c), Contents(c,“1”), Adjacent(c’,c)  Current(qk,c’),Contents(c,“0”), Adjacent(c,c’) ... c eot ... c c’ eot infinite linear tape sample move right sample move left

Simplified Needham-Schroeder Predicates Ai, Bi, Ni -- Alice, Bob, Network in state i Transitions x. A1(x) A1(x)  N1(x), A2(x) N1(x)  y. B1(x,y) B1(x,y)  N2(x,y), B2(x,y) A2(x), N2(x,y)  A3(x,y) A3(x,y)  N3(y), A4(x,y) B2(x,y), N3(y)  B3(x,y) picture next slide A  B: {na, A}Kb B  A: {na, nb}Ka A  B: {nb}Kb Authentication A4(x,y)  B3(x,y’)  y=y’

Sample Trace x. A1(x) A1(na) N1(na) A2(na) A2(na) B1(na, nb) A  B: {na, A}Kb B  A: {na, nb}Ka A  B: {nb}Kb Sample Trace x. A1(x) A1(x)  A2(x), N1(x) N1(x)  y. B1(x,y) B1(x,y)  N2(x,y), B2(x,y) A2(x), N2(x,y)  A3(x,y) A3(x,y)  N3(y), A4(x,y) B2(x,y), N3(y)  B3(x,y) A1(na) N1(na) A2(na) A2(na) B1(na, nb) N2(na, nb) A2(na) B2(na, nb) A3(na, nb) B2(na, nb) N3( nb) A4(na, nb) B2(na, nb) A4(na, nb) B3(na, nb)

Common Intruder Model Derived from Dolev-Yao model [1989] Adversary is nondeterministic process Adversary can Block network traffic Read any message, decompose into parts Decrypt if key is known to adversary Insert new message from data it has observed Adversary cannot Gain partial knowledge Guess part of a key Perform statistical tests, …

Formalize Intruder Model Intercept and remember messages N1(x)  M(x) N2(x,y)  M(x), M(y) N3(x)  M(x) Send messages from “known” data M(x)  N1(x), M(x) M(x), M(y)  N2(x,y), M(x), M(y) M(x)  N3(x), M(x) Generate new data as needed x. M(x) Highly nondeterministic, same for any protocol

Attack on Simplified Protocol x. A1(x) A1(x)  A2(x), N1(x) N1(x)  M(x) x. M(x) M(x)  N1(x), M(x) N1(x)  y. B1(x,y) A1(na) N1(na) A2(na) A2(na) M(na) A2(na) M(na), M(na’) N1(na’) A2(na) M(na), M(na’) A2(na) M(na), M(na’) B1(na’, nb) Continue “man-in-the-middle” to violate specification

Modeling Perfect Encryption Encryption functions and keys For public-key encryption two key sorts: e_key, d_key predicate Key_pair(e_key, d_key) Functions enc : e_key  msg -> msg dec : d_key  msg -> msg (implicit in pattern-matching) Properties of this model Encrypt, decrypt only with appropriate keys Only produce enc(key, msg) from key and msg (!!!) This is not true for some encryption functions

Steps in public-key protocol Bob generates key pair and publishes e_key u. d_key v. Bob1(u,v) Bob1(u,v)  NAnnounce(u), Bob2(u,v) Alice sends encrypted message to Bob Alice1(e,d,x), NAnnounce(e’)  Alice2(e,d,x,e’) Alice2(e,d,x,e’)  N1(enc(e’,x,e)), Alice3(u,v,x,w) Bob decrypts Bob1(u,v), N1(enc(u, x,y))  y. Bob1(u,v, x,y)

Intruder Encryption Capabilities Intruder can encrypt with encryption key Me(k), Mdata(x)  Ni(enc(k,x)), Me(k), Mdata(x) Intruder can decrypt with decryption key Nj(enc(k,x)),Key_pair(k,k’), Md(k’),  Mdata(x), ... Add to previous intruder model Assumes sorts data, e_key, d_key with typed predicates Mdata(data), Me(e_key), Md(d_key)

Intruder: power and limitations Can find some attacks Needham-Schroeder by exhaustive search Other attacks are outside model Interaction between protocol and encryption Some protocols cannot be modeled Probabilistic protocols Steps that require specific property of encryption Possible to prove erroneous protocol correct Requires property that crypto does not provide

Malleability [Dolev,Dwork,Naor] Idealized assumption If intruder produces Network(enc(k,x)) then either Network(enc(k,x))  M (enc(k,x)) (replay) M(k), M(x)  M (enc(k,x)) (knows parts) Not true for RSA encrypt(k,msg) = msgk mod N property encr(x*y) = encr(x) * encr(y) Model Network(enc(k,x))  M (…) ...  Network (enc(k,c*x)) Can send encrypted message without “knowing” message Finite state ?

Outline Introduction to protocols and security Security vs correctness Examples and general concepts Standard approach: analyze protocol+intruder Unifying protocol formalism Communication and intruder model Specific projects based on standard approach Theorem-proving, state enumeration methods, ... Mention some of own projects, results

Analysis of Protocol+Intruder Prove properties of protocols Unbounded # of participants, message space Prove that system satisfies specification Paulson, etc: prove invariant holds at all reachable states Spi-calculus: prove protocol equivalent ideal protocol Symbolic search with pruning Search backward from error Prune search by proving forward invariants Exhaustive finite-state methods Approximate infinite-state system by finite one Search all states, perhaps with optimizations

Example description languages First- or Higher-order Logic Define set of traces, prove protocol correct Horn-clause Logic x… (A1A2 …  B) Symbolic search methods Process calculus FDR model checker based on CSP Spi-calculus proof methods based on pi-calculus Additional formalisms CAPSL protocol description language [Millen] Mur language for finite-state systems

Paulson’s Inductive Method Define set TR of traces of protocol+intruder Similar to traces in unifying formalism Transition F1, …, Fk  x1 … xm. G1, … , Gn gives one way of extending trace Auxiliary functions mapping traces to sets Analz(trace) = data visible to intruder Synth(trace) = messages intruder can synthesize Definitions and proofs use induction Similar inductive arguments for many protocols

Symbolic Search Methods Examples: NRL Protocol Analyzer, Interrogator Main idea Write protocol as set of Horn clauses Transition F1, …, Fk  x1 … xm. G1, … , Gn can be Skolemized and translated to Prolog clauses Search back from possible error for contradiction This is usual Prolog refutation procedure Important pruning technique Prove invariants by forward reasoning Use these to avoid searching unreachable states

Process Calculus Description Protocol defined by set of processes Each process gives one step of one principal Can derive by translation from unifying notation F1, …, Fk  x1 … xm. G1, … , Gn is one process Replace predicates by port names Replace pattern-matching by explicit destructuring In pi-calculus, use  in place of  Example B1(x,y)  N2(x,y), B2(x,y) b1(p). let x=fst(p) and y=snd(p) in n2x,y| b2 x,y end

Spi-Calculus [AG97, ...] Write protocol in process calculus Express security using observ. equivalence Standard relation from programming language theory P  Q iff for all contexts C[ ], same observations about C[P] and C[Q] Context (environment) represents adversary Use proof rules for  to prove security Protocol is secure if no adversary can distinguish it from an idealized version of the protocol

Finite-state methods Two sources of infinite behavior Many instances of participants, multiple runs Message space or data space may be infinite Finite approximation Transitions: F1, …, Fk  x1 … xm. G1, … , Gn choose fixed number of Skolem constants Terms: restrict repeated functions f(f(f(f(x)))) Can express finite-state protocol + intruder in CSP : FDR-based model checking projects Other notations: Mur project, Clarke et al., ...

Outline Introduction to protocols and security Security vs correctness Examples and general concepts Standard approach: analyze protocol+intruder Unifying protocol formalism Communication and intruder model Specific projects based on standard approach Theorem-proving, state enumeration methods, ... Mention some of own projects, results

Security Protocols in Mur Standard “benchmark” protocols Needham-Schroeder, TMN, … Kerberos Study of Secure Sockets Layer (SSL) Versions 2.0 and 3.0 of handshake protocol Include protocol resumption Discovered all known or suspected attacks Recent work on tool optimization [Shmatikov, Stern, ...]

State Reduction on N-S Protocol

Another current project Probabilisitic polynomial-time analysis Drop simplifying assumption of perfect crypto Use complexity-based assumptions instead Use spi-calculus framework Probabilistic poly-time process calculus Specification by observational equivalence Many technical problems Some promise Given protocol, identify properties required of cryptographic primitives [Lincon, Mitchell2, Scedrov]

Authentication and Secrecy for Handshake Protocols How many protocols are there to verify? Average length 7 steps Data fields per message 5 fields Distinct ways to fill a field  50 entries Number of possible combinations 1750 protocols Research directions Get the monkeys and typewriters going Easier description and specification, faster tools Improved analysis of timestamps, ... Interaction between protocol and crypto primitives

Beyond “standard” protocols Protocols for other purposes Electronic commerce, fair commitment, ... Modularity How to compose secure systems? Which module performs security check? Isolation and Infiltration Firewalls and tunneling Intrusion detection, survival, recovery Mobile code New forms of interaction, new risks; need new model Economic security: more costly to attack than worth

Conclusion Security problems can be fun Many scientific, engineering challenges Model intruder, properties of cryptography Results that matter See short paper in proceedings, web site for references to other work Mur DEMO !