【发布时间】:2012-06-11 21:22:08
【问题描述】:
我想用两件事来作为这个问题的开头,这样我就可以缩小我的实际问题所在:
a) 我以前做过软件开发,但从来没有为 android 做过
b) 我熟悉 PKI 和加密、散列和数字签名等等等等
话虽如此,我无法找到有关 Android 验证应用创建者的地点和方式的更多信息。我听到了很多不同的信息,因此我正在尝试综合以更好地了解工作流程。
我知道每个应用程序开发人员都有自己的私钥/公钥对,他们通过对 APK 进行哈希处理(如果我没记错的话,大部分时间使用 SHA-1)来签署他们的应用程序,然后就可以了。您上传它并且(我相信)公钥进入 APK 内的 META INF 中。这点我明白了。
我的问题是,这与用户下载应用程序本身时有何关系。我知道电话会检查以确保应用程序已有效签名,并且签名还包含有关作者等的信息。但我也读到应用程序是自签名的,Google Play(或他们现在称之为 Market 的任何东西)没有实现 CA,并且没有身份验证?但我的问题是,那么,是什么阻止了人们以其他开发者的名义上传应用程序(众包除外)?
如果手机只检查有效签名,这是否意味着在上传应用时完成了唯一的身份验证方式?如果是这种情况,应用市场如何检查呢?这是通常的 - 使用文件中的私钥并验证签名吗?还是开发者必须向市场提供他们的私钥才能进行身份验证?
【问题讨论】:
-
当您签署 apk 时,您必须提供私人密码。因此,为了让某人“作为其他人”发布应用程序,他们需要访问他们的密钥库/密钥文件和密码。并访问与市场相关联的 Google 帐户。
-
@Tim:我认为他在问:什么是防止其他人创建自己的密钥对和自签名证书,其中也写着“Fewmitz”。它是否以某种方式与某处的帐户相关联?
标签: android authentication encryption pki