Вы используете небезопасную реализацию X509TrustManager.

У меня есть приложение в Google Play, сегодня я получил письмо от Google, в котором говорится, что:

Предупреждение Google Play: вы используете небезопасную реализацию X509TrustManager

В нем что-то говорится о проблемах с SSL-сертификатом и способе решения проблемы.

Я задаю этот вопрос из-за любопытства,

  1. Собственно, о чем это предупреждение?
  2. Я не использую какие-либо действия, связанные с сетью, в своем приложении (это приложение, управляемое локальной базой данных), так почему это предупреждение появилось для моего приложения?

Подробнее:

Мое приложение было создано с использованием Appcelerator Titanium, и Google говорит, что эта реализация находится в ti.modules.titanium.network.NonValidatingTrustManager;. Я уверен, что никогда не использовал такой класс в своем коде.


person Midhun MP    schedule 18.02.2016    source источник


Ответы (5)


Собственно, о чем это предупреждение?

Вы должны были быть связаны с этой страницей, которая объясняет, о чем идет речь. Короче говоря, Google сканирует приложения на наличие людей, которые облажались с SSL, например, слепо принимая все сертификаты как действительные.

Я не использую какие-либо действия, связанные с сетью, в своем приложении (это приложение, управляемое локальной базой данных), так почему это предупреждение появилось для моего приложения?

Потому что что-то еще в вашем APK сделало это. В случае этого разработчика это была библиотека.

Мое приложение было создано с использованием Appcelerator Titanium, и Google говорит, что эта реализация находится в ti.modules.titanium.network.NonValidatingTrustManager;. Я уверен, что никогда не использовал такой класс в своем коде.

Возможно, вы не использовали его напрямую. Тем не менее, что-то еще использует его. Или, возможно, он существует, потому что он является частью общей структуры Titanium и остается в вашем APK.

person CommonsWare    schedule 18.02.2016

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/

В электронном письме говорится о крайнем сроке 17 мая для недавно отправленных (!) приложений и обновлений. Мы подготовим исправление и инструкции вовремя.

person Fokke Zandbergen    schedule 19.02.2016

Прочитайте это: http://docs.appcelerator.com/platform/latest/#!/guide/SSL_Certificate_Store_Support_for_HTTP_Clients

Все дело в том, что Google подталкивает всех к использованию https. Если вы используете в своем приложении объект Titanium.Network.createHTTPClient, вам придется реализовать это следующим образом:

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

Модуль можно найти здесь: https://github.com/appcelerator-modules/ti.certificatestore< /а>

person Horia Radu    schedule 18.02.2016

Проблема не связана с кодом js. Он находится внутри Titanium sdk, и неважно, используете вы какие-то функции или нет. Я думаю, что возможное решение — переписать класс https://github.com/appcelerator/titanium_mobile/blob/bc85170157d3bebc5de1d61a9fe6e34bce84a8c9/android/modules/network/src/java/ti/modules/titanium/network/NonValidatingTrustManager.java

Мы должны создать безопасную реализацию X509TrustManager

person Raziel    schedule 19.02.2016
comment
Appcelerator будет иметь обновленный SDK, готовый к крайнему сроку в середине мая. Больше информации в нашем блоге в ближайшее время. - person Fokke Zandbergen; 19.02.2016

Я только что получил такое же сообщение в моих приложениях. Тот же модуль, указанный в качестве OP.

ti.modules.titanium.network.NonValidatingTrustManager;

Несколько моментов из моего исследования на данный момент:

Вместо этого следует использовать свойство securityManager объекта HTTPClient для реализации поддержки хранилищ SSL-сертификатов.

  • в документах SecurityManagerProtocol, к сожалению, нет примеров. Несколько ссылок, которые я смог найти (http://docs.appcelerator.com/platform/latest/#!/api/Modules.Https) требуют использования modules.https, который является только ПЛАТНЫМ модулем.

  • У меня остается вопрос: если Google отклоняет все приложения Appcelerator с этой конкретной проблемой, и только разработчики с платными подписками получают официально поддерживаемое решение, означает ли это, что «версия сообщества» Appcelerator официально несовместима с Google Play? Планирует ли Appcelerator официально поддерживать HTTPS для членов своего сообщества?

Кто-нибудь из Appcelerator хочет прокомментировать, пожалуйста? Спасибо, Дэвид.

person drh    schedule 19.02.2016
comment
Appcelerator будет иметь обновленный SDK, готовый к крайнему сроку в середине мая. Больше информации в нашем блоге в ближайшее время. Действительно, модуль HTTPS — это премиальный модуль Team+, но мы позаботимся о том, чтобы любой разработчик Titanium был готов до середины мая. - person Fokke Zandbergen; 19.02.2016