Symbolic verification of cryptographic protocols using Tamarin Part - - PowerPoint PPT Presentation

symbolic verification of cryptographic protocols using
SMART_READER_LITE
LIVE PREVIEW

Symbolic verification of cryptographic protocols using Tamarin Part - - PowerPoint PPT Presentation

Symbolic verification of cryptographic protocols using Tamarin Part 2 : Symbolic Verification David Basin ETH Zurich Summer School on Verification Technology, Systems & Applications Nancy France August 2018 Outline 1 Formal Models 2


slide-1
SLIDE 1

Symbolic verification of cryptographic protocols using Tamarin

Part 2 : Symbolic Verification David Basin

ETH Zurich

Summer School on Verification Technology, Systems & Applications Nancy France August 2018

slide-2
SLIDE 2

Outline

1 Formal Models 2 Term Rewriting 3 Rewriting-based Protocol Syntax 4 The Dolev-Yao-Style Adversary 5 Protocol Semantics

2 / 54

slide-3
SLIDE 3

Plan

1 Formal Models 2 Term Rewriting 3 Rewriting-based Protocol Syntax 4 The Dolev-Yao-Style Adversary 5 Protocol Semantics

3 / 54

slide-4
SLIDE 4

Real-world protocol standards: ISO/IEC 9798

4 / 54

slide-5
SLIDE 5

Real-world protocol specifications: IKE RFC

5 / 54

slide-6
SLIDE 6

Real-world protocol specifications: IKE RFC

6 / 54

slide-7
SLIDE 7

What are formal models?

  • A language is formal when it has a well-defined syntax and
  • semantics. Additionally there is often a deductive system for

determining the truth of statements.

  • Examples:

7 / 54

slide-8
SLIDE 8

What are formal models?

  • A language is formal when it has a well-defined syntax and
  • semantics. Additionally there is often a deductive system for

determining the truth of statements.

  • Examples: propositional logic, first-order logic.
  • A model (or construction) is formal when it is specified in a

formal language.

  • Standard protocol notation is not formal.
  • We will see how to formalize such notations.

7 / 54

slide-9
SLIDE 9

Formal modeling and analysis of protocols

Goal: formally model protocols and their properties and provide a mathematically sound means to reason about these models. Basis: suitable abstraction of protocols. Analysis: with formal methods based on mathematics and logic, e.g., theorem proving.

8 / 54

slide-10
SLIDE 10

Formal Methods

system specification security properties proof How does the system operate? What shall be achieved? Does the system meet its requirements? satisfies

9 / 54

slide-11
SLIDE 11

From message sequence charts to protocol execution

Initiator Protocol specification Protocol execution Responder

Alice as initiator Alice as initiator Bob as initiator Bob as responder Charlie as responder request {| m |}k

cryptographic primitives communication model agent model Network

10 / 54

slide-12
SLIDE 12

Plan

1 Formal Models 2 Term Rewriting 3 Rewriting-based Protocol Syntax 4 The Dolev-Yao-Style Adversary 5 Protocol Semantics

11 / 54

slide-13
SLIDE 13

Motivation

Term Rewriting is

  • a useful and flexible formalism in general.
  • Programming languages
  • Automated deduction
  • Rewriting logic
  • used for representing messages and protocols in Tamarin.

Example: senc(m, k) represents the symmetric encryption of m with key k

12 / 54

slide-14
SLIDE 14

Signature

Definition (Signature)

An unsorted signature Σ is a set of function symbols, each having an arity n ≥ 0. We call function symbols of arity 0 constants.

13 / 54

slide-15
SLIDE 15

Signature

Definition (Signature)

An unsorted signature Σ is a set of function symbols, each having an arity n ≥ 0. We call function symbols of arity 0 constants.

Example (Peano notation for natural numbers)

Σ = {0, s, +}, where 0 is a constant, s has arity 1 and represents the successor function, and + has arity 2 and represents addition. Note that for binary operators we sometimes will use infix notation.

13 / 54

slide-16
SLIDE 16

Term Algebra

Definition (Term Algebra)

Let Σ be a signature, X a set of variables, and Σ ∩ X = ∅. We call the set TΣ(X) the term algebra over Σ. It is the least set such that:

  • X ⊆ TΣ(X).
  • If t1, . . . , tn ∈ TΣ(X) and f ∈ Σ with arity n, then

f (t1, . . . , tn) ∈ TΣ(X). The set of ground terms TΣ consists of terms built without variables, i.e., TΣ := TΣ(∅).

