Exploiting symmetries when proving equivalence properties for - - PowerPoint PPT Presentation

exploiting symmetries when proving equivalence properties
SMART_READER_LITE
LIVE PREVIEW

Exploiting symmetries when proving equivalence properties for - - PowerPoint PPT Presentation

Exploiting symmetries when proving equivalence properties for security protocols Vincent Cheval, Steve Kremer, Itsaka Rakotonirina Inria Nancy Grand-Est Security protocols TLS Wifi @ PASS E-voting E-passport 2 24 Security protocols


slide-1
SLIDE 1

Exploiting symmetries when proving equivalence properties for security protocols

Vincent Cheval, Steve Kremer, Itsaka Rakotonirina

Inria Nancy Grand-Est

slide-2
SLIDE 2

2

Security protocols

24

@ Wifi TLS

PASS

E-passport E-voting

slide-3
SLIDE 3

2

Security protocols

24

@ Wifi TLS 2016 (early ver. 1.3) 2017 (WPA2)

PASS

E-passport E-voting 2010 (Helios) 2013 (BAC)

slide-4
SLIDE 4

3

Symbolic attacker model

24

= protocol’s logic in an adversarial environment, with perfect cryptography

slide-5
SLIDE 5

3

Symbolic attacker model

24

= protocol’s logic in an adversarial environment, with perfect cryptography Dishonest parties can: Crypto = equations: no other behaviours dec(enc(m, k), k) = m

(symmetric encryption)

e.g. DoS read / overwrite messages

slide-6
SLIDE 6

4

Privacy as indistinguishability

24

Anonymity

Alice Bob

slide-7
SLIDE 7

4

Privacy as indistinguishability

24

Anonymity

Alice Bob yes no no yes

Vote privacy …

slide-8
SLIDE 8

4

Privacy as indistinguishability

24

Anonymity

Alice Bob yes no no yes Behavioural indistinguishability for all potential attackers

Vote privacy …

slide-9
SLIDE 9

5

Privacy as indistinguishability

24

yes no no yes

slide-10
SLIDE 10

5

Privacy as indistinguishability

24

yes no no yes

Equivalence coNEXP-complete

for a fixed number of participants

[S&P18] S. Kremer, V. Cheval, I. Rakotonirina. DEEPSEC: Deciding equivalence properties in security protocols — theory and practice

slide-11
SLIDE 11

5

Privacy as indistinguishability

24

Each time, the two processes share a common structure Observation !

yes no no yes

Equivalence coNEXP-complete

for a fixed number of participants

[S&P18] S. Kremer, V. Cheval, I. Rakotonirina. DEEPSEC: Deciding equivalence properties in security protocols — theory and practice

slide-12
SLIDE 12

6

Contributions

24

A refinement of trace equivalence

for processes with structural similarities

Partial-order reductions

for any process for this new equivalence

Integration into the DeepSec prover

slide-13
SLIDE 13

Trace equivalence

slide-14
SLIDE 14

8 24

Modelling indistinguishability

A simple example

slide-15
SLIDE 15

8 24

enc(0,k) enc(1,k)

t

Modelling indistinguishability

A simple example

slide-16
SLIDE 16

8 24

enc(0,k) enc(1,k)

  • ut(c, enc(0,k))
  • ut(c, enc(1,k))

t

Modelling indistinguishability

A simple example

slide-17
SLIDE 17

8 24

k k enc(0,k) enc(1,k)

  • ut(c, enc(0,k))
  • ut(c, enc(1,k))
  • ut(d, k) |

| out(d, k)

t

Modelling indistinguishability

A simple example

slide-18
SLIDE 18

8 24

k k enc(0,k) enc(1,k)

  • ut(c, enc(0,k))
  • ut(c, enc(1,k))
  • ut(d, k) |

| out(d, k)

t

Modelling indistinguishability

A simple example Distinguishing execution:

m1 m2

slide-19
SLIDE 19

8 24

k k enc(0,k) enc(1,k)

  • ut(c, enc(0,k))
  • ut(c, enc(1,k))
  • ut(d, k) |

| out(d, k)

t

Modelling indistinguishability

A simple example Distinguishing execution:

m1 m2

+ test dec(m1,m2) = 0 ?

slide-20
SLIDE 20

9 24

∀ t ∈ Traces(Pi), ∃ t’ ∈ Traces(P1-i), t ~ t’ P0 P1

t

iff

Modelling indistinguishability

Formalism

slide-21
SLIDE 21

9 24

∀ t ∈ Traces(Pi), ∃ t’ ∈ Traces(P1-i), t ~ t’ P0 P1

t

iff

algebra of finite concurrent processes

Modelling indistinguishability

Formalism

slide-22
SLIDE 22

9 24

∀ t ∈ Traces(Pi), ∃ t’ ∈ Traces(P1-i), t ~ t’ P0 P1

