【发布时间】:2016-02-17 19:27:57
【问题描述】:
在我的一个应用程序中,我使用带有自签名证书的 HTTPS,并遵循来自 android 开发人员培训网站 (https://developer.android.com/training/articles/security-ssl.html#UnknownCa) 的示例代码。
我最近收到以下警报,说当前的实现不安全:
安全警报
您的应用正在使用不安全的 X509TrustManager 与 Apache HTTP 客户端的接口,导致 安全漏洞。请参阅this Google Help Center article 详细信息,包括修复漏洞的截止日期。
有人可以提供更多详细信息,说明除了上面链接的示例代码之外应该更新哪些内容吗?
我应该实现自定义TrustManager 吗?如果是,它应该验证什么?
【问题讨论】:
-
嗯,这似乎包含在the Google Help Center article 中:“要正确处理 SSL 证书验证,请更改自定义 X509TrustManager 接口的 checkServerTrusted 方法中的代码,以在证书出现时引发 CertificateException 或 IllegalArgumentException服务器不符合您的期望。”您究竟是如何设置
TrustManager的?你是怎么用的? -
@CommonsWare 与示例代码 developer.android.com/training/articles/… 完全一样我应该做些什么不同的事情吗?
-
您链接到的页面上没有自签名服务器证书方案的代码。有未知证书授权方案的代码。
-
如果您确实使用文档中的代码,并且您的代码中没有
implements X509TrustManager,那么它可能来自您项目中的库,而不是您自己的代码。您是否在使用任何使用 Internet 访问的库(例如广告网络)? -
@CommonsWare 我想我找到了!它在 mobilecore.jar(IronSource 广告)中。感谢您提供查看外部库的提示
标签: android security ssl android-security trustmanager