Verification of security protocols from confidentiality to privacy - - PowerPoint PPT Presentation

verification of security protocols from confidentiality
SMART_READER_LITE
LIVE PREVIEW

Verification of security protocols from confidentiality to privacy - - PowerPoint PPT Presentation

Verification of security protocols from confidentiality to privacy Stphanie Delaune LSV, CNRS & ENS Cachan, France Wednesday, August 26th, 2015 S. Delaune (LSV) Verification of security protocols 26th August 2015 1 / 54 This talk:


slide-1
SLIDE 1

Verification of security protocols from confidentiality to privacy

Stéphanie Delaune

LSV, CNRS & ENS Cachan, France

Wednesday, August 26th, 2015

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 1 / 54

slide-2
SLIDE 2

This talk: formal methods for protocol verification

|

Does the protocol

Modelling

satisfy

| = ϕ

a security property?

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 2 / 54

slide-3
SLIDE 3

This talk: formal methods for protocol verification

|

Does the protocol

Modelling

satisfy

| = ϕ

a security property? Two main tasks

1 Modelling cryptographic protocols and their security properties 2 Designing verification algorithms

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 2 / 54

slide-4
SLIDE 4

Challenge

Would you be able to find the attack on the well-known Needham-Schroeder protocol? A → B : {A, Na}pub(B) B → A : {Na, Nb}pub(A) A → B : {Nb}pub(B) To help you: http://www.lsv.ens-cachan.fr/~delaune/VTSA/proverif.pdf

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 3 / 54

slide-5
SLIDE 5

Needham-Schroeder’s Protocol (1978)

  • A

→ B : {A, Na}pub(B) B → A : {Na, Nb}pub(A) A → B : {Nb}pub(B)

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 4 / 54

slide-6
SLIDE 6

Needham-Schroeder’s Protocol (1978)

A → B : {A, Na}pub(B)

  • B

→ A : {Na, Nb}pub(A) A → B : {Nb}pub(B)

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 4 / 54

slide-7
SLIDE 7

Needham-Schroeder’s Protocol (1978)

A → B : {A, Na}pub(B) B → A : {Na, Nb}pub(A)

  • A

→ B : {Nb}pub(B)

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 4 / 54

slide-8
SLIDE 8

Needham-Schroeder’s Protocol (1978)

A → B : {A, Na}pub(B) B → A : {Na, Nb}pub(A) A → B : {Nb}pub(B)

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 4 / 54

slide-9
SLIDE 9

Needham-Schroeder’s Protocol (1978)

A → B : {A, Na}pub(B) B → A : {Na, Nb}pub(A) A → B : {Nb}pub(B)

Questions Is Nb secret between A and B ? When B receives {Nb}pub(B), does this message really comes from A ?

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 4 / 54

slide-10
SLIDE 10

Needham-Schroeder’s Protocol (1978)

A → B : {A, Na}pub(B) B → A : {Na, Nb}pub(A) A → B : {Nb}pub(B)

Questions Is Nb secret between A and B ? When B receives {Nb}pub(B), does this message really comes from A ?

Attack

An attack was found 17 years after its publication! [Lowe 96]

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 4 / 54

slide-11
SLIDE 11

Man in the middle attack

Agent A Attacker C Agent B

Attack

involving 2 sessions in parallel, an honest agent has to initiate a session with C. A → B : {A, Na}pub(B) B → A : {Na, Nb}pub(A) A → B : {Nb}pub(B)

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 5 / 54

slide-12
SLIDE 12

Man in the middle attack

Agent A Attacker C Agent B {A, Na}pub(C) {A, Na}pub(B) A → B : {A, Na}pub(B) B → A : {Na, Nb}pub(A) A → B : {Nb}pub(B)

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 5 / 54

slide-13
SLIDE 13

Man in the middle attack

Agent A Attacker C Agent B {A, Na}pub(C) {A, Na}pub(B) {Na, Nb}pub(A) {Na, Nb}pub(A) A → B : {A, Na}pub(B) B → A : {Na, Nb}pub(A) A → B : {Nb}pub(B)

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 5 / 54

slide-14
SLIDE 14

Man in the middle attack

Agent A Attacker C Agent B {A, Na}pub(C) {A, Na}pub(B) {Na, Nb}pub(A) {Na, Nb}pub(A) {Nb}pub(C) {Nb}pub(B) A → B : {A, Na}pub(B) B → A : {Na, Nb}pub(A) A → B : {Nb}pub(B)

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 5 / 54

slide-15
SLIDE 15

Man in the middle attack

Agent A Attacker C Agent B {A, Na}pub(C) {A, Na}pub(B) {Na, Nb}pub(A) {Na, Nb}pub(A) {Nb}pub(C) {Nb}pub(B)

Attack

the intruder knows Nb, When B finishes his session (apparently with A), A has never talked with B. A → B : {A, Na}pub(B) B → A : {Na, Nb}pub(A) A → B : {Nb}pub(B)

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 5 / 54

slide-16
SLIDE 16

Needham Schroeder Lowe protocol

A fixed version of the Needham Schroeder public key protocol. A → B : {A, Na}pub(B) B → A : {Na, Nb, B}pub(A) A → B : {Nb}pub(B) − → the responder’s identity has been added to the second message

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 6 / 54

slide-17
SLIDE 17

Outline for today Security problem for a bounded number of sessions

− → i.e. processes with no replication . . . using the constraint solving approach Two main kind of security properties:

1 trace-based security properties (e.g. secrecy, authentication, . . . ) 2 equivalence-based security properties (e.g. anonymity,

untraceability, . . . ) Running examples:

1 Needham-Schroeder protocol 2 BAC protocol used in the e-passport application

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 7 / 54

slide-18
SLIDE 18

Part I Trace-based security properties

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 8 / 54

slide-19
SLIDE 19

Reminder

Syntax : P, Q := null process in(c, x).P input

  • ut(c, u).P
  • utput

if u = v then P else Q conditional P | Q parallel composition !P replication new n.P fresh name generation

Confidentiality for process P w.r.t. secret s

For all processes A such that A | P →∗ Q, we have that Q is not of the form C[out(c, s).Q′] with c public. − → In other word, s should not be deducible by the attacker

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 9 / 54

slide-20
SLIDE 20

Confidentiality using the constraint solving approach

− → for a bounded number of sessions Two main steps:

1 A symbolic exploration of all the possible traces

The infinite number of possible traces (i.e. experiment) are represented by a finite set of constraint systems − → this set can be huge (exponential on the number of sessions) ... but some optimizations are used to reduce this number

2 A decision procedure for deciding whether a constraint system has a

solution or not. − → this algorithm works quite well

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 10 / 54

