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

baton certificate agility for android s decentralized
SMART_READER_LITE
LIVE PREVIEW

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


slide-1
SLIDE 1

Baton: Certificate Agility for Android's Decentralized Signing Infrastructure

David Barrera, Daniel McCarney, Jeremy Clark, Paul van Oorschot Carleton University, Ottawa

slide-2
SLIDE 2

General Problem

  • Selective updates - Prevent files from being
  • verwritten by unauthorized parties.
  • Allow transparent authorized updates
  • Doing this without a centrally trusted party

(decentralized)

2

slide-3
SLIDE 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

slide-4
SLIDE 4

Limitations of Android Signing

  • No method to update signing keys or certificates
  • Google requires use of the same key pair for 35+

years!

  • Selling apps requires private key transfer
  • Changing key algorithm/size is not possible
  • No recovery from key compromise

4

slide-5
SLIDE 5

Google attempts to change their signing key

5

slide-6
SLIDE 6

App transfer

V2 V3 V1

6

slide-7
SLIDE 7

App transfer

7

slide-8
SLIDE 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

slide-9
SLIDE 9

Key-locking

9

slide-10
SLIDE 10

Key-locking Limitations

  • History of key transitions is ephemeral
  • Intermediate updates cannot be skipped
  • Would break compatibility with the signatures used
  • n Android applications

10

slide-11
SLIDE 11

11

slide-12
SLIDE 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

slide-13
SLIDE 13

Baton

PubKb PrivKb PubKa PrivKa

=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

slide-14
SLIDE 14

Baton Delegation Tokens

  • Package name, version
  • Set of currently used certificates
  • Set of new certificates
  • Hash of previous token (if available)

14

slide-15
SLIDE 15

Baton

V2 V3 V1 Without Baton V2 V3 V1 With Baton

15

slide-16
SLIDE 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

slide-17
SLIDE 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

slide-18
SLIDE 18

Limitations

  • Must keep tokens and public keys for as long

as users are expected to update

  • Does not allow recovery from key loss

18

Shameless plug: www.androidobservatory.org

slide-19
SLIDE 19

Thank you Questions

Contact: @davidbb david.barrera@inf.ethz.ch

19

slide-20
SLIDE 20

20

slide-21
SLIDE 21

Android

Looks like (variant 3 of) key-locking!

21

slide-22
SLIDE 22

22

slide-23
SLIDE 23

Key-locking

Variant 2 - verify all signatures (k=mnew)

23

slide-24
SLIDE 24

App transfer

V2 V3 V1

24

slide-25
SLIDE 25

Change Signing Key

V2 V 3 V1

25