Automatic Security Analyses of Network Protocols with Tamarin-Prover - - PowerPoint PPT Presentation

automatic security analyses of network protocols with
SMART_READER_LITE
LIVE PREVIEW

Automatic Security Analyses of Network Protocols with Tamarin-Prover - - PowerPoint PPT Presentation

1/18 Automatic Security Analyses of Network Protocols with Tamarin-Prover Introductory Talk Eike Stadtlnder May 17, 2018 2/18 Outline Motivation Tamarin-Prover Overview Language and Environment State Demo Goals for the Lab . 3/18


slide-1
SLIDE 1

1/18

Automatic Security Analyses of Network Protocols with Tamarin-Prover

Introductory Talk Eike Stadtländer May 17, 2018

slide-2
SLIDE 2

2/18

Outline

Motivation Tamarin-Prover Overview Language and Environment State Demo Goals for the Lab

slide-3
SLIDE 3

3/18

The Thing with Proofs

Consider the following “proof”: i i i i i Thus, clearly . ⌢

Lesson:

It is easy to make subtle mistakes in proofs which makes them diffjcult to verify.

slide-4
SLIDE 4

3/18

The Thing with Proofs

Consider the following “proof”: i i i i i Thus, clearly . ⌢

Lesson:

It is easy to make subtle mistakes in proofs which makes them diffjcult to verify.

slide-5
SLIDE 5

3/18

The Thing with Proofs

Consider the following “proof”: −1 1 = 1 −1 i i i i i Thus, clearly . ⌢

Lesson:

It is easy to make subtle mistakes in proofs which makes them diffjcult to verify.

slide-6
SLIDE 6

3/18

The Thing with Proofs

Consider the following “proof”: −1 1 = 1 −1 ⇒ √ −1 1 = √ 1 −1 i i i i i Thus, clearly . ⌢

Lesson:

It is easy to make subtle mistakes in proofs which makes them diffjcult to verify.

slide-7
SLIDE 7

3/18

The Thing with Proofs

Consider the following “proof”: −1 1 = 1 −1 ⇒ √ −1 1 = √ 1 −1 ⇒ √−1 √ 1 = √ 1 √−1 i i i i i Thus, clearly . ⌢

Lesson:

It is easy to make subtle mistakes in proofs which makes them diffjcult to verify.

slide-8
SLIDE 8

3/18

The Thing with Proofs

Consider the following “proof”: −1 1 = 1 −1 ⇒ √ −1 1 = √ 1 −1 ⇒ √−1 √ 1 = √ 1 √−1 ⇒ i 1 = 1 i i i i Thus, clearly . ⌢

Lesson:

It is easy to make subtle mistakes in proofs which makes them diffjcult to verify.

slide-9
SLIDE 9

3/18

The Thing with Proofs

Consider the following “proof”: −1 1 = 1 −1 ⇒ √ −1 1 = √ 1 −1 ⇒ √−1 √ 1 = √ 1 √−1 ⇒ i 1 = 1 i ⇒ −1 = i2 = i i = 1 Thus, clearly . ⌢

Lesson:

It is easy to make subtle mistakes in proofs which makes them diffjcult to verify.

slide-10
SLIDE 10

3/18

The Thing with Proofs

Consider the following “proof”: −1 1 = 1 −1 ⇒ √ −1 1 = √ 1 −1 ⇒ √−1 √ 1 = √ 1 √−1 ⇒ i 1 = 1 i ⇒ −1 = i2 = i i = 1 Thus, clearly −1 = 1. ⌢

Lesson:

It is easy to make subtle mistakes in proofs which makes them diffjcult to verify.

slide-11
SLIDE 11

3/18

The Thing with Proofs

Consider the following “proof”: −1 1 = 1 −1 ⇒ √ −1 1 = √ 1 −1 ⇒ √−1 √ 1 = √ 1 √−1 ⇒ i 1 = 1 i ⇒ −1 = i2 = i i = 1 Thus, clearly −1 = 1. ⌢

Lesson:

It is easy to make subtle mistakes in proofs which makes them diffjcult to verify.

slide-12
SLIDE 12

3/18

The Thing with Proofs

Consider the following “proof”: −1 1 = 1 −1 ⇒ √ −1 1 = √ 1 −1 ⇒ √−1 √ 1 = √ 1 √−1 ⇒ i 1 = 1 i ⇒ −1 = i2 = i i = 1 Thus, clearly −1 = 1. ⌢

Lesson:

It is easy to make subtle mistakes in proofs which makes them diffjcult to verify.

slide-13
SLIDE 13

3/18

The Thing with Proofs

Consider the following “proof”: −1 1 = 1 −1 ⇒ √ −1 1 = √ 1 −1 ⇒ √−1 √ 1 = √ 1 √−1 ⇒ i 1 = 1 i ⇒ −1 = i2 = i i = 1 Thus, clearly −1 = 1. ⌢

Lesson:

It is easy to make subtle mistakes in proofs which makes them diffjcult to verify for humans, at least.

slide-14
SLIDE 14

4/18

Experts on Security Proofs1

  • “In our opinion, many proofs in cryptography have become

essentially unverifjable. Our fjeld may be approaching a crisis

  • f rigor. [...] game-playing may play a role in the answer.”

Bellare and Rogaway 2004

  • “We generate more proofs than we carefully verify (and as a

consequence some of our published proofs are incorrect).” Halevi 2005

1Slide inspired by Barthe (2014)

slide-15
SLIDE 15

4/18

Experts on Security Proofs1

  • “In our opinion, many proofs in cryptography have become

essentially unverifjable. Our fjeld may be approaching a crisis

  • f rigor. [...] game-playing may play a role in the answer.”

Bellare and Rogaway 2004

  • “We generate more proofs than we carefully verify (and as a

consequence some of our published proofs are incorrect).” Halevi 2005

