tr i nc small trusted hardware for large distributed
play

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


  1. 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

  2. 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

  3. 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

  4. 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

  5. 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

  6. 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

  7. 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

  8. 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

  9. 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

  10. 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

  11. 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

  12. 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

  13. 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

  14. 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

  15. BitTorrent primer 16 TrInc – NSDI 2009 Dave Levin

  16. BitTorrent primer File pieces Fast, users share the work 16 TrInc – NSDI 2009 Dave Levin

  17. BitTorrent primer 1 1 0 1 1 0 File pieces Fast, users share the work 16 TrInc – NSDI 2009 Dave Levin

  18. 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

  19. BitTorrent primer 1 1 0 1 1 0 File pieces Fast, users share the work 16 TrInc – NSDI 2009 Dave Levin

  20. 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

  21. 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

  22. 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

  23. 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

  24. 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

  25. Piece under-reporting is equivocation [SIGCOMM’08] Yields prolonged interest from others and faster download times 17 TrInc – NSDI 2009 Dave Levin

  26. Piece under-reporting is equivocation 17 TrInc – NSDI 2009 Dave Levin

  27. Piece under-reporting is equivocation 17 TrInc – NSDI 2009 Dave Levin

  28. Piece under-reporting is equivocation Ack 17 TrInc – NSDI 2009 Dave Levin

  29. Piece under-reporting is equivocation Ack 17 TrInc – NSDI 2009 Dave Levin

  30. Piece under-reporting is equivocation I received 17 TrInc – NSDI 2009 Dave Levin

  31. Piece under-reporting is equivocation I never received I received 17 TrInc – NSDI 2009 Dave Levin

  32. 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

  33. Tr I nc-BitTorrent 19 TrInc – NSDI 2009 Dave Levin

  34. Tr I nc-BitTorrent 19 TrInc – NSDI 2009 Dave Levin

  35. Tr I nc-BitTorrent I have and most recently received 1 19 TrInc – NSDI 2009 Dave Levin

  36. 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

  37. 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

  38. 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

  39. 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

  40. 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

  41. Why attest to the latest piece? 20 TrInc – NSDI 2009 Dave Levin

  42. Why attest to the latest piece? 20 TrInc – NSDI 2009 Dave Levin

  43. Why attest to the latest piece? I have 1 20 TrInc – NSDI 2009 Dave Levin

  44. Why attest to the latest piece? I have 1 20 TrInc – NSDI 2009 Dave Levin

  45. Why attest to the latest piece? I have 1 20 TrInc – NSDI 2009 Dave Levin

  46. Why attest to the latest piece? I have 1 I have 2 I have 2 20 TrInc – NSDI 2009 Dave Levin

  47. 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

  48. 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

  49. 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

  50. 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

  51. 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

  52. 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

  53. 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

  54. 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

  55. 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

  56. 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

  57. 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

  58. 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