PhD Defense Symbolic Proofs of Computational Indistinguishability - - PowerPoint PPT Presentation

phd defense
SMART_READER_LITE
LIVE PREVIEW

PhD Defense Symbolic Proofs of Computational Indistinguishability - - PowerPoint PPT Presentation

PhD Defense Symbolic Proofs of Computational Indistinguishability Adrien Koutsos Thse prpare au sein du LSV, ENS Paris-Saclay September 27, 2019 Introduction Motivation Security Protocols Distributed programs which aim at providing some


slide-1
SLIDE 1

PhD Defense

Symbolic Proofs of Computational Indistinguishability

Adrien Koutsos Thèse préparée au sein du LSV, ENS Paris-Saclay September 27, 2019

slide-2
SLIDE 2

Introduction

slide-3
SLIDE 3

Motivation

Security Protocols Distributed programs which aim at providing some security properties.

2

slide-4
SLIDE 4

Security Properties

The Problem Attacks against security protocols can be very damageable, e.g. theft or privacy breach. ⇒ We need to check that protocols are secure.

  • Eavesdrop
  • Intercept messages
  • Forge messages

[HeartBleed,TripleHandshake,LogJam]

3

slide-5
SLIDE 5

Security Properties

The Problem Attacks against security protocols can be very damageable, e.g. theft or privacy breach. ⇒ We need to check that protocols are secure. The Context

  • Security protocols may be short: few lines of specification.
  • Eavesdrop
  • Intercept messages
  • Forge messages

[HeartBleed,TripleHandshake,LogJam]

3

slide-6
SLIDE 6

Security Properties

The Problem Attacks against security protocols can be very damageable, e.g. theft or privacy breach. ⇒ We need to check that protocols are secure. The Context

  • Security protocols may be short: few lines of specification.
  • Security properties are complex.
  • Eavesdrop
  • Intercept messages
  • Forge messages

[HeartBleed,TripleHandshake,LogJam]

3

slide-7
SLIDE 7

Security Properties

The Problem Attacks against security protocols can be very damageable, e.g. theft or privacy breach. ⇒ We need to check that protocols are secure. The Context

  • Security protocols may be short: few lines of specification.
  • Security properties are complex.
  • Eavesdrop
  • Intercept messages
  • Forge messages

[HeartBleed,TripleHandshake,LogJam]

3

slide-8
SLIDE 8

Can We Use Testing?

Principle Run the protocol multiple times, on random inputs, to look for bugs.

4

slide-9
SLIDE 9

Can We Use Testing?

Principle Run the protocol multiple times, on random inputs, to look for bugs. Problem A protocol is not executed in a random environment: an adversary can systematically trigger an unlikely corner case.

4

slide-10
SLIDE 10

Formal Verification

Goal Provide a mathematical proof that a protocol P is secure:

5

slide-11
SLIDE 11

Formal Verification

Goal Provide a mathematical proof that a protocol P is secure:

P | = φsafe

5

slide-12
SLIDE 12

Formal Verification

Goal Provide a mathematical proof that a protocol P is secure:

∀ ( || P ) | = φsafe

5

slide-13
SLIDE 13

Formal Verification

Goal Provide a mathematical proof that a protocol P is secure:

∀ ∈ C ( || P ) | = φsafe

Question What is the class of attackers C?

5

slide-14
SLIDE 14

Symbolic Attackers

Dolev-Yao Model

  • Symbolic model, messages are (first-order) terms:

t = {A , nA}pkB

  • The adversary is explicitly granted some capabilities, e.g.:

a b a , b m pk {m}pk a , b a a , b b {m}pk sk m

6

slide-15
SLIDE 15

Symbolic Attackers

Advantages

  • Adapted to proof automation: ProVerif, Tamarin, Deepsec. . .
  • Can automatically find attacks.

7

slide-16
SLIDE 16

Symbolic Attackers

Advantages

  • Adapted to proof automation: ProVerif, Tamarin, Deepsec. . .
  • Can automatically find attacks.

Problem We prove only that there are no attacks using the capabilities granted to the attacker.

7

slide-17
SLIDE 17

Computational Attackers

Computational Model

  • More realistic model, messages are bit-strings.
  • The attacker is any Probabilistic Polynomial-time Turing

Machine (PPTM).

  • The security property is expressed through a game.

8

slide-18
SLIDE 18

Computational Attackers

Computational Model

  • More realistic model, messages are bit-strings.
  • The attacker is any Probabilistic Polynomial-time Turing

Machine (PPTM).

  • The security property is expressed through a game.

Scenario1 (Concrete) Scenario2 (Ideal) VS.

8

slide-19
SLIDE 19

Computational Attackers

Advantage This model gives strong security guarantees.

9

slide-20
SLIDE 20

Computational Attackers

Advantage This model gives strong security guarantees. Problems

  • Proofs are long, complicated and error-prone.
  • Implicit hypotheses.

Example: An agent name cannot be confused with a pair.

  • Proof automation is hard (CryptoVerif).

9

slide-21
SLIDE 21

The Bana-Comon Model

The Bana-Comon Model

  • Messages are modeled by (first-order) terms.

10

slide-22
SLIDE 22

The Bana-Comon Model

The Bana-Comon Model

  • Messages are modeled by (first-order) terms.
  • Axioms specifying what the adversary cannot do.

len(u) = len(v) {u}pk ∼ {v}pk CPA

10

slide-23
SLIDE 23

The Bana-Comon Model

The Bana-Comon Model

  • Messages are modeled by (first-order) terms.
  • Axioms specifying what the adversary cannot do.

len(u) = len(v) {u}pk ∼ {v}pk CPA

  • We have to prove that the axioms entail the security property.

10

slide-24
SLIDE 24

The Bana-Comon Model

Advantages

  • This model gives strong security guarantees.
  • Formal model, which may be amenable to automated

deduction techniques.

  • All hypotheses are explicit (in the axioms).

11

slide-25
SLIDE 25

The Bana-Comon Model

Advantages

  • This model gives strong security guarantees.
  • Formal model, which may be amenable to automated

deduction techniques.

  • All hypotheses are explicit (in the axioms).

Variants

  • A reachability logic, studied in Scerri’s thesis.
  • A more recent indistinguishability logic.

11

slide-26
SLIDE 26

The Bana-Comon Model

