Tr I nc: Small Trusted Hardware for Large Distributed Systems Dave - - PowerPoint PPT Presentation

tr i nc small trusted hardware for large distributed
SMART_READER_LITE
LIVE PREVIEW

Tr I nc: Small Trusted Hardware for Large Distributed Systems Dave - - PowerPoint PPT Presentation

Tr I nc: Small Trusted Hardware for Large Distributed Systems Dave Levin University of Maryland John R. Douceur Jacob R. Lorch Microsoft Research Thomas Moscibroda Trust in distributed systems Selfish Malicious Participants Participants


slide-1
SLIDE 1

TrInc: Small Trusted Hardware for Large Distributed Systems

John R. Douceur Jacob R. Lorch Thomas Moscibroda Microsoft Research Dave Levin University of Maryland

slide-2
SLIDE 2

TrInc – NSDI 2009 Dave Levin

Trust in distributed systems

2

Selfish Participants Malicious Participants

slide-3
SLIDE 3

TrInc – NSDI 2009 Dave Levin

Trust in distributed systems

2

Selfish Participants Malicious Participants

A participant “equivocates” by sending conflicting messages to others

Powerful tool: Equivocation

slide-4
SLIDE 4

TrInc – NSDI 2009 Dave Levin

Equivocation is common and powerful

3

  • Byz. Generals
slide-5
SLIDE 5

TrInc – NSDI 2009 Dave Levin

Equivocation is common and powerful

3

  • Byz. Generals

“Retreat” “Advance”

slide-6
SLIDE 6

TrInc – NSDI 2009 Dave Levin

Equivocation is common and powerful

3

  • Byz. Generals

“Retreat” “Advance”

Voting

slide-7
SLIDE 7

TrInc – NSDI 2009 Dave Levin

Equivocation is common and powerful

3

  • Byz. Generals

“Retreat” “Advance” Tally w/o ’s vote “Counted your vote”

Voting

slide-8
SLIDE 8

TrInc – NSDI 2009 Dave Levin

Equivocation is common and powerful

3

  • Byz. Generals

“Retreat” “Advance” Tally w/o ’s vote “Counted your vote”

Voting BitTorrent

slide-9
SLIDE 9

TrInc – NSDI 2009 Dave Levin

Equivocation is common and powerful

3

  • Byz. Generals

“Retreat” “Advance” Tally w/o ’s vote “Counted your vote” “I don’t have piece 5” “I have piece 5”

Voting BitTorrent

slide-10
SLIDE 10

TrInc – NSDI 2009 Dave Levin

Equivocation is common and powerful

3

  • Byz. Generals

“Retreat” “Advance” Tally w/o ’s vote “Counted your vote” “I don’t have piece 5” “I have piece 5”

Voting BitTorrent

Auctions Leader election Trusted logs Digital cash Version control Online games DHTs soBGP

slide-11
SLIDE 11

TrInc – NSDI 2009 Dave Levin

  • f malicious users
  • If completely untrusted,

3f+1 users needed for consensus [Lamport et al, 1982]

Equivocation is common and powerful

3

  • Byz. Generals

“Retreat” “Advance”

slide-12
SLIDE 12

TrInc – NSDI 2009 Dave Levin

  • If users cannot equivocate, only

2f+1 users are needed [Chun et al, 2007]

  • f malicious users
  • If completely untrusted,

3f+1 users needed for consensus [Lamport et al, 1982]

Equivocation is common and powerful

3

  • Byz. Generals

“Retreat” “Advance”

slide-13
SLIDE 13

TrInc – NSDI 2009 Dave Levin

  • New design space
  • All participants have a

trusted component

Enter Trusted Hardware

4

Equivocation can be rendered impossible with trusted hardware

slide-14
SLIDE 14

TrInc – NSDI 2009 Dave Levin

  • New design space
  • All participants have a

trusted component

Enter Trusted Hardware

4

Equivocation can be rendered impossible with trusted hardware

slide-15
SLIDE 15

TrInc – NSDI 2009 Dave Levin

  • New design space
  • All participants have a

trusted component

Enter Trusted Hardware

4

Equivocation can be rendered impossible with trusted hardware