slide-21
SLIDE 21

Confidentiality via constraint solving

Constraint systems are used to specify confidentiality under a particular scenario. Protocol rules

  • a particular interleaving -

in(u1);

  • ut(v1); in(u2);

. . .

  • ut(vn)

Constraint System C =              T0

?

⊢ u1 T0, v1

?

⊢ u2 ... T0, v1, .., vn

?

⊢ s

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 11 / 54

slide-22
SLIDE 22

Confidentiality via constraint solving

Constraint systems are used to specify confidentiality under a particular scenario. Protocol rules

  • a particular interleaving -

in(u1);

  • ut(v1); in(u2);

. . .

  • ut(vn)

Constraint System C =              T0

?

⊢ u1 T0, v1

?

⊢ u2 ... T0, v1, .., vn

?

⊢ s

Solution of a constraint system C

A substitution σ such that for every T

?

⊢ u ∈ C, uσ is deducible from Tσ. for every u = v ∈ C (resp. u = v), uσ =E vσ (resp. uσ =E vσ)

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 11 / 54

slide-23
SLIDE 23

Going back to the Needham-Schroeder’s protocol

Role A played by a with the attacker c: new na.

  • ut({a, na}pub(c)).

in({na, xnb}pub(a)).

  • ut({xnb}pub(c))

Role B played by b (apparently) with a: in({a, yna}pub(b)). new nb.

  • ut({yna, nb}pub(a))
  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 12 / 54

slide-24
SLIDE 24

Going back to the Needham-Schroeder’s protocol

Role A played by a with the attacker c: new na.

  • ut({a, na}pub(c)).

in({na, xnb}pub(a)).

  • ut({xnb}pub(c))

1 4 5 Role B played by b (apparently) with a: in({a, yna}pub(b)). new nb.

  • ut({yna, nb}pub(a))

2 3

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 12 / 54

slide-25
SLIDE 25

Going back to the Needham-Schroeder’s protocol

Role A played by a with the attacker c: new na.

  • ut({a, na}pub(c)).

in({na, xnb}pub(a)).

  • ut({xnb}pub(c))

1 4 5 Role B played by b (apparently) with a: in({a, yna}pub(b)). new nb.

  • ut({yna, nb}pub(a))

2 3 Constraint system: (secrecy of nb) with T0 = {a, b, c, priv(c)}:

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 12 / 54

slide-26
SLIDE 26

Going back to the Needham-Schroeder’s protocol

Role A played by a with the attacker c: new na.

  • ut({a, na}pub(c)).

in({na, xnb}pub(a)).

  • ut({xnb}pub(c))

1 4 5 Role B played by b (apparently) with a: in({a, yna}pub(b)). new nb.

  • ut({yna, nb}pub(a))

2 3 Constraint system: (secrecy of nb) with T0 = {a, b, c, priv(c)}: T0, {a, na}pub(c)

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 12 / 54

slide-27
SLIDE 27

Going back to the Needham-Schroeder’s protocol

Role A played by a with the attacker c: new na.

  • ut({a, na}pub(c)).

in({na, xnb}pub(a)).

  • ut({xnb}pub(c))

1 4 5 Role B played by b (apparently) with a: in({a, yna}pub(b)). new nb.

  • ut({yna, nb}pub(a))

2 3 Constraint system: (secrecy of nb) with T0 = {a, b, c, priv(c)}: T0, {a, na}pub(c)

?

⊢ {a, yna}pub(b)

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 12 / 54

slide-28
SLIDE 28

Going back to the Needham-Schroeder’s protocol

Role A played by a with the attacker c: new na.

  • ut({a, na}pub(c)).

in({na, xnb}pub(a)).

  • ut({xnb}pub(c))

1 4 5 Role B played by b (apparently) with a: in({a, yna}pub(b)). new nb.

  • ut({yna, nb}pub(a))

2 3 Constraint system: (secrecy of nb) with T0 = {a, b, c, priv(c)}: T0, {a, na}pub(c)

?

⊢ {a, yna}pub(b) T0, {a, na}pub(c), {yna, nb}pub(a)

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 12 / 54

slide-29
SLIDE 29

Going back to the Needham-Schroeder’s protocol

Role A played by a with the attacker c: new na.

  • ut({a, na}pub(c)).

in({na, xnb}pub(a)).

  • ut({xnb}pub(c))

1 4 5 Role B played by b (apparently) with a: in({a, yna}pub(b)). new nb.

  • ut({yna, nb}pub(a))

2 3 Constraint system: (secrecy of nb) with T0 = {a, b, c, priv(c)}: T0, {a, na}pub(c)

?

⊢ {a, yna}pub(b) T0, {a, na}pub(c), {yna, nb}pub(a)

?

⊢ {na, xnb}pub(a)

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 12 / 54

slide-30
SLIDE 30

Going back to the Needham-Schroeder’s protocol

Role A played by a with the attacker c: new na.

  • ut({a, na}pub(c)).

in({na, xnb}pub(a)).

  • ut({xnb}pub(c))

1 4 5 Role B played by b (apparently) with a: in({a, yna}pub(b)). new nb.

  • ut({yna, nb}pub(a))

2 3 Constraint system: (secrecy of nb) with T0 = {a, b, c, priv(c)}: T0, {a, na}pub(c)

?

⊢ {a, yna}pub(b) T0, {a, na}pub(c), {yna, nb}pub(a)

?

⊢ {na, xnb}pub(a) T0, {a, na}pub(c), {yna, nb}pub(a), {xnb}pub(c)

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 12 / 54

slide-31
SLIDE 31

Going back to the Needham-Schroeder’s protocol

Role A played by a with the attacker c: new na.

  • ut({a, na}pub(c)).

in({na, xnb}pub(a)).

  • ut({xnb}pub(c))

Role B played by b (apparently) with a: in({a, yna}pub(b)). new nb.

  • ut({yna, nb}pub(a))

Constraint system: (secrecy of nb) with T0 = {a, b, c, priv(c)}: T0, {a, na}pub(c)

?

⊢ {a, yna}pub(b) T0, {a, na}pub(c), {yna, nb}pub(a)

?

⊢ {na, xnb}pub(a) T0, {a, na}pub(c), {yna, nb}pub(a), {xnb}pub(c)

?

⊢ nb

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 12 / 54

slide-32
SLIDE 32

Going back to the Needham-Schroeder’s protocol

Role A played by a with the attacker c: new na.

  • ut({a, na}pub(c)).

in({na, xnb}pub(a)).

  • ut({xnb}pub(c))

Role B played by b (apparently) with a: in({a, yna}pub(b)). new nb.

  • ut({yna, nb}pub(a))

