Verification of Security Protocols with Lists: from Length One to - - PowerPoint PPT Presentation

verification of security protocols with lists from length
SMART_READER_LITE
LIVE PREVIEW

Verification of Security Protocols with Lists: from Length One to - - PowerPoint PPT Presentation

Introduction Protocols with lists Generalized Horn Clauses From any length to length one An approximation algorithm Conclusion Verification of Security Protocols with Lists: from Length One to Unbounded Length Miriam Paiola Bruno Blanchet {


slide-1
SLIDE 1

Introduction Protocols with lists Generalized Horn Clauses From any length to length one An approximation algorithm Conclusion

Verification of Security Protocols with Lists: from Length One to Unbounded Length

Miriam Paiola Bruno Blanchet {miriam.paiola, bruno.blanchet}@ens.fr

INRIA, Ecole Normale Sup´ erieure, CNRS

March 2012

Verification of Security Protocols with Lists:, from Length One to Unbounded Length 1 / 18

slide-2
SLIDE 2

Introduction Protocols with lists Generalized Horn Clauses From any length to length one An approximation algorithm Conclusion

Cryptographic protocols and their Verification

Verification of protocols is important! ProVerif can analyze protocols with lists of fixed lengths ↓ There could be attacks for other values ↓ Our goal: prove the protocols for lists of any length where all elements are treated in the same way

Verification of Security Protocols with Lists:, from Length One to Unbounded Length 2 / 18

slide-3
SLIDE 3

Introduction Protocols with lists Generalized Horn Clauses From any length to length one An approximation algorithm Conclusion

Overview of ProVerif

Protocol: Pi calculus + cryptography Properties to prove: secrecy Automatic translator Horn clauses Derivability queries Resolution with selection The property is true Potential attack

Verification of Security Protocols with Lists:, from Length One to Unbounded Length 3 / 18

slide-4
SLIDE 4

Introduction Protocols with lists Generalized Horn Clauses From any length to length one An approximation algorithm Conclusion Representation with Horn clauses

Representation of a protocol

Messages are represented by patterns p ::= x | a[p1, . . . , pn] | f (p1, . . . , pn) Example (a, b) Properties are represented by facts F ::= att(p) The protocol and the abilities of the attacker are represented by Horn clauses F1 ∧ · · · ∧ Fn ⇒ F Example att(s) ∧ att(pk) ⇒ att(senc(s, pk))

Verification of Security Protocols with Lists:, from Length One to Unbounded Length 4 / 18

slide-5
SLIDE 5

Introduction Protocols with lists Generalized Horn Clauses From any length to length one An approximation algorithm Conclusion Derivability

Secrecy and Derivability

If att(p) cannot be derived from the clauses, then the protocol preserves the secrecy of p. subroot root Fn F1 . . . . . . . . . . . . . . . . . . η′ η R′ R F F0 Definition (Derivability) F is derivable from R iff there exists a finite tree defined as follows:

1

Its nodes (except the root) are labeled by clauses R ∈ R;

2

Its edges are labeled by closed facts;

3

R = H ⇒ C: there exists a substitution σ such that σC = F0 and σH ⊆ F1 ∧ · · · ∧ Fn

4

The root has one outgoing edge labeled by F.

Verification of Security Protocols with Lists:, from Length One to Unbounded Length 5 / 18

slide-6
SLIDE 6

Introduction Protocols with lists Generalized Horn Clauses From any length to length one An approximation algorithm Conclusion Derivability

Secrecy and Derivability

If att(p) cannot be derived from the clauses, then the protocol preserves the secrecy of p. subroot root Fn F1 . . . . . . . . . . . . . . . . . . η′ η R′ R F F0 Definition (Derivability) F is derivable from R iff there exists a finite tree defined as follows:

1

Its nodes (except the root) are labeled by clauses R ∈ R;

2

Its edges are labeled by closed facts;

3

R = H ⇒ C: there exists a substitution σ such that σC = F0 and σH ⊆ F1 ∧ · · · ∧ Fn

4

The root has one outgoing edge labeled by F.

Verification of Security Protocols with Lists:, from Length One to Unbounded Length 5 / 18

slide-7
SLIDE 7

Introduction Protocols with lists Generalized Horn Clauses From any length to length one An approximation algorithm Conclusion Derivability

Secrecy and Derivability

If att(p) cannot be derived from the clauses, then the protocol preserves the secrecy of p. subroot root Fn F1 . . . . . . . . . . . . . . . . . . η′ η R′ R F F0 Definition (Derivability) F is derivable from R iff there exists a finite tree defined as follows:

1

Its nodes (except the root) are labeled by clauses R ∈ R;

2

Its edges are labeled by closed facts;

3

R = H ⇒ C: there exists a substitution σ such that σC = F0 and σH ⊆ F1 ∧ · · · ∧ Fn

4

The root has one outgoing edge labeled by F.

Verification of Security Protocols with Lists:, from Length One to Unbounded Length 5 / 18

slide-8
SLIDE 8

Introduction Protocols with lists Generalized Horn Clauses From any length to length one An approximation algorithm Conclusion Derivability

Secrecy and Derivability

If att(p) cannot be derived from the clauses, then the protocol preserves the secrecy of p. subroot root Fn F1 . . . . . . . . . . . . . . . . . . η′ η R′ R F F0 Definition (Derivability) F is derivable from R iff there exists a finite tree defined as follows:

1

Its nodes (except the root) are labeled by clauses R ∈ R;

2

Its edges are labeled by closed facts;

3

R = H ⇒ C: there exists a substitution σ such that σC = F0 and σH ⊆ F1 ∧ · · · ∧ Fn

4

The root has one outgoing edge labeled by F.

Verification of Security Protocols with Lists:, from Length One to Unbounded Length 5 / 18

slide-9
SLIDE 9

Introduction Protocols with lists Generalized Horn Clauses From any length to length one An approximation algorithm Conclusion Derivability

Secrecy and Derivability

If att(p) cannot be derived from the clauses, then the protocol preserves the secrecy of p. subroot root Fn F1 . . . . . . . . . . . . . . . . . . η′ η R′ R F F0 Definition (Derivability) F is derivable from R iff there exists a finite tree defined as follows:

1

Its nodes (except the root) are labeled by clauses R ∈ R;

2

Its edges are labeled by closed facts;

3

R = H ⇒ C: there exists a substitution σ such that σC = F0 and σH ⊆ F1 ∧ · · · ∧ Fn

4

The root has one outgoing edge labeled by F.

Verification of Security Protocols with Lists:, from Length One to Unbounded Length 5 / 18

slide-10
SLIDE 10

Introduction Protocols with lists Generalized Horn Clauses From any length to length one An approximation algorithm Conclusion

Example

Asokan-Ginzboorg protocol

Let the set of players be {ai, i = 1, . . . , N} for N ≥ 1 and L be the

  • leader. The protocol describes the establishment of a session key between

the leader and the other n participants. (1) L → ALL : (L, { |e| }pw) (2) ai → L : (ai, { |(ri, si)| }e) (3) L → ai : { |(s1, . . . , sN, s′)| }ri (4) ai → L : (ai, { |(si, h(s1, . . . , sN, s′))| }K), for some i, where K = f (s1, . . . , sN, s′) where K = f (s1, . . . , sN, s′)

Verification of Security Protocols with Lists:, from Length One to Unbounded Length 6 / 18

slide-11
SLIDE 11

Introduction Protocols with lists Generalized Horn Clauses From any length to length one An approximation algorithm Conclusion Syntax

Generalized Horn Clauses

Syntax

pG, s, t ::= patterns xi1,...,ih variable (h ≥ 0) f (pG

1 , . . . , pG l )

function application ai[pG

1 , . . . , pG l ]

indexed names list(i ≤ M, pG) list constructor F G ::=

i1≤M1,...,ih≤Mh att(pG)

facts RG ::= F G

1 ∧ · · · ∧ F G n ⇒ att(pG)

generalized Horn clause

Verification of Security Protocols with Lists:, from Length One to Unbounded Length 7 / 18

slide-12
SLIDE 12

Introduction Protocols with lists Generalized Horn Clauses From any length to length one An approximation algorithm Conclusion Syntax

Representation of the protocol

ai → L : (ai, senc((ri, si), e)) 1. L → ai : (L, senc(e, pw)) 2. ai → L : (ai, senc((ri, si), e)) L → ai : senc(s1, . . . , sN, s′, ri)

  • i≤N att((ai, senc((vi, wi), e[ ]))) ⇒

att(senc((list(i ≤ N, wi), s′[list(i ≤ N, vi, wi))]), vi)) ai → L : ai, senc(si, h(s1, . . . , sN, s′), K), for some i att((L, senc(y, pw))) ∧ att(senc((list(j ≤ N, zj), z′), ri[y])) ⇒ att((ai, senc((si[y], h((mpair(j ≤ N, zj), z′))), K))), where K = f ((mpair(j ≤ N, zj), z′))