Problems at the Beginning of this Thesis

  • Usefulness remained to be shown:
  • lack of case studies (only a toy example).
  • small set of axioms.
  • No proof automation.

12

slide-27
SLIDE 27

This Thesis

Contributions

  • Case study of two RFID protocols, KCL and LAK.
  • Case study of a complex protocol, AKA.
  • Decidability result for a fixed set of axioms.

13

slide-28
SLIDE 28

The AKA Protocol

slide-29
SLIDE 29

Authentication and Key Agreement Protocol

UE SN HN

Wireless channel

  • Secure channel (TLS)

14

slide-30
SLIDE 30

Authentication and Key Agreement Protocol

UE SN HN

Wireless channel

  • Secure channel (TLS)

14

slide-31
SLIDE 31

Authentication and Key Agreement Protocol

UE SN HN

Wireless channel

  • Secure channel (TLS)

Security Properties

  • Mutual authentication between the user and the

service provider.

  • Untraceability of the user against an outside observer.

14

slide-32
SLIDE 32

Replay Protection

15 16 · · ·

EYFPOCG (EYFP|FTU) (EYFP|16|FTU) YLPZCCS (EYFP|CCS)

· · · · · · (FGHA|VHP) YLPZCCS (EYFP|CCS)

? ✗

16 · · ·

? ✗

(EYFP|FTU) (EYFP|16|FTU) 15

slide-33
SLIDE 33

Replay Protection

15 16 · · ·

EYFPOCG (EYFP|FTU) (EYFP|16|FTU) YLPZCCS (EYFP|CCS)

· · · · · · (FGHA|VHP) YLPZCCS (EYFP|CCS)

? ✗

16 · · ·

? ✗

(EYFP|FTU) (EYFP|16|FTU) 15

slide-34
SLIDE 34

Replay Protection

15 16 · · ·

EYFPOCG (EYFP|FTU) (EYFP|16|FTU) YLPZCCS (EYFP|CCS)

· · · · · · (FGHA|VHP) YLPZCCS (EYFP|CCS)

? ✗

16 · · ·

? ✗

(EYFP|FTU) (EYFP|16|FTU) 15

slide-35
SLIDE 35

Replay Protection

15 16 · · ·

EYFPOCG (EYFP|FTU) (EYFP|16|FTU) YLPZCCS (EYFP|CCS)

· · · · · · (FGHA|VHP) YLPZCCS (EYFP|CCS)

? ✗

16 · · ·

? ✗

(EYFP|FTU) (EYFP|16|FTU) 15

slide-36
SLIDE 36

Replay Protection

15 16 · · ·

EYFPOCG (EYFP|FTU) (EYFP|16|FTU) YLPZCCS (EYFP|CCS)

· · · · · · (FGHA|VHP) YLPZCCS (EYFP|CCS)

? ✗

16 · · ·

? ✗

(EYFP|FTU) (EYFP|16|FTU) 15

slide-37
SLIDE 37

Replay Protection

15 16 · · ·

EYFPOCG (EYFP|FTU) (EYFP|16|FTU) YLPZCCS (EYFP|CCS)

· · · · · · (FGHA|VHP) YLPZCCS (EYFP|CCS)

? ✗

16 · · ·

? ✗

(EYFP|FTU) (EYFP|16|FTU) 15

slide-38
SLIDE 38

Replay Protection

15 16 · · ·

EYFPOCG (EYFP|FTU) (EYFP|16|FTU) YLPZCCS (EYFP|CCS)

· · · · · · (FGHA|VHP) YLPZCCS (EYFP|CCS)

? ✗

16 · · ·

? ✗

(EYFP|FTU) (EYFP|16|FTU) 15

slide-39
SLIDE 39

id, k, sqnu id, k, sqnn id

  • n , sqnn ⊕ H5

k(n) , H1 k(sqnn , n)

  • bmac ← check-mac

bsqn ← check-range(sqnu, sqnn) sqnn ← sqnn + 1 sqnu ← sqnn H2

k(n)

bmac ∧ bsqn “Auth-Failure” ¬bmac

  • sqnu ⊕ H5,∗

k (n) , H1,∗ k (sqnu , n)

  • If the mac is valid:

sqnn ← sqnu + 1 bmac ∧ ¬bsqn

4G-AKA

16

slide-40
SLIDE 40

id, k, sqnu id, k, sqnn id

  • n , sqnn ⊕ H5

k(n) , H1 k(sqnn , n)

  • bmac ← check-mac

bsqn ← check-range(sqnu, sqnn) sqnn ← sqnn + 1 sqnu ← sqnn H2

k(n)

bmac ∧ bsqn “Auth-Failure” ¬bmac

  • sqnu ⊕ H5,∗

k (n) , H1,∗ k (sqnu , n)

  • If the mac is valid:

sqnn ← sqnu + 1 bmac ∧ ¬bsqn

4G-AKA

16

slide-41
SLIDE 41

id, k, sqnu id, k, sqnn id

  • n , sqnn ⊕ H5

k(n) , H1 k(sqnn , n)

  • bmac ← check-mac

bsqn ← check-range(sqnu, sqnn) sqnn ← sqnn + 1 sqnu ← sqnn H2

k(n)

bmac ∧ bsqn “Auth-Failure” ¬bmac

  • sqnu ⊕ H5,∗

k (n) , H1,∗ k (sqnu , n)

  • If the mac is valid:

sqnn ← sqnu + 1 bmac ∧ ¬bsqn

4G-AKA

16

slide-42
SLIDE 42

id, k, sqnu id, k, sqnn id

  • n , sqnn ⊕ H5

k(n) , H1 k(sqnn , n)

  • bmac ← check-mac

bsqn ← check-range(sqnu, sqnn) sqnn ← sqnn + 1 sqnu ← sqnn H2

k(n)

bmac ∧ bsqn “Auth-Failure” ¬bmac

  • sqnu ⊕ H5,∗

k (n) , H1,∗ k (sqnu , n)

  • If the mac is valid:

sqnn ← sqnu + 1 bmac ∧ ¬bsqn

4G-AKA

16

slide-43
SLIDE 43

id, k, sqnu id, k, sqnn id

  • n , sqnn ⊕ H5

k(n) , H1 k(sqnn , n)

  • bmac ← check-mac

bsqn ← check-range(sqnu, sqnn) sqnn ← sqnn + 1 sqnu ← sqnn H2