Constraint system: (secrecy of nb) with T0 = {a, b, c, priv(c)}: T0, {a, na}pub(c)

?

⊢ {a, yna}pub(b) T0, {a, na}pub(c), {yna, nb}pub(a)

?

⊢ {na, xnb}pub(a) T0, {a, na}pub(c), {yna, nb}pub(a), {xnb}pub(c)

?

⊢ nb

Does this constraint system have a solution?

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 12 / 54

slide-33
SLIDE 33

Going back to the Needham-Schroeder’s protocol

Role A played by a with the attacker c: new na.

  • ut({a, na}pub(c)).

in({na, xnb}pub(a)).

  • ut({xnb}pub(c))

Role B played by b (apparently) with a: in({a, yna}pub(b)). new nb.

  • ut({yna, nb}pub(a))

Constraint system: (secrecy of nb) with T0 = {a, b, c, priv(c)}: T0, {a, na}pub(c)

?

⊢ {a, yna}pub(b) T0, {a, na}pub(c), {yna, nb}pub(a)

?

⊢ {na, xnb}pub(a) T0, {a, na}pub(c), {yna, nb}pub(a), {xnb}pub(c)

?

⊢ nb

Does this constraint system have a solution?

− → Yes ! σ = {ya → a, yna → na, xnb → nb}

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 12 / 54

slide-34
SLIDE 34

Going back to the Denning Sacco protocol

A → B : aenc(sign(k, priv(A)), pub(B)) B → A : senc(s, k) One possible interleaving:

  • ut(aenc(sign(k, ska), pk(skc)))

in(aenc(sign(x, ska), pk(skb))); out(senc(s, x))

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 13 / 54

slide-35
SLIDE 35

Going back to the Denning Sacco protocol

A → B : aenc(sign(k, priv(A)), pub(B)) B → A : senc(s, k) One possible interleaving:

  • ut(aenc(sign(k, ska), pk(skc)))

in(aenc(sign(x, ska), pk(skb))); out(senc(s, x)) The associated constraint system is: T0; aenc(sign(k, ska), pk(skc))

?

⊢ aenc(sign(x, ska), pk(skb)) T0; aenc(sign(k, ska), pk(skc)); senc(s, x)

?

⊢ s with T0 = {pk(ska), pk(skb); skc}.

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 13 / 54

slide-36
SLIDE 36

Going back to the Denning Sacco protocol

A → B : aenc(sign(k, priv(A)), pub(B)) B → A : senc(s, k) One possible interleaving:

  • ut(aenc(sign(k, ska), pk(skc)))

in(aenc(sign(x, ska), pk(skb))); out(senc(s, x)) The associated constraint system is: T0; aenc(sign(k, ska), pk(skc))

?

⊢ aenc(sign(x, ska), pk(skb)) T0; aenc(sign(k, ska), pk(skc)); senc(s, x)

?

⊢ s with T0 = {pk(ska), pk(skb); skc}.

Does this constraint system have a solution?

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 13 / 54

slide-37
SLIDE 37

Going back to the Denning Sacco protocol

A → B : aenc(sign(k, priv(A)), pub(B)) B → A : senc(s, k) One possible interleaving:

  • ut(aenc(sign(k, ska), pk(skc)))

in(aenc(sign(x, ska), pk(skb))); out(senc(s, x)) The associated constraint system is: T0; aenc(sign(k, ska), pk(skc))

?

⊢ aenc(sign(x, ska), pk(skb)) T0; aenc(sign(k, ska), pk(skc)); senc(s, x)

?

⊢ s with T0 = {pk(ska), pk(skb); skc}.

Does this constraint system have a solution?

Yes ! x → k

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 13 / 54

slide-38
SLIDE 38

The general case: is the constraint system C satisfiable?

Main idea: simplify them until reaching ⊥ or solved forms Constraint system in solved form C =              T0

?

⊢ x0 T0 ∪ T1

?

⊢ x1 ... T0 ∪ T1 . . . ∪ Tn

?

⊢ xn

Question

Is there a solution to such a system ?

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 14 / 54

slide-39
SLIDE 39

The general case: is the constraint system C satisfiable?

Main idea: simplify them until reaching ⊥ or solved forms Constraint system in solved form C =              T0

?

⊢ x0 T0 ∪ T1

?

⊢ x1 ... T0 ∪ T1 . . . ∪ Tn

?

⊢ xn

Question

Is there a solution to such a system ? Of course, yes ! Choose u0 ∈ T0, and consider the substitution: σ = {x0 → u0, . . . , xn → u0}

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 14 / 54

slide-40
SLIDE 40

Simplification rules

− → these rules deal with pairs and symmetric encryption only Rax : C ∧ T

?

⊢ u

  • C

if T ∪ {x | T ′ ? ⊢ x ∈ C, T ′ T} ⊢ u Runif : C ∧ T

?

⊢ u σ Cσ ∧ Tσ

?

⊢ uσ if σ = mgu(t1, t2) where t1, t2 ∈ st(T) ∪ {u} Rfail : C ∧ T

?

⊢ u

if vars(T ∪ {u}) = ∅ and T ⊢ u Rf : C ∧ T

?

⊢ f (u1, u2) C ∧ T

?

⊢ u1 ∧ T

?

⊢ u2 f ∈ {, senc}

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 15 / 54

slide-41
SLIDE 41

Applying rule Rf

Rf : C ∧ T

?

⊢ f(u1, u2) C ∧ T

?

⊢ u1 ∧ T

?

⊢ u2 Example: T0; aenc(sign(k, ska), pk(skc))

?

⊢ aenc(sign(x, ska), pk(skb))

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 16 / 54

slide-42
SLIDE 42

Applying rule Rf

Rf : C ∧ T

?

⊢ f(u1, u2) C ∧ T

?

⊢ u1 ∧ T

?

⊢ u2 Example: T0; aenc(sign(k, ska), pk(skc))

?

⊢ aenc(sign(x, ska), pk(skb))

  T0; aenc(sign(k, ska), pk(skc))

?

⊢ sign(x, ska) T0; aenc(sign(k, ska), pk(skc))

?

⊢ pk(skb)

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 16 / 54

slide-43
SLIDE 43

Applying rule Runif

Runif : C ∧ T

?

⊢ u σ Cσ ∧ Tσ

?

⊢ uσ if σ = mgu(t1, t2) where t1, t2 ∈ st(T) ∪ {u} Example:    T0; aenc(sign(k, ska), pk(skc))

?

⊢ sign(x, ska) T0; aenc(sign(k, ska), pk(skc))

?

⊢ pk(skb)

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 17 / 54

slide-44
SLIDE 44

Applying rule Runif

Runif : C ∧ T