Verification of Security Protocols with Lists:, from Length One to Unbounded Length 8 / 18

slide-13
SLIDE 13

Introduction Protocols with lists Generalized Horn Clauses From any length to length one An approximation algorithm Conclusion Syntax

Representation of the protocol

ai → L : (ai, senc((ri, si), e)) 1. L → ai : (L, senc(e, pw)) 2. ai → L : (ai, senc((ri, si), e)) L → ai : senc(s1, . . . , sN, s′, ri)

  • i≤N att((ai, senc((vi, wi), e[ ]))) ⇒

att(senc((list(i ≤ N, wi), s′[list(i ≤ N, vi, wi))]), vi)) ai → L : ai, senc(si, h(s1, . . . , sN, s′), K), for some i att((L, senc(y, pw))) ∧ att(senc((list(j ≤ N, zj), z′), ri[y])) ⇒ att((ai, senc((si[y], h((mpair(j ≤ N, zj), z′))), K))), where K = f ((mpair(j ≤ N, zj), z′))

Verification of Security Protocols with Lists:, from Length One to Unbounded Length 8 / 18

slide-14
SLIDE 14

Introduction Protocols with lists Generalized Horn Clauses From any length to length one An approximation algorithm Conclusion Syntax

Representation of the protocol

ai → L : (ai, senc((ri, si), e)) 1. L → ai : (L, senc(y, pw)) 2. ai → L : (ai, senc((ri[y], si[y]), y)) L → ai : senc(s1, . . . , sN, s′, ri)

  • i≤N att((ai, senc((vi, wi), e[ ]))) ⇒

