2016-04-30 51 views
8

有兴趣购买我的应用程序(实际上有用户唯一的一个)中的一个,这意味着我需要送他原始的源代码,密钥库和开发要求谷歌为传递以下此链接:https://support.google.com/googleplay/android-developer/answer/6230247?hl=enAndroid应用转移到其他开发人员

问题是:我的所有应用程序都使用同一个密钥库中的相同证书。

所以我的问题是:新开发者是否可以劫持我的其他应用程序?

我相信答案是“否的设备将允许使用同一证书,并使用相同的包名在设备上更新签署了另APK,但谷歌播放不会允许开发者上传的另一个应用程序使用与我的其他应用程序相同的软件包名称“。

但我不确定,我想了解更多技术细节。

正如我所说的,其他的应用程序我并不重要,我也可以同样取消发布他们。但我宁愿不,即使我这样做,这个问题仍然有效。

PS:是的,现在我明白了,我应该有每个应用程序1证书。

+0

您的任何应用程序是否正在使用或计划使用sharedUserId? – ligi

+0

没有,没有计划。 – Budius

+0

在不知道代码的情况下,如果共享密钥库(在极少数情况下可能是KO,但我通常不会推荐它),评估可能的攻击向量仍然很难评估 - 您是否使用任何基于证书的权限? (protectionLevel签名) – ligi

回答

4

您的应用程序的软件包名称在Play商店中是唯一的。这是设备(和Play商店)如何识别您的应用程序,因此必须是唯一的,无法更改。 Android不允许用户使用相同的包名安装两个应用程序。

但是,将您的密钥库交给其他开发人员仍然有风险。 Play商店在更新应用程序时使用两个门:

  • 首先,您必须有权访问拥有应用程序的帐户。

  • 其次,你必须有一个APK使用正确的密钥库

通过给你的密钥存储访问的人签署,则删除这两个安全检查中的一个。如果应用程序的新所有者能够访问您的开发者帐户,他们也可以重新发布其他应用程序。这个新所有者也有可能将密钥库和应用程序出售给未来可能做同样事情的其他人。

从理论上讲,如果你的账户是安全的,那么你的其它应用程序也可从劫持安全。

风险是否可以接受取决于您。

+0

最后,我决定放下这个机会,并为未来学习,我应该为每个应用程序执行1个证书。说所有你的答案是最有洞察力的,因此被标记为正确的+赏金。 – Budius

0

新开发者是否可以劫持我的其他 应用程序?

没有办法在世界上的任何其他的应用程序做任何事情,除非你给他你的keystore

keystore的关键是所有的应用程序,你应该不会与任何人分享。在我的开发者帐户中使用您的keystore签名的应用永远不会让我对您自己的应用执行任何操作。

任何人都可以使用不同的密钥库在游戏商店中发布应用程序。

1

他们可以签署APK并鼓励您的现有用户加载它。当侧载时,应用程序无法知道它是否来自您或他们。但Play商店本身不会让他们上传没有转移给他们的应用。

通常,买方购买应用程序并使用其他应用程序使用的密钥时,协议的一部分将包含买方必须保护密钥的小片段。这个协议无论如何都是双边的,因为你理论上可以通过旁路签名的APK来劫持他们的用户。

相关问题