40

我正在使用密钥库 (.jks) 来存储用于签署我的 Android 应用程序的证书。Android 文档和社区给我留下了永不丢失此文件的重要性的印象,但我还没有找到任何关于我应该将其保存在何处的指导。

将它存储在 Git 中会是一个糟糕的主意(即它会产生安全后果)吗?

假设密钥库本身和里面的私钥都有强密码。

4

2 回答 2

17

任何对您的 Git 存储库具有读取权限的人都将获得私钥。这被认为是一个安全问题,因此不建议这样做。如果您的 GIT 存储库是完全私有的,这意味着没有人但您可以访问它(不是 GitHub 上的私有存储库,而是本地磁盘上或您 100% 控制的基础设施中的 git 存储库),那么将您的私钥放在那里将其保存在本地磁盘上一样安全。

假设密钥库本身和里面的私钥都有强密码

请注意,密码是您(“公共”)私钥的最后一种防御方式。如果它以任何方式受到损害(猜测、被盗、破解),那么它就结束了。

此外,我非常确定并非所有(如果有的话)开发人员都需要访问release keys。如果您需要他们拥有它,请将其交给 repo。但我首先要重新考虑安全策略。

于 2013-07-05T15:02:10.770 回答
9

要更新您的应用程序,您需要两件事:

  • 访问拥有该应用程序的 Google Play 开发者控制台。
  • 使用正确密钥库签名的 APK

通过将证书放入您的存储库并与您的开发人员共享它,您将放弃一个安全令牌。

如果您的 Google Play 开发控制台帐户是安全的,那么您应该没问题。但这取决于您的情况。

将其放入存储库要容易得多:

  • 您的存储库在许多地方被克隆并且通常正确备份。
  • 您的开发团队可以使用 gradle 自动签署您的生产版本。

许多人喜欢把它放在一张或多张 SD 卡上,然后放在某个地方。但是大多数人的办公室里没有一个叫做“某处”的地方。几年后还能读吗?

还有两个考虑:

  1. 如果您公司的 android 应用程序的产品所有者发生变化,您永远不知道旧所有者是否仍然拥有副本,并且没有人知道谁已经可以访问它。您无法更改密钥。因此,如果密钥一旦从一个人传递给另一个人,则必须假定它是不安全的。

  2. 当然,您可以将其完全保密。它由您的密码保护,没有人知道。但是如果你死了会发生什么?有人可能想要更新您的应用。这不可能。当你死时,一个保密的私钥会丢失。

所以我认为把它放在你的存储库中很好。请注意保护您的 Google 帐户。对于此帐户,可以更改密码,可以激活两个 faktor 等等。

于 2017-03-28T19:18:07.173 回答