我想用两件事来为这个问题做准备,这样我就可以缩小我的实际问题所在:
a)我以前做过软件开发,但从来没有用过android
b)我熟悉PKI和加密,散列和数字签名,等等等等
话虽如此,我无法追踪有关Android验证应用创建者的位置和方式的更多信息.我听到了很多不同的信息,所以我正在尝试综合以更好地了解工作流程.
我知道每个应用程序开发人员都会获得他们自己的私钥/公钥对,并且他们通过散列APK来签署他们的应用程序(如果我没有记错的话,大部分时间都使用SHA-1)并且你去了.你上传它(我相信)公钥在APK内的META INF中.我明白这一点.
我的问题是这与用户何时下载应用程序本身有何关系.我知道电话会检查以确保应用程序有效签名,并且签名还包含有关作者等的信息.但我也读到应用程序是自签名的,Google Play(或者他们现在称之为市场的任何东西)都没有实现CA,并且没有身份验证?但我的问题是,阻止人们在另一个开发者名称上下载应用程序(众包除外)是什么?
如果手机只检查有效签名是否意味着在上传应用程序时完成了唯一的身份验证方式?如果是这样的话,应用市场如何检查呢?这是通常的 - 使用文件上的私钥并验证签名?或者开发人员是否必须向市场提供其私钥进行身份验证?
我已从同一帐户上载了大约十个应用程序在Play商店.因为缺乏知识,我已经创建了所有应用程序的单独证书,但现在我只想让它成为单一证书并为所有应用程序分配不同的别名.有可能改变它吗?如果是的话会是什么程序.