Implementing a trusted log in Tr I nc Append(data): Bind new data to the attest(11, , ) end of the log 10 Lookup(sequence num): No equivocating on what is or is not stored < > 3,8, < > 8,9, < > < > 9,10, 9,10, Untrusted storage 13 TrInc – NSDI 2009 Dave Levin
Implementing a trusted log in Tr I nc Append(data): Bind new data to the end of the log 10 Lookup(sequence num): No equivocating on what is or is not stored < > 3,8, < > 8,9, < > < > 9,10, 9,10, Untrusted storage 13 TrInc – NSDI 2009 Dave Levin
Implementing a trusted log in Tr I nc Append(data): Bind new data to the end of the log 10 11 Lookup(sequence num): No equivocating on what is or is not stored < > 3,8, < > 8,9, < > < > 9,10, 9,10, Untrusted storage 13 TrInc – NSDI 2009 Dave Levin
Implementing a trusted log in Tr I nc Append(data): Bind new data to the < > 10,11, end of the log 10 11 Lookup(sequence num): No equivocating on what is or is not stored < > 3,8, < > 8,9, < > < > 9,10, 9,10, Untrusted storage 13 TrInc – NSDI 2009 Dave Levin
Implementing a trusted log in Tr I nc Append(data): Bind new data to the end of the log 10 11 Lookup(sequence num): No equivocating on what is or is not stored < > 3,8, < > 8,9, < > < > 9,10, 9,10, < > 10,11, Untrusted storage 13 TrInc – NSDI 2009 Dave Levin
Implementing a trusted log in Tr I nc Append(data): Bind new data to the lookup 10 end of the log 10 11 Lookup(sequence num): No equivocating on what is or is not stored < > 3,8, < > 8,9, < > < > 9,10, 9,10, < > 10,11, Untrusted storage 13 TrInc – NSDI 2009 Dave Levin
Implementing a trusted log in Tr I nc Append(data): Bind new data to the end of the log lookup 10 10 11 Lookup(sequence num): No equivocating on what is or is not stored < > 3,8, < > 8,9, < > < > 9,10, 9,10, < > 10,11, Untrusted storage 13 TrInc – NSDI 2009 Dave Levin
Implementing a trusted log in Tr I nc Append(data): Bind new data to the end of the log lookup 10 10 11 Lookup(sequence num): No equivocating on what is or is not stored < > 3,8, < > 8,9, < > < > 9,10, 9,10, < > 10,11, Untrusted storage 13 TrInc – NSDI 2009 Dave Levin
Implementing a trusted log in Tr I nc Append(data): Bind new data to the end of the log 10 11 Lookup(sequence num): No equivocating on what is or is not stored < > 3,8, < > 8,9, < > < > 9,10, 9,10, < > 10,11, Untrusted storage 13 TrInc – NSDI 2009 Dave Levin
Implementing a trusted log in Tr I nc Append(data): Bind new data to the end of the log 10 11 Lookup(sequence num): No equivocating on what is or is not stored < > 3,8, < > 8,9, < > < > 9,10, 9,10, < > 10,11, Untrusted storage 13 TrInc – NSDI 2009 Dave Levin
Implementing a trusted log in Tr I nc Append(data): Bind new data to the end of the log 10 11 Lookup(sequence num): No equivocating on what is or is not stored < > 3,8, < > 8,9, < > < > 9,10, 9,10, Fast lookups Few hardware accesses < > 10,11, Untrusted storage 13 TrInc – NSDI 2009 Dave Levin
Tr I nc-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, Tr I nc solves these systems, too 14 TrInc – NSDI 2009 Dave Levin
What can Tr I nc 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 TrInc – NSDI 2009 Dave Levin
What can Tr I nc 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 TrInc – NSDI 2009 Dave Levin
BitTorrent primer 16 TrInc – NSDI 2009 Dave Levin
BitTorrent primer File pieces Fast, users share the work 16 TrInc – NSDI 2009 Dave Levin
BitTorrent primer 1 1 0 1 1 0 File pieces Fast, users share the work 16 TrInc – NSDI 2009 Dave Levin
BitTorrent primer Does not have piece 2 1 1 0 1 1 0 File pieces Fast, users share the work 16 TrInc – NSDI 2009 Dave Levin
BitTorrent primer 1 1 0 1 1 0 File pieces Fast, users share the work 16 TrInc – NSDI 2009 Dave Levin
BitTorrent primer 1 1 0 1 1 0 File pieces 1 0 1 1 0 1 Fast, users share the work 16 TrInc – NSDI 2009 Dave Levin
BitTorrent primer 1 1 0 1 0 1 File pieces 1 1 0 1 0 1 Fast, users share the work 16 TrInc – NSDI 2009 Dave Levin
BitTorrent primer 1 1 0 1 1 0 1 0 1 1 0 1 Interested File pieces 1 1 0 1 0 1 Fast, users share the work 16 TrInc – NSDI 2009 Dave Levin
BitTorrent primer 1 1 0 1 1 0 1 0 1 1 0 1 Interested File pieces 1 1 0 1 1 0 Interested 1 0 1 1 0 1 Fast, users share the work 16 TrInc – NSDI 2009 Dave Levin
BitTorrent primer 1 1 0 1 1 0 1 0 1 1 0 1 Interested File pieces 1 1 0 1 1 0 Interested 1 0 1 1 0 1 Fast, users share the work 16 TrInc – NSDI 2009 Dave Levin
Piece under-reporting is equivocation [SIGCOMM’08] Yields prolonged interest from others and faster download times 17 TrInc – NSDI 2009 Dave Levin
Piece under-reporting is equivocation 17 TrInc – NSDI 2009 Dave Levin
Piece under-reporting is equivocation 17 TrInc – NSDI 2009 Dave Levin
Piece under-reporting is equivocation Ack 17 TrInc – NSDI 2009 Dave Levin
Piece under-reporting is equivocation Ack 17 TrInc – NSDI 2009 Dave Levin
Piece under-reporting is equivocation I received 17 TrInc – NSDI 2009 Dave Levin
Piece under-reporting is equivocation I never received I received 17 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 TrInc – NSDI 2009 Dave Levin
Tr I nc-BitTorrent 19 TrInc – NSDI 2009 Dave Levin
Tr I nc-BitTorrent 19 TrInc – NSDI 2009 Dave Levin
Tr I nc-BitTorrent I have and most recently received 1 19 TrInc – NSDI 2009 Dave Levin
Tr I nc-BitTorrent I have and most recently received 1 I have and most recently received 2 I have and most recently received 3 19 TrInc – NSDI 2009 Dave Levin
Tr I nc-BitTorrent I have and most recently received 1 I have and most recently received 2 I have and most recently received 3 Counter matches the bitfield size 19 TrInc – NSDI 2009 Dave Levin
Tr I nc-BitTorrent I have and most recently received 1 I have and most recently received 2 I have and most recently received 3 Counter matches the bitfield size 19 TrInc – NSDI 2009 Dave Levin
Tr I nc-BitTorrent I have and most recently received 1 I have and most recently received 2 I have and most recently received 3 Counter matches the bitfield size Attests to most recent piece 19 TrInc – NSDI 2009 Dave Levin
Tr I nc-BitTorrent I have and most recently received 1 I have and most recently received 2 I have and most recently received 3 Counter matches the bitfield size Attests to most recent piece 19 TrInc – NSDI 2009 Dave Levin
Why attest to the latest piece? 20 TrInc – NSDI 2009 Dave Levin
Why attest to the latest piece? 20 TrInc – NSDI 2009 Dave Levin
Why attest to the latest piece? I have 1 20 TrInc – NSDI 2009 Dave Levin
Why attest to the latest piece? I have 1 20 TrInc – NSDI 2009 Dave Levin
Why attest to the latest piece? I have 1 20 TrInc – NSDI 2009 Dave Levin
Why attest to the latest piece? I have 1 I have 2 I have 2 20 TrInc – NSDI 2009 Dave Levin
Why attest to the latest piece? Looks good I have 1 to me Looks good I have 2 to me Looks good I have 2 to me 20 TrInc – NSDI 2009 Dave Levin
Why attest to the latest piece? Looks good I have 1 to me Looks good I have 2 to me Looks good I have 2 to me 20 TrInc – NSDI 2009 Dave Levin
Why attest to the latest piece? Looks good I have 1 to me Looks good I have 2 to me Looks good I have 2 to me Lesson: Without the full log, must ensure proper behavior at each step 20 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 TrInc – NSDI 2009 Dave Levin
Contributions 1 Tr I nc – A new, practical primitive for eliminating equivocation 2 2 Applications of Tr I nc 3 Implementation in currently available hardware 22 TrInc – NSDI 2009 Dave Levin
Contributions 1 Tr I nc – A new, practical primitive for eliminating equivocation 2 Applications of Tr I nc 3 3 Implementation in currently available hardware 22 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 TrInc – NSDI 2009 Dave Levin
Tr I nc microbenchmarks 250 Operation time (msec) 200 150 100 50 0 noop Asym Attest Asym Attest Symm attest Symm Attest Verify (advance) (status) (advance) (status) 24 TrInc – NSDI 2009 Dave Levin
Tr I nc microbenchmarks 250 Operation time (msec) 200 150 100 50 0 noop Asym Attest Asym Attest Symm attest Symm Attest Verify (advance) (status) (advance) (status) 24 TrInc – NSDI 2009 Dave Levin
Tr I nc microbenchmarks 32 msec to write a counter 250 Operation time (msec) 200 150 100 50 0 noop Asym Attest Asym Attest Symm attest Symm Attest Verify (advance) (status) (advance) (status) 24 TrInc – NSDI 2009 Dave Levin
Tr I nc microbenchmarks 32 msec to write a counter 250 Operation time (msec) 200 Only 2x 150 100 50 0 noop Asym Attest Asym Attest Symm attest Symm Attest Verify (advance) (status) (advance) (status) 24 TrInc – NSDI 2009 Dave Levin
Why so slow? • Fundamentally new application of trusted hardware • Typically used for bootstrapping • Tr I nc makes it intrinsic to the protocol • It can be faster • There just has not been the call for it prior to Tr I nc 25 TrInc – NSDI 2009 Dave Levin
Recommend
More recommend