k(n)

bmac ∧ bsqn “Auth-Failure” ¬bmac

  • sqnu ⊕ H5,∗

k (n) , H1,∗ k (sqnu , n)

  • If the mac is valid:

sqnn ← sqnu + 1 bmac ∧ ¬bsqn

4G-AKA

16

slide-44
SLIDE 44

The imsi Catcher Attack [Strobel, 2007]

No Confidentiality of the User Identity The id is sent in plain text!

17

slide-45
SLIDE 45

The imsi Catcher Attack [Strobel, 2007]

No Confidentiality of the User Identity The id is sent in plain text!

UE Attacker tmp-id or id “Permanent-ID-Request” If tmp-id received id

17

slide-46
SLIDE 46

The imsi Catcher Attack [Strobel, 2007]

No Confidentiality of the User Identity The id is sent in plain text!

UE Attacker tmp-id or id “Permanent-ID-Request” If tmp-id received id

Why This is a Major Attack

  • Reliable: always works.
  • Easy to deploy: only needs an antenna.
  • Large scale: is not targeted.

17

slide-47
SLIDE 47

Privacy in 5G-AKA

The 5G-AKA protocol 5G-AKA is the next version of AKA (drafts are available).

18

slide-48
SLIDE 48

Privacy in 5G-AKA

The 5G-AKA protocol 5G-AKA is the next version of AKA (drafts are available). 3GPP fix for 5G-AKA Simply encrypts the permanent identity by sending {id}pkn

18

slide-49
SLIDE 49

id, k, pkn, sqnu id, k, skn, sqnn {id}pkn

  • n , sqnn ⊕ H5

k(n) , H1 k(sqnn , n)

  • bmac ← check mac

bsqn ← check range(sqnu, sqnn) sqnn ← sqnn + 1 sqnu ← sqnn H2

k(n)

bmac ∧ bsqn “Auth-Failure” ¬bmac

  • sqnu ⊕ H5,∗

k (n) , H1,∗ k (sqnu , n)

  • If the mac is valid:

sqnn ← sqnu + 1 bmac ∧ ¬bsqn

5G-AKA

19

slide-50
SLIDE 50

Privacy in 5G-AKA

Is it enough?

20

slide-51
SLIDE 51

Privacy in 5G-AKA

Is it enough?

For confidentiality of the id, yes.

20

slide-52
SLIDE 52

Privacy in 5G-AKA

Is it enough?

For confidentiality of the id, yes. For unlinkability, no.

20

slide-53
SLIDE 53

Unlinkability

Unlinkability Attack Even if id is hidden, an attacker can link sessions of a user.

21

slide-54
SLIDE 54

Unlinkability

Unlinkability Attack Even if id is hidden, an attacker can link sessions of a user. Example of an Unlinkability Scenario

F A A B B A C B D B E B F

21

slide-55
SLIDE 55

Unlinkability

Unlinkability Attack Even if id is hidden, an attacker can link sessions of a user. Example of an Unlinkability Scenario

F A A B B A C B D B E B F

21

slide-56
SLIDE 56

Unlinkability

Unlinkability Attack Even if id is hidden, an attacker can link sessions of a user. Example of an Unlinkability Scenario

F A A B B A C B D B E B F

21

slide-57
SLIDE 57

Unlinkability

Unlinkability Attack Even if id is hidden, an attacker can link sessions of a user. Example of an Unlinkability Scenario

F A A B B A C B D B E B F

21

slide-58
SLIDE 58

The Failure Message Attack [Arapinis et al., 2012]

UE(idA) HN tauth ≡

  • n , sqnn ⊕ H5

k(n) , H1 k(sqnn , n)

  • H2

k(n)

UE(idB) Attacker tauth “Auth-Failure” If idB = idA tre-sync ≡

  • sqnu ⊕ H5,∗

k (n) , H1,∗ k (sqnu , n)

  • If idB = idA

22

slide-59
SLIDE 59

The Failure Message Attack [Arapinis et al., 2012]

UE(idA) HN tauth ≡

  • n , sqnn ⊕ H5

k(n) , H1 k(sqnn , n)

  • H2

k(n)

UE(idB) Attacker tauth “Auth-Failure” If idB = idA tre-sync ≡

  • sqnu ⊕ H5,∗

k (n) , H1,∗ k (sqnu , n)

  • If idB = idA

22

slide-60
SLIDE 60

The Failure Message Attack [Arapinis et al., 2012]

UE(idA) HN tauth ≡

  • n , sqnn ⊕ H5

k(n) , H1 k(sqnn , n)

  • H2

k(n)

UE(idB) Attacker tauth “Auth-Failure” If idB = idA tre-sync ≡

  • sqnu ⊕ H5,∗

k (n) , H1,∗ k (sqnu , n)

  • If idB = idA

22

slide-61
SLIDE 61

The Failure Message Attack [Arapinis et al., 2012]

UE(idA) HN tauth ≡

  • n , sqnn ⊕ H5

k(n) , H1 k(sqnn , n)

  • H2

k(n)

UE(idB) Attacker tauth “Auth-Failure” If idB = idA tre-sync ≡

  • sqnu ⊕ H5,∗

k (n) , H1,∗ k (sqnu , n)

  • If idB = idA

Unlinkability Attack The adversary knows if it interacted with idA or idB.

22

slide-62
SLIDE 62

Goal

Goal Design a modified version of AKA, called AKA+, that:

  • Provides some form of unlinkability.

23

slide-63
SLIDE 63

Goal

Goal Design a modified version of AKA, called AKA+, that:

  • Provides some form of unlinkability.
  • Satisfies the design and efficiency constraints of 5G-AKA.

23

slide-64
SLIDE 64

Goal

Goal Design a modified version of AKA, called AKA+, that:

  • Provides some form of unlinkability.
  • Satisfies the design and efficiency constraints of 5G-AKA.
  • Is proved secure.

23

slide-65
SLIDE 65

Theorem

Theorem The AKA+ protocol is σ-unlinkable for an arbitrary number of agents and sessions when:

  • The asymmetric encryption {_}_ is ind-cca1.
  • H and Hr (resp. Mac1– Mac5) are jointly prf.

24

slide-66
SLIDE 66

Theorem

