Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/224.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当有人窃取我的android应用程序发布密钥时,会发生什么坏事?_Android_Google Play_Key_Sign - Fatal编程技术网

当有人窃取我的android应用程序发布密钥时,会发生什么坏事?

当有人窃取我的android应用程序发布密钥时,会发生什么坏事?,android,google-play,key,sign,Android,Google Play,Key,Sign,在谷歌Play上发布Android应用程序之前,需要使用发布密钥进行签名。据说是为了安全。生成密钥时,必须输入密码 这里有什么大惊小怪的? 让我问一下,如果我的释放密钥被盗/被复制,会发生什么情况。假设有人甚至可以用这把钥匙为他/她自己的应用程序签名。那意味着什么 我会争辩,几乎没有,对吗?(考虑到我的开发人员帐户/控制台凭据也没有被盗) 如果有人用偷来的发布密钥签名的其他应用程序能够更直接地访问我的应用程序(在用户设备上)的数据,那么可能会出现最大/唯一的风险。他们可以抓取你的APK(在所有安

在谷歌Play上发布Android应用程序之前,需要使用发布密钥进行签名。据说是为了安全。生成密钥时,必须输入密码

这里有什么大惊小怪的? 让我问一下,如果我的释放密钥被盗/被复制,会发生什么情况。假设有人甚至可以用这把钥匙为他/她自己的应用程序签名。那意味着什么

我会争辩,几乎没有,对吗?(考虑到我的开发人员帐户/控制台凭据也没有被盗)
如果有人用偷来的发布密钥签名的其他应用程序能够更直接地访问我的应用程序(在用户设备上)的数据,那么可能会出现最大/唯一的风险。

他们可以抓取你的APK(在所有安卓设备上公开可读)、修改它(例如,添加恶意软件)、签名并分发它。假设他们撞上了
版本代码
,任何试图安装你的应用程序的黑客版本的人都会成功,从Android的角度来看,这是一个有效的升级。如果黑客可以获取您的分销渠道凭据(例如,泄露您在Play Store的Google帐户),他们可以将其更新发送给您的所有用户

或者,他们可以创建自己的单独APK,并使用您的签名密钥进行签名。现在,您的应用程序和他们的应用程序使用相同的密钥签名。这开辟了其他攻击途径:

  • 如果您使用的是
    android:sharedUserId
    ,他们可以在内部存储中获取您应用程序的所有文件,这些文件通常不受其他应用程序的保护(根设备之外)

  • 如果您使用带有
    签名的权限
    protectionLevel
    ,则他们的应用程序可以持有相同的权限,并可能以您只希望自己的应用程序套件使用的方式与您的应用程序交互


即使没有释放密钥,他们也可以做同样的事情,即他们仍然可以绘制APK,他们可以修改(恶意软件)APK,并且可以使用新创建的释放密钥重新分发APK。那么情况在哪里变得更糟呢?为了有意义地重新分配,他们也会把我的谷歌开发者控制台账户也偷走。@人与和平:Android不会认为它是对现有应用程序用户的升级。因此,如果黑客获得了您的分发凭据,他们就无法将更新分发给您的所有用户。可以将其视为应用程序更新分发的双重身份验证:攻击者需要您拥有的东西(您的发布密钥库)和您知道的东西(例如,您的Google帐户凭据)。是的,这有一点值得注意(双重因素),也有访问应用程序内部的意义(即,使用相同的发布密钥在应用程序之间共享访问权限)使发布密钥并非毫无意义。Commonware给出了结果,但如果您想了解机制,请参阅私钥/公钥加密。您通过签名分发公钥,然后使用签名确定新版本是否来自私钥持有者。