att(senc((list(i ≤ N, wi), s′[list(i ≤ N, vi, wi))]), vi)) ai → L : ai, senc(si, h(s1, . . . , sN, s′), K), for some i att((L, senc(y, pw))) ∧ att(senc((list(j ≤ N, zj), z′), ri[y])) ⇒ att((ai, senc((si[y], h((mpair(j ≤ N, zj), z′))), K))), where K = f ((mpair(j ≤ N, zj), z′))

Verification of Security Protocols with Lists:, from Length One to Unbounded Length 8 / 18

slide-15
SLIDE 15

Introduction Protocols with lists Generalized Horn Clauses From any length to length one An approximation algorithm Conclusion Syntax

Representation of the protocol

ai → L : (ai, senc((ri, si), e)) att((L, senc(y, pw[ ]))) ⇒ att((ai, senc((ri[y], si[y]), y))) L → ai : senc(s1, . . . , sN, s′, ri)

  • i≤N att((ai, senc((vi, wi), e[ ]))) ⇒

att(senc((list(i ≤ N, wi), s′[list(i ≤ N, vi, wi))]), vi)) ai → L : ai, senc(si, h(s1, . . . , sN, s′), K), for some i att((L, senc(y, pw))) ∧ att(senc((list(j ≤ N, zj), z′), ri[y])) ⇒ att((ai, senc((si[y], h((mpair(j ≤ N, zj), z′))), K))), where K = f ((mpair(j ≤ N, zj), z′))

Verification of Security Protocols with Lists:, from Length One to Unbounded Length 8 / 18

slide-16
SLIDE 16

Introduction Protocols with lists Generalized Horn Clauses From any length to length one An approximation algorithm Conclusion Syntax

Representation of the protocol

ai → L : (ai, senc((ri, si), e)) att((L, senc(y, pw[ ]))) ⇒ att((ai, senc((ri[y], si[y]), y))) L → ai : senc(s1, . . . , sN, s′, ri)

  • i≤N att((ai, senc((vi, wi), e[ ]))) ⇒

att(senc((list(i ≤ N, wi), s′[list(i ≤ N, vi, wi))]), vi)) ai → L : ai, senc(si, h(s1, . . . , sN, s′), K), for some i att((L, senc(y, pw))) ∧ att(senc((list(j ≤ N, zj), z′), ri[y])) ⇒ att((ai, senc((si[y], h((mpair(j ≤ N, zj), z′))), K))), where K = f ((mpair(j ≤ N, zj), z′))

Verification of Security Protocols with Lists:, from Length One to Unbounded Length 8 / 18

slide-17
SLIDE 17

Introduction Protocols with lists Generalized Horn Clauses From any length to length one An approximation algorithm Conclusion Syntax

Representation of the protocol

ai → L : (ai, senc((ri, si), e)) att((L, senc(y, pw[ ]))) ⇒ att((ai, senc((ri[y], si[y]), y))) L → ai : senc(s1, . . . , sN, s′, ri)

  • i≤N att((ai, senc((vi, wi), e[ ]))) ⇒

att(senc((list(i ≤ N, wi), s′[list(i ≤ N, vi, wi))]), vi)) ai → L : ai, senc(si, h(s1, . . . , sN, s′), K), for some i att((L, senc(y, pw))) ∧ att(senc((list(j ≤ N, zj), z′), ri[y])) ⇒ att((ai, senc((si[y], h((mpair(j ≤ N, zj), z′))), K))), where K = f ((mpair(j ≤ N, zj), z′))

