安全警报:您的应用程序包含嵌入式私钥或密钥库文件

Security Alert: Your app contains embedded private keys or keystore files

我最近收到一封来自 Google 的邮件:

**安全警报:您的应用包含嵌入的私钥或密钥库文件

此应用包含一个或多个私钥或密钥库文件,这些私钥或密钥库文件嵌入在其已发布的 apk 中,如本消息末尾所列。这些嵌入的项目可以被第三方访问,这可能会引发各种不同的安全问题,具体取决于密钥的用途。例如,如果私钥是您应用程序的签名密钥,则第三方可以签署和分发替换您的真实应用程序或破坏它们的应用程序。这样的一方也可以以您的身份签署和分发应用程序。

作为一般安全做法,我们强烈建议不要在应用中嵌入私钥和密钥库文件,即使这些密钥受密码保护或混淆也是如此。保护您的私钥和密钥库文件的最有效方法是不要传播它们。 请尽早从您的应用程序中删除您的私钥和密钥库文件。有关保护密钥安全的更多信息,请参阅 https://developer.android.com/tools/publishing/app-signing.html

作为开发人员,您有责任始终妥善保护您的私钥。请注意,应用程序的漏洞会使用户面临被感染的风险,可能会被视为 "dangerous products" 并会从 Google Play 中移除。

org/bouncycastle/openssl/test/data/rsa/openssl_rsa_unencrypted.pem**

我检查了我的 APK,我没有在我的应用程序中保存任何密钥库或密码。因为我在应用程序中没有任何 .pem 文件。

在我的应用程序中,我使用的是 Crashlytics,droidText.Jar。所以,任何人都可以请教如何解决这个错误。

警告是由 BouncyCastle 目录下的 .pem 文件触发的 - .pem 文件通常是私钥的导出,实际上是一个密钥库(通常只包含一个私钥,但仍然是密钥库的一种形式),因此 Google 关于 private keys or keystore files.

的警告

BouncyCastle 的东西很可能作为依赖项被您正在使用的其他东西拖入。

在我遇到的所有情况下,都是可以安全删除的测试数据。

您需要在您的 APK 中找到它并将其删除 - 删除整个 /test/data 路径应该足够安全。