24
Proving Security Protocols 1 L. C. Paulson Proving Properties of Security Protocols by Induction Lawrence C. Paulson Computer Laboratory University of Cambridge

Proving Properties of Security Protocols by Induction

Embed Size (px)

Citation preview

Page 1: Proving Properties of Security Protocols by Induction

Proving Security Protocols 1 L. C. Paulson

Proving Properties of Security Protocols by Induction

Lawrence C. Paulson

Computer Laboratory

University of Cambridge

Page 2: Proving Properties of Security Protocols by Induction

Proving Security Protocols 2 L. C. Paulson

Cryptographic Protocol Analysis

• Finite-state checking Lowe, Millen, . . .

+ find attacks quickly

− drastic simplifying assumptions

• Belief logics Burrows, Abadi, Needham, . . .

+ short, abstract proofs

− some variants are complicated & ill-motivated

Page 3: Proving Properties of Security Protocols by Induction

Proving Security Protocols 3 L. C. Paulson

An Inductive Approach

• Traces of events: A sends X to B

• Any number of interleaved runs

• Algebraic theory of messages

• A general attacker

• Modelling of accidents

• Mechanized proofs

Page 4: Proving Properties of Security Protocols by Induction

Proving Security Protocols 4 L. C. Paulson

Agents and Messages

agent A,B, . . . = Server | Friend i | Spy

msg X, Y, . . . = Agent A

| Nonce N

| Key K

| {|X, X ′|}| Hash X

| Crypt KX

Page 5: Proving Properties of Security Protocols by Induction

Proving Security Protocols 5 L. C. Paulson

Processing Sets of Messages

parts: message components Crypt KX X

analz: message decryption Crypt KX, K−1 X

synth: message faking X, K Crypt KX

Regularity lemmas stated using parts H

Secrecy theorems stated using analz H

Spoof messages drawn from synth(analz H)

Page 6: Proving Properties of Security Protocols by Induction

Proving Security Protocols 6 L. C. Paulson

Inductive Definition: parts H

X ∈ H

X ∈ parts H

Crypt KX ∈ parts H

X ∈ parts H

{|X, Y |} ∈ parts H

X ∈ parts H

{|X, Y |} ∈ parts H

Y ∈ parts H

parts G ∪ parts H = parts(G ∪H)

Page 7: Proving Properties of Security Protocols by Induction

Proving Security Protocols 7 L. C. Paulson

Inductive Definition: analz H

X ∈ H

X ∈ analz H

Crypt KX ∈ analz H K−1 ∈ analz H

X ∈ analz H

{|X, Y |} ∈ analz H

X ∈ analz H

{|X, Y |} ∈ analz H

Y ∈ analz H

analz G ∪ analz H ⊆ analz(G ∪H)

Page 8: Proving Properties of Security Protocols by Induction

Proving Security Protocols 8 L. C. Paulson

Inductive Definition: synth H

X ∈ H

X ∈ synth HAgent A ∈ synth H

X ∈ H

Hash X ∈ synth H

X ∈ synth H Y ∈ synth H

{|X, Y |} ∈ synth H

X ∈ synth H K ∈ H

Crypt KX ∈ synth H

G ⊆ H =⇒ synth G ⊆ synth H

Page 9: Proving Properties of Security Protocols by Induction

Proving Security Protocols 9 L. C. Paulson

Simplification Laws

parts(parts H) = parts H

analz(analz H) = analz H

synth(synth H) = synth H

idempotence

parts(analz H) = analz(parts H) = parts H

parts(synth H) = parts H ∪ synth H

analz(synth H) = analz H ∪ synth H

synth(analz H) = ??

Page 10: Proving Properties of Security Protocols by Induction

Proving Security Protocols 10 L. C. Paulson

Symbolic Evaluation of parts (ins XH)

ins XH = {X} ∪H

parts(ins(Key K)H) = ins(Key K)(parts H)

parts(ins(Hash X)H) = ins(Hash X)(parts H)

parts(ins{|X, Y |}H) = ins{|X, Y |}(parts(ins X(ins Y H)))

parts(ins(Crypt KX)H) = ins(Crypt KX)(parts(ins XH))

Page 11: Proving Properties of Security Protocols by Induction

Proving Security Protocols 11 L. C. Paulson

Symbolic Evaluation of analz (ins XH)

analz(ins(Key K)H)

= ins(Key K)(analz H) K 6∈ keysFor(analz H)

analz(ins(Crypt KX)H)

=

ins(Crypt KX)(analz(ins XH)) K−1 ∈ analz H

ins(Crypt KX)(analz H) otherwise

Page 12: Proving Properties of Security Protocols by Induction

Proving Security Protocols 12 L. C. Paulson

Deductions from synth H

Nonce N ∈ synth H =⇒ Nonce N ∈ H

Key K ∈ synth H =⇒ Key K ∈ H

Crypt KX ∈ synth H =⇒ Crypt KX ∈ H

or X ∈ synth H ∧K ∈ H

A similar law for {|X, Y |} ∈ synth H

Page 13: Proving Properties of Security Protocols by Induction

Proving Security Protocols 13 L. C. Paulson

Spoof Messages: Limiting the Damage