Theorem The AKA+ protocol is σ-unlinkable for an arbitrary number of agents and sessions when:

  • The asymmetric encryption {_}_ is ind-cca1.
  • H and Hr (resp. Mac1– Mac5) are jointly prf.

Remarks

  • Computational security.
  • AKA+ is stateful, and uses the ⊕ operator.
  • The proof is technical (around 80 pages).

24

slide-67
SLIDE 67

The Bana-Comon Model

slide-68
SLIDE 68

Example of a Protocol

A Simple Handshake 1 : A − → B : nA 2 : B − → A : {B , nA}pk(A)

25

slide-69
SLIDE 69

Bana-Comon Model: Messages

Messages We use terms to model protocol messages, built upon:

  • Names N, e.g. nA, nB, for random samplings.
  • Function symbols F, e.g.:

A, B, _ , _ , πi(_), {_}_, pk(_), sk(_) if_then_else_, eq(_, _)

26

slide-70
SLIDE 70

Bana-Comon Model: Messages

Messages We use terms to model protocol messages, built upon:

  • Names N, e.g. nA, nB, for random samplings.
  • Function symbols F, e.g.:

A, B, _ , _ , πi(_), {_}_, pk(_), sk(_) if_then_else_, eq(_, _) Examples nA , A π1(nB) {B , nA}pk(A)

26

slide-71
SLIDE 71

Bana-Comon Model: Messages

A Simple Handshake 1 : A − → B : nA 2 : B − → A : {B , nA }pk(A) How do we represent the adversary’s inputs?

27

slide-72
SLIDE 72

Bana-Comon Model: Messages

A Simple Handshake 1 : A − → B : nA 2 : B − → A : {B , nA }pk(A) How do we represent the adversary’s inputs?

  • We use an adversarial functions symbol g.

g’s input is the current knowledge of the adversary.

27

slide-73
SLIDE 73

Bana-Comon Model: Messages

A Simple Handshake 1 : A − → B : nA 2 : B − → A : {B , nA }pk(A) How do we represent the adversary’s inputs?

  • We use an adversarial functions symbol g.

g’s input is the current knowledge of the adversary.

  • Intuitively, g can be any PPTM.

27

slide-74
SLIDE 74

Bana-Comon Model: Messages

A Simple Handshake 1 : A − → B : nA 2 : B − → A : {B , nA }pk(A) Term Representing the Messages t1 = nA

28

slide-75
SLIDE 75

Bana-Comon Model: Messages

A Simple Handshake 1 : A − → B : nA 2 : B − → A : {B , nA }pk(A) Term Representing the Messages t1 = nA t2 =

  • B, g(t1)

pk(A) 28

slide-76
SLIDE 76

Bana-Comon Model: Security Properties

Formula Formulas are built using a predicate ∼ of arbitrary arity.

29

slide-77
SLIDE 77

Bana-Comon Model: Security Properties

Formula Formulas are built using a predicate ∼ of arbitrary arity. Example n ∼ if g() then n else n′

29

slide-78
SLIDE 78

Example of a Proof

n ∼ if g() then n else n′

t ∼ u s ∼ u R when s =R t

(x =R if b then x else x)

b, u ∼ b′, u′ b, v ∼ b′, v ′ if b then u else v ∼ if b′ then u′ else v ′ CS

30

slide-79
SLIDE 79

Example of a Proof

n ∼ if g() then n else n′

t ∼ u s ∼ u R when s =R t

(x =R if b then x else x)

b, u ∼ b′, u′ b, v ∼ b′, v ′ if b then u else v ∼ if b′ then u′ else v ′ CS

30

slide-80
SLIDE 80

Example of a Proof

if g() then n else n ∼ if g() then n else n′ n ∼ if g() then n else n′ R

t ∼ u s ∼ u R when s =R t

(x =R if b then x else x)

b, u ∼ b′, u′ b, v ∼ b′, v ′ if b then u else v ∼ if b′ then u′ else v ′ CS

30

slide-81
SLIDE 81

Example of a Proof

if g() then n else n ∼ if g() then n else n′ n ∼ if g() then n else n′ R

t ∼ u s ∼ u R when s =R t

(x =R if b then x else x)

b, u ∼ b′, u′ b, v ∼ b′, v ′ if b then u else v ∼ if b′ then u′ else v ′ CS

30

slide-82
SLIDE 82

Example of a Proof

g(), n ∼ g(), n g(), n ∼ g(), n′ if g() then n else n ∼ if g() then n else n′ CS n ∼ if g() then n else n′ R

t ∼ u s ∼ u R when s =R t

(x =R if b then x else x)

b, u ∼ b′, u′ b, v ∼ b′, v ′ if b then u else v ∼ if b′ then u′ else v ′ CS

30

slide-83
SLIDE 83

Example of a Proof

g(), n ∼ g(), n Refl g(), n ∼ g(), n′ Refl if g() then n else n ∼ if g() then n else n′ CS n ∼ if g() then n else n′ R

t ∼ u s ∼ u R when s =R t

(x =R if b then x else x)

b, u ∼ b′, u′ b, v ∼ b′, v ′ if b then u else v ∼ if b′ then u′ else v ′ CS

30

slide-84
SLIDE 84

Decision Result

slide-85
SLIDE 85

Decidability

Decision Problem: Derivability Input: A ground formula u ∼ v. Question: Is there a derivation of u ∼ v using Ax?

31

slide-86
SLIDE 86

Decidability

Decision Problem: Derivability Input: A ground formula u ∼ v. Question: Is there a derivation of u ∼ v using Ax?

  • r equivalently

Decision Problem: Game Transformations Input: A game u ∼ v. Question: Is there a sequence of cryptographic game transformations in Ax showing that u ∼ v is secure?

31

slide-87
SLIDE 87

The Set of Axioms Ax

u ∼ t u ∼ s R when s =R t b, u ∼ b′, u′ b, v ∼ b′, v ′ if b then u else v ∼ if b′ then u′ else v ′ CS x ∼ y x, x ∼ y, y Dup x1, . . . , xn ∼ y1, . . . , yn f (x1, . . . , xn) ∼ f (y1, . . . , yn) FA

  • u , {s}pk(n) ∼

u , {t}pk(n) CCA1 when . . .

32

slide-88
SLIDE 88

The Set of Axioms Ax