14 / 54

slide-17
SLIDE 17

Term Algebra

Definition (Term Algebra)

Let Σ be a signature, X a set of variables, and Σ ∩ X = ∅. We call the set TΣ(X) the term algebra over Σ. It is the least set such that:

  • X ⊆ TΣ(X).
  • If t1, . . . , tn ∈ TΣ(X) and f ∈ Σ with arity n, then

f (t1, . . . , tn) ∈ TΣ(X). The set of ground terms TΣ consists of terms built without variables, i.e., TΣ := TΣ(∅). Exercise: constants are included in TΣ and TΣ(X).

14 / 54

slide-18
SLIDE 18

Term Algebra

Definition (Term Algebra)

Let Σ be a signature, X a set of variables, and Σ ∩ X = ∅. We call the set TΣ(X) the term algebra over Σ. It is the least set such that:

  • X ⊆ TΣ(X).
  • If t1, . . . , tn ∈ TΣ(X) and f ∈ Σ with arity n, then

f (t1, . . . , tn) ∈ TΣ(X). The set of ground terms TΣ consists of terms built without variables, i.e., TΣ := TΣ(∅). Exercise: constants are included in TΣ and TΣ(X).

Example (Peano notation for natural numbers (continued))

s(0) ∈ TΣ s(s(0)) + s(X) ∈ TΣ(X) +s(0)+ / ∈ TΣ(X)

14 / 54

slide-19
SLIDE 19

Cryptographic Messages

We generally denote variables with upper case names X, Y , . . ., and function symbols (inc. constants) with lower case names a, b, ...

Definition (Messages)

A message is a term in TΣ(X), where Σ = A ∪ F ∪ Func ∪ {pair, pk, aenc, senc}. We call X the set of variables A, B, X, Y , Z, ..., A the set of agents a, b, c, ..., F the set of fresh values na, nb, k (nonces, keys, ...), Func the set of user-defined functions (hash, exp, ...), pair(t1, t2) pairing, also denoted by t1, t2, pk(t) public key, aenc(t1, t2) asymmetric encryption, also denoted by {t1}t2, senc(t1, t2) symmetric encryption, also denoted by { |t1| }t2.

15 / 54

slide-20
SLIDE 20

Free Algebra

Definition (Free Algebra)

In the free algebra every term is interpreted by itself (syntactically).

Example (Equational theory for symmetric cryptography)

Σ = A ∪ F ∪ {senc, sdec}, with senc and sdec of arity 2. (E: sdec(senc(M, K), K) = M)

  • t1 =free t2 iff t1 =syntactic t2.
  • a =free b for different constants a and b.
  • For above example: sdec(senc(X, Y ), Y ) =free X.

This is too coarse as we clearly want to identify those two terms. Hence, we will need to reason modulo equations.

16 / 54

slide-21
SLIDE 21

Equational Theory

Definition (Equation)

An equation is a pair of terms, written: t = t′, and a set of equations is called an equational theory (Σ, E). An equation can be oriented as t → t′ ∈

E or as t ← t′ ∈

E. Equations are usually oriented left to right for use in simplification.

17 / 54

slide-22
SLIDE 22

Equational Theory

Definition (Equation)

An equation is a pair of terms, written: t = t′, and a set of equations is called an equational theory (Σ, E). An equation can be oriented as t → t′ ∈

E or as t ← t′ ∈

E. Equations are usually oriented left to right for use in simplification.

Example (Peano natural numbers (continued))

The equations E defining the Peano natural numbers are: X + 0 = X X + s(Y ) = s(X + Y ) Rewriting s(s(0)) + s(0) using

E yields the equational derivation: s(s(0)) + s(0) =

17 / 54

slide-23
SLIDE 23

Equational Theory

Definition (Equation)

An equation is a pair of terms, written: t = t′, and a set of equations is called an equational theory (Σ, E). An equation can be oriented as t → t′ ∈

E or as t ← t′ ∈

E. Equations are usually oriented left to right for use in simplification.

Example (Peano natural numbers (continued))

The equations E defining the Peano natural numbers are: X + 0 = X X + s(Y ) = s(X + Y ) Rewriting s(s(0)) + s(0) using

E yields the equational derivation: s(s(0)) + s(0) = s(s(s(0)) + 0) =

17 / 54

slide-24
SLIDE 24

Equational Theory

Definition (Equation)