1Slide inspired by Barthe (2014)

slide-16
SLIDE 16

4/18

Experts on Security Proofs1

  • “In our opinion, many proofs in cryptography have become

essentially unverifjable. Our fjeld may be approaching a crisis

  • f rigor. [...] game-playing may play a role in the answer.”

Bellare and Rogaway 2004

  • “We generate more proofs than we carefully verify (and as a

consequence some of our published proofs are incorrect).” Halevi 2005

1Slide inspired by Barthe (2014)

slide-17
SLIDE 17

5/18

The Cryptographer’s Wish List

Wouldn’t it be great if we had a machine that

  • can verify a proof
  • can complete a partial proof
  • can fjnd a proof
  • can fjnd counter examples for disproof
  • f statements or security properties for a given protocol.

Goal: Extensible framework for plug-and-play security.

slide-18
SLIDE 18

5/18

The Cryptographer’s Wish List

Wouldn’t it be great if we had a machine that

  • can verify a proof
  • can complete a partial proof
  • can fjnd a proof
  • can fjnd counter examples for disproof
  • f statements or security properties for a given protocol.

Goal: Extensible framework for plug-and-play security.

slide-19
SLIDE 19

5/18

The Cryptographer’s Wish List

Wouldn’t it be great if we had a machine that

  • can verify a proof
  • can complete a partial proof
  • can fjnd a proof
  • can fjnd counter examples for disproof
  • f statements or security properties for a given protocol.

Goal: Extensible framework for plug-and-play security.

slide-20
SLIDE 20

5/18

The Cryptographer’s Wish List

Wouldn’t it be great if we had a machine that

  • can verify a proof
  • can complete a partial proof
  • can fjnd a proof
  • can fjnd counter examples for disproof
  • f statements or security properties for a given protocol.

Goal: Extensible framework for plug-and-play security.

slide-21
SLIDE 21

5/18

The Cryptographer’s Wish List

Wouldn’t it be great if we had a machine that

  • can verify a proof
  • can complete a partial proof
  • can fjnd a proof
  • can fjnd counter examples for disproof
  • f statements or security properties for a given protocol.

Goal: Extensible framework for plug-and-play security.

slide-22
SLIDE 22

5/18

The Cryptographer’s Wish List

Wouldn’t it be great if we had a machine that

  • can verify a proof
  • can complete a partial proof
  • can fjnd a proof
  • can fjnd counter examples for disproof
  • f statements or security properties for a given protocol.

Goal: Extensible framework for plug-and-play security.

slide-23
SLIDE 23

6/18

Automatic Provers - A Status Quo

  • Mathematics: Coq
  • based on homotopy type theory
  • Univalent Foundations of Mathematics, Vladimir Voevodsky
  • ProVerif, CryptoVerif, ...
  • EasyCrypt
  • e.g. “Proving the TLS Handshake Secure (as it is)”

(Bhargavan et al. 2014)

  • Tamarin-Prover
  • based on constraint logic
  • symbolic analysis
  • e.g. “A Comprehensive Symbolic Analysis of TLS 1.3”

(Cremers et al. 2017)

Our Goal: Analyse IPSec protocol using automatic provers

slide-24
SLIDE 24

6/18

Automatic Provers - A Status Quo

  • Mathematics: Coq
  • based on homotopy type theory
  • Univalent Foundations of Mathematics, Vladimir Voevodsky
  • ProVerif, CryptoVerif, ...
  • EasyCrypt
  • e.g. “Proving the TLS Handshake Secure (as it is)”

(Bhargavan et al. 2014)

  • Tamarin-Prover
  • based on constraint logic
  • symbolic analysis
  • e.g. “A Comprehensive Symbolic Analysis of TLS 1.3”

(Cremers et al. 2017)

Our Goal: Analyse IPSec protocol using automatic provers

slide-25
SLIDE 25

6/18

Automatic Provers - A Status Quo

  • Mathematics: Coq
  • based on homotopy type theory
  • Univalent Foundations of Mathematics, Vladimir Voevodsky
  • ProVerif, CryptoVerif, ...
  • EasyCrypt
  • e.g. “Proving the TLS Handshake Secure (as it is)”

(Bhargavan et al. 2014)

  • Tamarin-Prover
  • based on constraint logic
  • symbolic analysis
  • e.g. “A Comprehensive Symbolic Analysis of TLS 1.3”

(Cremers et al. 2017)

Our Goal: Analyse IPSec protocol using automatic provers

slide-26
SLIDE 26

6/18

Automatic Provers - A Status Quo

  • Mathematics: Coq
  • based on homotopy type theory
  • Univalent Foundations of Mathematics, Vladimir Voevodsky
  • ProVerif, CryptoVerif, ...
  • EasyCrypt
  • e.g. “Proving the TLS Handshake Secure (as it is)”

(Bhargavan et al. 2014)

  • Tamarin-Prover
  • based on constraint logic
  • symbolic analysis
  • e.g. “A Comprehensive Symbolic Analysis of TLS 1.3”

(Cremers et al. 2017)

Our Goal: Analyse IPSec protocol using automatic provers

slide-27
SLIDE 27

6/18

Automatic Provers - A Status Quo

  • Mathematics: Coq
  • based on homotopy type theory
  • Univalent Foundations of Mathematics, Vladimir Voevodsky
  • ProVerif, CryptoVerif, ...
  • EasyCrypt
  • e.g. “Proving the TLS Handshake Secure (as it is)”

(Bhargavan et al. 2014)

  • Tamarin-Prover
  • based on constraint logic
  • symbolic analysis
  • e.g. “A Comprehensive Symbolic Analysis of TLS 1.3”

(Cremers et al. 2017)

Our Goal: Analyse IPSec protocol using automatic provers

