【问题标题】:Security alert: App contains embedded private keys or keystore files安全警报:应用程序包含嵌入式私钥或密钥库文件
【发布时间】:2014-10-07 20:15:59
【问题描述】:

最近收到来自 Google 的邮件:

这是一个通知,您的应用程序 com.myapp 包含一个或 更多的私钥或密钥库文件嵌入在其发布的 apk 中 列在这封电子邮件的末尾。可以访问这些嵌入的项目 通过第三方,可以提高各种不同的安全性 取决于密钥的用途。例如,如果 私钥是您的应用程序的签名密钥,第三方 可以签署和分发取代您的真实应用程序的应用程序或 腐蚀他们。这样的一方还可以签署和分发应用程序 你的身份。

作为一般的安全做法,我们强烈建议不要 在应用程序中嵌入私钥和密钥库文件,即使密钥 受密码保护或混淆。最有效的方法 保护您的私钥和密钥库文件是不要传播它们。

请从您的应用中删除您的私钥和密钥库文件,网址为 您最早的方便。每个应用程序都是不同的,但如果你不是 确定如何在您的应用程序中找到密钥和密钥库文件,您可以 尝试查找具有“keystore”文件扩展名和 grepping 的文件 对于“私钥”。有关保护您的密钥安全的更多信息, 请参见 https://developer.android.com/tools/publishing/app-signing.html.

作为开发人员,您有责任保护您的私钥 正确地,在任何时候。请注意,虽然尚不清楚这些是否 具体问题会影响您的应用程序,应用程序与 使用户面临妥协风险的漏洞可能是 被视为“危险产品”,可能会从 Google 中移除 播放。

要检查您的应用的后续版本是否包含私钥, 请参阅 Google Play 开发者控制台的警报部分,网址为 https://play.google.com/apps/publish/#AlertsPlace.

受影响的应用和嵌入式项目示例: 重新包装/org/bouncycastle/openssl/test/data/dsa/openssl_dsa_aes128_cbc.pem 重新包装/org/bouncycastle/openssl/test/data/dsa/openssl_dsa_aes128_cfb.pem 重新包装/org/bouncycastle/openssl/test/data/dsa/openssl_dsa_aes128_ecb.pem 重新包装/org/bouncycastle/openssl/test/data/dsa/openssl_dsa_aes128_ofb.pem 重新打包/org/bouncycastle/openssl/test/data/dsa/openssl_dsa_aes192_cbc.pem

我正在使用包含上述 .pem 文件的库(jar 文件)。这些文件具有关键字“PRIVATE KEY”。我不会在 APK 包中的任何地方透露我的私钥或密钥库。 我能做些什么来解决这个问题?我要对 JAR 文件或我的应用 APK 进行哪些更改? 请帮忙。

【问题讨论】:

    标签: android apk google-play-services google-play


    【解决方案1】:

    我今天从 Google 收到了一条非常相似的消息。经过调查,我发现您在我的一个罐子中列出的相同文件。我已通过使用以下控制台命令从 jar 中删除整个 openssl 文件夹来解决此问题。

    zip --delete AFFECTEDJAR.jar "repack/org/bouncycastle/openssl/*"
    

    我建议在运行之前检查该文件夹中没有 java 类。在我的情况下,反正只有测试数据。

    希望这会有所帮助。

    【讨论】:

    • 我也是这样做的。它里面有 .class 文件。所以留下了这些文件并删除了其余的。让我们希望 Google 接受它。
    • 他们接受你的修改了吗?我也面临同样的问题
    • @ghostrider3 是的,在发布没有这些文件的更新后,警报自行消失
    • @drspaceboo 我也面临同样的问题。能否请您提供如何在 mac 中执行该命令的步骤。
    • @Android_dev 一旦您知道文件的来源,该命令几乎就是您所需要的。我想我是通过使用 Android Studio 搜索找到的。
    【解决方案2】:

    您很可能在应用程序中不需要这些文件。当您发布应用程序时,只需将它们从导出过程中删​​除。我假设这些直接在项目内部,以便于传递应用程序并将它们保持在项目附近。

    如果是这种情况,只需将密钥库移到包外,并在需要时直接从单独的地方引用它们,这样它们就不会被打包进去。

    【讨论】:

      【解决方案3】:
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-25
      • 2015-02-17
      • 2022-01-15
      • 2013-08-06
      • 1970-01-01
      相关资源
      最近更新 更多