2016-08-18 16 views
2

在Google Play上发布Android应用之前,需要使用发布密钥进行签名。据说这是为了安全。生成密钥时必须输入密码。当有人盗取我的Android应用程序发布密钥时会发生什么恶行?

这里有什么大惊小怪的吗? 让我问,如果我的释放密钥被盗/复制会发生什么。假设有人甚至可以设法使用该密钥来签署他/她自己的应用程序。这意味着什么不好?

我认为,几乎没有,对不对? (考虑到我的开发人员账户/控制台登录凭证未被盗过)
也许最大/唯一的风险会arrise如果偷来的释放钥匙签署偷别人的应用程序将变得能更直接地访问我的应用程序的数据(在用户设备)。

+0

CommonsWare与应用互动提供了将R如果你想知道机制,请参阅私钥/公钥加密。您通过签名分发公钥,然后用于确定新版本是否来自私钥持有者。 – NameSpace

回答

3

他们可以抓住你的APK(公开可读的所有Android设备),修改(例如,添加恶意软件),签名,并分发。假设他们遇到了versionCode,那么任何试图安装他们的黑客版本的应用的人都会成功,因为从Android的角度来看,这是一个有效的升级。如果黑客可以获得您的分销渠道的凭据(例如,损害您的Google Play帐户的Play商店),则他们可以将更新发送给所有用户。

或者,他们可以创建自己的独立的APK,并与您的签名密钥签名。现在,您的应用和他们的应用都由相同的密钥签名。这开辟了其他的攻击途径:

  • 如果使用android:sharedUserId,他们可以在所有的应用程序的内部存储器中的文件,这是正常的保护从其他应用程序获得(外界植根设备)

  • 如果您使用的权限与signatureprotectionLevel,他们的应用程序可以持有这些相同的权限和可能的方式,你只希望自己的应用程序套件使用

+0

即使没有释放键,他们也可以做同样的事情,即他们仍然可以抓紧APK,他们可以修改(恶意软件),并且可以使用新创建的释放键重新分配它。那么情况会变得更糟?为了有效地重新分配,他们反正会让我的Google开发者控制台帐户被盗。 – humanityANDpeace

+0

@humanityANDpeace:Android不会认为它是对现有应用程序用户的升级。因此,如果黑客获得了您的分发凭据,则他们无法将更新分发给所有用户。把它看作是应用程序更新分发的双因素认证:攻击者需要你拥有的东西(你的发布密钥库)以及你知道的东西(例如你的Google帐户凭证)。 – CommonsWare

+0

是的,有一点点意义可以被看到(两个因素),并且访问应用程序内部的点(即在具有相同释放键的应用程序之间共享访问权限)使得释放键不完全没有意义。 – humanityANDpeace

相关问题