12

Я приложение в Google Play, сегодня я получил письмо от Google о том, что:Вы используете небезопасную реализацию X509TrustManager

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

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

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

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

Подробнее:

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

ответ

8

На самом деле, что это за предупреждение?

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

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

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

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

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

1

Прочитайте это: 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

0

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

ti.modules.titanium.network.NonValidatingTrustManager; 

Несколько моментов из моих исследований до сих пор:

  • http://docs.appcelerator.com/platform/latest/#!/guide/SSL_Certificate_Store_Support_for_HTTP_Clients ли обсудить проблему и предоставить примеры для прошивки и Android. Однако:
    • примеры различны для каждой операционной системы и требуют создание или загрузки модулей (Андроид один это пару лет сейчас)
    • Документов специально говорят, что эти методы больше не поддерживаются и

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

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

  • У меня остается вопрос: если Google отклонит все приложения Appcelerator с этой конкретной проблемой, и только разработчики с платной подпиской получат официально поддерживаемое решение, означает ли это, что сообщество Community Edition от Apcelerator официально несовместимо с Google Играть? Планирует ли Appcelerator поддерживать HTTPS официально для своих членов сообщества?

Кто-нибудь из Appcelerator позаботится прокомментировать, пожалуйста? Thank you, David

+1

У Appcelerator будет обновленный SDK, готовый к окончанию в середине мая. Подробнее о нашем блоге в ближайшее время. Действительно, модуль HTTPS является модулем премиум-класса +, но мы будем уверены, что любой разработчик Titanium может быть готов до крайнего срока в середине мая. –

1

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

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

+2

У Appcelerator будет обновленный SDK, готовый вовремя для крайнего срока в середине мая. Подробнее о нашем блоге в ближайшее время. –

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/

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