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
Post a Comment