?

⊢ u σ Cσ ∧ Tσ

?

⊢ uσ if σ = mgu(t1, t2) where t1, t2 ∈ st(T) ∪ {u} Example:    T0; aenc(sign(k, ska), pk(skc))

?

⊢ sign(x, ska) T0; aenc(sign(k, ska), pk(skc))

?

⊢ pk(skb)

  T0; aenc(sign(k, ska), pk(skc))

?

⊢ sign(k, ska) T0; aenc(sign(k, ska), pk(skc))

?

⊢ pk(skb)

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 17 / 54

slide-45
SLIDE 45

Applying rule Rax

Rax : C ∧ T

?

⊢ u

  • C

if T ∪ {x | T ′ ? ⊢ x ∈ C, T ′ T} ⊢ u Example: (assuming that skc and pk(skb) are in T0)    T0; aenc(sign(k, ska), pk(skc))

?

⊢ sign(k, ska) T0; aenc(sign(k, ska), pk(skc))

?

⊢ pk(skb)

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 18 / 54

slide-46
SLIDE 46

Applying rule Rax

Rax : C ∧ T

?

⊢ u

  • C

if T ∪ {x | T ′ ? ⊢ x ∈ C, T ′ T} ⊢ u Example: (assuming that skc and pk(skb) are in T0)    T0; aenc(sign(k, ska), pk(skc))

?

⊢ sign(k, ska) T0; aenc(sign(k, ska), pk(skc))

?

⊢ pk(skb)

  • T0; aenc(sign(k, ska), pk(skc))

?

⊢ sign(k, ska)

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 18 / 54

slide-47
SLIDE 47

Applying rule Rax

Rax : C ∧ T

?

⊢ u

  • C

if T ∪ {x | T ′ ? ⊢ x ∈ C, T ′ T} ⊢ u Example: (assuming that skc and pk(skb) are in T0)    T0; aenc(sign(k, ska), pk(skc))

?

⊢ sign(k, ska) T0; aenc(sign(k, ska), pk(skc))

?

⊢ pk(skb)

  • T0; aenc(sign(k, ska), pk(skc))

?

⊢ sign(k, ska)

(empty constraint system)

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 18 / 54

slide-48
SLIDE 48

Exercice - still about the Denning Sacco protocol

Exercise Reach a solved form starting with the constraint system: T0; aenc(sign(k, ska), pk(skc))

?

⊢ aenc(sign(x, ska), pk(skb)) T0; aenc(sign(k, ska), pk(skc)); senc(s, x)

?

⊢ s

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 19 / 54

slide-49
SLIDE 49

Results on the simplification rules

Rax : C ∧ T

?

⊢ u

  • C

if T ∪ {x | T ′ ? ⊢ x ∈ C, T ′ T} ⊢ u Runif : C ∧ T

?

⊢ u σ Cσ ∧ Tσ

?

⊢ uσ if σ = mgu(t1, t2) where t1, t2 ∈ st(T) ∪ {u} Rfail : C ∧ T

?

⊢ u

if vars(T ∪ {u}) = ∅ and T ⊢ u Rf : C ∧ T

?

⊢ f (u1, u2) C ∧ T

?

⊢ u1 ∧ T

?

⊢ u2 f ∈ {, senc} Given a (well-formed) constraint system C:

Soundness

If C ∗

σ C′ and θ solution of C′ then σθ is a solution of C.

− → easy to show

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 20 / 54

slide-50
SLIDE 50

Results on the simplification rules

Rax : C ∧ T

?

⊢ u

  • C

if T ∪ {x | T ′ ? ⊢ x ∈ C, T ′ T} ⊢ u Runif : C ∧ T

?

⊢ u σ Cσ ∧ Tσ

?

⊢ uσ if σ = mgu(t1, t2) where t1, t2 ∈ st(T) ∪ {u} Rfail : C ∧ T

?

⊢ u

if vars(T ∪ {u}) = ∅ and T ⊢ u Rf : C ∧ T

?

⊢ f (u1, u2) C ∧ T

?

⊢ u1 ∧ T

?

⊢ u2 f ∈ {, senc} Given a (well-formed) constraint system C:

Termination

There is no infinite chain C σ1 C1 . . . σn Cn. − → using the lexicographic order (number of var, size of rhs)

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 20 / 54

slide-51
SLIDE 51

Results on the simplification rules

Rax : C ∧ T

?

⊢ u

  • C

if T ∪ {x | T ′ ? ⊢ x ∈ C, T ′ T} ⊢ u Runif : C ∧ T

?

⊢ u σ Cσ ∧ Tσ

?

⊢ uσ if σ = mgu(t1, t2) where t1, t2 ∈ st(T) ∪ {u} Rfail : C ∧ T

?

⊢ u

if vars(T ∪ {u}) = ∅ and T ⊢ u Rf : C ∧ T

?

⊢ f (u1, u2) C ∧ T

?

⊢ u1 ∧ T

?

⊢ u2 f ∈ {, senc} Given a (well-formed) constraint system C:

Completeness

If θ is a solution of C then there exists C′ and θ′ such that C ∗

σ C′, θ′ is a

solution of C′, and θ = σθ′. − → more involved to show

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 20 / 54

slide-52
SLIDE 52

Procedure for solving a constraint system

Main idea of the procedure:

C =            T0

?

⊢ u1 T0, v1

?

⊢ u2 . . . T0, v1, . . . , vn

?

⊢ s

C1 C2 C3 ⊥ C4 solved ⊥ − → this gives us a symbolic representation of all the solutions.

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 21 / 54

slide-53
SLIDE 53

Main result

Theorem

Deciding confidentiality for a bounded number of sessions is decidable for classical primitives (actually in co-NP). Exercise: NP-hardness can be shown by encoding 3-SAT

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 22 / 54

slide-54
SLIDE 54

Main result

Theorem

Deciding confidentiality for a bounded number of sessions is decidable for classical primitives (actually in co-NP). Exercise: NP-hardness can be shown by encoding 3-SAT Some extensions that already exist:

1 disequality tests (protocol with else branches) 2 more primitives: asymmetric encryption, blind signature, exclusive-or,

. . .

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 22 / 54

slide-55
SLIDE 55

Avantssar platform

This approach has been implemented in the Avantssar Platform. http://www.avantssar.eu − → Typically concludes within few seconds over the flawed protocols of the Clark/Jacob library .

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 23 / 54

slide-56
SLIDE 56

Part II Equivalence-based security properties

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 24 / 54

slide-57
SLIDE 57

Electronic passport

− → studied in [Arapinis et al., 10] An electronic passport is a passport with an RFID tag embedded in it. The RFID tag stores: the information printed on your passport, a JPEG copy of your picture.

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 25 / 54