slide-16
SLIDE 16

TrInc – NSDI 2009 Dave Levin

  • New design space
  • All participants have a

trusted component

Enter Trusted Hardware

4

Equivocation can be rendered impossible with trusted hardware

  • To be practical, the hardware

must be small

  • Ubiquity via low cost
  • Tamper-resilient
  • Easier to verify a small TCB
slide-17
SLIDE 17

TrInc – NSDI 2009 Dave Levin

3 2 1

Contributions

5

TrInc – A new, practical primitive for eliminating equivocation Applications of TrInc Implementation in currently available hardware

slide-18
SLIDE 18

TrInc – NSDI 2009 Dave Levin

3 2 1

Contributions

5

1

TrInc – A new, practical primitive for eliminating equivocation Applications of TrInc Implementation in currently available hardware

slide-19
SLIDE 19

TrInc – NSDI 2009 Dave Levin

Motivating question

6

What is the minimal abstraction needed to make equivocation impossible?

slide-20
SLIDE 20

TrInc – NSDI 2009 Dave Levin

Motivating question

6

What is the minimal abstraction needed to make equivocation impossible? A counter and a key are enough

slide-21
SLIDE 21

TrInc – NSDI 2009 Dave Levin

  • 1. Monotonically increasing counter
  • 2. Key for signing attestations

TrInc: Trusted Incrementer

7

34

K

slide-22
SLIDE 22

TrInc – NSDI 2009 Dave Levin

  • 1. Monotonically increasing counter
  • 2. Key for signing attestations

TrInc: Trusted Incrementer

7

34

Attestations bind data to counters

K

slide-23
SLIDE 23

TrInc – NSDI 2009 Dave Levin

  • 1. Monotonically increasing counter
  • 2. Key for signing attestations

TrInc: Trusted Incrementer

7

34

Attestations bind data to counters “Bind this data to counter value 36”

K

slide-24
SLIDE 24

TrInc – NSDI 2009 Dave Levin

  • 1. Monotonically increasing counter
  • 2. Key for signing attestations

TrInc: Trusted Incrementer

7

34

Attestations bind data to counters Attest( 36, data) “Bind this data to counter value 36”

K

slide-25
SLIDE 25

TrInc – NSDI 2009 Dave Levin

  • 1. Monotonically increasing counter
  • 2. Key for signing attestations

TrInc: Trusted Incrementer

7

34

Attestations bind data to counters Attest( 36, data) “Bind this data to counter value 36”

K

slide-26
SLIDE 26

TrInc – NSDI 2009 Dave Levin

  • 1. Monotonically increasing counter
  • 2. Key for signing attestations

TrInc: Trusted Incrementer

7

34 36

Attestations bind data to counters Attest( 36, data) “Bind this data to counter value 36”

K

slide-27
SLIDE 27

TrInc – NSDI 2009 Dave Levin

  • 1. Monotonically increasing counter
  • 2. Key for signing attestations

TrInc: Trusted Incrementer

7

34 36

Attestations bind data to counters Attest( 36, data) “Bind this data to counter value 36”

K

slide-28
SLIDE 28

TrInc – NSDI 2009 Dave Levin

  • 1. Monotonically increasing counter
  • 2. Key for signing attestations

TrInc: Trusted Incrementer

7

34 36

Attestations bind data to counters Attest( 36, data)

< 34, 36, data >K

“Bind this data to counter value 36”

K

slide-29
SLIDE 29

TrInc – NSDI 2009 Dave Levin

TrInc Attestations

8

< 34, 36, data >K < 36, 36, nonce >K

slide-30
SLIDE 30

TrInc – NSDI 2009 Dave Levin

TrInc Attestations

8

  • Can only move to a state once
  • “data” is forever bound to 36
  • There was nothing bound to 35

< 34, 36, data >K < 36, 36, nonce >K Advance attestation

  • “What is your current counter?”
  • Nonces assure freshness
  • There is nothing beyond 36 (yet)

Status attestation

slide-31
SLIDE 31

TrInc – NSDI 2009 Dave Levin

Multiple counters

  • Need multiple trusted counters
  • Systems running concurrently
  • Some systems benefit from more counters

