authentication - How does Android's app/signature verification work? -


i want preface question 2 things can narrow down actual question is:

a) i've done software dev before, though never android

b) i'm familiar pki , encryptions , hashing , digital signatures , blah blah blah

that being said i'm having trouble tracking down more information , how android verifies app creators. i've heard lot of different information i'm trying synthesize better idea of workflow.

i know every app developer gets own private/public key pair , sign apps hashing apk (with sha-1 of time if i'm not mistaken) , there go. upload , (i believe) public key goes in meta inf inside apk. understand.

my question how relates when user downloads app itself. know phone checks make sure app validly signed, , signature has information author , etc included. i've read apps self signed , google play (or whatever they're calling market now) doesn't implement ca, , there's no identity authentication? question what, then, stops people uploading app under developers name (crowdsourcing aside)?

if phone checks valid signatures imply means of authentication done when app uploaded? , if that's case how app market check it? usual - use private key on file , verify signature? or developer have provide market private key authenticate?

in short, android , google play don't care what's in actual certificate. google play validate indeed, , check if valid 30 years or more, don't use (at least currently, afaik) actual info in cert. use own name/company name in cn, no 1 validate this, , users won't see info @ all. android is:

  • check signature make sure apk hasn't been tampered with
  • then compare singing certificate as binary blob 1 of installed version of app make sure 2 versions have been signed same key/certificate (e.g., same person/company)
  • it same thing enforce permission if using using shareduid or signature permissions 2 or more apps.

so, answer question, can create certificate name on it, android , google play don't care. long don't have private key, won't able produce app signature same yours , wouldn't able overwrite/update app theirs, or special permissions.


Comments

Popular posts from this blog

django - How can I change user group without delete record -

java - Need to add SOAP security token -

java - EclipseLink JPA Object is not a known entity type -