2015-03-03 20 views
10

Używamy okhttp w naszym projekcie Android, aby porozmawiać z naszym API; cała komunikacja jest szyfrowana za pomocą SSL/TLS, a nasze serwery mogą komunikować się z SPDY. Łączymy się również z numerem Google Play Services dla dostawcy topikowych lokalizacji i kilku innych funkcji.Czy powinniśmy używać dostawcy bezpieczeństwa google z OkHttp?

Częścią Usług Play, których obecnie nie używamy, jest ich security provider, która obiecuje ulepszyć stos SSL urządzenia, aby w jakiś sposób chronić się przed różnymi podatnościami. Jednak dokumenty są nieco niejasne, co do tego, co dostawca faktycznie ma ma i co do metod SSL wpływają na niego, a które nie (kilka przykładów każdego z nich jest dostarczanych, ale nie wyczerpująca lista).

Tak, myślę, że moje pytanie jest dwojaki:

  • Czy dynamiczny dostawca zabezpieczeń nawet pracować z okhttp, czy też okhttp polegać na niższym poziomie (lub wyższego poziomu) API, które nie są dotknięte instalujesz dostawcę?

  • Zakładając, że to działa, jakie są korzyści? Czy są jakieś korzyści związane z bezpieczeństwem, o które warto dbać? Czy rzeczywiście naprawi on awarię macierzystą związaną z ALPN w okhttp 2.2, jako nfuller hints it might?

+0

Czy znalazłeś rozwiązanie? – rekire

+0

@rekire, nie, nigdy nie zorientowaliśmy się dokładnie, co się dzieje, więc na razie to zostawiliśmy ... – mlc

Odpowiedz

3

TL; DR: Tak.

Dostawca usług dynamicznego bezpieczeństwa Play Services to JCACryptographic Service Provider (CSP). Program Java może mieć wiele zarejestrowanych CSP, a każdy CSP może zapewnić różne implementacje prymitywów bezpieczeństwa, takich jak algorytmy mieszania. Oto lista CSP zawarte w Androidzie 2.3:

  • AndroidOpenSSL wersja 1.0
  • wersja DRLCertFactory 1,0
  • wersja BC wersja 1.45
  • Crypto wersja 1.0
  • HarmonyJSSE 1,0

Gdy podasz activate the Play Services Dynamic Security Provider, zgodnie z dokumentacją dla programistów Androida, po prostu na liście znajduje się kolejny dostawca :

  • wersja GmsCore_OpenSSL wersja 1.0
  • AndroidOpenSSL 1,0
  • wersja DRLCertFactory 1,0
  • wersja BC wersja 1.45
  • Crypto wersja 1.0
  • HarmonyJSSE 1,0

Kiedy OkHttp (lub jakakolwiek inna część twojego zgłoszenia) "robi bezpieczeństwo" używając JC A wybiera dostawcę zgodnie z jego możliwościami i preferencją (kolejność sortowania), co oznacza, że ​​zostanie użyty GmsCore_OpenSSL.

Opierając się na GmsCore_OpenSSL, a nie na pakiecie z urządzeniem, na którym działa twoja aplikacja, otrzymujesz aktualną implementację the provided security primitives nawet na starszych urządzeniach z Androidem 2.3, tj. Nie więcej niż SSLv3, TLS 1.2 (Android 2.3 doesn't even support TLS 1.1) z aktualnymi pakietami szyfrów i załatanymi otworami bezpieczeństwa. Ponieważ usługi Play są aktualizowane niezależnie od Androida, dostawca usług dynamicznych Play nadal pozostaje aktualny i dlatego warto używać go również na obecnych urządzeniach.

Powiązane problemy