slide-58
SLIDE 58

Electronic passport

− → studied in [Arapinis et al., 10] An electronic passport is a passport with an RFID tag embedded in it. The RFID tag stores: the information printed on your passport, a JPEG copy of your picture. The Basic Access Control (BAC) protocol is a key establishment protocol that has been designed to also ensure unlinkability.

ISO/IEC standard 15408

Unlinkability aims to ensure that a user may make multiple uses of a service

  • r resource without others being able to link these uses together.
  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 25 / 54

slide-59
SLIDE 59

BAC protocol

Passport

(KE , KM)

Reader

(KE , KM)

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 26 / 54

slide-60
SLIDE 60

BAC protocol

Passport

(KE , KM)

Reader

(KE , KM)

get_challenge

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 26 / 54

slide-61
SLIDE 61

BAC protocol

Passport

(KE , KM)

Reader

(KE , KM)

get_challenge NP, KP NP

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 26 / 54

slide-62
SLIDE 62

BAC protocol

Passport

(KE , KM)

Reader

(KE , KM)

get_challenge NP, KP NP NR, KR {NR, NP, KR}KE , MACKM ({NR, NP, KR}KE )

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 26 / 54

slide-63
SLIDE 63

BAC protocol

Passport

(KE , KM)

Reader

(KE , KM)

get_challenge NP, KP NP NR, KR {NR, NP, KR}KE , MACKM ({NR, NP, KR}KE ) {NP, NR, KP }KE , MACKM ({NP, NR, KP}KE )

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 26 / 54

slide-64
SLIDE 64

BAC protocol

Passport

(KE , KM)

Reader

(KE , KM)

get_challenge NP, KP NP NR, KR {NR, NP, KR}KE , MACKM ({NR, NP, KR}KE ) {NP, NR, KP }KE , MACKM ({NP, NR, KP}KE ) Kseed = KP ⊕ KR Kseed = KP ⊕ KR

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 26 / 54

slide-65
SLIDE 65

BAC protocol as a process

Cryptographic primitives are modelled using function symbols encryption/decryption: senc/2, sdec/2 concatenation/projections: , /2, proj1/1, proj2/1 mac construction: mac/2 − → sdec(senc(x, y), y) = x, proj1(x, y) = x, proj2(x, y) = y. Nonces nr, np, and keys kr, kp, ke, km are modelled using names

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 27 / 54

slide-66
SLIDE 66

BAC protocol as a process

Cryptographic primitives are modelled using function symbols encryption/decryption: senc/2, sdec/2 concatenation/projections: , /2, proj1/1, proj2/1 mac construction: mac/2 − → sdec(senc(x, y), y) = x, proj1(x, y) = x, proj2(x, y) = y. Nonces nr, np, and keys kr, kp, ke, km are modelled using names

Modelling Passport’s role

PBAC(kE, kM) = new nP.new kP.out(nP).in(zE, zM). if zM = mac(zE, kM) then if nP = proj1(proj2(sdec(zE, kE))) then out(m, mac(m, kM)) else 0 else 0 where m = senc(nP, proj1(zE), kP, kE).

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 27 / 54

slide-67
SLIDE 67

What does unlinkability mean?

Informally, an observer/attacker can not observe the difference between the two following situations:

1 a situation where the same passport may be

used twice (or even more);

2 a situation where each passport is used at

most once.

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 28 / 54

slide-68
SLIDE 68

What does unlinkability mean?

Informally, an observer/attacker can not observe the difference between the two following situations:

1 a situation where the same passport may be

used twice (or even more);

2 a situation where each passport is used at

most once. More formally, !new ke.new km.(!PBAC | !RBAC)

?

≈ !new ke.new km.( PBAC | !RBAC) ↑ ↑

many sessions for each passport

  • nly one session

for each passport

(we still have to formalize the notion of equivalence)

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 28 / 54

slide-69
SLIDE 69

Security properties - privacy

Privacy-type properties are modelled as equivalence-based properties

testing equivalence between P and Q, P ≈ Q

for all processes A, we have that: (A | P) ⇓c if, and only if, (A | Q) ⇓c where R ⇓c means that R can evolve and emits on public channel c.

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 29 / 54

slide-70
SLIDE 70

Security properties - privacy

Privacy-type properties are modelled as equivalence-based properties

testing equivalence between P and Q, P ≈ Q

for all processes A, we have that: (A | P) ⇓c if, and only if, (A | Q) ⇓c where R ⇓c means that R can evolve and emits on public channel c. Example 1:

  • ut(a, s)

?

≈ out(a, s′)

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 29 / 54

slide-71
SLIDE 71

Security properties - privacy

Privacy-type properties are modelled as equivalence-based properties

testing equivalence between P and Q, P ≈ Q

for all processes A, we have that: (A | P) ⇓c if, and only if, (A | Q) ⇓c where R ⇓c means that R can evolve and emits on public channel c. Example 1:

  • ut(a, s) ≈ out(a, s′)

− → A = in(a, x).if x = s then out(c, ok)

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 29 / 54

slide-72
SLIDE 72

Security properties - privacy

Privacy-type properties are modelled as equivalence-based properties

testing equivalence between P and Q, P ≈ Q

for all processes A, we have that: (A | P) ⇓c if, and only if, (A | Q) ⇓c where R ⇓c means that R can evolve and emits on public channel c. Example 2: new s.out(a, senc(s, k)).out(a, senc(s, k′))

?

≈ new s, s′.out(a, senc(s, k)).out(a, senc(s′, k′))

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 29 / 54

slide-73
SLIDE 73

Security properties - privacy

Privacy-type properties are modelled as equivalence-based properties

testing equivalence between P and Q, P ≈ Q

for all processes A, we have that: (A | P) ⇓c if, and only if, (A | Q) ⇓c where R ⇓c means that R can evolve and emits on public channel c. Example 2: new s.out(a, senc(s, k)).out(a, senc(s, k′)) ≈ new s, s′.out(a, senc(s, k)).out(a, senc(s′, k′)) − → A = in(a, x).in(a, y).if (sdec(x, k) = sdec(y, k′)) then out(c, ok)

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 29 / 54

slide-74
SLIDE 74

Security properties - privacy

Privacy-type properties are modelled as equivalence-based properties

testing equivalence between P and Q, P ≈ Q

for all processes A, we have that: (A | P) ⇓c if, and only if, (A | Q) ⇓c where R ⇓c means that R can evolve and emits on public channel c. Exercise: Are the two following processes in testing equivalence? new s.out(a, s)

?

≈ new s.new k.out(a, enc(s, k))

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 29 / 54

slide-75
SLIDE 75