u ∼ t u ∼ s R when s =R t b, u ∼ b′, u′ b, v ∼ b′, v ′ if b then u else v ∼ if b′ then u′ else v ′ CS x ∼ y x, x ∼ y, y Dup x1, . . . , xn ∼ y1, . . . , yn f (x1, . . . , xn) ∼ f (y1, . . . , yn) FA

  • u , {s}pk(n) ∼

u , {t}pk(n) CCA1 when . . .

32

slide-89
SLIDE 89

The Set of Axioms Ax

u ∼ t u ∼ s R when s =R t b, u ∼ b′, u′ b, v ∼ b′, v ′ if b then u else v ∼ if b′ then u′ else v ′ CS x ∼ y x, x ∼ y, y Dup x1, . . . , xn ∼ y1, . . . , yn f (x1, . . . , xn) ∼ f (y1, . . . , yn) FA

  • u , {s}pk(n) ∼

u , {t}pk(n) CCA1 when . . .

32

slide-90
SLIDE 90

The Set of Axioms Ax

u ∼ t u ∼ s R when s =R t b, u ∼ b′, u′ b, v ∼ b′, v ′ if b then u else v ∼ if b′ then u′ else v ′ CS x ∼ y x, x ∼ y, y Dup x1, . . . , xn ∼ y1, . . . , yn f (x1, . . . , xn) ∼ f (y1, . . . , yn) FA

  • u , {s}pk(n) ∼

u , {t}pk(n) CCA1 when . . .

32

slide-91
SLIDE 91

Equational Theory

Equational Theory: Protocol Functions

  • πi (x1, x2) = xi

i ∈ {1, 2}

  • dec({x}pk(y), sk(y)) = x

33

slide-92
SLIDE 92

Equational Theory

Equational Theory: Protocol Functions If Homomorphism: f ( u, if b then x else y, v) = if b then f ( u, x, v) else f ( u, y, v) if (if b then a else c) then x else y = if b then (if a then x else y) else (if c then x else y) If Rewriting: if b then x else x = x if b then (if b then x else y) else z = if b then x else z if b then x else (if b then y else z) = if b then x else z If Re-Ordering: if b then (if a then x else y) else z = if a then (if b then x else z) else (if b then y else z) if b then x else (if a then y else z) = if a then (if b then x else y) else (if b then x else z)

34

slide-93
SLIDE 93

Equational Theory

Equational Theory: Protocol Functions If Homomorphism: f ( u, if b then x else y, v) = if b then f ( u, x, v) else f ( u, y, v) if (if b then a else c) then x else y = if b then (if a then x else y) else (if c then x else y) If Rewriting: if b then x else x = x if b then (if b then x else y) else z = if b then x else z if b then x else (if b then y else z) = if b then x else z If Re-Ordering: if b then (if a then x else y) else z = if a then (if b then x else z) else (if b then y else z) if b then x else (if a then y else z) = if a then (if b then x else y) else (if b then x else z)

34

slide-94
SLIDE 94

Strategy

Deconstructing Rules Rules CCA1, CS, FA and Dup are decreasing transformations.

u ∼ t u ∼ s R when s =R t b, u ∼ b′, u′ b, v ∼ b′, v ′ if b then u else v ∼ if b′ then u′ else v ′ CS x ∼ y x, x ∼ y, y Dup x1, . . . , xn ∼ y1, . . . , yn f (x1, . . . , xn) ∼ f (y1, . . . , yn) FA

  • u , {s}pk(n) ∼

u , {t}pk(n) CCA1 when . . .

35

slide-95
SLIDE 95

Strategy

Deconstructing Rules Rules CCA1, CS, FA and Dup are decreasing transformations.

u ∼ t u ∼ s R when s =R t b, u ∼ b′, u′ b, v ∼ b′, v ′ if b then u else v ∼ if b′ then u′ else v ′ CS x ∼ y x, x ∼ y, y Dup x1, . . . , xn ∼ y1, . . . , yn f (x1, . . . , xn) ∼ f (y1, . . . , yn) FA

  • u , {s}pk(n) ∼

u , {t}pk(n) CCA1 when . . .

35

slide-96
SLIDE 96

Strategy

Deconstructing Rules Rules CCA1, CS, FA and Dup are decreasing transformations.

u ∼ t u ∼ s R when s =R t b, u ∼ b′, u′ b, v ∼ b′, v ′ if b then u else v ∼ if b′ then u′ else v ′ CS x ∼ y x, x ∼ y, y Dup x1, . . . , xn ∼ y1, . . . , yn f (x1, . . . , xn) ∼ f (y1, . . . , yn) FA

  • u , {s}pk(n) ∼

u , {t}pk(n) CCA1 when . . .

Problem The rule R is not decreasing!

35

slide-97
SLIDE 97

Difficulties

If Introduction: x → if b then x else x g(), n ∼ g(), n Refl g(), n ∼ g(), n′ Refl if g() then n else n ∼ if g() then n else n′ CS n ∼ if g() then n else n′ R

36

slide-98
SLIDE 98

Difficulties

If Introduction: x → if b then x else x g(), n ∼ g(), n Refl g(), n ∼ g(), n′ Refl if g() then n else n ∼ if g() then n else n′ CS n ∼ if g() then n else n′ R Bounded Introduction The introduced conditional g() is bounded by the other side.

36

slide-99
SLIDE 99

Decision Procedure

Proof Cut: Introduction of a Conditional on Both Sides a, s ∼ b, t a, s ∼ b, t if a then s else s ∼ if b then t else t CS s ∼ t R

37

slide-100
SLIDE 100

Decision Procedure

Proof Cut: Introduction of a Conditional on Both Sides a, s ∼ b, t a, s ∼ b, t if a then s else s ∼ if b then t else t CS s ∼ t R Lemma We can extract from a, s ∼ b, t a (smaller) proof of s ∼ t.

37

slide-101
SLIDE 101

Decision Procedure

Proof Cut: Introduction of a Conditional on Both Sides a, s ∼ b, t a, s ∼ b, t if a then s else s ∼ if b then t else t CS s ∼ t R Lemma We can extract from a, s ∼ b, t a (smaller) proof of s ∼ t. ⇒ Proof Cut Elimination

37

slide-102
SLIDE 102

Decision Procedure

Proof Cut if a then u else v ∼ if c then s else t

38

slide-103
SLIDE 103

Decision Procedure