t

iff

algebra of finite concurrent processes in(c,x). P P | Q

  • ut(c,u). P

if u = v then P else Q

Modelling indistinguishability

Formalism

slide-23
SLIDE 23

9 24

∀ t ∈ Traces(Pi), ∃ t’ ∈ Traces(P1-i), t ~ t’ P0 P1

t

iff

sequences of inputs/outputs in an active adversarial environment algebra of finite concurrent processes in(c,x). P P | Q

  • ut(c,u). P

if u = v then P else Q

Modelling indistinguishability

Formalism

slide-24
SLIDE 24

9 24

∀ t ∈ Traces(Pi), ∃ t’ ∈ Traces(P1-i), t ~ t’ P0 P1

t

iff

sequences of inputs/outputs in an active adversarial environment algebra of finite concurrent processes in(c,x). P P | Q

  • ut(c,u). P

if u = v then P else Q in(c,x)

  • ut(c,u) ⇒ adds u to the attacker’s knowledge

⇒ receives a term from the attacker

Modelling indistinguishability

Formalism

slide-25
SLIDE 25

9 24

∀ t ∈ Traces(Pi), ∃ t’ ∈ Traces(P1-i), t ~ t’ P0 P1

t

iff

sequences of inputs/outputs in an active adversarial environment static indistinguishability of sequences of inputs/outputs algebra of finite concurrent processes in(c,x). P P | Q

  • ut(c,u). P

if u = v then P else Q in(c,x)

  • ut(c,u) ⇒ adds u to the attacker’s knowledge

⇒ receives a term from the attacker

Modelling indistinguishability

Formalism

slide-26
SLIDE 26

Trace equivalence… in practice

slide-27
SLIDE 27

11

A combinatorial fact

24

actionn,p action1,1 action1,p … …

… actionn,1 … action’n,p action’1,1 action’1,p … …

… action’n,1 …

slide-28
SLIDE 28

11

A combinatorial fact

24

actionn,p action1,1 action1,p … …

… actionn,1 … action’n,p action’1,1 action’1,p … …

… action’n,1 … n sessions p actions per session

slide-29
SLIDE 29

11

A combinatorial fact

24

actionn,p action1,1 action1,p … …

… actionn,1 … action’n,p action’1,1 action’1,p … …

… action’n,1 … n sessions p actions per session

∀ seq. of actions a1 a2 … anp , ∃ equivalent seq. of actions a’1 a’2 … a’np Goal

slide-30
SLIDE 30

11

A combinatorial fact

24

actionn,p action1,1 action1,p … …

… actionn,1 … action’n,p action’1,1 action’1,p … …

… action’n,1 … n sessions p actions per session

~(np)! matchings Actions ∀ seq. of actions a1 a2 … anp , ∃ equivalent seq. of actions a’1 a’2 … a’np Goal

slide-31
SLIDE 31

11

A combinatorial fact

24

actionn,p action1,1 action1,p … …

… actionn,1 … action’n,p action’1,1 action’1,p … …

… action’n,1 … n sessions p actions per session

~(np)! matchings Actions ~n! matchings Sessions ∀ seq. of actions a1 a2 … anp , ∃ equivalent seq. of actions a’1 a’2 … a’np Goal

slide-32
SLIDE 32

12

Why matching sessions?

24

instead of individual actions

actionn,p action1,1 action1,p … …

… actionn,1 … action’n,p action’1,1 action’1,p … …

… action’n,1 …

slide-33
SLIDE 33

12

Why matching sessions?

24

instead of individual actions Reduces combinatorial explosion Sound, and often sufficient to prove trace equivalence

actionn,p action1,1 action1,p … …

… actionn,1 … action’n,p action’1,1 action’1,p … …

… action’n,1 …

slide-34
SLIDE 34

12

Why matching sessions?

24

instead of individual actions Reduces combinatorial explosion Sound, and often sufficient to prove trace equivalence Actually a realistic attacker model

e.g. for an adversary observing ports dynamically allocated to each session actionn,p action1,1 action1,p … …

… actionn,1 … action’n,p action’1,1 action’1,p … …

… action’n,1 …

slide-35
SLIDE 35

13

Formally: process pairing

24

slide-36
SLIDE 36

13

Formally: process pairing

24

(MATCH) (P1 | … | Pn, Q1 | … | Qn) (P1,Qσ(1)), …, (P1, Qσ(n))

σ permutation of {1,…,n}

slide-37
SLIDE 37

13

Formally: process pairing

24

(MATCH) (P1 | … | Pn, Q1 | … | Qn) (P1,Qσ(1)), …, (P1, Qσ(n))

σ permutation of {1,…,n}

(EXEC) (P,Q) (P’,Q’) 훼

if P→P’ and Q→Q’ (in the single-process semantics) 훼 훼