French electronic passport

− → the passport must reply to all received messages. Passport

(KE ,KM)

Reader

(KE ,KM)

get_challenge NP, KP NP NR, KR {NR, NP, KR}KE , MACKM ({NR, NP, KR}KE )

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 30 / 54

slide-76
SLIDE 76

French electronic passport

− → the passport must reply to all received messages. Passport

(KE ,KM)

Reader

(KE ,KM)

get_challenge NP, KP NP NR, KR {NR, NP, KR}KE , MACKM ({NR, NP, KR}KE ) If MAC check fails mac_error

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 30 / 54

slide-77
SLIDE 77

French electronic passport

− → the passport must reply to all received messages. Passport

(KE ,KM)

Reader

(KE ,KM)

get_challenge NP, KP NP NR, KR {NR, NP, KR}KE , MACKM ({NR, NP, KR}KE ) If MAC check succeeds If nonce check fails nonce_error

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 30 / 54

slide-78
SLIDE 78

BAC protocol (French version) as a process

Cryptographic primitives are modelled as usual using function symbols − → sdec(senc(x, y), y) = x, proj1(x, y) = x, proj2(x, y) = y. Nonces nr, np, and keys kr, kp, ke, km are modelled using names Error messages are modelled using constants mac_error and nonce_error.

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 31 / 54

slide-79
SLIDE 79

BAC protocol (French version) as a process

Cryptographic primitives are modelled as usual using function symbols − → sdec(senc(x, y), y) = x, proj1(x, y) = x, proj2(x, y) = y. Nonces nr, np, and keys kr, kp, ke, km are modelled using names Error messages are modelled using constants mac_error and nonce_error.

Modelling Passport’s role

PBAC(kE, kM) = new nP.new kP.out(nP).in(zE, zM). if zM = mac(zE, kM) then if nP = proj1(proj2(sdec(zE, kE))) then out(m, mac(m, kM)) else out(nonce_error) else out(mac_error) where m = senc(nP, proj1(zE), kP, kE).

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 31 / 54

slide-80
SLIDE 80

An attack on the French passport

Attack against unlinkability [Chothia & Smirnov, 10]

An attacker can track a French passport, provided he has once witnessed a successful authentication.

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 32 / 54

slide-81
SLIDE 81

An attack on the French passport

Attack against unlinkability [Chothia & Smirnov, 10]

An attacker can track a French passport, provided he has once witnessed a successful authentication. Part 1 of the attack. The attacker eavesdropes on Alice using her passport and records message M. Alice’s Passport

(KE ,KM)

Reader

(KE ,KM)

get_challenge NP, KP NP NR, KR M = {NR, NP , KR}KE , MACKM ({NR, NP , KR}KE )

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 32 / 54

slide-82
SLIDE 82

An attack on the French passport

Part 2 of the attack. The attacker replays the message M and checks the error code he receives. ????’s Passport

(K ′

E ,K ′ M)

Attacker

get_challenge N′

P, K′ P

N′

P

M = {NR, NP , KR}KE , MACKM ({NR, NP , KR}KE )

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 32 / 54

slide-83
SLIDE 83

An attack on the French passport

Part 2 of the attack. The attacker replays the message M and checks the error code he receives. ????’s Passport

(K ′

E ,K ′ M)

Attacker

get_challenge N′

P, K′ P

N′

P

M = {NR, NP , KR}KE , MACKM ({NR, NP , KR}KE ) mac_error

= ⇒ MAC check failed = ⇒ K ′

M = KM

= ⇒ ???? is not Alice

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 32 / 54

slide-84
SLIDE 84

An attack on the French passport

Part 2 of the attack. The attacker replays the message M and checks the error code he receives. ????’s Passport

(K ′

E ,K ′ M)

Attacker

get_challenge N′

P, K′ P

N′

P

M = {NR, NP , KR}KE , MACKM ({NR, NP , KR}KE ) nonce_error

= ⇒ MAC check succeeded = ⇒ K ′

M = KM

= ⇒ ???? is Alice

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 32 / 54

slide-85
SLIDE 85

An attack on the French passport

Attack !

The equivalence does not hold: Psame ≈ Pdiff. More formally, Psame

def

=!new ke.new km.(!PBAC | !RBAC) ≈ Pdiff

def

=!new ke.new km.( PBAC | !RBAC)

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 33 / 54

slide-86
SLIDE 86

An attack on the French passport

Attack !

The equivalence does not hold: Psame ≈ Pdiff. More formally, Psame

def

=!new ke.new km.(!PBAC | !RBAC) ≈ Pdiff

def

=!new ke.new km.( PBAC | !RBAC) Exercise: Exhibit the process A that witnesses the fact that these two processes are not in testing equivalence.

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 33 / 54

slide-87
SLIDE 87

An attack on the French passport

Attack !

The equivalence does not hold: Psame ≈ Pdiff. More formally, Psame

def

=!new ke.new km.(!PBAC | !RBAC) ≈ Pdiff

def

=!new ke.new km.( PBAC | !RBAC) Exercise: Exhibit the process A that witnesses the fact that these two processes are not in testing equivalence. − → A = in(c, x).out(c, x).in(c, y).if y = nonce_error then out(ok, _)

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 33 / 54

slide-88
SLIDE 88

Some other equivalence-based security properties

The notion of testing equivalence can be used to express: Vote privacy the fact that a particular voted in a particular way is not revealed to anyone Strong secrecy the fact that an adversary cannot see any difference when the value of the secret changes − → stronger than the notion of secrecy as non-deducibility. Guessing attack the fact that an adversary can not learn the value

  • f passwords even if he knows that they have been

choosen in a particular dictionary.

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 34 / 54

slide-89
SLIDE 89

State of the art in a nutshell (1/2)

for analysing equivalence-based security properties for an unbounded number of sessions

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 35 / 54

slide-90
SLIDE 90

State of the art in a nutshell (1/2)

for analysing equivalence-based security properties for an unbounded number of sessions undecidable in general even for some fragment for which confidentiality is decidable [Chrétien, Cortier & D., 13] some recent decidability results for some restricted fragment e.g. tagged protocol, no nonces, a particular set of primitives .. . [Chrétien, Cortier & D., Icalp’13, Concur’14, CSF’15] ProVerif: a tool that does not correspond to any decidability result for analysing the notion of diff-equivalence (too strong) [Blanchet, Abadi & Fournet, 05] None of these results is suitable to to analyse vote-privacy, or unlinkability

  • f the BAC protocol.
  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 35 / 54

slide-91
SLIDE 91

State of the art in a nutshell (2/2)

for analysing equivalence-based security properties for a bounded number of sessions

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 36 / 54