9

34 17 42

slide-32
SLIDE 32

TrInc – NSDI 2009 Dave Levin

  • Hardware that contains ≥1 counter is a Trinket
  • Allocates and frees counters
  • Establishes session keys

Trinket

Multiple counters

  • Need multiple trusted counters
  • Systems running concurrently
  • Some systems benefit from more counters

9

34 17 42

slide-33
SLIDE 33

TrInc – NSDI 2009 Dave Levin

TrInc is practical

  • Trusted Platform Module (TPM)

is ubiquitous

  • Has what we need
  • Tamper-resistance
  • Counters (currently 4)
  • Crypto
  • Small amount of storage
  • It just lacks the right interface

10

0% 20% 40% 60% 80% 100% 2005 2009 TPM Penetration

Source: IDC 2006

Desktop PCs Mobile PCs x86 Servers

slide-34
SLIDE 34

TrInc – NSDI 2009 Dave Levin

3 2 1

Contributions

11

1

TrInc – A new, practical primitive for eliminating equivocation Applications of TrInc Implementation in currently available hardware

slide-35
SLIDE 35

TrInc – NSDI 2009 Dave Levin

3 2 1

Contributions

11

2

TrInc – A new, practical primitive for eliminating equivocation Applications of TrInc Implementation in currently available hardware

slide-36
SLIDE 36

TrInc – NSDI 2009 Dave Levin

What can TrInc do?

  • Trusted append-only logs
  • Prevent under-reporting in BitTorrent
  • Reduces communication in PeerReview
  • BFT with fewer nodes and messages
  • Ensure fresh data in DHTs
  • Prevent Sybil attacks

12

slide-37
SLIDE 37

TrInc – NSDI 2009 Dave Levin

What can TrInc do?

  • Trusted append-only logs
  • Prevent under-reporting in BitTorrent
  • Reduces communication in PeerReview
  • BFT with fewer nodes and messages
  • Ensure fresh data in DHTs
  • Prevent Sybil attacks

12

slide-38
SLIDE 38

TrInc – NSDI 2009 Dave Levin

What can TrInc do?

  • Trusted append-only logs
  • Prevent under-reporting in BitTorrent
  • Reduces communication in PeerReview
  • BFT with fewer nodes and messages
  • Ensure fresh data in DHTs
  • Prevent Sybil attacks

12

slide-39
SLIDE 39

TrInc – NSDI 2009 Dave Levin

Implementing a trusted log in TrInc

13

Append(data):

Bind new data to the

end of the log

Lookup(sequence num):

No equivocating on what

is or is not stored

slide-40
SLIDE 40

TrInc – NSDI 2009 Dave Levin

10

Implementing a trusted log in TrInc

13

Append(data):

Bind new data to the

end of the log

Lookup(sequence num):

No equivocating on what

is or is not stored

slide-41
SLIDE 41

TrInc – NSDI 2009 Dave Levin

10

Implementing a trusted log in TrInc

13

< >

8,9,

< >

3,8,

Untrusted storage

< >

9,10,

Append(data):

Bind new data to the

end of the log

Lookup(sequence num):

No equivocating on what

is or is not stored

< >

9,10,

slide-42
SLIDE 42

TrInc – NSDI 2009 Dave Levin

10

Implementing a trusted log in TrInc

13

< >

8,9,

< >

3,8,

append

Untrusted storage

< >

9,10,

Append(data):

Bind new data to the

end of the log

Lookup(sequence num):

No equivocating on what

is or is not stored

< >

9,10,

slide-43
SLIDE 43

TrInc – NSDI 2009 Dave Levin

10

Implementing a trusted log in TrInc

13

< >

8,9,

< >

3,8,

Untrusted storage

< >

9,10,

attest(11,, )

Append(data):

Bind new data to the

end of the log

Lookup(sequence num):

No equivocating on what

is or is not stored

< >

9,10,

slide-44
SLIDE 44

TrInc – NSDI 2009 Dave Levin

10

Implementing a trusted log in TrInc

13

< >

8,9,

< >

3,8,

Untrusted storage

< >

9,10,

Append(data):

Bind new data to the

end of the log

