proving security protocols correct

29
Proving Security Protocols Correct Lawrence C. Paulson Computer Laboratory

Upload: lawrence-paulson

Post on 09-Jul-2015

55 views

Category:

Technology


0 download

DESCRIPTION

Keynote lecture for the IEEE Symposium on Logic in Computer Science (LICS). Trento, Italy (1999).

TRANSCRIPT

Page 1: Proving Security Protocols Correct

Proving Security Protocols Correct

Lawrence C. Paulson

Computer Laboratory

Page 2: Proving Security Protocols Correct

How Detailed Should a Model Be?

concrete abstract

too detailed

not usable not credible

too simple

``proves''everything

``attacks''everything

publications

1 L. C. Paulson

Page 3: Proving Security Protocols Correct

Case Study: the Plight of Monica and Bill

2 L. C. Paulson

Page 4: Proving Security Protocols Correct

A,Na,Sid,Pa

client serverclient hello

Nb,Sid,Pb

server hello

cert(B,Kb)

server certificate

cert(A,Ka)

client certificate

{PMS}Kb

client key exchange

{Hash(Nb,B,PMS)}Ka-1

certificate verify

{Finished}clientK(Na,Nb,M)

client finished

M = PRF(PMS,Na,Nb)

Finished = Hash(M,messages)

{Finished}serverK(Na,Nb,M)

server finished

An Internet SecurityProtocol (TLS)

3 L. C. Paulson

Page 5: Proving Security Protocols Correct

Why Are Security Protocols Often Wrong?

• they are TRIVIAL programs built from simpleprimitives, BUT they are complicated by

• concurrency

• a hostile environment– a bad user controls the network

• obscure concepts

• vague specifications– we have to guess what is wanted

4 L. C. Paulson

Page 6: Proving Security Protocols Correct

Typical Protocol Goals

• Authenticity: who sent it?

• Integrity: has it been altered?

• Secrecy: who can receive it?

• Anonymity

• Non-repudiation . . .

all SAFETY properties

5 L. C. Paulson

Page 7: Proving Security Protocols Correct

What Are Session Keys?

• used for a single session

• not safeguarded forever

• distributed using long-term keys

• could eventually become compromised

• can only be trusted if FRESH

6 L. C. Paulson

Page 8: Proving Security Protocols Correct

Freshness, or Would You Eat This Fish?

wine: six years old

fish: ? weeks old

7 L. C. Paulson

Page 9: Proving Security Protocols Correct

Packaging a Session Key for Bill

{|K , A, Nb|}Kb

session key

person it's shared with nonce specified

by Bill: proof of freshness

sealed using Bill's key

8 L. C. Paulson

Page 10: Proving Security Protocols Correct

A Bad Variant of the Otway-Rees Protocol

3: Na, {|Na, Kab|}Ka,

{|Nb, Kab|}Kb

1: Na, A, B, {|Na, A, B|}Ka

B

S

A

2: Na, A, B, {|Na, A, B|}Ka,

Nb, {|Na, A, B|}Kb

4: Na, {|Na, Kab|}Ka

9 L. C. Paulson

Page 11: Proving Security Protocols Correct

A Splicing Attack with Interleaved Runs

1. A → CB : Na, A, B, {|Na, A, B|}Ka

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

2′. A → CS : Nc, C, A, {|Nc, C, A|}Kc, Na′, {|Nc, C, A|}Ka

2′′. CA → S : Nc, C, A, {|Nc, C, A|}Kc, Na, {|Nc, C, A|}Ka

3′. S → CA : Nc, {|Nc, Kca|}Kc, {|Na, Kca|}Ka

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

Alice thinks the key Kca is sharedwith Bill, but it's shared with Carol!

10 L. C. Paulson

Page 12: Proving Security Protocols Correct

A Bad Variant of the Yahalom Protocol

2: B, Nb, {|A, Na|}Kb

B

S

A1: A, Na

3: {|B, Kab, Na, Nb|}Ka,

{|A, Kab|}Kb

4: {|A, Kab|}Kb, {|Nb|}Kab

11 L. C. Paulson

Page 13: Proving Security Protocols Correct

A Replay Attack

}

1. CA → B : A, Nc

2. B → CS : B, Nb, {|A, Nc|}Kb

