2015-03-03 3 views
10

Мы используем okhttp в нашем Android-проекте, чтобы поговорить с нашим API; все коммуникации шифруются с помощью SSL/TLS, и наши серверы могут говорить SPDY. Мы также связываем в Google Play Services для поставщика плавленого местоположения и некоторых других функций.Должны ли мы использовать поставщика безопасности Google с помощью OkHttp?

Часть Служб Службы, которую мы в настоящее время не используем, является их security provider, которая обещает обновить стек SSL устройства, чтобы как-то защитить от различных уязвимостей. Тем не менее, документы несколько расплывчаты относительно того, что провайдер фактически делает и что касается того, какие методы SSL им подвержены, а какие нет (приводится несколько примеров каждого, но не полный список).

Итак, я предполагаю, что мой вопрос имеет два аспекта:

  • Будет динамический провайдер безопасности даже работать с okhttp, или же okhttp рассчитывать на более низком уровне (или более высокого уровня) API-интерфейсы, которые не затрагиваются установка провайдера?

  • Предполагая, что это действительно работает, в чем преимущества? Есть ли преимущества в плане безопасности, о которых стоит заботиться? Будет ли это на самом деле исправить родной сбой ALPN в okhttp 2.2, так как nfuller hints it might?

+0

Вы нашли решение? – rekire

+0

@rekire, нет, мы никогда не выяснили, что происходит, и поэтому теперь это осталось. – mlc

ответ

3

TL; DR: Да.

Провайдер услуг динамической безопасности Play Services - JCACryptographic Service Provider (CSP). Программа Java может иметь несколько зарегистрированных CSP, и каждый CSP может предоставлять различные реализации примитивов безопасности, таких как алгоритмы хеширования. Вот список ПСУ, включенных в Android 2.3:

  • AndroidOpenSSL версии 1.0
  • DRLCertFactory версия 1.0
  • BC версия 1,45
  • Crypto версия 1.0
  • HarmonyJSSE версия 1,0

Когда вы используете activate the Play Services Dynamic Security Provider, как указано в документации для разработчиков Android, в верхней части списка добавляется только один провайдер. :

  • GmsCore_OpenSSL версии 1.0
  • AndroidOpenSSL версии 1.0
  • DRLCertFactory версия 1.0
  • БК версия 1.45
  • Crypto версии 1.0
  • HarmonyJSSE версия 1,0

Когда OkHttp (или любая другая часть вашего приложения) «делает безопасность» с использованием JC A он выбирает поставщика в соответствии с его возможностями и предпочтением (порядок сортировки), что означает, что GmsCore_OpenSSL будет использоваться.

Опираясь на GmsCore_OpenSSL вместо того, что связано с устройством, на котором работает ваше приложение, вы получаете актуальную реализацию the provided security primitives даже на древних устройствах с Android 2.3, то есть больше нет SSLv3, TLS 1.2 (Android 2.3 doesn't even support TLS 1.1) с текущими шифровыми наборами и исправленными дырами в безопасности. Поскольку Службы воспроизведения обновляются независимо от Android, поставщик динамических услуг Play Services остается актуальным и, следовательно, имеет смысл использовать его и на текущих устройствах.

Смежные вопросы