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

Recommend


More recommend