Lookup(sequence num):

No equivocating on what

is or is not stored

< >

9,10,

slide-45
SLIDE 45

TrInc – NSDI 2009 Dave Levin

10

Implementing a trusted log in TrInc

13

11

< >

8,9,

< >

3,8,

Untrusted storage

< >

9,10,

Append(data):

Bind new data to the

end of the log

Lookup(sequence num):

No equivocating on what

is or is not stored

< >

9,10,

slide-46
SLIDE 46

TrInc – NSDI 2009 Dave Levin

10

Implementing a trusted log in TrInc

13

11

< >

8,9,

< >

3,8,

< >

10,11,

Untrusted storage

< >

9,10,

Append(data):

Bind new data to the

end of the log

Lookup(sequence num):

No equivocating on what

is or is not stored

< >

9,10,

slide-47
SLIDE 47

TrInc – NSDI 2009 Dave Levin

10

Implementing a trusted log in TrInc

13

11

< >

8,9,

< >

3,8,

< >

10,11,

Untrusted storage

< >

9,10,

Append(data):

Bind new data to the

end of the log

Lookup(sequence num):

No equivocating on what

is or is not stored

< >

9,10,

slide-48
SLIDE 48

TrInc – NSDI 2009 Dave Levin

10

Implementing a trusted log in TrInc

13

11

< >

8,9,

< >

3,8,

< >

10,11,

lookup 10

Untrusted storage

< >

9,10,

Append(data):

Bind new data to the

end of the log

Lookup(sequence num):

No equivocating on what

is or is not stored

< >

9,10,

slide-49
SLIDE 49

TrInc – NSDI 2009 Dave Levin

10

Implementing a trusted log in TrInc

13

11

< >

8,9,

< >

3,8,

< >

10,11,

lookup 10

Untrusted storage

< >

9,10,

Append(data):

Bind new data to the

end of the log

Lookup(sequence num):

No equivocating on what

is or is not stored

< >

9,10,

slide-50
SLIDE 50

TrInc – NSDI 2009 Dave Levin

10

Implementing a trusted log in TrInc

13

11

< >

8,9,

< >

3,8,

< >

10,11,

lookup 10

Untrusted storage

< >

9,10,

Append(data):

Bind new data to the

end of the log

Lookup(sequence num):

No equivocating on what

is or is not stored

< >

9,10,

slide-51
SLIDE 51

TrInc – NSDI 2009 Dave Levin

10

Implementing a trusted log in TrInc

13

11

< >

8,9,

< >

3,8,

< >

10,11,

Untrusted storage

< >

9,10,

Append(data):

Bind new data to the

end of the log

Lookup(sequence num):

No equivocating on what

is or is not stored

< >

9,10,

slide-52
SLIDE 52

TrInc – NSDI 2009 Dave Levin

10

Implementing a trusted log in TrInc

13

11

< >

8,9,

< >

3,8,

< >

10,11,

Untrusted storage

< >

9,10,

Append(data):

Bind new data to the

end of the log

Lookup(sequence num):

No equivocating on what

is or is not stored

< >

9,10,

slide-53
SLIDE 53

TrInc – NSDI 2009 Dave Levin

10

Implementing a trusted log in TrInc

13

11

< >

8,9,

< >

3,8,

< >

10,11,

Untrusted storage

< >

9,10,

Few hardware accesses Fast lookups

Append(data):

Bind new data to the

end of the log

Lookup(sequence num):

No equivocating on what

is or is not stored

< >

9,10,

slide-54
SLIDE 54

TrInc – NSDI 2009 Dave Levin

TrInc-A2M

  • Attested Append-only Memory (A2M)
  • Stores logs in trusted storage
  • Accesses trusted storage for all methods
  • A2M shown to solve
  • Byzantine fault tolerance using fewer nodes
  • SUNDR file system
  • Quorum/Update protocol
  • By construction, TrInc solves these systems, too

14

slide-55
SLIDE 55

TrInc – NSDI 2009 Dave Levin

What can TrInc do?

  • Trusted append-only logs
  • Prevent under-reporting in BitTorrent
  • Reduces communication in PeerReview
  • BFT with fewer nodes and messages
  • Ensure fresh data in DHTs
  • Prevent Sybil attacks