An equation is a pair of terms, written: t = t′, and a set of equations is called an equational theory (Σ, E). An equation can be oriented as t → t′ ∈

E or as t ← t′ ∈

E. Equations are usually oriented left to right for use in simplification.

Example (Peano natural numbers (continued))

The equations E defining the Peano natural numbers are: X + 0 = X X + s(Y ) = s(X + Y ) Rewriting s(s(0)) + s(0) using

E yields the equational derivation: s(s(0)) + s(0) = s(s(s(0)) + 0) = s(s(s(0))).

17 / 54

slide-25
SLIDE 25

Algebraic Properties

Example (Equations E)

{{M}K}(K)−1 = M ((K)−1)−1 = K { |{ |M| }K| }K = M exp(exp(B, X), Y ) = exp(exp(B, Y ), X)

Definition (Congruence, Equivalence, Quotient)

Set of equations E induces a congruence relation =E on terms and thus the equivalence class [t]E of a term modulo E. The quotient algebra TΣ(X)/=E interprets each term by its equivalence class.

  • Two terms are semantically equal iff that is a consequence of

E.

18 / 54

slide-26
SLIDE 26

Algebraic Properties

Example (Equations E)

{{M}K}(K)−1 = M ((K)−1)−1 = K { |{ |M| }K| }K = M exp(exp(B, X), Y ) = exp(exp(B, Y ), X)

Definition (Congruence, Equivalence, Quotient)

Set of equations E induces a congruence relation =E on terms and thus the equivalence class [t]E of a term modulo E. The quotient algebra TΣ(X)/=E interprets each term by its equivalence class.

  • Two terms are semantically equal iff that is a consequence of

E.

  • For the above example equations:
  • a =E b for any distinct constants a and b

18 / 54

slide-27
SLIDE 27

Algebraic Properties

Example (Equations E)

{{M}K}(K)−1 = M ((K)−1)−1 = K { |{ |M| }K| }K = M exp(exp(B, X), Y ) = exp(exp(B, Y ), X)

Definition (Congruence, Equivalence, Quotient)

Set of equations E induces a congruence relation =E on terms and thus the equivalence class [t]E of a term modulo E. The quotient algebra TΣ(X)/=E interprets each term by its equivalence class.

  • Two terms are semantically equal iff that is a consequence of

E.

  • For the above example equations:
  • a =E b for any distinct constants a and b
  • If m1 =E m2 then also h(m1) =E h(m2)

18 / 54

slide-28
SLIDE 28

Algebraic Properties

Example (Equations E)

{{M}K}(K)−1 = M ((K)−1)−1 = K { |{ |M| }K| }K = M exp(exp(B, X), Y ) = exp(exp(B, Y ), X)

Definition (Congruence, Equivalence, Quotient)

Set of equations E induces a congruence relation =E on terms and thus the equivalence class [t]E of a term modulo E. The quotient algebra TΣ(X)/=E interprets each term by its equivalence class.

  • Two terms are semantically equal iff that is a consequence of

E.

  • For the above example equations:
  • a =E b for any distinct constants a and b
  • If m1 =E m2 then also h(m1) =E h(m2)
  • {{M}(K)−1}K =E M

18 / 54

slide-29
SLIDE 29

Algebraic Properties

Example (Equations E)

{{M}K}(K)−1 = M ((K)−1)−1 = K { |{ |M| }K| }K = M exp(exp(B, X), Y ) = exp(exp(B, Y ), X)

Definition (Congruence, Equivalence, Quotient)

Set of equations E induces a congruence relation =E on terms and thus the equivalence class [t]E of a term modulo E. The quotient algebra TΣ(X)/=E interprets each term by its equivalence class.

  • Two terms are semantically equal iff that is a consequence of

E.

  • For the above example equations:
  • a =E b for any distinct constants a and b
  • If m1 =E m2 then also h(m1) =E h(m2)
  • {{M}(K)−1}K =E M
  • {

|{ |M| }exp(exp(g,Y ),X)| }exp(exp(g,X),Y ) =E M

18 / 54

slide-30
SLIDE 30

Substitution

Definition (Substitution)

A substitution σ is a function σ : X → TΣ(X) where σ(x) = x for finitely many x ∈ X. We write substitutions in postfix notation and homomorphically extend them to a mapping σ : TΣ(X) → TΣ(X) on terms: f (t1, . . . , tn)σ = f (t1σ, . . . , tnσ)

19 / 54

slide-31
SLIDE 31

