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
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
Explore More Topics
Stay informed with curated content and fresh updates.