handshake failed FB7170

Für Fragen und Probleme bei Installation und Bedienung von BoxToGo

Moderator: almisoft

Benutzeravatar
almisoft
Site Admin
Beiträge: 5014
Registriert: 01.01.1970, 01:00
Wohnort: Berlin
Kontaktdaten:

Re: handshake failed FB7170

Beitrag von almisoft »

Das ist nicht ganz so einfach. AVM hat mir geraten, die Cipher-Suites einzuschränken.
Aber letzlich hat es gereicht, die Reihenfolge der Cipher zu verändern. An erster Stelle steht jetzt "ECDHE-RSA-AES128-SHA".
RED-BARON
Beiträge: 4
Registriert: 19.10.2015, 15:01

Re: handshake failed FB7170

Beitrag von RED-BARON »

VIELEN, VIELEN DANK !!!!!!

mein Code ( in dem ich versuchsweise auch die Suites versucht habe zu manipulieren... ) aber letztlich erfolglos wieder kommentiert hatte ...
mSSLSocketFactory = mSSLContext.getSocketFactory();
networkSocket = (SSLSocket)mSSLSocketFactory.createSocket(networkSocket, mHost, mPort, true);
// test 2015-10-07
// http://just-another-blog.net/programmin ... ient-auth/
//SSLSocket sslSocket = (SSLSocket) networkSocket;
//((SSLSocket)networkSocket).setEnabledProtocols(new String[] {"TLSv1"});
//((SSLSocket)networkSocket).setEnabledCipherSuites(new String[]{});
((javax.net.ssl.SSLSocket)networkSocket).addHandshakeCompletedListener(new MyHandshakeListener());
((javax.net.ssl.SSLSocket)networkSocket).startHandshake();
networkSocket.getOutputStream().flush();

Gruß, Martin

PS: Im Moment hab ich kein Gerät bei dem der Fehler reproduzierbar ist, aber wenn dein Tip wirklich hilft ... muss ich mich wohl erkenntlich zeigen ! DANKE !
Benutzeravatar
almisoft
Site Admin
Beiträge: 5014
Registriert: 01.01.1970, 01:00
Wohnort: Berlin
Kontaktdaten:

Re: handshake failed FB7170

Beitrag von almisoft »

Du bist da an der richtigen Stelle. Siehe am besten http://stackoverflow.com/questions/1629 ... g-httpsurl
RED-BARON
Beiträge: 4
Registriert: 19.10.2015, 15:01

Re: handshake failed FB7170

Beitrag von RED-BARON »

SUPER !

Bei Verwendung eines problemfreien Gerätes wird mir im HandshakeCompleteListener ein anderer Cipher ( TLS_DHE_RSA_WITH_AES_256_CBC_SHA ) als verwendet angezeigt.
Von daher könnte es sein, ich muss diesen auch an erste Stelle setzen, dass weiß ich aber erst sicher, wenn ich so ein S6 ( oder anderes Problem-Gerät ) zum Test habe.
Wenn dem so ist, währe der Workaround evtl. "leicht" zertifikatsabhängig !

Danke, Martin
RED-BARON
Beiträge: 4
Registriert: 19.10.2015, 15:01

Re: handshake failed FB7170

Beitrag von RED-BARON »

Hallo almisoft,

die Aussage von AVM, die Liste der Suiten einzuschränken war schon korrekt. Die Liste wird evtl. sequenziell vom Server untersucht, aber die Position der Suite in der Liste erzwingt nicht deren Verwendung.
Jedenfalls will ich das so ermittelt haben. In meinem Fall verbinde ich mich mit einem MySQL-Server und es können auch nur Suiten verwendet werden, die bei der Kompilierung dessen mit angegeben wurden.

In meinem Fall wurde bisher TLS_DHE_RSA_WITH_AES_256_CBC_SHA verwendet. TLS_DHE_RSA_WITH_AES_128_CBC_SHA ginge auch. Bei Verwendung dieser beiden Suiten tritt definitiv der Protokollfehler auf.
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA und TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA werden nicht unterstütz vom Server also musste ich ausweichen auf TLS_RSA_WITH_AES_128_CBC_SHA oder SSL_RSA_WITH_RC4_128_SHA.

Den Code von Stackoverflow habe ich erweitert in eine forbiddenSuitesList und preferedSuitesList. Die Methode sieht dann wie folgt aus:

Code: Alles auswählen

private static String[] setupPreferredSupportedCipherSuites(SSLSocketFactory sslSocketFactory) {
	    String[] supportedCipherSuites = sslSocketFactory.getSupportedCipherSuites();
	    ArrayList<String> suitesList = new ArrayList<String>(Arrays.asList(supportedCipherSuites));	    
	    suitesList.removeAll(forbiddenSuitesList);
	    suitesList.removeAll(preferedSuitesList);
	    suitesList.addAll(0, preferedSuitesList);	    
	    return suitesList.toArray(new String[suitesList.size()]);
	}
Wobei auf das Remove/Add der "preferedSuitesList" verzichtet werden kann und es dennoch funktioniert.
Antworten