15

slide-56
SLIDE 56

TrInc – NSDI 2009 Dave Levin

What can TrInc do?

  • Trusted append-only logs
  • Prevent under-reporting in BitTorrent
  • Reduces communication in PeerReview
  • BFT with fewer nodes and messages
  • Ensure fresh data in DHTs
  • Prevent Sybil attacks

15

slide-57
SLIDE 57

TrInc – NSDI 2009 Dave Levin

BitTorrent primer

16

slide-58
SLIDE 58

TrInc – NSDI 2009 Dave Levin

BitTorrent primer

16

Fast, users share the work File pieces

slide-59
SLIDE 59

TrInc – NSDI 2009 Dave Levin

BitTorrent primer

16

Fast, users share the work File pieces

1 1 0 1 1 0

slide-60
SLIDE 60

TrInc – NSDI 2009 Dave Levin

BitTorrent primer

16

Fast, users share the work File pieces

1 1 0 1 1 0

Does not have piece 2

slide-61
SLIDE 61

TrInc – NSDI 2009 Dave Levin

BitTorrent primer

16

Fast, users share the work File pieces

1 1 0 1 1 0

slide-62
SLIDE 62

TrInc – NSDI 2009 Dave Levin

BitTorrent primer

16

Fast, users share the work File pieces

1 0 1 1 1 0 1 0 1 1 1 0

slide-63
SLIDE 63

TrInc – NSDI 2009 Dave Levin

BitTorrent primer

16

Fast, users share the work File pieces

1 0 1 1 1 0 1 0 1 1 1 0

slide-64
SLIDE 64

TrInc – NSDI 2009 Dave Levin

BitTorrent primer

16

Fast, users share the work File pieces

1 1 0 1 0 1 1 1 0 1 0 1 1 1 0 1 0 1

Interested

slide-65
SLIDE 65

TrInc – NSDI 2009 Dave Levin

BitTorrent primer

16

Fast, users share the work File pieces

1 1 0 1 0 1 1 1 0 1 0 1 1 1 0 1 0 1 1 0 1 1 1 0

Interested Interested

slide-66
SLIDE 66

TrInc – NSDI 2009 Dave Levin

BitTorrent primer

16

Fast, users share the work File pieces

1 1 0 1 0 1 1 1 0 1 0 1 1 1 0 1 0 1 1 0 1 1 1 0

Interested Interested

slide-67
SLIDE 67

TrInc – NSDI 2009 Dave Levin

Piece under-reporting is equivocation

17

Yields prolonged interest from others and faster download times

[SIGCOMM’08]

slide-68
SLIDE 68

TrInc – NSDI 2009 Dave Levin

Piece under-reporting is equivocation

17

slide-69
SLIDE 69

TrInc – NSDI 2009 Dave Levin

Piece under-reporting is equivocation

17

slide-70
SLIDE 70

TrInc – NSDI 2009 Dave Levin

Piece under-reporting is equivocation

17

Ack

slide-71
SLIDE 71

TrInc – NSDI 2009 Dave Levin

Piece under-reporting is equivocation

17

Ack

slide-72
SLIDE 72

TrInc – NSDI 2009 Dave Levin

Piece under-reporting is equivocation

17

I received

slide-73
SLIDE 73

TrInc – NSDI 2009 Dave Levin

Piece under-reporting is equivocation

17

I never received

I received

slide-74
SLIDE 74

TrInc – NSDI 2009 Dave Levin

Applying TrInc

  • What does the counter represent?
  • The number of pieces received
  • To what do peers attest?
  • Their bitfield
  • The most recent piece received
  • When do peers attest?
  • When they receive
  • When they sync their counters

18

slide-75
SLIDE 75

TrInc – NSDI 2009 Dave Levin

TrInc-BitTorrent

19

slide-76
SLIDE 76

TrInc – NSDI 2009 Dave Levin

TrInc-BitTorrent

19

slide-77
SLIDE 77

TrInc – NSDI 2009 Dave Levin

TrInc-BitTorrent

19

I have and most recently received

1

slide-78
SLIDE 78