Breaking down the spoof message:

{|X, Y |} ∈ synth(analz H) ⇐⇒

X ∈ synth(analz H) ∧ Y ∈ synth(analz H)

Eliminating the spoof message:

X ∈ synth(analz G) =⇒

parts(ins X H) ⊆ synth(analz G) ∪ parts G ∪ parts H

Page 14: Proving Properties of Security Protocols by Induction

Proving Security Protocols 14 L. C. Paulson

The Shared-Key Model

Traces as lists of events: Says A B X

Alice’s shared key: shrK A

Items already used in this trace: used evs

Reading the traffic (with the help of lost keys):

spies (Says A B X # evs) = {X} ∪ spies evs

spies [] = {shrK A | A ∈ lost}

Page 15: Proving Properties of Security Protocols by Induction

Proving Security Protocols 15 L. C. Paulson

The Simplified Otway-Rees Protocol

1. A → B : Na,A, B, {|Na,A, B|}Kas

2. B → S : Na,A, B, {|Na,A, B|}Kas, Nb, {|Na,A, B|}Kbs

3. S → B : Na, {|Na,Kab|}Kas, {|Nb,Kab|}Kbs

4. B → A : Na, {|Na,Kab|}Kas

Page 16: Proving Properties of Security Protocols by Induction

Proving Security Protocols 16 L. C. Paulson

Inductively Defining the Protocol, 1–2

1. If evs is a trace and Na is unused, may add

Says A B {|Na,A, B, Crypt(shrK A){|Na,A, B|}|}

2. If evs has Says A′ B {|Na,A, B, X|} and Nb is unused, may

add

Says B Server {|Na,A, B,X, Nb, Crypt(shrK B){|Na,A, B|}|}

B doesn’t know the true sender & can’t read X

Page 17: Proving Properties of Security Protocols by Induction

Proving Security Protocols 17 L. C. Paulson

Inductively Defining the Protocol, 4

4. If evs contains the events

Says B Server {|Na,A, B,X ′, Nb, Crypt(shrK B){|Na,A, B|}|}

Says S′ B {|Na,X, Crypt(shrK B){|Nb,K|}|}

may add

Says B A {|Na,X|}

Rule applies only if nonces agree, etc.

Page 18: Proving Properties of Security Protocols by Induction

Proving Security Protocols 18 L. C. Paulson

Modelling Attacks and Accidents

Fake. If X ∈ synth(analz(spies evs)), may add

Says Spy B X

Oops. If server distributes key K , may add

Says A Spy {|Na,Nb,K|}

Nonces show the time of the loss

Page 19: Proving Properties of Security Protocols by Induction

Proving Security Protocols 19 L. C. Paulson

Regularity & Unicity

• Agents don’t talk to themselves

• Secret keys are never lost (except initially)

• Nonces & keys uniquely identify creating message

Easily proved by induction & simplification of parts

Page 20: Proving Properties of Security Protocols by Induction

Proving Security Protocols 20 L. C. Paulson

Secrecy

• Keys, if secure, are never encrypted using any session keys

• Distributed keys remain confidential — to recipients!

• Yahalom: nonce Nb remains secure

Simplification of analz: case analysis, big formulas

Page 21: Proving Properties of Security Protocols by Induction

Proving Security Protocols 21 L. C. Paulson

An Attack

1. A → B×: Na,A, B, {|Na,A, B|}Kas

1′. C → A : Nc, C, A, {|Nc, C, A|}Kcs

2′. A → S× : Nc, C, A, {|Nc, C, A|}Kcs, Na′, {|Nc, C, A|}Kas

2′′. CA → S : Nc, C, A, {|Nc, C, A|}Kcs, Na, {|Nc, C, A|}Kas

3′. S → A× : Nc, {|Nc, Kca|}Kcs, {|Na,Kca|}Kas

4. CB → A : Na, {|Na,Kca|}Kas

Page 22: Proving Properties of Security Protocols by Induction

Proving Security Protocols 22 L. C. Paulson

New Guarantees of Fixed Protocol

B can trust the message if he sees

Says S′ B {|Na,X, Crypt(shrK B){|Nb,K|}|}

Says B Server {|Na,A, B,X ′, Crypt(shrK B){|Na,Nb,A, B|}|}

A can trust the message if she sees

Says B′ A {|Na, Crypt(shrK A){|Na,K|}|}

Says A B {|Na,A, B, Crypt(shrK A){|Na,A, B|}|}

Page 23: Proving Properties of Security Protocols by Induction

Proving Security Protocols 23 L. C. Paulson

Statistics

• 200 theorems about 10 protocol variants

(3× Otway-Rees, 2× Yahalom, Needham-Schroeder, . . .)

• 110 laws proved concerning messages

• 2–9 minutes CPU time per protocol

• few hours or days human time per protocol

• over 1200 proof commands in all

Page 24: Proving Properties of Security Protocols by Induction

Proving Security Protocols 24 L. C. Paulson

Conclusions

• A feasible method of analyzing protocols

• Guarantees proved in a clear framework

• Complementary to other methods:

– Finite-state: finding simple attacks automatically

– Belief logics: freshness analysis

• Related work by Dominique Bolignano