Substitution

Definition (Substitution)

A substitution σ is a function σ : X → TΣ(X) where σ(x) = x for finitely many x ∈ X. We write substitutions in postfix notation and homomorphically extend them to a mapping σ : TΣ(X) → TΣ(X) on terms: f (t1, . . . , tn)σ = f (t1σ, . . . , tnσ)

Example (Applying a substitution)

Given substitution σ = {X → senc(M, K)} and the term t = sdec(X, K) we can apply the substitution and get tσ = sdec(senc(M, K), K).

19 / 54

slide-32
SLIDE 32

Substitution (continued)

Definition (Substitution composition)

We denote with στ the composition of substitutions σ and τ, i.e., τ ◦ σ.

Example (Substitution composition)

For substitutions σ = [x → f (y), y → z] and τ = [y → a, z → g(b)] we have στ = [x → f (a), y → g(b), z → g(b)].

20 / 54

slide-33
SLIDE 33

Position

Definition (Position)

A position p is a sequence of positive integers. The subterm t|p of a term t at position p is obtained as follows.

  • If p = [ ] is the empty sequence, then t|p = t.
  • If p = [i ] · p′ for a positive integer i and a sequence p′, and

t = f (t1, . . . , tn) for f ∈ Σ and 1 ≤ i ≤ n then t|p = ti|p′, else t|p does not exist.

Example (Position in a term)

For the term t = sdec(senc(M, K), K) we have five subterms: t|[ ] = t t|[1] = senc(M, K) t|[1,1] = M t|[1,2] = K t|[2] = K

21 / 54

slide-34
SLIDE 34

Graphical representation of positions in a term

Tree of subterms of sdec(senc(M, K)) and their positions. sdec(senc(M, K), K) [ ] [1] senc(M, K) [1, 1] M K [1, 2] K [2]

22 / 54

slide-35
SLIDE 35

Matching and Application

Definition (Matching)

A term t matches another term l if there is a subterm of t, i.e., t|p, such that there is a substitution σ so that t|p = lσ. We call σ the matching substitution.

23 / 54

slide-36
SLIDE 36

Matching and Application

Definition (Matching)

A term t matches another term l if there is a subterm of t, i.e., t|p, such that there is a substitution σ so that t|p = lσ. We call σ the matching substitution.

Definition (Application of a rule)

A rule (oriented equation) l → r is applicable on a term t, when t matches l. The result of such a rule application is the term t[rσ]p, where σ is the matching substitution.

23 / 54

slide-37
SLIDE 37

Unification

Definition (Unification)

We say that t ? = t′ is unifiable in (Σ, E) for t, t′ ∈ TΣ(X), if there is a substitution σ such that tσ =E t′σ and we call σ a unifier.

24 / 54

slide-38
SLIDE 38

Unification

Definition (Unification)

We say that t ? = t′ is unifiable in (Σ, E) for t, t′ ∈ TΣ(X), if there is a substitution σ such that tσ =E t′σ and we call σ a unifier. For syntactic unification (E = ∅) there is a most general unifier for two unifiable terms, and it is decidable whether they are unifiable.

24 / 54

slide-39
SLIDE 39

Unification

Definition (Unification)

We say that t ? = t′ is unifiable in (Σ, E) for t, t′ ∈ TΣ(X), if there is a substitution σ such that tσ =E t′σ and we call σ a unifier. For syntactic unification (E = ∅) there is a most general unifier for two unifiable terms, and it is decidable whether they are unifiable. Unification modulo theories (E = ∅) is much more complicated: undecidable in general, or potentially (infinitely) many unifiers.

24 / 54

slide-40
SLIDE 40

Unification

Definition (Unification)

We say that t ? = t′ is unifiable in (Σ, E) for t, t′ ∈ TΣ(X), if there is a substitution σ such that tσ =E t′σ and we call σ a unifier. For syntactic unification (E = ∅) there is a most general unifier for two unifiable terms, and it is decidable whether they are unifiable. Unification modulo theories (E = ∅) is much more complicated: undecidable in general, or potentially (infinitely) many unifiers. This is no good for automated analysis: we need to restrict

  • urselves.

24 / 54

slide-41
SLIDE 41

Termination of

E

Definition (Termination)

(Σ,

E) has infinite computations if there is a function a : N → TΣ(X) such that a(0) → →

E a(1) → → E a(2) → → E . . . → → E a(n) → → E a(n + 1) . . .