Proof Cut a b u b w u v ∼ d c s d t r p if a then u else v ∼ if c then s else t R where p ≡ if c then s else t

38

slide-104
SLIDE 104

Decision Procedure

Proof Cut a, b, b, u, w, u, v ∼ d, c, d, s, t, r, p a b u b w u v ∼ d c s d t r p FA(3) if a then u else v ∼ if c then s else t R where p ≡ if c then s else t

38

slide-105
SLIDE 105

Decision Procedure

Proof Cut a, b, b, u, w, u, v ∼ d, c, d, s, t, r, p a b u b w u v ∼ d c s d t r p FA(3) if a then u else v ∼ if c then s else t R where p ≡ if c then s else t Key Lemma If b, b ∼ c, d can be shown using only FA, Dup and CCA1 then: c ≡ d

38

slide-106
SLIDE 106

Decision Procedure

Proof Cut a, b, b, u, w, u, v ∼ d, c, d, s, t, r, p a b u b w u v ∼ d c s d t r p FA(3) if a then u else v ∼ if c then s else t R where p ≡ if c then s else t Proof Cut Elimination

  • b, b ∼ c, d

= ⇒ c ≡ d.

39

slide-107
SLIDE 107

Decision Procedure

Proof Cut a, b, b, u, w, u, v ∼ d, c, d, s, t, r, p a b u b w u v ∼ d c s d t r p FA(3) if a then u else v ∼ if c then s else t R where p ≡ if c then s else t Proof Cut Elimination

  • b, b ∼ c, d

= ⇒ c ≡ d.

  • a, b ∼ d, c

= ⇒ a ≡ b.

39

slide-108
SLIDE 108

Strategy: Theorem

Theorem The following problem is decidable: Input: A ground formula u ∼ v. Question: Is there a derivation of u ∼ v using Ax?

40

slide-109
SLIDE 109

Strategy: Theorem

Theorem The following problem is decidable: Input: A ground formula u ∼ v. Question: Is there a derivation of u ∼ v using Ax? Remark: Unitary Inference Rules This holds when using CCA2 as unitary inference rules.

40

slide-110
SLIDE 110

Strategy: Theorem

Theorem The following problem is decidable: Input: A ground formula u ∼ v. Question: Is there a derivation of u ∼ v using Ax? Remark: Unitary Inference Rules This holds when using CCA2 as unitary inference rules. Sketch

  • Commute rule applications to order them as follows:

(2Box + R) · CS · FAif · FAf · Dup · CCA2

  • We do proof cut eliminations to get a small proof.

40

slide-111
SLIDE 111

Conclusion

slide-112
SLIDE 112

Conclusion: Contributions

RFID Protocols Studied the privacy of two RFID protocols, KCL and LAK. The 5G-AKA Protocol

  • Showed that some attacks against 4G-AKA apply to 5G-AKA.
  • Proposed a fixed version, and proved it secure in the

computational model.

  • Found a new privacy attack on another protocol, priv-aka.

41

slide-113
SLIDE 113

Conclusion: Contributions

Decidability Result

  • Decidability of a set of inference rules for computational

indistinguishability.

  • First decidability result for a non-trivial set of cryptographic

game transformations.

42

slide-114
SLIDE 114

Perspectives

Study the Scope of the Decidability Result

  • Support for a larger class of primitives and associated

assumptions.

  • Undecidability results for extensions of the set of axioms.

43

slide-115
SLIDE 115

Perspectives

Study the Scope of the Decidability Result

  • Support for a larger class of primitives and associated

assumptions.

  • Undecidability results for extensions of the set of axioms.

Proof Automation for the AKA+ Case Study

  • AKA+ security proof is very lengthy (around 80 pages).
  • The proofs are out-of-scope of the decidability result:
  • Arbitrary number of sessions (induction).
  • Reasoning on sequence numbers.

⇒ We need some proof automation/mechanization.

43

slide-116
SLIDE 116

References i

[Arapinis et al., 2012] Arapinis, M., Mancini, L. I., Ritter, E., Ryan, M., Golde, N., Redon, K., and Borgaonkar, R. (2012). New privacy issues in mobile telephony: fix and verification. In the ACM Conference on Computer and Communications Security, CCS’12, pages 205–216. ACM. [Fouque et al., 2016] Fouque, P., Onete, C., and Richard, B. (2016). Achieving better privacy for the 3GPP AKA protocol. PoPETs, 2016(4):255–275.

slide-117
SLIDE 117

References ii

[Strobel, 2007] Strobel, D. (2007). IMSI catcher. Ruhr-Universität Bochum, Seminar Work.

slide-118
SLIDE 118

The Encrypted id Replay Attack

UE(idA) HN {idA}pkn UE(idB) HN {idB}pkn

/

{idA}pkn tauth ≡

  • n , sqnn ⊕ H5

k(n) , H1 k(sqnn , n)

  • Failure Message

If idB = idA taccept ≡ H2

k(n)

If idB = idA

slide-119
SLIDE 119

The Encrypted id Replay Attack

UE(idA) HN {idA}pkn UE(idB) HN {idB}pkn

/

{idA}pkn tauth ≡

  • n , sqnn ⊕ H5

k(n) , H1 k(sqnn , n)

  • Failure Message

If idB = idA taccept ≡ H2

k(n)

If idB = idA

slide-120
SLIDE 120

The Encrypted id Replay Attack

UE(idA) HN {idA}pkn UE(idB) HN {idB}pkn

/

{idA}pkn tauth ≡

  • n , sqnn ⊕ H5

k(n) , H1 k(sqnn , n)

  • Failure Message

If idB = idA taccept ≡ H2

k(n)

If idB = idA

slide-121
SLIDE 121

The Encrypted id Replay Attack

UE(idA) HN {idA}pkn UE(idB) HN {idB}pkn

/

{idA}pkn tauth ≡

  • n , sqnn ⊕ H5

k(n) , H1 k(sqnn , n)

  • Failure Message

If idB = idA taccept ≡ H2

k(n)

If idB = idA

Unlinkability Attack The adversary knows if it interacted with idA or idB.

slide-122
SLIDE 122

Key Ideas

Key Ideas Behind AKA+

UE(idA) HN tauth ≡

  • n , sqnn ⊕ H5

k(n) , H1 k(sqnn , n)

  • H2

k(n)

