chainiac proactive software update transparency via
play

CHAINIAC: Proactive Software-Update Transparency via Collectively - PowerPoint PPT Presentation

CHAINIAC: Proactive Software-Update Transparency via Collectively Signed Skipchains and Verified Builds 1 Kirill Nikitin , 1 Eleftherios Kokoris-Kogias, 1 Philipp Jovanovic, 1 Linus Gasser, 1 Nicolas Gailly, 2 Ismail Kho ffi , 3 Justin Cappos, 1


  1. CHAINIAC: Proactive Software-Update Transparency via Collectively Signed Skipchains and Verified Builds 1 Kirill Nikitin , 1 Eleftherios Kokoris-Kogias, 1 Philipp Jovanovic, 1 Linus Gasser, 1 Nicolas Gailly, 2 Ismail Kho ffi , 3 Justin Cappos, 1 Bryan Ford 1 École polytechnique fédérale de Lausanne (EPFL) 2 University of Bonn 3 New York University

  2. Software Updates A program tape for the 1944 Harvard Mark I, Hilary Mason's Twitter one of the first digital computers. Wikipedia. 2

  3. Software Updates • Softwares updates are used to patch disclosed vulnerabilities, add new features, and improve security posture • If you do not update your system, things can go bad… Forbes The Verge The Sun 3

  4. Software Updates • But even if you do update your system regularly, things can go wrong too… • Software-update systems are a lucrative attack target due to their centralized design and potential impact on users How can we make software-update systems more secure and transparent? 4

  5. Software Release Pipeline Development/Review – Building release binaries – Sign-o ff – Release distribution Distribution center Developers </CODE> Users 5

  6. Software Release Pipeline Development/Review – Building release binaries – Sign-o ff – Release distribution Build server Distribution center Developers ⚙ ⚙ </CODE> Users 6

  7. Software Release Pipeline Development/Review – Building release binaries – Sign-o ff – Release distribution Build server Distribution center Developers ⚙ ⚙ </CODE> Users 7

  8. Software Release Pipeline Development/Review – Building release binaries – Sign-o ff – Release distribution Build server Distribution center Developers </CODE> Users 8

  9. Challenges 1. Make software-update process resilient to partial key compromise Build server Distribution center Developers </CODE> Users 9 9 9

  10. Challenges 1. Make software-update process resilient to partial key compromise Build server Distribution center Developers </CODE> Users 10 10 10

  11. Challenges 1. Make software-update process resilient to partial key compromise Build server Distribution center Developers </CODE> Users 11 11 11

  12. Challenges 1. Make software-update process resilient to partial key compromise Kaspersky Securelist Talos report on Mashable Petya/NotPetya attacks 12 12 12

  13. Challenges 2. Prevent malicious substitution of a release binary during building process Build server Distribution center Developers </CODE> Users 13 13 13

  14. Challenges 2. Prevent malicious substitution of a release binary during a build process Build server Distribution center Developers ⚙ ⚙ </CODE> Users 14 14 14

  15. Challenges 2. Prevent malicious substitution of a release binary during a build process Build server Distribution center Developers </CODE> Users 15 15 15

  16. Challenges 2. Prevent malicious substitution of a release binary during a build process Over 90% of the source packages included in Debian 9 will build bit- for-bit identical binary packages 16

  17. Challenges How many of you have reproducibly built software binaries for personal use? 17

  18. Challenges 2. Prevent malicious substitution of a release binary during a build process Closed-source software? Building the Tor Browser bundle takes 32 hours on a modern laptop 18

  19. Challenges 3. Protect users from targeted attacks by coerced or bribed developers Build server Distribution center Developers Users 19 19 19

  20. Challenges 3. Protect users from targeted attacks by coerced or bribed developers Build server Distribution center Developers Users 20 20 20

  21. Challenges 3. Protect users from targeted attacks by coerced or bribed developers Build server Distribution center Developers ⚙ ⚙ </CODE> </CODE’> Users 21 21 21

  22. Challenges 3. Protect users from targeted attacks by coerced or bribed developers Build server Distribution center Developers </CODE> </CODE’> Users 22 22 22

  23. Challenges 3. Protect users from targeted attacks by coerced or bribed developers Build server Distribution center Developers </CODE> </CODE’> Users 23 23 23

  24. Challenges 4. Enable developers to securely rotate their signing keys in case of renewal or compromise Distribution Build center server Developers Users 24 24 24 24

  25. Challenges 4. Enable developers to securely rotate their signing keys in case of renewal or compromise Distribution Build center server Developers Users 25 25 25 25

  26. Challenges 4. Enable developers to securely rotate their signing keys in case of renewal or compromise Distribution Build center server Developers Users 26 26 26 26

  27. Challenges 4. Enable developers to securely rotate their signing keys in case of renewal or compromise Distribution Build center server Developers Users 27 27 27 27

  28. Design of CHAINIAC 28

  29. Roadmap to CHAINIAC Decentralized Verified Builds Anti-equivocation Key Evolution Release Approval 29

  30. Decentralized Release-Approval 1. Make software-update process resilient to partial key compromise Developers User Policy Decentralized Verified Builds Anti-equivocation Key Evolution Release Approval 30

  31. Decentralized Release-Approval 1. Make software-update process resilient to partial key compromise Developers User Policy Decentralized Verified Builds Anti-equivocation Key Evolution Release Approval 31

  32. Decentralized Release-Approval 1. Make software-update process resilient to partial key compromise Distribution center Developers ⚙ User Release Release <source code> <binary> Policy Decentralized Verified Builds Anti-equivocation Key Evolution Release Approval 32

  33. Decentralized Release-Approval 1. Make software-update process resilient to partial key compromise Distribution center Developers ⚙ User Release Release <source code> <binary> Developers’ Policy signatures Decentralized Verified Builds Anti-equivocation Key Evolution Release Approval 33

  34. Decentralized Release-Approval 1. Make software-update process resilient to partial key compromise Distribution center Developers User Release <binary> Developers’ Policy signatures Decentralized Verified Builds Anti-equivocation Key Evolution Release Approval 34

  35. Decentralized Release-Approval 1. Make software-update process resilient to partial key compromise Distribution center Developers User Policy Release <binary> Developers’ signatures Decentralized Verified Builds Anti-equivocation Key Evolution Release Approval 35

  36. Background • Collective Authority (Cothority), Collective Signing (CoSi), and BFT-CoSi Authoritative statements: e.g. log records 1 record 2 record 3 record each statement collectively signed by both authority Authority and all or most witnesses Witness Cosigners References • Ewa Syta, Iulia Tamas, Dylan Visher, David Isaac Wolinsky, Philipp Jovanovic, Linus Gasser, Nicolas Gailly, Ismail Kho ffi , and Bryan Ford. Keeping Authorities “Honest or Bust” with Decentralized Witness Cosigning. In 37th IEEE Symposium on Security and Privacy , May 2016. • Eleftherios Kokoris-Kogias, Philipp Jovanovic, Nicolas Gailly, Ismail Kho ffi , Linus Gasser, and Bryan Ford. Enhancing Bitcoin Security and Performance with Strong Consistency via Collective Signing. In Proceedings of the 25th USENIX Conference on Security Symposium , 2016. 36

  37. Verified Builds 2. Prevent malicious substitution of a release binary during building process Distribution Developers center Cothority Release Tree <source code> <binaries> Developers’ signatures User Policy Decentralized Verified Builds Anti-equivocation Key Evolution Release Approval 37

  38. Verified Builds 2. Prevent malicious substitution of a release binary during building process Distribution Developers center Cothority Release Tree <source code> ⚙ ⚙ <binaries> Developers’ ⚙ signatures User Policy Decentralized Verified Builds Anti-equivocation Key Evolution Release Approval 38

  39. Verified Builds 2. Prevent malicious substitution of a release binary during building process Distribution Developers center Cothority Release Tree <source code> ⚙ ⚙ <binaries> Co-signature ⚙ User Policy Decentralized Verified Builds Anti-equivocation Key Evolution Release Approval 39

  40. Verified Builds 2. Prevent malicious substitution of a release binary during building process Distribution Developers center Cothority Release Tree <source code> <binaries> ⚙ ⚙ Co-signature ⚙ Download & Verify User Policy Decentralized Verified Builds Anti-equivocation Key Evolution Release Approval 40

  41. Verified Builds Release Policy File - List of individual developer public keys - Signing threshold - Cothority public key - Supported platforms for verified builds - … Decentralized Verified Builds Anti-equivocation Key Evolution Release Approval 41

Recommend


More recommend