slide-92
SLIDE 92

State of the art in a nutshell (2/2)

for analysing equivalence-based security properties for a bounded number of sessions

A “recent” result [Cheval, Comon & D., 11]

A procedure for deciding testing equivalence for a large class of processes for a bounded number of sessions. Our class of processes: + non-trivial else branches, private channels, and non-deterministic choice; – a fixed set of cryptographic primitives (signature, encryption, hash function, mac). Similar results (for different classes of processes) have been obtained by [Baudet, 05], [Dawson& Tiu, 10], [Chevalier & Rusinowitch, 10], . . .

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 36 / 54

slide-93
SLIDE 93

Privacy using the constraint solving approach

Two main steps:

1 A symbolic exploration of all the possible traces

The infinite number of possible traces (i.e. experiment) are represented by a finite set of constraint systems − → this set can be huge (exponential on the number of sessions) !

2 A decision procedure for deciding (symbolic) equivalence between sets

  • f constraint systems

− → this algorithm works quite well

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 37 / 54

slide-94
SLIDE 94

Deciding symbolic equivalence

Main idea: We rewrite pairs (Σ, Σ′) of sets of constraint systems (extended to keep track of some information) until a trivial failure or a trivial success is found. (Σ, Σ′) (Σ1, Σ′

1)

(Σ2, Σ′

2)

(⊥, ⊥) (Σ3, Σ′

3)

(solved,solved) (⊥,solved)

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 38 / 54

slide-95
SLIDE 95

Results on the simplification rules

Termination Applying blindly the simplification rules does not terminate but there is a particular strategy S that allows us to ensure termination. Soundness/Completeness Let (Σ0, Σ′

0) be pair of sets of constraint systems, and consider a binary

tree obtained by applying our simplification rule following a strategy S.

1 soundness: If all leaves of the tree are labeled with (⊥, ⊥) or

(solved, solved), then Σ0 ≈s Σ′

0.

2 completeness: if Σ0 ≈s Σ′

0, then all leaves of the tree are labeled with

(⊥, ⊥) or (solved, solved).

Theorem

Deciding testing equivalence between processes without replication for classical primitives is decidable.

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 39 / 54

slide-96
SLIDE 96

APTE- Algorithm for Proving Testing Equivalence

http://projects.lsv.ens-cachan.fr/APTE (Ocaml - 12 KLocs) − → developed by Vincent Cheval [Cheval, TACAS’14]

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 40 / 54

slide-97
SLIDE 97

APTE- Algorithm for Proving Testing Equivalence

http://projects.lsv.ens-cachan.fr/APTE (Ocaml - 12 KLocs) − → developed by Vincent Cheval [Cheval, TACAS’14] − → but a limited practical impact because it scales badly

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 40 / 54

slide-98
SLIDE 98

Partial order reduction for security protocols

part of the PhD thesis of L. Hirschi

Main objective

to develop POR techniques that are suitable for analysing security protocols (especially testing equivalence)

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 41 / 54

slide-99
SLIDE 99

Partial order reduction for security protocols

part of the PhD thesis of L. Hirschi

Main objective

to develop POR techniques that are suitable for analysing security protocols (especially testing equivalence) Example: in(c1, x1).out(c1, ok) | in(c2, x2).out(c2, ok) We propose two optimizations:

1 compression: we impose a simple strategy on the exploration of the

available actions (roughly outputs are performed first and using a fixed arbitrary order)

2 reduction: we avoid exploring some redundant traces taking into

account the data that are exchanged

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 41 / 54

slide-100
SLIDE 100

Practical impact of our optimizations (in APTE)

Toy example Denning Sacco protocol

− → Each optimisation brings an exponential speedup.

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 42 / 54

slide-101
SLIDE 101

Practical impact of our optimizations (in APTE)

Toy example Denning Sacco protocol

− → Each optimisation brings an exponential speedup.

Protocol reference with POR Yahalom (3-party) 4 5 Needham Schroeder (3-party) 4 7 Private Authentication (2-party) 4 7 E-Passport PA (2-party) 4 9 Denning-Sacco (3-party) 5 10 Wide Mouthed Frog (3-party) 6 13

Maximum number of parallel processes verifiable in 20 hours.

− → Our optimisations make Apte much more useful in practice for investigating interesting scenarios.

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 42 / 54

slide-102
SLIDE 102

Electronic voting

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 43 / 54

slide-103
SLIDE 103

Electronic voting

Elections are a security-sensitive process which is the cornerstone of modern democracy Advantages: convenient (you can vote from home) efficient for recording and tallying ... but risk of large scale, undetected fraud ! − → Our goal: a precise modelling of protocols and security properties which allow a rigorous analysis, and to explicit trust assumptions.

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 44 / 54

slide-104
SLIDE 104

A variety of security properties

Eligibility: only legitimate voters can vote, and only once No early results: no early results can be ob- tained which could influence the remaining voters Vote-privacy/Receipt-freeness/Coercion-resistance: the fact that a particular voted in a particular way is not revealed to anyone Individual/Universal verifiability: a voter can verify that her vote was really counted, and that the published outcome is the sum of all the votes

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 45 / 54

slide-105
SLIDE 105

A variety of security properties

Eligibility Fairness Individual verifiability Universal verifiability Coercion resistance Vote privacy Receipt freeness

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 46 / 54

slide-106
SLIDE 106

A variety of security properties

Eligibility Fairness Individual verifiability Universal verifiability Coercion resistance Vote privacy Receipt freeness − → e-voting protocols are often complex, rely on non classical cryptographic primitives (e.g. blind signature, homomorphic encryption), and only satisfy a subset of the security properties mentioned above.

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 46 / 54

slide-107
SLIDE 107

Helios

− → developed by Ben Adida et al. − → already in use: election at UCL (Belgium) and Princeton university, election of the IACR board (major association in cryptography), . . . https://vote.heliosvoting.org

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 47 / 54

slide-108
SLIDE 108

Behavior of Helios (simplified)

Voting phase: vote 0 or 1 using randomized encryption Bulletin board Alice {vA}rA

pub(S)

Bob {vB}rB

pub(S)

Chris {vC}rC

pub(S)

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 48 / 54

slide-109
SLIDE 109

Behavior of Helios (simplified)

Voting phase: vote 0 or 1 using randomized encryption Bulletin board Alice {vA}rA

pub(S)

Bob {vB}rB

pub(S)

Chris {vC}rC

pub(S)

{vD}rDpub(S)

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 48 / 54

slide-110
SLIDE 110

Behavior of Helios (simplified)

Voting phase: vote 0 or 1 using randomized encryption Bulletin board Alice {vA}rA

pub(S)

Bob {vB}rB