UE(idB) Attacker tauth “Auth-Failure” If idB = idA tre-sync ≡

  • sqnu ⊕ H5,∗

k (n) , H1,∗ k (sqnu , n)

  • If idB = idA

The Failure Message Attack UE(idA) HN {idA}pkn UE(idB) HN {idB}pkn

/

{idA}pkn tauth ≡

  • n , sqnn ⊕ H5

k(n) , H1 k(sqnn , n)

  • Failure Message

If idB = idA taccept ≡ H2

k(n)

If idB = idA The Encrypted id Replay Attack

slide-123
SLIDE 123

Key Ideas

Key Ideas Behind AKA+

UE(idA) HN tauth ≡

  • n , sqnn ⊕ H5

k(n) , H1 k(sqnn , n)

  • H2

k(n)

UE(idB) Attacker tauth “Auth-Failure” If idB = idA tre-sync ≡

  • sqnu ⊕ H5,∗

k (n) , H1,∗ k (sqnu , n)

  • If idB = idA

The Failure Message Attack UE(idA) HN {idA}pkn UE(idB) HN {idB}pkn

/

{idA}pkn tauth ≡

  • n , sqnn ⊕ H5

k(n) , H1 k(sqnn , n)

  • Failure Message

If idB = idA taccept ≡ H2

k(n)

If idB = idA The Encrypted id Replay Attack

slide-124
SLIDE 124

Key Ideas

Key Ideas Behind AKA+

  • Postpone re-synchronization to the next session:

{id , sqnu}pkn

  • No re-synchronization message =

⇒ no failure message attack.

  • No extra randomness for the user.

UE(idA) HN tauth ≡

  • n , sqnn ⊕ H5

k(n) , H1 k(sqnn , n)

  • H2

k(n)

UE(idB) Attacker tauth “Auth-Failure” If idB = idA tre-sync ≡

  • sqnu ⊕ H5,∗

k (n) , H1,∗ k (sqnu , n)

  • If idB = idA

The Failure Message Attack UE(idA) HN {idA}pkn UE(idB) HN {idB}pkn

/

{idA}pkn tauth ≡

  • n , sqnn ⊕ H5

k(n) , H1 k(sqnn , n)

  • Failure Message

If idB = idA taccept ≡ H2

k(n)

If idB = idA The Encrypted id Replay Attack

slide-125
SLIDE 125

Key Ideas

Key Ideas Behind AKA+

  • Postpone re-synchronization to the next session:

{id , sqnu}pkn

  • No re-synchronization message =

⇒ no failure message attack.

  • No extra randomness for the user.

UE(idA) HN tauth ≡

  • n , sqnn ⊕ H5

k(n) , H1 k(sqnn , n)

  • H2

k(n)

UE(idB) Attacker tauth “Auth-Failure” If idB = idA tre-sync ≡

  • sqnu ⊕ H5,∗

k (n) , H1,∗ k (sqnu , n)

  • If idB = idA

The Failure Message Attack UE(idA) HN {idA}pkn UE(idB) HN {idB}pkn

/

{idA}pkn tauth ≡

  • n , sqnn ⊕ H5

k(n) , H1 k(sqnn , n)

  • Failure Message

If idB = idA taccept ≡ H2

k(n)

If idB = idA The Encrypted id Replay Attack

slide-126
SLIDE 126

Key Ideas

Key Ideas Behind AKA+

  • Postpone re-synchronization to the next session:

{id , sqnu}pkn

  • No re-synchronization message =

⇒ no failure message attack.

  • No extra randomness for the user.
  • Add a challenge n from the HN when using the permanent

identity.

UE HN n

  • {id , sqnu}pkn , Mac1

km({id , sqnu}pkn , n)

  • UE(idA)

HN tauth ≡

  • n , sqnn ⊕ H5

k(n) , H1 k(sqnn , n)

  • H2

k(n)

UE(idB) Attacker tauth “Auth-Failure” If idB = idA tre-sync ≡

  • sqnu ⊕ H5,∗

k (n) , H1,∗ k (sqnu , n)

  • If idB = idA

The Failure Message Attack UE(idA) HN {idA}pkn UE(idB) HN {idB}pkn

/

{idA}pkn tauth ≡

  • n , sqnn ⊕ H5

k(n) , H1 k(sqnn , n)

  • Failure Message

If idB = idA taccept ≡ H2

k(n)

If idB = idA The Encrypted id Replay Attack

slide-127
SLIDE 127

UE id, tmp-id, k, sqnu HN id, tmp-id, k, sqnn tmp-id or id if tmp-id was used: tmp-id ← UnSet

  • n , sqnn ⊕ H5

k(n) , H1 k(sqnn , n)

  • Input x:

nR, sqnR ← π1(x), π2(x) ⊕ H5

k(nR)

bmac ← H1

k(sqnR , nR) = π3(x)

bsqn ← range(sqnu, sqnR) sqnn ← sqnn + 1 sqnu ← sqnR H2

k(nR)

bmac ∧ bsqn “Auth-Failure” ¬bmac

  • sqnu ⊕ H5,∗

k (nR) , H1,∗ k (sqnu , nR)

  • Input y:

sqn∗

R ← π1(y) ⊕ H5,∗ k (n)

if H1,∗

k (sqn∗ R , n) = π2(y) then sqnn ← sqn∗ R + 1

bmac ∧ ¬bsqn

4G-AKA

slide-128
SLIDE 128

UE id, tmp-id, k, pkn, sqnu HN id, tmp-id, k, skn, sqnn tmp-id or {id}pkn if tmp-id was used: tmp-id ← UnSet

  • n , sqnn ⊕ H5

k(n) , H1 k(sqnn , n)

  • Input x:

nR, sqnR ← π1(x), π2(x) ⊕ H5

k(nR)

bmac ← H1

k(sqnR , nR) = π3(x)

bsqn ← range(sqnu, sqnR) sqnn ← sqnn + 1 sqnu ← sqnR H2

k(nR)

bmac ∧ bsqn “Auth-Failure” ¬bmac

  • sqnu ⊕ H5,∗

k (nR) , H1,∗ k (sqnu , nR)

  • Input y:

sqn∗

R ← π1(y) ⊕ H5,∗ k (n)

if H1,∗

k (sqn∗ R , n) = π2(y) then sqnn ← sqn∗ R + 1

