您正在使用X509TrustManager的不安全实现

时间:2016-02-18 18:56:44

标签: android appcelerator appcelerator-titanium android-security trustmanager

我是Google Play中的一款应用,今天我收到了Google发来的一封邮件说:

  

Google Play警告:您使用的是不安全的实施   X509TrustManager

它说明了SSL证书问题以及解决问题的方法。

我因为好奇而问这个问题,

  1. 实际上这个警告到底是什么意思?
  2. 我没有在我的应用中使用任何与网络相关的活动(它是本地数据库驱动的应用),为什么我的应用会出现此警告?
  3. 更多详情:

    我的应用是使用Appcelerator Titanium构建的,谷歌表示此实现位于ti.modules.titanium.network.NonValidatingTrustManager;。我确信我的代码中从未使用过这样的类。

5 个答案:

答案 0 :(得分:8)

  

实际上这个警告究竟是什么?

您应该已经与this page相关联,这解释了它的全部内容。简而言之,谷歌正在为那些搞砸SSL的人扫描应用程序,例如盲目地接受所有证书都是有效的。

  

我没有在我的应用程序中使用任何与网络相关的活动(这是一个本地数据库驱动的应用程序),为什么我的应用程序出现了这个警告?

因为您的APK中的其他内容已经完成了此操作。在this developer的情况下,它是一个库。

  

我的应用程序是使用Appcelerator Titanium构建的,谷歌称此实现位于ti.modules.titanium.network.NonValidatingTrustManager;中。我确信我的代码中从未使用过这样的类。

您可能没有直接使用 。但是,其他东西正在使用它。或者,它可能就在那里,因为它只是整个Titanium框架的一部分并保留在你的APK中。

答案 1 :(得分:6)

Appcelerator正在JIRA上跟踪此问题: https://jira.appcelerator.org/browse/TIMOB-20431

我们还在这里发布了一篇博客文章: http://www.appcelerator.com/blog/2016/02/google-security-alert-unsafe-implementation-of-the-interface-x509trustmanager/

电子邮件讲述了新提交的(!)应用和更新的5月17日截止日期。我们将及时准备好修复和指示。

答案 2 :(得分:1)

阅读本文: http://docs.appcelerator.com/platform/latest/#!/guide/SSL_Certificate_Store_Support_for_HTTP_Clients

关于谷歌推动所有人使用https的一切。如果您在应用程序中使用Titanium.Network.createHTTPClient对象,那么您必须使用此实现:

var certificateStore = require('ti.certificatestore').

可在此处找到该模块:https://github.com/appcelerator-modules/ti.certificatestore

答案 3 :(得分:1)

问题与js代码无关。它在Titanium sdk内部,无论你是否使用某些功能。 我认为可能的解决方案是重写类 https://github.com/appcelerator/titanium_mobile/blob/bc85170157d3bebc5de1d61a9fe6e34bce84a8c9/android/modules/network/src/java/ti/modules/titanium/network/NonValidatingTrustManager.java

我们应该创建X509TrustManager的安全实现

答案 4 :(得分:0)

我在我的应用上收到了相同的消息。与OP指定的模块相同。

ti.modules.titanium.network.NonValidatingTrustManager;

到目前为止我的研究中有几点:

  

您应该使用HTTPClient的securityManager属性   实施对SSL证书商店的支持。

  • 遗憾的是,SecurityManagerProtocol文档没有示例。我能找到的几个引用(http://docs.appcelerator.com/platform/latest/#!/api/Modules.Https)需要使用modules.https,它只是一个PAID模块。

  • 我留下了一个问题:如果Google拒绝所有具有此特定问题的Appcelerator应用,并且只有付费订阅的开发者才能获得官方支持的解决方案,这是否意味着Appcelerator'社区版'与官方不兼容Google Play? Appcelerator是否计划为其社区成员正式支持HTTPS?

Appcelerator的任何人都在关注评论,好吗? 谢谢, 大卫