We say (Σ,

E) it is terminating when it does not have infinite computations.

Example (Termination)

For E = {a = b},

E is terminating. For E = {a = b, b = a},

E is not terminating.

25 / 54

slide-42
SLIDE 42

Confluence of

E

Definition (Confluence)

Confluence is the property that guarantees the order of applying equalities is immaterial, formally: ∀t, t1, t2.t →∗ t1 ∧ t →∗ t2 ⇒ ∃s.t1 →∗ s ∧ t2 →∗ s t t1 t2 s

Example (Confluence)

For E = {a = b, a = c}, we have that

E is not confluent, as b and c are reachable from a, but not joinable. For E = {a = b, a = c, b = c}, then

E is confluent.

26 / 54

slide-43
SLIDE 43

Equations in Tamarin

Tamarin supports (see Tamarin manual for details)

  • any user-defined equational theory that is convergent

(confluent and terminating) with finite variant property

  • special built-in theories: Diffie-Hellman exponentiation,

bilinear pairing, multisets, XOR (soon...)

Example (Tamarin Syntax)

functions: h/1, senc/2, sdec/2 equations: sdec(senc(m,k),k) = m builtins: diffie-hellman, bilinear-pairing, multiset /* There are also other convenient builtins: hashing, asymmetric-encryption, symmetric-encryption, signing, revealing-signing */

27 / 54

slide-44
SLIDE 44

Plan

1 Formal Models 2 Term Rewriting 3 Rewriting-based Protocol Syntax 4 The Dolev-Yao-Style Adversary 5 Protocol Semantics

28 / 54

slide-45
SLIDE 45

Multiset rewriting in Tamarin

In Tamarin, protocols are modeled using rewrite rules operating on multisets of facts: l

a

− → r where l, a, and r are multisets of facts, l is called the left hand side, r the right hand side, and a the actions of the rule. The rule’s left and right sides specify which facts are consumed or produced when executing the rule, the actions are recorded as event labels on the trace and are used to specify properties.

29 / 54

slide-46
SLIDE 46

Multiset rewriting in Tamarin: example

Example

  • rule 1:

Init()

− − − → A(′5′), C(′3′) (’x’ is a constant)

  • rule 2: A(x)

Step(x)

− − − − → B(x)

  • r in Tamarin syntax:

rule 1: [ ] --[ Init() ]-> [ A(’5’), C(’3’) ] rule 2: [ A(x) ] --[ Step(x) ]-> [ B(x) ] // A rule without action: rule 3: [ C(x) ] --> [ D(x) ]

30 / 54

slide-47
SLIDE 47

Fresh and public Terms

Definition (Fresh terms)

Agents generate fresh terms using fresh facts, denoted by Fr. These fresh terms represent randomness being used, are assumed unguessable and unique, i.e., can represent nonces. There is a countable supply of fresh terms, each as argument of a fresh fact, usable in rules. In Tamarin, fresh variables are prefixed with a ∼, e.g., ∼r.

Definition (Public terms)

We define public terms to be terms known to all participants of a

  • protocol. These include all agent names and all constants.

In Tamarin, public variables are prefixed with a $, e.g., $X.

31 / 54

slide-48
SLIDE 48

Communication and persistent facts

Messages are sent and received via Out (output to the network) and In (input from the network) facts, respectively.

Example (Input and Output)

rule 3: [ Key(x), In(y) ] --> [ Out( senc(y,x) ) ]

32 / 54

slide-49
SLIDE 49

Communication and persistent facts

Messages are sent and received via Out (output to the network) and In (input from the network) facts, respectively.

Example (Input and Output)

rule 3: [ Key(x), In(y) ] --> [ Out( senc(y,x) ) ] Facts can be linear or persistent.

  • Linear facts can only be consumed once
  • Persistent facts can be consumed infinitely often.

Persistent facts are marked with a ! in Tamarin, e.g.: rule key-reveal: [ !Ltk(~k) ] --[ Reveal(~k) ]-> [ Out(~k) ] By default, facts are linear.

32 / 54

slide-50
SLIDE 50

Well-formedness

Protocol rules must be well-formed.

Definition (Well-formedness)

For a protocol rule l

a

− → r to be well-formed, the following conditions must hold.

1 In and Fr, only occur in l. 2 Out only occurs in r. 3 Every variable in r or a that is not public must occur in l. 4 All occurrences of the same fact have the same arity, and the

same persistence.

33 / 54