Verification of Security Protocols with Lists:, from Length One to Unbounded Length 8 / 18

slide-18
SLIDE 18

Introduction Protocols with lists Generalized Horn Clauses From any length to length one An approximation algorithm Conclusion Well typed clauses and their translation

Type System

To guarantee that all variables use indices that vary in the appropriate interval we developed the following type system:

i : [1, M] ∈ Γ Γ ⊢ i : [1, M] (EnvIndex) x : [1, M1] × · · · × [1, Mh] ∈ Γ Γ ⊢ x : [1, M1] × · · · × [1, Mh] (EnvVar) Γ ⊢ x : [1, M1] × · · · × [1, Mh] Γ ⊢ i1 : [1, M1] . . . Γ ⊢ ih : [1, Mh] Γ ⊢ xi1,...,ih (Var) Γ ⊢ pG

1 . . . Γ ⊢ pG h

Γ ⊢ f (pG

1 , . . . , pG h )(Fun)

Γ ⊢ pG

1 . . . Γ ⊢ pG h

Γ ⊢ i : [1, N] Γ ⊢ ai[pG

1 , . . . , pG h ]

(Name) Γ, i : [1, M] ⊢ pG Γ ⊢ list(i ≤ M, pG)(List) Γ, i1 : [1, M1], . . . , ih : [1, Mh] ⊢ pG Γ ⊢

i1≤M1,...,ih≤Mh att(pG)

(Fact) Γ ⊢ F G

1 . . . Γ ⊢ F G n

Γ ⊢ F G Γ ⊢ F G

1 ∧ · · · ∧ F G n ⇒ F G

(Clause)

Verification of Security Protocols with Lists:, from Length One to Unbounded Length 9 / 18

slide-19
SLIDE 19

Introduction Protocols with lists Generalized Horn Clauses From any length to length one An approximation algorithm Conclusion Well typed clauses and their translation

Translation into Horn clauses

GHC RG Horn clauses R, RGT T Definition Γ ⊢ RG, an environment T for RG is a function that associates to each bound M a fixed integer MT; to each free index i that appears in RG, an index iT ∈ {1, . . . , MT}, if Γ ⊢ i : [1, M]. list(i ≤ M, pG)T = pGT[i→1], . . . , pGT[i→MT ] Example Let T = [M → 3, j → 2]: list(i ≤ M, f (xi,j))T = f (x1,2), f (x2,2), f (x3,2)

Verification of Security Protocols with Lists:, from Length One to Unbounded Length 10 / 18

slide-20
SLIDE 20

Introduction Protocols with lists Generalized Horn Clauses From any length to length one An approximation algorithm Conclusion Well typed clauses and their translation

Translation into Horn clauses

GHC RG Horn clauses R, RGT T Definition Γ ⊢ RG, an environment T for RG is a function that associates to each bound M a fixed integer MT; to each free index i that appears in RG, an index iT ∈ {1, . . . , MT}, if Γ ⊢ i : [1, M]. list(i ≤ M, pG)T = pGT[i→1], . . . , pGT[i→MT ] Example Let T = [M → 3, j → 2]: list(i ≤ M, f (xi,j))T = f (x1,2), f (x2,2), f (x3,2)

Verification of Security Protocols with Lists:, from Length One to Unbounded Length 10 / 18

slide-21
SLIDE 21

Introduction Protocols with lists Generalized Horn Clauses From any length to length one An approximation algorithm Conclusion Well typed clauses and their translation

Translation into Horn clauses

GHC RG Horn clauses R, RGT T Definition Γ ⊢ RG, an environment T for RG is a function that associates to each bound M a fixed integer MT; to each free index i that appears in RG, an index iT ∈ {1, . . . , MT}, if Γ ⊢ i : [1, M]. list(i ≤ M, pG)T = pGT[i→1], . . . , pGT[i→MT ] Example Let T = [M → 3, j → 2]: list(i ≤ M, f (xi,j))T = f (x1,2), f (x2,2), f (x3,2)

Verification of Security Protocols with Lists:, from Length One to Unbounded Length 10 / 18

slide-22
SLIDE 22

Introduction Protocols with lists Generalized Horn Clauses From any length to length one An approximation algorithm Conclusion Main result

Mapping any length to 1