slide-38
SLIDE 38

13

Formally: process pairing

24

(MATCH) (P1 | … | Pn, Q1 | … | Qn) (P1,Qσ(1)), …, (P1, Qσ(n))

σ permutation of {1,…,n}

(EXEC) (P,Q) (P’,Q’) 훼

if P→P’ and Q→Q’ (in the single-process semantics) 훼 훼

∃ t’ ∈ Traces(Q), t ~ t’ ∀ t ∈ Traces(P), Trace Equiv.

slide-39
SLIDE 39

13

Formally: process pairing

24

(MATCH) (P1 | … | Pn, Q1 | … | Qn) (P1,Qσ(1)), …, (P1, Qσ(n))

σ permutation of {1,…,n}

(EXEC) (P,Q) (P’,Q’) 훼

if P→P’ and Q→Q’ (in the single-process semantics) 훼 훼

∃ t2 ∈ Traces(P,Q), snd(t2) = t’ ∃ t’ ∈ Traces(Q), t ~ t’ ∀ t ∈ Traces(P), Trace Equiv.

  • Equiv. by session
slide-40
SLIDE 40

Optimisations

slide-41
SLIDE 41

15

For trace equivalence

24

[CONCUR15] D. Baelde, S. Delaune, L. Hirschi. Partial-order reductions for security protocols

slide-42
SLIDE 42

15

For trace equivalence

24

[CONCUR15] D. Baelde, S. Delaune, L. Hirschi. Partial-order reductions for security protocols

∃ t’ ∈ Traces(Q), t ~ t’ ∀ t ∈ Traces(P),

slide-43
SLIDE 43

15

For trace equivalence

24

[CONCUR15] D. Baelde, S. Delaune, L. Hirschi. Partial-order reductions for security protocols

∃ t’ ∈ Traces(Q), t ~ t’ ∀ t ∈ Traces(P),

reduce the number

  • f traces to check?
slide-44
SLIDE 44

15

For trace equivalence

24

[CONCUR15] D. Baelde, S. Delaune, L. Hirschi. Partial-order reductions for security protocols

∃ t’ ∈ Traces(Q), t ~ t’ ∀ t ∈ Traces(P),

reduce the number

  • f traces to check?

Main theorem If P,Q are determinate, it is sufficient to adjacent independent actions. consider traces up to permutation of

slide-45
SLIDE 45

15

For trace equivalence

24

[CONCUR15] D. Baelde, S. Delaune, L. Hirschi. Partial-order reductions for security protocols

∃ t’ ∈ Traces(Q), t ~ t’ ∀ t ∈ Traces(P),

reduce the number

  • f traces to check?

Main theorem

Concurrent actions with no data flow

If P,Q are determinate, it is sufficient to adjacent independent actions. consider traces up to permutation of independent

slide-46
SLIDE 46

Concurrent actions with no data flow

If P,Q are determinate, it is sufficient to adjacent independent actions. consider traces up to permutation of independent

16

For equivalence by session

24

∃ t’ ∈ Traces(Q), t ~ t’ ∀ t ∈ Traces(P), Main theorem ∃ t2 ∈ Traces(P,Q), snd(t2) = t’

reduce the number

  • f traces to check?
slide-47
SLIDE 47

Concurrent actions with no data flow

If P,Q are determinate, it is sufficient to adjacent independent actions. consider traces up to permutation of independent

16

For equivalence by session

24

∃ t’ ∈ Traces(Q), t ~ t’ ∀ t ∈ Traces(P), Main theorem ∃ t2 ∈ Traces(P,Q), snd(t2) = t’

reduce the number

  • f traces to check?
slide-48
SLIDE 48

17

In practice

24

Main theorem it is sufficient to consider traces independent actions. up to permutation of adjacent independent

Concurrent actions with no explicit data flow

slide-49
SLIDE 49

17

In practice

24

Only consider traces that: Main theorem it is sufficient to consider traces independent actions. up to permutation of adjacent independent

Concurrent actions with no explicit data flow

slide-50
SLIDE 50

17

In practice

24

Only consider traces that: Execute outputs in priority

(because an input followed by a concurrent output are independent)

Main theorem it is sufficient to consider traces independent actions. up to permutation of adjacent independent

Concurrent actions with no explicit data flow

slide-51
SLIDE 51

17

In practice

24

Only consider traces that: Execute outputs in priority

(because an input followed by a concurrent output are independent)

Execute outputs in a deterministic order

(because two concurrent outputs are always independent)

Main theorem it is sufficient to consider traces independent actions. up to permutation of adjacent independent

Concurrent actions with no explicit data flow

slide-52
SLIDE 52

17

In practice

24

Only consider traces that: Execute outputs in priority

(because an input followed by a concurrent output are independent)

Execute outputs in a deterministic order

(because two concurrent outputs are always independent)