bmac ∧ ¬bsqn

5G-AKA

slide-129
SLIDE 129

UEid stateid

u

HN staten n

  • {id , sqnu}pkn , Mac1

kid

m({id , sqnu}pkn , n)

  • sqnu ← sqnu + 1

bMac ← check-mac if bMac then authenticated id bInc ← bMac ∧ sqnu ≥ sqnid

n

if bInc then sqnid

n

← sqnu + 1 sessionid

n

← n tmp-idid

n ← tmp-id

Mac2

kid

m(n , sqnu + 1)

bMac if check-mac then authenticated HN

id Sub-Protocol (Simplified)

slide-130
SLIDE 130

UEid stateid

u

HN staten tmp-idu valid-tmpu valid-tmpu ← false bid ← tmp-idid

n = tmp-idu = UnSet

if bid then tmp-idid

n ← UnSet

sessionid

n

← n

  • n , sqnid

n ⊕ Hkid(n) , Mac3 kid

m(n , sqnid

n , tmp-idu)

  • bid

bacc ← check-mac ∧ range(sqnu, sqnid

n )

if bacc then sqnu ← sqnu + 1 Mac4

kid

m(n)

bacc bMac ← check-mac if bMac then authenticated id bInc ← bMac ∧ sessionid

n = n

if bInc then sqnid

n

← sqnid

n + 1

tmp-idid

n ← tmp-id

tmp-id Sub-Protocol (Simplified)

slide-131
SLIDE 131

The assign-tmp-id Sub-Protocol (Simplified)

UEid stateid

u

HN staten tmp-id ⊕ Hr

kid(n) , Mac5 kid

m(tmp-id , n)

bacc ← check-mac tmp-idu ← if bacc then tmp-id else UnSet valid-tmpu ← bacc

slide-132
SLIDE 132

UE stateid

u

HN(j) staten nj Input nR: b-authu ← nR

  • {id , sqnu}pkn , Mac1

kid

m({id , sqnu}pkn , nR)

  • sqnu ← sqnu + 1

Input y: idR , sqnR ← dec(π1(y), skn) bid

Mac ← π2(y) = Mac1 kid

m(π1(y) , nj)

∧ idR = id bid

Inc ← bid Mac ∧ sqnR ≥ sqnid n

if bid

Mac then b-authj n, e-authj n ← id

if bid

Inc then sqnid n

← sqnR + 1 sessionid

n

← nj tmp-idid

n ← tmp-idj

Mac2

kid

m(nj , sqnR + 1)

bMac Input z: bok ← z = Mac2

kid

m(b-authu , sqnu)

e-authu ← if bok then b-authu else fail

id Sub-Protocol

slide-133
SLIDE 133

UE(id) stateid

u

HN(j) staten tmp-idu valid-tmpu valid-tmpu ← false Input x: bid ← tmp-idid

n = x ∧ tmp-idid n = UnSet

if bid then tmp-idid

n ← UnSet

b-authj

n

← id sessionid

n

← nj

  • nj , sqnid

n ⊕ Hkid(nj) , Mac3 kid

m(nj , sqnid

n , tmp-idid n )

  • bid

Input y: nR, sqnR ← π1(y), π2(y) ⊕ Hkid(nR) bacc ← π3(y) = Mac3

kid

m(nR , sqnR , tmp-idu))

∧ range(sqnu, sqnR) if bacc then b-authu, e-authu ← nR sqnu ← sqnu + 1 if ¬bacc then b-authu, e-authu ← fail Mac4

kid

m(nR)

bacc Input z: bid

Mac ← (b-authj n = id) ∧ (z = Mac4 kid

m(nj))

bid

Inc ← bid Mac ∧ sessionid n = nj

if bid

Mac then e-authj n

← id if bid

Inc

then sqnid

n

← sqnid

n + 1

tmp-idid

n ← tmp-idj

tmp-id Sub-Protocol

slide-134
SLIDE 134

The assign-tmp-id Sub-Protocol

UE stateid

u

HN(j) staten tmp-idj ⊕ Hr

kid(nj) , Mac5 kid

m(

  • tmp-idj , nj

) e-authid

n = id

Input x: tmp-idR ← π1(x) ⊕ Hr

kid

m(e-authu)

bacc ←

  • π2(x) = Mac5

kid

m(tmp-idR , e-authu)

  • ∧ (e-authu = fail)

tmp-idu ← if bacc then tmp-idR else UnSet valid-tmpu ← bacc

slide-135
SLIDE 135

New Attack on the priv-aka Protocol

The priv-aka Protocol The authors of [Fouque et al., 2016] propose a new protocol, priv-aka (claimed unlinkable).

slide-136
SLIDE 136

New Attack on the priv-aka Protocol

The priv-aka Protocol The authors of [Fouque et al., 2016] propose a new protocol, priv-aka (claimed unlinkable).

slide-137
SLIDE 137

New Attack on the priv-aka Protocol

The priv-aka Protocol The authors of [Fouque et al., 2016] propose a new protocol, priv-aka (claimed unlinkable). Unlinkability Attack (four sessions) We found an attack to permanently de-synchronize the user:

  • Run a session but keep the last message t1.
  • Re-synchronize the user and the network.
  • Re-iterate the last two steps to get a second message t2.
  • Re-synchronize the user and the network.
  • Send both t1 and t2, which increments sqnn by two.
  • The user is permanently de-synchronized

= ⇒ unlinkability attack.

slide-138
SLIDE 138

priv-aka [Fouque et al., 2016]

slide-139
SLIDE 139

priv-aka [Fouque et al., 2016]

slide-140
SLIDE 140

Counter-Examples

Remark: ∼ is not a congruence Counter-Example: n ∼ n and n ∼ n′, but n, n ∼ n, n′.

slide-141
SLIDE 141

Counter-Examples

Remark: ∼ is not a congruence Counter-Example: n ∼ n and n ∼ n′, but n, n ∼ n, n′. Congruence If eq(u, v) ∼ true then u and v are (almost always) equal ⇒ we have a congruence.

slide-142
SLIDE 142

Counter-Examples

Remark: b is necessary in CS b, u ∼ b′, u′ b, v ∼ b′, v′ if b then u else v ∼ if b′ then u′ else v′ CS We have: zero ∼ zero

  • ne ∼ one

But: if true then zero else one ∼ if false then zero else one