when the going gets tough get tuf going
play

When the going gets tough, Get TUF going! Riyaz Faizullabhoy - - PowerPoint PPT Presentation

When the going gets tough, Get TUF going! Riyaz Faizullabhoy - @riyazdf Motivation What is TUF? Using TUF Hermetic Builds Where does software come from? $> _ $>curl | sudo bash $>apt-get install authenticity $>apt-get


  1. Root Metadata Root: Timestamp: USA Snapshot: Switzerland Targets: China Expiry: ...

  2. Offline for security • Backup in bank vault • Use signing hardware

  3. TUF repository packages ?

  4. Targets Metadata java : { hashes } openssl : { hashes } … Expiry: ...

  5. Targets Metadata Keys: { Alice: A Bob: B } java: [Alice] openssl: [Bob] Expiry: ...

  6. Delegation Metadata java-8-jre : { hashes } A java-7-jre : { hashes } ... Expiry: ... openssl-1.0.1t : { hashes } B openssl-1.0.2h : { hashes } ... Expiry: ...

  7. java-8-jre A java-7-jre openssl-1.0.1t B openssl-1.0.2h

  8. jdk java java-8-jdk C java-7-jdk A jre apt java-8-jre A java-7-jre openssl openssl-1.0.1t B openssl-1.0.2h

  9. jdk java java-8-jdk C java-7-jdk A jre apt java-8-jre A java-7-jre openssl openssl-1.0.1t B openssl-1.0.2h D E

  10. • authenticity • integrity • freshness • survivable key compromise • thresholding

  11. • authenticity • integrity • freshness • survivable key compromise • thresholding

  12. • authenticity • integrity • freshness • survivable key compromise • thresholding

  13. Snapshot Metadata Root : { hashes } Targets : { hashes } Alice : { hashes } Bob : { hashes } … Expiry: ...

  14. • authenticity • integrity • freshness • survivable key compromise • thresholding

  15. Timestamp Metadata Snapshot : { hashes } … Expiry: 24 hours from now

  16. jdk java java-8-jdk C java-7-jdk A jre apt java-8-jre A java-7-jre openssl X openssl-1.0.1t B openssl-1.0.2h D E

  17. • authenticity • integrity • freshness • survivable key compromise • thresholding

  18. #

  19. # # #

  20. #

  21. #

  22. Metadata Lifetime Timestamp Snapshot Targets/ Delegations Root Lifetime t

  23. Keeping Freshness Timestamp Snapshot Targets/ Delegations Root Lifetime t

  24. Snapshot Expired! Timestamp Snapshot Targets/ Delegations Root Lifetime t

  25. Sign a new Snapshot Timestamp Snapshot Targets/ Delegations Root Lifetime t

  26. Sign a new Timestamp to point the Snapshot Timestamp Snapshot Targets/ Delegations Root Lifetime t

  27. Want to publish something? Timestamp Snapshot Targets/ Delegations Root Lifetime t

  28. Sign the hash into a new Targets or Delegation file Timestamp Snapshot Targets/ Delegations Root Lifetime t

  29. Sign a new Snapshot that references this Targets file Timestamp Snapshot Targets/ Delegations Root Lifetime t

  30. Sign a new Timestamp that references the new Snapshot Timestamp Snapshot Targets/ Delegations Root Lifetime t

  31. Situation normal Timestamp Snapshot Targets/ Delegations Root Lifetime t

  32. Oh no, I think my Snapshot key was compromised! Timestamp Snapshot Targets/ Delegations Root Lifetime t

  33. Compromise is “when” not “if”

  34. Root: Root Timestamp: Metadata Snapshot: Targets:

  35. Root: Root Timestamp: Metadata Snapshot: Targets: Snapshot Metadata

  36. Before recovery Timestamp Snapshot Targets/ Delegations Root Lifetime t

  37. Create and sign the new Snapshot key into Root Timestamp Snapshot Targets/ Delegations Root Lifetime t

  38. Sign a new Snapshot with the new key Timestamp Snapshot Targets/ Delegations Root Lifetime t

  39. Sign new Timestamp to reference new Snapshot Timestamp Snapshot Targets/ Delegations Root Lifetime t

  40. GPG TUF • authenticity • integrity • freshness • survivable key compromise • thresholding • ease of use coming soon!

  41. • … • auditability

  42. ?

  43. How can we start using TUF?

  44. Demo • ease of use?

  45. Demo

  46. • authenticity • integrity • freshness • survivable key compromise • thresholding • ease of use

  47. github.com/docker/notary

  48. $> export DOCKER_CONTENT_TRUST=1

  49. alpine

  50. alpine latest: {hash} edge: {hash} 2.6: {hash} 3.3: {hash} 3.4: {hash}

  51. $> $pkg-manager install openssl

  52. Design Goals: - root of trust in package manager maintainers - with thresholding - freshness guarantees - signed index of all packages - signed package targets by package maintainers - name to hash resolution - with thresholding

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend