使用Google Play应用程序签名时的安全注意事项

4

我刚刚在Play控制台注册了App签名,一切运作良好。

但是现在我应该如何处理我的新上传密钥库及其密码呢? 我能否将此密钥库放入版本控制中,并将密码以明文形式放入构建脚本中?

据我所知,这个密钥库仅用于在上传前临时签署apk。因此,我认为它非常安全,因为除了我自己之外,没有人可以真正上传新的apk到Play,也没有通过知道上传密钥来访问我的原始发布密钥库的选项。

现在令我困扰的另一件事是,我看不到任何更改上传密钥库的选项。现在是否可能或计划很快添加到Play控制台?如果我将上传密钥库和密码发布到版本控制中,最好有一个选择切换到新的私有密钥库,以防出现问题。

3个回答

1
您处理密钥库的方式非常个人化,但将其与密码一起发布到源代码控制中并不是一个好主意。
当您说只有您才能将apk上传到您的帐户时,您是正确的,但由于各种原因,您的帐户可能会受到威胁,因此始终最好为上传任何apk到您的帐户都要有第二步骤。
当我在团队中工作时,由于我们拥有私有源代码控制,我们将密钥库与我们的代码库一起上传。但密码是通过1password管理的。
现在我独自工作,我自己处理我的密钥库。
关于更改密钥库的问题,这是不可能的。上传apk后,有两件事情是无法更改的:包和密钥库。这是出于安全原因。
您可以在此处获取更多信息:https://developer.android.com/training/articles/keystore.html

我知道更改或删除发布密钥库是不可能的,这对我来说很有道理。但为什么我不能更改上传密钥库呢? - Alex Vasilkov
1
实际上,Google在他们的IO演讲中明确提到您可以重置上传密钥库此处 - Alex Vasilkov
1
说到账户被盗,当开始使用应用签名 Google 会要求您启用双重验证,这理论上应该可以防止此类情况。被攻击的用于应用发布的帐户可能会导致其他悲惨后果,其中能够上传新的 apk 应该不是最可怕的,因此您最好无论如何都要保持其安全。 - Alex Vasilkov

1

正如@jonathanrz所说,最好将您的密钥库文件保持私密。 使用gradle.properties文件存储密钥库密码非常容易,然后在您的build.gradle文件中引用属性值即可。

只需记住,要珍惜密钥库文件,将它们备份到多个地方,如果您丢失了它们,就必须重新上传您的应用程序。


1
在您的计算机上以明文形式保存重要密码并不是最安全的选择。新的应用签名功能的好处之一是,您现在应该不必担心丢失密钥库或密码了。 - Alex Vasilkov
我认为这就是问题的重点。如果您可以将某些东西保留在本地并确保其安全、备份等,那么最好不要将其上传到云端。如果您确定不会忘记密码,最好不要写下来。但是,所有这些不幸的事情都会发生。如果发生了这种情况,您可能会失去在Google Play中更新自己应用程序的能力。如果将此信息提交到git,会发生什么坏事?它被攻击的可能性有多大? - Illya S

0

我将回答自己的问题(基于Reddit讨论)。

为了更改上传密钥库,您需要联系Google支持并请求重置。这不是最简单的选项,但仍然很好。

在私有存储库中保留上传证书及其密码看起来没有大问题。只要无法自动推送生产构建,它听起来足够安全,并且还简化了Alpha / Beta构建的分发。

有些人担心与Google共享发布密钥库可能会被破坏或被Google用于将恶意代码集成到您的应用程序中。但是,这种情况的可能性非常小,因此只要您不是在Facebook或其他非常流行的应用上工作,就应该足够安全地依赖Google。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接