TrInc – NSDI 2009 Dave Levin

TrInc-BitTorrent

19

I have and most recently received

1

I have and most recently received

2

I have and most recently received

3

slide-79
SLIDE 79

TrInc – NSDI 2009 Dave Levin

TrInc-BitTorrent

19

Counter matches the bitfield size

I have and most recently received

1

I have and most recently received

2

I have and most recently received

3

slide-80
SLIDE 80

TrInc – NSDI 2009 Dave Levin

TrInc-BitTorrent

19

Counter matches the bitfield size

I have and most recently received

1

I have and most recently received

2

I have and most recently received

3

slide-81
SLIDE 81

TrInc – NSDI 2009 Dave Levin

TrInc-BitTorrent

19

Counter matches the bitfield size Attests to most recent piece

I have and most recently received

1

I have and most recently received

2

I have and most recently received

3

slide-82
SLIDE 82

TrInc – NSDI 2009 Dave Levin

TrInc-BitTorrent

19

Counter matches the bitfield size Attests to most recent piece

I have and most recently received

1

I have and most recently received

2

I have and most recently received

3

slide-83
SLIDE 83

TrInc – NSDI 2009 Dave Levin

Why attest to the latest piece?

20

slide-84
SLIDE 84

TrInc – NSDI 2009 Dave Levin

Why attest to the latest piece?

20

slide-85
SLIDE 85

TrInc – NSDI 2009 Dave Levin

Why attest to the latest piece?

20

1

I have

slide-86
SLIDE 86

TrInc – NSDI 2009 Dave Levin

Why attest to the latest piece?

20

1

I have

slide-87
SLIDE 87

TrInc – NSDI 2009 Dave Levin

Why attest to the latest piece?

20

1

I have

slide-88
SLIDE 88

TrInc – NSDI 2009 Dave Levin

Why attest to the latest piece?

20

1

I have

2

I have

2

I have

slide-89
SLIDE 89

TrInc – NSDI 2009 Dave Levin

Why attest to the latest piece?

20

1

I have

2

I have

2

I have

Looks good to me Looks good to me Looks good to me

slide-90
SLIDE 90

TrInc – NSDI 2009 Dave Levin

Why attest to the latest piece?

20

1

I have

2

I have

2

I have

Looks good to me Looks good to me Looks good to me

slide-91
SLIDE 91

TrInc – NSDI 2009 Dave Levin

Why attest to the latest piece?

20

1

I have

2

I have

2

I have

Looks good to me Looks good to me Looks good to me

Lesson: Without the full log, must ensure proper behavior at each step

slide-92
SLIDE 92

TrInc – NSDI 2009 Dave Levin

Macrobenchmarks

  • TrInc-BitTorrent
  • Solves piece under-reporting
  • TrInc-A2M
  • Reduces hardware requirements
  • Higher throughput
  • TrInc-PeerReview
  • Reduces the communication

necessary to achieve fault detection

21

slide-93
SLIDE 93

TrInc – NSDI 2009 Dave Levin

3 2 1

Contributions

22

2

TrInc – A new, practical primitive for eliminating equivocation Applications of TrInc Implementation in currently available hardware

slide-94
SLIDE 94

TrInc – NSDI 2009 Dave Levin

3 2 1

Contributions

22

3

TrInc – A new, practical primitive for eliminating equivocation Applications of TrInc Implementation in currently available hardware

slide-95
SLIDE 95

TrInc – NSDI 2009 Dave Levin

Implementation

  • Gemalto .NET Smartcard
  • Crypto unit (RSA & 3-DES)
  • 32-bit micro-controller
  • 80 KB persistent memory
  • A few dozen lines of C#
  • Case studies
  • TrInc-A2M
  • TrInc-PeerReview
  • TrInc-BitTorrent

23

slide-96
SLIDE 96

TrInc – NSDI 2009 Dave Levin

TrInc microbenchmarks

24

50 100 150 200 250 noop Asym Attest Asym Attest Symm attest Symm Attest Verify

(advance) (status)

Operation time (msec)

(advance) (status)

slide-97
SLIDE 97

TrInc – NSDI 2009 Dave Levin

TrInc microbenchmarks

