android - 当有人窃取我的 Android 应用程序发布 key 时会发生什么坏事?

标签 android google-play key sign

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

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

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

最佳答案

他们可以获取您的 APK(在所有 Android 设备上公开可读)、修改它(例如,添加恶意软件)、签名并分发它。假设他们修改了 versionCode,任何尝试安装您的应用程序的被黑版本的人都会成功,因为从 Android 的角度来看,这是一个有效的升级。如果黑客可以获得您的分发 channel 凭据(例如,破坏您的 Play 商店 Google 帐户),他们就可以将更新发送给您的所有用户。

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

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

  • 如果您使用具有signature protectionLevel 的权限,他们的应用程序可以拥有相同的权限,并且可能以您只希望自己的方式与您的应用程序交互自己的应用程序套件以供使用

关于android - 当有人窃取我的 Android 应用程序发布 key 时会发生什么坏事?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39026720/

相关文章:

java - 从字符串中获取枚举索引?

android - Flutter for iOS 和 Android 中的视频播放功能,我们可以隐藏进度条和跳过功能

google-play - 如何使用代号一获取应用程序版本(Play/iTunes)商店

android - Google Play、平板电脑屏幕截图和图像顺序

Java HashMap 迭代器

mongodb - 在实时应用程序中将长 MongoDB 列名称重命名为较短的名称

android - 如何在 ListView 中获取 Spinner

android - 重用代码 Android NDK

ios - Google Play 和 Apple Store 是否只允许 ionic 的 InAppBrowser 查看网站?

ios - UIKit - 使用 Plist 检索图像