slide-51
SLIDE 51

Example protocol: NSPK

Graphical:

A {NA, A}pk(B) {NA, NB}pk(A) {NB}pk(B) msc NSPK A

34 / 54

slide-52
SLIDE 52

Protocol rules

A {NA, A}pk(B) {NA, NB}pk(A) {NB}pk(B) msc NSPK A

[St A 1(A, tid, skA, pk(skB)), Fr(NA)] − → [St A 2(A, tid, skA, pk(skB), NA), Out({NA, A}pk(skB)] [St A 2(A, tid, skA, pk(skB), NA), In({NA, NB}pk(skA))] − → [St A 3(A, tid, skA, pk(skB), NA, NB)] [St A 3(A, tid, skA, pk(skB), NA, NB)] − → [St A 4(A, tid, skA, pk(skB), NA, NB), Out({NB}pk(skB))] Be careful: pattern matching!

35 / 54

slide-53
SLIDE 53

PKIs and longterm data

A B {NA, A}pk(B) {NA, NB}pk(A) {NB}pk(B) msc NSPK

Generate longterm keys and public keys. [Fr(skR)] − → [!Ltk(R, skR), Out(pk(skR))]

36 / 54

slide-54
SLIDE 54

Initialization of protocol roles

A {NA, A}pk(B) {NA, NB}pk(A) {NB}pk(B) msc NSPK A

[Fr(id), !Ltk(A, skA), !Ltk(B, skB)]

Create(A,id)

− − − − − − − → [St A 1(A, id, skA, pk(skB))]

37 / 54

slide-55
SLIDE 55

Plan

1 Formal Models 2 Term Rewriting 3 Rewriting-based Protocol Syntax 4 The Dolev-Yao-Style Adversary 5 Protocol Semantics

38 / 54

slide-56
SLIDE 56

Modeling the Adversary

Initiator Protocol specification Protocol execution Responder

Alice as initiator Alice as initiator Bob as initiator Bob as responder Charlie as responder request {| m |}k

cryptographic primitives communication model agent model Network

39 / 54

slide-57
SLIDE 57

Danny Dolev & Andrew C. Yao

On the Security of Public Key Protocols (IEEE Trans. Inf. Th., 1983)

  • Consider a public key system wherre for every user X
  • there is a public encryption function EX

— every user can apply this function.

  • and a private decryption function DX

— only X can apply this function.

  • These functions have the property that EXDX = DXEX = 1.
  • The Dolev-Yao adversary:
  • Controls the network (read, intercept, send)
  • Is also a user, called Z
  • Can apply EX for any X
  • Can apply DZ

40 / 54

slide-58
SLIDE 58

Dolev-Yao Deduction

Definition (Adversary Knowledge)

We represent the adversary knowing a term t by a fact K(t). The set of the adversary’s knowledge is K and contains persistent facts

  • f the form K(t).

Definition (Adversary Knowledge Derivation)

The adversary can use the following inference rules on the state: Fr(x) K(x) Out(x) K(x) K(x) In(x) K(t1) . . . K(tk) K(f (t1, ..., tk)) ∀f ∈ Σ(k-ary) N.B. terms are used modulo the equational theory. So, given K(< t1, t2 >) the operator fst can be applied, and result is K(t1).

41 / 54

slide-59
SLIDE 59

Dolev-Yao Deduction

Example

Given K(x), K({ |b, n| }k), K(k), K(m) ∈ K. Use the equational theory E (containing decryption and pairing) to derive K({ |m| }prf (n,x)) where prf is some (constructible) function. K(m) K({ |b, n| }k) K(k) K({ |{ |b, n| }k| }k) K(b, n) E K(snd(b, n)) K(n) E K(x) K(prf (n, x)) K({ |m| }prf (n,x))

42 / 54

slide-60
SLIDE 60

Dolev-Yao Deduction

Example

Given K(x), K({ |b, n| }k), K(k), K(m) ∈ K. Use the equational theory E (containing decryption and pairing) to derive K({ |m| }prf (n,x)) where prf is some (constructible) function. K(m) K({ |b, n| }k) K(k) K({ |{ |b, n| }k| }k) K(b, n) E K(snd(b, n)) K(n) E K(x) K(prf (n, x)) K({ |m| }prf (n,x))

42 / 54

slide-61
SLIDE 61

Dolev-Yao Deduction

Example

Given K(x), K({ |b, n| }k), K(k), K(m) ∈ K. Use the equational theory E (containing decryption and pairing) to derive K({ |m| }prf (n,x)) where prf is some (constructible) function. K(m) K({ |b, n| }k) K(k) K({ |{ |b, n| }k| }k) K(b, n) E K(snd(b, n)) K(n) E K(x) K(prf (n, x)) K({ |m| }prf (n,x))

42 / 54

slide-62
SLIDE 62

Dolev-Yao Deduction

Example

Given K(x), K({ |b, n| }k), K(k), K(m) ∈ K. Use the equational theory E (containing decryption and pairing) to derive K({ |m| }prf (n,x)) where prf is some (constructible) function. K(m) K({ |b, n| }k) K(k) K({ |{ |b, n| }k| }k) K(b, n) E K(snd(b, n)) K(n) E K(x) K(prf (n, x)) K({ |m| }prf (n,x))

42 / 54

slide-63
SLIDE 63

Dolev-Yao Deduction

Example

Given K(x), K({ |b, n| }k), K(k), K(m) ∈ K. Use the equational theory E (containing decryption and pairing) to derive K({ |m| }prf (n,x)) where prf is some (constructible) function. K(m) K({ |b, n| }k) K(k) K({ |{ |b, n| }k| }k) K(b, n) E K(snd(b, n)) K(n) E K(x) K(prf (n, x)) K({ |m| }prf (n,x))

42 / 54

slide-64
SLIDE 64

Dolev-Yao Deduction

Example

Given K(x), K({ |b, n| }k), K(k), K(m) ∈ K. Use the equational theory E (containing decryption and pairing) to derive K({ |m| }prf (n,x)) where prf is some (constructible) function. K(m) K({ |b, n| }k) K(k) K({ |{ |b, n| }k| }k) K(b, n) E K(snd(b, n)) K(n) E K(x) K(prf (n, x)) K({ |m| }prf (n,x))

42 / 54

slide-65
SLIDE 65

Dolev-Yao Deduction

Example

Given K(x), K({ |b, n| }k), K(k), K(m) ∈ K. Use the equational theory E (containing decryption and pairing) to derive K({ |m| }prf (n,x)) where prf is some (constructible) function. K(m) K({ |b, n| }k) K(k) K({ |{ |b, n| }k| }k) K(b, n) E K(snd(b, n)) K(n) E K(x) K(prf (n, x)) K({ |m| }prf (n,x))

42 / 54

slide-66
SLIDE 66

Dolev-Yao Deduction

Example

Given K(x), K({ |b, n| }k), K(k), K(m) ∈ K. Use the equational theory E (containing decryption and pairing) to derive K({ |m| }prf (n,x)) where prf is some (constructible) function. K(m) K({ |b, n| }k) K(k) K({ |{ |b, n| }k| }k) K(b, n) E K(snd(b, n)) K(n) E K(x) K(prf (n, x)) K({ |m| }prf (n,x))

42 / 54

slide-67
SLIDE 67

Dolev-Yao Deduction

Example

Given K(x), K({ |b, n| }k), K(k), K(m) ∈ K. Use the equational theory E (containing decryption and pairing) to derive K({ |m| }prf (n,x)) where prf is some (constructible) function. K(m) K({ |b, n| }k) K(k) K({ |{ |b, n| }k| }k) K(b, n) E K(snd(b, n)) K(n) E K(x) K(prf (n, x)) K({ |m| }prf (n,x))

42 / 54

slide-68
SLIDE 68

Dolev-Yao Deduction

Example

Given K(x), K({ |b, n| }k), K(k), K(m) ∈ K. Use the equational theory E (containing decryption and pairing) to derive K({ |m| }prf (n,x)) where prf is some (constructible) function. K(m) K({ |b, n| }k) K(k) K({ |{ |b, n| }k| }k) K(b, n) E K(snd(b, n)) K(n) E K(x) K(prf (n, x)) K({ |m| }prf (n,x))

42 / 54

slide-69
SLIDE 69

Dolev-Yao Deduction

Definition (Adversary Knowledge Derivation as rewrite rules)

[Fr(x)] − → [K(x)] [Out(x)] − → [K(x)] [K(x)]

K(x)

− − − → [In(x)] [K(t1), . . . , K(tk)] − → [K(f (t1, . . . , tk))] ∀f ∈ Σ(k-ary) Note: the adversary deriving a message and then sending it (via In) is annotated with the action fact K (identical to its state fact

  • f the same name!); we use this for our reasoning later.

43 / 54

slide-70
SLIDE 70

Plan

1 Formal Models 2 Term Rewriting 3 Rewriting-based Protocol Syntax 4 The Dolev-Yao-Style Adversary 5 Protocol Semantics

44 / 54

slide-71
SLIDE 71

Outlook

We will define a trace semantics for protocols in terms of labeled transition systems.

45 / 54

slide-72
SLIDE 72

Labeled Multiset Rewriting

Definition (Multiset)

A multiset is a set of elements, each imbued with a multiplicity. Instead of stating an explicit multiplicity, we may also simply write elements multiple times. We use \♯ for the multiset difference, and ∪♯ for the union.

Definition (Labeled multiset rewriting)

A labeled multiset rewriting rule is a triple, l, a, r, each of which is a multisets of facts, and written as: l

a

− → r

46 / 54

slide-73
SLIDE 73

State

Definition (State)

A state is a multiset of facts.

Example (State)

St R 1(A, id, k1, k2), Out(k1), Out(k2), Out(k2)

47 / 54

slide-74
SLIDE 74

Ground substitution

Definition (Ground substitutition)

A substitution is called ground when each variable is mapped to a ground term.

Definition (Ground instances)

We call the ground instances of a term t all those terms tσ that are ground for some (ground) substitution. A fact F is ground if all its terms are ground. The multiset of all ground facts is G♯. For a rule, its ground instances are those where all facts are ground, and we use ginsts(R) for the set of all ground instances of the set of rules R.

48 / 54

slide-75
SLIDE 75

Fresh rule

Definition (Fresh rule)

We define a special rule that creates fresh facts. This is the only rule allowed to produce fresh facts and has no precondition: [] − → [Fr(N)] Note that each created nonce N is fresh, and thus unique.

49 / 54

slide-76
SLIDE 76

Labeled operational semantics - single step

Definition (Steps)

For a multiset rewrite system R we define the labeled transition relation step, steps(R) ⊆ G♯ × ginsts(R) × G♯, as follows: l

a

→ r ∈ ginsts(R), l ⊆♯ S, S′ = (S \♯ l) ∪♯ r (S, l

a

→ r, S′) ∈ steps(R)

50 / 54

slide-77
SLIDE 77

Executions

Definition (Execution)

An execution of R is an alternating sequence S0, (l1

a1

→ r1), S1, . . . , Sk−1(lk

ak

→ rk), Sk

  • f states and multiset rewrite rule instances with

(1) S0 = ∅ (2) ∀i : (Si−1, li

ai

→ ri, Si) ∈ steps(R) (3) Fresh names are unique, i.e., for n fresh, and (li

ai

→ ri) = (lj

aj

→ rj) = ([] → [Fr(n)]) it holds that i = j.

51 / 54

slide-78
SLIDE 78

Trace

Definition (Trace)

The trace of an execution S0, (l1

a1

→ r1), S1, . . . , Sk−1(lk

ak

→ rk), Sk is defined by the sequence of the multisets of its action labels, i.e.: a1; a2; . . . ; ak

52 / 54

slide-79
SLIDE 79

Semantics of a rule

Two parts:

  • State transition
  • Trace event

53 / 54

slide-80
SLIDE 80

Semantics of a rule

Two parts:

  • State transition
  • Trace event

Example (Transition example)

[St I 2(A, 17, k), In(m)]

Recv(A,m)

− − − − − − → [St I 3(A, 17, k, m)] Agent state changes, and In fact is consumed, while Recv action is added to trace.

53 / 54

slide-81
SLIDE 81

References

  • David Basin, Cas Cremers, Jannik Dreier, and Ralf Sasse.

Symbolically Analyzing Security Protocols using TAMARIN, SIGLOG News, 2017.

  • Benedikt Schmidt, Simon Meier, Cas Cremers, and David
  • Basin. Automated analysis of Diffie-Hellman Protocols and

Advanced Security Properties, Proceedings of the 25th IEEE Computer Security Foundations Symposium (CSF) 2012.

  • Gavin Lowe. A hierarchy of authentication specifications. In

Proceedings of the 10th IEEE Computer Security Foundations Workshop (CSFW’97), pages 31–43. IEEE CS Press, 1997.

  • Peter Ryan, Steve Schneider, Michael Goldsmith, Gawin Lowe,

and Bill Roscoe. Modelling and Analysis of Security Protocols, Addison-Wesley, 2000.

54 / 54