24

50 100 150 200 250 noop Asym Attest Asym Attest Symm attest Symm Attest Verify

(advance) (status)

Operation time (msec)

(advance) (status)

slide-98
SLIDE 98

TrInc – NSDI 2009 Dave Levin

TrInc microbenchmarks

24

50 100 150 200 250 noop Asym Attest Asym Attest Symm attest Symm Attest Verify

(advance) (status)

Operation time (msec)

(advance) (status)

32 msec to write a counter

slide-99
SLIDE 99

TrInc – NSDI 2009 Dave Levin

TrInc microbenchmarks

24

50 100 150 200 250 noop Asym Attest Asym Attest Symm attest Symm Attest Verify

(advance) (status)

Operation time (msec)

(advance) (status)

32 msec to write a counter Only 2x

slide-100
SLIDE 100

TrInc – NSDI 2009 Dave Levin

Why so slow?

  • Fundamentally new application of trusted hardware
  • Typically used for bootstrapping
  • TrInc makes it intrinsic to the protocol
  • It can be faster
  • There just has not been the call for it prior to TrInc

25

slide-101
SLIDE 101

TrInc – NSDI 2009 Dave Levin

Summary

  • Equivocation is a versatile and powerful
  • A small amount of trust can secure a large system
  • TrInc is
  • Minimal – A counter and a key
  • Versatile – Applies to a wide range of systems
  • Practical – Uses the same components available today

26

slide-102
SLIDE 102

TrInc – NSDI 2009 Dave Levin

TrInc speeds up A2M

27

150 300 450 600 Append Lookup Lookup Lookup End Truncate Advance

TrInc-A2M A2M

(successful) (too early) (forgotten)

Operation time (msec)

slide-103
SLIDE 103

TrInc – NSDI 2009 Dave Levin

TrInc speeds up A2M

27

150 300 450 600 Append Lookup Lookup Lookup End Truncate Advance

TrInc-A2M A2M

(successful) (too early) (forgotten)

Operation time (msec)

TrInc does not go to h/w for successful lookups

slide-104
SLIDE 104

TrInc – NSDI 2009 Dave Levin

TrInc speeds up A2M

27

150 300 450 600 Append Lookup Lookup Lookup End Truncate Advance

TrInc-A2M A2M

(successful) (too early) (forgotten)

Operation time (msec)

TrInc does not go to h/w for successful lookups TrInc requires attestations

slide-105
SLIDE 105

SIGCOMM’08 - BitTorrent is an Auction Dave Levin

Block Revelation

28

slide-106
SLIDE 106

SIGCOMM’08 - BitTorrent is an Auction Dave Levin

Block Revelation

28

slide-107
SLIDE 107

SIGCOMM’08 - BitTorrent is an Auction Dave Levin

Block Revelation

28

slide-108
SLIDE 108

SIGCOMM’08 - BitTorrent is an Auction Dave Levin

Block Revelation

28

slide-109
SLIDE 109

SIGCOMM’08 - BitTorrent is an Auction Dave Levin

Block Revelation

28

slide-110
SLIDE 110

SIGCOMM’08 - BitTorrent is an Auction Dave Levin

Block Revelation

28

slide-111
SLIDE 111

SIGCOMM’08 - BitTorrent is an Auction Dave Levin

Block Revelation

28

slide-112
SLIDE 112

SIGCOMM’08 - BitTorrent is an Auction Dave Levin

Block Revelation

28

slide-113
SLIDE 113

SIGCOMM’08 - BitTorrent is an Auction Dave Levin

Block Revelation

28

slide-114
SLIDE 114

SIGCOMM’08 - BitTorrent is an Auction Dave Levin

Block Revelation

28

slide-115
SLIDE 115

SIGCOMM’08 - BitTorrent is an Auction Dave Levin

Block Revelation

28

slide-116
SLIDE 116

SIGCOMM’08 - BitTorrent is an Auction Dave Levin

Block Revelation

28

slide-117
SLIDE 117

SIGCOMM’08 - BitTorrent is an Auction Dave Levin

Block Revelation

28

Strategically under-report

slide-118
SLIDE 118