GHC RG Horn clauses R, RGT T HC length 1 I(R), RG1 1 I replace all indices with 1; I(p1, . . . , ph) = {p | p ∈ I(p1) ∪ · · · ∪ I(ph)} Example I(f (x1,2), f (x2,2), f (x3,2) = {f (x1,1)} I(f (x2, b[ ]), f (a2[ ], x3), f (x1, b[ ])) = {f (x1, b[ ]), f (a1[ ], x1)}

Verification of Security Protocols with Lists:, from Length One to Unbounded Length 11 / 18

slide-23
SLIDE 23

Introduction Protocols with lists Generalized Horn Clauses From any length to length one An approximation algorithm Conclusion Main result

Mapping any length to 1

GHC RG Horn clauses R, RGT T HC length 1 I(R), RG1 1 I replace all indices with 1; I(p1, . . . , ph) = {p | p ∈ I(p1) ∪ · · · ∪ I(ph)} Example I(f (x1,2), f (x2,2), f (x3,2) = {f (x1,1)} I(f (x2, b[ ]), f (a2[ ], x3), f (x1, b[ ])) = {f (x1, b[ ]), f (a1[ ], x1)}

Verification of Security Protocols with Lists:, from Length One to Unbounded Length 11 / 18

slide-24
SLIDE 24

Introduction Protocols with lists Generalized Horn Clauses From any length to length one An approximation algorithm Conclusion Main result

Mapping any length to 1

GHC RG Horn clauses R, RGT T HC length 1 I(R), RG1 1 I replace all indices with 1; I(p1, . . . , ph) = {p | p ∈ I(p1) ∪ · · · ∪ I(ph)} Example I(f (x1,2), f (x2,2), f (x3,2) = {f (x1,1)} I(f (x2, b[ ]), f (a2[ ], x3), f (x1, b[ ])) = {f (x1, b[ ]), f (a1[ ], x1)}

Verification of Security Protocols with Lists:, from Length One to Unbounded Length 11 / 18

slide-25
SLIDE 25

Introduction Protocols with lists Generalized Horn Clauses From any length to length one An approximation algorithm Conclusion Main result

Basic idea

Given a set of generalized Horn clauses, RG, we define RGT = {RGT | RG ∈ RG, T is an environment for RG}. Idea of our contribution F is derivable from RGT

↓ ↓

F ∈ I(F) is derivable from RG1

Verification of Security Protocols with Lists:, from Length One to Unbounded Length 12 / 18

slide-26
SLIDE 26

Introduction Protocols with lists Generalized Horn Clauses From any length to length one An approximation algorithm Conclusion Main result

Main result

Theorem Let RG be a set of generalized Horn clauses such that, for each clause RG ∈ RG, RG is well typed, that is, there exists Γ such that Γ ⊢ RG, with the following conditions:

1

the free indices of RG have pairwise distinct types in Γ;

2

the conclusion of RG is linear and the bound indices in the conclusion of RG have pairwise distinct bounds, and bounds different from the bounds of free indices of RG in Γ. For all facts F, if F is derivable from RGT , then for all F ∈ I(F), F is derivable from RG1. Proof: build a derivation of F from RG1, from a derivation of F from RGT , by applying I to the derivation of F from RGT .

Verification of Security Protocols with Lists:, from Length One to Unbounded Length 13 / 18

slide-27
SLIDE 27

Introduction Protocols with lists Generalized Horn Clauses From any length to length one An approximation algorithm Conclusion Remarks

Importance of Hypothesis

(1) A → B : {(a, a)}k (2) B → A : ({(b, b)}k, {s}f (a,b)) (3) A → C : {(a1, a′

1)}k, . . . , {(aN, a′ N)}k

(4) C → A : f (a1, a′

1), . . . , f (a1, a′ N), . . . , f (aN, a′ 1), . . . , f (aN, a′ N)

An attacker sends {(a, a)}k, {(b, b)}k to C as Message 3: he obtains f (a, b) by decomposition of the list f (a, a), f (a, b), f (b, a), f (b, b), decrypts {s}f (a,b) and obtains the secret s. However, if we consider only lists of one element, there is no attack. The generalized Horn clause for Message 4 is: att(list(i′ ≤ N, senc((xi′, yi′), k))) ⇒ att(list(i ≤ N, list(j ≤ N, f (xj, yi)))) In this clause, the Hypothesis 2 of our theorem is not satisfied, because the bound indices i and j have the same bound N.

Verification of Security Protocols with Lists:, from Length One to Unbounded Length 14 / 18

slide-28
SLIDE 28

Introduction Protocols with lists Generalized Horn Clauses From any length to length one An approximation algorithm Conclusion Remarks

Importance of Hypothesis

(1) A → B : {(a, a)}k (2) B → A : ({(b, b)}k, {s}f (a,b)) (3) A → C : {(a1, a′

1)}k, . . . , {(aN, a′ N)}k

(4) C → A : f (a1, a′

1), . . . , f (a1, a′ N), . . . , f (aN, a′ 1), . . . , f (aN, a′ N)

An attacker sends {(a, a)}k, {(b, b)}k to C as Message 3: he obtains f (a, b) by decomposition of the list f (a, a), f (a, b), f (b, a), f (b, b), decrypts {s}f (a,b) and obtains the secret s. However, if we consider only lists of one element, there is no attack. The generalized Horn clause for Message 4 is: att(list(i′ ≤ N, senc((xi′, yi′), k))) ⇒ att(list(i ≤ N, list(j ≤ N, f (xj, yi)))) In this clause, the Hypothesis 2 of our theorem is not satisfied, because the bound indices i and j have the same bound N.

Verification of Security Protocols with Lists:, from Length One to Unbounded Length 14 / 18

slide-29
SLIDE 29

Introduction Protocols with lists Generalized Horn Clauses From any length to length one An approximation algorithm Conclusion Remarks

Importance of Hypothesis

(1) A → B : {(a, a)}k (2) B → A : ({(b, b)}k, {s}f (a,b)) (3) A → C : {(a1, a′

1)}k, . . . , {(aN, a′ N)}k

(4) C → A : f (a1, a′

1), . . . , f (a1, a′ N), . . . , f (aN, a′ 1), . . . , f (aN, a′ N)

An attacker sends {(a, a)}k, {(b, b)}k to C as Message 3: he obtains f (a, b) by decomposition of the list f (a, a), f (a, b), f (b, a), f (b, b), decrypts {s}f (a,b) and obtains the secret s. However, if we consider only lists of one element, there is no attack. The generalized Horn clause for Message 4 is: att(list(i′ ≤ N, senc((xi′, yi′), k))) ⇒ att(list(i ≤ N, list(j ≤ N, f (xj, yi)))) In this clause, the Hypothesis 2 of our theorem is not satisfied, because the bound indices i and j have the same bound N.

Verification of Security Protocols with Lists:, from Length One to Unbounded Length 14 / 18

slide-30
SLIDE 30

Introduction Protocols with lists Generalized Horn Clauses From any length to length one An approximation algorithm Conclusion Remarks

Importance of Hypothesis

(1) A → B : {(a, a)}k (2) B → A : ({(b, b)}k, {s}f (a,b)) (3) A → C : {(a1, a′

1)}k, . . . , {(aN, a′ N)}k

(4) C → A : f (a1, a′

1), . . . , f (a1, a′ N), . . . , f (aN, a′ 1), . . . , f (aN, a′ N)

An attacker sends {(a, a)}k, {(b, b)}k to C as Message 3: he obtains f (a, b) by decomposition of the list f (a, a), f (a, b), f (b, a), f (b, b), decrypts {s}f (a,b) and obtains the secret s. However, if we consider only lists of one element, there is no attack. The generalized Horn clause for Message 4 is: att(list(i′ ≤ N, senc((xi′, yi′), k))) ⇒ att(list(i ≤ N, list(j ≤ N, f (xj, yi)))) In this clause, the Hypothesis 2 of our theorem is not satisfied, because the bound indices i and j have the same bound N.

Verification of Security Protocols with Lists:, from Length One to Unbounded Length 14 / 18

slide-31
SLIDE 31

Introduction Protocols with lists Generalized Horn Clauses From any length to length one An approximation algorithm Conclusion Remarks

Importance of Hypothesis

(1) A → B : {(a, a)}k (2) B → A : ({(b, b)}k, {s}f (a,b)) (3) A → C : {(a1, a′

1)}k, . . . , {(aN, a′ N)}k

(4) C → A : f (a1, a′

1), . . . , f (a1, a′ N), . . . , f (aN, a′ 1), . . . , f (aN, a′ N)

An attacker sends {(a, a)}k, {(b, b)}k to C as Message 3: he obtains f (a, b) by decomposition of the list f (a, a), f (a, b), f (b, a), f (b, b), decrypts {s}f (a,b) and obtains the secret s. However, if we consider only lists of one element, there is no attack. The generalized Horn clause for Message 4 is: att(list(i′ ≤ N, senc((xi′, yi′), k))) ⇒ att(list(i ≤ N, list(j ≤ N, f (xj, yi)))) In this clause, the Hypothesis 2 of our theorem is not satisfied, because the bound indices i and j have the same bound N.

Verification of Security Protocols with Lists:, from Length One to Unbounded Length 14 / 18

slide-32
SLIDE 32

Introduction Protocols with lists Generalized Horn Clauses From any length to length one An approximation algorithm Conclusion Remarks

Importance of Hypothesis

(1) A → B : {(a, a)}k (2) B → A : ({(b, b)}k, {s}f (a,b)) (3) A → C : {(a1, a′

1)}k, . . . , {(aN, a′ N)}k

(4) C → A : f (a1, a′

1), . . . , f (a1, a′ N), . . . , f (aN, a′ 1), . . . , f (aN, a′ N)

An attacker sends {(a, a)}k, {(b, b)}k to C as Message 3: he obtains f (a, b) by decomposition of the list f (a, a), f (a, b), f (b, a), f (b, b), decrypts {s}f (a,b) and obtains the secret s. However, if we consider only lists of one element, there is no attack. The generalized Horn clause for Message 4 is: att(list(i′ ≤ N, senc((xi′, yi′), k))) ⇒ att(list(i ≤ N, list(j ≤ N, f (xj, yi)))) In this clause, the Hypothesis 2 of our theorem is not satisfied, because the bound indices i and j have the same bound N.

Verification of Security Protocols with Lists:, from Length One to Unbounded Length 14 / 18

slide-33
SLIDE 33

Introduction Protocols with lists Generalized Horn Clauses From any length to length one An approximation algorithm Conclusion

Approximation algorithm

We built an algorithm that transforms a set of generalized Horn clauses for satisfying the hypothesis of the main theorem. att((L, senc(y, pw))) ∧ att(senc((list(j ≤ N, zj), z′), ri[y])) ⇒ att((ai, senc((si[y], h((list(j ≤ N, zj), z′))), f ((list(j ≤ N, zj), z′))))) rename the bound and the variables of one of the two list in the conclusion; replace one occurence of the variable z′ with a fresh one. → approximation!

Verification of Security Protocols with Lists:, from Length One to Unbounded Length 15 / 18

slide-34
SLIDE 34

Introduction Protocols with lists Generalized Horn Clauses From any length to length one An approximation algorithm Conclusion

Approximation algorithm

We built an algorithm that transforms a set of generalized Horn clauses for satisfying the hypothesis of the main theorem. att((L, senc(y, pw))) ∧ att(senc((list(j ≤ N, zj), z′), ri[y])) ⇒ att((ai, senc((si[y], h((list(j ≤ N, zj), z′))), f ((list(j ≤ N, zj), z′))))) rename the bound and the variables of one of the two list in the conclusion; replace one occurence of the variable z′ with a fresh one. → approximation!

Verification of Security Protocols with Lists:, from Length One to Unbounded Length 15 / 18

slide-35
SLIDE 35

Introduction Protocols with lists Generalized Horn Clauses From any length to length one An approximation algorithm Conclusion

Approximation algorithm

We built an algorithm that transforms a set of generalized Horn clauses for satisfying the hypothesis of the main theorem. att((L, senc(y, pw))) ∧ att(senc((list(j ≤ N, zj), z′), ri[y])) ⇒ att((ai, senc((si[y], h((list(j ≤ N, zj), z′))), f ((list(j ≤ N, zj), z′))))) rename the bound and the variables of one of the two list in the conclusion; replace one occurence of the variable z′ with a fresh one. → approximation!

Verification of Security Protocols with Lists:, from Length One to Unbounded Length 15 / 18

slide-36
SLIDE 36

Introduction Protocols with lists Generalized Horn Clauses From any length to length one An approximation algorithm Conclusion

Approximation algorithm

We built an algorithm that transforms a set of generalized Horn clauses for satisfying the hypothesis of the main theorem. att((L, senc(y, pw))) ∧ att(senc((list(j ≤ N, zj), z′), ri[y])) ∧ att(senc((list(j ≤ M, xj), z′), ri[y])) ⇒ att((ai, senc((si[y], h((list(j ≤ N, zj), z′))), f ((list(j ≤ M, xj), z′))))) rename the bound and the variables of one of the two list in the conclusion; replace one occurence of the variable z′ with a fresh one. → approximation!

Verification of Security Protocols with Lists:, from Length One to Unbounded Length 15 / 18

slide-37
SLIDE 37

Introduction Protocols with lists Generalized Horn Clauses From any length to length one An approximation algorithm Conclusion

Approximation algorithm

We built an algorithm that transforms a set of generalized Horn clauses for satisfying the hypothesis of the main theorem. att((L, senc(y, pw))) ∧ att(senc((list(j ≤ N, zj), z′), ri[y])) ∧ att(senc((list(j ≤ M, xj), z′), ri[y])) ⇒ att((ai, senc((si[y], h((list(j ≤ N, zj), z′))), f ((list(j ≤ M, xj), z′))))) rename the bound and the variables of one of the two list in the conclusion; replace one occurence of the variable z′ with a fresh one. → approximation!

Verification of Security Protocols with Lists:, from Length One to Unbounded Length 15 / 18

slide-38
SLIDE 38

Introduction Protocols with lists Generalized Horn Clauses From any length to length one An approximation algorithm Conclusion

Approximation algorithm

We built an algorithm that transforms a set of generalized Horn clauses for satisfying the hypothesis of the main theorem. att((L, senc(y, pw))) ∧ att(senc((list(j ≤ N, zj), z′), ri[y])) ∧ att(senc((list(j ≤ M, xj), z′), ri[y])) ⇒ att((ai, senc((si[y], h((list(j ≤ N, zj), z′))), f ((list(j ≤ M, xj), z′))))) rename the bound and the variables of one of the two list in the conclusion; replace one occurence of the variable z′ with a fresh one. → approximation!

Verification of Security Protocols with Lists:, from Length One to Unbounded Length 15 / 18

slide-39
SLIDE 39

Introduction Protocols with lists Generalized Horn Clauses From any length to length one An approximation algorithm Conclusion

Approximation algorithm

We built an algorithm that transforms a set of generalized Horn clauses for satisfying the hypothesis of the main theorem. att((L, senc(y, pw))) ∧ att(senc((list(j ≤ N, zj), z′), ri[y])) ∧ att(senc((list(j ≤ M, xj), z′), ri[y]))∧ att(senc((list(j ≤ N, zj), x′), ri[y])) ∧ att(senc((list(j ≤ M, xj), x′), ri[y])) ⇒ att((ai, senc((si[y], h((list(j ≤ N, zj), z′))), f ((list(j ≤ M, xj), x′))))) rename the bound and the variables of one of the two list in the conclusion; replace one occurence of the variable z′ with a fresh one. → approximation!

Verification of Security Protocols with Lists:, from Length One to Unbounded Length 15 / 18

slide-40
SLIDE 40

Introduction Protocols with lists Generalized Horn Clauses From any length to length one An approximation algorithm Conclusion

Approximation algorithm

We built an algorithm that transforms a set of generalized Horn clauses for satisfying the hypothesis of the main theorem. att((L, senc(y, pw))) ∧ att(senc((list(j ≤ N, zj), z′), ri[y])) ∧ att(senc((list(j ≤ M, xj), z′), ri[y]))∧ att(senc((list(j ≤ N, zj), x′), ri[y])) ∧ att(senc((list(j ≤ M, xj), x′), ri[y])) ⇒ att((ai, senc((si[y], h((list(j ≤ N, zj), z′))), f ((list(j ≤ M, xj), x′))))) rename the bound and the variables of one of the two list in the conclusion; replace one occurence of the variable z′ with a fresh one. → approximation!

Verification of Security Protocols with Lists:, from Length One to Unbounded Length 15 / 18

slide-41
SLIDE 41

Introduction Protocols with lists Generalized Horn Clauses From any length to length one An approximation algorithm Conclusion

Applications & Conclusions

Applications: secrecy proved for Azokan-Ginzboorg protocol secrecy proved for a basic XML encryption protocol What has been done: extended syntax of Horn clauses generalized Horn clauses; define a relation between GHC and HC; derivation for lists of length one → derivation for lists of unbounded length; in general, secrecy on lists of length one → secrecy on list of unbounded length; approximation algorithm that transforms a set of generalized Horn clauses for satisfying the hypothesis of our main theorem.

Verification of Security Protocols with Lists:, from Length One to Unbounded Length 16 / 18

slide-42
SLIDE 42

Introduction Protocols with lists Generalized Horn Clauses From any length to length one An approximation algorithm Conclusion

Applications & Conclusions

Applications: secrecy proved for Azokan-Ginzboorg protocol secrecy proved for a basic XML encryption protocol What has been done: extended syntax of Horn clauses generalized Horn clauses; define a relation between GHC and HC; derivation for lists of length one → derivation for lists of unbounded length; in general, secrecy on lists of length one → secrecy on list of unbounded length; approximation algorithm that transforms a set of generalized Horn clauses for satisfying the hypothesis of our main theorem.

Verification of Security Protocols with Lists:, from Length One to Unbounded Length 16 / 18

slide-43
SLIDE 43

Introduction Protocols with lists Generalized Horn Clauses From any length to length one An approximation algorithm Conclusion

Further Works

What we’d like to do: support more general data structures and protocols: new extension

  • f generalized Horn clauses and of the resolution algorithm;

extend this work to equational theories (Diffie-Hellman); extend the input language of ProVerif to model group protocols and to translate it to generalized Horn clauses; consider other security properties.

Verification of Security Protocols with Lists:, from Length One to Unbounded Length 17 / 18

slide-44
SLIDE 44

Introduction Protocols with lists Generalized Horn Clauses From any length to length one An approximation algorithm Conclusion

Thanks!

Questions?

Verification of Security Protocols with Lists:, from Length One to Unbounded Length