slide-28
SLIDE 28

6/18

Automatic Provers - A Status Quo

  • Mathematics: Coq
  • based on homotopy type theory
  • Univalent Foundations of Mathematics, Vladimir Voevodsky
  • ProVerif, CryptoVerif, ...
  • EasyCrypt
  • e.g. “Proving the TLS Handshake Secure (as it is)”

(Bhargavan et al. 2014)

  • Tamarin-Prover
  • based on constraint logic
  • symbolic analysis
  • e.g. “A Comprehensive Symbolic Analysis of TLS 1.3”

(Cremers et al. 2017)

Our Goal: Analyse IPSec protocol using automatic provers

slide-29
SLIDE 29

6/18

Automatic Provers - A Status Quo

  • Mathematics: Coq
  • based on homotopy type theory
  • Univalent Foundations of Mathematics, Vladimir Voevodsky
  • ProVerif, CryptoVerif, ...
  • EasyCrypt
  • e.g. “Proving the TLS Handshake Secure (as it is)”

(Bhargavan et al. 2014)

  • Tamarin-Prover
  • based on constraint logic
  • symbolic analysis
  • e.g. “A Comprehensive Symbolic Analysis of TLS 1.3”

(Cremers et al. 2017)

Our Goal: Analyse IPSec protocol using automatic provers

slide-30
SLIDE 30

6/18

Automatic Provers - A Status Quo

  • Mathematics: Coq
  • based on homotopy type theory
  • Univalent Foundations of Mathematics, Vladimir Voevodsky
  • ProVerif, CryptoVerif, ...
  • EasyCrypt
  • e.g. “Proving the TLS Handshake Secure (as it is)”

(Bhargavan et al. 2014)

  • Tamarin-Prover
  • based on constraint logic
  • symbolic analysis
  • e.g. “A Comprehensive Symbolic Analysis of TLS 1.3”

(Cremers et al. 2017)

Our Goal: Analyse IPSec protocol using automatic provers

slide-31
SLIDE 31

6/18

Automatic Provers - A Status Quo

  • Mathematics: Coq
  • based on homotopy type theory
  • Univalent Foundations of Mathematics, Vladimir Voevodsky
  • ProVerif, CryptoVerif, ...
  • EasyCrypt
  • e.g. “Proving the TLS Handshake Secure (as it is)”

(Bhargavan et al. 2014)

  • Tamarin-Prover
  • based on constraint logic
  • symbolic analysis
  • e.g. “A Comprehensive Symbolic Analysis of TLS 1.3”

(Cremers et al. 2017)

Our Goal: Analyse IPSec protocol using automatic provers

slide-32
SLIDE 32

6/18

Automatic Provers - A Status Quo

  • Mathematics: Coq
  • based on homotopy type theory
  • Univalent Foundations of Mathematics, Vladimir Voevodsky
  • ProVerif, CryptoVerif, ...
  • EasyCrypt
  • e.g. “Proving the TLS Handshake Secure (as it is)”

(Bhargavan et al. 2014)

  • Tamarin-Prover
  • based on constraint logic
  • symbolic analysis
  • e.g. “A Comprehensive Symbolic Analysis of TLS 1.3”

(Cremers et al. 2017)

Our Goal: Analyse IPSec protocol using automatic provers

slide-33
SLIDE 33

6/18

Automatic Provers - A Status Quo

  • Mathematics: Coq
  • based on homotopy type theory
  • Univalent Foundations of Mathematics, Vladimir Voevodsky
  • ProVerif, CryptoVerif, ...
  • EasyCrypt
  • e.g. “Proving the TLS Handshake Secure (as it is)”

(Bhargavan et al. 2014)

  • Tamarin-Prover
  • based on constraint logic
  • symbolic analysis
  • e.g. “A Comprehensive Symbolic Analysis of TLS 1.3”

(Cremers et al. 2017)

Our Goal: Analyse IPSec protocol using automatic provers

slide-34
SLIDE 34

6/18

Automatic Provers - A Status Quo

  • Mathematics: Coq
  • based on homotopy type theory
  • Univalent Foundations of Mathematics, Vladimir Voevodsky
  • ProVerif, CryptoVerif, ...
  • EasyCrypt
  • e.g. “Proving the TLS Handshake Secure (as it is)”

(Bhargavan et al. 2014)

  • Tamarin-Prover
  • based on constraint logic
  • symbolic analysis
  • e.g. “A Comprehensive Symbolic Analysis of TLS 1.3”

(Cremers et al. 2017)

Our Goal: Analyse IPSec protocol using automatic provers

slide-35
SLIDE 35

7/18

Tamarin