4. CA → B : {|A, K |Kb, {|Nb|}K

Carol has broken the old key, K. She makes Bill think it is shared with Alice.

12 L. C. Paulson

Page 14: Proving Security Protocols Correct

Verification Method I: Authentication Logics

BAN logic: Burrows, Abadi, Needham (1989)

Short proofs using high-level primitives:

Nonce N is fresh

Key Kab is good

Agent S can be trusted

• good for freshness

• not-so-good for secrecy or splicing attacks

13 L. C. Paulson

Page 15: Proving Security Protocols Correct

Verification Method II: State Enumeration

Specialized tools (Meadows)

General model-checkers (Lowe)

Model protocol as a finite-state system

• automatically finds splicing attacks

• freshness is hard to model

Try using formal proof!

14 L. C. Paulson

Page 16: Proving Security Protocols Correct

Why An Operational Model?

• good fit to informal protocol proofs: inductive

• simple foundations

• readable protocol specifications

• easily explained to security experts

• easily mechanized using Isabelle

15 L. C. Paulson

Page 17: Proving Security Protocols Correct

An Overview of Isabelle

• uses higher-order logic as a logical framework

• generic treatment of inference rules

• logics supported include ZF set theory & HOL

• powerful simplifier & classical reasoner

• strong support for inductive definitions

16 L. C. Paulson

Page 18: Proving Security Protocols Correct

Overview of the Model

• Traces of events

– A sends B message X

– A receives X

– A stores X

• A powerful attacker

– is an accepted user

– attempts all possible splicing attacks

– has the same specification in all protocols

17 L. C. Paulson

Page 19: Proving Security Protocols Correct

Agents and Messages

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

messageX,Y, . . . = Agent A

| Nonce N

| Key K

| {|X, X′|} compound message

| Crypt K X

free algebras: we assume PERFECT ENCRYPTION

18 L. C. Paulson

Page 20: Proving Security Protocols Correct

Functions over Sets of Messages

• parts H : message components

Crypt K X 7→ X

• analz H : accessible components

Crypt K X, K−1 7→ X

• synth H : expressible messages

X, K 7→ Crypt K X

RELATIONS are traditional, but FUNCTIONS give usan equational theory

19 L. C. Paulson

Page 21: Proving Security Protocols Correct

Operational Definition: analz H

Crypt K X ∈ analz H K−1 ∈ analz H

X ∈ analz H

X ∈ H

X ∈ analz H

{|X,Y|} ∈ analz H

X ∈ analz H

{|X,Y|} ∈ analz H

Y ∈ analz H

Typical derived law:

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

20 L. C. Paulson

Page 22: Proving Security Protocols Correct

Operational Definition: synth H

X ∈ H

X ∈ synth HAgent A ∈ synth H

X ∈ synth H Y ∈ synth H

{|X,Y|} ∈ synth H

X ∈ synth H K ∈ H

Crypt K X ∈ synth H

• agent names can be guessed

• nonces & keys cannot be!

21 L. C. Paulson

Page 23: Proving Security Protocols Correct

A Few Equations

parts(parts H) = parts H transitivity

analz(synth H) = analz H ∪ synth H “cut elimination”

Symbolic Evaluation:

analz({Crypt K X} ∪ H) ={Crypt K X} ∪ analz({X} ∪ H) if K−1 ∈ analz H

{Crypt K X} ∪ analz H otherwise

22 L. C. Paulson

Page 24: Proving Security Protocols Correct

What About Freshness?

23 L. C. Paulson

Page 25: Proving Security Protocols Correct

Modelling Attacks and Key Losses

If X ∈ synth(analz(spies evs))

may add Says Spy B X (Fake rule)

If the server distributes session key K

may add Notes Spy {|Na, Nb, K |} (Oops rule)

Nonces show the TIME of the loss

24 L. C. Paulson

Page 26: Proving Security Protocols Correct

Overview of Results

• facts proved by induction & classical reasoning

• simplifying analz H : case analysis, big formulas

• handles REAL protocols: TLS, Kerberos, . . .

• lemmas reveal surprising protocol features

• failed proofs can suggest attacks

Proofs require days or weeks of effort

Generalizing induction formulas is hard!

25 L. C. Paulson

Page 27: Proving Security Protocols Correct

The Recursive Authentication Protocol

• designed in industry (APM Ltd)

• novel recursive structure: variable length

• VERIFIED by Paulson– assuming perfect encryption

• ATTACKED by Ryan and Schneider– using the specified encryption (XOR)

Doesn’t proof give certainty? Not in the real world!

26 L. C. Paulson

Page 28: Proving Security Protocols Correct

So Then, How Detailed Should a Model Be?

• detailed enough to answer the relevantquestions

• abstract enough to fit our budget

• model-checking is almost free(thanks to Lowe, Roscoe, Schneider)

• formal proofs give more, but cost more

27 L. C. Paulson

Page 29: Proving Security Protocols Correct

Don’t let theory displace reality