如何修复 TrustManager 实现方式不安全的应用

本文面向的是在应用中采用不安全的 X509TrustManager 接口实现方式的开发者。

问题说明

您的一个或多个应用采用了不安全的 X509TrustManager 接口实现方式。具体而言,在与远程主机建立 HTTPS 连接时,这种实现方式会忽略所有 SSL 证书验证错误,从而使您的应用容易受到中间人攻击。攻击者可能会读取传输的数据(例如登录凭据),甚至更改通过 HTTPS 连接传输的数据。请阅读下面的详细步骤,解决您的应用存在的问题。Play 管理中心内显示的最后期限过后,系统可能会将所有包含未修复的安全漏洞的应用从 Google Play 下架

需要采取的行动

  1. 登录您的 Play 管理中心,然后转到“提醒”部分,查看受影响的应用以及解决这些问题的最后期限。
  2. 更新受影响的应用并修复漏洞。
  3. 提交受影响应用的更新版本。

 

重新提交后,我们会重新审核您的应用。审核过程可能需要几个小时才能完成。如果应用通过审核并成功发布,便无需进一步操作。如果应用未通过审核,则新版应用将无法发布,您会收到电子邮件通知。

更多详细信息

为了正确处理 SSL 证书验证,请更改您的自定义 X509TrustManager 接口的 checkServerTrusted 方法中的代码,从而在服务器提供的证书符合您的预期时引发 CertificateExceptionIllegalArgumentException。请特别注意以下问题:

  1. 确保在 checkServerTrusted 方法内未捕获到该方法引发的异常。否则会使 checkServerTrusted 正常退出,导致应用信任有害证书。
  2. 请勿使用 checkValidity 来审查服务器证书。checkValidity 会检查证书是否尚未过期,但无法判断证书是否可信。

您也可以使用网络安全配置功能,以不易出错的方式自定义应用的证书行为。

我们随时为您提供帮助

如果您有关于此漏洞的技术问题,可以在 Stack Overflow 上发帖咨询(使用“android-security”和“TrustManager”标签)。如需明确了解需要执行哪些步骤来解决此问题,您可以与我们的开发者支持团队联系。

该内容对您有帮助吗?

您有什么改进建议?
false
主菜单
12510822093060221415
true
搜索支持中心
true
true
true
true
true
5016068
false
false