Brocken Inaglory, edited by Fir0002, edited by Brocken Inaglory (https://commons.wikimedia.org/wiki/File:Tamarin_portrait_2_edit3.jpg) https://creativecommons.org/licenses/by-sa/4.0/legalcode

slide-36
SLIDE 36

8/18

The Cryptographer’s Wish List

Tamarin-Prover can verify a proof ? complete a partial proof fjnd a valid proof fjnd a counter example for disproving

  • f statements or security properties for a given protocol.

(Tamarin-Prover Manual, Basin et al. 2018) However, Tamarin-Prover is not guaranteed to terminate.

slide-37
SLIDE 37

8/18

The Cryptographer’s Wish List

Tamarin-Prover can ✗ verify a proof ? complete a partial proof fjnd a valid proof fjnd a counter example for disproving

  • f statements or security properties for a given protocol.

(Tamarin-Prover Manual, Basin et al. 2018) However, Tamarin-Prover is not guaranteed to terminate.

slide-38
SLIDE 38

8/18

The Cryptographer’s Wish List

Tamarin-Prover can ✗ verify a proof ? complete a partial proof fjnd a valid proof fjnd a counter example for disproving

  • f statements or security properties for a given protocol.

(Tamarin-Prover Manual, Basin et al. 2018) However, Tamarin-Prover is not guaranteed to terminate.

slide-39
SLIDE 39

8/18

The Cryptographer’s Wish List

Tamarin-Prover can ✗ verify a proof ? complete a partial proof ✓ fjnd a valid proof fjnd a counter example for disproving

  • f statements or security properties for a given protocol.

(Tamarin-Prover Manual, Basin et al. 2018) However, Tamarin-Prover is not guaranteed to terminate.

slide-40
SLIDE 40

8/18

The Cryptographer’s Wish List

Tamarin-Prover can ✗ verify a proof ? complete a partial proof ✓ fjnd a valid proof ✓ fjnd a counter example for disproving

  • f statements or security properties for a given protocol.

(Tamarin-Prover Manual, Basin et al. 2018) However, Tamarin-Prover is not guaranteed to terminate.

slide-41
SLIDE 41

8/18

The Cryptographer’s Wish List

Tamarin-Prover can ✗ verify a proof ? complete a partial proof ✓ fjnd a valid proof ✓ fjnd a counter example for disproving

  • f statements or security properties for a given protocol.

(Tamarin-Prover Manual, Basin et al. 2018) However, Tamarin-Prover is not guaranteed to terminate.

slide-42
SLIDE 42

9/18

The Language of Tamarin-Prover

Anatomy of Tamarin Scripts

A script for Tamarin-Prover is a text fjle with the extension .spthy (stands for security protocol theory). theory TheoryName begin # stuff goes here end Constructs

  • Variables, Constants
  • Function symbols
  • Equations
  • Rules
  • Axioms
  • Lemmata
  • etc.

During execution, the state of Tamarin is a multiset of facts.

slide-43
SLIDE 43

9/18

The Language of Tamarin-Prover

Anatomy of Tamarin Scripts

A script for Tamarin-Prover is a text fjle with the extension .spthy. (stands for security protocol theory). theory TheoryName begin # stuff goes here end Constructs

  • Variables, Constants
  • Function symbols
  • Equations
  • Rules
  • Axioms
  • Lemmata
  • etc.

During execution, the state of Tamarin is a multiset of facts.

slide-44
SLIDE 44

9/18

The Language of Tamarin-Prover

Anatomy of Tamarin Scripts

A script for Tamarin-Prover is a text fjle with the extension .spthy (stands for security protocol theory). theory TheoryName begin # stuff goes here end Constructs

  • Variables, Constants
  • Function symbols
  • Equations
  • Rules
  • Axioms
  • Lemmata
  • etc.

During execution, the state of Tamarin is a multiset of facts.

slide-45
SLIDE 45

9/18

The Language of Tamarin-Prover

Anatomy of Tamarin Scripts

A script for Tamarin-Prover is a text fjle with the extension .spthy (stands for security protocol theory). theory TheoryName begin # stuff goes here end Constructs

  • Variables, Constants
  • Function symbols
  • Equations
  • Rules
  • Axioms
  • Lemmata
  • etc.

During execution, the state of Tamarin is a multiset of facts.

slide-46
SLIDE 46

9/18

The Language of Tamarin-Prover

Anatomy of Tamarin Scripts

A script for Tamarin-Prover is a text fjle with the extension .spthy (stands for security protocol theory). theory TheoryName begin # stuff goes here end Constructs

  • Variables, Constants
  • Function symbols
  • Equations
  • Rules
  • Axioms
  • Lemmata
  • etc.

During execution, the state of Tamarin is a multiset of facts.

slide-47
SLIDE 47

9/18

The Language of Tamarin-Prover

Anatomy of Tamarin Scripts

A script for Tamarin-Prover is a text fjle with the extension .spthy (stands for security protocol theory). theory TheoryName begin # stuff goes here end Constructs

  • Variables, Constants
  • Function symbols
  • Equations
  • Rules
  • Axioms
  • Lemmata
  • etc.

During execution, the state of Tamarin is a multiset of facts.

slide-48
SLIDE 48

9/18

The Language of Tamarin-Prover

Anatomy of Tamarin Scripts

A script for Tamarin-Prover is a text fjle with the extension .spthy (stands for security protocol theory). theory TheoryName begin # stuff goes here end Constructs

  • Variables, Constants
  • Function symbols
  • Equations
  • Rules
  • Axioms
  • Lemmata
  • etc.

During execution, the state of Tamarin is a multiset of facts.

slide-49
SLIDE 49

10/18

The Language of Tamarin-Prover

Variables and Constants

'g' constants, e.g. DH group element m messages, e.g. encrypted data, plaintexts ~x random variables, e.g. nonces, private keys $S publicly known variables, e.g. server identity #i temporal variable, e.g. to determine the order in which events happened

slide-50
SLIDE 50

10/18

The Language of Tamarin-Prover

Variables and Constants

'g' constants, e.g. DH group element m messages, e.g. encrypted data, plaintexts ~x random variables, e.g. nonces, private keys $S publicly known variables, e.g. server identity #i temporal variable, e.g. to determine the order in which events happened

slide-51
SLIDE 51

10/18

The Language of Tamarin-Prover

Variables and Constants

'g' constants, e.g. DH group element m messages, e.g. encrypted data, plaintexts ~x random variables, e.g. nonces, private keys $S publicly known variables, e.g. server identity #i temporal variable, e.g. to determine the order in which events happened

slide-52
SLIDE 52

10/18

The Language of Tamarin-Prover

Variables and Constants

'g' constants, e.g. DH group element m messages, e.g. encrypted data, plaintexts ~x random variables, e.g. nonces, private keys $S publicly known variables, e.g. server identity #i temporal variable, e.g. to determine the order in which events happened

slide-53
SLIDE 53

10/18

The Language of Tamarin-Prover

Variables and Constants

'g' constants, e.g. DH group element m messages, e.g. encrypted data, plaintexts ~x random variables, e.g. nonces, private keys $S publicly known variables, e.g. server identity #i temporal variable, e.g. to determine the order in which events happened

slide-54
SLIDE 54

10/18

The Language of Tamarin-Prover

Variables and Constants

'g' constants, e.g. DH group element m messages, e.g. encrypted data, plaintexts ~x random variables, e.g. nonces, private keys $S publicly known variables, e.g. server identity #i temporal variable, e.g. to determine the order in which events happened

slide-55
SLIDE 55

11/18

The Language of Tamarin-Prover

Rules

rule RuleIdentifier: [ Premise Facts ]

  • -[ Action Facts ]->

# can be abbreviated by --> [ Conclusion Facts ] The facts In(...) and Out(...) represent messages received or sent over an unprotected channel, respectively. The fact Fr(...) generates fresh variables.

slide-56
SLIDE 56

11/18

The Language of Tamarin-Prover

Rules

rule RuleIdentifier: [ Premise Facts ]

  • -[ Action Facts ]->

# can be abbreviated by --> [ Conclusion Facts ] The facts In(...) and Out(...) represent messages received or sent over an unprotected channel, respectively. The fact Fr(...) generates fresh variables.

slide-57
SLIDE 57

11/18

The Language of Tamarin-Prover

Rules

rule RuleIdentifier: let key = value # ... in [ Premise Facts ]

  • -[ Action Facts ]->

# can be abbreviated by --> [ Conclusion Facts ] The facts In(...) and Out(...) represent messages received or sent over an unprotected channel, respectively. The fact Fr(...) generates fresh variables.

slide-58
SLIDE 58

11/18

The Language of Tamarin-Prover

Rules

rule RuleIdentifier: let key = value # ... in [ Premise Facts ]

  • -[ Action Facts ]->

# can be abbreviated by --> [ Conclusion Facts ] The facts In(...) and Out(...) represent messages received or sent over an unprotected channel, respectively. The fact Fr(...) generates fresh variables.

slide-59
SLIDE 59

11/18

The Language of Tamarin-Prover

Rules

rule RuleIdentifier: let key = value # ... in [ Premise Facts ]

  • -[ Action Facts ]->

# can be abbreviated by --> [ Conclusion Facts ] The facts In(...) and Out(...) represent messages received or sent over an unprotected channel, respectively. The fact Fr(...) generates fresh variables.

slide-60
SLIDE 60

12/18

State of the Environment I

Create Something from Nothing

Trace: RuleConstant, RuleConstant, RuleConsumer rule RuleConstant: [ ] --> [ Fact('a') ] rule RuleConsumer: [ Fact('a') ] --> [ NewFact('b') ] State (multiset of facts):

slide-61
SLIDE 61

12/18

State of the Environment I

Create Something from Nothing

Trace: RuleConstant, RuleConstant, RuleConsumer rule RuleConstant: [ ] --> [ Fact('a') ] rule RuleConsumer: [ Fact('a') ] --> [ NewFact('b') ] State (multiset of facts):

slide-62
SLIDE 62

12/18

State of the Environment I

Create Something from Nothing

Trace: RuleConstant, RuleConstant, RuleConsumer rule RuleConstant: [ ] --> [ Fact('a') ] rule RuleConsumer: [ Fact('a') ] --> [ NewFact('b') ] State (multiset of facts):

slide-63
SLIDE 63

12/18

State of the Environment I

Create Something from Nothing

Trace: RuleConstant, RuleConstant, RuleConsumer rule RuleConstant: [ ] --> [ Fact('a') ] rule RuleConsumer: [ Fact('a') ] --> [ NewFact('b') ] State (multiset of facts):

slide-64
SLIDE 64

12/18

State of the Environment I

Create Something from Nothing

Trace: RuleConstant , RuleConstant, RuleConsumer rule RuleConstant: [ ] --> [ Fact('a') ] rule RuleConsumer: [ Fact('a') ] --> [ NewFact('b') ] State (multiset of facts):

  • Fact('a')
slide-65
SLIDE 65

12/18

State of the Environment I

Create Something from Nothing

Trace: RuleConstant, RuleConstant , RuleConsumer rule RuleConstant: [ ] --> [ Fact('a') ] rule RuleConsumer: [ Fact('a') ] --> [ NewFact('b') ] State (multiset of facts):

  • Fact('a')
  • Fact('a')
slide-66
SLIDE 66

12/18

State of the Environment I

Create Something from Nothing

Trace: RuleConstant, RuleConstant , RuleConsumer rule RuleConstant: [ ] --> [ Fact('a') ] rule RuleConsumer: [ Fact('a') ] --> [ NewFact('b') ] State (multiset of facts):

  • Fact('a')
  • Fact('a')
slide-67
SLIDE 67

12/18

State of the Environment I

Create Something from Nothing

Trace: RuleConstant, RuleConstant, RuleConsumer rule RuleConstant: [ ] --> [ Fact('a') ] rule RuleConsumer: [ Fact('a') ] --> [ NewFact('b') ] State (multiset of facts):

  • Fact('a')
  • NewFact('b')
slide-68
SLIDE 68

13/18

Tamarin-Prover’s Attack Model

There are predefjned rules for the attacker, e.g. rule isend: [ !KU(x) ] --[ K(x) ]-> [ In(x) ] Tamarin implements the Dolev-Yao attack model (Dolev and Yao 1983).

  • Cryptographic primitives are handled symbolically or as a

black-box.

  • Complete control over the network: sending, receiving

messages is done by the attacker.

  • Usually, access to a reveal oracle
slide-69
SLIDE 69

13/18

Tamarin-Prover’s Attack Model

There are predefjned rules for the attacker. , e.g. rule isend: [ !KU(x) ] --[ K(x) ]-> [ In(x) ] Tamarin implements the Dolev-Yao attack model (Dolev and Yao 1983).

  • Cryptographic primitives are handled symbolically or as a

black-box.

  • Complete control over the network: sending, receiving

messages is done by the attacker.

  • Usually, access to a reveal oracle
slide-70
SLIDE 70

13/18

Tamarin-Prover’s Attack Model

There are predefjned rules for the attacker, e.g. rule isend: [ !KU(x) ] --[ K(x) ]-> [ In(x) ] Tamarin implements the Dolev-Yao attack model (Dolev and Yao 1983).

  • Cryptographic primitives are handled symbolically or as a

black-box.

  • Complete control over the network: sending, receiving

messages is done by the attacker.

  • Usually, access to a reveal oracle
slide-71
SLIDE 71

13/18

Tamarin-Prover’s Attack Model

There are predefjned rules for the attacker, e.g. rule isend: [ !KU(x) ] --[ K(x) ]-> [ In(x) ] Tamarin implements the Dolev-Yao attack model (Dolev and Yao 1983).

  • Cryptographic primitives are handled symbolically or as a

black-box.

  • Complete control over the network: sending, receiving

messages is done by the attacker.

  • Usually, access to a reveal oracle
slide-72
SLIDE 72

13/18

Tamarin-Prover’s Attack Model

There are predefjned rules for the attacker, e.g. rule isend: [ !KU(x) ] --[ K(x) ]-> [ In(x) ] Tamarin implements the Dolev-Yao attack model (Dolev and Yao 1983).

  • Cryptographic primitives are handled symbolically or as a

black-box.

  • Complete control over the network: sending, receiving

messages is done by the attacker.

  • Usually, access to a reveal oracle
slide-73
SLIDE 73

13/18

Tamarin-Prover’s Attack Model

There are predefjned rules for the attacker, e.g. rule isend: [ !KU(x) ] --[ K(x) ]-> [ In(x) ] Tamarin implements the Dolev-Yao attack model (Dolev and Yao 1983).

  • Cryptographic primitives are handled symbolically or as a

black-box.

  • Complete control over the network: sending, receiving

messages is done by the attacker.

  • Usually, access to a reveal oracle
slide-74
SLIDE 74

13/18

Tamarin-Prover’s Attack Model

There are predefjned rules for the attacker, e.g. rule isend: [ !KU(x) ] --[ K(x) ]-> [ In(x) ] Tamarin implements the Dolev-Yao attack model (Dolev and Yao 1983).

  • Cryptographic primitives are handled symbolically or as a

black-box.

  • Complete control over the network: sending, receiving

messages is done by the attacker.

  • Usually, access to a reveal oracle
slide-75
SLIDE 75

14/18

State of the Environment II

Public Channel vs. State

Trace: CreateIdentity, GetPk, irecv, coerce, isend builtins: diffie-hellman rule CreateIdentity: [ Fr(~sk) ]

  • ->

[ !Id($A,~sk, 'g'^~sk ) ] rule GetPk: [ !Id(A,sk,pk) ]

  • ->

[ Out(<A, pk>) ] State:

  • !Id($A,~sk,'g'^~sk)
  • !KU(<A,pk>)
  • In(<A,pk>)
  • K(<A,pk>) (action fact)

Public Channel:

  • <A,pk>
slide-76
SLIDE 76

14/18

State of the Environment II

Public Channel vs. State

Trace: CreateIdentity, GetPk, irecv, coerce, isend builtins: diffie-hellman rule CreateIdentity: [ Fr(~sk) ]

  • ->

[ !Id($A,~sk, 'g'^~sk ) ] rule GetPk: [ !Id(A,sk,pk) ]

  • ->

[ Out(<A, pk>) ] State:

  • !Id($A,~sk,'g'^~sk)
  • !KU(<A,pk>)
  • In(<A,pk>)
  • K(<A,pk>) (action fact)

Public Channel:

  • <A,pk>
slide-77
SLIDE 77

14/18

State of the Environment II

Public Channel vs. State

Trace: CreateIdentity, GetPk, irecv, coerce, isend builtins: diffie-hellman rule CreateIdentity: [ Fr(~sk) ]

  • ->

[ !Id($A,~sk,'g'^~sk) ] rule GetPk: [ !Id(A,sk,pk) ]

  • ->

[ Out(<A, pk>) ] State:

  • !Id($A,~sk,'g'^~sk)
  • !KU(<A,pk>)
  • In(<A,pk>)
  • K(<A,pk>) (action fact)

Public Channel:

  • <A,pk>
slide-78
SLIDE 78

14/18

State of the Environment II

Public Channel vs. State

Trace: CreateIdentity, GetPk, irecv, coerce, isend builtins: diffie-hellman rule CreateIdentity: [ Fr(~sk) ]

  • ->

[ !Id($A,~sk,'g'^~sk) ] rule GetPk: [ !Id(A,sk,pk) ]

  • ->

[ Out(<A, pk>) ] State:

  • !Id($A,~sk,'g'^~sk)
  • !KU(<A,pk>)
  • In(<A,pk>)
  • K(<A,pk>) (action fact)

Public Channel:

  • <A,pk>
slide-79
SLIDE 79

14/18

State of the Environment II

Public Channel vs. State

Trace: CreateIdentity, GetPk, irecv, coerce, isend builtins: diffie-hellman rule CreateIdentity: [ Fr(~sk) ]

  • ->

[ !Id($A,~sk,'g'^~sk) ] rule GetPk: [ !Id(A,sk,pk) ]

  • ->

[ Out(<A, pk>) ] State:

  • !Id($A,~sk,'g'^~sk)
  • !KU(<A,pk>)
  • In(<A,pk>)
  • K(<A,pk>) (action fact)

Public Channel:

  • <A,pk>
slide-80
SLIDE 80

14/18

State of the Environment II

Public Channel vs. State

Trace: CreateIdentity, GetPk, irecv, coerce, isend builtins: diffie-hellman rule CreateIdentity: [ Fr(~sk) ]

  • ->

[ !Id($A,~sk,'g'^~sk) ] rule GetPk: [ !Id(A,sk,pk) ]

  • ->

[ Out(<A, pk>) ] State:

  • !Id($A,~sk,'g'^~sk)
  • !KU(<A,pk>)
  • In(<A,pk>)
  • K(<A,pk>) (action fact)

Public Channel:

  • <A,pk>
slide-81
SLIDE 81

14/18

State of the Environment II

Public Channel vs. State

Trace: CreateIdentity , GetPk, irecv, coerce, isend builtins: diffie-hellman rule CreateIdentity: [ Fr(~sk) ]

  • ->

[ !Id($A,~sk,'g'^~sk) ] rule GetPk: [ !Id(A,sk,pk) ]

  • ->

[ Out(<A, pk>) ] State:

  • !Id($A,~sk,'g'^~sk)
  • !KU(<A,pk>)
  • In(<A,pk>)
  • K(<A,pk>) (action fact)

Public Channel:

  • <A,pk>
slide-82
SLIDE 82

14/18

State of the Environment II

Public Channel vs. State

Trace: CreateIdentity, GetPk , irecv, coerce, isend builtins: diffie-hellman rule CreateIdentity: [ Fr(~sk) ]

  • ->

[ !Id($A,~sk,'g'^~sk) ] rule GetPk: [ !Id(A,sk,pk) ]

  • ->

[ Out(<A, pk>) ] State:

  • !Id($A,~sk,'g'^~sk)
  • Out(<A,pk>)
  • !KU(<A,pk>)
  • In(<A,pk>)
  • K(<A,pk>) (action fact)

Public Channel:

  • <A,pk>
slide-83
SLIDE 83

14/18

State of the Environment II

Public Channel vs. State

Trace: CreateIdentity, GetPk, irecv , coerce, isend builtins: diffie-hellman rule CreateIdentity: [ Fr(~sk) ]

  • ->

[ !Id($A,~sk,'g'^~sk) ] rule GetPk: [ !Id(A,sk,pk) ]

  • ->

[ Out(<A, pk>) ] State:

  • !Id($A,~sk,'g'^~sk)
  • !KD(<A,pk>)
  • !KU(<A,pk>)
  • In(<A,pk>)
  • K(<A,pk>) (action fact)

Public Channel:

  • <A,pk>
slide-84
SLIDE 84

14/18

State of the Environment II

Public Channel vs. State

Trace: CreateIdentity, GetPk, irecv, coerce , isend builtins: diffie-hellman rule CreateIdentity: [ Fr(~sk) ]

  • ->

[ !Id($A,~sk,'g'^~sk) ] rule GetPk: [ !Id(A,sk,pk) ]

  • ->

[ Out(<A, pk>) ] State:

  • !Id($A,~sk,'g'^~sk)
  • !KD(<A,pk>)
  • !KU(<A,pk>)
  • In(<A,pk>)
  • K(<A,pk>) (action fact)

Public Channel:

  • <A,pk>
slide-85
SLIDE 85

14/18

State of the Environment II

Public Channel vs. State

Trace: CreateIdentity, GetPk, irecv, coerce, isend builtins: diffie-hellman rule CreateIdentity: [ Fr(~sk) ]

  • ->

[ !Id($A,~sk,'g'^~sk) ] rule GetPk: [ !Id(A,sk,pk) ]

  • ->

[ Out(<A, pk>) ] State:

  • !Id($A,~sk,'g'^~sk)
  • !KD(<A,pk>)
  • !KU(<A,pk>)
  • In(<A,pk>)
  • K(<A,pk>) (action fact)

Public Channel:

  • <A,pk>
slide-86
SLIDE 86

15/18

The Language of Tamarin-Prover

Lemmata

lemma LemmaIdentifier: exists-trace | all-traces " formula to prove " The formula is given in fjrst-order logic and uses symbols such as Ex, All, ==>, etc. Important: In the formula we can only access action facts!

slide-87
SLIDE 87

15/18

The Language of Tamarin-Prover

Lemmata

lemma LemmaIdentifier: exists-trace | all-traces " formula to prove " The formula is given in fjrst-order logic and uses symbols such as Ex, All, ==>, etc. Important: In the formula we can only access action facts!

slide-88
SLIDE 88

15/18

The Language of Tamarin-Prover

Lemmata

lemma LemmaIdentifier: exists-trace | all-traces " formula to prove " The formula is given in fjrst-order logic and uses symbols such as Ex, All, ==>, etc. Important: In the formula we can only access action facts!

slide-89
SLIDE 89

16/18

Demo ⌣

slide-90
SLIDE 90

17/18

Goals for the Lab

  • Theory of Tamarin-Prover
  • mathematical foundation

, in particular

  • order-sorted term algebras
  • equational theories
  • operations: substitution, replacements, unifjcation, matching,

rewriting modulo equational theories

  • How is the language of Tamarin-Prover refmecting those

notions?

  • What are the limitations of Tamarin-Prover?
  • Practical Application
  • Implementing small toy examples to learn the language
  • Working on (parts of) the IPSec protocol
slide-91
SLIDE 91

17/18

Goals for the Lab

  • Theory of Tamarin-Prover
  • mathematical foundation

, in particular

  • order-sorted term algebras
  • equational theories
  • operations: substitution, replacements, unifjcation, matching,

rewriting modulo equational theories

  • How is the language of Tamarin-Prover refmecting those

notions?

  • What are the limitations of Tamarin-Prover?
  • Practical Application
  • Implementing small toy examples to learn the language
  • Working on (parts of) the IPSec protocol
slide-92
SLIDE 92

17/18

Goals for the Lab

  • Theory of Tamarin-Prover
  • mathematical foundation

, in particular

  • order-sorted term algebras
  • equational theories
  • operations: substitution, replacements, unifjcation, matching,

rewriting modulo equational theories

  • How is the language of Tamarin-Prover refmecting those

notions?

  • What are the limitations of Tamarin-Prover?
  • Practical Application
  • Implementing small toy examples to learn the language
  • Working on (parts of) the IPSec protocol
slide-93
SLIDE 93

17/18

Goals for the Lab

  • Theory of Tamarin-Prover
  • mathematical foundation, in particular
  • order-sorted term algebras
  • equational theories
  • operations: substitution, replacements, unifjcation, matching,

rewriting modulo equational theories

  • How is the language of Tamarin-Prover refmecting those

notions?

  • What are the limitations of Tamarin-Prover?
  • Practical Application
  • Implementing small toy examples to learn the language
  • Working on (parts of) the IPSec protocol
slide-94
SLIDE 94

17/18

Goals for the Lab

  • Theory of Tamarin-Prover
  • mathematical foundation, in particular
  • order-sorted term algebras
  • equational theories
  • operations: substitution, replacements, unifjcation, matching,

rewriting modulo equational theories

  • How is the language of Tamarin-Prover refmecting those

notions?

  • What are the limitations of Tamarin-Prover?
  • Practical Application
  • Implementing small toy examples to learn the language
  • Working on (parts of) the IPSec protocol
slide-95
SLIDE 95

17/18

Goals for the Lab

  • Theory of Tamarin-Prover
  • mathematical foundation, in particular
  • order-sorted term algebras
  • equational theories
  • operations: substitution, replacements, unifjcation, matching,

rewriting modulo equational theories

  • How is the language of Tamarin-Prover refmecting those

notions?

  • What are the limitations of Tamarin-Prover?
  • Practical Application
  • Implementing small toy examples to learn the language
  • Working on (parts of) the IPSec protocol
slide-96
SLIDE 96

17/18

Goals for the Lab

  • Theory of Tamarin-Prover
  • mathematical foundation, in particular
  • order-sorted term algebras
  • equational theories
  • operations: substitution, replacements, unifjcation, matching,

rewriting modulo equational theories

  • How is the language of Tamarin-Prover refmecting those

notions?

  • What are the limitations of Tamarin-Prover?
  • Practical Application
  • Implementing small toy examples to learn the language
  • Working on (parts of) the IPSec protocol
slide-97
SLIDE 97

17/18

Goals for the Lab

  • Theory of Tamarin-Prover
  • mathematical foundation, in particular
  • order-sorted term algebras
  • equational theories
  • operations: substitution, replacements, unifjcation, matching,

rewriting modulo equational theories

  • How is the language of Tamarin-Prover refmecting those

notions?

  • What are the limitations of Tamarin-Prover?
  • Practical Application
  • Implementing small toy examples to learn the language
  • Working on (parts of) the IPSec protocol
slide-98
SLIDE 98

17/18

Goals for the Lab

  • Theory of Tamarin-Prover
  • mathematical foundation, in particular
  • order-sorted term algebras
  • equational theories
  • operations: substitution, replacements, unifjcation, matching,

rewriting modulo equational theories

  • How is the language of Tamarin-Prover refmecting those

notions?

  • What are the limitations of Tamarin-Prover?
  • Practical Application
  • Implementing small toy examples to learn the language
  • Working on (parts of) the IPSec protocol
slide-99
SLIDE 99

References

Gilles Barthe. EasyCrypt - Lecture 1 - Introduction. EasyCrypt-F*-CryptoVerif School 2014. Nov. 24, 2014.

URL: https://www.easycrypt.info/trac/raw-

attachment/wiki/SchoolParis14/lecture1.pdf (visited on 05/11/2018). David Basin et al. Tamarin-Prover Manual. Security Protocol Analysis in the Symbolic Model. Mar. 13,

  • 2018. URL: https://tamarin-

prover.github.io/manual/tex/tamarin- manual.pdf (visited on 05/13/2018). Karthikeyan Bhargavan et al. “Proving the TLS Handshake Secure (as it is)”. In: Advances in Cryptology – CRYPTO 2014. Ed. by Juan A. Garay and Rosario Gennaro. Springer Berlin Heidelberg, 2014,

  • pp. 235–255. DOI: 10.1007/978-3-662-44381-1_14.

URL: https://eprint.iacr.org/2014/182 (visited

  • n 05/13/2018).

Mihir Bellare and Phillip Rogaway. Code-Based Game-Playing Proofs and the Security of Triple

  • Encryption. Cryptology ePrint Archive, Report

2004/331. 2004. URL: https://eprint.iacr.org/2004/331 (visited on 05/11/2018). Cas Cremers et al. “A Comprehensive Symbolic Analysis of TLS 1.3”. In: Proceedings of the 2017 ACM SIGSAC Conference on Computer and Communications Security. CCS ’17. ACM, 2017,

  • pp. 1773–1788. DOI: 10.1145/3133956.3134063.

URL:

http://doi.acm.org/10.1145/3133956.3134063. Danny Dolev and Andrew Yao. “On the security of public key protocols”. In: IEEE Transactions on information theory 29.2 (1983), pp. 198–208. DOI: 10.1109/tit.1983.1056650. Shai Halevi. A plausible approach to computer-aided cryptographic proofs. Cryptology ePrint Archive, Report 2005/181. 2005. URL: https://eprint.iacr.org/2005/181 (visited on 05/11/2018).

Thank you for your attention!

18/18