pub(S)

Chris {vC}rC

pub(S)

David {vD}rD

pub(S)

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 48 / 54

slide-111
SLIDE 111

Behavior of Helios (simplified)

Voting phase: vote 0 or 1 using randomized encryption Bulletin board Alice {vA}rA

pub(S)

Bob {vB}rB

pub(S)

Chris {vC}rC

pub(S)

David {vD}rD

pub(S)

Tallying phase: using homomorphic encryption {vA}rA

pub(S) × {vB}rB pub(S) × . . . = {vA + vB + . . .}f (rA,rB,...) pub(S)

− → Only the final result needs to be decrypted !

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 48 / 54

slide-112
SLIDE 112

Behavior of Helios (simplified)

Voting phase: vote 0 or 1 using randomized encryption Bulletin board Alice {vA}rA

pub(S)

Bob {vB}rB

pub(S)

Chris {vC}rC

pub(S)

David {vD}rD

pub(S)

Tallying phase: using homomorphic encryption {vA}rA

pub(S) × {vB}rB pub(S) × . . . = {vA + vB + . . .}f (rA,rB,...) pub(S)

− → Only the final result needs to be decrypted ! A malicious voter can cheat !

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 48 / 54

slide-113
SLIDE 113

Behavior of Helios (simplified)

Voting phase: vote 0 or 1 using randomized encryption Bulletin board Alice {vA}rA

pub(S)

Bob {vB}rB

pub(S)

Chris {vC}rC

pub(S)

David {vD}rD

pub(S)

Tallying phase: using homomorphic encryption {vA}rA

pub(S) × {vB}rB pub(S) × . . . = {vA + vB + . . .}f (rA,rB,...) pub(S)

− → Only the final result needs to be decrypted ! A malicious voter can cheat ! {vD}pub(S) ” + ” proof of knowledge that vD is equal to 0 or 1

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 48 / 54

slide-114
SLIDE 114

Modelling vote-privacy

Classically anonymity properties are modeled using testing equivalences between two slightly different processes, but changing the identity does not work, as identities are revealed changing the vote does not work, as the votes are revealed at the end a correct protocol respecting privacy may in some situation reveal how a participant voted: the case of unanimity

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 49 / 54

slide-115
SLIDE 115

Modelling vote-privacy

Classically anonymity properties are modeled using testing equivalences between two slightly different processes, but changing the identity does not work, as identities are revealed changing the vote does not work, as the votes are revealed at the end a correct protocol respecting privacy may in some situation reveal how a participant voted: the case of unanimity Vote privacy [Kremer and Ryan, 2005] S[VA(yes)| VB(no)] ≈t S[VA(no)| VB(yes)] ↑ ↑

A votes yes B votes no A votes no B votes yes

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 49 / 54

slide-116
SLIDE 116

Helios

Individual and universal verifiability Helios satisfies a priori the verifiability properties.

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 50 / 54

slide-117
SLIDE 117

Helios

Individual and universal verifiability Helios satisfies a priori the verifiability properties. Vote-privacy, receipt-freeness, coercion resistance Helios has not beed designed to satisfy receipt-freeness and coercion-resistance − → it is possible to obtain a receipt of his vote, namely (vD, rD). Bulletin board . . . David {vD}rD

pub(S)

{vD}rD

pub(S)

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 50 / 54

slide-118
SLIDE 118

Helios

Individual and universal verifiability Helios satisfies a priori the verifiability properties. Vote-privacy, receipt-freeness, coercion resistance Helios has not beed designed to satisfy receipt-freeness and coercion-resistance − → it is possible to obtain a receipt of his vote, namely (vD, rD). Bulletin board . . . David {vD}rD

pub(S)

{vD}rD

pub(S)

Helios does not satisfy vote-privacy ! [Cortier & Smyth, 11]

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 50 / 54

slide-119
SLIDE 119

Vote-privacy in Helios

S[VA(yes)| VB(no)] ≈t S[VA(no)| VB(yes)] ↑ ↑

A votes yes B votes no A votes no B votes yes

Description of the attack: Bulletin board Alice {yes}rA

pub(S)

Bob {no}rB

pub(S)

Bulletin board Alice {no}rA

pub(S)

Bob {yes}rB

pub(S)

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 51 / 54

slide-120
SLIDE 120

Vote-privacy in Helios

S[VA(yes)| VB(no)] ≈t S[VA(no)| VB(yes)] ↑ ↑

A votes yes B votes no A votes no B votes yes

Description of the attack: Bulletin board Alice {yes}rA

pub(S)

Bob {no}rB

pub(S)

Charlie Bulletin board Alice {no}rA

pub(S)

Bob {yes}rB

pub(S)

Charlie − → Charlies simply copies Alice’s vote !

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 51 / 54

slide-121
SLIDE 121

Vote-privacy in Helios

S[VA(yes)| VB(no)] ≈t S[VA(no)| VB(yes)] ↑ ↑

A votes yes B votes no A votes no B votes yes

Description of the attack: Bulletin board Alice {yes}rA

pub(S)

Bob {no}rB

pub(S)

Charlie {yes}rA

pub(S)

Bulletin board Alice {no}rA

pub(S)

Bob {yes}rB

pub(S)

Charlie {no}rA

pub(S)

− → Charlies simply copies Alice’s vote ! Video of the attack at http://www.youtube.com/watch?v=fWvl9uJgpc0

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 51 / 54

slide-122
SLIDE 122

In conclusion

(few words)

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 52 / 54

slide-123
SLIDE 123

Limitations of the symbolic approach

1 the algebraic properties of the primitives are abstracted away

− → no guarantee if the protocol relies on an encryption that satisfies some additional properties (e.g. RSA, ElGamal)

2 only the specification is analysed and not the implementation

− → most of the passports are actually linkable by a carefull analysis of time or message length. http://www.loria.fr/~glondu/epassport/attaque-tailles.html

3 when the analysis is done for a bounded number of sessions, not all

scenario are checked − → no guarantee if the protocol is used one more time !

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 53 / 54

slide-124
SLIDE 124

Conclusion

A need of formal methods in verification of security protocols. Regarding confidentiality (or authentication), powerful tool support that are nowdays used by industrials and security agencies. It remains a lot to do for analysing privacy-type properties: formal definitions of some sublte security properties; − → receipt-freeness, coercion-resistance in e-voting algorithms (and tools!) for checking automatically testing equivalence for various cryptographic primitives; − → homomorphic encryption used in e-voting, more composition results. − → Could we derive some security guarantees of the whole e-passport application from the analysis performed on each subprotocol in isolation?

  • S. Delaune (LSV)

Verification of security protocols 26th August 2015 54 / 54