Aktivieren bestimmter SSL-Protokolle mit Android WebViewClient
Meine Anwendung verwendet WebViewClient um SSL-verbindungen zu dem server.
Der server ist so konfiguriert, dass nur akzeptieren, TLSv1.1 und oben genannten Protokollen.
1) Wie kann ich überprüfen, welche SSL-Protokolle sind a) Unterstützt und b) standardmäßig Aktiviert bei der Verwendung von Android WebViewClient auf einem Gerät.
2) Wie kann ich das aktivieren bestimmter SSL-Protokolle für Android WebViewClient Instanz, die verwendet wird in meiner Anwendung.
Auf einem der test-Geräte mit Android 4.3,
WebViewClient wirft onReceivedError Rückruf mit der Beschreibung "Fehler beim ausführen des SSL-handshake"
Chrom-Protokolle sind wie folgt:
01-29 15:58:00.073 5486 5525 W chromium_net: extern/Chrom/net/http/http_stream_factory_impl_job.cc:865: [0129/155800:WARNUNG:http_stream_factory_impl_job.cc(865)] Fallen wieder SSLv3 da host ist TLS intolerant: 10.209.126.125:443 01-29 15:58:00.083 5486 5525 E chromium_net: extern/Chrom/net/socket/ssl_client_socket_openssl.cc:792: [0129/155800:FEHLER:ssl_client_socket_openssl.cc(792)] handshake failed; 0 zurückgegeben, SSL error code 5, net_error -107
Meine Anwendung auch verwendet HttpClient und HttpsUrlConnection Klassen einrichten von SSL-Verbindungen. Ich war in der Lage zu verwenden SSLSocket-API zu ermöglichen, bestimmte Protokolle bei der Verwendung dieser Klassen.
http://developer.android.com/reference/javax/net/ssl/SSLSocket.html#setEnabledProtocols(java.lang.String[])
Muss ich tun das gleiche mit WebViewClient.
InformationsquelleAutor der Frage user802467 | 2015-02-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Als pro Dokumentation ist es NICHT möglich, die TLS 1.0 unterstützen, in WebView in Android < 4.3. Für Android 4.4 ist es standardmäßig deaktiviert.
Prüfen Sie diese Tabelle für die Unterstützung von TLS 1.0 in verschiedenen Browsern: https://en.wikipedia.org/wiki/Transport_Layer_Security#Web_browsers
InformationsquelleAutor der Antwort M. C.
Wenn Ihr die app benutzt, oder Sie bereit sind, zu verwenden,, Google-Play-Dienste, die Sie verwenden können, neueren Sicherheits-features auf älteren Handys durch die Installation Ihrer
Provider
. Es ist einfach zu installieren, nur eine Leitung (plus exception-handling, etc). Sie müssen auch hinzufügen, google-play-Dienste, um Ihre gradle-Datei, wenn Sie nicht bereits haben.ProviderInstaller
ist in der-base
Paket.Für eine vollständige Beispiel finden Sie unter "Aktualisierung Ihrer Security-Anbieter zum Schutz Gegen SSL-Exploits" von Google.
InformationsquelleAutor der Antwort iagreen
Tatsächlich, ich schaffte es, es zu schaffen, aber Sie brauchen, okHttp-Bibliothek.
Versuchen Sie dies, wenn Sie die Einstellung up-browser-Aktivität:
Darüber hinaus müssen Sie klassischen Trust-Manager Manipulator, SSL socket factory und deren Umsetzung in Ihrer Anwendung Klasse:
SSl Socket Factory:
App-Klasse:
InformationsquelleAutor der Antwort Alex