Main theorem it is sufficient to consider traces independent actions. up to permutation of adjacent independent

Concurrent actions with no explicit data flow

slide-53
SLIDE 53

Implementation

slide-54
SLIDE 54

DeepSec prover

A tool proving trace equivalence of finite processes

24 19

[CAV18] S. Kremer, V. Cheval, I. Rakotonirina. The DeepSec prover

slide-55
SLIDE 55

DeepSec prover

A tool proving trace equivalence of finite processes

P Q P1, P2, Q1 P3, P4 Q2 P5, P6 P7 Q3, Q4 P8, P9 Q5, Q6

24 19

[CAV18] S. Kremer, V. Cheval, I. Rakotonirina. The DeepSec prover

slide-56
SLIDE 56

DeepSec prover

A tool proving trace equivalence of finite processes

P Q P1, P2, Q1 P3, P4 Q2 P5, P6 P7 Q3, Q4 P8, P9 Q5, Q6

Branch ≈ set of equivalent traces

24 19

[CAV18] S. Kremer, V. Cheval, I. Rakotonirina. The DeepSec prover

slide-57
SLIDE 57

DeepSec prover

A tool proving trace equivalence of finite processes

P Q P1, P2, Q1 P3, P4 Q2 P5, P6 P7 Q3, Q4 P8, P9 Q5, Q6

Branch ≈ set of equivalent traces Attack ≈ node not containing any process

  • riginated from P, or any from Q

24 19

[CAV18] S. Kremer, V. Cheval, I. Rakotonirina. The DeepSec prover

slide-58
SLIDE 58

DeepSec prover

A tool proving trace equivalence of finite processes

P Q P1, P2, Q1 P3, P4 Q2 P5, P6 P7 Q3, Q4 P8, P9 Q5, Q6

Branch ≈ set of equivalent traces Attack ≈ node not containing any process

  • riginated from P, or any from Q

Partial-order reductions ≈ not generating some branches

24 19

[CAV18] S. Kremer, V. Cheval, I. Rakotonirina. The DeepSec prover

slide-59
SLIDE 59

20

Approaches to prove trace equivalence

24

Baseline Structure-guided

P and Q trace equivalent? P and Q equivalent by session?

slide-60
SLIDE 60

20

Approaches to prove trace equivalence

24

Baseline Structure-guided

P and Q trace equivalent? yes no >12h P ≈ Q P ≈ Q

?

P and Q equivalent by session?

slide-61
SLIDE 61

20

Approaches to prove trace equivalence

24

Baseline Structure-guided

P and Q trace equivalent? yes no >12h P ≈ Q P ≈ Q

?

P and Q equivalent by session? yes P ≈ Q no

?

>12h

?

slide-62
SLIDE 62

20

Approaches to prove trace equivalence

24

Baseline Structure-guided

P and Q trace equivalent? yes no >12h P ≈ Q P ≈ Q

?

P and Q equivalent by session? yes P ≈ Q Does the attack trace violate trace equivalence? yes P ≈ Q no

?

no >12h

?

slide-63
SLIDE 63

20

Approaches to prove trace equivalence

24

Baseline Structure-guided

P and Q trace equivalent? yes no >12h P ≈ Q P ≈ Q

?

P and Q equivalent by session? yes P ≈ Q Does the attack trace violate trace equivalence? yes P ≈ Q no

?

no >12h

? Future work:

conclude in this case (currently: heuristic)

slide-64
SLIDE 64

21

Experimental results (1)

24

Unlinkability in the Electronic passport

slide-65
SLIDE 65

21

Experimental results (1)

24

Unlinkability in the Electronic passport

PASS PASS PASS PASS

2 identical passports readers 2 different passports readers

slide-66
SLIDE 66

21

Experimental results (1)

24

Unlinkability in the Electronic passport

PASS PASS PASS PASS

2 identical passports readers 2 different passports readers Scenario baseline structure-guided 2 identical <1s <1s 2 identical + 1 fresh >12h 2s 3 identical + 1 fresh >12h 3s 2 identical + 2 fresh >12h 1min20 2 identical + 3 fresh >12h 11h06 property disproved property proved

slide-67
SLIDE 67

22

Experimental results (2)

24

Vote privacy in Helios (vote swap)

Scenario baseline structure-guided no revote <1s <1s A x 2 + B x 1 2h41 1min2 A x 3 + B x 2 >12h 7min40 A x 4 + B x 2 >12h 16min36 A x 7 + B x 3 >12h 3h53 yes no ? no yes ? property disproved property proved

slide-68
SLIDE 68

Conclusion

slide-69
SLIDE 69

24

Conclusion

24

A new equivalence exploiting the structure

  • f practical privacy statements

Decision of trace equivalence improved by

  • rders of magnitude on concrete examples

Future work: Complete procedure for trace equivalence guided by equivalence by session