TrInc – NSDI 2009 Dave Levin

TrInc-BitTorrent Results

29

50 100 150 200 250 300 20 40 60 80 100 120 140 160 180 Cumulative number of blocks obtained Time into the download (sec)

slide-119
SLIDE 119

TrInc – NSDI 2009 Dave Levin

TrInc-BitTorrent Results

29

50 100 150 200 250 300 20 40 60 80 100 120 140 160 180 Cumulative number of blocks obtained Time into the download (sec) 50 100 150 200 250 300 20 40 60 80 100 120 140 160 180 Cumulative number of blocks obtained Time into the download (sec) Representative peer

slide-120
SLIDE 120

TrInc – NSDI 2009 Dave Levin

TrInc-BitTorrent Results

29

50 100 150 200 250 300 20 40 60 80 100 120 140 160 180 Cumulative number of blocks obtained Time into the download (sec) 50 100 150 200 250 300 20 40 60 80 100 120 140 160 180 Cumulative number of blocks obtained Time into the download (sec) Representative peer 50 100 150 200 250 300 20 40 60 80 100 120 140 160 180 Cumulative number of blocks obtained Time into the download (sec) Representative peer Under-reporter: from all

slide-121
SLIDE 121

TrInc – NSDI 2009 Dave Levin

TrInc-BitTorrent Results

29

50 100 150 200 250 300 20 40 60 80 100 120 140 160 180 Cumulative number of blocks obtained Time into the download (sec) 50 100 150 200 250 300 20 40 60 80 100 120 140 160 180 Cumulative number of blocks obtained Time into the download (sec) Representative peer 50 100 150 200 250 300 20 40 60 80 100 120 140 160 180 Cumulative number of blocks obtained Time into the download (sec) Representative peer Under-reporter: from all

Under-reporter pulls ahead

slide-122
SLIDE 122

TrInc – NSDI 2009 Dave Levin

TrInc-BitTorrent Results

29

50 100 150 200 250 300 20 40 60 80 100 120 140 160 180 Cumulative number of blocks obtained Time into the download (sec) 50 100 150 200 250 300 20 40 60 80 100 120 140 160 180 Cumulative number of blocks obtained Time into the download (sec) Representative peer 50 100 150 200 250 300 20 40 60 80 100 120 140 160 180 Cumulative number of blocks obtained Time into the download (sec) Representative peer Under-reporter: from all

Under-reporter pulls ahead But ultimately downloads slower

slide-123
SLIDE 123

TrInc – NSDI 2009 Dave Levin

TrInc-BitTorrent Results

29

50 100 150 200 250 300 20 40 60 80 100 120 140 160 180 Cumulative number of blocks obtained Time into the download (sec) 50 100 150 200 250 300 20 40 60 80 100 120 140 160 180 Cumulative number of blocks obtained Time into the download (sec) Representative peer 50 100 150 200 250 300 20 40 60 80 100 120 140 160 180 Cumulative number of blocks obtained Time into the download (sec) Representative peer Under-reporter: from all 50 100 150 200 250 300 20 40 60 80 100 120 140 160 180 Cumulative number of blocks obtained Time into the download (sec) Representative peer Under-reporter: from all Under-reporter: from seed

Under-reporter pulls ahead But ultimately downloads slower

slide-124
SLIDE 124

TrInc – NSDI 2009 Dave Levin

Truth-tellers A median of 6% from the seeder Under-reporter 73% of file from the seeder

TrInc-BitTorrent Results

29

50 100 150 200 250 300 20 40 60 80 100 120 140 160 180 Cumulative number of blocks obtained Time into the download (sec) 50 100 150 200 250 300 20 40 60 80 100 120 140 160 180 Cumulative number of blocks obtained Time into the download (sec) Representative peer 50 100 150 200 250 300 20 40 60 80 100 120 140 160 180 Cumulative number of blocks obtained Time into the download (sec) Representative peer Under-reporter: from all 50 100 150 200 250 300 20 40 60 80 100 120 140 160 180 Cumulative number of blocks obtained Time into the download (sec) Representative peer Under-reporter: from all Under-reporter: from seed

Under-reporter pulls ahead But ultimately downloads slower