baton certificate agility for android s decentralized
play

Baton: Certificate Agility for Android's Decentralized Signing - PowerPoint PPT Presentation

Baton: Certificate Agility for Android's Decentralized Signing Infrastructure David Barrera , Daniel McCarney, Jeremy Clark, Paul van Oorschot Carleton University, Ottawa General Problem Selective updates - Prevent files from being


  1. Baton: Certificate Agility for Android's Decentralized Signing Infrastructure David Barrera , Daniel McCarney, Jeremy Clark, Paul van Oorschot Carleton University, Ottawa

  2. General Problem ● Selective updates - Prevent files from being overwritten by unauthorized parties. ● Allow transparent authorized updates ● Doing this without a centrally trusted party (decentralized) 2

  3. Android ● Apps must be digitally signed ● No central authorities ● Android uses a TOFU model for apps ● Application updates must be signed with the same private key as original 3

  4. Limitations of Android Signing � ● No method to update signing keys or certificates ● Google requires use of the same key pair for 35+ years! o Selling apps requires private key transfer o Changing key algorithm/size is not possible o No recovery from key compromise 4

  5. Google attempts to change their signing key 5

  6. App transfer V1 V2 V3 6

  7. App transfer 7

  8. Related Work ● Key-locking (Wurster and Van Oorschot, 2007) ● Digitally sign files we wish to protect ● OS policy: “Only allow updates if new version includes signatures that can be verified by keys in the current version” 8

  9. Key-locking 9

  10. Key-locking Limitations ● History of key transitions is ephemeral ● Intermediate updates cannot be skipped ● Would break compatibility with the signatures used on Android applications 10

  11. 11

  12. Baton ● Protocol to assert delegation of signing authority ● Builds on the ideas of Key-locking ● Improvements: • Keeps a history of key delegations • Allows skipping intermediate updates • Per-app 12

  13. Baton PubKa PubKb PrivKa PrivKb = SigPrivKa { "I authorize the holder of PrivKb* to release updates to Angry Birds Space" } *PrivKb can also be a set of keys and corresponding policy for consensus 13

  14. Baton Delegation Tokens ● Package name, version ● Set of currently used certificates ● Set of new certificates ● Hash of previous token (if available) 14

  15. Baton Without Baton V1 V2 V3 With Baton V1 V2 V3 15

  16. Baton ● Usability benefits: ● No user action required ● Transparent: updates as usual ● Opt-in: developers only go through this process if switching keys ● Lightweight: no additional servers, low storage overhead ● Encourages key management best practices 16

  17. Implementation ● Modifications to Android’s installer framework ● No changes to “outer” signatures ● Ensure that we preserve compatibility ● Eclipse plugin to generate Baton delegation tokens 17

  18. Limitations ● Must keep tokens and public keys for as long as users are expected to update ● Does not allow recovery from key loss Shameless plug: www.androidobservatory.org 18

  19. Thank you Questions Contact: @davidbb david.barrera@inf.ethz.ch 19

  20. 20

  21. Android Looks like (variant 3 of) key-locking! 21

  22. 22

  23. Key-locking Variant 2 - verify all signatures (k=mnew) 23

  24. App transfer V1 V2 V3 24

  25. Change Signing Key V V1 V2 3 25

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